[comp.sys.ibm.pc] MS-DOS file mode changer

bright@dataio.Data-IO.COM (Walter Bright) (01/20/87)

Here is a short utility, with source, to display and modify the
attribute bits of a file. I wrote it after I wrote a program that,
due to bugs, caused a lot of my files to be hidden. For some
obscure reason, the Norton Utilities don't contain a general attribute
changer.

		- Walter Bright

#	This is a shell archive.
#	Remove everything above and including the cut line.
#	Then run the rest of the file through sh.
-----cut here-----cut here-----cut here-----cut here-----
#!/bin/sh
# shar:	Shell Archiver
#	Run the following text with /bin/sh to create:
#	chmod.c
#	chmod.uue
# This archive created: Mon Jan 19 13:49:06 1987
# By:	Walter Bright ()
cat << \SHAR_EOF > chmod.c
/*_ chmod.c   Mon Jan 19 1987   Modified by: Walter Bright */
/* Copyright (C) 1987 by Walter Bright	*/
/* All Rights Reserved			*/
/* To compile with Datalight C:		*/
/*	dlc -mci chmod			*/

#include <stdio.h>
#include <dos.h>

/* Attribute bits:	*/
#define R	1
#define H	2
#define S	4
#define V	8
#define D	0x10
#define A	0x20

main(argc,argv)
int argc;
char *argv[];
{	int i,j,c;
	char *p;
	struct FIND *find;
	unsigned onmask,offmask;
	static char flag[9] = "RHSVDAUU";

	if (argc <= 1)
		usage();
	p = argv[1];
	if (*p == '+' || *p == '-')
	{
	    onmask = 0;
	    offmask = 0;
	    while (1)
	    {
		c = toupper(p[1]);
		if (*p == '+')
		{    switch (c)
		     {	case 'R':	onmask |= R;	break;
			case 'H':	onmask |= H;	break;
			case 'S':	onmask |= S;	break;
			case 'V':	onmask |= V;	break;
			case 'D':	onmask |= D;	break;
			case 'A':	onmask |= A;	break;
			default:
				faterr("unrecognized flag '%s'",p);
		    }
		}
		else if (*p == '-')
		{    switch (c)
		     {	case 'R':	offmask |= R;	break;
			case 'H':	offmask |= H;	break;
			case 'S':	offmask |= S;	break;
			case 'V':	offmask |= V;	break;
			case 'D':	offmask |= D;	break;
			case 'A':	offmask |= A;	break;
			default:
				faterr("unrecognized flag '%s'",p);
		    }
		}
		else if (*p == 0)
		    break;
		else
		    faterr("unrecognized flag '%s'",p);
		p += 2;
	    }
	    for (i = 2; i < argc; i++)
	    {
		find = findfirst(argv[i],0xFF);
		while (find)
		{	c = find->attribute;
			c = (c & ~offmask) | onmask;
			chmod(find->name,c);
			find = findnext();
		}
	    }
	}
	else /* merely print the attributes of the files */
	{
	    for (i = 1; i < argc; i++)
	    {
		find = findfirst(argv[i],0xFF);
		while (find)
		{   c = find->attribute;
		    for (j = 7; j >= 0; j--)
			if ((1 << j) & c)
				printf("%c",flag[j]);
			else
				printf("-");
		    printf("\t0x%02x\t%s\n",c,find->name);
		    find = findnext();
		}
	    }
	}
}

/********************
 * Change attribute of file.
 */

int chmod(filename,mode)
char *filename;
int mode;
{	REGS regs;

	regs.ax = 0x4301;
	regs.cx = mode;
	regs.dx = (int) filename;
	intdos(&regs,&regs);
}

faterr(f,p)
char *f,*p;
{
	printf("Fatal error: ");
	printf(f,p);
	printf("\n");
	exit(1);
}

usage()
{
	printf("\
File attribute byte display/modification program.\n\
Use:\n\
	chmod {(+|-)flag} file...\n\
Where:\n\
	flag is one of R,H,S,V,D,A\n\
	R	Read-only\n\
	H	Hidden\n\
	S	System\n\
	V	Volume label\n\
	D	Sub-directory\n\
	A	Archive\n\
\n\
If no flags are given, the attributes are displayed.\n\
");
}

