Move the shared GRANT/REMOVE/REVOKE header path formatting into trustee.c.
The Novell trustee tools display the server and volume separator as
SERVER/SYS: while keeping the remaining path separators as DOS backslashes.
Use one trustee_header_path() helper for that formatting instead of keeping
separate local copies in GRANT, REMOVE and REVOKE.
No behavior change.
Replace small local option helper wrappers with the shared tools.c helpers.
SLIST now uses tool_is_help_arg() directly, and REMOVE/REVOKE use
tool_is_files_option() and tool_is_subdirs_option() instead of Trustee-specific
wrappers. This keeps trustee.c focused on Rights/Trustee behavior and leaves
generic command-line option handling in tools.c.
No behavior change.
Remove generic wrapper helpers from trustee.c and switch GRANT/REMOVE/REVOKE
callers to the shared tools.c helpers directly.
Keep trustee.c focused on Trustee/Rights-specific behavior such as option
parsing, rights parsing/formatting, object lookup and trustee path handling.
The generic string, current directory handle, uppercase and path helper logic
now lives in tools.c where it can be reused by other DOS utilities.
Add GPL-2-or-later license headers to the DOS utility source files and
document the purpose and local dependencies of each C, header and assembler
file.
Preserve the original Martin Stover copyright attribution for the historic
MARS-NWE utility sources, including files that did not previously carry an
explicit header but are part of the original tool set. Add Mario Fetka as the
2026 copyright holder for the current maintenance work, and use Mario-only
headers for files without original Martin Stover ownership.
Also add a root-level COPYING file containing the GPL-2 license text.
Implement REVOKE and REMOVE for the Client32 DOS utilities.
REVOKE now supports Novell-style syntax:
REVOKE rightslist* [FOR path] FROM [USER|GROUP] name [options]
and removes rights from explicit trustee assignments. It scans the
trustee list first, updates the trustee rights mask, and deletes the
trustee entry when no rights remain.
REMOVE now supports Novell-style syntax:
REMOVE [USER | GROUP] name [FROM path] [option]
and deletes explicit trustee assignments for users or groups.
Both tools support USER/GROUP lookup, /FILES, /SUBDIRS,
/SUBDIRECTORIES, wildcard file targets, recursive directory handling,
Novell-style help text and summary output. Missing trustee entries are
reported with Novell-style "No trustee for the specified ..." messages.
Add shared trustee helpers and Client32 NCP87 trustee scan/delete
support. Also adjust GRANT ALL so it matches Novell behavior by not
granting Supervisor implicitly; Supervisor must be granted explicitly.