From 85fdcf3f30ad68f87961753cac533432d9ade6fc Mon Sep 17 00:00:00 2001 From: Michael Jennings Date: Wed, 4 Jul 2001 01:02:37 +0000 Subject: [PATCH] Tue Jul 3 18:01:24 2001 Michael Jennings (mej) All the docs and themes should now be up-to-date. Unless a showstopping bug turns up in the near future, this is pretty much it for 0.9.1. Now we just need some testing to make sure there's nothing horridly wrong.... So you all can test while we finish up the web site and the backgrounds. :-) SVN revision: 4919 --- ChangeLog | 8 ++ Eterm.spec.in | 2 +- acconfig.h | 1 + configure.in | 2 +- doc/Eterm.1.in | 10 +- doc/Eterm_reference.html | 206 +++++++++++++++++++++--------------- src/command.h | 7 +- src/pixmap.c | 68 +++++------- src/term.c | 168 ++++++++++++----------------- themes/Eterm/theme.cfg.in | 42 ++++---- themes/auto/theme.cfg.in | 24 ++--- themes/cEterm/theme.cfg.in | 24 ++--- themes/chooser/theme.cfg.in | 24 ++--- themes/emacs/theme.cfg.in | 24 ++--- themes/irc/theme.cfg.in | 24 ++--- themes/mutt/theme.cfg.in | 24 ++--- themes/trans/theme.cfg.in | 24 ++--- utils/Esetroot.c | 1 + 18 files changed, 340 insertions(+), 343 deletions(-) diff --git a/ChangeLog b/ChangeLog index 231e6d6..818a3c6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4280,3 +4280,11 @@ Thu Jun 28 19:01:05 2001 Michael Jennings (mej) Finished updating the man page for 0.9.1. ---------------------------------------------------------------------- +Tue Jul 3 18:01:24 2001 Michael Jennings (mej) + +All the docs and themes should now be up-to-date. Unless a +showstopping bug turns up in the near future, this is pretty much it +for 0.9.1. Now we just need some testing to make sure there's +nothing horridly wrong.... So you all can test while we finish up +the web site and the backgrounds. :-) +---------------------------------------------------------------------- diff --git a/Eterm.spec.in b/Eterm.spec.in index 1d0c1d3..c9fd6a9 100644 --- a/Eterm.spec.in +++ b/Eterm.spec.in @@ -34,7 +34,7 @@ have the Imlib library installed. # macros I use for compatibility with older versions of the macro %configure --bindir=%{_bindir} --libdir=%{_libdir} --mandir=%{_mandir} \ --datadir=%{_datadir} --sysconfdir=%{_sysconfdir} \ - --with-backspace=bs --with-delete=execute + --with-backspace=bs --with-delete=execute --enable-multi-charset make %install diff --git a/acconfig.h b/acconfig.h index 4fe60c9..4352e05 100644 --- a/acconfig.h +++ b/acconfig.h @@ -302,6 +302,7 @@ #undef IMLIB_TRANS #undef KS_DELETE #undef NO_DELETE_KEY +#undef X_LOCALE #undef NO_XLOCALE #undef UTMP_SUPPORT #undef MULTI_CHARSET diff --git a/configure.in b/configure.in index 2049a79..b923eee 100644 --- a/configure.in +++ b/configure.in @@ -312,7 +312,7 @@ echo " the --x-libraries parameter to configure."; AC_CHECK_LIB(Xext, XShapeQueryExtension, AC_DEFINE(HAVE_X_SHAPE_EXT)) # check if we need X_LOCALE definition -AC_CHECK_LIB(X11, _Xsetlocale, , AC_DEFINE(NO_XLOCALE)) +AC_CHECK_LIB(X11, _Xsetlocale, AC_DEFINE(X_LOCALE), AC_DEFINE(NO_XLOCALE)) # For multibyte selection handling if test "$MULTICHAR_ENCODING" != "none"; then diff --git a/doc/Eterm.1.in b/doc/Eterm.1.in index 3e469b3..e741bcc 100644 --- a/doc/Eterm.1.in +++ b/doc/Eterm.1.in @@ -265,11 +265,8 @@ are the horizontal/vertical alignment percentages, and .I ops is a colon-delimited list of operations: .BR tiled " (to tile the image), " -.BR scaled " (for horizontal and vertical scaling), " -.BR hscaled " (for horizontal scaling), " -.BR vscaled " (for vertical scaling), and " .BR propscaled " (for proportional scaling)." -Note that some of these operations can be combined for various effects. +Note that these operations can be combined for various effects. .TP .BI \-I " pic" ", \-\-icon " pic Sets the icon pixmap file to @@ -1129,11 +1126,8 @@ are the horizontal/vertical alignment percentages, and .I ops is a colon-delimited list of operations: .BR tiled " (to tile the image), " -.BR scaled " (for horizontal and vertical scaling), " -.BR hscaled " (for horizontal scaling), " -.BR vscaled " (for vertical scaling), and " .BR propscaled " (for proportional scaling)." -Note that some of these operations can be combined for various effects. +Note that these operations can be combined for various effects. .RE .RE diff --git a/doc/Eterm_reference.html b/doc/Eterm_reference.html index 385d2d8..05299a9 100644 --- a/doc/Eterm_reference.html +++ b/doc/Eterm_reference.html @@ -82,10 +82,9 @@ Portions of this document were taken from the XTerm documentation.

