diff --git a/doc/xschem_man/developer_info.html b/doc/xschem_man/developer_info.html index 9a847521..3f3d14a7 100644 --- a/doc/xschem_man/developer_info.html +++ b/doc/xschem_man/developer_info.html @@ -779,6 +779,7 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
  • lastsel number of selected objects
  • line_width get line width
  • lines (xschem get lines n) number of lines on layer 'n'
  • +
  • modified schematic is in modified state (needs a save)
  • netlist_name netlist name if set. If 'fallback' given get default name
  • netlist_type get current netlist type (spice/vhdl/verilog/tedax)
  • no_draw disable drawing
  • @@ -875,9 +876,11 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns" if returned value is 0 it means that last searched attribute did not exist
  • globals
  •     Return various global variables used in the program 
    -
  • go_back [notitle]
  • +   
  • go_back [what]
  •     Go up one level (pop) in hierarchy
    -   if integer 'notitle' given pass it to the go_back() function (1=do not update window title) 
    + if integer 'what' given pass it to the go_back() function + what = 1: ask confirm save if current schematic modified. + what = 2: do not reset window title
  • grabscreen
  •     grab root window 
  • hash_file file [skip_path_lines]
  • diff --git a/src/actions.c b/src/actions.c
    index 71e9145d..f2d35bd3 100644
    --- a/src/actions.c
    +++ b/src/actions.c
    @@ -2409,13 +2409,20 @@ int descend_schematic(int instnumber, int fallback, int alert, int set_title)
      return 1;
     }
     
    -void go_back(int confirm, int set_title) /*  20171006 add confirm */
    +/* 
    + * what: 
    + * 1: ask gui user confirm if schematic modified
    + * 2: do *NOT* reset window title
    + */
    +void go_back(int what)
     {
      int save_ok;
      int from_embedded_sym;
      int save_modified;
      char filename[PATH_MAX];
      int prev_sch_type;
    + int confirm = what & 1;
    + int set_title = !(confirm & 2);
     
      save_ok=1;
      dbg(1,"go_back(): sch[xctx->currsch]=%s\n", xctx->sch[xctx->currsch]);
    @@ -2429,9 +2436,13 @@ void go_back(int confirm, int set_title) /*  20171006 add confirm */
           tcleval("ask_save_optional");
           if(!strcmp(tclresult(), "yes") ) save_ok = save_schematic(xctx->sch[xctx->currsch], 0);
           else if(!strcmp(tclresult(), "") ) return;
    -    } else {
    -      save_ok = save_schematic(xctx->sch[xctx->currsch], 0);
         }
    +    /* do not automatically save if confirm==0. Script developers should take care of this */
    +    /* 
    +     * else {
    +     *   save_ok = save_schematic(xctx->sch[xctx->currsch], 0);
    +     * }
    +     */
       }
       if(save_ok==0) {
         fprintf(errfp, "go_back(): file opening for write failed! %s \n", xctx->current_name);
    @@ -2458,7 +2469,7 @@ void go_back(int confirm, int set_title) /*  20171006 add confirm */
                                 /* by default) to parent schematic if going back from embedded symbol */
     
       my_strncpy(filename, xctx->sch[xctx->currsch], S(filename));
    -  load_schematic(1, filename, (set_title & 1), 1);
    +  load_schematic(1, filename, set_title, 1);
       /* if we are returning from a symbol created from a generator don't set modified flag on parent
        * as these symbols can not be edited / saved as embedded
        * xctx->sch_inst_number[xctx->currsch + 1] == -1 --> we came from an inst with no embed flag set */
    diff --git a/src/callback.c b/src/callback.c
    index dc85ca6e..d061ffb2 100644
    --- a/src/callback.c
    +++ b/src/callback.c
    @@ -1903,7 +1903,7 @@ static void context_menu_action(double mx, double my)
           descend_symbol();
           break;
         case 14:
    -      go_back(1, 1);
    +      go_back(1);
           break;
         case 15: /* copy selection into clipboard */
           rebuild_selected_array();
    @@ -2749,6 +2749,7 @@ int rstate; /* (reduced state, without ShiftMask) */
        {
          int prev_state = xctx->ui_state;
          if(xctx->semaphore >= 2) break;
    +<<<<<<< HEAD
          
          if(infix_interface) {
            start_wire(xctx->mousex_snap, xctx->mousey_snap);
    @@ -2756,6 +2757,15 @@ int rstate; /* (reduced state, without ShiftMask) */
              tcleval("set constr_mv 0");
              xctx->constr_mv = 0;
            } 
    +=======
    +
    +     if(infix_interface) {
    +       start_wire(xctx->mousex_snap, xctx->mousey_snap);
    +       if(prev_state == STARTWIRE) {
    +         tcleval("set constr_mv 0" );
    +         xctx->constr_mv=0;
    +       }
    +>>>>>>> 025823f14c8ca1f9562a1c452fffe267c7120905
          } else {
            xctx->last_command = 0;
            xctx->ui_state |= MENUSTART;
    @@ -2808,8 +2818,13 @@ int rstate; /* (reduced state, without ShiftMask) */
          if(xctx->semaphore >= 2) break;
          dbg(1, "callback(): start polygon\n");
          if(infix_interface) {
    +<<<<<<< HEAD
            xctx->mx_double_save = xctx->mousex_snap;
            xctx->my_double_save = xctx->mousey_snap;
    +=======
    +       xctx->mx_double_save=xctx->mousex_snap;
    +       xctx->my_double_save=xctx->mousey_snap;
    +>>>>>>> 025823f14c8ca1f9562a1c452fffe267c7120905
            xctx->last_command = 0;
            new_polygon(PLACE, xctx->mousex_snap, xctx->mousey_snap);
          } else {
    @@ -2964,12 +2979,20 @@ int rstate; /* (reduced state, without ShiftMask) */
        if(key=='r' /* && !xctx->ui_state */ && rstate==0)              /* start rect */
        {
         dbg(1, "callback(): start rect\n");
    +<<<<<<< HEAD
    +=======
    +    if(xctx->semaphore >= 2) break;
    +>>>>>>> 025823f14c8ca1f9562a1c452fffe267c7120905
         if(infix_interface) {
           xctx->mx_double_save=xctx->mousex_snap;
           xctx->my_double_save=xctx->mousey_snap;
           xctx->last_command = 0;
           new_rect(PLACE,xctx->mousex_snap, xctx->mousey_snap);
    +<<<<<<< HEAD
         } else{
    +=======
    +    } else {
    +>>>>>>> 025823f14c8ca1f9562a1c452fffe267c7120905
           xctx->ui_state |= MENUSTART;
           xctx->ui_state2 = MENUSTARTRECT;
         }
    @@ -3069,7 +3092,7 @@ int rstate; /* (reduced state, without ShiftMask) */
        if( (key=='e' && rstate == ControlMask) || (key==XK_BackSpace))  /* back */
        {
         if(xctx->semaphore >= 2) break;
    -    go_back(1, 1);break;
    +    go_back(1);break;
        }
     
        if(key=='a' && rstate == 0)   /* make symbol */
    @@ -3474,7 +3497,11 @@ int rstate; /* (reduced state, without ShiftMask) */
        if(key=='l' /* && !xctx->ui_state */ && rstate == 0) /* start line */
        {
          int prev_state = xctx->ui_state;
    +<<<<<<< HEAD
          if(xctx->semaphore>=2) break;
    +=======
    +     if(xctx->semaphore >= 2) break;
    +>>>>>>> 025823f14c8ca1f9562a1c452fffe267c7120905
          if(infix_interface) {
            start_line(xctx->mousex_snap, xctx->mousey_snap);
            if(prev_state == STARTLINE) {
    diff --git a/src/draw.c b/src/draw.c
    index 2066be3d..6c7bf8b7 100644
    --- a/src/draw.c
    +++ b/src/draw.c
    @@ -3827,7 +3827,8 @@ void draw_graph(int i, const int flags, Graph_ctx *gr, void *ct)
         clear_cairo_surface(xctx->cairo_ctx, gr->sx1, gr->sy1, sw, sh);
         #endif
         autoload = !strboolcmp(get_tok_value(r->prop_ptr,"autoload", 0), "1");
    -    if(autoload == 0) autoload = 2;  /* 2: switch */
    +    if(autoload == 0) autoload = 2; /* 2: switch */
    +    else if(autoload == 1) autoload = 33; /* 1: read, 32: no_warning */
         /* graph box, gridlines and axes */
         draw_graph_grid(gr, ct);
         /* get data to plot */
    diff --git a/src/save.c b/src/save.c
    index c19593e5..c8adf632 100644
    --- a/src/save.c
    +++ b/src/save.c
    @@ -590,7 +590,7 @@ static void read_raw_data_block(int binary, FILE *fd, Raw *raw, int ac)
      *         157     i(v1)   current
      * Binary:
      */
    -static int read_dataset(FILE *fd, Raw **rawptr, const char *type)
    +static int read_dataset(FILE *fd, Raw **rawptr, const char *type, int no_warning)
     { 
       int variables = 0, i, done_points = 0;
       char *line = NULL, *varname = NULL, *lowerline = NULL;
    @@ -716,7 +716,7 @@ static int read_dataset(FILE *fd, Raw **rawptr, const char *type)
           if(n < 1) {
             dbg(0, "read_dataset(): WAARNING: malformed raw file, aborting\n");
             extra_rawfile(3, NULL, NULL, -1.0, -1.0);
    -        /* free_rawfile(rawptr, 0); */
    +        /* free_rawfile(rawptr, 0, 0); */
             exit_status = 0;
             goto read_dataset_done;
           }
    @@ -749,7 +749,7 @@ static int read_dataset(FILE *fd, Raw **rawptr, const char *type)
           if(n < 1) {
             dbg(0, "read_dataset(): WAARNING: malformed raw file, aborting\n");
             extra_rawfile(3, NULL, NULL, -1.0, -1.0);
    -        /* free_rawfile(rawptr, 0); */
    +        /* free_rawfile(rawptr, 0, 0); */
             exit_status = 0;
             goto read_dataset_done;
           }
    @@ -763,7 +763,7 @@ static int read_dataset(FILE *fd, Raw **rawptr, const char *type)
           if(n < 1) {
             dbg(0, "read_dataset(): WAARNING: malformed raw file, aborting\n");
             extra_rawfile(3, NULL, NULL, -1.0, -1.0);
    -        /* free_rawfile(rawptr, 0); */
    +        /* free_rawfile(rawptr, 0, 0); */
             exit_status = 0;
             goto read_dataset_done;
           }
    @@ -786,7 +786,7 @@ static int read_dataset(FILE *fd, Raw **rawptr, const char *type)
           if(n < 2) {
             dbg(0, "read_dataset(): WAARNING: malformed raw file, aborting\n");
             extra_rawfile(3, NULL, NULL, -1.0, -1.0);
    -        /* free_rawfile(rawptr, 0); */
    +        /* free_rawfile(rawptr, 0, 0); */
             exit_status = 0;
             goto read_dataset_done;
           }
    @@ -838,7 +838,7 @@ static int read_dataset(FILE *fd, Raw **rawptr, const char *type)
     
       /* no analysis was found: delete */
       if(exit_status != 1) {
    -    free_rawfile(rawptr, 0);
    +    free_rawfile(rawptr, 0, no_warning);
       }
       read_dataset_done:
       if(line) my_free(_ALLOC_ID_, &line);
    @@ -851,18 +851,22 @@ static int read_dataset(FILE *fd, Raw **rawptr, const char *type)
       return exit_status;
     }
     
    -void free_rawfile(Raw **rawptr, int dr)
    +void free_rawfile(Raw **rawptr, int dr, int no_warning)
     {
       int i;
     
       Raw *raw;
       if(!rawptr || !*rawptr) {
    -    dbg(0, "free_rawfile(): no raw file to clear\n");
    +    if(!no_warning) {
    +      dbg(0, "free_rawfile(): no raw file to clear\n");
    +    }
         if(dr) draw();
         return;
       }
       raw = *rawptr;
    -  dbg(0, "free_rawfile(): clearing data\n");
    +  if(!no_warning) {
    +    dbg(0, "free_rawfile(): clearing data\n");
    +  }
       if(raw->names) {
         for(i = 0 ; i < raw->nvars; ++i) {
           my_free(_ALLOC_ID_, &raw->names[i]);
    @@ -954,7 +958,7 @@ int raw_read_from_attr(Raw **rawptr, const char *type, double sweep1, double swe
             fwrite(s, decoded_length, 1, fd);
             fclose(fd);
             my_free(_ALLOC_ID_, &s);
    -        res = raw_read(tmp_filename, rawptr, type, sweep1, sweep2);
    +        res = raw_read(tmp_filename, rawptr, type, 0, sweep1, sweep2);
             unlink(tmp_filename);
           } else {
             dbg(0, "raw_read_from_attr(): failed to open file %s for reading\n", tmp_filename);
    @@ -995,7 +999,7 @@ int raw_add_vector(const char *varname, const char *expr, int sweep_idx)
     }
     
     /* read a ngspice raw file (with data portion in binary format) */
    -int raw_read(const char *f, Raw **rawptr, const char *type, double sweep1, double sweep2)
    +int raw_read(const char *f, Raw **rawptr, const char *type, int no_warning, double sweep1, double sweep2)
     {
       int res = 0;
       FILE *fd;
    @@ -1021,7 +1025,7 @@ int raw_read(const char *f, Raw **rawptr, const char *type, double sweep1, doubl
       int_hash_init(&raw->table, HASHSIZE);
       fd = fopen(f, fopen_read_mode);
       if(fd) {
    -    if((res = read_dataset(fd, rawptr, type)) == 1) {
    +    if((res = read_dataset(fd, rawptr, type, no_warning)) == 1) {
           int i;
           set_modify(-2); /* clear text floater caches */
           my_strdup2(_ALLOC_ID_, &raw->rawfile, f);
    @@ -1035,8 +1039,10 @@ int raw_read(const char *f, Raw **rawptr, const char *type, double sweep1, doubl
           dbg(0, "points=%d, vars=%d, datasets=%d sim_type=%s\n", 
                  raw->allpoints, raw->nvars, raw->datasets, raw->sim_type ? raw->sim_type : "");
         } else {
    -      /* free_rawfile(rawptr, 0); */ /* do not free: already done in read_dataset()->extra_rawfile() */
    -      dbg(0, "raw_read(): no useful data found\n");
    +      /* free_rawfile(rawptr, 0, 0); */ /* do not free: already done in read_dataset()->extra_rawfile() */
    +      if(!no_warning) {
    +        dbg(0, "raw_read(): no useful data found\n");
    +      }
         }
         fclose(fd);
         if(has_x) {
    @@ -1050,7 +1056,9 @@ int raw_read(const char *f, Raw **rawptr, const char *type, double sweep1, doubl
         }
         return res;
       }
    -  dbg(0, "raw_read(): failed to open file %s for reading\n", f);
    +  if(!no_warning) {
    +    dbg(0, "raw_read(): failed to open file %s for reading\n", f);
    +  }
       return 0;
     }
     
    @@ -1168,6 +1176,7 @@ int new_rawfile(const char *name, const char *type, const char *sweepvar,
      * what == 3: remove a raw file. If no filename given remove all
      * what == 4: print info
      * what == 5: switch back to previous
    + * if bit 5 (32) of what is set do not issue warnings
      * return 1 if sucessfull, 0 otherwise
      */
     int extra_rawfile(int what, const char *file, const char *type, double sweep1, double sweep2)
    @@ -1175,11 +1184,13 @@ int extra_rawfile(int what, const char *file, const char *type, double sweep1, d
       int i;
       int ret = 1;
       char f[PATH_MAX];
    +  int no_warning = what & 32;
     
    +  what &= 0xf; /* remove warning bit */
       if(type && !type[0]) type = NULL; /* empty string as type will be considered NULL */
     
    -  dbg(1, "extra_rawfile(): what=%d, file=%s, type=%s\n",
    -      what, file ? file : "", type ? type : "");
    +  dbg(1, "extra_rawfile(): what=%d, no_warning=%d, file=%s, type=%s\n",
    +      what, no_warning, file ? file : "", type ? type : "");
       if(what == 0) return 0;
       /* if not already done insert base raw file (if there is one) into xctx->extra_raw_arr[0] */
       if(xctx->raw && xctx->extra_raw_n == 0) {
    @@ -1208,7 +1219,9 @@ int extra_rawfile(int what, const char *file, const char *type, double sweep1, d
             xctx->extra_raw_n++;
           } else {
             ret = 0; /* not found so did not switch */
    -        dbg(0, "extra_rawfile() read: %s not found or no \"%s\" analysis\n", f, type);
    +        if(!no_warning) {
    +          dbg(0, "extra_rawfile() read: %s not found or no \"%s\" analysis\n", f, type);
    +        }
             if(xctx->extra_raw_n) { /* only restore if raw wiles were not deleted due to a failure in read_raw() */
               xctx->raw = save; /* restore */
               xctx->extra_prev_idx = xctx->extra_idx;
    @@ -1239,7 +1252,7 @@ int extra_rawfile(int what, const char *file, const char *type, double sweep1, d
           Raw *save;
           save = xctx->raw;
           xctx->raw = NULL;
    -      read_ret = raw_read(f, &xctx->raw, type, sweep1, sweep2);
    +      read_ret = raw_read(f, &xctx->raw, type, no_warning, sweep1, sweep2);
           if(read_ret) {
             dbg(1, "extra_rawfile(): read %s %s, switch to it. raw->sim_type=%s\n", f,
               type ? type : "", xctx->raw->sim_type ? xctx->raw->sim_type : "");
    @@ -1249,7 +1262,9 @@ int extra_rawfile(int what, const char *file, const char *type, double sweep1, d
             xctx->extra_raw_n++;
           } else {
             ret = 0; /* not found so did not switch */
    -        dbg(0, "extra_rawfile() read: %s not found or no \"%s\" analysis\n", f, type ? type : "");
    +        if(!no_warning) {
    +          dbg(0, "extra_rawfile() read: %s not found or no \"%s\" analysis\n", f, type ? type : "");
    +        }
             if(xctx->extra_raw_n) { /* only restore if raw wiles were not deleted due to a failure in read_raw() */
               xctx->raw = save; /* restore */
               xctx->extra_prev_idx = xctx->extra_idx;
    @@ -1290,7 +1305,9 @@ int extra_rawfile(int what, const char *file, const char *type, double sweep1, d
             xctx->extra_prev_idx = xctx->extra_idx; 
             xctx->extra_idx = i;
           } else {
    -        dbg(0, "extra_rawfile() switch: %s not found or no %s analysis\n", f, type ? type : "");
    +        if(!no_warning) {
    +          dbg(0, "extra_rawfile() switch: %s not found or no %s analysis\n", f, type ? type : "");
    +        }
             ret = 0;
           }
         } else { /* switch to next */
    @@ -1310,7 +1327,7 @@ int extra_rawfile(int what, const char *file, const char *type, double sweep1, d
         if(!file) { /* clear all */
           if(xctx->extra_raw_n == 0) ret = 0;
           for(i = 0; i < xctx->extra_raw_n; i++) {
    -        free_rawfile(&xctx->extra_raw_arr[i], 0);
    +        free_rawfile(&xctx->extra_raw_arr[i], 0, no_warning);
           }
           tcleval("array unset ngspice::ngspice_data");
           xctx->raw = NULL;
    @@ -1327,11 +1344,11 @@ int extra_rawfile(int what, const char *file, const char *type, double sweep1, d
                   !strcmp(xctx->extra_raw_arr[i]->rawfile, f) &&
                   !strcmp(xctx->extra_raw_arr[i]->sim_type, type)
                   ) {
    -            free_rawfile(&xctx->extra_raw_arr[i], 0);
    +            free_rawfile(&xctx->extra_raw_arr[i], 0, no_warning);
                 found++;
                 continue;
               } else if( !(type && type[0]) && !strcmp(xctx->extra_raw_arr[i]->rawfile, f)) {
    -            free_rawfile(&xctx->extra_raw_arr[i], 0);
    +            free_rawfile(&xctx->extra_raw_arr[i], 0, no_warning);
                 found++;
                 continue;
               }
    diff --git a/src/scheduler.c b/src/scheduler.c
    index b2e99256..dac6cc38 100644
    --- a/src/scheduler.c
    +++ b/src/scheduler.c
    @@ -1455,6 +1455,12 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
                 }
               }
               break;
    +          case 'm':
    +          if(!strcmp(argv[2], "modified")) { /* schematic is in modified state (needs a save) */
    +            if(!xctx) {Tcl_SetResult(interp, not_avail, TCL_STATIC); return TCL_ERROR;}
    +            Tcl_SetResult(interp, my_itoa(xctx->modified),TCL_VOLATILE);
    +          }
    +          break;
               case 'n':
               if(!strcmp(argv[2], "netlist_name")) { /* netlist name if set. If 'fallback' given get default name */
                 if(argc > 3 &&  !strcmp(argv[3], "fallback")) {
    @@ -2093,17 +2099,19 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
           #endif
         }
     
    -    /* go_back [notitle]
    +    /* go_back [what]
          *   Go up one level (pop) in hierarchy
    -     *   if integer 'notitle' given pass it to the go_back() function (1=do not update window title) */
    +     *   if integer 'what' given pass it to the go_back() function
    +     *   what = 1: ask confirm save if current schematic modified.
    +     *   what = 2: do not reset window title */
         else if(!strcmp(argv[1], "go_back"))
         {
    -      int set_title = 1;
    +      int what = 1;
           if(!xctx) {Tcl_SetResult(interp, not_avail, TCL_STATIC); return TCL_ERROR;}
           if(argc > 2 ) {
    -        set_title = atoi(argv[2]);
    +        what = atoi(argv[2]);
           }
    -      if((xctx->semaphore == 0)) go_back(1, set_title);
    +      if((xctx->semaphore == 0)) go_back(what);
           Tcl_ResetResult(interp);
         }
     
    @@ -4163,7 +4171,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
         {
           if(!xctx) {Tcl_SetResult(interp, not_avail, TCL_STATIC); return TCL_ERROR;}
           extra_rawfile(3, NULL, NULL, -1.0, -1.0); /* unload additional raw files */
    -      /* free_rawfile(&xctx->raw, 1); */ /* unload base (current) raw file */
    +      /* free_rawfile(&xctx->raw, 1, 0); */ /* unload base (current) raw file */
           draw();
           Tcl_ResetResult(interp);
         }
    @@ -4183,14 +4191,14 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
           * if(sch_waves_loaded() >= 0) {
           *   tcleval("array unset ngspice::ngspice_data");
           *   extra_rawfile(3, NULL, NULL, -1.0, -1.0);
    -      *   free_rawfile(&xctx->raw, 1);
    +      *   free_rawfile(&xctx->raw, 1, 0);
           * } else
           */
           if(argc > 2) {
             double sweep1 = -1.0, sweep2 = -1.0;
             tcleval("array unset ngspice::ngspice_data");
             extra_rawfile(3, NULL, NULL, -1.0, -1.0);
    -        /* free_rawfile(&xctx->raw, 0); */
    +        /* free_rawfile(&xctx->raw, 0, 0); */
             my_snprintf(f, S(f),"regsub {^~/} {%s} {%s/}", argv[2], home_dir);
             tcleval(f);
             my_strncpy(f, tclresult(), S(f));
    @@ -4198,8 +4206,8 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
               sweep1 = atof_spice(argv[4]);
               sweep2 = atof_spice(argv[5]);
             }
    -        if(argc > 3) res = raw_read(f, &xctx->raw, argv[3], sweep1, sweep2);
    -        else res = raw_read(f, &xctx->raw, NULL, -1.0, -1.0);
    +        if(argc > 3) res = raw_read(f, &xctx->raw, argv[3], 0, sweep1, sweep2);
    +        else res = raw_read(f, &xctx->raw, NULL, 0, -1.0, -1.0);
             if(sch_waves_loaded() >= 0) {
               draw();
             }
    @@ -4218,11 +4226,11 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
           if(!xctx) {Tcl_SetResult(interp, not_avail, TCL_STATIC); return TCL_ERROR;}
           if(sch_waves_loaded() >= 0) {
             extra_rawfile(3, NULL, NULL, -1.0, -1.0);
    -        /* free_rawfile(&xctx->raw, 1); */
    +        /* free_rawfile(&xctx->raw, 1, 0); */
             draw();
           } else {
             extra_rawfile(3, NULL, NULL, -1.0, -1.0);
    -        /* free_rawfile(&xctx->raw, 0); */
    +        /* free_rawfile(&xctx->raw, 0, 0); */
             if(argc > 2) raw_read_from_attr(&xctx->raw, argv[2], -1.0, -1.0);
             else  raw_read_from_attr(&xctx->raw, NULL, -1.0, -1.0);
             if(sch_waves_loaded() >= 0) {
    @@ -5763,14 +5771,14 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
           if(!xctx) {Tcl_SetResult(interp, not_avail, TCL_STATIC); return TCL_ERROR;}
           if(sch_waves_loaded() >= 0) {
             extra_rawfile(3, NULL, NULL, -1.0, -1.0);
    -        /* free_rawfile(&xctx->raw, 1); */
    +        /* free_rawfile(&xctx->raw, 1, 0); */
             draw();
           } else if(argc > 2) {
             my_snprintf(f, S(f),"regsub {^~/} {%s} {%s/}", argv[2], home_dir);
             tcleval(f);
             my_strncpy(f, tclresult(), S(f));
             extra_rawfile(3, NULL, NULL, -1.0, -1.0);
    -        /* free_rawfile(&xctx->raw, 0); */
    +        /* free_rawfile(&xctx->raw, 0, 0); */
             table_read(f);
             if(sch_waves_loaded() >= 0) {
               draw();
    diff --git a/src/xschem.h b/src/xschem.h
    index 03163306..a51b4ee9 100644
    --- a/src/xschem.h
    +++ b/src/xschem.h
    @@ -1270,10 +1270,10 @@ extern char *base64_encode(const unsigned char *data, const size_t input_length,
     extern unsigned char *ascii85_encode(const unsigned char *data, const size_t input_length, size_t *output_length);
     extern int raw_get_pos(const char *node, double value, int dset, int from_start, int to_end);
     extern int  get_raw_index(const char *node, Int_hashentry **entry_ret);
    -extern void free_rawfile(Raw **rawptr, int dr);
    +extern void free_rawfile(Raw **rawptr, int dr, int no_warning);
     extern int update_op();
     extern int extra_rawfile(int what, const char *f, const char *type, double sweep1, double sweep2);
    -extern int raw_read(const char *f, Raw **rawptr, const char *type, double sweep1, double sweep2);
    +extern int raw_read(const char *f, Raw **rawptr, const char *type, int no_warning, double sweep1, double sweep2);
     extern int table_read(const char *f);
     extern double get_raw_value(int dataset, int idx, int point);
     extern int plot_raw_custom_data(int sweep_idx, int first, int last, const char *ntok, const char *yname);
    @@ -1528,7 +1528,7 @@ extern void toggle_ignore(void);
     extern void get_additional_symbols(int what);
     extern int change_sch_path(int instnumber, int dr);
     extern int descend_schematic(int instnumber, int fallback, int alert, int set_title);
    -extern void go_back(int confirm, int set_title);
    +extern void go_back(int what); /* what == 1: confirm save; what == 2: do not reset window title */
     extern void clear_schematic(int cancel, int symbol);
     extern void view_unzoom(double z);
     extern void view_zoom(double z);
    diff --git a/src/xschem.tcl b/src/xschem.tcl
    index e615f1ea..f12371c8 100644
    --- a/src/xschem.tcl
    +++ b/src/xschem.tcl
    @@ -7603,7 +7603,7 @@ set tctx::global_list {
       graph_logy graph_private_cursor graph_rainbow graph_schname graph_sel_color graph_sel_wave
       graph_selected graph_sort graph_unlocked graph_use_ctrl_key
       hide_empty_graphs hide_symbols tctx::hsize
    -  incr_hilight incremental_select infowindow_text intuitive_interface 
    +  incr_hilight incremental_select infix_interface infowindow_text intuitive_interface 
       keep_symbols launcher_default_program
       light_colors line_width live_cursor2_backannotate local_netlist_dir lvs_ignore
       lvs_netlist measure_text netlist_dir netlist_show netlist_type no_ask_save
    @@ -9066,6 +9066,7 @@ set_ne big_grid_points 0
     set_ne draw_grid_axes 1
     set_ne persistent_command 0
     set_ne intuitive_interface 1
    +set_ne infix_interface 1
     set_ne autotrim_wires 0
     set_ne infix_interface 0
     set_ne orthogonal_wiring 1
    diff --git a/src/xschemrc b/src/xschemrc
    index 2dd5ca90..c9b55f51 100644
    --- a/src/xschemrc
    +++ b/src/xschemrc
    @@ -201,6 +201,11 @@
     #### default: 0
     # set persistent_command 1
     
    +#### if set to 0 users must click a point after hitting a command key
    +#### like 'w(ire)', 'l(ine)' and so on.
    +#### default is 1 (hitting the command key sets also the first point).
    +# set infix_interface 0
    +
     #### if set to 1 allow click & drag objects in the schematic 
     #### to move them without keyboard commands ('m')
     #### default: enabled (1)
    diff --git a/xschem_library/devices/bsource.sym b/xschem_library/devices/bsource.sym
    index ac6885f3..89929bfa 100644
    --- a/xschem_library/devices/bsource.sym
    +++ b/xschem_library/devices/bsource.sym
    @@ -21,8 +21,8 @@ v {xschem version=3.4.6 file_version=1.2
     }
     G {}
     K {type=source
    -format="@name @pinlist @VAR = @FUNC "
    -template="name=B1 VAR=I FUNC=\\"pwl(V(plus,minus),0,0, 1,10m, 2, 100m)\\""}
    +format="@name @pinlist @VAR = @FUNC m=@m"
    +template="name=B1 VAR=I FUNC=\\"'pwl(V(plus,minus),0,0, 1,10m, 2, 100m)'\\" m=1"}
     V {}
     S {}
     E {}
    diff --git a/xschem_library/examples/cmos_example.sch b/xschem_library/examples/cmos_example.sch
    index 027532ab..9dfc1f9d 100644
    --- a/xschem_library/examples/cmos_example.sch
    +++ b/xschem_library/examples/cmos_example.sch
    @@ -25,7 +25,7 @@ V {}
     S {}
     E {}
     B 2 1690 -960 2250 -630 {flags=graph,unlocked
    -rawfile=$netlist_dir/cmos_example_ngspice.raw
    +
     sim_type=dc
     y1=-160
     y2=0
    @@ -40,7 +40,8 @@ node="\\"GAIN @ 2uA;diffout deriv() % 0\\"
     \\"GAIN @ 100uA;diffout deriv() % 2\\""
     color="8 7 6"
     dataset=-1
    -autoload=1}
    +autoload=1
    +xrawfile=$netlist_dir/cmos_example_ngspice.raw}
     B 2 190 -760 327 -700 {flags=image
     alpha=0.6
     InvertOnExport=true
    @@ -51,7 +52,7 @@ InvertOnExport=true
     image=/home/schippes/x/xyce.png
     image_data=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}
     B 2 1690 -620 2250 -300 {flags=graph,unlocked
    -rawfile=$netlist_dir/cmos_example_ngspice.raw
    +
     sim_type=dc
     y1=0.875402
     y2=5.6754
    @@ -64,11 +65,12 @@ subdivx=1
     node="diffout@2uA;v(diffout)%0
     diffout@10uA;v(diffout)%1
     diffout@100uA;v(diffout)%2"
    -color="8 7 6 4 4 4"
    +color="8 7 6"
     dataset=-1
    -autoload=1}
    +autoload=1
    +xrawfile=$netlist_dir/cmos_example_ngspice.raw}
     B 2 1050 -470 1680 -190 {flags=graph,unlocked
    -rawfile=$netlist_dir/cmos_example_ngspice.raw
    +
     sim_type=tran
     y1=1.4
     y2=5
    @@ -90,7 +92,7 @@ hilight_wave=-1
     xlabmag=1.4
     autoload=1}
     B 2 1050 -740 1680 -530 {flags=graph,unlocked
    -rawfile=$netlist_dir/cmos_example_ngspice.raw
    +
     sim_type=ac
     y1=-34
     y2=43
    @@ -113,9 +115,10 @@ logx=1
     xlabmag=1.4
     divy=5
     ylabmag=1.2
    -autoload=1}
    +autoload=1
    +xrawfile=$netlist_dir/cmos_example_ngspice.raw}
     B 2 1050 -960 1680 -750 {flags=graph,unlocked
    -rawfile=$netlist_dir/cmos_example_ngspice.raw
    +
     sim_type=ac
     y1=21
     y2=180
    @@ -136,9 +139,10 @@ node="\\"phase 2uA; ph(diffout)%0\\"
     hilight_wave=-1
     logx=1
     xlabmag=1.4
    -autoload=1}
    +autoload=1
    +xrawfile=$netlist_dir/cmos_example_ngspice.raw}
     B 2 1690 -290 2250 -20 {flags=graph,unlocked
    -rawfile=$netlist_dir/cmos_example_ngspice.raw
    +
     sim_type=dc
     y1=2.3
     y2=2.7
    @@ -152,9 +156,10 @@ node="minus;minus%0
     plus;plus%0"
     color="7 8"
     dataset=-1
    -autoload=1}
    +autoload=1
    +xrawfile=$netlist_dir/cmos_example_ngspice.raw}
     B 2 1050 -180 1680 -60 {flags=graph,unlocked
    -rawfile=$netlist_dir/cmos_example_ngspice.raw
    +
     sim_type=tran
     y1=2.4
     y2=2.6
    @@ -264,7 +269,76 @@ N 690 -340 690 -320 {
     lab=#net2}
     N 500 -460 500 -400 {
     lab=G}
    -C {lab_pin.sym} 750 -360 0 0 {name=p20 lab=0}
    +C {code.sym} 800 -240 0 0 {name="MODELS"
    +spice_ignore=0
    +only_toplevel=false value="
    +** From the ngspice distribution:
    +** https://sourceforge.net/p/ngspice/ngspice/ci/master/tree/examples/mos/modelcard.nmos
    +** https://sourceforge.net/p/ngspice/ngspice/ci/master/tree/examples/mos/modelcard.pmos
    +
    +.model cmosn NMOS
    ++Level=        9 version=3.3.0
    ++Tnom=27.0
    ++Nch= 2.498E+17  Tox=9E-09 Xj=1.00000E-07
    ++Lint=9.36e-8 Wint=1.47e-7
    ++Vth0= .6322    K1= .756  K2= -3.83e-2  K3= -2.612
    ++Dvt0= 2.812  Dvt1= 0.462  Dvt2=-9.17e-2
    ++Nlx= 3.52291E-08  W0= 1.163e-6
    ++K3b= 2.233
    ++Vsat= 86301.58  Ua= 6.47e-9  Ub= 4.23e-18  Uc=-4.706281E-11
    ++Rdsw= 650  U0= 388.3203 wr=1
    ++A0= .3496967 Ags=.1    B0=0.546    B1= 1
    ++Dwg = -6.0E-09 Dwb = -3.56E-09 Prwb = -.213
    ++Keta=-3.605872E-02  A1= 2.778747E-02  A2= .9
    ++Voff=-6.735529E-02  NFactor= 1.139926  Cit= 1.622527E-04
    ++Cdsc=-2.147181E-05
    ++Cdscb= 0  Dvt0w =  0 Dvt1w =  0 Dvt2w =  0
    ++Cdscd =  0 Prwg =  0
    ++Eta0= 1.0281729E-02  Etab=-5.042203E-03
    ++Dsub= .31871233
    ++Pclm= 1.114846  Pdiblc1= 2.45357E-03  Pdiblc2= 6.406289E-03
    ++Drout= .31871233  Pscbe1= 5000000  Pscbe2= 5E-09 Pdiblcb = -.234
    ++Pvag= 0 delta=0.01
    ++Wl =  0 Ww = -1.420242E-09 Wwl =  0
    ++Wln =  0 Wwn =  .2613948 Ll =  1.300902E-10
    ++Lw =  0 Lwl =  0 Lln =  .316394
    ++Lwn =  0
    ++kt1=-.3  kt2=-.051
    ++At= 22400
    ++Ute=-1.48
    ++Ua1= 3.31E-10  Ub1= 2.61E-19 Uc1= -3.42e-10
    ++Kt1l=0 Prt=764.3
    ++vgs_max=4 vds_max=4 vbs_max=4
    +
    +.model cmosp PMOS
    ++Level=        9 version=3.3.0
    ++Tnom=27.0
    ++Nch= 3.533024E+17  Tox=9E-09 Xj=1.00000E-07
    ++Lint=6.23e-8 Wint=1.22e-7
    ++Vth0=-.6732829 K1= .8362093  K2=-8.606622E-02  K3= 1.82
    ++Dvt0= 1.903801  Dvt1= .5333922  Dvt2=-.1862677
    ++Nlx= 1.28e-8  W0= 2.1e-6
    ++K3b= -0.24 Prwg=-0.001 Prwb=-0.323
    ++Vsat= 103503.2  Ua= 1.39995E-09  Ub= 1.e-19  Uc=-2.73e-11
    ++Rdsw= 460  U0= 138.7609
    ++A0= .4716551 Ags=0.12
    ++Keta=-1.871516E-03  A1= .3417965  A2= 0.83
    ++Voff=-.074182  NFactor= 1.54389  Cit=-1.015667E-03
    ++Cdsc= 8.937517E-04
    ++Cdscb= 1.45e-4  Cdscd=1.04e-4
    ++Dvt0w=0.232 Dvt1w=4.5e6 Dvt2w=-0.0023
    ++Eta0= 6.024776E-02  Etab=-4.64593E-03
    ++Dsub= .23222404
    ++Pclm= .989  Pdiblc1= 2.07418E-02  Pdiblc2= 1.33813E-3
    ++Drout= .3222404  Pscbe1= 118000  Pscbe2= 1E-09
    ++Pvag= 0
    ++kt1= -0.25  kt2= -0.032 prt=64.5
    ++At= 33000
    ++Ute= -1.5
    ++Ua1= 4.312e-9 Ub1= 6.65e-19  Uc1= 0
    ++Kt1l=0
    ++vgs_max=4 vds_max=4 vbs_max=4
    +"}
     C {lab_pin.sym} 30 -220 0 0 {name=p17 lab=0}
     C {title.sym} 160 -30 0 0 {name=l1 author="Stefan Schippers"}
     C {nmos4.sym} 550 -160 0 0 {name=m1 model=cmosn w=5u l=2u m=1}
    @@ -328,13 +402,9 @@ only_toplevel=true
     value=".temp 30
     .param IB=2u
     .param VCC = 5
    -** models are generally not free: you must download
    -** SPICE models for active devices and put them into the below 
    -** referenced file in netlist/simulation directory.
    -** http://bwrcs.eecs.berkeley.edu/Classes/icdesign/ee241_s00/ASSIGNMENTS/TSMC035-n96g-params.txt
    -.include \\"models_cmos_example.txt\\"
    +
     .option savecurrents
    -.save all @m4[gm] @m5[gm] @m1[gm]
    +.save all @m1[gm] @m2[gm] @m3[gm] @m4[gm] @m5[gm] @m6[gm]
     .control
       save all alli
       op
    @@ -387,11 +457,7 @@ only_toplevel=true
     value="* .temp 30
     .param IB=100u
     .param VCC = 5
    -** models are generally not free: you must download
    -** SPICE models for active devices and put them into the below 
    -** referenced file in netlist/simulation directory.
    -** http://bwrcs.eecs.berkeley.edu/Classes/icdesign/ee241_s00/ASSIGNMENTS/TSMC035-n96g-params.txt
    -.include \\"models_cmos_example.txt\\"
    +
     .op
     .print dc format=raw file=cmos_example_xyce.raw v(*) i(*)
     .dc vplus 2.3 2.7 0.001
    @@ -409,9 +475,14 @@ tclcommand="
     xschem raw switch; xschem redraw"
     
     }
    -C {ngspice_get_value.sym} 470 -230 0 1 {name=r2 node=@$\{path\}m4[gm]
    +C {ngspice_get_value.sym} 480 -240 0 1 {name=r2 node=@$\{path\}m4[gm]
     descr="gm="}
    -C {ngspice_get_value.sym} 720 -230 0 0 {name=r3 node=@$\{path\}m5[gm]
    +C {ngspice_get_value.sym} 710 -240 0 0 {name=r3 node=@$\{path\}m5[gm]
     descr="gm="}
     C {ngspice_get_value.sym} 610 -130 0 0 {name=r4 node=@$\{path\}m1[gm]
     descr="gm="}
    +C {lab_pin.sym} 750 -360 0 0 {name=p20 lab=0}
    +C {ngspice_get_value.sym} 700 -520 0 0 {name=r1 node=@$\{path\}m2[gm]
    +descr="gm="}
    +C {ngspice_get_value.sym} 490 -520 0 1 {name=r5 node=@$\{path\}m6[gm]
    +descr="gm="}