Thread View: comp.sources.bugs
1 messages
1 total messages
Started by William Cheng
Thu, 07 Jan 1993 06:27
Tgif-2.12-patch16 (16th patch for tgif-2.12), Part 01/01
Author: 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
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads