ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/libstatgrab/src/libstatgrab/error.c
(Generate patch)

Comparing projects/libstatgrab/src/libstatgrab/error.c (file contents):
Revision 1.8 by ats, Wed Apr 7 21:19:26 2004 UTC vs.
Revision 1.13 by tdb, Fri Jul 16 15:28:02 2004 UTC

# Line 26 | Line 26
26   #endif
27  
28   #include <stdlib.h>
29 + #include <string.h>
30 + #include <errno.h>
31  
32   #include "statgrab.h"
33 + #include "tools.h"
34  
35   static sg_error error = SG_ERROR_NONE;
36   #define ERROR_ARG_MAX 256
37   static char error_arg[ERROR_ARG_MAX];
38 + static int errno_value = 0;
39  
40   void sg_set_error(sg_error code, const char *arg) {
41          error = code;
42 <        strlcpy(error_arg, arg, sizeof error_arg);
42 >        if (arg != NULL) {
43 >                sg_strlcpy(error_arg, arg, sizeof error_arg);
44 >        }
45 >        else {
46 >                /* FIXME is this the best idea? */
47 >                error_arg[0] = '\0';
48 >        }
49   }
50  
51 + void sg_set_error_with_errno(sg_error code, const char *arg) {
52 +        errno_value = errno;
53 +        sg_set_error(code, arg);
54 + }
55 +
56   sg_error sg_get_error() {
57          return error;
58   }
59  
60   const char *sg_get_error_arg() {
61          return error_arg;
62 + }
63 +
64 + const int sg_get_error_errno() {
65 +        return errno_value;
66   }
67  
68   const char *sg_str_error(sg_error code) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines