ivtools-patch Mailing List for ivtools (Page 4)
Brought to you by:
johnston
You can subscribe to this list here.
1999 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2000 |
Jan
(17) |
Feb
(14) |
Mar
(7) |
Apr
(7) |
May
(20) |
Jun
(18) |
Jul
(5) |
Aug
(9) |
Sep
(4) |
Oct
(2) |
Nov
(2) |
Dec
(1) |
2001 |
Jan
(3) |
Feb
(2) |
Mar
(5) |
Apr
(7) |
May
(9) |
Jun
(15) |
Jul
(10) |
Aug
(2) |
Sep
(10) |
Oct
(15) |
Nov
(14) |
Dec
(2) |
2002 |
Jan
(8) |
Feb
(13) |
Mar
(10) |
Apr
(3) |
May
(2) |
Jun
(7) |
Jul
(5) |
Aug
(3) |
Sep
(1) |
Oct
(1) |
Nov
(10) |
Dec
|
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
|
Sep
|
Oct
(4) |
Nov
(1) |
Dec
(3) |
2004 |
Jan
(2) |
Feb
(6) |
Mar
(1) |
Apr
(1) |
May
|
Jun
(1) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2005 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
(4) |
Nov
(1) |
Dec
|
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
(2) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
2010 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ivt...@li...> - 2002-01-15 00:36:54
|
Patch: ivtools-020114-johnston-021 For: ivtools-1.0.1 Author: joh...@us... Subject: fixes for compiling with Cygwin Requires: This is an intermediate patch to ivtools-1.0.1. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - changes required to get things compiling with Cygwin under Windows 2K Index: src_iv/Imakefile diff -c src_iv/Imakefile:1.1 src_iv/Imakefile:1.2 *** src_iv/Imakefile:1.1 Fri Nov 2 13:04:54 2001 --- src/IV/Imakefile Mon Jan 14 16:28:11 2002 *************** *** 65,71 **** InterViewsObjFlags(dialogs,$(KIT_CCFLAGS)) InterViewsObj(fbrowser) InterViewsObj(fchooser) ! InterViewsObj(field) InterViewsObj(geometry) InterViewsObj(glyph) InterViewsObj(group) --- 65,71 ---- InterViewsObjFlags(dialogs,$(KIT_CCFLAGS)) InterViewsObj(fbrowser) InterViewsObj(fchooser) ! InterViewsObjFlags(field,-O2) InterViewsObj(geometry) InterViewsObj(glyph) InterViewsObj(group) Index: src_interviews/psfont.c diff -c src_interviews/psfont.c:1.1 src_interviews/psfont.c:1.2 *** src_interviews/psfont.c:1.1 Fri Nov 2 13:05:00 2001 --- src/InterViews/psfont.c Mon Jan 14 16:28:13 2002 *************** *** 23,29 **** */ /* ! * PSFont - use PostScript font metrics */ #include <InterViews/psfont.h> --- 23,29 ---- */ /* ! * iv_PSFont - use PostScript font metrics */ #include <InterViews/psfont.h> *************** *** 40,46 **** class PSFontImpl { private: ! friend class PSFont; char* name; char* encoding; --- 40,46 ---- class PSFontImpl { private: ! friend class PSFont_31; char* name; char* encoding; *************** *** 50,56 **** static char* psfile(const char* name); }; ! PSFont::PSFont( const char* psname, Coord size, const char* name, float scale ) : Font(name, scale) { PSFontImpl* p = new PSFontImpl; --- 50,56 ---- static char* psfile(const char* name); }; ! PSFont_31::PSFont_31( const char* psname, Coord size, const char* name, float scale ) : Font(name, scale) { PSFontImpl* p = new PSFontImpl; *************** *** 83,101 **** delete metrics_file; } ! PSFont::~PSFont() { delete impl_->name; delete impl_->encoding; delete impl_; } ! const char* PSFont::name() const { return impl_->name; } ! const char* PSFont::encoding() const { return impl_->encoding; } ! Coord PSFont::size() const { return impl_->size; } ! Coord PSFont::width(long c) const { return impl_->widths[c]; } ! Coord PSFont::width(const char* s, int n) const { return Font::width(s, n); } ! boolean PSFont::exists(const char* psname) { char* metrics_file = PSFontImpl::psfile(psname); FILE* f = fopen(metrics_file, "r"); delete metrics_file; --- 83,101 ---- delete metrics_file; } ! PSFont_31::~PSFont_31() { delete impl_->name; delete impl_->encoding; delete impl_; } ! const char* PSFont_31::name() const { return impl_->name; } ! const char* PSFont_31::encoding() const { return impl_->encoding; } ! Coord PSFont_31::size() const { return impl_->size; } ! Coord PSFont_31::width(long c) const { return impl_->widths[c]; } ! Coord PSFont_31::width(const char* s, int n) const { return Font::width(s, n); } ! boolean PSFont_31::exists(const char* psname) { char* metrics_file = PSFontImpl::psfile(psname); FILE* f = fopen(metrics_file, "r"); delete metrics_file; Index: src_iv-2_6/rubrect.c diff -c src_iv-2_6/rubrect.c:1.1 src_iv-2_6/rubrect.c:1.2 *** src_iv-2_6/rubrect.c:1.1 Fri Nov 2 13:05:04 2001 --- src/IV-2_6/rubrect.c Mon Jan 14 16:28:15 2002 *************** *** 33,39 **** #include <stdlib.h> #ifndef apollo #if defined(__CYGWIN__) ! #include <mingw32/float.h> #else #include <math.h> #define MAXFLOAT HUGE_VAL --- 33,39 ---- #include <stdlib.h> #ifndef apollo #if defined(__CYGWIN__) ! #include <float.h> #else #include <math.h> #define MAXFLOAT HUGE_VAL Index: IVGlyph/idraw.c diff -c IVGlyph/idraw.c:1.1 IVGlyph/idraw.c:1.2 *** IVGlyph/idraw.c:1.1 Fri Nov 2 13:05:31 2001 --- src/IVGlyph/idraw.c Mon Jan 14 16:28:19 2002 *************** *** 478,486 **** NullTerminatedString psname_nt(psname); float pointsize; read(pointsize); ! if (PSFont::exists(psname_nt.string())) { NullTerminatedString s_nt(s); ! return new PSFont(psname_nt.string(), pointsize, s_nt.string(), 1.0) ; } return WidgetKit::instance()->font(); --- 478,486 ---- NullTerminatedString psname_nt(psname); float pointsize; read(pointsize); ! if (PSFont_31::exists(psname_nt.string())) { NullTerminatedString s_nt(s); ! return new PSFont_31(psname_nt.string(), pointsize, s_nt.string(), 1.0) ; } return WidgetKit::instance()->font(); Index: examples3.1_ips/idraw.c diff -c examples3.1_ips/idraw.c:1.1 examples3.1_ips/idraw.c:1.2 *** examples3.1_ips/idraw.c:1.1 Fri Nov 2 13:06:25 2001 --- src/glyphs/examples3.1/ips/idraw.c Mon Jan 14 16:28:29 2002 *************** *** 444,452 **** NullTerminatedString psname_nt(psname); float pointsize; read(pointsize); ! if (PSFont::exists(psname_nt.string())) { NullTerminatedString s_nt(s); ! return new PSFont(psname_nt.string(), pointsize, s_nt.string(), 1.0); } String default_font("fixed"); Session::instance()->style()->find_attribute("font", default_font); --- 444,452 ---- NullTerminatedString psname_nt(psname); float pointsize; read(pointsize); ! if (PSFont_31::exists(psname_nt.string())) { NullTerminatedString s_nt(s); ! return new PSFont_31(psname_nt.string(), pointsize, s_nt.string(), 1.0); } String default_font("fixed"); Session::instance()->style()->find_attribute("font", default_font); Index: include_interviews/psfont.h diff -c include_interviews/psfont.h:1.1 include_interviews/psfont.h:1.2 *** include_interviews/psfont.h:1.1 Fri Nov 2 13:07:34 2001 --- src/include/InterViews/psfont.h Mon Jan 14 16:28:39 2002 *************** *** 23,29 **** */ /* ! * PSFont - use PostScript font metrics */ #ifndef iv_psfont_h --- 23,29 ---- */ /* ! * iv_PSFont - use PostScript font metrics */ #ifndef iv_psfont_h *************** *** 35,44 **** class PSFontImpl; ! class PSFont : public Font { public: ! PSFont(const char* psname, Coord size, const char* name, float scale); ! virtual ~PSFont(); static boolean exists(const char* psname); --- 35,44 ---- class PSFontImpl; ! class PSFont_31 : public Font { public: ! PSFont_31(const char* psname, Coord size, const char* name, float scale); ! virtual ~PSFont_31(); static boolean exists(const char* psname); Index: config_ivtools/site.def.CYGWIN diff -c config_ivtools/site.def.CYGWIN:1.1 config_ivtools/site.def.CYGWIN:1.2 *** config_ivtools/site.def.CYGWIN:1.1 Fri Nov 2 13:08:11 2001 --- config/site.def.CYGWIN Mon Jan 14 16:28:47 2002 *************** *** 5,10 **** --- 5,14 ---- #undef ExtraCCLdLibs #define ExtraCCLdLibs -lstdc++ -lm + /* permissive for X11R6.4 include files */ + #undef ExtraCCFlags + #define ExtraCCFlags -fpermissive + /* file output by configure script */ #include "config-default-gcc.defs" *** /dev/null Mon Jan 14 16:28:50 PST 2002 --- patches/ivtools-020114-johnston-021 *************** patches/ivtools-020114-johnston-021 *** 0 **** --- 1 ---- + ivtools-020114-johnston-021 |
From: <ivt...@li...> - 2002-01-15 00:08:11
|
Patch: ivtools-020114-johnston-020 For: ivtools-1.0.1 Author: joh...@us... Subject: add -comdraw_off argument to comdraw (to disable stdin interpreter) Requires: This is an intermediate patch to ivtools-1.0.1. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - add -comdraw_off argument to comdraw to disable a comterp interpreter on stdin. Useful when supplying "comdraw -" as the command line for printing from a browser, i.e. "comdraw -comdraw_off -". Index: comdraw/main.c diff -c comdraw/main.c:1.2 comdraw/main.c:1.3 *** comdraw/main.c:1.2 Wed Jan 9 09:06:25 2002 --- src/comdraw/main.c Mon Jan 14 15:57:06 2002 *************** *** 161,167 **** { "*twidth", "512" }, { "*zoomer_off", "false" }, { "*opaque_off", "false" }, ! { "*stripped", "false" }, #ifdef HAVE_ACE { "*import", "20001" }, { "*comdraw", "20002" }, --- 161,168 ---- { "*twidth", "512" }, { "*zoomer_off", "false" }, { "*opaque_off", "false" }, ! { "*stripped", "false" }, ! { "*comdraw_off", "false" }, #ifdef HAVE_ACE { "*import", "20001" }, { "*comdraw", "20002" }, *************** *** 206,211 **** --- 207,213 ---- { "-opaque_off", "*opaque_off", OptionValueImplicit, "true" }, { "-opoff", "*opaque_off", OptionValueImplicit, "true" }, { "-stripped", "*stripped", OptionValueImplicit, "true" }, + { "-comdraw_off", "*comdraw_off", OptionValueImplicit, "true" }, #ifdef HAVE_ACE { "-import", "*import", OptionValueNext }, { "-comdraw", "*comdraw", OptionValueNext }, *************** *** 221,228 **** #ifdef HAVE_ACE static char* usage = ! "Usage: comdraw [any idraw parameter] [-comdraw port] [-color5] \n\ ! [-color6] [-import portnum] [-gray5] [-gray6] [-gray7] [-opaque_off|-opoff] \n\ [-pagecols|-ncols n] [-pagerows|-nrows n] [-panner_off|-poff] \n\ [-panner_align|-pal tl|tc|tr|cl|c|cr|cl|bl|br|l|r|t|b|hc|vc] \n\ [-rampsize n ] [-scribble_pointer|-scrpt ] [-slider_off|-soff] [-stripped]\n\ --- 223,230 ---- #ifdef HAVE_ACE static char* usage = ! "Usage: comdraw [any idraw parameter] [-comdraw port] [-comdraw_off] [-color5] \n\ ! [-color6] [-import portnum] [-gray5] [-gray6] [-gray7] [-opaque_off|-opoff] \n\ [-pagecols|-ncols n] [-pagerows|-nrows n] [-panner_off|-poff] \n\ [-panner_align|-pal tl|tc|tr|cl|c|cr|cl|bl|br|l|r|t|b|hc|vc] \n\ [-rampsize n ] [-scribble_pointer|-scrpt ] [-slider_off|-soff] [-stripped]\n\ *************** *** 230,237 **** [-wbhost host] [-wbmaster] [-wbslave] [-wbport port] [-zoomer_off|-zoff] [file]"; #else static char* usage = ! "Usage: comdraw [any idraw parameter] [-color5] \n\ ! [-color6] [-gray5] [-gray6] [-gray7] [-opaque_off|-opoff] \n\ [-pagecols|-ncols n] [-pagerows|-nrows n] [-panner_off|-poff] \n\ [-panner_align|-pal tl|tc|tr|cl|c|cr|cl|bl|br|l|r|t|b|hc|vc] \n\ [-rampsize n ] [-scribble_pointer|-scrpt ] [-slider_off|-soff] [-stripped]\n\ --- 232,239 ---- [-wbhost host] [-wbmaster] [-wbslave] [-wbport port] [-zoomer_off|-zoff] [file]"; #else static char* usage = ! "Usage: comdraw [any idraw parameter] [-color5] [-color6] \n\ ! [-comdraw_off] [-gray5] [-gray6] [-gray7] [-opaque_off|-opoff] \n\ [-pagecols|-ncols n] [-pagerows|-nrows n] [-panner_off|-poff] \n\ [-panner_align|-pal tl|tc|tr|cl|c|cr|cl|bl|br|l|r|t|b|hc|vc] \n\ [-rampsize n ] [-scribble_pointer|-scrpt ] [-slider_off|-soff] [-stripped]\n\ *************** *** 310,325 **** unidraw->Open(ed); #ifdef HAVE_ACE /* Start up one on stdin */ ! UnidrawComterpHandler* stdin_handler = new UnidrawComterpHandler(); #if 0 ! if (ACE::register_stdin_handler(stdin_handler, COMTERP_REACTOR::instance(), nil) == -1) #else ! if (COMTERP_REACTOR::instance()->register_handler(0, stdin_handler, ACE_Event_Handler::READ_MASK)==-1) #endif ! cerr << "comdraw: unable to open stdin with ACE\n"; ! ed->SetComTerp(stdin_handler->comterp()); #endif fprintf(stderr, "ivtools-%s comdraw: see \"man comdraw\" or type help here for command info\n", VersionString); --- 312,331 ---- unidraw->Open(ed); #ifdef HAVE_ACE + /* Start up one on stdin */ ! const char* comdraw_off_str = unidraw->GetCatalog()->GetAttribute("comdraw_off"); ! if (!comdraw_off_str || strcmp(comdraw_off_str, "false")==0) { ! UnidrawComterpHandler* stdin_handler = new UnidrawComterpHandler(); #if 0 ! if (ACE::register_stdin_handler(stdin_handler, COMTERP_REACTOR::instance(), nil) == -1) #else ! if (COMTERP_REACTOR::instance()->register_handler(0, stdin_handler, ACE_Event_Handler::READ_MASK)==-1) #endif ! cerr << "comdraw: unable to open stdin with ACE\n"; ! ed->SetComTerp(stdin_handler->comterp()); ! } #endif fprintf(stderr, "ivtools-%s comdraw: see \"man comdraw\" or type help here for command info\n", VersionString); *** /dev/null Mon Jan 14 15:57:17 PST 2002 --- patches/ivtools-020114-johnston-020 *************** patches/ivtools-020114-johnston-020 *** 0 **** --- 1 ---- + ivtools-020114-johnston-020 |
From: <ivt...@li...> - 2002-01-11 00:18:31
|
Patch: ivtools-020110-johnston-019 For: ivtools-1.0.1 Author: joh...@us... Subject: keep graphdraw compiling without ACE Requires: This is an intermediate patch to ivtools-1.0.1. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - keep graphdraw compiling without ACE - get the year right in the CHANGES file for release 1.0.1 Index: top_ivtools/CHANGES diff -c top_ivtools/CHANGES:1.2 top_ivtools/CHANGES:1.3 *** top_ivtools/CHANGES:1.2 Wed Jan 9 16:35:40 2002 --- ./CHANGES Thu Jan 10 16:13:47 2002 *************** *** 1,4 **** ! January 9th, 2001 ivtools-1.0.1 - add comdraw funcs to poke (grey-level) pixel values into a raster, and return the horizontal and vertical extent of the raster: --- 1,4 ---- ! January 9th, 2002 ivtools-1.0.1 - add comdraw funcs to poke (grey-level) pixel values into a raster, and return the horizontal and vertical extent of the raster: Index: graphdraw/main.c diff -c graphdraw/main.c:1.2 graphdraw/main.c:1.3 *** graphdraw/main.c:1.2 Wed Jan 9 09:06:30 2002 --- src/graphdraw/main.c Thu Jan 10 16:14:05 2002 *************** *** 198,203 **** --- 198,204 ---- [-panner_align|-pal tl|tc|tr|cl|c|cr|cl|bl|br|l|r|t|b|hc|vc ] \n\ [-scribble_pointer|-scrpt ] [-slider_off|-soff] [-zoomer_off|-zoff] [file]"; #else + static char* usage = "Usage: graphdraw [any idraw parameter] [-color5] [-color6] \n\ [-gray5] [-gray6] [-gray7] [-opaque_off|-opoff] [-pagecols|-ncols n] \n\ [-pagerows|-nrows n] [-panner_off|-poff] \n\ *** /dev/null Thu Jan 10 16:14:13 PST 2002 --- patches/ivtools-020110-johnston-019 *************** patches/ivtools-020110-johnston-019 *** 0 **** --- 1 ---- + ivtools-020110-johnston-019 |
From: <ivt...@li...> - 2002-01-09 23:27:02
|
Patch: ivtools-020109-johnston-017 For: ivtools-1.0 Author: joh...@us... Subject: streamline comterp error handling Requires: This is an intermediate patch to ivtools-1.0. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - fix up drawing editor stdin command interpreters without ACE, so that they are all there, and they handle multiple expressions on a single command line. - streamline comterp error handling, by avoiding any error file I/O operations if no error messages have been accrued, and the addition of an err_cnt() function that tells how many messages have been accrued. Index: ComUtil/comutil.arg diff -c ComUtil/comutil.arg:1.1 ComUtil/comutil.arg:1.2 *** ComUtil/comutil.arg:1.1 Tue Nov 13 15:47:27 2001 --- src/ComUtil/comutil.arg Wed Jan 9 13:55:35 2002 *************** *** 80,85 **** --- 80,86 ---- void err_clear(); void err_level(unsigned level); FILE *err_fileio(); + int err_cnt(); /* COMERR.C */ char *comerr_read(unsigned errnum); void comerr_set(unsigned errnum,unsigned errlen); Index: ComUtil/errsys.c diff -c ComUtil/errsys.c:1.2 ComUtil/errsys.c:1.3 *** ComUtil/errsys.c:1.2 Thu Nov 29 13:33:57 2001 --- src/ComUtil/errsys.c Wed Jan 9 13:55:35 2002 *************** *** 1,4 **** --- 1,5 ---- /* + * Copyright (c) 2001 Scott E. Johnston * Copyright (c) 1993-1995 Vectaport Inc. * Copyright (c) 1989 Triple Vision, Inc. * *************** *** 28,34 **** void err_set(), void err_get(), void err_print(), void err_str(), void err_clear(), void err_level(), ! FILE *err_fileio() History: Written by Scott E. Johnston, March 1989 --- 29,35 ---- void err_set(), void err_get(), void err_print(), void err_str(), void err_clear(), void err_level(), ! FILE *err_fileio(), int err_cnt() History: Written by Scott E. Johnston, March 1989 *************** *** 105,111 **** See Also: err_read, err_set, err_get, err_print, err_str, err_clear, ! err_level, err_fileio !*/ #undef TITLE --- 106,112 ---- See Also: err_read, err_set, err_get, err_print, err_str, err_clear, ! err_level, err_fileio, err_cnt !*/ #undef TITLE *************** *** 207,213 **** See Also: err_readfile, err_open, err_set, err_get, err_print, err_str, ! err_clear, err_level, err_fileio !*/ --- 208,214 ---- See Also: err_readfile, err_open, err_set, err_get, err_print, err_str, ! err_clear, err_level, err_fileio, err_cnt !*/ *************** *** 267,273 **** See Also: err_open, err_read, err_get, err_print, err_str, err_clear, ! err_level, err_fileio !*/ --- 268,274 ---- See Also: err_open, err_read, err_get, err_print, err_str, err_clear, ! err_level, err_fileio, err_cnt !*/ *************** *** 333,339 **** See Also: err_open, err_read, err_set, err_print, err_str, err_clear, ! err_level, err_fileio !*/ --- 334,340 ---- See Also: err_open, err_read, err_set, err_print, err_str, err_clear, ! err_level, err_fileio, err_cnt !*/ *************** *** 393,399 **** See Also: err_open, err_read, err_set, err_get, err_clear, err_level, ! err_fileio !*/ --- 394,400 ---- See Also: err_open, err_read, err_set, err_get, err_clear, err_level, ! err_fileio, err_cnt !*/ *************** *** 402,416 **** char *ptr; char buffer[BUFSIZ]; /* Rewind error I/O file */ if( ErrorIOFile == NULL ) return; rewind( ErrorIOFile ); - /* Abort if no errors have occurred */ - if( TopError == -1 ) - return; - /* Print overflow messages */ if( TooManyErrors ) { fprintf( outstream, "*** Warning: Error depth greater than %d ***\n", --- 403,417 ---- char *ptr; char buffer[BUFSIZ]; + /* Abort if no errors have occurred */ + if( TopError == -1 ) + return; + /* Rewind error I/O file */ if( ErrorIOFile == NULL ) return; rewind( ErrorIOFile ); /* Print overflow messages */ if( TooManyErrors ) { fprintf( outstream, "*** Warning: Error depth greater than %d ***\n", *************** *** 501,507 **** See Also: err_open, err_read, err_set, err_get, err_print, err_clear, ! err_level, err_fileio !*/ --- 502,508 ---- See Also: err_open, err_read, err_set, err_get, err_print, err_clear, ! err_level, err_fileio, err_cnt !*/ *************** *** 510,524 **** char *ptr; char buffer[bufsiz]; /* Rewind error I/O file */ if( ErrorIOFile == NULL ) return; rewind( ErrorIOFile ); - /* Abort if no errors have occurred */ - if( TopError == -1 ) - return; - /* Print overflow messages */ if( TooManyErrors ) { sprintf( errbuf, "*** Warning: Error depth greater than %d ***\n", --- 511,525 ---- char *ptr; char buffer[bufsiz]; + /* Abort if no errors have occurred */ + if( TopError == -1 ) + return; + /* Rewind error I/O file */ if( ErrorIOFile == NULL ) return; rewind( ErrorIOFile ); /* Print overflow messages */ if( TooManyErrors ) { sprintf( errbuf, "*** Warning: Error depth greater than %d ***\n", *************** *** 600,606 **** See Also: err_open, err_read, err_set, err_get, err_print, err_str, ! err_level, err_fileio !*/ --- 601,607 ---- See Also: err_open, err_read, err_set, err_get, err_print, err_str, ! err_level, err_fileio, err_cnt !*/ *************** *** 663,669 **** See Also: err_open, err_read, err_set, err_get, err_print, err_str, ! err_clear, err_fileio !*/ --- 664,670 ---- See Also: err_open, err_read, err_set, err_get, err_print, err_str, ! err_clear, err_fileio, err_cnt !*/ *************** *** 709,715 **** See Also: err_open, err_read, err_set, err_get, err_print, err_str, ! err_clear, err_level !*/ --- 710,716 ---- See Also: err_open, err_read, err_set, err_get, err_print, err_str, ! err_clear, err_level, err_cnt !*/ *************** *** 732,737 **** --- 733,776 ---- return ErrorIOFile; #endif + } + + + + /*! + + err_cnt Return current count of error messages + + + Summary: + + #include <nsfcfg.h> + #include <ComUtil/comutil.h> + */ + + int err_cnt() + + + /*! + Return Value: count of current error messages + + + Parameters: none + + + /*! + Description: + + `err_cnt` returns the number of error messages on the error message stack. + + + See Also: err_open, err_read, err_set, err_get, err_print, err_str, + err_clear, err_level, err_fileio + + !*/ + + { + return TopError+1; } Index: ComUnidraw/comeditor.c diff -c ComUnidraw/comeditor.c:1.6 ComUnidraw/comeditor.c:1.7 *** ComUnidraw/comeditor.c:1.6 Wed Jan 9 12:36:21 2002 --- src/ComUnidraw/comeditor.c Wed Jan 9 13:56:30 2002 *************** *** 111,117 **** const char* comdraw_off_str = unidraw->GetCatalog()->GetAttribute("comdraw_off"); #ifndef HAVE_ACE if ((!comterplist() || comterplist()->Number()==1) && ! (comdraw_off_str ? strcmp(comdraw_off_str, "false")==0 : true) && 0) _terp_iohandler = new ComTerpIOHandler(_terp, stdin); else #endif --- 111,117 ---- const char* comdraw_off_str = unidraw->GetCatalog()->GetAttribute("comdraw_off"); #ifndef HAVE_ACE if ((!comterplist() || comterplist()->Number()==1) && ! (comdraw_off_str ? strcmp(comdraw_off_str, "false")==0 : true)) _terp_iohandler = new ComTerpIOHandler(_terp, stdin); else #endif Index: ComUnidraw/comterp-iohandler.c diff -c ComUnidraw/comterp-iohandler.c:1.1 ComUnidraw/comterp-iohandler.c:1.2 *** ComUnidraw/comterp-iohandler.c:1.1 Tue Nov 13 15:59:28 2001 --- src/ComUnidraw/comterp-iohandler.c Wed Jan 9 13:56:31 2002 *************** *** 72,88 **** _comterp->_fd = i; _comterp->_outfunc = (outfuncptr)&ComTerpServ::fd_fputs; ! if (_comterp->read_expr()) { if (_comterp->eval_expr()) ! err_print( stderr, "comterp" ); else if (_comterp->quitflag()) ! return 0; else { ! if (unidraw->updated()) unidraw->Update(true); ! _comterp->print_stack_top(); } ! } else ! err_print( stderr, "comterp"); return 0; } --- 72,94 ---- _comterp->_fd = i; _comterp->_outfunc = (outfuncptr)&ComTerpServ::fd_fputs; ! boolean done = false; ! while (!done) { ! if (_comterp->read_expr()) { if (_comterp->eval_expr()) ! err_print( stderr, "comterp" ); else if (_comterp->quitflag()) ! return 0; else { ! if (unidraw->updated()) unidraw->Update(true); ! _comterp->print_stack_top(); } ! } else { ! if (err_cnt()>0) ! err_print( stderr, "comterp"); ! done = 1; ! } ! } return 0; } Index: FrameUnidraw/frameeditor.c diff -c FrameUnidraw/frameeditor.c:1.2 FrameUnidraw/frameeditor.c:1.3 *** FrameUnidraw/frameeditor.c:1.2 Wed Jan 9 08:24:19 2002 --- src/FrameUnidraw/frameeditor.c Wed Jan 9 13:56:37 2002 *************** *** 33,38 **** --- 33,39 ---- #include <OverlayUnidraw/ovcomps.h> #include <OverlayUnidraw/ovkit.h> #include <OverlayUnidraw/ovviewer.h> + #include <OverlayUnidraw/ovunidraw.h> #include <IVGlyph/textedit.h> *************** *** 46,52 **** #include <Unidraw/catalog.h> #include <Unidraw/ctrlinfo.h> #include <Unidraw/keymap.h> - #include <Unidraw/unidraw.h> #include <InterViews/box.h> #include <InterViews/border.h> --- 47,52 ---- *************** *** 116,121 **** --- 116,122 ---- _autonewframe_tts = nil; if (!comp) comp = new FrameIdrawComp; _terp = new ComTerpServ(); + ((OverlayUnidraw*)unidraw)->comterp(_terp); AddCommands(_terp); add_comterp("Flipbook", _terp); _overlay_kit->Init(comp, name); *************** *** 123,129 **** } void FrameEditor::InitCommands() { ! // ComEditor::InitCommands(); int secs = 0; Catalog* catalog = unidraw->GetCatalog(); const char* slideshow_str = catalog->GetAttribute("slideshow"); --- 124,130 ---- } void FrameEditor::InitCommands() { ! ComEditor::InitCommands(); int secs = 0; Catalog* catalog = unidraw->GetCatalog(); const char* slideshow_str = catalog->GetAttribute("slideshow"); *** /dev/null Wed Jan 9 13:57:10 PST 2002 --- patches/ivtools-020109-johnston-017 *************** patches/ivtools-020109-johnston-017 *** 0 **** --- 1 ---- + ivtools-020109-johnston-017 |
From: <ivt...@li...> - 2002-01-09 17:17:44
|
Patch: ivtools-020109-johnston-016 For: ivtools-1.0 Author: joh...@us... Subject: reorg of Time.[ch], work on drawing editor stdin handling Requires: This is an intermediate patch to ivtools-1.0. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - migration of conditional #define's from Time.c to Time.h by Todd Gruhn. - work on stdin handling for comdraw, flipbook, graphdraw, and drawserv Index: Time/Time.c diff -c Time/Time.c:1.1 Time/Time.c:1.2 *** Time/Time.c:1.1 Fri Nov 2 13:05:27 2001 --- src/Time/Time.c Wed Jan 9 09:06:11 2002 *************** *** 51,72 **** #endif - #if defined(BSD) || defined(hpux) || defined(linux) || defined(__sun) || defined(__alpha) || defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__NetBSD__) ! #ifdef hpux ! #include <time.h> ! #else ! #include <sys/time.h> ! #if defined(__DECCXX) || (defined(__sun) && !defined(__svr4__)) ! extern "C" { ! int gettimeofday(struct timeval *tp, struct timezone *tzp); ! } ! #endif ! #if defined(__NetBSD__) ! #include </usr/include/sys/time.h> ! #endif ! #endif ! static long TIME_ZONE; /* seconds west of GMT */ static int DST_OBSERVED; /* flags U.S. daylight saving time observed */ --- 51,58 ---- #endif ! /************************ end of edits ************************************************/ static long TIME_ZONE; /* seconds west of GMT */ static int DST_OBSERVED; /* flags U.S. daylight saving time observed */ *************** *** 81,89 **** #define BASE_CLASSES BASE::desc() #define MEMBER_CLASSES #define VIRTUAL_BASE_CLASSES Object::desc() - - - #endif static const unsigned long seconds_in_day = 24*60*60; --- 67,72 ---- Index: Time/Time.h diff -c Time/Time.h:1.1 Time/Time.h:1.2 *** Time/Time.h:1.1 Fri Nov 2 13:05:27 2001 --- src/Time/Time.h Wed Jan 9 09:06:11 2002 *************** *** 1,8 **** - #ifndef TIME_H - #define TIME_H - - /* Time.h -- declarations for class Time THIS SOFTWARE FITS THE DESCRIPTION IN THE U.S. COPYRIGHT ACT OF A "UNITED STATES GOVERNMENT WORK". IT WAS WRITTEN AS A PART OF THE AUTHOR'S OFFICIAL DUTIES AS A GOVERNMENT EMPLOYEE. THIS MEANS IT --- 1,5 ---- + /* Time.h -- declarations for class Time THIS SOFTWARE FITS THE DESCRIPTION IN THE U.S. COPYRIGHT ACT OF A "UNITED STATES GOVERNMENT WORK". IT WAS WRITTEN AS A PART OF THE AUTHOR'S OFFICIAL DUTIES AS A GOVERNMENT EMPLOYEE. THIS MEANS IT *************** *** 30,35 **** --- 27,78 ---- * Release for 1st edition. * */ + + #ifndef TIME_H + #define TIME_H + + + #if defined(SYSV) && ! defined(hpux) + + #include <time.h> + + #define TIME_ZONE timezone + #define DST_OBSERVED daylight + #define BASE_CLASSES BASE::desc() + #define MEMBER_CLASSES + #define VIRTUAL_BASE_CLASSES Object::desc() + + #endif + + //moved from Time.c + + #if defined(BSD) || defined(__FreeBSD__) || defined(__NetBSD__) + + #include <sys/time.h> + #if defined(__NetBSD__) + #include </usr/include/sys/time.h> + #endif + + #endif + + + #if defined(hpux) + #include <time.h> + #endif + + + #if defined(linux) || defined(__sun) || defined(__alpha) || defined(__CYGWIN__) + #include <sys/time.h> + + #if defined(__DECCXX) || (defined(__sun) && !defined(__svr4__)) + extern "C" { + int gettimeofday(struct timeval *tp, struct timezone *tzp); + } + #endif + #endif + + // END of edits + /* Modified by Vectaport, Inc. Index: ComUnidraw/comeditor.c diff -c ComUnidraw/comeditor.c:1.5 ComUnidraw/comeditor.c:1.6 *** ComUnidraw/comeditor.c:1.5 Wed Dec 19 15:14:26 2001 --- src/ComUnidraw/comeditor.c Wed Jan 9 09:06:23 2002 *************** *** 110,116 **** _terp = new ComTerpServ(); const char* comdraw_off_str = unidraw->GetCatalog()->GetAttribute("comdraw_off"); if ((!comterplist() || comterplist()->Number()==1) && ! (comdraw_off_str ? strcmp(comdraw_off_str, "false")==0 : true)) _terp_iohandler = new ComTerpIOHandler(_terp, stdin); else _terp_iohandler = nil; --- 110,116 ---- _terp = new ComTerpServ(); const char* comdraw_off_str = unidraw->GetCatalog()->GetAttribute("comdraw_off"); if ((!comterplist() || comterplist()->Number()==1) && ! (comdraw_off_str ? strcmp(comdraw_off_str, "false")==0 : true) && 0) _terp_iohandler = new ComTerpIOHandler(_terp, stdin); else _terp_iohandler = nil; Index: comdraw/main.c diff -c comdraw/main.c:1.1 comdraw/main.c:1.2 *** comdraw/main.c:1.1 Fri Nov 2 13:07:08 2001 --- src/comdraw/main.c Wed Jan 9 09:06:25 2002 *************** *** 308,313 **** --- 308,327 ---- ComEditor* ed = new ComEditor(initial_file); unidraw->Open(ed); + + #ifdef HAVE_ACE + /* Start up one on stdin */ + UnidrawComterpHandler* stdin_handler = new UnidrawComterpHandler(); + #if 0 + if (ACE::register_stdin_handler(stdin_handler, COMTERP_REACTOR::instance(), nil) == -1) + #else + if (COMTERP_REACTOR::instance()->register_handler(0, stdin_handler, + ACE_Event_Handler::READ_MASK)==-1) + #endif + cerr << "comdraw: unable to open stdin with ACE\n"; + ed->SetComTerp(stdin_handler->comterp()); + #endif + fprintf(stderr, "ivtools-%s comdraw: see \"man comdraw\" or type help here for command info\n", VersionString); unidraw->Run(); } Index: FrameUnidraw/frameeditor.c diff -c FrameUnidraw/frameeditor.c:1.1 FrameUnidraw/frameeditor.c:1.2 *** FrameUnidraw/frameeditor.c:1.1 Fri Nov 2 13:07:10 2001 --- src/FrameUnidraw/frameeditor.c Wed Jan 9 09:06:26 2002 *************** *** 123,128 **** --- 123,129 ---- } void FrameEditor::InitCommands() { + // ComEditor::InitCommands(); int secs = 0; Catalog* catalog = unidraw->GetCatalog(); const char* slideshow_str = catalog->GetAttribute("slideshow"); Index: flipbook/main.c diff -c flipbook/main.c:1.1 flipbook/main.c:1.2 *** flipbook/main.c:1.1 Fri Nov 2 13:07:11 2001 --- src/flipbook/main.c Wed Jan 9 09:06:28 2002 *************** *** 270,276 **** else if (COMTERP_REACTOR::instance ()->register_handler (peer_acceptor, ACE_Event_Handler::READ_MASK) == -1) ! cerr << "comdraw: unable to register ComterpAcceptor with ACE reactor\n"; else cerr << "accepting comdraw port (" << portnum << ") connections\n"; --- 270,276 ---- else if (COMTERP_REACTOR::instance ()->register_handler (peer_acceptor, ACE_Event_Handler::READ_MASK) == -1) ! cerr << "flipbook: unable to register ComterpAcceptor with ACE reactor\n"; else cerr << "accepting comdraw port (" << portnum << ") connections\n"; Index: graphdraw/main.c diff -c graphdraw/main.c:1.1 graphdraw/main.c:1.2 *** graphdraw/main.c:1.1 Fri Nov 2 13:07:15 2001 --- src/graphdraw/main.c Wed Jan 9 09:06:30 2002 *************** *** 39,44 **** --- 39,51 ---- #include <math.h> #include <version.h> + #ifdef HAVE_ACE + #include <ComUnidraw/comterp-acehandler.h> + #include <OverlayUnidraw/aceimport.h> + #include <AceDispatch/ace_dispatcher.h> + #endif + + /*****************************************************************************/ static PropertyData properties[] = { *************** *** 142,147 **** --- 149,158 ---- { "*slider_off", "false" }, { "*zoomer_off", "false" }, { "*opaque_off", "false" }, + #ifdef HAVE_ACE + { "*comdraw", "20002" }, + { "*import", "20003" }, + #endif { "*help", "false" }, { "*font", "-adobe-helvetica-medium-r-normal--14-140-75-75-p-77-iso8859-1" }, { nil } *************** *** 169,190 **** --- 180,216 ---- { "-zoff", "*zoomer_off", OptionValueImplicit, "true" }, { "-opaque_off", "*opaque_off", OptionValueImplicit, "true" }, { "-opoff", "*opaque_off", OptionValueImplicit, "true" }, + #ifdef HAVE_ACE + { "-import", "*import", OptionValueNext }, + { "-comdraw", "*comdraw", OptionValueNext }, + #endif { "-help", "*help", OptionValueImplicit, "true" }, { "-font", "*font", OptionValueNext }, { nil } }; + #ifdef HAVE_ACE static char* usage = + "Usage: graphdraw [any idraw parameter] [-color5] [-color6] [-comdraw port] \n\ + [-import port] [-gray5] [-gray6] [-gray7] [-opaque_off|-opoff] \n\ + [-pagecols|-ncols n] [-pagerows|-nrows n] [-panner_off|-poff] \n\ + [-panner_align|-pal tl|tc|tr|cl|c|cr|cl|bl|br|l|r|t|b|hc|vc ] \n\ + [-scribble_pointer|-scrpt ] [-slider_off|-soff] [-zoomer_off|-zoff] [file]"; + #else "Usage: graphdraw [any idraw parameter] [-color5] [-color6] \n\ [-gray5] [-gray6] [-gray7] [-opaque_off|-opoff] [-pagecols|-ncols n] \n\ [-pagerows|-nrows n] [-panner_off|-poff] \n\ [-panner_align|-pal tl|tc|tr|cl|c|cr|cl|bl|br|l|r|t|b|hc|vc ] \n\ [-scribble_pointer|-scrpt ] [-slider_off|-soff] [-zoomer_off|-zoff] [file]"; + #endif /*****************************************************************************/ int main (int argc, char** argv) { + #ifdef HAVE_ACE + Dispatcher::instance(new AceDispatcher(IMPORT_REACTOR::instance())); + #endif int exit_status = 0; GraphCreator creator; GraphCatalog* catalog = new GraphCatalog("graphdraw", &creator); *************** *** 197,206 **** --- 223,288 ---- return argc > 2 ? 1 : 0; } + #ifdef HAVE_ACE + + UnidrawImportAcceptor* import_acceptor = new UnidrawImportAcceptor(); + + const char* importstr = catalog->GetAttribute("import"); + int importnum = atoi(importstr); + if (import_acceptor->open + (ACE_INET_Addr (importnum)) == -1) + cerr << "flipbook: unable to open import port " << importnum << "\n"; + + else if (IMPORT_REACTOR::instance ()->register_handler + (import_acceptor, ACE_Event_Handler::READ_MASK) == -1) + cerr << "graphdraw: unable to register UnidrawImportAcceptor with ACE reactor\n"; + + else + cerr << "accepting import port (" << importnum << ") connections\n"; + + // Acceptor factory. + UnidrawComterpAcceptor* peer_acceptor = new UnidrawComterpAcceptor(); + + const char* portstr = catalog->GetAttribute("comdraw"); + int portnum = atoi(portstr); + if (peer_acceptor->open + (ACE_INET_Addr (portnum)) == -1) + cerr << "graphdraw: unable to open port " << portnum << "\n"; + + else if (COMTERP_REACTOR::instance ()->register_handler + (peer_acceptor, ACE_Event_Handler::READ_MASK) == -1) + cerr << "graphdraw: unable to register ComterpAcceptor with ACE reactor\n"; + else + cerr << "accepting comdraw port (" << portnum << ") connections\n"; + + + // Register IMPORT_QUIT_HANDLER to receive SIGINT commands. When received, + // IMPORT_QUIT_HANDLER becomes "set" and thus, the event loop below will + // exit. + if (IMPORT_REACTOR::instance ()->register_handler + (SIGINT, IMPORT_QUIT_HANDLER::instance ()) == -1) + cerr << "graphdraw: unable to register quit handler with ACE reactor\n"; + + #endif + const char* initial_file = (argc == 2) ? argv[1] : nil; GraphEditor* ed = new GraphEditor(initial_file); unidraw->Open(ed); + + #ifdef HAVE_ACE + /* Start up one on stdin */ + UnidrawComterpHandler* stdin_handler = new UnidrawComterpHandler(); + #if 0 + if (ACE::register_stdin_handler(stdin_handler, COMTERP_REACTOR::instance(), nil) == -1) + #else + if (COMTERP_REACTOR::instance()->register_handler(0, stdin_handler, + ACE_Event_Handler::READ_MASK)==-1) + #endif + cerr << "graphdraw: unable to open stdin with ACE\n"; + ed->SetComTerp(stdin_handler->comterp()); + #endif + cerr << "ivtools-" << VersionString << " graphdraw: see \"man graphdraw\" or type help here for command info\n"; unidraw->Run(); *** /dev/null Wed Jan 9 09:06:39 PST 2002 --- patches/ivtools-020109-johnston-016 *************** patches/ivtools-020109-johnston-016 *** 0 **** --- 1 ---- + ivtools-020109-johnston-016 |
From: <ivt...@li...> - 2001-12-19 23:41:00
|
Patch: ivtools-011219-johnston-015 For: ivtools-1.0 Author: joh...@us... Subject: documentation for gtod and dtog commands. Requires: This is an intermediate patch to ivtools-1.0. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - documentation for gtod and dtog commands. Index: comdraw/README diff -c comdraw/README:1.5 comdraw/README:1.6 *** comdraw/README:1.5 Wed Dec 19 15:14:30 2001 --- src/comdraw/README Wed Dec 19 15:25:42 2001 *************** *** 95,100 **** --- 95,102 ---- dx,dy=stod(sx,sy) -- convert from screen to drawing coordinates sx,sy=dtos(dx,dy) -- convert from drawing to screen coordinates + dx,dy=gtod(compview gx,gy) -- convert from graphic to drawing coordinates + 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 Index: man1_ivtools/comdraw.1 diff -c man1_ivtools/comdraw.1:1.5 man1_ivtools/comdraw.1:1.6 *** man1_ivtools/comdraw.1:1.5 Wed Dec 19 15:15:11 2001 --- src/man/man1/comdraw.1 Wed Dec 19 15:26:04 2001 *************** *** 103,108 **** --- 103,110 ---- dx,dy=stod(sx,sy) -- convert from screen to drawing coordinates sx,sy=dtos(dx,dy) -- convert from drawing to screen coordinates + dx,dy=gtod(compview gx,gy) -- convert from graphic to drawing coordinates + gx,gy=dtog(compview dx,dy) -- convert from drawing to graphic coordinates handles(flag) -- enable/disable current selection tic marks *** /dev/null Wed Dec 19 15:26:13 PST 2001 --- patches/ivtools-011219-johnston-015 *************** patches/ivtools-011219-johnston-015 *** 0 **** --- 1 ---- + ivtools-011219-johnston-015 |
From: <ivt...@li...> - 2001-12-19 23:40:51
|
Patch: ivtools-011219-johnston-014 For: ivtools-1.0 Author: joh...@us... Subject: comdraw commands for polygon raster clipping, graphic-to-drawing coordinate conversions Requires: This is an intermediate patch to ivtools-1.0. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - pclip command for clipping of rasters via a polygonal point list: pclip(compview x1,y1,x2,y2,x3,y3[,...,xn,yn]) -- clip raster with polygon - dtog and gtod commands for translating to/from graphic coordinates to drawing coordinates: gx,gy=dtog(compview dx,dy) -- convert from drawing to graphic coordinates dx,dy=gtod(compview gx,gy) -- convert from graphic to drawing coordinates Index: top_ivtools/INSTALL diff -c top_ivtools/INSTALL:1.1 top_ivtools/INSTALL:1.2 *** top_ivtools/INSTALL:1.1 Fri Nov 2 13:04:34 2001 --- ./INSTALL Wed Dec 19 15:13:10 2001 *************** *** 20,26 **** been built on Linux, NetBSD, FreeBSD, Solaris, Irix, Dec Alpha, HPUX, and SunOS. ! 0.b. The gcc compiler. Recently we've been building and testing with egcs-1.0.3, gcc-2.95.*, and gcc-3.0.1. gcc-2.8.1 would still work, as probably would gcc-2.7.2. You will also need an equivalent copy of libstdc++. libstdc++ comes bundled with gcc-3.0. Before that the --- 20,29 ---- been built on Linux, NetBSD, FreeBSD, Solaris, Irix, Dec Alpha, HPUX, and SunOS. ! 0.b GNU make. Test to make sure this is the version you are using ! with "make -v" ! ! 0.c. The gcc compiler. Recently we've been building and testing with egcs-1.0.3, gcc-2.95.*, and gcc-3.0.1. gcc-2.8.1 would still work, as probably would gcc-2.7.2. You will also need an equivalent copy of libstdc++. libstdc++ comes bundled with gcc-3.0. Before that the *************** *** 32,38 **** the configure script. Establishing a symbolic link to /usr/local/include/g++ will fix the problem. ! 0.c. An installed copy of X11R6 as distributed by the Open Group, or an equivalent (XFree86 for Linux, or X11R5 from MIT). If you use a vendor's X11 product, the product should be based on X11R4 or later and the product should include imake and the config files. --- 35,41 ---- the configure script. Establishing a symbolic link to /usr/local/include/g++ will fix the problem. ! 0.d. An installed copy of X11R6 as distributed by the Open Group, or an equivalent (XFree86 for Linux, or X11R5 from MIT). If you use a vendor's X11 product, the product should be based on X11R4 or later and the product should include imake and the config files. *************** *** 47,53 **** ** find the gcc variant of cpp. Read more about it at ** http://www.ivtools.org/ivtools/faq.html#imakecppprob ! 0.d. If you want to use the polygon intersection tools, acquire and build clippoly, a LGPLed library for polygon clipping from: http://www.ph.tn.tudelft.nl/People/klamer/clippoly_entry.html --- 50,56 ---- ** find the gcc variant of cpp. Read more about it at ** http://www.ivtools.org/ivtools/faq.html#imakecppprob ! 0.e. If you want to use the polygon intersection tools, acquire and build clippoly, a LGPLed library for polygon clipping from: http://www.ph.tn.tudelft.nl/People/klamer/clippoly_entry.html *************** *** 56,62 **** shared library in the clippoly directory with: "gcc -shared -o libclippoly.so *.o" (you can leave out test.o if you want). ! i0.e. If you want to use the network server capabilities of the ivtools programs, acquire and build ACE, a C++ middleware toolkit available from: --- 59,65 ---- shared library in the clippoly directory with: "gcc -shared -o libclippoly.so *.o" (you can leave out test.o if you want). ! 0.f. If you want to use the network server capabilities of the ivtools programs, acquire and build ACE, a C++ middleware toolkit available from: *************** *** 81,94 **** Then use "--with-ace=$ACE_ROOT" when running the configure script as described below. ! 0.f if you want to build the ivxt example program, which demonstrates the embedding of a ivtools drawing editor inside Motif widgets, you'll need some version of lesstif or Motif (libXm). To enable the ivxt build, change line 7 of src/Imakefile from "#if 0" to "#if 1". Without these libraries and include files the build of ivxt will fail, which can be safely ignored. ! 0.g Finally, you might have an interest in building the IueServ library and iueserv program, a networked command interpreter wrapped around the class libraries of the Image Understanding Environment. See http://www.aai.com/AAI/IUE/IUE.html for details on acquiring and --- 84,97 ---- Then use "--with-ace=$ACE_ROOT" when running the configure script as described below. ! 0.g if you want to build the ivxt example program, which demonstrates the embedding of a ivtools drawing editor inside Motif widgets, you'll need some version of lesstif or Motif (libXm). To enable the ivxt build, change line 7 of src/Imakefile from "#if 0" to "#if 1". Without these libraries and include files the build of ivxt will fail, which can be safely ignored. ! 0.h Finally, you might have an interest in building the IueServ library and iueserv program, a networked command interpreter wrapped around the class libraries of the Image Understanding Environment. See http://www.aai.com/AAI/IUE/IUE.html for details on acquiring and Index: top_ivtools/README diff -c top_ivtools/README:1.1 top_ivtools/README:1.2 *** top_ivtools/README:1.1 Fri Nov 2 13:04:34 2001 --- ./README Wed Dec 19 15:13:11 2001 *************** *** 132,142 **** If you have a question about this software, desire to add code, found a bug, want to request a feature, or wonder how to get further assistance, please send e-mail to the general purpose ivtools mailing ! list, ivt...@li..., or (for last resort) this ! e-mail address: ivt...@ve.... To subcribe to the ! mailing list, visit ! http://lists.sourceforge.net/mailman/listinfo/ivtools-user. Other ivtools ! related mailing lists can be found at: http://www.ivtools.org/ivtools/mailinglists.html --- 132,141 ---- If you have a question about this software, desire to add code, found a bug, want to request a feature, or wonder how to get further assistance, please send e-mail to the general purpose ivtools mailing ! list, ivt...@li.... To subcribe to the mailing ! list, visit ! http://lists.sourceforge.net/mailman/listinfo/ivtools-user. Other ! ivtools related mailing lists can be found at: http://www.ivtools.org/ivtools/mailinglists.html Index: Unidraw/grcomp.c diff -c Unidraw/grcomp.c:1.2 Unidraw/grcomp.c:1.3 *** Unidraw/grcomp.c:1.2 Thu Nov 29 07:39:16 2001 --- src/Unidraw/grcomp.c Wed Dec 19 15:14:09 2001 *************** *** 155,161 **** fg = (fg == nil) ? gr->GetFgColor() : fg; bg = (bg == nil) ? gr->GetBgColor() : bg; cmd->Store(this, new ColorData(gr->GetFgColor(), gr->GetBgColor())); ! gr->FillBg(!bg->None()); gr->SetColors(fg, bg); Notify(); --- 155,161 ---- fg = (fg == nil) ? gr->GetFgColor() : fg; bg = (bg == nil) ? gr->GetBgColor() : bg; cmd->Store(this, new ColorData(gr->GetFgColor(), gr->GetBgColor())); ! gr->FillBg(bg && !bg->None()); gr->SetColors(fg, bg); Notify(); Index: OverlayUnidraw/ovimport.c diff -c OverlayUnidraw/ovimport.c:1.2 OverlayUnidraw/ovimport.c:1.3 *** OverlayUnidraw/ovimport.c:1.2 Thu Nov 29 07:39:20 2001 --- src/OverlayUnidraw/ovimport.c Wed Dec 19 15:14:19 2001 *************** *** 611,619 **** boolean empty; int newfd; ! GraphicComp* comp = OvImportCmd::DoImport( ! *ifs, empty, _helper, _ed, true, _path, newfd ! ); #if defined(OPEN_DRAWTOOL_URL) if (comp && comp->IsA(OVERLAY_IDRAW_COMP)) { --- 611,618 ---- boolean empty; int newfd; ! GraphicComp* comp = OvImportCmd::DoImport ! (*ifs, empty, _helper, _ed, true, _path , newfd, false); #if defined(OPEN_DRAWTOOL_URL) if (comp && comp->IsA(OVERLAY_IDRAW_COMP)) { *************** *** 1338,1343 **** --- 1337,1343 ---- FILE* fptr = nil; boolean incremental_flag = false; static boolean use_anytopnm = OverlayKit::bincheck("anytopnm"); + popen_ = false; if (chooser_ && chooser_->auto_convert() && use_anytopnm) { char buffer[BUFSIZ]; sprintf( buffer, "anytopnm %s", path ); *************** *** 1346,1351 **** --- 1346,1352 ---- incremental_flag = false; // will work for binary PPM if true cerr << "importing from command: " << path << "\n"; fptr = popen(path, "r"); + popen_ = true; } else if (ParamList::urltest(path)) { incremental_flag = true; char buffer[BUFSIZ]; *************** *** 1383,1389 **** } } else fptr = fopen(path, "r"); ! pathname(path); if (fptr) { --- 1384,1390 ---- } } else fptr = fopen(path, "r"); ! pathname(path, popen_); if (fptr) { *************** *** 1417,1423 **** } } } ! pathname(nil); return comp; #endif --- 1418,1424 ---- } } } ! pathname(nil, popen_); return comp; #endif *************** *** 1434,1442 **** // ### this will fail for a continuously read stream int fd; ! GraphicComp* comp = DoImport( ! instrm, empty, *helper_, GetEditor(), false, pathname(), fd ! ); return comp; } --- 1435,1442 ---- // ### this will fail for a continuously read stream int fd; ! GraphicComp* comp = DoImport ! (instrm, empty, *helper_, GetEditor(), false, pathname(), fd, is_popen()); return comp; } *************** *** 1447,1453 **** /* static */ GraphicComp* OvImportCmd::DoImport( istream& instrm, boolean& empty, FileHelper& helper, Editor* ed, ! boolean return_fd, const char* pathname, int& pnmfd ) { GraphicComp* comp = nil; pnmfd = -1; --- 1447,1453 ---- /* static */ GraphicComp* OvImportCmd::DoImport( istream& instrm, boolean& empty, FileHelper& helper, Editor* ed, ! boolean return_fd, const char* pathname, int& pnmfd, boolean cmdflag ) { GraphicComp* comp = nil; pnmfd = -1; *************** *** 1525,1531 **** if (OverlayKit::bincheck("pstoedit")) { FILE* pptr = nil; int new_fd; ! if (pathname && !return_fd) { char buffer[BUFSIZ]; if (compressed) sprintf(buffer, "tf=`ivtmpnam`;gunzip -c %s | pstoedit -f idraw - $tf.%s;cat $tf.*;rm $tf.*", pathname, "%d"); --- 1525,1531 ---- if (OverlayKit::bincheck("pstoedit")) { FILE* pptr = nil; int new_fd; ! if (pathname && !return_fd && !cmdflag) { char buffer[BUFSIZ]; if (compressed) sprintf(buffer, "tf=`ivtmpnam`;gunzip -c %s | pstoedit -f idraw - $tf.%s;cat $tf.*;rm $tf.*", pathname, "%d"); Index: OverlayUnidraw/ovimport.h diff -c OverlayUnidraw/ovimport.h:1.1 OverlayUnidraw/ovimport.h:1.2 *** OverlayUnidraw/ovimport.h:1.1 Fri Nov 2 13:07:02 2001 --- src/OverlayUnidraw/ovimport.h Wed Dec 19 15:14:19 2001 *************** *** 93,99 **** static GraphicComp* DoImport( istream& instrm, boolean& empty, FileHelper& helper, Editor* ed, ! boolean is_strm, const char* pathname, int& pnmfd ); static GraphicComp* TIFF_Image(const char*); --- 93,99 ---- static GraphicComp* DoImport( istream& instrm, boolean& empty, FileHelper& helper, Editor* ed, ! boolean is_strm, const char* pathname, int& pnmfd, boolean cmdflag ); static GraphicComp* TIFF_Image(const char*); Index: OverlayUnidraw/ovpainter.c diff -c OverlayUnidraw/ovpainter.c:1.2 OverlayUnidraw/ovpainter.c:1.3 *** OverlayUnidraw/ovpainter.c:1.2 Wed Nov 14 16:41:55 2001 --- src/OverlayUnidraw/ovpainter.c Wed Dec 19 15:14:19 2001 *************** *** 1142,1147 **** --- 1142,1161 ---- XIntersectRegion(rg, tmp, rg); XDestroyRegion(tmp); + if (r_r && r_r->clippts()) { + MultiLineObj* mlo = r_r->clippts(); + XPoint polypts[mlo->count()]; + for (int i=0; i<mlo->count(); i++) { + IntCoord x, y; + MapRoundUp(c, mlo->x()[i], mlo->y()[i], x, y); + polypts[i].x = x; + polypts[i].y = y; + } + Region poly = XPolygonRegion(polypts, mlo->count(), EvenOddRule); + XIntersectRegion(rg, poly, rg); + XDestroyRegion(poly); + } + boolean free_pmap; IntCoord xmin, ymin; Index: OverlayUnidraw/ovraster.c diff -c OverlayUnidraw/ovraster.c:1.1 OverlayUnidraw/ovraster.c:1.2 *** OverlayUnidraw/ovraster.c:1.1 Fri Nov 2 13:07:02 2001 --- src/OverlayUnidraw/ovraster.c Wed Dec 19 15:14:19 2001 *************** *** 909,918 **** #endif _xbeg = _xend = _ybeg = _yend = -1; _damage_done = 0; } ! OverlayRasterRect::~OverlayRasterRect () {} Graphic* OverlayRasterRect::Copy () { OverlayRasterRect* new_rr; new_rr = new OverlayRasterRect( --- 909,936 ---- #endif _xbeg = _xend = _ybeg = _yend = -1; _damage_done = 0; + _clippts = nil; } ! OverlayRasterRect::~OverlayRasterRect () { Unref(_clippts);} + void OverlayRasterRect::clippts(MultiLineObj* pts) { + _clippts = pts; + Resource::ref(_clippts); + } + + void OverlayRasterRect::clippts(int* x, int* y, int n) { + Resource::unref(_clippts); + if (x && y) { + _clippts = MultiLineObj::make_pts(x, y, n); + Resource::ref(_clippts); + } + } + + MultiLineObj* OverlayRasterRect::clippts() { + return _clippts; + } + Graphic* OverlayRasterRect::Copy () { OverlayRasterRect* new_rr; new_rr = new OverlayRasterRect( *************** *** 921,926 **** --- 939,945 ---- new_rr->xend(_xend); new_rr->ybeg(_ybeg); new_rr->yend(_yend); + new_rr->clippts(_clippts); return new_rr; } *************** *** 1024,1029 **** --- 1043,1052 ---- Unref(_raster); _raster = rect._raster; Resource::ref(_raster); + + Unref(_clippts); + _clippts = rect._clippts; + Resource::ref(_clippts); return *this; } Index: OverlayUnidraw/ovraster.h diff -c OverlayUnidraw/ovraster.h:1.1 OverlayUnidraw/ovraster.h:1.2 *** OverlayUnidraw/ovraster.h:1.1 Fri Nov 2 13:07:03 2001 --- src/OverlayUnidraw/ovraster.h Wed Dec 19 15:14:19 2001 *************** *** 202,207 **** --- 202,208 ---- }; + class MultiLineObj; class OverlayRaster; //: derived RasterRect Graphic for use with OverlayRaster and GrayRaster. *************** *** 210,215 **** --- 211,223 ---- OverlayRasterRect(OverlayRaster* = nil, Graphic* = nil); virtual ~OverlayRasterRect(); + void clippts(MultiLineObj*); + // set polygon used for additional clipping + void clippts(int* x, int* y, int n); + // set polygon used for additional clipping + MultiLineObj* clippts(); + // return polygon used for additional clipping + virtual Graphic* Copy(); OverlayRaster* GetOriginal() { return (OverlayRaster*)_raster; } *************** *** 272,277 **** --- 280,287 ---- IntCoord _damage_b; IntCoord _damage_r; IntCoord _damage_t; + + MultiLineObj* _clippts; friend class RasterOvComp; friend class RasterOvView; Index: ComUnidraw/comeditor.c diff -c ComUnidraw/comeditor.c:1.4 ComUnidraw/comeditor.c:1.5 *** ComUnidraw/comeditor.c:1.4 Fri Nov 30 05:53:14 2001 --- src/ComUnidraw/comeditor.c Wed Dec 19 15:14:26 2001 *************** *** 210,220 **** --- 210,223 ---- comterp->add_command("dtos", new DrawingToScreenFunc(comterp, this)); comterp->add_command("stod", new ScreenToDrawingFunc(comterp, this)); + comterp->add_command("dtog", new DrawingToGraphicFunc(comterp, this)); + comterp->add_command("gtod", new GraphicToDrawingFunc(comterp, this)); comterp->add_command("poke", new PixelPokeFunc(comterp, this)); comterp->add_command("pcols", new PixelColsFunc(comterp, this)); comterp->add_command("prows", new PixelRowsFunc(comterp, this)); comterp->add_command("pflush", new PixelFlushFunc(comterp, this)); + comterp->add_command("pclip", new PixelClipFunc(comterp, this)); } /* virtual */ void ComEditor::ExecuteCmd(Command* cmd) { Index: ComUnidraw/pixelfunc.c diff -c ComUnidraw/pixelfunc.c:1.1 ComUnidraw/pixelfunc.c:1.2 *** ComUnidraw/pixelfunc.c:1.1 Wed Nov 21 02:36:46 2001 --- src/ComUnidraw/pixelfunc.c Wed Dec 19 15:14:26 2001 *************** *** 25,31 **** --- 25,33 ---- #include <OverlayUnidraw/ovraster.h> #include <Unidraw/Graphic/damage.h> + #include <Unidraw/iterator.h> #include <Unidraw/viewer.h> + #include <Attribute/attrlist.h> /*****************************************************************************/ *************** *** 125,130 **** --- 127,167 ---- } else push_stack(ComValue::nullval()); + + } + + /*****************************************************************************/ + + PixelClipFunc::PixelClipFunc(ComTerp* comterp, Editor* ed) : UnidrawFunc(comterp, ed) { + } + + void PixelClipFunc::execute() { + Viewer* viewer = _ed->GetViewer(); + + ComValue rastcompv(stack_arg(0)); + ComValue ptsv(stack_arg(1)); + reset_stack(); + + RasterOvComp* rastcomp = (RasterOvComp*) rastcompv.geta(RasterOvComp::class_symid()); + OverlayRasterRect* rastrect = rastcomp ? rastcomp->GetOverlayRasterRect() : nil; + OverlayRaster* raster = rastrect ? rastrect->GetOriginal() : nil; + + if (rastrect && ptsv.is_array() && ptsv.array_val()->Number()>2 ) { + int n = ptsv.array_val()->Number()/2; + IntCoord x[n], y[n]; + Iterator it; + AttributeValueList* avl = ptsv.array_val(); + avl->First(it); + for( int i=0; i<n; i++ ) { + x[i] = avl->GetAttrVal(it)->int_val(); + avl->Next(it); + y[i] = avl->GetAttrVal(it)->int_val(); + avl->Next(it); + } + rastrect->clippts(x, y, n); + rastcomp->Notify(); + } else + push_stack(ComValue::nullval()); } Index: ComUnidraw/pixelfunc.h diff -c ComUnidraw/pixelfunc.h:1.1 ComUnidraw/pixelfunc.h:1.2 *** ComUnidraw/pixelfunc.h:1.1 Wed Nov 21 02:36:46 2001 --- src/ComUnidraw/pixelfunc.h Wed Dec 19 15:14:26 2001 *************** *** 65,68 **** --- 65,78 ---- virtual const char* docstring() { return "%s(compview) -- flush pixels poked into a raster"; } }; + + //: command to clip raster with polygon + // pclip(compview x1,y1,x2,y2,x3,y3[,...,xn,yn]) -- clip raster with polygon + class PixelClipFunc : public UnidrawFunc { + public: + PixelClipFunc(ComTerp*,Editor*); + virtual void execute(); + virtual const char* docstring() { + return "%s(compview x1,y1,x2,y2,x3,y3[,...,xn,yn]) -- clip raster with polygon"; } + }; #endif /* !defined(_pixelfunc_h) */ Index: ComUnidraw/unifunc.c diff -c ComUnidraw/unifunc.c:1.1 ComUnidraw/unifunc.c:1.2 *** ComUnidraw/unifunc.c:1.1 Fri Nov 2 13:07:06 2001 --- src/ComUnidraw/unifunc.c Wed Dec 19 15:14:26 2001 *************** *** 714,716 **** --- 714,794 ---- } } + /*****************************************************************************/ + + GraphicToDrawingFunc::GraphicToDrawingFunc(ComTerp* comterp, Editor* ed) : UnidrawFunc(comterp, ed) { + } + + void GraphicToDrawingFunc::execute() { + ComValue viewval(stack_arg(0)); + ComValue coordsv(stack_arg(1)); + reset_stack(); + if (!viewval.is_object()) { + push_stack(ComValue::nullval()); + return; + } + + ComponentView* view = (ComponentView*)viewval.obj_val(); + OverlayComp* comp = view ? (OverlayComp*)view->GetSubject() : nil; + Graphic* gr = comp ? comp->GetGraphic() : nil; + + OverlayEditor* ed = (OverlayEditor*)GetEditor(); + OverlayViewer* viewer = ed ? (OverlayViewer*)ed->GetViewer() : nil; + if (gr && viewer && coordsv.is_array() && coordsv.array_len()==2) { + AttributeValueList *avl = coordsv.array_val(); + Iterator i; + avl->First(i); + float gx = avl->GetAttrVal(i)->float_val(); + avl->Next(i); + float gy = avl->GetAttrVal(i)->float_val(); + float sx, sy, dx, dy; + viewer->GraphicToScreen(gr, gx, gy, sx, sy); + viewer->ScreenToDrawing(sx, sy, dx, dy); + AttributeValueList* navl = new AttributeValueList(); + ComValue retval(navl); + navl->Append(new ComValue(dx)); + navl->Append(new ComValue(dy)); + push_stack(retval); + } + } + + /*****************************************************************************/ + + DrawingToGraphicFunc::DrawingToGraphicFunc(ComTerp* comterp, Editor* ed) : UnidrawFunc(comterp, ed) { + } + + void DrawingToGraphicFunc::execute() { + ComValue viewval(stack_arg(0)); + ComValue coordsv(stack_arg(1)); + reset_stack(); + if (!viewval.is_object()) { + push_stack(ComValue::nullval()); + return; + } + + ComponentView* view = (ComponentView*)viewval.obj_val(); + OverlayComp* comp = view ? (OverlayComp*)view->GetSubject() : nil; + Graphic* gr = comp ? comp->GetGraphic() : nil; + OverlayEditor* ed = (OverlayEditor*)GetEditor(); + OverlayViewer* viewer = ed ? (OverlayViewer*)ed->GetViewer() : nil; + if (gr && viewer && coordsv.is_array() && coordsv.array_len()==2) { + AttributeValueList *avl = coordsv.array_val(); + Iterator i; + avl->First(i); + float dx = avl->GetAttrVal(i)->float_val(); + avl->Next(i); + float dy = avl->GetAttrVal(i)->float_val(); + float sx, sy, gx, gy; + viewer->DrawingToScreen(dx, dy, sx, sy); + viewer->ScreenToGraphic(sx, sy, gr, gx, gy); + AttributeValueList* navl = new AttributeValueList(); + ComValue retval(navl); + navl->Append(new ComValue(/* (int) */gx)); + navl->Append(new ComValue(/* (int) */gy)); + push_stack(retval); + } + } + + + + Index: ComUnidraw/unifunc.h diff -c ComUnidraw/unifunc.h:1.1 ComUnidraw/unifunc.h:1.2 *** ComUnidraw/unifunc.h:1.1 Fri Nov 2 13:07:06 2001 --- src/ComUnidraw/unifunc.h Wed Dec 19 15:14:26 2001 *************** *** 220,224 **** --- 220,246 ---- }; + //: command to convert from graphic to drawing coordinates + // dx,dy=gtod(compview gx,gy) -- convert from graphic to drawing coordinates + class GraphicToDrawingFunc : public UnidrawFunc { + public: + GraphicToDrawingFunc(ComTerp*,Editor*); + virtual void execute(); + virtual const char* docstring() { + return "dx,dy=%s(compview gx,gy) -- convert from graphic to drawing coordinates."; } + + }; + + //: command to convert from drawing to graphic coordinates + // gx,gy=dtog(compview dx,dy) -- convert from drawing to graphic coordinates + class DrawingToGraphicFunc : public UnidrawFunc { + public: + DrawingToGraphicFunc(ComTerp*,Editor*); + virtual void execute(); + virtual const char* docstring() { + return "gx,gy=%s(compview dx,dy) -- convert from drawing to graphic coordinates."; } + + }; + #endif /* !defined(_unifunc_h) */ Index: comdraw/README diff -c comdraw/README:1.4 comdraw/README:1.5 *** comdraw/README:1.4 Fri Nov 30 05:53:16 2001 --- src/comdraw/README Wed Dec 19 15:14:30 2001 *************** *** 120,125 **** --- 120,126 ---- pcols(compview) -- number of columns in a raster pcols(compview) -- number of rows in a raster pflush(compview) -- flush pixels poked into a raster + pclip(compview x1,y1,x2,y2,x3,y3[,...,xn,yn]) -- clip raster with polygon PLOTTING COMMANDS Index: man1_ivtools/comdraw.1 diff -c man1_ivtools/comdraw.1:1.4 man1_ivtools/comdraw.1:1.5 *** man1_ivtools/comdraw.1:1.4 Fri Nov 30 05:53:28 2001 --- src/man/man1/comdraw.1 Wed Dec 19 15:15:11 2001 *************** *** 130,135 **** --- 130,136 ---- pcols(compview) -- number of columns in a raster pcols(compview) -- number of rows in a raster pflush(compview) -- flush pixels poked into a raster + pclip(compview x1,y1,x2,y2,x3,y3[,...,xn,yn]) -- clip raster with polygon .SH PLOTTING COMMANDS Index: config_ivtools/local.def diff -c config_ivtools/local.def:1.1 config_ivtools/local.def:1.2 *** config_ivtools/local.def:1.1 Fri Nov 2 13:08:11 2001 --- config/local.def Wed Dec 19 15:15:18 2001 *************** *** 187,190 **** --- 187,193 ---- #undef ClipPolyLibBase #define ClipPolyLibBase libclippoly.SO + /* substitute C compiler for makedepend */ + #define DependCmd CCDriver -M + XCOMM ------------------------------------------------------------------------- Index: config_ivtools/rules.def diff -c config_ivtools/rules.def:1.3 config_ivtools/rules.def:1.4 *** config_ivtools/rules.def:1.3 Tue Nov 20 08:47:23 2001 --- config/rules.def Wed Dec 19 15:15:18 2001 *************** *** 434,440 **** #ifndef DependTarget #define DependTarget() @@\ depend:: @@\ ! g++ -M $(DEPEND_CCFLAGS) $(SRCS) >Makefile.depend #endif /* --- 434,440 ---- #ifndef DependTarget #define DependTarget() @@\ depend:: @@\ ! $(DEPEND) $(DEPEND_CCFLAGS) $(SRCS) >Makefile.depend #endif /* *** /dev/null Wed Dec 19 15:15:23 PST 2001 --- patches/ivtools-011219-johnston-014 *************** patches/ivtools-011219-johnston-014 *** 0 **** --- 1 ---- + ivtools-011219-johnston-014 |
From: <ivt...@li...> - 2001-11-29 23:15:47
|
Patch: ivtools-011130-johnston-013 For: ivtools-1.0 Author: joh...@us... Subject: fix bug from None bg color work Requires: This is an intermediate patch to ivtools-1.0. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - fix bug from None bg color work Index: Unidraw/graphic.c diff -c Unidraw/graphic.c:1.2 Unidraw/graphic.c:1.3 *** Unidraw/graphic.c:1.2 Thu Nov 29 07:39:16 2001 --- src/Unidraw/graphic.c Fri Nov 30 07:24:17 2001 *************** *** 478,484 **** void Graphic::update (Graphic* gs) { Transformer* t = _p->GetTransformer(); ! _p->FillBg(gs->BgFilled() && !gs->GetBgColor()->None()); _p->SetColors(gs->GetFgColor(), gs->GetBgColor()); _p->SetPattern(gs->GetPattern()); _p->SetBrush(gs->GetBrush()); --- 478,484 ---- void Graphic::update (Graphic* gs) { Transformer* t = _p->GetTransformer(); ! _p->FillBg(gs->BgFilled()); _p->SetColors(gs->GetFgColor(), gs->GetBgColor()); _p->SetPattern(gs->GetPattern()); _p->SetBrush(gs->GetBrush()); *** /dev/null Fri Nov 30 07:24:29 PST 2001 --- patches/ivtools-011130-johnston-013 *************** patches/ivtools-011130-johnston-013 *** 0 **** --- 1 ---- + ivtools-011130-johnston-013 |
From: <ivt...@li...> - 2001-11-29 21:56:45
|
Patch: ivtools-011130-johnston-011 For: ivtools-1.0 Author: joh...@us... Subject: commands for empty rasters, list equality, nil arithmetic Requires: This is an intermediate patch to ivtools-1.0. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - add a comdraw command to create white rasters initialized with a 2 pixel wide black border: compview=raster(x0,y0,x1,y1) -- create an empty raster - make equality and inequality operators work for list objects. Note that the "," list concatenation operator always appends the second operand to the first operand if it is already a list, as illustrated by this example ("> " inserted for clarity): > l1=1,2,3 {1,2,3} > l2=l1,4 {1,2,3,4} > l1==l2 1 Alternately the "list" command can be used to create a distinct list: > l1=1,2,3 {1,2,3} > l2=list(l1),4 {1,2,3,4} > l1==l2 0 - fix up some more handling of nil by arithmetic operators. The rule is nil in, nil out. Index: ComTerp/boolfunc.c diff -c ComTerp/boolfunc.c:1.1 ComTerp/boolfunc.c:1.2 *** ComTerp/boolfunc.c:1.1 Fri Nov 2 13:04:49 2001 --- src/ComTerp/boolfunc.c Fri Nov 30 05:52:48 2001 *************** *** 251,256 **** --- 251,260 ---- result.boolean_ref() = strncmp(str1, str2, nval.int_val())==0; } break; + case ComValue::ArrayType: + result.boolean_ref() = operand2.type() == ComValue::ArrayType && + operand1.array_val() == operand2.array_val(); + break; default: result.boolean_ref() = operand1.is_type(ComValue::UnknownType) && operand2.is_type(ComValue::UnknownType); *************** *** 314,319 **** --- 318,327 ---- const char* str2 = operand2.symbol_ptr(); result.boolean_ref() = strncmp(str1, str2, nval.int_val())!=0; } + break; + case ComValue::ArrayType: + result.boolean_ref() = operand2.type() != ComValue::ArrayType || + operand1.array_val() != operand2.array_val(); break; case ComValue::UnknownType: result.boolean_ref() = operand2.is_known(); Index: ComTerp/listfunc.h diff -c ComTerp/listfunc.h:1.1 ComTerp/listfunc.h:1.2 *** ComTerp/listfunc.h:1.1 Fri Nov 2 13:04:49 2001 --- src/ComTerp/listfunc.h Fri Nov 30 05:52:48 2001 *************** *** 36,42 **** class ComValue; //: create list command for ComTerp. ! // lst=list([olst|strm]) -- create list, copy list, or convert stream class ListFunc : public ComFunc { public: ListFunc(ComTerp*); --- 36,42 ---- class ComValue; //: create list command for ComTerp. ! // lst=list([olst|strm] :strmlst) -- create list, copy list, or convert stream class ListFunc : public ComFunc { public: ListFunc(ComTerp*); *************** *** 44,50 **** virtual void execute(); virtual boolean post_eval() { return true; } virtual const char* docstring() { ! return "lst=%s([olst|strm]) -- create list, copy list, or convert stream"; } }; //: list member command for ComTerp. --- 44,50 ---- virtual void execute(); virtual boolean post_eval() { return true; } virtual const char* docstring() { ! return "lst=%s([olst|strm] :strmlst) -- create list, copy list, or convert stream"; } }; //: list member command for ComTerp. Index: ComTerp/numfunc.c diff -c ComTerp/numfunc.c:1.1 ComTerp/numfunc.c:1.2 *** ComTerp/numfunc.c:1.1 Fri Nov 2 13:04:49 2001 --- src/ComTerp/numfunc.c Fri Nov 30 05:52:48 2001 *************** *** 37,47 **** --- 37,49 ---- void NumFunc::promote(ComValue& op1, ComValue& op2) { if (op1.type() == op2.type()) return; + #if 0 if (op1.is_unknown() || op2.is_unknown()) { op1.type(ComValue::UnknownType); op2.type(ComValue::UnknownType); return; } + #endif boolean op1bigger = op1.type() > op2.type(); ComValue* greater = op1bigger ? &op1 : &op2; *************** *** 179,184 **** --- 181,192 ---- promote(operand1, operand2); ComValue result(operand1); + if (operand1.is_unknown() || operand2.is_unknown()) { + reset_stack(); + push_stack(ComValue::nullval()); + return; + } + switch (result.type()) { case ComValue::CharType: result.char_ref() = operand1.char_val() + operand2.char_val(); *************** *** 234,239 **** --- 242,253 ---- promote(operand1, operand2); ComValue result(operand1); + if (operand1.is_unknown() || operand2.is_unknown()) { + reset_stack(); + push_stack(ComValue::nullval()); + return; + } + switch (result.type()) { case ComValue::CharType: result.char_ref() = operand1.char_val() - operand2.char_val(); *************** *** 276,281 **** --- 290,302 ---- void MinusFunc::execute() { ComValue& operand1 = stack_arg(0); ComValue result(operand1); + + if (operand1.is_unknown()) { + reset_stack(); + push_stack(ComValue::nullval()); + return; + } + switch (result.type()) { case ComValue::CharType: result.char_ref() = - operand1.char_val(); *************** *** 320,325 **** --- 341,352 ---- ComValue& operand2 = stack_arg(1); promote(operand1, operand2); ComValue result(operand1); + + if (operand1.is_unknown() || operand2.is_unknown()) { + reset_stack(); + push_stack(ComValue::nullval()); + return; + } switch (result.type()) { case ComValue::CharType: *************** *** 365,370 **** --- 392,404 ---- ComValue& operand1 = stack_arg(0); ComValue& operand2 = stack_arg(1); promote(operand1, operand2); + + if (operand1.is_unknown() || operand2.is_unknown()) { + reset_stack(); + push_stack(ComValue::nullval()); + return; + } + ComValue result(operand1); switch (result.type()) { *************** *** 442,447 **** --- 476,487 ---- promote(operand1, operand2); ComValue result(operand1); + if (operand1.is_unknown() || operand2.is_unknown()) { + reset_stack(); + push_stack(ComValue::nullval()); + return; + } + switch (result.type()) { case ComValue::CharType: if (operand2.char_val()!=0) *************** *** 517,522 **** --- 557,568 ---- promote(operand1, operand2); ComValue result(operand1); + if (operand1.is_unknown() || operand2.is_unknown()) { + reset_stack(); + push_stack(ComValue::nullval()); + return; + } + switch (result.type()) { case ComValue::CharType: result.char_ref() = operand1.char_val() < operand2.char_val() *************** *** 575,580 **** --- 621,632 ---- promote(operand1, operand2); ComValue result(operand1); + if (operand1.is_unknown() || operand2.is_unknown()) { + reset_stack(); + push_stack(ComValue::nullval()); + return; + } + switch (result.type()) { case ComValue::CharType: result.char_ref() = operand1.char_val() > operand2.char_val() *************** *** 632,637 **** --- 684,695 ---- ComValue& operand1 = stack_arg(0); ComValue result(operand1); + if (operand1.is_unknown()) { + reset_stack(); + push_stack(ComValue::nullval()); + return; + } + switch (result.type()) { case ComValue::CharType: result.char_ref() = operand1.char_val() < 0 Index: comterp/README diff -c comterp/README:1.1 comterp/README:1.2 *** comterp/README:1.1 Fri Nov 2 13:04:52 2001 --- src/comterp_/README Fri Nov 30 05:52:50 2001 *************** *** 174,180 **** LIST COMMANDS: ! lst=list([olst|strm]) -- create list, copy list, or convert stream val=at(list|attrlist n :set val ) -- return (or set) nth item in a list --- 174,180 ---- LIST COMMANDS: ! lst=list([olst|strm] :strmlst) -- create list, copy list, or convert stream val=at(list|attrlist n :set val ) -- return (or set) nth item in a list Index: ComUnidraw/comeditor.c diff -c ComUnidraw/comeditor.c:1.3 ComUnidraw/comeditor.c:1.4 *** ComUnidraw/comeditor.c:1.3 Fri Nov 16 10:25:20 2001 --- src/ComUnidraw/comeditor.c Fri Nov 30 05:53:14 2001 *************** *** 135,140 **** --- 135,142 ---- comterp->add_command("arrowspline", new CreateOpenSplineFunc(comterp, this)); comterp->add_command("polygon", new CreatePolygonFunc(comterp, this)); comterp->add_command("closedspline", new CreateClosedSplineFunc(comterp, this)); + comterp->add_command("raster", new CreateRasterFunc(comterp, this)); + comterp->add_command("pixmap", new CreateRasterFunc(comterp, this)); comterp->add_command("center", new CenterFunc(comterp, this)); comterp->add_command("mbr", new MbrFunc(comterp, this)); Index: ComUnidraw/grfunc.c diff -c ComUnidraw/grfunc.c:1.2 ComUnidraw/grfunc.c:1.3 *** ComUnidraw/grfunc.c:1.2 Thu Nov 29 07:39:24 2001 --- src/ComUnidraw/grfunc.c Fri Nov 30 05:53:14 2001 *************** *** 1,4 **** --- 1,5 ---- /* + * Copyright (c) 2001 Scott E. Johnston * Copyright (c) 2000 IET Inc. * Copyright (c) 1994-1997 Vectaport Inc. * *************** *** 35,40 **** --- 36,42 ---- #include <OverlayUnidraw/ovellipse.h> #include <OverlayUnidraw/ovrect.h> #include <OverlayUnidraw/ovpolygon.h> + #include <OverlayUnidraw/ovraster.h> #include <OverlayUnidraw/ovspline.h> #include <OverlayUnidraw/ovtext.h> *************** *** 578,583 **** --- 580,647 ---- if (PasteModeFunc::paste_mode()==0) cmd = new PasteCmd(_ed, new Clipboard(comp)); ComValue compval(symbol_add("ClosedSplineComp"), new ComponentView(comp)); + compval.object_compview(true); + push_stack(compval); + } else + push_stack(ComValue::nullval()); + + execute_log(cmd); + } + + /*****************************************************************************/ + + CreateRasterFunc::CreateRasterFunc(ComTerp* comterp, Editor* ed) : UnidrawFunc(comterp, ed) { + } + + void CreateRasterFunc::execute() { + const int x0 = 0; + const int y0 = 1; + const int x1 = 2; + const int y1 = 3; + const int n = 4; + int coords[n]; + ComValue& vect = stack_arg(0); + if (!vect.is_type(ComValue::ArrayType) || vect.array_len() != n) { + reset_stack(); + push_stack(ComValue::nullval()); + return; + } + + ALIterator i; + AttributeValueList* avl = vect.array_val(); + avl->First(i); + for (int j=0; j<n && !avl->Done(i); j++) { + coords[j] = avl->GetAttrVal(i)->int_val(); + avl->Next(i); + } + reset_stack(); + + PasteCmd* cmd = nil; + + if (coords[x0] != coords[x1] || coords[y0] != coords[y1]) { + + float dcoords[n]; + ((OverlayViewer*)GetEditor()->GetViewer())->ScreenToDrawing + (coords[x0], coords[y0], dcoords[x0], dcoords[y0]); + ((OverlayViewer*)GetEditor()->GetViewer())->ScreenToDrawing + (coords[x1], coords[y1], dcoords[x1], dcoords[y1]); + + OverlayRaster* raster = + new OverlayRaster((int)(dcoords[x1]-dcoords[x0]+1), + (int)(dcoords[y1]-dcoords[y0]+1), + 2 /* initialize with border of 2 */); + + OverlayRasterRect* rasterrect = new OverlayRasterRect(raster, stdgraphic); + + Transformer* t = new Transformer(); + t->Translate(dcoords[x0], dcoords[y0]); + rasterrect->SetTransformer(t); + Unref(t); + + RasterOvComp* comp = new RasterOvComp(rasterrect); + if (PasteModeFunc::paste_mode()==0) + cmd = new PasteCmd(_ed, new Clipboard(comp)); + ComValue compval(symbol_add("RasterComp"), new ComponentView(comp)); compval.object_compview(true); push_stack(compval); } else Index: ComUnidraw/grfunc.h diff -c ComUnidraw/grfunc.h:1.1 ComUnidraw/grfunc.h:1.2 *** ComUnidraw/grfunc.h:1.1 Fri Nov 2 13:07:06 2001 --- src/ComUnidraw/grfunc.h Fri Nov 30 05:53:14 2001 *************** *** 111,116 **** --- 111,126 ---- return "compview=%s(x0,y0[,x1,y1,...]) -- create a closed spline"; } }; + //: raster creation command for comdraw. + // compview=raster(x0,y0,x1,y1) -- create an empty raster + class CreateRasterFunc : public UnidrawFunc { + public: + CreateRasterFunc(ComTerp*,Editor*); + virtual void execute(); + virtual const char* docstring() { + return "compview=%s(x0,y0,x1,y1) -- create an empty raster"; } + }; + //: command for setting font state variable in comdraw. // font(fontnum) -- set current font from menu order class FontFunc : public UnidrawFunc { Index: comdraw/README diff -c comdraw/README:1.3 comdraw/README:1.4 *** comdraw/README:1.3 Fri Nov 16 10:25:21 2001 --- src/comdraw/README Fri Nov 30 05:53:16 2001 *************** *** 38,43 **** --- 38,44 ---- 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,x1,y0,y1) -- create an empty raster GRAPHIC STATS COMMANDS Index: man1_ivtools/comdraw.1 diff -c man1_ivtools/comdraw.1:1.3 man1_ivtools/comdraw.1:1.4 *** man1_ivtools/comdraw.1:1.3 Fri Nov 16 10:25:26 2001 --- src/man/man1/comdraw.1 Fri Nov 30 05:53:28 2001 *************** *** 43,48 **** --- 43,50 ---- 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 Index: man1_ivtools/comterp.1 diff -c man1_ivtools/comterp.1:1.1 man1_ivtools/comterp.1:1.2 *** man1_ivtools/comterp.1:1.1 Fri Nov 2 13:07:59 2001 --- src/man/man1/comterp.1 Fri Nov 30 05:53:29 2001 *************** *** 185,191 **** .SH LIST COMMANDS: ! lst=list([olst|strm]) -- create list, copy list, or convert stream val=at(list|attrlist n :set val) -- return (or set) nth item in a list --- 185,191 ---- .SH LIST COMMANDS: ! lst=list([olst|strm] :strmlst) -- create list, copy list, or convert stream val=at(list|attrlist n :set val) -- return (or set) nth item in a list *** /dev/null Fri Nov 30 05:53:33 PST 2001 --- patches/ivtools-011130-johnston-011 *************** patches/ivtools-011130-johnston-011 *** 0 **** --- 1 ---- + ivtools-011130-johnston-011 |
From: <ivt...@li...> - 2001-11-28 23:40:18
|
Patch: ivtools-011129-johnston-010 For: ivtools-1.0 Author: joh...@us... Subject: transparent background color, fix import use of gunzip, new configure support scripts Requires: This is an intermediate patch to ivtools-1.0. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - add "None" color to background color menu, exposing the hidden fillbg flag (transparent background mechanism) for the first time in the history of this software. - fix drawing editor import's use of gunzip to decompress graphic files. - update config.guess and config.sub, support scripts for the configure script from the autoconf package. May fix problems with HPUX, ALPHA, and ARM. Index: Unidraw/catalog.c diff -c Unidraw/catalog.c:1.1 Unidraw/catalog.c:1.2 *** Unidraw/catalog.c:1.1 Fri Nov 2 13:06:49 2001 --- src/Unidraw/catalog.c Thu Nov 29 07:39:16 2001 *************** *** 302,307 **** --- 302,308 ---- pssolid = FindGrayLevel(0.0); psclear = FindGrayLevel(1.0); psnonepat = FindNonePattern(); + psnonecolor = FindNoneColor(); stdgraphic = new FullGraphic; stdgraphic->FillBg(true); *************** *** 1226,1232 **** --- 1227,1236 ---- color = FindColor(name, ir, ig, ib); } + } else if (buf[0] == 'n' || buf[0] == 'N') { + color = FindNoneColor(); } + return color; } *************** *** 1258,1263 **** --- 1262,1284 ---- return color; } + PSColor* Catalog::FindNoneColor () { + PSColor* color = nil; + + for (UList* u = _colors->First(); u != _colors->End(); u = u->Next()) { + color = getcolor(u); + + if (color->None()) { + return color; + } + } + color = new PSColor; + Ref(color); + _colors->Append(new UList(color)); + + return color; + } + PSColor* Catalog::ReadColor (const char* n, int index) { const char* def = GetAttribute(Name(n, index)); *************** *** 1269,1276 **** PSColor* color = nil; char name[CHARBUFSIZE]; int r = 0, g = 0, b = 0; ! if (sscanf(definition, "%s %d %d %d", name, &r, &g, &b) == 4) { color = FindColor(name, r, g, b); } else if (sscanf(definition, "%s", name) == 1) { --- 1290,1300 ---- PSColor* color = nil; char name[CHARBUFSIZE]; int r = 0, g = 0, b = 0; + + if (strcmp(definition, "none")==0) { + color = FindNoneColor(); ! } else if (sscanf(definition, "%s %d %d %d", name, &r, &g, &b) == 4) { color = FindColor(name, r, g, b); } else if (sscanf(definition, "%s", name) == 1) { Index: Unidraw/ellipse.c diff -c Unidraw/ellipse.c:1.1 Unidraw/ellipse.c:1.2 *** Unidraw/ellipse.c:1.1 Fri Nov 2 13:06:49 2001 --- src/Unidraw/ellipse.c Thu Nov 29 07:39:16 2001 *************** *** 188,193 **** --- 188,194 ---- if (patVar != nil) ellipse->SetPattern(patVar->GetPattern()); if (colVar != nil) { + ellipse->FillBg(!colVar->GetBgColor()->None()); ellipse->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } ellipse->SetTransformer(rel); Index: Unidraw/globals.c diff -c Unidraw/globals.c:1.1 Unidraw/globals.c:1.2 *** Unidraw/globals.c:1.1 Fri Nov 2 13:06:49 2001 --- src/Unidraw/globals.c Thu Nov 29 07:39:16 2001 *************** *** 45,50 **** --- 45,51 ---- PSPattern* pssolid; PSPattern* psclear; PSPattern* psnonepat; + PSColor* psnonecolor; PSBrush* pssingle; PSBrush* psnonebr; PSFont* psstdfont; Index: Unidraw/graphic.c diff -c Unidraw/graphic.c:1.1 Unidraw/graphic.c:1.2 *** Unidraw/graphic.c:1.1 Fri Nov 2 13:06:49 2001 --- src/Unidraw/graphic.c Thu Nov 29 07:39:16 2001 *************** *** 478,484 **** void Graphic::update (Graphic* gs) { Transformer* t = _p->GetTransformer(); ! _p->FillBg(gs->BgFilled()); _p->SetColors(gs->GetFgColor(), gs->GetBgColor()); _p->SetPattern(gs->GetPattern()); _p->SetBrush(gs->GetBrush()); --- 478,484 ---- void Graphic::update (Graphic* gs) { Transformer* t = _p->GetTransformer(); ! _p->FillBg(gs->BgFilled() && !gs->GetBgColor()->None()); _p->SetColors(gs->GetFgColor(), gs->GetBgColor()); _p->SetPattern(gs->GetPattern()); _p->SetBrush(gs->GetBrush()); Index: Unidraw/grcomp.c diff -c Unidraw/grcomp.c:1.1 Unidraw/grcomp.c:1.2 *** Unidraw/grcomp.c:1.1 Fri Nov 2 13:06:49 2001 --- src/Unidraw/grcomp.c Thu Nov 29 07:39:16 2001 *************** *** 155,160 **** --- 155,161 ---- fg = (fg == nil) ? gr->GetFgColor() : fg; bg = (bg == nil) ? gr->GetBgColor() : bg; cmd->Store(this, new ColorData(gr->GetFgColor(), gr->GetBgColor())); + gr->FillBg(!bg->None()); gr->SetColors(fg, bg); Notify(); *************** *** 247,252 **** --- 248,254 ---- ColorData* cd = (ColorData*) cmd->Recall(this); if (cd != nil) { + gr->FillBg(!cd->_bg->None()); gr->SetColors(cd->_fg, cd->_bg); Notify(); } Index: Unidraw/line.c diff -c Unidraw/line.c:1.1 Unidraw/line.c:1.2 *** Unidraw/line.c:1.1 Fri Nov 2 13:06:49 2001 --- src/Unidraw/line.c Thu Nov 29 07:39:16 2001 *************** *** 241,246 **** --- 241,247 ---- if (brVar != nil) line->SetBrush(brVar->GetBrush()); if (colVar != nil) { + line->FillBg(!colVar->GetBgColor()->None()); line->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } line->SetTransformer(rel); *************** *** 489,494 **** --- 490,496 ---- if (patVar != nil) polygon->SetPattern(patVar->GetPattern()); if (colVar != nil) { + polygon->FillBg(!colVar->GetBgColor()->None()); polygon->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } polygon->SetTransformer(rel); Index: Unidraw/polygon.c diff -c Unidraw/polygon.c:1.1 Unidraw/polygon.c:1.2 *** Unidraw/polygon.c:1.1 Fri Nov 2 13:06:49 2001 --- src/Unidraw/polygon.c Thu Nov 29 07:39:16 2001 *************** *** 192,197 **** --- 192,198 ---- if (patVar != nil) polygon->SetPattern(patVar->GetPattern()); if (colVar != nil) { + polygon->FillBg(!colVar->GetBgColor()->None()); polygon->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } polygon->SetTransformer(rel); Index: Unidraw/pspaint.c diff -c Unidraw/pspaint.c:1.1 Unidraw/pspaint.c:1.2 *** Unidraw/pspaint.c:1.1 Fri Nov 2 13:06:49 2001 --- src/Unidraw/pspaint.c Thu Nov 29 07:39:16 2001 *************** *** 67,72 **** --- 67,80 ---- /*****************************************************************************/ + PSColor::PSColor() : Color((ColorIntensity)1., (ColorIntensity)1., (ColorIntensity)1.) { + _name = strdup("None"); + _r = (ColorIntensity)1.; + _g = (ColorIntensity)1.; + _b = (ColorIntensity)1.; + _none = true; + } + PSColor::PSColor( ColorIntensity r, ColorIntensity g, ColorIntensity b, const char* name ) : Color(r, g, b) { *************** *** 74,79 **** --- 82,88 ---- _r = r; _g = g; _b = b; + _none = false; } PSColor::~PSColor () { delete _name; } Index: Unidraw/rect.c diff -c Unidraw/rect.c:1.1 Unidraw/rect.c:1.2 *** Unidraw/rect.c:1.1 Fri Nov 2 13:06:49 2001 --- src/Unidraw/rect.c Thu Nov 29 07:39:16 2001 *************** *** 259,264 **** --- 259,265 ---- if (patVar != nil) rect->SetPattern(patVar->GetPattern()); if (colVar != nil) { + rect->FillBg(!colVar->GetBgColor()->None()); rect->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } rect->SetTransformer(rel); Index: Unidraw/spline.c diff -c Unidraw/spline.c:1.1 Unidraw/spline.c:1.2 *** Unidraw/spline.c:1.1 Fri Nov 2 13:06:49 2001 --- src/Unidraw/spline.c Thu Nov 29 07:39:16 2001 *************** *** 188,193 **** --- 188,194 ---- if (patVar != nil) spline->SetPattern(patVar->GetPattern()); if (colVar != nil) { + spline->FillBg(!colVar->GetBgColor()->None()); spline->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } spline->SetTransformer(rel); *************** *** 386,391 **** --- 387,393 ---- if (patVar != nil) cbs->SetPattern(patVar->GetPattern()); if (colVar != nil) { + cbs->FillBg(!colVar->GetBgColor()->None()); cbs->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } cbs->SetTransformer(rel); Index: UniIdraw/idarrow.c diff -c UniIdraw/idarrow.c:1.1 UniIdraw/idarrow.c:1.2 *** UniIdraw/idarrow.c:1.1 Fri Nov 2 13:06:52 2001 --- src/UniIdraw/idarrow.c Thu Nov 29 07:39:18 2001 *************** *** 200,205 **** --- 200,206 ---- if (patVar != nil) { aline->SetPattern(patVar->GetPattern()); } if (colVar != nil) { + aline->FillBg(!colVar->GetBgColor()->None()); aline->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } *************** *** 452,457 **** --- 453,459 ---- if (patVar != nil) aml->SetPattern(patVar->GetPattern()); if (colVar != nil) { + aml->FillBg(!colVar->GetBgColor()->None()); aml->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } aml->SetTransformer(rel); *************** *** 701,706 **** --- 703,709 ---- if (patVar != nil) aml->SetPattern(patVar->GetPattern()); if (colVar != nil) { + aml->FillBg(!colVar->GetBgColor()->None()); aml->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } aml->SetTransformer(rel); Index: OverlayUnidraw/ovarrow.c diff -c OverlayUnidraw/ovarrow.c:1.1 OverlayUnidraw/ovarrow.c:1.2 *** OverlayUnidraw/ovarrow.c:1.1 Fri Nov 2 13:07:02 2001 --- src/OverlayUnidraw/ovarrow.c Thu Nov 29 07:39:20 2001 *************** *** 569,574 **** --- 569,576 ---- if (patVar != nil) aml->SetPattern(patVar->GetPattern()); if (colVar != nil) { + aml->FillBg(!colVar->GetBgColor()->None()); + aml->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } aml->SetTransformer(rel); *************** *** 1008,1013 **** --- 1010,1016 ---- if (patVar != nil) aml->SetPattern(patVar->GetPattern()); if (colVar != nil) { + aml->FillBg(!colVar->GetBgColor()->None()); aml->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } aml->SetTransformer(rel); Index: OverlayUnidraw/ovellipse.c diff -c OverlayUnidraw/ovellipse.c:1.1 OverlayUnidraw/ovellipse.c:1.2 *** OverlayUnidraw/ovellipse.c:1.1 Fri Nov 2 13:07:02 2001 --- src/OverlayUnidraw/ovellipse.c Thu Nov 29 07:39:20 2001 *************** *** 196,201 **** --- 196,202 ---- if (patVar != nil) ellipse->SetPattern(patVar->GetPattern()); if (colVar != nil) { + ellipse->FillBg(!colVar->GetBgColor()->None()); ellipse->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } ellipse->SetTransformer(rel); Index: OverlayUnidraw/ovhull.c diff -c OverlayUnidraw/ovhull.c:1.1 OverlayUnidraw/ovhull.c:1.2 *** OverlayUnidraw/ovhull.c:1.1 Fri Nov 2 13:07:02 2001 --- src/OverlayUnidraw/ovhull.c Thu Nov 29 07:39:20 2001 *************** *** 192,197 **** --- 192,198 ---- if (brVar != nil) cpoly->SetBrush(brVar->GetBrush()); if (patVar != nil) cpoly->SetPattern(patVar->GetPattern()); if (colVar != nil) { + cpoly->FillBg(!colVar->GetBgColor()->None()); cpoly->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } Index: OverlayUnidraw/ovimport.c diff -c OverlayUnidraw/ovimport.c:1.1 OverlayUnidraw/ovimport.c:1.2 *** OverlayUnidraw/ovimport.c:1.1 Fri Nov 2 13:07:02 2001 --- src/OverlayUnidraw/ovimport.c Thu Nov 29 07:39:20 2001 *************** *** 1528,1534 **** if (pathname && !return_fd) { char buffer[BUFSIZ]; if (compressed) ! sprintf(buffer, "tf=`ivtmpnam`;gzip -c %s | pstoedit -f idraw - $tf.%s;cat $tf.*;rm $tf.*", pathname, "%d"); else sprintf(buffer, "tf=`ivtmpnam`;pstoedit -f idraw %s $tf.%s;cat $tf.*;rm $tf.*", pathname, "%d"); pptr = popen(buffer, "r"); --- 1528,1534 ---- if (pathname && !return_fd) { char buffer[BUFSIZ]; if (compressed) ! sprintf(buffer, "tf=`ivtmpnam`;gunzip -c %s | pstoedit -f idraw - $tf.%s;cat $tf.*;rm $tf.*", pathname, "%d"); else sprintf(buffer, "tf=`ivtmpnam`;pstoedit -f idraw %s $tf.%s;cat $tf.*;rm $tf.*", pathname, "%d"); pptr = popen(buffer, "r"); *************** *** 1569,1575 **** if (pathname && !return_fd) { char buffer[BUFSIZ]; if (compressed) ! sprintf(buffer, "gzip -c %s | giftopnm", pathname); else sprintf(buffer, "giftopnm %s", pathname); FILE* pptr = popen(buffer, "r"); --- 1569,1575 ---- if (pathname && !return_fd) { char buffer[BUFSIZ]; if (compressed) ! sprintf(buffer, "gunzip -c %s | giftopnm", pathname); else sprintf(buffer, "giftopnm %s", pathname); FILE* pptr = popen(buffer, "r"); *************** *** 1624,1635 **** char buffer[BUFSIZ]; if (dithermap_flag) { if (compressed) ! sprintf(buffer, "cm=`ivtmpnam`;stdcmapppm>$cm;gzip -c %s | djpeg -map $cm -dither fs -pnm;rm $cm", pathname); else sprintf(buffer, "cm=`ivtmpnam`;stdcmapppm>$cm;djpeg -map $cm -dither fs -pnm %s;rm $cm", pathname); } else { if (compressed) ! sprintf(buffer, "gzip -c %s | djpeg -pnm", pathname); else sprintf(buffer, "djpeg -pnm %s", pathname); } --- 1624,1635 ---- char buffer[BUFSIZ]; if (dithermap_flag) { if (compressed) ! sprintf(buffer, "cm=`ivtmpnam`;stdcmapppm>$cm;gunzip -c %s | djpeg -map $cm -dither fs -pnm;rm $cm", pathname); else sprintf(buffer, "cm=`ivtmpnam`;stdcmapppm>$cm;djpeg -map $cm -dither fs -pnm %s;rm $cm", pathname); } else { if (compressed) ! sprintf(buffer, "gunzip -c %s | djpeg -pnm", pathname); else sprintf(buffer, "djpeg -pnm %s", pathname); } *************** *** 1661,1667 **** if (pathname && !return_fd) { char buffer[BUFSIZ]; if (compressed) ! sprintf(buffer, "gzip -c %s | pngtopnm", pathname); else sprintf(buffer, "pngtopnm %s", pathname); FILE* pptr = popen(buffer, "r"); --- 1661,1667 ---- if (pathname && !return_fd) { char buffer[BUFSIZ]; if (compressed) ! sprintf(buffer, "gunzip -c %s | pngtopnm", pathname); else sprintf(buffer, "pngtopnm %s", pathname); FILE* pptr = popen(buffer, "r"); Index: OverlayUnidraw/ovkit.c diff -c OverlayUnidraw/ovkit.c:1.1 OverlayUnidraw/ovkit.c:1.2 *** OverlayUnidraw/ovkit.c:1.1 Fri Nov 2 13:07:02 2001 --- src/OverlayUnidraw/ovkit.c Thu Nov 29 07:39:20 2001 *************** *** 848,861 **** } ! Glyph* OverlayKit::MenuRect (Color * color) { ! Brush * brush = new Brush(0.0); Coord w = (MENU_WIDTH*ivcm); Coord h = (MENU_HEIGHT*ivcm); Resource::ref(brush); return new Fig31Rectangle(brush, WidgetKit::instance()->foreground(), ! color, 0, 0, w, h); } --- 848,861 ---- } ! Glyph* OverlayKit::MenuRect (PSColor * color) { ! Brush * brush = color->None() ? new Brush(0xaaaa, 0.0) : new Brush(0.0); Coord w = (MENU_WIDTH*ivcm); Coord h = (MENU_HEIGHT*ivcm); Resource::ref(brush); return new Fig31Rectangle(brush, WidgetKit::instance()->foreground(), ! color->None() ? nil : color, 0, 0, w, h); } *************** *** 1219,1234 **** ControlInfo* ctrlInfo; IntCoord w = Math::round(MENU_WIDTH*ivcm); IntCoord h = Math::round(MENU_HEIGHT*ivcm); ! ! SF_Rect* sfr = new SF_Rect(0, 0, w, h, stdgraphic); ! sfr->SetColors(color, color); ! MakeMenu(mbi, new ColorCmd(new ControlInfo(new RectOvComp(sfr), color->GetName()), ! nil, color), lk.hbox(MenuRect(color), kit.label(" "), kit.label(color->GetName()), lk.hglue()) ! ); color = catalog->ReadColor(bgAttrib, ++i); } --- 1219,1238 ---- ControlInfo* ctrlInfo; IntCoord w = Math::round(MENU_WIDTH*ivcm); IntCoord h = Math::round(MENU_HEIGHT*ivcm); ! ! if (color->None()) { ! ctrlInfo = new ControlInfo("None"); ! } else { ! SF_Rect* sfr = new SF_Rect(0, 0, w, h, stdgraphic); ! sfr->SetColors(color, color); ! ctrlInfo = new ControlInfo(new RectOvComp(sfr), color->GetName()); ! } ! MakeMenu(mbi, new ColorCmd( ctrlInfo, nil, color), lk.hbox(MenuRect(color), kit.label(" "), kit.label(color->GetName()), lk.hglue()) ! ); color = catalog->ReadColor(bgAttrib, ++i); } Index: OverlayUnidraw/ovkit.h diff -c OverlayUnidraw/ovkit.h:1.1 OverlayUnidraw/ovkit.h:1.2 *** OverlayUnidraw/ovkit.h:1.1 Fri Nov 2 13:07:02 2001 --- src/OverlayUnidraw/ovkit.h Thu Nov 29 07:39:21 2001 *************** *** 35,41 **** #include <Unidraw/enter-scope.h> #include <InterViews/_enter.h> - class Color; class Command; class Deck; class Editor; --- 35,40 ---- *************** *** 49,54 **** --- 48,54 ---- class Patch; class UPage; class PSBrush; + class PSColor; class PSPattern; class Viewer; class TelltaleGroup; *************** *** 202,208 **** // create line to put in a pulldown menu. Glyph* MenuArrowLine(boolean tail, boolean head); // create arrow line to put in a pulldown menu. ! Glyph* MenuRect(Color*); // create color rectangle to put in a pulldown menu. Glyph* MenuPatRect(PSPattern*); // create patterned rectangle to put in a pulldown menu. --- 202,208 ---- // create line to put in a pulldown menu. Glyph* MenuArrowLine(boolean tail, boolean head); // create arrow line to put in a pulldown menu. ! Glyph* MenuRect(PSColor*); // create color rectangle to put in a pulldown menu. Glyph* MenuPatRect(PSPattern*); // create patterned rectangle to put in a pulldown menu. Index: OverlayUnidraw/ovline.c diff -c OverlayUnidraw/ovline.c:1.1 OverlayUnidraw/ovline.c:1.2 *** OverlayUnidraw/ovline.c:1.1 Fri Nov 2 13:07:02 2001 --- src/OverlayUnidraw/ovline.c Thu Nov 29 07:39:21 2001 *************** *** 258,263 **** --- 258,264 ---- if (brVar != nil) line->SetBrush(brVar->GetBrush()); if (colVar != nil) { + line->FillBg(!colVar->GetBgColor()->None()); line->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } line->SetTransformer(rel); *************** *** 542,547 **** --- 543,549 ---- if (patVar != nil) polygon->SetPattern(patVar->GetPattern()); if (colVar != nil) { + polygon->FillBg(!colVar->GetBgColor()->None()); polygon->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } polygon->SetTransformer(rel); Index: OverlayUnidraw/ovpolygon.c diff -c OverlayUnidraw/ovpolygon.c:1.1 OverlayUnidraw/ovpolygon.c:1.2 *** OverlayUnidraw/ovpolygon.c:1.1 Fri Nov 2 13:07:02 2001 --- src/OverlayUnidraw/ovpolygon.c Thu Nov 29 07:39:21 2001 *************** *** 195,200 **** --- 195,201 ---- if (patVar != nil) polygon->SetPattern(patVar->GetPattern()); if (colVar != nil) { + polygon->FillBg(!colVar->GetBgColor()->None()); polygon->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } polygon->SetTransformer(rel); Index: OverlayUnidraw/ovrect.c diff -c OverlayUnidraw/ovrect.c:1.1 OverlayUnidraw/ovrect.c:1.2 *** OverlayUnidraw/ovrect.c:1.1 Fri Nov 2 13:07:03 2001 --- src/OverlayUnidraw/ovrect.c Thu Nov 29 07:39:21 2001 *************** *** 270,275 **** --- 270,276 ---- if (patVar != nil) rect->SetPattern(patVar->GetPattern()); if (colVar != nil) { + rect->FillBg(!colVar->GetBgColor()->None()); rect->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } rect->SetTransformer(rel); Index: OverlayUnidraw/ovspline.c diff -c OverlayUnidraw/ovspline.c:1.1 OverlayUnidraw/ovspline.c:1.2 *** OverlayUnidraw/ovspline.c:1.1 Fri Nov 2 13:07:03 2001 --- src/OverlayUnidraw/ovspline.c Thu Nov 29 07:39:21 2001 *************** *** 190,195 **** --- 190,196 ---- if (patVar != nil) spline->SetPattern(patVar->GetPattern()); if (colVar != nil) { + spline->FillBg(!colVar->GetBgColor()->None()); spline->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } spline->SetTransformer(rel); *************** *** 415,420 **** --- 416,422 ---- if (patVar != nil) cbs->SetPattern(patVar->GetPattern()); if (colVar != nil) { + cbs->FillBg(!colVar->GetBgColor()->None()); cbs->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } cbs->SetTransformer(rel); Index: drawtool/main.c diff -c drawtool/main.c:1.1 drawtool/main.c:1.2 *** drawtool/main.c:1.1 Fri Nov 2 13:07:04 2001 --- src/drawtool/main.c Thu Nov 29 07:39:23 2001 *************** *** 138,143 **** --- 138,144 ---- { "*bgcolor10", "White" }, { "*bgcolor11", "LtGray 50000 50000 50000" }, { "*bgcolor12", "DkGray 33000 33000 33000" }, + { "*bgcolor13", "none" }, { "*history", "20" }, { "*color5", "false" }, Index: ComUnidraw/grfunc.c diff -c ComUnidraw/grfunc.c:1.1 ComUnidraw/grfunc.c:1.2 *** ComUnidraw/grfunc.c:1.1 Fri Nov 2 13:07:06 2001 --- src/ComUnidraw/grfunc.c Thu Nov 29 07:39:24 2001 *************** *** 113,118 **** --- 113,119 ---- if (patVar != nil) rect->SetPattern(patVar->GetPattern()); if (colVar != nil) { + rect->FillBg(!colVar->GetBgColor()->None()); rect->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } rect->SetTransformer(rel); *************** *** 177,182 **** --- 178,184 ---- if (brVar != nil) line->SetBrush(brVar->GetBrush()); if (colVar != nil) { + line->FillBg(!colVar->GetBgColor()->None()); line->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } line->SetTransformer(rel); *************** *** 240,245 **** --- 242,248 ---- if (patVar != nil) ellipse->SetPattern(patVar->GetPattern()); if (colVar != nil) { + ellipse->FillBg(!colVar->GetBgColor()->None()); ellipse->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } ellipse->SetTransformer(rel); *************** *** 302,307 **** --- 305,311 ---- TextGraphic* text = new TextGraphic(txt, stdgraphic); if (colVar != nil) { + text->FillBg(!colVar->GetBgColor()->None()); text->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } if (fntVar != nil) text->SetFont(fntVar->GetFont()); *************** *** 370,375 **** --- 374,380 ---- if (patVar != nil) multiline->SetPattern(patVar->GetPattern()); if (colVar != nil) { + multiline->FillBg(!colVar->GetBgColor()->None()); multiline->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } multiline->SetTransformer(rel); *************** *** 435,440 **** --- 440,446 ---- if (patVar != nil) openspline->SetPattern(patVar->GetPattern()); if (colVar != nil) { + openspline->FillBg(!colVar->GetBgColor()->None()); openspline->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } openspline->SetTransformer(rel); *************** *** 498,503 **** --- 504,510 ---- if (patVar != nil) polygon->SetPattern(patVar->GetPattern()); if (colVar != nil) { + polygon->FillBg(!colVar->GetBgColor()->None()); polygon->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } polygon->SetTransformer(rel); *************** *** 562,567 **** --- 569,575 ---- if (patVar != nil) closedspline->SetPattern(patVar->GetPattern()); if (colVar != nil) { + closedspline->FillBg(!colVar->GetBgColor()->None()); closedspline->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } closedspline->SetTransformer(rel); Index: GraphUnidraw/edgecomp.c diff -c GraphUnidraw/edgecomp.c:1.1 GraphUnidraw/edgecomp.c:1.2 *** GraphUnidraw/edgecomp.c:1.1 Fri Nov 2 13:07:13 2001 --- src/GraphUnidraw/edgecomp.c Thu Nov 29 07:39:26 2001 *************** *** 687,694 **** ArrowLine* line = new ArrowLine(x0, y0, x1, y1, false, true, 1.5, pg); if (brVar != nil) line->SetBrush(brVar->GetBrush()); ! if (colVar != nil) line->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); EdgeComp* newedge = new EdgeComp(line, nil, start_subedge, end_subedge); if (gv0 || gv1) --- 687,696 ---- ArrowLine* line = new ArrowLine(x0, y0, x1, y1, false, true, 1.5, pg); if (brVar != nil) line->SetBrush(brVar->GetBrush()); ! if (colVar != nil) { ! line->FillBg(!colVar->GetBgColor()->None()); line->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); + } EdgeComp* newedge = new EdgeComp(line, nil, start_subedge, end_subedge); if (gv0 || gv1) Index: GraphUnidraw/nodecomp.c diff -c GraphUnidraw/nodecomp.c:1.1 GraphUnidraw/nodecomp.c:1.2 *** GraphUnidraw/nodecomp.c:1.1 Fri Nov 2 13:07:13 2001 --- src/GraphUnidraw/nodecomp.c Thu Nov 29 07:39:26 2001 *************** *** 116,122 **** SetGraphic(pic); // kludge to fix ps: fonts are collected from comp\'s graphic, so we // need to add the font to the picture\'s gs ! pic->FillBg(ellipse->BgFilled()); pic->SetColors(ellipse->GetFgColor(), ellipse->GetBgColor()); pic->SetPattern(ellipse->GetPattern()); pic->SetBrush(ellipse->GetBrush()); --- 116,122 ---- SetGraphic(pic); // kludge to fix ps: fonts are collected from comp\'s graphic, so we // need to add the font to the picture\'s gs ! pic->FillBg(ellipse->BgFilled() && !ellipse->GetBgColor()->None()); pic->SetColors(ellipse->GetFgColor(), ellipse->GetBgColor()); pic->SetPattern(ellipse->GetPattern()); pic->SetBrush(ellipse->GetBrush()); *************** *** 138,144 **** // kludge to fix ps: fonts are collected from comp\'s graphic, so we // need to add the font to the picture\'s gs ! pic->FillBg(ellipse->BgFilled()); pic->SetColors(ellipse->GetFgColor(), ellipse->GetBgColor()); pic->SetPattern(ellipse->GetPattern()); pic->SetBrush(ellipse->GetBrush()); --- 138,144 ---- // kludge to fix ps: fonts are collected from comp\'s graphic, so we // need to add the font to the picture\'s gs ! pic->FillBg(ellipse->BgFilled() && !ellipse->GetBgColor()->None()); pic->SetColors(ellipse->GetFgColor(), ellipse->GetBgColor()); pic->SetPattern(ellipse->GetPattern()); pic->SetBrush(ellipse->GetBrush()); *************** *** 175,181 **** // kludge to fix ps: fonts are collected from comp\'s graphic, so we // need to add the font to the picture\'s gs ! pic->FillBg(ellipse->BgFilled()); pic->SetColors(ellipse->GetFgColor(), ellipse->GetBgColor()); pic->SetPattern(ellipse->GetPattern()); pic->SetBrush(ellipse->GetBrush()); --- 175,181 ---- // kludge to fix ps: fonts are collected from comp\'s graphic, so we // need to add the font to the picture\'s gs ! pic->FillBg(ellipse->BgFilled() && !ellipse->GetBgColor()->None()); pic->SetColors(ellipse->GetFgColor(), ellipse->GetBgColor()); pic->SetPattern(ellipse->GetPattern()); pic->SetBrush(ellipse->GetBrush()); *************** *** 941,946 **** --- 941,947 ---- else if (patVar != nil) ellipse->SetPattern(patVar->GetPattern()); if (colVar != nil) { + ellipse->FillBg(!colVar->GetBgColor()->None()); ellipse->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } *************** *** 979,984 **** --- 980,986 ---- else if (patVar != nil) ellipse->SetPattern(patVar->GetPattern()); if (colVar != nil) { + ellipse->FillBg(!colVar->GetBgColor()->None()); ellipse->SetColors(colVar->GetFgColor(), colVar->GetBgColor()); } Index: include_unidraw/catalog.h diff -c include_unidraw/catalog.h:1.1 include_unidraw/catalog.h:1.2 *** include_unidraw/catalog.h:1.1 Fri Nov 2 13:07:40 2001 --- src/include/Unidraw/catalog.h Thu Nov 29 07:39:32 2001 *************** *** 170,175 **** --- 170,176 ---- PSBrush* FindBrush(int, int); PSBrush* FindBrush(int, float); PSColor* FindColor(const char*, int = 0, int = 0, int = 0); + PSColor* FindNoneColor(); PSFont* FindFont(const char*, const char* = "", const char* = ""); PSPattern* FindNonePattern(); PSPattern* FindGrayLevel(float); Index: include_unidraw/globals.h diff -c include_unidraw/globals.h:1.1 include_unidraw/globals.h:1.2 *** include_unidraw/globals.h:1.1 Fri Nov 2 13:07:40 2001 --- src/include/Unidraw/globals.h Thu Nov 29 07:39:32 2001 *************** *** 96,101 **** --- 96,102 ---- extern PSPattern* pssolid; extern PSPattern* psclear; extern PSPattern* psnonepat; + extern PSColor* psnonecolor; extern PSBrush* pssingle; extern PSBrush* psnonebr; extern PSFont* psstdfont; Index: include_graphic/pspaint.h diff -c include_graphic/pspaint.h:1.1 include_graphic/pspaint.h:1.2 *** include_graphic/pspaint.h:1.1 Fri Nov 2 13:07:46 2001 --- src/include/Unidraw/Graphic/pspaint.h Thu Nov 29 07:39:34 2001 *************** *** 74,90 **** // <a href=../man3.1/pspaint.html>man page</a> class PSColor : public Color { public: PSColor(ColorIntensity, ColorIntensity, ColorIntensity, const char*); virtual ~PSColor(); const char* GetName(); void GetIntensities(ColorIntensity&, ColorIntensity&, ColorIntensity&); protected: char* _name; // stores name passed into constructor ColorIntensity _r, _g, _b; // stores intensities passed to ctor }; ! inline const char* PSColor::GetName () { return _name; } //: "PostScript" font object // <a href=../man3.1/pspaint.html>man page</a> --- 74,94 ---- // <a href=../man3.1/pspaint.html>man page</a> class PSColor : public Color { public: + PSColor(); PSColor(ColorIntensity, ColorIntensity, ColorIntensity, const char*); virtual ~PSColor(); + boolean None(); const char* GetName(); void GetIntensities(ColorIntensity&, ColorIntensity&, ColorIntensity&); protected: + boolean _none; char* _name; // stores name passed into constructor ColorIntensity _r, _g, _b; // stores intensities passed to ctor }; ! inline boolean PSColor::None () { return _none; } ! inline const char* PSColor::GetName () { return _none ? "None" : _name; } //: "PostScript" font object // <a href=../man3.1/pspaint.html>man page</a> Index: scripts_ivtools/config.guess diff -c scripts_ivtools/config.guess:1.1 scripts_ivtools/config.guess:1.2 *** scripts_ivtools/config.guess:1.1 Fri Nov 2 13:07:52 2001 --- src/scripts/config.guess Thu Nov 29 07:39:36 2001 *************** *** 1,6 **** #! /bin/sh # Attempt to guess a canonical system name. ! # Copyright (C) 1992, 93, 94, 95, 1996 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by --- 1,7 ---- #! /bin/sh # Attempt to guess a canonical system name. ! # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999 ! # Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by *************** *** 23,28 **** --- 24,30 ---- # Written by Per Bothner <bo...@cy...>. # The master version of this file is at the FSF in /home/gd/gnu/lib. + # Please send patches to <aut...@gn...>. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and *************** *** 35,40 **** --- 37,56 ---- # (but try to keep the structure clean). # + # Use $HOST_CC if defined. $CC may point to a cross-compiler + if test x"$CC_FOR_BUILD" = x; then + if test x"$HOST_CC" != x; then + CC_FOR_BUILD="$HOST_CC" + else + if test x"$CC" != x; then + CC_FOR_BUILD="$CC" + else + CC_FOR_BUILD=cc + fi + fi + fi + + # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (gh...@no... 8/24/94.) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then *************** *** 46,62 **** UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown ! trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15 # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in alpha:OSF1:*:*) # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. ! echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'` exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 --- 62,127 ---- UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown ! dummy=dummy-$$ ! trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15 # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in alpha:OSF1:*:*) + if test $UNAME_RELEASE = "V4.0"; then + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + fi # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. ! cat <<EOF >$dummy.s ! .globl main ! .ent main ! main: ! .frame \$30,0,\$26,0 ! .prologue 0 ! .long 0x47e03d80 # implver $0 ! lda \$2,259 ! .long 0x47e20c21 # amask $2,$1 ! srl \$1,8,\$2 ! sll \$2,2,\$2 ! sll \$0,3,\$0 ! addl \$1,\$0,\$0 ! addl \$2,\$0,\$0 ! ret \$31,(\$26),1 ! .end main ! EOF ! $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null ! if test "$?" = 0 ; then ! ./$dummy ! case "$?" in ! 7) ! UNAME_MACHINE="alpha" ! ;; ! 15) ! UNAME_MACHINE="alphaev5" ! ;; ! 14) ! UNAME_MACHINE="alphaev56" ! ;; ! 10) ! UNAME_MACHINE="alphapca56" ! ;; ! 16) ! UNAME_MACHINE="alphaev6" ! ;; ! esac ! fi ! rm -f $dummy.s $dummy ! echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ! exit 0 ;; ! Alpha\ *:Windows_NT*:*) ! # How do we know it's Interix rather than the generic POSIX subsystem? ! # Should we change UNAME_MACHINE based on the output of uname instead ! # of the specific Alpha model? ! echo alpha-pc-interix exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 *************** *** 68,79 **** echo m68k-cbm-netbsd${UNAME_RELEASE} exit 0 ;; amiga:OpenBSD:*:*) ! echo m68k-cbm-openbsd${UNAME_RELEASE} ! exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; ! Pyramid*:OSx*:*:*|MIS*:OSx*:*:*) # ak...@wp... (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 --- 133,174 ---- echo m68k-cbm-netbsd${UNAME_RELEASE} exit 0 ;; amiga:OpenBSD:*:*) ! echo m68k-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! *:[Aa]miga[Oo][Ss]:*:*) ! echo ${UNAME_MACHINE}-unknown-amigaos ! exit 0 ;; ! arc64:OpenBSD:*:*) ! echo mips64el-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! arc:OpenBSD:*:*) ! echo mipsel-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! hkmips:OpenBSD:*:*) ! echo mips-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! pmax:OpenBSD:*:*) ! echo mipsel-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! sgi:OpenBSD:*:*) ! echo mips-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! wgrisc:OpenBSD:*:*) ! echo mipsel-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! *:OS/390:*:*) ! echo i370-ibm-openedition ! exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; ! arm32:NetBSD:*:*) ! echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ! exit 0 ;; ! SR2?01:HI-UX/MPP:*:*) ! echo hppa1.1-hitachi-hiuxmpp ! exit 0;; ! Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # ak...@wp... (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 *************** *** 81,89 **** echo pyramid-pyramid-bsd fi exit 0 ;; ! NILE:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; --- 176,187 ---- echo pyramid-pyramid-bsd fi exit 0 ;; ! NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *************** *** 108,113 **** --- 206,223 ---- sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit 0 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit 0 ;; *************** *** 115,134 **** echo m68k-atari-netbsd${UNAME_RELEASE} exit 0 ;; atari*:OpenBSD:*:*) ! echo m68k-atari-openbsd${UNAME_RELEASE} exit 0 ;; sun3*:NetBSD:*:*) echo m68k-sun-netbsd${UNAME_RELEASE} exit 0 ;; sun3*:OpenBSD:*:*) ! echo m68k-sun-openbsd${UNAME_RELEASE} exit 0 ;; mac68k:NetBSD:*:*) echo m68k-apple-netbsd${UNAME_RELEASE} exit 0 ;; mac68k:OpenBSD:*:*) ! echo m68k-apple-openbsd${UNAME_RELEASE} exit 0 ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit 0 ;; --- 225,282 ---- echo m68k-atari-netbsd${UNAME_RELEASE} exit 0 ;; atari*:OpenBSD:*:*) ! echo m68k-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! # The situation for MiNT is a little confusing. The machine name ! # can be virtually everything (everything which is not ! # "atarist" or "atariste" at least should have a processor ! # > m68000). The system name ranges from "MiNT" over "FreeMiNT" ! # to the lowercase version "mint" (or "freemint"). Finally ! # the system name "TOS" denotes a system which is actually not ! # MiNT. But MiNT is downward compatible to TOS, so this should ! # be no problem. ! atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) ! echo m68k-atari-mint${UNAME_RELEASE} ! exit 0 ;; ! atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) ! echo m68k-atari-mint${UNAME_RELEASE} ! exit 0 ;; ! *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) ! echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit 0 ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit 0 ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit 0 ;; sun3*:NetBSD:*:*) echo m68k-sun-netbsd${UNAME_RELEASE} exit 0 ;; sun3*:OpenBSD:*:*) ! echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mac68k:NetBSD:*:*) echo m68k-apple-netbsd${UNAME_RELEASE} exit 0 ;; mac68k:OpenBSD:*:*) ! echo m68k-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! mvme68k:OpenBSD:*:*) ! echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; + mvme88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit 0 ;; + macppc:NetBSD:*:*) + echo powerpc-apple-netbsd${UNAME_RELEASE} + exit 0 ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit 0 ;; *************** *** 138,146 **** VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) ! sed 's/^ //' << EOF >dummy.c ! int main (argc, argv) int argc; char **argv; { #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); --- 286,301 ---- VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit 0 ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) ! sed 's/^ //' << EOF >$dummy.c ! #ifdef __cplusplus ! int main (int argc, char *argv[]) { ! #else ! int main (argc, argv) int argc; char *argv[]; { ! #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); *************** *** 155,164 **** exit (-1); } EOF ! ${CC-cc} dummy.c -o dummy \ ! && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ ! && rm dummy.c dummy && exit 0 ! rm -f dummy.c dummy echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; Night_Hawk:Power_UNIX:*:*) --- 310,319 ---- exit (-1); } EOF ! $CC_FOR_BUILD $dummy.c -o $dummy \ ! && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ ! && rm $dummy.c $dummy && exit 0 ! rm -f $dummy.c $dummy echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; Night_Hawk:Power_UNIX:*:*) *************** *** 168,184 **** echo m88k-harris-cxux7 exit 0 ;; m88k:*:4*:R4*) ! if test -f /bin/ocsinq ! then ! if /bin/ocsinq ! then ! echo m88k-motorola-sysv3 ! else ! echo m88k-motorola-sysv4 ! fi ! else ! echo m88k-motorola-sysv4 ! fi exit 0 ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 --- 323,329 ---- echo m88k-harris-cxux7 exit 0 ;; m88k:*:4*:R4*) ! echo m88k-motorola-sysv4 exit 0 ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 *************** *** 186,200 **** AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` ! if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then ! if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \ ! -o ${TARGET_BINARY_INTERFACE}x = x ] ; then echo m88k-dg-dgux${UNAME_RELEASE} ! else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi - else echo i586-dg-dgux${UNAME_RELEASE} - fi exit 0 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 --- 331,348 ---- AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` ! if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110] ! then ! if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ ! [ ${TARGET_BINARY_INTERFACE}x = x ] ! then echo m88k-dg-dgux${UNAME_RELEASE} ! else echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} fi exit 0 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 *************** *** 220,226 **** exit 0 ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then ! sed 's/^ //' << EOF >dummy.c #include <sys/systemcfg.h> main() --- 368,374 ---- exit 0 ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then ! sed 's/^ //' << EOF >$dummy.c #include <sys/systemcfg.h> main() *************** *** 231,238 **** exit(0); } EOF ! ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 ! rm -f dummy.c dummy echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 --- 379,386 ---- exit(0); } EOF ! $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 ! rm -f $dummy.c $dummy echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 *************** *** 241,247 **** fi exit 0 ;; *:AIX:*:4) ! if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc --- 389,396 ---- fi exit 0 ;; *:AIX:*:4) ! IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` ! if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc *************** *** 274,291 **** hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit 0 ;; ! 9000/[3478]??:HP-UX:*:*) case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; ! 9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;; ! 9000/8?? ) HP_ARCH=hppa1.0 ;; esac HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; 3050*:HI-UX:*:*) ! sed 's/^ //' << EOF >dummy.c #include <unistd.h> int main () --- 423,472 ---- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit 0 ;; ! 9000/[34678]??:HP-UX:*:*) case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; ! 9000/[678][0-9][0-9]) ! sed 's/^ //' << EOF >$dummy.c ! #include <stdlib.h> ! #include <unistd.h> ! ! int main () ! { ! #if defined(_SC_KERNEL_BITS) ! long bits = sysconf(_SC_KERNEL_BITS); ! #endif ! long cpu = sysconf (_SC_CPU_VERSION); ! ! switch (cpu) ! { ! case CPU_PA_RISC1_0: puts ("hppa1.0"); break; ! case CPU_PA_RISC1_1: puts ("hppa1.1"); break; ! case CPU_PA_RISC2_0: ! #if defined(_SC_KERNEL_BITS) ! switch (bits) ! { ! case 64: puts ("hppa2.0w"); break; ! case 32: puts ("hppa2.0n"); break; ! default: puts ("hppa2.0"); break; ! } break; ! #else /* !defined(_SC_KERNEL_BITS) */ ! puts ("hppa2.0"); break; ! #endif ! default: puts ("hppa1.0"); break; ! } ! exit (0); ! } ! EOF ! (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` ! rm -f $dummy.c $dummy esac HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; 3050*:HI-UX:*:*) ! sed 's/^ //' << EOF >$dummy.c #include <unistd.h> int main () *************** *** 310,317 **** exit (0); } EOF ! ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 ! rm -f dummy.c dummy echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) --- 491,498 ---- exit (0); } EOF ! $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 ! rm -f $dummy.c $dummy echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) *************** *** 320,325 **** --- 501,509 ---- 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit 0 ;; + *9??*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit 0 ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit 0 ;; *************** *** 336,341 **** --- 520,528 ---- parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit 0 ;; + hppa*:OpenBSD:*:*) + echo hppa-unknown-openbsd + exit 0 ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit 0 ;; *************** *** 368,463 **** CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} exit 0 ;; CRAY-2:*:*:*) echo cray2-cray-unicos exit 0 ;; F300:UNIX_System_V:*:*) ! FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; hp3[0-9][05]:NetBSD:*:*) echo m68k-hp-netbsd${UNAME_RELEASE} exit 0 ;; ! hp3[0-9][05]:OpenBSD:*:*) ! echo m68k-hp-openbsd${UNAME_RELEASE} exit 0 ;; ! i?86:BSD/386:*:* | *:BSD/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; *:NetBSD:*:*) ! echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` exit 0 ;; *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` exit 0 ;; i*:CYGWIN*:*) ! echo i386-pc-cygwin32 exit 0 ;; p*:CYGWIN*:*) ! echo powerpcle-unknown-cygwin32 exit 0 ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) ! echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; *:Linux:*:*) # The BFD linker knows what the default object file format is, so ! # first see if it will tell us. ! ld_help_string=`ld --help 2>&1` ! if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i.86"; then ! echo "${UNAME_MACHINE}-pc-linux-gnu" ; exit 0 ! elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86linux"; then ! echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ! elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86coff"; then ! echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ! elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then ! echo "${UNAME_MACHINE}-unknown-linux-gnu" ; exit 0 ! elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then ! echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ! elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf32ppc"; then ! echo "powerpc-unknown-linux-gnu" ; exit 0 ! elif test "${UNAME_MACHINE}" = "alpha" ; then ! echo alpha-unknown-linux-gnu ; exit 0 ! elif test "${UNAME_MACHINE}" = "sparc" ; then ! echo sparc-unknown-linux-gnu ; exit 0 ! else ! # Either a pre-BFD a.out linker (linux-gnuoldld) or one that does not give us ! # useful --help. Gcc wants to distinguish between linux-gnuoldld and linux-gnuaout. ! test ! -d /usr/lib/ldscripts/. \ ! && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 ! # Determine whether the default compiler is a.out or elf ! cat >dummy.c <<EOF main(argc, argv) ! int argc; ! char *argv[]; { #ifdef __ELF__ ! printf ("%s-pc-linux-gnu\n", argv[1]); #else ! printf ("%s-pc-linux-gnuaout\n", argv[1]); #endif return 0; } EOF ! ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 ! rm -f dummy.c dummy fi ;; # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions # are messed up and put the nodename in both sysname and nodename. i?86:DYNIX/ptx:4*:*) echo i386-sequent-sysv4 exit 0 ;; i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then ! echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} else ! echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} fi exit 0 ;; i?86:*:3.2:*) --- 555,845 ---- CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} exit 0 ;; + CRAY*T3E:*:*:*) + echo alpha-cray-unicosmk${UNAME_RELEASE} + exit 0 ;; CRAY-2:*:*:*) echo cray2-cray-unicos exit 0 ;; F300:UNIX_System_V:*:*) ! FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; + F301:UNIX_System_V:*:*) + echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` + exit 0 ;; hp3[0-9][05]:NetBSD:*:*) echo m68k-hp-netbsd${UNAME_RELEASE} exit 0 ;; ! hp300:OpenBSD:*:*) ! echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; ! i?86:BSD/386:*:* | i?86:BSD/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; *:FreeBSD:*:*) + if test -x /usr/bin/objformat; then + if test "elf" = "`/usr/bin/objformat`"; then + echo ${UNAME_MACHINE}-unknown-freebsdelf`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'` + exit 0 + fi + fi echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; *:NetBSD:*:*) ! echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'` exit 0 ;; *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` exit 0 ;; i*:CYGWIN*:*) ! echo ${UNAME_MACHINE}-pc-cygwin ! exit 0 ;; ! i*:MINGW*:*) ! echo ${UNAME_MACHINE}-pc-mingw32 ! exit 0 ;; ! i*:Windows_NT*:* | Pentium*:Windows_NT*:*) ! # How do we know it's Interix rather than the generic POSIX subsystem? ! # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we ! # UNAME_MACHINE based on the output of uname instead of i386? ! echo i386-pc-interix ! exit 0 ;; ! i*:UWIN*:*) ! echo ${UNAME_MACHINE}-pc-uwin exit 0 ;; p*:CYGWIN*:*) ! echo powerpcle-unknown-cygwin exit 0 ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) ! echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; *:Linux:*:*) + # The BFD linker knows what the default object file format is, so ! # first see if it will tell us. cd to the root directory to prevent ! # problems with other programs or directories called `ld' in the path. ! ld_help_string=`cd /; ld --help 2>&1` ! ld_supported_emulations=`echo $ld_help_string \ ! | sed -ne '/supported emulations:/!d ! s/[ ][ ]*/ /g ! s/.*supported emulations: *// ! s/ .*// ! p'` ! case "$ld_supported_emulations" in ! *ia64) ! echo "${UNAME_MACHINE}-unknown-linux" ! exit 0 ! ;; ! i?86linux) ! echo "${UNAME_MACHINE}-pc-linux-gnuaout" ! exit 0 ! ;; ! i?86coff) ! echo "${UNAME_MACHINE}-pc-linux-gnucoff" ! exit 0 ! ;; ! sparclinux) ! echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ! exit 0 ! ;; ! armlinux) ! echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ! exit 0 ! ;; ! elf32arm*) ! echo "${UNAME_MACHINE}-unknown-linux-gnu" ! exit 0 ! ;; ! armelf_linux*) ! echo "${UNAME_MACHINE}-unknown-linux-gnu" ! exit 0 ! ;; ! m68klinux) ! echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ! exit 0 ! ;; ! elf32ppc) ! # Determine Lib Version ! cat >$dummy.c <<EOF ! #include <features.h> ! #if defined(__GLIBC__) ! extern char __libc_version[]; ! extern char __libc_release[]; ! #endif main(argc, argv) ! int argc; ! char *argv[]; { + #if defined(__GLIBC__) + printf("%s %s\n", __libc_version, __libc_release); + #else + printf("unkown\n"); + #endif + return 0; + } + EOF + LIBC="" + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null + if test "$?" = 0 ; then + ./$dummy | grep 1\.99 > /dev/null + if test "$?" = 0 ; then + LIBC="libc1" + fi + fi + rm -f $dummy.c $dummy + echo powerpc-unknown-linux-gnu${LIBC} + exit 0 + ;; + esac + + if test "${UNAME_MACHINE}" = "alpha" ; then + sed 's/^ //' <<EOF >$dummy.s + .globl main + .ent main + main: + .frame \$30,0,\$26,0 + .prologue 0 + .long 0x47e03d80 # implver $0 + lda \$2,259 + .long 0x47e20c21 # amask $2,$1 + srl \$1,8,\$2 + sll \$2,2,\$2 + sll \$0,3,\$0 + addl \$1,\$0,\$0 + addl \$2,\$0,\$0 + ret \$31,(\$26),1 + .end main + EOF + LIBC="" + $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null + if test "$?" = 0 ; then + ./$dummy + case "$?" in + 7) + UNAME_MACHINE="alpha" + ;; + 15) + UNAME_MACHINE="alphaev5" + ;; + 14) + UNAME_MACHINE="alphaev56" + ;; + 10) + UNAME_MACHINE="alphapca56" + ;; + 16) + UNAME_MACHINE="alphaev6" + ;; + esac + + objdump --private-headers $dummy | \ + grep ld.so.1 > /dev/null + if test "$?" = 0 ; then + LIBC="libc1" + fi + fi + rm -f $dummy.s $dummy + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0 + elif test "${UNAME_MACHINE}" = "mips" ; then + cat >$dummy.c <<EOF + #ifdef __cplusplus + int main (int argc, char *argv[]) { + #else + int main (argc, argv) int argc; char *argv[]; { + #endif + #ifdef __MIPSEB__ + printf ("%s-unknown-linux-gnu\n", argv[1]); + #endif + #ifdef __MIPSEL__ + printf ("%sel-unknown-linux-gnu\n", argv[1]); + #endif + return 0; + } + EOF + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + else + # Either a pre-BFD a.out linker (linux-gnuoldld) + # or one that does not give us useful --help. + # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. + # If ld does not provide *any* "supported emulations:" + # that means it is gnuoldld. + echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:" + test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 + + case "${UNAME_MACHINE}" in + i?86) + VENDOR=pc; + ;; + *) + VENDOR=unknown; + ;; + esac + # Determine whether the default compiler is a.out or elf + cat >$dummy.c <<EOF + #include <features.h> + #ifdef __cplusplus + int main (int argc, char *argv[]) { + #else + int main (argc, argv) int argc; char *argv[]; { + #endif #ifdef __ELF__ ! # ifdef __GLIBC__ ! # if __GLIBC__ >= 2 ! printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); ! # else ! printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); ! # endif ! # else ! printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); ! # endif #else ! printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); #endif return 0; } EOF ! $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 ! rm -f $dummy.c $dummy fi ;; # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions # are messed up and put the nodename in both sysname and nodename. i?86:DYNIX/ptx:4*:*) echo i386-sequent-sysv4 exit 0 ;; + i?86:UNIX_SV:4.2MP:2.*) + # Unixwar... [truncated message content] |
From: <ivt...@li...> - 2001-11-20 20:16:15
|
Patch: ivtools-011121-johnston-009 For: ivtools-1.0 Author: joh...@us... Subject: architecture-independent imake tweak for NetBSD Requires: This is an intermediate patch to ivtools-1.0. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - architecture-independent imake tweak for NetBSD Index: config_ivtools/site.def.NETBSD diff -c config_ivtools/site.def.NETBSD:1.3 config_ivtools/site.def.NETBSD:1.4 *** config_ivtools/site.def.NETBSD:1.3 Tue Nov 20 08:48:13 2001 --- config/site.def.NETBSD Wed Nov 21 04:24:26 2001 *************** *** 56,62 **** #ifndef ImakeFlags #define ImakeFlags \ @@\ ! -T IMAKE_TEMPLATE -Ui386 \ @@\ ImakeIncludes\ @@\ $(SPECIAL_IMAKEFLAGS) #endif --- 56,62 ---- #ifndef ImakeFlags #define ImakeFlags \ @@\ ! -T IMAKE_TEMPLATE -U$(MACHINE_ARCH) \ @@\ ImakeIncludes\ @@\ $(SPECIAL_IMAKEFLAGS) #endif *** /dev/null Wed Nov 21 04:24:28 PST 2001 --- patches/ivtools-011121-johnston-009 *************** patches/ivtools-011121-johnston-009 *** 0 **** --- 1 ---- + ivtools-011121-johnston-009 |
From: <ivt...@li...> - 2001-11-20 18:28:42
|
Patch: ivtools-011121-johnston-008 For: ivtools-1.0 Author: joh...@us... Subject: add ComUnidraw/pixelfunc.[ch] Requires: This is an intermediate patch to ivtools-1.0. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - add ComUnidraw/pixelfunc.[ch] Index: ComUnidraw/pixelfunc.c diff -c /dev/null ComUnidraw/pixelfunc.c:1.1 *** /dev/null Wed Nov 21 02:36:47 2001 --- src/ComUnidraw/pixelfunc.c Wed Nov 21 02:36:46 2001 *************** *** 0 **** --- 1,130 ---- + /* + * Copyright (c) 2001 Scott E. Johnston + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the names of the copyright holders not be used in + * advertising or publicity pertaining to distribution of the software + * without specific, written prior permission. The copyright holders make + * no representations about the suitability of this software for any purpose. + * It is provided "as is" without express or implied warranty. + * + * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. + * IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING + * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION + * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + + #include <ComUnidraw/pixelfunc.h> + + #include <OverlayUnidraw/ovraster.h> + #include <Unidraw/Graphic/damage.h> + #include <Unidraw/viewer.h> + + /*****************************************************************************/ + + PixelPokeFunc::PixelPokeFunc(ComTerp* comterp, Editor* ed) : UnidrawFunc(comterp, ed) { + } + + void PixelPokeFunc::execute() { + Viewer* viewer = _ed->GetViewer(); + + ComValue rastcompv(stack_arg(0)); + ComValue xv(stack_arg(1)); + ComValue yv(stack_arg(2)); + ComValue valv(stack_arg(3)); + reset_stack(); + + RasterOvComp* rastcomp = (RasterOvComp*) rastcompv.geta(RasterOvComp::class_symid()); + OverlayRasterRect* rastrect = rastcomp ? rastcomp->GetOverlayRasterRect() : nil; + OverlayRaster* raster = rastrect ? rastrect->GetOriginal() : nil; + + if (raster) { + raster->poke(xv.int_val(), yv.int_val(), valv.float_val(), valv.float_val(), valv.float_val(), 1.0); + push_stack(rastcompv); + } else + push_stack(ComValue::nullval()); + + + } + + /*****************************************************************************/ + + PixelColsFunc::PixelColsFunc(ComTerp* comterp, Editor* ed) : UnidrawFunc(comterp, ed) { + } + + void PixelColsFunc::execute() { + Viewer* viewer = _ed->GetViewer(); + + ComValue rastcompv(stack_arg(0)); + reset_stack(); + + RasterOvComp* rastcomp = (RasterOvComp*) rastcompv.geta(RasterOvComp::class_symid()); + OverlayRasterRect* rastrect = rastcomp ? rastcomp->GetOverlayRasterRect() : nil; + OverlayRaster* raster = rastrect ? rastrect->GetOriginal() : nil; + + if (raster) { + ComValue retval(raster->pwidth()); + push_stack(retval); + } else + push_stack(ComValue::nullval()); + + + } + + /*****************************************************************************/ + + PixelRowsFunc::PixelRowsFunc(ComTerp* comterp, Editor* ed) : UnidrawFunc(comterp, ed) { + } + + void PixelRowsFunc::execute() { + Viewer* viewer = _ed->GetViewer(); + + ComValue rastcompv(stack_arg(0)); + reset_stack(); + + RasterOvComp* rastcomp = (RasterOvComp*) rastcompv.geta(RasterOvComp::class_symid()); + OverlayRasterRect* rastrect = rastcomp ? rastcomp->GetOverlayRasterRect() : nil; + OverlayRaster* raster = rastrect ? rastrect->GetOriginal() : nil; + + if (raster) { + ComValue retval(raster->pheight()); + push_stack(retval); + } else + push_stack(ComValue::nullval()); + + + } + + /*****************************************************************************/ + + PixelFlushFunc::PixelFlushFunc(ComTerp* comterp, Editor* ed) : UnidrawFunc(comterp, ed) { + } + + void PixelFlushFunc::execute() { + Viewer* viewer = _ed->GetViewer(); + + ComValue rastcompv(stack_arg(0)); + reset_stack(); + + RasterOvComp* rastcomp = (RasterOvComp*) rastcompv.geta(RasterOvComp::class_symid()); + OverlayRasterRect* rastrect = rastcomp ? rastcomp->GetOverlayRasterRect() : nil; + OverlayRaster* raster = rastrect ? rastrect->GetOriginal() : nil; + + if (raster) { + raster->flush(); + viewer->GetDamage()->Incur(rastrect); + ComValue retval(rastcompv); + push_stack(retval); + } else + push_stack(ComValue::nullval()); + + + } + Index: ComUnidraw/pixelfunc.h diff -c /dev/null ComUnidraw/pixelfunc.h:1.1 *** /dev/null Wed Nov 21 02:36:47 2001 --- src/ComUnidraw/pixelfunc.h Wed Nov 21 02:36:46 2001 *************** *** 0 **** --- 1,68 ---- + /* + * Copyright (c) 2001 Scott E. Johnston + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the names of the copyright holders not be used in + * advertising or publicity pertaining to distribution of the software + * without specific, written prior permission. The copyright holders make + * no representations about the suitability of this software for any purpose. + * It is provided "as is" without express or implied warranty. + * + * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. + * IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING + * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION + * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + + #if !defined(pixelfunc_h) + #define _pixelfunc_h + + #include <ComUnidraw/unifunc.h> + + //: command to poke pixel values into raster + // poke(compview x y val) -- poke pixel value into raster + class PixelPokeFunc : public UnidrawFunc { + public: + PixelPokeFunc(ComTerp*,Editor*); + virtual void execute(); + virtual const char* docstring() { + return "%s(compview x y val) -- poke pixel value into raster"; } + }; + + //: command to return number of columns in a raster + // pcols(compview) -- number of columns in a raster + class PixelColsFunc : public UnidrawFunc { + public: + PixelColsFunc(ComTerp*,Editor*); + virtual void execute(); + virtual const char* docstring() { + return "%s(compview) -- number of columns in a raster"; } + }; + + //: command to return number of rows in a raster + // pcols(compview) -- number of rows in a raster + class PixelRowsFunc : public UnidrawFunc { + public: + PixelRowsFunc(ComTerp*,Editor*); + virtual void execute(); + virtual const char* docstring() { + return "%s(compview) -- number of rows in a raster"; } + }; + + //: command to flush pixels poked in a raster + // pflush(compview) -- flush pixels poked into a raster + class PixelFlushFunc : public UnidrawFunc { + public: + PixelFlushFunc(ComTerp*,Editor*); + virtual void execute(); + virtual const char* docstring() { + return "%s(compview) -- flush pixels poked into a raster"; } + }; + #endif /* !defined(_pixelfunc_h) */ *** /dev/null Wed Nov 21 02:37:01 PST 2001 --- patches/ivtools-011121-johnston-008 *************** patches/ivtools-011121-johnston-008 *** 0 **** --- 1 ---- + ivtools-011121-johnston-008 |
From: <ivt...@li...> - 2001-11-20 00:47:44
|
Patch: ivtools-011120-johnston-007 For: ivtools-1.0 Author: joh...@us... Subject: 2nd attempt at supporting NetBSD packaging Requires: This is an intermediate patch to ivtools-1.0. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - 2nd attempt at supporting packaging of ivtools on NetBSD. Seems there is a problem with pathnames that include an i386 directory, which is expanded to 1 by the c-preprocessor (invoked by imake). This patch attempts to fix the problem by adding a -Ui386 to the imake command line (in config/site.def.NETBSD). More of these could be added to that command line for other platforms if necessary. Index: top_ivtools/configure diff -c top_ivtools/configure:1.2 top_ivtools/configure:1.3 *** top_ivtools/configure:1.2 Tue Nov 20 03:24:18 2001 --- ./configure Tue Nov 20 08:31:11 2001 *************** *** 2212,2219 **** echo ABSTOP = `pwd` >>config/config.mk echo writing \"CPU = `make CPU`\" echo CPU = `make CPU` >>config/config.mk - echo writing \"ARCH = $host_cpu\" - echo ARCH = $host_cpu >>config/config.mk echo writing \"LIBSTDCPLUSPLUS2 = $LIBSTDCPLUSPLUS2\" echo LIBSTDCPLUSPLUS2 = $LIBSTDCPLUSPLUS2 >>config/config.mk echo writing \"LIBSTDCPLUSPLUS3 = $LIBSTDCPLUSPLUS3\" --- 2212,2217 ---- Index: top_ivtools/configure.in diff -c top_ivtools/configure.in:1.2 top_ivtools/configure.in:1.3 *** top_ivtools/configure.in:1.2 Tue Nov 20 03:24:18 2001 --- ./configure.in Tue Nov 20 08:31:11 2001 *************** *** 416,423 **** echo ABSTOP = `pwd` >>config/config.mk echo writing \"CPU = `make CPU`\" echo CPU = `make CPU` >>config/config.mk - echo writing \"ARCH = $host_cpu\" - echo ARCH = $host_cpu >>config/config.mk echo writing \"LIBSTDCPLUSPLUS2 = $LIBSTDCPLUSPLUS2\" echo LIBSTDCPLUSPLUS2 = $LIBSTDCPLUSPLUS2 >>config/config.mk echo writing \"LIBSTDCPLUSPLUS3 = $LIBSTDCPLUSPLUS3\" --- 416,421 ---- Index: site.def.NETBSD =================================================================== RCS file: /home/scott/src/ivtools-1.0/cm/config_ivtools/site.def.NETBSD,v retrieving revision 1.1 retrieving revision 1.3 diff -c -r1.1 -r1.3 *** site.def.NETBSD 2001/11/02 21:08:11 1.1 --- site.def.NETBSD 2001/11/20 16:48:13 1.3 *************** *** 54,59 **** --- 54,66 ---- $(RM) dest/Concat(lib,libname.so) #endif + #ifndef ImakeFlags + #define ImakeFlags \ @@\ + -T IMAKE_TEMPLATE -Ui386 \ @@\ + ImakeIncludes\ @@\ + $(SPECIAL_IMAKEFLAGS) + #endif + /* file output by configure script */ #include "config-netbsd-gcc.defs" *** /dev/null Tue Nov 20 08:31:39 PST 2001 --- patches/ivtools-011120-johnston-007 *************** patches/ivtools-011120-johnston-007 *** 0 **** --- 1 ---- + ivtools-011120-johnston-007 |
From: <ivt...@li...> - 2001-11-19 21:40:16
|
Patch: ivtools-011120-johnston-006 For: ivtools-1.0 Author: joh...@us... Subject: adds ARCH variable to make config file Requires: This is an intermediate patch to ivtools-1.0. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - adds ARCH variable to make config file (cpu_host from configure script). For use of NetBSD packaging system. Otherwise ignored. Index: top_ivtools/configure diff -c top_ivtools/configure:1.1 top_ivtools/configure:1.2 *** top_ivtools/configure:1.1 Fri Nov 2 13:04:34 2001 --- ./configure Tue Nov 20 03:24:18 2001 *************** *** 2212,2217 **** --- 2212,2219 ---- echo ABSTOP = `pwd` >>config/config.mk echo writing \"CPU = `make CPU`\" echo CPU = `make CPU` >>config/config.mk + echo writing \"ARCH = $host_cpu\" + echo ARCH = $host_cpu >>config/config.mk echo writing \"LIBSTDCPLUSPLUS2 = $LIBSTDCPLUSPLUS2\" echo LIBSTDCPLUSPLUS2 = $LIBSTDCPLUSPLUS2 >>config/config.mk echo writing \"LIBSTDCPLUSPLUS3 = $LIBSTDCPLUSPLUS3\" Index: top_ivtools/configure.in diff -c top_ivtools/configure.in:1.1 top_ivtools/configure.in:1.2 *** top_ivtools/configure.in:1.1 Fri Nov 2 13:04:34 2001 --- ./configure.in Tue Nov 20 03:24:18 2001 *************** *** 416,421 **** --- 416,423 ---- echo ABSTOP = `pwd` >>config/config.mk echo writing \"CPU = `make CPU`\" echo CPU = `make CPU` >>config/config.mk + echo writing \"ARCH = $host_cpu\" + echo ARCH = $host_cpu >>config/config.mk echo writing \"LIBSTDCPLUSPLUS2 = $LIBSTDCPLUSPLUS2\" echo LIBSTDCPLUSPLUS2 = $LIBSTDCPLUSPLUS2 >>config/config.mk echo writing \"LIBSTDCPLUSPLUS3 = $LIBSTDCPLUSPLUS3\" Index: config_ivtools/config.mk *** /dev/null Tue Nov 20 03:24:32 PST 2001 --- patches/ivtools-011120-johnston-006 *************** patches/ivtools-011120-johnston-006 *** 0 **** --- 1 ---- + ivtools-011120-johnston-006 |
From: <ivt...@li...> - 2001-11-16 18:32:14
|
Patch: ivtools-011116-johnston-004 For: ivtools-1.0 Author: joh...@us... Subject: add an undocumented debug func, stackheight Requires: This is an intermediate patch to ivtools-1.0. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - add an undocumented debug func, stackheight Index: ComTerp/comterp.c diff -c ComTerp/comterp.c:1.1 ComTerp/comterp.c:1.2 *** ComTerp/comterp.c:1.1 Fri Nov 2 13:04:49 2001 --- src/ComTerp/comterp.c Fri Nov 16 10:25:13 2001 *************** *** 1018,1023 **** --- 1018,1024 ---- add_command("trace", new ComterpTraceFunc(this)); add_command("pause", new ComterpPauseFunc(this)); add_command("step", new ComterpStepFunc(this)); + add_command("stackheight", new ComterpStackHeightFunc(this)); add_command("symid", new SymIdFunc(this)); add_command("symval", new SymValFunc(this)); add_command("symbol", new SymbolFunc(this)); Index: ComTerp/debugfunc.c diff -c ComTerp/debugfunc.c:1.1 ComTerp/debugfunc.c:1.2 *** ComTerp/debugfunc.c:1.1 Fri Nov 2 13:04:49 2001 --- src/ComTerp/debugfunc.c Fri Nov 16 10:25:13 2001 *************** *** 1,4 **** --- 1,5 ---- /* + * Copyright (c) 2001 Scott E. Johnston * Copyright (c) 2000 IET Inc. * * Permission to use, copy, modify, distribute, and sell this software and *************** *** 178,183 **** --- 179,196 ---- ComValue retval(comterp()->stepflag()); push_stack(retval); } + } + + + /*****************************************************************************/ + + ComterpStackHeightFunc::ComterpStackHeightFunc(ComTerp* comterp) : ComFunc(comterp) { + } + + void ComterpStackHeightFunc::execute() { + reset_stack(); + ComValue retval(comterp()->stack_height()); + push_stack(retval); } Index: ComTerp/debugfunc.h diff -c ComTerp/debugfunc.h:1.1 ComTerp/debugfunc.h:1.2 *** ComTerp/debugfunc.h:1.1 Fri Nov 2 13:04:49 2001 --- src/ComTerp/debugfunc.h Fri Nov 16 10:25:13 2001 *************** *** 68,71 **** --- 68,81 ---- virtual boolean stepfunc() { return true; } }; + //: command to toggle step script execution + // pause -- toggle stepwise script execution + class ComterpStackHeightFunc : public ComFunc { + public: + ComterpStackHeightFunc(ComTerp*); + virtual void execute(); + virtual const char* docstring() { + return "%s -- return stack height for debug purposes"; } + }; + #endif /* !defined(_debugfunc_h) */ Index: ComUnidraw/comeditor.c diff -c ComUnidraw/comeditor.c:1.2 ComUnidraw/comeditor.c:1.3 *** ComUnidraw/comeditor.c:1.2 Tue Nov 13 10:14:40 2001 --- src/ComUnidraw/comeditor.c Fri Nov 16 10:25:20 2001 *************** *** 212,217 **** --- 212,218 ---- comterp->add_command("poke", new PixelPokeFunc(comterp, this)); comterp->add_command("pcols", new PixelColsFunc(comterp, this)); comterp->add_command("prows", new PixelRowsFunc(comterp, this)); + comterp->add_command("pflush", new PixelFlushFunc(comterp, this)); } /* virtual */ void ComEditor::ExecuteCmd(Command* cmd) { Index: comdraw/README diff -c comdraw/README:1.2 comdraw/README:1.3 *** comdraw/README:1.2 Tue Nov 13 10:14:41 2001 --- src/comdraw/README Fri Nov 16 10:25:21 2001 *************** *** 118,123 **** --- 118,124 ---- poke(compview x y val) -- poke pixel value into raster pcols(compview) -- number of columns in a raster pcols(compview) -- number of rows in a raster + pflush(compview) -- flush pixels poked into a raster PLOTTING COMMANDS Index: man1_ivtools/comdraw.1 diff -c man1_ivtools/comdraw.1:1.2 man1_ivtools/comdraw.1:1.3 *** man1_ivtools/comdraw.1:1.2 Tue Nov 13 10:14:47 2001 --- src/man/man1/comdraw.1 Fri Nov 16 10:25:26 2001 *************** *** 127,132 **** --- 127,133 ---- poke(compview x y val) -- poke pixel value into raster pcols(compview) -- number of columns in a raster pcols(compview) -- number of rows in a raster + pflush(compview) -- flush pixels poked into a raster .SH PLOTTING COMMANDS *** /dev/null Fri Nov 16 10:25:28 PST 2001 --- patches/ivtools-011116-johnston-004 *************** patches/ivtools-011116-johnston-004 *** 0 **** --- 1 ---- + ivtools-011116-johnston-004 |
From: <ivt...@li...> - 2001-11-16 18:32:07
|
Patch: ivtools-011116-johnston-003 For: ivtools-1.0 Author: joh...@us... Subject: fix bug in comterp stream traversal Requires: This is an intermediate patch to ivtools-1.0. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - fix bug in comterp stream traversal via NextFunc::execute_impl. It was leaving an extra null-value on the stack, which confused the interpreter. Index: ComTerp/strmfunc.c diff -c ComTerp/strmfunc.c:1.1 ComTerp/strmfunc.c:1.2 *** ComTerp/strmfunc.c:1.1 Tue Nov 13 15:48:32 2001 --- src/ComTerp/strmfunc.c Fri Nov 16 08:41:11 2001 *************** *** 401,407 **** /* sub-stream return null, zero it, and return null for this one */ val->stream_list()->clear(); - comterp->push_stack(ComValue::nullval()); streamv.stream_list()->clear(); return; } else if (comterp->stack_height()==inside_stackh) --- 401,406 ---- *** /dev/null Fri Nov 16 08:42:43 PST 2001 --- patches/ivtools-011116-johnston-003 *************** patches/ivtools-011116-johnston-003 *** 0 **** --- 1 ---- + ivtools-011116-johnston-003 |
From: <ivt...@li...> - 2001-11-16 18:32:03
|
Patch: ivtools-011114-johnston-002 For: ivtools-1.0 Author: joh...@us... Subject: fix problems with zero-point polygons Requires: This is an intermediate patch to ivtools-1.0. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - sometimes you can accidentally create a polygon with zero points (or a multi-line or spline). These are changes to safeguard against crashing whenever this happens. Index: src_iv-2_6/xpainter.c diff -c src_iv-2_6/xpainter.c:1.1 src_iv-2_6/xpainter.c:1.2 *** src_iv-2_6/xpainter.c:1.1 Tue Nov 13 15:50:09 2001 --- src/IV-2_6/xpainter.c Wed Nov 14 15:27:01 2001 *************** *** 745,751 **** } void Painter::RasterRect(Canvas* c, IntCoord x, IntCoord y, Raster* r) { ! if (c == nil) { return; } Display* d = r->rep()->display_; --- 745,751 ---- } void Painter::RasterRect(Canvas* c, IntCoord x, IntCoord y, Raster* r) { ! if (c == nil || r == nil) { return; } Display* d = r->rep()->display_; *************** *** 798,804 **** } void Painter::Text(Canvas* c, const char* s, int len, IntCoord x, IntCoord y) { ! if (c == nil) { return; } XDisplay* d = rep->display->rep()->display_; --- 798,804 ---- } void Painter::Text(Canvas* c, const char* s, int len, IntCoord x, IntCoord y) { ! if (c == nil || s == nil || len == 0) { return; } XDisplay* d = rep->display->rep()->display_; *************** *** 906,912 **** } void Painter::MultiPoint(Canvas* c, IntCoord x[], IntCoord y[], int n) { ! if (c == nil) { return; } CanvasRep* cr = c->rep(); --- 906,912 ---- } void Painter::MultiPoint(Canvas* c, IntCoord x[], IntCoord y[], int n) { ! if (c == nil || n == 0) { return; } CanvasRep* cr = c->rep(); *************** *** 1030,1036 **** } void Painter::Circle(Canvas* c, IntCoord x, IntCoord y, int r) { ! if (c == nil) { return; } CanvasRep* cr = c->rep(); --- 1030,1036 ---- } void Painter::Circle(Canvas* c, IntCoord x, IntCoord y, int r) { ! if (c == nil || r == 0) { return; } CanvasRep* cr = c->rep(); *************** *** 1057,1063 **** } void Painter::FillCircle(Canvas* c, IntCoord x, IntCoord y, int r) { ! if (c == nil) { return; } CanvasRep* cr = c->rep(); --- 1057,1063 ---- } void Painter::FillCircle(Canvas* c, IntCoord x, IntCoord y, int r) { ! if (c == nil || r == 0) { return; } CanvasRep* cr = c->rep(); *************** *** 1084,1090 **** } void Painter::MultiLine(Canvas* c, IntCoord x[], IntCoord y[], int n) { ! if (c == nil) { return; } CanvasRep* cr = c->rep(); --- 1084,1090 ---- } void Painter::MultiLine(Canvas* c, IntCoord x[], IntCoord y[], int n) { ! if (c == nil || n == 0) { return; } CanvasRep* cr = c->rep(); *************** *** 1100,1106 **** } void Painter::MultiLineNoMap(Canvas* c, IntCoord x[], IntCoord y[], int n) { ! if (c == nil) { return; } CanvasRep* cr = c->rep(); --- 1100,1106 ---- } void Painter::MultiLineNoMap(Canvas* c, IntCoord x[], IntCoord y[], int n) { ! if (c == nil || n == 0) { return; } CanvasRep* cr = c->rep(); *************** *** 1117,1123 **** } void Painter::Polygon(Canvas* c, IntCoord x[], IntCoord y[], int n) { ! if (c == nil) { return; } CanvasRep* cr = c->rep(); --- 1117,1123 ---- } void Painter::Polygon(Canvas* c, IntCoord x[], IntCoord y[], int n) { ! if (c == nil || n==0) { return; } CanvasRep* cr = c->rep(); *************** *** 1138,1144 **** } void Painter::FillPolygonNoMap(Canvas* c, IntCoord x[], IntCoord y[], int n) { ! if (c == nil) { return; } CanvasRep* cr = c->rep(); --- 1138,1144 ---- } void Painter::FillPolygonNoMap(Canvas* c, IntCoord x[], IntCoord y[], int n) { ! if (c == nil || n == 0) { return; } CanvasRep* cr = c->rep(); *************** *** 1157,1163 **** } void Painter::FillPolygon(Canvas* c, IntCoord x[], IntCoord y[], int n) { ! if (c == nil) { return; } CanvasRep* cr = c->rep(); --- 1157,1163 ---- } void Painter::FillPolygon(Canvas* c, IntCoord x[], IntCoord y[], int n) { ! if (c == nil || n == 0) { return; } CanvasRep* cr = c->rep(); Index: Unidraw/verts.c diff -c Unidraw/verts.c:1.1 Unidraw/verts.c:1.2 *** Unidraw/verts.c:1.1 Tue Nov 13 15:57:03 2001 --- src/Unidraw/verts.c Wed Nov 14 15:27:42 2001 *************** *** 49,56 **** } int Vertices::GetOriginal (const Coord*& x, const Coord*& y) { ! x = _pts->x(); ! y = _pts->y(); return count(); } --- 49,56 ---- } int Vertices::GetOriginal (const Coord*& x, const Coord*& y) { ! x = _pts ? _pts->x() : nil; ! y = _pts ? _pts->y() : nil; return count(); } *************** *** 125,131 **** } else { width = float(gs->GetBrush()->Width()); tol = (width > 1) ? width/2 : 0; ! bx0 = bx1 = x()[0]; by0 = by1 = y()[0]; for (int i = 1; i < count(); ++i) { bx0 = min(bx0, float(x()[i])); --- 125,132 ---- } else { width = float(gs->GetBrush()->Width()); tol = (width > 1) ? width/2 : 0; ! bx0 = bx1 = x() ? x()[0] : 0.0; ! by0 = by1 = y() ? y()[0] : 0.0; for (int i = 1; i < count(); ++i) { bx0 = min(bx0, float(x()[i])); Index: UniIdraw/idarrows.c diff -c UniIdraw/idarrows.c:1.1 UniIdraw/idarrows.c:1.2 *** UniIdraw/idarrows.c:1.1 Tue Nov 13 15:57:25 2001 --- src/UniIdraw/idarrows.c Wed Nov 14 15:27:54 2001 *************** *** 403,408 **** --- 403,410 ---- } void ArrowMultiLine::SetArrows (boolean h, boolean t) { + if (count()==0) return; + delete _head; delete _tail; Index: OverlayUnidraw/ovcomps.h diff -c OverlayUnidraw/ovcomps.h:1.1 OverlayUnidraw/ovcomps.h:1.2 *** OverlayUnidraw/ovcomps.h:1.1 Tue Nov 13 15:58:41 2001 --- src/OverlayUnidraw/ovcomps.h Wed Nov 14 15:27:59 2001 *************** *** 80,86 **** void SetAnnotation(const char*); // set the annotation string for this component. OverlayView* FindView(Viewer*); ! // return the view for this compoent (for this subject) in a specific viewer. virtual void SetPathName(const char*); // set pathname associated with this component. --- 80,86 ---- void SetAnnotation(const char*); // set the annotation string for this component. OverlayView* FindView(Viewer*); ! // return the view for this component (for this subject) in a specific viewer. virtual void SetPathName(const char*); // set pathname associated with this component. Index: OverlayUnidraw/ovpainter.c diff -c OverlayUnidraw/ovpainter.c:1.1 OverlayUnidraw/ovpainter.c:1.2 *** OverlayUnidraw/ovpainter.c:1.1 Tue Nov 13 15:58:47 2001 --- src/OverlayUnidraw/ovpainter.c Wed Nov 14 15:28:00 2001 *************** *** 1077,1083 **** void OverlayPainter::DoRasterRect( Canvas* c, IntCoord x, IntCoord y, OverlayRaster* o_r, OverlayRasterRect* r_r ) { ! if (c == nil) { return; } --- 1077,1083 ---- void OverlayPainter::DoRasterRect( Canvas* c, IntCoord x, IntCoord y, OverlayRaster* o_r, OverlayRasterRect* r_r ) { ! if (c == nil || r_r == nil) { return; } Index: OverlayUnidraw/ovvertices.c diff -c OverlayUnidraw/ovvertices.c:1.1 OverlayUnidraw/ovvertices.c:1.2 *** OverlayUnidraw/ovvertices.c:1.1 Tue Nov 13 15:58:54 2001 --- src/OverlayUnidraw/ovvertices.c Wed Nov 14 15:28:00 2001 *************** *** 238,244 **** Vertices* vert = *(Vertices**)addr2; int id; in >> id; ! vert->SetOriginal(comp->GetIndexedPts(id)); return in.good() ? 0 : -1; } --- 238,245 ---- Vertices* vert = *(Vertices**)addr2; int id; in >> id; ! if (id>=0) ! vert->SetOriginal(comp->GetIndexedPts(id)); return in.good() ? 0 : -1; } Index: OverlayUnidraw/scriptview.c diff -c OverlayUnidraw/scriptview.c:1.1 OverlayUnidraw/scriptview.c:1.2 *** OverlayUnidraw/scriptview.c:1.1 Tue Nov 13 15:58:56 2001 --- src/OverlayUnidraw/scriptview.c Wed Nov 14 15:28:00 2001 *************** *** 709,715 **** boolean OverlayScript::EmitPts(ostream& out, Clipboard* cb, boolean prevout) { if (GetGraphicComp()->IsA(OVVERTICES_COMP) && MatchedPts(cb)<0) { MultiLineObj* pts = ((Vertices*)GetGraphicComp()->GetGraphic())->GetOriginal(); ! if (pts->count()>0) { if (prevout) out << ",\n "; else --- 709,715 ---- boolean OverlayScript::EmitPts(ostream& out, Clipboard* cb, boolean prevout) { if (GetGraphicComp()->IsA(OVVERTICES_COMP) && MatchedPts(cb)<0) { MultiLineObj* pts = ((Vertices*)GetGraphicComp()->GetGraphic())->GetOriginal(); ! if (pts && pts->count()>0) { if (prevout) out << ",\n "; else *** /dev/null Wed Nov 14 15:28:43 PST 2001 --- patches/ivtools-011114-johnston-002 *************** patches/ivtools-011114-johnston-002 *** 0 **** --- 1 ---- + ivtools-011114-johnston-002 |
From: <ivt...@li...> - 2001-11-13 18:28:40
|
Patch: ivtools-011113-johnston-001 For: ivtools-1.0 Author: joh...@us... Subject: add comdraw funcs to poke pixels and return raster extent Requires: This is an intermediate patch to ivtools-1.0. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - add comdraw funcs to poke (grey-level) pixel values into a raster, and return the horizontal and vertical extent of the raster: poke(compview x y val) -- poke pixel value into raster pcols(compview) -- number of columns in a raster pcols(compview) -- number of rows in a raster Index: top_ivtools/MANIFEST diff -c top_ivtools/MANIFEST:1.1 top_ivtools/MANIFEST:1.2 *** top_ivtools/MANIFEST:1.1 Fri Nov 2 13:04:34 2001 --- ./MANIFEST Tue Nov 13 10:14:25 2001 *************** *** 221,226 **** --- 221,228 ---- ivtools-1.0/src/ComUnidraw/highlightfunc.h ivtools-1.0/src/ComUnidraw/nfunc.c ivtools-1.0/src/ComUnidraw/nfunc.h + ivtools-1.0/src/ComUnidraw/pixelfunc.c + ivtools-1.0/src/ComUnidraw/pixelfunc.h ivtools-1.0/src/ComUnidraw/plotfunc.c ivtools-1.0/src/ComUnidraw/plotfunc.h ivtools-1.0/src/ComUnidraw/unifunc.c Index: top_ivtools/MANIFEST.perceps diff -c top_ivtools/MANIFEST.perceps:1.1 top_ivtools/MANIFEST.perceps:1.2 *** top_ivtools/MANIFEST.perceps:1.1 Fri Nov 2 13:04:34 2001 --- ./MANIFEST.perceps Tue Nov 13 10:14:25 2001 *************** *** 58,63 **** --- 58,64 ---- ComUnidraw/grstatfunc.h ComUnidraw/highlightfunc.h ComUnidraw/nfunc.h + ComUnidraw/pixelfunc.h ComUnidraw/plotfunc.h ComUnidraw/unifunc.h ComUtil/comterp.h Index: ComUnidraw/Imakefile diff -c ComUnidraw/Imakefile:1.1 ComUnidraw/Imakefile:1.2 *** ComUnidraw/Imakefile:1.1 Fri Nov 2 13:07:06 2001 --- src/ComUnidraw/Imakefile Tue Nov 13 10:14:40 2001 *************** *** 27,32 **** --- 27,33 ---- Obj26(comterp-iohandler) Obj26(dialogfunc) Obj26(nfunc) + Obj26(pixelfunc) Obj26(plotfunc) Obj26(unifunc) Index: ComUnidraw/comeditor.c diff -c ComUnidraw/comeditor.c:1.1 ComUnidraw/comeditor.c:1.2 *** ComUnidraw/comeditor.c:1.1 Fri Nov 2 13:07:06 2001 --- src/ComUnidraw/comeditor.c Tue Nov 13 10:14:40 2001 *************** *** 32,37 **** --- 32,38 ---- #include <ComUnidraw/comterp-iohandler.h> #include <ComUnidraw/dialogfunc.h> #include <ComUnidraw/nfunc.h> + #include <ComUnidraw/pixelfunc.h> #include <ComUnidraw/plotfunc.h> #include <ComTerp/ctrlfunc.h> *************** *** 207,212 **** --- 208,217 ---- comterp->add_command("dtos", new DrawingToScreenFunc(comterp, this)); comterp->add_command("stod", new ScreenToDrawingFunc(comterp, this)); + + comterp->add_command("poke", new PixelPokeFunc(comterp, this)); + comterp->add_command("pcols", new PixelColsFunc(comterp, this)); + comterp->add_command("prows", new PixelRowsFunc(comterp, this)); } /* virtual */ void ComEditor::ExecuteCmd(Command* cmd) { Index: ComUnidraw/grlistfunc.c diff -c ComUnidraw/grlistfunc.c:1.1 ComUnidraw/grlistfunc.c:1.2 *** ComUnidraw/grlistfunc.c:1.1 Fri Nov 2 13:07:06 2001 --- src/ComUnidraw/grlistfunc.c Tue Nov 13 10:14:40 2001 *************** *** 1,4 **** --- 1,5 ---- /* + * Copyright (c) 2001 Scott E. Johnston * Copyright (c) 2000 IET Inc. * * Permission to use, copy, modify, distribute, and sell this software and *************** *** 38,43 **** --- 39,47 ---- void GrListAtFunc::execute() { ComValue listv(stack_arg(0)); ComValue nv(stack_arg(1)); + static int set_symid = symbol_add("set"); + ComValue setv(stack_key(set_symid, false, ComValue::blankval(), true /* return blank if no :set */)); + boolean setflag = !setv.is_blank(); if (listv.object_compview()) { reset_stack(); Index: ComUnidraw/grlistfunc.h diff -c ComUnidraw/grlistfunc.h:1.1 ComUnidraw/grlistfunc.h:1.2 *** ComUnidraw/grlistfunc.h:1.1 Fri Nov 2 13:07:06 2001 --- src/ComUnidraw/grlistfunc.h Tue Nov 13 10:14:40 2001 *************** *** 31,44 **** #include <ComTerp/listfunc.h> //: list member command for ComUnidraw ! // val=at(list|attrlist|compview n) -- return the nth item in a list. class GrListAtFunc : public ComFunc { public: GrListAtFunc(ComTerp*); virtual void execute(); virtual const char* docstring() { ! return "val=at(list|attrlist|compview n) -- return the nth item in a list"; } }; //: list size command for Unidraw --- 31,44 ---- #include <ComTerp/listfunc.h> //: list member command for ComUnidraw ! // val=at(list|attrlist|compview n :set val) -- return (or set) the nth item in a list. class GrListAtFunc : public ComFunc { public: GrListAtFunc(ComTerp*); virtual void execute(); virtual const char* docstring() { ! return "val=at(list|attrlist|compview n :set val) -- return (or set) the nth item in a list"; } }; //: list size command for Unidraw Index: ComUnidraw/nfunc.h diff -c ComUnidraw/nfunc.h:1.1 ComUnidraw/nfunc.h:1.2 *** ComUnidraw/nfunc.h:1.1 Fri Nov 2 13:07:06 2001 --- src/ComUnidraw/nfunc.h Tue Nov 13 10:14:40 2001 *************** *** 1,4 **** --- 1,5 ---- /* + * Copyright (c) 2001 Scott E. Johnston * Copyright (c) 1998,1999 Vectaport Inc. * * Permission to use, copy, modify, distribute, and sell this software and *************** *** 27,33 **** #include <ComUnidraw/unifunc.h> //: command to return number of onscreen columns in comdraw. ! // ncols() -- onscreen horizontal extent in pixels class NColsFunc : public UnidrawFunc { public: NColsFunc(ComTerp*,Editor*); --- 28,34 ---- #include <ComUnidraw/unifunc.h> //: command to return number of onscreen columns in comdraw. ! // ncols() -- onscreen horizontal extent in pixels or class NColsFunc : public UnidrawFunc { public: NColsFunc(ComTerp*,Editor*); Index: comdraw/README diff -c comdraw/README:1.1 comdraw/README:1.2 *** comdraw/README:1.1 Fri Nov 2 13:07:08 2001 --- src/comdraw/README Tue Nov 13 10:14:41 2001 *************** *** 75,81 **** 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) -- return the nth item in a list. num=size(list|attrlist|compview) -- return size of a list. VIEWER COMMANDS --- 75,81 ---- 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) -- return (or set) the nth item in a list. num=size(list|attrlist|compview) -- return size of a list. VIEWER COMMANDS *************** *** 115,120 **** --- 115,123 ---- IMAGING COMMANDS tilefile(inpath outpath [xsize] [ysiz]) -- tile pgm or ppm image file + poke(compview x y val) -- poke pixel value into raster + pcols(compview) -- number of columns in a raster + pcols(compview) -- number of rows in a raster PLOTTING COMMANDS Index: man1_ivtools/comdraw.1 diff -c man1_ivtools/comdraw.1:1.1 man1_ivtools/comdraw.1:1.2 *** man1_ivtools/comdraw.1:1.1 Fri Nov 2 13:07:59 2001 --- src/man/man1/comdraw.1 Tue Nov 13 10:14:47 2001 *************** *** 83,89 **** 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) -- return the nth item in a list. num=size(list|attrlist|compview) -- return size of a list. .SH VIEWER COMMANDS --- 83,89 ---- 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) -- return (or set) the nth item in a list. num=size(list|attrlist|compview) -- return size of a list. .SH VIEWER COMMANDS *************** *** 123,129 **** .SH IMAGING COMMANDS ! tilefile(inpath outpath [xsize] [ysiz]) -- tile pgm or ppm image file .SH PLOTTING COMMANDS --- 123,132 ---- .SH IMAGING COMMANDS ! tilefile(inpath outpath [xsize] [ysiz]) -- tile pgm or ppm image file ! poke(compview x y val) -- poke pixel value into raster ! pcols(compview) -- number of columns in a raster ! pcols(compview) -- number of rows in a raster .SH PLOTTING COMMANDS *** /dev/null Tue Nov 13 10:14:50 PST 2001 --- patches/ivtools-011113-johnston-001 *************** patches/ivtools-011113-johnston-001 *** 0 **** --- 1 ---- + ivtools-011113-johnston-001 |
From: <ivt...@li...> - 2001-11-02 20:49:17
|
Patch: ivtools-011102-johnston-082 For: ivtools-0.9.7 Author: joh...@us... Subject: streaming operator tweak Requires: This is an intermediate patch to ivtools-0.9.7. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - streaming operator tweak Index: top_ivtools/Imakefile Index: ComTerp/strmfunc.c diff -c ComTerp/strmfunc.c:1.11 ComTerp/strmfunc.c:1.12 *** ComTerp/strmfunc.c:1.11 Wed Oct 31 16:32:16 2001 --- src/ComTerp/strmfunc.c Fri Nov 2 12:45:53 2001 *************** *** 353,364 **** if (!streamv.is_stream()) return; if (streamv.stream_mode()<0) { /* internal execution -- handled by stream func */ comterp->push_stack(streamv); ((ComFunc*)streamv.stream_func())->exec(1, 0); ! if (comterp->stack_top().is_null()) streamv.stream_list()->clear(); } else if (streamv.stream_mode()>0) { --- 353,370 ---- if (!streamv.is_stream()) return; + int outside_stackh = comterp->stack_height(); + if (streamv.stream_mode()<0) { /* internal execution -- handled by stream func */ comterp->push_stack(streamv); ((ComFunc*)streamv.stream_func())->exec(1, 0); ! if (comterp->stack_top().is_null() && ! comterp->stack_height()>outside_stackh) ! streamv.stream_list()->clear(); ! else if (comterp->stack_height()==outside_stackh) ! comterp->push_stack(ComValue::blankval()); } else if (streamv.stream_mode()>0) { *************** *** 375,380 **** --- 381,388 ---- if (val->is_stream()) { + int inside_stackh = comterp->stack_height(); + /* stream argument, use stream func to get next one */ if (val->stream_mode()<0 && val->stream_func()) { /* internal use */ *************** *** 388,401 **** } ! if (comterp->stack_top().is_null()) { /* sub-stream return null, zero it, and return null for this one */ val->stream_list()->clear(); comterp->push_stack(ComValue::nullval()); streamv.stream_list()->clear(); return; ! } narg++; --- 396,411 ---- } ! if (comterp->stack_top().is_null() && ! comterp->stack_height()>inside_stackh) { /* sub-stream return null, zero it, and return null for this one */ val->stream_list()->clear(); comterp->push_stack(ComValue::nullval()); streamv.stream_list()->clear(); return; ! } else if (comterp->stack_height()==inside_stackh) ! comterp->push_stack(ComValue::blankval()); narg++; *************** *** 415,421 **** funcptr->exec(narg, nkey); } ! if (comterp->stack_top().is_null()) streamv.stream_list()->clear(); } else comterp->push_stack(ComValue::nullval()); --- 425,435 ---- funcptr->exec(narg, nkey); } ! if (comterp->stack_top().is_null() && ! comterp->stack_height() > outside_stackh) ! streamv.stream_list()->clear(); ! else if (comterp->stack_height()==outside_stackh) ! comterp->push_stack(ComValue::blankval()); } else comterp->push_stack(ComValue::nullval()); *** /dev/null Fri Nov 2 12:46:28 PST 2001 --- patches/ivtools-011102-johnston-082 *************** patches/ivtools-011102-johnston-082 *** 0 **** --- 1 ---- + ivtools-011102-johnston-082 |
From: <ivt...@li...> - 2001-11-02 00:07:42
|
Patch: ivtools-011101-johnston-081 For: ivtools-0.9.7 Author: joh...@us... Subject: doc changes Requires: This is an intermediate patch to ivtools-0.9.7. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - doc changes Index: top_ivtools/INSTALL diff -c top_ivtools/INSTALL:1.11 top_ivtools/INSTALL:1.12 *** top_ivtools/INSTALL:1.11 Tue Oct 16 17:23:43 2001 --- ./INSTALL Thu Nov 1 16:03:21 2001 *************** *** 45,51 **** ** can be troublesome (i.e. the default one delivered with Solaris or ** DEC Alpha). You'll want to rig your PATH environment variable to ** find the gcc variant of cpp. Read more about it at ! ** http://www.vectaport.com/ivtools/faq.html#imakecppprob 0.d. If you want to use the polygon intersection tools, acquire and build clippoly, a LGPLed library for polygon clipping from: --- 45,51 ---- ** can be troublesome (i.e. the default one delivered with Solaris or ** DEC Alpha). You'll want to rig your PATH environment variable to ** find the gcc variant of cpp. Read more about it at ! ** http://www.ivtools.org/ivtools/faq.html#imakecppprob 0.d. If you want to use the polygon intersection tools, acquire and build clippoly, a LGPLed library for polygon clipping from: *************** *** 169,175 **** Also you may want to review the rest of the entries in the site.def.<CPU> file to see if they are good defaults for your system. ! ** See http://www.vectaport.com/ivtools/faq.html for more info. 2. Compiling ivtools: --- 169,175 ---- Also you may want to review the rest of the entries in the site.def.<CPU> file to see if they are good defaults for your system. ! ** See http://www.ivtools.org/ivtools/faq.html for more info. 2. Compiling ivtools: *************** *** 194,200 **** If you have any trouble at this stage take a look at: ! http://www.vectaport.com/ivtools/faq.html#SourceBuild ** Subsequent use of "make" will only do the "make -k" phase described ** above. To redo everything, either do a "make World", or do a "make --- 194,200 ---- If you have any trouble at this stage take a look at: ! http://www.ivtools.org/ivtools/faq.html#SourceBuild ** Subsequent use of "make" will only do the "make -k" phase described ** above. To redo everything, either do a "make World", or do a "make Index: top_ivtools/README diff -c top_ivtools/README:1.8 top_ivtools/README:1.9 *** top_ivtools/README:1.8 Tue Oct 16 17:23:43 2001 --- ./README Thu Nov 1 16:03:21 2001 *************** *** 132,141 **** If you have a question about this software, desire to add code, found a bug, want to request a feature, or wonder how to get further assistance, please send e-mail to the general purpose ivtools mailing ! list, ivt...@li..., or this e-mail address: ! ivt...@ve.... To subcribe to the mailing list, visit ! http://lists.sourceforge.net/mailman/listinfo/ivtools-user or send ! an informal request to ivt...@ve.... Other ivtools related mailing lists can be found at: http://www.ivtools.org/ivtools/mailinglists.html --- 132,141 ---- If you have a question about this software, desire to add code, found a bug, want to request a feature, or wonder how to get further assistance, please send e-mail to the general purpose ivtools mailing ! list, ivt...@li..., or (for last resort) this ! e-mail address: ivt...@ve.... To subcribe to the ! mailing list, visit ! http://lists.sourceforge.net/mailman/listinfo/ivtools-user. Other ivtools related mailing lists can be found at: http://www.ivtools.org/ivtools/mailinglists.html Index: top_ivtools/README.ivmkcm diff -c top_ivtools/README.ivmkcm:1.1 top_ivtools/README.ivmkcm:1.2 *** top_ivtools/README.ivmkcm:1.1 Thu Jan 4 15:31:33 2001 --- ./README.ivmkcm Thu Nov 1 16:03:21 2001 *************** *** 1,7 **** ivmkcm is a set of Perl scripts that use CVS to manage source tree directories. The Makefile hierarchy of ivtools contains built-in targets described below that facilitate the hierarchical use of ! ivmkcm. You can acquire ivmkcm from http://www.vectaport.com/ivmkcm/. It is licensed under the GPL. This file documents the Makefile targets associated with ivmkcm, and --- 1,7 ---- ivmkcm is a set of Perl scripts that use CVS to manage source tree directories. The Makefile hierarchy of ivtools contains built-in targets described below that facilitate the hierarchical use of ! ivmkcm. You can acquire ivmkcm from http://www.ivtools.org/ivmkcm/. It is licensed under the GPL. This file documents the Makefile targets associated with ivmkcm, and Index: ComTerp/helpfunc.c diff -c ComTerp/helpfunc.c:1.9 ComTerp/helpfunc.c:1.10 *** ComTerp/helpfunc.c:1.9 Wed Oct 31 16:32:16 2001 --- src/ComTerp/helpfunc.c Thu Nov 1 16:03:24 2001 *************** *** 193,198 **** --- 193,199 ---- ComValue* value = comterp()->localvalue(opr_tbl_commid(op_ids[j])); if (value) { ComFunc* comfunc = (ComFunc*)value->obj_val(); + if (postevalflag.is_true() && !comfunc->post_eval()) continue; if (first) first = false; else Index: comterp/README diff -c comterp/README:1.10 comterp/README:1.11 *** comterp/README:1.10 Wed Oct 31 16:32:18 2001 --- src/comterp_/README Thu Nov 1 16:03:25 2001 *************** *** 277,280 **** comdraw WEB PAGES ! http://www.vectaport.com/ivtools/comterp.html --- 277,280 ---- comdraw WEB PAGES ! http://www.ivtools.org/ivtools/comterp.html Index: glyphs_ivtools/README diff -c glyphs_ivtools/README:1.1 glyphs_ivtools/README:1.2 *** glyphs_ivtools/README:1.1 Thu Jan 4 15:32:09 2001 --- src/glyphs/README Thu Nov 1 16:03:29 2001 *************** *** 13,16 **** text-editor emacs-like text editor timestamp editable time glyph ! See http://www.vectaport.com/ivtools/glyphs.html for screenshots. --- 13,16 ---- text-editor emacs-like text editor timestamp editable time glyph ! See http://www.ivtools.org/ivtools/glyphs.html for screenshots. Index: glyphs_ivtools/examples3.1/Imakefile diff -c /dev/null glyphs_ivtools/examples3.1/Imakefile:1.1 *** /dev/null Thu Nov 1 16:03:30 2001 --- src/glyphs/examples3.1/Imakefile Mon Feb 12 17:00:18 2001 *************** *** 0 **** --- 1,42 ---- + XCOMM + XCOMM examples + XCOMM + + PACKAGE = examples3.1_dir + + #if BuildRPCClasses + PLOT = plot + SENDPLOT = sendplot + #else + PLOT = + SENDPLOT = + #endif + + SUBDIRS = \ + box1 \ + box2 \ + box3 \ + box4 \ + box5 \ + button1 \ + button2 \ + button3 \ + bvalue \ + circle \ + drag \ + fonts \ + himom \ + image \ + ips \ + menu \ + patch \ + $(PLOT) \ + preview \ + print \ + rubband \ + $(SENDPLOT) \ + zoomer + + MakeInSubdirs($(SUBDIRS)) + + IvmkcmTargets($(PACKAGE)) Index: glyphs_ivtools/examples3.1/README diff -c /dev/null glyphs_ivtools/examples3.1/README:1.1 *** /dev/null Thu Nov 1 16:03:30 2001 --- src/glyphs/examples3.1/README Mon Feb 12 17:00:18 2001 *************** *** 0 **** --- 1,7 ---- + This directory contains the glyph example programs copied verbatim + from the InterViews 3.1 (3.2a) distribution (except for gl and + punidraw). All should work, except for morpher and plot/sendplot, + which need to be debugged for a modern C++ compiler and iostreams + package. Quite a few of these examples have no Quit button, so you + need to kill them with Ctrl-C or via the window-manager menu. + Index: idraw/README diff -c idraw/README:1.1 idraw/README:1.2 *** idraw/README:1.1 Thu Jan 4 15:33:02 2001 --- src/idraw/README Thu Nov 1 16:03:42 2001 *************** *** 456,459 **** colors. WEB PAGE ! http://www.vectaport.com/ivtools/idraw.html --- 456,459 ---- colors. WEB PAGE ! http://www.ivtools.org/ivtools/idraw.html Index: drawtool/README diff -c drawtool/README:1.1 drawtool/README:1.2 *** drawtool/README:1.1 Thu Jan 4 15:33:07 2001 --- src/drawtool/README Thu Nov 1 16:03:44 2001 *************** *** 72,81 **** TIFF, and the non-raster portions of arbitrary PostScript if appropriate filters are available (djpeg, giftopnm, tifftopnm, pstoedit). ! Also see "-help" for more options. SEE ALSO idraw WEB PAGE ! http://www.vectaport.com/ivtools/drawtool.html --- 72,122 ---- TIFF, and the non-raster portions of arbitrary PostScript if appropriate filters are available (djpeg, giftopnm, tifftopnm, pstoedit). ! "-color5" selects a colormap with 5 values per color or 125 entries (5 ! cubed). + "-nocolor6" overrides the selection of a colormap with 6 values per + color or 216 entries (6 cubed). + + "-gray5" selects a colormap with 5 bits of gray-level intensity (32 + gray-levels) arranged to maximize rubberband visibility. + + "-gray6" selects a colormap with 6 bits of gray-level intensity (64 + gray-levels) arranged to maximize rubberband visibility. + + "-gray7" selects a colormap with 7 bits of gray-level intensity (128 + gray-levels) arranged to maximize rubberband visibility. + + "-dithermap" causes imported JPEG rasters to be mapped to the standard + colormap (the default without -nocolor6) and dithered to avoid color + banding. + + "-opaque_off" (or "-opoff") disables the opaque (visible) + interactive transformations of graphics. + + "-pagecols" (or "-ncols") sets the horizontal page extent in pixels. + + "-pagerows" (or "-nrows") sets the vertical page extent in pixels. + + "-panner_align tl|tc|tr|cl|c|cr|cl|bl|br|l|r|t|b|hc|vc" (or "-pal + ...") selects the alignment of the panner display. + + "-panner_off" (or "-poff") disables the panner display. + + "-slider_off" (or "-soff") disables the slider display. + + "-zoomer_off" (or "-zoff") disables the zoomer display. + + "-ptrloc" enables display of the current pointer location. + + "-scribble_pointer (or "-scrpt") enables continuous line drawing. + + "-toolbarloc r|l" (or "-tbl ...") selects the toolbar location. + + Also see "-help" and the idraw man page for more options. + SEE ALSO idraw WEB PAGE ! http://www.ivtools.org/ivtools/drawtool.html Index: comdraw/README diff -c comdraw/README:1.5 comdraw/README:1.6 *** comdraw/README:1.5 Fri Jun 15 10:57:16 2001 --- src/comdraw/README Thu Nov 1 16:03:46 2001 *************** *** 131,137 **** OPTIONS ! "-port n" specifies the port number to accept command interpreter connections on. "-import n" specifies the port number run the import service on. The --- 131,137 ---- OPTIONS ! "-comdraw n" specifies the port number to accept command interpreter connections on. "-import n" specifies the port number run the import service on. The *************** *** 142,152 **** slider, or zoomer. It can be controlled via stdin or telnet if built with ACE. SEE ALSO comterp, drawtool, idraw WEB PAGES ! http://www.vectaport.com/ivtools/comdraw.html --- 142,164 ---- slider, or zoomer. It can be controlled via stdin or telnet if built with ACE. + "-rampsize n" selects the rampsize used for gray-level image + processing. + + "-theight n" (or "-th n") selects the automatic raster tiling height. + + "-twidth n" (or "-tw n") selects the automatic raster tiling width. + + "-tile" enables the automatic raster tiling. + + Also see the -help message and the drawtool and idraw man pages for + further options. + SEE ALSO comterp, drawtool, idraw WEB PAGES ! http://www.ivtools.org/ivtools/comdraw.html Index: flipbook/README diff -c flipbook/README:1.1 flipbook/README:1.2 *** flipbook/README:1.1 Thu Jan 4 15:33:14 2001 --- src/flipbook/README Thu Nov 1 16:03:48 2001 *************** *** 59,69 **** with "sec" delay between frames (currently only available when built with ACE). ! Also see "-help" for more options. SEE ALSO drawtool, idraw WEB PAGE ! http://www.vectaport.com/ivtools/flipbook.html --- 59,70 ---- with "sec" delay between frames (currently only available when built with ACE). ! Also see "-help" for more options, and the comdraw, drawtool, and ! idraw man pages. SEE ALSO drawtool, idraw WEB PAGE ! http://www.ivtools.org/ivtools/flipbook.html Index: graphdraw/README diff -c graphdraw/README:1.1 graphdraw/README:1.2 *** graphdraw/README:1.1 Thu Jan 4 15:33:17 2001 --- src/graphdraw/README Thu Nov 1 16:03:50 2001 *************** *** 43,52 **** switching between a graph editing toolbar and a generic graphics editing toolbar. SEE ALSO ! drawtool, idraw WEB PAGE ! http://www.vectaport.com/ivtools/graphdraw.html --- 43,53 ---- switching between a graph editing toolbar and a generic graphics editing toolbar. + SEE ALSO ! -help for more options, and the comdraw, drawtool, idraw man pages WEB PAGE ! http://www.ivtools.org/ivtools/graphdraw.html Index: man1_ivtools/comdraw.1 diff -c man1_ivtools/comdraw.1:1.5 man1_ivtools/comdraw.1:1.6 *** man1_ivtools/comdraw.1:1.5 Fri Jun 15 10:57:25 2001 --- src/man/man1/comdraw.1 Thu Nov 1 16:03:58 2001 *************** *** 157,167 **** slider, or zoomer. It can be controlled via stdin or telnet if built with ACE. .SH SEE ALSO comterp, drawtool, idraw .SH WEB PAGES ! http://www.vectaport.com/ivtools/comdraw.html --- 157,184 ---- slider, or zoomer. It can be controlled via stdin or telnet if built with ACE. + .B \-rampsize n, + selects the rampsize used for gray-level image + processing. + + .B \-theight n, + (or "-th n") selects the automatic raster tiling height. + + .B \-twidth n, + (or "-tw n") selects the automatic raster tiling width. + + .B \-tile, + enables the automatic raster tiling. + + .PP + Also see the -help message and the drawtool and idraw man pages for + further options. + .SH SEE ALSO comterp, drawtool, idraw .SH WEB PAGES ! http://www.ivtools.org/ivtools/comdraw.html Index: man1_ivtools/comterp.1 diff -c man1_ivtools/comterp.1:1.10 man1_ivtools/comterp.1:1.11 *** man1_ivtools/comterp.1:1.10 Wed Oct 31 16:32:47 2001 --- src/man/man1/comterp.1 Thu Nov 1 16:03:58 2001 *************** *** 280,284 **** comdraw .SH WEB PAGES ! http://www.vectaport.com/ivtools/comterp.html --- 280,284 ---- comdraw .SH WEB PAGES ! http://www.ivtools.org/ivtools/comterp.html Index: man1_ivtools/drawtool.1 diff -c man1_ivtools/drawtool.1:1.1 man1_ivtools/drawtool.1:1.2 *** man1_ivtools/drawtool.1:1.1 Thu Jan 4 15:33:56 2001 --- src/man/man1/drawtool.1 Thu Nov 1 16:03:58 2001 *************** *** 69,79 **** or idraw documents and pbmplus image formats (PBM/PGM/PPM), plus JPEG, GIF, TIFF, and the non-raster portions of arbitrary PostScript if appropriate filters are available (djpeg, giftopnm, tifftopnm, pstoedit). .PP ! Also see "-help" for more options. .SH SEE ALSO idraw(1) .SH WEB PAGE ! http://www.vectaport.com/ivtools/drawtool.html --- 69,135 ---- or idraw documents and pbmplus image formats (PBM/PGM/PPM), plus JPEG, GIF, TIFF, and the non-raster portions of arbitrary PostScript if appropriate filters are available (djpeg, giftopnm, tifftopnm, pstoedit). + "-color5" selects a colormap with 5 values per color or 125 entries (5 + cubed). + + .PP + "-nocolor6" overrides the selection of a colormap with 6 values per + color or 216 entries (6 cubed). + + .PP + "-gray5" selects a colormap with 5 bits of gray-level intensity (32 + gray-levels) arranged to maximize rubberband visibility. + + .PP + "-gray6" selects a colormap with 6 bits of gray-level intensity (64 + gray-levels) arranged to maximize rubberband visibility. + + .PP + "-gray7" selects a colormap with 7 bits of gray-level intensity (128 + gray-levels) arranged to maximize rubberband visibility. + + .PP + "-dithermap" causes imported JPEG rasters to be mapped to the standard + colormap (the default without -nocolor6) and dithered to avoid color + banding. + + .PP + "-opaque_off" (or "-opoff") disables the opaque (visible) + interactive transformations of graphics. + + .PP + "-pagecols" (or "-ncols") sets the horizontal page extent in pixels. + + .PP + "-pagerows" (or "-nrows") sets the vertical page extent in pixels. + + .PP + "-panner_align tl|tc|tr|cl|c|cr|cl|bl|br|l|r|t|b|hc|vc" (or "-pal + ...") selects the alignment of the panner display. + + .PP + "-panner_off" (or "-poff") disables the panner display. + + .PP + "-slider_off" (or "-soff") disables the slider display. + + .PP + "-zoomer_off" (or "-zoff") disables the zoomer display. + + .PP + "-ptrloc" enables display of the current pointer location. + + .PP + "-scribble_pointer (or "-scrpt") enables continuous line drawing. + + .PP + "-toolbarloc r|l" (or "-tbl ...") selects the toolbar location. + .PP ! Also see "-help" and the idraw man page for more options. .SH SEE ALSO idraw(1) .SH WEB PAGE ! http://www.ivtools.org/ivtools/drawtool.html Index: man1_ivtools/flipbook.1 diff -c man1_ivtools/flipbook.1:1.1 man1_ivtools/flipbook.1:1.2 *** man1_ivtools/flipbook.1:1.1 Thu Jan 4 15:33:56 2001 --- src/man/man1/flipbook.1 Thu Nov 1 16:03:58 2001 *************** *** 61,71 **** with "sec" delay between frames (currently only available when built with ACE). ! Also see "-help" for more options. .SH SEE ALSO drawtool, idraw .SH WEB PAGE ! http://www.vectaport.com/ivtools/flipbook.html --- 61,72 ---- with "sec" delay between frames (currently only available when built with ACE). ! Also see "-help" for more options, and the comdraw, drawtool, and ! idraw man pages. .SH SEE ALSO drawtool, idraw .SH WEB PAGE ! http://www.ivtools.org/ivtools/flipbook.html Index: man1_ivtools/graphdraw.1 diff -c man1_ivtools/graphdraw.1:1.1 man1_ivtools/graphdraw.1:1.2 *** man1_ivtools/graphdraw.1:1.1 Thu Jan 4 15:33:56 2001 --- src/man/man1/graphdraw.1 Thu Nov 1 16:03:58 2001 *************** *** 45,48 **** drawtool, idraw .SH WEB PAGE ! http://www.vectaport.com/ivtools/graphdraw.html --- 45,48 ---- drawtool, idraw .SH WEB PAGE ! http://www.ivtools.org/ivtools/graphdraw.html Index: html_ivtools/README diff -c html_ivtools/README:1.1 html_ivtools/README:1.2 *** html_ivtools/README:1.1 Thu Jan 4 15:34:01 2001 --- src/html/README Thu Nov 1 16:03:59 2001 *************** *** 43,49 **** or from here: ! http://www.vectaport.com/pub/src/perceps341.tgz 2.2 Verify your version of Perl is >= 5.003 with: --- 43,49 ---- or from here: ! http://www.ivtools.org/pub/src/perceps341.tgz 2.2 Verify your version of Perl is >= 5.003 with: Index: html_ivtools/getman31.sh diff -c html_ivtools/getman31.sh:1.1 html_ivtools/getman31.sh:1.2 *** html_ivtools/getman31.sh:1.1 Thu Jan 4 15:34:01 2001 --- src/html/getman31.sh Thu Nov 1 16:03:59 2001 *************** *** 1,149 **** mkdir man3.1 ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Adjuster.html man3.1/Adjuster.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Banner.html man3.1/Banner.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/BasicDialog.html man3.1/BasicDialog.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Border.html man3.1/Border.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Box2_6.html man3.1/Box2_6.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/BrushCmd.html man3.1/BrushCmd.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Button2_6.html man3.1/Button2_6.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/CGlue.html man3.1/CGlue.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/CSolver.html man3.1/CSolver.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Catalog.html man3.1/Catalog.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Clipboard.html man3.1/Clipboard.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/ColorCmd.html man3.1/ColorCmd.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Command.html man3.1/Command.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/CompletionEditor.html man3.1/CompletionEditor.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Component.html man3.1/Component.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/ComponentView.html man3.1/ComponentView.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/ConnectTool.html man3.1/ConnectTool.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Connector.html man3.1/Connector.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Control.html man3.1/Control.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/ControlInfo.html man3.1/ControlInfo.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Creator.html man3.1/Creator.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Damage.html man3.1/Damage.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Data.html man3.1/Data.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Deck2_6.html man3.1/Deck2_6.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Dialog.html man3.1/Dialog.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Dispatcher.html man3.1/Dispatcher.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Editor.html man3.1/Editor.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/EditorInfo.html man3.1/EditorInfo.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/EllipseComp.html man3.1/EllipseComp.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/ExternView.html man3.1/ExternView.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/FileBrowser.html man3.1/FileBrowser.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/FileChooser.html man3.1/FileChooser.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/FontCmd.html man3.1/FontCmd.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Frame.html man3.1/Frame.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/GVUpdater.html man3.1/GVUpdater.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Glue2_6.html man3.1/Glue2_6.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Graphic.html man3.1/Graphic.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/GraphicBlock.html man3.1/GraphicBlock.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/GraphicComp.html man3.1/GraphicComp.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/GraphicCompTool.html man3.1/GraphicCompTool.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/GraphicView.html man3.1/GraphicView.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Grid.html man3.1/Grid.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/IOCallback.html man3.1/IOCallback.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/IOHandler.html man3.1/IOHandler.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/ImportCmd.html man3.1/ImportCmd.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Interactor.html man3.1/Interactor.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Iterator.html man3.1/Iterator.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/KeyMap.html man3.1/KeyMap.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/LineComp.html man3.1/LineComp.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/LinkComp.html man3.1/LinkComp.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/MacroCmd.html man3.1/MacroCmd.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/MagnifyTool.html man3.1/MagnifyTool.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Manipulator.html man3.1/Manipulator.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/MatchEditor.html man3.1/MatchEditor.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Menu2_6.html man3.1/Menu2_6.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Message.html man3.1/Message.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/MoveTool.html man3.1/MoveTool.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/NOPCmd.html man3.1/NOPCmd.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/PadComp.html man3.1/PadComp.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Page.html man3.1/Page.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Painter.html man3.1/Painter.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Panner.html man3.1/Panner.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Path.html man3.1/Path.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Pattern.html man3.1/Pattern.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/PatternCmd.html man3.1/PatternCmd.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Perspective.html man3.1/Perspective.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Picture.html man3.1/Picture.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/PinComp.html man3.1/PinComp.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/PolygonComp.html man3.1/PolygonComp.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/PostScriptView.html man3.1/PostScriptView.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/RasterComp.html man3.1/RasterComp.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/RasterRect.html man3.1/RasterRect.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/RectComp.html man3.1/RectComp.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Regexp.html man3.1/Regexp.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/ReqErr.html man3.1/ReqErr.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/ReshapeTool.html man3.1/ReshapeTool.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Resource.html man3.1/Resource.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/RotateTool.html man3.1/RotateTool.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/RpcHdr.html man3.1/RpcHdr.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/RpcPeer.html man3.1/RpcPeer.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/RpcReader.html man3.1/RpcReader.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/RpcRegistry.html man3.1/RpcRegistry.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/RpcService.html man3.1/RpcService.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/RpcWriter.html man3.1/RpcWriter.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Rubband.html man3.1/Rubband.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/ScaleTool.html man3.1/ScaleTool.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Scene.html man3.1/Scene.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Scroller.html man3.1/Scroller.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/SelectTool.html man3.1/SelectTool.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Selection.html man3.1/Selection.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Sensor.html man3.1/Sensor.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Shape.html man3.1/Shape.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/SlotComp.html man3.1/SlotComp.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/SplineComp.html man3.1/SplineComp.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/StateVar.html man3.1/StateVar.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/StateVarView.html man3.1/StateVarView.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/StencilComp.html man3.1/StencilComp.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/StrBrowser.html man3.1/StrBrowser.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/StrChooser.html man3.1/StrChooser.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/StretchTool.html man3.1/StretchTool.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/StringEditor.html man3.1/StringEditor.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Subject.html man3.1/Subject.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/TextBuffer.html man3.1/TextBuffer.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/TextComp.html man3.1/TextComp.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/TextDisplay.html man3.1/TextDisplay.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/TextEditor.html man3.1/TextEditor.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Tool.html man3.1/Tool.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/TransferFunct.html man3.1/TransferFunct.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Tray.html man3.1/Tray.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/UArray.html man3.1/UArray.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/UControl.html man3.1/UControl.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/UHashTable.html man3.1/UHashTable.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/ULabel.html man3.1/ULabel.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/UList.html man3.1/UList.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/UMap.html man3.1/UMap.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/UStencil.html man3.1/UStencil.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Unidraw.html man3.1/Unidraw.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/UnidrawIntro.html man3.1/UnidrawIntro.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Vertices.html man3.1/Vertices.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/VerticesComp.html man3.1/VerticesComp.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Viewer.html man3.1/Viewer.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/Viewport.html man3.1/Viewport.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/World.html man3.1/World.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/align.html man3.1/align.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/catcmds.html man3.1/catcmds.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/classes.html man3.1/classes.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/datas.html man3.1/datas.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/edit.html man3.1/edit.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/ellipses.html man3.1/ellipses.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/geomobjs.html man3.1/geomobjs.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/globals.html man3.1/globals.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/index.html man3.1/index.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/iostreamb.html man3.1/iostreamb.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/kybd.html man3.1/kybd.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/lines.html man3.1/lines.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/manips.html man3.1/manips.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/polygons.html man3.1/polygons.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/pspaint.html man3.1/pspaint.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/rpcbuf.html man3.1/rpcbuf.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/rpcstream.html man3.1/rpcstream.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/splines.html man3.1/splines.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/statevars.html man3.1/statevars.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/stateviews.html man3.1/stateviews.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/struct.html man3.1/struct.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/transfns.html man3.1/transfns.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/transforms.html man3.1/transforms.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/uctrls.html man3.1/uctrls.html ! ivdl http://www.vectaport.com/ivtools/doc/man3.1/viewcmds.html man3.1/viewcmds.html --- 1,149 ---- mkdir man3.1 ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Adjuster.html man3.1/Adjuster.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Banner.html man3.1/Banner.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/BasicDialog.html man3.1/BasicDialog.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Border.html man3.1/Border.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Box2_6.html man3.1/Box2_6.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/BrushCmd.html man3.1/BrushCmd.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Button2_6.html man3.1/Button2_6.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/CGlue.html man3.1/CGlue.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/CSolver.html man3.1/CSolver.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Catalog.html man3.1/Catalog.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Clipboard.html man3.1/Clipboard.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/ColorCmd.html man3.1/ColorCmd.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Command.html man3.1/Command.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/CompletionEditor.html man3.1/CompletionEditor.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Component.html man3.1/Component.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/ComponentView.html man3.1/ComponentView.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/ConnectTool.html man3.1/ConnectTool.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Connector.html man3.1/Connector.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Control.html man3.1/Control.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/ControlInfo.html man3.1/ControlInfo.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Creator.html man3.1/Creator.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Damage.html man3.1/Damage.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Data.html man3.1/Data.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Deck2_6.html man3.1/Deck2_6.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Dialog.html man3.1/Dialog.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Dispatcher.html man3.1/Dispatcher.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Editor.html man3.1/Editor.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/EditorInfo.html man3.1/EditorInfo.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/EllipseComp.html man3.1/EllipseComp.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/ExternView.html man3.1/ExternView.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/FileBrowser.html man3.1/FileBrowser.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/FileChooser.html man3.1/FileChooser.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/FontCmd.html man3.1/FontCmd.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Frame.html man3.1/Frame.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/GVUpdater.html man3.1/GVUpdater.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Glue2_6.html man3.1/Glue2_6.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Graphic.html man3.1/Graphic.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/GraphicBlock.html man3.1/GraphicBlock.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/GraphicComp.html man3.1/GraphicComp.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/GraphicCompTool.html man3.1/GraphicCompTool.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/GraphicView.html man3.1/GraphicView.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Grid.html man3.1/Grid.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/IOCallback.html man3.1/IOCallback.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/IOHandler.html man3.1/IOHandler.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/ImportCmd.html man3.1/ImportCmd.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Interactor.html man3.1/Interactor.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Iterator.html man3.1/Iterator.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/KeyMap.html man3.1/KeyMap.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/LineComp.html man3.1/LineComp.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/LinkComp.html man3.1/LinkComp.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/MacroCmd.html man3.1/MacroCmd.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/MagnifyTool.html man3.1/MagnifyTool.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Manipulator.html man3.1/Manipulator.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/MatchEditor.html man3.1/MatchEditor.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Menu2_6.html man3.1/Menu2_6.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Message.html man3.1/Message.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/MoveTool.html man3.1/MoveTool.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/NOPCmd.html man3.1/NOPCmd.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/PadComp.html man3.1/PadComp.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Page.html man3.1/Page.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Painter.html man3.1/Painter.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Panner.html man3.1/Panner.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Path.html man3.1/Path.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Pattern.html man3.1/Pattern.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/PatternCmd.html man3.1/PatternCmd.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Perspective.html man3.1/Perspective.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Picture.html man3.1/Picture.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/PinComp.html man3.1/PinComp.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/PolygonComp.html man3.1/PolygonComp.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/PostScriptView.html man3.1/PostScriptView.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/RasterComp.html man3.1/RasterComp.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/RasterRect.html man3.1/RasterRect.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/RectComp.html man3.1/RectComp.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Regexp.html man3.1/Regexp.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/ReqErr.html man3.1/ReqErr.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/ReshapeTool.html man3.1/ReshapeTool.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Resource.html man3.1/Resource.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/RotateTool.html man3.1/RotateTool.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/RpcHdr.html man3.1/RpcHdr.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/RpcPeer.html man3.1/RpcPeer.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/RpcReader.html man3.1/RpcReader.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/RpcRegistry.html man3.1/RpcRegistry.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/RpcService.html man3.1/RpcService.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/RpcWriter.html man3.1/RpcWriter.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Rubband.html man3.1/Rubband.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/ScaleTool.html man3.1/ScaleTool.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Scene.html man3.1/Scene.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Scroller.html man3.1/Scroller.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/SelectTool.html man3.1/SelectTool.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Selection.html man3.1/Selection.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Sensor.html man3.1/Sensor.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Shape.html man3.1/Shape.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/SlotComp.html man3.1/SlotComp.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/SplineComp.html man3.1/SplineComp.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/StateVar.html man3.1/StateVar.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/StateVarView.html man3.1/StateVarView.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/StencilComp.html man3.1/StencilComp.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/StrBrowser.html man3.1/StrBrowser.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/StrChooser.html man3.1/StrChooser.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/StretchTool.html man3.1/StretchTool.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/StringEditor.html man3.1/StringEditor.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Subject.html man3.1/Subject.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/TextBuffer.html man3.1/TextBuffer.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/TextComp.html man3.1/TextComp.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/TextDisplay.html man3.1/TextDisplay.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/TextEditor.html man3.1/TextEditor.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Tool.html man3.1/Tool.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/TransferFunct.html man3.1/TransferFunct.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Tray.html man3.1/Tray.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/UArray.html man3.1/UArray.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/UControl.html man3.1/UControl.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/UHashTable.html man3.1/UHashTable.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/ULabel.html man3.1/ULabel.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/UList.html man3.1/UList.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/UMap.html man3.1/UMap.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/UStencil.html man3.1/UStencil.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Unidraw.html man3.1/Unidraw.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/UnidrawIntro.html man3.1/UnidrawIntro.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Vertices.html man3.1/Vertices.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/VerticesComp.html man3.1/VerticesComp.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Viewer.html man3.1/Viewer.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/Viewport.html man3.1/Viewport.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/World.html man3.1/World.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/align.html man3.1/align.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/catcmds.html man3.1/catcmds.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/classes.html man3.1/classes.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/datas.html man3.1/datas.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/edit.html man3.1/edit.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/ellipses.html man3.1/ellipses.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/geomobjs.html man3.1/geomobjs.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/globals.html man3.1/globals.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/index.html man3.1/index.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/iostreamb.html man3.1/iostreamb.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/kybd.html man3.1/kybd.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/lines.html man3.1/lines.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/manips.html man3.1/manips.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/polygons.html man3.1/polygons.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/pspaint.html man3.1/pspaint.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/rpcbuf.html man3.1/rpcbuf.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/rpcstream.html man3.1/rpcstream.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/splines.html man3.1/splines.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/statevars.html man3.1/statevars.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/stateviews.html man3.1/stateviews.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/struct.html man3.1/struct.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/transfns.html man3.1/transfns.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/transforms.html man3.1/transforms.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/uctrls.html man3.1/uctrls.html ! ivdl http://www.ivtools.org/ivtools/doc/man3.1/viewcmds.html man3.1/viewcmds.html Index: html_ivtools/getrefman31.sh diff -c html_ivtools/getrefman31.sh:1.1 html_ivtools/getrefman31.sh:1.2 *** html_ivtools/getrefman31.sh:1.1 Thu Jan 4 15:34:01 2001 --- src/html/getrefman31.sh Thu Nov 1 16:04:00 2001 *************** *** 1,5 **** mkdir refman3.1 ! ivdl http://www.vectaport.com/ivtools/doc/refman3.1/error.html refman3.1/error.html ! ivdl http://www.vectaport.com//ivtools/doc/refman3.1/index.html refman3.1/index.html ! ivdl http://www.vectaport.com//ivtools/doc/refman3.1/left.html refman3.1/left.html ! ivdl http://www.vectaport.com//ivtools/doc/refman3.1/refman.html refman3.1/refman.html --- 1,5 ---- mkdir refman3.1 ! ivdl http://www.ivtools.org/ivtools/doc/refman3.1/error.html refman3.1/error.html ! ivdl http://www.ivtools.org/ivtools/doc/refman3.1/index.html refman3.1/index.html ! ivdl http://www.ivtools.org/ivtools/doc/refman3.1/left.html refman3.1/left.html ! ivdl http://www.ivtools.org/ivtools/doc/refman3.1/refman.html refman3.1/refman.html *** /dev/null Thu Nov 1 16:04:03 PST 2001 --- patches/ivtools-011101-johnston-081 *************** patches/ivtools-011101-johnston-081 *** 0 **** --- 1 ---- + ivtools-011101-johnston-081 |
From: <ivt...@li...> - 2001-11-01 00:41:18
|
Patch: ivtools-011031-johnston-080 For: ivtools-0.9.7 Author: joh...@us... Subject: $ stream operator, each command, AttributeValueList deep copy constructor, Requires: This is an intermediate patch to ivtools-0.9.7. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - $ unary-prefix operator as a short-cut for stream command. Useful when copying the same stream many times in one command. - each operator traverses a stream, exercising it until the end, and returns the length count. - make the AttributeValueList constructor that takes an AttributeValueList* a truly deep copy. Index: ComUtil/optable.c diff -c ComUtil/optable.c:1.5 ComUtil/optable.c:1.6 *** ComUtil/optable.c:1.5 Mon Oct 8 13:05:04 2001 --- src/ComUtil/optable.c Wed Oct 31 16:32:11 2001 *************** *** 81,86 **** --- 81,87 ---- } DefaultOperatorTable[] = { {".", "dot", 130, FALSE, OPTYPE_BINARY }, {"`", "bquote", 125, TRUE, OPTYPE_UNARY_PREFIX }, + {"$", "stream", 125, TRUE, OPTYPE_UNARY_PREFIX }, {"!", "negate", 110, TRUE, OPTYPE_UNARY_PREFIX }, {"~", "bit_not", 110, TRUE, OPTYPE_UNARY_PREFIX }, {"++", "incr", 110, TRUE, OPTYPE_UNARY_PREFIX }, *************** *** 903,908 **** --- 904,910 ---- -------- ------- -------- ---- ---- . dot 130 N BINARY ` bquote 125 Y UNARY PREFIX + $ stream 125 Y UNARY PREFIX ! negate 110 Y UNARY PREFIX ~ bit_not 110 Y UNARY PREFIX ++ incr 110 Y UNARY PREFIX Index: Attribute/attrlist.c diff -c Attribute/attrlist.c:1.3 Attribute/attrlist.c:1.4 *** Attribute/attrlist.c:1.3 Thu Oct 11 15:20:27 2001 --- src/Attribute/attrlist.c Wed Oct 31 16:32:13 2001 *************** *** 304,310 **** ALIterator i; for (s->First(i); !s->Done(i); s->Next(i)) { ! Append(new AttributeValue(*s->GetAttrVal(i))); } } } --- 304,310 ---- ALIterator i; for (s->First(i); !s->Done(i); s->Next(i)) { ! Append(new AttributeValue(s->GetAttrVal(i))); } } } Index: Attribute/attrvalue.c diff -c Attribute/attrvalue.c:1.10 Attribute/attrvalue.c:1.11 *** Attribute/attrvalue.c:1.10 Fri Oct 19 09:27:24 2001 --- src/Attribute/attrvalue.c Wed Oct 31 16:32:13 2001 *************** *** 52,58 **** AttributeValue::AttributeValue(AttributeValue& sv) { *this = sv; ! ref_as_needed(); } AttributeValue::AttributeValue() { --- 52,62 ---- AttributeValue::AttributeValue(AttributeValue& sv) { *this = sv; ! } ! ! AttributeValue::AttributeValue(AttributeValue* sv) { ! *this = *sv; ! dup_as_needed(); } AttributeValue::AttributeValue() { *************** *** 987,992 **** --- 991,1010 ---- Resource::ref(_v.arrayval.ptr); else if (_type == AttributeValue::StreamType) Resource::ref(_v.streamval.listptr); + } + + void AttributeValue::dup_as_needed() { + if (_type == AttributeValue::ArrayType) { + AttributeValueList* avl = _v.arrayval.ptr; + _v.arrayval.ptr = new AttributeValueList(avl); + Resource::ref(_v.arrayval.ptr); + Resource::unref(avl); + } else if (_type == AttributeValue::StreamType) { + AttributeValueList* avl = _v.streamval.listptr; + _v.streamval.listptr = new AttributeValueList(avl); + Resource::ref(_v.streamval.listptr); + Resource::unref(avl); + } } void AttributeValue::unref_as_needed() { Index: Attribute/attrvalue.h diff -c Attribute/attrvalue.h:1.6 Attribute/attrvalue.h:1.7 *** Attribute/attrvalue.h:1.6 Thu Oct 11 15:20:27 2001 --- src/Attribute/attrvalue.h Wed Oct 31 16:32:13 2001 *************** *** 115,120 **** --- 115,122 ---- // construct with specified type and value struct. AttributeValue(AttributeValue&); // copy constructor. + AttributeValue(AttributeValue*); + // deep copy constructor. AttributeValue(); // default constructor (UnknownType constructor). *************** *** 359,364 **** --- 361,368 ---- // increment ref counters as needed void unref_as_needed(); // decrement ref counters as needed + void dup_as_needed(); + // duplicate lists then increment ref counters as needed ValueType _type; attr_value _v; Index: ComTerp/comterp.c diff -c ComTerp/comterp.c:1.15 ComTerp/comterp.c:1.16 *** ComTerp/comterp.c:1.15 Fri Oct 19 16:33:56 2001 --- src/ComTerp/comterp.c Wed Oct 31 16:32:16 2001 *************** *** 970,975 **** --- 970,976 ---- add_command("repeat", new RepeatFunc(this)); add_command("iterate", new IterateFunc(this)); add_command("next", new NextFunc(this)); + add_command("each", new EachFunc(this)); add_command("dot", new DotFunc(this)); add_command("attrname", new DotNameFunc(this)); Index: ComTerp/comvalue.c diff -c ComTerp/comvalue.c:1.8 ComTerp/comvalue.c:1.9 *** ComTerp/comvalue.c:1.8 Fri Oct 19 09:27:26 2001 --- src/ComTerp/comvalue.c Wed Oct 31 16:32:16 2001 *************** *** 51,62 **** ComValue::ComValue(ComValue& sv) { *this = sv; ! ref_as_needed(); } ComValue::ComValue(AttributeValue& sv) { *(AttributeValue*)this = sv; - ref_as_needed(); zero_vals(); } --- 51,65 ---- ComValue::ComValue(ComValue& sv) { *this = sv; ! } ! ! ComValue::ComValue(ComValue* sv) { ! *this = *sv; ! dup_as_needed(); } ComValue::ComValue(AttributeValue& sv) { *(AttributeValue*)this = sv; zero_vals(); } *************** *** 127,132 **** --- 130,136 ---- _nids = sv._nids; _pedepth = sv._pedepth; _bquote = sv._bquote; + ref_as_needed(); return *this; } Index: ComTerp/comvalue.h diff -c ComTerp/comvalue.h:1.3 ComTerp/comvalue.h:1.4 *** ComTerp/comvalue.h:1.3 Fri Sep 28 16:00:09 2001 --- src/ComTerp/comvalue.h Wed Oct 31 16:32:16 2001 *************** *** 45,50 **** --- 45,52 ---- public: ComValue(ComValue&); // copy constructor. + ComValue(ComValue*); + // deep copy constructor. ComValue(AttributeValue&); // copy constructor from an AttributeValue. ComValue(postfix_token* token); Index: ComTerp/helpfunc.c diff -c ComTerp/helpfunc.c:1.8 ComTerp/helpfunc.c:1.9 *** ComTerp/helpfunc.c:1.8 Fri Oct 19 09:27:26 2001 --- src/ComTerp/helpfunc.c Wed Oct 31 16:32:16 2001 *************** *** 181,187 **** printed = true; } } ! if (!printed && command_ids[i]>=0 && comfuncs[i]) { /* if symid is smaller than the highest operator it must be one */ if (command_ids[i]>=0 && command_ids[i]<=opr_tbl_topstr()) { int op_ids[OPTYPE_NUM]; --- 181,187 ---- printed = true; } } ! if (!printed && command_ids[i]>=0) { /* if symid is smaller than the highest operator it must be one */ if (command_ids[i]>=0 && command_ids[i]<=opr_tbl_topstr()) { int op_ids[OPTYPE_NUM]; Index: ComTerp/iofunc.c diff -c ComTerp/iofunc.c:1.5 ComTerp/iofunc.c:1.6 *** ComTerp/iofunc.c:1.5 Fri Oct 12 14:56:21 2001 --- src/ComTerp/iofunc.c Wed Oct 31 16:32:16 2001 *************** *** 58,63 **** --- 58,64 ---- reset_stack(); const char* fstr = formatstr.is_string() ? formatstr.string_ptr() : "nil"; + ComValue::comterp(comterp()); #if __GNUG__<3 streambuf* strmbuf = nil; *************** *** 89,95 **** #endif ostream out(strmbuf); ! if (nargs()==1) { if (formatstr.is_string()) out << formatstr.symbol_ptr(); --- 90,97 ---- #endif ostream out(strmbuf); ! int narg = nargs(); ! if (narg==1) { if (formatstr.is_string()) out << formatstr.symbol_ptr(); Index: ComTerp/strmfunc.c diff -c ComTerp/strmfunc.c:1.10 ComTerp/strmfunc.c:1.11 *** ComTerp/strmfunc.c:1.10 Fri Oct 19 16:33:56 2001 --- src/ComTerp/strmfunc.c Wed Oct 31 16:32:16 2001 *************** *** 422,424 **** --- 422,454 ---- } + /*****************************************************************************/ + + EachFunc::EachFunc(ComTerp* comterp) : ComFunc(comterp) { + } + + void EachFunc::execute() { + ComValue strmv(stack_arg_post_eval(0)); + reset_stack(); + + if (strmv.is_stream()) { + + int cnt = 0; + /* traverse stream */ + boolean done = false; + while (!done) { + NextFunc::execute_impl(comterp(), strmv); + if (comterp()->pop_stack().is_unknown()) + done = true; + else + cnt++; + } + + ComValue retval(cnt, ComValue::IntType); + push_stack(retval); + + } else + push_stack(ComValue::nullval()); + + } + Index: ComTerp/strmfunc.h diff -c ComTerp/strmfunc.h:1.7 ComTerp/strmfunc.h:1.8 *** ComTerp/strmfunc.h:1.7 Fri Oct 19 09:27:26 2001 --- src/ComTerp/strmfunc.h Wed Oct 31 16:32:16 2001 *************** *** 130,133 **** --- 130,145 ---- }; + //: traverse stream command for ComTerp. + // cnt=each(strm) -- traverse list returning its length + class EachFunc : public ComFunc { + public: + EachFunc(ComTerp*); + + virtual void execute(); + virtual boolean post_eval() { return true; } + virtual const char* docstring() { + return "cnt=%s(strm) -- traverse list returning its length"; } + }; + #endif /* !defined(_strmfunc_h) */ Index: comterp/README diff -c comterp/README:1.9 comterp/README:1.10 *** comterp/README:1.9 Fri Oct 19 09:27:28 2001 --- src/comterp_/README Wed Oct 31 16:32:18 2001 *************** *** 76,81 **** --- 76,82 ---- --------- ------------ -------- ----- ---- . dot 130 L-to-R binary ` bquote 125 R-to-L unary-prefix + $ stream 125 R-to-L unary-prefix ! negate 110 R-to-L unary-prefix ~ bit_not 110 R-to-L unary-prefix ++ incr 110 R-to-L unary-prefix *************** *** 185,190 **** --- 186,193 ---- val=next(strm) -- return next value from stream strm=stream(ostrm|list) -- copy stream or convert list + + cnt=each(strm) -- traverse the stream returning its length CONTROL COMMANDS (using post evaluation): Index: Time/Time.c diff -c Time/Time.c:1.2 Time/Time.c:1.3 *** Time/Time.c:1.2 Fri Oct 19 09:27:33 2001 --- src/Time/Time.c Wed Oct 31 16:32:23 2001 *************** *** 62,68 **** int gettimeofday(struct timeval *tp, struct timezone *tzp); } #endif ! #endif static long TIME_ZONE; /* seconds west of GMT */ --- 62,70 ---- int gettimeofday(struct timeval *tp, struct timezone *tzp); } #endif ! #if defined(__NetBSD__) ! #include </usr/include/sys/time.h> ! #endif #endif static long TIME_ZONE; /* seconds west of GMT */ Index: man1_ivtools/comterp.1 diff -c man1_ivtools/comterp.1:1.9 man1_ivtools/comterp.1:1.10 *** man1_ivtools/comterp.1:1.9 Fri Oct 19 09:27:54 2001 --- src/man/man1/comterp.1 Wed Oct 31 16:32:47 2001 *************** *** 86,91 **** --- 86,92 ---- --------- ------------ -------- ----- ---- . dot 130 R-to-L binary ` bquote 125 R-to-L unary-prefix + $ stream 125 R-to-L unary-prefix ! negate 110 R-to-L unary-prefix ~ bit_not 110 R-to-L unary-prefix ++ incr 110 R-to-L unary-prefix *************** *** 195,200 **** --- 196,203 ---- val=next(stream) -- return next value from stream strm=stream(ostrm|list) -- copy stream or convert list + + cnt=each(strm) -- traverse the stream returning its length .SH CONTROL COMMANDS (using post evaluation): *** /dev/null Wed Oct 31 16:32:51 PST 2001 --- patches/ivtools-011031-johnston-080 *************** patches/ivtools-011031-johnston-080 *** 0 **** --- 1 ---- + ivtools-011031-johnston-080 |
From: <ivt...@li...> - 2001-10-19 23:36:27
|
Patch: ivtools-011019-johnston-079 For: ivtools-0.9.7 Author: joh...@us... Subject: streaming fixes Requires: This is an intermediate patch to ivtools-0.9.7. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - streaming fixes, mostly along the lines of working out nil termination in different circumstances. Index: ComTerp/comterp.c diff -c ComTerp/comterp.c:1.14 ComTerp/comterp.c:1.15 *** ComTerp/comterp.c:1.14 Mon Oct 15 13:14:00 2001 --- src/ComTerp/comterp.c Fri Oct 19 16:33:56 2001 *************** *** 724,730 **** else return stacktop; } else ! return ComValue::nullval(); } ComValue& ComTerp::lookup_symval(ComValue& comval) { --- 724,730 ---- else return stacktop; } else ! return ComValue::blankval(); } ComValue& ComTerp::lookup_symval(ComValue& comval) { *************** *** 797,803 **** ComValue& ComTerp::stack_top(int n) { if (_stack_top+n < 0 || _stack_top+n >= _stack_siz) { ! return ComValue::unkval(); } else return _stack[_stack_top+n]; --- 797,803 ---- ComValue& ComTerp::stack_top(int n) { if (_stack_top+n < 0 || _stack_top+n >= _stack_siz) { ! return ComValue::blankval(); } else return _stack[_stack_top+n]; Index: ComTerp/strmfunc.c diff -c ComTerp/strmfunc.c:1.9 ComTerp/strmfunc.c:1.10 *** ComTerp/strmfunc.c:1.9 Fri Oct 19 09:27:26 2001 --- src/ComTerp/strmfunc.c Fri Oct 19 16:33:56 2001 *************** *** 71,77 **** if (operand1.is_array()) { AttributeValueList* avl = new AttributeValueList(operand1.array_val()); ! ComValue stream(this, avl); stream.stream_mode(-1); // for internal use (use by this func) push_stack(stream); } else if (operand1.is_attributelist()) { --- 71,77 ---- if (operand1.is_array()) { AttributeValueList* avl = new AttributeValueList(operand1.array_val()); ! ComValue stream(snfunc, avl); stream.stream_mode(-1); // for internal use (use by this func) push_stack(stream); } else if (operand1.is_attributelist()) { *************** *** 100,106 **** } void StreamNextFunc::execute() { ! ComValue operand1(stack_arg_post_eval(0)); reset_stack(); --- 100,106 ---- } void StreamNextFunc::execute() { ! ComValue operand1(stack_arg(0)); reset_stack(); *************** *** 380,401 **** /* internal use */ comterp->push_stack(*val); ((ComFunc*)val->stream_func())->exec(1,0); ! if (comterp->stack_top().is_null()) { ! ! /* sub-stream return null, zero it, and return null for this one */ ! val->stream_list()->clear(); ! comterp->push_stack(ComValue::nullval()); ! streamv.stream_list()->clear(); ! return; ! } - } else { - /* external use */ ComValue cval(*val); NextFunc::execute_impl(comterp, cval); } narg++; } else { --- 380,402 ---- /* internal use */ comterp->push_stack(*val); ((ComFunc*)val->stream_func())->exec(1,0); ! }else { /* external use */ ComValue cval(*val); NextFunc::execute_impl(comterp, cval); } + + if (comterp->stack_top().is_null()) { + + /* sub-stream return null, zero it, and return null for this one */ + val->stream_list()->clear(); + comterp->push_stack(ComValue::nullval()); + streamv.stream_list()->clear(); + return; + } + narg++; } else { *** /dev/null Fri Oct 19 16:34:10 PDT 2001 --- patches/ivtools-011019-johnston-079 *************** patches/ivtools-011019-johnston-079 *** 0 **** --- 1 ---- + ivtools-011019-johnston-079 |
From: <ivt...@li...> - 2001-10-19 16:37:27
|
Patch: ivtools-011019-johnston-078 For: ivtools-0.9.7 Author: joh...@us... Subject: Requires: This is an intermediate patch to ivtools-0.9.7. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - revise MANIFEST.comterp to reflect current state of comterp. - fix comterp memcpy problem on 64 bit Alpha - fix gcc-3.0.* build without ACE - fix compilation of Time/Time.c on NETBSD. - add :posteval flag to comterp help command in order to see which commands are control constructs (post-evaluated, i.e. there arguments are passed to them in an unevaluated state. The result is: cond,for,help,if,list,next,posteval,postfix,stream,while There are some post-evaluated operators as well. I'll get those next time. - restore symid and symadd to be normal, non post-evaluated commands. Didn't seem to be necessary, and making this change makes them available for streaming. - make confirmbox command return nil if Cancel is pressed. Index: top_ivtools/MANIFEST.comterp diff -c top_ivtools/MANIFEST.comterp:1.4 top_ivtools/MANIFEST.comterp:1.5 *** top_ivtools/MANIFEST.comterp:1.4 Thu Aug 16 13:16:57 2001 --- ./MANIFEST.comterp Fri Oct 19 09:27:22 2001 *************** *** 1,7 **** Imakefile MANIFEST.comterp Makefile - README.comterp config/Imakefile config/InterViews/Imakefile config/InterViews/TIFF.def --- 1,6 ---- *************** *** 16,21 **** --- 15,22 ---- config/InterViews/iv-bsd.cf config/InterViews/iv-convex.cf config/InterViews/iv-cray.cf + config/InterViews/iv-cygwin.cf + config/InterViews/iv-freebsd.cf config/InterViews/iv-generic.cf config/InterViews/iv-hp.cf config/InterViews/iv-ibm.cf *************** *** 42,49 **** --- 43,52 ---- config/alpha4-gcc.mk config/arch.def config/config.defs.in + config/config.mk config/config.null.mk config/default-gcc.mk + config/freebsd-gcc.mk config/freebsd2.1-gcc.mk config/gcc.def config/hpux-gcc.mk *************** *** 60,65 **** --- 63,70 ---- config/rules.def config/sco3.2.4-gcc.mk config/site.def.ALPHA + config/site.def.CYGWIN + config/site.def.FREEBSD config/site.def.HP800 config/site.def.LINUX config/site.def.NETBSD *************** *** 84,89 **** --- 89,95 ---- src/Attribute/attrlist.h src/Attribute/attrvalue.c src/Attribute/attrvalue.h + src/Attribute/classid.h src/Attribute/commodule.c src/Attribute/commodule.h src/Attribute/lexscan.c *************** *** 99,104 **** --- 105,112 ---- src/ComTerp/bitfunc.h src/ComTerp/boolfunc.c src/ComTerp/boolfunc.h + src/ComTerp/bquotefunc.c + src/ComTerp/bquotefunc.h src/ComTerp/comfunc.c src/ComTerp/comfunc.h src/ComTerp/comhandler.c *************** *** 114,119 **** --- 122,131 ---- src/ComTerp/condfunc.h src/ComTerp/ctrlfunc.c src/ComTerp/ctrlfunc.h + src/ComTerp/debugfunc.c + src/ComTerp/debugfunc.h + src/ComTerp/dotfunc.c + src/ComTerp/dotfunc.h src/ComTerp/helpfunc.c src/ComTerp/helpfunc.h src/ComTerp/iofunc.c *************** *** 137,142 **** --- 149,158 ---- src/ComTerp/statfunc.h src/ComTerp/strmfunc.c src/ComTerp/strmfunc.h + src/ComTerp/symbolfunc.c + src/ComTerp/symbolfunc.h + src/ComTerp/typefunc.c + src/ComTerp/typefunc.h src/ComTerp/xformfunc.c src/ComTerp/xformfunc.h src/ComUtil/Imakefile *************** *** 189,197 **** --- 205,218 ---- src/TopoFace/toponode.c src/TopoFace/toponode.h src/Unidraw-common/Imakefile + src/Unidraw-common/component.c + src/Unidraw-common/compview.c src/Unidraw-common/geomobjs.c src/Unidraw-common/iterator.c + src/Unidraw-common/uarray.c + 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 *************** *** 236,252 **** --- 257,284 ---- src/include/OS/string.h src/include/OS/table.h src/include/OS/types.h + src/include/Unidraw/Components/Imakefile + src/include/Unidraw/Components/component.h + src/include/Unidraw/Components/compview.h src/include/Unidraw/Graphic/Imakefile src/include/Unidraw/Graphic/geomobjs.h src/include/Unidraw/Graphic/util.h src/include/Unidraw/Imakefile src/include/Unidraw/_defines.h src/include/Unidraw/_undefs.h + src/include/Unidraw/catalog.h + src/include/Unidraw/classes.h + src/include/Unidraw/creator.h src/include/Unidraw/enter-scope.h src/include/Unidraw/globals.h src/include/Unidraw/iterator.h src/include/Unidraw/leave-scope.h + src/include/Unidraw/uarray.h + src/include/Unidraw/uformat.h + src/include/Unidraw/uhash.h src/include/Unidraw/ulist.h + src/include/Unidraw/umap.h + src/include/Unidraw/unidraw.h src/include/ivstd/Imakefile src/include/ivstd/fstream.h src/include/ivstd/iosfwd *************** *** 257,263 **** src/include/ivstd/string.h src/include/ivstd/version.h src/scripts/Imakefile - src/scripts/anytopnm.sh src/scripts/bsdinst.sh src/scripts/chgsuffix.sh src/scripts/cntsrclines.bash --- 289,294 ---- Index: Attribute/attrvalue.c diff -c Attribute/attrvalue.c:1.9 Attribute/attrvalue.c:1.10 *** Attribute/attrvalue.c:1.9 Tue Oct 16 17:23:45 2001 --- src/Attribute/attrvalue.c Fri Oct 19 09:27:24 2001 *************** *** 172,178 **** AttributeValue& AttributeValue::operator= (const AttributeValue& sv) { void* v1 = &_v; const void* v2 = &sv._v; ! memcpy(v1, v2, sizeof(double)); _type = sv._type; _command_symid = sv._command_symid; #if 0 // disable symbol reference counting --- 172,178 ---- AttributeValue& AttributeValue::operator= (const AttributeValue& sv) { void* v1 = &_v; const void* v2 = &sv._v; ! memcpy(v1, v2, sizeof(_v)); _type = sv._type; _command_symid = sv._command_symid; #if 0 // disable symbol reference counting *************** *** 921,927 **** void AttributeValue::assignval (const AttributeValue& av) { void* v1 = &_v; const void* v2 = &av._v; ! memcpy(v1, v2, sizeof(double)); _type = av._type; _command_symid = av._command_symid; #if 0 // this end of reference counting disabled as well --- 921,927 ---- void AttributeValue::assignval (const AttributeValue& av) { void* v1 = &_v; const void* v2 = &av._v; ! memcpy(v1, v2, sizeof(_v)); _type = av._type; _command_symid = av._command_symid; #if 0 // this end of reference counting disabled as well Index: ComTerp/comhandler.h diff -c ComTerp/comhandler.h:1.5 ComTerp/comhandler.h:1.6 *** ComTerp/comhandler.h:1.5 Tue Jul 3 17:01:13 2001 --- src/ComTerp/comhandler.h Fri Oct 19 09:27:26 2001 *************** *** 148,153 **** --- 148,159 ---- ComterpHandler(int id) { comterp_ = new ComTerpServ(); _handle = id;} int get_handle() { return _handle;} + FILE* wrfptr() { return nil; } + // file pointer for writing to handle + + FILE* rdfptr() { return nil; } + // file pointer for reading from handle + protected: int _handle; ComTerpServ* comterp_; Index: ComTerp/comvalue.c diff -c ComTerp/comvalue.c:1.7 ComTerp/comvalue.c:1.8 *** ComTerp/comvalue.c:1.7 Mon Oct 15 13:14:00 2001 --- src/ComTerp/comvalue.c Fri Oct 19 09:27:26 2001 *************** *** 96,102 **** clear(); void* v1 = &_v; void* v2 = &token->v; ! memcpy(v1, v2, sizeof(double)); switch (token->type) { case TOK_STRING: type(StringType); break; case TOK_CHAR: type(CharType); break; --- 96,102 ---- clear(); void* v1 = &_v; void* v2 = &token->v; ! memcpy(v1, v2, sizeof(_v)); switch (token->type) { case TOK_STRING: type(StringType); break; case TOK_CHAR: type(CharType); break; Index: ComTerp/helpfunc.c diff -c ComTerp/helpfunc.c:1.7 ComTerp/helpfunc.c:1.8 *** ComTerp/helpfunc.c:1.7 Thu Jul 5 12:31:09 2001 --- src/ComTerp/helpfunc.c Fri Oct 19 09:27:26 2001 *************** *** 1,4 **** --- 1,5 ---- /* + * Copyright (c) 2001 Scott E. Johnston * Copyright (c) 1998 Vectaport Inc. * * Permission to use, copy, modify, distribute, and sell this software and *************** *** 15,21 **** * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. * IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING ! * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * --- 16,22 ---- * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. * IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING ! vv * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * *************** *** 53,58 **** --- 54,62 ---- static int all_symid = symbol_add("all"); ComValue allflag(stack_key(all_symid)); + static int posteval_symid = symbol_add("posteval"); + ComValue postevalflag(stack_key(posteval_symid)); + static int aliases_symid = symbol_add("aliases"); ComValue aliasesflag(stack_key(aliases_symid)); *************** *** 63,69 **** int nfuncs = 0; /* build up table of command ids and flags to indicate if its an operator encased in quotes */ ! if (allflag.is_false()) { nfuncs = nargs(); comfuncs = new ComFunc*[nfuncs]; --- 67,73 ---- int nfuncs = 0; /* build up table of command ids and flags to indicate if its an operator encased in quotes */ ! if (allflag.is_false() && postevalflag.is_false()) { nfuncs = nargs(); comfuncs = new ComFunc*[nfuncs]; *************** *** 112,117 **** --- 116,123 ---- comterp()->localtable()->find(vptr, command_id); if (vptr && ((ComValue*)vptr)->is_command()) { comfuncs[j] = (ComFunc*)((ComValue*)vptr)->obj_val(); + if (postevalflag.is_true() && !comfuncs[j]->post_eval()) + comfuncs[j] = nil; } else comfuncs[j] = nil; str_flags[j] = false; *************** *** 132,138 **** --- 138,148 ---- #else filebuf fbuf(comterp()->handler() && comterp()->handler()->wrfptr() ? comterp()->handler()->wrfptr() : stdout, ios_base::out); + #if 1 ostream outs(comterp()->handler() ? (streambuf*)&fbuf : (streambuf*)&sbuf); + #else + ostream outs((streambuf*)&fbuf); + #endif ostream *out = &outs; #endif *************** *** 171,177 **** printed = true; } } ! if (!printed && command_ids[i]>=0) { /* if symid is smaller than the highest operator it must be one */ if (command_ids[i]>=0 && command_ids[i]<=opr_tbl_topstr()) { int op_ids[OPTYPE_NUM]; --- 181,187 ---- printed = true; } } ! if (!printed && command_ids[i]>=0 && comfuncs[i]) { /* if symid is smaller than the highest operator it must be one */ if (command_ids[i]>=0 && command_ids[i]<=opr_tbl_topstr()) { int op_ids[OPTYPE_NUM]; *************** *** 202,208 **** } } ! } else { if (first) first = false; else --- 212,218 ---- } } ! } else if (comfuncs[i]) { if (first) first = false; else Index: ComTerp/helpfunc.h diff -c ComTerp/helpfunc.h:1.1 ComTerp/helpfunc.h:1.2 *** ComTerp/helpfunc.h:1.1 Thu Jan 4 15:31:42 2001 --- src/ComTerp/helpfunc.h Fri Oct 19 09:27:26 2001 *************** *** 33,39 **** class ComTerp; //: help command for ComTerp. ! // help([command] [command...] :all) -- help for commands. class HelpFunc : public ComFunc { public: HelpFunc(ComTerp*); --- 33,39 ---- class ComTerp; //: help command for ComTerp. ! // help([command] [command...] :all :posteval) -- help for commands. class HelpFunc : public ComFunc { public: HelpFunc(ComTerp*); *************** *** 41,47 **** virtual boolean post_eval() { return true; } virtual const char* docstring() { ! return "%s([command] [command...] :all) -- help for commands"; } }; #endif /* !defined(_helpfunc_h) */ --- 41,49 ---- virtual boolean post_eval() { return true; } virtual const char* docstring() { ! return "%s([command] [command...] :all :posteval) -- help for commands"; } }; #endif /* !defined(_helpfunc_h) */ + + Index: ComTerp/listfunc.h diff -c ComTerp/listfunc.h:1.4 ComTerp/listfunc.h:1.5 *** ComTerp/listfunc.h:1.4 Tue Oct 16 17:23:47 2001 --- src/ComTerp/listfunc.h Fri Oct 19 09:27:26 2001 *************** *** 44,50 **** virtual void execute(); virtual boolean post_eval() { return true; } virtual const char* docstring() { ! return "lst=%s([olst|strm]) -- create an empty list or copy existing one"; } }; //: list member command for ComTerp. --- 44,50 ---- virtual void execute(); virtual boolean post_eval() { return true; } virtual const char* docstring() { ! return "lst=%s([olst|strm]) -- create list, copy list, or convert stream"; } }; //: list member command for ComTerp. Index: ComTerp/strmfunc.c diff -c ComTerp/strmfunc.c:1.8 ComTerp/strmfunc.c:1.9 *** ComTerp/strmfunc.c:1.8 Fri Oct 12 14:56:21 2001 --- src/ComTerp/strmfunc.c Fri Oct 19 09:27:26 2001 *************** *** 46,77 **** } void StreamFunc::execute() { ! ComValue operand1(stack_arg(0)); reset_stack(); if (operand1.is_stream()) { ! /* invoked by the next command */ ! AttributeValueList* avl = operand1.stream_list(); ! if (avl) { ! Iterator i; ! avl->First(i); ! AttributeValue* retval = avl->Done(i) ? nil : avl->GetAttrVal(i); ! if (retval) { ! push_stack(*retval); ! avl->Remove(retval); ! delete retval; ! } else { ! operand1.stream_list(nil); ! push_stack(ComValue::nullval()); ! } ! } else ! push_stack(ComValue::nullval()); } else { /* conversion operator */ if (operand1.is_array()) { AttributeValueList* avl = new AttributeValueList(operand1.array_val()); ComValue stream(this, avl); --- 46,74 ---- } void StreamFunc::execute() { ! ComValue operand1(stack_arg_post_eval(0)); reset_stack(); if (operand1.is_stream()) { ! /* stream copy */ ! AttributeValueList* old_avl = operand1.stream_list(); ! AttributeValueList* new_avl = new AttributeValueList(old_avl); ! ComValue retval(operand1.stream_func(), new_avl); ! retval.stream_mode(operand1.stream_mode()); ! push_stack(retval); } else { /* conversion operator */ + + static StreamNextFunc* snfunc = nil; + if (!snfunc) { + snfunc = new StreamNextFunc(comterp()); + snfunc->funcid(symbol_add("stream")); + } + if (operand1.is_array()) { AttributeValueList* avl = new AttributeValueList(operand1.array_val()); ComValue stream(this, avl); *************** *** 87,93 **** new AttributeValue(Attribute::class_symid(), (void*)attr); avl->Append(av); } ! ComValue stream(this, avl); stream.stream_mode(-1); // for internal use (use by this func) push_stack(stream); } --- 84,90 ---- new AttributeValue(Attribute::class_symid(), (void*)attr); avl->Append(av); } ! ComValue stream(snfunc, avl); stream.stream_mode(-1); // for internal use (use by this func) push_stack(stream); } *************** *** 97,102 **** --- 94,130 ---- /*****************************************************************************/ + int StreamNextFunc::_symid; + + StreamNextFunc::StreamNextFunc(ComTerp* comterp) : StrmFunc(comterp) { + } + + void StreamNextFunc::execute() { + ComValue operand1(stack_arg_post_eval(0)); + + reset_stack(); + + /* invoked by the next command */ + AttributeValueList* avl = operand1.stream_list(); + if (avl) { + Iterator i; + avl->First(i); + AttributeValue* retval = avl->Done(i) ? nil : avl->GetAttrVal(i); + if (retval) { + push_stack(*retval); + avl->Remove(retval); + delete retval; + } else { + operand1.stream_list(nil); + push_stack(ComValue::nullval()); + } + } else + push_stack(ComValue::nullval()); + + } + + /*****************************************************************************/ + int ConcatFunc::_symid; ConcatFunc::ConcatFunc(ComTerp* comterp) : StrmFunc(comterp) { *************** *** 352,359 **** /* internal use */ comterp->push_stack(*val); ((ComFunc*)val->stream_func())->exec(1,0); ! if (comterp->stack_top().is_null()) val->stream_list()->clear(); } else { --- 380,393 ---- /* internal use */ comterp->push_stack(*val); ((ComFunc*)val->stream_func())->exec(1,0); ! if (comterp->stack_top().is_null()) { ! ! /* sub-stream return null, zero it, and return null for this one */ val->stream_list()->clear(); + comterp->push_stack(ComValue::nullval()); + streamv.stream_list()->clear(); + return; + } } else { Index: ComTerp/strmfunc.h diff -c ComTerp/strmfunc.h:1.6 ComTerp/strmfunc.h:1.7 *** ComTerp/strmfunc.h:1.6 Fri Oct 12 14:56:21 2001 --- src/ComTerp/strmfunc.h Fri Oct 19 09:27:26 2001 *************** *** 47,56 **** StreamFunc(ComTerp*); virtual void execute(); virtual const char* docstring() { ! return "strm=%s(list) -- convert list to stream"; } CLASS_SYMID("StreamFunc"); }; --- 47,70 ---- StreamFunc(ComTerp*); virtual void execute(); + virtual boolean post_eval() { return true; } virtual const char* docstring() { ! return "strm=%s(ostrm|list) -- copy stream or convert list"; } CLASS_SYMID("StreamFunc"); + + }; + + //: hidden func used by next command for stream command + class StreamNextFunc : public StrmFunc { + public: + StreamNextFunc(ComTerp*); + + virtual void execute(); + virtual const char* docstring() { + return "hidden func used by next command for stream command."; } + + CLASS_SYMID("StreamNextFunc"); }; Index: ComTerp/symbolfunc.c diff -c ComTerp/symbolfunc.c:1.1 ComTerp/symbolfunc.c:1.2 *** ComTerp/symbolfunc.c:1.1 Thu Jan 4 15:31:42 2001 --- src/ComTerp/symbolfunc.c Fri Oct 19 09:27:26 2001 *************** *** 100,110 **** if (numargs>1) { AttributeValueList* avl = new AttributeValueList(); ComValue retval(avl); ! for (int i=0; i<numargs; i++) ! avl->Append(new AttributeValue(symbol_ids[i], AttributeValue::SymbolType)); push_stack(retval); } else { ComValue retval (symbol_ids[0], AttributeValue::SymbolType); push_stack(retval); } --- 100,114 ---- if (numargs>1) { AttributeValueList* avl = new AttributeValueList(); ComValue retval(avl); ! for (int i=0; i<numargs; i++) { ! AttributeValue* av = new AttributeValue(symbol_ids[i], AttributeValue::SymbolType); ! if (symbol_ids[i]<0) av->type(ComValue::UnknownType); ! avl->Append(av); ! } push_stack(retval); } else { ComValue retval (symbol_ids[0], AttributeValue::SymbolType); + if (symbol_ids[0]<0) retval.type(ComValue::UnknownType); push_stack(retval); } Index: ComTerp/symbolfunc.h diff -c ComTerp/symbolfunc.h:1.1 ComTerp/symbolfunc.h:1.2 *** ComTerp/symbolfunc.h:1.1 Thu Jan 4 15:31:42 2001 --- src/ComTerp/symbolfunc.h Fri Oct 19 09:27:26 2001 *************** *** 40,46 **** SymIdFunc(ComTerp*); virtual void execute(); ! virtual boolean post_eval() { return true; } virtual const char* docstring() { return "int|lst=%s(symbol [symbol ...]) -- return id(s) associated with symbol(s)"; } }; --- 40,46 ---- SymIdFunc(ComTerp*); virtual void execute(); ! // virtual boolean post_eval() { return true; } virtual const char* docstring() { return "int|lst=%s(symbol [symbol ...]) -- return id(s) associated with symbol(s)"; } }; *************** *** 75,81 **** SymAddFunc(ComTerp*); virtual void execute(); ! virtual boolean post_eval() { return true; } virtual const char* docstring() { return "sym|lst=%s(symbol [symbol ...]) -- create symbol(s) and return without lookup"; } }; --- 75,81 ---- SymAddFunc(ComTerp*); virtual void execute(); ! // virtual boolean post_eval() { return true; } virtual const char* docstring() { return "sym|lst=%s(symbol [symbol ...]) -- create symbol(s) and return without lookup"; } }; Index: comterp/README diff -c comterp/README:1.8 comterp/README:1.9 *** comterp/README:1.8 Tue Oct 16 17:23:49 2001 --- src/comterp_/README Fri Oct 19 09:27:28 2001 *************** *** 184,190 **** val=next(strm) -- return next value from stream ! strm=stream(list) -- convert list to stream CONTROL COMMANDS (using post evaluation): --- 184,190 ---- val=next(strm) -- return next value from stream ! strm=stream(ostrm|list) -- copy stream or convert list CONTROL COMMANDS (using post evaluation): *************** *** 200,206 **** OTHER COMMANDS ! help(cmdname [cmdname ...]) -- help for commands val=trace([flag] :get) -- toggle or set trace mode --- 200,206 ---- OTHER COMMANDS ! help(cmdname [cmdname ...] :all :posteval) -- help for commands val=trace([flag] :get) -- toggle or set trace mode Index: Time/Time.c diff -c Time/Time.c:1.1 Time/Time.c:1.2 *** Time/Time.c:1.1 Thu Jan 4 15:32:05 2001 --- src/Time/Time.c Fri Oct 19 09:27:33 2001 *************** *** 51,57 **** #endif ! #if defined(BSD) || defined(hpux) || defined(linux) || defined(__sun) || defined(__alpha) || defined(__CYGWIN__) || defined(__FreeBSD__) #ifdef hpux #include <time.h> --- 51,57 ---- #endif ! #if defined(BSD) || defined(hpux) || defined(linux) || defined(__sun) || defined(__alpha) || defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__NetBSD__) #ifdef hpux #include <time.h> Index: ComUnidraw/dialogfunc.c diff -c ComUnidraw/dialogfunc.c:1.1 ComUnidraw/dialogfunc.c:1.2 *** ComUnidraw/dialogfunc.c:1.1 Thu Jan 4 15:33:09 2001 --- src/ComUnidraw/dialogfunc.c Fri Oct 19 09:27:46 2001 *************** *** 48,53 **** --- 48,54 ---- reset_stack(); int status = GConfirmDialog::post(GetEditor()->GetWindow(), msgstrv.symbol_ptr()); ComValue retval(status); + if (status==-1) retval.type(ComValue::UnknownType); push_stack(retval); } Index: man1_ivtools/comterp.1 diff -c man1_ivtools/comterp.1:1.8 man1_ivtools/comterp.1:1.9 *** man1_ivtools/comterp.1:1.8 Tue Oct 16 17:24:10 2001 --- src/man/man1/comterp.1 Fri Oct 19 09:27:54 2001 *************** *** 194,200 **** val=next(stream) -- return next value from stream ! strm=stream(list) -- convert list to stream .SH CONTROL COMMANDS (using post evaluation): --- 194,200 ---- val=next(stream) -- return next value from stream ! strm=stream(ostrm|list) -- copy stream or convert list .SH CONTROL COMMANDS (using post evaluation): *************** *** 208,214 **** .SH OTHER COMMANDS ! help(cmdname [cmdname ...]) -- help for commands val=trace([flag] :get) -- toggle or set trace mode --- 208,214 ---- .SH OTHER COMMANDS ! help(cmdname [cmdname ...] :all :posteval) -- help for commands val=trace([flag] :get) -- toggle or set trace mode *** /dev/null Fri Oct 19 09:27:58 PDT 2001 --- patches/ivtools-011019-johnston-078 *************** patches/ivtools-011019-johnston-078 *** 0 **** --- 1 ---- + ivtools-011019-johnston-078 |
From: <ivt...@li...> - 2001-10-17 00:26:45
|
Patch: ivtools-011016-johnston-077 For: ivtools-0.9.6 Author: joh...@us... Subject: probably the last patch leading to 0.9.7 Requires: This is an intermediate patch to ivtools-0.9.6. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - probably the last patch leading to 0.9.7 - set "." dot operator to 1) create AttributeList's as needed on the fly, and 2) create an emtpy AttributeList when a second argument is not given. For example: a.b.c.d.e.f=100 # this now works, without having to create # all the intermediate AttributeList's x=dot(z) # creates an empty AttributeList z which is # can be accessed through the variable x as well. - go through all the math commands to ensure they return nil given any nil argument. - add a :set argument to the list at() command. Index: top_ivtools/CHANGES diff -c top_ivtools/CHANGES:1.7 top_ivtools/CHANGES:1.8 *** top_ivtools/CHANGES:1.7 Mon Aug 20 12:51:18 2001 --- ./CHANGES Tue Oct 16 17:23:43 2001 *************** *** 1,3 **** --- 1,177 ---- + Oct 16th 2001 ivtools-0.9.7 + + ** last release before 1.0 -- if things are ok with this distribution + I will simply roll over the version number ** + + - fix the pnmtopgm script to do the right thing for PBM files. + + - better error messages when someone tries to open an idraw format + PostScript file that has ColorRast objects in it. These are rasters + that are color-printer ready, and do not conform the idraw format. A + future version upgrade of this format will include support for these. + + As an aside, these ColorRast objects cannot be filtered through + pstoedit either (pstoedit -f idraw), because they have separate + sources for R, G, and B. A future pstoedit back-end for the ivtools + drawtool format would be needed to make this work instead, one that + relied on the ghostscript mechanism for dumping out rasters to PNG + files. + + - modifies the pstoedit import command lines to always use a temporary + file for output with a %d indicator to support multi-page files. + + - add a StreamObject to AttributeValue/ComValue. This consists of a + pointer to a ComFunc to use in getting the next value out of a stream, + and local data storage to indicate current position. Sort of a + procedural iterator. + + - add streaming mechanism to comterp, that leverages the ".." iterate + and "**" repeat operators. Now arbitrary expressions can be composed + where each operator is overdriven (repeatedly executed) by one or more + of its arguments. Some examples: + + s1=0..10 # stream that iterates from 0 to 10 + + s2=0..10*3 # stream that iterates from 0 to 30 in steps of 3 + + next(s1) # returns 0 on first call, incremented by 1 each call after + + next(s2) # returns 0 on first call, incremented by 3 each call after + + A more complicated example counts to 4 Meg without using megs of memory: + + s=1..pow(2 22) + x=0 + while(next(s) x++) + + An example for computing a ramp step-function for a look-up-table: + + 0..255-0..255%10 + + Overdriven streaming operators were first presented here: + + "Command Language for Developing Real-Time Signal and Image Processing + Applications", S. Johnston, R.C. Fitch, SPIE Proceedings on Automated + Inspection and High Speed Vision Architectures II, vol. 1004, + Nov. 1988. + + - fix != comparison of symbols. Found this problem when experimenting + with the new stream objects. A while loop terminates on either 0 or + nil, but a stream terminates with only nil. To differentiate nil from + 0 I looked at the return type: + + s=0..255 + while(`type(v=next(s))!=`type(nil) print("%d\n" v)) + + This didn't work without this change. + + - adds partial-string (:n) and symbol (:sym) comparison to the rest of + the equality operators (!=, >, <, >=, <=). + + - add :nilchk option to terminate the while loop upon nil (instead of + nil and zero). + + - make the seq operator (;) post-evaluated so that this works: + + s=0..100;while(v=next(s) print("%d " v) :nilchk) + + Without post-eval the stream on the left would overdrive the ";", + which just didn't work. + + - more work on new stream and list concepts in comterp. Now ",," is + the stream concatenator, and "," remains the list concatenator. + stream(lst) converts a list to a stream, and list(strm) will converts + a stream to a list (as soon as I debug it). + + - makes list(strm) work. Now you can convert streams to lists and + lists to streams (with stream(lst)). + + - equate lists to arrays in all the API of ComValue, and make + type(strm) return ListType instead of ArrayType. + + - fix problem with interacting with the KDE X server. Seems all other + X servers allow a negative "length" argument, which causes the server + to index backwards from a data pointer. This was not documented in + the man pages, so the KDE folks "fixed" the problem by changing the + code instead of the man page. So I have to fix the code as well. + + - Now the streams are really flowing. The ",," concatenation operator + works for the most part, allowing for the composition of complex + streams like this: + + s=0,,1,,2,,3**3,,4+100 + + which generates the sequence: + + 100 101 102 103 103 103 104 nil + + Probably a few minor issues left to clean up. So far I've discovered: + + 0,1**2 + + works partially as expected, generating a {0,1} followed by a {0,1}. + But then it generates a {0,nil} repeatedly, never terminating. Hmmmm. + + - make ",," concat operator lower priority than the "," tuple + operator. This means these two examples behave in a similar fashion: + + s=1,2,,3 # yields {1,2} followed by a 3 + + s=1,2,3,,4 # yields {1,2,3} followed by a 4 + + and you can construct 2-d structures in a pleasing way: + + s=1,2,3,,4,5,6,,7,8,9 # 3x3 grid + + - ensure streaming doesn't happen on post-evaluated commands. + + - create a hidden :strmlst argument to the list command, to have a way + at looking at the AttributeValueList associated with a stream object. + + - NetBSD compile fix + + - fix the AttributeValueList constructor so it does a list copy as it + advertises. + + - evaluate symbols when popping them off the stack to build a stream + object. This may not be desirable in the long run, and it really + wasn't causing any problem to delay this that I know of. Hmmm... + + - make the default value of the second "at" argument zero instead of + nil, so that if nil is supplied it can be used to return nil (to + terminate stream handling). + + - set up to "stream" over an AttributeList. + + - ensure ComValue::is_true() returns true for StreamType that exists. + + - touchups to glyph-based graphics (Graphic31). There were + difficult-to-decipher problems in allocate/requisition which clipped + graphics by one row or one column. So I just padded things a bit. + This is only used in the addtool (custom toolbutton) mechanism of + comdraw. + + - revert to using "r" instead of "r+" in fopen calls for graphics + files to be read in. I had added "r+" when gcc-3.0 needed it to allow + rewinding. Now gcc-3.0.1 has that fixed, and "r+" got in the way of + read-only access (CD-ROMS). + + - set "." dot operator to 1) create AttributeList's as needed on the + fly, and 2) create an emtpy AttributeList when a second argument is + not given. For example: + + a.b.c.d.e.f=100 # this now works, without having to create + # all the intermediate AttributeList's + + x=dot(z) # creates an empty AttributeList z which is + # can be accessed through the variable x as well. + + - go through all the math commands to ensure they return nil given any + nil argument. + + - add a :set argument to the list at() command. + + Aug 20th 2001 ivtools-0.9.6 - minor adjustments to adapt to gcc-3.0.1. One advantage of upgrading Index: top_ivtools/COPYING diff -c top_ivtools/COPYING:1.2 top_ivtools/COPYING:1.3 *** top_ivtools/COPYING:1.2 Wed Jul 25 17:43:07 2001 --- ./COPYING Tue Oct 16 17:23:43 2001 *************** *** 8,13 **** provisions for possible GPL-only enhancements) if requested by other collaborators. - Scott Johnston --- 8,13 ---- provisions for possible GPL-only enhancements) if requested by other collaborators. Scott Johnston + http://www.ivtools.org Index: top_ivtools/INSTALL diff -c top_ivtools/INSTALL:1.10 top_ivtools/INSTALL:1.11 *** top_ivtools/INSTALL:1.10 Mon Aug 20 12:51:18 2001 --- ./INSTALL Tue Oct 16 17:23:43 2001 *************** *** 1,23 **** INSTALL for ivtools-0.9 ! Instructions for building ivtools-0.9.6 from source: 0. Compilation Environment Things you will need (or might want) before building ivtools: ! 0.a. a Unix machine. We know it has been built on Linux, NetBSD, ! FreeBSD, Solaris, Irix, Dec Alpha, HPUX, and SunOS. Alternately it ! can be built on Windows NT with the Cygwin utilities from RedHat. See ! README.cygwin for details. 0.b. The gcc compiler. Recently we've been building and testing with ! egcs-1.0.3, gcc-2.95.*, and gcc-3.0. gcc-2.8.1 would still work, as probably would gcc-2.7.2. You will also need an equivalent copy of ! libstdc++. The libstdc++ version numbers stay roughly in synch with ! the gcc version numbers. If you have gcc-2.8.1 you'd want ! libstdc++-2.8.1, etc.. libstdc++ comes bundled with gcc-3.0. Be aware that sometimes the include files for libstdc++ are in /usr/local/include/g++-2, a place that cannot be auto-determined by --- 1,31 ---- INSTALL for ivtools-0.9 ! Instructions for building ivtools-0.9.7 from source, the short version: + ./configure + make + su -c "make install" + + + And if that doesn't work... + + Instructions for building ivtools-0.9.7 from source, the long version: + 0. Compilation Environment Things you will need (or might want) before building ivtools: ! 0.a. a Unix machine (for Windows see README.cygwin). We know it has ! been built on Linux, NetBSD, FreeBSD, Solaris, Irix, Dec Alpha, HPUX, ! and SunOS. 0.b. The gcc compiler. Recently we've been building and testing with ! egcs-1.0.3, gcc-2.95.*, and gcc-3.0.1. gcc-2.8.1 would still work, as probably would gcc-2.7.2. You will also need an equivalent copy of ! libstdc++. libstdc++ comes bundled with gcc-3.0. Before that the ! libstdc++ version numbers stay roughly in synch with the gcc version ! numbers. If you have gcc-2.8.1 you'd want libstdc++-2.8.1, etc.. Be aware that sometimes the include files for libstdc++ are in /usr/local/include/g++-2, a place that cannot be auto-determined by *************** *** 92,99 **** 1.a. You no longer need to set your CPU environment variable to build ivtools, but you still need a CPU specific configuration file. Ready-made configurations that have been known to work exist for ! LINUX, SUN4 (and Solaris), SGI, HP800 (HPUX), ALPHA, NETSBD, and now ! CYGWIN (for Windows NT). Use "make CPU" from the top directory to see the symbol ivtools will use for your OS (grep config/arch.def for ArchitectureName to get a --- 100,109 ---- 1.a. You no longer need to set your CPU environment variable to build ivtools, but you still need a CPU specific configuration file. Ready-made configurations that have been known to work exist for ! LINUX, SUN4 (and Solaris), SGI, HP800 (HPUX), ALPHA, NETSBD, FREEBSD, ! and CYGWIN (for Windows NT). HPUX config file is known to be out of ! quite out of date, the others will probably work with little or no ! tweaks. Use "make CPU" from the top directory to see the symbol ivtools will use for your OS (grep config/arch.def for ArchitectureName to get a Index: top_ivtools/README diff -c top_ivtools/README:1.7 top_ivtools/README:1.8 *** top_ivtools/README:1.7 Mon Aug 20 12:51:18 2001 --- ./README Tue Oct 16 17:23:43 2001 *************** *** 2,8 **** README for ivtools 0.9 ! This directory contains a release of ivtools 0.9.6. You should read the rest of this file for information on what ivtools is and the INSTALL file for instructions on how to build it. --- 2,8 ---- README for ivtools 0.9 ! This directory contains a release of ivtools 0.9.7. You should read the rest of this file for information on what ivtools is and the INSTALL file for instructions on how to build it. *************** *** 12,17 **** --- 12,21 ---- * What is ivtools?: + Online documentation (including an FAQ) is available for ivtools at: + + http://www.ivtools.org/ivtools/doc/ + ivtools is a layered collection of application frameworks for building custom drawing editors and spatial data servers. It incorporates a backward compatible copy of the original InterViews and Unidraw class *************** *** 115,144 **** * More ivtools details ivtools is known to build with many versions of gcc (<= gcc-2.7.2, >= ! gcc-2.8.1, >= egcs-1.0.1, even gcc-3.0) and on a variety of Unix'es: SunOS 4.1 (MIT's X11R5), Solaris 2.6 (X11R6), Irix 5.2 (SGI's X11R5), Linux 1.2 (Slackware 3.0, XFree86 3.1), Linux 2.* (RedHat 4.0 thru ! 6.0, Debian 2.*), NetBSD, and perhaps now FreeBSD. There are ! contributed configs that are out of date for HPUX and Dec ! Alpha. Recently it has been built on Windows NT 4.0 using Cygwin from ! Cygnus Solutions (see README.cygwin). You can pick up Linux-ELF ! binaries from the ivtools web page (http://www.ivtools.org). If you have a question about this software, desire to add code, found a bug, want to request a feature, or wonder how to get further assistance, please send e-mail to the general purpose ivtools mailing ! list, ivt...@li..., or this e-mail address: ivt...@ve.... To subcribe to the mailing list, visit ! http://lists.sourceforge.net/mailman/listinfo/ivtools-discuss or send an informal request to ivt...@ve.... Other ivtools related mailing lists can be found at: http://www.ivtools.org/ivtools/mailinglists.html - Online documentation (including an FAQ) is available for ivtools at: - - http://www.ivtools.org/ivtools/doc/ - Read about finding and generating all this from inline documentation below. A copy of the ivtools html documentation will be available for download as well: --- 119,145 ---- * More ivtools details ivtools is known to build with many versions of gcc (<= gcc-2.7.2, >= ! gcc-2.8.1, >= egcs-1.0.1, gcc-3.0.1) and on a variety of Unix'es: SunOS 4.1 (MIT's X11R5), Solaris 2.6 (X11R6), Irix 5.2 (SGI's X11R5), Linux 1.2 (Slackware 3.0, XFree86 3.1), Linux 2.* (RedHat 4.0 thru ! 6.0, Debian 2.*), NetBSD, and FreeBSD. There are contributed configs ! that are out of date for HPUX and Dec Alpha. It has been built on ! Windows NT 4.0 using Cygwin from Cygnus Solutions (see README.cygwin). ! You can find links to available binaries on the ivtools web page ! (http://www.ivtools.org) and ivtools download page ! (http://www.ivtools.org/ivtools/download.html) If you have a question about this software, desire to add code, found a bug, want to request a feature, or wonder how to get further assistance, please send e-mail to the general purpose ivtools mailing ! list, ivt...@li..., or this e-mail address: ivt...@ve.... To subcribe to the mailing list, visit ! http://lists.sourceforge.net/mailman/listinfo/ivtools-user or send an informal request to ivt...@ve.... Other ivtools related mailing lists can be found at: http://www.ivtools.org/ivtools/mailinglists.html Read about finding and generating all this from inline documentation below. A copy of the ivtools html documentation will be available for download as well: *************** *** 157,164 **** Extensive documentation is embedded within the ivtools source tree, including most all of the documentation originally available for ! InterViews 3.1 and Unidraw. Here is a list: - README/man pages for executable programs Within most directories that contain an executable program --- 158,170 ---- Extensive documentation is embedded within the ivtools source tree, including most all of the documentation originally available for ! InterViews 3.1 and Unidraw. You can find all of it pre-extracted ! here: ! ! http://www.ivtools.org/ivtools/doc/ + Here is a list of documentation: + - README/man pages for executable programs Within most directories that contain an executable program *************** *** 229,241 **** * Acknowledgements: ! ivtools programmers at Vectaport (http://www.vectaport.com): Scott Johnston Jorge Gautier - - ivtools programmers at large: - Brian Hogencamp Rick Kissh Eric Kahler --- 235,244 ---- * Acknowledgements: ! Roster of ivtools programmers: Scott Johnston Jorge Gautier Brian Hogencamp Rick Kissh Eric Kahler Index: top_ivtools/VERSION diff -c top_ivtools/VERSION:1.7 top_ivtools/VERSION:1.8 *** top_ivtools/VERSION:1.7 Mon Aug 20 12:51:18 2001 --- ./VERSION Tue Oct 16 17:23:43 2001 *************** *** 1 **** ! Release 0.9.6 --- 1 ---- ! Release 0.9.7 Index: Attribute/attrvalue.c diff -c Attribute/attrvalue.c:1.8 Attribute/attrvalue.c:1.9 *** Attribute/attrvalue.c:1.8 Thu Oct 11 15:20:27 2001 --- src/Attribute/attrvalue.c Tue Oct 16 17:23:45 2001 *************** *** 836,841 **** --- 836,845 ---- out << "<" << symbol_pntr(svp->class_symid()) << ">"; break; + case AttributeValue::StreamType: + out << "<stream:" << svp->stream_mode() << ">"; + break; + default: out << "nil"; break; Index: ComTerp/assignfunc.c diff -c ComTerp/assignfunc.c:1.2 ComTerp/assignfunc.c:1.3 *** ComTerp/assignfunc.c:1.2 Fri Oct 12 14:56:20 2001 --- src/ComTerp/assignfunc.c Tue Oct 16 17:23:47 2001 *************** *** 63,70 **** Attribute* attr = (Attribute*)operand1.obj_val(); attr->Value(operand2); } else { ! cerr << "assignment to something other than a symbol ignored\n"; ! // should say something about assignment from something other than a symbol as well. delete operand2; } push_stack(*operand2); --- 63,69 ---- Attribute* attr = (Attribute*)operand1.obj_val(); attr->Value(operand2); } else { ! cerr << "assignment to something other than a symbol or attribute ignored\n"; delete operand2; } push_stack(*operand2); Index: ComTerp/comfunc.c diff -c ComTerp/comfunc.c:1.1 ComTerp/comfunc.c:1.2 *** ComTerp/comfunc.c:1.1 Thu Jan 4 15:31:42 2001 --- src/ComTerp/comfunc.c Tue Oct 16 17:23:47 2001 *************** *** 61,73 **** for (int i=0; i<count; i++) { ComValue& argref = _comterp->stack_top(i-count+1); if( argref.type() == ComValue::KeywordType) ! return ComValue::nullval(); if (i == n) { if (i+1 < count) { ComValue& keyref = _comterp->stack_top(i-count+2); if (keyref.is_type(ComValue::KeywordType) && keyref.keynarg_val()) ! return ComValue::nullval(); } if (!symbol) argref = _comterp->lookup_symval(argref); --- 61,73 ---- for (int i=0; i<count; i++) { ComValue& argref = _comterp->stack_top(i-count+1); if( argref.type() == ComValue::KeywordType) ! return dflt; if (i == n) { if (i+1 < count) { ComValue& keyref = _comterp->stack_top(i-count+2); if (keyref.is_type(ComValue::KeywordType) && keyref.keynarg_val()) ! return dflt; } if (!symbol) argref = _comterp->lookup_symval(argref); Index: ComTerp/dotfunc.c diff -c ComTerp/dotfunc.c:1.1 ComTerp/dotfunc.c:1.2 *** ComTerp/dotfunc.c:1.1 Thu Jan 4 15:31:42 2001 --- src/ComTerp/dotfunc.c Tue Oct 16 17:23:47 2001 *************** *** 1,4 **** --- 1,5 ---- /* + * Copyright (c) 2001 Scott E. Johnston * Copyright (c) 2000 IET Inc. * * Permission to use, copy, modify, distribute, and sell this software and *************** *** 40,53 **** ComValue before_part(stack_arg(0, true)); ComValue after_part(stack_arg(1, true)); reset_stack(); if (!before_part.is_symbol() && !(before_part.is_attribute() && ! ((Attribute*)before_part.obj_val())->Value()->is_attributelist()) && !before_part.is_attributelist()) { cerr << "expression before \".\" needs to evaluate to a symbol or <AttributeList>\n"; return; } ! if (!after_part.is_symbol()) { cerr << "expression after \".\" needs to be a symbol or evaluate to a symbol\n"; return; } --- 41,56 ---- ComValue before_part(stack_arg(0, true)); ComValue after_part(stack_arg(1, true)); reset_stack(); + if (!before_part.is_symbol() && !(before_part.is_attribute() && ! (((Attribute*)before_part.obj_val())->Value()->is_unknown() || ! ((Attribute*)before_part.obj_val())->Value()->is_attributelist())) && !before_part.is_attributelist()) { cerr << "expression before \".\" needs to evaluate to a symbol or <AttributeList>\n"; return; } ! if (nargs()>1 && !after_part.is_symbol()) { cerr << "expression after \".\" needs to be a symbol or evaluate to a symbol\n"; return; } *************** *** 74,93 **** comterp()->localtable()->insert(before_symid, comval); else comterp()->globaltable()->insert(before_symid, comval); } ! } else if (!before_part.is_attributelist()) ! al = (AttributeList*) ((Attribute*) before_part.obj_val())->Value()->obj_val(); ! else al = (AttributeList*) before_part.obj_val(); ! int after_symid = after_part.symbol_val(); ! Attribute* attr = al ? al->GetAttr(after_symid) : nil; ! if (!attr) { ! attr = new Attribute(after_symid, new AttributeValue()); ! al->add_attribute(attr); } - ComValue retval(Attribute::class_symid(), attr); - push_stack(retval); } /*****************************************************************************/ --- 77,107 ---- comterp()->localtable()->insert(before_symid, comval); else comterp()->globaltable()->insert(before_symid, comval); + } + } else if (!before_part.is_attributelist()) { + if (((Attribute*)before_part.obj_val())->Value()->is_attributelist()) + al = (AttributeList*) ((Attribute*) before_part.obj_val())->Value()->obj_val(); + else { + al = new AttributeList(); + AttributeValue newval(AttributeList::class_symid(), (void*) al); + *((Attribute*)before_part.obj_val())->Value() = newval; } ! } else al = (AttributeList*) before_part.obj_val(); ! if (nargs()>1) { ! int after_symid = after_part.symbol_val(); ! Attribute* attr = al ? al->GetAttr(after_symid) : nil; ! if (!attr) { ! attr = new Attribute(after_symid, new AttributeValue()); ! al->add_attribute(attr); ! } ! ComValue retval(Attribute::class_symid(), attr); ! push_stack(retval); ! } else { ! ComValue retval(AttributeList::class_symid(), al); ! push_stack(retval); } } /*****************************************************************************/ Index: ComTerp/dotfunc.h diff -c ComTerp/dotfunc.h:1.2 ComTerp/dotfunc.h:1.3 *** ComTerp/dotfunc.h:1.2 Mon Apr 30 16:32:33 2001 --- src/ComTerp/dotfunc.h Tue Oct 16 17:23:47 2001 *************** *** 1,4 **** --- 1,5 ---- /* + * Copyright (c) 2001 Scott E. Johnston * Copyright (c) 2000 IET Inc. * * Permission to use, copy, modify, distribute, and sell this software and *************** *** 30,43 **** #include <ComTerp/numfunc.h> ! //: . (dot) operator, for compound variables. class DotFunc : public ComFunc { public: DotFunc(ComTerp*); virtual void execute(); virtual const char* docstring() { ! return "%s (.) makes compound variables"; } CLASS_SYMID("DotFunc"); }; --- 31,44 ---- #include <ComTerp/numfunc.h> ! //: . (dot) operator, for compound variables | dotlst=dot(name) -- construct empty dottted pair list. class DotFunc : public ComFunc { public: DotFunc(ComTerp*); virtual void execute(); virtual const char* docstring() { ! return "%s (.) makes compound variables | dotlst=dot(name) -- construct empty dotted pair list"; } CLASS_SYMID("DotFunc"); }; Index: ComTerp/listfunc.c diff -c ComTerp/listfunc.c:1.6 ComTerp/listfunc.c:1.7 *** ComTerp/listfunc.c:1.6 Fri Oct 12 14:56:21 2001 --- src/ComTerp/listfunc.c Tue Oct 16 17:23:47 2001 *************** *** 91,96 **** --- 91,100 ---- void ListAtFunc::execute() { ComValue listv(stack_arg(0)); ComValue nv(stack_arg(1, false, ComValue::zeroval())); + static int set_symid = symbol_add("set"); + ComValue setv(stack_key(set_symid, false, ComValue::blankval(), true /* return blank if no :set */)); + boolean setflag = !setv.is_blank(); + reset_stack(); if (listv.is_type(ComValue::ArrayType) && !nv.is_nil() && nv.int_val()>=0) { *************** *** 100,105 **** --- 104,111 ---- Iterator it; for (avl->First(it); !avl->Done(it); avl->Next(it)) { if (count==nv.int_val()) { + if (setflag) + *avl->GetAttrVal(it) = setv; push_stack(*avl->GetAttrVal(it)); return; } *************** *** 114,119 **** --- 120,127 ---- for (al->First(it); !al->Done(it); al->Next(it)) { if (count==nv.int_val()) { ComValue retval(Attribute::class_symid(), (void*) al->GetAttr(it)); + if (setflag) + *al->GetAttr(it)->Value() = setv; push_stack(retval); return; } Index: ComTerp/listfunc.h diff -c ComTerp/listfunc.h:1.3 ComTerp/listfunc.h:1.4 *** ComTerp/listfunc.h:1.3 Thu Oct 11 15:20:28 2001 --- src/ComTerp/listfunc.h Tue Oct 16 17:23:47 2001 *************** *** 48,61 **** }; //: list member command for ComTerp. ! // val=at(list|attrlist n) -- return the nth item in a list. class ListAtFunc : public ComFunc { public: ListAtFunc(ComTerp*); virtual void execute(); virtual const char* docstring() { ! return "val=at(list|attrlist n) -- return the nth item in a list"; } }; //: list size command for ComTerp. --- 48,61 ---- }; //: list member command for ComTerp. ! // val=at(list|attrlist n :set val) -- return (or set) the nth item in a list. class ListAtFunc : public ComFunc { public: ListAtFunc(ComTerp*); virtual void execute(); virtual const char* docstring() { ! return "val=at(list|attrlist n :set val) -- return (or set) the nth item in a list"; } }; //: list size command for ComTerp. Index: ComTerp/mathfunc.c diff -c ComTerp/mathfunc.c:1.1 ComTerp/mathfunc.c:1.2 *** ComTerp/mathfunc.c:1.1 Thu Jan 4 15:31:42 2001 --- src/ComTerp/mathfunc.c Tue Oct 16 17:23:47 2001 *************** *** 1,4 **** --- 1,5 ---- /* + * Copyright (c) 2001 Scott E. Johnston * Copyright (c) 1998 Vectaport Inc. * * Permission to use, copy, modify, distribute, and sell this software and *************** *** 36,41 **** --- 37,46 ---- void ExpFunc::execute() { ComValue operandx = stack_arg(0); reset_stack(); + if (operandx.is_nil()) { + push_stack(ComValue::nullval()); + return; + } ComValue result(exp(operandx.double_val())); push_stack(result); } *************** *** 46,51 **** --- 51,60 ---- void LogFunc::execute() { ComValue operandx = stack_arg(0); reset_stack(); + if (operandx.is_nil()) { + push_stack(ComValue::nullval()); + return; + } ComValue result(log(operandx.double_val())); push_stack(result); } *************** *** 56,61 **** --- 65,74 ---- void Log10Func::execute() { ComValue operandx = stack_arg(0); reset_stack(); + if (operandx.is_nil()) { + push_stack(ComValue::nullval()); + return; + } ComValue result(log10(operandx.double_val())); push_stack(result); } *************** *** 67,72 **** --- 80,89 ---- ComValue operandx = stack_arg(0); ComValue operandy = stack_arg(1); reset_stack(); + if (operandx.is_nil() || operandy.is_nil()) { + push_stack(ComValue::nullval()); + return; + } ComValue result(pow(operandx.double_val(), operandy.double_val())); push_stack(result); } *************** *** 77,82 **** --- 94,103 ---- void ACosFunc::execute() { ComValue operandx = stack_arg(0); reset_stack(); + if (operandx.is_nil()) { + push_stack(ComValue::nullval()); + return; + } ComValue result(acos(operandx.double_val())); push_stack(result); } *************** *** 87,92 **** --- 108,117 ---- void ASinFunc::execute() { ComValue operandx = stack_arg(0); reset_stack(); + if (operandx.is_nil()) { + push_stack(ComValue::nullval()); + return; + } ComValue result(asin(operandx.double_val())); push_stack(result); } *************** *** 97,102 **** --- 122,131 ---- void ATanFunc::execute() { ComValue operandx = stack_arg(0); reset_stack(); + if (operandx.is_nil()) { + push_stack(ComValue::nullval()); + return; + } ComValue result(atan(operandx.double_val())); push_stack(result); } *************** *** 108,113 **** --- 137,146 ---- ComValue operandx = stack_arg(0); ComValue operandy = stack_arg(0); reset_stack(); + if (operandx.is_nil() || operandy.is_nil()) { + push_stack(ComValue::nullval()); + return; + } ComValue result(atan2(operandx.double_val(),operandy.double_val())); push_stack(result); } *************** *** 118,123 **** --- 151,160 ---- void CosFunc::execute() { ComValue operandx = stack_arg(0); reset_stack(); + if (operandx.is_nil()) { + push_stack(ComValue::nullval()); + return; + } ComValue result(cos(operandx.double_val())); push_stack(result); } *************** *** 128,133 **** --- 165,174 ---- void SinFunc::execute() { ComValue operandx = stack_arg(0); reset_stack(); + if (operandx.is_nil()) { + push_stack(ComValue::nullval()); + return; + } ComValue result(sin(operandx.double_val())); push_stack(result); } *************** *** 138,143 **** --- 179,188 ---- void TanFunc::execute() { ComValue operandx = stack_arg(0); reset_stack(); + if (operandx.is_nil()) { + push_stack(ComValue::nullval()); + return; + } ComValue result(tan(operandx.double_val())); push_stack(result); } *************** *** 148,154 **** void SqrtFunc::execute() { ComValue operandx = stack_arg(0); reset_stack(); ComValue result(sqrt(operandx.double_val())); push_stack(result); } - --- 193,202 ---- void SqrtFunc::execute() { ComValue operandx = stack_arg(0); reset_stack(); + if (operandx.is_nil()) { + push_stack(ComValue::nullval()); + return; + } ComValue result(sqrt(operandx.double_val())); push_stack(result); } Index: ComTerp/numfunc.c diff -c ComTerp/numfunc.c:1.2 ComTerp/numfunc.c:1.3 *** ComTerp/numfunc.c:1.2 Mon Sep 24 17:21:25 2001 --- src/ComTerp/numfunc.c Tue Oct 16 17:23:47 2001 *************** *** 667,673 **** void CharFunc::execute() { ComValue& operand = stack_arg(0); ! ComValue result(operand.char_val(), ComValue::CharType); reset_stack(); push_stack(result); } --- 667,674 ---- void CharFunc::execute() { ComValue& operand = stack_arg(0); ! ComValue result(operand.char_val(), ! operand.is_nil() ? ComValue::UnknownType : ComValue::CharType); reset_stack(); push_stack(result); } *************** *** 676,682 **** void ShortFunc::execute() { ComValue& operand = stack_arg(0); ! ComValue result(operand.short_val(), ComValue::ShortType); reset_stack(); push_stack(result); } --- 677,684 ---- void ShortFunc::execute() { ComValue& operand = stack_arg(0); ! ComValue result(operand.short_val(), ! operand.is_nil() ? ComValue::UnknownType : ComValue::ShortType); reset_stack(); push_stack(result); } *************** *** 685,691 **** void IntFunc::execute() { ComValue& operand = stack_arg(0); ! ComValue result(operand.int_val(), ComValue::IntType); reset_stack(); push_stack(result); } --- 687,694 ---- void IntFunc::execute() { ComValue& operand = stack_arg(0); ! ComValue result(operand.int_val(), ! operand.is_nil() ? ComValue::UnknownType : ComValue::IntType); reset_stack(); push_stack(result); } *************** *** 695,700 **** --- 698,704 ---- void LongFunc::execute() { ComValue& operand = stack_arg(0); ComValue result(operand.long_val()); + if (operand.is_nil()) result.type(ComValue::UnknownType); reset_stack(); push_stack(result); } *************** *** 704,709 **** --- 708,714 ---- void FloatFunc::execute() { ComValue& operand = stack_arg(0); ComValue result(operand.float_val()); + if (operand.is_nil()) result.type(ComValue::UnknownType); reset_stack(); push_stack(result); } *************** *** 713,718 **** --- 718,724 ---- void DoubleFunc::execute() { ComValue& operand = stack_arg(0); ComValue result(operand.double_val()); + if (operand.is_nil()) result.type(ComValue::UnknownType); reset_stack(); push_stack(result); } Index: comterp/README diff -c comterp/README:1.7 comterp/README:1.8 *** comterp/README:1.7 Mon Oct 8 13:05:07 2001 --- src/comterp_/README Tue Oct 16 17:23:49 2001 *************** *** 175,181 **** lst=list([olst|strm]) -- create list, copy list, or convert stream ! val=at(list|attrlist n) -- return nth item in a list num=size(list|attrlist) -- return size of a list --- 175,181 ---- lst=list([olst|strm]) -- create list, copy list, or convert stream ! val=at(list|attrlist n :set val ) -- return (or set) nth item in a list num=size(list|attrlist) -- return size of a list *************** *** 232,237 **** --- 232,238 ---- 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 quit() -- quit the interpreter Index: include_std/version.h diff -c include_std/version.h:1.7 include_std/version.h:1.8 *** include_std/version.h:1.7 Mon Aug 20 12:52:03 2001 --- src/include/ivstd/version.h Tue Oct 16 17:24:07 2001 *************** *** 1,3 **** ! #define IvtoolsVersion 0.9.6 ! #define VersionString "0.9.6" ! #define ReleaseString "ivtools-0.9.6" --- 1,3 ---- ! #define IvtoolsVersion 0.9.7 ! #define VersionString "0.9.7" ! #define ReleaseString "ivtools-0.9.7" Index: man1_ivtools/comterp.1 diff -c man1_ivtools/comterp.1:1.7 man1_ivtools/comterp.1:1.8 *** man1_ivtools/comterp.1:1.7 Mon Oct 8 13:05:24 2001 --- src/man/man1/comterp.1 Tue Oct 16 17:24:10 2001 *************** *** 186,192 **** lst=list([olst|strm]) -- create list, copy list, or convert stream ! val=at(list|attrlist n) -- return nth item in a list num=size(list|attrlist) -- return size of a list --- 186,192 ---- lst=list([olst|strm]) -- create list, copy list, or convert stream ! val=at(list|attrlist n :set val) -- return (or set) nth item in a list num=size(list|attrlist) -- return size of a list *************** *** 237,242 **** --- 237,243 ---- 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 quit() -- quit the interpreter Index: config_ivtools/params.def diff -c config_ivtools/params.def:1.10 config_ivtools/params.def:1.11 *** config_ivtools/params.def:1.10 Mon Aug 20 12:52:11 2001 --- config/params.def Tue Oct 16 17:24:12 2001 *************** *** 27,33 **** * Name of the software release */ #ifndef Release ! #define Release ivtools-0.9.6 #endif RELEASE = Release --- 27,33 ---- * Name of the software release */ #ifndef Release ! #define Release ivtools-0.9.7 #endif RELEASE = Release *************** *** 36,42 **** * VersionNumber */ #ifndef Version ! #define Version 0.9.6 #endif VERSION = Version --- 36,42 ---- * VersionNumber */ #ifndef Version ! #define Version 0.9.7 #endif VERSION = Version *** /dev/null Tue Oct 16 17:24:14 PDT 2001 --- patches/ivtools-011016-johnston-077 *************** patches/ivtools-011016-johnston-077 *** 0 **** --- 1 ---- + ivtools-011016-johnston-077 |
From: <ivt...@li...> - 2001-10-15 20:23:33
|
Patch: ivtools-011015-johnston-076 For: ivtools-0.9.6 Author: joh...@us... Subject: make streams work for attributes, print empty list as {} Requires: This is an intermediate patch to ivtools-0.9.6. To apply, cd to the top-level directory of the ivtools source tree (the directory with src and config subdirs), and apply like this: patch -p0 <ThisFile Summary of Changes: - make the streaming mechanism work for streams held as attribute values, i.e. this now works: a.b=0..100 a.c=100..200 s=a.b+a.c - print an empty list as an empty set of braces -- {}. Index: ComTerp/comterp.c diff -c ComTerp/comterp.c:1.13 ComTerp/comterp.c:1.14 *** ComTerp/comterp.c:1.13 Thu Oct 11 15:20:28 2001 --- src/ComTerp/comterp.c Mon Oct 15 13:14:00 2001 *************** *** 235,241 **** boolean has_streams = false; if (!((ComFunc*)sv.obj_val())->post_eval()) for(int i=0; i<sv.narg()+sv.nkey(); i++) { ! if (!stack_top(-i).is_symbol()) has_streams = stack_top(-i).is_stream(); else { AttributeValue* testval = --- 235,241 ---- boolean has_streams = false; if (!((ComFunc*)sv.obj_val())->post_eval()) for(int i=0; i<sv.narg()+sv.nkey(); i++) { ! if (!stack_top(-i).is_symbol() && !stack_top(-i).is_attribute()) has_streams = stack_top(-i).is_stream(); else { AttributeValue* testval = Index: ComTerp/comvalue.c diff -c ComTerp/comvalue.c:1.6 ComTerp/comvalue.c:1.7 *** ComTerp/comvalue.c:1.6 Fri Oct 12 14:56:21 2001 --- src/ComTerp/comvalue.c Mon Oct 15 13:14:00 2001 *************** *** 263,286 **** ALIterator i; AttributeValueList* avl = svp->array_val(); avl->First(i); ! boolean first = true; while (!avl->Done(i)) { - if (first) { - out << "{"; - first = false; - } ComValue val(*avl->GetAttrVal(i)); out << val; avl->Next(i); if (!avl->Done(i)) out << ","; ! } ! if (!first) out << "}"; } else { out << "list of length " << svp->array_len(); ALIterator i; AttributeValueList* avl = svp->array_val(); avl->First(i); - boolean first = true; while (!avl->Done(i)) { out << "\n\t" << *avl->GetAttrVal(i); avl->Next(i); --- 263,281 ---- ALIterator i; AttributeValueList* avl = svp->array_val(); avl->First(i); ! out << "{"; while (!avl->Done(i)) { ComValue val(*avl->GetAttrVal(i)); out << val; avl->Next(i); if (!avl->Done(i)) out << ","; ! }; ! out << "}"; } else { out << "list of length " << svp->array_len(); ALIterator i; AttributeValueList* avl = svp->array_val(); avl->First(i); while (!avl->Done(i)) { out << "\n\t" << *avl->GetAttrVal(i); avl->Next(i); *** /dev/null Mon Oct 15 13:14:17 PDT 2001 --- patches/ivtools-011015-johnston-076 *************** patches/ivtools-011015-johnston-076 *** 0 **** --- 1 ---- + ivtools-011015-johnston-076 |