Article View: comp.sources.bugs
Article #707Tgif-2.12-patch16 (16th patch for tgif-2.12), Part 01/01
From: William Cheng
Date: Thu, 07 Jan 1993 06:27
Date: Thu, 07 Jan 1993 06:27
2254 lines
69303 bytes
69303 bytes
Below is tgif-2.12-patch16 (16th patch for tgif-2.12). (The complete
source for tgif-2.12 at patchlevel 16 can be found in the following
places for anonymous ftp: export.lcs.mit.edu:/contrib/tgif-2.12-p16.tar.Z
and cs.ucla.edu:/pub/tgif/tgif-2.12-p16.tar.Z.)
Tgif is an Xlib based 2-D drawing tool under X11.
Remove everything outside of the 'cut here' lines (inclusive) and save
the file as tgif-2.12-patch16; then apply the patch with
'patch -p -N < tgif-2.12-patch16'. Here is a short list of added
features/bug fixes.
1) Allow the launch= attribute to be multiline.
2) Make pasting work in text mode. The default paste command is still
<Cntrl><Meta>y.
3) Add user interrupt when redrawing. Add a new X default,
Tgif*IntrCheckInterval to define the number of objects drawn before
checking for user interrupt.
4) Fix some memory leaks. Thanks to Mark Sterin <mark@FibHaifa.com> for
the fixes.
Please send bug reports to william@cs.ucla.edu.
---------------------------------> cut here <---------------------------------
*** choice.c.orig Wed Jan 6 22:06:37 1993
--- choice.c Wed Jan 6 22:06:38 1993
***************
*** 25,29 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/choice.c,v 2.58.2.1 1992/10/16 05:17:33 william Exp $";
#endif
--- 25,29 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/choice.c,v 2.58.2.4 1993/01/03 23:34:16 william Exp $";
#endif
***************
*** 414,430 ****
switch (pageStyle)
{
! case PORTRAIT:
! XSetStipple (mainDisplay, rasterGC, filePixmap);
! XFillRectangle (mainDisplay, choiceWindow, rasterGC,
! FILE_COL*choiceImageW, FILE_ROW*choiceImageH,
! choiceImageW, choiceImageH);
! break;
! case LANDSCAPE:
! XSetStipple (mainDisplay, rasterGC, landscapePixmap);
! XFillRectangle (mainDisplay, choiceWindow, rasterGC,
! FILE_COL*choiceImageW, FILE_ROW*choiceImageH,
! choiceImageW, choiceImageH);
! break;
}
}
--- 414,422 ----
switch (pageStyle)
{
! case PORTRAIT: XSetStipple(mainDisplay,rasterGC,filePixmap); break;
! case LANDSCAPE: XSetStipple(mainDisplay,rasterGC,landscapePixmap); break;
}
+ XFillRectangle (mainDisplay, choiceWindow, rasterGC, FILE_COL*choiceImageW,
+ FILE_ROW*choiceImageH, choiceImageW, choiceImageH);
}
***************
*** 465,483 ****
void ShowMoveMode ()
{
! switch (moveMode)
! {
! case CONST_MOVE:
! XSetStipple (mainDisplay, rasterGC, moveModePixmap[CONST_MOVE]);
! XFillRectangle (mainDisplay, choiceWindow, rasterGC,
! MOVE_MODE_COL*choiceImageW, MOVE_MODE_ROW*choiceImageH,
! choiceImageW, choiceImageH);
! break;
! case UNCONST_MOVE:
! XSetStipple (mainDisplay, rasterGC, moveModePixmap[UNCONST_MOVE]);
! XFillRectangle (mainDisplay, choiceWindow, rasterGC,
! MOVE_MODE_COL*choiceImageW, MOVE_MODE_ROW*choiceImageH,
! choiceImageW, choiceImageH);
! break;
! }
}
--- 457,464 ----
void ShowMoveMode ()
{
! XSetStipple (mainDisplay, rasterGC, moveModePixmap[moveMode]);
! XFillRectangle (mainDisplay, choiceWindow, rasterGC,
! MOVE_MODE_COL*choiceImageW, MOVE_MODE_ROW*choiceImageH,
! choiceImageW, choiceImageH);
}
***************
*** 821,825 ****
zoomedIn = saved_zoomed_in;
zoomScale = saved_zoom_scale;
! PreciseZoom (new_zoomed_in, new_zoom_scale);
}
--- 802,806 ----
zoomedIn = saved_zoomed_in;
zoomScale = saved_zoom_scale;
! PreciseZoom (new_zoomed_in, new_zoom_scale, FALSE);
}
*** cmd.c.orig Wed Jan 6 22:06:43 1993
--- cmd.c Wed Jan 6 22:06:44 1993
***************
*** 25,29 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/cmd.c,v 2.18.2.1 1992/10/16 05:26:14 william Exp $";
#endif
--- 25,29 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/cmd.c,v 2.18.2.2 1993/01/02 20:21:17 william Exp $";
#endif
***************
*** 158,162 ****
struct CmdRec * CmdPtr;
{
! register struct CmdRec * cmd_ptr;
if (curCmd == NULL)
--- 158,162 ----
struct CmdRec * CmdPtr;
{
! register struct CmdRec * cmd_ptr, * next_cmd;
if (curCmd == NULL)
***************
*** 165,170 ****
cmd_ptr = curCmd->next;
! for ( ; cmd_ptr != NULL; cmd_ptr = cmd_ptr->next)
{
DeleteARedoRecord (cmd_ptr);
historyCount--;
--- 165,171 ----
cmd_ptr = curCmd->next;
! for ( ; cmd_ptr != NULL; cmd_ptr = next_cmd)
{
+ next_cmd = cmd_ptr->next;
DeleteARedoRecord (cmd_ptr);
historyCount--;
***************
*** 175,182 ****
void CleanUpCmds ()
{
! register struct CmdRec * cmd_ptr;
! for (cmd_ptr = firstCmd; cmd_ptr != NULL; cmd_ptr = cmd_ptr->next)
DeleteARedoRecord (cmd_ptr);
firstCmd = lastCmd = curCmd = NULL;
historyCount = 0;
--- 176,186 ----
void CleanUpCmds ()
{
! register struct CmdRec * cmd_ptr, * next_cmd;
! for (cmd_ptr = firstCmd; cmd_ptr != NULL; cmd_ptr = next_cmd)
! {
! next_cmd = cmd_ptr->next;
DeleteARedoRecord (cmd_ptr);
+ }
firstCmd = lastCmd = curCmd = NULL;
historyCount = 0;
*** copypaste.c.orig Wed Jan 6 22:06:46 1993
--- copypaste.c Wed Jan 6 22:06:47 1993
***************
*** 26,30 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/copypaste.c,v 2.30.1.2 1992/10/16 05:07:26 william Exp $";
#endif
--- 26,30 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/copypaste.c,v 2.30.1.4 1992/12/20 01:02:35 william Exp $";
#endif
***************
*** 42,45 ****
--- 42,46 ----
#include "color.e"
#include "cursor.e"
+ #include "drawing.e"
#include "dup.e"
#include "file.e"
***************
*** 279,283 ****
}
! void PasteFromCutBuffer ()
{
FILE * fp;
--- 280,284 ----
}
! int PasteFromCutBuffer ()
{
FILE * fp;
***************
*** 292,301 ****
{
Msg ("Cut buffer is empty");
! return;
}
if (((unsigned char)(*cut_buffer)) != header)
{
PasteString (cut_buffer);
! return;
}
cut_buffer++;
--- 293,307 ----
{
Msg ("Cut buffer is empty");
! return (TRUE);
}
if (((unsigned char)(*cut_buffer)) != header)
{
+ if (curChoice == DRAWTEXT)
+ {
+ pasteInDrawTextMode = TRUE;
+ return (FALSE);
+ }
PasteString (cut_buffer);
! return (TRUE);
}
cut_buffer++;
***************
*** 308,312 ****
sprintf (msg, "Can not open %s for write.", tmpfile);
Msg (msg);
! return;
}
if (write (fileno(fp), cut_buffer, len) < len)
--- 314,318 ----
sprintf (msg, "Can not open %s for write.", tmpfile);
Msg (msg);
! return (TRUE);
}
if (write (fileno(fp), cut_buffer, len) < len)
***************
*** 317,321 ****
tmpfile);
Msg (msg);
! return;
}
fflush (fp);
--- 323,327 ----
tmpfile);
Msg (msg);
! return (TRUE);
}
fflush (fp);
***************
*** 353,357 ****
fileVersion);
Msg (msg);
! return;
}
--- 359,363 ----
fileVersion);
Msg (msg);
! return (TRUE);
}
***************
*** 403,406 ****
--- 409,413 ----
Msg ("Objects pasted from tgif.");
+ return (TRUE);
}
*** drawing.c.orig Wed Jan 6 22:06:51 1993
--- drawing.c Wed Jan 6 22:06:54 1993
***************
*** 25,29 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/drawing.c,v 2.115 1992/08/11 03:58:46 william Exp $";
#endif
--- 25,29 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/drawing.c,v 2.115.1.4 1993/01/03 01:14:56 william Exp $";
#endif
***************
*** 80,83 ****
--- 80,85 ----
#define O_GRID (O_VIS+O_INVIS)
+ int intrCheckInterval=10;
+ int pasteInDrawTextMode=FALSE;
int numRedrawBBox=INVALID;
int numClipRecs=0;
***************
*** 181,187 ****
}
! void DrawObj (Win, ObjPtr)
Window Win;
register struct ObjRec * ObjPtr;
{
register struct ObjRec * obj_ptr;
--- 183,254 ----
}
! static int intrShown=FALSE;
! static int checkCount=0;
!
! void ShowInterrupt ()
! {
! GC gc;
! XGCValues values;
!
! if (intrCheckInterval <= 0) return;
!
! values.foreground = myFgPixel;
! values.background = myBgPixel;
! values.fill_style = FillOpaqueStippled;
! values.stipple = intrPixmap;
! gc = XCreateGC (mainDisplay, dummyWindow1,
! GCForeground | GCBackground | GCFillStyle | GCStipple, &values);
! XFillRectangle (mainDisplay, dummyWindow1, gc, 0, 0, scrollBarW, scrollBarW);
! XFreeGC(mainDisplay, gc);
!
! XSync (mainDisplay, False);
! intrShown = TRUE;
! }
!
! void HideInterrupt ()
! {
! XEvent ev;
!
! while (XCheckWindowEvent (mainDisplay, dummyWindow1, ButtonPressMask, &ev)) ;
! XClearWindow (mainDisplay, dummyWindow1);
! intrShown = FALSE;
! checkCount = 0;
! }
!
! void RedrawDummyWindow1 ()
! {
! XEvent ev;
!
! while (XCheckWindowEvent (mainDisplay, dummyWindow1, ExposureMask, &ev)) ;
! while (XCheckWindowEvent (mainDisplay, dummyWindow1, ButtonPressMask, &ev)) ;
! if (intrShown)
! ShowInterrupt ();
! else
! HideInterrupt ();
! }
!
! int CheckInterrupt ()
! {
! if (intrCheckInterval <= 0) return (FALSE);
! if (++checkCount >= intrCheckInterval)
! {
! XEvent ev;
!
! checkCount = 0;
! if (XCheckWindowEvent (mainDisplay, dummyWindow1, ButtonPressMask, &ev))
! {
! while (XCheckWindowEvent (mainDisplay, dummyWindow1, ButtonPressMask,
! &ev)) ;
! return (TRUE);
! }
! }
! return (FALSE);
! }
!
! int DrawObj (Win, ObjPtr)
Window Win;
register struct ObjRec * ObjPtr;
+ /* returns TRUE if all objects are drawn */
+ /* returns FALSE if interrupted by the user */
{
register struct ObjRec * obj_ptr;
***************
*** 230,234 ****
for ( ; obj_ptr != NULL; obj_ptr = obj_ptr->prev)
if (!checkBBox || NeedToDraw (obj_ptr->bbox))
! DrawObj (Win, obj_ptr);
if (ObjPtr->type == OBJ_ICON && ObjPtr->dirty)
{
--- 297,308 ----
for ( ; obj_ptr != NULL; obj_ptr = obj_ptr->prev)
if (!checkBBox || NeedToDraw (obj_ptr->bbox))
! {
! if (!DrawObj (Win, obj_ptr)) return (FALSE);
! if (CheckInterrupt ())
! {
! Msg ("User interrupt. Repaint aborted.");
! return (FALSE);
! }
! }
if (ObjPtr->type == OBJ_ICON && ObjPtr->dirty)
{
***************
*** 245,248 ****
--- 319,323 ----
break;
}
+ return (TRUE);
}
***************
*** 299,307 ****
smallArea[0].ltx = LtX; smallArea[0].lty = LtY;
smallArea[0].rbx = RbX; smallArea[0].rby = RbY;
for (obj_ptr = BotObj; obj_ptr != NULL; obj_ptr = obj_ptr->prev)
if (BBoxIntersect (obj_ptr->bbox, drawWinBBox) &&
BBoxIntersect (obj_ptr->bbox, smallArea[0]))
! DrawObj (drawWindow, obj_ptr);
!
SetDefaultDrawWinClipRecs ();
}
--- 374,392 ----
smallArea[0].ltx = LtX; smallArea[0].lty = LtY;
smallArea[0].rbx = RbX; smallArea[0].rby = RbY;
+ ShowInterrupt ();
for (obj_ptr = BotObj; obj_ptr != NULL; obj_ptr = obj_ptr->prev)
+ {
if (BBoxIntersect (obj_ptr->bbox, drawWinBBox) &&
BBoxIntersect (obj_ptr->bbox, smallArea[0]))
! {
! if (!DrawObj (drawWindow, obj_ptr)) break;
! if (CheckInterrupt ())
! {
! Msg ("User interrupt. Repaint aborted.");
! break;
! }
! }
! }
! HideInterrupt ();
SetDefaultDrawWinClipRecs ();
}
***************
*** 465,468 ****
--- 550,554 ----
smallArea[1].ltx = LtX2; smallArea[1].lty = LtY2;
smallArea[1].rbx = RbX2; smallArea[1].rby = RbY2;
+ ShowInterrupt ();
for (obj_ptr = BotObj; obj_ptr != NULL; obj_ptr = obj_ptr->prev)
{
***************
*** 470,476 ****
(BBoxIntersect (obj_ptr->bbox, bbox1) ||
BBoxIntersect (obj_ptr->bbox, bbox2)))
! DrawObj (drawWindow, obj_ptr);
}
!
SetDefaultDrawWinClipRecs ();
}
--- 556,569 ----
(BBoxIntersect (obj_ptr->bbox, bbox1) ||
BBoxIntersect (obj_ptr->bbox, bbox2)))
! {
! if (!DrawObj (drawWindow, obj_ptr)) break;
! if (CheckInterrupt ())
! {
! Msg ("User interrupt. Repaint aborted.");
! break;
! }
! }
}
! HideInterrupt ();
SetDefaultDrawWinClipRecs ();
}
***************
*** 637,642 ****
checkBBox = FALSE;
for (obj_ptr = botObj; obj_ptr != NULL; obj_ptr = obj_ptr->prev)
! DrawObj (pixmap, obj_ptr);
checkBBox = TRUE;
--- 730,751 ----
checkBBox = FALSE;
+ ShowInterrupt ();
for (obj_ptr = botObj; obj_ptr != NULL; obj_ptr = obj_ptr->prev)
! {
! if (!DrawObj (pixmap, obj_ptr))
! {
! XFreePixmap (mainDisplay, pixmap);
! pixmap = None;
! break;
! }
! if (CheckInterrupt ())
! {
! Msg ("User interrupt. Repaint aborted.");
! XFreePixmap (mainDisplay, pixmap);
! pixmap = None;
! break;
! }
! }
! HideInterrupt ();
checkBBox = TRUE;
***************
*** 661,667 ****
numRedrawBBox = 0;
for (obj_ptr = BotObj; obj_ptr != NULL; obj_ptr = obj_ptr->prev)
if (BBoxIntersect (obj_ptr->bbox, drawWinBBox))
! DrawObj (drawWindow, obj_ptr);
}
--- 770,787 ----
numRedrawBBox = 0;
+ ShowInterrupt ();
for (obj_ptr = BotObj; obj_ptr != NULL; obj_ptr = obj_ptr->prev)
+ {
if (BBoxIntersect (obj_ptr->bbox, drawWinBBox))
! {
! if (!DrawObj (drawWindow, obj_ptr)) break;
! if (CheckInterrupt ())
! {
! Msg ("User interrupt. Repaint aborted.");
! break;
! }
! }
! }
! HideInterrupt ();
}
***************
*** 863,867 ****
case 'w': /*^#w*/ ToggleAllSelLineType (); break;
case 'x': /*^#x*/ ToggleWhereToPrint (); break;
! case 'y': /*^#y*/ PasteFromCutBuffer (); break;
case 'z': /*^#z*/ SetCurChoice (DRAWARC); break;
case '.': /*^#.*/ ImportXBitmapFile (); break;
--- 983,987 ----
case 'w': /*^#w*/ ToggleAllSelLineType (); break;
case 'x': /*^#x*/ ToggleWhereToPrint (); break;
! case 'y': /*^#y*/ if (!PasteFromCutBuffer()) return(INVALID); break;
case 'z': /*^#z*/ SetCurChoice (DRAWARC); break;
case '.': /*^#.*/ ImportXBitmapFile (); break;
*** file.c.orig Wed Jan 6 22:06:59 1993
--- file.c Wed Jan 6 22:07:02 1993
***************
*** 25,29 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/file.c,v 2.192.1.11 1992/12/06 03:09:02 william Exp $";
#endif
--- 25,29 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/file.c,v 2.192.1.14 1992/12/22 05:43:04 william Exp $";
#endif
***************
*** 1874,1878 ****
FILE * fp;
char tmp_filename[MAXPATHLENGTH+1];
! int tmp_linenum;
strcpy (saved_cur_dir, curDir);
--- 1874,1878 ----
FILE * fp;
char tmp_filename[MAXPATHLENGTH+1];
! int tmp_linenum, interrupted;
strcpy (saved_cur_dir, curDir);
***************
*** 1914,1918 ****
--- 1914,1921 ----
numRedrawBBox = 0;
+ ShowInterrupt ();
+ interrupted = FALSE;
while ((read_status = ReadObj (fp, &obj_ptr)) == TRUE)
+ {
if (obj_ptr != NULL)
{
***************
*** 1919,1926 ****
AdjForOldVersion (obj_ptr);
AddObj (NULL, topObj, obj_ptr);
! if (PointInBBox (obj_ptr->x, obj_ptr->y, drawWinBBox) ||
! BBoxIntersect (obj_ptr->bbox, drawWinBBox))
! DrawObj (drawWindow, obj_ptr);
}
strcpy (scanFileName, tmp_filename);
--- 1922,1936 ----
AdjForOldVersion (obj_ptr);
AddObj (NULL, topObj, obj_ptr);
! if (!interrupted &&
! (PointInBBox (obj_ptr->x, obj_ptr->y, drawWinBBox) ||
! BBoxIntersect (obj_ptr->bbox, drawWinBBox)))
! {
! if (!DrawObj (drawWindow, obj_ptr)) interrupted = TRUE;
! if (CheckInterrupt ()) interrupted = TRUE;
! }
}
+ }
+ if (interrupted) Msg ("User interrupt. Drawing aborted.");
+ HideInterrupt ();
strcpy (scanFileName, tmp_filename);
*** grid.c.orig Wed Jan 6 22:07:07 1993
--- grid.c Wed Jan 6 22:07:09 1993
***************
*** 25,29 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/grid.c,v 2.77 1992/05/11 23:41:53 william Exp $";
#endif
--- 25,29 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/grid.c,v 2.78 1992/12/14 02:05:21 william Exp $";
#endif
***************
*** 676,685 ****
}
! void PreciseZoom (zoomed_in, zoom_scale)
! int zoomed_in, zoom_scale;
{
int xc, yc;
! if (zoomedIn == zoomed_in && zoomScale == zoom_scale) return;
if (curChoice==DRAWTEXT && textCursorShown)
--- 676,685 ----
}
! void PreciseZoom (zoomed_in, zoom_scale, force_zoom)
! int zoomed_in, zoom_scale, force_zoom;
{
int xc, yc;
! if (!force_zoom && zoomedIn == zoomed_in && zoomScale == zoom_scale) return;
if (curChoice==DRAWTEXT && textCursorShown)
*** mainloop.c.orig Wed Jan 6 22:07:15 1993
--- mainloop.c Wed Jan 6 22:07:17 1993
***************
*** 25,29 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/mainloop.c,v 2.79.1.6 1992/11/29 23:26:26 william Exp $";
#endif
--- 25,29 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/mainloop.c,v 2.79.1.7 1992/12/21 00:20:05 william Exp $";
#endif
***************
*** 305,308 ****
--- 305,313 ----
RedrawHScrollWindow ();
}
+ else if (input->xany.window == dummyWindow1)
+ {
+ while (XCheckWindowEvent (mainDisplay, dummyWindow1, ExposureMask, &ev)) ;
+ RedrawDummyWindow1 ();
+ }
else if (pinnedMainMenu && input->xany.window == mainMenuWindow)
{
***************
*** 686,689 ****
--- 691,696 ----
input.xany.window == hSBarWindow)
ScrollEventHandler (&input);
+ else if (input.xany.window == dummyWindow1)
+ RedrawDummyWindow1 ();
else if (input.xany.type == MappingNotify)
XRefreshKeyboardMapping (&(input.xmapping));
*** mainmenu.c.orig Wed Jan 6 22:07:21 1993
--- mainmenu.c Wed Jan 6 22:07:22 1993
***************
*** 26,30 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/mainmenu.c,v 1.51 1992/08/08 08:26:43 william Exp $";
#endif
--- 26,30 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/mainmenu.c,v 1.51.1.3 1993/01/04 01:21:22 william Exp $";
#endif
***************
*** 327,331 ****
register int i, j;
register unsigned char hash_value;
! Window root_win, parent_win, * child_win;
unsigned int num_child;
--- 327,331 ----
register int i, j;
register unsigned char hash_value;
! Window root_win, parent_win, * child_wins;
unsigned int num_child;
***************
*** 344,348 ****
}
! XQueryTree (mainDisplay, rootWindow, &root_win, &parent_win, &child_win,
&num_child);
--- 344,348 ----
}
! XQueryTree (mainDisplay, rootWindow, &root_win, &parent_win, &child_wins,
&num_child);
***************
*** 353,360 ****
for (i = 0; i < num_child; i++)
{
! hash_value = child_win[i] & 0xff;
if (checkExtra[hash_value>>3] & (1<<(hash_value&0x7)))
{
! if (child_win[i] == mainMenuWindow)
stackingWins[numStacking++] = mainMenuWindow;
else
--- 353,360 ----
for (i = 0; i < num_child; i++)
{
! hash_value = child_wins[i] & 0xff;
if (checkExtra[hash_value>>3] & (1<<(hash_value&0x7)))
{
! if (child_wins[i] == mainMenuWindow)
stackingWins[numStacking++] = mainMenuWindow;
else
***************
*** 363,369 ****
{
if (extraWinInfo[j].raise && extraWinInfo[j].mapped &&
! extraWinInfo[j].window == child_win[i])
{
! stackingWins[numStacking++] = child_win[i];
break;
}
--- 363,369 ----
{
if (extraWinInfo[j].raise && extraWinInfo[j].mapped &&
! extraWinInfo[j].window == child_wins[i])
{
! stackingWins[numStacking++] = child_wins[i];
break;
}
***************
*** 372,375 ****
--- 372,376 ----
}
}
+ if (child_wins != NULL) XFree ((void *)child_wins);
}
***************
*** 749,753 ****
&num_child) == 0)
return;
! if (child_wins != NULL) cfree (child_wins);
if (parent_win == rootWindow)
done = TRUE;
--- 750,754 ----
&num_child) == 0)
return;
! if (child_wins != NULL) XFree ((void *)child_wins);
if (parent_win == rootWindow)
done = TRUE;
*** poly.c.orig Wed Jan 6 22:07:30 1993
--- poly.c Wed Jan 6 22:07:31 1993
***************
*** 25,29 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/poly.c,v 2.59.1.3 1992/11/07 23:32:42 william Exp $";
#endif
--- 25,29 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/poly.c,v 2.59.1.4 1993/01/03 23:34:24 william Exp $";
#endif
***************
*** 198,202 ****
struct ObjRec * obj_ptr;
register int i;
! XPoint * v, * rv;
int ltx, lty, rbx, rby;
--- 198,202 ----
struct ObjRec * obj_ptr;
register int i;
! XPoint * v;
int ltx, lty, rbx, rby;
***************
*** 204,209 ****
poly_ptr->n = NumPts;
v = (XPoint *) calloc (NumPts+1, sizeof(XPoint));
! rv = (XPoint *) calloc (NumPts+1, sizeof(XPoint));
! if (v == NULL || rv == NULL) fprintf (stderr, "Can not calloc().\n");
pt_ptr = lastPtPtr;
ltx = rbx = pt_ptr->x;
--- 204,208 ----
poly_ptr->n = NumPts;
v = (XPoint *) calloc (NumPts+1, sizeof(XPoint));
! if (v == NULL) fprintf (stderr, "Can not calloc().\n");
pt_ptr = lastPtPtr;
ltx = rbx = pt_ptr->x;
***************
*** 222,226 ****
poly_ptr->vlist = v;
- poly_ptr->rvlist = rv;
poly_ptr->svlist = poly_ptr->asvlist = NULL;
poly_ptr->style = lineStyle;
--- 221,224 ----
***************
*** 809,813 ****
dash = ObjPtr->detail.p->dash;
rotation = ObjPtr->rotation;
! v = (rotation == 0) ? ObjPtr->detail.p->vlist : ObjPtr->detail.p->rvlist;
num_pts = ObjPtr->detail.p->n;
--- 807,811 ----
dash = ObjPtr->detail.p->dash;
rotation = ObjPtr->rotation;
! v = ObjPtr->detail.p->vlist;
num_pts = ObjPtr->detail.p->n;
***************
*** 1184,1188 ****
register int i;
struct PolyRec * poly_ptr;
! XPoint * v, * rv;
char color_str[20], * s, inbuf[MAXSTRING+1], msg[MAXSTRING];
int num_pts, ltx=0, lty=0, rbx=0, rby=0, x, y, id=0;
--- 1182,1186 ----
register int i;
struct PolyRec * poly_ptr;
! XPoint * v;
char color_str[20], * s, inbuf[MAXSTRING+1], msg[MAXSTRING];
int num_pts, ltx=0, lty=0, rbx=0, rby=0, x, y, id=0;
***************
*** 1218,1223 ****
{
v = (XPoint *) calloc (4, sizeof(XPoint));
! rv = (XPoint *) calloc (4, sizeof(XPoint));
! if (v == NULL || rv == NULL) fprintf (stderr, "Can not calloc().\n");
}
else
--- 1216,1220 ----
{
v = (XPoint *) calloc (4, sizeof(XPoint));
! if (v == NULL) fprintf (stderr, "Can not calloc().\n");
}
else
***************
*** 1224,1229 ****
{
v = (XPoint *) calloc (num_pts+1, sizeof(XPoint));
! rv = (XPoint *) calloc (num_pts+1, sizeof(XPoint));
! if (v == NULL || rv == NULL) fprintf (stderr, "Can not calloc().\n");
}
--- 1221,1225 ----
{
v = (XPoint *) calloc (num_pts+1, sizeof(XPoint));
! if (v == NULL) fprintf (stderr, "Can not calloc().\n");
}
***************
*** 1239,1243 ****
cfree (poly_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 1235,1238 ----
***************
*** 1269,1273 ****
cfree (poly_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 1264,1267 ----
***************
*** 1321,1325 ****
cfree (poly_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 1315,1318 ----
***************
*** 1350,1354 ****
cfree (poly_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 1343,1346 ----
***************
*** 1380,1384 ****
cfree (poly_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 1372,1375 ----
***************
*** 1404,1408 ****
cfree (poly_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 1395,1398 ----
***************
*** 1427,1431 ****
cfree (poly_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 1417,1420 ----
***************
*** 1446,1450 ****
cfree (poly_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 1435,1438 ----
***************
*** 1466,1470 ****
cfree (poly_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 1454,1457 ----
***************
*** 1488,1492 ****
cfree (poly_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 1475,1478 ----
***************
*** 1511,1515 ****
cfree (poly_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 1497,1500 ----
***************
*** 1537,1541 ****
poly_ptr->vlist = v;
- poly_ptr->rvlist = rv;
poly_ptr->svlist = poly_ptr->asvlist = NULL;
--- 1522,1525 ----
***************
*** 1562,1569 ****
struct ObjRec * ObjPtr;
{
! if (ObjPtr->detail.p->curved) cfree (ObjPtr->detail.p->svlist);
if (ObjPtr->detail.p->asvlist != NULL) cfree (ObjPtr->detail.p->asvlist);
cfree (ObjPtr->detail.p->vlist);
- cfree (ObjPtr->detail.p->rvlist);
cfree (ObjPtr->detail.p);
cfree (ObjPtr);
--- 1546,1552 ----
struct ObjRec * ObjPtr;
{
! if (ObjPtr->detail.p->svlist != NULL) cfree (ObjPtr->detail.p->svlist);
if (ObjPtr->detail.p->asvlist != NULL) cfree (ObjPtr->detail.p->asvlist);
cfree (ObjPtr->detail.p->vlist);
cfree (ObjPtr->detail.p);
cfree (ObjPtr);
*** polygon.c.orig Wed Jan 6 22:07:37 1993
--- polygon.c Wed Jan 6 22:07:38 1993
***************
*** 25,29 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/polygon.c,v 2.58.1.3 1992/11/07 23:33:09 william Exp $";
#endif
--- 25,29 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/polygon.c,v 2.58.1.4 1993/01/03 23:34:24 william Exp $";
#endif
***************
*** 736,740 ****
register int i;
struct PolygonRec * polygon_ptr;
! XPoint * v, * rv;
char color_str[20], * s, inbuf[MAXSTRING], msg[MAXSTRING];
int num_pts, ltx=0, lty=0, rbx=0, rby=0, x, y, id=0;
--- 736,740 ----
register int i;
struct PolygonRec * polygon_ptr;
! XPoint * v;
char color_str[20], * s, inbuf[MAXSTRING], msg[MAXSTRING];
int num_pts, ltx=0, lty=0, rbx=0, rby=0, x, y, id=0;
***************
*** 769,774 ****
{
v = (XPoint *) calloc (5, sizeof(XPoint));
! rv = (XPoint *) calloc (5, sizeof(XPoint));
! if (v == NULL || rv == NULL) fprintf (stderr, "Can not calloc().\n");
}
else
--- 769,773 ----
{
v = (XPoint *) calloc (5, sizeof(XPoint));
! if (v == NULL) fprintf (stderr, "Can not calloc().\n");
}
else
***************
*** 775,780 ****
{
v = (XPoint *) calloc (num_pts+1, sizeof(XPoint));
! rv = (XPoint *) calloc (num_pts+1, sizeof(XPoint));
! if (v == NULL || rv == NULL) fprintf (stderr, "Can not calloc().\n");
}
--- 774,778 ----
{
v = (XPoint *) calloc (num_pts+1, sizeof(XPoint));
! if (v == NULL) fprintf (stderr, "Can not calloc().\n");
}
***************
*** 790,794 ****
cfree (polygon_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 788,791 ----
***************
*** 820,824 ****
cfree (polygon_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 817,820 ----
***************
*** 885,889 ****
cfree (polygon_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 881,884 ----
***************
*** 913,917 ****
cfree (polygon_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 908,911 ----
***************
*** 934,938 ****
cfree (polygon_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 928,931 ----
***************
*** 951,955 ****
cfree (polygon_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 944,947 ----
***************
*** 969,973 ****
cfree (polygon_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 961,964 ----
***************
*** 988,992 ****
cfree (polygon_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 979,982 ----
***************
*** 1008,1012 ****
cfree (polygon_ptr);
cfree (v);
- cfree (rv);
*ObjPtr = NULL;
return;
--- 998,1001 ----
***************
*** 1026,1030 ****
polygon_ptr->vlist = v;
- polygon_ptr->rvlist = rv;
polygon_ptr->svlist = NULL;
--- 1015,1018 ----
***************
*** 1053,1059 ****
struct ObjRec * ObjPtr;
{
! if (ObjPtr->detail.g->curved) cfree (ObjPtr->detail.g->svlist);
cfree (ObjPtr->detail.g->vlist);
- cfree (ObjPtr->detail.g->rvlist);
cfree (ObjPtr->detail.g);
cfree (ObjPtr);
--- 1041,1046 ----
struct ObjRec * ObjPtr;
{
! if (ObjPtr->detail.g->svlist != NULL) cfree (ObjPtr->detail.g->svlist);
cfree (ObjPtr->detail.g->vlist);
cfree (ObjPtr->detail.g);
cfree (ObjPtr);
*** raster.c.orig Wed Jan 6 22:07:46 1993
--- raster.c Wed Jan 6 22:07:47 1993
***************
*** 25,29 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/raster.c,v 2.42 1992/06/19 05:41:12 william Exp $";
#endif
--- 25,29 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/raster.c,v 2.42.1.2 1992/12/21 00:27:27 william Exp $";
#endif
***************
*** 168,171 ****
--- 168,172 ----
#include "xbm/unconst_move.xbm"
#include "xbm/edit.xbm"
+ #include "xbm/intr.xbm"
#include "xbm/rotate_0.xbm"
***************
*** 203,206 ****
--- 204,209 ----
Pixmap moveModePixmap[MAXMOVEMODES];
Pixmap editPixmap;
+ Pixmap intrPixmap;
+
Pixmap rotatePixmap[4];
Pixmap whereToPrintPixmap[MAXWHERETOPRINT];
***************
*** 557,560 ****
--- 560,566 ----
edit_bits, edit_width, edit_height);
+ intrPixmap = XCreateBitmapFromData (mainDisplay, mainWindow,
+ intr_bits, intr_width, intr_height);
+
rotatePixmap[0] = XCreateBitmapFromData (mainDisplay, mainWindow,
rotate_0_bits, rotate_0_width, rotate_0_height);
***************
*** 694,697 ****
--- 700,704 ----
XFreePixmap (mainDisplay, moveModePixmap[i]);
XFreePixmap (mainDisplay, editPixmap);
+ XFreePixmap (mainDisplay, intrPixmap);
for (i = 0; i < 4; i++)
XFreePixmap (mainDisplay, rotatePixmap[i]);
*** select.c.orig Wed Jan 6 22:07:52 1993
--- select.c Wed Jan 6 22:07:54 1993
***************
*** 25,29 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/select.c,v 2.70.1.5 1992/12/06 23:53:20 william Exp $";
#endif
--- 25,29 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/select.c,v 2.70.1.7 1993/01/03 23:45:28 william Exp $";
#endif
***************
*** 66,71 ****
struct VSelRec * topVSel = NULL, * botVSel = NULL;
- static struct SelRec * topCutSel = NULL, * botCutSel = NULL;
-
void CalcBBox (X1, Y1, X2, Y2, LtX, LtY, RbX, RbY)
int X1, Y1, X2, Y2, * LtX, * LtY, * RbX, * RbY;
--- 66,69 ----
***************
*** 1320,1327 ****
{
register char * c_ptr, * buf_ptr;
! char * start_ptr, * new_c_ptr;
char buf[MAXSTRING+1], * cmd, * cmd_ptr;
! int cur_size=2*MAXSTRING, count=0, cmd_len=0;
struct AttrRec * attr_ptr;
cmd = (char *) calloc (cur_size+1, sizeof(char));
--- 1318,1327 ----
{
register char * c_ptr, * buf_ptr;
! char * new_c_ptr;
char buf[MAXSTRING+1], * cmd, * cmd_ptr;
! int cur_size=2*MAXSTRING, count=0, cmd_len=0, n;
! int first_time=TRUE;
struct AttrRec * attr_ptr;
+ struct StrRec * str_ptr;
cmd = (char *) calloc (cur_size+1, sizeof(char));
***************
*** 1328,1392 ****
cmd_ptr = cmd;
buf_ptr = buf;
! for (start_ptr = c_ptr = launch_attr->s; *c_ptr != '\0'; c_ptr++, count++)
{
! switch (*c_ptr)
{
! case '\\':
! c_ptr++;
! *buf_ptr++ = *c_ptr;
! break;
! case '$':
! if (count != 0)
! {
! *buf_ptr = '\0';
if (count+cmd_len >= cur_size)
{
! int n=cmd_ptr-cmd;
!
cur_size += MAXSTRING;
! cmd = (char *) realloc (cmd, (cur_size+1)*sizeof(char));
cmd_ptr = cmd+n;
}
! strcpy (cmd_ptr, buf);
cmd_ptr += count;
! count = 0;
! buf_ptr = buf;
! }
! if ((attr_ptr = ValidAttrArg (c_ptr, obj_ptr, &new_c_ptr)) == NULL)
! {
! cfree (cmd);
! return;
! }
! count = strlen (attr_ptr->s);
! if (count+cmd_len >= cur_size)
! {
! int n=cmd_ptr-cmd;
!
! cur_size += MAXSTRING;
! cmd = (char *) realloc (cmd, (cur_size+1)*sizeof(char));
! cmd_ptr = cmd+n;
! }
! strcpy (cmd_ptr, attr_ptr->s);
! cmd_ptr += count;
! count = -1;
! c_ptr = new_c_ptr;
! break;
! default:
! *buf_ptr++ = *c_ptr;
! break;
}
! }
! if (count != 0)
! {
! *buf_ptr = '\0';
! if (count+cmd_len >= cur_size)
{
! int n=cmd_ptr-cmd;
!
! cur_size += MAXSTRING;
! cmd = (char *) realloc (cmd, (cur_size+1)*sizeof(char));
! cmd_ptr = cmd+n;
}
! strcpy (cmd_ptr, buf);
}
LaunchIt (cmd);
--- 1328,1400 ----
cmd_ptr = cmd;
buf_ptr = buf;
! for (str_ptr = launch_attr->obj->detail.t->first; str_ptr != NULL;
! str_ptr = str_ptr->next)
{
! if (first_time)
{
! first_time = FALSE;
! c_ptr = launch_attr->s;
! }
! else
! c_ptr = str_ptr->s;
!
! for ( ; *c_ptr != '\0'; c_ptr++, count++)
! {
! switch (*c_ptr)
! {
! case '\\': c_ptr++; *buf_ptr++ = *c_ptr; break;
! case '$':
! if (count != 0)
! {
! *buf_ptr = '\0';
! if (count+cmd_len >= cur_size)
! {
! n = cmd_ptr-cmd;
! cur_size += MAXSTRING;
! cmd = (char *) realloc (cmd, (cur_size+2)*sizeof(char));
! cmd_ptr = cmd+n;
! }
! strcpy (cmd_ptr, buf);
! cmd_ptr += count;
! count = 0;
! buf_ptr = buf;
! }
! if ((attr_ptr = ValidAttrArg(c_ptr,obj_ptr,&new_c_ptr)) == NULL)
! {
! cfree (cmd);
! return;
! }
! count = strlen (attr_ptr->s);
if (count+cmd_len >= cur_size)
{
! n = cmd_ptr-cmd;
cur_size += MAXSTRING;
! cmd = (char *) realloc (cmd, (cur_size+2)*sizeof(char));
cmd_ptr = cmd+n;
}
! strcpy (cmd_ptr, attr_ptr->s);
cmd_ptr += count;
! count = -1;
! c_ptr = new_c_ptr;
! break;
! default: *buf_ptr++ = *c_ptr; break;
! }
}
! if (count != 0)
{
! *buf_ptr = '\0';
! if (count+cmd_len >= cur_size)
! {
! n = cmd_ptr-cmd;
! cur_size += MAXSTRING;
! cmd = (char *) realloc (cmd, (cur_size+2)*sizeof(char));
! cmd_ptr = cmd+n;
! }
! strcpy (cmd_ptr, buf);
! cmd_ptr += count;
! count = 0;
! buf_ptr = buf;
}
! if (str_ptr->next != NULL) { *cmd_ptr++ = ' '; *cmd_ptr = '\0'; }
}
LaunchIt (cmd);
*** setup.c.orig Wed Jan 6 22:08:01 1993
--- setup.c Wed Jan 6 22:08:02 1993
***************
*** 25,29 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/setup.c,v 2.100.2.3 1992/11/29 23:59:22 william Exp $";
#endif
--- 25,29 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/setup.c,v 2.100.2.9 1993/01/04 02:51:43 william Exp $";
#endif
***************
*** 165,169 ****
short handleSize=3;
! static Window dummyWindow1, dummyWindow2;
static Atom protocolAtom;
--- 165,169 ----
short handleSize=3;
! Window dummyWindow1, dummyWindow2;
static Atom protocolAtom;
***************
*** 276,280 ****
Msg (msg);
}
! XFree (c_ptr);
}
--- 276,280 ----
Msg (msg);
}
! XFree ((void *)c_ptr);
}
***************
*** 346,350 ****
titleWindowH+choiceWindowH+rulerW+drawWinH+8*brdrW, hSBarW,
scrollBarW);
! XMoveWindow (mainDisplay, dummyWindow1, drawWinW+rulerW+4*brdrW,
titleWindowH+choiceWindowH+rulerW+drawWinH+8*brdrW);
}
--- 346,350 ----
titleWindowH+choiceWindowH+rulerW+drawWinH+8*brdrW, hSBarW,
scrollBarW);
! XMoveWindow (mainDisplay, dummyWindow2, drawWinW+rulerW+4*brdrW,
titleWindowH+choiceWindowH+rulerW+drawWinH+8*brdrW);
}
***************
*** 597,600 ****
--- 597,604 ----
groupedTextEditable = TRUE;
}
+ intrCheckInterval = 10;
+ if ((c_ptr = XGetDefault (mainDisplay, TOOL_NAME,
+ "IntrCheckInterval")) != NULL)
+ intrCheckInterval = atoi (c_ptr);
strcpy (scanFileName, "No File");
***************
*** 806,810 ****
}
! if ((dummyWindow1 = XCreateSimpleWindow (mainDisplay, mainWindow,
rulerW+drawWinW+4*brdrW,
titleWindowH+choiceWindowH+rulerW+drawWinH+8*brdrW,
--- 810,814 ----
}
! if ((dummyWindow2 = XCreateSimpleWindow (mainDisplay, mainWindow,
rulerW+drawWinW+4*brdrW,
titleWindowH+choiceWindowH+rulerW+drawWinH+8*brdrW,
***************
*** 812,816 ****
{ fprintf (stderr, "Could not create dummy window!\n"); exit(1); }
! if ((dummyWindow2 = XCreateSimpleWindow (mainDisplay, mainWindow, 0,
titleWindowH+choiceWindowH+4*brdrW, rulerW, rulerW,
brdrW, myBorderPixel, myBgPixel)) == 0)
--- 816,820 ----
{ fprintf (stderr, "Could not create dummy window!\n"); exit(1); }
! if ((dummyWindow1 = XCreateSimpleWindow (mainDisplay, mainWindow, 0,
titleWindowH+choiceWindowH+4*brdrW, rulerW, rulerW,
brdrW, myBorderPixel, myBgPixel)) == 0)
***************
*** 897,900 ****
--- 901,906 ----
XMapWindow (mainDisplay, hSBarWindow);
XSelectInput (mainDisplay, hSBarWindow, ButtonPressMask | ExposureMask);
+ XMapWindow (mainDisplay, dummyWindow1);
+ XSelectInput (mainDisplay, dummyWindow1, ButtonPressMask | ExposureMask);
}
#else
***************
*** 933,936 ****
--- 939,944 ----
XSelectInput (mainDisplay, hSBarWindow, ButtonPressMask | ExposureMask);
XMapWindow (mainDisplay, hSBarWindow);
+ XSelectInput (mainDisplay, dummyWindow1, ButtonPressMask | ExposureMask);
+ XMapWindow (mainDisplay, dummyWindow1);
}
#endif
***************
*** 938,942 ****
if (!canvasWindowOnly)
{
- XMapWindow (mainDisplay, dummyWindow1);
XMapWindow (mainDisplay, dummyWindow2);
}
--- 946,949 ----
*** special.c.orig Wed Jan 6 22:08:07 1993
--- special.c Wed Jan 6 22:08:08 1993
***************
*** 25,29 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/special.c,v 2.60 1992/03/31 07:56:57 william Exp $";
#endif
--- 25,29 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/special.c,v 2.60.1.1 1992/12/22 04:34:08 william Exp $";
#endif
***************
*** 248,252 ****
--- 248,254 ----
MoveObj (ObjPtr, grid_dx, grid_dy);
numRedrawBBox = 0;
+ ShowInterrupt ();
DrawObj (drawWindow, ObjPtr);
+ HideInterrupt ();
}
else if (input.type == MotionNotify)
*** stk.c.orig Wed Jan 6 22:08:12 1993
--- stk.c Wed Jan 6 22:08:13 1993
***************
*** 25,29 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/stk.c,v 2.37.1.2 1992/10/21 05:00:55 william Exp $";
#endif
--- 25,29 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/stk.c,v 2.37.1.5 1992/12/22 05:43:04 william Exp $";
#endif
***************
*** 81,85 ****
int read_status, short_name;
FILE * fp;
! int tmp_linenum;
char tmp_filename[MAXPATHLENGTH];
--- 81,85 ----
int read_status, short_name;
FILE * fp;
! int tmp_linenum, interrupted;
char tmp_filename[MAXPATHLENGTH];
***************
*** 193,197 ****
--- 193,200 ----
SetWatchCursor (mainWindow);
numRedrawBBox = 0;
+ ShowInterrupt ();
+ interrupted = FALSE;
while ((read_status = ReadObj (fp, &obj_ptr)) == TRUE)
+ {
if (obj_ptr != NULL)
{
***************
*** 198,205 ****
AdjForOldVersion (obj_ptr);
AddObj (NULL, topObj, obj_ptr);
! if (PointInBBox (obj_ptr->x, obj_ptr->y, drawWinBBox) ||
! BBoxIntersect (obj_ptr->bbox, drawWinBBox))
! DrawObj (drawWindow, obj_ptr);
}
strcpy (scanFileName, tmp_filename);
--- 201,215 ----
AdjForOldVersion (obj_ptr);
AddObj (NULL, topObj, obj_ptr);
! if (!interrupted &&
! (PointInBBox (obj_ptr->x, obj_ptr->y, drawWinBBox) ||
! BBoxIntersect (obj_ptr->bbox, drawWinBBox)))
! {
! if (!DrawObj (drawWindow, obj_ptr)) interrupted = TRUE;
! if (CheckInterrupt ()) interrupted = TRUE;
! }
}
+ }
+ if (interrupted) Msg ("User interrupt. Drawing aborted.");
+ HideInterrupt ();
strcpy (scanFileName, tmp_filename);
*** text.c.orig Wed Jan 6 22:08:21 1993
--- text.c Wed Jan 6 22:08:24 1993
***************
*** 25,29 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/text.c,v 2.110 1992/10/21 05:14:30 william Exp $";
#endif
--- 25,29 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/text.c,v 2.111 1992/12/20 01:34:19 william Exp $";
#endif
***************
*** 1969,1972 ****
--- 1969,1974 ----
ScrollTo (textCurX, textCurY);
}
+
+ #define TGIF_HEADER 0x80
static XComposeStatus c_stat;
***************
*** 1975,1981 ****
XEvent * input;
{
! char s[80];
! XKeyEvent * key_ev;
! KeySym key_sym;
if (input->type == ButtonPress)
--- 1977,1983 ----
XEvent * input;
{
! char s[80];
! XKeyEvent * key_ev;
! KeySym key_sym;
if (input->type == ButtonPress)
***************
*** 1984,1987 ****
--- 1986,2027 ----
{
if (!textCursorShown) return;
+
+ if (pasteInDrawTextMode)
+ {
+ char * c_ptr, * cut_buffer;
+ int len;
+
+ pasteInDrawTextMode = FALSE;
+ cut_buffer = (char *) XFetchBytes (mainDisplay, &len);
+ if (len == 0) { Msg ("Cut buffer is empty."); return; }
+
+ if (escPressed)
+ {
+ escPressed = FALSE;
+ Msg ("An <ESC> key press is ignored.");
+ }
+ s[1] = '\0';
+ EraseTextCursor ();
+ for (c_ptr = cut_buffer; *c_ptr != '\0'; c_ptr++)
+ {
+ s[0] = *c_ptr;
+ switch (s[0])
+ {
+ case '\r':
+ case '\n': HandleCRLF (colorIndex); break;
+
+ case '\177': Msg ("Can not paste <DEL>."); break;
+ case '\b': Msg ("Can not paste <BS>."); break;
+ case '\033': Msg ("Can not paste <ESC>."); break;
+ case '\t': Msg ("Can not paste <TAB>."); break;
+
+ default: HandleChar (s, colorIndex); break;
+ }
+ }
+ PutTextCursor ();
+ MarkRulers (textCurX, textCurY);
+ SetFileModified (TRUE);
+ return;
+ }
key_ev = &(input->xkey);
*** xbitmap.c.orig Wed Jan 6 22:08:31 1993
--- xbitmap.c Wed Jan 6 22:08:33 1993
***************
*** 25,29 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/xbitmap.c,v 2.116 1992/11/24 06:02:46 william Exp $";
#endif
--- 25,29 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/xbitmap.c,v 2.117 1993/01/03 22:51:20 william Exp $";
#endif
***************
*** 2373,2379 ****
xbm_ptr->cached_zoom = 0;
if (xbm_ptr->data != NULL) cfree (xbm_ptr->data);
if (xbm_ptr->real_type == XBM_EPS)
{
- if (xbm_ptr->filename != NULL) cfree (xbm_ptr->filename);
for (i = 0; i < xbm_ptr->num_epsf_lines; i++)
if (xbm_ptr->epsflines[i] != NULL)
--- 2373,2379 ----
xbm_ptr->cached_zoom = 0;
if (xbm_ptr->data != NULL) cfree (xbm_ptr->data);
+ if (xbm_ptr->filename != NULL) cfree (xbm_ptr->filename);
if (xbm_ptr->real_type == XBM_EPS)
{
for (i = 0; i < xbm_ptr->num_epsf_lines; i++)
if (xbm_ptr->epsflines[i] != NULL)
*** xpixmap.c.orig Wed Jan 6 22:08:40 1993
--- xpixmap.c Wed Jan 6 22:08:42 1993
***************
*** 25,29 ****
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/xpixmap.c,v 2.119 1992/11/26 23:48:45 william Exp $";
#endif
--- 25,29 ----
#ifndef lint
static char RCSid[] =
! "@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/xpixmap.c,v 2.120 1992/12/18 05:34:11 william Exp $";
#endif
***************
*** 935,942 ****
fprintf (FP, "%c", hexValue[(pixel_index>>4)&0x0f]);
fprintf (FP, "%c", hexValue[pixel_index&0x0f]);
! if (col%36 == 35) fprintf (FP, "\n ");
}
if (col%36 != 0) fprintf (FP, "\n");
! if (row != image_h-1) fprintf (FP, " ");
}
}
--- 935,944 ----
fprintf (FP, "%c", hexValue[(pixel_index>>4)&0x0f]);
fprintf (FP, "%c", hexValue[pixel_index&0x0f]);
! if (col%36 == 35)
! fprintf (FP, "\n%s",
! (col==image_w-1 && row==image_h-1) ? "" : " ");
}
if (col%36 != 0) fprintf (FP, "\n");
! if (row != image_h-1 && (col%36) != 0) fprintf (FP, " ");
}
}
*** copypaste.e.orig Wed Jan 6 22:08:44 1993
--- copypaste.e Wed Jan 6 22:08:45 1993
***************
*** 24,28 ****
* Copyright (C) 1990, 1991, 1992, William Cheng.
*
! * @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/copypaste.e,v 2.6 1992/03/31 07:59:57 william Exp $
*/
--- 24,28 ----
* Copyright (C) 1990, 1991, 1992, William Cheng.
*
! * @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/copypaste.e,v 2.7 1992/12/20 00:54:04 william Exp $
*/
***************
*** 30,33 ****
extern void CopyToCutBuffer ();
! extern void PasteFromCutBuffer ();
extern void CleanUpCutBuffer ();
--- 30,33 ----
extern void CopyToCutBuffer ();
! extern int PasteFromCutBuffer ();
extern void CleanUpCutBuffer ();
*** drawing.e.orig Wed Jan 6 22:08:47 1993
--- drawing.e Wed Jan 6 22:08:48 1993
***************
*** 23,29 ****
* PERFORMANCE OF THIS SOFTWARE.
*
! * @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/drawing.e,v 2.9 1992/08/11 03:58:27 william Exp $
*/
extern int numRedrawBBox;
extern int numClipRecs;
--- 23,31 ----
* PERFORMANCE OF THIS SOFTWARE.
*
! * @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/drawing.e,v 2.14 1992/12/21 00:51:44 william Exp $
*/
+ extern int intrCheckInterval;
+ extern int pasteInDrawTextMode;
extern int numRedrawBBox;
extern int numClipRecs;
***************
*** 33,37 ****
extern void SetDefaultDrawWinClipRecs ();
extern void SetDefaultIconWinClipRecs ();
! extern void DrawObj ();
extern void DrawPaperBoundary ();
extern void RedrawAnArea ();
--- 35,43 ----
extern void SetDefaultDrawWinClipRecs ();
extern void SetDefaultIconWinClipRecs ();
! extern void ShowInterrupt ();
! extern void HideInterrupt ();
! extern void RedrawDummyWindow1 ();
! extern int CheckInterrupt ();
! extern int DrawObj ();
extern void DrawPaperBoundary ();
extern void RedrawAnArea ();
*** raster.e.orig Wed Jan 6 22:08:52 1993
--- raster.e Wed Jan 6 22:08:52 1993
***************
*** 23,27 ****
* PERFORMANCE OF THIS SOFTWARE.
*
! * @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/raster.e,v 2.24 1992/03/31 08:02:16 william Exp $
*/
--- 23,27 ----
* PERFORMANCE OF THIS SOFTWARE.
*
! * @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/raster.e,v 2.25 1992/12/21 00:25:13 william Exp $
*/
***************
*** 55,58 ****
--- 55,59 ----
extern Pixmap moveModePixmap[];
extern Pixmap editPixmap;
+ extern Pixmap intrPixmap;
extern Pixmap rotatePixmap[];
*** setup.e.orig Wed Jan 6 22:08:55 1993
--- setup.e Wed Jan 6 22:08:55 1993
***************
*** 23,27 ****
* PERFORMANCE OF THIS SOFTWARE.
*
! * @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/setup.e,v 2.13 1992/03/31 08:02:48 william Exp $
*/
--- 23,27 ----
* PERFORMANCE OF THIS SOFTWARE.
*
! * @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/setup.e,v 2.14 1992/12/21 00:20:18 william Exp $
*/
***************
*** 64,67 ****
--- 64,68 ----
extern Window iconWindow;
extern Window iconBaseWindow;
+ extern Window dummyWindow1, dummyWindow2;
extern int paperWidth;
*** patchlevel.h.orig Wed Jan 6 22:08:58 1993
--- patchlevel.h Wed Jan 6 22:08:59 1993
***************
*** 23,28 ****
* PERFORMANCE OF THIS SOFTWARE.
*
! * @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/patchlevel.h,v 2.29.1.4 1992/11/29 01:49:45 william Exp $
*/
! #define TGIF_PATCHLEVEL 15
--- 23,28 ----
* PERFORMANCE OF THIS SOFTWARE.
*
! * @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/patchlevel.h,v 2.29.1.5 1992/12/14 06:33:01 william Exp $
*/
! #define TGIF_PATCHLEVEL 16
*** types.h.orig Wed Jan 6 22:09:02 1993
--- types.h Wed Jan 6 22:09:03 1993
***************
*** 23,27 ****
* PERFORMANCE OF THIS SOFTWARE.
*
! * @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/types.h,v 2.71 1992/08/08 08:27:29 william Exp $
*/
--- 23,27 ----
* PERFORMANCE OF THIS SOFTWARE.
*
! * @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/types.h,v 2.71.1.1 1993/01/03 23:23:40 william Exp $
*/
***************
*** 78,82 ****
int n; /* number of points in the polyline */
XPoint * vlist;
- XPoint * rvlist; /* rotated vlist */
int sn; /* number of points in the spline polyline */
XPoint * svlist;
--- 78,81 ----
***************
*** 89,93 ****
int n; /* number of points in the polygon */
XPoint * vlist;
- XPoint * rvlist; /* rotated vlist */
int sn; /* number of points in the spline polygon */
XPoint * svlist;
--- 88,91 ----
***************
*** 97,101 ****
typedef struct BoxRec {
int fill, width, pen, dash;
- XPoint * rvlist; /* rotated vlist */
} * BoxRecPtr;
--- 95,98 ----
***************
*** 179,183 ****
typedef struct RCBoxRec {
int fill, width, pen, dash, radius;
- XPoint * rvlist; /* rotated vlist */
} * RCBoxRecPtr;
--- 176,179 ----
*** Makefile.noimake.orig Wed Jan 6 22:09:06 1993
--- Makefile.noimake Wed Jan 6 22:09:08 1993
***************
*** 23,27 ****
# PERFORMANCE OF THIS SOFTWARE.
#
! # @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/Makefile.noimake,v 2.131.1.8 1992/11/29 07:09:55 william Exp $
#
--- 23,27 ----
# PERFORMANCE OF THIS SOFTWARE.
#
! # @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/Makefile.noimake,v 2.131.1.12 1993/01/03 01:48:39 william Exp $
#
***************
*** 157,160 ****
--- 157,161 ----
\
xbm/rcbradius.xbm xbm/const_move.xbm xbm/unconst_move.xbm \
+ xbm/edit.xbm xbm/intr.xbm \
\
xbm/rotate_0.xbm xbm/rotate_90.xbm xbm/rotate_180.xbm xbm/rotate_270.xbm
***************
*** 212,217 ****
select.e setup.e text.e xpixmap.e
copypaste.o: const.h types.h \
! auxtext.e box.e choice.e cmd.e color.e cursor.e dup.e file.e \
! font.e move.e obj.e pattern.e select.e setup.e special.e text.e
cursor.o: const.h types.h $(CURSOR_BM) \
choice.e color.e setup.e xbitmap.e
--- 213,219 ----
select.e setup.e text.e xpixmap.e
copypaste.o: const.h types.h \
! auxtext.e box.e choice.e cmd.e color.e cursor.e drawing.e \
! dup.e file.e font.e move.e obj.e pattern.e select.e setup.e \
! special.e text.e
cursor.o: const.h types.h $(CURSOR_BM) \
choice.e color.e setup.e xbitmap.e
*** Imakefile.orig Wed Jan 6 22:09:11 1993
--- Imakefile Wed Jan 6 22:09:12 1993
***************
*** 23,30 ****
/**/# PERFORMANCE OF THIS SOFTWARE.
/**/#
! /**/# @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/Imakefile,v 2.84.1.8 1992/12/07 00:27:40 william Exp $
/**/#
! TGIFVERSION = 2.12-p15
PROGRAMS = tgif prtgif /**/#frontend11.o testdrive
/**/#CDEBUGFLAGS= -g
--- 23,30 ----
/**/# PERFORMANCE OF THIS SOFTWARE.
/**/#
! /**/# @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/Imakefile,v 2.84.1.9 1992/12/21 01:46:05 william Exp $
/**/#
! TGIFVERSION = 2.12-p16
PROGRAMS = tgif prtgif /**/#frontend11.o testdrive
/**/#CDEBUGFLAGS= -g
*** tgif.man.orig Wed Jan 6 22:09:17 1993
--- tgif.man Wed Jan 6 22:09:20 1993
***************
*** 1,4 ****
! .\"@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/tgif.man,v 2.132 1992/11/29 23:58:54 william Exp $
! .TH TGIF n "Version 2.12-p15 and Above" "Tgif"
.SH NAME
\fItgif\fR \- Xlib based interactive 2-D drawing facility under X11.
--- 1,4 ----
! .\"@(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/tgif.man,v 2.136 1992/12/22 05:36:07 william Exp $
! .TH TGIF n "Version 2.12-p16 and Above" "Tgif"
.SH NAME
\fItgif\fR \- Xlib based interactive 2-D drawing facility under X11.
***************
*** 423,426 ****
--- 423,437 ----
units any more.
.TP
+ .I Interrupt Window
+ .br
+ This window is right below the Message Window and to the left of the
+ horizontal ruler. When the Tgif*IntrCheckInterval X default has a
+ positive value, an interrupt icon is visible when the Canvas Window
+ is being redrawn. If the user clicks on this window when the
+ interrupt icon is visible, tgif aborts the repainting of the objects.
+ If this is done when a file is being opened (either through Open()
+ or Push()), the drawing of objects is stopped, but the reading of
+ the file continues (reading of the file is not aborted).
+ .TP
.I Popup Menus
.br
***************
*** 1251,1254 ****
--- 1262,1270 ----
(which is 128/72).
The default value is 1.
+ .TP
+ .I Tgif*IntrCheckInterval: NUMBER
+ This specifies the number of objects drawn before tgif checks for
+ interrupts. If this is set to be 0 or less, interrupt is not allowed.
+ The default value is 10.
.TP
.I Tgif*MaxColors: NUMBER
*** HISTORY.orig Wed Jan 6 22:09:28 1993
--- HISTORY Wed Jan 6 22:09:29 1993
***************
*** 1,5 ****
/*
! * @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/HISTORY,v 2.39 1992/12/07 00:58:38 william Exp $
*/
-----------------------> tgif-2.12-p14 => tgif-2.12-p15 <-----------------------
I've just put tgif-2.12-patch15 (15 patch for tgif-2.12) in the
--- 1,26 ----
/*
! * @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/HISTORY,v 2.40 1993/01/04 01:06:09 william Exp $
*/
+ -----------------------> tgif-2.12-p15 => tgif-2.12-p16 <-----------------------
+ I've just put tgif-2.12-patch16 (16 patch for tgif-2.12) in the
+ following places for anonymous ftp:
+
+ export.lcs.mit.edu:/contrib/tgif-2.12-patch16.Z
+ cs.ucla.edu:/pub/tgif/tgif-2.12-patch16.Z
+
+ The patch is also posted to comp.sources.bugs.
+
+ Please uncompress and then apply the patch with
+ 'patch -p -N < tgif-2.12-patch16'.
+ Here's a short list of added features/bug fixes.
+
+ 1) Allow the launch= attribute to be multiline.
+ 2) Make pasting work in text mode. The default paste command is still
+ <Cntrl><Meta>y.
+ 3) Add user interrupt when redrawing. Add a new X default,
+ Tgif*IntrCheckInterval to define the number of objects drawn before
+ checking for user interrupt.
+ 4) Fix some memory leaks. Thanks to Mark Sterin <mark@FibHaifa.com> for
+ the fixes.
-----------------------> tgif-2.12-p14 => tgif-2.12-p15 <-----------------------
I've just put tgif-2.12-patch15 (15 patch for tgif-2.12) in the
*** descrip.mms.orig Wed Jan 6 22:09:33 1993
--- descrip.mms Wed Jan 6 22:09:34 1993
***************
*** 6,10 ****
! $ DEFINE SYS SYS$LIBRARY
!
! ! @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/descrip.mms,v 2.124.1.6 1992/11/29 07:09:55 william Exp $
!
--- 6,10 ----
! $ DEFINE SYS SYS$LIBRARY
!
! ! @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/descrip.mms,v 2.124.1.10 1993/01/03 01:49:13 william Exp $
!
***************
*** 132,135 ****
--- 132,136 ----
-
xbm/rcbradius.xbm,xbm/const_move.xbm,xbm/unconst_move.xbm,-
+ xbm/edit.xbm,xbm/intr.xbm,-
-
xbm/rotate_0.xbm,xbm/rotate_90.xbm,xbm/rotate_180.xbm,xbm/rotate_270.xbm
***************
*** 186,191 ****
select.e,setup.e,text.e,xpixmap.e
copypaste.obj depends_on copypaste.c, const.h,types.h,-
! auxtext.e,box.e,choice.e,cmd.e,color.e,cursor.e,dup.e,file.e,-
! font.e,move.e,obj.e,pattern.e,select.e,setup.e,special.e,text.e
cursor.obj depends_on cursor.c, const.h,types.h,$(CURSOR_BM),-
choice.e,color.e,setup.e,xbitmap.e
--- 187,193 ----
select.e,setup.e,text.e,xpixmap.e
copypaste.obj depends_on copypaste.c, const.h,types.h,-
! auxtext.e,box.e,choice.e,cmd.e,color.e,cursor.e,drawing.e,-
! dup.e,file.e,font.e,move.e,obj.e,pattern.e,select.e,setup.e,-
! special.e,text.e
cursor.obj depends_on cursor.c, const.h,types.h,$(CURSOR_BM),-
choice.e,color.e,setup.e,xbitmap.e
*** xbm/intr.xbm.orig Wed Jan 6 22:09:36 1993
--- xbm/intr.xbm Wed Jan 6 22:09:37 1993
***************
*** 0 ****
--- 1,11 ----
+ /*
+ * @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/xbm/RCS/intr.xbm,v 2.0 1992/12/21 02:19:11 william Exp $
+ */
+ #define intr_width 16
+ #define intr_height 16
+ #define intr_x_hot 0
+ #define intr_y_hot 0
+ static char intr_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xe0,
+ 0x00, 0xf8, 0x00, 0xf0, 0xc0, 0xf9, 0xe0, 0x99, 0xe0, 0x0d, 0xb0, 0x0f,
+ 0x98, 0x07, 0x9c, 0x03, 0x0c, 0x00, 0x00, 0x00};
*** tgif.Xdefaults.orig Wed Jan 6 22:09:39 1993
--- tgif.Xdefaults Wed Jan 6 22:09:39 1993
***************
*** 3,7 ****
! suitable for appending to any .Xdefaults file.
!
! ! @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/tgif.Xdefaults,v 2.30 1992/11/24 03:51:15 william Exp $
!
Tgif*Geometry: 640x512-40+20
--- 3,7 ----
! suitable for appending to any .Xdefaults file.
!
! ! @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/tgif.Xdefaults,v 2.32 1992/12/21 01:36:41 william Exp $
!
Tgif*Geometry: 640x512-40+20
***************
*** 86,89 ****
--- 86,90 ----
Tgif*DefaultEPSScaling: 1
!Tgif*DefaultEPSScaling: 1.7778
+ Tgif*IntrCheckInterval: 10
!
Tgif*MaxColors: 11
*** launch-demo-1.obj.orig Wed Jan 6 22:09:41 1993
--- launch-demo-1.obj Wed Jan 6 22:09:42 1993
***************
*** 1,6 ****
! %TGIF 2.12-p15
state(0,27,100,0,0,0,8,1,0,2,0,0,0,1,0,1,0,0,0,3,1,0,0,10,0,0,1,1,0,16,1).
%
! % @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/launch-demo-1.obj,v 2.0 1992/12/07 00:24:47 william Exp $
% %W%
%
--- 1,6 ----
! %TGIF 2.12-p16
state(0,27,100,0,0,0,8,1,0,2,0,0,0,1,0,1,0,0,0,3,1,0,0,10,0,0,1,1,0,16,1).
%
! % @(#)$Header: /amnt/kona/tangram/u/william/X11/TGIF2/RCS/launch-demo-1.obj,v 2.1 1993/01/04 02:28:39 william Exp $
% %W%
%
***************
*** 34,46 ****
]).
group([
! text('green',88,320,0,0,3,7,0,0,1,292,166,648,1,18,4,0,2,0,0,[
"To get a fancier look. Select an",
"object and type <Meta>m.",
! "Then use left button to get a popup",
! "menu; select an attribute; click right",
! "button to hide the attribute or click",
! "the middle button to hide the attribute",
"name."]),
! text('green',64,320,0,0,3,1,0,0,1,16,22,649,1,18,4,0,0,0,0,[
"3)"])
],
--- 34,47 ----
]).
group([
! text('green',88,312,0,0,3,8,0,0,1,246,190,648,1,18,4,0,2,0,0,[
"To get a fancier look. Select an",
"object and type <Meta>m.",
! "Then use left button to get a",
! "popup menu; select an attribute;",
! "click right button to hide the",
! "attribute or click the middle",
! "button to hide the attribute",
"name."]),
! text('green',64,312,0,0,3,1,0,0,1,16,22,649,1,18,4,0,0,0,0,[
"3)"])
],
***************
*** 84,86 ****
--- 85,132 ----
text('blue',512,128,2,0,5,1,1,0,1,166,29,54,0,24,5,0,0,0,0,[
"name=example"]))
+ ]).
+ group([
+ polygon('cyan',5,[
+ 502,448,493,480,547,480,556,448,502,448],2,1,0,0,1465,0,0,0,[
+ ]),
+ polygon('cyan',5,[
+ 493,480,484,512,538,512,547,480,493,480],2,1,0,0,1466,0,0,0,[
+ ]),
+ poly('cyan',2,[
+ 502,448,556,448],0,1,1,1467,0,0,0,0,8,3,0,[
+ ]),
+ poly('cyan',2,[
+ 484,512,538,512],0,1,1,1468,0,0,0,0,8,3,0,[
+ ]),
+ poly('cyan',3,[
+ 502,448,484,464,493,480],0,1,1,1469,1,2,0,0,8,3,0,[
+ ]),
+ poly('cyan',3,[
+ 484,512,502,496,493,480],0,1,1,1470,1,2,0,0,8,3,0,[
+ ]),
+ poly('cyan',3,[
+ 556,448,538,464,547,480],0,1,1,1471,1,2,0,0,8,3,0,[
+ ]),
+ poly('cyan',3,[
+ 538,512,556,496,547,480],0,1,1,1472,1,2,0,0,8,3,0,[
+ ])
+ ],
+ 1464,0,[
+ attr("page=", "1", 1, 1, 0,
+ text('magenta',520,452,2,2,5,1,1,0,1,82,29,1473,0,24,5,0,0,0,0,[
+ "page=1"])),
+ attr("dir=", "/u/tangram/u/william/X11/TGIF2", 1, 1, 0,
+ text('yellow',520,512,0,0,3,1,1,0,1,289,22,1474,1,18,4,0,0,0,0,[
+ "dir=/u/tangram/u/william/X11/TGIF2"])),
+ attr("launch=", "cd $(dir);", 1, 1, 0,
+ text('yellow',512,384,0,0,3,3,1,0,1,370,66,1475,1,18,4,0,0,0,0,[
+ "launch=cd $(dir);",
+ "dvips -N -n 1 -p $(page) $(name) > $(tmpfile);",
+ "xterm -geom 40x8+200+400 -e gs $(tmpfile) &"])),
+ attr("name=", "example", 1, 1, 0,
+ text('green',524,476,2,0,5,1,1,0,1,166,29,1476,0,24,5,0,0,0,0,[
+ "name=example"])),
+ attr("tmpfile=", "/tmp/tgif.ps", 1, 1, 0,
+ text('yellow',520,536,0,0,3,1,1,0,1,151,22,1551,1,18,4,0,0,0,0,[
+ "tmpfile=/tmp/tgif.ps"]))
]).
---------------------------------> cut here <---------------------------------
--
Bill Cheng // UCLA Computer Science Department // (310) 645-8328
3564-C Boelter Hall // Los Angeles, California 90024 // USA
william@CS.UCLA.EDU ...!{uunet|ucbvax}!cs.ucla.edu!william
Technical Details
Message-ID:
<1993Jan7.062750.26736@cs.ucla.edu>Path:
arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!usc!ucla-cs!lanai.cs.ucla.edu!williamShow Full Headers
Complete Article Headers
Newsgroups: comp.sources.bugs Path: arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!usc!ucla-cs!lanai.cs.ucla.edu!william From: william@lanai.cs.ucla.edu (William Cheng) Subject: Tgif-2.12-patch16 (16th patch for tgif-2.12), Part 01/01 Message-ID: <1993Jan7.062750.26736@cs.ucla.edu> Followup-To: william@cs.ucla.edu Keywords: draw, postscript, latex, hierarchical, x11, xlib, wysiwyg, bitmap Sender: usenet@cs.ucla.edu (Mr Usenet) Nntp-Posting-Host: lanai.cs.ucla.edu Organization: UCLA, Computer Science Department Date: Thu, 7 Jan 93 06:27:50 GMT Lines: 2254