[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.15 and 1.17

version 1.15, 2015/08/14 13:51:56 version 1.17, 2018/03/29 01:32:54
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.14 2015/08/06 10:01:53 fujimoto Exp $   * $OpenXM: OpenXM_contrib2/asir2000/parse/xdeb.c,v 1.16 2016/08/24 00:52:51 noro Exp $
 */  */
 #if defined(VISUAL) || defined(__MINGW32__)  #if defined(VISUAL) || defined(__MINGW32__)
 #if defined(VISUAL_LIB)  #if defined(VISUAL_LIB)
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 92  void show_debug_window(int on)
Line 92  void show_debug_window(int on)
 #else /* VISUAL */  #else /* VISUAL */
 #if defined(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>
   
 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();
Line 119  static void SetSelected();
Line 120  static void SetSelected();
 static void SetDismiss();  static void SetDismiss();
   
 static XtActionsRec actions_table[] = {  static XtActionsRec actions_table[] = {
         {"done",Done},    {"done",Done},
         {"quit",Quit},    {"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;
   
Line 134  void get_cmd();
Line 135  void get_cmd();
   
 static void Done(Widget w,XEvent *e,String *p,Cardinal *n)  static void Done(Widget w,XEvent *e,String *p,Cardinal *n)
 {  {
         SetSelected(w,0,0);    SetSelected(w,0,0);
 }  }
   
 static void SetSelected(Widget w,XtPointer cld,XtPointer cad)  static void SetSelected(Widget w,XtPointer cld,XtPointer 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(Widget w,XtPointer cld,XtPointer cad)  static void SetDismiss(Widget w,XtPointer cld,XtPointer 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);
 }  }
   
 static Atom wm_delete_window;  static Atom wm_delete_window;
 static void Quit(Widget w, XEvent *ev, String *params,Cardinal *nparams)  static void Quit(Widget w, XEvent *ev, String *params,Cardinal *nparams)
 {  {
         XBell(XtDisplay(w),0);    XBell(XtDisplay(w),0);
 }  }
   
 void init_cmdwin()  void init_cmdwin()
 {  {
         Arg             arg[5];    Arg    arg[5];
         int argc=0;    int argc=0;
         char *argv[1];    char *argv[1];
         int n;    int n;
         char *d;    char *d;
         char hostname[BUFSIZ],title[BUFSIZ];    char hostname[BUFSIZ],title[BUFSIZ];
         extern char displayname[];    extern char displayname[];
         extern int do_server_in_X11;    extern int do_server_in_X11;
         static int is_init = 0;    static int is_init = 0;
   
         if ( is_init )    if ( is_init )
                 return;      return;
         if ( !displayname[0] ) {    if ( !displayname[0] ) {
                 d = (char *)getenv("DISPLAY");      d = (char *)getenv("DISPLAY");
                 if ( d )      if ( d )
                         strcpy(displayname,d);        strcpy(displayname,d);
                 else      else
                         do_server_in_X11 = 0;        do_server_in_X11 = 0;
         }    }
         gethostname(hostname, BUFSIZ);    gethostname(hostname, BUFSIZ);
         sprintf(title,"Asir debugger:%s",hostname);    sprintf(title,"Asir debugger:%s",hostname);
         if ( displayname[0] ) {    if ( displayname[0] ) {
                 argv[0] = 0;      argv[0] = 0;
                 XtToolkitInitialize();      XtToolkitInitialize();
                 app_con = XtCreateApplicationContext();      app_con = XtCreateApplicationContext();
                 XtAppAddActions(app_con,actions_table, XtNumber(actions_table));      XtAppAddActions(app_con,actions_table, XtNumber(actions_table));
                 XtAppSetFallbackResources(app_con,fallback);      XtAppSetFallbackResources(app_con,fallback);
                 display = XtOpenDisplay(app_con,displayname,title,title,      display = XtOpenDisplay(app_con,displayname,title,title,
                         options,XtNumber(options),&argc,argv);        options,XtNumber(options),&argc,argv);
                 toplevel = XtAppCreateShell(0,title,applicationShellWidgetClass,      toplevel = XtAppCreateShell(0,title,applicationShellWidgetClass,
                         display,0,0);        display,0,0);
                 n = 0;      n = 0;
                 wm_delete_window = XInternAtom(XtDisplay(toplevel), "WM_DELETE_WINDOW",      wm_delete_window = XInternAtom(XtDisplay(toplevel), "WM_DELETE_WINDOW",
                         False);        False);
   
                 XtSetArg(arg[n],XtNiconName,title); n++;      XtSetArg(arg[n],XtNiconName,title); n++;
                 XtSetArg(arg[n], XtNwidth, 360); n++;      XtSetArg(arg[n], XtNwidth, 360); n++;
                 mainwin = XtCreatePopupShell("shell",topLevelShellWidgetClass,      mainwin = XtCreatePopupShell("shell",topLevelShellWidgetClass,
                         toplevel,arg,n);        toplevel,arg,n);
                 XtOverrideTranslations(mainwin,      XtOverrideTranslations(mainwin,
                                         XtParseTranslationTable("<Message>WM_PROTOCOLS: quit()"));            XtParseTranslationTable("<Message>WM_PROTOCOLS: quit()"));
         /*    /*
          *      Command line     *  Command line
          */     */
                 cmdwin = XtCreateManagedWidget("cmdwin", dialogWidgetClass,      cmdwin = XtCreateManagedWidget("cmdwin", dialogWidgetClass,
                         mainwin, NULL, 0);        mainwin, NULL, 0);
                 XawDialogAddButton(cmdwin,"Execute",SetSelected,"Execute");      XawDialogAddButton(cmdwin,"Execute",SetSelected,"Execute");
                 XawDialogAddButton(cmdwin,"Dismiss",SetDismiss,"Dismiss");      XawDialogAddButton(cmdwin,"Dismiss",SetDismiss,"Dismiss");
                 n = 0;      n = 0;
                 XtSetArg(arg[n], XtNlabel, "Command : "); n++;      XtSetArg(arg[n], XtNlabel, "Command : "); n++;
                 XtSetArg(arg[n], XtNvalue, ""); n++;      XtSetArg(arg[n], XtNvalue, ""); n++;
                 XtSetValues(cmdwin, arg, n);      XtSetValues(cmdwin, arg, n);
                 XtRealizeWidget(mainwin);      XtRealizeWidget(mainwin);
                 XSetWMProtocols(XtDisplay(mainwin),XtWindow(mainwin),      XSetWMProtocols(XtDisplay(mainwin),XtWindow(mainwin),
                         &wm_delete_window,1);        &wm_delete_window,1);
         }    }
         is_init = 1;    is_init = 1;
 }  }
   
 void show_debug_window(int on)  void show_debug_window(int on)
 {  {
         XEvent ev;    XEvent ev;
   
         init_cmdwin();    init_cmdwin();
         if ( mainwin ) {    if ( mainwin ) {
                 if ( on )      if ( on )
                         XtPopup(mainwin,XtGrabNone);        XtPopup(mainwin,XtGrabNone);
                 else      else
                         XtPopdown(mainwin);        XtPopdown(mainwin);
                 XFlush(display);      XFlush(display);
                 while ( XtAppPending(app_con) ) {      while ( XtAppPending(app_con) ) {
                         XtAppNextEvent(app_con,&ev);        XtAppNextEvent(app_con,&ev);
                         XtDispatchEvent(&ev);        XtDispatchEvent(&ev);
                 }      }
         }    }
 }  }
   
 void get_line(char *buf)  void get_line(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 */
 void init_cmdwin() {}  void init_cmdwin() {}

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.17

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