From 02566b661fcba3b5602d761f9564738157a32e0c Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Sat, 23 May 2026 10:19:30 +0200 Subject: [PATCH] flag --- flag.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/flag.c b/flag.c index b2467e2..ec74f16 100644 --- a/flag.c +++ b/flag.c @@ -39,7 +39,6 @@ static void flag_help(void) fprintf(stdout, "USAGE: FLAG [path [ option | [+|-] attribute(s) ] [SUB]]\n"); fprintf(stdout, "\n"); fprintf(stdout, "386 Attributes:\n"); - fprintf(stdout, "--------------\n"); fprintf(stdout, "\n"); fprintf(stdout, "RO Read Only\n"); fprintf(stdout, "RW Read Write\n"); @@ -167,7 +166,7 @@ static int flag_apply(char *pattern, unsigned setbits, unsigned clearbits) { struct find_t ff; unsigned findattr = _A_RDONLY | _A_HIDDEN | _A_SYSTEM | _A_ARCH; - int changed = 0; + int shown = 0; if (_dos_findfirst(pattern, findattr, &ff)) return(-1); @@ -188,15 +187,20 @@ static int flag_apply(char *pattern, unsigned setbits, unsigned clearbits) newattr = (attr | setbits) & ~clearbits; if (newattr != attr) { - if (!_dos_setfileattr(fname, newattr)) - changed++; - else + if (_dos_setfileattr(fname, newattr)) { fprintf(stderr, "You don't have rights to change : %s\n", fname); + continue; + } + attr = newattr; } + /* Novell FLAG prints the resulting file entry after a change command. */ + flag_display_one(fname, attr); + shown++; + } while (!_dos_findnext(&ff)); - return(changed); + return(shown); } int func_flag(int argc, char *argv[], int mode) @@ -237,8 +241,6 @@ int func_flag(int argc, char *argv[], int mode) return(1); } - if (rc) fprintf(stdout, "Changed some\n"); - else fprintf(stdout, "None changed\n"); return(0); }