[BACK]Return to xdeb.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / parse

Diff for /OpenXM_contrib2/asir2000/parse/xdeb.c between version 1.6 and 1.18

version 1.6, 2000/09/25 04:33:38 version 1.18, 2020/10/04 03:14:09
Line 45 
Line 45 
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  *   *
  * $OpenXM: OpenXM_contrib2/asir2000/parse/xdeb.c,v 1.5 2000/09/23 05:45:49 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/parse/xdeb.c,v 1.17 2018/03/29 01:32:54 noro Exp $
 */  */
 #if defined(VISUAL)  #if defined(VISUAL) || defined(__MINGW32__)
 #if defined(VISUAL_LIB)  #if defined(VISUAL_LIB)
 #include <stdio.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
Line 68  void get_rootdir(char *,int);
Line 68  void get_rootdir(char *,int);
   
 void show_debug_window(int on)  void show_debug_window(int on)
 {  {
         static int debug_gui_invoked = 0;    static int debug_gui_invoked = 0;
   
         /* debug_gui_invoked < 0 : failed to invoke debug GUI */    /* debug_gui_invoked < 0 : failed to invoke debug GUI */
         if ( debug_gui_invoked < 0 )    if ( debug_gui_invoked < 0 )
                 return;      return;
         if ( !debug_gui_invoked ) {    if ( !debug_gui_invoked ) {
                 if ( !on )      if ( !on )
                         return;        return;
                 else if ( create_debug_gui() < 0 ) {      else if ( create_debug_gui() < 0 ) {
                         debug_gui_invoked = -1;        debug_gui_invoked = -1;
                         return;        return;
                 }      }
                 debug_gui_invoked = 1;      debug_gui_invoked = 1;
         }    }
         set_debug_handles(on);    set_debug_handles(on);
 }  }
   
 #else /* VISUAL_LIB */  #else /* VISUAL_LIB */
