*** arc.c.orig Tue May 2 13:07:07 2000 --- arc.c Tue May 2 13:07:07 2000 *************** *** 1564,1582 **** char *cl_or_r=(curChoice==DRAWEDGEARC ? "cl" : "r"); struct ObjRec *obj_ptr; - XGCValues values; XEvent input, ev; ! values.foreground = xorColorPixels[colorIndex]; ! values.function = GXxor; ! values.fill_style = FillSolid; ! #ifdef NO_THIN_LINE ! values.line_width = 1; ! #else ! values.line_width = 0; ! #endif ! values.line_style = LineSolid; ! XChangeGC(mainDisplay, drawGC, ! GCForeground | GCFunction | GCFillStyle | GCLineWidth | GCLineStyle, ! &values); grid_x = saved_x = OrigX; --- 1564,1570 ---- char *cl_or_r=(curChoice==DRAWEDGEARC ? "cl" : "r"); struct ObjRec *obj_ptr; XEvent input, ev; ! SetXorDrawGC(xorColorPixels[colorIndex]); grid_x = saved_x = OrigX; *************** *** 1608,1611 **** --- 1596,1600 ---- if (input.type == Expose || input.type == VisibilityNotify) { ExposeEventHandler(&input, TRUE); + SetXorDrawGC(xorColorPixels[colorIndex]); } else if (input.type == ButtonPress) { if (input.xbutton.button != Button1 || drawing_arc) { *** auxtext.c.orig Tue May 2 13:07:08 2000 --- auxtext.c Tue May 2 13:07:08 2000 *************** *** 1385,1388 **** --- 1385,1393 ---- return; } + if (ObjPtr->ctm != NULL && (fabs(ObjPtr->ctm->m[CTM_SX]) < EQ_TOL || + fabs(ObjPtr->ctm->m[CTM_SY]) < EQ_TOL)) { + /* zero width or height text */ + return; + } fprintf(FP, "%% TEXT\n"); fprintf(FP, "%s\n", gPsCmd[PS_NEWPATH]); *** box.c.orig Tue May 2 13:07:09 2000 --- box.c Tue May 2 13:07:09 2000 *************** *** 43,46 **** --- 43,47 ---- #include "cursor.e" #include "cutpaste.e" + #include "drawing.e" #include "file.e" #include "grid.e" *************** *** 389,414 **** { int end_x, end_y, grid_x, grid_y, saved_x, saved_y; ! int done=FALSE, abort=FALSE, xor_pixel; char buf[80], w_buf[80], h_buf[80], x_buf[80], y_buf[80]; - XGCValues values; XEvent input, ev; XMotionEvent *motion_ev; ! xor_pixel = xorColorPixels[colorIndex]; - values.foreground = xor_pixel; - values.function = GXxor; - values.fill_style = FillSolid; - #ifdef NO_THIN_LINE - values.line_width = 1; - #else - values.line_width = 0; - #endif - values.line_style = LineSolid; - - XChangeGC(mainDisplay, drawGC, - GCForeground | GCFunction | GCFillStyle | GCLineWidth | GCLineStyle, - &values); - saved_x = grid_x = OrigX; saved_y = grid_y = OrigY; --- 390,400 ---- { int end_x, end_y, grid_x, grid_y, saved_x, saved_y; ! int done=FALSE, abort=FALSE; char buf[80], w_buf[80], h_buf[80], x_buf[80], y_buf[80]; XEvent input, ev; XMotionEvent *motion_ev; ! SetXorDrawGC(xorColorPixels[colorIndex]); saved_x = grid_x = OrigX; saved_y = grid_y = OrigY; *************** *** 430,433 **** --- 416,420 ---- if (input.type == Expose || input.type == VisibilityNotify) { ExposeEventHandler(&input, TRUE); + SetXorDrawGC(xorColorPixels[colorIndex]); } else if (input.type == ButtonRelease) { XUngrabPointer(mainDisplay, CurrentTime); *** drawing.c.orig Tue May 2 13:07:10 2000 --- drawing.c Tue May 2 13:07:10 2000 *************** *** 135,138 **** --- 135,158 ---- static int skipCrossHair=FALSE; + void SetXorDrawGC(xor_pixel) + int xor_pixel; + { + XGCValues values; + + values.foreground = xor_pixel; + values.function = GXxor; + values.fill_style = FillSolid; + #ifdef NO_THIN_LINE + values.line_width = 1; + #else + values.line_width = 0; + #endif + values.line_style = LineSolid; + + XChangeGC(mainDisplay, drawGC, + GCForeground | GCFunction | GCFillStyle | GCLineWidth | GCLineStyle, + &values); + } + void SetDefaultDrawWinClipRecs() { *************** *** 2164,2167 **** --- 2184,2189 ---- } else if (strcmp(name, "ImportPNGFile()") == 0) { ImportPNGFile(); + } else if (strcmp(name, "ImportJPEGFile()") == 0) { + ImportJPEGFile(); } else if (strcmp(name, "SetExportPixelTrim()") == 0) { SetExportPixelTrim(FALSE); *************** *** 2845,2848 **** --- 2867,2871 ---- SetStringStatus(gszMsgBox); + EndMeasureTooltip(FALSE); if ((pfp=(FILE*)popen(cmd, "r")) == NULL) { sprintf(gszMsgBox, TgLoadString(STID_FAIL_TO_EXECUTE_CMD), cmd); *** exec.c.orig Tue May 2 13:07:11 2000 --- exec.c Tue May 2 13:07:11 2000 *************** *** 77,80 **** --- 77,81 ---- #include "rect.e" #include "remote.e" + #include "ruler.e" #include "select.e" #include "setup.e" *************** *** 1074,1077 **** --- 1075,1079 ---- SetStringStatus(gszMsgBox); Msg(TgLoadCachedString(CSTID_CNTRL_C_TO_INTR_AND_ABEND)); + EndMeasureTooltip(FALSE); XSync(mainDisplay, False); if ((fp=(FILE*)popen(cmd, "r")) == NULL) { *************** *** 7421,7424 **** --- 7423,7441 ---- sprintf(gszMsgBox, TgLoadString(STID_CONVERT_FORMAT_WHILE_EXEC_CMD), file_name, format, orig_cmd); + MsgBox(gszMsgBox, TOOL_NAME, INFO_MB); + return FALSE; + } else { + rc = MyReadPixmapFile(xpm_fname, &image_w, &image_h, &w, &h, + &pixmap, &image, &bitmap, &bitmap_image, &ncolors, + &chars_per_pixel, &first_pixel_is_bg, &color_char, &color_str, + &pixels, &xpm_data); + unlink(xpm_fname); + } + } else if (UtilStrICmp(format, "JPEG") == 0) { + import_type = FILE_IMPORTXPM; + *xpm_fname = '\0'; + if (!ConvertJpegToXpm(file_name, xpm_fname)) { + sprintf(gszMsgBox, TgLoadString(STID_CONVERT_FORMAT_WHILE_EXEC_CMD), + file_name, format, orig_cmd); MsgBox(gszMsgBox, TOOL_NAME, INFO_MB); return FALSE; *** file.c.orig Tue May 2 13:07:13 2000 --- file.c Tue May 2 13:07:13 2000 *************** *** 563,566 **** --- 563,567 ---- FILE *fp; + EndMeasureTooltip(FALSE); sprintf(gszMsgBox, TgLoadCachedString(CSTID_EXECUTING_GIVEN_PROGRAM), cmd); SetStringStatus(gszMsgBox); *** grid.c.orig Tue May 2 13:07:14 2000 --- grid.c Tue May 2 13:07:14 2000 *************** *** 461,464 **** --- 461,465 ---- Msg(TgLoadString(STID_NO_GRAY_SCALE_IN_BW_PRINTING)); } + SetFileModified(TRUE); UpdatePinnedMenu(MENU_LAYOUT); } *** import.c.orig Tue May 2 13:07:15 2000 --- import.c Tue May 2 13:07:15 2000 *************** *** 690,693 **** --- 690,694 ---- static char gifToXpmCmd[MAXSTRING+1]; static char pngToXpmCmd[MAXSTRING+1]; + static char jpegToXpmCmd[MAXSTRING+1]; static char gifAnimExplodeCmd[MAXSTRING+1]; *************** *** 694,697 **** --- 695,699 ---- static char defGifToXpm[]="giftopnm %s | ppmtoxpm"; static char defPngToXpm[]="pngtopnm %s | ppmquant 222 | ppmtoxpm"; + static char defJpegToXpm[]="djpeg -gif -color 222 %s | giftopnm | ppmtoxpm"; static *************** *** 738,741 **** --- 740,760 ---- strcpy(pngToXpmCmd, defPngToXpm); } + if ((c_ptr=XGetDefault(mainDisplay,TOOL_NAME,"JpegToXpm")) != NULL) { + int count=0; + + strcpy(jpegToXpmCmd, c_ptr); + for (c_ptr=strstr(jpegToXpmCmd,"%s"); c_ptr!=NULL; + c_ptr=strstr(++c_ptr,"%s")) { + count++; + } + if (count != 1) { + sprintf(gszMsgBox, TgLoadString(STID_INVALID_XDEF_USE_ALT_STR), + TOOL_NAME, "JpegToXpm", jpegToXpmCmd, defJpegToXpm); + MsgBox(gszMsgBox, TOOL_NAME, INFO_MB); + strcpy(jpegToXpmCmd, defJpegToXpm); + } + } else { + strcpy(jpegToXpmCmd, defJpegToXpm); + } if ((c_ptr=XGetDefault(mainDisplay,TOOL_NAME,"GifAnimExplode")) != NULL) { *************** *** 1017,1020 **** --- 1036,1172 ---- Msg(gszMsgBox); + if (remote_file) unlink(tmp_fname); + importingFile = FALSE; + } + + int ConvertJpegToXpm(pszJpegPath, pszXpmPath) + char *pszJpegPath, *pszXpmPath; + { + FILE *pFile=NULL, *pPipe=NULL; + char *pszCmd=NULL, szBuf[MAXSTRING]; + int bytes_read; + + InitGifToXpm(); + sprintf(pszXpmPath, "%sTgifXXXXXX", TMP_DIR); + mktemp(pszXpmPath); + unlink(pszXpmPath); + pszCmd = (char*)malloc( + (strlen(jpegToXpmCmd)+strlen(pszJpegPath)+10)*sizeof(char)); + if (pszCmd == NULL) { + FailAllocMessage(); + return FALSE; + } + if ((pFile=fopen(pszXpmPath,"w")) == NULL) { + sprintf(gszMsgBox, TgLoadString(STID_CANNOT_OPEN_FILE_FOR_WRITING), + pszXpmPath); + MsgBox(gszMsgBox, TOOL_NAME, INFO_MB); + free(pszCmd); + return FALSE; + } + sprintf(pszCmd, jpegToXpmCmd, pszJpegPath); + sprintf(gszMsgBox, TgLoadCachedString(CSTID_EXECUTING_GIVEN_PROGRAM), + pszCmd); + SetStringStatus(gszMsgBox); + XSync(mainDisplay, False); + if ((pPipe=(FILE*)popen(pszCmd,"r")) == NULL) { + sprintf(gszMsgBox, TgLoadString(STID_FAIL_TO_EXECUTE_CMD), pszCmd); + MsgBox(gszMsgBox, TOOL_NAME, INFO_MB); + free(pszCmd); + fclose(pFile); + unlink(pszXpmPath); + return FALSE; + } + writeFileFailed = FALSE; + while ((bytes_read=fread(szBuf, sizeof(char), sizeof(szBuf), pPipe)) > 0) { + if ((int)fwrite(szBuf, sizeof(char), bytes_read, pFile) <= 0) { + writeFileFailed = TRUE; + break; + } + } + pclose(pPipe); + SetStringStatus(TgLoadCachedString(CSTID_DOTS_DONE)); + free(pszCmd); + fclose(pFile); + if (writeFileFailed) { + FailToWriteFileMessage(pszXpmPath); + unlink(pszXpmPath); + return FALSE; + } + return TRUE; + } + + void ImportJPEGFile() + { + char file_name[MAXPATHLENGTH+1], *rest=NULL, tmp_fname[MAXPATHLENGTH+1]; + char szJpegPath[MAXPATHLENGTH+1]; + int rc, short_name=FALSE, image_w=0, image_h=0, remote_file=FALSE; + XEvent ev; + + MakeQuiescent(); + + importingFile = TRUE; + *szJpegPath = *tmp_fname = '\0'; + if (importFromLibrary) { + char name[MAXSTRING+1], path[MAXSTRING+1]; + + if (SelectFromLibrary(TgLoadString(STID_SEL_JPEG_FILE_TO_IMPORT), + "jpeg", name, path) == INVALID) { + importingFile = FALSE; + return; + } + sprintf(szJpegPath, "%s%c%s", path, DIR_SEP, name); + } else if (SelectFileNameToImport(TgLoadString(STID_SEL_JPEG_FILE_TO_IMPORT), + "jpeg", szJpegPath) == INVALID) { + importingFile = FALSE; + return; + } else if (FileIsRemote(szJpegPath)) { + int is_html=FALSE; + + if (!DownloadRemoteFile(szJpegPath, NULL, NULL, &is_html, tmp_fname, NULL, + 0) || *tmp_fname == '\0') { + importingFile = FALSE; + return; + } + remote_file = TRUE; + } + XSync(mainDisplay, False); + if (XCheckMaskEvent(mainDisplay, ExposureMask, &ev)) { + ExposeEventHandler(&ev, TRUE); + } + SetWatchCursor(drawWindow); + SetWatchCursor(mainWindow); + SaveStatusStrings(); + rc = ConvertJpegToXpm(remote_file ? tmp_fname : szJpegPath, file_name); + RestoreStatusStrings(); + SetDefaultCursor(mainWindow); + ShowCursor(); + if (!rc) { + if (remote_file) unlink(tmp_fname); + importingFile = FALSE; + return; + } + if (remote_file) { + short_name = FALSE; + } else { + if ((short_name=IsPrefix(bootDir, szJpegPath, &rest))) ++rest; + } + if (!ImportGivenXPixmapFile(FALSE, NULL, file_name, INVALID, INVALID, + &image_w, &image_h)) { + sprintf(gszMsgBox, TgLoadString(STID_CANNOT_IMPORT_GIVEN_JPEG), + (short_name ? rest : szJpegPath)); + MsgBox(gszMsgBox, TOOL_NAME, INFO_MB); + unlink(file_name); + if (remote_file) unlink(tmp_fname); + importingFile = FALSE; + return; + } + unlink(file_name); + + if (!importFromLibrary && !remote_file) SetCurImportDir(szJpegPath); + + sprintf(gszMsgBox, TgLoadString(STID_GIVEN_JPEG_SIZE_FILE_IMPORTED), + image_w, image_h, (short_name ? rest : szJpegPath)); + Msg(gszMsgBox); + if (remote_file) unlink(tmp_fname); importingFile = FALSE; *** mainloop.c.orig Tue May 2 13:07:16 2000 --- mainloop.c Tue May 2 13:07:16 2000 *************** *** 122,125 **** --- 122,126 ---- char *displayName=NULL; int initializingMain=FALSE; + int cmdLineUseXlib=FALSE; int numExtraWins=0; *************** *** 134,137 **** --- 135,140 ---- #endif /* USE_XAPPLRESDIR */ + static int useXlib=FALSE; + int AddExtraWinInfo(win, mapped, raise, expose_handler, ev_handler, cleanup_routine, userdata) *************** *** 631,653 **** } if (x11R6OrAbove) { ! #ifdef USE_XT_INITIALIZE ! if (XtSetLanguageProc(NULL, NULL, NULL) == NULL) { ! fprintf(stderr, "%s\n", ! TgLoadString(STID_XT_CANNOT_SET_LOCALE_ENV_VARS)); ! MySetLocale(LC_ALL, "C"); ! } ! #else /* ~USE_XT_INITIALIZE */ ! if (!XSupportsLocale()) { ! fprintf(stderr, "%s\n", ! TgLoadString(STID_XLIB_CANT_SET_LOCALE_ENV_VARS)); ! MySetLocale(LC_ALL, "C"); ! } ! if (!XSetLocaleModifiers("")) { ! if (getenv("LANG") != NULL) { fprintf(stderr, "%s\n", ! TgLoadString(STID_CANT_SET_LOCALE_MODIFIERS)); } } - #endif /* USE_XT_INITIALIZE */ } MySetLocale(LC_ALL, NULL); --- 634,656 ---- } if (x11R6OrAbove) { ! if (useXlib) { ! if (!XSupportsLocale()) { fprintf(stderr, "%s\n", ! TgLoadString(STID_XLIB_CANT_SET_LOCALE_ENV_VARS)); ! MySetLocale(LC_ALL, "C"); } + if (!XSetLocaleModifiers("")) { + if (getenv("LANG") != NULL) { + fprintf(stderr, "%s\n", + TgLoadString(STID_CANT_SET_LOCALE_MODIFIERS)); + } + } + } else { + if (XtSetLanguageProc(NULL, NULL, NULL) == NULL) { + fprintf(stderr, "%s\n", + TgLoadString(STID_XT_CANNOT_SET_LOCALE_ENV_VARS)); + MySetLocale(LC_ALL, "C"); + } } } MySetLocale(LC_ALL, NULL); *************** *** 1012,1015 **** --- 1015,1019 ---- { char *c_ptr=NULL; + int cannot_opendisplay=FALSE; #ifdef USE_XAPPLRESDIR FILE *xenv_fp=NULL; *************** *** 1059,1070 **** c_ptr = NULL; #ifdef USE_XT_INITIALIZE ! toplevel = XtInitialize(TOOL_NAME, TOOL_NAME, NULL, 0, &origArgC, ! origArgV); ! if (toplevel == NULL || (mainDisplay=XtDisplay(toplevel)) == 0) #else /* ~USE_XT_INITIALIZE */ ! if ((mainDisplay=XOpenDisplay(displayName)) == 0) #endif /* USE_XT_INITIALIZE */ #endif /* USE_XAPPLRESDIR */ ! { if (displayName == NULL) { fprintf(stderr, "%s\n", TgLoadString(STID_CANT_OPEN_DISPLAY_ABORT)); --- 1063,1082 ---- c_ptr = NULL; #ifdef USE_XT_INITIALIZE ! useXlib = cmdLineUseXlib; #else /* ~USE_XT_INITIALIZE */ ! useXlib = TRUE; #endif /* USE_XT_INITIALIZE */ + if (useXlib) { + cannot_opendisplay = ((mainDisplay=XOpenDisplay(displayName)) == 0); + } else { + #ifdef USE_XT_INITIALIZE + toplevel = XtInitialize(TOOL_NAME, TOOL_NAME, NULL, 0, &origArgC, + origArgV); + cannot_opendisplay = (toplevel == NULL || + (mainDisplay=XtDisplay(toplevel)) == 0); + #endif /* USE_XT_INITIALIZE */ + } #endif /* USE_XAPPLRESDIR */ ! if (cannot_opendisplay) { if (displayName == NULL) { fprintf(stderr, "%s\n", TgLoadString(STID_CANT_OPEN_DISPLAY_ABORT)); *************** *** 1463,1473 **** XFlush(mainDisplay); XSync(mainDisplay, True); #ifdef USE_XT_INITIALIZE ! XtDestroyWidget(toplevel); ! toplevel = (Widget)0; ! #else /* ~USE_XT_INITIALIZE */ ! XCloseDisplay(mainDisplay); ! mainDisplay = NULL; #endif /* USE_XT_INITIALIZE */ exitNormally = TRUE; AllocStrings(FuncStr, Str1, Menu1, Str2, Menu2, Str3, Menu3); --- 1475,1489 ---- XFlush(mainDisplay); XSync(mainDisplay, True); + if (useXlib) { + XCloseDisplay(mainDisplay); + mainDisplay = NULL; + } else { + #ifndef USE_XAPPLRESDIR #ifdef USE_XT_INITIALIZE ! XtDestroyWidget(toplevel); ! toplevel = (Widget)0; #endif /* USE_XT_INITIALIZE */ + #endif /* ~USE_XAPPLRESDIR */ + } exitNormally = TRUE; AllocStrings(FuncStr, Str1, Menu1, Str2, Menu2, Str3, Menu3); *** menu.c.orig Tue May 2 13:07:17 2000 --- menu.c Tue May 2 13:07:17 2000 *************** *** 115,118 **** --- 115,120 ---- static TgMenuItemInfo *gpMenubarItemInfos=NULL; + static int gnMinimalMenubar=TRUE; + static void BuildMenubarInfo() *************** *** 121,125 **** char *c_ptr=NULL; TgMenuItemInfo *item_info=NULL; - int minimal_menubar=TRUE; if (nInitialized) return; --- 123,126 ---- *************** *** 127,136 **** nInitialized = TRUE; ! minimal_menubar = TRUE; if (((c_ptr=XGetDefault(mainDisplay,TOOL_NAME,"MinimalMenubar")) != NULL) && UtilStrICmp(c_ptr,"false") == 0) { ! minimal_menubar = FALSE; } ! gpMenubarItemInfos = (minimal_menubar ? minimalMenubarMenuInfo.items : maximalMenubarMenuInfo.items); gnNumMenubarItems = 0; --- 128,137 ---- nInitialized = TRUE; ! gnMinimalMenubar = TRUE; if (((c_ptr=XGetDefault(mainDisplay,TOOL_NAME,"MinimalMenubar")) != NULL) && UtilStrICmp(c_ptr,"false") == 0) { ! gnMinimalMenubar = FALSE; } ! gpMenubarItemInfos = (gnMinimalMenubar ? minimalMenubarMenuInfo.items : maximalMenubarMenuInfo.items); gnNumMenubarItems = 0; *************** *** 198,202 **** len = strlen(_(gpMenubarItemInfos[i].menu_str)); w = MenuTextWidth(menuFontPtr, _(gpMenubarItemInfos[i].menu_str), len); ! if (x+w+padding >= menubarWindowW) { if (Y < h) return INVALID; x = menuFontWidth+padding; --- 199,204 ---- len = strlen(_(gpMenubarItemInfos[i].menu_str)); w = MenuTextWidth(menuFontPtr, _(gpMenubarItemInfos[i].menu_str), len); ! if (!noMinWinSize && !gnMinimalMenubar && ! x+w+padding >= menubarWindowW) { if (Y < h) return INVALID; x = menuFontWidth+padding; *************** *** 221,225 **** len = strlen(_(gpMenubarItemInfos[i].menu_str)); w = defaultFontWidth*len; ! if (x+w+padding >= menubarWindowW) { if (Y < h) return INVALID; x = 2+padding; --- 223,228 ---- len = strlen(_(gpMenubarItemInfos[i].menu_str)); w = defaultFontWidth*len; ! if (!noMinWinSize && !gnMinimalMenubar && ! x+w+padding >= menubarWindowW) { if (Y < h) return INVALID; x = 2+padding; *************** *** 255,259 **** len = strlen(_(gpMenubarItemInfos[i].menu_str)); w = MenuTextWidth(menuFontPtr, _(gpMenubarItemInfos[i].menu_str), len); ! if (x+w+padding >= menubarWindowW) { x = menuFontWidth+padding; h += menuFontHeight+padding; --- 258,263 ---- len = strlen(_(gpMenubarItemInfos[i].menu_str)); w = MenuTextWidth(menuFontPtr, _(gpMenubarItemInfos[i].menu_str), len); ! if (!noMinWinSize && !gnMinimalMenubar && ! x+w+padding >= menubarWindowW) { x = menuFontWidth+padding; h += menuFontHeight+padding; *************** *** 274,278 **** len = strlen(_(gpMenubarItemInfos[i].menu_str)); w = defaultFontWidth*len; ! if (x+w+padding >= menubarWindowW) { x = 2+padding; h += initialMenubarWindowH+padding; --- 278,283 ---- len = strlen(_(gpMenubarItemInfos[i].menu_str)); w = defaultFontWidth*len; ! if (!noMinWinSize && !gnMinimalMenubar && ! x+w+padding >= menubarWindowW) { x = 2+padding; h += initialMenubarWindowH+padding; *************** *** 3235,3239 **** w = MenuTextWidth(menuFontPtr, _(gpMenubarItemInfos[i].menu_str), strlen(_(gpMenubarItemInfos[i].menu_str))); ! if (x+w+padding >= menubarWindowW) { x = menuFontWidth+padding; h += menuFontHeight+padding; --- 3240,3245 ---- w = MenuTextWidth(menuFontPtr, _(gpMenubarItemInfos[i].menu_str), strlen(_(gpMenubarItemInfos[i].menu_str))); ! if (!noMinWinSize && !gnMinimalMenubar && ! x+w+padding >= menubarWindowW) { x = menuFontWidth+padding; h += menuFontHeight+padding; *************** *** 3251,3255 **** for (i=0; i < gnNumMenubarItems; i++) { w = defaultFontWidth*strlen(_(gpMenubarItemInfos[i].menu_str)); ! if (x+w+padding >= menubarWindowW) { x = 2+padding; h += initialMenubarWindowH+padding; --- 3257,3262 ---- for (i=0; i < gnNumMenubarItems; i++) { w = defaultFontWidth*strlen(_(gpMenubarItemInfos[i].menu_str)); ! if (!noMinWinSize && !gnMinimalMenubar && ! x+w+padding >= menubarWindowW) { x = 2+padding; h += initialMenubarWindowH+padding; *************** *** 3322,3326 **** len = strlen(_(gpMenubarItemInfos[i].menu_str)); w = MenuTextWidth(menuFontPtr, _(gpMenubarItemInfos[i].menu_str), len); ! if (x+w+padding >= menubarWindowW) { x = menuFontWidth+padding; y += menuFontHeight+padding; --- 3329,3334 ---- len = strlen(_(gpMenubarItemInfos[i].menu_str)); w = MenuTextWidth(menuFontPtr, _(gpMenubarItemInfos[i].menu_str), len); ! if (!noMinWinSize && !gnMinimalMenubar && ! x+w+padding >= menubarWindowW) { x = menuFontWidth+padding; y += menuFontHeight+padding; *************** *** 3346,3350 **** len = strlen(_(gpMenubarItemInfos[i].menu_str)); w = defaultFontWidth*len; ! if (x+w+padding >= menubarWindowW) { x = 2+padding; y += initialMenubarWindowH+padding; --- 3354,3359 ---- len = strlen(_(gpMenubarItemInfos[i].menu_str)); w = defaultFontWidth*len; ! if (!noMinWinSize && !gnMinimalMenubar && ! x+w+padding >= menubarWindowW) { x = 2+padding; y += initialMenubarWindowH+padding; *** menuinfo.c.orig Tue May 2 13:07:19 2000 --- menuinfo.c Tue May 2 13:07:19 2000 *************** *** 510,513 **** --- 510,515 ---- { N_("Import PNG File..."), NULL, N_("Embed/Import a PNG file"), NULL, CMDID_IMPORTPNGFILE }, + { N_("Import JPEG File..."), NULL, N_("Embed/Import a JPEG file"), NULL, + CMDID_IMPORTJPEGFILE }, { N_("Import Other File..."), NULL, N_("Embed/Import another type of file"), NULL, CMDID_IMPORTOTHERFILE }, *** miniline.c.orig Tue May 2 13:07:20 2000 --- miniline.c Tue May 2 13:07:20 2000 *************** *** 4857,4862 **** if (penPat == BACKPAT) { fprintf(FP, "1 %s\n", gPsCmd[PS_SETGRAY]); ! } else { DumpRGBColorLine(FP, color_index, 0, TRUE); } } --- 4857,4865 ---- if (penPat == BACKPAT) { fprintf(FP, "1 %s\n", gPsCmd[PS_SETGRAY]); ! } else if (colorDump || !useGray) { DumpRGBColorLine(FP, color_index, 0, TRUE); + } else { + GrayCheck(penPat); + fprintf(FP, "%s %s\n", GrayStr(penPat), gPsCmd[PS_SETGRAY]); } } *** msg.c.orig Tue May 2 13:07:21 2000 --- msg.c Tue May 2 13:07:22 2000 *************** *** 1376,1379 **** --- 1376,1380 ---- fprintf(stderr, "\t[-exec ] \\\n"); fprintf(stderr, "\t[-dbim {xcin|chinput|xim|kinput2}] \\\n"); + fprintf(stderr, "\t[-usexlib] \\\n"); fprintf(stderr, "\t[{[.%s] | -merge [.%s] [.%s] ...}]\n", OBJ_FILE_EXT, OBJ_FILE_EXT, OBJ_FILE_EXT); *************** *** 1807,1810 **** --- 1808,1813 ---- strcpy(cmdLineInputMethod, argv[i]); cmdLineHasInputMethod = TRUE; + } else if (strcmp(argv[i], "-usexlib") == 0) { + cmdLineUseXlib = TRUE; } else if (strcmp(argv[i], "-merge") == 0) { cmdLineMerge = TRUE; *** names.c.orig Tue May 2 13:07:23 2000 --- names.c Tue May 2 13:07:23 2000 *************** *** 970,973 **** --- 970,975 ---- } else if (ExtStr != NULL && strcmp(ExtStr, "png") == 0) { strcpy(dirNamesInfo.other_ext_str, ".PNG"); + } else if (ExtStr != NULL && strcmp(ExtStr, "jpeg") == 0) { + strcpy(dirNamesInfo.other_ext_str, ".JPEG;.jpg;.JPG"); } else { *dirNamesInfo.other_ext_str = '\0'; *** oval.c.orig Tue May 2 13:07:23 2000 --- oval.c Tue May 2 13:07:24 2000 *************** *** 547,554 **** int OrigX, OrigY; { ! int end_x, end_y, grid_x, grid_y, done=FALSE, abort=FALSE, xor_pixel; char buf[80], w_buf[80], h_buf[80], x_buf[80], y_buf[80]; struct BBRec bbox; - XGCValues values; XEvent input, ev; XMotionEvent *motion_ev=NULL; --- 547,553 ---- int OrigX, OrigY; { ! int end_x, end_y, grid_x, grid_y, done=FALSE, abort=FALSE; char buf[80], w_buf[80], h_buf[80], x_buf[80], y_buf[80]; struct BBRec bbox; XEvent input, ev; XMotionEvent *motion_ev=NULL; *************** *** 557,575 **** bbox.lty = bbox.rby = OrigY; ! xor_pixel = xorColorPixels[colorIndex]; - values.foreground = xor_pixel; - values.function = GXxor; - values.fill_style = FillSolid; - #ifdef NO_THIN_LINE - values.line_width = 1; - #else - values.line_width = 0; - #endif - values.line_style = LineSolid; - XChangeGC(mainDisplay, drawGC, - GCForeground | GCFunction | GCFillStyle | GCLineWidth | GCLineStyle, - &values); - grid_x = end_x = OrigX; grid_y = end_y = OrigY; --- 556,561 ---- bbox.lty = bbox.rby = OrigY; ! SetXorDrawGC(xorColorPixels[colorIndex]); grid_x = end_x = OrigX; grid_y = end_y = OrigY; *************** *** 581,588 **** StartShowMeasureCursor(grid_x, grid_y, buf, TRUE); BeginIntervalRulers(grid_x, grid_y, grid_x, grid_y); ! XGrabPointer(mainDisplay, drawWindow, FALSE, ! PointerMotionMask | ButtonReleaseMask, ! GrabModeAsync, GrabModeAsync, None, handCursor, CurrentTime); ! while (!done) { XNextEvent(mainDisplay, &input); --- 567,575 ---- StartShowMeasureCursor(grid_x, grid_y, buf, TRUE); BeginIntervalRulers(grid_x, grid_y, grid_x, grid_y); ! if (!debugNoPointerGrab) { ! XGrabPointer(mainDisplay, drawWindow, FALSE, ! PointerMotionMask | ButtonReleaseMask, ! GrabModeAsync, GrabModeAsync, None, handCursor, CurrentTime); ! } while (!done) { XNextEvent(mainDisplay, &input); *************** *** 590,593 **** --- 577,581 ---- if (input.type == Expose || input.type == VisibilityNotify) { ExposeEventHandler(&input, TRUE); + SetXorDrawGC(xorColorPixels[colorIndex]); } else if (input.type == ButtonRelease) { XUngrabPointer(mainDisplay, CurrentTime); *** poly.c.orig Tue May 2 13:07:24 2000 --- poly.c Tue May 2 13:07:25 2000 *************** *** 411,436 **** #endif /* HP_LINE_BUG */ - static XComposeStatus c_stat; - static ! void ContinuePoly(OrigX, OrigY) ! int OrigX, OrigY; ! /* OrigX and OrigY are screen coordinates (scaled and translated). */ ! /* OrigX and OrigY are also on grid. */ { - register int i; XGCValues values; - XEvent input, ev; - XButtonEvent *button_ev; - int abort=FALSE; - int end_x, end_y, grid_x, grid_y, done=FALSE, num_pts=1; - int last_x=OrigX, last_y=OrigY, n=2, sn=0, max_n=40, intn=0; - int ltx=OrigX, lty=OrigY, rbx=OrigX, rby=OrigY; - int one_line_status=FALSE, freehand_n=0; - char status_buf[MAX_STATUS_BTNS+1][MAXSTRING+1]; - char buf[80], w_buf[80], h_buf[80], x_buf[80], y_buf[80]; - struct PtRec *pt_ptr; - XPoint *sv=NULL, *freehand_vs=NULL; - IntPoint *v=NULL, *cntrlv=NULL; values.fill_style = FillSolid; --- 411,419 ---- #endif /* HP_LINE_BUG */ static ! void SetXorDrawGCForPoly(color_index, line_width_index) ! int color_index, line_width_index; { XGCValues values; values.fill_style = FillSolid; *************** *** 441,447 **** #endif /* NO_THIN_LINE */ if (curChoice == FREEHAND) { ! values.foreground = colorPixels[colorIndex]; values.function = GXcopy; ! values.line_width = curWidthOfLine[lineWidth]; #ifdef NO_THIN_LINE if (curWidthOfLine[lineWidth] < 1) values.line_width = 1; --- 424,430 ---- #endif /* NO_THIN_LINE */ if (curChoice == FREEHAND) { ! values.foreground = colorPixels[color_index]; values.function = GXcopy; ! values.line_width = curWidthOfLine[line_width_index]; #ifdef NO_THIN_LINE if (curWidthOfLine[lineWidth] < 1) values.line_width = 1; *************** *** 448,452 **** #endif /* NO_THIN_LINE */ } else { ! values.foreground = xorColorPixels[colorIndex]; values.function = GXxor; } --- 431,435 ---- #endif /* NO_THIN_LINE */ } else { ! values.foreground = xorColorPixels[color_index]; values.function = GXxor; } *************** *** 457,461 **** --- 440,470 ---- GCForeground | GCFunction | GCFillStyle | GCLineWidth | GCLineStyle | GCJoinStyle, &values); + } + static XComposeStatus c_stat; + + static + void ContinuePoly(OrigX, OrigY) + int OrigX, OrigY; + /* OrigX and OrigY are screen coordinates (scaled and translated). */ + /* OrigX and OrigY are also on grid. */ + { + int i; + XGCValues values; + XEvent input, ev; + XButtonEvent *button_ev; + int abort=FALSE; + int end_x, end_y, grid_x, grid_y, done=FALSE, num_pts=1; + int last_x=OrigX, last_y=OrigY, n=2, sn=0, max_n=40, intn=0; + int ltx=OrigX, lty=OrigY, rbx=OrigX, rby=OrigY; + int one_line_status=FALSE, freehand_n=0; + char status_buf[MAX_STATUS_BTNS+1][MAXSTRING+1]; + char buf[80], w_buf[80], h_buf[80], x_buf[80], y_buf[80]; + struct PtRec *pt_ptr; + XPoint *sv=NULL, *freehand_vs=NULL; + IntPoint *v=NULL, *cntrlv=NULL; + + SetXorDrawGCForPoly(colorIndex, lineWidth); + grid_x = end_x = OrigX; grid_y = end_y = OrigY; *************** *** 522,525 **** --- 531,535 ---- if (input.type == Expose || input.type == VisibilityNotify) { ExposeEventHandler(&input, TRUE); + SetXorDrawGCForPoly(colorIndex, lineWidth); } else if (input.type == MotionNotify || input.type == KeyPress || input.type == KeyRelease) { *** polygon.c.orig Tue May 2 13:07:26 2000 --- polygon.c Tue May 2 13:07:26 2000 *************** *** 550,554 **** { register int i; - XGCValues values; XEvent input, ev; XButtonEvent *button_ev; --- 550,553 ---- *************** *** 559,563 **** int end_x, end_y, grid_x, grid_y, done=FALSE; int saved_x, saved_y, closed=FALSE, abort=FALSE; ! int xor_pixel, num_pts=1, n=2, sn=0, max_n=40, intn=0; int ltx=OrigX, lty=OrigY, rbx=OrigX, rby=OrigY; struct PtRec *pt_ptr; --- 558,562 ---- int end_x, end_y, grid_x, grid_y, done=FALSE; int saved_x, saved_y, closed=FALSE, abort=FALSE; ! int num_pts=1, n=2, sn=0, max_n=40, intn=0; int ltx=OrigX, lty=OrigY, rbx=OrigX, rby=OrigY; struct PtRec *pt_ptr; *************** *** 565,584 **** IntPoint *pv=NULL, *cntrlv=NULL; ! xor_pixel = xorColorPixels[colorIndex]; - values.foreground = xor_pixel; - values.function = GXxor; - values.fill_style = FillSolid; - #ifdef NO_THIN_LINE - values.line_width = 1; - #else - values.line_width = 0; - #endif - values.line_style = LineSolid; - - XChangeGC(mainDisplay, drawGC, - GCForeground | GCFunction | GCFillStyle | GCLineWidth | GCLineStyle, - &values); - grid_x = end_x = saved_x = OrigX; grid_y = end_y = saved_y = OrigY; --- 564,569 ---- IntPoint *pv=NULL, *cntrlv=NULL; ! SetXorDrawGC(xorColorPixels[colorIndex]); grid_x = end_x = saved_x = OrigX; grid_y = end_y = saved_y = OrigY; *************** *** 623,626 **** --- 608,612 ---- if (input.type == Expose || input.type == VisibilityNotify) { ExposeEventHandler(&input, TRUE); + SetXorDrawGC(xorColorPixels[colorIndex]); } else if ((!(shiftForDiagMouseMove && DiagEventCheck(&input))) && (input.type == KeyPress || input.type == KeyRelease)) { *** rcbox.c.orig Tue May 2 13:07:27 2000 --- rcbox.c Tue May 2 13:07:27 2000 *************** *** 583,608 **** int end_x, end_y, grid_x, grid_y, saved_x, saved_y; int done=FALSE, abort=FALSE; ! int xor_pixel, radius=ZOOMED_SIZE(rcbRadius); char buf[80], w_buf[80], h_buf[80], x_buf[80], y_buf[80]; - XGCValues values; XEvent input, ev; XMotionEvent *motion_ev; ! xor_pixel = xorColorPixels[colorIndex]; - values.foreground = xor_pixel; - values.function = GXxor; - values.fill_style = FillSolid; - #ifdef NO_THIN_LINE - values.line_width = 1; - #else - values.line_width = 0; - #endif - values.line_style = LineSolid; - - XChangeGC(mainDisplay, drawGC, - GCForeground | GCFunction | GCFillStyle | GCLineWidth | GCLineStyle, - &values); - saved_x = grid_x = OrigX; saved_y = grid_y = OrigY; --- 583,593 ---- int end_x, end_y, grid_x, grid_y, saved_x, saved_y; int done=FALSE, abort=FALSE; ! int radius=ZOOMED_SIZE(rcbRadius); char buf[80], w_buf[80], h_buf[80], x_buf[80], y_buf[80]; XEvent input, ev; XMotionEvent *motion_ev; ! SetXorDrawGC(xorColorPixels[colorIndex]); saved_x = grid_x = OrigX; saved_y = grid_y = OrigY; *************** *** 614,621 **** StartShowMeasureCursor(grid_x, grid_y, buf, TRUE); BeginIntervalRulers(grid_x, grid_y, grid_x, grid_y); ! XGrabPointer(mainDisplay, drawWindow, FALSE, ! PointerMotionMask | ButtonReleaseMask, ! GrabModeAsync, GrabModeAsync, None, handCursor, CurrentTime); ! SetRCBoxVertex(OrigX, OrigY, saved_x, saved_y, radius); while (!done) { --- 599,607 ---- StartShowMeasureCursor(grid_x, grid_y, buf, TRUE); BeginIntervalRulers(grid_x, grid_y, grid_x, grid_y); ! if (!debugNoPointerGrab) { ! XGrabPointer(mainDisplay, drawWindow, FALSE, ! PointerMotionMask | ButtonReleaseMask, ! GrabModeAsync, GrabModeAsync, None, handCursor, CurrentTime); ! } SetRCBoxVertex(OrigX, OrigY, saved_x, saved_y, radius); while (!done) { *************** *** 624,627 **** --- 610,614 ---- if (input.type == Expose || input.type == VisibilityNotify) { ExposeEventHandler(&input, TRUE); + SetXorDrawGC(xorColorPixels[colorIndex]); } else if (input.type == ButtonRelease) { XUngrabPointer(mainDisplay, CurrentTime); *** ruler.c.orig Tue May 2 13:07:28 2000 --- ruler.c Tue May 2 13:07:28 2000 *************** *** 480,486 **** PixelToMeasurementUnit(y_buf, ABS_Y(oldYOff)); sprintf(buf, "[%s,%s]", x_buf, y_buf); ! if (showMeasurementInTooltip) { ! SetMeasureTooltip(buf); ! } else { XDrawString(mainDisplay, hRuleWindow, revDefaultGC, 8, 2+defaultFontAsc, buf, strlen(buf)); --- 480,484 ---- PixelToMeasurementUnit(y_buf, ABS_Y(oldYOff)); sprintf(buf, "[%s,%s]", x_buf, y_buf); ! if (!showMeasurementInTooltip) { XDrawString(mainDisplay, hRuleWindow, revDefaultGC, 8, 2+defaultFontAsc, buf, strlen(buf)); *************** *** 518,524 **** sprintf(buf, "[%s,%s]", x_buf, y_buf); } ! if (showMeasurementInTooltip) { ! /* Do nothing here because no XOR needed */ ! } else { XDrawString(mainDisplay, hRuleWindow, revDefaultGC, 8, 2+defaultFontAsc, buf, strlen(buf)); --- 516,520 ---- sprintf(buf, "[%s,%s]", x_buf, y_buf); } ! if (!showMeasurementInTooltip) { XDrawString(mainDisplay, hRuleWindow, revDefaultGC, 8, 2+defaultFontAsc, buf, strlen(buf)); *************** *** 888,891 **** --- 884,888 ---- int bbox_w, bbox_h; /* this is for the text */ int x_padding, y_padding; /* padding around the text */ + int mapped; Window win; GC gc; *************** *** 1015,1019 **** if (!showMeasurementInTooltip) return; ! XMapWindow(mainDisplay, gmti.win); XRaiseWindow(mainDisplay, gmti.win); --- 1012,1019 ---- if (!showMeasurementInTooltip) return; ! if (!gmti.mapped) { ! XMapWindow(mainDisplay, gmti.win); ! gmti.mapped = TRUE; ! } XRaiseWindow(mainDisplay, gmti.win); *************** *** 1052,1056 **** { if (force || (showMeasurement && showMeasurementInTooltip)) { ! XUnmapWindow(mainDisplay, gmti.win); } } --- 1052,1059 ---- { if (force || (showMeasurement && showMeasurementInTooltip)) { ! if (gmti.mapped) { ! XUnmapWindow(mainDisplay, gmti.win); ! gmti.mapped = FALSE; ! } } } *************** *** 1069,1073 **** } memset(&gmti, 0, sizeof(MeasureTooltipInfo)); ! showMeasurementInTooltip = TRUE; gmti.win = None; } --- 1072,1076 ---- } memset(&gmti, 0, sizeof(MeasureTooltipInfo)); ! showMeasurementInTooltip = FALSE; gmti.win = None; } *************** *** 1146,1157 **** memset(&gmti, 0, sizeof(MeasureTooltipInfo)); gmti.win = None; gmti.x_padding = 4; gmti.y_padding = 2; ! showMeasurementInTooltip = TRUE; if ((c_ptr=XGetDefault(mainDisplay, TOOL_NAME, "UseMeasureTooltip")) != NULL && ! UtilStrICmp(c_ptr, "false") == 0) { ! showMeasurementInTooltip = FALSE; } measureTooltipVerbose = FALSE; --- 1149,1161 ---- memset(&gmti, 0, sizeof(MeasureTooltipInfo)); gmti.win = None; + gmti.mapped = FALSE; gmti.x_padding = 4; gmti.y_padding = 2; ! showMeasurementInTooltip = FALSE; if ((c_ptr=XGetDefault(mainDisplay, TOOL_NAME, "UseMeasureTooltip")) != NULL && ! UtilStrICmp(c_ptr, "true") == 0) { ! showMeasurementInTooltip = TRUE; } measureTooltipVerbose = FALSE; *************** *** 1161,1174 **** measureTooltipVerbose = TRUE; } ! gmti.x_follow_mouse = gmti.y_follow_mouse = TRUE; if ((c_ptr=XGetDefault(mainDisplay, TOOL_NAME, "MeasureTooltipXFollowMouse")) != NULL && ! UtilStrICmp(c_ptr, "false") == 0) { ! gmti.x_follow_mouse = FALSE; } if ((c_ptr=XGetDefault(mainDisplay, TOOL_NAME, "MeasureTooltipYFollowMouse")) != NULL && ! UtilStrICmp(c_ptr, "false") == 0) { ! gmti.y_follow_mouse = FALSE; } gmti.position_y = ALIGN_T; --- 1165,1178 ---- measureTooltipVerbose = TRUE; } ! gmti.x_follow_mouse = gmti.y_follow_mouse = FALSE; if ((c_ptr=XGetDefault(mainDisplay, TOOL_NAME, "MeasureTooltipXFollowMouse")) != NULL && ! UtilStrICmp(c_ptr, "true") == 0) { ! gmti.x_follow_mouse = TRUE; } if ((c_ptr=XGetDefault(mainDisplay, TOOL_NAME, "MeasureTooltipYFollowMouse")) != NULL && ! UtilStrICmp(c_ptr, "true") == 0) { ! gmti.y_follow_mouse = TRUE; } gmti.position_y = ALIGN_T; *** setup.c.orig Tue May 2 13:07:28 2000 --- setup.c Tue May 2 13:07:28 2000 *************** *** 263,266 **** --- 263,268 ---- int curChoiceBeforeMakeQuiescent=NOTHING; + int noMinWinSize=TRUE; + static Atom protocolAtom=(Atom)0; *************** *** 1439,1443 **** GetWorkingDirectory(bootDir, sizeof(bootDir)); } ! sizehints.flags = PPosition | PSize | PMinSize; sizehints.x = 0; sizehints.y = 0; --- 1441,1472 ---- GetWorkingDirectory(bootDir, sizeof(bootDir)); } ! InitFonts(); ! ! initialMenubarWindowH = defaultFontHeight; ! if (msgFontSet==NULL && msgFontPtr == NULL) { ! statusSubWindowH[0] = defaultFontHeight+2+windowPadding; ! } else { ! statusSubWindowH[0] = msgFontHeight+2+windowPadding; ! } ! statusWindowH = max(statusSubWindowH[0]+(brdrW<<1)+2, btn1_height+2); ! if (threeDLook) { ! statusWindowH += windowPadding; ! } ! userRedrawWindowH = statusWindowH; ! /* chatWindowH = GetChatWindowHeight(); ! if (threeDLook) { ! chatWindowH += windowPadding; ! } ! */ ! noMinWinSize = TRUE; ! if (threeDLook && (c_ptr=XGetDefault(mainDisplay, TOOL_NAME, ! "NoMinWinSize")) != NULL && UtilStrICmp(c_ptr, "false") == 0) { ! noMinWinSize = FALSE; ! } ! if (noMinWinSize) { ! sizehints.flags = PSize; ! } else { ! sizehints.flags = PSize | PMinSize; ! } sizehints.x = 0; sizehints.y = 0; *************** *** 1454,1457 **** --- 1483,1490 ---- drawWinW = sizehints.width; drawWinH = sizehints.height; + InitWinSizes(); + mainWinW = sizehints.width; + mainWinH = sizehints.height; + InverseInitWinSizes(); } if (bitmask & XNegative) { *************** *** 1474,1477 **** --- 1507,1514 ---- drawWinW = sizehints.width; drawWinH = sizehints.height; + InitWinSizes(); + mainWinW = sizehints.width; + mainWinH = sizehints.height; + InverseInitWinSizes(); } if (bitmask & XValue) x_in_cmdline = TRUE; *************** *** 1478,1499 **** if (bitmask & YValue) y_in_cmdline = TRUE; } - InitFonts(); - - initialMenubarWindowH = defaultFontHeight; - if (msgFontSet==NULL && msgFontPtr == NULL) { - statusSubWindowH[0] = defaultFontHeight+2+windowPadding; - } else { - statusSubWindowH[0] = msgFontHeight+2+windowPadding; - } - statusWindowH = max(statusSubWindowH[0]+(brdrW<<1)+2, btn1_height+2); - if (threeDLook) { - statusWindowH += windowPadding; - } - userRedrawWindowH = statusWindowH; - /* chatWindowH = GetChatWindowHeight(); - if (threeDLook) { - chatWindowH += windowPadding; - } - */ InitWinSizes(); --- 1515,1518 ---- *** shortcut.c.orig Tue May 2 13:07:29 2000 --- shortcut.c Tue May 2 13:07:30 2000 *************** *** 385,388 **** --- 385,389 ---- { '\0', 0, "ToggleShowMeasurementInTooltip()", 0, CMDID_TOGGLESHOWMEASUREMENTINTT }, + { '\0', 0, "ImportJPEGFile()", 0, CMDID_IMPORTJPEGFILE }, { '\0', 0, "", 0, 0 } }; *** strtbl.c.orig Tue May 2 13:07:31 2000 --- strtbl.c Tue May 2 13:07:31 2000 *************** *** 3126,3129 **** --- 3126,3135 ---- /* STID_SHOW_MEASUREMENT_IN_TT_DISB */ N_("Showing measurement in tooltip disabled. Measurement will be shown in the ruler window."), + /* STID_SEL_JPEG_FILE_TO_IMPORT */ + N_("Please select a JPEG file to IMPORT..."), + /* STID_CANNOT_IMPORT_GIVEN_JPEG */ + N_("Cannot import JPEG file '%s'."), + /* STID_GIVEN_JPEG_SIZE_FILE_IMPORTED */ + N_("JPEG file (%1dx%1d) '%s' imported."), NULL }; *** drawing.e.orig Tue May 2 13:07:33 2000 --- drawing.e Tue May 2 13:07:33 2000 *************** *** 58,61 **** --- 58,62 ---- #endif /*_INCLUDE_FROM_DRAWING_C_*/ + extern void SetXorDrawGC ARGS_DECL((int xor_pixel)); extern void SetDefaultDrawWinClipRecs ARGS_DECL((void)); extern void SetDefaultIconWinClipRecs ARGS_DECL((void)); *** import.e.orig Tue May 2 13:07:35 2000 --- import.e Tue May 2 13:07:35 2000 *************** *** 53,56 **** --- 53,59 ---- extern int ConvertPngToXpm ARGS_DECL((char *pszPngPath, char *pszXpmPath)); extern void ImportPNGFile ARGS_DECL((void)); + extern int ConvertJpegToXpm ARGS_DECL((char *pszJpegPath, + char *pszXpmPath)); + extern void ImportJPEGFile ARGS_DECL((void)); extern DspList *ImportFilterListing ARGS_DECL((int *pnEntries)); extern void ImportOtherFile ARGS_DECL((void)); *** mainloop.e.orig Tue May 2 13:07:35 2000 --- mainloop.e Tue May 2 13:07:35 2000 *************** *** 53,56 **** --- 53,57 ---- extern char * displayName; extern int initializingMain; + extern int cmdLineUseXlib; extern int numExtraWins; *** setup.e.orig Tue May 2 13:07:36 2000 --- setup.e Tue May 2 13:07:36 2000 *************** *** 162,165 **** --- 162,167 ---- extern int curChoiceBeforeMakeQuiescent; + extern int noMinWinSize; + #ifdef _INCLUDE_FROM_SETUP_C_ #undef extern *** strtbl.e.orig Tue May 2 13:07:36 2000 --- strtbl.e Tue May 2 13:07:37 2000 *************** *** 1554,1559 **** #define STID_SHOW_MEASUREMENT_IN_TT_ENAB 2276 #define STID_SHOW_MEASUREMENT_IN_TT_DISB 2277 ! #define MAXNONCACHEDSTIDS 2278 extern struct MouseStatusStrRec colorMouseStatus[]; --- 1554,1562 ---- #define STID_SHOW_MEASUREMENT_IN_TT_ENAB 2276 #define STID_SHOW_MEASUREMENT_IN_TT_DISB 2277 + #define STID_SEL_JPEG_FILE_TO_IMPORT 2278 + #define STID_CANNOT_IMPORT_GIVEN_JPEG 2279 + #define STID_GIVEN_JPEG_SIZE_FILE_IMPORTED 2280 ! #define MAXNONCACHEDSTIDS 2281 extern struct MouseStatusStrRec colorMouseStatus[]; *** cmdids.h.orig Tue May 2 13:07:37 2000 --- cmdids.h Tue May 2 13:07:37 2000 *************** *** 382,387 **** #define CMDID_REPLACEGRAPHIC 429 #define CMDID_TOGGLESHOWMEASUREMENTINTT 430 ! #define MAXCMDIDS 431 #endif /*_CMDIDS_H_*/ --- 382,388 ---- #define CMDID_REPLACEGRAPHIC 429 #define CMDID_TOGGLESHOWMEASUREMENTINTT 430 + #define CMDID_IMPORTJPEGFILE 431 ! #define MAXCMDIDS 432 #endif /*_CMDIDS_H_*/ *** patchlvl.h.orig Tue May 2 13:07:38 2000 --- patchlvl.h Tue May 2 13:07:38 2000 *************** *** 35,39 **** #define _TGIF_PATCHLEVEL_H_ ! #define TGIF_PATCHLEVEL 29 #endif /*_TGIF_PATCHLEVEL_H_*/ --- 35,39 ---- #define _TGIF_PATCHLEVEL_H_ ! #define TGIF_PATCHLEVEL 30 #endif /*_TGIF_PATCHLEVEL_H_*/ *** Imakefile.orig Tue May 2 13:07:38 2000 --- Imakefile Tue May 2 13:07:38 2000 *************** *** 7,16 **** #endif ! XCOMM -------------------------------------------- XCOMM ! XCOMM Please make changed in Tgif.tmpl. XCOMM ! XCOMM There should be no need to modify this file. XCOMM ! XCOMM -------------------------------------------- XCOMM #include XCOMM --- 7,17 ---- #endif ! XCOMM ------------------------------------------------- XCOMM ! XCOMM Please make changed in Tgif.tmpl and Target.tmpl. XCOMM ! XCOMM There should be no need to modify this file. XCOMM ! XCOMM ------------------------------------------------- XCOMM #include + #include XCOMM *************** *** 53,57 **** $(MOREDEFINES) ! TGIFVERSION = 4.1.29 XCOMM Things to try to add to the DEFINES line above: --- 54,58 ---- $(MOREDEFINES) ! TGIFVERSION = 4.1.30 XCOMM Things to try to add to the DEFINES line above: *************** *** 275,279 **** SRCS3 = ! ComplexProgramTarget_1(tgif,$(LOCAL_LIBRARIES),NullParameter) /* * ComplexProgramTarget_2(prtgif,NullParameter,NullParameter) --- 276,280 ---- SRCS3 = ! ComplexProgramTarget_1($(TARGET_1),$(LOCAL_LIBRARIES),NullParameter) /* * ComplexProgramTarget_2(prtgif,NullParameter,NullParameter) *************** *** 344,348 **** rm -f tgif-$(TGIFVERSION).tar/**/* tar cvf tgif-$(TGIFVERSION).tar /**/*.c /**/*.e /**/*.h \ ! Makefile.noimake Imakefile Imakefile.tgwb Tgif.tmpl \ Tgif.tmpl-/**/* descrip./**/??? tgif.spec.in tgif.spec \ make./**/* VMS_MAKE_TGIF.COM tgificon.obj $(XBMDIR)*.xbm \ --- 345,349 ---- rm -f tgif-$(TGIFVERSION).tar/**/* tar cvf tgif-$(TGIFVERSION).tar /**/*.c /**/*.e /**/*.h \ ! Makefile.noimake Imakefile Target.tmpl Tgif.tmpl \ Tgif.tmpl-/**/* descrip./**/??? tgif.spec.in tgif.spec \ make./**/* VMS_MAKE_TGIF.COM tgificon.obj $(XBMDIR)*.xbm \ *************** *** 441,444 **** VMS_MAKE_TGIF.COM launch-demo.obj launch-demo-1.obj \ Copyright make./**/* Tgif.tmpl-/**/* tgif.spec.in \ ! Imakefile.tgwb README.tgwb \ > VersionInfo/Distribution/tgif-$(TGIFVERSION) --- 442,445 ---- VMS_MAKE_TGIF.COM launch-demo.obj launch-demo-1.obj \ Copyright make./**/* Tgif.tmpl-/**/* tgif.spec.in \ ! Imakefile.tgwb README.tgwb Target.tmpl \ > VersionInfo/Distribution/tgif-$(TGIFVERSION) *** tgif.man.orig Tue May 2 13:07:39 2000 --- tgif.man Tue May 2 13:07:39 2000 *************** *** 9,13 **** .\" .\" ! .TH tgif n "Version 4.1 Patchlevel 29 and Above" "Tgif" .\" .SH NAME --- 9,13 ---- .\" .\" ! .TH tgif n "Version 4.1 Patchlevel 30 and Above" "Tgif" .\" .SH NAME *************** *** 33,36 **** --- 33,37 ---- [\fB-exec \fR] [\fB-dbim {xcin|chinput|xim|kinput2}\fR] + [\fB-usexlib\fR] [\fB-geometry\fR ] [\fB=\fR] *************** *** 160,163 **** --- 161,171 ---- Use \fImethod\fR as the input method for double-byte fonts (see DOUBLE-BYTE INPUT METHOD section below). + .TP + .B -usexlib + If tgif is compiled with -DUSE_XT_INITIALIZE, X Toolkit initialization + routines will be used to setup tgif. Using this commandline option will + force tgif to ignore the -DUSE_XT_INITIALIZE compiler option and use + Xlib only. This is useful when the system resource file for tgif is + not installed properly or messed up and needs to be bypassed. .PP In the second form shown in the SYNOPSIS section, *************** *** 2193,2198 **** This command imports the file specified by and place it at (,). The file is expected to be in the format specified ! by , which can be "XBM", "XPM", "GIF", and names specified by ! the Tgif.ImportFilter# X defaults. .TP .I set_xpm_output_version() --- 2201,2206 ---- This command imports the file specified by and place it at (,). The file is expected to be in the format specified ! by , which can be "XBM", "XPM", "GIF", "PNG", "JPEG", and names ! specified by the Tgif.ImportFilter# X defaults. .TP .I set_xpm_output_version() *************** *** 4645,4648 **** --- 4653,4662 ---- The default is "pngtopnm %s | ppmquant 222 | ppmtoxpm". .TP + .I Tgif.JpegToXpm: STRING + The STRING specifies a command used to convert a JPEG file to an XPM file. + The STRING \fImust\fR contain a \fI%s\fR substring to be replaced by the + full path name of the PNG file. + The default is "djpeg -gif -color 222 %s | giftopnm | ppmtoxpm". + .TP .I Tgif.XpmToPng: STRING The STRING specifies a command used to convert an XPM file to a PNG file. *************** *** 4692,4696 **** of the object begin drawn/dragged/stretched will be shown in a tooltip window. This X default only takes effect if Tgif.ShowMeasurement is true. ! The default is true. .TP .I Tgif.MeasureTooltipXFollowMouse: [true,false] --- 4706,4710 ---- of the object begin drawn/dragged/stretched will be shown in a tooltip window. This X default only takes effect if Tgif.ShowMeasurement is true. ! The default is false. .TP .I Tgif.MeasureTooltipXFollowMouse: [true,false] *************** *** 4697,4701 **** If set to ``true'', the X position of the measurement tooptip will follow the mouse. ! The default is true. .TP .I Tgif.MeasureTooltipYFollowMouse: [true,false] --- 4711,4715 ---- If set to ``true'', the X position of the measurement tooptip will follow the mouse. ! The default is false. .TP .I Tgif.MeasureTooltipYFollowMouse: [true,false] *************** *** 4702,4706 **** If set to ``true'', the Y position of the measurement tooptip will follow the mouse. ! The default is true. .TP .I Tgif.MeasureTooltipHorizontalPosition: [left,center,right] --- 4716,4720 ---- If set to ``true'', the Y position of the measurement tooptip will follow the mouse. ! The default is false. .TP .I Tgif.MeasureTooltipHorizontalPosition: [left,center,right] *************** *** 4713,4716 **** --- 4727,4740 ---- This X default only takes effect if Tgif.MeasureTooltipYFollowMouse is false. The default is top. + .TP + .I Tgif.NoMinWinSize: [true,false] + If set to ``false'', tgif will have a minimum window size so that the + whole panel window is alway visible. + The problem with this setting is that some window manager + will show the wrong window size when you resize the window. + This setting is left for compatibility reasons. + If set to ``true'', a side effect is that the menubar will no longer + automatically wraps around when Tgif.MinimalMenubar is set to true. + The default is true. .\" .\" add new X defaults here *** HISTORY.orig Tue May 2 13:07:41 2000 --- HISTORY Tue May 2 13:07:41 2000 *************** *** 1,2 **** --- 1,34 ---- + -----------------------> tgif-4.1.29 => tgif-4.1.30 <----------------------- + 1) There's a bug with measure tooltip that certain X servers would generate + extra Expose events while others would not. The result is that + rubber-banding does not work when measure tooltip is enabled. The + simple solution here is to make the default value of + Tgif.UseMeasureTooltip to be false. Also, the default values of both + Tgif.MeasureTooltipXFollowMouse and MeasureTooltipYFollowMouse have been + changed to false, also. Thanks to Helmut Jarausch + for pointing out the problem. + 2) Fix a bug with exporting text objects in PS format when the text object + is scales or sheared such that its width or height is 0. This bug is + detectable by gs6.0. Thanks to Ingo Jankowski + for pointing out the problem. + 3) Fix a bug with printing text objects in black&white PS file with + UseGrayScale enabled. Thanks to Jurgen Rusch + for pointing out the problem. + 4) To build "tgwb", instead of using Imakefile.tgwb, use a new and easier to + maintain file called Target.tmpl. + 5) Add -usexlib commandline option to force tgif to ignore the + -DUSE_XT_INITIALIZE compile option and use Xlib only. This is useful + when the system resource file for tgif is not installed properly or + messed up and needs to be bypassed. + 6) Add a new X default, Tgif.NoMinWinSize, so that tgif can be started + without a minimum size when it is set to true (which is the default + value). The problem with the previous tgif is that, by having a + minimum window size, some window managers will show the wrong window + size when tgif is being resized. + 7) Support the importing of JPEG files in the Import submenu of the File + Menu. Add a new X default, Tgif.JpegToXpm, so that the import filter + can be replaced. By default, it is set to "djpeg -gif -color 222 %s | + giftopnm | ppmtoxpm". + -----------------------> tgif-4.1.28 => tgif-4.1.29 <----------------------- 1) Fix a bug with mouse action status in the color window if Use Color *** tgif.Xdefaults.orig Tue May 2 13:07:41 2000 --- tgif.Xdefaults Tue May 2 13:07:41 2000 *************** *** 450,456 **** ! Added in version 4.1.29 ! ! !Tgif.UseMeasureTooltip: true ! !Tgif.MeasureTooltipXFollowMouse: true ! !Tgif.MeasureTooltipYFollowMouse: true !Tgif.MeasureTooltipHorizontalPosition: left/center/right !Tgif.MeasureTooltipVerticalPosition: top/middle/bottom --- 450,461 ---- ! Added in version 4.1.29 ! ! !Tgif.UseMeasureTooltip: false ! !Tgif.MeasureTooltipXFollowMouse: false ! !Tgif.MeasureTooltipYFollowMouse: false !Tgif.MeasureTooltipHorizontalPosition: left/center/right !Tgif.MeasureTooltipVerticalPosition: top/middle/bottom + ! + ! Added in version 4.1.30 + ! + !Tgif.NoMinWinSize: true + !Tgif.JpegToXpm: djpeg -gif -color 222 %s | giftopnm | ppmtoxpm *** make.comdep.orig Tue May 2 13:07:42 2000 --- make.comdep Tue May 2 13:07:42 2000 *************** *** 32,38 **** xpixmap.e box$(O) : tgifdefs.h const.h tgif_dbg.h types.h attr.e auxtext.e box.e \ ! cmd.e color.e cursor.e cutpaste.e file.e grid.e mainloop.e \ ! msg.e obj.e pattern.e poly.e ps.e raster.e rect.e ruler.e \ ! select.e setup.e strtbl.e util.e xpixmap.e button$(O) : tgifdefs.h const.h tgif_dbg.h types.h auxtext.e box.e \ button.e cursor.e file.e font.e mainloop.e mainmenu.e menu.e \ --- 32,38 ---- xpixmap.e box$(O) : tgifdefs.h const.h tgif_dbg.h types.h attr.e auxtext.e box.e \ ! cmd.e color.e cursor.e cutpaste.e drawing.e file.e grid.e \ ! mainloop.e msg.e obj.e pattern.e poly.e ps.e raster.e rect.e \ ! ruler.e select.e setup.e strtbl.e util.e xpixmap.e button$(O) : tgifdefs.h const.h tgif_dbg.h types.h auxtext.e box.e \ button.e cursor.e file.e font.e mainloop.e mainmenu.e menu.e \ *************** *** 50,54 **** choose.e cutpaste.e cursor.e dialog.e file.e font.e \ mainloop.e mainmenu.e menu.e msg.e names.e raster.e rect.e \ ! remote.e scroll.e setup.e strtbl.e util.e $(XBM)check.xbm cli_xcin$(O) : tgifdefs.h const.h tgif_dbg.h types.h cli_xcin.e cmd$(O) : tgifdefs.h const.h tgif_dbg.h types.h attr.e choice.e cmd.e \ --- 50,55 ---- choose.e cutpaste.e cursor.e dialog.e file.e font.e \ mainloop.e mainmenu.e menu.e msg.e names.e raster.e rect.e \ ! remote.e ruler.e scroll.e setup.e strtbl.e util.e \ ! $(XBM)check.xbm cli_xcin$(O) : tgifdefs.h const.h tgif_dbg.h types.h cli_xcin.e cmd$(O) : tgifdefs.h const.h tgif_dbg.h types.h attr.e choice.e cmd.e \ *************** *** 72,82 **** $(XBM)flood.xbm $(XBM)flood_mk.xbm $(XBM)drip.xbm \ $(XBM)drip_msk.xbm ! cutpaste$(O) : tgifdefs.h const.h tgif_dbg.h types.h arc.e auxtext.e box.e \ ! choice.e choose.e cmd.e color.e convkinput.e cutpaste.e \ cursor.e dialog.e drawing.e dup.e file.e font.e grid.e ini.e \ mark.e miniline.e move.e msg.e names.e nkf.e obj.e oval.e \ ! page.e pattern.e poly.e polygon.e rcbox.e remote.e select.e \ ! setup.e special.e stretch.e strtbl.e text.e util.e xbitmap.e \ ! xpixmap.e dialog$(O) : tgifdefs.h const.h tgif_dbg.h types.h auxtext.e box.e \ button.e cutpaste.e cursor.e dialog.e drawing.e file.e font.e \ --- 73,83 ---- $(XBM)flood.xbm $(XBM)flood_mk.xbm $(XBM)drip.xbm \ $(XBM)drip_msk.xbm ! cutpaste$(O) : tgifdefs.h const.h tgif_dbg.h types.h arc.e auxtext.e attr.e \ ! box.e choice.e choose.e cmd.e color.e convkinput.e cutpaste.e \ cursor.e dialog.e drawing.e dup.e file.e font.e grid.e ini.e \ mark.e miniline.e move.e msg.e names.e nkf.e obj.e oval.e \ ! page.e pattern.e poly.e polygon.e raster.e rcbox.e remote.e \ ! select.e setup.e special.e stretch.e strtbl.e text.e util.e \ ! xbitmap.e xpixmap.e dialog$(O) : tgifdefs.h const.h tgif_dbg.h types.h auxtext.e box.e \ button.e cutpaste.e cursor.e dialog.e drawing.e file.e font.e \ *************** *** 116,122 **** mainloop.e menu.e miniline.e move.e msg.e names.e navigate.e \ obj.e oval.e pattern.e poly.e polygon.e raster.e rcbox.e \ ! rect.e remote.e select.e setup.e shortcut.e special.e stk.e \ ! stretch.e strtbl.e tangram2.e tcp.e text.e util.e version.e \ ! wb.e xbitmap.e xpixmap.e xprtfltr.e expr$(O) : tgifdefs.h const.h tgif_dbg.h types.h dialog.e expr.e msg.e \ setup.e strtbl.e util.e --- 117,123 ---- mainloop.e menu.e miniline.e move.e msg.e names.e navigate.e \ obj.e oval.e pattern.e poly.e polygon.e raster.e rcbox.e \ ! rect.e remote.e ruler.e select.e setup.e shortcut.e special.e \ ! stk.e stretch.e strtbl.e tangram2.e tcp.e text.e util.e \ ! version.e wb.e xbitmap.e xpixmap.e xprtfltr.e expr$(O) : tgifdefs.h const.h tgif_dbg.h types.h dialog.e expr.e msg.e \ setup.e strtbl.e util.e *************** *** 341,345 **** ruler$(O) : tgifdefs.h const.h tgif_dbg.h types.h choice.e cursor.e \ dialog.e font.e grid.e mainmenu.e msg.e raster.e ruler.e \ ! setup.e strtbl.e util.e scroll$(O) : tgifdefs.h const.h tgif_dbg.h types.h choice.e cursor.e \ dialog.e drawing.e dup.e exec.e grid.e mainloop.e menu.e \ --- 342,346 ---- ruler$(O) : tgifdefs.h const.h tgif_dbg.h types.h choice.e cursor.e \ dialog.e font.e grid.e mainmenu.e msg.e raster.e ruler.e \ ! setup.e strtbl.e util.e xpixmap.e scroll$(O) : tgifdefs.h const.h tgif_dbg.h types.h choice.e cursor.e \ dialog.e drawing.e dup.e exec.e grid.e mainloop.e menu.e \ *************** *** 397,402 **** text.e util.e tangram2$(O) : tgifdefs.h const.h tgif_dbg.h types.h attr.e auxtext.e box.e \ ! cmd.e dialog.e exec.e menu.e msg.e miniline.e obj.e pattern.e \ ! select.e setup.e tangram2.e util.e tcp$(O) : tgifdefs.h const.h tgif_dbg.h types.h msg.e remote.e strtbl.e \ tcp.e util.e --- 398,404 ---- text.e util.e tangram2$(O) : tgifdefs.h const.h tgif_dbg.h types.h attr.e auxtext.e box.e \ ! cmd.e dialog.e drawing.e exec.e menu.e msg.e miniline.e \ ! move.e obj.e pattern.e rcbox.e select.e setup.e tangram2.e \ ! util.e tcp$(O) : tgifdefs.h const.h tgif_dbg.h types.h msg.e remote.e strtbl.e \ tcp.e util.e *** Imakefile.tgwb.orig Tue May 2 13:07:43 2000 --- Imakefile.tgwb Tue May 2 13:07:43 2000 *************** *** 1,444 **** ! #ifndef XCOMM ! #define XCOMM # ! #endif ! #ifndef NullParameter ! #define NullParameter ! #endif - XCOMM -------------------------------------------- XCOMM - XCOMM Please make changed in Tgif.tmpl. XCOMM - XCOMM There should be no need to modify this file. XCOMM - XCOMM -------------------------------------------- XCOMM - - #include - XCOMM ! XCOMM Author: William Chia-Wei Cheng (william@cs.ucla.edu) XCOMM - XCOMM Copyright (C) 1990-2000, William Chia-Wei Cheng. - XCOMM - XCOMM Permission limited to the use, copy, display, distribute without - XCOMM charging for a fee, and produce derivative works of "tgif" and - XCOMM its documentation for not-for-profit purpose is hereby granted by - XCOMM the Author, provided that the above copyright notice appears in - XCOMM all copies made of "tgif" and that both the copyright notice - XCOMM and this permission notice appear in supporting documentation, - XCOMM and that the name of the Author not be used in advertising or - XCOMM publicity pertaining to distribution of the software without - XCOMM specific, written prior permission. The Author makes no - XCOMM representations about the suitability of this software for any - XCOMM purpose. It is provided "as is" without express or implied - XCOMM warranty. All other rights (including, but not limited to, the - XCOMM right to sell "tgif", the right to sell or distribute derivative - XCOMM works of "tgif", the right to distribute "tgif" for a fee, and - XCOMM the right to include "tgif" or derivative works of "tgif" in a - XCOMM for-sale product or service) are reserved by the Author. - XCOMM - XCOMM THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - XCOMM INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - XCOMM EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR - XCOMM CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF - XCOMM USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - XCOMM OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - XCOMM PERFORMANCE OF THIS SOFTWARE. - XCOMM - XCOMM @(#)$Header: /mm/src/tgif/v4/RCS/Imakefile.tgwb,v 4.0 2000/04/18 15:12:15 william Exp $ - XCOMM - - DEFINES = $(DIRDEFINES) \@@\ - $(EXTDEFINES) \@@\ - $(XIMPDEFINES) \@@\ - $(MISCDEFINES) \@@\ - $(MOREDEFINES) - - TGIFVERSION = 4.1.29 - - XCOMM Things to try to add to the DEFINES line above: - XCOMM - XCOMM RS6000: -D_BSD - XCOMM Solaris: - XCOMM Irix: - XCOMM SunOS: - XCOMM HP-UX: -D_NO_LOCALE_SUPPORT - XCOMM VMS: -D_NO_GETTIMEOFDAY - XCOMM Linux: - XCOMM FreeBSD: - XCOMM SCO: -DPRINT_CMD=\""lp -o raw -o nobanner"\" - - XCOMM -D_PS_SEVENBIT_DOUBLEBYTE_TEXT - XCOMM Include the above line if bit 7 in both bytes of a double-byte - XCOMM character should be masked out when printing/exporting double-byte - XCOMM text to a PostScript file. - XCOMM -D_USE_PS_ADOBE_STRING=\"true\" - XCOMM Include the above line in the DEFINES if you want to configure tgif - XCOMM to use a default Tgif.UsePsAdobeString value. - XCOMM -D_MINIMAL_EPS=1 - XCOMM Include the above line in the DEFINES if you want to configure tgif - XCOMM to use a default Tgif.MinimalEPS value. - XCOMM -DENABLE_NLS - XCOMM Include the above line if you want to enable NLS (Native Language - XCOMM Support). - XCOMM -D_DONT_USE_PORTABLE_LOCALE (obsoleted) - XCOMM Include the above line if you don't want to use the portable locale. - XCOMM (Portable locale is "C" for all locale categories.) - XCOMM -D_NO_RECURSIVE_EXTERN - XCOMM Include the above line if your C compiler cannot handle - XCOMM "#define extern extern". The /bin/cc compiler on HP-UX reports a - XCOMM Recursion in macro "extern" when the above define is used. - XCOMM -D_DL_EXPORT_UNDERSCORE - XCOMM Include the above line if you use export filters and there is an entry - XCOMM point to an export filter named "_TgifExportFilterMain" (and there's - XCOMM no entry point named "TgifExportFilterMain"). One can see all the - XCOMM entry points to an export filter by running 'nm' against it. - XCOMM -D_NO_XCIN - XCOMM Include the above line if you do not want to include the code - XCOMM that handles xcin. Please also remove "cli_xcin.o" from - XCOMM OBJ1 in Imakefile. - XCOMM -D_NO_CHINPUT - XCOMM Include the above line if you do not want to include the code - XCOMM that handles chinput. Please also remove "chinput.o" from - XCOMM OBJ1 in Imakefile. - XCOMM -D_NO_KINPUT - XCOMM Include the above line if you do not want to include the code - XCOMM that handles kinput. Please also remove "convkinput.o" from - XCOMM OBJ1 in Imakefile. - XCOMM -D_NO_XIM - XCOMM Include the above line if you do not want to include the code - XCOMM that handles X Input Method. Please also remove "convxim.o" from - XCOMM OBJ1 in Imakefile. - XCOMM -D_NO_NKF - XCOMM Include the above line if you do not want to include the code - XCOMM that handles Network Kanji Filter (NKF). Please also remove - XCOMM "nkf.o" from OBJ1 in Imakefile. - XCOMM -D_NO_DL_SUPPORT - XCOMM Include the above line if you don't have . If you define - XCOMM _NO_DL_SUPPORT, please use the SYS_LIBRARIES that does not contain - XCOMM -ldl above. - XCOMM -D_NO_LOCALE_SUPPORT - XCOMM Include the above line if you don't have . If this - XCOMM is the case and you don't have , you must also use - XCOMM -D_NO_XIM because "convxim.c" assumes that you have . - XCOMM -D_METRIC_PIX_PER_INCH - XCOMM Include the above line if you want to use 127 pixels per inch - XCOMM when printing in the metric system. If this line is not - XCOMM included, 128 pixels per inch is used. - XCOMM -D_NO_GETTIMEOFDAY - XCOMM Include the above line if you do not have the gettimeofday() - XCOMM function but have the ftime() function. - XCOMM -D_TANGRAM_II - XCOMM Include the above line if you want to include the Tangram-II features - XCOMM by Carlos Fisch de Brito, Luiz Rogerio Goncalves de Carvalho, and - XCOMM Denise Jorge de Oliveira of the - XCOMM Tangram-II team of the Universidade Federal do Rio de Janeiro. These - XCOMM features are under development and highly experimental. - XCOMM -D_TGIF_WB (obsoleted) - XCOMM Include the above line if you want to include the whiteboard feature - XCOMM by Renato Santana . - XCOMM -D_TGIF_WB2 - XCOMM Include the above line if you want to include the whiteboard feature - XCOMM by Magnos Martinello and Raphael S. de Moraes - XCOMM . The whiteboard needs IP multicast support, - XCOMM and therefore, can only run on IP multicast enabled kernels. This - XCOMM code is experimental and have know bugs (such as buffer overflow) and - XCOMM only runs on Solaris 2.6 or above or Linux 6.x or above. If you would - XCOMM like to try it, please manipulate only small objects at this time. - XCOMM -D_HAS_STREAMS_SUPPORT - XCOMM Include the above line in addition to -D_TGIF_WB2 if you have the - XCOMM /usr/include/stropts.h file (such as Solaris 2.6 or above or Linux - XCOMM 6.x or above. - XCOMM -DBSD_COMP - XCOMM Include the above line if you are compiling on a Solaris (or - XCOMM possibly an SGI) machine which requires it in . - XCOMM (If you see the error that FIONBIO is not defined when compiling - XCOMM tcp.c, then you probably need this.) - XCOMM -D_BACKGROUND_DONT_FORK - XCOMM Try the above line if there are defunct tgif child processes. - XCOMM -D_NO_LSTAT - XCOMM Include the above line if lstat() is not available. In this case, - XCOMM using BrowseXBitmap and BrowseXPixmap under the File Menu may cause - XCOMM infinite loop if the directory structure is infinitely recursive. - XCOMM -D_USE_XDRAWPOINT_TO_PUT_A_POINT - XCOMM Include the above line if the grid points are not visible. This can - XCOMM be used to bypass some X server bugs (such as certain Linux X server - XCOMM using VGA16 screen) where the XDrawLine() Xlib call does not work - XCOMM properly. - XCOMM -D_NO_EXTERN (obsoleted) - XCOMM Include the above line in the DEFINES if you don't want to include - XCOMM the extern definition for functions defined in a module. For example, - XCOMM if this option is set, then file "foo.c" will not include "foo.e", - XCOMM and certain other extern definition in "foo.c" will be omitted. - XCOMM -D_NO_PROTO - XCOMM Include the above line in the DEFINES if checking for function - XCOMM prototypes is not desired. Checking for function prototypes - XCOMM are automatically enabled if you are using an ANSI or C++ compilor. - XCOMM However, not all ANSI/C++ compilors are created equal. - XCOMM -D_BSD - XCOMM Include the above line in the DEFINES if the select() function can - XCOMM does not be found for AIX systems (such as RS6000). Also, on AIX - XCOMM systems, if you see garbage file names when you try to open files, - XCOMM try this flag to make direct and dirent equivalent (in ). - XCOMM -D_NO_RAND48 - XCOMM Include the above line in the DEFINES if you do not have the - XCOMM srand48() or drand48() functions in your system's library. - XCOMM -DNO_STRSTR - XCOMM Include the above line in the DEFINES if you do not have the strstr() - XCOMM function in your system's string library. - XCOMM -DINVERT_CTM_BUG - XCOMM Include the above line in the DEFINES if you are using PostScript - XCOMM utilities which fails when trying to invert non-invertible CTM - XCOMM (e.g., muluti.ps from ftp.ucc.su.oz.au:/pub/ps_printing/multi). - XCOMM -DHP_LINE_BUG - XCOMM Include the above line in the DEFINES if two-vertices horizontal and - XCOMM verticle line segments don't draw properly on a buggy HP server. - XCOMM -DDONTFREECOLORS - XCOMM Include the above line in the DEFINES if you don't want the black and - XCOMM the white colors to be freed when tgif initializes itself. You should - XCOMM not need to do this unless you need to get around some server bugs. - XCOMM -DUSE_XAPPLRESDIR - XCOMM Include the above line in the DEFINES if $XAPPLRESDIR/Tgif is used to - XCOMM specify the resource file. If your system does not have putenv() - XCOMM (such as IBM-RT), then this won't work. - XCOMM -DXAPPLOADDIR_DEF - XCOMM If you define USE_XAPPLRESDIR, define this to a default directory - XCOMM to use in case $XAPPLRESDIR isn't set. - XCOMM -DUSE_XT_INITIALIZE - XCOMM This will cause the XToolkit to be initialized so that the X defaults - XCOMM are obtained from the Xt directories. This should only be used when - XCOMM USE_XAPPLRESDIR option is NOT used. Please remember to use the - XCOMM LOCAL_LIBRARIES with $(XTOOLLIB) $(XMULIB) above. - XCOMM -DNO_THIN_LINE - XCOMM Include the above line in the DEFINES if a line width of 0 causes - XCOMM your server to crash. This is to get around a bug in some X servers. - XCOMM -DTHIN_OVAL_AND_ARC - XCOMM Include the above line in the DEFINES if you want 0 width arcs to - XCOMM be used when the width of an arc is less than or equal to 1. - XCOMM (Sun3 server has a bug that makes drawing ovals and arcs with - XCOMM width other than 0 VERY slow). - XCOMM -DKEEP_WHEN_PRINT - XCOMM Include the above line in the DEFINES if you don't want the temp - XCOMM file to be deleted after sending the print job to the printer. - XCOMM (Some VMS systems might require this flag to be used.) - XCOMM -DPRINT_CMD=\"lpr\" - XCOMM Include the above line in the DEFINES if you want to configure tgif - XCOMM to use a default print command. - XCOMM -DNOTR4MODE - XCOMM Include the above line in the DEFINES if you are running X11R3. - XCOMM This will cause tgif NOT to use some X11R4 window manager related - XCOMM functions that's not present in R3. - XCOMM -DMAPBEFORESELECT - XCOMM Include the above line in the DEFINES to call XMapWindow() before - XCOMM calling XSelectInput(). This might be needed to get around some - XCOMM server bugs. - XCOMM -DDONT_FREE_COLORMAP - XCOMM Include the above line in the DEFINES if you don't want the colormap - XCOMM to be freed when tgif exits. - XCOMM -DA4PAPER - XCOMM Include the above line in the DEFINES if you want to print on A4 paper - XCOMM (8.25in by 11.7in or about 21cm by 29.7cm). - - OBJ1 = align.o animate.o arc.o attr.o auxtext.o \ - box.o button.o \ - chinput.o choice.o choose.o cli_xcin.o convkinput.o \ - convxim.o cmd.o color.o cutpaste.o cursor.o \ - dialog.o drawing.o dup.o \ - edit.o eps.o exec.o expr.o \ - file.o font.o ftp.o \ - grid.o group.o \ - help.o http.o \ - imgproc.o import.o ini.o inmethod.o \ - mainloop.o mainmenu.o mark.o markup.o menu.o \ - menuinfo.o miniline.o move.o msg.o \ - names.o navigate.o nkf.o \ - obj.o oval.o \ - page.o pattern.o pin.o poly.o polygon.o ps.o \ - raster.o rcbox.o rect.o remote.o ruler.o \ - scroll.o select.o setup.o shape.o shortcut.o \ - special.o spline.o stk.o stream.o stretch.o \ - strtbl.o \ - tangram2.o tgif_dbg.o \ - tcp.o text.o \ - util.o \ - version.o vms_comp.o \ - wb.o wb1.o wb2.o wb3.o wb_buff.o wb_mcast.o \ - xbitmap.o xpixmap.o xprtfltr.o - - OBJS1 = tgif.o $(OBJ1) - OBJS2 = prtgif.o - OBJS3 = testdrive.o $(OBJ1) - FRONTENDOBJS = frontend.o $(OBJ1) - - CURRENTDIR =./ - - SRCS1 = $(CURRENTDIR)*.c - SRCS2 = - SRCS3 = - - ComplexProgramTarget_1(tgwb,$(LOCAL_LIBRARIES),NullParameter) - /* - * ComplexProgramTarget_2(prtgif,NullParameter,NullParameter) - * ComplexProgramTarget_3(testdrive,$(LOCAL_LIBRARIES),NullParameter) - */ - - /* - * NormalRelocatableTarget(frontend11,$(FRONTENDOBJS)) - */ - - MakeDirectories(install,$(TGIFDIR)) - InstallNonExec(tgif.Xdefaults,$(TGIFDIR)) - InstallNonExec(tgificon.eps,$(TGIFDIR)) - InstallNonExec(tgificon.obj,$(TGIFDIR)) - InstallNonExec(tgificon.xbm,$(TGIFDIR)) - InstallNonExec(tgificon.xpm,$(TGIFDIR)) - InstallNonExec(tangram.sym,$(TGIFDIR)) - InstallNonExec(eq4.sym,$(TGIFDIR)) - InstallNonExec(eq4-2x.sym,$(TGIFDIR)) - InstallNonExec(eq4-ps2epsi.sym,$(TGIFDIR)) - InstallNonExec(eq4-epstool.sym,$(TGIFDIR)) - InstallNonExec(keys.obj,$(TGIFDIR)) - - .SUFFIXES: .l .man - - .l.man: - rm -f $*.man - cp $*.l $*.man - - .e.o: - - SPICEDIR =spice/ - XBMDIR =xbm/ - - OBJDEMO = an-sr-flip-flop.obj fonts.obj slide-demo.obj keys.obj \ - $(SPICEDIR)*.obj launch-demo.obj launch-demo-1.obj - SYMDEMO = flip-flop.sym nand2.sym pin.sym tangram.sym $(SPICEDIR)*.sym \ - eq4.sym eq4-2x.sym eq4-ps2epsi.sym eq4-epstool.sym - MISCTAR = /**/*.man README README.tgwb Copyright tgif.pl $(SPICEDIR)*.mod \ - example.tex HISTORY /**/*.uu testdrive.pl frontend.pl - BACKUPDIR = /mnt/halfmoon/home/william/src/tgif/v4/backup - - distr: tar versioninfo - - uu: - rm -f /**/*.uu /**/*.cat /**/*.cat.Z - groff -Tascii -man tgif.man > tgif.cat; compress tgif.cat - groff -Tascii -man prtgif.man > prtgif.cat; compress prtgif.cat - uuencode tgif.cat.Z tgif.cat.Z > tgif.cat.Z.uu - uuencode prtgif.cat.Z prtgif.cat.Z > prtgif.cat.Z.uu - rm -f /**/*.cat.Z - - rcstar: - @rm -f home/RCS3.tar.gz.save - @if [ -f home/RCS3.tar.gz ]; then \ - mv home/RCS3.tar.gz home/RCS3.tar.gz.save; \ - fi - tar cf home/RCS3.tar RCS xbm.RCS - gzip home/RCS3.tar - ls -l home/RCS3.tar.gz - - spec: - @rm -f tgif.spec - echo "%define ver $(TGIFVERSION)" > tgif.spec - cat tgif.spec.in >> tgif.spec - - tar: uu spec - rm -f tgif-$(TGIFVERSION).tar/**/* - tar cvf tgif-$(TGIFVERSION).tar /**/*.c /**/*.e /**/*.h \ - Makefile.noimake Imakefile Imakefile.tgwb Tgif.tmpl \ - Tgif.tmpl-/**/* descrip./**/??? tgif.spec.in tgif.spec \ - make./**/* VMS_MAKE_TGIF.COM tgificon.obj $(XBMDIR)*.xbm \ - tgificon.xbm tgificon.xpm tgif.Xdefaults tgificon.eps \ - $(OBJDEMO) \ - $(SYMDEMO) \ - $(MISCTAR) \ - po - rm -rf tgif-$(TGIFVERSION) - mkdir tgif-$(TGIFVERSION) - cd tgif-$(TGIFVERSION); tar xvf ../tgif-$(TGIFVERSION).tar; cd .. - rm -f tgif-$(TGIFVERSION).tar - tar cvf tgif-$(TGIFVERSION).tar tgif-$(TGIFVERSION) - rm -rf tgif-$(TGIFVERSION) - gzip tgif-$(TGIFVERSION).tar - rm -f /**/*.cat.Z.uu - - rpm-src: tar - rpm -ta tgif-$(TGIFVERSION).tar.gz - - rpm-bin: tar - rpm -tb tgif-$(TGIFVERSION).tar.gz - - backup: distr - rm -rf $(BACKUPDIR).old - mv $(BACKUPDIR) $(BACKUPDIR).old - mkdir $(BACKUPDIR) - tar cf - RCS VersionInfo tgif-$(TGIFVERSION).tar.gz | \ - (cd $(BACKUPDIR); tar xvpf -) - - MAN_1 = README /**/*.man Imakefile Copyright - BASIC_1 = Makefile.noimake descrip./**/* make./**/* HISTORY tgif.Xdefaults \ - Tgif.tmpl Tgif.tmpl-/**/* VMS_MAKE_TGIF.COM - - MISC_1 = an-sr-flip-flop.obj fonts.obj slide-demo.obj keys.obj \ - launch-demo.obj launch-demo-1.obj \ - flip-flop.sym nand2.sym pin.sym tangram.sym tgificon.xbm \ - eq4.sym eq4-2x.sym eq4-ps2epsi.sym eq4-epstool.sym - MISC_2 = tgif.pl testdrive.pl frontend.pl tgificon.obj example.tex - MISC_3 = tgificon.xpm tgificon.eps /**/*.uu - SPICE_1 = spice $(SPICEDIR)*.obj $(SPICEDIR)*.sym $(SPICEDIR)*.mod - - shar: uu - rm -f tgif-$(TGIFVERSION).shar./**/* - shar -otgif-$(TGIFVERSION).shar.1 -n1 -e38 $(MAN_1) - shar -otgif-$(TGIFVERSION).shar.2 -n2 -e38 $(BASIC_1) - shar -otgif-$(TGIFVERSION).shar.3 -n3 -e38 a[a-n]/**/*.c - shar -otgif-$(TGIFVERSION).shar.4 -n4 -e38 a[o-s]/**/*.c - shar -otgif-$(TGIFVERSION).shar.5 -n5 -e38 a[t-z]/**/*.c - shar -otgif-$(TGIFVERSION).shar.6 -n6 -e38 b/**/*.c - shar -otgif-$(TGIFVERSION).shar.7 -n7 -e38 c[a-m]/**/*.c - shar -otgif-$(TGIFVERSION).shar.8 -n8 -e38 c[n-z]/**/*.c - shar -otgif-$(TGIFVERSION).shar.9 -n9 -e38 d/**/*.c - shar -otgif-$(TGIFVERSION).shar.10 -n10 -e38 e[a-d]/**/*.c - shar -otgif-$(TGIFVERSION).shar.11 -n11 -e38 e[e-z]/**/*.c - shar -otgif-$(TGIFVERSION).shar.12 -n12 -e38 f[a-i]/**/*.c - shar -otgif-$(TGIFVERSION).shar.13 -n13 -e38 f[j-z]/**/*.c - shar -otgif-$(TGIFVERSION).shar.14 -n14 -e38 [g-l]/**/*.c - shar -otgif-$(TGIFVERSION).shar.15 -n15 -e38 ma/**/*.c - shar -otgif-$(TGIFVERSION).shar.16 -n16 -e38 m[b-e]/**/*.c - shar -otgif-$(TGIFVERSION).shar.17 -n17 -e38 m[f-z]/**/*.c - shar -otgif-$(TGIFVERSION).shar.18 -n18 -e38 n/**/*.c - shar -otgif-$(TGIFVERSION).shar.19 -n19 -e38 o/**/*.c p[a-n]/**/*.c - shar -otgif-$(TGIFVERSION).shar.20 -n20 -e38 poly.c - shar -otgif-$(TGIFVERSION).shar.21 -n21 -e38 polygon.c p[p-z]/**/*.c - shar -otgif-$(TGIFVERSION).shar.22 -n22 -e38 r[a-c]/**/*.c stk/**/*.c - shar -otgif-$(TGIFVERSION).shar.23 -n23 -e38 r[d-z]/**/*.c - shar -otgif-$(TGIFVERSION).shar.24 -n24 -e38 sc/**/*.c sel/**/*.c - shar -otgif-$(TGIFVERSION).shar.25 -n25 -e38 set/**/*.c s[f-p]/**/*.c - shar -otgif-$(TGIFVERSION).shar.26 -n26 -e38 str/**/*.c - shar -otgif-$(TGIFVERSION).shar.27 -n27 -e38 text.c - shar -otgif-$(TGIFVERSION).shar.28 -n28 -e38 testdrive.c t[f-z]/**/*.c \ - [u-w]/**/*.c - shar -otgif-$(TGIFVERSION).shar.29 -n29 -e38 x[a-m]/**/*.c - shar -otgif-$(TGIFVERSION).shar.30 -n30 -e38 x[n-z]/**/*.c - shar -otgif-$(TGIFVERSION).shar.31 -n31 -e38 [a-n]/**/*.e - shar -otgif-$(TGIFVERSION).shar.32 -n32 -e38 [o-z]/**/*.e /**/*.h - shar -otgif-$(TGIFVERSION).shar.33 -n33 -e38 xbm xbm/[a-k]/**/*.xbm \ - xbm/l[a-s]/**/*.xbm - shar -otgif-$(TGIFVERSION).shar.34 -n34 -e38 xbm/l[t-z]/**/*.xbm \ - xbm/[m-z]/**/*.xbm - shar -otgif-$(TGIFVERSION).shar.35 -n35 -e38 $(MISC_1) - shar -otgif-$(TGIFVERSION).shar.36 -n36 -e38 $(MISC_2) - shar -otgif-$(TGIFVERSION).shar.37 -n37 -e38 $(MISC_3) - shar -otgif-$(TGIFVERSION).shar.38 -n38 -e38 $(SPICE_1) - - versioninfo: - what .psmac /**/*.c /**/*.e /**/*.h Makefile.noimake Imakefile \ - Tgif.tmpl /**/*.man tgif.pl README example.tex HISTORY \ - tgificon.obj an-sr-flip-flop.obj fonts.obj slide-demo.obj \ - keys.obj flip-flop.sym nand2.sym pin.sym tangram.sym \ - eq4.sym eq4-2x.sym eq4-ps2epsi.sym eq4-epstool.sym \ - $(SPICEDIR)*.obj $(SPICEDIR)*.sym testdrive.pl frontend.pl \ - descrip.mms descrip.opt tgifmacro.ps $(XBMDIR)*.xbm \ - tgificon.xbm tgificon.xpm tgif.Xdefaults tgificon.eps \ - VMS_MAKE_TGIF.COM launch-demo.obj launch-demo-1.obj \ - Copyright make./**/* Tgif.tmpl-/**/* tgif.spec.in \ - Imakefile.tgwb README.tgwb \ - > VersionInfo/Distribution/tgif-$(TGIFVERSION) --- 1,7 ---- ! This file is obsolete. ! Please see README.tgwb regarding how to build tgwb. XCOMM ! XCOMM @(#)$Header: /mm/src/tgif/v4/RCS/Imakefile.tgwb,v 4.1 2000/05/01 18:36:35 william Exp $ XCOMM *** README.tgwb.orig Tue May 2 13:07:43 2000 --- README.tgwb Tue May 2 13:07:43 2000 *************** *** 25,37 **** 2) Tgwb is basically tgif with 2 noted differences: ! a) Please use Imakefile.tgwb instead of Imakefile when compiling tgwb. ! Please do the following before you install: ! mv Imakefile Imakefile.tgif ! cp Imakefile.tgwb Imakefile b) Follow the instructions in the README file for tgif. Make all the ! selections and modifications you need for Tgif.tmpl. Right before ! you build, do the following in Tgif.tmpl: i) Replace "tgif" in the PROGRAMS line by "tgwb" --- 25,37 ---- 2) Tgwb is basically tgif with 2 noted differences: ! a) Modify Target.tmpl and change TARGET_1 to tgwb as follows: ! TARGET_1 = tgwb + Please do the above before you run "xmkmf". + b) Follow the instructions in the README file for tgif. Make all the ! selections and modifications you need for Tgif.tmpl. Right before you ! build (starting from running "xmkmf"), do the following in Tgif.tmpl: i) Replace "tgif" in the PROGRAMS line by "tgwb" *** Target.tmpl.orig Tue May 2 13:07:44 2000 --- Target.tmpl Tue May 2 13:07:44 2000 *************** *** 0 **** --- 1,38 ---- + XCOMM + XCOMM Author: William Chia-Wei Cheng (william@cs.ucla.edu) + XCOMM + XCOMM Copyright (C) 1990-2000, William Chia-Wei Cheng. + XCOMM + XCOMM Permission limited to the use, copy, display, distribute without + XCOMM charging for a fee, and produce derivative works of "tgif" and + XCOMM its documentation for not-for-profit purpose is hereby granted by + XCOMM the Author, provided that the above copyright notice appears in + XCOMM all copies made of "tgif" and that both the copyright notice + XCOMM and this permission notice appear in supporting documentation, + XCOMM and that the name of the Author not be used in advertising or + XCOMM publicity pertaining to distribution of the software without + XCOMM specific, written prior permission. The Author makes no + XCOMM representations about the suitability of this software for any + XCOMM purpose. It is provided "as is" without express or implied + XCOMM warranty. All other rights (including, but not limited to, the + XCOMM right to sell "tgif", the right to sell or distribute derivative + XCOMM works of "tgif", the right to distribute "tgif" for a fee, and + XCOMM the right to include "tgif" or derivative works of "tgif" in a + XCOMM for-sale product or service) are reserved by the Author. + XCOMM + XCOMM THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + XCOMM INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + XCOMM EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR + XCOMM CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + XCOMM USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + XCOMM OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + XCOMM PERFORMANCE OF THIS SOFTWARE. + XCOMM + XCOMM @(#)$Header: /mm/src/tgif/v4/RCS/Target.tmpl,v 4.0 2000/04/20 12:26:26 william Exp $ + XCOMM + + TARGET_1 = tgif + + XCOMM + XCOMM If you want to build tgwb, please change TARGET_1 above to tgwb. + XCOMM