ENQ - Enquiry (Ctrl-E), Send Device Attributes (DA). Eterm replies with the - string defined by ESCZ_ANSWER in src/feature.h, which is - ESC[?1;2c by default. This response indicates a VT100 - emulator with Advanced Video Option. + Enquiry (Ctrl-E), Send Device Attributes (DA). Eterm ignores + ENQ if NO_ENQ_ANS is defined, which it is by default in + src/feature.h. ESC @@ -100,12 +99,12 @@ Portions of this document were taken from the XTerm documentation.

Line Feed or New Line (Ctrl-J) - SI - Shift In (Ctrl-O), invokes the G0 (default) character set + SO + Shift Out (Ctrl-N), invokes the G1 (alternate) character set - SO - Shift Out (Ctrl-O), invokes the G1 (alternate) character set + SI + Shift In (Ctrl-O), invokes the G0 (default) character set SPC @@ -162,6 +161,10 @@ Portions of this document were taken from the XTerm documentation.

ESC > Numeric Keypad (RMKX) + + ESC @ + Discards the subsequent character + ESC D Index (IND) @@ -170,6 +173,13 @@ Portions of this document were taken from the XTerm documentation.

ESC E Next Line (NEL) + + ESC G + Graphics (an rxvt extension). Eterm replies to ESC G + Q (query graphics) with ESC G 0 (no + graphics available) and ignores all other graphics + sequences. + ESC H Tab Set (HTS) @@ -259,7 +269,7 @@ Portions of this document were taken from the XTerm documentation.

Tabulator functions @@ -324,7 +334,7 @@ Portions of this document were taken from the XTerm documentation.

@@ -360,6 +370,10 @@ Portions of this document were taken from the XTerm documentation.

  • n == 7: Request display name (ignored by default for security reasons)
  • n == 8: Request version number in window title +
  • n == 9: Display pixmap/transparency status in + window title (See + below.) + @@ -368,10 +382,12 @@ Portions of this document were taken from the XTerm documentation.

    Set Scrolling Region (CSR), where t is the top row and b is the bottom row, defaults to the full screen + ESC [ ? n [ ; n ... ] { h | l | s | r | t } DEC Private Modes (shown as set/reset) @@ -401,6 +417,8 @@ Portions of this document were taken from the XTerm documentation.

  • n == 1000: (X11 Xterm mouse reporting) Do/Don't send mouse coords on button press and release (see below) +
  • n == 1010: Scroll to bottom on tty output +
  • n == 1012: Scroll to bottom on tty input @@ -442,7 +460,13 @@ Portions of this document were taken from the XTerm documentation.

  • n == 0: Change icon name and window title to string
  • n == 1: Change icon name to string
  • n == 2: Change window title to string +
  • n == 3: Set text property string (format: var=value) +
  • n == 5: Steal input focus and raise window (See + below.) +
  • n == 6: Eterm-specific escape sequences (See + below.)
  • n == 20: Image commands (see below) +
  • n == 30: Dump contents of scrollback to file string
  • n == 39: Set the default foreground color to string
  • n == 49: Set the default background color to string
  • n == 50: Set font to string. rxvt/Eterm extensions: @@ -464,6 +488,17 @@ Portions of this document were taken from the XTerm documentation.

    + + ESC ] P n rr gg bb + Changes terminal color n ('0' through 'f') to the color + represented by the RGB values rr, gg, and + bb. (Compatible with Linux console.) + + + ESC ] R + Restores the original palette. (Compatible with Linux + console.) + ESC c Full Reset (RIS) @@ -556,29 +591,29 @@ Portions of this document were taken from the XTerm documentation.

    Image Escape Sequences

    -The string supplied to the image escape sequence (above) consists of a -filename (which can be empty) followed by a semicolon, then one or more -geometry strings. The following table shows the valid geometry strings and -their affects on the background image:

    +The string supplied to the image escape sequence (above) +consists of a filename (which can be empty) followed by a semicolon, +then one or more geometry strings. Each geometry string contains zero +or one scale/position adjustment and may optionally be followed by a +colon and one or more colon-delimited pixmap operations. The +following table shows the valid geometry strings and their affects on +the background image:

    - - - - - + @@ -632,6 +667,25 @@ their affects on the background image:

    + + + + + + + + + + + + + + +
    String Function
    ?Query scale and position (generally disabled)
    Adjusting scaling and position
    WxH+X+YSet scaling to W% by H%, and position to X% by - Y%. W and H are percentages of the original image - size. The position is a percentage, where +50+50 centers the - image in the window.Set scaling to W% by H%, and position to X% + by Y%. W and H are percentages of the + terminal window size. X and Y are also + percentages; e.g., +50+50 centers the image in the + window.
    WxH+X 0xH Multiply vertical scaling factor by H%
    0x0No scaling (show image at normal size).
    Pixmap Operations
    tileTile image. Scaling/position modifiers above will affect the + tile size and origin.
    propscaleWhen scaling, scale proportionally. That is, maintain the + proper aspect ratio for the image. Any portion of the + background not covered by the image is filled with the current + background color.

    @@ -644,8 +698,8 @@ Examples:

    "Canyon.jpg", scaling to 200% by 200%, and center it.
  • "\e]20;;100\007" -- Set scaling back to 100%
  • "\e]20;blackstone.png;0x0\007" -- Set background image to - "blackstone.png" and tile it -
  • "\e]20;;0x0\007" -- Tile current image instead of scaling + "blackstone.png", centered and at original size +
  • "\e]20;;:tile\007" -- Tile current image instead of scaling

    Mouse Reporting

    @@ -1094,14 +1148,25 @@ are: 1, on, yes, or (of course) ESC ] 6 ; 1 ; [ class ; ] color ; attribute ; value BEL - Adjusts a color modifier. class determines which image class will - have its color modifier altered, bg (background, the default), - sb (scrollbar trough), sa (scrollbar anchor), up - (up arrow), or down (down arrow). Next comes the color - which determines how pixels are modified. This is either - image, red, green, or blue. - attribute is one of brightness, contrast, or - gamma, and value is the actual integer value (>= 0). + Adjusts a color modifier. class determines which image + class will have its color modifier altered: bg + (background, the default), up (up arrow), down + (down arrow), sb (scrollbar trough), sa (scrollbar + anchor), st (scrollbar thumb), menu (popup menu + background), menuitem (popup menu items), submenu + (menu items which represent submenus), button (buttons on + the buttonbar), or bbar (buttonbar). Next comes the + color which determines how pixels are modified. This is + either image, red, green, or blue. + attribute is one of brightness, contrast, + or gamma, and value is the actual integer value + (>= 0). As stated in the man page, 256 (0x100) is 100%. + + + ESC ] 6 ; 2 ; { shade | tint } [ class ; ] value BEL + Shade/tint the specified class (see above). For shading, + value is the shade percentage. For tinting, it is the + tint color or mask. ESC ] 6 ; 3 ; BEL @@ -1132,6 +1197,10 @@ are: 1, on, yes, or (of course) focus and disappears when it does not). + + ESC ] 6 ; 14 [ ; boolean ] BEL + Set/toggle display of buttonbars. + ESC ] 6 ; 20 [ ; boolean ] BEL Set/toggle visual bell. @@ -1159,7 +1228,11 @@ are: 1, on, yes, or (of course) ESC ] 6 ; 26 [ ; boolean ] BEL - Set/toggle reporting as keysyms See the man page for details. + Set/toggle reporting as keysyms. See the man page for details. + + + ESC ] 6 ; 27 [ ; boolean ] BEL + Set/toggle the refusal of keyboard input and focus. ESC ] 6 ; 50 ; desktop BEL @@ -1169,69 +1242,36 @@ are: 1, on, yes, or (of course) - ESC ] 6 ; 70 BEL - Exit Eterm (most useful from a menu). - - - ESC ] 6 ; 71 [ ; path ] BEL - Saves the current configuration to the current theme directory, or to - path if specified. If a file of the same name already exists, it - is renamed to path.YYYYMMDD.HHMMSS (where - YYYYMMDD.HHMMSS is the current system time). + ESC ] 6 ; 72 [ ; string ] BEL + Search for and highlight any occurances of string in the + scrollback buffer. ESC ] 6 ; 80 ; level BEL Set the debugging level to level. - - ESC ] 7 ; { echo | tty_write } : params BEL - Eterm IPC: Sends the string params to the client application. - - - ESC ] 7 ; parse : params BEL - Eterm IPC: Causes Eterm to parse params itself. - - - ESC ] 7 ; enl_send : params BEL - Eterm IPC: Sends an IPC command to Enlightenment. Does not wait for a - reply. - - - ESC ] 7 ; enl_query : params BEL - Eterm IPC: Sends an IPC command to Enlightenment and waits for a reply. - - - ESC ] 7 ; winop : op [ windowid ] BEL - Eterm IPC: Performs a window operation on the window given by - windowid. Valid window operations are raise, - lower, map, unmap, kill, and - iconify. The operation should be separated from the - window ID by a space. The default window is the Eterm window itself. - - - ESC ] 7 ; exit BEL - Eterm IPC: Exits Eterm. -

    Transparency

    -The standard for implementing transparency was a mutual effort between myself, -Carsten Haitzler <raster@redhat.com>, Gerald Britton <gbritton@mit.edu>, and -Nat Friedman <nat@nat.org>, based off of an original idea by Nat. First I'll -define the standard, then I'll discuss its justification.

    +The standard for implementing transparency was a mutual effort between +myself, Carsten Haitzler <raster@rasterman.com>, Gerald Britton +<gbritton@mit.edu>, and Nat Friedman <nat@nat.org>, based +off of an original idea by Nat. First I'll define the standard, then +I'll discuss its justification.

    -There are two separate procedures for setting the transparency property (the -_XROOTPMAP_ID atom in X). The first is for persistent X clients such as window -managers. These clients should proceed through their normal mechanism for -setting the desktop image. Once the finalized pixmap has been created, the -_XROOTPMAP_ID property should be set on the desktop window (the same window -which will receive the pixmap...note that this is not necessarily the root -window), and its value should be set to the Pixmap ID. The following sample -code (taken from Enlightenment) demonstrates this:

    diff --git a/src/command.h b/src/command.h
    index dab9c31..aa418af 100644
    --- a/src/command.h
    +++ b/src/command.h
    @@ -26,12 +26,9 @@
     # include 
     # include 
     
    -# ifdef NO_XLOCALE
    +# if defined(NO_XLOCALE) || !defined(HAVE_X11_LOCALE_H)
     #  include 
     # else
    -#  ifndef X_LOCALE
    -#   define X_LOCALE
    -#  endif
     #  include 
     # endif
     
    @@ -202,7 +199,7 @@ if (test) PrivateModes |= (bit); else PrivateModes &= ~(bit);} while (0)
     # endif
     #endif
     
    -#define KBUFSZ		12	/* size of keyboard mapping buffer */
    +#define KBUFSZ		64	/* size of keyboard mapping buffer */
     #define STRING_MAX	512	/* max string size for process_xterm_seq() */
     #define ESC_ARGS	32	/* max # of args for esc sequences */
     
    diff --git a/src/pixmap.c b/src/pixmap.c
    index b895a1e..c28e3e9 100644
    --- a/src/pixmap.c
    +++ b/src/pixmap.c
    @@ -124,7 +124,6 @@ image_mode_any(unsigned char mode)
     unsigned short
     parse_pixmap_ops(char *str)
     {
    -
       unsigned short op = OP_NONE;
       char *token;
     
    @@ -155,7 +154,7 @@ set_pixmap_scale(const char *geom, pixmap_t *pmap)
       {'\0'};
       unsigned int w = 0, h = 0;
       int x = 0, y = 0;
    -  unsigned short op = OP_NONE;
    +  unsigned short op;
       int flags;
       unsigned short changed = 0;
       char *p, *opstr;
    @@ -172,7 +171,9 @@ set_pixmap_scale(const char *geom, pixmap_t *pmap)
       }
       if ((opstr = strchr(geom, ':')) != NULL) {
         *opstr++ = '\0';
    -    op |= parse_pixmap_ops(opstr);
    +    op = parse_pixmap_ops(opstr);
    +  } else {
    +    op = pmap->op;
       }
       if ((p = strchr(geom, ';')) == NULL)
         p = strchr(geom, '\0');
    @@ -189,13 +190,19 @@ set_pixmap_scale(const char *geom, pixmap_t *pmap)
         flags |= WidthValue;	/* default is tile */
         w = 0;
       }
    -  if (flags & WidthValue) {
    -    if (!(flags & XValue)) {
    -      x = 50;
    -    }
    -    if (!(flags & HeightValue))
    -      h = w;
    +  if (!(flags & XValue)) {
    +    x = 50;
    +  }
    +  if (!(flags & HeightValue)) {
    +    h = w;
    +  }
    +  if (!(flags & YValue)) {
    +    if (flags & XNegative)
    +      flags |= YNegative;
    +    y = x;
    +  }
     
    +  if (flags & (WidthValue | HeightValue)) {
         if (w && !h) {
           w = pmap->w * ((float) w / 100);
           h = pmap->h;
    @@ -203,35 +210,16 @@ set_pixmap_scale(const char *geom, pixmap_t *pmap)
           w = pmap->w;
           h = pmap->h * ((float) h / 100);
         }
    -    /* If they want scaling, but didn't give a percentage, assume 100% */
    -    if (op & OP_PROPSCALE) {
    -      if (!w)
    -	w = 100;
    -      if (!h)
    -	h = 100;
    -    } else {
    -      if ((op & OP_HSCALE) && !w) {
    -	w = 100;
    -      }
    -      if ((op & OP_VSCALE) && !h) {
    -	h = 100;
    -      }
    -    }
    +  }
    +  if (pmap->w != (int) w) {
    +    pmap->w = (int) w;
    +    changed++;
    +  }
    +  if (pmap->h != (int) h) {
    +    pmap->h = (int) h;
    +    changed++;
    +  }
     
    -    if (pmap->w != (int) w) {
    -      pmap->w = (int) w;
    -      changed++;
    -    }
    -    if (pmap->h != (int) h) {
    -      pmap->h = (int) h;
    -      changed++;
    -    }
    -  }
    -  if (!(flags & YValue)) {
    -    if (flags & XNegative)
    -      flags |= YNegative;
    -    y = x;
    -  }
       if (!(flags & WidthValue) && geom[0] != '=') {
         x += pmap->x;
         y += pmap->y;
    @@ -241,9 +229,9 @@ set_pixmap_scale(const char *geom, pixmap_t *pmap)
         if (flags & YNegative)
           y += 100;
       }
    +  BOUND(x, 0, 100);
    +  BOUND(y, 0, 100);
     
    -  x = (x <= 0 ? 0 : (x >= 100 ? 100 : x));
    -  y = (y <= 0 ? 0 : (y >= 100 ? 100 : y));;
       if (pmap->x != x) {
         pmap->x = x;
         changed++;
    @@ -1032,7 +1020,7 @@ render_simage(simage_t *simg, Window win, unsigned short width, unsigned short h
           ysize = imlib_image_get_height();
           D_PIXMAP(("w == %d, h == %d, x == %d, y == %d, xsize == %d, ysize == %d\n", w, h, x, y, xsize, ysize));
     
    -      if ((simg->pmap->op & OP_PROPSCALE)) {
    +      if ((simg->pmap->op & OP_PROPSCALE) && w && h) {
     	double x_ratio, y_ratio;
     
     	x_ratio = ((double) width) / ((double) xsize);
    diff --git a/src/term.c b/src/term.c
    index c5c3529..5a49260 100644
    --- a/src/term.c
    +++ b/src/term.c
    @@ -987,18 +987,9 @@ process_csi_seq(void)
         return;  /* An NPC.  Punt. */
     
       switch (ch) {
    -#ifdef PRINTPIPE
    -    case 'i':
    -      switch (arg[0]) {
    -	case 0:
    -	  scr_printscreen(0);  /* Print screen "\e[0i" */
    -	  break;
    -	case 5:
    -	  process_print_pipe();  /* Start printing to print pipe "\e[5i" */
    -	  break;
    -      }
    +    case '@':
    +      scr_insdel_chars((arg[0] ? arg[0] : 1), INSERT);
           break;
    -#endif
         case 'A':
         case 'e':  /* Cursor up n lines "\e[A" */
           scr_gotorc((arg[0] ? -arg[0] : -1), 0, RELATIVE);
    @@ -1023,9 +1014,6 @@ process_csi_seq(void)
         case '`':  /* Cursor to column n "\e[G" */
           scr_gotorc(0, (arg[0] ? arg[0] - 1 : +1), R_RELATIVE);
           break;
    -    case 'd':  /* Cursor to row n "\e[d" */
    -      scr_gotorc((arg[0] ? arg[0] - 1 : +1), 0, C_RELATIVE);
    -      break;
         case 'H':
         case 'f':  /* Cursor to row r, column c "\e[;H" */
           switch (nargs) {
    @@ -1043,29 +1031,39 @@ process_csi_seq(void)
         case 'I':  /* Tab right n tab stops "\e[I" */
           scr_tab(arg[0] ? +arg[0] : +1);
           break;
    -    case 'Z':  /* Tab left n tab stops "\e[Z" */
    -      scr_tab(arg[0] ? -arg[0] : -1);
    -      break;
         case 'J':  /* Clear part or all of screen, depending on n "\e[J" */
           scr_erase_screen(arg[0]);
           break;
         case 'K':  /* Clear part or all of line, depending on n "\e[K" */
           scr_erase_line(arg[0]);
           break;
    -    case '@':
    -      scr_insdel_chars((arg[0] ? arg[0] : 1), INSERT);
    -      break;
         case 'L':
           scr_insdel_lines((arg[0] ? arg[0] : 1), INSERT);
           break;
         case 'M':
           scr_insdel_lines((arg[0] ? arg[0] : 1), DELETE);
           break;
    +    case 'P':
    +      scr_insdel_chars((arg[0] ? arg[0] : 1), DELETE);
    +      break;
    +    case 'W':
    +      switch (arg[0]) {
    +	case 0:
    +	  scr_set_tab(1);
    +	  break;		/* = ESC H */
    +	case 2:
    +	  scr_set_tab(0);
    +	  break;		/* = ESC [ 0 g */
    +	case 5:
    +	  scr_set_tab(-1);
    +	  break;		/* = ESC [ 3 g */
    +      }
    +      break;
         case 'X':
           scr_insdel_chars((arg[0] ? arg[0] : 1), ERASE);
           break;
    -    case 'P':
    -      scr_insdel_chars((arg[0] ? arg[0] : 1), DELETE);
    +    case 'Z':  /* Tab left n tab stops "\e[Z" */
    +      scr_tab(arg[0] ? -arg[0] : -1);
           break;
     
         case 'c':
    @@ -1073,6 +1071,31 @@ process_csi_seq(void)
           tt_printf(VT100_ANS);
     #endif
           break;
    +    case 'd':  /* Cursor to row n "\e[d" */
    +      scr_gotorc((arg[0] ? arg[0] - 1 : +1), 0, C_RELATIVE);
    +      break;
    +    case 'g':
    +      switch (arg[0]) {
    +	case 0:
    +	  scr_set_tab(0);
    +	  break;		/* delete tab */
    +	case 3:
    +	  scr_set_tab(-1);
    +	  break;		/* clear all tabs */
    +      }
    +      break;
    +#ifdef PRINTPIPE
    +    case 'i':
    +      switch (arg[0]) {
    +	case 0:
    +	  scr_printscreen(0);  /* Print screen "\e[0i" */
    +	  break;
    +	case 5:
    +	  process_print_pipe();  /* Start printing to print pipe "\e[5i" */
    +	  break;
    +      }
    +      break;
    +#endif
         case 'm':
           process_sgr_mode(nargs, arg);
           break;
    @@ -1170,29 +1193,6 @@ process_csi_seq(void)
             scr_cursor(RESTORE);
           }
           break;
    -    case 'g':
    -      switch (arg[0]) {
    -	case 0:
    -	  scr_set_tab(0);
    -	  break;		/* delete tab */
    -	case 3:
    -	  scr_set_tab(-1);
    -	  break;		/* clear all tabs */
    -      }
    -      break;
    -    case 'W':
    -      switch (arg[0]) {
    -	case 0:
    -	  scr_set_tab(1);
    -	  break;		/* = ESC H */
    -	case 2:
    -	  scr_set_tab(0);
    -	  break;		/* = ESC [ 0 g */
    -	case 5:
    -	  scr_set_tab(-1);
    -	  break;		/* = ESC [ 3 g */
    -      }
    -      break;
       }
     }
     
    @@ -1293,7 +1293,9 @@ process_window_mode(unsigned int nargs, int args[])
       int x, y;
       Screen *scr;
       Window dummy_child;
    -  char buff[128], *name;
    +  int dummy_x, dummy_y;
    +  unsigned int dummy_border, dummy_depth;
    +  char buff[1024], *name;
     
       if (!nargs)
         return;
    @@ -1302,16 +1304,9 @@ process_window_mode(unsigned int nargs, int args[])
         return;
     
       for (i = 0; i < nargs; i++) {
    -    if (args[i] == 14) {
    -      int dummy_x, dummy_y;
    -      unsigned int dummy_border, dummy_depth;
    -
    -      /* Store current width and height in x and y */
    -      XGetGeometry(Xdisplay, TermWin.parent, &dummy_child, &dummy_x, &dummy_y, (unsigned int *) (&x), (unsigned int *) (&y), &dummy_border, &dummy_depth);
    -    }
         switch (args[i]) {
           case 1:
    -	XRaiseWindow(Xdisplay, TermWin.parent);
    +	XMapRaised(Xdisplay, TermWin.parent);
     	break;
           case 2:
     	XIconifyWindow(Xdisplay, TermWin.parent, Xscreen);
    @@ -1330,8 +1325,8 @@ process_window_mode(unsigned int nargs, int args[])
     	  return;		/* Make sure there are 2 args left */
     	y = args[++i];
     	x = args[++i];
    -        UPPER_BOUND(y, scr->height);
    -        UPPER_BOUND(x, scr->width);
    +        BOUND(y, szHint.min_height, scr->height);
    +        BOUND(x, szHint.min_width, scr->width);
     	XResizeWindow(Xdisplay, TermWin.parent, x, y);
     #ifdef USE_XIM
     	xim_set_status_position();
    @@ -1354,8 +1349,8 @@ process_window_mode(unsigned int nargs, int args[])
     	  return;		/* Make sure there are 2 args left */
     	y = args[++i];
     	x = args[++i];
    -        UPPER_BOUND(y, scr->height / TermWin.fheight);
    -        UPPER_BOUND(x, scr->width / TermWin.fwidth);
    +        BOUND(y, 1, scr->height / TermWin.fheight);
    +        BOUND(x, 1, scr->width / TermWin.fwidth);
     	XResizeWindow(Xdisplay, TermWin.parent,
     		      Width2Pixel(x) + 2 * TermWin.internalBorder + (scrollbar_is_visible()? scrollbar_trough_width() : 0),
     		      Height2Pixel(y) + 2 * TermWin.internalBorder);
    @@ -1368,6 +1363,8 @@ process_window_mode(unsigned int nargs, int args[])
     	tt_write((unsigned char *) buff, strlen(buff));
     	break;
           case 14:
    +        /* Store current width and height in x and y */
    +        XGetGeometry(Xdisplay, TermWin.parent, &dummy_child, &dummy_x, &dummy_y, (unsigned int *) (&x), (unsigned int *) (&y), &dummy_border, &dummy_depth);
     	snprintf(buff, sizeof(buff), "\033[4;%d;%dt", y, x);
     	tt_write((unsigned char *) buff, strlen(buff));
     	break;
    @@ -1475,17 +1472,16 @@ process_terminal_mode(int mode, int priv, unsigned int nargs, int arg[])
     	      PrivateModes &= ~(PrivMode_MouseX11);
     	    break;
     
    -#ifdef scrollbar_esc
    -	  case scrollbar_esc:
    -	    PrivCases(PrivMode_scrollbar);
    -	    map_scrollbar(state);
    -	    break;
    -#endif
     	  case 25:		/* visible/invisible cursor */
     	    PrivCases(PrivMode_VisibleCursor);
     	    scr_cursor_visible(state);
     	    break;
     
    +	  case 30:
    +	    PrivCases(PrivMode_scrollbar);
    +	    map_scrollbar(state);
    +	    break;
    +
     	  case 35:
     	    PrivCases(PrivMode_ShiftKeys);
     	    break;
    @@ -1737,9 +1733,10 @@ append_to_icon_name(const char *str)
     
     /*
      * XTerm escape sequences: ESC ] Ps;Pt BEL
    - *       0 = change iconName/title
    - *       1 = change iconName
    + *       0 = change icon name and window title
    + *       1 = change icon name
      *       2 = change title
    + *       3 = set text property on window
      *      46 = change logfile (not implemented)
      *      50 = change font
      *
    @@ -1796,35 +1793,7 @@ xterm_seq(int op, const char *str)
     
         case XTerm_EtermSeq:
     
    -      /* Eterm proprietary escape sequences
    -
    -         Syntax:  ESC ] 6 ;  ;  BEL
    -
    -         where  is:  0    Set/toggle transparency
    -         1     Set color modifiers
    -         3     Force update of pseudo-transparent background
    -         10    Set scrollbar type/width
    -         11    Set/toggle right-side scrollbar
    -         12    Set/toggle floating scrollbar
    -         13    Set/toggle popup scrollbar
    -         20    Set/toggle visual bell
    -         21    Set/toggle map alert
    -         22    Set/toggle xterm selection behavior
    -         23    Set/toggle triple-click line selection
    -         24    Set/toggle viewport mode
    -         25    Set/toggle selection of trailing spaces
    -         30    Do not use
    -         40    Do not use
    -         50    Move window to another desktop
    -         70    Exit Eterm
    -         71    Save current configuration to a file
    -         72    Search scrollback for a string
    -         and  is an optional argument, depending
    -         on the particular sequence being used.  It
    -         (along with its preceeding semicolon) may or
    -         may not be needed.
    -       */
    -
    +      /* Eterm proprietary escape sequences.  See technical reference for details. */
           D_CMD(("Got XTerm_EtermSeq sequence\n"));
           nstr = (char *) strsep(&tnstr, ";");
           eterm_seq_op = (unsigned char) strtol(nstr, (char **) NULL, 10);
    @@ -1832,9 +1801,8 @@ xterm_seq(int op, const char *str)
           /* Yes, there is order to the numbers for this stuff.  And here it is:
              0-9      Image Class/Mode Configuration
              10-19    Scrollbar/Buttonbar/Menu Configuration
    -         20-29    Miscellaneous Toggles
    -         30-39    Foreground/Text Color Configuration
    -         40-49    Background Color Configuration
    +         20-39    Miscellaneous Toggles
    +         40-49    Foreground/Background Color Configuration
              50-69    Window/Window Manager Configuration/Interaction
              70+      Internal Eterm Operations
            */
    @@ -2230,7 +2198,7 @@ xterm_seq(int op, const char *str)
               XSetWMHints(Xdisplay, TermWin.parent, wm_hints);
               XFree(wm_hints);
     	  break;
    -	case 30:
    +	case 40:
     	  nstr = (char *) strsep(&tnstr, ";");
     	  if (nstr) {
     	    if (XParseColor(Xdisplay, cmap, nstr, &xcol) && XAllocColor(Xdisplay, cmap, &xcol)) {
    @@ -2239,7 +2207,7 @@ xterm_seq(int op, const char *str)
     	    }
     	  }
     	  break;
    -	case 40:
    +	case 41:
     	  nstr = (char *) strsep(&tnstr, ";");
     	  if (nstr) {
     	    if (XParseColor(Xdisplay, cmap, nstr, &xcol) && XAllocColor(Xdisplay, cmap, &xcol)) {
    diff --git a/themes/Eterm/theme.cfg.in b/themes/Eterm/theme.cfg.in
    index efd0d5a..f15521e 100644
    --- a/themes/Eterm/theme.cfg.in
    +++ b/themes/Eterm/theme.cfg.in
    @@ -1,4 +1,4 @@
    -
    +
     # ^- This must be the first line of any Eterm config file!
     # Format is:    where VERSION is replaced by
     #                              the version it was written for,
    @@ -144,7 +144,7 @@ begin imageclasses
           color black #666666
           file bar_vertical_3.png
     # Here is how you specify the geometry string separately.  See the man page for its syntax.
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -153,11 +153,11 @@ begin imageclasses
           state normal
           color black #666666
           file bar_vertical_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
           state selected
           file bar_vertical_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -166,11 +166,11 @@ begin imageclasses
           state normal
           color black #666666
           file thumb_1.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
           state selected
           file thumb_2.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
         end image
         begin image
    @@ -179,15 +179,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_up_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_up_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_up_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    @@ -196,15 +196,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_down_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_down_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_down_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    @@ -213,11 +213,11 @@ begin imageclasses
           state normal
           color black #999999
           file bar_horizontal_1.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 2 3 2 3
           state selected
           file bar_horizontal_2.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 2 3 2 3
         end image
         begin image
    @@ -226,17 +226,17 @@ begin imageclasses
           state normal
           color black #999999
           file menu1.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 3 15 3 3
           padding 3 15 3 3
           state selected
           file menu2.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 3 15 3 3
           padding 3 15 3 3
           state clicked
           file menu3.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 3 15 3 3
           padding 3 15 3 3
         end image
    @@ -246,7 +246,7 @@ begin imageclasses
           state normal
           color black #999999
           file bar_horizontal_1.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 2 3 2 2
           state disabled
           color white #333333
    @@ -259,15 +259,15 @@ begin imageclasses
           state normal
           color black #cccccc
           file bar_horizontal_1.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 2 3 2 2
           state selected
           file bar_horizontal_2.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 2 3 2 2
           state clicked
           file bar_horizontal_3.png
    -      geom 100x100+0+0:scale
    +      geom 100
           border 2 3 2 2
         end image
     end
    diff --git a/themes/auto/theme.cfg.in b/themes/auto/theme.cfg.in
    index b4499bf..1da3695 100644
    --- a/themes/auto/theme.cfg.in
    +++ b/themes/auto/theme.cfg.in
    @@ -1,4 +1,4 @@
    -
    +
     # ^- This must be the first line of any Eterm config file!
     # Format is:    where VERSION is replaced by
     #                              the version it was written for,
    @@ -144,7 +144,7 @@ begin imageclasses
           color black #666666
           file bar_vertical_3.png
     # Here is how you specify the geometry string separately.  See the man page for its syntax.
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -153,11 +153,11 @@ begin imageclasses
           state normal
           color black #666666
           file bar_vertical_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
           state selected
           file bar_vertical_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -166,11 +166,11 @@ begin imageclasses
           state normal
           color black #666666
           file thumb_1.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
           state selected
           file thumb_2.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
         end image
         begin image
    @@ -179,15 +179,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_up_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_up_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_up_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    @@ -196,15 +196,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_down_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_down_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_down_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    diff --git a/themes/cEterm/theme.cfg.in b/themes/cEterm/theme.cfg.in
    index 3bddc38..daf6f6f 100644
    --- a/themes/cEterm/theme.cfg.in
    +++ b/themes/cEterm/theme.cfg.in
    @@ -1,4 +1,4 @@
    -
    +
     # ^- This must be the first line of any Eterm config file!
     # Format is:    where VERSION is replaced by
     #                              the version it was written for,
    @@ -143,7 +143,7 @@ begin imageclasses
           color black #666666
           file bar_vertical_3.png
     # Here is how you specify the geometry string separately.  See the man page for its syntax.
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -152,11 +152,11 @@ begin imageclasses
           state normal
           color black #666666
           file bar_vertical_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
           state selected
           file bar_vertical_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -165,11 +165,11 @@ begin imageclasses
           state normal
           color black #666666
           file thumb_1.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
           state selected
           file thumb_2.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
         end image
         begin image
    @@ -178,15 +178,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_up_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_up_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_up_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    @@ -195,15 +195,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_down_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_down_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_down_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    diff --git a/themes/chooser/theme.cfg.in b/themes/chooser/theme.cfg.in
    index c5fa930..4707dfd 100644
    --- a/themes/chooser/theme.cfg.in
    +++ b/themes/chooser/theme.cfg.in
    @@ -1,4 +1,4 @@
    -
    +
     # ^- This must be the first line of any Eterm config file!
     # Format is:    where VERSION is replaced by
     #                              the version it was written for,
    @@ -144,7 +144,7 @@ begin imageclasses
           color black #666666
           file bar_vertical_3.png
     # Here is how you specify the geometry string separately.  See the man page for its syntax.
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -153,11 +153,11 @@ begin imageclasses
           state normal
           color black #666666
           file bar_vertical_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
           state selected
           file bar_vertical_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -166,11 +166,11 @@ begin imageclasses
           state normal
           color black #666666
           file thumb_1.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
           state selected
           file thumb_2.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
         end image
         begin image
    @@ -179,15 +179,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_up_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_up_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_up_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    @@ -196,15 +196,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_down_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_down_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_down_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    diff --git a/themes/emacs/theme.cfg.in b/themes/emacs/theme.cfg.in
    index 55599fa..ec9a532 100644
    --- a/themes/emacs/theme.cfg.in
    +++ b/themes/emacs/theme.cfg.in
    @@ -1,4 +1,4 @@
    -
    +
     # ^- This must be the first line of any Eterm config file!
     # Format is:    where VERSION is replaced by
     #                              the version it was written for,
    @@ -144,7 +144,7 @@ begin imageclasses
           color black #666666
           file bar_vertical_3.png
     # Here is how you specify the geometry string separately.  See the man page for its syntax.
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -153,11 +153,11 @@ begin imageclasses
           state normal
           color black #666666
           file bar_vertical_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
           state selected
           file bar_vertical_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -166,11 +166,11 @@ begin imageclasses
           state normal
           color black #666666
           file thumb_1.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
           state selected
           file thumb_2.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
         end image
         begin image
    @@ -179,15 +179,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_up_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_up_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_up_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    @@ -196,15 +196,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_down_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_down_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_down_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    diff --git a/themes/irc/theme.cfg.in b/themes/irc/theme.cfg.in
    index 3e9e5d0..96859f9 100644
    --- a/themes/irc/theme.cfg.in
    +++ b/themes/irc/theme.cfg.in
    @@ -1,4 +1,4 @@
    -
    +
     # ^- This must be the first line of any Eterm config file!
     # Format is:    where VERSION is replaced by
     #                              the version it was written for,
    @@ -146,7 +146,7 @@ begin imageclasses
           color black #666666
           file bar_vertical_3.png
     # Here is how you specify the geometry string separately.  See the man page for its syntax.
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -155,11 +155,11 @@ begin imageclasses
           state normal
           color black #666666
           file bar_vertical_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
           state selected
           file bar_vertical_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -168,11 +168,11 @@ begin imageclasses
           state normal
           color black #666666
           file thumb_1.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
           state selected
           file thumb_2.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
         end image
         begin image
    @@ -181,15 +181,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_up_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_up_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_up_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    @@ -198,15 +198,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_down_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_down_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_down_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    diff --git a/themes/mutt/theme.cfg.in b/themes/mutt/theme.cfg.in
    index e790289..c2f094b 100644
    --- a/themes/mutt/theme.cfg.in
    +++ b/themes/mutt/theme.cfg.in
    @@ -1,4 +1,4 @@
    -
    +
     # ^- This must be the first line of any Eterm config file!
     # Format is:    where VERSION is replaced by
     #                              the version it was written for,
    @@ -143,7 +143,7 @@ end multichar
           color black #666666
           file bar_vertical_3.png
     # Here is how you specify the geometry string separately.  See the man page for its syntax.
    -      geom :scale
    +      geom 100
           border 2 2 2 3
       end image
         begin image
    @@ -152,11 +152,11 @@ end multichar
           state normal
           color black #666666
           file bar_vertical_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
           state selected
           file bar_vertical_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
       end image
         begin image
    @@ -165,11 +165,11 @@ end multichar
           state normal
           color black #666666
           file thumb_1.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
           state selected
           file thumb_2.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
       end image
         begin image
    @@ -178,15 +178,15 @@ end multichar
           state normal
           color black #666666
           file button_arrow_up_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_up_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_up_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
       end image
         begin image
    @@ -195,15 +195,15 @@ end multichar
           state normal
           color black #666666
           file button_arrow_down_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_down_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_down_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
       end image
         begin image
    diff --git a/themes/trans/theme.cfg.in b/themes/trans/theme.cfg.in
    index a03da51..094c0d1 100644
    --- a/themes/trans/theme.cfg.in
    +++ b/themes/trans/theme.cfg.in
    @@ -1,4 +1,4 @@
    -
    +
     # ^- This must be the first line of any Eterm config file!
     # Format is:    where VERSION is replaced by
     #                              the version it was written for,
    @@ -144,7 +144,7 @@ begin imageclasses
           color black #666666
           file bar_vertical_3.png
     # Here is how you specify the geometry string separately.  See the man page for its syntax.
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -153,11 +153,11 @@ begin imageclasses
           state normal
           color black #666666
           file bar_vertical_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
           state selected
           file bar_vertical_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 3
         end image
         begin image
    @@ -166,11 +166,11 @@ begin imageclasses
           state normal
           color black #666666
           file thumb_1.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
           state selected
           file thumb_2.png
    -      geom :scale
    +      geom 100
           border 3 3 3 3
         end image
         begin image
    @@ -179,15 +179,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_up_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_up_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_up_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    @@ -196,15 +196,15 @@ begin imageclasses
           state normal
           color black #666666
           file button_arrow_down_1.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state selected
           file button_arrow_down_2.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
           state clicked
           file button_arrow_down_3.png
    -      geom :scale
    +      geom 100
           border 2 2 2 2
         end image
         begin image
    diff --git a/utils/Esetroot.c b/utils/Esetroot.c
    index cd311ad..a8b603c 100644
    --- a/utils/Esetroot.c
    +++ b/utils/Esetroot.c
    @@ -17,6 +17,7 @@ static const char cvs_ident[] = "$Id$";
     #ifdef HAVE_UNISTD_H
     # include 
     #endif
    +#include 
     
     #ifdef PIXMAP_SUPPORT
     #include