# config

name: css
value:
  /* General settings for the entire page */
  html {
      min-height: 100%;
  }
  body {
      margin: 0ex 1ex;
      padding: 0px;
      background-color: #e1e1e1;
      color: #333;
      font-family: Verdana, sans-serif;
      background: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#cbccc8));
      background: -moz-linear-gradient(top,  #fafafa,  #cbccc8);
      background: -linear-gradient(top,  #fafafa,  #cbccc8);
      font-size: 0.8em;
  }

  h1, h2, h3, h4 {
      font-family: Georgia, serif;
      font-weight:normal;
      margin: 0 0 0.5em 0;
  }

  h1, h2, h3, h4 {
      margin-top: 1.2em;
  }

  h3 {
      font-weight:bold;
  }

  div.content>h1 {
      margin-top: 0;
  }

  li {
      margin-bottom: 0.5em;
      margin-right: 20px;
  }
  /* The project logo in the upper left-hand corner of each page */
  div.logo {
      display:none;
  }

  /* Widths */
  div.header, div.mainmenu, div.submenu, div.content, div.footer {
      max-width: 900px;
      margin: auto;
      padding: 3px 20px 3px 20px;
      clear: both;
  }

  /* The page title at the top of each page */
  div.title {
      font-size: 2em;
      float:left;
      font-weight: bold;
      margin: 10px 0 10px -20px;
      vertical-align: bottom;
      text-align: left;
      width: 80%;
      font-family: Georgia, serif;
      font-weight:normal;
  }

  div.title a {
      text-decoration:none;
      color: #333;
  }

  /* The login status message in the top right-hand corner */
  div.status {
      text-align: right;
      vertical-align: bottom;
      color: #333;
      margin-right: -20px;
  }

  /* The main menu bar that appears at the top of the page beneath
   ** the header */
  div.mainmenu {
      text-align: center;
      color: white;
      -moz-border-top-right-radius: 5px;
      -moz-border-top-left-radius: 5px;
      -webkit-border-top-right-radius: 5px;
      -webkit-border-top-left-radius: 5px;
      -border-top-right-radius: 5px;
      -border-top-left-radius: 5px;
      border-top-left-radius: 5px;
      border-top-right-radius: 5px;
      min-height: 2em;
      padding-top: 10px;
      background-color: #446979;
      background: -webkit-gradient(linear,left bottom,left top, color-stop(0.02, rgb(51,81,94)),  color-stop(0.76, rgb(85,129,149)));
      background: -moz-linear-gradient(center bottom,rgb(51,81,94) 2%, rgb(85,129,149) 76%);
      -webkit-box-shadow: 0px 3px 4px #333333;
      -moz-box-shadow: 0px 3px 4px #333333;
      box-shadow: 0px 3px 4px #333333;
  }

  /* The submenu bar that *sometimes* appears below the main menu */
  div.submenu {
      padding-top:10px;
      padding-bottom:0;
      text-align: right;
      color: #000;
      background-color: #fff;
      height: 1.5em;
      vertical-align:middle;
      -webkit-box-shadow: 0px 3px 4px #999;
      -moz-box-shadow: 0px 3px 4px #999;
      box-shadow: 0px 3px 4px #999;
  }
  div.mainmenu a, div.mainmenu a:visited {
      padding: 3px 10px 3px 10px;
      color: white;
      text-decoration: none;
  }
  div.submenu a, div.submenu a:visited a.button,
  div.sectionmenu>a.button:link, div.sectinmenu>a.button:visited {
      padding: 2px 8px;
      color: #000;
      font-family: Arial;
      text-decoration: none;
      margin:auto;
      -webkit-border-radius: 5px;
      -moz-border-radius: 5px;
      border-radius: 5px;
      background: -webkit-gradient(linear,left bottom, left top, color-stop(0, rgb(184,184,184)), color-stop(0.75, rgb(214,214,214)));
      background: -moz-linear-gradient(center bottom, rgb(184,184,184) 0%, rgb(214,214,214) 75%);
      background-color: #e0e0e0 ;
      text-shadow: 0px -1px 0px #eee;
      filter: dropshadow(color=#eeeeee, offx=0, offy=-1);
      border: 1px solid #000;
  }

  div.mainmenu a:hover {
      color: #000;
      background-color: white;
  }

  div.submenu a:hover, div.sectionmenu>a.button:hover {
      background: -webkit-gradient(linear,left bottom, left top, color-stop(0, rgb(214,214,214)), color-stop(0.75, rgb(184,184,184)));
      background: -moz-linear-gradient(center bottom, rgb(214,214,214) 0%, rgb(184,184,184) 75%);
      background-color: #c0c0c0 ;
  }

  /* All page content from the bottom of the menu or submenu down to
   ** the footer */
  div.content {
      background-color: #fff;
      -webkit-box-shadow: 0px 3px 4px #999;
      -moz-box-shadow: 0px 3px 4px #999;
      box-shadow: 0px 3px 4px #999;
      -moz-border-bottom-right-radius: 5px;
      -moz-border-bottom-left-radius: 5px;
      -webkit-border-bottom-right-radius: 5px;
      -webkit-border-bottom-left-radius: 5px;
      border-bottom-right-radius: 5px;
      border-bottom-left-radius: 5px;
      padding-bottom: 1em;
      min-height:40%;
  }


  /* Some pages have section dividers */
  div.section {
      margin-bottom: 0.5em;
      margin-top: 1em;
      margin-right: auto;

      padding: 1px 1px 1px 1px;
      font-size: 1.2em;
      font-weight: bold;

      text-align: center;
      color: white;

      -webkit-border-radius: 5px;
      -moz-border-radius: 5px;
      border-radius: 5px;

      background-color: #446979;
      background: -webkit-gradient(linear,left bottom,left top, color-stop(0.02, rgb(51,81,94)),  color-stop(0.76, rgb(85,129,149)));
      background: -moz-linear-gradient(center bottom,rgb(51,81,94) 2%, rgb(85,129,149) 76%);

      -webkit-box-shadow: 0px 3px 4px #333333;
      -moz-box-shadow: 0px 3px 4px #333333;
      box-shadow: 0px 3px 4px #333333;
  }

  /* The "Date" that occurs on the left hand side of timelines */
  div.divider {
      font-size: 1.2em; 
      font-family: Georgia, serif;
      font-weight: bold;
      margin-top: 1em;
      white-space: nowrap;
  }

  /* The footer at the very bottom of the page */
  div.footer {
      font-size: 0.9em;
      text-align: right;
      margin-bottom: 1em;
      color: #666;
  }

  /* Hyperlink colors in the footer */
  div.footer a { color: white; }
  div.footer a:link { color: white; }
  div.footer a:visited { color: white; }
  div.footer a:hover { background-color: white; color: #558195; }

  /* <verbatim> blocks */
  pre.verbatim, blockquote pre {
      font-family: Dejavu Sans Mono, Monaco, Lucida Console, monospace;
      background-color: #f3f3f3;
      padding: 0.5em;
      white-space: pre-wrap;
  }

  blockquote pre {
      border: 1px #000 dashed;
  }

  /* The label/value pairs on (for example) the ci page */
  table.label-value th {
      vertical-align: top;
      text-align: right;
      padding: 0.2ex 2ex;
  }


  table.report {
      border-collapse:collapse;
      border: 1px solid #999;
      margin: 1em 0 1em 0;
  }

  table.report tr th {
      padding: 3px 5px;
      text-transform : capitalize;
  }

  table.report tr td {
      padding: 3px 5px;
  }

  textarea {
      font-size: 1em;
  }

  /* Side-by-side diff */
  table.sbsdiff {
    background-color: white;
    font-family: Dejavu Sans Mono, Monaco, Lucida Console, monospace;
    font-size: 6pt;
    border-collapse:collapse;
    width: 98%;
    border: 1px #000 dashed;
    margin-left: auto;
    margin-right: auto;
  }

  table.sbsdiff th.diffhdr {
    border-bottom: dotted;
    border-width: 1px;
  }

  table.sbsdiff tr td {
    padding-left: 3px;
    padding-right: 3px;
    margin: 0px;
    vertical-align: top;
    white-space: pre-wrap;
  }

  table.sbsdiff tr td.lineno {
    text-align: right;
    /* border-bottom: 1px solid rgb(220, 220, 220); */
  }

  table.sbsdiff tr td.srcline {
    /* max-width: 400px; */
    /* Note: May partially hide long lines without whitespaces */
    /* overflow: hidden; */
    /* border-bottom: 1px solid rgb(220, 220, 220); */
  }

  table.sbsdiff tr td.meta {
    background-color: rgb(170, 160, 255);
    padding-top: 0.25em;
    padding-bottom: 0.25em;
    text-align: center;
    -moz-border-radius: 5px;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    -webkit-border-radius: 5px;
    -border-radius: 5px;
    -border-radius: 5px;
    border-radius: 5px;
    border-radius: 5px;
  }

  table.sbsdiff tr td.added {
    background-color: rgb(180, 250, 180);
    /* border-bottom: 1px solid rgb(160, 230, 160); */
  }

  table.sbsdiff tr td.removed {
    background-color: rgb(250, 130, 130);
    /* border-bottom: 1px solid rgb(230, 110, 110); */
  }

  table.sbsdiff tr td.changed {
    background-color: rgb(210, 210, 200);
    /* border-bottom: 1px solid rgb(190, 190, 180); */
  }


name: header
value:
  <html>
  <head>
  <base href="$baseurl/$current_page" />
  <title>$<project_name>: $<title></title>
  <link rel="alternate" type="application/rss+xml" title="RSS Feed"
        href="$home/timeline.rss" />
  <link rel="stylesheet" href="$home/style.css?default" type="text/css"
        media="screen" />
  </head>
  <body>
  <div class="header">
    <div class="logo">
      <img src="$home/logo" alt="logo" />
    </div>
    <div class="title"><small>$<project_name></small><br />$<title></div>
    <div class="status"><th1>
       if {[info exists login]} {
         puts "Logged in as $login"
       } else {
         puts "Not logged in"
       }
    </th1></div>
  </div>
  <div class="mainmenu"><th1>
  html "<a href='$home$index_page'>Home</a> "
  if {[anycap jor]} {
    html "<a href='$home/timeline'>Timeline</a> "
  }
  if {[hascap oh]} {
    html "<a href='$home/dir?ci=tip'>Files</a> "
  }
  if {[hascap o]} {
    html "<a href='$home/brlist'>Branches</a> "
    html "<a href='$home/taglist'>Tags</a> "
  }
  if {[hascap r]} {
    html "<a href='$home/reportlist'>Tickets</a> "
  }
  if {[hascap j]} {
    html "<a href='$home/wiki'>Wiki</a> "
  }
  if {[hascap s]} {
    html "<a href='$home/setup'>Admin</a> "
  } elseif {[hascap a]} {
    html "<a href='$home/setup_ulist'>Users</a> "
  }
  if {[info exists login]} {
    html "<a href='$home/login'>Logout</a> "
  } else {
    html "<a href='$home/login'>Login</a> "
  }
  </th1></div>


# reportfmt

title: All Tickets
cols:
  #ffffff Key:
  #f2dcdc Active
  #e8e8e8 Review
  #cfe8bd Fixed
  #bde5d6 Tested
  #cacae5 Deferred
  #c8c8c8 Closed

sqlcode:
  SELECT
    CASE WHEN status IN ('Open','Verified') THEN '#f2dcdc'
         WHEN status='Review' THEN '#e8e8e8'
         WHEN status='Fixed' THEN '#cfe8bd'
         WHEN status='Tested' THEN '#bde5d6'
         WHEN status='Deferred' THEN '#cacae5'
         ELSE '#c8c8c8' END AS 'bgcolor',
    substr(tkt_uuid,1,10) AS '#',
    datetime(tkt_mtime) AS 'mtime',
    type,
    status,
    subsystem,
    title
  FROM ticket


# event

type: ci
user: antirez
comment:
  Now there is implicit subst in expr's strings like expr {"foo $i" eq $bar}.
  More tests. A fix in the parsing code for line number calculation.


type: ci
user: antirez
comment:
  Jim_Alloc/Free now really exported.
  Literal sharing enabled in a more aggressive form.
  New object for var/index substution.


type: ci
user: patthoyts
comment:
  Added some more API functions, Beep, GetComputerName, SetComputerName,
  GetUserName, GetVersion, GetTickCount, GetSystemTime.


type: ci
user: antirez
comment:
  Foreach command! Thanks to Clemens.
  Also a patch about empty string and StringAppendString
  causing memory corruption, and a patch about Jim_WrongNumArgs
  that I modified because caused other tests to fail.


type: ci
user: antirez
comment:
  Change in design of the Jim STUBS system.
  Should avoid problems on Solaris, and apperas to be generally
  more sane about exported symbols restriction.


type: ci
user: patthoyts
comment:
  Added fledgling COM support for Win32. Unicode object and a Ole32 object types
  for managing ascii-unicode and IDispatch references.


type: ci
user: antirez
comment:
  A lot of changes to functions names of jim.c/h to reflect
  the STYLE file rules.
  More functions exported to the visible API.


type: ci
user: patthoyts
comment:
  Whitespace police and added new APIs. GetPerformaceInfo, LoadLibary,
  GetModuleFileName, GetModuleHandle and FreeLibrary.


type: ci
user: antirez
comment:
  JIM_LL_MODIFIER is now called JIM_WIDE_MODIFIER
  so that's set simply to "ld" if the system isn't
  64bit capable. This allows to remove few ifdefs from
  jim.c.


type: ci
user: patthoyts
comment:
  Can now create and relese objects and use ole32.invoke to call propert get on them.
  See the sample at the top of the file. NB: ONLY propget so far.


type: ci
user: antirez
comment:
  removed JIM_EXTENSION define from extensions. Is no longer
  useful because only the core has to defile __JIM_CORE__.

  Added ctype.h in jim-win32com.c.


type: ci
user: antirez
comment:
  shell and library splitted. Now jim.c contains only the
  language implementation, while the shell is into jimsh.c,
  that is actually the first example of embedder of Jim.

  Important changes in jim.h to make Jim play well with
  extensions/embedders at the same time, and to deal
  with multiple files.

  Extensions now must define JIM_EXTENSION before to include
  jim.h, embedders must define JIM_EMBEDDED before to include jim.h.


type: ci
user: patthoyts
comment:
  Moved the internal rep accessor macros and Jim_FreeIntRep into the header as
  they are useful to people writing new object types.
  Enabled calling COM methods, some object type bugs cleaned.


type: ci
user: patthoyts
comment:
  Exported the double object type to the API.
  Paranoid cleanup of unicode object type internal representation.


type: ci
user: antirez
comment:
  changes to the reference system. Now references string rep
  includes a 'tag' that makes interactive usage and debugging
  simpler.


type: ci
user: antirez
comment:
  improtant fix! jim error message visualization was broken
  because Jim_PrintErrorMessage() was not exported using
  the right funciton pointer.


type: ci
user: antirez
comment:
  Made exporting of symbols to the API less error prone
  with JIM_REGISTER_API and JIM_GET_API macros.


type: ci
user: patthoyts
comment:
  Use command line vars in the Makefile.
  Make const quiet with gcc -Wwrite-strings
  Fixed macro usage in COM extension that gcc doesn't like.


type: ci
user: antirez
comment:
  jim::libpath renamed into jim.libpath. Also there was a bug listed
  in the BUG file about jim.libpath lookup performed using the local
  variable API that's now fixed. In order to fix the problem the new
  API call Jim_GetGlobalVariableStr() was added.
  Jim_GetVariableStr() and Jim_GetGlobalVariableStr() are now exported.


type: ci
user: patthoyts
comment:
  Added ole32.foreach command, changed creation to ole32.create.
  Added support for dealing with returned ole32 obejcts.
  Couple of const fixes in jim core.


type: ci
user: antirez
comment:
  [switch] command contributed by Clemens Hintze, modified to
  avoid problems with -command and shimmering of the objects
  passed as [switch] arguments.


type: ci
user: antirez
comment:
  removed strcasecmp() and isascii(). Now the Jim core is fully
  ANSI-C excluding the [load] command. I plan to add a JIM_FORCE_ANSIC
  ifdef to exclude the load command for compilation.


type: ci
user: patthoyts
comment:
  Added Jim_GetAssocData api. This for permitting packages to register a
  data structure with a Jim interpreter.


type: ci
user: antirez
comment:
  delProc callback added to Jim_CreateCommand().
  Core commands handling updated to respect the new sematic.


type: ci
user: antirez
comment:
  Initial version of AIO (ANSI C I/O) extension added.
  Some bit of const safeness. A new API function to get the object
  length, Jim_Length().


type: ci
user: antirez
comment:
  Added Jim_GetEnum() API function. StringCoreCommand and AIO extension
  modified to use this API. There are plenty of other places where this
  will work better than the raw CompareStringImmediate().
  Original idea from Tcl, Original implementation from Pat Thoyts,
  I changed the implementationto use CSI and for automatic error generation
  with all the valid options listed.


type: ci
user: antirez
comment:
  Fixed a race condition in the garbage collection code.
  In order to fix this, now the hash table iterator works in a way
  that's save to delete returned entries during the iteration.


type: ci
user: antirez
comment:
  A specializing version of [for] that appears able to match the
  performaces of Tcl8.4 for the specialized forms. The implementation
  is a bit complex so may contain bugs... to handle with care.
  Also a [for] bug about [continue] was fixed and the regression test added.


type: ci
user: antirez
comment:
  specializing version of while (still not complete, but already
  handles most of the cases that it's worth to optimize).


type: ci
user: patthoyts
comment:
  Refactored the [info] command and added body and version to the command.
  Added a simple version of [lsort] (no options yet).


type: ci
user: antirez
comment:
  [lsort] command and list sorting low-level functions (Pat Thoyts).
  Speedup for floating point math (me).


type: ci
user: antirez
comment:
  Added "increasing", "decreasing", "ascii", "nocase" options
  to lsort (SS). The plan is to don't add more options than this,
  but -command, and put "dictionary style" comparison in [string dictcompare].


type: ci
user: antirez
comment:
  Faster procedure calls (obtained caching the hashtable, and with
  a fast path to free the cached hash tables elements).


type: ci
user: antirez
comment:
  Applied patch about unset a(x) against non existing 'a' variable
  (Clemens Hintze). Dictionary handling code and error messages
  modified a bit (me).


type: ci
user: patthoyts
comment:
  Added [info patchlevel] and setup argv0 and argv variables in jimsh.
  Changed Jim_InteractivePrompt to take a pre-initialized interpreter.


type: ci
user: patthoyts
comment:
  JIM_VERSION is to be an integer value which we present as MAJOR.MINOR to
  users. MAJOR is JIM_VERSION / 100


type: ci
user: antirez
comment:
  Did some fix in jimsh.c, exported some more API function to set
  variables and global variables using a string C as name instead
  of a Jim_Obj. This is more handy in mani conditions.


type: ci
user: antirez
comment:
  [linsert] command added (Clemens Hintze).
  Jim_GetIndex() semantic changed to make [lindex] more compatible
  with Tcl's one, without effects on other commnads (me).


type: ci
user: antirez
comment:
  Fix about [rename] against procedures with statics.
  Added a regression test to test.tcl
  (I plan to move everything inside regtest.tcl into test.tcl).


type: ci
user: antirez
comment:
  default Makefile optimization level set to -O2 again.
  I committed a Makefile with -Os for an error. (me)


type: ci
user: antirez
comment:
  Converted some free() call to Jim_Free(). Actually Jim_Free
  is a macro that just expands to free for now, but in the future
  Jim may include a specialized allocator for better performances.


type: ci
user: antirez
comment:
  Modified Jim_Free() to be more strict, now it panics if the
  refcount of the object is not exactly 0.
  Now new objects that are not used may be freed using Jim_Free
  instead to use Jim_IncrRefCount() + Jim_DecrRefCount() calls.


type: ci
user: antirez
comment:
  It's now possible to exclude compilation of dynamic loaded
  libraries commenting the JIM_DYNLIB define from the first
  lines of jim.c.


type: ci
user: antirez
comment:
  Added the Jim_FreeNewObj() macro to free objects with refcount == 0
  instead to call Jim_IncrRefCount + Jim_DecrRefCount(), or directly
  Jim_FreeObj(). Code modified accordingly where needed.
  Make test + valgrind test passed after the change.


type: ci
user: antirez
comment:
  Removed the inclusion of a not-needed header file "sys/time.h"
  that prevented compilation with JIM_ANSIC under non POSIX systems.


type: ci
user: antirez
comment:
  [env] modified to just be able to read a specified var name
  form the environment, i.e. to be ANSI-C.

  Minor fix to AIO extension to use the new DelProc API.


type: ci
user: antirez
comment:
  The interactive prompt can now used to type/paste multi line scripts.
  Every line is appended to the previous until the script does not appear
  to be complete (tested by Jim_IsScriptComplete()).


type: ci
user: antirez
comment:
  Applied PATCH #389
  "debug command is missing NULL terminator in options :)"
  Thanks to Jaen Saul for report + patch.


type: ci
user: chi
comment:
  Add the [scan] command and the Jim_ScanString function + tests.

    The scanformat specification will be converted to a new Jim_Obj of type
  scanFormatStringObjType, that will contain the parsed representation within
  its internal object representation. This speed up multiple scanning within
  e.g. a loop, of objects were cached.

    For internal scanning we use sscanf currently (I am lazy right now). That
  means also, we will inherit its incapability to handle string with embedded
  ZERO. It would be not too difficult to implement another scanner just for
  the string and charset conversion type that could be able to handle those
  embedded ZEROs, however.

  Furthermore two small details were fixed:

  1. Jim_DoubleToString should also recognize a number if a leading '+' or
     '-' occured. By recognizing I mean, add a ".0" to such a number.

  2. Jim_StrDupLen should also properly handle duplication of substrings. So
     now it should be possible to do this:

       const char *str1 = "This is a long string";
       char *substr1 = Jim_StrDupLen(str1, 4);

     Now substr1 should contain a properly ZERO ended "This".


type: ci
user: antirez
comment:
  A number of fix for commands optimizing a bit too much objects
  not shared, that didn't played very well with Jim arrays.
  Added the [rand] command.


type: ci
user: antirez
comment:
  First fix for [rand]. More later as there is an evident bias due to
  some programming error probably.


type: ci
user: antirez
comment:
  random number generator fixed. Was a problem with the initialization
  of the sbox. (see prev CVS commit comment.)


type: ci
user: antirez
comment:
  Some change in the standard library, a bug about [info body/args]
  fixed. some commented work in progress for exposing the Jim parse
  at script level. Default compilation set to -Os again.


type: ci
user: antirez
comment:
  [memoize] is now inside the Jim Standard Library!
  More info here: http://wiki.tcl.tk/10981
  Our version uses a static var to take state instead of
  a global var, for the rest it is the same.


type: ci
user: antirez
comment:
  .jimrc support (or jimrc.tcl). Minimal readline extension, just enough
  to allow to the pure-Jim rlprompt extension to provide a readline-aware
  interactive shell with history.


type: ci
user: antirez
comment:
  Disabled from jim-win32.c commands that need include <psapi.h>
  because this is not generally available.


type: ci
user: patthoyts
comment:
  Made GetPerformanceInfo dynamically available at runtime only if the
  relevant library can be loaded. Fixed for impoverished compilers.


type: ci
user: antirez
comment:
  Modified jimsh.c in order to put the directory of the Jim executable
  as a component of jim_libpath.


type: ci
user: antirez
comment:
  The ** expr operator, thanks to Richard Suchenwirth.
  Limited to integers because pow() needs the inclusion of math.h.
  The plan is to put everything depends on math.h in the math lib.


type: ci
user: antirez
comment:
  Experimental verison of JIM_EVAL retcode in order to implement
  what RHS proposed in the Wiki for tail recursion:

  return -code eval [list proc $a $b ...]

  I'm not sure I'll take this, but it needs to be inside for some
  time in order to experiment and evaluate it I guess.


type: ci
user: chi
comment:
  Rework of the [scan] command finished. It does not any longer use
  sscanf for scanning purposes, only for parsing within
  SetScanFmtFromAny. We could get rid of it there too, if necessary.

  It pass all tests on all platforms I had access to (mainly Linux,
  Solaris, FreeBSD, MacOS X). But I am confident, that it will pass on
  the others as well.

  A small new introduced C99-ism was fixed in jimsh.c as well.


type: ci
user: antirez
comment:
  Fixes for this two bugs:

  (1) jim.c   Jim_FormatString()
        char array spec[] is defined as having two elements but at the
  'default:' case of the switch statement an assignment is made to the
  third element

  (2) jimsh.c  JimGetExePath()
        After the call of strrchr() the value of p could be NULL in the
  case that argv[0] is just plain "jim". The next line should have a test
  for NULL added to avoid dereferencing the NULL pointer.  (This is the
  cause of a Bus Error on Mac OS X.)

  Many thanks to Colin McPhail for reporting this two problems.


type: ci
user: chi
comment:
  - Remove the '%lu' scan format specification. The largest possible type
    in the Jim core is jim_wide. That type is a signed one. A unsigned
    variante of jim_wide is not forseen. So a '%lu' specification seems not
    to make any sense.

  - Some extra castings necessary to let the Jim core interpreter compile and
    run under Tru64U on Dec Alpha.

  - Fix a bug in UpdateStringOfList(). If a list was created via the Jim
    command [list] w/o any argument, the internal representation of that list
    pointed to ZERO and the len attribute was equally set to ZERO. If now
    UpdateStringOfList was called to create the string representation of
    the list, Jim_Alloc for quotingType got a ZERO size for number of bytes
    to allocate. That let to SIGSEGV under Tru64U, so I changed that to
    allocate at least 1 byte then.


type: ci
user: patthoyts
comment:
  Win32API module permits dynamic creation of Jim commands that call into
  Win32 DLL functions. Its not complete and at the moment only void or integer
  parameters are working.


type: ci
user: antirez
comment:
  First version of the Jim eventloop extension, exporting
  [after], [vwait], and the C API to write other extensions using
  events. No win32 port for now, just posix. UDP extension will follow
  shortly and will be the first extension using the event loop.


type: ci
user: patthoyts
comment:
  Added some window managing APIs - MoveWindow, ShowWindow, DestroyWindow and
  AnimateWindow (which doesn't seem to work).


type: ci
user: antirez
comment:
  Fix to expr parsing (now hex digits work as literals).
  the exit command is now implemented as a special return
  value of JIM_EXIT.


type: ci
user: antirez
comment:
  Ability to configure file descriptors for standard input, output, error.
  Default is stdin,stdout,stderr but it's possible to change the default
  after creating the interpreter using Jim_(Set|Get)(Stdin|Stdout|Stderr)
  if needed.


type: ci
user: antirez
comment:
  Jim-aio is now able to be statically linked with jim.c
  on systems like eCos where there is no dynamic libraries
  support.


type: ci
user: antirez
comment:
  Jim_GetStdin/out/err API removed, now Jim-SetStdin/out/err returns the old value if called with NULL. JIM_NL define introduced in order to force Jim to output CRLF instead of just LF in the core output printf/fwrite calls. This appears to be useful in some kind of terminal under eCos.


type: ci
user: antirez
comment:
  Fixed a bug with proc lookup caching. Now the proc epoch is updated when a
  procedure having the same name of an old one is created, as this will
  drop the old and create the new invalidating the cached proc lookups.


type: ci
user: patthoyts
comment:
  Fixed the stdio declarations to work on Windows and likely on Solaris.
  A number of MSVC related fixes including support for creating a jim dll


type: ci
user: oharboe
comment:
  	* ChangeLog, jim.c: realloc/malloc(0) fix. Convert
  	realloc/malloc(0) => realloc/malloc(1) which has an
  	identical implementation, whereas realloc/malloc(0) is
  	ambigous. "string map {} {}" used to result in malloc(0)


type: ci
user: oharboe
comment:
  	* ChangeLog, jim-aio.c: Andrew spotted a bug in the
  	aio.gets implementation for lines that are more than
  	AIO_BUF_LEN long. GCC 4.3.1 pointed out this problem.


type: ci
user: oharboe
comment:
  src/Jim.c
  	- ** THIS INCLUDES A PREVIOUS PATCH I SENT EARLIER **
  	- that impliments many [format] specifies JIM did not support.
  	- Jim_FormatString() - **MAJOR** work.
  	- Previously only supported "%s" "%d" and "%c"
  	- And what support existed had bugs.
  	- NEW: *MANY* formating parameters are now supported.
  	- TODO: The "precision" specifier is not supported.

  	** NEW ** This patch.

  	- Jim_StringToWide() test if no conversion occured.
  	- Jim_StringToIndex() test if no conversion occured.
  	- Jim_StringToDouble() test if no conversion occured.

  	** NEW ** This Patch. Major Work.
  	- Previously output from JIM did not get sent to GDB
  	- Ditto: Output to Telnet session.
  	- Above items are now fixed - By introducing callbacks
  	  new function pointers in the "interp" structure.

  	- Helpers that call the callbacks.

  	- New function: Jim_fprintf()
  	- New function: Jim_vfprintf()
  	- New function: Jim_fwrite()
  	- New function: Jim_fread()
  	- New function: Jim_fflush()
  	- New function: Jim_fgets()

  	By default: the output is to STDIO as previous.
  	The "openocd.c" - redirects the output as needed.

  	- Jim_Panic() - Send panic to both STDERR and the interps
  	specified STDERR output as a 2nd choice.

  	- Now JIM's "stdin/stdout/stderr" paramters are "void *"
  	and are no longer "FILE *".

  src/Jim.h
  	- **MAJOR**
  	-  New JIM STDIO callbacks in the "interp" structure.
  	-  change: "stdin/stdout/stderr" are now "void *" cookies.
  	-  New JIM stdio helper functions.


type: ci
user: oharboe
comment:
  2008-07-07 Duane Ellis <openocd@duaneellis.com>

  src/jim.c: This simple patch adds precision support to JIM's format command.


type: ci
user: oharboe
comment:
  	* changes to jim-eventloop.[ch]
  	* fix negative displacement in timeout computation for select
  	* add basic support for the fileevent stuff [ used from jim-aio ]
  	* add basic support for signal handling / actions
  	* add basic support for timer [via after] restart, cancel
  	   and returning the remaining time for cancled events


type: ci
user: oharboe
comment:
  2008-07-13 Uwe Klein <uklein@klein-messgeraete.de>

  	* jim.c: in Jim_SubstObj in the switch for tokentype
  	  case: JIM_TT_DICTSUGAR and
  	  accompanying code was missing.


type: ci
user: oharboe
comment:
  2008-07-13 Uwe Klein <uklein@klein-messgeraete.de>

  	* This adds open async, fileevents and sockets ( tcp server, client )
  	  to jim-aio, using fileevents requires the jim-eventloop package .


type: ci
user: oharboe
comment:
  	* signals ( not complete , no eventscripts yet ) sleep and usleep
  	   [pit] point in time and [jpit] julian point in time.


type: ci
user: oharboe
comment:
  2008-07-13 Uwe Klein <uklein@klein-messgeraete.de>

  	* doc/jim_man.txt : an overlook over jim command basics
  	   and the added commands. incomplete, additions welcome.


type: ci
user: oharboe
comment:
  	* jim.c: reduce stack usage. Important for embedded devices without
  	MMU.
  	* jim.c, jim-aio.c, jim-eventloop.c, jim-eventloop.h: emergency repairs
  	to make code compile with eCos after event loops was added. event loop
  	stuff compiles under eCos at least, but this was not tested for regressions.


type: ci
user: oharboe
comment:
  Uwe Klein:

  	* fix missing vararg.h in some files ( included in jim.h )
  	* in aio.socket return an error when hosti resolution fails
  	   instead of just carrying on.


type: ci
user: oharboe
comment:
  2008-11-03 Steve Bennett <steveb@workware.net.au>

  	* Allow env with no arguments to retrieve all environment variables
  	as a list of name value ...
  	* Add format support for %o -- octal
  	* Allow direct access to variables in the global scope by
  	prefixing with ::
  	* For compatibility with older versions of Tcl, allow == and != to
  	compare strings if the arguments can't be interpreted as numbers
  	* Ensure that the string representation exists before doing
  	string toupper or tolower


type: ci
user: oharboe
comment:
  2008-11-04 Steve Bennett <steveb@workware.net.au>

  	* jim.c: fix problems with "puts [list ${a}]". Resulted in syntax
  	error.
  	* jim.c: :: scoping for set
  	* jim.c: Creating a C command when a Tcl command of the same name
  	already exists can cause a crash.


type: ci
user: oharboe
comment:
  2008-11-05 Steve Bennett <steveb@workware.net.au>

  	* jim.c: fix lazy expression evaluation with unary not


type: ci
user: oharboe
comment:
  2008-11-04 Uwe Klein <uklein@klein-messgeraete.de>

       * jim-hwio.c: file added
       * provides memory area and hardware access on linux i386


type: ci
user: oharboe
comment:
  2008-11-05 Steve Bennett <steveb@workware.net.au>

  	* jim-regexp.c: Add regexp extension for regexp and regsub commands


type: ci
user: oharboe
comment:
  2008-11-05 Steve Bennett <steveb@workware.net.au>

  	* jim-glob-1.0.tcl, jim-readdir.c: Add readdir extension and glob package for glob command


type: ci
user: oharboe
comment:
  2008-11-06 Steve Bennett <steveb@workware.net.au>

  	* jim-array-1.0.tcl: Add array command wrapper

  2008-11-05 Steve Bennett <steveb@workware.net.au>

  	* jim-glob-1.0.tcl, jim-readdir.c: Add readdir extension and glob package for glob command


type: ci
user: oharboe
comment:
  2008-11-06 Steve Bennett <steveb@workware.net.au>

  	* jim.c, jim.h: Improve error reporting, especially on package load


type: ci
user: oharboe
comment:
  2008-11-06 Steve Bennett <steveb@workware.net.au>

  	* jim.c: Implement info hostname by calling os.hostname
  	* jim.c: Also fix some compiler warnings


type: ci
user: oharboe
comment:
  2009-08-16 Steve Bennett <steveb@workware.net.au>

  	* jim.c:  'unset ::var' to unset a global var.
   	It was doing nothing.


type: ci
user: oharboe
comment:
  2009-08-16 Steve Bennett <steveb@workware.net.au>

  	* jim.c: Should be able to compare strings for order in expr


type: ci
user: oharboe
comment:
  2009-08-16 Steve Bennett <steveb@workware.net.au>

  	* jim.c: Some recursion in unknown is OK, just not infinite recursion.


type: ci
user: oharboe
comment:
  2009-08-16 Steve Bennett <steveb@workware.net.au>

  	* jim.c: Make [format %c 0] work (embedded nulls)


type: ci
user: oharboe
comment:
  2009-08-16 Steve Bennett <steveb@workware.net.au>

  	* jimsh.c: A script exiting with 'exit 0' would not give a return code of 0


type: ci
user: oharboe
comment:
  2009-08-16 Steve Bennett <steveb@workware.net.au>

  	* jim.c/h: If an object is used in subst, then source, a crash will result


type: ci
user: oharboe
comment:
  2009-08-16 Steve Bennett <steveb@workware.net.au>

  	* jim.c: If an error occurs when {expand} is in operation, the line number is wrong.


type: ci
user: oharboe
comment:
  2009-08-16 Steve Bennett <steveb@workware.net.au>

  	* jim.c: Comparison of doubles is a boolean, not a double. expr {0.5 < 1.0}


type: ci
user: oharboe
comment:
  2009-10-08 Øyvind Harboe

  	* jim.c/h: bring in changes from OpenOCD. Warnings and
  	some bug fixes. Copyright list updated in jim.c


type: ci
user: oyvind.harboe@zylin.com
comment:
  errors: improve stack traces for return -code error

  the file and line number for return -code error's are
  now added to the dumped stack trace.

  Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>


type: ci
user: oyvind.harboe@zylin.com
comment:
  freebsd: make it compile

  Casts to (void) are in order to silent GCC about unused variables.
  I didn't want to break ABI for the sake of clean compilation

  Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>


type: ci
user: oyvind.harboe@zylin.com
comment:
  makefile: target to implement Jim as a shared library

  Useful when developing Jim-based sample applications.

  Tested on FreeBSD.

  Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>


type: ci
user: wkoszek@laptop.freebsd.czest.pl
comment:
  If three arguments are passed to 'puts' and the second isn't -nonewline,
  return JIM_ERR instead of JIM_OK.


type: ci
user: oyvind.harboe@zylin.com
comment:
  Make jim.c clean enough to be able to build it with -pedantic on
  FreeBSD.

  Added uintptr_t for eCos.


type: ci
user: oyvind.harboe@zylin.com
comment:
  Correct the way in which we build shared library. This should silence all
  warnings on GNU/Linux systems. While being here, make "libjim" a meta target
  and generate a library in "libjim.so" target.


type: ci
user: oyvind.harboe@zylin.com
comment:
  Bring correct license -- I think freebsd/ directory has an agreements
  for relicensing all files within Jim project.

  "FreeBSD license" isn't correct term, so basically remove it.

  Try to make the whole place consistent.


type: ci
user: oyvind.harboe@zylin.com
comment:
  Revert "Bring correct license -- I think freebsd/ directory has an agreements"

  This reverts commit 1e2fdd7d9e877fbe2c88a4c32f098ce1e575dc1d.


type: ci
user: oyvind.harboe@zylin.com
comment:
  Bring corrected license as mentioned in freebsd/...

  Remove "FreeBSD license" statements, since it's not a correct term
  I believe.

  Small cleanup while being here.


type: ci
user: oyvind.harboe@zylin.com
comment:
  dos2unix: convert to unix line endings

  To ease rebasing

  Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>


type: ci
user: oyvind.harboe@zylin.com
comment:
  ecos: eCos has 64 bit integers

  jim_wide is now 64 bit under eCos.

  Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>


type: ci
user: oyvind.harboe@zylin.com
comment:
  lists: fix crash in ListInsertElements

  It wasn't added to the API list => NPE

  JIM_REGISTER_API(ListInsertElements);

  Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>


type: ci
user: steveb@workware.net.au
comment:
  Cutover to new workware fork of Jim Tcl

  Note that this commit removes some files and undoes
  some commits which will be reapplied later.
  This is the easiest way to switch across.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add more tcl6 compatibilities

  - string trim, trimleft, trimright
  - lsort -command, -integer
  - fix 'unset ::var'


type: ci
user: steveb@workware.net.au
comment:
  Default to using all extensions with no external dependencies

  This excludes sqlite*, sdl, readline
  Also create C extensions from pure Tcl extensions
  Always enable -DJIM_TCL_COMPAT for now


type: ci
user: steveb@workware.net.au
comment:
  Lots of improvements

  jim
  ---
  Add a unique id facility to jim (Jim_GetId())
  Remove unused jim_vasprintf(), Jim_AppendString_sprintf()
  Remove duplicate output in Jim_Panic()
  Add support for catch -signal

  aio
  ---
  Use this for aio handles
  aio automatically creates stdin, stdout and stderr channels
  Jim_AioFilehandle() returns the 'FILE *' filehandle for a channel
  If JIM_TCL_COMPAT is set, create top level open, close, read, puts, etc.

  load
  ----
  load core command split out into jim-load.c

  package
  -------
  package core command split out into jim-package.c
  added 'package list'

  posix
  -----
  Remove os.sleep, os.usleep, os.sethostname, os.signal, pit, Jpit
  Most of these are in 'signal'


type: ci
user: steveb@workware.net.au
comment:
  tcl6 no longer needs stdio or autoload

  aio now does Tcl6 stdio automatically
  glob and array are autoloaded as static extensions if available


type: ci
user: steveb@workware.net.au
comment:
  Small improvements

  Save (but then cleanup) generated extensions
  Add package and readdir to 'all' extensions
  Order of static extensions matters!!
  Simple C define support for configured extensions
  Fix some compiler warnings


type: ci
user: steveb@workware.net.au
comment:
  Convert package to use jim-subcmd

  Also, no need to install tcl extensions
  Display any errors from loading static extensions


type: ci
user: steveb@workware.net.au
comment:
  Convert jim-aio.c to use subcmd

  Also:
  - make stream.server set SO_REUSEADDR
  - do object reference properly for callbacks
  - white space cleanup in jim-eventloop.c
  - fix the pwd command
  - add support for JIM_MODFLAG_FULLARGV to subcmd
  - make verbose runtests easier to read
  - bio might not be available


type: ci
user: steveb@workware.net.au
comment:
  Fix some runtime errors

  Need to duplicate a possibly shared object when loading a package fails
  Need to initialise signal-related fields in the jim interp
  Return an error from 'lsort -command' on failure


type: ci
user: steveb@workware.net.au
comment:
  Build fixes, better Jim_EvalFile()

  *: make-c-ext is now make-c-ext.tcl
  *: build doc/Tcl.html with asciidoc
  *: Jim_SetIntResult -> Jim_SetResultInt
  *: Jim_EvalFile() now reads the file contents in one go


type: ci
user: steveb@workware.net.au
comment:
  Fix 'unset ::var' to unset a global var

  It was doing nothing.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Should be able to compare strings for order in expr

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix exit code from jimsh

  A script exiting with 'exit 0' would not give a return code of 0

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix crash in subst

  If an object is used in subst, then source, a crash will result

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Line numbers wrong with {expamd}

  If an error occurs when {expand} is in operation, the line number is wrong.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Comparison of doubles is a boolean.

  Not a double. expr {0.5 < 1.0}

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a couple of small bugs

  *: Need to null terminate the buffer in Jim_EvalFile()
  *: If an object is used a subst and a script, a crash will result.

    set x abc
    subst $x
    eval $x

  ------------------------------------------------------------------------


type: ci
user: steveb@workware.net.au
comment:
  Implement some new features

  Implement 'lreplace'
  Implement 'string last'
  Implement 'pid'
  Implement 'info procs'
  Implement 'info script'
  Implement 'info patchlevel' as an alias for 'info version'
  Implement syslog extensions for jim
  Fix return code display in jim-interactive.c
  Make jim more compatible if JIM_TCL_COMPAT is set
  *: Use tcl_interactive rather than jim_interactive
  *: Use auto_path rather than jim_libpath
  Add "." to the lib search path, not "./"
  Fix a couple of files with CRLF line endings


type: ci
user: steveb@workware.net.au
comment:
  Enhance exec, bio

  Support @filehandle syntax
  Support for nommu
  Disable os.fork for nommu
  Remove trailing newline
  No need for binary escaping in bio module
  ------------------------------------------------------------------------


type: ci
user: steveb@workware.net.au
comment:
  Rework/improve jim subcmd handling

  *: -usage and  -help do not generate an error
  *: -help <cmd> where the cmd is invalid now generates a correct response
  *: Add Jim_CheckCmdUsage() so top level commands can also be checked and print usage
  *: Fix the FULLARGV flag which was accidently set to the same value as the HIDDEN flag
  *: If -help is specified for an invalid or amibiguous subcmd, show all commands

  ------------------------------------------------------------------------


type: ci
user: steveb@workware.net.au
comment:
  Fix a couple of bugs

  Fix unset ::var properly this time
  Ensure that jimsh exits with the correct exit code
  *: Previously a script that did 'exit 0' would exit with 7!


type: ci
user: steveb@workware.net.au
comment:
  Improve error handling

  *: Improve stack trace handling on errors
  *: Add 'info source'
  *: Add 'info stacktrace'
  *: Add errorInfo procedure to generate a human readable stack trace
  *: Add tests for stacktrace

  ------------------------------------------------------------------------


type: ci
user: steveb@workware.net.au
comment:
  Bugs and tests

  jimsh argv0 was wrong
  *: Should be the name of the script when run non-interactively
  Missed adding jim.h changes for errorProc
  Add lsort -command tests to jim/tests
  Handle the case of a script with no tokens

  ------------------------------------------------------------------------


type: ci
user: steveb@workware.net.au
comment:
  Implement tree package

  Similar to tcllib ::struct::tree

  ------------------------------------------------------------------------


type: ci
user: steveb@workware.net.au
comment:
  Bugs, features, tests

  The result of boolean ops on doubles is an int
  *: e.g. 0.5 < 0.1 should be 0, not 0.1
  Implement jimsh -e <cmd>
  Allow jim to be built in a different location
  *: e.g. mkdir build; cd build; ../configure ...; make jimsh
  Add dict.test


type: ci
user: steveb@workware.net.au
comment:
  Build improvements

  Fix for make-c-ext to allow jim to build in a different dir
  Use a sh-based make-c-ext
  *: No need to leave one remaining host tcl dependency

  ------------------------------------------------------------------------


type: ci
user: steveb@workware.net.au
comment:
  Bugs, features and tests

  source fails with zero length file
  unknown can't be called recursively
  *: This can be useful when using unknown to dynamically load code,
     which may in turn want to dynamically load code
  *: Limit it to 50 recursions though
  Allow string greater/less comparison
  *: Comparing two strings for order did not work
  Implement file join
  *: It's not to hard and is handy when working with the current dir, ""
  Don't omit [unknown] completely from stack trace
  *: Since we lose valuable informtion, just omit the name
  Fix return from case
  Turn regexp patterns into real objects
  *: Thus caching the compiled regexps
  Allow error to rethrow an error
  Replace bcopy() with more standard memcpy()
  Fixes to parray, improve errorInfo
  *: errorInfo takes an optional stack trace
  Add tests for rethrowing errors via errorInfo
  Fix ndelay
  *: Was looking at wrong param
  *: Also fix usage/help for aio.socket
  Package should be able to call exit
  *: Currently any return from a package is changed to JIM_ERR
  Line counting is incorrect for backlash newline


type: ci
user: steveb@workware.net.au
comment:
  Improve expression support

  Especially ternary operator and unary minus
  Still evaluates both sides of the ternary operator :-(
  Fix unary minus
  And add const in more places to avoid this mistake in future


type: ci
user: steveb@workware.net.au
comment:
  Fix a couple of bugs

  format %.0f was wrong
  Minor bug in [string trimright]
  *: When the string was empty, a read was done of str[-1]

  ------------------------------------------------------------------------


type: ci
user: steveb@workware.net.au
comment:
  jimsh improvements plus documentation

  Add /lib/jim to the default auto_path
  *: Otherwise there is no 'standard' location to install packages
  Prompt should show name for all non-zero return types
  Initial documentation for Jim

  ------------------------------------------------------------------------


type: ci
user: steveb@workware.net.au
comment:
  Implement unix domain sockets for socket

  *: aio.socket now supports unix and unix.server
  *: Also, rename aio.open as open and aio.socket as socket


type: ci
user: steveb@workware.net.au
comment:
  Build improvements

  Add bio to list of default jim packages
  *: And include all extensions by default
  Don't bother to require readdir in glob

  ------------------------------------------------------------------------


type: ci
user: steveb@workware.net.au
comment:
  exec fixes, add os.wait

  Ensure that exec returns an error if appropriate
  Background exec returns a list of pids
  Need to close error filedescriptor
  Add os.wait


type: ci
user: steveb@workware.net.au
comment:
  Build improvements, bug fixes and compiler warnings

  Remove unimplemented 'after restart|expire' from eventloop
  Allow libjim to be build as a shared library
  On some platforms, regex.h needs stdlib.h first
  Use ualarm() only for times < 1 second
  Fix warnings found by clang static analyser
  *: printf/syslog %m isn't portable
  *: some variables set but never read
  *: some possible null pointer references (although mostly impossible)
  *: also minor fixes to jim unit tests
  Fix 'syslog -options <n>'
  Must null terminate readlink() result


type: ci
user: steveb@workware.net.au
comment:
  Enhance env, fix error messages

  env command allows a default to be supplied
  Fix wrong 'file rename' error message


type: ci
user: steveb@workware.net.au
comment:
  Fix time, bump version

  time should return wall time, not cpu time (Tcl compatible)
  Bump version to 0.61

  ------------------------------------------------------------------------


type: ci
user: steveb@workware.net.au
comment:
  Bug fixes, documentation updates

  jimsh - retry on EINTR from fgets()
  Fix 0 -> NULL for 64 bit systems
  Fix overlapping memcpy
  Fix jim array dereferencing bug
  *: Counting of parentheses was incorrect with nested array references
  *: The result for array dereference wasn't being used properly
  Add os.uptime command
  Documentation: autogenerated command index
  Fix gets when last line has no newline


type: ci
user: steveb@workware.net.au
comment:
  Improvements to 'scan'

  Use libc strtoull() for long long conversions
  Also some white space cleanup
  Also remove some win32 vestiges
  Also improve error messages for array access errors


type: ci
user: steveb@workware.net.au
comment:
  Tests, ehancements and bug fixes for exec

  Add Tcl tests for exec
  Fix some errors exposed by these tests
  Add support for >&, >>&, |&


type: ci
user: steveb@workware.net.au
comment:
  Bugs, features, tests

  Subst was broken for backslash escapes
  Add support for return, break, continue in subst commands
  Accept abbreviations for switches to subst
  Fix 'list #'
  More tests


type: ci
user: steveb@workware.net.au
comment:
  Fix many problem with expr evaluation

  *: Import Tcl expr tests (expr-old.test) and fix things:
  *: !double should be boolean (int)
  *: double&&double and double||double should be boolean (int)
  *: 2.34e+1 and 2.0e2 are an acceptable double values
  *: precedence of && and || is not equal
  *: precedence of ? and : is not equal
  *: expression "2:3" is invalid
  *: lazy evaluation involving multiple && and || was quite wrong
  *: Fix unary minus wrt subexpressions. e.g. -(-1.5)
  *: Also add support for functions: int, double, abs, round
  *: Fix lazy evaluation of ternary operator
  *: Error on missing ?, missing :
  *: Fix double unary minus
  *: Add unary plus
  *: Fix parsing of double with no '.' before 'e'. Also support 'E'.
  *: Right-to-left associativity of ternary operator is *almost* correct
  *: Import div/mod of -ve integers from Tcl
  *: Rotate (<<< and >>>) failed because of wrong arity
  *: Don't use auto-converted double values
  *: When an expression fails, show the expression
  *: Bump version to 0.62


type: ci
user: steveb@workware.net.au
comment:
  Allow regsub to return the result as a string

  From Tcl 8.4 (see TIP 76: http://www.tcl.tk/cgi-bin/tct/tip/76.html)


type: ci
user: steveb@workware.net.au
comment:
  Simplify handling of {expand}

  *: Detect it during tokenisation rather than afterwards
  *: Create a special token for it
  *: Also create most tokens as JIM_TT_STR rather than JIM_TT_ESC


type: ci
user: steveb@workware.net.au
comment:
  Revert "Simplify handling of {expand}"

  This reverts commit 3201b17708d278541b66962045b68f9b0687c1dc.


type: ci
user: steveb@workware.net.au
comment:
  New features, docs

  Implement lsearch in C with options
  *: lsearch -exact, -glob, -regexp, -not, -bool, -all, -inline
  Add tests for lsearch and expand
  expr operators: in and ni (Tcl 8.6)


type: ci
user: steveb@workware.net.au
comment:
  More expr tests and fixes

  *: Add tests/expr-new.test from Tcl
  *: Directly convert from int to double if possible
  *: Always treat '-' in front of a number as unary minus
     so that '-0x1234' works.
  *: Fix expr when the variable does not exist
  *: Add optional support for math functions
  *: Also double/0 == Inf or -Inf


type: ci
user: steveb@workware.net.au
comment:
  Various general fixes and cleanups

  Add lsearch -command, update case to use lsearch
  Rename tcl6.tcl to tclcompat.tcl
  Remove // style comments
  Expand some tabs to spaces
  Fix some compiler warnings
  Remove some unused functions
  Don't close fd=-1 in exec


type: ci
user: steveb@workware.net.au
comment:
  Many improvements, bug fixes

  *: Allow math functions to be enabled via configure
  *: Allow support for references to be removed
  *: Documentation updates
  *: Jim_ListLength() now returns the result directly
  *: Optimise list -> dict conversion
  *: Consistent capitalisation of some structures, functions
  *: Add support for abbreviations to Jim_GetEnum()
  *: The commands to 'info' may be abbreviated
  *: Use abbreviation support in parsing options to 'subst'
  *: Use Jim_GetEnum() to parse return code names
  *: Optimise 'array get', 'array set' if no conversion needed
  *: Import Tcl string.test
  *: string compare now returns -1,0,1 like Tcl
  *: Fix 'string last' with index=0
  *: Add support for 'string reverse'
  *: Add -nocase option to 'string equal'
  *: Fix infinite loop in 'string repeat str -1'
  *: Support braced patterns in glob
  *: glob should not return dot files unless the pattern starts with .
  *: Simplify glob.tcl by using some new features
  *: When creating C extensions from Tcl, preserve newlines and invoke
     with Jim_Eval_Named() to produce more meaningful error messages.
  *: Also remove all comments, not just those starting in the first column
  *: Add support for 'n+n' and 'n-n' in string/list indexes (Tcl 8.5)
  *: Add a level to the stack trace for 'return -code error'
  *: 'return -code' should also affect the return from 'source' (see Tcl docs)
  *: Fix lsort -command
  *: Some systems don't have INFINITY


type: ci
user: steveb@workware.net.au
comment:
  Rework script/subst parser for improved performance

  *: Keep abc(def) as a single token, but split abc($def) into 4 tokens
  *: Then optimise when interpolating to keep a reference to the underlying objects
  *: This speeds up the 'set a($b)' case a lot
  *: Also avoid so much alloc/realloc when parsing scripts and subst objects

  Also simplify cmdStruct creation
  *: Can omit args=-1 for expand
  *: Makes it easy to calculate the length
  *: Do it all in a single loop for simplicity, size and speed


type: ci
user: steveb@workware.net.au
comment:
  Bug fixes and features

  Support end+<n> index
  And generally simplify the index handling
  Add support for 'info nameofexecutable'


type: ci
user: steveb@workware.net.au
comment:
  Simplify and speed up expr

  *: Reuse the ParseTokenList/ScriptToken machinery for 'expr'
  *: This is simpler than managing separate opcode/obj arrays
  *: expr opcodes are now in the same namespace as token types
  *: expr identifies int and double during parsing
  *: Move the 'while' common expr optimisations into Jim_EvalExpression
  *: Add a special trueObj and falseObj to help with these boolean optimisations
  *: Add lazy versions as the byte code is created instead of at the end
  *: Avoid repeated conversion attempts to int
  *: Once an object fails conversion to int and succeeds
     conversion to double, invalidate the string rep
     so the int conversion attempt no longer happens
  *: Also, avoid converting non-ints to int in expression optimisation
  *: No need for a string token for SEP and EOL tokens
  *: Fix shimmering of int -> double
  *: When an int shimmers to a double during an expression,
     remember that the value was originally an int (via a new
     type, coerced double)


type: ci
user: steveb@workware.net.au
comment:
  Allow catch to specify what is caught

  *: Default to the same as Tcl. Not signal, eval, exit.
  *: Use 'catch -exit' to also catch exit.
  *: Also map for standard return codes: [info returncodes]
  *: Also Jim_ReturnCode()
  *: Add Jim_FindByName() for searching in a char* array
  *: Fix 'info nameofexectutable' if $::jim_argv0 is not set


type: ci
user: steveb@workware.net.au
comment:
  Implement TIP #288

  See http://www.tcl.tk/cgi-bin/tct/tip/288.html
  Args and optional args may be to the left of required args


type: ci
user: steveb@workware.net.au
comment:
  Simplify and improve the for command optimisation

  *: No need to optimised one-off initialisation command
  *: Do first test before optimisation
  *: Just compare "incr" rather than looking up the command.
     Will only fail on redefined incr command!


type: ci
user: steveb@workware.net.au
comment:
  Add Jim_SetResultFormatted() for simplied messages

  Makes creating error messages much simpler
  Also convert a couple of long if/else to switch
  Also some error message improvements
  Also fix some memory leaks


type: ci
user: steveb@workware.net.au
comment:
  Documentation, build system updates

  Document reference-related commands
  *: ref, getref, setref, finalize, lambda were missing
  Build system updates
  *: Add check for long long to configure
  *: Change -Dwith_jim_ext_... to -Djim_ext_...
  *: Fix jim-eventloop when compiling with no long long


type: ci
user: steveb@workware.net.au
comment:
  Improve stack trace handling

  *: Get rid of JIM_ERR_ADDSTACK and use interp->addStackTrace instead
  *: 'return -code error' doesn't add a stack frame
  *: Rename _file_copy to {file copy} for better error messages
  *: Use 'return -code' to prevent excessive levels in the stack trace
  Also rename info_nameofexecutable to {info nameofexecutable}


type: ci
user: steveb@workware.net.au
comment:
  Improve error message from wrong args to proc

  *: Use ?argname? to show an optional arg
  *: Use ?argument ...? to represent 'args', just like Tcl 8.5


type: ci
user: steveb@workware.net.au
comment:
  Enhance catch and 'info returncodes'

  *: Add optional arg to catch, opts, like Tcl 8.5 to allow access to the
     code given by 'return -code'
  *: Use -- to signify end of options to catch
  *: 'info returncodes' can give the name of a single code
  *: Fix 'case' to handle 'return -code' properly


type: ci
user: steveb@workware.net.au
comment:
  Fix lsort for large integers

  The compare result may be a wide integer, so ensure that
  the sign is retaining when narrowing to an int

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix some build problems and add lost features

  Add some missing files needed for autoconf
  Make jim build standalone and without host jimsh
  Use (FILE *) for eventloop file handle
  Don't expect to support dynlib if no mmu
  Re-add nvp and win32 support (untested)

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix unexpected change in list order

  Need to create string rep of list before converting in case
  it needs to be converted back, thus not losing order

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix lassign to work properly with an empty list

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Improvements to catch, return, signal, try

  Improve the ability to rethrow errors
  * Allow return to rethrow an error by accepting '-errorinfo stacktrace'
  * Also, 'catch ... opts' now also stores opts(-errorinfo) on error
  * Use these to provide better stack traces from 'case' and 'try'
  * Implement 'return -level'
  Make try/on/finally more Tcl 8.6 compatible
  * With support for 'on' handlers and docs
  Add support for catch options to try
  * Otherwise it's hard to use try to catch signals
  Improvements to signal handling
  * catch -signal now sets a list of the handled signals as the result
  * catch -signal won't execute the body at all if a handled signal is pending
  * up to 64 (jim_wide) signals can now be handled
  * if catch -signal is nested, the innermost catch will catch the error
  * new 'signal catch' allows ignored/blocked signals to be examined and cleared.
  * update docs on signal handling
  exec should indicate which signal killed the child

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Improvements to 'file mkdir', 'file delete'

  file mkdir will now create intermediate directories
  file delete can now also delete empty directories

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Improve documentation, remove debugging

  Completely document new regexp and regsub features
  Remove some old, commented-out debugging

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Reference count commands

  So that commands are not deleted while executing
  Add a regression test for this case

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Move some core procs into the (Tcl) stdlib extension

  Also implement 'local' to declare/delete local procs
  * Add tests/alias.test for testing alias, current, local
  * proc now returns the name of the proc created
  * Add helper 'function' to stdlib
  Reimplement glob and case to use local procs
  * This keeps these internal procs out of the global namespace

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Improvements to tailcall

  Add tests and documentation
  Make tailcall work within 'try'
  Fix tailcall interaction with uplevel
  Use tailcall for dispatch in tree.tcl
  Also some related improvements in tree.tcl

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Implement 'info frame' and some related procs

  info frame allows access to source file/line for earler call frames
  Implement 'stacktrace' to give a live stacktrace
  And 'stackdump' to convert a stack trace to readable form
  Update 'errorInfo' to use 'stackdump'
  Also fix tailcall to retain source info
  And implement alias, lambda and curry with tailcall

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Check that a sourced script is complete

  * Use the real parser in Jim_ScriptIsComplete()
  * The parser remembers if a script is missing a close brace or quote
  * 'source' will reject a file which is not complete

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update test.tcl for new regsub/regexp error message

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Remove various obsolete files

  Also rename and chmod some files

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  White space changes to match jimtcl master branch

  Makes it easier to diff

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Minor compiler compatibility fixes and ref count fix

  Don't mix declarations and code
  Don't try sizeof(long long) if we don't have it
  Object not freed on bad printf modifier in [format]

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  More reliable approach to handling signal names

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Make udp sockets useful

  Separate socket types: udp client and udp server
  Allow client sockets to 'connect' to an address
  Allow server sockets to 'bind' to an address
  Add support for 'sendto' and 'recvfrom'
  Add socket client and server examples
  Document new udp sockets

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Improvements to jim configure

  Create and use config.h
  Check for backtrace, fork, vfork, syslog, regcomp and others
  Disable extensions which require missing functions/features
  Check for one arg vs. two arg mkdir()
  Distinguish between mingw and native windows
  The aio extension has reduced functionality for ANSI C only

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix exec with vfork()

  Including the --disable-fork case
  And fix some compiler warnings

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Small improvements to tests

  Make exec-9.7 test more reliable
  Quieten jim tests unless running manually
  Add jim pipe example

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix dynamic loading of extensions

  In order to accomodate both static and dynamic extensions,
  a unique init function is used for each extension.
  Take this into account when loading.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Clean up the indentation mess

  Use 'indent'. Not perfect, but at least consistent.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add basic ipv6 support to Jim

  Use -ipv6 to signify that ipv6 should be used

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add 'string is' to Jim

  Also, double parsing now allows trailing white space

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  aio recvfrom was not null terminating the result

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  fh error not cleared after signal

  Use clearerr() after a read fails to avoid repeated failures after a signal.
  Also, dont' treat EINTR as an error in gets.
  And remove some leftover perror() calls.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix help/usage from subcmds under some circumstances

  jim-subcmd would sometimes omit the subcmd parameter
  in help and usage display

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix some eventloop problems

  File handlers now pass through the error code and the handler
  is deleted on error.  If there is nothing to do, vwait returns.
  If bgerror doesn't exist, print the original error to stderr.

  Also remove the 'eof' event handler since it isn't needed.  Can just
  call [eof $f]. This also fixes source locations within 'readable'
  scripts.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Set $::errorCode from exec

  This allows the return code from a failed 'exec' command to be retrieved.

  Also support -errorcode in catch and return.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Rename GetFileType() -> JimGetFileType()

  To avoid clash on win32

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Implement open "|..."

  Uses a Tcl wrapper, popen, from tclcompat

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a bug with 'time' if the count is 0

  And also some other warnings courtesy of the clang static analyzer

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  It was possible to create a bad ref

  Need to fix invalid chars in the tag name

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a crash during list parsing

  If the list ended in a trailing newline

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix crash on expand of empty arg

  Found by the clang static analyser

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Better internal script representation

  Should have better performance
  No longer need the command struct

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Make sure all static data is marked read-only

  This reduces the size of the non-shared data segment

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Source info was lost when converting source to list

  This meant that the single arg switch case would not give
  accurate line numbers

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix some eventloop bugs

  bgerror is supposed to be suppressed subsequently if it returns break
  vwait should error on invalid array element
  vwait should return an empty result
  Don't accept 'after info' since it isn't supported
  Also add some eventloop tests

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  eventloop improvements and enhancements

  Move Jim_EvalObjBackground() out of the core to eventloop
  Time events are now kept and triggered in time order
  Time handlers are removed before execution
  Add 'update'
  Add 'after info' and 'after idle'
  Include time events in the return from Jim_ProcessEvents()
  Add Tcl eventloop tests

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Move test.tcl to tests/jim.test

  And other small testing improvements

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Don't depend on specific regexp messages

  These can vary on different systems

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Improvements to script internal rep

  No need to keep line number info on every script token
  Instead add it into the 'LINE' token
  Also remember the first line number of the script in the script object

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix QNX build

  Which wants _XOPEN_SOURCE defined to something particular

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add do-nothing fileevent for Tcl compatibility

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Use $::env to build environment for exec

  Also, switch to using 'sh -c' for the vfork() implementation
  because it then allows command line redirection, pipes and
  setting the environment.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Minor cleanups and fixes

  array get for odd length list now returns an error
  comment fixes and small code rearrangement

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Change tree API to be object-based

  A small change, but makes for a more natural interface

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  string trimright now always removes nulls

  Not Tcl compatible, but makes sense

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Ensure that Tcl extensions can be built-in or external

  All C extensions must call Jim_PackageProvide()
  make-c-ext ensures that Tcl extensions call Jim_PackageProvide()
  if compiled in.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Make jim more reentrant

  Make the exec wait table allocated and per-interpeter
  Use reentrant variants of some libc calls

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Source location for failed tests was wrong

  That is, tests which didn't fail but did not give the expected result

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Skip tests for features which are not available

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix reference counting of stack trace in 'error'

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix bug when renaming the current proc

  Reference counting issues
  Also don't allow rename to an existing command (Tcl compatible)

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Implement Tcl I/O wrappers in Tcl

  This allows 'rename' etc. to work correctly and is smaller, simpler code
  Also, read -nonewline is mutually exclusive with 'numChars'

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  More simplification of Jim_EvalObj()

  A bit smaller and easier to understand
  Move some common code to JimMakeScriptObj()
  Also add JimWideValue() to access internal int value

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Simplify dict creation

  Always convert via a list. Makes for smaller code with no noticable
  performance impact.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Allow exit from .jimrc

  Only show error on JIM_ERR from .jimrc
  Also fixes to rlprompt.tcl so it can be used from .jimrc

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Avoid over-aggressive optimisation in Jim_EvalObj()

  The optimisation for 'incr' should not use compare immediate

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add install target to Makefile

  This also respects CFLAGS and LDFLAGS from configure
  and allows them to be overriden on the make command line

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Remove dependence of jim core on stderr

  Remove Jim_PrintErrorMessage() and create Jim_MakeErrorMessage() instead.
  Move errorInfo to stdlib since it is now required.

  Also move lassign from tclcompat to stdlib as a core command.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add stubs in case of compiled-out package, aio

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Make it easier to enable and disable extensions

  With --with-jim-ext and --with-out-jim-ext
  Also check dependencies and automatically disable extensions

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Portability fixes

  Especially for eCos, mingw32 and cygwin

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Some systems insist that ctype macros use unsigned

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add support for clock clicks, micros, millis

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix some problems with global and upvar

  Redefining a link with upvar or global gave an error.
  Trying to access a non-existent var via a link gave
  the wrong error message.

  Added Tcl upvar tests

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix error message for deleting nonexistent proc

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a concat bug

  If a string ended in backslash-space, the trailing space was lost.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix regsub to support strings with embedded nulls

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Re-add some files lost from v0.51

  In particular the C examples (now in examples.api/)

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  If three arguments are passed to 'puts' and the second isn't -nonewline, return JIM_ERR instead of JIM_OK.


type: ci
user: steveb@workware.net.au
comment:
  Licence wording updates.

  Per v0.51, don't refer to the FreeBSD licence

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Rename Tcl.html_shipped to Tcl_shipped.html

  Makes it easier to browse the shipped version in the
  source tree.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Properly allow the id to be set in bench.tcl

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Only indicate 'Runtime Error' from a script

  This makes for cleaner output from a console session
  and is compatible with earlier versions of Jim.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a parse error on trailine newline

  If a script contain [ with a trailing backslash,
  the parser would crash. e.g.

    . list [split \

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Set $argc in jimsh

  Apparently tclsh does this. It is just [llength $argv]

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add support for lsort -index

  Also bring in some lsort tests from Tcl
  Also allow lsort to be reentrant (but not thread safe)

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add support for 'dict keys'

  And implement 'array names' in terms of it

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix regexp -all -line with an anchored search

  Need to set REG_NOTBOL on subsequent calls to regexec()

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Allow regexp/regsub -start to be an index

  Allows, e.g. -start end-4

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix some outlier issues with regexp/regsub

  Use number of paren expressions with regexp -inline
  Fix a problem with regexp -start and an anchored search
  Fix regexp -inline -indices
  Fix regexp matching with an empty pattern (e.g. ^)
  Fix some cases where regsub -all did not return all results
  Fix some regsub cases with an empty pattern

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Switch regexp/regsub to use Jim_GetEnum()

  Provides a better error message on wrong args and allows
  abbreviations.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Don't explicitly add -g to CPPFLAGS

  This allows building without debugging by setting
  CFLAGS either during configure or make.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add 'info channels'

  Like 'chan names' from Tcl

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add aio '$handle filename'

  Retrieves the original filename

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix segfault with unix domain sockets

  Path argument was not being set.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Determine platform_tcl() settings with configure

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Allow extensions to be built/installed as modules

  This includes C extensions and Tcl extensions
  Also adds windows support (mingw32 and cygwin)
  Now the sqlite*, readline and win32 extensions are supported

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix 'make install' with no external extensions

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix 'make test' from the jimtcl directory

  Clash with JIMSH definition

  Signed-off-by: Steve Bennett <steveb@workware.net.au>
  Reported-by: Kulcsár Ferenc <crusader@netbsd.hu


type: ci
user: steveb@workware.net.au
comment:
  Fix some problems with the packaging system

  Loadable modules should be tried before script packages.
  If a script accidentally tried to require itself, infinite recursion resulted.
  It is a bad idea to name a script the same as an extension/package.
  Also, keep the package name off the stack.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Simplify and document [load]

  Previously both load and package require would search
  the library path to find the file to load. Simplify this
  by requiring an explicit path with load and have package require
  search the path.

  Also, document load and how it is used by package require.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Autogenerate the command index in the documentation

  This was lost in the merge of the WorkWare fork

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Don't hardcode /lib/jim

  Instead, set TCL_LIBRARY based on where jim is installed.
  This defaults to /usr/local (thus /usr/local/lib/jim), or
  can be modified with either configure or make. e.g.

    ./configure --prefix=/usr
  or
    make prefix=/usr install

  Now auto_path is initialised only to TCL_LIBRARY, and doesn't
  include "." which could be undesirable.

  At the same time, simplify jimsh initialisation using a script
  instead of C code. Add the path to the executable to auto_path.

  Also, no longer use JIM_TCL_COMPAT. Always use the tcl-compatible
  names, $auto_path and $tcl_interactive.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Allow jim to be used as an autoconf subdir

  Ensure that no public headers include the autoconf
  header, jimautoconf.h, as it leads to problems
  with redefined symbols.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add --enable-{shared,static} to configure args

  It is common to use --enable-{shared,static} to select a library flavour.
  --enable-shared is equivalent to --with-jim-shared. The default behavior of
  building a static library is kept.

  Signed-off-by: Florian Fainelli <florian@openwrt.org>


type: ci
user: steveb@workware.net.au
comment:
  build: fix cygwin build issue

  Avoid windows.h on cygwin

  Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>


type: ci
user: steveb@workware.net.au
comment:
  [source] now opens the script file in text mode

  This allows scripts with CRLF line endings on (e.g.) cygwin
  to work without change.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add original version of regexp from Jam

  The intention is to update this version to support UTF-8

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  POSIX-compatible regex interface

  With some ARE extensions

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add UTF-8 support to regexp

  Plus various ARE enhancements and bug fixes

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update documentation to cover UTF-8 support for regexp

  Also create README.utf-8

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add command line editing with linenoise

  Enabled by default, but can be disabled with --disable-lineedit

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add utf-8 support to linenoise.c

  Plus general improvements, including:
  - Allow pasting newlines to linenoise. Use TCSADRAIN, not TCAFLUSH
    so that unused input is not flushed

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a bug in the UTF-8 implementation of string last

  Indexing into the wrong string

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a regexec() bug

  An anchored search could use the wrong string

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a bug in [format]

  The buffer length could be wrong when printing numeric values

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  For ctype macros, cast to unsigned char

  Instead of unsigned. Add UCHAR() macro for this.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Linenoise improvement for ^D

  Use default readline/bash behaviour of deleting char to
  the right, unless the line is empty. Then it is EOF.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Bug fix: [regexp] single braced count was rejected

  The form {n} should be considered the same as {n,n}

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  built-in regexp was always being included

  Even if disabled, the built-in regexp was still being used.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  build: add configure.gnu to .gitignore

  configure.gnu is used by autoconf when using jimtcl as a subproject.
  so ignore what happens to this file.

  Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>


type: ci
user: steveb@workware.net.au
comment:
  Avoid crash when references are disabled

  Reported-By: Patrick WEBER <patrick.weber@live.com>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  tv_usec is in usec, not msec

  The consequence is an excessive amount of calls to select

  Reported-By: Patrick WEBER <patrick.weber@live.com>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Disable line editing on systems without termios

  Reported-By: Spencer Oliver <ntfreak@users.sourceforge.net>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  jim-regexp.c also needs jimautoconf.h

  Otherwise built-in regex impl. conflicts with externl regex

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Allow Jim_InteractivePrompt() to return [exit] to caller

  And update jimsh return code handling

  Reported-By: Patrick WEBER <patrick.weber@live.com>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Better Tcl compatibility for [lrepeat]

  With zero count and also with no list elements

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Overhaul unit test framework

  Much closer to tcltest now, including constraints.
  Try to get all appropriate tests running under both Jim and Tcl.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  install: fix problem when build != src dir when installing README.extensions

  Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>


type: ci
user: steveb@workware.net.au
comment:
  Remove the bio extension and add 'copyto' to aio.

  The bio extension is a hangover from TinyTcl. Since Jim
  supports binary strings, there isn't much need for it except for
  'bio copy'. So move this to aio as 'copyto' and implement 'file copy'
  in terms of it.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add support for [dict] size, merge, with

  Implement 'dict with' and 'dict merge' as scripts since this is simpler.
  Use 'dict size' to implement 'array size'

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Bug fix: regexp should not treat \n as |

  Remove a "feature" in the built-in regexp, where
  a newline in the pattern was treated as alternation, like |.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix memory leak with filenames

  Under some circumstances, source filenames were being leaked.
  Use shared strings consistently for filenames.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>
  Reported-By: Piotr Esden-Tempski <piotr@esden.net>


type: ci
user: steveb@workware.net.au
comment:
  Add the [exists] command

  Especially simplifies checking for the existence of procs.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Improve performance of info procs,commands

  In the case where a single proc/command is being checked.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Don't require tclsh for building without utf-8

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Make tclcompat work without aio

  This is an unusual case, but useful for testing

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Include all double colons as part of the var name

  e.g. $::a::b is considered as ${::a::b}
  This helps be more Tcl compatible by allowing fake namespace variables

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix constraint checking

  This was completely wrong. The arg order was wrong such that
  when test constraints were specifed the test was always skipped!

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Use vfork() instead of fork() in [exec]

  This allows systems with vfork() but not fork() to
  have a full exec implementation, including constructs such
  as 2>@1 and background exec with &

  Also remove the --disable-fork option.
  It doesn't really make sense now since exec uses vfork

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix for right-to-left associativity of ternary operator

  Signed-off-by: Patrick WEBER <patrick.weber@live.com>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix an object sharing bug for arrays

  Commands which modify variables in place such
  as append, lappend, incr and lset did not correctly
  account for modifying a shared array through an array
  element (dict sugar).

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add a pure-TCl OO implementation to Jim

  And document the OO extension in README.oo

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Use the new Jim_EvalObjPrefix() for 'file copy'

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  All Jim source should include jimautoconf.h

  This ensures that everything picks up the autoconf settings


type: ci
user: steveb@workware.net.au
comment:
  Minor compiler warning fixes

  Also, don't define _XOPEN_SOURCE if already defined

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Bump version to 0.70

  In preparation for the next release

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Still need to check for fork() for os.fork

  Even though fork is no longer needed by exec,
  it is still needed by os.fork

  Reported-by: Paulo Ferreira <paf@keeh.net>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Use snprintf() to avoid buffer overflow

  The only real potential overflow is parsing a bogus
  unix domain socket path.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Jim 'string is' doesn't work with unicode

  So just disable this test

  Reported-by: Paulo Ferreira <paf@keeh.net>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Better support for eventloop on mingw32

  Which doesn't support select() with no fds.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix line editing when columns unavailable

  Sometimes TIOCGWINSZ succeeds but returns columns=0
  This makes line editing work rather badly.

  If this occurs, just behave as though TIOCGWINSZ had failed
  and assume 80 columns.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Better line editing on serial terminals

  If TIOCGWINSZ doesn't work, try to query the window width
  with escape sequences.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update linenoise to the latest version

  From https://github.com/msteveb/linenoise with minor changes.

  - Optimise common insert/remove char cases
  - Add completion framework (unused in Jim Tcl)

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a compile error when the debug command is enabled

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update README, LICENCE and version in configure.ac

  Bring this information somewhat up-to-date.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add additional tcl_platform() settings

  For better Tcl compatibility, add byteOrder, threaded, pointerSize, wordSize

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add some tcltest v2 support

  Makes it easier to import Tcl tests

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  string trim is now 8 bit clean

  i.e. supports embedded nulls
  Also now supports utf-8 trim chars

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  More efficient [string trimright] and [string last]

  By searching backwards in [string trimright], even in utf-8 strings.
  And using binary comparison in [string list]

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Simplify the accounting of call frame levels

  Store the level directly in the call frame rather
  than counting it separately.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  [package require] should load at the global level

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Clean out the tcltests directory

  Some tests are already in tests/, move some others.
  Move some examples to the examples directory

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Allow proc 'args' to be renamed

  With this syntax: {args newname}.
  This especially helps with documentation and error messages.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Automatic proc upref with & syntax

  e.g. proc a {&b &c} ...

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  If [file normalize] isn't implemented, give a message

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a parsing bug with quoted strings inside [...]

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Minor code cleanup

  Mark some internal functions static.
  Simplify JimDictSugarGet()

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Rename more internal functions

  In general, use Jim_ only for public APIs.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Improve subst performance

  Remove leftover subst objType which meant that
  sometimes objects were being continually shifted internal rep.

  Also some other subst optimisations.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Share token interpolation implementation

  Between Jim_EvalObj() and Jim_SubstObj() in JimInterpolateTokens()

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Code shrinkage - list manipulation

  Reduce three implementations of list append/insert to one.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix some minor parsing bugs

  And add additional tests

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Various Code cleanups

  Combine unicode and hex escapes
  Remove some unused code
  Generate an error if double pow() is not supported

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Ensure that variable names can't contain nulls

  Under some circumstances the name was not being checked

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Improve list parsing

  Also add additional tests

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Small code cleanups

  Remove Jim_SetWide() since it is only used by incr
  More tests for better test coverage

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Remove checks for some impossible conditions

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix usage of DESTDIR to ensure proper install dest

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  deb: committed files generated by dh_make and edited

  The files were generated by running
  dh_make
  in the souce folder. The source folder was named jimtcl-0.70.
  Changed the following: changelog, control, copyright.
  To generate the .deb package, run:
  dpkg-buildpackage -rfakeroot

  Signed-off-by: Edgar Grimberg <edgar.grimberg@gmail.com>


type: ci
user: steveb@workware.net.au
comment:
  Fix a crash when evaluating an invalid expression

  expr {5 ne ::}

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix an infinite loop in subst

  If a null byte is encountered

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Opened filehandles should be marked FD_CLOEXEC

  This avoids them being inherited by child processes.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Ensure detached child processes are reaped

  Like Tcl, reap zombies on each exec invocation.
  This commit also simplifies the implementation of exec
  by using waitpid().

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  closing an 'open |...' filehandle should wait

  for the detached child processes to complete.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a minor parsing bug - quoted backslash newline

  Should eat spaces and tabs after the newline

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Document recent features

  jimsh --version
  tcl_platform()
  proc &var
  proc rename args
  expr sugar $(...)
  Also add documentation for jimsh, including interactive mode

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a dict sugar parse bug with backslashed chars

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add Jim_String() macro

  It is very common to get the string value
  without the length. Jim_String() is a macro which does that.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  local procs now keep and restore previous defn

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Use a union for Jim_Cmd fields

  There is no overlap between proc command fields and native
  command fields, so overlap them with a union.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add [upcall] command

  Allows previous command definitions to be invoked when
  otherwise hidden via [local]

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Document changes to [local proc] and [upcall]

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Don't set FD_CLOEXEC on standard channels

  stdio, stdout, stderr

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add make-bootstrap-jim script

  Allows a single source file version of jimsh to be created
  for bootstrap purposes.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add non-greedy regexp support

  Support +?, *? and ??

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix some clang warnings

  And also a potentially undefined integer left shift

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  lsort test should produce reliable results

  Previously different systems could produce different, valid results

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix parsing bug introduced by 505ce9d7

  This caused a problem with quotes inside commands.
  Rework the parsing to properly handle commands inside
  quoted strings and quoted strings inside commands.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix utf8 char matching in character ranges

  Also searching the initial part of the string

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Make test error easier to read

  Add a blank line after each error

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Simplify/fix repeating matches

  Simplifies *, + and {n,m}, fixes some
  broken cases and adds support for {n,m}?
  Also fixes end-of-word match
  Under some circumstances, repeats can now be nested.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Ensure that linenoise history is only freed once

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Revert regexp nested repeats from b34ab2f895

  Nested repeats can't really be handled properly, so remove
  support since it breaks some non-nested cases.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Use autosetup instead of autoconf

  Faster, simpler auto-configuration

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Provide a fallback basic [exec] for (e.g.) mingw32

  Use system() to implement [exec] if vfork() and waitpid()
  are not available. This is just functional enough for simple tasks.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Better handling of environ on Mac OS X

  Shared libraries can't access environ directly, so use
  _NSGetEnviron() on Mac OS X
  Also, load modules with (RTLD_NOW | RTLD_LOCAL) instead of RTLD_LAZY

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add a separate install-exec target to the Makefile

  Makes it easy to install only jimsh

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  collect now also frees objects in the free list

  Allows for better management of memory

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Always define strtoull as strtoul if no 64 bit ints

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Unload dlopen() handles on freeing interpreter

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update TODO to reflect the current state of Jim

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add support for [string byterange]

  Sometimes it may be necessary to extract bytes directly
  from a UTF-8 string. [string byterange] is like [string range]
  except it works on bytes rather than characters if the string
  is a UTF-8 string.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Implement the [binary] command

  Supports everything except floating point types
  binary is implemented in Tcl on top of the low level [pack] and [unpack] commands

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add --maintainer option

  Enables [debug] and JimPanic()
  JimPanic() is an assertion feature which is generally
  only of interest to developers, so disable it by default
  to save space and time.


type: ci
user: steveb@workware.net.au
comment:
  Create static extension loader dynamically

  Makes it easier when adding new extensions

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add a dns/binary example

  This is take from the tcllib dns package and shows the
  high level of compatibility with Tcl.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add aio support for buffering

  And fconfigure for Tcl compatibility

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Allow [info complete] to determine the missing char

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Re-add a dummy configure.ac for automake

  When building as a subdir within automake, it
  checks to see if this file exists, even though it isn't needed.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix the distdir target when building out of tree

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  aio: Ignore error indication on eof

  Reading from a pipe can set both ferror() and feof().
  In this case, feof() takes precedence.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix script line numbering for multi-line commands

  The line number stored with each line of the script
  should be the line number of the first token, not the last token.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add some missing generated files to .gitignore

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update autosetup. Fixes a problem in make-c-ext.tcl

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix builtin regexp for memory overwrite

  Reported-By: Spencer Oliver <spen@spen-soft.co.uk>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Don't try to store an int into a (void *)

  Instead do it properly with a union

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix support for 64-bit mingw

  - Check for mkdir with one arg at configure time
  - mingw can't really do select(), so support only time events in eventloop
  - Declare dlerror() to be compatible with mingw

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Change the builtin regexp to avoid compiling twice

  Simply guess the program size and realloc if needed.
  This also fixes a compile warning on some platforms.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add rand() and srand() functions

  For Tcl compatibility

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Do just enough to make Jim useable with msys/mingw

  Convert some paths from backslashes to forward slashes
  Handle splitting/joining paths which look like z:/abc/def
  Identify the platform as mingw

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Simplify glob and make it work with mingw

  Support absolute paths which don't necessarily
  begin with /

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add support for file delete -force

  Will recursively remove directories, even if not empty.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Support and ignore fconfigure -translation ...

  Jim is always in binary/utf-8 mode
  This makes it easier to run Tcl scripts unmodified

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Use clock instead of open for loadable module bug

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Make an array test more reliable

  Currently it depends on hash table ordering.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Optimise [lrange] when returning the whole list

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Tab and newline are common in text files

  So optimize char [split] to include those chars too.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Improve diagnostics when a script is incomplete

  Now the diagnostics indicate the line which contains
  the unmatched quote, bracket or brace.

  Previously, a missing '[' was shown as a missing '"'

  Also, when sourcing a file, the script is not parsed twice.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update make-bootstrap-jim for consistent tcl_platform

  $tcl_platform(platform) should be "windows" on mingw

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update to the latest autosetup

  Mainly for msys/mingw support

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add configure --full option

  To more easily select some optional features which are disabled
  by default.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Minor cleanup in JimParseVar()

  Also adds (disabled) $[...] expr sugar support
  in case we decide to use this syntax instead of $(...)

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Better proc optional arg handling

  Allows args and optional parameters in any location,
  in addition to being smaller and faster.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Make list to string conversion more Tcl compatible

  If a list elements contains unmatch ] brackets, use
  backslash quoting instead of braces. This is what Tcl does.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix missing expr error message with || and &&

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix some [file join] cases

  In particular, file join / anything

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Return an absolute path for [info nameofexec]

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a string length error in [file join] from 3b317b1

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Generate static Tcl extensions slightly differently

  Revert to using inline strings rather than
  static const char[] to avoid confusing bloat-check

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add tcl_platform(pathSeparator)

  Tcl compatible.
  Also move jimsh initialisation script into initjimsh.tcl

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Simplify approach for generated code

  All generated sources are now prefixed with an underscore

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Setup auto_path directly in tests/testing.tcl

  Rather than relying on setting JIMLIB in the Makefile.
  Makes it easier to run individual tests manually.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Allow install to be a no-op with --disable-install-jim

  When running under automake (as openocd does) it seems
  impossible to build jimtcl but not install it, so add
  --disable-install-jim to help out.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Don't add a local proc context in source and eval

  Only procedures add a local proc context. Otherwise
  it is not possible to use local/upcall in Tcl packages.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Don't load and save history if not on a tty

  If jimsh is run in interactive mode but without a tty,
  don't bother to load and save line editing history.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Small changes to keep older compilers happy

  e.g. gcc 2.95

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Help Jim Tcl build on Haiku

  Don't use -Werror
  Prefer user CFLAGS over default options
  Haiku needs -lnetwork for networking functions
  Haiku does not have -lm
  Haiku does not have SIGIO
  Silence some warnings

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Ensure that catch works properly with 32 bit ints

  A bit vs. byte error meant that on platforms with 32 bit ints,
  signal, exit and eval were always caught by catch.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update autosetup to the latest version

  Now supports Solaris, Haiku and various other improvements.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix object leak in regexp/regsub

  During internal rep change to regex

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  More info in debug show (maintainer mode)

  Display refcount and type

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Return codes > 7 should be caught by default

  Fix a recent change which meant that return codes
  between 8 and 64 were no longer caught by default.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Track source locations in expressions

  Commands in expressions should continue
  to track source location for the benefit of error messages
  and the debugger.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Switch to using Jim_Obj for filename tracking

  Remove the old shared-string implementation.
  The new approach reuses the Jim_Obj reference counting
  so it is smaller and a little more straight forward.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add Jim_EvalSource() to replace Jim_Eval_Named()

  Since the line number should correspond to the first
  line of the script, it is easier to use with __LINE__
  if the filename and line number are before the script.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  debug show should not force object to 'string'

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  dict unset should not return error on missing last key

  dict unset was returning an error with no message

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix commit cbeb3ea: unset missing array element

  Although [dict unset] should not complain about
  being unable to unset a missing element, unset via array
  syntax (dict sugar) should - to be compatible with Tcl.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update autosetup for better gentoo support

  Adds --libdir, --datadir and others (which are ignored)

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  On mingw32, use Sleep() if usleep() is unavailable

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update autosetup

  Allows options and settings in any order
  Doesn't try to create temp files in /tmp on mingw which may fail.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix build on Solaris (gcc)

  inet_ntop needs -lnsl on Solaris
  Solaris has sysinfo, but no uptime
  Link flags need to be a bit different

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add support for BSD make

  Use the new conditional template support in autosetup
  to avoid (most) GNU-isms in the generated Makefile.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Implement 'file mtime <file> newtime'

  Allows a file to be "touched"

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Allow -returnCodes to use numbers as well as names

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Change Jim_EvalObjPrefix to accept arbitrary objects

  Jim_EvalObjPrefix now accepts an arbitrary Jim_Obj as a prefix,
  with Jim_EvalPrefix being equivalent to the older version.


type: ci
user: steveb@workware.net.au
comment:
  Only link libs as required

  Both for loadable modules and for the core.
  Also, loadable modules should now build with BSD make.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add Ratcl-style pipelines to Metakit extension

  Add pipeline support to Metakit cursors
  Make Metakit extension commands extensible


type: ci
user: steveb@workware.net.au
comment:
  Updates to the manual for hyperlinked commands

  Also various formatting improvements.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update to the latest autosetup

  For a couple of small bug fixes

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Implement full [exec] on mingw/msys

  This also involves some restructuring of the existing
  implementation to allow for as much reuse as possible.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Trim the size of the boostrap jimsh source

  By removing comments and some large blocks of unnecessary code

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a compilation problem with the bootstrap jimsh

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update autosetup/jimsh0.c to a working version

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Minor linenoise improvements

  From github:
  - CHA is 1-based
  - Added some casts to make it easier to include in a c++
  - const correctness
  - chars are unsigned if not utf-8


type: ci
user: steveb@workware.net.au
comment:
  Restructure linenoise in prep. for win32 support

  Separate out the termios-specific code

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix script ignored string rep after list operation

  Even if a string has list rep internally,
  the original string rep (if there is one) should be used when evaluated
  as a script.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Cleanup in jim-eventloop

  "eof" event no longer exists

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Restucture jim-aio for less duplication of code

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Minor code cleanups

  Mostly use of Jim_Length()/Jim_String() directly instead of
  Jim_GetString()

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Missing parens in non-utf8 version of utf8_strlen

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update documentation for recent features

  pow(), dict with, dict merge, dict size, fconfigure

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Document the oo, tree, binary and pack extensions

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Class vars should take precedence

  ...over baseclass vars.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Document [string map]

  Reported-by: Lorance Stinson <lorancestinson@gmail.com>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Simplify the way unicode case mapping is done

  Smaller, faster and includes title-case characters.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Sync linenoise with github

  Update comments, copyright, etc.
  Handle additional home, end sequences
  Don't add duplicate lines into history

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Better performance for list creation

  Don't append elements one at a time

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update source files to reflect FreeBSD licence

  Some files still indicated the older Apache licence.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Remove debian packaging

  Debian packaging is now being handled separately.
  Currently http://anonscm.debian.org/gitweb/?p=collab-maint/jimtcl.git

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Source location for test which does "return"

  If a test does a "return" and the result is not the expected value,
  the source location of the test is wrong.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Return from tailcall should be passed through

  If a proc invokes a command via a tailcall and that command invokes
  "return", the return should be passed back to the caller of the proc.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Defer deleting local procs until after tailcall

  It is useful to be able to tailcall a local proc.
  Thus deletion of local procs need to be deferred until
  tailcall processing is done.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: g
user: steveb
comment:
  Edit &#91;[/info/6cc6244a306e8257 | 6cc6244a306e8257]&#93;: Move to branch [/timeline?r=www&nd&dp=6cc6244a306e8257 | www]. Change background color to "#d0c0ff".


type: ci
user: steveb@workware.net.au
comment:
  Fix a bug where std* handles did not get KEEPOPEN

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Allow bootstrap jim to build in library-only mode

  With -DJIM_BOOTSTRAP_LIB_ONLY

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Remove use of designated initialisers

  For better compatibility c89 compatibility.
  Also simplify jim-subcmd. Remove -usage and command descriptions.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update autosetup, especially for include deps

  Correctly detect sys/socket.h and netinet/in.h on OpenBSD

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  form feed (\f) is a valid white space char

  Treat it like other white space in scripts, expressions
  and lists

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  List with # only needs braces for first element

  Compatibility with Tcl

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix some dict unset cases

  Behaviour is now identical to Tcl 8.6

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Jim_DictSize() should only convert to dict if reqd

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  regex: add support for non-capturing parentheses

  Tcl-compatible syntax: (?:...)

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  regex: support - as the last element of a char set

  e.g. {[a-z-]}

  For Tcl ARE compatibility

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  regex: counts were not all being cleared

  If a cached regex containing counts was reused, the result
  may have been incorrect.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Improvements to hash table usage for dicts

  Mainly avoid double hash calculation and lookup
  in the case where an entry is to be replaced.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: g
user: steveb
comment:
  Edit &#91;[/info/6cc6244a306e8257 | 6cc6244a306e8257]&#93;: Change branch background color to "#d0c0ff".


type: ci
user: steveb@workware.net.au
comment:
  Cleanup hash table interfaces

  Remove const-ness of hash table keys
  Also consolidate string hashtable ops

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Move creation of proc statics to it's own function

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Improvements to variable caching and resolution

  Cache the correct callframe id for ::global vars
  Move variable creation out into JimCreateVariable()
  Fix some cases of upvar/global with ::global vars

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Don't allow upvar to a higher level

  i.e. upvar of a global var to a proc var

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add a general purpose hashtable pattern matcher

  Invokes a callback to add elements with keys matching a pattern to a list

  Use for info subcommands: commands, procs, channels, globals, locals, vars
  Also: dict keys, array get

  Also avoid some dict/list conversions
  And simplify the implementation of array set


type: ci
user: steveb@workware.net.au
comment:
  Create optimised Jim_String(), Jim_Length()

  These are very common operations.
  Creating versions separate from Jim_GetString() saves size and speed.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  make install builds even if --disable-jim-install

  Reported-By: Evan Hunter <ehunter@broadcom.com>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Create build-jim-ext for building extensions

  Simplifies the process of building loadable extensions

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Port the "full" sqlite3 extension to Jim Tcl

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add [info statics]

  To access static variables (names and values) of a proc

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Split the pattern matchers for dict and vars/cmds

  There are enough differences that it is better to keep them separate.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Minor message changes to match Tcl 8.6

  And import some up-to-date tests from Tcl 8.6

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Tcl compatibility for list/string indexes

  Allow hex in addition to decimal

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Share dict, list string-rep code

  Avoid duplicate code.
  Also, avoid memory allocation in BackslashQuoteString()

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix list escaping of leading #

  Tcl compatibility
  Also add more tests from Tcl 8.6

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Shorten ref id, proc epoch to 32 bits

  Faster on 32 bit systems, and 64 bits is overkill here.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Better caching of scoped vars

  Remember if a var is ::scoped when caching

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Make Jim_ListJoin() public

  The core of [join]

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Implement [alias] in C

  And allow commands to set a temporary name for the purpose
  of generating error messages

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Ensure that 'make test' works out-of-tree

  If --shared is enabled

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix the poor-man's 'variable' in dns.tcl

  Redefining upvar links is no longer allowed

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add [info alias]

  To access the command that an alias refers to

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Remove reference to jim-nvp.h from Makefile.in

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Minor changes for Tcl compatibility

  Error messages

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  In JimPanicDump() don't abort()

  Less messy. This is only enabled for --maintainer,
  so it easy to attach a debugger if needed

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Ref count fix in exec

  Passing a zero refcount object to Jim_AioFilename() is a bad idea.
  If the implementation changes, the object may be freed twice.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Simplify and cleanup Jim_EvalObj*

  Avoid passing callsite information continuously
  Use interp->currentScriptObj to always match the current script
  Jim_GetCommandN() subsumes SetCommandFromAny()
  Simplify JimUnknown() to simply use Jim_EvalObjPrefix()


type: ci
user: steveb@workware.net.au
comment:
  Correct the documentation for 'local'

  Also some general documentation cleanups and trailing
  white space removal.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Extend UTF-8 support past the BMP

  Now codepoints up to U+1FFFFF are supported, including
  as literals with the new \u{NNNNNN} syntax (up to six hex digits)

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add support for \U with up to 8 hex digits

  TIP #388 compatibility

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Treat all unicode >= 0x80 as alpha

  For the purposes of variable names ($abc)

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Reimplement foreach/lmap in terms of iterators

  This simplifies the implementation

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Implement the lassign command in C

  For efficiency since it can be heavily used

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Avoid trying to allocate zero bytes

  Some allocators don't like it and others allocate space unnecessarily

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a regexp infinite loop on bad utf-8 input

  	regsub {\mdnl\M.*$} "word \xA9 another word" "" line

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  utf-8 case folding may change encoded length

  Thus we may need a larger buffer for the encoded string

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Reduce # of different types in the Jim_Obj union

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Better extension selection in auto.def

  The old implementation was cumbersome for adding new extensions
  The new implementation is still too complex :-(

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a bug in Jim_ListAppendList()

  Need to ensure that value to be appended is in list form

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add support for tcl::prefix as an optional extension

  Also adds Jim_ListGetIndex(), like Jim_ListIndex() but with a more convenient interface


type: ci
user: steveb@workware.net.au
comment:
  Remove error message rewriting for aliases

  It does not extend well enough to the general case,
  so remove it for simplicity

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update autosetup to the latset version

  Better shared library settings for sparc

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Enable more extensions by default

  For a better "out-of-the-box" experience, most extensions
  such as binary, tree and tclprefix are enabled by default.
  Also jim-regexp is enabled by default for better Tcl compatibility.

  It is still possible to disable any of these with --without-ext=...
  and --disable-jim-regexp

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Remove old sqlite0 extension

  Anything older than sqlite3 is no longer worth supporting

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add exists -alias

  Makes it easy to identify alias commands

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add support for lightweight namespaces

  See README.namespaces

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Don't check proc epoch change in [for]

  There is no need since we don't check the actual implementation
  of [incr] anyway.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  metakit: subcmd no longer includes 'description'

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Restore the environment after tests/exec2.test

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update some tests for latest Tcl8.6b2

  We strive to be compatible with the latest Tcl8.6

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  sqlite3: Add -Wall and fix a compiler warning

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Better dynamic extension building

  If libjim is built shared, ensure that all symbols are resolved.
  This can't be done if libjim is built static.

  Also, build-jim-ext now shows stderr from the compiler and linker

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Tcl8.6 compatible error messages

  These will help with error messages from [apply]

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add support for [apply]

  apply has the advantage of not disturbing the proc epoch
  for short lived commands

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Strip leading & from proc error messages

  And some more Tcl8.6 compatible error messages

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update documentation for recent features

  In preparation for the 0.73 release

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  More test speedups

  Speed up the timer and exec unit tests with smaller sleeps

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  mingw requires shared libs to have a .dll extension

  Otherwise they can't be linked with -l

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix bug when calling ref finalizers

  Commit 21d7fc318 introduced a bug where the finalizer was freed too early

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  oo: aliases are now commands, not procs

  So fix oo.tcl when falling back to base class methods

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix double to string on mingw

  The MS CRT always produces a 3 digit exponent for %e
  And update [format] tests to account for this difference


type: ci
user: steveb@workware.net.au
comment:
  Better error/eof detection in aio

  On cygwin, ECONNRESET can happen when the other
  end closes the connection. Treat it like EOF.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  use execvpe if available in [exec]

  On cygwin, setting environ before execvp() doesn't work,
  but execvpe() does exist and works, so use that in preference

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Need -lang c++ when testing for mk4.h

  By default, headers are checked with -lang c

  Reported-by: Alexander Shpilkin <ashpilkin@gmail.com>
  Reported-by: Adrian Ho <ll-jim-devel@03s.net>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  build-jim-ext should be removed on distclean

  not clean, since it is generated by ./configure

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix some warnings identified by icc

  The Intel C Compiler

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Space allocated for exec env may be one byte short

  Signed-off-by: Steve Bennett <steveb@workware.net.au>
  Reported-by: af123 <jimdevel@hummypkg.org.uk>


type: ci
user: steveb@workware.net.au
comment:
  Fix glob with patterns containing spaces

  Signed-off-by: Steve Bennett <steveb@workware.net.au>
  Reported-by: af123 <jimdevel@hummypkg.org.uk>


type: ci
user: steveb@workware.net.au
comment:
  Allow 'aio copyto' and 'aio read' to copy >2GB

  Signed-off-by: Steve Bennett <steveb@workware.net.au>
  Reported-by: af123 <jimdevel@hummypkg.org.uk>


type: ci
user: steveb@workware.net.au
comment:
  glob patterns can contain [] too

  Signed-off-by: Steve Bennett <steveb@workware.net.au>
  Reported-by: af123 <jimdevel@hummypkg.org.uk>


type: ci
user: steveb@workware.net.au
comment:
  Sense of fconfigure ... -blocking is reversed

  We implement fconfigure -blocking via $sock ndelay, but
  the sense of ndelay is the reverse of -blocking

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Use JIM_WIDE_MAX rather than LLONG_MAX

  For platforms which don't have long long

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update examples/dns.tcl to match tcllib

  Now that Jim Tcl supports namespaces, dns.tcl from
  tcllib can be used with very few changes.

  Revert as much as possible to the original tcllib version
  in order to better show the differences between Jim Tcl and big Tcl.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  make-index is *much* slower than it should be

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  subst -noc should substitute vars inside brackets

  This also simplifies and shrinks the implementation of subst

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Small cleanup/optimisation in object create/dup

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  file normalize only works with an existing path

  Because file normalize uses realpath(), the path must exist.
  This is not 100% compatible with Tcl which can also normalize
  nonexistent paths.

  Don't ignore the error from realpath()

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Enabled optimised dict -> list conversion

  Especially since it preserves source info

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a bug in glob

  On mingw, double slashes don't work so be sure to join "/" and "z" as "/z", not "//z"

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Short circuit converting empty string to list

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Optimise calls to a proc with an empty body

  Note that even white space will defeat this optimisation

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix make-index speed-up

  Need to substitute the index too

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a reference counting bug

  Ensure that the internal rep of interp->emptyObj is never
  changed to a script, since scripts use emptyObj as the source
  filename when no source info is available. Instead use a special
  nullScriptObj for this purpose.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a compiler warning with namespaces disabled

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Remove octal literals with a leading 0 (TIP #114)

  Now an octal literal needs to be explicitly indicated with a leading
  0o or 0O, otherwise the number is treated as decimal.

  This patch also adds support for binary literals.
  e.g. 0b101 0B1101

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Allow docs not to be built/installed

  With --disable-docs

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix binary scan for too-few bytes.

  According to the Tcl manual, in this case "binary scan returns immediately
  with the number of variables that were set".

  (Tests added by Steve Bennett)

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Remove nonexistent function declaration

  The API function definition for Jim_InitStringRep() has been removed
  by the commit:

  commit 2e8b9ddb92ed1cea3054ed8180d363c9dcc72dd9
  Author: Steve Bennett <steveb@workware.net.au>
  Date:   Sat Feb 18 14:47:11 2012 +1000

    Small cleanup/optimisation in object create/dup

  Remove the declaration from the headers as well.

  Signed-off-by: Ezequiel Garcia <elezegarcia@gmail.com>


type: ci
user: steveb@workware.net.au
comment:
  Fix invalid memory reference during finalisers

  Avoid destroying the reference object until after the finaliser
  has been run

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix linenoise serial console window size for vt102

  This includes minicom, which doesn't support hpa (CHA), only cuf.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Put short-lived hash iterator allocations on the stack

  No reason to have these on the heap for such short whiles.
  They are small (32 bytes) and only used within the same function.

  v2: The external interface is preserved.

  Signed-off-by: Lauri Kasanen <cand@gmx.com>


type: ci
user: steveb@workware.net.au
comment:
  Fix installation of Tcl modules

  When building out of tree

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Ensure that signals can break vwait

  The following should break when a handled signal is caught.

    catch -signal { vwait forever }

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Shuffle ExprByteCode to reduce size on 64-bit (24->16)

  Signed-off-by: Lauri Kasanen <cand@gmx.com>


type: ci
user: steveb@workware.net.au
comment:
  Give libjim.so an soname

  Reported-by: Markus Mayer <lotharlutz@gmx.de>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Avoid list allocations under four pointers (16/32 bytes)

  It's more overhead than usable space to get space for two pointers.

  Signed-off-by: Lauri Kasanen <cand@gmx.com>


type: ci
user: steveb@workware.net.au
comment:
  Use sqlite3_prepare_v2()

  When I'm working with SQLite3 databases in Jim, I find that I occasionally
  get a 'schema has changed' error so I end up using catch to detect the
  error and try the query again.

  Here's a quick patch to change the SQLite3 extension to use the
  sqlite3_prepare_v2() API function instead of sqlite3_prepare() - trivial
  but the _v2() function has a number of benefits and everyone should have a
  new enough SQLite3 library to support it. Please can you consider it for
  inclusion?

  See - http://www.sqlite.org/c3ref/prepare.html

  The benefit I'm specifically interested in is:

  With the _v2() variant, "If the database schema changes, instead of
  returning SQLITE_SCHEMA as it always used to do, sqlite3_step() will
  automatically recompile the SQL statement and try to run it again."


type: ci
user: steveb@workware.net.au
comment:
  Don't remove _*.c files during build

  It can be easier for debugging if these files are left around.
  They are still deleted by make clean.

  Reported-By: Markus Mayer <lotharlutz@gmx.de>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add support for glob -directory

  Implement support for the -directory option to the [glob]
  command. The -tails option is accepted for Tcl compatibility,
  but ignored; the command always behaves as if -tails were given.


type: ci
user: steveb@workware.net.au
comment:
  example.api: Replace string object initialization

  The object initialization relies on the API function:
  Jim_InitStringRep(), yet this function has been removed
  by this commit.

  commit 2e8b9ddb92ed1cea3054ed8180d363c9dcc72dd9
  Author: Steve Bennett <steveb@workware.net.au>
  Date:   Sat Feb 18 14:47:11 2012 +1000

      Small cleanup/optimisation in object create/dup

  (BTW, it's not very clean to remove an API function and
  not even specify that in the commit message).

  Signed-off-by: Ezequiel Garcia <elezegarcia@gmail.com>


type: ci
user: steveb@workware.net.au
comment:
  Fix conversion of numbers >= 2^31

  A conversion was being stored in a long rather than a long long

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix buffer overflow in [info references]

  Need to account for the null terminator

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Remove most quotingType allocations in JimMakeListStringRep

  Only two bits are needed, so also change to unsigned char from int.

  Signed-off-by: Lauri Kasanen <cand@gmx.com>


type: ci
user: steveb@workware.net.au
comment:
  Fix bug that was causing the system "environ" variable to be freed, which caused mayhem in stdio etc.


type: ci
user: steveb@workware.net.au
comment:
  Need abs() since modulo of -ve is impl dependent

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update autosetup to v0.6.5

  Includes a fix for -gstabs on newer macs

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  bug in sqlite module (array index out of bounds)

  Invalid array indexing in error message (array index out of bounds).


type: ci
user: steveb@workware.net.au
comment:
  Precompute operator length for JimParseExprOperator, optimize logic

  No regressions, no changes in bench.tcl.

  JimParseExprOperator was shockingly inefficient, to the point of taking 63% of cpu
  in my own app.

  It did a linear search over >60 structs, re-computing the string length each time, and
  doing a string comparison for each.

  This patch pre-computes the operator string length, speeding the function up by two.

  Adding the first-letter fast path and evaluating length before strncmp make for
  another 2x speedup, making the total speedup 4x.

  Signed-off-by: Lauri Kasanen <cand@gmx.com>


type: ci
user: steveb@workware.net.au
comment:
  aio seek and tell should allow for 64 bit offsets

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix hardcoded install paths

  Many path inside the makefile are hardcoded, replace them with the
  appropriate variables. (Main purpose: '$prefix/lib' is simply wrong
  on 64bit systems).

  Reported-by: Markus Mayer <lotharlutz@gmx.de>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Further improvements to JimWideToString

  Small time and space improvements

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Make Jim_CheckSignal() a macro

  For performance reasons

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update linenoise.c to match recent github

  From git://github.com/msteveb/linenoise.git

  Allow tab-completion only at the end of line
  Replace magic number 9 with '\t' in linenoisePrompt()
  Fix several warnings from gcc.
  Fix first-chance exceptions in Windows - WriteConsoleOutputCharacter() didn't have its final parameter set
  Add MSVC support - Test for _WIN32 to check for building for Windows.


type: ci
user: steveb@workware.net.au
comment:
  Add support for string {equal,compare} -length

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Clean up jim_return.c example

  Removes a warning and simplifies through the use of Jim_Length()

  Reported-By: Ezequiel Garcia <elezegarcia@gmail.com>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a linenoise bug when moving off the left

  If the buffer is too big to fit in the window and the cursor
  would move off the left edge of the windows, the display
  is not shown correctly.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Ensure that the full ref is passed to finalizer

  The reference was being incorrectly truncated

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Reference keys are unsigned long, not jim_wide

  This fixes an invalid memory reference in [info references]

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix [string replace] replacing single char

  Also added some additional tests

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Shuffle Jim_Obj to shrink it on 64bit (72 -> 64), removing holes

  No perf difference measured using bench.tcl.

  Signed-off-by: Lauri Kasanen <cand@gmx.com>


type: ci
user: steveb@workware.net.au
comment:
  Implement WideToString locally, printf is slow

  Even though it shouldn't need to, sprintf uses the libc-internal mutex,
  locale support, and other parts making it slow.

  [while] busy loop     -       306 ms       311 ms	-
  [for] busy loop       -       180 ms       182 ms	-
  mini loops            -       146 ms       146 ms	-
  fibonacci(25)         -       191 ms       176 ms	92.1466
  heapsort              -       138 ms       131 ms	94.9275
  sieve                 -       182 ms       143 ms	78.5714
  sieve [dict]          -       162 ms       138 ms	85.1852
  ary                   -       188 ms       166 ms	88.2979
  ary [dict]            -       173 ms       156 ms	90.1734
  repeat                -       132 ms       130 ms	-
  upvar                 -       142 ms       147 ms	-
  nested loops          -       173 ms       173 ms	-
  rotate                -        22 ms        22 ms	-
  dynamic code          -       108 ms        97 ms	89.8148
  dynamic code (list)   -        45 ms        46 ms	-
  PI digits             -       333 ms       319 ms	95.7958
  expand                -        46 ms        45 ms	-
  wiki.tcl.tk/8566      -       251 ms       235 ms	93.6255
  mandel                -       212 ms       199 ms	93.8679

  Signed-off-by: Lauri Kasanen <cand@gmx.com>


type: ci
user: steveb@workware.net.au
comment:
  Properly handle systems where (-ve % +ve) returns +ve

  Can't just use abs()

  This is the correct fix rather than c7e5c48

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix --shared build

  Need to include the version in the name of the library
  to match the link line

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Makefile.in: Depend on the headers

  Removes the need to do a "make clean" after changing jim.h or other
  headers.

  Signed-off-by: Lauri Kasanen <cand@gmx.com>


type: ci
user: steveb@workware.net.au
comment:
  Update linenoise.c from github

  For the following change:
      Fix a couple of compiler warnings

      With the colour prompt support.
      Also recognize '\e[m' as an escape sequence.
      Simplify countColorControlChars().

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  file: simplify [file stat], var now optional

  The varname is now optional. The return value is a dictionary.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  tests: fix tests if tclcompat is not enabled

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  exec: remove duplicate code

  Two versions of the "trim trailing space" function

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix infinite loop with error in lsort -unique

  Reported-by: Sergei Gavrikov <sergei.gavrikov@gmail.com>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  tclcompat: it is finally time to remove [case]

  Use [switch] instead

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Revert "Better handling of dict hash tables"

  This reverts commit 5155f363872af642ade631396d1d7303285c3481.

  It seems that this change has made dict element addition slower,
  so revert it.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Correct file handler should be deleted

  Previously, Jim_DeleteFileHandler() would indiscriminately
  delete the first matching file handler in the list.
  Instead, it should delete the file handler matching the event mask.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix hash table order dependency in various tests

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add floating point support for [binary]

  From work by Vadim Zborovskii

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix dict/list shimmering with embedded nulls

  Reported-by: Andy <jimdevel@hummypkg.org.uk>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  signal: make signal name lookup more efficient

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  package: simplification/code cleanup

  Also, packages can once again set a version != "1.0", but
  the version is ignored for "package require"

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  aio: add support for half-close

  Currently only for sockets since Jim Tcl does not support
  bidirectional pipes.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Properly respect backslashes in comments

  Reported-by: Sergei Gavrikov <sergei.gavrikov@gmail.com>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix a bug in JimNumberBase()

  If the number started with an invalid prefix, e.g. "0x + 1",
  number parsing would begin past the end of the string.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  pid: error message is now tcl 8.6 compatible

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  exec: respect $::env even without tclcompat

  Otherwise there is no way to affect the environment for exec

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Strip trailing newline from Jim_HistoryGetLine()

  When linenoise line editing is disabled

  Reported-by: Sergei Gavrikov <sergei.gavrikov@gmail.com>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix aio close from non-global namespace

  aio [open], as well as similar commands return the name of the
  created command.  If this is done in the non-global namespace, the
  returned name is implicitly scoped to the current namespace while
  the actual command is created in the global namespace. Thus [close]
  does not work when invoked in that namespace.

  The solution is to return a fully qualified name, such as ::aio.handle3

  Note that this may also be a problem for similar command such as
  [proc] and [alias] that return command names.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Enhance examples/jtclsh.tcl

  Now uses [info complete] to support continuations.
  Includes error code indication

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Better handling of dict hash tables

  Set dup and free operations to automatically manage reference counting
  of dictionary keys and values.

  Replace Jim_ReplaceHashEntry() with JimDictReplaceHashEntry()

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  array: error msg for odd length array get

  Currently an error is set, but with no message

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Consider scripts with trailing backslash as unfinished

  From the interactive prompt.

  Reported-by: Sergei Gavrikov <sergei.gavrikov@gmail.com>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  jim-aio.c: Fix possible compile error for JIM_ANSIC

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  errors caught by [catch] shouldn't affect later stacktrace

  Currently if an error is caught with catch { }, the location
  of the error overrides the location of the next error that occurs.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update lsort option documentation

  Document -nocase and remove duplicate -index

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  load: use AssocData to free load handles

  Instead of an explicit call in jim.c, store load
  handles as AssocData so that it is automatically cleaned up.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Implement more dict sub commands

  dict for, values, incr, append, lappend, update, replace and info

  Also implement array stat (the same as dict info)

  Note that [dict info] and [array stat] are for useful for checking
  the behaviour of the hash randomiser

  Add Jim_EvalEnsemble()

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  jim-aio: don't bother storing fcntl(F_GETFL)

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Make identification of nan and inf more robust

  Use isinf() and isnan() when converting double to string
  to ensure that the value is given canonical form.

  And implement our own isinf and isnan if necessary


type: ci
user: steveb@workware.net.au
comment:
  Fix [string tolower] buffer overflow for non-utf8

  Reported-by: Andy <jimdevel@hummypkg.org.uk>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Avoid infinite recursion with namespace import

  Reported-By: Sergei Gavrikov <sergei.gavrikov@gmail.com>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  sleep: support sub-second sleep > 1

  e.g. sleep 1.5

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  eventloop: various minor code cleanups

  warn at compile time if subsecond sleep in [after] is not supported
  Simplify time handling by keeping all times in milliseconds since initialisation.
  No need for any sleep on -ve time
  Use memset() in initialisation of eventLoop

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update linenoise.c to match recent github

  From git://github.com/msteveb/linenoise.git

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Use __strtod() on mingw

  As strtod() is unable to parse NaN and Inf

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  allow hash tables to be randomise

  To avoid hash table collision attacks (n.runs-SA-2011.004)
  Note that this options is *off* by default, but it is reasonable
  to consider reversing this.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  tests: Don't stop on the first error

  But still return non-zero if there are any errors
  On some systems there are known test failures

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  tailcall: properly merge tailcall frames

  Resolve the tailcall command immediately in [tailcall] and stash it.

  If a tailcall is currently being evaluated, new tailcalls in the same
  frame are merged/deferred to evaluate in the same C stack frame.

  Can't merge tailcall evaluations across uplevel.

  Add some tests for these cases

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  aio: open |... should use ::popen

  In case not in the global namespace

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Improve file copy -force identical file check

  On mingw we can't rely on dev+ino check

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Fix memory management of aio event handlers

  It was possible for a handler to be deleted
  (e.g. if the handler threw an error), but the
  channel handle to still maintain a pointer to the
  handler script.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  stdlib: errorInfo includes the live stacktrace

  Rather than just the error backtrace ([info stacktrace]),
  include the live stacktrace. This means it is possible to do:

    if {[catch $script msg]}
      puts [errorInfo $msg]
    }

  to output the stack trace from the top level, not just from the point of capture.

  It is still possible to pass a stacktrace to errorInfo to override this behaviour.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Rework binary.tcl in preparation for float support

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Update autosetup/jimsh0.c to the most recent version

  Fixes problem with missing isascii on recent mingw

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  file copy -force handles identical source/target

  No longer truncates the file

  Reported-by: sg0x40 <https://github.com/sg0x40>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Minor code cleanups

  Prefer Jim_String() and Jim_Length() over Jim_GetString() where it makes sense.
  Use Jim_ListGetIndex() where success is guaranteed.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  clock: handle case of format string too long

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  tailcall should resolve command in current namespace

  Currently tailcall resolves the command in the parent
  namespace.

  This also fixes the deletion of [local] commands
  such that they are always correctly deleted.

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Build on platforms without isascii

  Signed-off-by: Steve Bennett <steveb@workware.net.au>
  Reported-by: Paul Fertser <fercerpav@gmail.com>


type: ci
user: steveb@workware.net.au
comment:
  Support nulls in [exec] immediate redirection

  e.g. exec prog <<$data

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Remove tabs from source files

  Tabs accidentally crept into source files in violaton of the style guide

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Use Jim_StrDup() instead of strdup() internally

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add support for 'socket pair'

  Creates a pair of bidirectional sockets with socketpair(2)

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Make Jim_IsBigEndian() public

  And remove declarations of some obsolete functions

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add basic support for [format %b]

  Binary conversion

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  namespace: disallow array element syntax for variables

  Detect and generate an appropriate message if the variable name
  is an array element (dict sugar syntax)

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  clock: remove an extra space from the default format

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Allow object pool to be disabled

  Compile time option, for maintainer debugging

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Add titles to recent regression tests

  Reported-by: Sergei Gavrikov <sergei.gavrikov@gmail.com>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  Allow install programs to be overridden

  Signed-off-by: Stuart Cassoff <stwo@bell.net>
  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  jimregexp: code simplifications and doc cleanups

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


type: ci
user: steveb@workware.net.au
comment:
  regexp: fix utf8_setunicode -> utf8_getchars

  Signed-off-by: Steve Bennett <steveb@workware.net.au>


