[BACK]Return to gif.trm CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gnuplot / term

Diff for /OpenXM_contrib/gnuplot/term/Attic/gif.trm between version 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2000/01/09 17:01:14 version 1.1.1.2, 2000/01/22 14:16:23
Line 53 
Line 53 
  *   *
  * size (in pixels)   * size (in pixels)
  *   *
  * font (small,medium,large)   * font (tiny,small,medium,large,giant)
  *   *
  * xrrggbb - sets the next color.  x is the literal character 'x',   * xrrggbb - sets the next color.  x is the literal character 'x',
  * rrggbb are the red green and blue components in hex.  For example   * rrggbb are the red green and blue components in hex.  For example
Line 69 
Line 69 
  *  Alex Woo <woo@playfair.stanford.edu>   *  Alex Woo <woo@playfair.stanford.edu>
  *   *
  * CONTRIBUTORS   * CONTRIBUTORS
  *  Alfred Reibenschuh <alfred.reibenschuh@cait.co.at> or <fredo@blackbox.at>   *  Alfred Reibenschuh <alfred.reibenschuh@it-austria.com> or <fredo@blackbox.at>
    *  Ben Laurie <ben@algroup.co.uk>
  *   *
  * send your comments or suggestions to:   * send your comments or suggestions to:
  *  info-gnuplot@cs.dartmouth.edu   *  info-gnuplot@cs.dartmouth.edu
Line 83 
Line 84 
  *   *
  * find out about gd from http://www.boutell.com/gd/   * find out about gd from http://www.boutell.com/gd/
  *   *
  * [Update: as of version 1.3, gd does not use any more UNISYS licensed   * Gd library versions before 1.3, and gd library 1.5 are subject to
  *  code. The gnuplot team may decide to include this version some day.]   * the Unisys license. Use at your own risk. From version 1.6 on, gd
    * library creates png files instead of gif.
  *   *
  */   */
   
Line 107  TERM_PUBLIC int GIF_text_angle __PROTO((int ang));
Line 109  TERM_PUBLIC int GIF_text_angle __PROTO((int ang));
 TERM_PUBLIC void GIF_reset __PROTO((void));  TERM_PUBLIC void GIF_reset __PROTO((void));
   
 #include "gd.h"  #include "gd.h"
   
 extern gdFontPtr gdFontSmall;   /* 6x12 */  extern gdFontPtr gdFontSmall;   /* 6x12 */
 extern gdFontPtr gdFontLarge;   /* 8x16 */  extern gdFontPtr gdFontLarge;   /* 8x16 */
 extern gdFontPtr gdFontMediumBold;      /* 7x13 */  extern gdFontPtr gdFontMediumBold;      /* 7x13 */
   extern gdFontPtr gdFontGiant;  /* 9x15 */
   extern gdFontPtr gdFontTiny;  /* 5x8 */
   
   
 #define GREG_XMAX 640  #define GREG_XMAX 640
 #define GREG_YMAX 480  #define GREG_YMAX 480
   
   
 int GIF_XMAX = GREG_XMAX;  static int GIF_XMAX = GREG_XMAX;
 int GIF_YMAX = GREG_YMAX;  static int GIF_YMAX = GREG_YMAX;
   
   
 #define GIF_FONT_SMALL 1  #define GIF_FONT_SMALL 1
