Abbreviations: plb - Phil Brutsche (the original author) ber - Brian Reifsnyder (new maintainer as of 2001) dal - David Lindauer (added subdirectory support) avb - Arkady Belousov, 1998/02/12 (plb), version 0.1 + Initial version. 1998/02/13 (plb) + Started documentation. * Fixed bug in display_attribs where if there were no files found, the program exited regardless of any remaining file specifications in the argument list. 1998/02/18 (plb), version 0.2 + Finished documentation. + Changed calls to _dos_setfileattr and _dos_getfileattr to use the internal function setfileattr. This function was created by me for use in this program; It will be submitted to the maintainer of the FreeDOS C Library shortly. 1998/02/22 (plb) + Added MS undocumented function: `attrib ,` will unset all file attributes. 1998/02/24 (plb), version 0.3 + Added ability to change attributes on directories. 1998/03/08 (plb), version 0.4 * Rewrote to be able to use file lists (ie `attrib @filename` or `attrib @-`) per a suggestion from Charles Dye . 1998/03/16 (plb), version 0.5 * Updated these friggin' comments :-). + Added a command-line parameter (`/?` in case yer interested. `-?` works too.) to display online help. 1998/07/19 (plb), version 0.60 Fixed bugs: * If files in another directory are specified, or are on another drive, it will set the attributes for the appropriately names file in the current directory. * If only a drive is specified (ie `attrib d:`) it will assume `*.*` was meant. 1998/07/21 (plb) Fixed bugs: + In 4DOS attrib and MS-DOS attrib, if you give some attributes but no file names it will give all files and directories in the current directory those attributes. (eg `attrib +r` would set all the files in the current directory as read-only). This attrib didn't do that. 1998/08/29 (plb) Changed behavior: + As per a suggestion from Charles Dye , specifying only a directory on the command line will display the attributes for that directory. 1998/08/30 (plb) Changed behavior: * As per a suggestion from Charles Dye , it now ignores the directory entries `..` and `.`. 1998/09/02 (plb), version 0.63 1998/09/04 (plb), version 0.63a * When I released 0.63, I forgot to change the variable attrib_version from "0.60" to "0.63". Oops! Fixed now. 1998/09/26 (plb), version 0.64 + Fixed a problem where ATTRIB didn't play nicely with FreeDOS. 2000/08/15 (plb), version 1.0 There appears that no major new bugs have been reported. I'm releasing this as 1.0 and crossing my fingers... 2001/07/25 (ber), version 1.10 Minor changes: * Changed the appearance of the online help information. * Cleaned up and re-ordered source code. + Executable is now a packed with Apack 0.99b, written by Jorgen Ibsen. Greetings to Jorgen Ibsen! 2001/08/07, version 1.20 + Added subdir support. (dal) * Re-structured source code. (ber) 2002/08/01 (avb), version 2.0 Bugfixes: * two characters targets was ignored: has_filespec wasn't assigned 1 when argument have two characters but not begins from '+' nor '-'. * target with trailing backslash or extension without name now handled correctly. * last line in file-list without CRLF now handled correctly. * [version 0.2] setfileattr() call intr(), which not sets `errno' and thus perror() reflects old (or zero) error code. Instead replacing intr() by intdosx(), setfileattr() replaced back to _dos_setfileattr(). * [version 0.3] now comma clear all attributes if no attribute options and for all files if no other targets, else comma will be ignored (as in MS ATTRIB). As previously comma inside arguments will not be parsed (unlike MS ATTRIB, where comma inside argument also splits argument). - [version 0.64?] removed check for FreeDOS bug, which long ago fixed; with this check directory attributes in FreeDOS will not be affected. - [version 1.20] perror() inside set_file_attribs was not removed; this causes extraneous error message for each subdirectory, where required targets not found. - [version 1.20] xsplit() count as extension all after rightmost dot, even if file name itself not contains dot; this causes wrong parsing and buffer overrun. + [version 1.21] with checking old FreeDOS bug was removed FA_DIREC attribute clearing. FA_DIREC attribute clearing returned. Changes and additions: + added batch file and configuration file for compilation. + source cleaned and optimized; from executable removed superfluous code. - "Version" and "Copyright" reverted back to "VeRsIoN" and "CoPyRiGhT", but later deleted. * literals replaced by names (PATHLEN) and expressions (sizeof(line)). + added `D' marker for directories. * directories now skipped when target contains wildcards. + added option "/D" to include directories into search by wildcards. * "@" prefix replaced by "/@" option. + new command line parsing: comma before arguments is removed (but clears all attributes if no other attribute options); added support for options combinations ("/s/d", "+r/d") and clusters ("/sd", "+rhs/sd/@"); wrong attributes and options are diagnosed. + added strupr() for lines from file-list. + in lines from file-list removed enclosing spaces and quotes pair. + ordered errorlevels returned for each event. Questions: - missed documenation, mentioned above.