/*
* Handle RDOFF2 specific directives
*/
-static int rdf2_directive(char *directive, char *value, int pass)
+static int rdf2_directive(enum directives directive, char *value, int pass)
{
- int n;
-
- /* Check if the name length is OK */
- if ((n = strlen(value)) >= MODLIB_NAME_MAX) {
- error(ERR_NONFATAL, "name size exceeds %d bytes", MODLIB_NAME_MAX);
- return 0;
- }
-
- if (!strcmp(directive, "library")) {
+ size_t n;
+
+ switch (directive) {
+ case D_LIBRARY:
+ n = strlen(value);
+ if (n >= MODLIB_NAME_MAX) {
+ error(ERR_NONFATAL, "name size exceeds %d bytes", MODLIB_NAME_MAX);
+ return 1;
+ }
if (pass == 1) {
struct DLLRec r;
r.type = RDFREC_DLL;
write_dll_rec(&r);
}
return 1;
- }
-
- if (!strcmp(directive, "module")) {
+
+ case D_MODULE:
+ if ((n = strlen(value)) >= MODLIB_NAME_MAX) {
+ error(ERR_NONFATAL, "name size exceeds %d bytes", MODLIB_NAME_MAX);
+ return 1;
+ }
if (pass == 1) {
struct ModRec r;
r.type = RDFREC_MODNAME;
write_modname_rec(&r);
}
return 1;
- }
- return 0;
+ default:
+ return 0;
+ }
}
static void rdf2_filename(char *inname, char *outname, efunc error)