Line 90  void show_debug_window(int on)
Line 90  void show_debug_window(int on)
 {}  {}
 #endif  #endif
 #else /* VISUAL */  #else /* VISUAL */
 #if DO_PLOT  #if defined(DO_PLOT)
 /*  /*
  *      xdeb.c --- Asir Debug interface.   *  xdeb.c --- Asir Debug interface.
  *   *
  *              akashi@sy.ssl.fujitsu.co.jp   *    akashi@sy.ssl.fujitsu.co.jp
  */   */
 #include <X11/Intrinsic.h>  #include <X11/Intrinsic.h>
 #include <X11/StringDefs.h>  #include <X11/StringDefs.h>
 #include <X11/Shell.h>  #include <X11/Shell.h>
 #include <X11/Xaw/Dialog.h>  #include <X11/Xaw/Dialog.h>
 #include        <stdio.h>  #include  <stdio.h>
   #include <stdlib.h>
   #include <unistd.h>
   
 static XrmOptionDescRec options[] = {  static XrmOptionDescRec options[] = {
         {"-reverse","*reverse",XrmoptionNoArg,"on"},    {"-reverse","*reverse",XrmoptionNoArg,"on"},
         {"-fg","*foreground",XrmoptionSepArg,NULL},    {"-fg","*foreground",XrmoptionSepArg,NULL},
         {"-bg","*background",XrmoptionSepArg,NULL},    {"-bg","*background",XrmoptionSepArg,NULL},
 };  };
   
 static String fallback[] = {  static String fallback[] = {
         "*Dialog*baseTranslations:#override <Key>Return: done()",    "*Dialog*baseTranslations:#override <Key>Return: done()",
         NULL    NULL
 };  };
   
 static void Done();  static void Done();
   static void Quit();
 static void SetSelected();  static void SetSelected();
 static void SetDismiss();  static void SetDismiss();
   
 static XtActionsRec actions_table[] = {  static XtActionsRec actions_table[] = {
         {"done",Done},    {"done",Done},
     {"quit",Quit},
 };  };
   
 char debug_cmd[BUFSIZ];  char debug_cmd[BUFSIZ];
   
 static Widget           toplevel, mainwin, cmdwin;  static Widget    toplevel, mainwin, cmdwin;
 static XtAppContext     app_con;  static XtAppContext  app_con;
 static int done;  static int done;
 static Display *display;  static Display *display;
   
 void get_cmd();  void get_cmd();
   
 static void Done(w,e,p,n)  static void Done(Widget w,XEvent *e,String *p,Cardinal *n)
 Widget w;  
 XEvent *e;  
 String *p;  
 Cardinal *n;  
 {  {
         SetSelected(w,0,0);    SetSelected(w,0,0);
 }  }
   
 static void SetSelected(w,cld,cad)  static void SetSelected(Widget w,XtPointer cld,XtPointer cad)
 Widget w;  
 XtPointer cld,cad;  
 {  {
         Arg             arg[5];    Arg    arg[5];
         char *cmd;    char *cmd;
   
         done = 1;    done = 1;
         cmd = XawDialogGetValueString(cmdwin);    cmd = XawDialogGetValueString(cmdwin);
         strcpy(debug_cmd,cmd);    strcpy(debug_cmd,cmd);
         XtSetArg(arg[0], XtNvalue, "");    XtSetArg(arg[0], XtNvalue, "");
         XtSetValues(cmdwin, arg, 1);    XtSetValues(cmdwin, arg, 1);
 }  }
   
 static void SetDismiss(w,cld,cad)  static void SetDismiss(Widget w,XtPointer cld,XtPointer cad)
 Widget w;  
 XtPointer cld,cad;  
 {  {
         Arg             arg[5];    Arg    arg[5];
         char *cmd;    char *cmd;
   
         done = 1;    done = 1;
         cmd = XawDialogGetValueString(cmdwin);    cmd = XawDialogGetValueString(cmdwin);
         strcpy(debug_cmd,"quit");    strcpy(debug_cmd,"quit");
         XtSetArg(arg[0], XtNvalue, "");    XtSetArg(arg[0], XtNvalue, "");
         XtSetValues(cmdwin, arg, 1);    XtSetValues(cmdwin, arg, 1);
 }  }
   
 init_cmdwin()  static Atom wm_delete_window;
   static void Quit(Widget w, XEvent *ev, String *params,Cardinal *nparams)
 {  {
         Arg             arg[5];    XBell(XtDisplay(w),0);
         int argc=0;  }
         char *argv[1];  
         int n;  
         char *d;  
         char hostname[BUFSIZ],title[BUFSIZ];  
         extern char displayname[];  
         extern int do_server_in_X11;  
   
         if ( !displayname[0] ) {  void init_cmdwin()
                 d = (char *)getenv("DISPLAY");  {
                 if ( d )    Arg    arg[5];
                         strcpy(displayname,d);    int argc=0;
                 else    char *argv[1];
                         do_server_in_X11 = 0;    int n;
         }    char *d;
         gethostname(hostname, BUFSIZ);    char hostname[BUFSIZ],title[BUFSIZ];
         sprintf(title,"Asir debugger:%s",hostname);    extern char displayname[];
         if ( displayname[0] ) {    extern int do_server_in_X11;
                 argv[0] = 0;    static int is_init = 0;
                 XtToolkitInitialize();  
                 app_con = XtCreateApplicationContext();    if ( is_init )
                 XtAppAddActions(app_con,actions_table, XtNumber(actions_table));      return;
                 XtAppSetFallbackResources(app_con,fallback);    if ( !displayname[0] ) {
                 display = XtOpenDisplay(app_con,displayname,title,title,      d = (char *)getenv("DISPLAY");
                         options,XtNumber(options),&argc,argv);      if ( d )
                 toplevel = XtAppCreateShell(0,title,applicationShellWidgetClass,        strcpy(displayname,d);
                         display,0,0);      else
                 n = 0;        do_server_in_X11 = 0;
                 XtSetArg(arg[n],XtNiconName,title); n++;    }
                 XtSetArg(arg[n], XtNwidth, 360); n++;    gethostname(hostname, BUFSIZ);
                 mainwin = XtCreatePopupShell("shell",topLevelShellWidgetClass,    sprintf(title,"Asir debugger:%s",hostname);
                         toplevel,arg,n);    if ( displayname[0] ) {
         /*      argv[0] = 0;
          *      Command line      XtToolkitInitialize();
          */      app_con = XtCreateApplicationContext();
                 cmdwin = XtCreateManagedWidget("cmdwin", dialogWidgetClass,      XtAppAddActions(app_con,actions_table, XtNumber(actions_table));
                         mainwin, NULL, 0);      XtAppSetFallbackResources(app_con,fallback);
                 XawDialogAddButton(cmdwin,"Execute",SetSelected,"Execute");      display = XtOpenDisplay(app_con,displayname,title,title,
                 XawDialogAddButton(cmdwin,"Dismiss",SetDismiss,"Dismiss");        options,XtNumber(options),&argc,argv);
                 n = 0;      toplevel = XtAppCreateShell(0,title,applicationShellWidgetClass,
                 XtSetArg(arg[n], XtNlabel, "Command : "); n++;        display,0,0);
                 XtSetArg(arg[n], XtNvalue, ""); n++;      n = 0;
                 XtSetValues(cmdwin, arg, n);      wm_delete_window = XInternAtom(XtDisplay(toplevel), "WM_DELETE_WINDOW",
                 XtRealizeWidget(mainwin);        False);
         }  
       XtSetArg(arg[n],XtNiconName,title); n++;
       XtSetArg(arg[n], XtNwidth, 360); n++;
       mainwin = XtCreatePopupShell("shell",topLevelShellWidgetClass,
         toplevel,arg,n);
       XtOverrideTranslations(mainwin,
             XtParseTranslationTable("<Message>WM_PROTOCOLS: quit()"));
     /*
      *  Command line
      */
       cmdwin = XtCreateManagedWidget("cmdwin", dialogWidgetClass,
         mainwin, NULL, 0);
       XawDialogAddButton(cmdwin,"Execute",SetSelected,"Execute");
       XawDialogAddButton(cmdwin,"Dismiss",SetDismiss,"Dismiss");
       n = 0;
       XtSetArg(arg[n], XtNlabel, "Command : "); n++;
       XtSetArg(arg[n], XtNvalue, ""); n++;
       XtSetValues(cmdwin, arg, n);
       XtRealizeWidget(mainwin);
       XSetWMProtocols(XtDisplay(mainwin),XtWindow(mainwin),
         &wm_delete_window,1);
     }
     is_init = 1;
 }  }
   
 show_debug_window(on)  void show_debug_window(int on)
 int on;  
 {  {
         XEvent ev;    XEvent ev;
   
         if ( mainwin ) {    init_cmdwin();
                 if ( on )    if ( mainwin ) {
                         XtPopup(mainwin,XtGrabNone);      if ( on )
                 else        XtPopup(mainwin,XtGrabNone);
                         XtPopdown(mainwin);      else
                 XFlush(display);        XtPopdown(mainwin);
                 while ( XtAppPending(app_con) ) {      XFlush(display);
                         XtAppNextEvent(app_con,&ev);      while ( XtAppPending(app_con) ) {
                         XtDispatchEvent(&ev);        XtAppNextEvent(app_con,&ev);
                 }        XtDispatchEvent(&ev);
         }      }
     }
 }  }
   
 get_line(buf)  void get_line(char *buf)
 char *buf;  
 {  {
         XEvent ev;    XEvent ev;
   
         done = 0;    done = 0;
         while ( !done ) {    while ( !done ) {
                 XtAppNextEvent(app_con,&ev);      XtAppNextEvent(app_con,&ev);
                 XtDispatchEvent(&ev);      XtDispatchEvent(&ev);
         }    }
         strcpy(buf,debug_cmd);    strcpy(buf,debug_cmd);
 }  }
 #else /* DO_PLOT */  #else /* DO_PLOT */
 init_cmdwin() {}  void init_cmdwin() {}
   
 show_debug_window(on)  void show_debug_window(int on)
 int on;  
 {}  {}
   
 get_line(buf)  void get_line(buf)
 char *buf;  char *buf;
 {}  {}
 #endif /* DO_PLOT */  #endif /* DO_PLOT */

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.18

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>