Description: <short summary of the patch>
 TODO: Put a short summary on the line above and replace this paragraph
 with a longer explanation of this change. Complete the meta-information
 with other relevant fields (see below for details). To make it easier, the
 information below has been extracted from the changelog. Adjust it or drop
 it.
 .
 ivtools (1.2.11a3-2) unstable; urgency=medium
 .
   * track minor upstream changes
   * bump to debhelper 13
   * tell dh_missing not to worry about *.la files
   * install refman.pdf from debian/tmp to calm dh_missing
Author: Barak A. Pearlmutter <bap@debian.org>

---
The information above should follow the Patch Tagging Guidelines, please
checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:

Origin: <vendor|upstream|other>, <url of original patch>
Bug: <url in upstream bugtracker>
Bug-Debian: https://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Forwarded: <no|not-needed|url proving that it has been forwarded>
Reviewed-By: <name and email of someone who approved the patch>
Last-Update: 2020-05-19

--- ivtools-1.2.11a3.orig/MANIFEST
+++ ivtools-1.2.11a3/MANIFEST
@@ -968,11 +968,9 @@ ivtools-1.2/src/Unidraw/viewcmds.c
 ivtools-1.2/src/Unidraw/viewer.c
 ivtools-1.2/src/comdraw/Imakefile
 ivtools-1.2/src/comdraw/Makefile
-ivtools-1.2/src/comdraw/README
 ivtools-1.2/src/comdraw/main.c
 ivtools-1.2/src/comterp_/Imakefile
 ivtools-1.2/src/comterp_/Makefile
-ivtools-1.2/src/comterp_/README
 ivtools-1.2/src/comterp_/main.c
 ivtools-1.2/src/comtest/Imakefile
 ivtools-1.2/src/comtest/Makefile
@@ -996,11 +994,9 @@ ivtools-1.2/src/drawserv_/Makefile
 ivtools-1.2/src/drawserv_/main.c
 ivtools-1.2/src/drawtool/Imakefile
 ivtools-1.2/src/drawtool/Makefile
-ivtools-1.2/src/drawtool/README
 ivtools-1.2/src/drawtool/main.c
 ivtools-1.2/src/flipbook/Imakefile
 ivtools-1.2/src/flipbook/Makefile
-ivtools-1.2/src/flipbook/README
 ivtools-1.2/src/flipbook/main.c
 ivtools-1.2/src/glyphs/Imakefile
 ivtools-1.2/src/glyphs/Makefile
@@ -1151,7 +1147,6 @@ ivtools-1.2/src/glyphterp/Makefile
 ivtools-1.2/src/glyphterp/main.c
 ivtools-1.2/src/graphdraw/Imakefile
 ivtools-1.2/src/graphdraw/Makefile
-ivtools-1.2/src/graphdraw/README
 ivtools-1.2/src/graphdraw/main.c
 ivtools-1.2/src/html/Imakefile
 ivtools-1.2/src/html/Makefile
@@ -1197,7 +1192,6 @@ ivtools-1.2/src/idemo/Makefile
 ivtools-1.2/src/idemo/main.c
 ivtools-1.2/src/idraw/Imakefile
 ivtools-1.2/src/idraw/Makefile
-ivtools-1.2/src/idraw/README
 ivtools-1.2/src/idraw/main.c
 ivtools-1.2/src/imake/config.h
 ivtools-1.2/src/imake/imake.c
--- ivtools-1.2.11a3.orig/MANIFEST.comterp
+++ ivtools-1.2.11a3/MANIFEST.comterp
@@ -229,7 +229,6 @@ src/Unidraw-common/uhash.c
 src/Unidraw-common/ulist.c
 src/Unidraw-common/umap.c
 src/comterp_/Imakefile
-src/comterp_/README
 src/comterp_/main.c
 src/comtest/Imakefile
 src/comtest/main.c
