/* Test for file exists. */ int im_existsf( const char *name, ... ) { va_list ap; char buf1[PATH_MAX]; va_start( ap, name ); (void) im_vsnprintf( buf1, PATH_MAX - 1, name, ap ); va_end( ap ); /* Try that. */ if( !access( buf1, R_OK ) ) return( 1 ); return( 0 ); }
/* Mark up a top/sub pair for a dialog box. */ static void box_vmarkup( char *out, const char *top, const char *sub, va_list ap ) { char buf1[MAX_DIALOG_TEXT]; char buf2[MAX_DIALOG_TEXT]; char buf3[MAX_DIALOG_TEXT]; escape_markup( top, buf1, MAX_DIALOG_TEXT ); (void) im_vsnprintf( buf2, MAX_DIALOG_TEXT, sub, ap ); escape_markup( buf2, buf3, MAX_DIALOG_TEXT ); (void) im_snprintf( out, MAX_DIALOG_TEXT, "<b><big>%s</big></b>", buf1 ); if( strcmp( buf3, "" ) != 0 ) { int len = strlen( out ); (void) im_snprintf( out + len, MAX_DIALOG_TEXT - len, "\n\n%s", buf3 ); } }
/*VARARGS2*/ static void box_error( GtkWidget *par, const char *fmt, ... ) { va_list ap; char buf[MAX_DIALOG_TEXT]; GtkWidget *idlg; va_start( ap, fmt ); (void) im_vsnprintf( buf, MAX_DIALOG_TEXT, fmt, ap ); va_end( ap ); idlg = idialog_new(); idialog_set_build( IDIALOG( idlg ), (iWindowBuildFn) box_build, buf, GTK_STOCK_DIALOG_ERROR, NULL ); idialog_set_callbacks( IDIALOG( idlg ), NULL, NULL, NULL, NULL ); idialog_add_ok( IDIALOG( idlg ), iwindow_true_cb, GTK_STOCK_OK ); iwindow_set_parent( IWINDOW( idlg ), box_pick_parent( par ) ); iwindow_build( IWINDOW( idlg ) ); gtk_widget_show( GTK_WIDGET( idlg ) ); }