view admin/notes/exit-value @ 70258:5dfde453f39e

(defgroup grep): Doc fix. (grep-auto-highlight): Remove. (grep-template): New defcustom. (grep-find-template): Rename from grep-tree-template. (grep-files-aliases): Rename from grep-tree-files-aliases. Remove "all" alias, add "l" alias. (grep-tree-ignore-case, grep-tree-ignore-CVS-directories): Remove. (grep-find-ignored-directories): New defcustom to replace grep-tree-ignore-CVS-directories, to facilitate ignoring subdirectories for multiple version control systems. (grep-mode-map): Add Recursive grep item to GREP menu. (grep-regexp-history, grep-files-history): New defvars. (grep-probe): New helper function. (grep-compute-defaults): Use it to simplify code. Adapt to name changes. Use `.' as base in grep-find-template rather than <D>. (grep): Remove superfluous highlight-regexp arg. Fix doc. Call grep-compute-defaults unconditionally. (grep-expand-keywords): New defconst. (grep-expand-template): Rename from grep-expand-command-macros. Simplify via grep-expand-keywords. Look at case-fold-search instead of grep-tree-ignore-case to add -i option. Bind case-fold-search to nil while matching keywords. (grep-tree-last-regexp, grep-tree-last-files): Remove. (grep-read-regexp, grep-read-files): New helper functions. (rgrep): Rename from grep-tree. Rework to use proper histories. Adapt to changes in defcustoms and functions above. (lgrep): New command, as grep, but using same interactive api as rgrep.
author Kim F. Storm <storm@cua.dk>
date Fri, 28 Apr 2006 22:22:01 +0000
parents dc9bd6dd0d8d
children
line wrap: on
line source

ttn 2004-05-09

The exit value of a program returning to the shell on unixoid systems is
typically 0 for success, and non-0 (such as 1) for failure.  For vms it is
odd (1,3,5...) for success, even (0,2,4...) for failure.

This holds from the point of view of the "shell" (in quotes because vms has a
different dispatch model that is not explained further here).

From the point of view of the program, nowadays stdlib.h on both type of
systems provides macros `EXIT_SUCCESS' and `EXIT_FAILURE' that should DTRT.

NB: The numerical values of these macros DO NOT need to fulfill the the exit
value requirements outlined in the first paragraph!  That is the job of the
`exit' function.  Thus, this kind of construct shows misunderstanding:

   #ifdef VMS
      exit (1);
   #else
      exit (0);
   #endif

Values aside from EXIT_SUCCESS and EXIT_FAILURE are tricky.



ttn 2004-05-12

Values aside from EXIT_SUCCESS and EXIT_FAILURE can be used to indicate
finer gradations of failure.  If this is the only information available
to the caller, clamping such values to EXIT_FAILURE loses information.
If there are other ways to indicate the problem to the caller (such as
a message to stderr) it may be ok to clamp.  In all cases, it is the
relationship between the program and its caller that must be examined.
[Insert ZAMM quote here.]