Changeset 7 for trunk/gtk/util.c
- Timestamp:
- Jan 12, 2006, 6:40:47 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gtk/util.c
r5 r7 25 25 */ 26 26 27 #include <sys/types.h> 28 #include <sys/stat.h> 29 #include <errno.h> 27 30 #include <stdarg.h> 31 #include <string.h> 32 28 33 #include <gtk/gtk.h> 29 34 … … 31 36 32 37 static void 33 errcb(GtkWidget *wi dget, int resp, gpointer data);38 errcb(GtkWidget *wind, int resp, gpointer data); 34 39 35 40 gboolean … … 51 56 } 52 57 58 gboolean 59 mkdir_p(const char *name, mode_t mode) { 60 struct stat sb; 61 char *parent; 62 gboolean ret; 63 int oerrno; 64 65 if(0 != stat(name, &sb)) { 66 if(ENOENT != errno) 67 return FALSE; 68 parent = g_path_get_dirname(name); 69 ret = mkdir_p(parent, mode); 70 oerrno = errno; 71 g_free(parent); 72 errno = oerrno; 73 return (ret ? (0 == mkdir(name, mode)) : FALSE); 74 } 75 76 if(!S_ISDIR(sb.st_mode)) { 77 errno = ENOTDIR; 78 return FALSE; 79 } 80 81 return TRUE; 82 } 83 53 84 GtkWidget * 54 errmsg(GtkWi dget*wind, const char *format, ...) {85 errmsg(GtkWindow *wind, const char *format, ...) { 55 86 GtkWidget *dialog; 56 87 va_list ap; … … 64 95 65 96 GtkWidget * 66 errmsg_full(GtkWi dget*wind, errfunc_t func, void *data,97 errmsg_full(GtkWindow *wind, errfunc_t func, void *data, 67 98 const char *format, ...) { 68 99 GtkWidget *dialog; … … 77 108 78 109 GtkWidget * 79 verrmsg(GtkWi dget*wind, errfunc_t func, void *data,110 verrmsg(GtkWindow *wind, errfunc_t func, void *data, 80 111 const char *format, va_list ap) { 81 112 GtkWidget *dialog; … … 89 120 NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", msg); 90 121 else 91 dialog = gtk_message_dialog_new( 92 GTK_ WINDOW(wind), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,122 dialog = gtk_message_dialog_new(wind, 123 GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, 93 124 GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", msg); 94 125 … … 99 130 g_signal_connect(dialog, "response", G_CALLBACK(errcb), funcdata); 100 131 if(NULL != wind) 101 gtk_widget_show _all(dialog);132 gtk_widget_show(dialog); 102 133 g_free(msg); 103 134
Note: See TracChangeset
for help on using the changeset viewer.