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(){}