diff --git a/src/CMD/ATTRIB/ATTRIB.C b/src/CMD/ATTRIB/ATTRIB.C index b12a470..256caec 100644 --- a/src/CMD/ATTRIB/ATTRIB.C +++ b/src/CMD/ATTRIB/ATTRIB.C @@ -2264,7 +2264,8 @@ WORD Do_dir(path,file) strcpy(subdirectory,path); strcat(subdirectory,"*.*"); - search_attrib = SUBDIR; /* Find all except volume labels*/ /*;AN000;*/ + /* Find all except volume labels*/ /*;AN000;*/ + search_attrib = SUBDIR | HIDDEN | SYSTEM; /*;AN000;*/ status = Find_first(subdirectory,next,&search_attrib); while (status == NOERROR) { @@ -2278,7 +2279,7 @@ WORD Do_dir(path,file) strcpy(subdirectory,path); strcat(subdirectory,"*.*"); - search_attrib = SUBDIR; /*;AN000;*/ + search_attrib = SUBDIR | HIDDEN | SYSTEM; /*;AN000;*/ status = Find_next(next,&search_attrib); } } /* while */ @@ -2292,21 +2293,18 @@ WORD Do_dir(path,file) strcpy(subdirectory,path); strcat(subdirectory,file); - search_attrib = SUBDIR; /*;AN000;*/ + search_attrib = SUBDIR | HIDDEN | SYSTEM; /*;AN000;*/ status = Find_first(subdirectory,next,&search_attrib); while(status == NOERROR) { - /* Check that this file is not a directory, system file, */ - /* or a hidden file. */ + /* Check that this file is not a directory */ if ( (next[0] != '.') && - ((search_attrib & SUBDIR) == 0) && - ((search_attrib & SYSTEM) == 0) && - ((search_attrib & HIDDEN) == 0) ) { + ((search_attrib & SUBDIR) == 0) ) { status = Attrib(path,next); } if (status == NOERROR) { - search_attrib = SUBDIR; /*;AN000;*/ + search_attrib = SUBDIR | HIDDEN | SYSTEM; /*;AN000;*/ status = Find_next(next,&search_attrib); } } /* while */ diff --git a/src/CMD/ATTRIB/ATTRIB.H b/src/CMD/ATTRIB/ATTRIB.H index 5297d11..1922d41 100644 --- a/src/CMD/ATTRIB/ATTRIB.H +++ b/src/CMD/ATTRIB/ATTRIB.H @@ -188,6 +188,11 @@ char plusa[] = "+A"; /*;AN000; strings for match */ char minusa[] = "-A"; /*;AN000;*/ char plusr[] = "+R"; /*;AN000;*/ char minusr[] = "-R"; /*;AN000;*/ +char pluss[] = "+S"; /*;AN000; strings for match */ +char minuss[] = "-S"; /*;AN000;*/ +char plush[] = "+H"; /*;AN000;*/ +char minush[] = "-H"; /*;AN000;*/ + struct p_null noval = /*;AN000; structure for no value list */ { 0 }; /*;AN000;*/ @@ -196,11 +201,19 @@ struct ps_valist_blk vals1 = /*;AN000; +A-A+R-R value list */ { p_nval_string, /*;AN000; string value list type */ 0, /*;AN000; number of ranges */ 0, /*;AN000; number of numbers */ - 4, /*;AN000; number of strings */ + 8, /*;AN000; number of strings */ 0x20, /*;AN000; item tag */ (WORD)plusa, /*;AN000; address of string */ 0x20, /*;AN000; item tag */ (WORD)minusa, /*;AN000; address of string */ + HIDDEN, /*;AN000; item tag */ + (WORD)plush, /*;AN000; address of string */ + HIDDEN, /*;AN000; item tag */ + (WORD)minush, /*;AN000; address of string */ + SYSTEM, /*;AN000; item tag */ + (WORD)pluss, /*;AN000; address of string */ + SYSTEM, /*;AN000; item tag */ + (WORD)minuss, /*;AN000; address of string */ 0x01, /*;AN000; item tag */ (WORD)plusr, /*;AN000; address of string */ 0x01, /*;AN000; item tag */ @@ -433,7 +446,7 @@ BYTE bits[8] = { 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01 }; /*;AN000 BYTE pmask, /*;AN000;*/ mmask; /*;AN000;*/ -char as[8] = { ' ',' ','A',' ',' ',' ',' ','R' }; /*;AN000;*/ +char as[8] = { ' ',' ','A',' ',' ','S','H','R' }; /*;AN000;*/ char fix_es_reg[1]; /*;AN000;*/ char ext_attr[MAX_KEYWORD]; /*;AN000;*/ char error_file_name[256]; /*;AN005;*/