[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.4 and 1.18

version 1.4, 2000/08/22 05:04:28 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.3 2000/08/21 08:31:48 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 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);
 }  }
   
 init_cmdwin()  static void SetDismiss(Widget w,XtPointer cld,XtPointer cad)
 {  {
         Arg             arg[5];    Arg    arg[5];
         int argc=0;    char *cmd;
         char *argv[1];  
         int n;  
         char *d;  
         extern char displayname[];  
         extern int do_server_in_X11;  
   
         if ( !displayname[0] ) {    done = 1;
                 d = (char *)getenv("DISPLAY");    cmd = XawDialogGetValueString(cmdwin);
                 if ( d )    strcpy(debug_cmd,"quit");
                         strcpy(displayname,d);    XtSetArg(arg[0], XtNvalue, "");
                 else    XtSetValues(cmdwin, arg, 1);
                         do_server_in_X11 = 0;  
         }  
         if ( displayname[0] ) {  
                 argv[0] = 0;  
                 XtToolkitInitialize();  
                 app_con = XtCreateApplicationContext();  
                 XtAppAddActions(app_con,actions_table, XtNumber(actions_table));  
                 XtAppSetFallbackResources(app_con,fallback);  
                 display = XtOpenDisplay(app_con,displayname,"ox_asir_debug_window","ox_asir_debug_window",  
                         options,XtNumber(options),&argc,argv);  
                 toplevel = XtAppCreateShell(0,"ox_asir_debug_window",applicationShellWidgetClass,  
                         display,0,0);  
                 XtSetArg(arg[0],XtNiconName,"ox_asir_debug_window");  
                 mainwin = XtCreatePopupShell("shell",topLevelShellWidgetClass,  
                         toplevel,arg,1);  
         /*  
          *      Command line  
          */  
                 cmdwin = XtCreateManagedWidget("cmdwin", dialogWidgetClass,  
                         mainwin, NULL, 0);  
                 XawDialogAddButton(cmdwin,"OK",SetSelected,"OK");  
                 n = 0;  
                 XtSetArg(arg[n], XtNlabel, "Command : "); n++;  
                 XtSetArg(arg[n], XtNvalue, ""); n++;  
                 XtSetValues(cmdwin, arg, n);  
                 XtRealizeWidget(mainwin);  
         }  
 }  }
   
 show_debug_window(on)  static Atom wm_delete_window;
 int on;  static void Quit(Widget w, XEvent *ev, String *params,Cardinal *nparams)
 {  {
         XEvent ev;    XBell(XtDisplay(w),0);
   }
   
         if ( mainwin ) {  void init_cmdwin()
                 if ( on )  {
                         XtPopup(mainwin,XtGrabNone);    Arg    arg[5];
                 else    int argc=0;
                         XtPopdown(mainwin);    char *argv[1];
                 XFlush(display);    int n;
                 while ( XtAppPending(app_con) ) {    char *d;
                         XtAppNextEvent(app_con,&ev);    char hostname[BUFSIZ],title[BUFSIZ];
                         XtDispatchEvent(&ev);    extern char displayname[];
                 }    extern int do_server_in_X11;
         }    static int is_init = 0;
   
     if ( is_init )
       return;
     if ( !displayname[0] ) {
       d = (char *)getenv("DISPLAY");
       if ( d )
         strcpy(displayname,d);
       else
         do_server_in_X11 = 0;
     }
     gethostname(hostname, BUFSIZ);
     sprintf(title,"Asir debugger:%s",hostname);
     if ( displayname[0] ) {
       argv[0] = 0;
       XtToolkitInitialize();
       app_con = XtCreateApplicationContext();
       XtAppAddActions(app_con,actions_table, XtNumber(actions_table));
       XtAppSetFallbackResources(app_con,fallback);
       display = XtOpenDisplay(app_con,displayname,title,title,
         options,XtNumber(options),&argc,argv);
       toplevel = XtAppCreateShell(0,title,applicationShellWidgetClass,
         display,0,0);
       n = 0;
       wm_delete_window = XInternAtom(XtDisplay(toplevel), "WM_DELETE_WINDOW",
         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;
 }  }
   
 get_line(buf)  void show_debug_window(int on)
 char *buf;  
 {  {
         XEvent ev;    XEvent ev;
   
         done = 0;    init_cmdwin();
         while ( !done ) {    if ( mainwin ) {
                 XtAppNextEvent(app_con,&ev);      if ( on )
                 XtDispatchEvent(&ev);        XtPopup(mainwin,XtGrabNone);
         }      else
         strcpy(buf,debug_cmd);        XtPopdown(mainwin);
       XFlush(display);
       while ( XtAppPending(app_con) ) {
         XtAppNextEvent(app_con,&ev);
         XtDispatchEvent(&ev);
       }
     }
 }  }
   
   void get_line(char *buf)
   {
     XEvent ev;
   
     done = 0;
     while ( !done ) {
       XtAppNextEvent(app_con,&ev);
       XtDispatchEvent(&ev);
     }
     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.4  
changed lines
  Added in v.1.18

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