home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / x / volume21 / xfig / patch02d / xfig.05
Encoding:
Text File  |  1993-10-21  |  31.7 KB  |  1,001 lines

  1.       points = tmp_p;
  2.       }
  3. +     /* ignore identical points */
  4. +     if (npoints > 0 && 
  5. +     points[npoints-1].x == (short) x && points[npoints-1].y == (short) y)
  6. +         return;
  7.       points[npoints].x = (short) x;
  8.       points[npoints].y = (short) y;
  9.       npoints++;
  10. ***************
  11. *** 292,298 ****
  12.       double    xleft, xright, d, asqr, bsqr;
  13.       int    ymax, yy=0;
  14.       int    k,m,dir;
  15. !     float    savezoom, savexoff, saveyoff;
  16.       int    zoomthick;
  17.       XPoint    *ipnts;
  18.   
  19. --- 296,303 ----
  20.       double    xleft, xright, d, asqr, bsqr;
  21.       int    ymax, yy=0;
  22.       int    k,m,dir;
  23. !     float    savezoom;
  24. !     int    savexoff, saveyoff;
  25.       int    zoomthick;
  26.       XPoint    *ipnts;
  27.   
  28. ***************
  29. *** 313,319 ****
  30.       savexoff = zoomxoff;
  31.       saveyoff = zoomyoff;
  32.       zoomscale = 1.0;
  33. !     zoomxoff = zoomyoff = 0.0;
  34.   
  35.       cphi = cos((double)angle);
  36.       sphi = sin((double)angle);
  37. --- 318,324 ----
  38.       savexoff = zoomxoff;
  39.       saveyoff = zoomyoff;
  40.       zoomscale = 1.0;
  41. !     zoomxoff = zoomyoff = 0;
  42.   
  43.       cphi = cos((double)angle);
  44.       sphi = sin((double)angle);
  45. ***************
  46. *** 440,446 ****
  47.           if (line->eps->file[0] == '\0')
  48.           string = EMPTY_EPS;
  49.           else {
  50. !         string = rindex(line->eps->file, '/');
  51.           if (string == NULL)
  52.               string = line->eps->file;
  53.           else
  54. --- 445,451 ----
  55.           if (line->eps->file[0] == '\0')
  56.           string = EMPTY_EPS;
  57.           else {
  58. !         string = strrchr(line->eps->file, '/');
  59.           if (string == NULL)
  60.               string = line->eps->file;
  61.           else
  62. ***************
  63. *** 453,463 ****
  64.           ymin = min3(p0->y, p1->y, p2->y);
  65.           xmax = max3(p0->x, p1->x, p2->x);
  66.           ymax = max3(p0->y, p1->y, p2->y);
  67. !         canvas_font = lookfont(0, 12, 0.0);    /* get a size 12 font */
  68.           txt = pf_textwidth(canvas_font, strlen(string), string);
  69.           x = (xmin + xmax) / 2 - txt.x / 2;
  70.           y = (ymin + ymax) / 2;
  71. !         pw_text(canvas_win, x, y, op, canvas_font, string, DEFAULT_COLOR);
  72.           /* return; */
  73.       }
  74.       }
  75. --- 458,469 ----
  76.           ymin = min3(p0->y, p1->y, p2->y);
  77.           xmax = max3(p0->x, p1->x, p2->x);
  78.           ymax = max3(p0->y, p1->y, p2->y);
  79. !         canvas_font = lookfont(0, 12);    /* get a size 12 font */
  80.           txt = pf_textwidth(canvas_font, strlen(string), string);
  81.           x = (xmin + xmax) / 2 - txt.x / 2;
  82.           y = (ymin + ymax) / 2;
  83. !         pw_text(canvas_win, x, y, op, canvas_font, 
  84. !             0.0, string, DEFAULT_COLOR);
  85.           /* return; */
  86.       }
  87.       }
  88. ***************
  89. *** 832,846 ****
  90.   {
  91.       PR_SIZE        size;
  92.       int            x,y;
  93. -     float        angle;
  94.       int            xmin, ymin, xmax, ymax;
  95.       int            x1,y1, x2,y2, x3,y3, x4,y4;
  96.   
  97. !     if (appres.textoutline)    /* get corners of rectangle at actual angle */
  98. !     text_bound_both(text, &xmin, &ymin, &xmax, &ymax, 
  99. !               &x1,&y1, &x2,&y2, &x3,&y3, &x4,&y4);
  100. !     else
  101. !     text_bound(text, &xmin, &ymin, &xmax, &ymax);
  102.   
  103.       if (!overlapping(ZOOMX(xmin), ZOOMY(ymin), ZOOMX(xmax), ZOOMY(ymax),
  104.                clip_xmin, clip_ymin, clip_xmax, clip_ymax))
  105. --- 838,848 ----
  106.   {
  107.       PR_SIZE        size;
  108.       int            x,y;
  109.       int            xmin, ymin, xmax, ymax;
  110.       int            x1,y1, x2,y2, x3,y3, x4,y4;
  111.   
  112. !     text_bound(text, &xmin, &ymin, &xmax, &ymax, 
  113. !            &x1,&y1, &x2,&y2, &x3,&y3, &x4,&y4);
  114.   
  115.       if (!overlapping(ZOOMX(xmin), ZOOMY(ymin), ZOOMX(xmax), ZOOMY(ymax),
  116.                clip_xmin, clip_ymin, clip_xmax, clip_ymax))
  117. ***************
  118. *** 856,893 ****
  119.   
  120.       x = text->base_x;
  121.       y = text->base_y;
  122. -     angle = text->angle*180.0/M_PI;
  123.       if (text->type == T_CENTER_JUSTIFIED || text->type == T_RIGHT_JUSTIFIED) {
  124.       size = pf_textwidth(text->fontstruct, strlen(text->cstring), 
  125.                   text->cstring);
  126.       size.x = size.x/zoomscale;
  127.       if (text->type == T_CENTER_JUSTIFIED) {
  128. !         if (angle < 90.0 - 0.001)
  129. !         x -= size.x / 2;    /*   0 to  89 degrees */
  130. !         else if (angle < 180.0 - 0.001)
  131. !         y += size.x / 2;    /*  90 to 179 degrees */
  132. !         else if (angle < 270.0 - 0.001)
  133. !         x += size.x / 2;    /* 180 to 269 degrees */
  134. !         else 
  135. !         y -= size.x / 2;    /* 270 to 359 degrees */
  136.       } else {    /* T_RIGHT_JUSTIFIED */
  137. !         if (angle < 90.0 - 0.001)
  138. !         x -= size.x;        /*   0 to  89 degrees */
  139. !         else if (angle < 180.0 - 0.001)
  140. !         y += size.x;        /*  90 to 179 degrees */
  141. !         else if (angle < 270.0 - 0.001)
  142. !         x += size.x;        /* 180 to 269 degrees */
  143. !         else 
  144. !         y -= size.x;        /* 270 to 359 degrees */
  145.       }
  146.       }
  147.       if (hidden_text(text))
  148. !     pw_text(canvas_win, x, y, op, lookfont(0,12,text->angle),
  149. !         hidden_text_string, DEFAULT_COLOR);
  150.       else
  151.       pw_text(canvas_win, x, y, op, text->fontstruct,
  152. !         text->cstring, text->color);
  153.   }
  154.   
  155.   /*********************** COMPOUND ***************************/
  156. --- 858,881 ----
  157.   
  158.       x = text->base_x;
  159.       y = text->base_y;
  160.       if (text->type == T_CENTER_JUSTIFIED || text->type == T_RIGHT_JUSTIFIED) {
  161.       size = pf_textwidth(text->fontstruct, strlen(text->cstring), 
  162.                   text->cstring);
  163.       size.x = size.x/zoomscale;
  164.       if (text->type == T_CENTER_JUSTIFIED) {
  165. !         x = round(x-cos(text->angle)*size.x/2);
  166. !         y = round(y+sin(text->angle)*size.x/2);
  167.       } else {    /* T_RIGHT_JUSTIFIED */
  168. !         x = round(x-cos(text->angle)*size.x);
  169. !         y = round(y+sin(text->angle)*size.x);
  170.       }
  171.       }
  172.       if (hidden_text(text))
  173. !     pw_text(canvas_win, x, y, op, lookfont(0,12),
  174. !         text->angle, hidden_text_string, DEFAULT_COLOR);
  175.       else
  176.       pw_text(canvas_win, x, y, op, text->fontstruct,
  177. !         text->angle, text->cstring, text->color);
  178.   }
  179.   
  180.   /*********************** COMPOUND ***************************/
  181. ***************
  182. *** 1038,1046 ****
  183.       dec = 1;
  184.       }
  185.       if (xstart == xend && ystart == yend) {
  186. !     test_succeed = margin = 1;
  187.       } else {
  188. !     test_succeed = margin = 1;
  189.       }
  190.   
  191.       if (!add_point(xoff + x, yoff - y))
  192. --- 1026,1034 ----
  193.       dec = 1;
  194.       }
  195.       if (xstart == xend && ystart == yend) {
  196. !     test_succeed = margin = 2;
  197.       } else {
  198. !     test_succeed = margin = 3;
  199.       }
  200.   
  201.       if (!add_point(xoff + x, yoff - y))
  202. ***************
  203. *** 1072,1079 ****
  204.       if (!add_point(xoff + x, yoff - y))
  205.           break;
  206.   
  207. !     if (abs(x - xend) < margin && abs(y - yend) < margin)
  208. !         test_succeed--;
  209.       }
  210.   
  211.       if (xstart == xend && ystart == yend)    /* end points should touch */
  212. --- 1060,1068 ----
  213.       if (!add_point(xoff + x, yoff - y))
  214.           break;
  215.   
  216. !     if ((abs(x - xend) < margin && abs(y - yend) < margin) &&
  217. !         (x != xend || y != yend))
  218. !         test_succeed--;
  219.       }
  220.   
  221.       if (xstart == xend && ystart == yend)    /* end points should touch */
  222. diff -rc xfig.2.1.7a/u_elastic.c xfig.2.1.8/u_elastic.c
  223. *** xfig.2.1.7a/u_elastic.c    Fri Feb 12 09:04:23 1993
  224. --- xfig.2.1.8/u_elastic.c    Mon Sep 13 16:52:45 1993
  225. ***************
  226. *** 161,177 ****
  227.   {
  228.       float        angle, dx, dy;
  229.   
  230.       if (x == cur_x && y == cur_y)
  231.       return;
  232.   
  233.       dx = x - fix_x;
  234.       dy = fix_y - y;
  235. !     if (sqrt((double) (dx * dx + dy * dy)) < 7)
  236.       return;
  237.       if (dx == 0)
  238. !     angle = -90;
  239.       else
  240. !     angle = 180 * atan((double) (dy / dx)) / 3.1416;
  241.   
  242.       elastic_line();
  243.       if (manhattan_mode) {
  244. --- 161,179 ----
  245.   {
  246.       float        angle, dx, dy;
  247.   
  248. +     length_msg(MSG_LENGTH);
  249.       if (x == cur_x && y == cur_y)
  250.       return;
  251.   
  252.       dx = x - fix_x;
  253.       dy = fix_y - y;
  254. !     /* only move if the pointer has moved at least 2 pixels */
  255. !     if (sqrt((double) (dx * dx + dy * dy)) < 2.0)
  256.       return;
  257.       if (dx == 0)
  258. !     angle = -90.0;
  259.       else
  260. !     angle = 180.0 * atan((double) (dy / dx)) / M_PI;
  261.   
  262.       elastic_line();
  263.       if (manhattan_mode) {
  264. ***************
  265. *** 187,207 ****
  266.           else
  267.           angle90_line(x, y);
  268.       } else {
  269. !         if (angle < -45)
  270.           angle90_line(x, y);
  271. !         else if (angle < 45)
  272.           angle0_line(x, y);
  273.           else
  274.           angle90_line(x, y);
  275.       }
  276.       } else {
  277. !     if (angle < 0)
  278.           angle135_line(x, y);
  279.       else
  280.           angle45_line(x, y);
  281.       }
  282.       elastic_line();
  283. -     length_msg(MSG_LENGTH);
  284.   }
  285.   
  286.   angle0_line(x, y)
  287. --- 189,208 ----
  288.           else
  289.           angle90_line(x, y);
  290.       } else {
  291. !         if (angle < -45.0)
  292.           angle90_line(x, y);
  293. !         else if (angle < 45.0)
  294.           angle0_line(x, y);
  295.           else
  296.           angle90_line(x, y);
  297.       }
  298.       } else {
  299. !     if (angle < 0.0)
  300.           angle135_line(x, y);
  301.       else
  302.           angle45_line(x, y);
  303.       }
  304.       elastic_line();
  305.   }
  306.   
  307.   angle0_line(x, y)
  308. ***************
  309. *** 442,449 ****
  310.       rx = cur_x - fix_x;
  311.       ry = cur_y - fix_y;
  312.       if (cur_angle != 0.0) {
  313. !     angle_ellipse(fix_x, fix_y, rx, ry, cur_angle,
  314. !           INV_PAINT, 1, RUBBER_LINE, 0.0, 0, DEFAULT_COLOR);
  315.       } else {
  316.       x1 = fix_x + rx;
  317.       x2 = fix_x - rx;
  318. --- 443,450 ----
  319.       rx = cur_x - fix_x;
  320.       ry = cur_y - fix_y;
  321.       if (cur_angle != 0.0) {
  322. !     angle_ellipse(fix_x, fix_y, rx, ry, cur_angle, INV_PAINT, 1, 
  323. !          RUBBER_LINE, 0.0, 0, DEFAULT_COLOR);
  324.       } else {
  325.       x1 = fix_x + rx;
  326.       x2 = fix_x - rx;
  327. ***************
  328. *** 754,760 ****
  329.   elastic_movetext()
  330.   {
  331.       pw_text(canvas_win, cur_x + x1off, cur_y + y1off, INV_PAINT,
  332. !         new_t->fontstruct, new_t->cstring, new_t->color);
  333.   }
  334.   
  335.   
  336. --- 755,762 ----
  337.   elastic_movetext()
  338.   {
  339.       pw_text(canvas_win, cur_x + x1off, cur_y + y1off, INV_PAINT,
  340. !         new_t->fontstruct, new_t->angle, 
  341. !         new_t->cstring, new_t->color);
  342.   }
  343.   
  344.   
  345. diff -rc xfig.2.1.7a/u_error.c xfig.2.1.8/u_error.c
  346. *** xfig.2.1.7a/u_error.c    Mon Mar 29 14:31:49 1993
  347. --- xfig.2.1.8/u_error.c    Tue Aug 31 10:04:18 1993
  348. ***************
  349. *** 85,91 ****
  350.       } else
  351.       fprintf(stderr, "xfig: figure empty or not modified - exiting\n");
  352.   
  353. !     quit();
  354.   }
  355.   
  356.   /* ARGSUSED */
  357. --- 85,91 ----
  358.       } else
  359.       fprintf(stderr, "xfig: figure empty or not modified - exiting\n");
  360.   
  361. !     goodbye();    /* finish up and exit */
  362.   }
  363.   
  364.   /* ARGSUSED */
  365. ***************
  366. *** 101,107 ****
  367.       {
  368.       return;
  369.       }
  370. -     /* free all the GC's */
  371. -     free_GCs();
  372.       emergency_quit();
  373.   }
  374. --- 101,105 ----
  375. diff -rc xfig.2.1.7a/u_fonts.c xfig.2.1.8/u_fonts.c
  376. *** xfig.2.1.7a/u_fonts.c    Mon Mar 29 14:24:40 1993
  377. --- xfig.2.1.8/u_fonts.c    Fri Sep 17 10:25:48 1993
  378. ***************
  379. *** 18,32 ****
  380.   
  381.   /* printer font names for indicator window */
  382.   
  383. ! struct _xfstruct x_fontinfo[NUM_X_FONTS] = {
  384.       {"-adobe-times-medium-r-*--", (struct xfont*) NULL},
  385.       {"-adobe-times-medium-i-*--", (struct xfont*) NULL},
  386.       {"-adobe-times-bold-r-*--", (struct xfont*) NULL},
  387.       {"-adobe-times-bold-i-*--", (struct xfont*) NULL},
  388. !     {"-schumacher-clean-medium-r-*--", (struct xfont*) NULL},
  389.       {"-schumacher-clean-medium-i-*--", (struct xfont*) NULL},
  390.       {"-schumacher-clean-bold-r-*--", (struct xfont*) NULL},
  391.       {"-schumacher-clean-bold-i-*--", (struct xfont*) NULL},
  392.       {"-adobe-courier-medium-r-*--", (struct xfont*) NULL},
  393.       {"-adobe-courier-medium-o-*--", (struct xfont*) NULL},
  394.       {"-adobe-courier-bold-r-*--", (struct xfont*) NULL},
  395. --- 18,36 ----
  396.   
  397.   /* printer font names for indicator window */
  398.   
  399. ! struct _xfstruct x_fontinfo[NUM_FONTS] = {
  400.       {"-adobe-times-medium-r-*--", (struct xfont*) NULL},
  401.       {"-adobe-times-medium-i-*--", (struct xfont*) NULL},
  402.       {"-adobe-times-bold-r-*--", (struct xfont*) NULL},
  403.       {"-adobe-times-bold-i-*--", (struct xfont*) NULL},
  404. !     {"-schumacher-clean-medium-r-*--", (struct xfont*) NULL},    /* closest to Avant-Garde */
  405.       {"-schumacher-clean-medium-i-*--", (struct xfont*) NULL},
  406.       {"-schumacher-clean-bold-r-*--", (struct xfont*) NULL},
  407.       {"-schumacher-clean-bold-i-*--", (struct xfont*) NULL},
  408. +     {"-adobe-times-medium-r-*--", (struct xfont*) NULL},    /* closest to Bookman */
  409. +     {"-adobe-times-medium-i-*--", (struct xfont*) NULL},
  410. +     {"-adobe-times-bold-r-*--", (struct xfont*) NULL},
  411. +     {"-adobe-times-bold-i-*--", (struct xfont*) NULL},
  412.       {"-adobe-courier-medium-r-*--", (struct xfont*) NULL},
  413.       {"-adobe-courier-medium-o-*--", (struct xfont*) NULL},
  414.       {"-adobe-courier-bold-r-*--", (struct xfont*) NULL},
  415. ***************
  416. *** 35,45 ****
  417.       {"-adobe-helvetica-medium-o-*--", (struct xfont*) NULL},
  418.       {"-adobe-helvetica-bold-r-*--", (struct xfont*) NULL},
  419.       {"-adobe-helvetica-bold-o-*--", (struct xfont*) NULL},
  420.       {"-adobe-new century schoolbook-medium-r-*--", (struct xfont*) NULL},
  421.       {"-adobe-new century schoolbook-medium-i-*--", (struct xfont*) NULL},
  422.       {"-adobe-new century schoolbook-bold-r-*--", (struct xfont*) NULL},
  423.       {"-adobe-new century schoolbook-bold-i-*--", (struct xfont*) NULL},
  424. !     {"-*-lucidabright-medium-r-*--", (struct xfont*) NULL},
  425.       {"-*-lucidabright-medium-i-*--", (struct xfont*) NULL},
  426.       {"-*-lucidabright-demibold-r-*--", (struct xfont*) NULL},
  427.       {"-*-lucidabright-demibold-i-*--", (struct xfont*) NULL},
  428. --- 39,53 ----
  429.       {"-adobe-helvetica-medium-o-*--", (struct xfont*) NULL},
  430.       {"-adobe-helvetica-bold-r-*--", (struct xfont*) NULL},
  431.       {"-adobe-helvetica-bold-o-*--", (struct xfont*) NULL},
  432. +     {"-adobe-helvetica-medium-r-*--", (struct xfont*) NULL},    /* closest to Helv-nar. */
  433. +     {"-adobe-helvetica-medium-o-*--", (struct xfont*) NULL},
  434. +     {"-adobe-helvetica-bold-r-*--", (struct xfont*) NULL},
  435. +     {"-adobe-helvetica-bold-o-*--", (struct xfont*) NULL},
  436.       {"-adobe-new century schoolbook-medium-r-*--", (struct xfont*) NULL},
  437.       {"-adobe-new century schoolbook-medium-i-*--", (struct xfont*) NULL},
  438.       {"-adobe-new century schoolbook-bold-r-*--", (struct xfont*) NULL},
  439.       {"-adobe-new century schoolbook-bold-i-*--", (struct xfont*) NULL},
  440. !     {"-*-lucidabright-medium-r-*--", (struct xfont*) NULL},    /* closest to Palatino */
  441.       {"-*-lucidabright-medium-i-*--", (struct xfont*) NULL},
  442.       {"-*-lucidabright-demibold-r-*--", (struct xfont*) NULL},
  443.       {"-*-lucidabright-demibold-i-*--", (struct xfont*) NULL},
  444. ***************
  445. *** 48,99 ****
  446.       {"-*-zapfdingbats-*-*-*--", (struct xfont*) NULL},
  447.   };
  448.   
  449. ! struct _fstruct ps_fontinfo[NUM_PS_FONTS + 1] = {
  450.       {"Default", -1},
  451. !     {"Times-Roman", 0},
  452. !     {"Times-Italic", 1},
  453. !     {"Times-Bold", 2},
  454. !     {"Times-BoldItalic", 3},
  455. !     {"AvantGarde-Book", 4},
  456. !     {"AvantGarde-BookOblique", 5},
  457. !     {"AvantGarde-Demi", 6},
  458. !     {"AvantGarde-DemiOblique", 7},
  459. !     {"Bookman-Light", 0},
  460. !     {"Bookman-LightItalic", 0},
  461. !     {"Bookman-Demi", 0},
  462. !     {"Bookman-DemiItalic", 0},
  463. !     {"Courier", 8},
  464. !     {"Courier-Oblique", 9},
  465. !     {"Courier-Bold", 10},
  466. !     {"Courier-BoldOblique", 11},
  467. !     {"Helvetica", 12},
  468. !     {"Helvetica-Oblique", 13},
  469. !     {"Helvetica-Bold", 14},
  470. !     {"Helvetica-BoldOblique", 15},
  471. !     {"Helvetica-Narrow", 0},
  472. !     {"Helvetica-Narrow-Oblique", 0},
  473. !     {"Helvetica-Narrow-Bold", 0},
  474. !     {"Helvetica-Narrow-BoldOblique", 0},
  475. !     {"NewCenturySchlbk-Roman", 16},
  476. !     {"NewCenturySchlbk-Italic", 17},
  477. !     {"NewCenturySchlbk-Bold", 18},
  478. !     {"NewCenturySchlbk-BoldItalic", 19},
  479. !     {"Palatino-Roman", 20},
  480. !     {"Palatino-Italic", 21},
  481. !     {"Palatino-Bold", 22},
  482. !     {"Palatino-BoldItalic", 23},
  483. !     {"Symbol", 24},
  484. !     {"ZapfChancery-MediumItalic", 25},
  485. !     {"ZapfDingbats", 26},
  486.   };
  487.   
  488.   struct _fstruct latex_fontinfo[NUM_LATEX_FONTS] = {
  489. !     {"Default", 0},
  490. !     {"Roman", 0},
  491. !     {"Bold", 2},
  492. !     {"Italic", 1},
  493. !     {"Modern", 12},
  494. !     {"Typewriter", 8},
  495.   };
  496.   
  497.   x_fontnum(psflag, fnum)
  498. --- 56,107 ----
  499.       {"-*-zapfdingbats-*-*-*--", (struct xfont*) NULL},
  500.   };
  501.   
  502. ! struct _fstruct ps_fontinfo[NUM_FONTS + 1] = {
  503.       {"Default", -1},
  504. !     {"Times-Roman",            0},
  505. !     {"Times-Italic",            1},
  506. !     {"Times-Bold",            2},
  507. !     {"Times-BoldItalic",        3},
  508. !     {"AvantGarde-Book",            4},
  509. !     {"AvantGarde-BookOblique",        5},
  510. !     {"AvantGarde-Demi",            6},
  511. !     {"AvantGarde-DemiOblique",        7},
  512. !     {"Bookman-Light",            8},
  513. !     {"Bookman-LightItalic",        9},
  514. !     {"Bookman-Demi",            10},
  515. !     {"Bookman-DemiItalic",        11},
  516. !     {"Courier",                12},
  517. !     {"Courier-Oblique",            13},
  518. !     {"Courier-Bold",            14},
  519. !     {"Courier-BoldOblique",        15},
  520. !     {"Helvetica",            16},
  521. !     {"Helvetica-Oblique",        17},
  522. !     {"Helvetica-Bold",            18},
  523. !     {"Helvetica-BoldOblique",        19},
  524. !     {"Helvetica-Narrow",        20},
  525. !     {"Helvetica-Narrow-Oblique",    21},
  526. !     {"Helvetica-Narrow-Bold",        22},
  527. !     {"Helvetica-Narrow-BoldOblique",    23},
  528. !     {"NewCenturySchlbk-Roman",        24},
  529. !     {"NewCenturySchlbk-Italic",        25},
  530. !     {"NewCenturySchlbk-Bold",        26},
  531. !     {"NewCenturySchlbk-BoldItalic",    27},
  532. !     {"Palatino-Roman",            28},
  533. !     {"Palatino-Italic",            29},
  534. !     {"Palatino-Bold",            30},
  535. !     {"Palatino-BoldItalic",        31},
  536. !     {"Symbol",                32},
  537. !     {"ZapfChancery-MediumItalic",    33},
  538. !     {"ZapfDingbats",            34},
  539.   };
  540.   
  541.   struct _fstruct latex_fontinfo[NUM_LATEX_FONTS] = {
  542. !     {"Default",        0},
  543. !     {"Roman",        0},
  544. !     {"Bold",        2},
  545. !     {"Italic",        1},
  546. !     {"Modern",        16},
  547. !     {"Typewriter",    12},
  548.   };
  549.   
  550.   x_fontnum(psflag, fnum)
  551. ***************
  552. *** 110,116 ****
  553.   
  554.       if (font == NULL)
  555.       return(DEF_PS_FONT);
  556. !     for (i=0; i<NUM_PS_FONTS; i++)
  557.       if (strcmp(ps_fontinfo[i].name, font) == 0)
  558.           return (i-1);
  559.       return(DEF_PS_FONT);
  560. --- 118,124 ----
  561.   
  562.       if (font == NULL)
  563.       return(DEF_PS_FONT);
  564. !     for (i=0; i<NUM_FONTS; i++)
  565.       if (strcmp(ps_fontinfo[i].name, font) == 0)
  566.           return (i-1);
  567.       return(DEF_PS_FONT);
  568. diff -rc xfig.2.1.7a/u_fonts.h xfig.2.1.8/u_fonts.h
  569. *** xfig.2.1.7a/u_fonts.h    Wed Jan  6 15:02:53 1993
  570. --- xfig.2.1.8/u_fonts.h    Mon Aug 23 15:23:31 1993
  571. ***************
  572. *** 20,27 ****
  573.   #define LATEX_FONTPANE_WD 112
  574.   #define PS_FONTPANE_HT 20
  575.   #define LATEX_FONTPANE_HT 20
  576. ! #define NUM_X_FONTS 27
  577. ! #define NUM_PS_FONTS 35
  578.   #define NUM_LATEX_FONTS 6
  579.   
  580.   /* element of linked list for each font
  581. --- 20,26 ----
  582.   #define LATEX_FONTPANE_WD 112
  583.   #define PS_FONTPANE_HT 20
  584.   #define LATEX_FONTPANE_HT 20
  585. ! #define NUM_FONTS 35
  586.   #define NUM_LATEX_FONTS 6
  587.   
  588.   /* element of linked list for each font
  589. ***************
  590. *** 33,47 ****
  591.       int            size;    /* size in points */
  592.       Font        fid;    /* X font id */
  593.       char       *fname;    /* actual name of X font found */
  594. !     struct flist   *list;    /* list of fonts by angle */
  595.       struct xfont   *next;    /* next in the list */
  596.   };
  597. - struct flist {
  598. -     int            dir;    /* direction (0=0 degrees, 1=90, 2=180, 3=270) */
  599. -     XRotFontStruct *fstruct;    /* X font structure */
  600. -     struct flist   *next;
  601. -     };
  602.   
  603.   struct _fstruct {
  604.       char       *name;    /* Postscript font name */
  605. --- 32,40 ----
  606.       int            size;    /* size in points */
  607.       Font        fid;    /* X font id */
  608.       char       *fname;    /* actual name of X font found */
  609. !     XFontStruct       *fstruct;    /* X font structure */
  610.       struct xfont   *next;    /* next in the list */
  611.   };
  612.   
  613.   struct _fstruct {
  614.       char       *name;    /* Postscript font name */
  615. diff -rc xfig.2.1.7a/u_free.c xfig.2.1.8/u_free.c
  616. *** xfig.2.1.7a/u_free.c    Wed Jan  6 12:03:02 1993
  617. --- xfig.2.1.8/u_free.c    Tue May 11 09:08:41 1993
  618. ***************
  619. *** 169,175 ****
  620.       int i;
  621.   
  622.       XFreeGC(tool_d, gc);
  623. -     XFreeGC(tool_d, bold_gc);
  624.       XFreeGC(tool_d, button_gc);
  625.       XFreeGC(tool_d, color_gc);
  626.       XFreeGC(tool_d, ind_button_gc);
  627. --- 169,174 ----
  628. diff -rc xfig.2.1.7a/u_markers.c xfig.2.1.8/u_markers.c
  629. *** xfig.2.1.7a/u_markers.c    Wed Dec  9 17:15:16 1992
  630. --- xfig.2.1.8/u_markers.c    Wed Jun 16 14:55:28 1993
  631. ***************
  632. *** 40,47 ****
  633.       int            x, y;
  634.   {
  635.       set_line_stuff(1, RUBBER_LINE, 0.0, (INV_PAINT), DEFAULT_COLOR);
  636. !     set_marker(canvas_win, x - 2, y - 2, 5, 5, 0, 0);
  637. !     set_marker(canvas_win, x - 1, y - 1, 3, 3, 0, 0);
  638.   }
  639.   
  640.   ellipse_in_mask()
  641. --- 40,47 ----
  642.       int            x, y;
  643.   {
  644.       set_line_stuff(1, RUBBER_LINE, 0.0, (INV_PAINT), DEFAULT_COLOR);
  645. !     set_marker(canvas_win, x - 2, y - 2, MARK_SIZ, MARK_SIZ, 0, 0);
  646. !     set_marker(canvas_win, x - 1, y - 1, MARK_SIZ-2, MARK_SIZ-2, 0, 0);
  647.   }
  648.   
  649.   ellipse_in_mask()
  650. ***************
  651. *** 271,278 ****
  652.       F_ellipse       *e;
  653.   {
  654.       set_line_stuff(1, RUBBER_LINE, 0.0, (INV_PAINT), DEFAULT_COLOR);
  655. !     set_marker(canvas_win, e->start.x - 2, e->start.y - 2, 5, 5, 0, 0);
  656. !     set_marker(canvas_win, e->end.x - 2, e->end.y - 2, 5, 5, 0, 0);
  657.       if (e->tagged)
  658.       toggle_ellipsehighlight(e);
  659.   }
  660. --- 271,278 ----
  661.       F_ellipse       *e;
  662.   {
  663.       set_line_stuff(1, RUBBER_LINE, 0.0, (INV_PAINT), DEFAULT_COLOR);
  664. !     set_marker(canvas_win, e->start.x - 2, e->start.y - 2, MARK_SIZ, MARK_SIZ, 0, 0);
  665. !     set_marker(canvas_win, e->end.x - 2, e->end.y - 2, MARK_SIZ, MARK_SIZ, 0, 0);
  666.       if (e->tagged)
  667.       toggle_ellipsehighlight(e);
  668.   }
  669. ***************
  670. *** 282,290 ****
  671.   {
  672.       set_line_stuff(1, RUBBER_LINE, 0.0, (INV_PAINT), DEFAULT_COLOR);
  673.       set_marker(canvas_win, e->start.x, e->start.y, 1, 1, 0, 0);
  674. !     set_marker(canvas_win, e->start.x - 1, e->start.y - 1, 3, 3, 0, 0);
  675.       set_marker(canvas_win, e->end.x, e->end.y, 1, 1, 0, 0);
  676. !     set_marker(canvas_win, e->end.x - 1, e->end.y - 1, 3, 3, 0, 0);
  677.   }
  678.   
  679.   toggle_arcmarker(a)
  680. --- 282,290 ----
  681.   {
  682.       set_line_stuff(1, RUBBER_LINE, 0.0, (INV_PAINT), DEFAULT_COLOR);
  683.       set_marker(canvas_win, e->start.x, e->start.y, 1, 1, 0, 0);
  684. !     set_marker(canvas_win, e->start.x - 1, e->start.y - 1, SM_MARK, SM_MARK, 0, 0);
  685.       set_marker(canvas_win, e->end.x, e->end.y, 1, 1, 0, 0);
  686. !     set_marker(canvas_win, e->end.x - 1, e->end.y - 1, SM_MARK, SM_MARK, 0, 0);
  687.   }
  688.   
  689.   toggle_arcmarker(a)
  690. ***************
  691. *** 291,299 ****
  692.       F_arc       *a;
  693.   {
  694.       set_line_stuff(1, RUBBER_LINE, 0.0, (INV_PAINT), DEFAULT_COLOR);
  695. !     set_marker(canvas_win, a->point[0].x - 2, a->point[0].y - 2, 5, 5, 0, 0);
  696. !     set_marker(canvas_win, a->point[1].x - 2, a->point[1].y - 2, 5, 5, 0, 0);
  697. !     set_marker(canvas_win, a->point[2].x - 2, a->point[2].y - 2, 5, 5, 0, 0);
  698.       if (a->tagged)
  699.       toggle_archighlight(a);
  700.   }
  701. --- 291,299 ----
  702.       F_arc       *a;
  703.   {
  704.       set_line_stuff(1, RUBBER_LINE, 0.0, (INV_PAINT), DEFAULT_COLOR);
  705. !     set_marker(canvas_win,a->point[0].x-2,a->point[0].y-2,MARK_SIZ,MARK_SIZ,0,0);
  706. !     set_marker(canvas_win,a->point[1].x-2,a->point[1].y-2,MARK_SIZ,MARK_SIZ,0,0);
  707. !     set_marker(canvas_win,a->point[2].x-2,a->point[2].y-2,MARK_SIZ,MARK_SIZ,0,0);
  708.       if (a->tagged)
  709.       toggle_archighlight(a);
  710.   }
  711. ***************
  712. *** 303,313 ****
  713.   {
  714.       set_line_stuff(1, RUBBER_LINE, 0.0, (INV_PAINT), DEFAULT_COLOR);
  715.       set_marker(canvas_win, a->point[0].x, a->point[0].y, 1, 1, 0, 0);
  716. !     set_marker(canvas_win, a->point[0].x - 1, a->point[0].y - 1, 3, 3, 0, 0);
  717.       set_marker(canvas_win, a->point[1].x, a->point[1].y, 1, 1, 0, 0);
  718. !     set_marker(canvas_win, a->point[1].x - 1, a->point[1].y - 1, 3, 3, 0, 0);
  719.       set_marker(canvas_win, a->point[2].x, a->point[2].y, 1, 1, 0, 0);
  720. !     set_marker(canvas_win, a->point[2].x - 1, a->point[2].y - 1, 3, 3, 0, 0);
  721.   }
  722.   
  723.   toggle_textmarker(t)
  724. --- 303,313 ----
  725.   {
  726.       set_line_stuff(1, RUBBER_LINE, 0.0, (INV_PAINT), DEFAULT_COLOR);
  727.       set_marker(canvas_win, a->point[0].x, a->point[0].y, 1, 1, 0, 0);
  728. !     set_marker(canvas_win, a->point[0].x-1, a->point[0].y-1, SM_MARK, SM_MARK, 0, 0);
  729.       set_marker(canvas_win, a->point[1].x, a->point[1].y, 1, 1, 0, 0);
  730. !     set_marker(canvas_win, a->point[1].x-1, a->point[1].y-1, SM_MARK, SM_MARK, 0, 0);
  731.       set_marker(canvas_win, a->point[2].x, a->point[2].y, 1, 1, 0, 0);
  732. !     set_marker(canvas_win, a->point[2].x-1, a->point[2].y-1, SM_MARK, SM_MARK, 0, 0);
  733.   }
  734.   
  735.   toggle_textmarker(t)
  736. ***************
  737. *** 319,326 ****
  738.       /* adjust for text angle */
  739.       dy = (int) ((double) t->height * cos(t->angle));
  740.       dx = (int) ((double) t->height * sin(t->angle));
  741. !     set_marker(canvas_win, t->base_x - dx - 2, t->base_y - dy - 2, 5, 5, 0, 0);
  742. !     set_marker(canvas_win, t->base_x - 2, t->base_y - 2, 5, 5, 0, 0);
  743.       if (t->tagged)
  744.       toggle_texthighlight(t);
  745.   }
  746. --- 319,326 ----
  747.       /* adjust for text angle */
  748.       dy = (int) ((double) t->height * cos(t->angle));
  749.       dx = (int) ((double) t->height * sin(t->angle));
  750. !     set_marker(canvas_win,t->base_x-dx-2,t->base_y-dy-2,MARK_SIZ,MARK_SIZ,0,0);
  751. !     set_marker(canvas_win,t->base_x-2,t->base_y-2,MARK_SIZ,MARK_SIZ,0,0);
  752.       if (t->tagged)
  753.       toggle_texthighlight(t);
  754.   }
  755. ***************
  756. *** 334,343 ****
  757.       /* adjust for text angle */
  758.       dy = (int) ((double) t->height * cos(t->angle));
  759.       dx = (int) ((double) t->height * sin(t->angle));
  760. !     set_marker(canvas_win, t->base_x - dx, t->base_y - dy, 1, 1, 0, 0);
  761. !     set_marker(canvas_win, t->base_x - dx - 1, t->base_y - dy - 1, 3, 3, 0, 0);
  762.       set_marker(canvas_win, t->base_x, t->base_y, 1, 1, 0, 0);
  763. !     set_marker(canvas_win, t->base_x - 1, t->base_y - 1, 3, 3, 0, 0);
  764.   }
  765.   
  766.   toggle_all_compoundmarkers()
  767. --- 334,343 ----
  768.       /* adjust for text angle */
  769.       dy = (int) ((double) t->height * cos(t->angle));
  770.       dx = (int) ((double) t->height * sin(t->angle));
  771. !     set_marker(canvas_win, t->base_x-dx, t->base_y-dy, 1, 1, 0, 0);
  772. !     set_marker(canvas_win, t->base_x-dx-1, t->base_y-dy-1, SM_MARK, SM_MARK, 0, 0);
  773.       set_marker(canvas_win, t->base_x, t->base_y, 1, 1, 0, 0);
  774. !     set_marker(canvas_win, t->base_x-1, t->base_y-1, SM_MARK, SM_MARK, 0, 0);
  775.   }
  776.   
  777.   toggle_all_compoundmarkers()
  778. ***************
  779. *** 351,360 ****
  780.       F_compound       *c;
  781.   {
  782.       set_line_stuff(1, RUBBER_LINE, 0.0, (INV_PAINT), DEFAULT_COLOR);
  783. !     set_marker(canvas_win, c->nwcorner.x - 2, c->nwcorner.y - 2, 5, 5, 0, 0);
  784. !     set_marker(canvas_win, c->secorner.x - 2, c->secorner.y - 2, 5, 5, 0, 0);
  785. !     set_marker(canvas_win, c->nwcorner.x - 2, c->secorner.y - 2, 5, 5, 0, 0);
  786. !     set_marker(canvas_win, c->secorner.x - 2, c->nwcorner.y - 2, 5, 5, 0, 0);
  787.       if (c->tagged)
  788.       toggle_compoundhighlight(c);
  789.   }
  790. --- 351,360 ----
  791.       F_compound       *c;
  792.   {
  793.       set_line_stuff(1, RUBBER_LINE, 0.0, (INV_PAINT), DEFAULT_COLOR);
  794. !     set_marker(canvas_win,c->nwcorner.x-2,c->nwcorner.y-2,MARK_SIZ,MARK_SIZ,0,0);
  795. !     set_marker(canvas_win,c->secorner.x-2,c->secorner.y-2,MARK_SIZ,MARK_SIZ,0,0);
  796. !     set_marker(canvas_win,c->nwcorner.x-2,c->secorner.y-2,MARK_SIZ,MARK_SIZ,0,0);
  797. !     set_marker(canvas_win,c->secorner.x-2,c->nwcorner.y-2,MARK_SIZ,MARK_SIZ,0,0);
  798.       if (c->tagged)
  799.       toggle_compoundhighlight(c);
  800.   }
  801. ***************
  802. *** 364,376 ****
  803.   {
  804.       set_line_stuff(1, RUBBER_LINE, 0.0, (INV_PAINT), DEFAULT_COLOR);
  805.       set_marker(canvas_win, c->nwcorner.x, c->nwcorner.y, 1, 1, 0, 0);
  806. !     set_marker(canvas_win, c->nwcorner.x - 1, c->nwcorner.y - 1, 3, 3, 0, 0);
  807.       set_marker(canvas_win, c->secorner.x, c->secorner.y, 1, 1, 0, 0);
  808. !     set_marker(canvas_win, c->secorner.x - 1, c->secorner.y - 1, 3, 3, 0, 0);
  809.       set_marker(canvas_win, c->nwcorner.x, c->secorner.y, 1, 1, 0, 0);
  810. !     set_marker(canvas_win, c->nwcorner.x - 1, c->secorner.y - 1, 3, 3, 0, 0);
  811.       set_marker(canvas_win, c->secorner.x, c->nwcorner.y, 1, 1, 0, 0);
  812. !     set_marker(canvas_win, c->secorner.x - 1, c->nwcorner.y - 1, 3, 3, 0, 0);
  813.   }
  814.   
  815.   toggle_linemarker(l)
  816. --- 364,376 ----
  817.   {
  818.       set_line_stuff(1, RUBBER_LINE, 0.0, (INV_PAINT), DEFAULT_COLOR);
  819.       set_marker(canvas_win, c->nwcorner.x, c->nwcorner.y, 1, 1, 0, 0);
  820. !     set_marker(canvas_win, c->nwcorner.x-1, c->nwcorner.y-1, SM_MARK, SM_MARK, 0, 0);
  821.       set_marker(canvas_win, c->secorner.x, c->secorner.y, 1, 1, 0, 0);
  822. !     set_marker(canvas_win, c->secorner.x-1, c->secorner.y-1, SM_MARK, SM_MARK, 0, 0);
  823.       set_marker(canvas_win, c->nwcorner.x, c->secorner.y, 1, 1, 0, 0);
  824. !     set_marker(canvas_win, c->nwcorner.x-1, c->secorner.y-1, SM_MARK, SM_MARK, 0, 0);
  825.       set_marker(canvas_win, c->secorner.x, c->nwcorner.y, 1, 1, 0, 0);
  826. !     set_marker(canvas_win, c->secorner.x-1, c->nwcorner.y-1, SM_MARK, SM_MARK, 0, 0);
  827.   }
  828.   
  829.   toggle_linemarker(l)
  830. ***************
  831. *** 386,395 ****
  832.       for (p = p->next; p != NULL; p = p->next) {
  833.       x = p->x;
  834.       y = p->y;
  835. !     set_marker(canvas_win, x - 2, y - 2, 5, 5, 0, 0);
  836.       }
  837.       if (x != fx || y != fy || l->points->next == NULL) {
  838. !     set_marker(canvas_win, fx - 2, fy - 2, 5, 5, 0, 0);
  839.       }
  840.       if (l->tagged)
  841.       toggle_linehighlight(l);
  842. --- 386,395 ----
  843.       for (p = p->next; p != NULL; p = p->next) {
  844.       x = p->x;
  845.       y = p->y;
  846. !     set_marker(canvas_win, x - 2, y - 2, MARK_SIZ, MARK_SIZ, 0, 0);
  847.       }
  848.       if (x != fx || y != fy || l->points->next == NULL) {
  849. !     set_marker(canvas_win, fx - 2, fy - 2, MARK_SIZ, MARK_SIZ, 0, 0);
  850.       }
  851.       if (l->tagged)
  852.       toggle_linehighlight(l);
  853. ***************
  854. *** 409,419 ****
  855.       x = p->x;
  856.       y = p->y;
  857.       set_marker(canvas_win, x, y, 1, 1, 0, 0);
  858. !     set_marker(canvas_win, x - 1, y - 1, 3, 3, 0, 0);
  859.       }
  860.       if (x != fx || y != fy) {
  861.       set_marker(canvas_win, fx, fy, 1, 1, 0, 0);
  862. !     set_marker(canvas_win, fx - 1, fy - 1, 3, 3, 0, 0);
  863.       }
  864.   }
  865.   
  866. --- 409,419 ----
  867.       x = p->x;
  868.       y = p->y;
  869.       set_marker(canvas_win, x, y, 1, 1, 0, 0);
  870. !     set_marker(canvas_win, x - 1, y - 1, SM_MARK, SM_MARK, 0, 0);
  871.       }
  872.       if (x != fx || y != fy) {
  873.       set_marker(canvas_win, fx, fy, 1, 1, 0, 0);
  874. !     set_marker(canvas_win, fx - 1, fy - 1, SM_MARK, SM_MARK, 0, 0);
  875.       }
  876.   }
  877.   
  878. ***************
  879. *** 430,439 ****
  880.       for (p = p->next; p != NULL; p = p->next) {
  881.       x = p->x;
  882.       y = p->y;
  883. !     set_marker(canvas_win, x - 2, y - 2, 5, 5, 0, 0);
  884.       }
  885.       if (x != fx || y != fy) {
  886. !     set_marker(canvas_win, fx - 2, fy - 2, 5, 5, 0, 0);
  887.       }
  888.       if (s->tagged)
  889.       toggle_splinehighlight(s);
  890. --- 430,439 ----
  891.       for (p = p->next; p != NULL; p = p->next) {
  892.       x = p->x;
  893.       y = p->y;
  894. !     set_marker(canvas_win, x - 2, y - 2, MARK_SIZ, MARK_SIZ, 0, 0);
  895.       }
  896.       if (x != fx || y != fy) {
  897. !     set_marker(canvas_win, fx - 2, fy - 2, MARK_SIZ, MARK_SIZ, 0, 0);
  898.       }
  899.       if (s->tagged)
  900.       toggle_splinehighlight(s);
  901. ***************
  902. *** 453,462 ****
  903.       x = p->x;
  904.       y = p->y;
  905.       set_marker(canvas_win, x, y, 1, 1, 0, 0);
  906. !     set_marker(canvas_win, x - 1, y - 1, 3, 3, 0, 0);
  907.       }
  908.       if (x != fx || y != fy) {
  909.       set_marker(canvas_win, fx, fy, 1, 1, 0, 0);
  910. !     set_marker(canvas_win, fx - 1, fy - 1, 3, 3, 0, 0);
  911.       }
  912.   }
  913. --- 453,462 ----
  914.       x = p->x;
  915.       y = p->y;
  916.       set_marker(canvas_win, x, y, 1, 1, 0, 0);
  917. !     set_marker(canvas_win, x - 1, y - 1, SM_MARK, SM_MARK, 0, 0);
  918.       }
  919.       if (x != fx || y != fy) {
  920.       set_marker(canvas_win, fx, fy, 1, 1, 0, 0);
  921. !     set_marker(canvas_win, fx - 1, fy - 1, SM_MARK, SM_MARK, 0, 0);
  922.       }
  923.   }
  924. diff -rc xfig.2.1.7a/u_print.c xfig.2.1.8/u_print.c
  925. *** xfig.2.1.7a/u_print.c    Tue Mar 23 10:47:40 1993
  926. --- xfig.2.1.8/u_print.c    Tue Aug 31 13:37:19 1993
  927. ***************
  928. *** 68,74 ****
  929.   
  930.   
  931.       if (emptyname(printer)) {    /* send to default printer */
  932. ! #if defined(SYSV) || defined(SVR4)
  933.       sprintf(syspr, "lp %s -oPS", params);
  934.   #else
  935.       sprintf(syspr, "lpr %s -J %s", params, shell_protect_string(cur_filename));
  936. --- 68,74 ----
  937.   
  938.   
  939.       if (emptyname(printer)) {    /* send to default printer */
  940. ! #if (defined(SYSV) || defined(SVR4)) && !defined(BSDLPR)
  941.       sprintf(syspr, "lp %s -oPS", params);
  942.   #else
  943.       sprintf(syspr, "lpr %s -J %s", params, shell_protect_string(cur_filename));
  944. ***************
  945. *** 76,82 ****
  946.       put_msg("Printing figure on default printer in %s mode ...     ",
  947.           print_landscape ? "LANDSCAPE" : "PORTRAIT");
  948.       } else {
  949. ! #if defined(SYSV) || defined(SVR4)
  950.       sprintf(syspr, "lp %s -d%s -oPS", params, printer);
  951.   #else
  952.       sprintf(syspr, "lpr %s -J %s -P%s", params, shell_protect_string(cur_filename),
  953. --- 76,82 ----
  954.       put_msg("Printing figure on default printer in %s mode ...     ",
  955.           print_landscape ? "LANDSCAPE" : "PORTRAIT");
  956.       } else {
  957. ! #if (defined(SYSV) || defined(SVR4)) && !defined(BSDLPR)
  958.       sprintf(syspr, "lp %s -d%s -oPS", params, printer);
  959.   #else
  960.       sprintf(syspr, "lpr %s -J %s -P%s", params, shell_protect_string(cur_filename),
  961. ***************
  962. *** 111,117 ****
  963.       char        tmp_name[PATH_MAX];
  964.       char        tmp_fig_file[32];
  965.       char       *outfile;
  966. !     int            tlen, status;
  967.   
  968.       /* if file exists, ask if ok */
  969.       if (!ok_to_write(file, "EXPORT"))
  970. --- 111,117 ----
  971.       char        tmp_name[PATH_MAX];
  972.       char        tmp_fig_file[32];
  973.       char       *outfile;
  974. !     int            tlen;
  975.   
  976.       /* if file exists, ask if ok */
  977.       if (!ok_to_write(file, "EXPORT"))
  978. diff -rc xfig.2.1.7a/u_redraw.c xfig.2.1.8/u_redraw.c
  979. *** xfig.2.1.7a/u_redraw.c    Wed Jan  6 16:13:20 1993
  980. --- xfig.2.1.8/u_redraw.c    Wed May 12 11:45:58 1993
  981. ***************
  982. *** 520,531 ****
  983.       int            xmin, ymin, xmax, ymax;
  984.       int            dum;
  985.   
  986. !     if (appres.textoutline) {
  987. !     text_bound_both(t, &xmin, &ymin, &xmax, &ymax,
  988. !             &dum,&dum,&dum,&dum,&dum,&dum,&dum,&dum);
  989. !     } else {
  990. !     text_bound(t, &xmin, &ymin, &xmax, &ymax);
  991. !     }
  992.       redisplay_zoomed_region(xmin, ymin, xmax, ymax);
  993.   }
  994.   
  995. --- 520,527 ----
  996.       int            xmin, ymin, xmax, ymax;
  997.       int            dum;
  998.   
  999.