XCircuit 3.10 Revisions
XCircuit 3.9 Revisions
XCircuit 3.8 Revisions
XCircuit 3.7 Revisions
XCircuit 3.6 Revisions
XCircuit 3.5 Revisions
XCircuit 3.4 Revisions
XCircuit 3.3 Revisions
XCircuit 3.2 Revisions
XCircuit 3.1 Revisions
XCircuit 3.0 Revisions
XCircuit 2.5 Revisions
XCircuit 2.4 Revisions
XCircuit 2.3 Revisions
XCircuit 2.2 Revisions
XCircuit 2.1 Revisions
XCircuit 2.0 Revisions
XCircuit 1 Revisions
- posted: June 25, 2022 at 11:02am version: 3.10 revision: 30
- posted: December 27, 2020 at 3:00am version: 3.10 revision: 30
- posted: September 20, 2020 at 3:00am version: 3.10 revision: 29
Applied patch by Kevin Zheng to avoids a crash condition if the XCreateIC() call fails (which is presumably system-dependent, and can return NULL).
Made a change to the font loading with XLoadQueryFont() to fall back on absolutely anything available (4th attempt). And if that fails, it issues a stern warning about not having any X11 fonts available.
- posted: June 22, 2020 at 3:00am version: 3.10 revision: 28
Corrected a PCB netlisting error where code failed to check for a net count of zero and therefore attempted to access a non- existing pointer.
- posted: June 20, 2020 at 3:00am version: 3.10 revision: 27
Applying patch from Dan Moore's commit on github to correct for a problem with pointer sizes that needs to be handled in the code for Tcl_GetHandleFromObj().
- posted: May 31, 2020 at 3:00am version: 3.10 revision: 26
Corrected the SVG output for text characters "<" and ">" to the html encodings "<" and ">", respectively, per the bug report from Henk Boezen.
- posted: May 20, 2020 at 3:00am version: 3.10 revision: 25
Corrected an error where a label is incorrectly unselected when "Parameterize" has been called from the menu while the label is being created, causing a crash. In the same place in the code, corrected the position of the text cursor to account for the added parameter start and end markers.
- posted: April 28, 2020 at 3:00am version: 3.10 revision: 24
Added the ability to mark object instances as non-netlistable on a per-instance basis (supplements the ability to mark objects as non- network, which makes all instances automatically non-netlistable). There is no method to make non-network objects netlistable on a per-instance basis, only vice versa.
- posted: April 26, 2020 at 3:00am version: 3.10 revision: 23
Corrected an error in the PCB netlisting which could cause nets to get scrambled (in particular, regular nets could get merged into global nets such as Vdd and Gnd by accident).
- posted: April 25, 2020 at 3:00am version: 3.10 revision: 22
Corrected the wrapper, which had not updated the starting index for colors since a new pre-allocated color was added (which was, actually, quite a long time ago). This prevents the "new window" and "close window" options from working properly, as Tcl throws an error when an image for a non-existent color button is referenced.
- posted: April 21, 2020 at 3:00am version: 3.10 revision: 21
Made another correction to the arc decomposition for path drawing; this one is more fundamental than the last error, which was only in the cairo code. This one failed to add a line to an arc in a path if the arc's start point differed from the previous path point. That led to a difference in behavior between xcircuit and PostScript. Also found that the curve approximation of arcs was not handling conversion to integer properly and so was generating slightly incorrect curve approximations to arcs due to roundoff error. Thanks to Edgar Olthof for pointing out the error and providing detailed examples.
- posted: April 16, 2020 at 3:00am version: 3.10 revision: 20
Corrected one missing void declaration on a routine in Xw (largely deprecated, but still. . . ), and checks for NULL areawin in two places pertaining to batch mode use. Thanks to Kevin Zheng for the patch.
Corrected an error in the cairo graphics implementation of the path drawing routine, which fails to draw a line to the first point of a curve if the curve first point is not the same as the previous path point.
- posted: April 12, 2020 at 3:00am version: 3.10 revision: 19
Fixes to latex mode not working
Added extension for latex '\includegraphics{}'
Also: Updated version to trigger a new tarball after handling github pull request from Agustin Campeny.
- posted: February 5, 2020 at 3:00am version: 3.10 revision: 17
Corrected (maybe) an error in the old Xt code that must have been there for ages.
- posted: January 29, 2020 at 3:00am version: 3.10 revision: 16
Added configuration option --with-distdir= to allow installation to a location that is not the final runtime install directory, but also without appending the whole install directory to the end of DESTDIR.
Corrected --with-distdir= option use of withval in configure.in.
- posted: January 28, 2020 at 3:00am version: 3.10 revision: 15
Corrected the point-advancing routine (during polygon/path/spline edit) to avoid getting "stuck" when degenerate points are present.
- posted: November 23, 2019 at 3:00am version: 3.10 revision: 14
Added a patch from Dan Moore to fix a problem with multi-byte UTF characters returned by TclEval() not being displayed correctly in an xcircuit string. This problem shows up in expression parameters where the parameter returns an octal code, e.g., 'return "\260"'.
- posted: July 4, 2019 at 3:00am version: 3.10 revision: 13
Added a screen resolution check in preparation for handling retinal display resolution.
Added prototype for getscreenDPI(), and fixed a return without value in tclxcircuit.c.
- posted: October 25, 2018 at 3:00am version: 3.10 revision: 12
Update at Wed Oct 24 21:17:23 EDT 2018 by tim
Added simple file parser for Synopsys symbol library files, and added it to the Import menu selection.
Also: Removed swap file that ended up in the previous commit.
- posted: October 13, 2018 at 3:00am version: 3.10 revision: 11
Update at Fri Oct 12 11:00:31 EDT 2018 by tim
Corrected (presumably) an error that causes xcircuit to crash if a non-key event (modifiers only) is passed to the UTF-8 conversion subroutine (or maybe buffer count doesn't include trailing null? Either one is possible and documentation is sketchy).
- posted: June 21, 2018 at 3:00am version: 3.10 revision: 10
Update at Wed Jun 20 12:24:51 EDT 2018 by tim
Some experimental code to convert keycodes to keysyms to UTF-8 codes and then lookup the encoding from the UTF-8 encoding tables.
- posted: April 24, 2018 at 3:00am version: 3.10 revision: 9
Update at Mon Apr 23 19:48:14 EDT 2018 by tim
Applied a patch from Viking-coyote for Gentoo Linux, making use of the $TCL_LIB_FILE variable from tclConfig.sh instead of trying to construct the library file name from parts.
- posted: February 10, 2018 at 3:00am version: 3.10 revision: 8
Update at Fri Feb 9 12:38:17 EST 2018 by tim
A number of updates supporting batch mode, for colors and fonts, and for correcting minor issues with startup. Versioning changed to parse the version string instead of treating it superficially as a floating-point number (which it's not).
Also: Extended method of last commit to include a non-Cairo graphics compile.
Also: Implemented a hard kill to avoid hanging in a terminal on a Ctrl-C.
Also: Removed the backup file saving during batch mode, which also removes a crash condition that was happening during backup due to an X11 call.
Also: Additional change to avoid querying the cursor position when in batch mode.
- posted: February 9, 2018 at 3:00am version: 3.10 revision: 7
Update at Thu Feb 8 10:15:46 EST 2018 by tim
Modifed the startup so that the command line will accept any number of space-separated files, instead of the former method, which required a comma-separated list with no spaces, which is incompatible with doing things like 'xcircuit *.ps'.
Also: The first truly batch version of xcircuit implemented for the command-line options "-nowindow -noconsole". The version does not require a DISPLAY variable or a connection to an X server, and may take commands from stdin and generate graphics, netlists, and so forth from a script without regard to any graphics state.
- posted: February 6, 2018 at 3:00am version: 3.10 revision: 6
Update at Mon Feb 5 15:13:17 EST 2018 by tim
Corrected an error in "unparameterize" that failed to remove a parameter from a string if that parameter has no instance value. This would lead to an immediate crash. Also noted that the routine removes only the first parameter in the string, so modified it to remove all parameters in the string. This is correct behavior if the whole string is selected. However, it needs a different method for interactive edit mode, to remove only the parameter under the cursor (not yet done).
Also: Added code to implement a different "Unparameterize" method when editing a label. Only the parameter where the cursor is located will be removed.
- posted: February 3, 2018 at 3:00am version: 3.10 revision: 5
Update at Fri Feb 2 16:02:27 EST 2018 by tim
Found a fix to selection cycles in version 3.9 that was not copied to version 3.10.
- posted: September 26, 2017 at 3:00am version: 3.10 revision: 4
Testing standard git functions (instead of the existing scripts)
Also: Merge branch 'master' into work
Also: Added special handling for the "bbox" line that appears in .lps files that are font vector files. This allows a font vector file to be more easily edited within xcircuit, and will preserve the bounding box as understood by the vector font code.
Also: Update at Mon Sep 25 21:41:45 EDT 2017 by tim
Also: Merge branch 'master' into work
- posted: August 11, 2017 at 3:00am version: 3.10 revision: 3
Update at Thu Aug 10 22:41:11 EDT 2017 by tim
- posted: August 10, 2017 at 3:00am version: 3.10 revision: 2
Update at Wed Aug 9 09:04:41 EDT 2017 by tim
- posted: April 26, 2017 at 3:00am version: 3.10 revision: 1
Updated .gitignore file to reflect the actual project contents.
Also: Corrected the .gitignore file.
- posted: April 26, 2017 at 3:00am version: 3.10 revision: 0
First commit of development version 3.10 (no changes from 3.9).
- posted: April 24, 2018 at 3:00am version: 3.9 revision: 73
Update at Mon Apr 23 19:48:54 EDT 2018 by tim
Applied a patch from Viking-coyote for Gentoo Linux, making use of the $TCL_LIB_FILE variable from tclConfig.sh instead of trying to construct the library file name from parts. Same change as made to xcircuit version 3.10.
- posted: February 6, 2018 at 3:00am version: 3.9 revision: 72
Update at Mon Feb 5 15:14:30 EST 2018 by tim
Same correction as made to xcircuit-3.10: Corrected problem that causes a segfault if "unparameterize" is used on a label containing a parameter that takes the default value.
Also: Added code to implement a different "Unparameterize" method when editing a label. Only the parameter where the cursor is located will be removed. Same change as made to version 3.10.
- posted: January 24, 2018 at 8:42am version: 3.9 revision: 71
Changed behavior to avoid having a blank entry for "Filename" in the output properties window. However, it is currently popping the window down even when it notes illegal characters (such as whitespace) in the filename, so that the impression is that the file has been saved successfully, not that there has been an error.
Also: Update at Sat Dec 9 13:13:36 EST 2017 by tim
Also: Merge branch 'master' into work
Also: Fixed mousehints, which was not compatible with multiple windows.
- posted: August 10, 2017 at 3:00am version: 3.9 revision: 70
No changes; realigning the git databases.
- posted: August 9, 2017 at 3:00am version: 3.9 revision: 69
No changes; realigning the git databases.
- posted: July 25, 2017 at 3:00am version: 3.9 revision: 68
Corrected the XCF_Exit binding callback "quitcheck" such that if there are no changes and no prompt is required, the Tcl registered command "quitnocheck" is called at the end, so that xcircuit does not keep running after preparing for exit.
- posted: July 22, 2017 at 3:00am version: 3.9 revision: 67
Corrected an error in edit point cycles that could cause a crash under a fairly specific set of motions, rare in practice except when XWarpPointer() does not work (as happens on VNC sessions), in which case it becomes much more common.
- posted: April 8, 2017 at 3:00am version: 3.9 revision: 66
Applied patch from Erik van der Wal to correct an error in has_param().
- posted: March 30, 2017 at 3:00am version: 3.9 revision: 65
Added patch from Erik van der Wal to fix parts of the non-Tcl xcircuit compile broken by recent font encoding changes, and a few corrections to the menu for text anchoring.
- posted: March 29, 2017 at 3:00am version: 3.9 revision: 64
Updated text handling code to automatically insert encoding arrays into the output file header for anything that is not Standard or ISOLatin1. This avoids the need for "ogonkify" and works for everything except sending the output PostScript directly to a printer (which is practically deprecated in favor of making a PDF file). Also worked around a minor problem where drawing font glyphs causes the internal count of changes to increment for each glyph, making xcircuit save something like five backup copies every time the font character map is drawn.
- posted: March 27, 2017 at 3:00am version: 3.9 revision: 63
Implemented Cyrillic (ISO8859-5) encoding for use with the Cairo graphics, although no vector drawn fonts are available (yet). Unlike ISOLatin-2 and ISOLatin-5 implementations, the encoding tables are written directly to the prologue, so no post-processing is needed. However, the same method should be able to be used with the other ISO encodings.
- posted: March 13, 2017 at 3:00am version: 3.9 revision: 62
Corrected an error with the non-Tcl compile where prototype definitions for defaultscript and loadrcfile are defined for the Tcl/Tk compile.
- posted: January 25, 2017 at 3:00am version: 3.9 revision: 61
Corrected error in allocation of files included in netlist which generates a crash condition if more than one file is included.
- posted: December 5, 2016 at 3:00am version: 3.9 revision: 60
Corrected justification under flip invariance, which should not be reversed like anchoring is.
- posted: November 14, 2016 at 3:00am version: 3.9 revision: 59
Corrected lack of refresh after doing a text auto-increment on an unselected label.
Also: Update at Sun Nov 13 14:43:44 EST 2016 by tim
Also: Merge branch 'work' into tomerge
- posted: November 6, 2016 at 3:00am version: 3.9 revision: 58
Corrected error in text center justification (the one that has been done properly, not anchoring), which would cause a segfault when used with 1-line text (for which center justification is meaningless, but of course it shouldn't crash the program).
Also: Update at Sat Nov 5 21:06:24 EDT 2016 by tim
Also: Merge branch 'work' into tomerge
- posted: October 20, 2016 at 3:00am version: 3.9 revision: 57
Corrected behavior with respect to netlist symbol blocks that have no pins but connect to a schematic that prints info labels to the netlist.
Also: Update at Wed Oct 19 11:19:15 EDT 2016 by tim
Also: Merge branch 'work' into tomerge
Also: Corrected "Load Dependencies" behavior so that if a link file does not exist but there is a schematic attached to the symbol, then "Load Dependencies" does not report an error.
Also: Added missing hierarchy stack back into UDrawObject for cairo graphics. Without it, expression evaluation in parameters does not work correctly.
- posted: October 7, 2016 at 3:00am version: 3.9 revision: 56
Finished correcting the parameter delete code. Appears to work correctly now in tests.
Also: Update at Thu Oct 6 08:56:40 EDT 2016 by tim
Also: Merge branch 'work' into tomerge
Also: Fixed behavior where copy of a library object does not realign the page view of the target library, resulting in a blank, off-screen view the first time an object is copied into the user library.
Also: Modified behavior of parameter window so that listboxes track each other when scrolling.
Also: Also made the help window listboxes scroll synchronously.
Also: Modified the startup so that errors in the startup script don't get obliterated but are printed to the output.
- posted: October 6, 2016 at 3:00am version: 3.9 revision: 55
Reworked the dialog widget, which was being over-used, and causing conflicts in places where all properties of one dialog box use were not completely replaced when reconfiguring the dialog box for another purpose. The "save technology" and "make symbol" dialogs were spun off as their own dedicated widgets.
Also: Update at Wed Oct 5 13:48:12 EDT 2016 by tim
Also: Merge branch 'work' into tomerge
Also: Corrected the "parameter delete" function and bound it to key Alt + Delete, making it easier to remove parameters from text strings.
Also: Implemented parameter delete for cases of parameters that are not strings (integer, float, and expression).
Also: Finished debugging/correcting parameter delete function.
- posted: August 26, 2016 at 3:00am version: 3.9 revision: 54
Added a voltage pulse component to analoglib3, and added a new xspice library that instantiates (most of) the xspice built-in digital components in ng-spice, as well as the A/D and D/A bridges.
Also: Update at Thu Aug 25 12:59:17 EDT 2016 by tim
Also: Merge branch 'work' into tomerge
- posted: August 25, 2016 at 3:00am version: 3.9 revision: 53
Corrected a free() on xobjs.tempfile that was called if tempfile is null, causing a crash on exit.
Also: Update at Wed Aug 24 16:58:57 EDT 2016 by tim
Also: Merge branch 'work' into tomerge
Also: Corrected the prompted-quit the right way this time.
- posted: August 24, 2016 at 3:00am version: 3.9 revision: 52
Fixed problem with "quit" immediately exiting without prompting.
Also: Update at Tue Aug 23 21:24:23 EDT 2016 by tim
Also: Merge branch 'work' into tomerge
- posted: July 22, 2016 at 3:00am version: 3.9 revision: 51
Updated configure script to extract the paths for the Tcl and Tk lib and include files, so that subsequent checks for those files are not disjoint from the contents of tclConfig.sh and tkConfig.sh.
Also: Update at Thu Jul 21 11:18:42 EDT 2016 by tim
Also: Merge branch 'work' into tomerge
- posted: July 13, 2016 at 3:00am version: 3.9 revision: 50
It was discovered that "underline" can be set as the last entry in a label, and this will cause the output PostScript to be invalid, causing a stack underflow as the underline procedure expects an argument on the stack, and if it's the last thing in the label, then there are no additional arguments on the stack. Added a stack count to the {ul} and {ol} procedures that cause them to do nothing if encountered at the end of a label.
Also: Update at Tue Jul 12 20:50:27 EDT 2016 by tim
Also: Merge branch 'work' into tomerge
- posted: June 25, 2016 at 3:00am version: 3.9 revision: 49
Added "page update" command option, and modified the "Write All" callback procedure to call it before saving a page, so that the bounding box will always be current.
Also: Update at Fri Jun 24 08:32:34 EDT 2016 by tim
Also: Merge branch 'work' into tomerge
- posted: May 27, 2016 at 3:00am version: 3.9 revision: 48
Corrected a problem with file reads where the parsing of the scale-variant indicator "/sv" was affected by the switch of the rotation parameter from an integer to a float, causing the check for "/sv" to be in the wrong routine.
Also: Update at Thu May 26 10:05:30 EDT 2016 by tim
Also: Merge branch 'work' into tomerge
- posted: April 24, 2016 at 3:00am version: 3.9 revision: 47
Changed all of the rotation values from short integer to type float. This is in preparation for a vector-based interactive rotation method, although a vector position is preferable to a scalar rotation value. Also, added a clip mask to the cairo drawing of a graphic so that the graphic is drawn correctly in rotation (fortunately cairo makes this task trivial).
Also: Update at Sat Apr 23 23:15:21 EDT 2016 by tim
Also: Merge branch 'work' into tomerge
- posted: April 14, 2016 at 3:00am version: 3.9 revision: 46
Modified scroll wheel bindings for Windows per comments from urdonma. This also adds binding control + mouse wheel for zoom in and out.
Also: Update at Wed Apr 13 11:22:26 EDT 2016 by tim
Also: Merge branch 'work' into tomerge
- posted: April 13, 2016 at 3:00am version: 3.9 revision: 45
Added a new feature to support true text justification (center and right justification). Renamed everything previously called "justification" to "anchoring", since that is what the feature actually implemented. May have interactions with tab stops and margin stops which have not been checked.
Also: Update at Tue Apr 12 10:09:40 EDT 2016 by tim
Also: Merge branch 'work' into tomerge
Also: Fixed an incorrect typedef that is revealed in a mingw32 compile.
- posted: February 20, 2016 at 3:00am version: 3.9 revision: 44
Surprised to find that I had not changed the history filename on the tkcon.tcl script in xcircuit; this makes the history unique to xcircuit so that commands do not get confused with/overwritten by other uses of tkcon.
Also: Update at Fri Feb 19 17:23:39 EST 2016 by tim
Also: Merge branch 'work' into tomerge
Also: Not realizing that I had never updated xcircuit's quit procedure to be compatible with the history file declared in tkcon.tcl, I implemented it at last. History file is now unique to xcircuit and does not get merged with other uses of tkcon.
- posted: November 30, 2015 at 3:00am version: 3.9 revision: 43
Changed the "clipped" flag from type char to type signed char to avoid problems with Irix/Aix and other compilers that treat type char as unsigned by default.
Also: Update at Sun Nov 29 12:54:47 EST 2015 by tim
Also: Merge branch 'work' into tomerge
- posted: November 26, 2015 at 3:00am version: 3.9 revision: 42
Corrected "suspend" from being type "char" to being type "signed char". Because "char" is not specified in the C spec as being either signed or unsigned, it is subject to interpretation by the compiler, and this differs depending on the OS. gcc interprets it as signed. Irix and AIX CC compilers interpret it as unsigned. Thanks to Chris "The Last of the Irixians" Wormuth for debugging this issue.
Also: Update at Wed Nov 25 08:32:54 EST 2015 by tim
Also: Merge branch 'work' into tomerge
- posted: November 24, 2015 at 3:00am version: 3.9 revision: 41
Makefile updates---these are basically nonfunctional changes.
Also: Update at Mon Nov 23 16:35:42 EST 2015 by tim
Also: Merge branch 'work' into tomerge
- posted: November 14, 2015 at 3:00am version: 3.9 revision: 40
Added a few checks for a null instance that prevent a new window from being created without crashing the program, due to events being handled earlier than the instance is generated and attached to the window record.
Also: Update at Fri Nov 13 08:19:15 EST 2015 by tim
Also: Merge branch 'work' into tomerge
Also: Moved some hard-coded resources from the wrapper script, where they don't belong, to the resource script, where they do. Otherwise it becomes more difficult to customize the resources.
Also: Left a temporary resource used for testing in the resource file.
Also: Fixed an error with generating new windows caused by having a focus event handled early, which overwrites areawin with the nonexistant new window, making it impossible to copy values from the old window to the new one unless a pointer to the old window is made before calling GUI_init.
- posted: October 7, 2015 at 3:00am version: 3.9 revision: 39
Corrected a long-standing error in which changes to the color indexing scheme in version 3.9 were missed in the code for SVG format export, causing closed polygons of any style to be rendered solid black.
Also: Update at Tue Oct 6 11:04:46 EDT 2015 by tim
Also: Merge branch 'work' into tomerge
- posted: April 23, 2015 at 3:00am version: 3.9 revision: 38
Corrected a few more occurrences where the cairo graphics don't force a screen refresh, including snap space half or double, and "clear page" (from the menu; "page reset" from the interpreter prompt).
Also: Update at Wed Apr 22 19:58:07 EDT 2015 by tim
Also: Merge branch 'work' into tomerge
- posted: February 6, 2015 at 3:00am version: 3.9 revision: 37
Updated configuration for Fedora 21; autoconf now seems to require yet another stupid script file.
Also: Update at Thu Feb 5 09:40:48 EST 2015 by tim
Also: Merge branch 'work' into tomerge
- posted: February 3, 2015 at 3:00am version: 3.9 revision: 36
Restored backwards-compatibility for libraries that were written prior to the introduction of namespaces.
Also: Update at Mon Feb 2 14:58:44 EST 2015 by tim
Also: Merge branch 'work' into tomerge
- posted: January 21, 2015 at 3:00am version: 3.9 revision: 35
Corrected spice output for the case that a symbol without a subcircuit is instanced (X...) but the symbol contains buses for pins such as "B(7:0)"; the pin bus name must be recast into individual nets to compare to the spice subcircuit call ports. This should work for CDL netlists as well, as a bus in the port list will be compared to a pin that is a bus.
Also: Update at Tue Jan 20 20:10:39 EST 2015 by tim
Also: Merge branch 'work' into tomerge
- posted: December 11, 2014 at 3:00am version: 3.9 revision: 34
Slight correction to bus detection on input, so that it doesn't generate a warning about the bus character used when it already matches areawin->buschar.
Also: Update at Wed Dec 10 12:24:41 EST 2014 by tim
Also: Merge branch 'work' into tomerge
- posted: December 7, 2014 at 3:00am version: 3.9 revision: 33
Corrected an error with bus notation in which wires are not promoted to a bus size 1 in certain cases, preventing them from being matched.
Also: Update at Sat Dec 6 15:06:39 EST 2014 by tim
Also: Merge branch 'work' into tomerge
Also: A few extras for netlisting: (1) Auto-detect bus delimiters in files, and change "buschar" where appropriate, so that issuing "option buschar" is not required, although a warning will be issued. (2) Generate a warning instead of an error when a "dot" is placed over a bus wire. This should be handled automatically without either an error or a warning, but it does not handle the case where a dot is placed over crossing wires. This situation will fail to netlist correctly, making the warning essential.
Also: Made a simple change that allows "dot" objects to take on the dimension of the bus underneath, so that dots on buses do not need to generate warnings, and are handled correctly when placed over crossing buses (although the buses need to be of the same dimension; otherwise, a tap is required instead of a dot).
- posted: November 15, 2014 at 3:00am version: 3.9 revision: 32
Modified tkcon.tcl for Tcl/Tk v8.6 (otherwise up and down arrows do not scroll through history in the console).
Also: Update at Fri Nov 14 17:03:54 EST 2014 by tim
Also: Merge branch 'work' into tomerge
- posted: November 6, 2014 at 3:00am version: 3.9 revision: 31
Fixed an error that caused the file to load on the command-line to be lost if there was an intervening option argument like "-2".
Also: Update at Wed Nov 5 10:17:34 EST 2014 by tim
Also: Merge branch 'work' into tomerge
- posted: October 29, 2014 at 3:00am version: 3.9 revision: 30
Overhauled the configuration file for two purposes: (1) depend on the values defined in tclConfig.sh and tkConfig.sh, instead of attempting to bypass them (they used to be unreliable, but are believed to be okay in 8.5 and 8.6), and (2) make the Cairo graphics interface enabled by default (since I have been using it for some time now and it is deemed stable). Also, added some output at the end of "configure" to summarize the options chosen, and to alert the user when recommended options were not able to be used, along with useful suggestions.
Also: Update at Tue Oct 28 10:59:26 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
Also: Corrected an error in the character bottom extent calculation in the cairo code.
- posted: October 11, 2014 at 3:00am version: 3.9 revision: 29
Corrected two errors that prevent the use of multiple windows in version 3.9 (causes immediate crash)---img_* images in Tcl/Tk now start at NUMBER_OF_COLORS, not zero, and the drawarea routine needs to check if areawin->cr is non-NULL before attempting to redraw a window, because the first expose event generated by the new window occurs between the time that the new window is added to the list of windows xcircuit handles and the time that the window is initialized for drawing.
Also: Update at Fri Oct 10 08:42:13 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
- posted: October 9, 2014 at 3:00am version: 3.9 revision: 28
Modified "promptmakeobject" so that it (1) watches for a null text entry, (2) watches for duplicate object name, (3) checks again for no object selected, and (3) avoids generating confusing syntax error messages due to any of the above.
Also: Update at Wed Oct 8 21:04:02 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
- posted: August 28, 2014 at 3:00am version: 3.9 revision: 27
Applied patches sent by Vasil, fixing several potential crash conditions.
Also: Update at Wed Aug 27 09:58:33 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
- posted: July 28, 2014 at 3:00am version: 3.9 revision: 26
Corrected an error with LaTeX label handling; special characters should be completely ignored, not printed as they are in the message widget at the bottom of the screen. This was causing all parameters in LaTeX strings to have ">" added to them.
Also: Update at Sun Jul 27 19:28:26 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
Also: Also corrected an error that causes a crash if a list is passed to a parameter in the wrong way; e.g., {Text A} instead of {{Text A}} (because general-purpose text strings are lists of lists. . . but that's not an excuse for bad behavior). In the corrected version, the parameter text will be set to "Text A", which is probably not what the user intends in that case, but is technically correct.
- posted: July 25, 2014 at 3:00am version: 3.9 revision: 25
Added redraw updates needed by undo and redo functions. Corrected interactive rescaling.
Also: Update at Thu Jul 24 09:07:03 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
- posted: July 24, 2014 at 3:00am version: 3.9 revision: 24
Corrected a rather egregious but formerly undetected error in which an auto-increment or text substitution will put xcircuit into an indefinite "undo series" mode. If an "undo" is attempted some time later, a lot of stuff is undone all at once.
Also: Update at Wed Jul 23 22:48:00 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
Also: Made the additional safeguard of disallowing "undo" or "redo" in the middle of an undo series.
- posted: July 11, 2014 at 3:00am version: 3.9 revision: 23
Modified the configure for cairo, because a final "[]" in the definition was causing an error on one of the systems I was configuring xcircuit for. Not really sure why that happened. . .
Also: Update at Thu Jul 10 09:44:59 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
- posted: July 7, 2014 at 3:00am version: 3.9 revision: 22
Corrected the window mapping code so that it actually does correct the race condition this time. . .
Also: Update at Sun Jul 6 11:43:10 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
- posted: July 5, 2014 at 3:00am version: 3.9 revision: 21
Implemented a version of "tkwait" after calling Tk_MapWindow(); this may solve the problems with invalid colormaps.
Also: Update at Fri Jul 4 09:52:23 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
Also: Added some lines of code from Tk's implementation of "tkwait" so that xcircuit waits for X11 to map the window before attempting to query any properties of that window, such as Tk_Colormap().
Also: Corrected a missing return value; thanks to Andrea D'Amore for the bug report and bug fix.
Also: Corrected a typo in the inch/centimeter file read that was introduced by a recent code change.
- posted: July 4, 2014 at 3:00am version: 3.9 revision: 20
Changed labeltext() to completely remove a text label with no text in it (parameters, however, even empty ones, count as text present). Otherwise one ends up with unselectable empty text labels that will not go away.
Also: Update at Thu Jul 3 12:06:35 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
Also: Corrected handling of labels containing only emptry string parameters, such that they can be selected and edited.
Also: Corrected an error in renaming library objects; serious potential for memory corruption due to out-of-bounds string access.
Also: Corrected a netlisting error that failed to decend into linked symbols when writing a flat netlist.
- posted: July 2, 2014 at 3:00am version: 3.9 revision: 19
Added forced redraw after creating a dot using the '.' macro.
Also: Update at Tue Jul 1 08:51:33 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
- posted: July 1, 2014 at 3:00am version: 3.9 revision: 18
Modified output GUI to select and display the sheet size if it matches one of the entries in "Sizes". Also, the page size is not printed to arbitrarily fine precision as before.
Also: Update at Mon Jun 30 10:23:08 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
Also: Restored proper function of "make matching symbol"; specifically, corrected the Tcl funtions "schematic goto" and "symbol goto" so that they check which is the current view before calling "swapschem". Otherwise, if you are on a symbol view and say "symbol goto", it will switch to the schematic, and vice versa.
Also: Corrected an error that would make labels invalid (random value in "cycles") after doing a "symbol make" from the command line. Reinstated the fix for deselecting elements at the end of getsubckttext, after having tracked down and fixed the root cause of the crash condition.
- posted: June 30, 2014 at 3:00am version: 3.9 revision: 17
Corrected an error that apparently reappeared due to a commit override.
Also: Update at Sun Jun 29 10:54:41 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
Also: Added graphics-suppressing statements when a schematic is being analyzed for the matching symbol; otherwise this process takes a long time to run. Also added a deselect that prevents a crash condition due to a memory error in cycles, but the root cause has not been determined (use of the command "element" selects an element and somehow this causes the cycle location to get a bad value). Also found problems with info labels generated by the "make matching symbol" script; these need to be corrected.
- posted: June 29, 2014 at 3:00am version: 3.9 revision: 16
Corrected an error in the parsing of the command line, in which it appears to not be the case that all arguments after the first are placed into a single Tcl list object, but are presented as an array of objects. Parsing now handles both cases, which restores the "-exec" option.
Also: Update at Sat Jun 28 09:47:14 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
Also: Corrected the handling of inches vs. centimeters when reading a file. The Tcl/Tk version broke this handling.
- posted: June 28, 2014 at 3:00am version: 3.9 revision: 15
Corrected an error in technology saving, if there are new user objects being saved to a previously unnamed technology. Thanks to Peter P. for the bug report.
Also: Update at Fri Jun 27 14:14:29 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
- posted: June 3, 2014 at 3:00am version: 3.9 revision: 14
Update at Mon Jun 2 16:22:52 EDT 2014 by erik
Also: Fixed SELAREA_MODE with multiple selections
Also: These makefile changes need to be ignored by git. . .
Also: Merge branch 'work' into tomerge
Also: Corrected a line of code in xtfuncs that would return a reserved color index instead of the color menu color index that it was supposed to do.
- posted: June 2, 2014 at 3:00am version: 3.9 revision: 13
Corrected an error in the image data file output in which a 4-byte integer can be mapped to an 8-byte long, and if the upper bytes are not zero, then the first image byte can be invalid, causing the graphic to fail in any application reading the file, including xcircuit if it reads the file back in.
Also: Update at Sun Jun 1 21:33:42 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
- posted: June 1, 2014 at 3:00am version: 3.9 revision: 12
Corrected an error in the cairo version of
Also: Update at Sat May 31 14:50:48 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
- posted: May 31, 2014 at 3:00am version: 3.9 revision: 11
Update at Fri May 30 14:41:26 EDT 2014 by tim
Also: Applied the patch for the render (background PostScript) function.
- posted: May 30, 2014 at 3:00am version: 3.9 revision: 10
Fixed an inadvertently duplicated line and a debug print statement that was left in the code.
Also: Update at Thu May 29 10:18:16 EDT 2014 by erik
Also: Added drawing for normal_mode_draw. Removed PENDING_MODE Panning using hand icon, now redraws corectly Selections do not have little black borders. Fixed -pedantic warnings in events.c
Also: Merge branch 'work' into tomerge
Also: Pushing Makefile updates resulting from change to Makefile.am. Also, added a line to force a redraw when a parameter is changed from the parameter window in the Tcl/Tk version.
Also: Fixed the Tcl/Tk version, where reordering of the event mode broke the event mode value returned by command "eventmode".
Also: Corrected what was apparently a very long-standing error that incorrectly calculated the length of a multi-line text label if successive lines were shorted than the first.
Also: Another correction needed to complete the previous fix concerning multi-line label width.
Also: Fixes for panning Alt colors now changes colors immediately
- posted: May 29, 2014 at 3:00am version: 3.9 revision: 9
Update at Wed May 28 12:37:18 EDT 2014 by erik
Also: Removed double declaration of fixed_pixmap
Also: Fixed setting color of selected element. Fixed cairo error when arc y-axis is zero.
- posted: May 28, 2014 at 3:00am version: 3.9 revision: 8
Update at Tue May 27 15:55:30 EDT 2014 by erik
Also: Removed all the XOR drawing and color selections. Both X11 and cairo now should behave the same.
- posted: May 27, 2014 at 3:00am version: 3.9 revision: 7
More cairo updates from Erik van der Wal: 1) Color changes for X11 2) Speedup of text drawing 3) Cleanup of double code in *_mode_draw 4) Prevent constant redraw during text edit
Also: Update at Mon May 26 09:17:39 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
Also: Remote changes at Mon May 26 15:26:13 CEST 2014 by erik on linux-0sru.site
Also: Added Erik's fix to properly force a screen refresh with the space bar.
Also: Merge branch 'work' into tomerge
Also: Fixed drawing of colored text
- posted: May 25, 2014 at 3:00am version: 3.9 revision: 6
Partially corrected the multi-element select and edit, which had been disabled by new drawing code.
Also: Update at Sat May 24 12:08:46 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
Also: Corrected in-line color changes with cairo text drawing. The in-line color changes were correctly embedded in the string but the color would not change on-screen.
Also: Final correction to the multiple-element editing code, from Erik van der Wal. All parts now correctly redraw during edit moves.
- posted: May 23, 2014 at 3:00am version: 3.9 revision: 5
Numerous changes involving the color index array and the handling of colors.
Also: Update at Thu May 22 15:00:37 EDT 2014 by tim
Also: Merge branch 'work' into tomerge
Also: Corrected XSetForeground calls in the filelist widget
Also: Additional correction to colors when writing output.
- posted: May 22, 2014 at 3:00am version: 3.9 revision: 4
Removed the deprecated opengl interface. Removed calls to DOUBLEBUFFER, which is always defined implicitly except when using the cairo interface. Fixed an error with selecting text substrings when using cairo.
Also: Update at Wed May 21 17:13:29 EDT 2014 by tim
Also: Merge branch 'master' into work
Also: Added a needed redraw after an interactive resize.
- posted: May 19, 2014 at 3:00am version: 3.9 revision: 3
Changed the wrapper script to set ISOLatin1 as the default encoding (per request from Romano). Changed the configure script so that libraries for cygwin are named .dll.a instead of .dll (thanks to Satya Narayan Mishra).
Also: Update at Sun May 18 19:50:40 EDT 2014 by tim
Also: Merge branch 'master' into work
Also: Removed autom4te.cache directory. I dislike having it in the distribution.
- posted: May 18, 2014 at 3:00am version: 3.9 revision: 2
Added the correct .gitignore file, as promised.
Also: Update at Sat May 17 10:29:01 EDT 2014 by tim
Also: Merge branch 'master' into work
Also: fontconfig correction on Makefile.am and configure.in. I have not run automake or autoconf, however.
- posted: May 17, 2014 at 10:24am version: 3.9 revision: 1
Looks like I need to add the gitignore file. . .
- posted: January 26, 2017 at 3:00am version: 3.8 revision: 83
Corrected error in allocation of files included in netlist which generates a crash condition if more than one file is included. Same change as made to xcircuit-3.9.
Also: Update at Wed Jan 25 09:55:37 EST 2017 by tim
Also: Merge branch 'master' into work
- posted: September 23, 2016 at 3:00am version: 3.8 revision: 82
Corrected an error that had been fixed in 3.9 but not back-ported to 3.8, that causes pin label "cycle" record to be uninitialized and so can cause the program to crash.
Also: Update at Thu Sep 22 20:37:55 EDT 2016 by tim
Also: Merge branch 'master' into work
- posted: July 22, 2016 at 3:00am version: 3.8 revision: 81
Updated configure script to extract the paths for the Tcl and Tk lib and include files, so that subsequent checks for those files are not disjoint from the contents of tclConfig.sh and tkConfig.sh.
Also: Update at Thu Jul 21 11:18:53 EDT 2016 by tim
Also: Merge branch 'master' into work
- posted: July 13, 2016 at 3:00am version: 3.8 revision: 80
Same change as made to xcircuit-3.9, to avoid PostScript errors caused by ending a label with an underline or overline directive, which will cause a stack underflow in the PostScript interpreter.
Also: Update at Tue Jul 12 20:55:47 EDT 2016 by tim
Also: Merge branch 'master' into work
- posted: June 25, 2016 at 3:00am version: 3.8 revision: 79
Added "page update" command option, and modified the "Write All" callback procedure to call it before saving a page, so that the bounding box will always be current (same change as made to 3.9).
Also: Update at Fri Jun 24 08:32:51 EDT 2016 by tim
Also: Merge branch 'master' into work
- posted: February 3, 2015 at 3:00am version: 3.8 revision: 78
Restored backwards-compatibility for libraries that were written prior to the introduction of namespaces.
Also: Update at Mon Feb 2 14:58:31 EST 2015 by tim
Also: Merge branch 'master' into work
- posted: December 7, 2014 at 3:00am version: 3.8 revision: 77
Corrected an error with bus notation in which wires are not promoted to a bus size 1 in certain cases, preventing them from being matched.
Also: Update at Sat Dec 6 15:06:51 EST 2014 by tim
Also: Merge branch 'master' into work
Also: Changed netlister to allow "dot" objects to take on the dimension of whatever bus they are placed over, so bus wires of the same dimension can be connected together with dots, even at crossovers.
- posted: November 15, 2014 at 3:00am version: 3.8 revision: 76
Modified tkcon.tcl for Tcl/Tk v8.6 (otherwise up and down arrows do not scroll through history in the console).
Also: Update at Fri Nov 14 17:03:29 EST 2014 by tim
Also: Merge branch 'master' into work
- posted: November 6, 2014 at 3:00am version: 3.8 revision: 75
Fixed an error that caused the file to load on the command-line to be lost if there was an intervening option argument like "-2".
Also: Update at Wed Nov 5 10:17:48 EST 2014 by tim
Also: Merge branch 'master' into work
- posted: October 9, 2014 at 3:00am version: 3.8 revision: 74
Modified "promptmakeobject" so that it (1) watches for a null text entry, (2) watches for duplicate object name, (3) checks again for no object selected, and (3) avoids generating confusing syntax error messages due to any of the above.
Also: Update at Wed Oct 8 21:03:49 EDT 2014 by tim
Also: Merge branch 'master' into work
- posted: August 28, 2014 at 3:00am version: 3.8 revision: 73
Applied patches sent by Vasil, fixing several potential crash conditions.
Also: Update at Wed Aug 27 09:58:10 EDT 2014 by tim
Also: Merge branch 'master' into work
- posted: July 28, 2014 at 3:00am version: 3.8 revision: 72
Corrected an error with LaTeX label handling; special characters should be completely ignored, not printed as they are in the message widget at the bottom of the screen. This was causing all parameters in LaTeX strings to have ">" added to them.
Also: Update at Sun Jul 27 19:28:13 EDT 2014 by tim
Also: Merge branch 'master' into work
Also: Also corrected an error that causes a crash if a list is passed to a parameter in the wrong way; e.g., {Text A} instead of {{Text A}} (because general-purpose text strings are lists of lists. . . but that's not an excuse for bad behavior). In the corrected version, the parameter text will be set to "Text A", which is probably not what the user intends in that case, but is technically correct.
- posted: July 25, 2014 at 3:00am version: 3.8 revision: 71
Corrected problems with "undo series" that match changes made to version 3.9.
Also: Update at Thu Jul 24 09:06:26 EDT 2014 by tim
Also: Merge branch 'master' into work
- posted: July 5, 2014 at 3:00am version: 3.8 revision: 70
Corrected a typo in the inch/centimeter file read that was introduced by a recent code change.
Also: Update at Fri Jul 4 15:25:31 EDT 2014 by tim
Also: Merge branch 'master' into work
- posted: July 4, 2014 at 3:00am version: 3.8 revision: 69
Changed labeltext() to completely remove a text label with no text in it (parameters, however, even empty ones, count as text present). Otherwise one ends up with unselectable empty text labels that will not go away.
Also: Update at Thu Jul 3 12:06:26 EDT 2014 by tim
Also: Merge branch 'master' into work
Also: Corrected handling of labels containing only emptry string parameters, such that they can be selected and edited.
Also: Corrected an error in renaming library objects; serious potential for memory corruption due to out-of-bounds string access.
Also: Corrected a netlisting error that failed to decend into linked symbols when writing a flat netlist.
- posted: July 1, 2014 at 3:00am version: 3.8 revision: 68
Modified output GUI to select and display the sheet size if it matches one of the entries in "Sizes". Also, the page size is not printed to arbitrarily fine precision as before.
Also: Update at Mon Jun 30 10:23:00 EDT 2014 by tim
Also: Merge branch 'master' into work
Also: Restored proper function of "make matching symbol"; specifically, corrected the Tcl funtions "schematic goto" and "symbol goto" so that they check which is the current view before calling "swapschem". Otherwise, if you are on a symbol view and say "symbol goto", it will switch to the schematic, and vice versa.
- posted: June 29, 2014 at 3:00am version: 3.8 revision: 67
Corrected error in parsing command line, where at some point the structure changed from being one Tcl list object to being individual Tcl objects. This corrects the "-exec" option.
Also: Update at Sat Jun 28 10:44:20 EDT 2014 by tim
Also: Merge branch 'master' into work
- posted: June 28, 2014 at 3:00am version: 3.8 revision: 66
Corrected an error in technology saving, if there are new user objects being saved to a previously unnamed technology. Thanks to Peter P. for the bug report.
Also: Update at Fri Jun 27 14:14:06 EDT 2014 by tim
Also: Merge branch 'master' into work
- posted: June 24, 2014 at 3:00am version: 3.8 revision: 65
Argh, corrected the correction. Note to self: never modify code on the same day you get back from vacation. Thanks to Rikard Falkeborn for the bug report and fix.
Also: Update at Mon Jun 23 15:49:47 EDT 2014 by tim
Also: Merge branch 'master' into work
- posted: June 23, 2014 at 3:00am version: 3.8 revision: 64
Corrected an error in 3.8 that was not properly copied from a fix to 3.9. Thanks to Peter in Bucharest for the bug report and fix.
Also: Update at Sun Jun 22 17:53:46 EDT 2014 by tim
Also: Merge branch 'master' into work
- posted: June 1, 2014 at 3:00am version: 3.8 revision: 63
Update at Sat May 31 14:50:54 EDT 2014 by tim
- posted: May 31, 2014 at 3:00am version: 3.8 revision: 62
Update at Fri May 30 14:41:21 EDT 2014 by tim
- posted: May 30, 2014 at 3:00am version: 3.8 revision: 61
Update at Thu May 29 10:52:47 EDT 2014 by tim
- posted: May 28, 2014 at 3:00am version: 3.8 revision: 60
Update at Tue May 27 19:10:17 EDT 2014 by tim
- posted: May 27, 2014 at 3:00am version: 3.8 revision: 59
Update at Mon May 26 09:55:06 EDT 2014 by tim
- posted: May 6, 2014 at 3:00am version: 3.8 revision: 58
Patch for out-of-bounds error, copied back from the openbsd port.
Also: Update at Mon May 5 11:13:52 EDT 2014 by tim
Also: Merge branch 'master' into work
- posted: March 18, 2014 at 3:00am version: 3.8 revision: 57
Corrected an error where string parameters passed to an instance do not get parentheses in the output file needed to make them proper postscript string objects, causing an error with any postscript interpreter reading the file.
Also: Update at Mon Mar 17 09:39:51 EDT 2014 by tim
Also: Merge branch 'master' into work
- posted: February 12, 2014 at 3:00am version: 3.8 revision: 56
Corrected an error that would prevent creating a new parameter once one had been made and the window popped down, due to the attempt to create an already-existing window.
Also: Update at Tue Feb 11 09:30:10 EST 2014 by tim
Also: Merge branch 'master' into work
- posted: February 9, 2014 at 3:00am version: 3.8 revision: 55
Corrected a problem that would allow technology files to be overwritten with a truncated version if some of the objects were imported using the "import selected" function from the library manager, followed by "save technology". The proper method now is to force a new filename to be given to the technology; once that is done, it is easy to import objects from the original technology file and add them to the new one.
Also: Update at Sat Feb 8 12:31:15 EST 2014 by tim
Also: Merge branch 'master' into work
Also: Modified a behavior that has been in place for a long time: When a library object is copied and given a new name by prepending an underscore, the underscore is put in front of the name but *not* in front of the technology prefix, so that the new object remains in the same technology, and no new technology is implied.
- posted: February 7, 2014 at 3:00am version: 3.8 revision: 54
Trivial update that was intended for the "merge" routine mentioned below, but which is, as yet, nonfunctional. Also: Merge branch 'master' into work
- posted: February 6, 2014 at 3:00am version: 3.8 revision: 53
Corrected an error that would fill the technology filename entry with gibberish if using "library import" to pull individual objects out of a technology file. This does not address the problem of writing back to the file and having the file overwritten with a new file containing only the loaded object. There needs to be a "merge" routine for the writeback.
Also: Update at Wed Feb 5 20:34:55 EST 2014 by tim
Also: Merge branch 'master' into work
- posted: January 9, 2014 at 3:00am version: 3.8 revision: 52
Additional changes to the technology management allow a new technology name to be entered when moving objects between technologies.
Also: Update at Wed Jan 8 11:41:09 EST 2014 by tim
Also: Merge branch 'master' into work
- posted: January 8, 2014 at 3:00am version: 3.8 revision: 51
Updated xcircuit with a much-needed object replacement feature. The command "instance object" previously took no arguments and listed the object name of each instance. The new command option is "instance object" and will change the object of the instance. There is a corresponding menu item "Edit->Replace" that brings up a dialog box where a new object name can be entered and applied.
Also: Update at Tue Jan 7 10:51:45 EST 2014 by tim
Also: Merge branch 'master' into work
Also: Created a new command option and UI method for moving objects from one technology to another. The command "technology objects" has been extended to include "technology objects ", which will move all objects in list "
" from their existing technology into the technology
. The UI version of this is a menu item "Edit->Change Technology" that generates a popup prompt. Selected items in the library will appear in the text box, or the names of objects to move can be typed into the text box. The target technology is selected, and "Okay" precipitates the move. Both the original and new technologies are marked as modified.
- posted: January 7, 2014 at 3:00am version: 3.8 revision: 50
Corrected the handling of technology namespaces so that changing a library object's name from one technology namespace to another will mark both namespaces as modified, causing xcircuit to insist that the user take action to either write the technology file or ignore it when doing either "Write All" or exiting xcircuit.
Also: Update at Mon Jan 6 11:54:35 EST 2014 by tim
Also: Merge branch 'master' into work
Also: Made a correction to the way library pages are composed so that the names of objects are prevented from colliding with one another. This is especially apparent when technology namespaces are included in the name (enabled by Options->Show Library Namespaces).
Also: One minor semantic change: "Show Library Namespaces" is now called "Show Technology Namespaces" in the pull-down menu, a more accurate name.
- posted: December 13, 2013 at 3:00am version: 3.8 revision: 49
Corrected a very long-standing error in which xcircuit and the postscript disagree on changes in font scale in the middle of a text label.
Also: Update at Thu Dec 12 09:58:05 EST 2013 by tim
Also: Merge branch 'master' into work
- posted: November 15, 2013 at 3:00am version: 3.8 revision: 48
Corrected the version number in symbol.map (this has no effect on anything as far as I know)
Also: Update at Thu Nov 14 10:31:04 EST 2013 by tim
Also: Merge branch 'master' into work
- posted: October 21, 2013 at 3:00am version: 3.8 revision: 47
Modified output file writing from opening the file as "w" to "wb", to force Windows to generate Linux-compatible line endings. Thanks to Fabián Inostroza for the patch.
Also: Update at Sun Oct 20 12:38:14 EDT 2013 by tim
Also: Merge branch 'master' into work
- posted: October 20, 2013 at 3:00am version: 3.8 revision: 46
Correction to w32x11.c for compile under 32-bit MinGW.
Also: Update at Sat Oct 19 10:44:37 EDT 2013 by tim
Also: Merge branch 'master' into work
- posted: October 15, 2013 at 3:00am version: 3.8 revision: 45
Corrected an error pertaining to the Windows MinGW compile.
Also: Update at Mon Oct 14 13:30:32 EDT 2013 by tim
Also: Merge branch 'master' into work
- posted: September 24, 2013 at 3:00am version: 3.8 revision: 44
Update at Mon Sep 23 22:18:32 EDT 2013 by tim
- posted: August 30, 2013 at 3:00am version: 3.8 revision: 43
Updated config.guess, especially for Cygwin on x86_64.
Also: Update at Thu Aug 29 13:40:26 EDT 2013 by tim
Also: Merge branch 'master' into work
- posted: August 16, 2013 at 3:00am version: 3.8 revision: 42
Minor edit to not overuse Tcl_DuplicateObj when unnecessary. Should not cause any difference in the behavior of xcircuit.
Also: Update at Thu Aug 15 08:37:57 EDT 2013 by tim
Also: Merge branch 'master' into work
- posted: July 15, 2013 at 3:00am version: 3.8 revision: 41
Added some helpful translations of XCircuit escapes directly into LaTeX. Patch thanks to Fabian Inostroza.
Also: Update at Sun Jul 14 15:33:12 EDT 2013 by tim
Also: Merge branch 'master' into work
- posted: June 6, 2013 at 3:00am version: 3.8 revision: 40
Changed an ill-thought-out policy in which old files having no technology prefix on object instance names will match those objects to the first object in any technology, as opposed to matching only objects with a null technology, as objects defined in such a file will appear.
Also: Update at Wed Jun 5 14:47:35 EDT 2013 by tim
Also: Merge branch 'master' into work
- posted: May 17, 2013 at 3:00am version: 3.8 revision: 39
Modified resource file to add background colors for the Tk windows.
Also: Update at Thu May 16 10:32:19 EDT 2013 by tim
Also: Merge branch 'master' into work
- posted: April 23, 2013 at 3:00am version: 3.8 revision: 38
Removed AM_C_PROTOTYPES from configure.in on a tip from Randy DuCharme; it appears that this automake function is no longer supported, and some gnu developer doofus made aclocal die with an error on encountering it rather than flag a warning and continue.
Also: Update at Mon Apr 22 09:10:50 EDT 2013 by tim
Also: Merge branch 'master' into work
- posted: March 4, 2013 at 3:00am version: 3.8 revision: 37
Added a Tcl command-line command to dump information about a path without requiring the path to be unjoined/rejoined.
Also: Update at Sun Mar 3 11:37:45 EST 2013 by tim
Also: Merge branch 'master' into work
- posted: January 17, 2013 at 3:00am version: 3.8 revision: 36
More patches from Erik van der Wal, these to deal with errors when using disable-double-buffer, when using the non-Tcl version, and a segfault on color change.
Also: Update at Wed Jan 16 19:47:57 EST 2013 by tim
Also: Merge branch 'master' into work
- posted: January 15, 2013 at 3:00am version: 3.8 revision: 35
Applied another patch for getsubpart and deletestring errors from Erik van der Wal; corrected two other errors in tclxcircuit.c and undo.c identified by Erik.
Also: Update at Mon Jan 14 09:13:33 EST 2013 by tim
Also: Merge branch 'master' into work
Also: Corrected a malloc/free error in the graphic image handling, where Tcl_Alloc allocates memory but XDestroyImage uses Xlib's free() to free it.
- posted: January 13, 2013 at 3:00am version: 3.8 revision: 34
Fixes for dash drawing (avoid dash size zero, which can segfault), fix for arc drawing, and a few other syntax problems, and removed one unnecessary calculation. Thanks to Erik van der Wal for the patch.
Also: Update at Sat Jan 12 14:13:26 EST 2013 by tim
Also: Merge branch 'master' into work
- posted: January 2, 2013 at 3:00am version: 3.8 revision: 33
Corrected two doubly-defined variables, caught by the MIPSPro preprocessor. Also added notes to the README file about making font, color, size, window decoration, etc., changes to the main window in the resource.tcl file.
Also: Update at Tue Jan 1 12:25:31 EST 2013 by tim
Also: Merge branch 'master' into work
- posted: December 30, 2012 at 3:00am version: 3.8 revision: 32
Added patch from jon banquer for systems not defining vfork().
Also: Update at Sat Dec 29 10:34:04 EST 2012 by tim
Also: Merge branch 'master' into work
- posted: December 21, 2012 at 3:00am version: 3.8 revision: 31
Applied patch from Erik van der Wal, fixes a number of bugs, most of them fatal: XCreatePixmap call on init problem, initial window not redrawn problem, changepage segfault, checkvalidname segfault, and search_on_siblings transform error. Same set of changes as made to version 3.7.
Also: Update at Thu Dec 20 17:13:38 EST 2012 by tim
Also: Merge branch 'master' into work
- posted: October 12, 2012 at 3:00am version: 3.8 revision: 30
Corrected an error that would cause a segfault if a parameter was deleted when the parameter value was an empty string.
Also: Update at Thu Oct 11 09:59:33 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: October 2, 2012 at 3:00am version: 3.8 revision: 29
Corrected a small error that made line join attributes different between XCircuit and PostScript.
Also: Update at Mon Oct 1 09:49:26 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: September 19, 2012 at 3:00am version: 3.8 revision: 28
Corrections to a few broken features in the wrapper GUI.
Also: Update at Tue Sep 18 07:59:52 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: September 10, 2012 at 3:00am version: 3.8 revision: 27
Update at Sun Sep 9 15:44:09 EDT 2012 by tim
- posted: September 9, 2012 at 3:00am version: 3.8 revision: 26
Corrected behavior with respect to saving and loading the "user technology", which is any object without a technology prefix, or with an empty prefix ("::"). This fix also makes sure that if the user technology space is saved to a file, it remembers the connection between the user technology space and that file. XCircuit now considers the following technology names equivalent: NULL, "", "::", and "(user)".
Also: Update at Sat Sep 8 14:53:51 EDT 2012 by tim
Also: Merge branch 'master' into work
Also: Also, corrected a problem in which the "New..." and "Delete..." buttons in the parameter edit window would only work for parameters of the current edit page or object. When an instance was selected, all parameter keys and values would refer to the selected instance, but the add/delete function would still refer to the current page. Now, all functions refer to the selected object. Note that the add/delete functions create or delete parameters in the object itself, as opposed to the instance. This might continue to be a cause of confusion.
- posted: August 16, 2012 at 3:00am version: 3.8 revision: 25
Did I change something here? Hopefully it was only cosmetic.
Also: Update at Wed Aug 15 07:45:47 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: May 27, 2012 at 3:00am version: 3.8 revision: 24
Eliminated use of calloc(), which is not mapped to a Tcl function and therefore can cause trouble on some systems. Same change as was made to version 3.7.
Also: Update at Sat May 26 20:55:13 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: May 25, 2012 at 3:00am version: 3.8 revision: 23
Added Makefile.mingw64 and made file modifications similar to those for version 3.7 made by Tomas Forssén for the MinGW64 compile.
Also: Update at Thu May 24 11:35:37 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: May 19, 2012 at 3:00am version: 3.8 revision: 22
Made xcircuit impervious to Windoze-mangled files with linefeeds replaced by CR-LF. Note that such files are no longer valid postscript and cannot be converted directly into PDF. However, xcircuit will now read them and clean them up when rewriting them.
Also: Update at Fri May 18 09:54:24 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: May 4, 2012 at 3:00am version: 3.8 revision: 21
Correction to a section of code in tclxcircuit that prevents execution when "--enable-asg" is not chosen as a configuration option. Also, expanded the search for tclConfig.sh and tkConfig.sh to include /usr/lib and /usr/lib64, which will make the standard "configure" with no options work correctly on (at least) Fedora Core with the standard package install of Tcl/Tk 8.5.
Also: Update at Thu May 3 13:31:43 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: May 2, 2012 at 3:00am version: 3.8 revision: 20
Some changes to the asg/spar code; doesn't work yet. . .
Also: Update at Tue May 1 11:00:23 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: May 1, 2012 at 3:00am version: 3.8 revision: 19
Corrected a typo in the ext2spice.c source.
Also: Update at Mon Apr 30 08:15:02 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: April 26, 2012 at 3:00am version: 3.8 revision: 18
ASG (Automatic Schematic Generation, or SPAR: Schematic place & route) updated so that it compiles and runs with the current version. Which is not to say that it actually works, because it still crashes like it used to. However, the SPICE input has been modified to take undefined subcircuits in a SPICE deck and match them to library symbols, and use them. Since the original SPAR was designed for logic symbols, not analog gates, it is much easier to use the same effective netlist (with NAND gates) for both xcircuit and the original SPAR and compare the execution traces.
Also: Update at Wed Apr 25 19:59:07 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: March 30, 2012 at 3:00am version: 3.8 revision: 17
Addition of unsigned long long to configure.in, which is missing from Tomas Forssén's patch to version 3.7, although the patch has not yet been applied to 3.8.
Also: Update at Thu Mar 29 11:09:59 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: March 29, 2012 at 3:00am version: 3.8 revision: 16
Modified tclxcicuit.c, can't remember what the change was.
Also: Update at Wed Mar 28 17:57:06 EDT 2012 by tim
Also: Merge branch 'master' into work
Also: Corrected a character array overrun by sprintf found by Charles Repetti.
- posted: March 25, 2012 at 3:00am version: 3.8 revision: 15
Added back the Makefile.in file, which was mistakenly removed from the git repository. Also, corrected an error where Tcl does not report color change directives in text labels when using the "label list" command.
Also: Update at Sat Mar 24 10:07:38 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: March 24, 2012 at 3:00am version: 3.8 revision: 14
Added LIB_SPECS to the xcwrap.o compile line. Not sure why it is needed on some systems but not on others. Jan de Kruyf reports that Debian requires it. It's presence does not affect the compile on my system (Fedora Core), so I am committing the change.
Also: Update at Fri Mar 23 09:11:15 EDT 2012 by tim
Also: Merge branch 'master' into work
Also: Removing unwanted files from the repository so that they will not continue to get updated from my desktop.
- posted: March 23, 2012 at 3:00am version: 3.8 revision: 13
Another small correction to the margin stop feature. . .
Also: Update at Thu Mar 22 09:15:13 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: March 22, 2012 at 3:00am version: 3.8 revision: 12
Made a number of corrections to the margin stop feature first draft. Now tcl command "xcircuit::label insert margin" is an alternative, multiple margin directives can be given, and most of the bugs have been ironed out. There are only a few minor remaining issues.
Also: Update at Wed Mar 21 19:14:14 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: March 21, 2012 at 3:00am version: 3.8 revision: 11
Removed files from the build that should not be in the git repository. Added an incomplete implementation of text auto line wrap.
Also: Update at Tue Mar 20 10:42:11 EDT 2012 by tim
Also: Merge branch 'master' into work
Also: Added files to .gitignore so future builds will not transmit temporary files to the git database.
Also: Finished the first draft of the implementation of a margin stop feature. This is invoked with Text->Insert->Margin Stop, and causes text to stay within the left-right boundary that exists where the Margin Stop has been placed. So it implements automatic linefeeds.
- posted: March 17, 2012 at 3:00am version: 3.8 revision: 10
Corrected an error that would delete the wrong point from a polygon if 'd' is typed while editing the polygon endpoint.
Also: Update at Fri Mar 16 11:07:55 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: March 7, 2012 at 3:00am version: 3.8 revision: 9
Corrections on library dependencies. . . I think.
Also: Update at Tue Mar 6 11:46:44 PST 2012 by tim
Also: Merge branch 'master' into work
Also: False commit caused by files generated during a build
- posted: February 23, 2012 at 3:00am version: 3.8 revision: 8
A number of corrections and modifications: Corrected auto-increment for multiple selected elements, added auto-increment of last occurring number. Added "link-to" menu for pages. Modified "auto-fit" to be active by default and to be applied at time of output generation. Corrected keyboard entry of square bracket characters, which was broken. Changed auto-increment to be applied to keystrokes made with the cursor over an unselected text element. To make this possible, changed the command "undo series" to allow nesting begin...end pairs.
Also: Update at Wed Feb 22 13:41:32 PST 2012 by tim
Also: Merge branch 'master' into work
- posted: February 10, 2012 at 3:00am version: 3.8 revision: 7
Corrected an error reported by Philip Miser where graphic image data is not saved with a technology file, if a graphic is part of a symbol in the technology library. This problem reveals a second error, which is that a graphic image call in a file to a graphic for which there is no declared data causes a segmentation fault. The segfault issue was corrected first, then the code reworked so that dependent graphic image data are saved at the top of the technology file.
Also: Update at Thu Feb 9 13:19:07 PST 2012 by tim
Also: Merge branch 'master' into work
- posted: February 5, 2012 at 3:00am version: 3.8 revision: 6
Corrected a few problems with the "Writeall" dialog box and the technology file saving code. Not ideal, but better than before.
Also: Update at Sat Feb 4 17:29:02 PST 2012 by tim
Also: Merge branch 'master' into work
- posted: January 30, 2012 at 3:00am version: 3.8 revision: 5
Corrected several related errors, one which prevents using the "insert point" function on an edited poly, and the other which causes a crash when attempting to insert a point (but which is unrelated to the first error).
Also: Update at Sun Jan 29 08:27:17 PST 2012 by tim
Also: Merge branch 'master' into work
- posted: January 2, 2012 at 3:00am version: 3.8 revision: 4
Corrected a long-standing error with scaling object instances that are flipped, as pointed out by Lennart Yseboodt.
Also: Update at Sun Jan 1 16:31:03 PST 2012 by tim
Also: Merge branch 'master' into work
- posted: June 12, 2011 at 2:40am version: 3.8 revision: 3
This is a fetch. what the heck?
Also: Merge branch 'master' into work
Also: Corrected enumeration of changes, which was not counting editing elements (same change made to version 3.7)
- posted: April 12, 2011 at 2:40am version: 3.8 revision: 2
Corrected the generation of clipmask and clipmask buffer so that it resizes with the window, and does not cause xcircuit to crash when a second window is created .- posted: April 11, 2011 at 2:40am version: 3.8 revision: 1
Initial version, copied from last revision of 3.7 (3.7.24). No changes yet other than to update version numbers.
- posted: May 6, 2014 at 3:00am version: 3.7 revision: 57
Patch for out-of-bounds error, copied back from the openbsd port.
Also: Update at Mon May 5 11:13:42 EDT 2014 by tim
Also: Merge branch 'master' into work
- posted: March 18, 2014 at 3:00am version: 3.7 revision: 56
Corrected an error where string parameters passed to an instance do not get parentheses in the output file needed to make them proper postscript string objects, causing an error with any postscript interpreter reading the file.
Also: Update at Mon Mar 17 09:39:42 EDT 2014 by tim
Also: Merge branch 'master' into work
- posted: December 13, 2013 at 3:00am version: 3.7 revision: 55
Corrected a very long-standing error in which xcircuit and the postscript disagree on changes in font scale in the middle of a text label.
Also: Update at Thu Dec 12 09:57:56 EST 2013 by tim
Also: Merge branch 'master' into work
- posted: October 21, 2013 at 3:00am version: 3.7 revision: 54
Changed output file access from "w" to "wb" to force Windows to generate Linux-compatible line endings. Thanks to Fabián Inostroza for the patch.
Also: Update at Sun Oct 20 12:37:12 EDT 2013 by tim
Also: Merge branch 'master' into work
- posted: October 20, 2013 at 3:00am version: 3.7 revision: 53
Correction to w32x11.c for 32-bit compile under MinGW.
Also: Update at Sat Oct 19 10:44:21 EDT 2013 by tim
Also: Merge branch 'master' into work
- posted: September 24, 2013 at 3:00am version: 3.7 revision: 52
Update at Mon Sep 23 22:18:32 EDT 2013 by tim
- posted: July 15, 2013 at 3:00am version: 3.7 revision: 51
Added some helpful translations of XCircuit escapes directly into LaTeX. Patch thanks to Fabian Inostroza.
Also: Update at Sun Jul 14 15:33:04 EDT 2013 by tim
Also: Merge branch 'master' into work
- posted: June 6, 2013 at 3:00am version: 3.7 revision: 50
Changed an ill-thought-out policy in which old files having no technology prefix on object instance names will match those objects to the first object in any technology, as opposed to matching only objects with a null technology, as objects defined in such a file will appear.
Also: Update at Wed Jun 5 14:47:26 EDT 2013 by tim
Also: Merge branch 'master' into work
- posted: May 17, 2013 at 3:00am version: 3.7 revision: 49
Modified resource file to add background colors for the Tk windows.
Also: Update at Thu May 16 10:32:12 EDT 2013 by tim
Also: Merge branch 'master' into work
- posted: January 15, 2013 at 3:00am version: 3.7 revision: 48
Corrected a malloc/free error in the graphic image handling, where Tcl_Alloc allocates memory but XDestroyImage uses Xlib's free() to free it.
Also: Update at Mon Jan 14 10:58:25 EST 2013 by tim
Also: Merge branch 'master' into work
- posted: January 2, 2013 at 3:00am version: 3.7 revision: 47
Corrected two doubly-defined variables, caught by the MIPSPro preprocessor.
Also: Update at Tue Jan 1 12:24:44 EST 2013 by tim
Also: Merge branch 'master' into work
- posted: December 30, 2012 at 3:00am version: 3.7 revision: 46
Added patch from jon banquer for systems not defining vfork().
Also: Update at Sat Dec 29 10:33:57 EST 2012 by tim
Also: Merge branch 'master' into work
- posted: December 21, 2012 at 3:00am version: 3.7 revision: 45
Applied patch from Erik van der Wal, fixes a number of bugs, most of them fatal: XCreatePixmap call on init problem, initial window not redrawn problem, changepage segfault, checkvalidname segfault, and search_on_siblings transform error.
Also: Update at Thu Dec 20 17:13:20 EST 2012 by tim
Also: Merge branch 'master' into work
- posted: October 2, 2012 at 3:00am version: 3.7 revision: 44
Corrected a small error that made line join attributes different between XCircuit and PostScript.
Also: Update at Mon Oct 1 09:49:19 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: September 10, 2012 at 3:00am version: 3.7 revision: 43
Update at Sun Sep 9 15:44:09 EDT 2012 by tim
- posted: September 9, 2012 at 3:00am version: 3.7 revision: 42
Corrections backannotated to 3.7 from 3.8, to avoid problems when saving and loading the default user technology space.
Also: Update at Sat Sep 8 15:13:52 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: August 16, 2012 at 3:00am version: 3.7 revision: 41
Updated aclocal.m4 file to version 1.11. Added /usr/lib/ and /usr/lib64 to list of standard locations to find Tcl/Tk.
Also: Update at Wed Aug 15 07:45:18 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: May 27, 2012 at 3:00am version: 3.7 revision: 40
Eliminated a use of calloc(), which is not mapped to a Tcl function and therefore can do bad things depending on what system it is compiled on.
Also: Update at Sat May 26 20:54:31 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: March 30, 2012 at 3:00am version: 3.7 revision: 39
Added more mingw64 support from Tomas Forssén, including some 64-bit cleanup.
Also: Update at Thu Mar 29 11:08:58 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: March 29, 2012 at 3:00am version: 3.7 revision: 38
Added patch by Tomas Forssén for mingw compile. Only tested that it does not affect the standard Linux compile.
Also: Update at Wed Mar 28 17:56:33 EDT 2012 by tim
Also: Merge branch 'master' into work
Also: Corrected a character array overrun by sprintf found by Charles Repetti.
- posted: March 25, 2012 at 3:00am version: 3.7 revision: 37
Added back the Makefile.in file, which was mistakenly removed from the git repository.
Also: Update at Sat Mar 24 10:05:54 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: March 24, 2012 at 3:00am version: 3.7 revision: 36
Added LIB_SPECS to the xcwrap.o compile line. Not sure why it is needed on some systems but not on others. Jan de Kruyf reports that Debian requires it. It's presence does not affect the compile on my system (Fedora Core), so I am committing the change.
Also: Update at Fri Mar 23 09:09:56 EDT 2012 by tim
Also: Merge branch 'master' into work
Also: Removing unwanted files from the repository so that they will not continue to get updated from my desktop.
- posted: March 21, 2012 at 3:00am version: 3.7 revision: 35
Removed files from the build that should not be in the git repository.
Also: Update at Tue Mar 20 10:41:24 EDT 2012 by tim
Also: Merge branch 'master' into work
Also: Added files to .gitignore so future builds will not transmit temporary files to the git database.
Also: Another quick modification to .gitignore.
- posted: March 20, 2012 at 3:00am version: 3.7 revision: 34
Changed point-delete routine to match the fix made to version 3.8
Also: Update at Mon Mar 19 08:09:16 EDT 2012 by tim
Also: Merge branch 'master' into work
- posted: March 7, 2012 at 3:00am version: 3.7 revision: 33
Some corrections on library dependencies. . . I think.
Also: Update at Tue Mar 6 11:45:57 PST 2012 by tim
Also: Merge branch 'master' into work
Also: Corrections to one typo and one missing function prototype that did not get into the database while my desktop machine was down for a week.
Also: False commit caused by files generated during a build
- posted: February 25, 2012 at 3:00am version: 3.7 revision: 32
Corrected a typo that slipped into the last update.
Also: Update at Fri Feb 24 14:02:46 PST 2012 by tim
Also: Merge branch 'master' into work
- posted: February 23, 2012 at 3:00am version: 3.7 revision: 31
A number of corrections and modifications: Corrected auto-increment for multiple selected elements, added auto-increment of last occurring number. Added "link-to" menu for pages. Modified "auto-fit" to be active by default and to be applied at time of output generation. Corrected keyboard entry of square bracket characters, which was broken. Changed auto-increment to be applied to keystrokes made with the cursor over an unselected text element. To make this possible, changed the command "undo series" to allow nesting begin...end pairs.
Also: Update at Wed Feb 22 13:41:15 PST 2012 by tim
Also: Merge branch 'master' into work
- posted: February 10, 2012 at 3:00am version: 3.7 revision: 30
Corrected an error reported by Philip Miser where graphic image data is not saved with a technology file, if a graphic is part of a symbol in the technology library. This problem reveals a second error, which is that a graphic image call in a file to a graphic for which there is no declared data causes a segmentation fault. The segfault issue was corrected first, then the code reworked so that dependent graphic image data are saved at the top of the technology file.
Also: Update at Thu Feb 9 13:18:54 PST 2012 by tim
Also: Merge branch 'master' into work
- posted: February 5, 2012 at 3:00am version: 3.7 revision: 29
Corrected a few problems with the "Writeall" dialog box and the technology file saving code. Not ideal, but better than before.
Also: Update at Sat Feb 4 17:28:49 PST 2012 by tim
Also: Merge branch 'master' into work
- posted: January 30, 2012 at 3:00am version: 3.7 revision: 28
Corrected several related errors, one which prevents using the "insert point" function on an edited poly, and the other which causes a crash when attempting to insert a point (but which is unrelated to the first error).
Also: Update at Sun Jan 29 08:27:03 PST 2012 by tim
Also: Merge branch 'master' into work
- posted: January 2, 2012 at 3:00am version: 3.7 revision: 27
Corrected a long-standing problem with rescaling instances that are flipped, which have negative scale, as pointed out by Lennart Yseboodt.
Also: Update at Sun Jan 1 16:30:24 PST 2012 by tim
Also: Merge branch 'master' into work
- posted: June 12, 2011 at 2:40am version: 3.7 revision: 26
Corrected enumeration of changes, which was not counting editing elements like polygons, arcs, curves, and paths.
- posted: April 12, 2011 at 2:40am version: 3.7 revision: 25
Also: Corrected the generation of clipmask and clipmask buffer so that it resizes with the window, and does not cause xcircuit to crash when a second window is created (same change as done to xcircuit-3.8).- posted: April 9, 2011 at 2:40am version: 3.7 revision: 24
Corrected a segfault error with the raise/lower functions. Corrected a problem with edit cycles not removed when making a copy. Corrected a problem with repainting elements after deselection.
Also: Added undo/redo for the "exchange" ('X') function (along with the "element raise all" and "element lower all" commands).
Also: Modified strokepath so that clipping paths are always drawn when selected, regardless of the global option for showing/hiding clipmasks.
Also: Added "change color" to the undo/redo mechanism (finally!), and corrected the undo/redo mechanism for style changes so that multiple selections changed in one go are all undone/redone in one go as well (previously, they were assigned incorrectly to individual, sequential undo records).- posted: April 7, 2011 at 2:40am version: 3.7 revision: 23
2011-04-06 11:04 tim Finished modifications for clip masks and linear gradient fields. Implemented color gradient fields using command "graphic make gradient {} ", which takes color names as well as #RGB syntax. The two color limits get added to the color list, which is not necessarily the right behavior. Corrected clip masking such that clip masks may now be nested in objects, and multiple clipmasks may appear in any object. Modified clipmasks such that clipmask outlines are now shown in light blue, and the outline can be turned off in the options menu to see the view as it will appear in the output file.
Also: Corrected a missing check for the call stack before attempting to read the contents of said stack.
Also: (And one other such error.)- posted: April 5, 2011 at 2:40am version: 3.7 revision: 22
2011-04-04 14:53 tim A number of major changes in this commit: (1) Added new functions for "raise" and "lower" (stack order of elements), and moved the old functions to "top" and "bottom" (move elements to top or bottom of drawing stack). New functions include undo/redo mechanism (still need to apply mechanism to old functions). Added key bindings for "[" and "]" to single-step raise and lower selected elements. There are still some loose ends associated with the new code, that will be tied up shortly. Function is implemented by the Tcl command options "element raise" and "element lower". Old functions changed to Tcl command options "element raise all" and "element lower all". (2) Added clipmask capability. The line/boundary menu now contains a checkbox for "clipmask". Selecting this makes the selected polygon/ arc/curve/path into a clipmask affecting the element above it, which can be any element type. This is particularly effective for cut-out views, with a portion of a graphic image in view behind a path defining the portion of the graphic to be viewed. (3) Added capability to generate in-line graphic images. Initial offering is a black-to-white linear gradient field graphic that can be created with the Tcl command "graphic make gradient {} ". This will be expanded upon shortly, with a menu option or popup GUI for generating various background gradient fields and other simple in-line graphics.
Also: Small postscript error: did not execute "newpath" after "clip", leading to strange results when the clipping element is followed by another element with a stroke path.- posted: April 2, 2011 at 2:40am version: 3.7 revision: 21
2011-04-01 06:55 tim Corrected yet another error with the modified selection, where (x, x) was used instead of (x, y) to check for the area selection of graphic images.
Also: Re-established the drawing of all control point edit lines on path splines.
Also: Corrected an error with path editing that failed to remove constraints from points on other parts of the path when moving from one edit point to the next.
Also: Implemented tracking tangents on multiple-curve paths. Control points on two connecting curves track opposite to each other, so that curves meeting at the same angle will continue to meet at the same angle as the control point of one of them is edited. This is now the default edit behavior for curves. The GUI menu item "Options->Elements->Link Curve Tangents" controls the behavior of this setting through the Tcl command line "config pathedit [tangents|normal]". This mode better matches most drawing programs' behavior with regard to paths of linked curves.
Also: Added new feature for command option "spline make" when one polygon is selected: it converts the polygon into a path of multiple curves, using the endpoints of the polygon as the endpoints of the curve and the remaining polygon points as the curve control points. No particular reason for adding the function other than it seemed easy to do. Convenient way to make complex smooth curve paths, which has never been simple to do in xcircuit before.
Also: Decided that the convert-to-curve function wasn't such a trivial little thing after all. Added the routine to be called by the "Make Spline" menu function (if a polygon is selected). Fixed the routine to set the path style to be the same as the original polygon. Handled the case of closed polygons. Works very well now to change boxes into rounded-edge boxes.- posted: March 29, 2011 at 2:40am version: 3.7 revision: 20
Corrected the "quadparts.lps" library, which had an outdated method for specifying parameter values within expressions, making the library unusable.
Also: Corrected an error in the "label justification" command that failed to get the justification value of a selected label, making it impossible for the command-line command (and consequently the menu selection) to change the justification out of a non-default state.- posted: March 8, 2011 at 2:40am version: 3.7 revision: 19
Corrected one more error, one that creates a crash condition on completing a new text element.- posted: March 5, 2011 at 2:40am version: 3.7 revision: 18
Changes to correct redraw problems in editing mode when a view change occurs, such as panning the screen up and down.- posted: February 20, 2011 at 2:40am version: 3.7 revision: 17
Corrected an error introduced into the area select routine in the last set up updates, passing an X value instead of a Y value for arc position, causing odd behavior when attempting to area-select arcs or any instance with an arc in it.- posted: February 6, 2011 at 2:40am version: 3.7 revision: 16
Corrected the area selection mechanism (again. . .), this time to make all the computations using test_insideness, such that the exact selection box is used to check for elements, even through non-orthogonal rotations of instances.- posted: January 18, 2011 at 2:40am version: 3.7 revision: 15
Corrected an error in get_original_string() in which the top of the stack is missed by the search, causing a crash when editing library object names.- posted: January 16, 2011 at 2:40am version: 3.7 revision: 14
A couple of small changes, including an incorrect call to fflush() on a non-stream file descriptor, and a missing include of unistd.h in a file with a call to execlp().- posted: November 20, 2010 at 2:40am version: 3.7 revision: 13
2010-11-19 16:34 tim Found a relatively simply way to specify scale-invariant linewidth for object instances. Rather than specifying a linewidth for an instance to apply to all its elements (on an inherited basis, like color is handled), the instance has a "style" record whose single flag is LINE_INVARIANT, indicating that linewidth is scale-invariant (the default). For backward compatibility, in files that are pre-version 3.7, instances at a scale other than 1 are set to scale-variant. All others are set scale-invariant. Files written by 3.7 (as of this revision) will generate a special marker in the output for instances that are set to have scale-variant linewidth.- posted: November 3, 2010 at 2:40am version: 3.7 revision: 12
2010-11-02 12:24 tim Created methods by which polygons, splines, and paths may be parameterized for position (X, Y, or both) as a whole, not just individually parameterized points. By doing so, this corrects for several (potentially crash-inducing) errors that occur when the position of a polygon, spline, or path is parameterized while the element is selected, but not edited.- posted: November 2, 2010 at 2:40am version: 3.7 revision: 11
2010-11-01 11:06 tim Corrected an error that caused a crash if an edited polygon had a point parameterized from the toolbar. Also: Corrected a condition that prevented multiple points on a polygon or spline from being parameterized, which was not supposed to be a limitation.- posted: October 26, 2010 at 2:40am version: 3.7 revision: 10
2010-10-25 06:58 tim Closed a memory leak in copycycles() for polygons and splines, pointed out by Kuba Ober.- posted: October 24, 2010 at 2:40am version: 3.7 revision: 9
2010-10-23 10:07 tim Corrected error in call to manhattanize() found by Kuba Ober.- posted: October 20, 2010 at 2:40am version: 3.7 revision: 8
2010-10-19 13:12 tim Corrected the LaTeX output so that it honors manually-placed bounding boxes.- posted: October 13, 2010 at 2:40am version: 3.7 revision: 7
Modified the drawing of pin positions (the "x" mark) such that setting "pin visibility" on a pin does not draw the "x" mark (unless the global setting of "draw pin positions" is selected). Changed in response to a request by Milos Koutny.- posted: February 23, 2010 at 2:40am version: 3.7 revision: 6
Corrected an error due to the new changes in selection of edit objects. The error prevents inserting a parameter into a label, and was pointed out by Svenn Bjerkem.- posted: February 5, 2010 at 2:40am version: 3.7 revision: 5
Corrected an error in string array size that can cause a crash when a new window is created, as pointed out by Lennart Yseboodt.- posted: November 17, 2009 at 2:40am version: 3.7 revision: 4
Correction to Tcl code to correct alignment between mode names in the xcircuit source and mode names as reported by the interpreter.- posted: November 7, 2009 at 7:07am version: 3.7 revision: 3
2009-11-07 10:13 tim Uploaded the new development version of xcircuit. Implements multi-part edits. Involves substantial code modification.
- posted: February 6, 2011 at 2:40am version: 3.6 revision: 168
2011-02-05 14:36 tim Corrected a long-standing omission of an #ifdef in svg.c that prevents the non-Tcl version of xcircuit from compiling. Also, added a missing statement to include unistd.h; otherwise, the call to execlp() generates a warning at compile-time.- posted: October 20, 2010 at 2:40am version: 3.6 revision: 167
2010-10-19 13:11 tim Corrected the LaTeX output so that it honors manually-placed bounding boxes.- posted: October 13, 2010 at 2:40am version: 3.6 revision: 166
Modified the drawing of pin positions (the "x" mark) such that setting "pin visibility" on a pin does not draw the "x" mark (unless the global setting of "draw pin positions" is selected). Changed in response to a request by Milos Koutny (same change made to xcircuit version 3.7).- posted: February 5, 2010 at 2:40am version: 3.6 revision: 165
Corrected an error in string array size that can cause a crash when a new window is created, as pointed out by Lennart Yseboodt.- posted: November 29, 2009 at 2:40am version: 3.6 revision: 164
2009-11-28 09:33 tim Corrected the symbol.tcl script so that "make matching symbol" will produce an error message if the page name is undefined, and will use the page name as the symbol name if the popup text box has a blank entry.
Also: (and one more small correction to put the page name into the dialog box)- posted: October 22, 2009 at 2:40am version: 3.6 revision: 163
2009-10-21 19:11 tim Partial implementation of multiple-element edit. This function allows multiple polygons to be selected and stretched simultaneously. It is a "partial" implementation because xcircuit as yet does no checking for which point of a polygon is intended to be stretched, and assumes that all selected polygons are similar. This method has not been extended to curves, arcs, or paths.
Also: Made a small correction which improves upon the guessing of which point to choose in a multi-polygon stretch, but I have a better implementation in mind. . .- posted: September 24, 2009 at 2:40am version: 3.6 revision: 162
2009-09-23 05:50 tim Changed the behavior of the file load routine to check for empty (zero size) files, and treat them as a declaration of a new document rather than attempting to read them and thus producing an error. Idea suggested by Svenn Bjerkem.- posted: July 31, 2009 at 2:40am version: 3.6 revision: 161
2009-07-30 06:48 tim Minor fix to SVG output---overlines and underlines were not being repositioned relative to the vertical justification of the text.
Also: Corrected one more simple but egregious error in the SVG output, which was writing out the text transformation matrix before adjusting it for flip invariance.- posted: July 30, 2009 at 2:40am version: 3.6 revision: 160
2009-07-29 13:29 tim Corrected two errors in the SVG writing code that addressed allocated arrays out of bounds.- posted: July 16, 2009 at 2:40am version: 3.6 revision: 159
2009-07-15 16:28 tim Correction to prevent printing negative values into Unicode character specifiers. Also, added the option "svg -full" to generate a page with width and height set to "100%" rather than physical units; this lets applications such as Firefox expand the drawing to fit the page, rather than forcing it to a printed page size (which is usually too small for screen viewing).- posted: July 15, 2009 at 2:40am version: 3.6 revision: 158
2009-07-14 09:18 tim Another modification to SVG---changed the top-level width, height, and viewbox so that the "width" and "height" values specify the overall scale of the drawing, and the drawing can be imported correctly into gimp and other tools supporting SVG.
Also: One last change to remove the "xml" line at the top of the SVG output, which is unnecessary.
Also: Okay, really the last change for today (!)---added filename and xcircuit version to the description block in the SVG header.- posted: July 14, 2009 at 2:40am version: 3.6 revision: 157
2009-07-13 12:35 tim Extended the base-36 number conversion so that component indexes up to 99999 will be converted properly (the previous version would display base-36 values for index numbers above 99; e.g., 100 = "A0"). Thanks to Bliss Carkhuff for pointing out this irregularity.
Also: Oops. . . missing the return value from convert_to_b36().
Also: Hacked in support for overlines and underlines in SVG using line drawing, since many (most?) tools don't seem to support the "text-decoration" element. Added support for PostScript standard encoding and ISO Latin-1 encoding in SVG.- posted: July 11, 2009 at 2:40am version: 3.6 revision: 156
2009-07-10 08:43 tim Added handling for transparent and opaque color stipples (which is handled by opacity and color blending, producing a better effect in SVG than one can get in PostScript).
Also: Added image handling to the SVG output.
Also: Added a menu item "File->Export->Export SVG" to generate SVG output from the current window view. Added support for text super- and sub-scripts. Added overline and underline support, but like the symbol font, this is not viewable in Firefox and may need a workaround.- posted: July 9, 2009 at 2:40am version: 3.6 revision: 155
2009-07-08 08:18 tim More corrections/additions to the svg output, including proper handling of arcs with segment lengths > 180 degrees, handling of dashed and dotted lines, and handling of text (except for a few unfinished items such as sub/super- scripts, under/over-lines, and maybe a few others).
Also: A few more SVG things: Handling of ampersands in text; removed page bounding box from the output drawing (by using the "visibility" property). The "svg" command now takes an argument for a filename other than the default (which is the page label + ".svg").
Also: Added title of page as the ID of the top-level SVG element.- posted: July 8, 2009 at 2:40am version: 3.6 revision: 154
2009-07-07 08:47 tim Added new file "svg.c" for generating SVG output, and added a new command "svg" (as yet, no arguments) that generates a .svg output file. At present, only a few basic things like simple line drawing is supported. But it's a start.
Also: First minor set of corrections to SVG: Corrected color format.
Also: Added path handling.- posted: June 24, 2009 at 2:40am version: 3.6 revision: 153
2009-06-23 11:50 tim Corrected a problem with the new recursive area selection mechanism, which is that we do not want to select things that are invisible, like info and pin labels on levels below the hierarchy top. Thanks to Bliss Carkhuff for pointing out this error.
Also: Also: Added callback functions the window creation procedure to XCOps(callback), which can be used to set up, for example, a new personalized menu in xcircuit that will be added to each new window.- posted: June 21, 2009 at 2:40am version: 3.6 revision: 152
2009-06-20 13:48 tim I made a change to the area selection a few revisions ago such that an object instance would be selected if its centerpoint is selected, where previously it would be selected if its origin is selected. However, neither method is particularly satisfying. So I have changed the area selection routine to a recursive version wherein the rule is that if any element inside an object instance is selected by the area selection, then the whole object instance will be selected. This behavior makes the area selection of large objects with empty interiors (such as sheet borders) work more like the standard single-point-based selection.- posted: May 23, 2009 at 2:40am version: 3.6 revision: 151
2009-05-22 11:44 tim Corrected an error that prevents "make matching symbol" from working if the schematic does not contain a SPICE-style ".subckt" info label line.- posted: May 21, 2009 at 2:40am version: 3.6 revision: 150
2009-05-20 07:19 tim Corrected the Makefile to use LD_RUN_PATH when compiling xcircexec; otherwise, some systems will not run "xcircuit -noconsole".- posted: May 5, 2009 at 2:40am version: 3.6 revision: 149
2009-05-04 13:06 tim Implemented Wim Vereecken's fix for popup windows in window managers that prohibit focus stealing, using the "wm group" command option.- posted: May 2, 2009 at 2:40am version: 3.6 revision: 148
2009-05-01 09:17 tim Corrected an error that causes a crash when attempting to force a page filename to a null string, as happens when clicking on the "subcircuits" button at the top of the output properties window. Also, changed the area search method for instances to use the true center of the instance, not the origin. Most objects are made with the origin in the center, but this is not necessarily true, and when it isn't, the area selection becomes very confusing.- posted: April 30, 2009 at 2:40am version: 3.6 revision: 147
2009-04-29 10:09 tim Corrected a mistake in the last round of bug fixes which prevented the linewidth prompt dialog box from appearing due to a syntax error.- posted: April 25, 2009 at 2:40am version: 3.6 revision: 146
Corrected a number of minor but annoying errors that I have not been able to get around to fixing for a while. Fixes include: (1) Proper "undo" with respect to join/unjoin, (2) Proper undo series finish for text and element size change, (3) New feature to actively update the dialog window for linewidth and scale changes, (4) New button "Apply" for the dialog window to apply a change without popping down the window, (5) Fixed problems relating to periods in filenames, including the inability to match a filename with other pages having the same (almost) filename, and the recent tendency to copy the file extension into the page label, (6) Fixed problem with parameters not appearing in the window when the parameter window first pops up, (7) Fixed the parameter window so that the value entry field grows with the window.- posted: January 9, 2009 at 2:40am version: 3.6 revision: 145
Changed the behavior of "GetPositionFromList" to check if the position list may be nested inside another list of length 1, which is the case if the list is passed as a variable, for example. Thanks to John Barry for bringing this to my attention.- posted: December 18, 2008 at 2:40am version: 3.6 revision: 144
Corrected an error in which font scale specifiers get written an extra time to the output, such that rewriting the file many times will keep growing the size of the output file. This has no immediate adverse effects, but certainly is undesirable behavior. Thanks to Benoit Bidoggia for finding this rather subtle error!- posted: November 5, 2008 at 2:40am version: 3.6 revision: 143
2008-11-04 05:57 tim Finally, after many years, created a text file import tcl script to match one I wrote long ago for the python interface. Modified the filelist filter to accept an empty string as a wildcard (matches everything, instead of matching nothing).- posted: October 16, 2008 at 2:40am version: 3.6 revision: 142
2008-10-15 10:43 tim Corrected an error in which, if a number of elements is selected, and one attempts to do an "edit" operation on a non-selected element, xcircuit crashes.- posted: September 27, 2008 at 2:40am version: 3.6 revision: 141
2008-09-26 17:45 tim Corrected code that prevented color from being changed on an element with parameterized color.- posted: September 26, 2008 at 2:40am version: 3.6 revision: 140
2008-09-25 05:46 tim Corrected the behavior when writing expression parameter values into the output file. There is no way to "second guess" an expression parameter result, so you can't really check to see if the instance value is or is not equal to the default value. Case in point: the command "page" is not defined for objects, and the result of the command returns whatever was the last top-level page viewed. Thus, an object with an expression parameter "page" will evaluate the same for the instance and the default. Clearly what's intended in that example is for each instance to print out the page number it's on. Commands using a date string are even worse, because the timestamp is sometimes the same for the default, and sometimes different as the seconds field changes. Thus, the only real solution is to always print the instance value of any expression parameter.
Also: Made a change to the "page filename" command so that it handles extensions exactly like the savefile() routine, adding ".ps" to filenames without any existing extension. This allows expressions to act on the file itself, such as "file atime [page filename]", without having to cope with the presence or lack of an extension in the returned string. Also, suspended selections during object drawing so that expressions won't attempt to access the selection in the wrong context.- posted: August 1, 2008 at 2:40am version: 3.6 revision: 139
2008-07-31 17:23 tim Corrected an error that causes a crash if one goes to a library page while one of several editing operations (wire, box, etc.; those that have associated event handlers attached to mouse movement) is in effect.- posted: July 19, 2008 at 2:40am version: 3.6 revision: 138
2008-07-18 20:27 tim Updated Wim Vereecken's matgen.tcl from version 0.5 to version 0.7.- posted: July 7, 2008 at 2:40am version: 3.6 revision: 137
2008-07-06 11:22 tim Added /usr/share/tcltk to the search path for Tcl and Tk in the configure script, to conform to the Ubuntu Linux distribution.- posted: July 3, 2008 at 2:40am version: 3.6 revision: 136
2008-07-02 20:57 tim Corrected a minor error in which over/underlines canceled by a font change (to the current font) rather than an explicit "noline", lose the line cancelation upon reading the file back into xcircuit.
Also: Made a number of minor changes in order to allow a parameterized "page X of Y" label at the bottom of a page: 1) corrected the command "page links sheet" to return the correct sheet number (X); 2) prevented the tag callback for "page" from infinitely recursing; 3) set the page during output printing so that "X" gets printed correctly in the output for each page.- posted: June 26, 2008 at 2:40am version: 3.6 revision: 135
2008-06-25 21:00 tim Corrected the popup-prompt window for setting linewidth so that it works correctly when multiple windows are present. Unfortunately, the same change needs to be made to several dozen such popup windows.
Also: Corrected the LaTeX-labels code (again) so that any overall scaling of the xcircuit drawing will translate to the end result---whatever xcircuit says the size of the drawing is, will be the size of the drawing in the LaTeX document. LaTeX labels are scaled and positioned accordingly. Thanks again to Alex Tercete, and there will probably be more extensions to come.
Also: And one more change to the LaTeX output, so that XCircuit honors label size changes, and more closely matches LaTeX label "normalsize" to XCircuit's label size 1.0 (LaTeX "normalsize" was supposed to be the basis of XCircuit's unit scale, which makes me wonder how I got off by a factor of 1.2. . .). As yet, label rotations and color are not handled.
Also: And finally, handling of rotated text. That is all I'm going to do for tonight. However, sometime I should make sure that all scales and rotations are referred to the top-level, when LaTeX text is buried in an object instance.- posted: June 24, 2008 at 2:40am version: 3.6 revision: 134
2008-06-23 08:31 tim Corrected an error, pointed out to me by Orestes Mas, preventing "snap space" and "grid space" from being executed from a window.- posted: June 23, 2008 at 2:40am version: 3.6 revision: 133
2008-06-22 21:18 tim Changed the LaTeX mode output according to Alex Tercete's solution of using \scalebox{} and \parbox{} around \includegraphics{}, which allows the LaTeX output to track the "scale" setting in the xcircuit output, scales both text and graphics at the same time, and avoids requiring declaring the "epsfig" package. Thanks, Alex!- posted: June 5, 2008 at 2:40am version: 3.6 revision: 132
2008-06-04 22:50 tim Corrected an apparently not-previously-reported error that causes a crash due to an out-of-bounds index into the fonts array. This may be a pathological condition, as it was found by accidentally reading a file produced by a newer version of xcircuit into an older executable. However, this does highlight the need for some version checking to avoid this kind of error.- posted: May 16, 2008 at 2:40am version: 3.6 revision: 131
Changed the "package require -exact" to "package require" in tkcon.tcl, so that xcircuit will work on Tcl/Tk version 8.5.- posted: February 5, 2008 at 2:40am version: 3.6 revision: 130
Corrected filename expansion so that tilde-prefixed filenames are treated as full paths and not appended to the search path prefixes when looking for input files.- posted: January 18, 2008 at 2:40am version: 3.6 revision: 129
Updated Wim Vereecken's matgen.tcl to version 0.6.- posted: January 7, 2008 at 2:40am version: 3.6 revision: 128
2008-01-06 09:06 tim Made some corrections to the non-Tcl version to prevent crashes due to NULL filename entries. There may be other places where this crops up, but at least it will save a file properly.
Also: 2008-01-07 02:40 tim- posted: September 24, 2007 at 2:40am version: 3.6 revision: 127
2007-09-23 12:00 tim Several corrections: 1) Corrected an error in "findcurfont" that could crash xcircuit if an expression parameter returns an error result, and the resulting string part is NULL. 2) Corrected an error that allowed degenerate (single-point) polygons to remain, if the polygon were edited and all points placed on top of each other. 3) Corrected an error that prevented using "undo" on any arc that was edited to zero radius (the element was deleted rather than being placed on the undo stack). 4) Removed a few more direct Tcl_Eval calls to GUI functions, replacing them with "XcInternalTagCall()" calls.- posted: September 22, 2007 at 2:40am version: 3.6 revision: 126
2007-09-21 23:38 tim Corrected a few problems with the parameter value edit box; namely, that 1. The choice-list box should lower itself when a selection has not been made (still, there should be a way to cancel it. . .); 2. Expression parameters that are *not* choice-lists should make it into the edit box, except that 3. they should be printed as the expression itself (-verbatim option), not the expression result.- posted: September 18, 2007 at 2:40am version: 3.6 revision: 125
2007-09-17 09:20 tim Corrected the "tech replace all" command as called from the "File Load" GUI, which was calling it as "tech replace any", and therefore not working.
Also: Corrected an error that was producing a spurious Tcl error message when executing "Load Dependencies". The result value was not a TCL result type, and there wasn't any error.
Also: Corrected a slew of errors in large project handling. These changes include: 1) Force a write of technology files when doing "Write All" and choosing "Force" 2) Added "technology used" option to find all technology files to which objects that are descendents of the page belong. 3) Added "technology changed " to force technology files to be marked as changed or unchanged (previously this was only possible with pages). 4) Corrected the handling of the technology "writable" flag on input, which was looking at the last technology created rather than the technology belonging to the input file, so files containing objects with multiple technology prefixes would get the writable flags all screwed up. 5) Do not follow symbol-to-schematic links that were made through the "link" parameter. In particular, this means don't collect such links and force all the filenames to be the same. 6) Related to (5), added "file links linked" as an option which finds pages linked via the "link" parameter. The other "file link" options now specifically do *not* list pages linked through the "link" parameter, to get the behavior of item (5).
Also: Changed the symbol.tcl file to make "index" the default parameter key for a component index rather than "idx".- posted: September 15, 2007 at 2:40am version: 3.6 revision: 124
2007-09-14 13:58 tim Added Wim Vereecken's "matgen" function for importing Matlab scripts (now if it can only be translated into gnuplot output from Octave!). Also, rearranged some of the startup functions so that functions imported from outside scripts like this one will get put into the menus of all secondary windows. Finally, rearranged the menu such that all import functions appear as a secondary "Import" menu under the "File" main menu.- posted: September 14, 2007 at 2:40am version: 3.6 revision: 123
2007-09-13 19:45 tim Added patch by Wim Vereecken that fixes the weird behavior where "color add" always returns the highest index in the color list, even when the color already exists in the color table and therefore has a different index from the one returned. This functionality had been implemented with "color index ", but it seems inappropriate to let "color add" return an incorrect color index. Now "color index" and "color add" are effectively redundant options. - posted: September 12, 2007 at 2:40am version: 3.6 revision: 122
2007-09-11 09:15 tim Corrected a bug introduced by attempts to clean up the "Make Matching Symbol" function. The bug strips the technology name off of objects when they are created. Thanks to Dimitri Princen for the bug report.
Also: Corrected the function that changes corresponding pins in a symbol vs. its schematic, which was also incorrectly changing corresponding pins between a schematic secondary page and its primary.- posted: September 11, 2007 at 2:40am version: 3.6 revision: 121
2007-09-10 11:07 tim Another several corrections to indirect parameter handling. (1) The eparamptr structure now contains an extra byte with a bit flag reporting if the parameter is indirect or not. This allows object instances to have parameterized position and rotation; otherwise, there is a conflict; and (2) corrected the output name of indirect parameter references to match the new system of prepending "@" to such names to avoid conflicts with defined PostScript keywords.- posted: September 10, 2007 at 2:40am version: 3.6 revision: 120
2007-09-09 12:20 tim Corrections to text_regexp, auto-increment, and undo: Added an "undo series" command to allow Tcl prodedures to act as monolithic blocks with respect to the "undo" mechanism. Changed text_regexp and auto-increment to make use of this function, so that blocks of label selections that are changed at once get undone at once.
Also: Corrected an error which left a corrupted "undo" stack when an element was copied on top of itself. This action would delete the duplicate element to prevent the problem of having invisible multiple elements screwing up a netlist. However, previously the duplicate was deleted instead of being transferred to the undo stack.
Also: Made a small change in the netlister that allows parameters to be cross-referenced between a symbol and schematic, using indirect parameters. For example, take an nMOS symbol with parameter "width", used in a schematic "inverter". In the inverter, the nMOS parameter is indirectly linked to a parameter called "scale" in the schematic of "inverter". The symbol for "inverter" also contains a parameter called "scale". If a top-level schematic uses symbol "inverter" and gives it a parameter value scale=2, then a flat netlist format will transfer the value of "scale" in the inverter to "width" in the nMOS. The subtleties of this method will be hammered out in the tutorial.- posted: September 9, 2007 at 2:40am version: 3.6 revision: 119
2007-09-08 21:25 tim Dimitri Princen corrected the new GUI window for parameter modifications to include the ability to handle multiple-selection Tcl expression parameters, in the listbox, which is a nice way of handling it.- posted: September 8, 2007 at 2:40am version: 3.6 revision: 118
2007-09-07 12:37 tim Several more corrections: The technology name was still getting attached to the schematic name when using the "associate" function. Also, corrected the auto-increment routine so that it doesn't generate an error when a selected label doesn't contain any numbers to increment.
Also: 2007-09-08 01:08 tim Added Dimitri Princen's enhancements to the parameter edit window (namely, embedding the parameter entry widget in the same window as the parameter list). Also, created a popup window for text modification, including search-and-replace and a general-purpose number increment/decrement.- posted: September 6, 2007 at 2:40am version: 3.6 revision: 117
2007-09-05 11:30 tim Corrected an error that prevented the netlist from being destroyed and recreated when the netlist is invalidated on a secondary page of a multiple-page schematic. This would lead to a corrupted netlist and quickly cause a crash.
Also: Also: Corrected the crash recovery file read-in to correctly terminate the filename string; otherwise, the filename can end up with extra characters at the end.
Also: Also: Corrected another error that attempts to look for filenames beginning with "/" in the file search path, rather than in an absolute path. This prevented crash recovery files from being found and loaded.
Also: Also: Corrected the schematic-to-symbol switch so that selected elements can be transferred from one to the other during a move or copy command. Note that the schematic-to-symbol switch is not handled by the "undo" mechanism, although it should be!
Also: Proper correction to the problem of having the technology name copied over to the schematic. The previous claimed fix of this problem didn't solve it.
Also: Corrected the error that occasionally prints "Use of non-numeric characters in component. . .". This was due to having the occasional instance value copy the "?" from the default value. I'm not sure how the instance value gets that way without passing through resolveparams() and getting eliminated, but presumably no harm is done by its being there.- posted: September 5, 2007 at 2:40am version: 3.6 revision: 116
2007-09-04 17:29 tim Added a Tcl script for doing regular expression substitution into a text label (or all selected text labels, or all text labels on a page).- posted: September 2, 2007 at 2:40am version: 3.6 revision: 115
2007-09-01 15:05 tim Corrected an error that causes xcircuit to segfault if "X" (exchange) is typed with no selections made. This happened to me when I inadvertently reached too far when going for the "Z" for zoom.- posted: September 1, 2007 at 2:40am version: 3.6 revision: 114
2007-08-31 11:00 tim Added John Barry's code for drawing small dots in the grid color around 20x snap spacing points. Also: Another correction to the symbol generation, which failed to add the namespace separator "::" between the technology name and the symbol name when generating symbols.
Also: Corrected some errors with link dependency loading. The routines now use the instance value of the "link" parameter, if it is different from the default, and reports an error on failure to load the file.- posted: August 31, 2007 at 2:40am version: 3.6 revision: 113
2007-08-30 12:31 tim Corrected the "symbol.tcl" script that creates matching symbols for schematics. The handling of label selections had changed, leaving labels selected after justification. This likely needs to be changed in the tclxcircuit.c code; for now, I'm adjusting the script to cope with the change.
Also: Modified the netlisting so that device indices that are specifically set will be honored when generating the slash-separated hierarchical names for internal nodes. For example, if cell "decoder" is given an index parameter value "4", then nodes in this cell will be prefixed with "decoder_4", instead of some unrelated number, which was the prior behavior. This is particularly important if a netlist is being generated by concatenating results of different netlist formats. Also modified the index generation for devices in flat netlists such that the numbering is independently counted for each device class. This is a minor enhancement, but comes in handy when one is searching in the netlist for the first resistor and can't find any reference to "R1", because after writing out 45 other devices, the first resistor was given the index "R46". Also: another correction to the automatic symbol generating code, to ensure that the new symbol gets the technology type specified in the dialog box. Otherwise, new symbols end up in the user space always.- posted: August 26, 2007 at 2:40am version: 3.6 revision: 112
2007-08-25 08:09 tim Implemented a bug fix by Dimitri Princen, fixing the error where attempting to change font style one character into a text label would (at best) fail to work and (at worst) crash the program.- posted: August 21, 2007 at 2:40am version: 3.6 revision: 111
2007-08-20 20:23 tim Corrected the output of "config pinpositions" and "config bbox" to return the words "visible" and "invisible" rather than "true" and "false"; otherwise, the GUI checkboxes are not updated properly, and it becomes impossible to change the settings again from the GUI. Thanks to Dimitri Princen for the bug report.- posted: August 9, 2007 at 2:40am version: 3.6 revision: 110
2007-08-08 22:54 tim Corrected the call to memset() with the patch from Chitlesh Goorah.- posted: July 18, 2007 at 2:40am version: 3.6 revision: 109
2007-07-17 21:40 tim Implemented Dimitri Princen's fixes and enhancements for the "raise" and "lower" functions. "lower" would cause an element to be lost in certain situations, and has been corrected. The TCL "element raise" and "element lower" commands now respect the order of elements in a group when a group selection is raised or lowered. Also, finished the implementation of "drag and drop" between multiple xcircuit windows. This does not work in "hold" modes (which lock focus on the window where the button was pressed), but will work in the toolbar "move" and "copy" modes. In finishing this implementation, I also fixed an error that causes the initial position of an element to be incorrect when moving between pages, objects, or windows (this was generally not very noticeable because the position would correct itself after any mouse motion).- posted: June 29, 2007 at 2:40am version: 3.6 revision: 108
2007-06-28 21:30 tim Corrected an error in the tag callback mechanism that would hang the program if a command with non-escape percent signs was passed to the tag handler (e.g., an info label "make" statement with its own percent escapes. This causes, for example, the "read EDIF" command to fail).- posted: June 25, 2007 at 2:40am version: 3.6 revision: 107
2007-06-24 23:10 tim Finished the code to generate new xcircuit windows by adding the capability to regenerate the color and font menus in each new window. Removed this item from the TODO list, and added some others that I have been thinking about lately.- posted: June 21, 2007 at 2:40am version: 3.6 revision: 106
2007-06-20 13:16 tim Corrected an error in setallstylemarks() which incorrectly used strcat() instead of strcpy() to write into an uninitialized character array. Thanks to Dimitri Princen for finding and fixing the bug!- posted: June 20, 2007 at 2:40am version: 3.6 revision: 105
2007-06-20 00:10 tim A number of corrections to the updates from the last few days. There is still a crash-causing bug lurking about. Beware!- posted: June 19, 2007 at 2:40am version: 3.6 revision: 104
2007-06-18 08:43 tim Applied a fix from Dimitri Princen for a bug that will cause spurious segmentation violations on any system that defines "Boolean" as anything other than "int".
Also: Added missing icon.- posted: June 18, 2007 at 2:40am version: 3.6 revision: 103
2007-06-17 08:43 tim Numerous things in this revision: Added the "preselected" method to the appropriate actions (rotate, flip, move, exchange, rejustify, etc.) (see notes on last commit). Also: Added an interactive rescale method and a toolbar button to go along with it. Also: Extended the "unjoin" method to cover what was previously handled by the "x" key in edit mode for polygons, to break a polygon at a specific point. The "unjoin" command will break the polygon at the point closest to the pointer position.
Also: 2007-06-17 16:06 tim Also: Corrected an error in file read-in in which parameter substitutions were made on the wrong object when comparing two objects.
Also: 2007-06-18 00:04 tim- posted: June 17, 2007 at 2:40am version: 3.6 revision: 102
2007-06-16 07:35 tim Partially implemented a new method in which elements that are selected prior to certain actions (rotate, flip, move, etc.) remain selected after the action has finished. This should satisfy the several people who have complained that element group rotations are difficult because the elements get unselected after each rotation step.- posted: June 16, 2007 at 2:40am version: 3.6 revision: 101
2007-06-15 09:41 tim Added auto-positioning of popup windows when they appear, to be centered on the pointer position, and adjusting to prevent off-of-screen positions. Windows that already exist are not repositioned.
Also: 2007-06-15 11:03 tim- posted: June 15, 2007 at 2:40am version: 3.6 revision: 100
2007-06-15 00:17 tim Cleaned up most of the interaction between the command-line interface and the GUI, removing direct references to the GUI from the C code. Check- and radiobuttons now work correctly for border styles, fill styles, color, fonts (all aspects), and options. Check boxes are no longer left in an incorrect state after an element is deleted.- posted: June 13, 2007 at 2:40am version: 3.6 revision: 99
2007-06-12 15:57 tim Corrected an error in which the edit cycle of a polygon was not reset after editing, causing bizarre behavior in "pinattach" mode.
Also: Also: Added more tag callback handling to set GUI check- and radiobuttons to reflect changes made by the command line or startup code. Changed the "label" command such that "label justify" (without any selections made) returns a two-word answer reflecting the horizontal and vertical justification settings.
Also: More (mostly transparent) changes: Trying to get all GUI-specific calls out of the C code. To this end, removed all of the config and label calls to Tcl_SetVar2 from menucalls.c and moved the original GUI functions into xtfuncs.c (where all of the Xt GUI calls reside). Tag callbacks for "config" and "label" in the wrapper script now handle the Tcl variable setting (to-do: "color", "border", and "fill" commands).- posted: June 12, 2007 at 2:40am version: 3.6 revision: 98
2007-06-11 23:31 tim Miscellaneous bug fixes, including a few involving the ISO-Latin2 through 5 encodings (thanks to Ahmet Nurlu for the bug report), and a fix of the "LED" library object to match yesterday's changes to the expression parameter syntax.
Also: Also: Corrected a bug noted by Dimitri Princen that allows two substrings to be parameterized under the same parameter key.- posted: June 11, 2007 at 2:40am version: 3.6 revision: 97
2007-06-10 20:14 tim Changed the notation for parameters used inside Tcl expressions from "%" to "@", because the former is interpreted by PostScript interpreters (e.g., ghostscript) as a comment line and causes an immediate failure of the output rendering.
Also: Another correction allowing parentheses after parameters in expressions.
Also: Final change for parameterized points---splines, polygons, and paths get any parameterized point positions recalculated on the fly during edit mode, so that constrained points cannot be edited.- posted: June 8, 2007 at 2:40am version: 3.6 revision: 96
2007-06-07 20:49 tim Added a tag callback to "config" to allow configuration changes made from the command-line or startup script to properly set the checkbox in the GUI window. Also, added an escape "%#" to tag callbacks to pass the number of arguments given to the original command. This allows tag callbacks to more easily handle such situations as the above, where "config
- posted: 12/19/05 version: 3.5 revision: 5
Added command option "objectlibrary [ ]" where the final optional argument was previously unavailable. If present, the final argument declares a new library for the object. If not present, the number of the library containing the object is returned.
Also: Corrected lib/tcl/symbol.tcl where the "%n" was missing from the end of the subcircuit call statement.- posted: 12/14/05 version: 3.5 revision: 4
Fixed an error in netlisting which causes the netlister to write "X.." lines in the SPICE output of "trivial" symbols like the "dot" object.- posted: 12/13/05 version: 3.5 revision: 3
Fixed another fatal error in file writing due to having a NULL filename.
Also: Revised the Wprintf() calls to accept variable argument lists, rewrote the Tcl versions of W*printf() as calls to a script rather than being hard-coded as a specific Tk function. This allows me to rewrite the script equivalent of Wprintf() to print to both the message widget and the console output, so the console now gets a complete record of warning, error, and informational messages produced by xcircuit.
Also: Fixed two fatal errors with "Load Dependencies", one which crashed xcircuit due to a typo in the Tcl code for command "page links load", and the other which created an infinite loop if loadfile() failed to load a file inside the recursive call to "page links load".- posted: 12/8/05 version: 3.5 revision: 2
Corrected a behavioral error in which xcircuit does not generate netlist output for a symbol containing an info label but no pins. Thanks to Herman Lee for pointing out this problem.
Also: Corrected a problem in 3.5.1 in which xcircuit changes filenames in a multi-schematic session to match the top-level schematic. It ignored the setting of "dmultiple", and thus would make changes without warning when it generated the crash backup file, for example.
Also: Added a widget for managing multi-schematic file writes, with a menu hook from "Files->Write All...".
Also: Changed the behavior of "page changes" to include change counts of all descendents. Fixed the Tcl parsing of the "page" command for certain options when a page is specified in the command (e.g., "page 1 fit"). Modified the "page changes" command so that the change count can be altered, thus forcing a page to be recognized as either modified or unmodified.- posted: 11/21/05 version: 3.5 revision: 1
Separated the source code into distribution (version 3.4) and development (version 3.5) branches, on the suggestion of Zvezdan Petkovic.
Also: Added command option "page changes" which reports the number of changes on a page. Modified some behavior so that starting certain commands like "copy" does not increment the number of changes, so that the command can be canceled without xcircuit thinking that the page has been modified.
Also: Added command option "config search file|library" with a colon-separated list
, specifying the search order on a specific set of directories. These lists are initially null, and behavior remains the same as before while these lists are null. A non-null search path overrides the default search on the current working directory, and a non-null library search path overrides the search on XCIRCUIT_LIB_DIR and the default install directory path. Modified the library manager to use search paths.
Also: Allow "library load" on a regular xcircuit (.ps) file, which has the behavior of loading the objects from the file without loading the pages themselves. Also: Added command option "netlist get -hier" to generate a slash-separated hierarchy using device names and indices.
Also: Fixed "netlist goto" to accept the same syntax that is produced by "netlist get -hier", and finished the coding of the routine.
Also: Added command options "netlist select" and "netlist position ".
Also: Changed behavior of the "%" macro so that it also raises the console to the top of the window.
Also: Added command option "netlist parse" (e.g., "netlist parse spice") that allows some selective parsing from a Tcl script.
Also: Created a script called "symbol.tcl" that replaces the function of the "Make Matching Symbol" button in the xcircuit menu, with a considerably fancier interface.
Also: Modified the command "color set" to accept color names.- posted: 11/21/05 version: 3.5 revision: 0
This revision was not posted, but reflects changes made through version 3.4 revision 10 that were removed from the "stable" branch of the distribution.
- Changed the crash backup file name to include the process ID. This is intended to prevent xcircuit process from treating a backup file from another existing xcircuit process as a crash file to be recovered, but the code is not yet finished.
- Enabled creation of parameters on a top-level page, and revised the Tcl "param set" command to handle this case.
- Added a "page links sheet" option to allow querying "sheet A of B".
- Added a "page links load" option to allow symbols to specify which file contains the schematic, and load these prior to writing a netlist.
- posted: July 19, 2008 at 2:40am version: 3.4 revision: 30
2008-07-18 20:23 tim Added Wim Vereecken's patch to correctly update the reference counter for graphics images (fixed in version 3.6 but not previously corrected in 3.4).
Also: Updated Wim Vereecken's matgen.tcl from version 0.5 to 0.7.- posted: May 23, 2008 at 2:40am version: 3.4 revision: 29
2008-05-22 17:18 tim Corrected the "-exact" problem in tkcon.tcl, as reported by Denis Dupeyron (it was fixed in 3.6, but not in the stable version as it should have been).- posted: March 10, 2008 at 2:40am version: 3.4 revision: 28
2008-03-09 08:29 tim Removed call to "TclSetBadOctal" that is not an exported routine and apparently is missing from more recent versions of the Tcl code.- posted: September 15, 2007 at 2:40am version: 3.4 revision: 27
2007-09-14 14:18 tim Implemented Wim Vereecken's Matlab import function. This module allows XCircuit to read .ps and .eps files generated by Matlab.- posted: June 14, 2006 at 2:40am version: 3.4 revision: 26
2006-06-14 01:15 eric Fixed multiple dist targets problem
Also: Corrected RPM dependencies- posted: June 10, 2006 at 2:40am version: 3.4 revision: 25
2006-06-09 10:54 eric Fixed "make distclean" to properly clean-up after "make dist"- posted: May 31, 2006 at 2:40am version: 3.4 revision: 24
2006-05-30 11:55 tim Changed the Makefile to properly define "make clean" and "make distclean"- posted: May 25, 2006 at 2:40am version: 3.4 revision: 23
2006-05-24 12:52 eric Added a new dist target to the makefile for building .tgz files
Also: Added a spec file for building RPMs- posted: May 15, 2006 at 2:40am version: 3.4 revision: 22
Initial revision
Also: stable distribution
Also: Changed the wrapper script so that the "Tcl Console" menu button does not appear when xcircuit is invoked with the "-noconsole" option.
Also: Minor corrections to the position of the "+" and "-" symbols to make the placement up-down symmetric with respect to the character centerlines. Corrections made to symbols "opamp", "samp", "wramp", and "vsource".- posted: 3/20/06 version: 3.4 revision: 21
Some changes to the configure script for OpenBSD support without patches.- posted: 3/14/06 version: 3.4 revision: 20
Corrected an error which prevented edited library object names from being applied to the object name. This resulted in confusion, because the library would show the modified name, while the object itself retained its original name.- posted: 3/14/06 version: 3.4 revision: 19
One more minor correction to fix the non-Tcl, non-Win32 compile, which was temporarily broken by the Win32 code.- posted: 3/10/06 version: 3.4 revision: 18
A few minor corrections to the Win32 code: proper handling of "Makefile.win32", and proper definition for line endcap types.- posted: 3/7/06 version: 3.4 revision: 17
Incorporated Michael Goffioul's Windows native graphics support into the source distribution.
Also: Fixed a warning message on number of parts that should apply only to library objects, not pages.- posted: 2/24/06 version: 3.4 revision: 16
Changed the meaning of CAD_HOME to point to "libdir", such that distributions can set it to something like /usr/share without causing trouble. Changed CAD_HOME to CAD_ROOT to maintain backwards compatibility.- posted: 2/23/06 version: 3.4 revision: 15
Changed code to prevent a spurious "Error: end of file" message. Also: Corrected the configure.in once again because Tcl/Tk defines TCL_INCLUDE_SPEC but *not*, stupidly enough, TK_INCLUDE_SPEC.- posted: 2/21/06 version: 3.4 revision: 14
Added the Shift-Button-1 bindings to duplicate Button-2 functions as an alternative to using "xcircuit -2".
Also: Added a flag to line styles representing a "square end cap" to a stroke.- posted: 2/20/06 version: 3.4 revision: 13
Made a couple of changes to the configure script to check some extra locations for the Tk header files which seem to have become standard on RedHat.- posted: 2/13/06 version: 3.4 revision: 12
Corrected an error that can cause xcircuit to crash when a box is drawn.- posted: 1/8/06 version: 3.4 revision: 11
Corrected an error in which the quick screen intersection check fails to include pin and info labels in the bounding box, and so when only pin and info labels intersect the screen area, nothing is drawn.- posted: 11/16/05 version: 3.4 revision: 10
Removed the problem with automatic generation of pin labels on a symbol during a copy action in the schematic.
Also: Added doubly-protected backups to standard file writes. This renames the existing file to filename + tilde ("~") so that the file is not truncated if a crash happens during a normal file write.
Also: Added patch files by Zvezdan Petkovic for proper compilation on OpenBSD.- posted: 11/14/05 version: 3.4 revision: 9
Applied (partially) a patch from Larry Doolittle that fixes a pointer bug in the non-Tcl version, and allows compilation of the non-Tcl version on a 64-bit system.
Also: Fixed the event mechanism to allow pages to be selected in the page directory (otherwise, pages cannot be swapped).
Also: Fixed the Tcl "push" command so that "push selected" now works, and clicking the "push" toolbar button when an object is selected has the expected effect. Also: Fixed the Tcl "label justify" command so that changing vertical justification does not reset the horizontal justfication.
Also: Fixed the Tcl-to-xcircuit string conversion so that plain text with spaces is handled as expected (thanks to Mark Martin for pointing out this problem).- posted: 11/10/05 version: 3.4 revision: 8
Changed an instance of "regsub" to make it backwardly compatible to Tcl version 8.3; otherwise, xcircuit fails to start up properly when linked to Tcl/Tk 8.3.- posted: 10/28/05 version: 3.4 revision: 7
Corrected event handling of schematic/symbol association, which was allowing xcircuit to return to "normal" mode while on a library page, resulting in bizarre behavior, and preventing the schematic/symbol association from being made. Thanks to James Vernon for pointing out the problem.- posted: 10/25/05 version: 3.4 revision: 6
Fixed bounding-box calculations on instance loads so that instanced values of expression parameters are handled correctly on file read-in. Also, corrected "resolveparams" to remove cached expression results before writing a page to a file.
Also: Added component unnumbering feature (as written, only for devices having the "idx" parameter).- posted: 10/21/05 version: 3.4 revision: 5
Added command option "label replace", menu items "Text-> Increment" and "Text->Decrement", and key bindings "i" and "I" (respectively) to auto-increment (decrement) numerical values inside text labels. As part of this, I also rewrote and completed the Tcl list-to-XCircuit string conversion routine.
Also: Fixed a bug reported by James Vernon due to accessing free'd memory, which appears to be fatal under Cygwin but not under Linux.- posted: 10/19/05 version: 3.4 revision: 4
Added command option "library filename" and the ability to save the first file from which a library page was loaded.
Also: Added the "page load -replace" and the ability to load/save specific libraries by name. Changed the "File" menu and the popup prompts to allow all of this to be done from the GUI interface.
Also: Added more Cygwin handling to the Makefile process, and tested the Cygwin compile and install.- posted: 10/6/05 version: 3.4 revision: 3
Some fixes to things broken between versions 3.3 and 3.4: Move "undo" stays on grid. Items being moved during move and copy commands stay with the cursor through pans. Button-3 now does the proper thing for cancellations during move mode.- posted: 10/6/05 version: 3.4 revision: 2
Refined and expanded the hierarchical element handle notation to cover all commands accepting element handles. This will now work for commands such as "element type". Still, only "polygon points", "spline points", and "instance center" commands translate point positions back to the top level.- posted: 10/05/05 version: 3.4 revision: 1
Fixed an error with finishing path edit operations, added "internal units" type to the grid display types, and implemented a (preliminary) hierarchical specification for element handles that can be used with the "polygon points" command to refer point positions back to the top level.- posted: 10/03/05 version: 3.4 revision: 0
Substantially revised the interface and input mechanism, removing the remaining methods that were hard-coded to various mouse buttons. Instead, I have implemented the button "Hold" mechanism in a general-purpose manner that also allows definitions of key hold bindings. I removed many of the event modes, including all of the element creation modes available from the GUI tool buttons, as these are more obviously implemented by changing button bindings. This allows the various modes to be switched on and off, and allows wire drawing mode to be just one of the modes rather than the default mode. Adding "wire", "move", and "pan" modes as more-or-less obvious button binding variations. Added ASCII85 and Flate encoding/ decoding to the graphic read/write operations. Added a "-2" option to the command-line invocation of xcircuit to set mouse button bindings for 2-button mice.
- posted: 9/28/05 version: 3.3 revision: 38
Corrected multiple-button checking routine to look at the event state only, not the button, as the button entry is changed by some routines. This was preventing the shift-button key bindings from working.- posted: 9/20/05 version: 3.3 revision: 37
Corrected SPICE output to generate a line break and continuation "+" character for wraparound lines.- posted: 9/16/05 version: 3.3 revision: 36
Fixed an error with netlist output in which parameters are not substituted if xcircuit is run in batch mode.- posted: 9/15/05 version: 3.3 revision: 35
Fixed parameter indirection---parameter string was not initialized on library read-in, causing a segfault. Also, changed the behavior of ordered spice lines so that they will be placed after any subcircuits are written, to avoid nesting subcircuits. A syntax "spice@" has been added for lines that really should go in front of everything (except for the special title line #1).- posted: 9/14/05 version: 3.3 revision: 34
Implemented "label latex" in the Tcl version, which was missed in the move from Xt to Tcl, and because it is an obscure function, was not noticed for some time. Thanks to Eric West for bringing it to my attention.
Also: Applied a patch by Joerg Wunsch that prevents a segfault when rotating a path element.- posted: 9/08/05 version: 3.3 revision: 33
Corrected an error in netlisting that would incorrectly identify empty parameter strings as the "idx" parameter. Also, added a "-nowindow" switch to the UNIX command-line invocation to allow xcircuit to be used as a filter (batch process) without creating/displaying an X11 window.- posted: 9/06/05 version: 3.3 revision: 32
Changed the handling of netlist writing from symbols, in particular to avoid crashing on encountering unexpected info label contents.
Also: Added a "-replace" option to file loads, that causes any object in a file to be overridden by one in a library "master copy".
Also: Revised the "library make" command to allow an arbitrary number of empty libraries to be created.- posted: 8/10/05 version: 3.3 revision: 31
Fixed a problem with the graphic image handling in which graphic images are saved to the output file if they exist, regardless of whether or not they show up in the output page. Also fixed the PPM reader to handle whitespace and newlines in the header correctly, according to the PPM spec.
Also: Added revision information to the "welcome" message in addition to the major.minor version.
Also: Some changes to the Makefile to properly handle passing of linker flags in the shared vs. static compiles.- posted: 7/28/05 version: 3.3 revision: 30
Fixed a problem with the startup TCL code that causes XCircuit to fail to start if a parse error is found in the user's ~/.Xdefaults file (even a completely unrelated parse error). Thanks to Roland Roberts for the bug report (and, much earlier, Romano Giannetti, although at the time I administered to the symptoms, not the disease.- posted: 7/22/05 version: 3.3 revision: 29
And yet more auto-numbering revisions. Ensure clearing of device indices prior to both netlist output and auto-numbering. Also, fixed parseinfo() to correctly handle the mode="" case.- posted: 7/21/05 version: 3.3 revision: 28
More fixes to auto-numbering code ($#!@&). Appears to work now for various cases, although I am not satisfied that it covers all situations. One part of the fix forces xcircuit to ignore all fixed component assignments when generating flattened netlists. While this ensures that all component numbers are unique, the output is not what might be expected, especially if there is no hierarchy in the schematic. Probably the parsing for fixed device numbers should *not* be done by parseinfo() but should be handled separately, under the assumption that this handles a limited number of backwardly-compatible cases and that normally it should expect to find "idx" and "class" parameters for each component.- posted: 7/20/05 version: 3.3 revision: 27
Revamped the auto-numbering code (again!) to better handle the "class" and "idx" parameter method, and make auto-numbering independent of the netlist format (i.e., SPICE vs. pcb). Device (component) name ("class") was moved from the object structure to the Calllist structure (after all, if the class is parameterized, then an instance may have a different class from the object's default class), and this is generated directly after generating the Calllist structure, since it is independent of the netlist output format.- posted: 7/19/05 version: 3.3 revision: 26
Further corrections to revision 20 code. Device classes are now checked and updated for non-pcb devices (e.g., mosfets) when doing autonumbering.
Also: parameter setting works for multiple selections; e.g., several transistors can be selected at once and have width or length changed simultaneously for all of them. Thanks to Carsten Thomas for the bug report and feature request.- posted: 7/18/05 version: 3.3 revision: 25
Finally logged into SourceForge and incorporated some of the more recent patches found there. Includes a patch to configure.in by Min Sik Kim, and a patch to fontfile.c by Zunda.- posted: 7/17/05 version: 3.3 revision: 24
Updated keybindings with the new function "Graphic", which otherwise causes the help utility to crash. Thanks to John Rigg for the bug report.- posted: 7/15/05 version: 3.3 revision: 23
Added file load and save methods for the "graphic" element, as well as undo/redo operations, a menu item for loading graphic elements, and all essential operations.- posted: 7/14/05 version: 3.3 revision: 22
Corrected broken file parsing from revision 21. Image data is now read from "objectread" like everything else inside the Setup block.- posted: 7/13/05 version: 3.3 revision: 21
Fixed a bug introduced in revision 20. Also, started adding the new basic element type "graphic", to handle inclusion and placement of arbitrary graphic images. This will eventually replace the buggy and cumbersome "background postscript" rendering via ghostscript.- posted: 7/08/05 version: 3.3 revision: 20
Changed the component auto-numbering so that all component values are treated as base-36, to allow handling of non-numeric component numbers. Also, the routine that determines the number to assign will return the smallest unused integer instead of (1 + (largest number found)) so that use of non-numeric values doesn't cause the auto-numbering algorithm to generate strangely large numbers.
Also: The auto-numbering algorithm now looks at the parameter "idx" if it cannot find a "pcb"-style info-label. This allows non-pcb parts like transistors in VLSI schematics to be auto-numbered. This is really the preferred way to handle auto-numbering, and all library parts ought to be updated to contain the "idx" parameter.- posted: 6/28/05 version: 3.3 revision: 19
Resolved the issue with retaining the stack order of parts through a delete-undo cycle, so that all previous undo records point to the correct parts in the correct order. This eliminates a lot of spurious error messages coming from the undo mechanism.
Also: Resolved the issue with polygon/arc/spline/path rotations, where rotations cannot be undone exactly due to accumulating roundoff errors. The solution is simply to treat the rotation as an edit for these element types.
Also: Fixed an error with label deletion. Labels that are edited out of existance were not handled properly, an egregious error that was somehow overlooked.
Also: Modified console.tcl script to withdraw the console window on a window manager "close" request, rather than exit the application. This bolsters the end-user illusion that the console is a subsidiary window of the layout, rather than vice versa.- posted: 6/16/05 version: 3.3 revision: 18
Fixed an error reported by Benoit Bidoggia, in which an attempt to clean up redundant font changes triggers a crash becuase it has been passed the top-level instance instead of NULL (NULL is necessary because this function is called when reading an object definition, at which point there are no instances).- posted: 6/12/05 version: 3.3 revision: 17
Fixed another error that showed up in Uwe's schematic, which is that the "test_insideness" algorithm fails if the box is degenerate---which happens for labels that are parameters set to a null string.- posted: 6/10/05 version: 3.3 revision: 16
Corrected an error found by Uwe Zimmermann in which xcircuit calls free() on an unallocated space when destroying an object containing an indirect parameter.
Also: Added some experimental code replacing the drawing functions with OpenGL. This can be compiled in by passing "--with-opengl" to the "configure" script. However, the code is currently unfinished.- posted: 5/31/05 version: 3.3 revision: 15
Added another feature to the change of revision 14: Info labels that have negative sequence numbers (e.g., "spice-1:", "spice-2:", etc.) will be written after all subcircuit and component output, whereas the usual positive sequenced labels "spice1:", "spice2:", etc., will be written before subcircuit and component output. Each sequenced line is followed by a return character in the output. First and last line of the netlist output is hard-coded (e.g., circuit title and ".end" line in SPICE (see rev 5 comments)).- posted: 5/27/05 version: 3.3 revision: 14
Changed behavior of netlist generation to allow (finally!) info labels on a top-level schematic. These labels are written verbatim into the output. Probably needs checks to avoid attempting to process certain embedded escapes like pins. . .- posted: 4/08/05 version: 3.3 revision: 13
Fixed an error that missed recalulating the instance bounding box after a text rejustification.- posted: 3/29/05 version: 3.3 revision: 12
Changed behavior of the netlist connectivity highlight function in response to a suggestion by Long Yang that pin connection points should be hightlighted, the better to show places where a net does not attach to a pin.
Also: Added a feature in response to a comment by John Barry that error messages disappear when netlists are saved if the netlist is not recreated. This feature includes a checkbox in the Tcl wrapper that by default forces regeneration of the netlist on each netlist file write function.IN PROGRESS---Added "idx" to Pagedata; need to separate areastruct.page from the actual printed page number. This simplifies page re-ordering and allows schematic libraries to be "hidden" among the rest of the pages. xobjs.pages and areastruct.page will still refer to the index into pagelist.
- posted: 3/12/05 version: 3.3 revision: 11
Fixed an error, pointed out by Long Yang and Svenn Bjerkem in which xcircuit crashes when descending into an object. This was due to out-of-bounds array addressing, and must have been in the code for some time, but only shows up on some compilers (Solaris?).- posted: 2/27/05 version: 3.3 revision: 10
Fixed an error in the flattened netlist output that has probably existed in most revisions of 3.3 to date, where net names are not correctly passed down from parent cell to child cell. Thanks to Mark Chang for pointing out the error.
Also: Fixed a bug in the selection mechanism where the selection is not NULLed prior to return from the calling routine if no selections are found.- posted: 2/05/05 version: 3.3 revision: 9
More changes to the selection mechanism. Selection mechanism sorts polygons (wires) according to distance of the nearest edit point. Previous selection is always kept and compared against current selection. "pick" is only advanced if the selections are the same. Pointer position when selecting a polygon to edit is restored from the warped position after a button-3 cancel function.
Also: Added all edit functions to the "undo" mechanism, as well as label creation.- posted: 2/04/05 version: 3.3 revision: 8
Corrected several mistakes in the selection mechanism that left pending (unfinished) events on the stack.
Also: Corrected a problem from rev. 7 that did not register unselection events (key "x") with the undo mechanism.- posted: 2/01/05 version: 3.3 revision: 7
Revamped the selection mechanism (finally) to get rid of the cumbersome "click to select or reject" method. The new method picks one element, and cycles through objects so that a different object is selected on each button press, if several elements are found at the pointer position. This method would be equally unwieldy save for a change in the way object instances are selected---the selection routine recursively searches for elements inside objects that are close to the pointer position (albeit with a wider capture range than on the top level). This prevents selecting an object instance with lots of white space if the pointer is in the middle of the white space (such as a frame or border object).
Also: Corrected the "Make Matching Symbol" callback. Thanks to Mark Chang for pointing out the error.- posted: 1/04/05 version: 3.3 revision: 6
Made additions to the "pcbout.tcl" script to support SMD integrated circuits, and resistors and capacitors (both chip and axial). "pkg" parameter added to the Resistor and Capacitor parts in the "analoglib2" library.- posted: 12/16/05 version: 3.3 revision: 5
Corrected a fatal error in library copies if no valid object is selected. Corrected a compile error (C++-like syntax fails on many compilers). Added option to print or not to print the ".end" statement at the end of a SPICE deck.- posted: 12/10/04 version: 3.3 revision: 4
Corrected an error that allows "temp label" pins to be assigned the same name for different nets. The number following "int" or "ext" on temp labels is now changed to match the net number when referencing the label name, if it is found to be different.
Also: Corrected another bug that causes a crash when copying an edited parameter back to an object. The data record for the PARAM_END structure was not zeroed. This was okay previously because the data record was unused.- posted: 12/06/04 version: 3.3 revision: 3
Corrected a problem in which drawn subcircuits and subcircuits declared with an "X.." in the info label will share index numbers, by forcing SPICE output to generate a devname of "X" for each drawn subcircuit object.
Also: Changed the behavior so that device numbering starts at zero, not one. Otherwise, if a device is numbered zero on the drawing (e.g., by having the index number entered by hand), xcircuit will generate a spurious "duplicate part" warning.- posted: 12/03/04 version: 3.3 revision: 2
Fixed an error (apparently from 3.3 rev 0) that caused parameters to become hosed if changed (also causes program crashes).
Also: Added handling of X11 button4 and button5 events for (potential) binding to mouse scroll wheel motion.- posted: 10/08/04 version: 3.3 revision: 1
Changed the behavior of the PCB netlist generator to be more intelligent about finding the bottom of the layout hierarchy. Also, corrected the netlist generator where it allowed a global net to be merged into a local net.- posted: 9/28/04 version: 3.3 revision: 0
Replaced the "hspice" directory with Conrad Ziesler's "spiceparser". The use of routine AddNTermModule() has broken the spice input for now, although once fixed, the results should be much improved.
Also, changed the handling of expression parameters so that expression parameter results may be numeric, and evaluated results are saved in the PostScript output as instance values. When traversing the hierarchy during redisplay, commands invoking a "selected" element will pick up the object instance being rendered. The combination of these changes allows the implementation of several useful features such as counter-rotation and displaying the name of an object within the object.
- posted: 9/17/04 version: 3.2 revision: 27
Quick fix to allow the non-Tcl code to compile; the experimental "ngspice" code contains numerous Tcl references, and although it does not depend on Tcl in principle, it is easier just to disable the code for the non-Tcl compile. It will not be missed.
Also: Changed the startup method from the hacked-up redirection of $HOME to a standalone "wish"-like executable that sets up "wish" to read in the .xcircuitrc file as its startup script.- posted: 9/07/04 version: 3.2 revision: 26
Changes based on comments from Dale Grover for correct compilation/linking/installing under "Fink" on Mac OS X 10.3.- posted: 9/06/04 version: 3.2 revision: 25
Fixed the wrapper code to ignore Tk's standard binding for the Tab and Shift-Tab key events during label text input. Otherwise, the window loses focus, which is an annoyance.- posted: 8/25/04 version: 3.2 revision: 24
One major fix to the netlist code to insist that "updatenets" is never run on a symbol. Otherwise, a circuit that has a symbol that is not used anywhere will generate an error when netlisting, resulting in no netlist.
Also, many minor fixes/enhancements to the TCL command-line functions, mainly to support scripting. There is now a script called "sue_xc.tcl" that supports the generation of schematics from ".sue" files (in particular, this is to allow xcircuit support for the IIT standard cell library; see http://www.ece.iit.edu/~vlsi/scells/).- posted: 8/18/04 version: 3.2 revision: 23
Rather important fix from back in revision 19, in which routine "pointtonet" is supposed to merge crossing wires if they cross on top of a subcell port. This is the method used to connect crossing wires with the "dot" symbol, so it is rather important.- posted: 6/21/04 version: 3.2 revision: 22
Added capability to the parameter selection mechanism to handle Tcl-expression parameters of the form "lindex {list}". Such expressions will generate a listbox-type popup window in which the user is prompted to select one of the choices in the list. The parameter will be replaced by the same expression but with changed to reflect the index position of the chosen parameter value. The way to make such parameters in the first place is "parameter make expression {lindex {list} }". To change the expression itself instead of selecting a choice from the list, use "parameter set" instead of the GUI interface. Thanks to Paul Surgeon for suggesting this method. - posted: 5/28/04 version: 3.2 revision: 21
More quick fixes: Makefile error installing .tcl and .lps files due to an error in Makefile.am; library object import now checks library version and does not attempt to import libraries that may be missing a dependency list. Distribution libraries updated to make sure all of them will work with the library import function. Tcl function "library" changed to accept " " when library name is "Library: ". This makes more sense, as it allows one to do, for instance:
"library load asg_spice"
"library asg_spice save asg_spice_new"
- posted: 5/26/04 version: 3.2 revision: 20
Quick fix to a bug pointed out by Petter Larsson, which must have been in the code for some time, which checks for names incompatible with the PostScript interpreter but then fails to make the change. Also, cleaned out some source code copies left over from bus representation implementation.- posted: 5/20/04 version: 3.2 revision: 19
Finally got the bus notation handling into enough of a working condition that I dare to post the distribution. In addition to basic fixes, improvements include handling of buses and partial buses with the "connectivity" function, and in particular, handling of instance-specific labels throughout the netlist (previously was only applicable to the netlist output). The instance-specific labels allow the new "tap" object to work. Added the tutorial file "buses.ps" to the examples directory.- posted: 5/06/04 version: 3.2 revision: 18
Removed the requirement that the GUI must be in place prior to startup. XCircuit can be embedded directly in another application with or without its own GUI. Without the GUI, it is necessary to create (and map) a "simple" window (e.g., "simple .mytest.draw -bg white -width 700 -height 400"), and then set the Tcl array variable "XCOps(window)" to be the Tk pathname of this window. This creates a window into which things can be drawn by Tcl command-line commands. To enable button and key actions, it is necessary to do:
bind .mywin.drawfrom the Tcl command line. It is also possible to rewrite the wrapper script so that the whole GUI is present but rooted in a location different from ".xcircuit". In that case, set the variable "XCOps(top)" to the top-level window name before invoking xcircuit::start. In either case, one must run "wish" first, then load "xcircuit.so", create the appropriate Tk window or windows, set the appropriate XCOps() variable, then do xcircuit::start.{xcircuit::standardaction %b down %s}
bind .mywin.draw{xcircuit::standardaction %b up %s}
bind .mywin.draw{xcircuit::standardaction %k key %s}
bind .mywin.draw{focus %W} Handling of bus notation is still unfinished in this (unreleased) version, and probably breaks the schematic capture altogether. This will be fixed prior to an actual distribution release.
- posted: 4/14/04 version: 3.2 revision: 17
Major enhancement: Handling of bus notation in netlists! Also, Prohibit parameters from shadowing PostScript reserved names and definitions in xcircps2.pro, as is done for object names. Also, finally found and excised the bug that was preventing correct comparison between object definitions on read-in, which was introduced along with the parameter type- promotion code. Fixed another bug which prevented parameterizing position. And, fixed a bug which prevented disabling flip invariance on text from the menu in the TCL version.
Also: made more convenient constructor/destructor functions in elements.c, for general purpose use; these are called from tclxcircuit.c.
Also: Reimplemented "strdup" as "Tcl_Strdup" in the TCL version; otherwise, there are places where memory is allocated by strdup, bypassing TCL's memory allocation, but free'd by Tcl_Free().
Also: modified the library manager "library import" routine to load any library instances of an object in addition to the object itself.- posted: 3/15/04 version: 3.2 revision: 15
Reinstated colors and other parameters as XDefaults-style options in the TCL version using the Tk_GetOption() command. Changed autoconf so that the TCL version is compiled by default (unless not found, or explicitly disabled). Initial work on bus notation parsing.- posted: 3/03/04 version: 3.2 revision: 14
Added a library manager (often requested) for handling large lists of parts. Allows objects to be imported from libraries piecemeal.- posted: 3/03/04 version: 3.2 revision: 13
Changed the TCL scripts and shell startup file so that the README directions for a test execution prior to install actually work as advertised. Also, finally found a way to force automake to compile the tcl version with just "make" and "make install", thus hopefully eliminating the greatest source of compile-time woes. Re-implemented the .so file loading so that the reported error is the real root cause error, not "file not found".
Also: removed Imakefile and all references to it.
Also: Added a menu item for the PCB layout generation. This is not yet sourced by default.- posted: 3/01/04 version: 3.2 revision: 12
A couple of fixes to bugs reported by Brek Miller. 1) Library copy did not copy parameters correctly (missed both the "key" and "which" entries), and 2) The object comparison mechanism failed to correctly compare objects with parameters due to a typo in the code.- posted: 2/27/04 version: 3.2 revision: 11
Some changes to command functions and netlist output. Added file lib/tcl/pcbout.tcl, a script that converts an xcircuit schematic into a preliminary PCB layout. This is very spare at the moment, to say the least; for instance, it only supports 7400-series devices. But it's mostly proof-of- concept.- posted: 2/26/04 version: 3.2 revision: 10
Some Makefile/configure changes, esp. for systems like Debian that do not find the Tcl/Tk include files. Also, rearranged the menus so that "linewidth" commands (global and wire line- width) are more obviously placed ("wire linewidth" duplicates the "element border" entry). Thanks to Forrest Cook for this suggestion. Also, rewrote the library load command in xcircuit.tcl so that it prints the actual root cause error instead of complaining about "file not found". Also, rewrote and extended the "help" window in Tcl, making it entirely script-driven from Tcl, and adding help text for each function. This required adding Tcl command "bindkey" variant with no arguments, which returns a list of all functions which can be bound, and "bindkey -func", which definitively asserts that the argument is a function, not a key (because, e.g., "Delete" is both a key name and a function). Also, made XCF_Prompt (key "%") execute xcircuit::raiseconsole in the TCL version (previously undefined in TCL). - posted: 2/20/04 version: 3.2 revision: 9
Greatly expanded the undo mechanism, which now covers most of the major xcircuit functions. This is definitely "beta test" code. Also, renamed a number of functions and definitions to be clear about the difference between an element and an object (this confusion was left over from the really early days of the program).- posted: 2/11/04 version: 3.2 revision: 8
Improved the ghostscript rendering mechanism so that it can handle (non-encapsulated) pages output from ghostview (which includes some global state-setting commands). Also, greatly improved the rendering by backgrounding the process. Xcircuit draws a blank background and continues until ghostscript reports that the page is finished, at which point the page gets redrawn with the background.- posted: 2/06/04 version: 3.2 revision: 7
Some fixes to the ASG and hspice routines; automake now checks for g++-3vs. the older header file and adjusts accordingly. The hspice parser no longer produces files netlist.sp and netlist-flat.sp. Compilation of ASG is now disabled by default (and will be until it's stable. . .), and requires "configure --enable-asg" to enable the module. - posted: 2/05/04 version: 3.2 revision: 6
Added the ASG and hspice parser modules back in, with additions to the master Makefile and configure script to support compiling both modules into the xcircuit Tcl shared object library xcircuit.so.- posted: 1/29/04 version: 3.2 revision: 5
There was a 3.2 previously for the ASG implementation. This is being done again from scratch, but I'm continuing the revision numbers where I left off, at 5. Prior to adding ASG back in, version 3.2 is in the process of implementing the "comprehensive undo" function by creating the framework for running undo/redo events and recasting the "delete" function into this framework. More to be added in coming revisions.
- posted: 1/28/04 version: 3.1 revision: 38
Removed #ifdef SCHEMA from everything. This should have been done long ago. . . Also, removed %%PageBoundingBox from the output for encapsulated PostScript files, as this appears to screw up output when including the drawing in a document, such as a LaTeX file. Changed the behavior of the output dialog box such that the page label is checked before writing, and the page label is set to the filename if the label is still "Page #" at the time the label is set. Fixed the behavior of selecting fill and border styles, especially a critical error with fill styles that would allow polygons to acquire an invalid state, causing netlist problems and/or unmatching PostScript output. Changed the selection behavior such that elements are not unselected after border/fill/color changes. Fixed the behavior of network connectivity highlighting to work with multi-page schematics. Changed some event handling to let most button- release events act on the mouse position on the previous button press (this works for drawing wires and editing polygons, but not for copying elements). Added "%N" escape to the tag callback mechanism to allow all arguments to be passed to the callback procedure as a list. Fixed marking of "Closed" checkbox in the Tcl "Border" menu.- posted: 1/23/04 version: 3.1 revision: 37
Preparing for XCircuit 3.2 (ASG). Revised some of the code structure of netlist.c, added routines NameToPosition(), from the ASG code (xcircuit-3.2), and PortToPosition(), which is a variant thereof. Added the routine ratsnest(), called by the command "netlist ratsnest" in the Tcl console, which demonstrates some of the features required for true ASG.
Also: removes deleted items from the netlist piecemeal, so that an ASG system can operate on an invalidated netlist without encountering dereferenced pointers, or elements which are not on the page they claim to be on.
Also: Fixed another bug similar to that in #271 where no space was printed after the closing "}" in multipart strings appearing in parameters, which equally bad results.- posted: 1/21/04 version: 3.1 revision: 36
Added support for schematics spread over multiple pages. The method is that all top-level pages that have the same page label (object name) will be considered part of the same schematic. One of the pages is considered the "master", or "primary" page, and keeps the netlist/portlist/calllist for all the pages. The other pages are the "slave" or "secondary" pages, and refer to the master page for netlist information.
Also: Fixed a couple of bugs resulting from messing with the parameter formats, namely 1) put back the check for equal "which" value in varpcheck and varfcheck, and 2) added a space after printing a null-string "()" parameter value.- posted: 1/16/04 version: 3.1 revision: 35
Modified and completed support for expressions in parameters. In the TCL version, this supports all TCL expressions. In the non-TCL version, it allows simple character strings to be used in parameters. The expressions are not translated into PostScript; the PostScript output records the expression, which is unused, and the last evaluated result, which is taken to be the parameter value. Cleaned up more code for numeric and indirect parameters, and added TCL options "-verbatim" and "-indirect" to the "parameter" command to facilitate handling indirect and expression parameters.- posted: 1/09/04 version: 3.1 revision: 34
Cleaned up and finished most of the stuff having to do with numeric parameters, parameters promoted from numeric to string types, parameters on a top-level page, and indirectly-referenced parameters.
Also: Tcl variables moved into a single array.
Also: Some support for arithmetic expressions in parameters. Very rudimentary at present.- posted: 12/16/03 version: 3.1 revision: 33
Fixed the text justification routine in TCL ("label justify ..."). Thanks to Petter Larsson for the bug report. Fixed two problems with "page clear"---one reported by Brek Miller, showing that the free_single() routine was removing parameters from the referenced object, not the instance, and one reported by Joel Kuusk, where the Tcl "clear page" command allows clearing a page while editing an object instance in the hierarchy of that page, causing an immediate crash. Finally, corrected prototypes.h for routines setjustbit() and setpinjustbit() for the non-Tcl compile, left in an improper state in revision 32. Thanks to Dave Armbruster for this bug report.- posted: 12/10/03 version: 3.1 revision: 32
Fixes to the linewidth/border width changing from the menu in the TCL version, as pointed out by Rob Olsen. Also, on suggestion from Makram Mansour, added LaTeX label handling.- posted: 12/08/03 version: 3.1 revision: 31
Three fixes from bug reports by Bliss Carkhuff: "page save" returns TCL_OK rather than an undefined value, parameter entry requires exact match to keywords to get text escapes such as "underline", and substring parameter creation corrected for creating parameters in the middle of a label. Page save error also pointed out by Mark Martin, and Rob Olsen who additionally noted the additional error in linewidth selection (which has also been fixed).- posted: 12/01/03 version: 3.1 revision: 30
Made another change to the output such that all objects used on all pages are output first, inside a PostScript DSC block "DocumentSetup", followed by all the pages. This modification allows viewers like ghostview to figure out that these objects may be used by any page, and prevents errors that occur when skipping pages forwards or backwards in the viewer.- posted: 11/26/03 version: 3.1 revision: 29
In response to Romano Giannetti, fixed the bounding box routines so that EPS files are handled the way they used to be. The only thing required was to set the overall bounding box to remove the 1" margins; the page bounding boxes remain the same, and ghostscript, ghostview, and EPS insertions into LaTeX documents all appear to be handled correctly. Also, added the "override" commands to the TCL interface, although to match the rest of the TCL syntax, these have been changed to "library override", "loadfont override", etc.- posted: 11/19/03 version: 3.1 revision: 28
Changed the way XCircuit handles embedded bounding boxes and does page scaling and translation in the output. Removed the "offsets" comment line from the output and changed it to a PostScript translation, which means that all the positional values in the PostScript output on a top-level page are all in xcircuit internal units, without offset, and are therefore invariant with scale, page size, etc. When an embedded bounding box is present, xcircuit translates the output such that the bounding box is centered on the page. If "auto-scale" is selected, then the output is scaled such that the bounding box fits centered on the page with 1" margins minimum.- posted: 11/16/03 version: 3.1 revision: 27
Extended the parameter method to include parameters passed inherited by an object instance from its parent. Fixed the "make object" method such that parameters are copied into the new object (as yet, the new object does not correctly inherit the parameter from the parent). Added preliminary support for promoting numerical parameters to strings.- posted: 11/11/03 version: 3.1 revision: 26
More fixes and extensions related to parameter key:value pairs. Added a popup window in the Tcl version for editing substring parameters of an object instance, including functions for formatting ASCII strings from string parameters and vice versa. Added a function for the "Add New Color" button in the Tcl version, which was missing. Command syntax "color" changed to "color set " and option "color add " added. - posted: 11/06/03 version: 3.1 revision: 25
Changed parameter handling to a key:value pair model. Revised built-in libraries to take advantage of this method, using keys like "value", "units", "length", "width", etc. Expanded and revised the "parameter" command in Tcl-based XCircuit to provide the key:value information, as well as providing parameter information down one level in the hierarchy for an object instance (using the key "-forward" as the last argument to the "parameter" command). Added command option "type" to list parameter types, or to list parameters by type. Finished code for removing parameters.- posted: 9/19/03 version: 3.1 revision: 24
Added feature (macro "V" key) to make a library virtual instance from an object selected on a page. This allows users to make temporary copies of parameterized (or rotated, or flipped) objects for quick retrieval. Several corrections: Xcircuit now checks for symbols associated with schematics and saves them, even if the symbols are not used in any schematic. This prevents associations from being lost after a save/quit/load cycle in an unfinished schematic.
Also: Snap and polygon edit will invalidate the netlist.
Also: "Make matching symbol" reports an error if the schematic page has an invalid name.- posted: 9/15/03 version: 3.1 revision: 23
Corrected revision 22, which duplicated the NameToObject routine by mistake. Also added TCL wrapper key bindings for function keys "Page Up" and "Page Down" to increment or decrement the page number (helps with large numbers of schematic pages).- posted: 9/10/03 version: 3.1 revision: 22
Moved routine NameToObject from tclxcircuit.c to schema.c, since it is used by the non-Tcl based code and prevents compiling the non-Tcl version. Thanks to Swee-Ann Teo for pointing out the error.- posted: 9/05/03 version: 3.1 revision: 21
Fixed a problem with the Tcl calls to the zoom functions, which were passing a NULL event structure. Thanks to Ed Casas for pointing out this error.
Also: Fixed the Makefile.am file for compilation under Cygwin, which was presented the wrong name for menudep.o. Thanks to Carlos Davila for pointing out this error.- posted: 9/04/03 version: 3.1 revision: 20
Changed key and button handling in Tcl to work using the Tk "bind" function, with the usual behavior being bound to the "standardaction" command. Standard actions can be rebound using the xcircuit "bindkey" command, or keys can be bound to Tcl procedures using the Tk "bind" command.- posted: 8/12/03 version: 3.1 revision: 19
Required reconfiguring without Tcl once to generate the "Makefile.in" in the Xw directory; otherwise, automake 1.7 becomes a requirement.- posted: 8/06/03 version: 3.1 revision: 18
A fix to the output, correcting the page numbering in the PostScript page headers. The incorrect numbering can cause some printers to lock up. . .- posted: 7/14/03 version: 3.1 revision: 17
Thanks to Ted Roth for fixing my rather too-hasty fix of revision 16.
Also: Some fixes to the autoconf script (also from Ted Roth), and autoconf script updated to work with the latest versions of autoconf/automake/aclocal.- posted: 7/08/03 version: 3.1 revision: 16
Fix to "x" and "y" output for .sim format---thanks to Kath Shih for pointing out this error.- posted: 5/05/03 version: 3.1 revision: 14
Incorporated a patch from Max Horn to remove all references to "malloc.h" from the headers, and fix the configuration file for Mac OS X compilation.- posted: 4/29/03 version: 3.1 revision: 13
Fixed a problem due to automatic search for schematics which prevents a single page from being saved. The output window now shows both "schematics" and "subcircuits" with checkboxes; pushing "schematics" unlinks top-level schematics, and pushing "subcircuits" can prevent subcircuits from being saved along with the file. In either case, the filename is blanked out so the user will not mistakenly overwrite the original file with a truncated one. In conjunction with this method, the Tcl "page links" command has been extended to include the options "independent", "dependent", "total", "pagedependent", and "all". Eventually, I expect to add an additional option "list" to list page names instead of simply enumerating them. Thanks to Mark Jones for pointing out this error.- posted: 4/14/03 version: 3.1 revision: 12
Fixed the PostScript background rendering, which was only broken because of a broken implementation of ghostscript (version 6.5).- posted: 3/21/03 version: 3.1 revision: 10
Replaced TkCon with the version used with magic, fixing a minor issue with handling backslash escape sequences.- posted: 2/26/03 version: 3.1 revision: 9
Fixed the install for revision 8, which failed to run the xcircuit.tcl script through the m4 preprocessor. Also, on recommendation of Mark Jones, added a warning message when pins exist on a symbol which do not exist in the associated schematic.- posted: 2/23/03 version: 3.1 revision: 8
Resolved numerous issues with cross-application methods. Overloaded the "label" Tcl procedure to accept both xcircuit and Tcl syntax, and removed the "bgerror.tcl" file. Added procedures for calling netgen, IRSIM, and magic while running XCircuit.- posted: 2/19/03 version: 3.1 revision: 5
Fixed (for the third time(!)) occurrences of "getline" which should have been changed to "setline". Fixed the toolbar widget so that it recomputes its width when the window size changes, and so that it does not squeeze the height of the bottom message bar.- posted: 2/12/03 version: 3.1 revision: 4
Added handling of "va_copy" to the configuration script for systems which do not define it.
Also: Added "%x" and "%y" escapes to the info label syntax, for writing positional information to the output (helps LVS programs like "netgen" trace back errors to the schematic). Split the "Manifest" file into "CHANGES" and "TODO" and started adding revision numbers to the change log entries to match the revision number on the website download page.- posted: 2/10/03 version: 3.1 revision: 3
Added Tcl handling of the string parameter insertion via a popup prompt.- posted: 2/04/03 version: 3.1 revision: 2
Traced the "No per display information" error to use of an Xt function (XtDispatchEvent()); replaced with Tk_HandleEvent().- posted: 2/03/03 version: 3.1 revision: 1
Fixed numerous problems with the Tcl-based version, and added several missing functions (such as the select filter, and handling keystrokein the filelist widget). - posted: 1/24/03 version: 3.1 revision: 0
Finished preliminary version of Tcl-based xcircuit. Relocated runtime files back to (default) "/usr/local/lib" (instead of autoconf's default $datadir "/usr/local/share"). Threw in tkcon.tcl for compatibility with magic/irsim/netgen and recast fprintf() as macro Fprintf(), which calls "tcl_printf()" in the Tcl version and "fprintf()" in the other versions. Added command-line function "-exec" to the Tcl version for running in batch mode (or alternately, just to bypass the default startup file).
- posted: 1/15/03 version: 3.0 revision: 6
On advice from Zhengdao Wang, changed the postscript header to draw "opaque" styles as solid color, not stipples. All fill styles except for white (empty) are made opaque by default and fill style white is made transparent by default. The "opaque" menu button can set the non-default behavior.
Also: Added a file loading command to the python and non-interpreter command-line interfaces.- posted: 11/25/02 version: 3.0 revision: 5
Cleaned up some code with respect to 64-bit pointers, checking for the size of pointers in "configure", and setting the proper integer type for pointers in xcircuit.h. Should compile cleanly on 64-bit systems without the "-taso" switch (which doesn't exist for Linux/alpha systems).- posted: 9/23/02 version: 3.0 revision: 4
Added pixmap image handling to Tk/Tcl, and removed SWIG from the "make" process. Configure option "--enable-wrapper" changed to "--enable-tcl", "make wrapper" changed to "make tcl", and "make install-wrapper" changed to "make install-tcl". Added the toolbar and associated functions. Added "netlist" function to Tcl for generic netlist handling. Fixed numerous errors in the Tcl callbacks. Tcl functionality is now about 95% of what it should be. Non-Tcl version has not been affected by these changes.- posted: 7/17/02 version: 3.0 revision: 3
Several bug fixes for bugs reported by Massimo Gaspari (see below).- posted: 7/08/02 version: 3.0 revision: 2
Fixed bug in the Python "bind" command such that keys not bound to macros return an xcircuit error, not a Python error (bug reported by Bob Paddock).
Also: Fixed a bug reported by Petter Larsson <f97-pla@nada.kth.se> in which the result of getenv("XCIRCUIT_LIB_DIR") is not check for a NULL value when executed from (any) interpreter.- posted: 7/03/02 version: 3.0 revision: 1
Several bug fixes for parameter-functionality bugs found by Massimo Gaspari. Changes are relatively minor and not worth inducing a version number change. - posted: 6/24/03 version: 3.0 revision: 0
Abount 90% of the Tcl functionality necessary to duplicate all existing functions has been completed. This makes the Tcl-wrapped version useable, but experimental, and a bit crash-prone. The command set it written up in "README.Tcl". Compiling involves doing "configure --enable-wrapper" followed by "make wrapper" and "make install-wrapper". Otherwise, the standard "configure" and "make" results in the standard version of xcircuit.
- 5/21/02
(version 2.5.5) Started on the Tcl-wrapped version of XCircuit. Currently this is just a big mess. I am posting it to the distribution with all the wrapper stuff disabled and no instructions on how to compile it, mainly so I don't have to keep making sure that bug fixes are reflected in both versions.- 5/14/02
(version 2.5.4) Revised the CvtStringToPixel so that it satisfies (or should satisfy) all X servers doing 8 bpp, even those that return bogus values on XLookupColor(). Previous "fix" had disabled private colormap installation.
Also: Improved "gettext.py" to deal with tabs and page breaks, and takes optional values for maximum lines per page and font to use. Fixed a bug in "pagebbox.py" and also a related bug which clipped color values to size short when set by "setattr" in Python.- 5/10/02
(version 2.5.4) Fixed a bug in which XCIRCUIT_LIB_DIR must be defined or the program will crash.
Also: Added text split and join functions, and text "up" and "down", mapped to the Up and Down arrow keys.- 5/09/02
(version 2.5.4) Changed the format of the output of the Python netlist() function to better facilitate flattened netlists. Nets are passed by number and associated to names in a separate dictionary. This allows names to be changed (as required when flattening) without altering the netlist. Otherwise, it becomes a big mess. The new format ends up being smaller than the original. "flatspice.py" has not yet been completed, though.- 5/07/02
(version 2.5.4) Repaired some problems with the Python netlist() function, and wrote a working version of "spice.py". Will replace the internal functions when the "sim" and "pcb" scripts are written.- 4/29/02
(version 2.5.4) Various changes in response to bug reports: Fixed library and page object exchange, PCB infolabels on quad parts. Seg fault due to missing code in "unmakenumericalp" has been worked around, but the routine still needs to be finished. Patched filelist.c to query result of stat(). Fixed error with XQueryColors in 8-bit pseudocolor mode.- 4/26/02
(version 2.5.4) Got rid of the "passive grab" action, which seems to be the root cause of the video screen blanking on some systems. Eventually discovered that "XtAddEventHandler" doesn't work for ButtonMotion if it's called AFTER the button has already been pressed. With this fact in hand, it was easy to avoid all the Add/Remove calls and just add the event handler once, at the beginning.- 4/19/02
(version 2.5.4) Replaced the top-level object with a top-level instance, with all the ensuing fallout. The resulting code is much cleaner.- 3/25/02
(version 2.5.4) Fixed the problem of parts being auto-deleted by the netlister pointed out by Jeremy Brown.
Also: Fixed a problem found by Bob Paddock in which label segments are miscounted on output; apparently, this only happens using the "gettext" script.- 3/21/02
(version 2.5.4) Changed library structure so that every object gets an instance. This precipitated many code changes. Along the way I fixed up a bunch of minor errors, too many to list. Bounding boxes in the PostScript output ("bbox" entry) have become obsolete, except for font files, where the bounding box is not necessarily coincident with its contents.- 3/19/02
(version 2.5.4) Added key binding for "pin global" (key "G"), which was documented but was not actually in the program. Thanks to Jeremy Brown (jhbrown@ai.mit.edu) for pointing this out.
Also: On another suggestion of Jeremy's, added a scrollbar to the help window. Along the same lines, cleaned up the "file read" window so that the pixmap is never shorter than the viewport. Fixed a small error with PostScript background rendering---newline before "end_insert" avoids problems with binary-format PostScript. Changed default key binding for BackSpace to equal behavior of Delete. This seems to be what most people expect and/or want as default behavior.- 3/12/02
(version 2.5.4) Implemented instance-defined bounding boxes and cleaned up a lot of stuff related to bounding boxes. This was needed to properly implement the new "libinst" method described below.
Also: Altered the connectivity highlight function so that it retains the number of the highlighted net in the netlist, and continues to display the highlight through page changes and expose events. Fixed a bug in the PCB netlister.- 2/27/02
(version v2.5.3) Fixed a few minor inconsistencies related to color allocation.
Also: Implemented a "select previous" command, an undo command for selections. Third mouse button function ("Escape") will unselect anything that is selected, but if nothing is selected, it will retrieve the last selection. Page/object changes destroy the previous selection record.
Also: Added intanced scale and rotation values to the "libinst" record (values are optional). This allows, for instance, the "arrowhead90" object to be replaced by an instance of the original "arrowhead" rotated by 90 degrees. All libraries updated to include useful instantiations of objects rotated by 90 degrees: arrowhead, arrow, circle, jumper, and all of the analoglib2 objects which allow instanced rotation and justification of their parameter value labels.- 2/26/02
(version 2.5.3) Bug fixes to incremental netlisting.
Also: Separated the loading of GUI colors from that for layout colors. The schematic capture was re-using SNAPCOLOR, AUXCOLOR, and BBOXCOLOR, which causes bad effects if one attempts to change these values in the X defaults. Re-used GUI colors were not necessarily duplicated or available in the layout color palette, which was also confusing.
Also: environment variable XCIRCUIT_LIB_DIR now applies to the search for the startup script. This enables xcircuit to be tested prior to installation by doing "setenv XCIRCUIT_LIB_DIR ./lib" in the top-level source directory.- 1/30/02
(version 2.5.3) Changed the behavior of the PostScript background so that it scales, rotates, and translates with output selections (Landscape vs. Portrait, and vs. Output Scale), so the behavior is what would be expected. Still allows only one background image per page, though, and the PostScript image can't be scaled, rotated, and translated independently of the rest of the drawing (those things must be done to the image prior to loading).- 1/3/02
(version 2.5.3) Minor bugfixes: variable reading (varfscan, varpscan) requires skip over whitespace. Netlist requires reinstating routine nearpoint() because matrix transformations have roundoff errors and pin positions should not be compared exactly. Updated Copyrights to 2002. Netlist generation has been confirmed on a large schematic design.- 1/1/02
(version 2.5.3) First cut at incremental netlisting---implemented a scheme in which netlists are kept after being generated, until they are invalidated or the object is destroyed. This scheme allows the netlist structure to be queried at any time. Netlist creation is independent of the netlist mode, as it should have been to begin with.- 12/26/01
(version 2.5.2) Correction to duplicate object code makes sure that schematic/symbol association does not get destroyed along with the duplicate object!
Also: Applied Holger Vogt's patches to configure.in for proper compilation under Cygwin.- 12/15/01
(version 2.5.2) XCircuit now allows pin labels to be parameterized, treating them as an instance-dependent label. While this does not alter the SPICE and sim netlists, it allows (for example) quad parts such as four NAND gates of a 7400 chip, each having its own unique pinout but sharing the same object.
Also: To go with the pin labels, added a method for generating "virtual copies" of an object to appear on a library page ("V" key from the library page). The virtual copy is a different instance of the object, and can take different parameters. Started on library "quadparts" with 7400-series pinouts to facilitate use of the new feature with PCB netlisting.- 12/06/01
(version 2.5.1) Revised the routines that deal with duplicate objects. New routines prevent propagation of appended underscores (used to differentiate between objects with the same name but different structure). The major change is that a list of aliases is kept for objects with the same structure but different names, so there is no confusion through the process of reading the library. When the loading is done, the aliases are removed and the names are cleaned up.
Also: Switched the copyright to GPL for better compatibility with other open-source tools, and because it's the Right Thing To Do.- 11/28/01
(version 2.5.0) Removed an ill-conceived routine which would delete duplicate copies of an object even if the names were different. This action can give rise to very bad inconsistencies. A better idea would be to try to "clean up" leading underscores whenever an object with a leading underscore is deleted. However, this is a minor point.
Also: Fixed a string overrun bug in charreport().- 11/16/01
(version 2.5.0) Finally (!) added support for parameterized values other than label (sub)strings. This includes parameterization of all element values except color (which is handled by an inheritance model). Includes parameterization of: point position (x, y, or both), line style, linewidth, scale, rotation, label justification, and arc radius, minor axis, and endpoint angles. Includes support loading, saving, displaying, printing, and editing.
- 11/14/01
(version 2.4.0) Added python script "pagebbox.py" to create standard page-size bounding boxes (request from Bob Paddock). Along with this, I updated the python code to handle colors by name or RGB components, rather than by index, which is visual-dependent.- 11/12/01
(version 2.4.0) Bug fixes to 2.4.0: Fallback resources string must be null-terminated, added 2 remaining fallback resources that are not taken care of by the XtGetApplicationResources() routine, and changed XtAddConverter to XtAppAddConverter. I hope that the application-specific references will prevent problems with the timeout functions, and maybe with input focus as well.
Also: Fixed type casting of values retrieved from the message3 widget---values are type "Dimension" and "Position" (usually defined as unsigned short and short, respectively), not int. Causes errors under Solaris and probably other systems, too.- 11/09/01
(version 2.4.0) Switched to a new method for defining rotation. Rotation in xcircuit is now given in degrees, which matches the PostScript output. Flipping is done in the obvious way by declaring a negative scale value (which is applied only to the X component in the transformation matrix; Y is always positive). Lookup tables for sines and cosines are replaced by the math library functions, which presumably are fast enough not to show any performance hit on most machines. The redefinition of the PostScript prologue prompts the move to a new minor version number. Rotation is still an integer value, so the minimum rotation increment is 1 degree.
Also: Fixed an error in the PostScript prolog in which text flip invariance was incorrectly implemented after the addition of text kerning & scaling methods. Fixed another error in which XCircuit and PostScript disagree about text orientation due to roundoff errors. Matrix values must be compared to some epsilon, not zero, to determine when the orientation is 90 or 270 degrees. epsilon = 1e-9 works fine.
Also: Changed certain Xt routines to include XtAppContext in the hope of avoiding the problem with the TimeOut function conflicting with other X11 programs (namely, screensavers). Hopefully the addition of fallback_resources to XtOpenApplication will prevent problems with the X defaults when the X defaults file cannot be found.
- 11/05/01
(version 2.3.6) Added rudimentary "edit-in-place". Currently, this is a bit odd, because the hierarchy above the object is rotated to match the "natural" orientation of the object, rather than the other way around. This should be fixed by allowing rotation and flips to the top-level page (keep the transformation matrix for the page rather than just the scale and position). Skewing of the grid due to rotations is a can of worms, though. Probably rotating to the nearest 90 degrees would suffice for most purposes. Edit-in-Place is turned on by default. It can be turned off if the extra drawing clutters the window.- 11/01/01
(version 2.3.6) Fixed a long-standing error in which the "rejustify" routine was giving labels invalid "justify" bit fields. Fixed a problem with the "visible pins" in which the visibility flag would always be reset by a rejustification of the label.
Also: Removed the ":n" suffix from pages in multiple-page files with the same name. The addition of the suffix was screwing up the association of symbols to schematics on file reads, and it seems to work fine without it. Some attempt is made to enforce unique names for pages associated to symbols, but it seems to work correctly whether or not names are unique.
Also: Fixed an error in string parameter deletion, and added a call to mergestring() after deletestring() to connect any divided text.- 10/25/01
(version 2.3.6) Revamped the file list window on the suggestion of Zhengdao to highlight files that match the expected file extension. Extended this idea to include a "file filter" which displays only those files with matching extensions. This feature can be turned off by clicking a toggle button in case a file with an unusual name or extension cannot be seen.
Also: Added a flag to the label justification value which allows pins to be seen on hierarchical levels other than the top. Changes to the prolog prompted the change to subversion 6 although the change is fully backward-compatible. Thanks to Bob Paddock for the suggestion.- 10/24/01
(version 2.3.5) Fixed a netlisting bug pointed out by Bryce Denny in which the layer ordering of label vs. polygon can cause the label to not be associated with the network under it. This led me to discover another bug in which a label position would update the netlist properly but the actual label itself would not be added to the netlist (the only apparent consequence is that the label is not hightlighted during a connectivity check).
Also: Fixed the behavior of the .xcircuitrc file loading so that keys can be rebound from the file. Added Python commands for pan and zoom, and wrote an example script which rebinds keys "Z" and "z" to a python function which combines the pan and zoom. Separated zoom functions between those with and without screen refresh.- 10/22/01
(version 2.3.4) Fixed some buggy behavior with respect to loading and setting default fonts in .xcircuitrc and xcstartup.py. Thanks to Jeremy Braun (jtbraun@MIT.EDU) for reporting these errors in detail.
Also: Fixed a missing requirement in checking object name syntax. A PostScript name must be a string which cannot be interpreted as a number. Thus, "+9" and "1E9" are illegal names. Thanks to Bob Paddock (bpaddock@csonline.net) for reporting this bug.
Also: Changed behavior with respect to environtment variables, allowing "TMPDIR" to set the temporary directory and allowing an override of the "XAPPLRESDIR" directory. Added a list of environment variables used by xcircuit to the manual page.
Also: Revised the tempfile mechanism once again to include a check on the number of times a file has been modified; heavy modification will induce a temp-file save even if the timer has not expired.- 10/19/01
(version 2.3.4) Implemented a "changed" file mechanism which checks for changes to pages and objects and queries for confirmation if there are unsaved changes upon quitting. Changed filename behavior so that all filenames have their own malloc'd space, instead of sharing filenames. Extended file backup to include different filenames on different pages. Added a toggle box on the output popup window so that a page can be unlinked from a multipage file, and displays the number of pages in the file. Added the simple popup window (no text entry) to the list of python calls.- 10/18/01
(version 2.3.4) Fixed the crash file recovery so that ONLY the given crash file can be loaded (load and cancel are the only choices). Also, the actual temp file name is hidden from view, and the original filename is recovered from the "%%Title:" header line.
Also: Fixed the problem in which startwire() was called after a popup window button was selected.- 9/18/01
(version 2.3.4) Names of pages added to the library and page directories. Thanks to Bob Paddock (bpaddock@csonline.net) for suggesting the feature.
Also: Updated "configure.in" to check for the infamous python version 1.5, and disable the python interface if found.- 9/10/01
(version 2.3.4) RPM package makefile fixes (thanks to Alex Habig (habig@neutrino.d.umn.edu)).
Also: changed undelete() to xc_undelete() to avoid conflict with OpenBSD/FreeBSD system calls. Thanks to Mike Andrews (mikea@mikea.ath.cx) for bringing this to my attention.- 8/12/01
(version 2.3.4) Implemented a Python interface into the netlist structures. Set up for use of Python scripts to generate all netlist output, as well as dealing with non-PostScript format input.
Also: fixed a problem with crash recovery caused by the program exiting on call to Py_Exit. Improved the crash recovery mechanism to automatically find crash files on startup, and prompt user to load.
Also: added more Python functions, for page clear, page change, add key bindings to Python functions, and create menu buttons with callbacks to Python functions. Added Python functions for calling a popup prompt, file browser.- 7/27/01
(version 2.3.3) Fixed more man page problems with the make process. Added default values for Python libraries when the Python Makefile can't be found. Made the rcfile parsing more robust, esp. so it doesn't crash if it attempts to read a non-script file.- 7/26/01
(version 2.3.3) Added auto-numbering of component numbers using netlist mode "idxpcb". This works for all component numbering (including SPICE and sim) where the component number is parameterized and denoted by a question mark ("?"). Thanks to Lapo Pieri (lapo@iroe.fi.cnr.it) for the suggestion and some code to implement the function outside of xcircuit.
Also: Fixed Imakefile so that imake uses m4 to generate the man page correctly on "make install.man".- 7/18/01
(version 2.3.3) Fixed two errors, one which split global nets in hierarchical PCB netlists, the other which failed to find nested parameters.- 7/17/01
(version 2.3.3) Some changes to the GNU autoconf (with much help from Albert Chin) for correct parsing of the path to python, avoidance of errors when generating the man page, and re-instantiation of the keyboard input focus workaround.
Also: Removed the behavior of turning pins back into labels when creating objects or moving labels between pages or objects. Added behavior that if a pin is removed (or moved out of an object), and the pin has a unique string, any pin on the corresponding symbol/schematic will revert to a plain label. This was the intended behavior.- 7/09/01
(version 2.3.3) Added label strings to the Python setattr() command. Added a getcursor() command to Python. Created a python script called "gettext(filename)" which creates an xcircuit label from the contents of an ASCII file.- 7/06/01
(version 2.3.3) Quick fix to an error in interpreting key names for key bindings.- 7/05/01
(version 2.3.3) Added environment variable XAPPLRESDIR so that application defaults come from the location specified by the configure script, not /usr/lib/X11/app-defaults. This also allows app-defaults to be used even if xcircuit is compiled without root privileges. The configure script was modified to compile in Xpm, if it can be found.- 7/02/01
(version 2.3.3) Changed netlist behavior so that wires only connect at endpoints (although an endpoint may attach TO any location along a segment of another wire). Optimized a few routines for speed. Netlist output now changes symbol font and standard font "mu" (i.e., micro) to "u". Fixed a bug preventing correct loading of files containing multi-part strings as parameters.- 6/28/01
(version 2.3.3) Cleaned up some behavior with respect to component numbering, including fixing numbering for flattened SPICE output. Added a PCB library for generic IC parts.- 6/27/01
(version 2.3.3) Corrected the parseinfo() routine so that it correctly uses the symbol, not the schematic, to pick up information about a pcb name. Changed some of the library objects (namely the passive devices like Resistor and Capacitor) so that pin names are PCB-like and device can be given a part number. Changed the netlist compiler behavior so that all indices are numbered relative to a particular component, rather than numbered relative to all components.- 6/25/01
(version 2.3.2) I have introduced GNU autoconf/automake in this version, thanks to help from Albert Chin. Also includes numerous fixes of bugs stemming from changes made between versions 2.1 and 2.3.- 5/30/01
(version 2.3.1) This version completes the hierarchical schematic capture, and includes many internal structural changes which should be transparent to the end-user. A few visible changes include better listing of the contents of an edited string in the message window, and the addition of tab stops, scale and color changes, and embedded carriage-return in labels. Errors stemming from parameterized objects have been fixed by the structural changes.
- 12/19/00
(version 2.2.0) Added to the functions available at the command line (thanks to Norman Werner (norman.werner@student. uni-magdeburg.de for patches); also, changed the startup behavior from loading "builtins.lps" (nominally a library file) to loading "startup.script" (a command script). Commands "loadlibrary" and "loadfontencoding" in .lps files are no longer warrented, although they are supported for backward compatibility.- 12/18/00
(version 2.2.0) Finally, a stable release including schematic capture code. Just in time for Christmas. Includes changes to the way schematics and symbols are associated with one another, fixes to the netlist generation; also, xcircuit now loads "analoglib2.lps" (circuit symbols with parameters andmore netlist informatio) as a default library page.
- 12/04/00
(version 2.1b9) Fixes to the code changes from 11/29.- 11/29/00
(version 2.1b9) Addition of text blocks (Alt-Enter inserts a carriage return during text edit), and scale change, color change, and kerning (character offsets) within labels.- 11/11/00
(version 2.1b8) More fixes related to bugs in the parameterization and netlist routines (yes, deja vu). Thanks to Terry Hancock (hancock@earthlink.net) for exercising the functions and finding bugs. Also, there's a new xcircps2.pro which redefines "label" from the PostScript end, adding block text and kerning capabilities (which have not yet been added to the xcircuit code), and fixing long-standing inconsistencies between xcircuit and PostScript on label alignment.- 10/27/00
(version 2.1b7) More fixes related to bugs in the parameterization and netlist routines. Also, added more "%" special sequences to info labels: %n for object name, %r for carriage-return, %t for tab, and %% for the percent sign character. Info labels for "pcb:" format are now interpreted as object names (to be inserted into the netlist).- 10/23/00
(version 2.1b6) Quick fix of a fatal bug pointed out by Wilson Barroz (wbarroz@bol.com.br) wherein a "path" element cannot be selected without causing a crash (the bug was accidentally introduced somewhere in the 2.1b series).- 10/2/00
(version 2.1b6) Fixed many of the problems associated with parameter strings. Have not yet exhaustively tested for remaining bugs. Change in label output to allow escape sequences to be part of parameters.- 9/25/00
(version 2.1b5) Added a menu option to read a script, using the same command-line feature as was implemented below for the .xinitrc file. Also, added some functions to the command-line parser and fixed an error with bounding-box calculations for EPS output.- 8/4/00
(version 2.1b2) Added a command-line window which accepts the same commands as the .xcircuitrc file. This syntax will be expanded in the near future. Added text hints to the toolbar buttons. Added a user-definable bounding-box capability, and fixed the automatic bounding-box calculation to include spacing between pins and their text. Added a "auto-fit" feature to automatically scale the drawing to fit the output page. Also improved the behavior of the text-edit widget to delete a selection if it exists in lieu of deleting a character.- 8/1/00
(version 2.1b1) Added the crucial feature of automatic file saving to a temporary file: in case of hangs or crashes, the file can be recovered from the /tmp directory. The name generation routine is the system call tempnam() with prefix "XC". Temporary saves are redundantly protected during file writes. Timeouts for auto-saves defaults to 15 minutes and can be set from Xdefaults as string "xcircuit.timeout", units in minutes.- 7/31/00
(version 2.1b1) There are some bug fixes, particularly as relates to compilation on HP/UX and a couple of obscure segmentation faults. Mostly, however, I have changed from 2.0 to 2.1 after Graham Murphy pointed out to me that older versions of 2.0 (e.g., 2.0a11) will crash when loading newer version files (e.g., 2.0b4). This is due exclusively to a tiny change made in the syntax for labels.
- 6/28/00
(version 2.0b4) Corrected and enhanced the routine printing out the cursor position and other information to the top of the window.- 2/25/00
(version 2.0b4) Added two major features: 1) Ability to read in any arbitrary PostScript file, to be rendered to the background by ghostscript (assuming its on the system). 2) A toolbar down the right side for quick command execution, and quick access to object property menus. The toolbar implementation is not yet complete.- 2/8/00
(version 2.0b3) Bugfix: Using "add new library" followed by "make object" caused a segmentation fault because createlibrary() was malloc'ing the new library on top of the old user library.
Also: Tested some preliminary support for ghostscript-rendered backgrounds.- 1/13/00
(version 2.0b3) Enhancements: Added a "library directory" as part of infrastructure for implementing multiple library pages. Changed behavior of bounding box calculations so that bounding boxes are calculated on the fly as objects are created and edited, and any changes are reflected in the page directory, the libraries, and the library directory as required.- 1/10/00
(version 2.0b2) There have been a number of bug fixes to the schematic capture code, and a "page order" page has been added to aid in displaying, moving to, and rearranging the internal pages. All objects and libraries now retain their position and scale in the window, and variables related exclusively to the graphics window have been separated from those which aren't, with the expectation of one day allowing xcircuit to fork off multiple windows on the display.- 11/22/99
(version 2.0b1) Introducing the beta version!- 11/19/99
(version 2.0a11) Matheiu Clardiscovered that the environment variable LANG can override the ``locale'' function and make the program crash just like it used to do if locale was set to some non-US value. This has been corrected by internally setting LANG to "POSIX" (the default). If it seems unreasonable that xcircuit speaks only "English", remember that all the files it loads and saves (which are the cause of the crashing) are PostScript, and PostScript is effectively English, at least has no option to use, for instance, commas as decimal delimiters (perhaps you should get on Adobe's case about this blatant Americentrism). However, the real problem seems to be that the scanf() family of functions will just segmentation fault if they see an unexpected use of a delimiter. - 10/29/99
(version 2.0a11) I tracked down a fundamental problem with keyboard focus which was mainly a problem under the WindowMaker window manager. Turns out that WindowMaker likes to keep grabbing keyboard focus for itself, and won't release it back to the application. The solution was to keep a constant vigil on ClientMessage (nonmaskable) events into the xcircuit top level window. Nevertheless, bug reports still keep coming. There will be more fixes.
Thanks to:
Tennessee Carmel-Veilleux, Raymond Burns , Paul Ortyl , Pete Boettcher , Damien Montassier , Don Johnson , Shaul Karl . - 8/20/99
(version 2.0a10) Several bug fixes: One bug fix to the output file generator to correctly identify all fonts used in the drawing; another bug fix restores the original behavior of changing font properties of selected labels (this is a fatal bug on some systems).- 6/25/99
(version 2.0a10) Tweaks to several functions: 3rd mouse button now backs up one line segment when drawing polygons rather than giving up on the whole thing. Cursor warps to center of screen on a pan command. New key macro "." (period) draws a dot object at the cursor position.- 6/16/99
(version 2.0a10) Fixed a bug which occurs under some non-US versions of Linux which use a comma as the default decimal point character, causing an immediate crash on startup for all versions from 2.0a9 to current.- 6/14/99
(version 2.0a10) Added ISO-Latin5 encodings (Turkish) to the font files.- 5/24/99
(version 2.0a10) More revamping of text handling and other bug fixes. Backslash escape sequences for entering non-keyboard text characters have been replaced by a graphical point-and-click method.
Also: finally implemented edit mode for paths.- 5/12/99
(version 2.0a9) Revamped all text drawing routines to make font handling much more flexible. Added ISO-Latin1 (Western European) and ISO-Latin2 (Eastern European) encodings.- 1/26/99
(version 2.0a7) Fixed a bug which was introduced into version 2.0a7 which prevents landscape-oriented files from being loaded back into xcircuit. See the troubleshooting guide for more details.- 12/18/98
(version 2.0a7) Changed some internally fixed fonts to be able to be set by Xdefaults, and fixed some minor alignment problems in the file list widget which were associated with the choice of font.- 12/8/98
(version 2.0a7) Fixed a long-standing problem with page scale and grid/snap spacing: all of the above are made separate for each page and are saved and loaded with each file. Also, some attempt at smooth scrolling was added, and a zoom-out box function was added to complement the zoom-in box.- 10/4/98
(version 2.0a6) Problems with the simple help window have been fixed, and a lot of associated source code was shuffled around and cleaned up.- 9/29/98
(version 2.0a5) The color icon code apparently introduced a bug in which most window managers would lose input focus to the program. This is partially fixed, but input focus behavior still depends on the window manager. This is mainly a concern for Linux, where the availability and variety of window managers has exploded in recent days. If you have problems with a specific window manager, please send me a bug report including the system and window manager you are using.- 9/1/98
(version 2.0a4) More bug fixes; color icon added.- 8/23/98
Useful new features added (version 2.0a3) such as flip-invariant text. Coming soon: parameterized objects (a must for schematic capture and any hope of compatibility with other CAD tools). Bug fixes galore, and the graphics look fabulous as always, but don't expect xcircuit to generate a correct spice deck, yet (it's getting there). Flip-invariant text keeps all text within 90 degrees of upright regardless of how many flips and rotations its put through---so, for instance, the ``Vdd'' always reads forward, even when it's in a subcell that has been flipped around backwards.- 7/9/98
Alpha version of schematic capture system xcircuit-2.0 introduced.
- 5/21/98
A few bugfixes and additions courtesy of Jörg Wunsch, including the addition of handling WM_DELETE_WINDOW client messages to allow the program to be closed by window manager controls.- 5/19/98
Bug fixes from Paul Slootman for the 64-bit Alpha platform.- 5/13/98
David DiGiacomo pointed out that the problem with the "make" halting under Solaris is the indeterminate exit status returned by the menudep program. This has been fixed.- 4/11/98
Backspace can no longer be typed from the keyboard; instead, the keyboard Backspace acts like Delete, and a Backspace character can be inserted from the menu.- 3/16/98
Fix to a PostScript profile bug which caused stipple patterns to be drawn incorrectly in rotated objects. If you have an xcircuit version prior to 3/16/98, please update your PostScript profile with the corrected xcircps2.pro file.- 2/25/98
Fixes to Xw to make it compile cleanly: result is that Xcircuit now compiles under DEC Alpha, and Xcircuit will compile under (at least) Linux and IRIX without making system-dependent changes to the Imakefile.- 2/12/98
Changes to the inch/cm conversions; xcircuit is now friendlier toward Europeans: it can be made to start in metric mode (with the .xcircuitrc file) and reports all measurements in centimeters when in metric mode as well as setting the size of a "full page" to A4 standard.- 1/30/98
Work on the schematic capture system is less in earnest than claimed, as my Ph.D. thesis takes top priority. However, the last known fatal bugs have been excised from xcircuit, which is now in version 1.7. A copyright has been added and xcircuit is now occasionally posted to metalab.unc.edu (formerly sunsite).- 10/15/97
Work in earnest has begun on the xcircuit schematic capture system.- 10/8/97
(1) Added a feature to "hide" objects which are only subcomponents of other objects and not meant to be independent objects to be grabbed from the library. (2) Fixed the polygon editing modes to a more reasonable form. (3) Changed object editing so that edited objects to not change position in the list of elements.- 10/1/97
Changed color values to type int; this allows xcircuit to run on 16/24-bit TrueColor display visual types as well as the usual 8-bit PseudoColor visual (you wouldn't believe how many programs crash when run on a 16-bit visual!). If your version of xcircuit is working fine, then you don't need the update.- 9/10/97
Fixed a bug which causes problems in the PostScript output if more than 12 new fonts are added to the font list. This is a rare occurrence and should not affect most users.- 9/9/97
Changed some Xw code for compilation under DEC OSF (DEC Alpha). Does not affect current users. Still can't compile correctly under DEC Alpha anyway!
Last updated: June 25, 2022 at 11:02am