>>>>> Moritz Lennert <[EMAIL PROTECTED]> writes: [...]
>>> int D_color_number_to_RGB(int color, int &r, int &g, int &b) [...] >>> if (color <= 0) return 0; >> BTW, is it a GRASS convention to use 0 to indicate failure? >> Standard C library functions tend to use -1 for failure, while using >> non-negative values to indicate success. > The SUBMITTING file in the source code says: > 8. Exit status is defined as EXIT_SUCCESS or EXIT_FAILURE, e.g. > { > ... > if (G_parser (argc, argv)) > exit (EXIT_FAILURE); > ... > exit (EXIT_SUCCESS); > } > AFAIU, these are defined in stlib as being respectively 0 and 1. Yes. But the conventions for the exit code of a program are hardly applicable to the return value of a function. Consider, e. g. (from ``The GNU C Library Reference Manual''): --cut: (libc) Opening and Closing Files-- -- Function: int open (const char *FILENAME, int FLAGS[, mode_t MODE]) [...] The normal return value from `open' is a non-negative integer file descriptor. In the case of an error, a value of -1 is returned instead. [...] --cut: (libc) Opening and Closing Files-- Note that there's useful, and always non-negative, value to be returned on success. Negative values are therefore reserved for errors (from the point of view of the application programmer; the only value which may actually be returned by the function in the case of error is `-1'.) --cut: (libc) Process Group Functions-- -- Function: int setpgid (pid_t PID, pid_t PGID) [...] If the operation is successful, `setpgid' returns zero. Otherwise it returns `-1'. [...] --cut: (libc) Process Group Functions-- And there is no such a value, so zero is used to indicate success. Negative values are again reserved for errors. _______________________________________________ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev