modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/920625-2.c (about) 1 typedef char * caddr_t; 2 typedef unsigned Cursor; 3 typedef char *String; 4 typedef struct _WidgetRec *Widget; 5 typedef char Boolean; 6 typedef unsigned int Cardinal; 7 typedef struct _XedwListReturnStruct { 8 String string; 9 int xedwList_index; 10 struct _XedwListReturnStruct *next; 11 } XedwListReturnStruct; 12 static XedwListReturnStruct *return_list; 13 static String srcdir, dstdir; 14 char *strcpy(); 15 extern void setCursor(Cursor); 16 extern void query_dialog(String, Boolean); 17 extern Boolean directoryManagerNewDirectory(String); 18 trashQueryResult(Widget w, Boolean delete, caddr_t call_data) 19 { 20 int execute(String, String, String, Boolean); 21 extern void destroy_button_dialog(void); 22 extern void changestate(Boolean); 23 24 extern Cursor busy, left_ptr; 25 extern String cwd; 26 extern void freeReturnStruct(void); 27 String rmstring; 28 int status; 29 XedwListReturnStruct *tmp; 30 setCursor(busy); 31 destroy_button_dialog(); 32 if (delete == 1) { 33 rmstring = (("rm -fr") != ((void *)0) ? (strcpy((char*)XtMalloc((unsigned)strlen("rm -fr") + 1), "rm -fr")) : ((void *)0)); 34 tmp = return_list; 35 while (tmp != ((void *)0)) { 36 rmstring = (String) XtRealloc (rmstring, sizeof(char) * 37 (strlen(rmstring) + 38 strlen(tmp->string) + 5)); 39 sprintf(rmstring, "%s '%s'", rmstring, tmp->string); 40 tmp = tmp->next; 41 } 42 if ((status = execute(((void *)0), "rm", rmstring, 1)) != 0) { 43 XBell(XtDisplay(w), 100); 44 query_dialog("Can't remove file", 0); 45 } 46 XtFree(rmstring); 47 48 directoryManagerNewDirectory(cwd); 49 } else { 50 changestate(1); 51 } 52 setCursor(left_ptr); 53 freeReturnStruct(); 54 } 55 56 copyQueryResult(Widget w, Boolean copy, caddr_t call_data) 57 { 58 extern void destroy_button_dialog(); 59 extern void changestate(Boolean); 60 extern Cursor busy, left_ptr; 61 extern void freeReturnStruct(void); 62 int execute(String, String, String, Boolean); 63 extern String cwd; 64 String copystring; 65 int status; 66 Cardinal srclen, dstlen; 67 XedwListReturnStruct *tmp; 68 destroy_button_dialog(); 69 setCursor(busy); 70 if (copy == 1) { 71 srclen = strlen(srcdir); 72 dstlen = strlen(dstdir); 73 copystring = (("cp -r") != ((void *)0) ? (strcpy((char*)XtMalloc((unsigned)strlen("cp -r") + 1), "cp -r")) : ((void *)0)); 74 tmp = return_list; 75 while (tmp != ((void *)0)) { 76 copystring = (String) XtRealloc (copystring, sizeof(char) * 77 (strlen(copystring) + 78 strlen(tmp->string) + 79 srclen + 6)); 80 sprintf(copystring, "%s '%s/%s'", copystring, srcdir, tmp->string); 81 tmp = tmp->next; 82 } 83 copystring = (String) XtRealloc (copystring, sizeof(char) * 84 (strlen(copystring) + 85 dstlen + 5)); 86 sprintf(copystring, "%s '%s'", copystring, dstdir); 87 if ((status = execute(((void *)0), "cp", copystring, 1)) != 0) { 88 XBell(XtDisplay(w), 100); 89 query_dialog("Can't copy file!", 0); 90 } 91 XtFree(copystring); 92 93 directoryManagerNewDirectory(cwd); 94 } else { 95 changestate(1); 96 } 97 XtFree(srcdir); 98 XtFree(dstdir); 99 setCursor(left_ptr); 100 freeReturnStruct(); 101 } 102 103 void freeReturnStruct(){}