Commit Graph

2503 Commits

Author SHA1 Message Date
stefan schippers de9c40af65 allow file extension spec in tmpfile creation, update index.html 2024-11-13 12:04:56 +01:00
stefan schippers 4fca204e8d improvement of previous commit. Sanitize paths ending with ////, like /aa/bb/cc/// 2024-11-12 22:48:21 +01:00
stefan schippers 169d743b33 insert symbols should tolerate paths in XSCHEM_LIBRARY_PATH ending with `/` 2024-11-12 20:58:09 +01:00
stefan schippers 20359ed43e update license info. Remove unneeded newline saving in version line of .sch/.sym files, remove c89 flag based on lib versions 2024-11-12 20:23:18 +01:00
stefan schippers aa95f0ff9d Small changes to allow build with tcl-tk 9.0 2024-11-12 01:16:43 +01:00
stefan schippers 127a2a0221 add needed include <stdarg.h> in scheduler.c (needed, probably some library or other include file was sourcing it). 2024-11-11 20:59:29 +01:00
stefan schippers 63ac9ccbb9 update Changelog for 3.4.6 2024-11-11 17:17:42 +01:00
stefan schippers dd33a067de select rectangles are unsnapped. much easier to select small objects 2024-11-10 09:53:37 +01:00
stefan schippers 346666e13d draw_graph_grid(): handle NaN in y-data , avoid infinite loop 2024-11-07 00:39:53 +01:00
stefan schippers b7e39700d4 add ability to read ASCII raw files 2024-11-06 11:59:00 +01:00
Stefan Schippers bb49cc9b26 fix incomplete line in actions.c 2024-11-05 20:09:04 +01:00
stefan schippers 92c99c10f9 get_additional_symbols(): some sanity checks, descend_schematic() more options in set_title argument (avoid set title, avoid processing pins/nets, avoid descending into i-th xdec[3] instance, descend as a whole xdec[3:0], add `xschem get_additional_symbols what` command, allow `xschem get_sch_from_sym -1 inv.sym` to get schematic associated with symbol. hier_psprint(): avoid printing / listing duplicate schematics, improved traversal.tcl 2024-11-05 13:59:37 +01:00
stefan schippers 0bd6ccef86 select_element(): do not draw selection if fast argument given 2024-11-03 10:33:11 +01:00
stefan schippers e26e03ff0b comments on top of change_sch_path() 2024-11-03 00:23:49 +01:00
stefan schippers 94d5c44599 xschem change_sch_path command for changing the current path we are descended in; set_title parameter for xschem descend and xschem go_back (optimization for faster scripts). optimized utility procedure traversal.tcl. Catch glob pattern errors in proc setglob 2024-11-03 00:22:40 +01:00
stefan schippers f3abdf2eb8 avoid another crash in case of malformed raw files (if raw->npoints not allocated return without attempting to read raw file) 2024-11-01 00:27:29 +01:00
stefan schippers 65bd4ce766 fix is_quoted() (reported "aaa\\\"bbb" as unquoted) 2024-10-31 11:06:19 +01:00
stefan schippers 71d5481dc8 move definition of my_memmem() outside of an #ifdef 2024-10-28 19:15:13 +01:00
stefan schippers c342a1c41f update svgdraw and psprint to recognize svg embedded images. svgdraw exports it as embedded svg 2024-10-28 18:55:13 +01:00
stefan schippers 76c1425180 get_surface_from_file(): better error checking 2024-10-28 12:45:50 +01:00
stefan schippers 17146a7cf7 get_surface_from_b64data() for svg images: create cairo surface only if filter_data() went successfully 2024-10-28 12:12:11 +01:00
stefan schippers 9894d31437 when inserting a svg image automatically set the filter attribute to rasterize svg to png (if tcl variable svg_to_png is set in xschemrc), "rsvg-convert" or "inkscape" or imagemagick "convert" can be used. see template xschemrc in src/ 2024-10-27 13:06:49 +01:00
stefan schippers 2c82e26dcb when importing svg images with a svg->png filter (like rsvg-convert) keep source svg data in the image_data attribute instead of the rasterized data. This will make these images scalable and schematics will be smaller (if using small vector SVGs) 2024-10-27 03:04:55 +01:00
Stefan Schippers 426cf9c33a revert change "draw_image(): do RECTORDER() before taking *x1, *y1", as it messes up images in rotated /flipped symbols 2024-10-26 18:09:12 +02:00
stefan schippers a7cded9f19 fix crash if multiple raw files are loaded and last one fails loading due to corrupt raw file 2024-10-24 22:16:46 +02:00
stefan schippers f8a676aebf avoid rasiing an error when typing a raw file with some tcl variables (like $netlist_dir/...) in Raw file textbox in graph dialog 2024-10-24 19:47:28 +02:00
stefan schippers 8de9004468 added operator "cph()" to transform discontinuous phase ph(xxx) in AC analyses to aontinuous phase, like ngspice cph() function. Usage: instead of ph(out) use "ph(out) cph()" 2024-10-16 17:02:36 +02:00
stefan schippers fa699fe2f1 change_elem_order(): use input_line instead of text_line dialog 2024-10-14 21:59:39 +02:00
stefan schippers 30e407b743 add "Properties" menu for "Change selected object insertion order" (Shift-S) 2024-10-14 21:41:07 +02:00
stefan schippers 02a891b173 further streamlined hash lookup functions 2024-10-14 15:35:53 +02:00
stefan schippers c0474a139d simplified hash table lookup functions (indirect pointer) 2024-10-14 14:39:22 +02:00
stefan schippers e4d9594065 small cosmetic changes in hash tables (initialization of next pointer) 2024-10-14 12:13:19 +02:00
stefan schippers 98475e328b avoid triggering tclcommand -> launcher() when dragging mouse with ctrl key around objects with such attribute 2024-10-12 20:47:34 +02:00
stefan schippers d387bb911d add commented example for custom radiobutton menu entries in add_custom_menu.tcl 2024-10-10 14:28:36 +02:00
stefan schippers baad052431 fix a potential crash (premature free() of pointer) when editing graph node names with % (dataset) specifier 2024-10-10 01:45:50 +02:00
stefan schippers 1b734d5202 fix refression (color of highlighted texts in only_probes view mode) 2024-10-07 15:50:29 +02:00
stefan schippers 835b05ce9f subst_token(): if s is empty and tok, new_val are gien just set return string to tok=new_val (no newlines whatsoever) 2024-10-05 11:43:57 +02:00
stefan schippers 4311ac424a handle NULL analysis type in debug messages (extra_rawfile()), recursive value substitution in symbol displayed strings: if translated text begins with @ search for recursive upper level definitions for text following @, example: @model symbol text, instance has model=@modeln, upper instance has modeln=nfet: resolve symbol text and display "@model" as "nfet", proc inutile: add optional wait argument to block xschem while dialog displayed 2024-10-03 13:08:32 +02:00
stefan schippers 95c7a68c92 enhance xschem print command (allow to specify bitmap size while using selection to indicate the boundbox to export) 2024-09-29 00:16:05 +02:00
stefan schippers bb1a1557bc svg and ps/pdf export: do not include data for offscreen graphs or images to reduce file size 2024-09-24 11:10:30 +02:00
stefan schippers 2372828c22 svgdraw and psprint: draw text after images as done in draw.c. Correct postscript / pdf image zoom factor from 0.97 to 1.0 to match scaling with other xschem elements. 2024-09-24 00:50:10 +02:00
stefan schippers aaac47720f draw_image(): add cairo_flush() to flush pending paints. In some cases a black square was exported instead of the image... Update Changelog for upcoming 3.4.6 2024-09-23 23:17:19 +02:00
stefan schippers a79e4304d9 draw_image(): do RECTORDER() before taking *x1, *y1 2024-09-23 15:57:32 +02:00
Stefan Schippers adb855db0b do not reset xctx->netlist_name after doing `Netlist` from gui (xschem netlist -erc) 2024-09-17 20:31:28 +02:00
stefan schippers f92dcfc49b add "proc ev7" (same as "proc ev", 7 significant digits) 2024-09-17 16:55:26 +02:00
stefan schippers 0afa12c3fb proc edit_prop: correctly set editprop_sympath when tcleval(...) is used 2024-09-16 16:55:09 +02:00
stefan schippers 2ef4b88146 sym_vs_sch_pins(): do tcl substitution on symbol references found in schematic being compared with symbol 2024-09-15 22:08:39 +02:00
stefan schippers 4ff7d0e2f8 load_sym_def(): process tcleval(....) (if present) in `name` argument (use tcl_hook2()) 2024-09-14 23:31:26 +02:00
stefan schippers 88b44db333 node_hash.c optimization: use inst[].lab instead of get_tok_value(..., "lab"...) 2024-09-14 09:52:06 +02:00
stefan schippers dfe2e05603 let symbol name entry box in component edit property dialog box expand in X direction if dialog box is enlarged 2024-09-12 00:36:52 +02:00
stefan schippers ba7e50ccc1 update hash calculation in xschemtest.tcl for LCC_instances netlist (due to changes in schematic) 2024-09-10 22:38:44 +02:00
stefan schippers 1108a71263 replace "UNDEF" with "-" in backannotated nodes that have no value in raw file. 2024-09-09 23:15:05 +02:00
stefan schippers a065fb93cc draw node names in graphs even if specified file / analysis (graph rawfile or sim_type attributes) is not loaded 2024-09-09 13:20:02 +02:00
stefan schippers ad96e222f1 if autoload is set in graph and a filename is given (rawfile graph attr) load raw file immediately when drawing graph. Don`t wait for user to load an intiial raw file to trigger auto loading 2024-09-08 13:43:29 +02:00
stefan schippers e5015488f3 double clicking in the center of a graph will now bring up the graph edit attributes dialog box even if no raw file is loaded 2024-09-07 10:11:52 +02:00
stefan schippers 3f4004fdca set verison to 3.4.6RC (Release Candidate) to avoid confusion 2024-09-07 00:01:39 +02:00
stefan schippers 1b6612669d bump version to 3.4.6, will be next release when fully tested 2024-09-06 23:39:16 +02:00
stefan schippers 1dd3e28b32 remove memory tracking alloc IDs 2024-09-06 22:27:05 +02:00
stefan schippers 391464bab9 fix another small memory leak due to tclvareval("xschem exit...")--> use tcleval() 2024-09-06 22:19:36 +02:00
stefan schippers 882f7f7434 fix memory leaks introduced since introduction of my_expand() 2024-09-06 18:33:09 +02:00
stefan schippers fddc4650d1 graphs will autoload (if autoload checked) raw data even if no raw file is specified in graph dialog box (use current loaded raw file, usually a different analysis) 2024-09-06 16:57:13 +02:00
stefan schippers 291ba02339 save 4 vars ( node, ph(node), re(node, im(node) ) instead of 2 ( node, ph(node )for ac plots 2024-09-06 10:24:12 +02:00
stefan schippers 27c0fd1622 use atof_spice() instead of atof() to read cursor position data from graph attributes 2024-09-05 14:53:36 +02:00
stefan schippers a94e0363fd Add "private cursor" check box in graph dialog box. This allow the related graph to have separate "a" and "b" cursors. These cursor positions are saved with the schematic and are thus persistent when reloading the schematic. 2024-09-05 00:51:15 +02:00
stefan schippers d40a17df64 correctly set top_path and current_win_path in preview_window() when calling alloc_xschem_data(), don`t use fake window paths (alert_ proc uses parent win path) 2024-08-31 09:00:48 +02:00
stefan schippers 2b94e845c0 fix a bug in preview symbol displaying when inserting components. Toplevel .load widget was destroyed before cleaning preview data in preview_window(), so after some insertion preview was no more displayed. 2024-08-31 08:07:17 +02:00
stefan schippers 0e44462227 resolved_net(): correctly handle subschematic nets attached via port to upper global node. (return VCC instead of x1.VCC) 2024-08-29 22:10:06 +02:00
stefan schippers 1a2a925fbf remove backslashes in translate3() call in draw_temp_symbol(), as done in draw_symbol() 2024-08-29 08:13:06 +02:00
stefan schippers eb7b9ae018 removed pointless my_strcat() in translate3() 2024-08-29 07:56:22 +02:00
stefan schippers d06e999daf better backslash handling in translate3() 2024-08-28 23:37:43 +02:00
stefan schippers a725838850 fix escape recognition in translate3(), so in symbol texts it is possible to write \\@name to an instance attribute to get literal @name in displayed text instead of the instance name. fix typo in tutorial_use_existing_subckt.html. some schematic updates (no more enable show_pin_net_names tcl variable) 2024-08-28 09:39:43 +02:00
stefan schippers 4f0c3afa23 port ordering for a schematic .subckt line will always be deduced from the symbol if it exists, even if the symbol type is not "subcircuit" (so it will be used for also "primitive" type symbols). 2024-08-24 08:21:08 +02:00
Stefan Schippers 652268c4d0 add tcl xschemrc variable "select_touch" that enables selecting objects touched by the selection rectangle if dragging to the left. Previously this behavior was enabled by "incremental_select" that shows selected elements while dragging. These two optional behaviors are now enabled/disabled by separate variables 2024-08-14 20:43:47 +02:00
stefan schippers 9f761176ec highlight disconnected instances at end of netlisting to better find them 2024-08-14 10:12:13 +02:00
stefan schippers a32386c23c issue a netlist error (and report message) if instances with pins have *all* pins disconnected. This is in 99.999% of the cases an error. 2024-08-14 10:08:36 +02:00
stefan schippers f850877b1e added tcl variable top_is_subckt and related Simulation->LVS menu, that keeps top level wrapped inside a .subckt / .ends, as lvs_netlist does. However top_is_subckt does only that and will not enable lvs_format to differentiate device lines in netlist (usually used for LVS comparison). 2024-08-06 12:20:32 +02:00
stefan schippers 8b5ed3f32e symbols picked up from CWD are saved in parent design without absolute paths even if the CWD is not in XSCHEM_LIBRARY_PATH list of places. 2024-07-19 15:13:38 +02:00
stefan schippers d444673b88 add `xschem log_write text` command so erc error messages are written into errfp instead of stderr by tcl 2024-07-12 07:09:32 +02:00
stefan schippers 28bef9b06e fix_symbols: add optional pattern parameter: `fix_symbols 0 devices` 2024-07-09 08:53:24 +02:00
stefan schippers e8e4196da2 sym_vs_sch_pins(): check for not NULL pin_dir to avoid crash, as per Tim Edwards findings 2024-07-03 08:39:56 +02:00
stefan schippers 079c643be0 add graph_autoload to tctx::global_list 2024-06-23 16:06:13 +02:00
stefan schippers 89eb02f188 add autoload checkbutton in graph properties to automatically load or not custom graph-specified raw files 2024-06-23 15:59:22 +02:00
stefan schippers 64d5472963 allow `global` atttributes on instances of gnd.sym and vdd.sym to override symbol `global` setting. This allows also to set global=1 to net labels (lab_net.sym, lab_pin.sym) to make the net global. 2024-06-23 11:02:25 +02:00
stefan schippers e122a9764e ps/pdf export: use highlight colors on instances / wires that are highlighted 2024-06-21 14:19:11 +02:00
stefan schippers d42ecf96c5 add attribute text_layer_n=lay, where n = text object inside symbol instance to change its layer 2024-06-21 13:18:52 +02:00
stefan schippers 4e236750ed add abs_path parameter to get_sym_name() for more flexibility 2024-06-21 11:33:28 +02:00
stefan schippers 5ce1f01f43 correctly evaluate tcleval(....) in spice_sym_def attributes (ie after substituting @vars) 2024-06-21 01:41:42 +02:00
stefan schippers 36c79f262c add @symref (in addition to @symname) substitution in spice_sym_def processing 2024-06-21 01:03:08 +02:00
stefan schippers fa4d4a0970 enhance spice_sym_def used in instances (with schematic=...) by substituting @param with values defined in instance if any (param=xxx) 2024-06-14 08:55:35 +02:00
stefan schippers f267077e99 allow @symname , @param (param defined in symbol template string) translation in instance or symbol spice_sym_def attributes 2024-06-14 08:21:43 +02:00
stefan schippers d7c77718c0 fix erroneous select_touch() usage if incremental_select is set to 0 in xschemrc 2024-06-12 09:12:33 +02:00
stefan schippers efdb6b64ce removed previously added use_pwd_instead_of_current_dirname tcl variable: now a `.` in search path is always assumed to be [pwd] and not the directory of the currently opened schematic. This will hopefully fix an endless list of user complains when using symbols from dirs not listed in XSCHEM_LIBRARY_PATH. 2024-06-11 00:24:30 +02:00
stefan schippers 5e93182f26 add use_pwd_instead_of_current_dirname xschemrc variable to replace curr_dirname in `proc abs_sym_path` and `proc rel_sym_path` with [pwd] instead of [xschem get current_dirname] (the path of currently loaded schematic) 2024-06-10 18:19:58 +02:00
stefan schippers 9545eea546 fix tcleval called with 2 arguments on windows build in print_image() 2024-06-09 23:38:20 +02:00
stefan schippers 9282ea670e fix bus_tap netlisting with bus pin (pin # 1) connected to unnamed net. If Tap pin (pin # 0) was already named as #net... (unnamed net ) delete and take name from bus pin and tap index 2024-05-31 11:50:02 +02:00
stefan schippers 9f368d32e5 sim_pinnumber attribute on schematic pins will be used for top level .subckt pin ordering if no corresponding symbol exists when creating a spice netlist 2024-05-31 09:07:56 +02:00
stefan schippers 5969b0f472 proc ev, ev0, to_eng: evaluate expr at global scope so global vars will be expanded correctly ($path) 2024-05-29 09:41:52 +02:00
stefan schippers 18a0c5e624 Use by default *.{sym,tcl} pattern in insert symbol and component browser 2024-05-28 14:32:20 +02:00
stefan schippers 087aa8c3b9 if a full path is given with -N set netlist file name as well as destination path; allow right click waveforms to set to bold even if cursors are drawn 2024-05-27 08:03:52 +02:00
stefan schippers 84b73bcdf4 `xschem setprop rect layer number fill val` : update cacted .fill value 2024-05-25 10:39:47 +02:00