SHAR_EOF
cat << \SHAR_EOF > chmod.uue
begin 644 chmod.com
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
MB0?K%HM>"O]W"O]W O]W".CP^XGLBUX*B0>+7@K_#XL'"<")1@)Y,SW__W47
M@\,&@0\( (L'J2  B5X"= Z!)^__ZPB+7@J!3P80 (M>"L<'  "X__^#Q 9=
MPS' @\0&7<-5B^P>BTX$CMF+=@:+?@B+3@KSI!]=PU6+[ :+3@2.P8M^!HMV
M"(M."O.D!UW#     $YO<G1H=V5S="!#+"!W<FET=&5N(&)Y(%=A;'1E<B!"
M<FEG:'0     )@                                              
M                                          !M    ;0          
M            #0I3=&%C:R!/=F5R9FQO=PT*) T*3F]T(&5N;W5G:"!M96UO
M<GD-"B0-"D)A9"!S=&%C:R!S:7IE('!A<F%M971E<@T*) T*1$]3(#$N>'@@
M;F]T('-U<'!O<G1E9 T*) T*3VYL>2 S,B!A<F=S(&%L;&]W960-"B0-"D9L
M;V%T:6YG('!O:6YT(&YO="!L;V%D960-"B204DA35D1!554 =6YR96-O9VYI
M>F5D(&9L86<@)R5S)P!U;G)E8V]G;FEZ960@9FQA9R G)7,G '5N<F5C;V=N
M:7IE9"!F;&%G("<E<R< )6, +0 ),'@E,#)X"25S"@  4@!( %, 5@!$ $$ 
M.@-" TH#4@-: V$#4@!( %, 5@!$ $$ CP.6 YT#I .K [(#1F%T86P@97)R
M;W(Z(  * $9I;&4@871T<FEB=71E(&)Y=&4@9&ES<&QA>2]M;V1I9FEC871I
M;VX@<')O9W)A;2X*57-E.@H)8VAM;V0@>R@K?"TI9FQA9WT@9FEL92XN+@I7
M:&5R93H*"69L86<@:7,@;VYE(&]F(%(L2"Q3+%8L1"Q!"@E2"5)E860M;VYL
M>0H)2 E(:61D96X*"5,)4WES=&5M"@E6"59O;'5M92!L86)E; H)1 E3=6(M
M9&ER96-T;W)Y"@E!"4%R8VAI=F4*"DEF(&YO(&9L86=S(&%R92!G:79E;BP@
M=&AE(&%T=')I8G5T97,@87)E(&1I<W!L87EE9"X*         #!8 #!X   M
M "L (  C #L&0@9)!E &<P E &, 9 !I &\ =0!8 '@ < !F &4 10!G $< 
M;@"(!\$'QP?A!^$'- @["%@(70A="%,)4PI3"C<+-PO2#"T *P @     0  
M                                                           @
M        00    $           !"  $  0           $8  @ !        
M    8  #  $           !"  0  0                              
M                                                            
M                                                            
M                                                            
M                                                            
M                                          (" @(" @(" @,# P,#
M @(" @(" @(" @(" @(" @("!4! 0$! 0$! 0$! 0$! 0(" @(" @(" @(! 
M0$! 0$! &!@8&!@8$! 0$! 0$! 0$! 0$! 0$! 0$!! 0$! 0$ H*"@H*"@@
M(" @(" @(" @(" @(" @(" @($! 0$ "                            
M                                                            
M                                                            
3                            
 
end
SHAR_EOF
#	End of shell archive
exit 0

bobmon@iuvax.UUCP (Robert Montante) (01/22/87)

[ The referenced article provides a mode-changer, and says Norton Utilities
doesn't affect the attributes... ]

A copy of the Norton v2 documentation indicates that the FileHide program
controls System, Read-only, and Hidden attributes.  In v3.1 the FileAttribute
program controls those and the Archive bits (my manual is a bit vague, but it
seems to imply that v3.0 didn't affect Hidden or System attributes).