Line 161  static struct {
Line 166  static struct {
 #define GIF_USE_TRANSPARENT 1  #define GIF_USE_TRANSPARENT 1
 #define GIF_USE_INTERLACE   2  #define GIF_USE_INTERLACE   2
   
 static unsigned int gif_color_rgbs[] =  
 {  
     0xffffff,                   /* background: white         */  
     0x000000,                   /*    borders: black         */  
     0x404040,                   /* x & y axes: grey          */  
     0xff0000,                   /*   color 01: red           */  
     0x00c000,                   /*   color 02: dark green    */  
     0x0080ff,                   /*   color 03: dark blue     */  
     0xc000ff,                   /*   color 04: dark magenta  */  
     0xc0ff40,                   /*   color 05: yellow        */  
     0xc04000,                   /*   color 06: orange        */  
     0x40ff80,                   /*   color 07: sea green     */  
     0x2020c0,                   /*   color 08: royal blue    */  
     0x8000c0,                   /*   color 09: dark violet   */  
     /* please note: these colors are optimized for web216 compatibility */  
     0x006080,                   /* DeepSkyBlue4 */  
     0x008000,                   /* green4 */  
     0x008040,                   /* SpringGreen4 */  
     0x008080,                   /* dark cyan, turquoise4 */  
     0x00c060,                   /* SpringGreen3 */  
     0x00c0c0,                   /* cyan3, turquoise3 */  
     0x00ff00,                   /* green */  
     0x208020,                   /* forest green */  
     0x306080,                   /* SteelBlue4 */  
     0x404040,                   /* grey25-31 */  
     0x408000,                   /* chartreuse4 */  
     0x000080,                   /* dark blue, navy blue */  
     0x806000,                   /* DarkGoldenrod4 */  
     0x806010,                   /* goldenrod4 */  
     0x806060,                   /* pink4 */  
     0x806080,                   /* plum4 */  
     0x0000c0,                   /* medium blue */  
     0x0000ff,                   /* blue */  
     0x006000,                   /* dark green */  
     0x40c080,                   /* SeaGreen3 */  
     0x60a0c0,                   /* SkyBlue3 */  
     0x60c000,                   /* chartreuse3 */  
     0x60c0a0,                   /* medium aquamarine */  
     0x800000,                   /* dark red */  
     0x800080,                   /* dark magenta */  
     0x602080,                   /* DarkOrchid4 */  
     0x606060,                   /* dim grey */  
     0x00ffff,                   /* cyan1, turquoise1 */  
     0x202020,                   /* grey13-18 */  
     0x204040,                   /* dark slate grey */  
     0x204080,                   /* RoyalBlue4 */  
     0x608020,                   /* olive drab */  
     0x608060,                   /* DarkSeaGreen4 */  
     0x608080,                   /* LightBlue4, PaleTurquoise4 */  
     0x808040,                   /* LightGoldenrod4, khaki4 */  
     0x808080,                   /* grey51-56 */  
     0xa0a0a0,                   /* dark grey, grey63-68 */  
     0xa0d0e0,                   /* light blue */  
     0xc02020,                   /* firebrick3 */  
     0xc06000,                   /* DarkOrange3 */  
     0x80c0e0,                   /* sky blue */  
     0xc060c0,                   /* orchid3 */  
     0xc08000,                   /* orange3 */  
     0xc08060,                   /* LightSalmon3 */  
     0xff4000,                   /* orange red */  
     0xff4040,                   /* brown1, tomato */  
     0x80c0ff,                   /* light sky blue */  
     0xff8060,                   /* salmon */  
     0xff8080,                   /* light coral */  
     0xc0a000,                   /* gold3 */  
     0xc0c0c0,                   /* grey76-81, honeydew3, ivory3, snow3 */  
     0xc0ffc0,                   /* DarkSeaGreen1 */  
     0xff0000,                   /* red */  
     0xff00ff,                   /* magenta */  
     0xff80a0,                   /* PaleVioletRed1 */  
     0xff80ff,                   /* orchid1 */  
     0xc0c0a0,                   /* LemonChiffon3 */  
     0xff6060,                   /* IndianRed1 */  
     0xff8000,                   /* dark orange */  
     0xffa000,                   /* orange */  
     0x80e0e0,                   /* CadetBlue2, DarkSlateGray2 */  
     0xa0e0e0,                   /* pale turquoise */  
     0xa0ff20,                   /* green yellow */  
     0xc00000,                   /* red3 */  
     0xc000c0,                   /* magenta3 */  
     0xa02020,                   /* brown */  
     0xa020ff,                   /* purple */  
     0x802000,                   /* OrangeRed4 */  
     0x802020,                   /* brown4 */  
     0x804000,                   /* DarkOrange4 */  
     0x804020,                   /* sienna4 */  
     0x804080,                   /* orchid4 */  
     0x8060c0,                   /* MediumPurple3 */  
     0x8060ff,                   /* SlateBlue1 */  
     0x808000,                   /* yellow4 */  
     0xa080ff,                   /* MediumPurple1 */  
     0xc06080,                   /* PaleVioletRed3 */  
     0xc0c000,                   /* yellow3 */  
     0xff8040,                   /* sienna1 */  
     0xffa040,                   /* tan1 */  
     0xffa060,                   /* sandy brown */  
     0xffa070,                   /* light salmon */  
     0xffc020,                   /* goldenrod1 */  
     0xffc0c0,                   /* RosyBrown1, pink */  
     0xffff00,                   /* yellow */  
     0xffff80,                   /* khaki1 */  
     0xffffc0                    /* lemon chiffon */  
 };  
 #define GIF_N_DEFAULT_COLORS (sizeof(gif_color_rgbs)/sizeof(gif_color_rgbs[0]))  
   
 /*  /*
  * _options()  Called when terminal type is selected.   * _options()  Called when terminal type is selected.
  * This procedure should parse options on the command line.  A list of the   * This procedure should parse options on the command line.  A list of the
Line 273  static unsigned int gif_color_rgbs[] =
Line 173  static unsigned int gif_color_rgbs[] =
  * suitable for use with the set term command.  term_options[] is used by   * suitable for use with the set term command.  term_options[] is used by
  * the save command.  Use options_null() if no options are available.   * the save command.  Use options_null() if no options are available.
  */   */
 TERM_PUBLIC void GIF_options()  TERM_PUBLIC void
   GIF_options()
 {  {
       struct value s;
     int gif_font, i;      int gif_font, i;
       char *string;
       unsigned long color;
   
     term_options[0] = NUL;      term_options[0] = NUL;
     gif_state.n_colors = 0;      gif_state.n_colors = 0;
     gif_state.flags = 0;      gif_state.flags = 0;
Line 289  TERM_PUBLIC void GIF_options()
Line 194  TERM_PUBLIC void GIF_options()
         } else if (almost_equals(c_token, "i$nterlace")) {          } else if (almost_equals(c_token, "i$nterlace")) {
             gif_state.flags |= GIF_USE_INTERLACE;              gif_state.flags |= GIF_USE_INTERLACE;
             ++c_token;              ++c_token;
           } else if (almost_equals(c_token, "ti$ny")) {
               GIF_font=gdFontTiny;
               gif_font = 0;
               term->v_char = (unsigned int)(8);
               term->h_char = (unsigned int)(5);
               ++c_token;
         } else if (almost_equals(c_token, "s$mall")) {          } else if (almost_equals(c_token, "s$mall")) {
             GIF_font = gdFontSmall;              GIF_font = gdFontSmall;
             gif_font = 1;              gif_font = 1;
Line 307  TERM_PUBLIC void GIF_options()
Line 218  TERM_PUBLIC void GIF_options()
             term->v_char = (unsigned int) (16);              term->v_char = (unsigned int) (16);
             term->h_char = (unsigned int) (8);              term->h_char = (unsigned int) (8);
             ++c_token;              ++c_token;
           } else if (almost_equals(c_token, "l$arge")) {
               GIF_font=gdFontGiant;
               gif_font = 4;
               term->v_char = (unsigned int)(15);
               term->h_char = (unsigned int)(9);
               ++c_token;
         } else if (almost_equals(c_token, "si$ze")) {          } else if (almost_equals(c_token, "si$ze")) {
             struct value s;  
             c_token++;              c_token++;
             if (END_OF_COMMAND) {              if (END_OF_COMMAND) {
                 GIF_XMAX = GREG_XMAX;                  GIF_XMAX = GREG_XMAX;
Line 326  TERM_PUBLIC void GIF_options()
Line 242  TERM_PUBLIC void GIF_options()
                     term->xmax = GIF_XMAX;                      term->xmax = GIF_XMAX;
                 }                  }
             }              }
         } else {                /* not "size" */          } else {                /* not "size" */
             char *string = input_line + token[c_token].start_index;              string = input_line + token[c_token].start_index;
             unsigned long color;  
             if (sscanf(string, "x%lx", &color) != 1) {              if (sscanf(string, "x%lx", &color) != 1) {
                 int_error("invalid color spec, must be xRRGGBB", c_token);                  int_error("invalid color spec, must be xRRGGBB",c_token);
             } else if (gif_state.n_colors == GIF_MAX_COLORS) {              } else if (gif_state.n_colors == GIF_MAX_COLORS) {
                 int_warn("too many colors, ingoring", c_token);                  int_warn("too many colors, ingoring",c_token);
                 ++c_token;                  ++c_token;
             } else {              } else {
                 gif_state.rgb_table[gif_state.n_colors++] = color;                  gif_state.rgb_table[gif_state.n_colors++] = color;
Line 351  TERM_PUBLIC void GIF_options()
Line 266  TERM_PUBLIC void GIF_options()
         strcat(term_options, "interlace ");          strcat(term_options, "interlace ");
     }      }
     switch (gif_font) {      switch (gif_font) {
       case 0:
           strcat(term_options,"tiny ");
           break;
     case 1:      case 1:
         strcat(term_options, "small ");          strcat(term_options, "small ");
         break;          break;
Line 360  TERM_PUBLIC void GIF_options()
Line 278  TERM_PUBLIC void GIF_options()
     case 3:      case 3:
         strcat(term_options, "large ");          strcat(term_options, "large ");
         break;          break;
       case 4:
           strcat(term_options,"giant ");
           break;
     }      }
     sprintf(term_options + strlen(term_options),      sprintf(term_options + strlen(term_options),
             "size %d,%d ", GIF_XMAX, GIF_YMAX);              "size %d,%d ", GIF_XMAX, GIF_YMAX);
Line 376  TERM_PUBLIC void GIF_options()
Line 297  TERM_PUBLIC void GIF_options()
  * should set up things that only need to be set once, like handshaking and   * should set up things that only need to be set once, like handshaking and
  * character sets etc...   * character sets etc...
  */   */
 TERM_PUBLIC void GIF_init()  TERM_PUBLIC void
   GIF_init()
 {  {
     gif_state.linetype = 0;      gif_state.linetype = 0;
 }  }
Line 386  TERM_PUBLIC void GIF_init()
Line 308  TERM_PUBLIC void GIF_init()
  * the terminal type changed.  This procedure should reset the device,   * the terminal type changed.  This procedure should reset the device,
  * possibly flushing a buffer somewhere or generating a form feed.   * possibly flushing a buffer somewhere or generating a form feed.
  */   */
 TERM_PUBLIC void GIF_reset()  TERM_PUBLIC void
   GIF_reset()
 {  {
 }  }
   
Line 396  TERM_PUBLIC void GIF_reset()
Line 319  TERM_PUBLIC void GIF_reset()
  * be used as terminals (like plotters) will probably be in graphics mode   * be used as terminals (like plotters) will probably be in graphics mode
  * always and therefore won't need this.   * always and therefore won't need this.
  */   */
 TERM_PUBLIC void GIF_graphics()  TERM_PUBLIC void
   GIF_graphics()
 {  {
     int i;      int i;
     unsigned int rgb;      unsigned int rgb;
Line 404  TERM_PUBLIC void GIF_graphics()
Line 328  TERM_PUBLIC void GIF_graphics()
     gif_state.color = 0;      gif_state.color = 0;
     gif_state.image = gdImageCreate((int) (xsize * GIF_XMAX),      gif_state.image = gdImageCreate((int) (xsize * GIF_XMAX),
                                     (int) (ysize * GIF_YMAX));                                      (int) (ysize * GIF_YMAX));
     gif_state.height = (int) (ysize * GIF_YMAX);      gif_state.height = (int) (ysize * GIF_YMAX - 1);
     gif_state.charw = term->h_char;     /* gif_state.font->w; */      gif_state.charw = term->h_char;     /* gif_state.font->w; */
     gif_state.charh = term->v_char;     /* gif_state.font->h; */      gif_state.charh = term->v_char;     /* gif_state.font->h; */
     for (i = gif_state.n_colors; i < GIF_N_DEFAULT_COLORS; i++)      for (i = gif_state.n_colors; i < WEB_N_COLORS; i++)
         gif_state.rgb_table[i] = gif_color_rgbs[i];          gif_state.rgb_table[i] =
     if (gif_state.n_colors < GIF_N_DEFAULT_COLORS)                  (web_color_rgbs[i].r << 16) |
         gif_state.n_colors = GIF_N_DEFAULT_COLORS;                  (web_color_rgbs[i].g << 8) |
                   web_color_rgbs[i].b;
       if (gif_state.n_colors < WEB_N_COLORS)
           gif_state.n_colors = WEB_N_COLORS;
     for (i = 0; i < gif_state.n_colors; i++) {      for (i = 0; i < gif_state.n_colors; i++) {
         rgb = gif_state.rgb_table[i];          rgb = gif_state.rgb_table[i];
         gif_state.color_table[i] =          gif_state.color_table[i] =
Line 430  TERM_PUBLIC void GIF_graphics()
Line 357  TERM_PUBLIC void GIF_graphics()
  * that commands can be seen as they're typed.  Again, this will probably   * that commands can be seen as they're typed.  Again, this will probably
  * do nothing if the device can't be used as a terminal.   * do nothing if the device can't be used as a terminal.
  */   */
 TERM_PUBLIC void GIF_text()  TERM_PUBLIC void
   GIF_text()
 {  {
     if (gif_state.flags & GIF_USE_INTERLACE)      if (gif_state.flags & GIF_USE_INTERLACE)
         gdImageInterlace(gif_state.image, 1);          gdImageInterlace(gif_state.image, 1);
Line 441  TERM_PUBLIC void GIF_text()
Line 369  TERM_PUBLIC void GIF_text()
 /* _move(x,y)  Called at the start of a line.  The cursor should move to the  /* _move(x,y)  Called at the start of a line.  The cursor should move to the
  * (x,y) position without drawing.   * (x,y) position without drawing.
  */   */
 TERM_PUBLIC void GIF_move(unsigned int x, unsigned int y)  TERM_PUBLIC void
   GIF_move(unsigned int x, unsigned int y)
 {  {
     gif_state.x = x;      gif_state.x = x;
     gif_state.y = y;      gif_state.y = y;
Line 451  TERM_PUBLIC void GIF_move(unsigned int x, unsigned int
Line 380  TERM_PUBLIC void GIF_move(unsigned int x, unsigned int
  * from the last (x,y) position given by _move() or _vector() to this new (x,y)   * from the last (x,y) position given by _move() or _vector() to this new (x,y)
  * position.   * position.
  */   */
 TERM_PUBLIC void GIF_vector(unsigned int x, unsigned int y)  TERM_PUBLIC void
   GIF_vector(unsigned int x, unsigned int y)
 {  {
     int gif_linetype_dotted[5];      int gif_linetype_dotted[5];
   
Line 484  TERM_PUBLIC void GIF_vector(unsigned int x, unsigned i
Line 414  TERM_PUBLIC void GIF_vector(unsigned int x, unsigned i
  * it should map it to one of the available line types.   * it should map it to one of the available line types.
  * Most drivers provide 9 different linetypes (lt is 0 to 8).   * Most drivers provide 9 different linetypes (lt is 0 to 8).
  */   */
 TERM_PUBLIC void GIF_linetype(int type)  TERM_PUBLIC void
   GIF_linetype(int type)
 {  {
     if (type >= (gif_state.n_colors - 3))      if (type >= (gif_state.n_colors - 3))
         type %= (gif_state.n_colors - 3);          type %= (gif_state.n_colors - 3);
Line 499  TERM_PUBLIC void GIF_linetype(int type)
Line 430  TERM_PUBLIC void GIF_linetype(int type)
  * to _text_angle and then horizontally (with respect to the text)   * to _text_angle and then horizontally (with respect to the text)
  * justified according to _justify_text.   * justified according to _justify_text.
  */   */
 TERM_PUBLIC void GIF_put_text(unsigned int x, unsigned int y, char *string)  TERM_PUBLIC void
   GIF_put_text(unsigned int x, unsigned int y, char *string)
 {  {
     if (gif_state.angle == 1) {      if (gif_state.angle == 1) {
         x -= gif_state.charh / 2;          x -= gif_state.charh / 2;
Line 518  TERM_PUBLIC void GIF_put_text(unsigned int x, unsigned
Line 450  TERM_PUBLIC void GIF_put_text(unsigned int x, unsigned
  * If ang = 0 then text is horizontal.  If ang = 1 then text is vertically   * If ang = 0 then text is horizontal.  If ang = 1 then text is vertically
  * upwards.  Returns TRUE if text can be rotated, FALSE otherwise.   * upwards.  Returns TRUE if text can be rotated, FALSE otherwise.
  */   */
 TERM_PUBLIC int GIF_text_angle(int ang)  TERM_PUBLIC int
   GIF_text_angle(int ang)
 {  {
     gif_state.angle = ang;      gif_state.angle = ang;
     return TRUE;      return TRUE;
 }  }
   
 /*  TERM_PUBLIC int
  * Local Variables:  GIF_set_font(char *fontname)
  * mode:C  {
  * End:      char name[32];
  */      int  sep;
       gdFontPtr font;
   
       sep = strcspn(fontname,",");
       strncpy(name,fontname,sep);
       name[sep] = NUL;
   
       if (!strcmp(fontname,"small"))
           font = gdFontSmall;
       else if (!strcmp(fontname,"medium"))
           font = gdFontMediumBold;
       else if(!strcmp(fontname,"large"))
           font = gdFontLarge;
       else if(!strcmp(fontname,"giant"))
           font = gdFontGiant;
       else if(!strcmp(fontname,"tiny"))
           font = gdFontTiny;
       else
           font = GIF_font;
   
       gif_state.charw = font->w;
       gif_state.charh = font->h;
   
       gif_state.font = font;
   
       return TRUE;
   }
   
 #endif /* TERM_BODY */  #endif /* TERM_BODY */
 #ifdef TERM_TABLE  #ifdef TERM_TABLE
   
Line 539  TERM_TABLE_START(gif_driver)
Line 498  TERM_TABLE_START(gif_driver)
     GIF_VTIC, GIF_HTIC, GIF_options, GIF_init, GIF_reset,      GIF_VTIC, GIF_HTIC, GIF_options, GIF_init, GIF_reset,
     GIF_text, null_scale, GIF_graphics, GIF_move, GIF_vector,      GIF_text, null_scale, GIF_graphics, GIF_move, GIF_vector,
     GIF_linetype, GIF_put_text, GIF_text_angle,      GIF_linetype, GIF_put_text, GIF_text_angle,
     null_justify_text, do_point, do_arrow, set_font_null,      null_justify_text, do_point, do_arrow, GIF_set_font,
     0,                          /* pointsize */      0,                          /* pointsize */
     TERM_CAN_MULTIPLOT | TERM_BINARY      TERM_CAN_MULTIPLOT | TERM_BINARY
 TERM_TABLE_END(gif_driver)  TERM_TABLE_END(gif_driver)
Line 562  START_HELP(gif)
Line 521  START_HELP(gif)
 " The `gif` terminal driver generates output in GIF format.  It uses Thomas",  " The `gif` terminal driver generates output in GIF format.  It uses Thomas",
 " Boutell's gd library, which is available from http://www.boutell.com/gd/",  " Boutell's gd library, which is available from http://www.boutell.com/gd/",
 "",  "",
   " By default, the `gif` terminal driver uses a shared Web-friendy palette."
   "",
 " Syntax:",  " Syntax:",
 "       set terminal gif {transparent} {interlace}",  "       set terminal gif {transparent} {interlace}",
 "                        {small | medium | large}",  "                        {tiny | small | medium | large | giant}",
 "                        {size <x>,<y>}",  "                        {size <x>,<y>}",
 "                        {<color0> <color1> <color2> ...}",  "                        {<color0> <color1> <color2> ...}",
 "",  "",
Line 573  START_HELP(gif)
Line 534  START_HELP(gif)
 "",  "",
 " `interlace` instructs the driver to generate interlaced GIFs.",  " `interlace` instructs the driver to generate interlaced GIFs.",
 "",  "",
 " The choice of fonts is `small` (6x12 pixels), `medium` (7x13 Bold) or `large`",  " The choice of fonts is `tiny` (5x8 pixels), `small` (6x12 pixels), `medium`",
 " (8x16).",  " (7x13 Bold), `large` (8x16) or `giant` (9x15 pixels)",
 "",  "",
 " The size <x,y> is given in pixels---it defaults to 640x480.  The number of",  " The size <x,y> is given in pixels---it defaults to 640x480.  The number of",
 " pixels can be also modified by scaling with the `set size` command.",  " pixels can be also modified by scaling with the `set size` command.",
Line 607  START_HELP(gif)
Line 568  START_HELP(gif)
 " The current version of the `gif` driver does not support animated GIFs."  " The current version of the `gif` driver does not support animated GIFs."
 END_HELP(gif)  END_HELP(gif)
 #endif /* TERM_HELP */  #endif /* TERM_HELP */
   
   /*
    * Local Variables:
    * mode:C
    * End:
    */

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>