/[jscoverage]/trunk/util.h
ViewVC logotype

Diff of /trunk/util.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 87 by siliconforks, Mon May 5 20:05:27 2008 UTC revision 427 by siliconforks, Wed Feb 18 16:08:33 2009 UTC
# Line 1  Line 1 
1  /*  /*
2      util.h - general purpose utility routines      util.h - general purpose utility routines
3      Copyright (C) 2007, 2008 siliconforks.com      Copyright (C) 2007, 2008, 2009 siliconforks.com
4    
5      This program is free software; you can redistribute it and/or modify      This program is free software; you can redistribute it and/or modify
6      it under the terms of the GNU General Public License as published by      it under the terms of the GNU General Public License as published by
# Line 20  Line 20 
20  #ifndef UTIL_H_  #ifndef UTIL_H_
21  #define UTIL_H_  #define UTIL_H_
22    
23    #ifndef HAVE_VASPRINTF
24    #include <stdarg.h>
25    #endif
26    #include <stdbool.h>
27  #include <stdio.h>  #include <stdio.h>
28  #include <stdlib.h>  #include <stdlib.h>
29    
30  #include <sys/stat.h>  #include <sys/stat.h>
31    
32    #ifdef __cplusplus
33    extern "C" {
34    #endif
35    
36  extern const char * program;  extern const char * program;
37    
38  void fatal(const char * format, ...)  void fatal(const char * format, ...)
39    __attribute__((__noreturn__))    __attribute__((__noreturn__))
40    __attribute__((__format__(printf, 1, 2)));    __attribute__((__format__(printf, 1, 2)));
41    
42    void fatal_command_line(const char * format, ...)
43      __attribute__((__noreturn__))
44      __attribute__((__format__(printf, 1, 2)));
45    
46    void fatal_source(const char * source_file, unsigned int line_number, const char * format, ...)
47      __attribute__((__noreturn__))
48      __attribute__((__format__(printf, 3, 4)));
49    
50    void warn_source(const char * source_file, unsigned int line_number, const char * format, ...)
51      __attribute__((__format__(printf, 3, 4)));
52    
53    void version(void)
54      __attribute__((__noreturn__));
55    
56    size_t addst(size_t x, size_t y);
57    
58    size_t mulst(size_t x, size_t y);
59    
60  void * xmalloc(size_t size);  void * xmalloc(size_t size);
61    
62    #define xnew(type, count) ((type *) xmalloc(mulst((count), sizeof(type))))
63    
64  void * xrealloc(void * p, size_t size);  void * xrealloc(void * p, size_t size);
65    
66  char * xstrdup(const char * s);  char * xstrdup(const char * s);
67    
68    char * xstrndup(const char * s, size_t size);
69    
70    int xasprintf(char ** s, const char * format, ...) __attribute__((__format__(printf, 2, 3)));
71    
72  char * xgetcwd(void);  char * xgetcwd(void);
73    
74  FILE * xfopen(const char * file, const char * mode);  FILE * xfopen(const char * file, const char * mode);
# Line 51  Line 83 
83    
84  void mkdirs(const char * path);  void mkdirs(const char * path);
85    
86    bool str_starts_with(const char * string, const char * prefix);
87    
88    bool str_ends_with(const char * string, const char * suffix);
89    
90  char * make_path(const char * parent, const char * relative_path);  char * make_path(const char * parent, const char * relative_path);
91    
92  char * make_canonical_path(const char * relative_path);  char * make_canonical_path(const char * relative_path);
# Line 67  Line 103 
103    
104  void copy_file(const char * source_file, const char * destination_file);  void copy_file(const char * source_file, const char * destination_file);
105    
106  int directory_is_empty(const char * directory);  bool directory_is_empty(const char * directory);
107    
108  struct DirListEntry {  struct DirListEntry {
109    char * name;    char * name;
# Line 78  Line 114 
114    
115  void free_dir_list(struct DirListEntry * list);  void free_dir_list(struct DirListEntry * list);
116    
117    #ifndef HAVE_STRNDUP
118    char * strndup(const char * s, size_t size);
119    #endif
120    
121    #ifndef HAVE_VASPRINTF
122    int vasprintf(char ** s, const char * format, va_list a);
123    #endif
124    
125    #ifndef HAVE_ASPRINTF
126    int asprintf(char ** s, const char * format, ...) __attribute__((__format__(printf, 2, 3)));
127  #endif  #endif
128    
129    #ifdef __cplusplus
130    }
131    #endif
132    
133    #endif /* UTIL_H_ */

Legend:
Removed from v.87  
changed lines
  Added in v.427

  ViewVC Help
Powered by ViewVC 1.1.24