--- ivtools-1.2.11a3.orig/Makefile.am
+++ ivtools-1.2.11a3/Makefile.am
@@ -113,8 +113,8 @@ libAceDispatch_la_LIBADD	= libIV.la $(AC
 libAttrGlyph_la_LIBADD		= libAttribute.la libIVGlyph.la libUnidraw.la libIV.la
 libAttribute_la_LIBADD		= libUnidraw.la libIV.la libComUtil.la
 libComGlyph_la_LIBADD		= libAttribute.la libComTerp.la libIVGlyph.la libIV.la libComUtil.la
-libComTerp_la_LIBADD		= libAttribute.la libTime.la libUnidraw.la libIV.la $(ACE_LD) libComUtil.la $(MATH_LD)
-libComUnidraw_la_LIBADD		= libAttribute.la libComGlyph.la libComTerp.la libIVGlyph.la libOverlayUnidraw.la libUniIdraw.la libUnidraw.la libIV.la $(ACE_LD) libComUtil.la $(X11_LD)
+libComTerp_la_LIBADD		= libAttribute.la libTime.la libUnidraw.la libIV.la libComUtil.la $(ACE_LD) $(MATH_LD)
+libComUnidraw_la_LIBADD		= libAttribute.la libComGlyph.la libComTerp.la libIVGlyph.la libOverlayUnidraw.la libUniIdraw.la libUnidraw.la libIV.la libComUtil.la $(ACE_LD) $(X11_LD)
 libComUtil_la_LIBADD		= 
 libDrawServ_la_LIBADD		= libAttribute.la libComTerp.la libComUnidraw.la libFrameUnidraw.la libGraphUnidraw.la libIVGlyph.la libOverlayUnidraw.la libTopoFace.la libUniIdraw.la libUnidraw.la libIV.la libComUtil.la $(ACE_LD)
 libFrameUnidraw_la_LIBADD	= libAttribute.la libComGlyph.la libComTerp.la libComUnidraw.la libIVGlyph.la libOverlayUnidraw.la libUniIdraw.la libUnidraw.la libIV.la libComUtil.la
@@ -122,7 +122,7 @@ libGraphUnidraw_la_LIBADD	= libAttribute
 libIVGlyph_la_LIBADD		= libIV.la $(X11_LD)
 libIV_common_la_LIBADD		=
 libIV_la_LIBADD			= $(TIFF_LD) $(XEXT_LD) $(X11_LD) $(MATH_LD)
-libOverlayUnidraw_la_LIBADD	= libAttrGlyph.la libAttribute.la libComGlyph.la libComTerp.la libIVGlyph.la libTopoFace.la libUniIdraw.la libUnidraw.la libIV.la $(ACE_LD) libComUtil.la $(CLIPPOLY_LD) $(X11_LD) $(MATH_LD)
+libOverlayUnidraw_la_LIBADD	= libAttrGlyph.la libAttribute.la libComGlyph.la libComTerp.la libIVGlyph.la libTopoFace.la libUniIdraw.la libUnidraw.la libIV.la libComUtil.la $(ACE_LD) $(CLIPPOLY_LD) $(X11_LD) $(MATH_LD)
 libTime_la_LIBADD		= libIVGlyph.la libIV.la
 libTopoFace_la_LIBADD		= libUnidraw.la libIV.la
 libUniIdraw_la_LIBADD		= libUnidraw.la libIV.la
--- ivtools-1.2.11a3.orig/src/ComTerp/comterp.cc
+++ ivtools-1.2.11a3/src/ComTerp/comterp.cc
@@ -1309,6 +1309,8 @@ void ComTerp::add_defaults() {
     add_command("split", new SplitStrFunc(this));
     add_command("join", new JoinStrFunc(this));
     add_command("substr", new SubStrFunc(this));
+    add_command("symmax", new SymMaxFunc(this));
+    add_command("symcnt", new SymCntFunc(this));
 
     add_command("type", new TypeSymbolFunc(this));
     add_command("class", new ClassSymbolFunc(this));
@@ -1488,6 +1490,7 @@ int* ComTerp::get_commands(int& ncomm, b
       int opid = opr_tbl_opstr(key);
       const char* operator_name = symbol_pntr(opr_tbl_operid(opid));
       if (operator_name) {
+        buffer[ncomm++] = key;
 	key = opr_tbl_operid(opid);
 	opercnt++;
       }
@@ -1503,6 +1506,7 @@ int* ComTerp::get_commands(int& ncomm, b
     }
     i.next();
   }
+  
   if (sort) {
     int* sortedbuffer = new int[ncomm];
     int i = 0;  /* operators first */
--- ivtools-1.2.11a3.orig/src/ComTerp/helpfunc.cc
+++ ivtools-1.2.11a3/src/ComTerp/helpfunc.cc
@@ -175,7 +175,7 @@ void HelpFunc::execute() {
 
   if (noargs) {
 
-    *out << "help available on these commands:\n";
+    *out << "help available on these operators and commands:\n";
     comterp()->list_commands(*out, true);
     *out << "\n(provide any of the above, operators in quotes, as arguments to help,\ni.e. help(help) or help(\"++\"))\n";
 
--- ivtools-1.2.11a3.orig/src/ComTerp/symbolfunc.cc
+++ ivtools-1.2.11a3/src/ComTerp/symbolfunc.cc
@@ -577,3 +577,24 @@ void SubStrFunc::execute() {
 }
 
 
+/*****************************************************************************/
+
+SymMaxFunc::SymMaxFunc(ComTerp* comterp) : ComFunc(comterp) {
+}
+
+void SymMaxFunc::execute() {
+  ComValue retval(symbol_max());
+  push_stack(retval);
+  return;
+}
+
+/*****************************************************************************/
+
+SymCntFunc::SymCntFunc(ComTerp* comterp) : ComFunc(comterp) {
+}
+
+void SymCntFunc::execute() {
+  ComValue retval(symbol_cnt());
+  push_stack(retval);
+  return;
+}
--- ivtools-1.2.11a3.orig/src/ComTerp/symbolfunc.h
+++ ivtools-1.2.11a3/src/ComTerp/symbolfunc.h
@@ -160,4 +160,28 @@ public:
 };
 
 
+//: command to return current size of symbol table
+// num=symmax() -- return current size of symbol table
+class SymMaxFunc : public ComFunc {
+public:
+    SymMaxFunc(ComTerp*);
+    virtual void execute();
+
+    virtual const char* docstring() { 
+      return "num=%s() -- return current size of symbol table"; }
+};
+
+
+//: command to return number of symbols in table
+// num=symcnt() -- return number of symbols in table
+class SymCntFunc : public ComFunc {
+public:
+    SymCntFunc(ComTerp*);
+    virtual void execute();
+
+    virtual const char* docstring() { 
+      return "num=%s() -- return number of symbols in table"; }
+};
+
+
 #endif /* !defined(_symbolfunc_h) */
--- ivtools-1.2.11a3.orig/src/ComUtil/comutil.arg
+++ ivtools-1.2.11a3/src/ComUtil/comutil.arg
@@ -16,6 +16,7 @@ int symbol_len (int id);
 const char *symbol_pntr(int id);
 int symbol_instances(int id);
 int symbol_max();
+int symbol_cnt();
 int symbol_refcount(int id);
 /* DMM.C */ 
 int dmm_mblock_alloc(unsigned long nbytes);
--- ivtools-1.2.11a3.orig/src/ComUtil/symbols.cc
+++ ivtools-1.2.11a3/src/ComUtil/symbols.cc
@@ -62,6 +62,7 @@ struct _symid   {
 
 static symid *symid_beg=NULL;	/* start addr of symbol table id's */
 static unsigned symid_nrecs;	/* number of records in the table */
+static unsigned symbol_count;	/* current count of symbols in table */
 
 static int symid_alloc_num;
 #define LOTS_OF_MEM	32000
@@ -173,6 +174,7 @@ main()
   else 	/* you have to add the symbol */
   {
     int found;
+    symbol_count++;
 
     if (symid_beg == NULL)	/* if NULL, allocate some space for symbol table */
     {
@@ -264,6 +266,7 @@ See Also:  symbol_add(), symbol_find()
      _reverse_table->remove(pntr->symstr);
      free(pntr->symstr);
      pntr->symstr = NULL;
+     symbol_count--;
    } 
    retval = FUNCOK;
 error_return:		/* return an error code */
@@ -564,9 +567,43 @@ Description:
 
 Returns the current size of the symbol table.
 
-See Also:  symbol_instances()
+See Also:  symbol_cnt()
 
 !*/
 {
   return(symid_nrecs);
 }
+
+/*!
+
+symbol_cnt     Number of symbols in table.
+
+Summary:
+
+#include <ComUtil/comutil.h>
+*/
+
+int symbol_cnt ()
+
+/*!
+Return Value:  current number of symbols in the table
+
+Parameters:
+
+Type            Name          IO  Description
+------------    -----------   --  -----------                  */
+#ifdef DOC
+#endif
+
+
+/*!
+Description:
+
+Returns the current number of symbols in the table.
+
+See Also:  symbol_max()
+
+!*/
+{
+  return(symbol_count);
+}
--- ivtools-1.2.11a3.orig/src/Dispatch/dispatcher.cc
+++ ivtools-1.2.11a3/src/Dispatch/dispatcher.cc
@@ -663,7 +663,7 @@ int Dispatcher::waitFor(
 #endif
 #else
 #ifdef SA_NOCLDSTOP                   /* POSIX */
-#if defined(__CYGWIN__) || defined(hpux) || defined(linux) || defined(sun) && defined(__svr4__)
+#if defined(__CYGWIN__) || defined(hpux) || defined(linux) || defined(sun) && defined(__svr4__) || 1 // stop supporting special POSIX CASE
 	sa.sa_handler = (void (*)(int))(&Dispatcher::sigCLD);
 #else
 	sa.sa_handler = fxSIGACTIONHANDLER(&Dispatcher::sigCLD);
--- ivtools-1.2.11a3.orig/src/include/ivstd/fstream
+++ ivtools-1.2.11a3/src/include/ivstd/fstream
@@ -1,4 +1,4 @@
-#if  !defined(__APPLE_CC__) || __APPLE_CC__==1 || 0
+#if  !defined(__APPLE_CC__) || __APPLE_CC__==1
 #include_next <fstream>
 #else
 // -*- C++ -*-
--- ivtools-1.2.11a3.orig/src/man/man1/comdraw.1
+++ ivtools-1.2.11a3/src/man/man1/comdraw.1
@@ -29,41 +29,35 @@ graphical object assigned to an interpre
  compview=rectangle(x0,y0,x1,y1) -- same as rect
  compview=line(x0,y0,x1,y1) -- create a line
  compview=arrowline(x0,y0,x1,y1) -- create line with arrows
- compview=ellipse(x0,y0,r1,r2) -- create a rectangle
+ compview=ellipse(x0,y0,r1,r2) -- create an ellipse
  compview=text(x0,y0 textstr) -- create a text string
- compview=multiline(x0,y0[,x1,y1,...]) -- 
-    create a multiline
- compview=arrowmultiline(x0,y0[,x1,y1,...]) -- 
-    create a multiline with arrows
- compview=openspline(x0,y0[,x1,y1,...]) --
-    create an open spline
- compview=arrowspline(x0,y0[,x1,y1,...]) -- 
-    create an open spline with arrows
- compview=polygon(x0,y0[,x1,y1,...]) -- 
-    create a polygon
- compview=closedspline(x0,y0[,x1,y1,...]) -- 
-    create a closed spline
- compview=raster(x0,y0,x1,y1) -- 
-    create an empty raster
+ compview=multiline(x0,y0[,x1,y1,...]) -- create a multiline
+ compview=arrowmultiline(x0,y0[,x1,y1,...]) -- create multiline with arrows
+ compview=openspline(x0,y0[,x1,y1,...]) -- create an open spline
+ compview=arrowspline(x0,y0[,x1,y1,...]) -- create open spline with arrows
+ compview=polygon(x0,y0[,x1,y1,...]) -- create a polygon
+ compview=closedspline(x0,y0[,x1,y1,...]) -- create a closed spline
+ compview=raster(x0,y0,x1,y1) -- create an empty raster
 
 .SH GRAPHIC STATS COMMANDS
 
- xylist=center(compview :xy :yx :x :y :scrn) -- center of compview (dflt :xy)
- rectlist=mbr(compview :lbrt :lrbt :scrn) -- minimum bounding rectangle of compview (dflt :lbrt)
- ptlist=points(compview) -- return point list from compview graphic
+ xylist=center(compview :xy :yx :x :y :scrn)
+    -- center of compview (dflt :xy)
+ rectlist=mbr(compview :lbrt :lrbt :scrn)
+    -- minimum bounding rectangle of compview (dflt :lbrt)
+ ptlist=points(compview)
+    -- return point list from compview graphic
 
 .SH GRAPHIC STATE COMMANDS
 
  font(fontnum) -- set current font from menu
  brush(brushnum) -- set current brush from menu
- pattern(patternnum) -- 
-   set current pattern from menu
- colors(fgcolornum bgcolornum) -- 
-   set current colors from menu
- colorsrgb(fgcolornum bgcolornum) -- set current colors by RGB name.
-	 The colorname format is "#RGB" for 4 bits, "#RRGGBB" for 8 bits,
-	 #RRRGGGBBB for 12 bits, #RRRRGGGGBBBB for 16 bits
-
+ pattern(patternnum) --  set current pattern from menu
+ colors(fgcolornum bgcolornum) -- set current colors from menu
+ colorsrgb(fgcolornum bgcolornum)
+   -- set current colors by RGB name.
+      The colorname format is "#RGB" for 4 bits, "#RRGGBB" for 8 bits,
+      #RRRGGGBBB for 12 bits, #RRRRGGGGBBBB for 16 bits
  nfonts() -- return size of font menu
  nbrushes() -- return size of brush menu
  npatterns() -- return size of pattern menu
@@ -71,8 +65,8 @@ graphical object assigned to an interpre
 
 .SH DIRECT MANIPULATION COMMANDS
 
- select([compview ...] :all :clear) -- 
-    make these graphics the current selection
+ select([compview ...] :all :clear)
+   -- make these graphics the current selection
  delete(compview [compview ...]) -- delete graphic(s)
  move(dx dy) -- move current selection
  scale(xflt yflt) -- scale current selection
@@ -82,15 +76,21 @@ graphical object assigned to an interpre
 
 .SH GROUP/UNGROUP COMMANDS
 
- newgroup=growgroup(groupview compview) -- add graphic to existing group graphic
- newgroup=trimgroup(groupview compview) -- remove graphic from existing group graphic
+ newgroup=growgroup(groupview compview)
+   -- add graphic to existing group graphic
+ newgroup=trimgroup(groupview compview)
+   -- remove graphic from existing group graphic
 
 .SH COMPONENT AND ATTRIBUTE COMMANDS
 
- compview=setattr(compview [:keyword value [:keyword value [...]]]) -- set attributes of a graphic component
- attrlist(compview) -- return attribute list of component
- compview=frame([index]) -- return composite component for a frame, defaults to current
- val=at(list|attrlist|compview n :set val :ins val) -- return (or set or insert after) the nth item in a list.
+ compview=setattr(compview [:keyword value [:keyword value [...]]])
+   -- set attributes of a graphic component
+ attrlist(compview)
+   -- return attribute list of component
+ compview=frame([index])
+   -- return composite component for a frame, defaults to current
+ val=at(list|attrlist|compview n :set val :ins val)
+   -- return (or set or insert after) the nth item in a list.
  num=size(list|attrlist|compview) -- return size of a list.
  compview=parent(compview) -- get parent of graphic
  comp=depth(comps) -- depth-first walk of comp tree
@@ -101,11 +101,16 @@ graphical object assigned to an interpre
  update() -- update viewer
 
  error=save([pathstr]) -- command to save document (to pathname)	
- compview=import(pathstr :popen :next) -- import graphic file from pathname or URL, or from a command if :popen
- (:next imports next in numeric series)
- export(compview[,compview[,...compview]] [path] :host host_str :port port_int :socket :string|:str :eps :idraw) -- remote in drawtool (or other) format
- compview=paste(compview [xscale yscale xoff yoff | a00,a01,a10,a11,a20,a21]) -- paste graphic into the viewer
- val=pastemode([val] :get) -- toggle or set paste mode, default is 0, always paste new graphics
+ compview=import(pathstr :popen :next)
+   -- import graphic file from pathname or URL, or from a command if :popen
+      (:next imports next in numeric series)
+ export(compview[,compview[,...compview]] [path]
+ :host host_str :port port_int :socket :string|:str :eps :idraw)
+   -- remote in drawtool (or other) format
+ compview=paste(compview [xscl yscl xoff yoff | a00,a01,a10,a11,a20,a21])
+   -- paste graphic into the viewer
+ val=pastemode([val] :get)
+   -- toggle or set paste mode, default is 0, always paste new graphics
 
  ncols() -- onscreen horizontal extent in pixels
  nrows() -- onscreen vertical extent in pixels
@@ -116,9 +121,10 @@ graphical object assigned to an interpre
  gx,gy=dtog(compview dx,dy) -- convert from drawing to graphic coordinates
 
  handles(flag) --     
-    enable/disable current selection tic marks 
-    and/or highlighting
- highlight(compview compviewgs) -- set the highlight graphic state for a graphic
+   -- enable/disable current selection tic marks 
+      and/or highlighting
+ highlight(compview compviewgs)
+   -- set the highlight graphic state for a graphic
 
  zoom(zoomflt) -- zoom by factor
  zoomin() -- zoom-in by 2
@@ -156,15 +162,16 @@ graphical object assigned to an interpre
 
 .SH PLOTTING COMMANDS
 
--- requires plotmtv and pstoedit --
-barplot([var_str value_float] [...] :title title_str :xtitle xtitle_str 
-	:ytitle ytitle_str :valtitle valtitle_str :newview) -- display a barplot
+ ** requires plotmtv and pstoedit **
+ barplot([var_str value_float] [...] :title title_str :xtitle xtitle_str 
+	:ytitle ytitle_str :valtitle valtitle_str :newview)
+  -- display a barplot
 
 .SH OTHER COMMANDS
 
  acknowledgebox(msgstr) -- popup an acknowledge dialog box
- confirmbox(msgstr) -- popup a confirmation dialog box, and return 1, 0, or \-1 if cancelled
-
+ confirmbox(msgstr)
+   -- popup a confirmation dialog box, and return 1, 0, or \-1 if cancelled
  run(filename) -- run commands from file
  quit() -- quit this interpreter
  exit() -- exit entire application
--- ivtools-1.2.11a3.orig/src/man/man1/comterp.1
+++ ivtools-1.2.11a3/src/man/man1/comterp.1
@@ -213,6 +213,11 @@ Evaluate single expression then exit.
 
  val=index(list|str val|char|str :last :all :substr) -- return index of value (or char or string) in list (or string), nil if not found.
 
+ num=symmax() -- return current size of symbol table
+
+ num=symcnt() -- return number of symbols in table
+
+
 .SH STREAM COMMANDS:
  
  val=next(stream) -- return next value from stream
@@ -270,6 +275,8 @@ Evaluate single expression then exit.
  sym=symvar(sym) -- return symbol as-is
 
  str=symstr(sym) -- return string version of symbol
+ 
+ sym=bquote(sym) -- LISP-like backquote operator
 
  n=strref(str|symid) -- return string reference count
 
@@ -290,8 +297,10 @@ Evaluate single expression then exit.
  arr=posteval(arg1 [arg2 [arg3 ... [argn]]]) -- post-evaluate every fixed argument (until nil) and return array
 				 
  sym=attrname(attribute) -- return name field of dotted pair
+
  val=attrval(attribute) -- return value field of dotted pair
- dotlst=dot(name) -- construct empty dotted pair list	
+
+ dotlst=dot(name) -- construct empty dotted pair list
 
  quit() -- quit the interpreter
 
