-- Leo's gemini proxy

-- Connecting to git.thebackupbox.net:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

repo: rxvt-unicode-sixel
action: commit
revision:
path_from:
revision_from: 5f6b06044dd03ce8a0cf235dfcdfa819bb76f34b:
path_to:
revision_to:

git.thebackupbox.net

rxvt-unicode-sixel

git://git.thebackupbox.net/rxvt-unicode-sixel

commit 5f6b06044dd03ce8a0cf235dfcdfa819bb76f34b
Author: Marc Lehmann <schmorp@schmorp.de>
Date:   Sun Feb 22 08:09:38 2004 +0000

    *** empty log message ***

diff --git a/Changes b/Changes

index d7917d3925d7f0aa65825027d0f5913cb6aac2b1..

index ..7d18cb57985b36dc3b5607c09fd9870797ef25bf 100644

--- a/Changes
+++ b/Changes
@@ -12,6 +12,7 @@
           keysyms that also have string translations, when not --enable-xim.
           reported by joel reed.
         - countless minor bugfixes.
+        - removed greek support.

 1.8  Mon Feb  2 20:09:18 CET 2004
 	- almost total conversion to C++. Except for introducing
diff --git a/autoconf/config.h.in b/autoconf/config.h.in

index 66b915cf651d4ecc4dd366101b2a4c8d5a104c2d..

index ..e46042b30180f3edc8696268f887feab56b6cfd6 100644

--- a/autoconf/config.h.in
+++ b/autoconf/config.h.in
@@ -190,9 +190,6 @@
 /* Define if you want the depth of scrollbars and menus to be less */
 #undef HALFSHADOW

-/* Define if you want support for Greek Elot-928 & IBM-437 keyboard */
-#undef GREEK_SUPPORT
-
 /* Define to change gid of ttys to group tty */
 #undef TTY_GID_SUPPORT

diff --git a/autoconf/configure.in b/autoconf/configure.in

index 636e6b158791301baea99aa827f81400c2dbca33..

index ..3308787c5456431372fe78aba9f9719d18f0ce67 100644

--- a/autoconf/configure.in
+++ b/autoconf/configure.in
@@ -212,12 +212,6 @@ AC_ARG_ENABLE(xim,
     support_xim=$enableval
   fi])

-AC_ARG_ENABLE(greek,
-  [  --enable-greek          enable greek keyboard support],
-  [if test x$enableval = xyes; then
-    AC_DEFINE(GREEK_SUPPORT, 1, Define if you want support for Greek Elot-928 & IBM-437 keyboard)
-  fi])
-
 AC_ARG_ENABLE(ttygid,
   [  --enable-ttygid         enable tty setting to group named "tty"],
   [if test x$enableval = xyes; then
diff --git a/doc/README.greek b/doc/README.greek
deleted file mode 100644
index 4144ece6d723e75d668c9f4101716f1a646a9789..0000000000000000000000000000000000000000
--- a/doc/README.greek
+++ /dev/null
@@ -1,131 +0,0 @@
-		-------------------------------
-		rxvt support for greek keyboard
-		-------------------------------
-
-		A. Haritsis <ah@doc.ic.ac.uk>
-
-rxvt supports both ELOT-928 (ISO-8859-7 standard) and IBM-437 keyboard
-translations for greek character entry. It is possible to start rxvt windows
-in any of the two translations, making it possible to use both translations
-modes simultanesuly on the same screen! No need to convert your files back
-and forth if you don't want to.
-
-When in greek mode, type ; or : twice to emit the respective symbol.
-No need to switch language mode back and forth!
-
-rxvt ISO-8859-7 includes mappings for the following (usually forgotten):
-anw teleia =  ;.
-<<	   =  ;<
->>	   =  ;>
-  Also:
-Copyright  =  ;c
-Section    =  ;s
-
-For Greek Elot-928 or IBM-437 keyboard for rxvt & X greek entry support
-you will need to:
-
-1) compile rxvt with an ANSI C compiler (eg gcc) as follows:
-
-   Use the  --enable-greek  option in  configure , or edit config.h and
-   define GREEK_SUPPORT
-
-   Then your rxvt executable with greek support should be created.  Install
-   it as you would do for the normal rxvt.  There is no need to change its
-   name.  It works fully as a normal rxvt but if you press the 'toggle'
-   keysym (see below) it will switch into greek translation mode.  The extra
-   memory it takes in less than 4 kBytes.
-
-2) install greek elot & ibm437 fonts(s) for X-windows
-   eg.
-	cp a_greek_font.pcf.Z /usr/lib/X11/misc/
-
-   and ammend the fonts.dir and fonts.alias in /usr/lib/X11/misc/. Greek
-   fonts are available as a separate file which you can download from
-   sunsite (/pub/Linux/X11/misc/greek-xfont-pack.tgz).  A new release of a
-   FULL set of fixed (and proportional and Type1 for use by netscape etc)
-   can be found in the HCR archive - see at end).  I might upload them at
-   sunsite et all as well.
-
-3) include the following in your X resources:
-	rxvt.font: grfixed	(or the name of your preferred greek font)
-	rxvt.bits: 8				(default)
-	rxvt.greektoggle_key: Mode_switch	(default)
-
-   where grfixed is an alias for one of the elot-928 font in the pack.
-
-   Remember that the default keyboard translation is ELOT928.  If you need
-   to start rxvt with suppport for IBM437, use the command line of rxvt to
-   set mode & font (command line option -grk4 can do this).  Remember to use
-   an Elot font with the Elot translation mode and a 437 font with the
-   IBM437 mode.
-
-   You can choose any keysym you wish as the "toggler" greek_switch_keysym.
-   Choosing `VoidSymbol' will effectively _disable_ the greek keyboard.
-   The default is keysym `Mode_switch'.
-
-   For XFree86 this is defined in the /usr/lib/X11/Xmodmap.* files as:
-	keycode 113 = Mode_switch  (it is the Right Alt key or ALtGr)
-   You may define it to be something else with a command like:
-
-	xmodmap -e "keycode ... = Mode_switch"
-
-   or changing your ~/.Xmodmap file (see xmodmap(1) and X(1) about this).
-   I personally prefer the AltGr key on PC X terminals since it allows fast
-   switching. Of course this might not be liked by left-handed people.  You
-   can redefine it to whtever you like under X, but I would NOT recommend
-   keycodes that have other uses.
-
-5) Not all programs are 8-bit clean -- ie, they sometimes strip the top bit
-   of a character which is essential for the greek fonts.
-
-   Unfortunately bash is one of these programs (at least I couldn't figure
-   out how to make it to work). Use tcsh instead: it is 8-bit clean.
-
-   You will generally need to include in your ...rc files:
-
-   For sh/bash:
-	LC_CTYPE=iso_8859_1; export LC_CTYPE
-	LESSCHARSET=latin1; export LESSCHARSET
-
-   For bash to be 8-bit clean, add the following lines to ~/.inputrc:
-	set meta-flag on
-	set convert-meta off
-	set output-meta on
-
-   For csh/tcsh:
-	setenv LC_CTYPE iso_8859_1
-	setenv LESSCHARSET latin1
-
-Still some applications will have problems.  Emacs has its own support for
-greek characters achieved with the .el script written by sarantos@csd.uch.gr
-(for 19.20 +).  It might be possible to have greek support via emacs
-invocations with the -nw argument (with this version of rxvt) but I have not
-tried it.  Elvis (vi clone) works fine.  I highly recommend vim version 3.15
-and later.  I have added support for making native languge vi'ing very easy
-(see langmap option). It's by far the most powerful vi (or maybe editor :-)
-I have ever seen.
-
-If some (terminal-based) applications do not work, please direct complaints
-to their authors stating that you would like them to be 8-bit clean.
-
-I will soon release a linux version of an 8-bit clean curses lib and
-versions of some useful programs that work with it (eg ytalk).  Watch the
-HCR archive.
-
-Do not expect programs that are not running within an rxvt window to have greek
-keyboard support. For this, it will be needed to change the Xlib so that it
-supports 4-state FSMs (rather than only 2 - I do not count shift keys or caps
-lock) for keyboard entry (required for greek keyboards).
-
-And something amusing and (maybe) useful: some filesystems (including SunOS
-and Linux filesystems -- haven't checked others) allow names with 8-bit
-characters; so you can create files or directories with names containing
-greek characters!
-
-Enjoy,
-
-Angelo Haritsis <ah@doc.ic.ac.uk>
-
-For more greek related tools/fonts etc, have a look at the
-HELLENIC RESOURCES ARCHIVE (HCR) : ftp://dolphin.doc.ic.ac.uk/pub/greek/
-maintained by the above author.
diff --git a/src/Makefile.in b/src/Makefile.in

index 7cf31f057d07c5e0e7a93e0615af466561c1afee..

index ..46abde3b1f3c7daf556a2ed5948991ff7a6b9fe1 100644

--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.11 2004/02/09 07:11:49 pcg Exp $
+# $Id: Makefile.in,v 1.12 2004/02/22 08:09:36 pcg Exp $
 @MCOMMON@

 LINT = lint -DNARROWPROTO=1 $(XINC) -chapbxz
@@ -24,7 +24,7 @@ DEBUG=-DDEBUG_STRICT @DEBUG@
 first_rule: all
 dummy:

-LIBSRCS = command.C defaultfont.C grkelot.C init.C logging.C \
+LIBSRCS = command.C defaultfont.C init.C logging.C \
 	main.C menubar.C misc.C netdisp.C ptytty.C screen.C scrollbar.C \
 	scrollbar-rxvt.C scrollbar-next.C scrollbar-xterm.C strings.C \
 	xdefaults.C xpm.C encoding.C rxvtcolor.C rxvtstl.C iom.C \
@@ -32,17 +32,17 @@ LIBSRCS = command.C defaultfont.C grkelot.C init.C logging.C \

 SRCS =  rxvt.C $(LIBSRCS)

-HDRS =	command.h defaultfont.h feature.h grkelot.h init.h logging.h \
+HDRS =	command.h defaultfont.h feature.h init.h logging.h \
 	menubar.h netdisp.h protos.h rxvt.h rxvtgrx.h version.h encoding.h \
 	rxvtstl.h iom.h iom_conf.h

 EXTRAHDRS = rxvtlib.h rxvtdaemon.h

-OBJS =	command.o defaultfont.o init.o grkelot.o logging.o \
+OBJS =	command.o defaultfont.o init.o logging.o \
 	main.o menubar.o misc.o netdisp.o ptytty.o screen.o \
 	scrollbar.o scrollbar-next.o scrollbar-rxvt.o scrollbar-xterm.o scrollbar-plain.o \
 	strings.o xdefaults.o xpm.o rxvt.o encoding.o rxvtcolor.o rxvtstl.o iom.o
-LIBOBJS = command.lo defaultfont.lo init.lo grkelot.lo logging.lo \
+LIBOBJS = command.lo defaultfont.lo init.lo logging.lo \
 	main.lo menubar.lo misc.lo netdisp.lo ptytty.lo screen.lo \
 	scrollbar.lo scrollbar-next.lo scrollbar-rxvt.lo scrollbar-xterm.lo scrollbar-plain.lo \
 	strings.lo xdefaults.lo xpm.lo encoding.lo rxvt.lo rxvtcolor.lo rxvtstl.lo iom.lo
@@ -59,13 +59,13 @@ RXVTD_BINNAME=$(DESTDIR)$(bindir)/$(RXVT_BASENAME)d$(EXEEXT)
 RXVTD_VERNAME=$(DESTDIR)$(bindir)/$(RXVT_BASENAME)d-$(VERSION)$(EXEEXT)
 RXVT_OLDNAME=$(DESTDIR)$(bindir)/$(RXVT_BASENAME)-old$(EXEEXT)

-EXTPROS = command.extpro defaultfont.extpro grkelot.extpro \
+EXTPROS = command.extpro defaultfont.extpro \
 	init.extpro logging.extpro main.extpro menubar.extpro misc.extpro \
 	netdisp.extpro ptytty.extpro screen.extpro scrollbar.extpro \
 	scrollbar-rxvt.extpro scrollbar-next.extpro scrollbar-xterm.extpro scrollbar-plain.intpro \
 	strings.extpro xdefaults.extpro xpm.extpro

-INTPROS = command.intpro defaultfont.intpro grkelot.intpro \
+INTPROS = command.intpro defaultfont.intpro \
 	init.intpro logging.intpro main.intpro menubar.intpro misc.intpro \
 	netdisp.intpro ptytty.intpro screen.intpro scrollbar.intpro \
 	scrollbar-rxvt.intpro scrollbar-next.intpro scrollbar-xterm.intpro scrollbar-plain.intpro \
@@ -193,7 +193,6 @@ rxvtc.o:            rxvtc.C     $(DEPS) rxvtdaemon.h rxvtstl.h

 command.o:          command.C   $(DEPS) command.intpro	command.h version.h
 defaultfont.o:      defaultfont.C $(DEPS) defaultfont.intpro defaultfont.h
-grkelot.o:          grkelot.C   $(DEPS) grkelot.intpro	grkelot.h
 init.o:             init.C      $(DEPS) init.intpro	init.h	defaultfont.h
 logging.o:          logging.C   $(DEPS) logging.intpro	logging.h
 main.o:             main.C      $(DEPS) main.intpro
@@ -217,7 +216,6 @@ iom.o:              iom.C	$(DEPS)	iom.h

 command.lo:         command.C   $(DEPS) command.intpro	command.h version.h
 defaultfont.lo:     defaultfont.C $(DEPS) defaultfont.intpro defaultfont.h encoding.h
-grkelot.lo:         grkelot.C   $(DEPS) grkelot.intpro	grkelot.h
 init.lo:            init.C      $(DEPS) init.intpro	init.h
 logging.lo:         logging.C   $(DEPS) logging.intpro	logging.h
 main.lo:            main.C      $(DEPS) main.intpro
diff --git a/src/command.C b/src/command.C

index 08c6fe629571a72ff197229c440460169efe9df8..

index ..92c332746811c8d6797d07ea68c6860eed20e795 100644

--- a/src/command.C
+++ b/src/command.C
@@ -246,22 +246,6 @@ rxvt_term::lookup_key (XKeyEvent &ev)
           return;
         }
 #endif
-#ifdef GREEK_SUPPORT
-      if (keysym == ks_greekmodeswith)
-        {
-          greek_mode = !greek_mode;
-          if (greek_mode)
-            {
-              xterm_seq (XTerm_title,
-                         (greek_getmode () == GREEK_ELOT928
-                          ? "[Greek: iso]" : "[Greek: ibm]"), CHAR_ST);
-              greek_reset ();
-            }
-          else
-            xterm_seq (XTerm_title, APL_NAME "-" VERSION, CHAR_ST);
-          return;
-        }
-#endif

       if (keysym >= 0xFF00 && keysym <= 0xFFFF)
         {
@@ -639,10 +623,6 @@ rxvt_term::lookup_key (XKeyEvent &ev)
                 *ch |= 0x80;
               meta = 0;
             }
-#endif
-#ifdef GREEK_SUPPORT
-          if (greek_mode)
-            len = greek_xlat (kbuf, len);
 #endif
           /* nil */ ;
         }
@@ -1426,10 +1406,6 @@ rxvt_term::x_cb (XEvent &ev)
             if (menubar_visible () && isMenuBarWindow (ev.xany.window))
               menubar_expose ();
 #endif
-#ifdef RXVT_GRAPHICS
-            Gr_expose (ev.xany.window);
-#endif
-
           }
         break;

@@ -1592,88 +1568,80 @@ rxvt_term::button_press (const XButtonEvent &ev)
    */
   if (ev.window == TermWin.vt)
     {
-#if RXVT_GRAPHICS
-      if (ev.subwindow != None)
-        rxvt_Gr_ButtonPress (ev.x, ev.y);
-      else
-#endif
-
+      clickintime = ev.time - MEvent.time < MULTICLICK_TIME;
+      if (reportmode)
         {
-          clickintime = ev.time - MEvent.time < MULTICLICK_TIME;
-          if (reportmode)
-            {
-              /* mouse report from vt window */
-              /* save the xbutton state (for ButtonRelease) */
-              MEvent.state = ev.state;
+          /* mouse report from vt window */
+          /* save the xbutton state (for ButtonRelease) */
+          MEvent.state = ev.state;
 #ifdef MOUSE_REPORT_DOUBLECLICK
-              if (ev.button == MEvent.button && clickintime)
-                {
-                  /* same button, within alloted time */
-                  MEvent.clicks++;
-                  if (MEvent.clicks > 1)
-                    {
-                      /* only report double clicks */
-                      MEvent.clicks = 2;
-                      mouse_report (ev);
-
-                      /* don't report the release */
-                      MEvent.clicks = 0;
-                      MEvent.button = AnyButton;
-                    }
-                }
-              else
+          if (ev.button == MEvent.button && clickintime)
+            {
+              /* same button, within alloted time */
+              MEvent.clicks++;
+              if (MEvent.clicks > 1)
                 {
-                  /* different button, or time expired */
-                  MEvent.clicks = 1;
-                  MEvent.button = ev.button;
+                  /* only report double clicks */
+                  MEvent.clicks = 2;
                   mouse_report (ev);
+
+                  /* don't report the release */
+                  MEvent.clicks = 0;
+                  MEvent.button = AnyButton;
                 }
-#else
+            }
+          else
+            {
+              /* different button, or time expired */
+              MEvent.clicks = 1;
               MEvent.button = ev.button;
               mouse_report (ev);
+            }
+#else
+          MEvent.button = ev.button;
+          mouse_report (ev);
 #endif				/* MOUSE_REPORT_DOUBLECLICK */

-            }
-          else
+        }
+      else
+        {
+          if (ev.button != MEvent.button)
+            MEvent.clicks = 0;
+          switch (ev.button)
             {
-              if (ev.button != MEvent.button)
-                MEvent.clicks = 0;
-              switch (ev.button)
-                {
-                  case Button1:
-                    /* allow shift+left click to extend selection */
-                    if (ev.state & ShiftMask && ! (PrivateModes & PrivMode_mouse_report))
-                      {
-                        if (MEvent.button == Button1 && clickintime)
-                          selection_rotate (ev.x, ev.y);
-                        else
-                          selection_extend (ev.x, ev.y, 1);
-                      }
+              case Button1:
+                /* allow shift+left click to extend selection */
+                if (ev.state & ShiftMask && ! (PrivateModes & PrivMode_mouse_report))
+                  {
+                    if (MEvent.button == Button1 && clickintime)
+                      selection_rotate (ev.x, ev.y);
                     else
-                      {
-                        if (MEvent.button == Button1 && clickintime)
-                          MEvent.clicks++;
-                        else
-                          MEvent.clicks = 1;
+                      selection_extend (ev.x, ev.y, 1);
+                  }
+                else
+                  {
+                    if (MEvent.button == Button1 && clickintime)
+                      MEvent.clicks++;
+                    else
+                      MEvent.clicks = 1;

-                        selection_click (MEvent.clicks, ev.x, ev.y);
-                      }
+                    selection_click (MEvent.clicks, ev.x, ev.y);
+                  }

-                    MEvent.button = Button1;
-                    break;
+                MEvent.button = Button1;
+                break;

-                  case Button3:
-                    if (MEvent.button == Button3 && clickintime)
-                      selection_rotate (ev.x, ev.y);
-                    else
-                      selection_extend (ev.x, ev.y, 1);
-                    MEvent.button = Button3;
-                    break;
-                }
+              case Button3:
+                if (MEvent.button == Button3 && clickintime)
+                  selection_rotate (ev.x, ev.y);
+                else
+                  selection_extend (ev.x, ev.y, 1);
+                MEvent.button = Button3;
+                break;
             }
-          MEvent.time = ev.time;
-          return;
         }
+      MEvent.time = ev.time;
+      return;
     }

   /*
@@ -1848,93 +1816,85 @@ rxvt_term::button_release (const XButtonEvent &ev)
 #endif
   if (ev.window == TermWin.vt)
     {
-#ifdef RXVT_GRAPHICS
-      if (ev.subwindow != None)
-        rxvt_Gr_ButtonRelease (ev.x, ev.y);
-      else
-#endif
-
+      if (reportmode)
         {
-          if (reportmode)
-            {
-              /* mouse report from vt window */
-              /* don't report release of wheel "buttons" */
-              if (ev.button >= 4)
-                return;
+          /* mouse report from vt window */
+          /* don't report release of wheel "buttons" */
+          if (ev.button >= 4)
+            return;
 #ifdef MOUSE_REPORT_DOUBLECLICK
-              /* only report the release of 'slow' single clicks */
-              if (MEvent.button != AnyButton
-                  && (ev.button != MEvent.button
-                      || (ev.time - MEvent.time
-                          > MULTICLICK_TIME / 2)))
-                {
-                  MEvent.clicks = 0;
-                  MEvent.button = AnyButton;
-                  mouse_report (ev);
-                }
-#else				/* MOUSE_REPORT_DOUBLECLICK */
+          /* only report the release of 'slow' single clicks */
+          if (MEvent.button != AnyButton
+              && (ev.button != MEvent.button
+                  || (ev.time - MEvent.time
+                      > MULTICLICK_TIME / 2)))
+            {
+              MEvent.clicks = 0;
               MEvent.button = AnyButton;
               mouse_report (ev);
-#endif				/* MOUSE_REPORT_DOUBLECLICK */
-              return;
             }
-          /*
-           * dumb hack to compensate for the failure of click-and-drag
-           * when overriding mouse reporting
-           */
-          if (PrivateModes & PrivMode_mouse_report
-              && bypass_keystate
-              && ev.button == Button1 && MEvent.clicks <= 1)
-            selection_extend (ev.x, ev.y, 0);
+#else				/* MOUSE_REPORT_DOUBLECLICK */
+          MEvent.button = AnyButton;
+          mouse_report (ev);
+#endif				/* MOUSE_REPORT_DOUBLECLICK */
+          return;
+        }
+      /*
+       * dumb hack to compensate for the failure of click-and-drag
+       * when overriding mouse reporting
+       */
+      if (PrivateModes & PrivMode_mouse_report
+          && bypass_keystate
+          && ev.button == Button1 && MEvent.clicks <= 1)
+        selection_extend (ev.x, ev.y, 0);

-          switch (ev.button)
-            {
-              case Button1:
-              case Button3:
-                selection_make (ev.time);
-                break;
-              case Button2:
-                selection_request (ev.time, ev.x, ev.y);
-                break;
+      switch (ev.button)
+        {
+          case Button1:
+          case Button3:
+            selection_make (ev.time);
+            break;
+          case Button2:
+            selection_request (ev.time, ev.x, ev.y);
+            break;
 #ifdef MOUSE_WHEEL
-              case Button4:
-              case Button5:
-                {
-                  int i;
-                  page_dirn v;
-
-                  v = (ev.button == Button4) ? UP : DN;
-                  if (ev.state & ShiftMask)
-                    i = 1;
-                  else if ((Options & Opt_mouseWheelScrollPage))
-                    i = TermWin.nrow - 1;
-                  else
-                    i = 5;
+          case Button4:
+          case Button5:
+            {
+              int i;
+              page_dirn v;
+
+              v = (ev.button == Button4) ? UP : DN;
+              if (ev.state & ShiftMask)
+                i = 1;
+              else if ((Options & Opt_mouseWheelScrollPage))
+                i = TermWin.nrow - 1;
+              else
+                i = 5;
 # ifdef MOUSE_SLIP_WHEELING
-                  if (ev.state & ControlMask)
-                    {
-                      mouse_slip_wheel_speed += (v ? -1 : 1);
-                      mouse_slip_wheel_delay = SCROLLBAR_CONTINUOUS_DELAY;
-                    }
+              if (ev.state & ControlMask)
+                {
+                  mouse_slip_wheel_speed += (v ? -1 : 1);
+                  mouse_slip_wheel_delay = SCROLLBAR_CONTINUOUS_DELAY;
+                }
 # endif
 # ifdef JUMP_MOUSE_WHEEL
-                  scr_page (v, i);
+              scr_page (v, i);
+              scr_refresh (SMOOTH_REFRESH);
+              scrollbar_show (1);
+# else
+              while (i--)
+                {
+                  scr_page (v, 1);
                   scr_refresh (SMOOTH_REFRESH);
                   scrollbar_show (1);
-# else
-                  while (i--)
-                    {
-                      scr_page (v, 1);
-                      scr_refresh (SMOOTH_REFRESH);
-                      scrollbar_show (1);
-                    }
+                }
 # endif

-                }
-                break;
+            }
+            break;
 #endif

-            }
         }
     }
 #ifdef MENUBAR
@@ -3474,7 +3434,6 @@ rxvt_term::process_graphics ()
 {
   unsigned char   ch, cmd = cmd_getc ();

-#ifndef RXVT_GRAPHICS
   if (cmd == 'Q')
     {		/* query graphics */
       tt_printf ("\033G0\n");	/* no graphics */
@@ -3484,51 +3443,6 @@ rxvt_term::process_graphics ()
   do
     ch = cmd_getc ();
   while (ch != ':');
-#else
-  unsigned int    nargs;
-  int             args[NGRX_PTS];
-  unsigned char  *text = NULL;
-
-  if (cmd == 'Q')
-    {		/* query graphics */
-      tt_printf ("\033G1\n");	/* yes, graphics (color) */
-      return;
-    }
-  for (nargs = 0; nargs < (sizeof (args) / sizeof (args[0])) - 1;)
-    {
-      int             neg;
-
-      ch = cmd_getc ();
-      neg = (ch == '-');
-      if (neg || ch == '+')
-        ch = cmd_getc ();
-
-      for (args[nargs] = 0; isdigit (ch); ch = cmd_getc ())
-        args[nargs] = args[nargs] * 10 + (ch - '0');
-      if (neg)
-        args[nargs] = -args[nargs];
-
-      nargs++;
-      args[nargs] = 0;
-      if (ch != ';')
-        break;
-    }
-
-  if ((cmd == 'T') && (nargs >= 5))
-    {
-      int             i, len = args[4];
-
-      text = (unsigned char *)rxvt_malloc ((len + 1) * sizeof (char));
-
-      if (text != NULL)
-        {
-          for (i = 0; i < len; i++)
-            text[i] = cmd_getc ();
-          text[len] = '\0';
-        }
-    }
-  Gr_do_graphics (cmd, nargs, args, text);
-#endif
 }
 /*}}} */

diff --git a/src/feature.h b/src/feature.h

index 90d6f7739abc380273a2d4b108e1ea713197b6f1..

index ..a920905c418aef99bfd03c8bb0627ebf21629b0f 100644

--- a/src/feature.h
+++ b/src/feature.h
@@ -209,13 +209,6 @@
 /* #define CTRL_TAB_MAKES_META */
 /* #define MOD4_TAB_MAKES_META */

-/*
- * default mode switch when greek keyboard is enabled (i.e. GREEK_SUPPORT)
- */
-#ifndef GREEK_KEYBOARD_MODESWITCH
-# define GREEK_KEYBOARD_MODESWITCH XK_Mode_switch
-#endif
-
 /*--------------------------------MOUSE---------------------------------*/
 /*
  * Disable sending escape sequences (up, down, page up/down)
diff --git a/src/grkelot.C b/src/grkelot.C
deleted file mode 100644
index e26ec26d4caad105ccee566c09f7bcda3585f978..0000000000000000000000000000000000000000
--- a/src/grkelot.C
+++ /dev/null
@@ -1,427 +0,0 @@
-/*---------------------------------*C*--------------------------------------*
- * File:      grkelot.c
- *--------------------------------------------------------------------------*
- *
- * All portions of code are copyright by their respective author/s.
- * Copyright (c) 1994,1995 Angelo Haritsis. All rights reserved.
- *				- original version
- * Copyright (c) 1997,1998 Oezger Kesim <kesim@math.fu-berlin.de>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *--------------------------------------------------------------------------*
- * Synopsis:    string -> greek ELOT928 or IBM437 string;
- *              4-state FSM implementation.
- *
- * System:      Any (ANSI C)
- *
- * This is code derived from a more generic key remapper written by the same
- * author and used in other environments. It was not written only
- * for greek kbd bindings. An extension to other languages is easy
- * (well don't know how the FSM lends itself to Far East languages).
- *
- * The FSM can have MAX_STATES states (change it for more).
- * Each state contains:
- * 1.  many tranlsation tables (registered via kstate_add_xlat ())
- * 2.  many switch codes for transition to other states (registered via
- *      kstate_add_switcher ()) : limit is static now: MAX_SWITCHER
- * 3.   life: the number of xlations allowed in a state (0 = unlimited)
- *
- * Format of tranlation strings:
- *      <first>-<last>:n1,n2,n3,...
- * Format of switcher string:
- *      A<char>:<state_no>
- * (other switchers apart from A=ascii can be supported; not in this context)
- * Format of life string:
- *      L<N>            (N=0,1,...)
- *-------------------------------------------------------------------------*
- * Written by Angelo Haritis.
- *
- * Redistribution and use in source and binary forms are permitted provided
- * that the above copyright notice and this paragraph are duplicated in all
- * such forms and that any documentation, advertising materials, and other
- * materials related to such distribution and use acknowledge that the
- * software was developed by Angelo Haritsis.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * NB: DO NOT ALTER! THIS CODE IS USED IN MANY PLATFORMS!!!
- *
- * TODO: make it more dynamic (linked lists is an idea but slower)
- */
-
-#define RXVT			/* define for use by rxvt */
-
-#ifdef RXVT
-#include "../config.h"		/* NECESSARY */
-#include "rxvt.h"		/* NECESSARY */
-#include "grkelot.intpro"	/* PROTOS for internal routines */
-#endif				/* RXVT */
-
-#ifdef GREEK_SUPPORT
-#include "grkelot.h"
-#include <stdlib.h>
-#include <string.h>
-
-/* --- Macros, Types --------- */
-#define MAX_STATES	4	/* max # states for the FSM */
-#define MAX_SWITCHER	2U	/* per state */
-#define MAX_VAL 	256	/* for temp allocation */
-
-typedef unsigned char u_char;
-typedef unsigned int u_int;
-typedef unsigned long u_long;
-
-typedef struct s_xlat
-  {
-    u_int           first, last;
-    u_int          *pval;	/* array of translated values */
-  }
-K_XLAT;
-
-typedef struct s_switch
-  {
-    u_char          type;	/* Ascii, Virtual, Scan */
-    u_int           code;
-    u_char          nextstate;
-    u_char          on;		/* current state of key: 0 = off */
-  }
-K_SWITCH;
-
-typedef struct s_state
-  {
-    u_int           num_xlat;	/* number of translations */
-    K_XLAT         *xlat;	/* State translations ((dynamic - realloc'ed) */
-    u_int           num_switcher;	/* number of switcher keys */
-    K_SWITCH        switcher[MAX_SWITCHER];	/* switcher keys to other states */
-    u_char          life;	/* 0 = until switched by key */
-    u_char          prev_state;	/* filled when jumped to a new state */
-  }
-K_STATE;
-
-/* type for each one of the different greek standards (xlat types) */
-typedef struct s_xlat_type
-  {
-    char           *plain;
-    char           *accent;
-    char           *accent_xtra;
-    char           *umlaut;
-    char           *acc_uml;
-  }
-XLAT_TYPE;
-
-/* --- Local Data ------------ */
-static K_STATE  State[MAX_STATES];
-
-/* Current State */
-static u_char   nStateNow = 0;
-static K_STATE *pStateNow = &State[0];
-static int      GreekMode = GREEK_ELOT928;
-
-/*
- * The following are hard-coded for now. The idea is that such strings would
- * be read from a config file making it possible to change language/encodings
- * more flexibly.
- */
-/* elot 928 xlations */
-static char     elot_xlat_plain[] = "65-122:193,194,216,196,197,214,195,199,201,206,202,203,204,205,207,208,81,209,211,212,200,217,87,215,213,198,91,92,93,94,95,96,225,226,248,228,229,246,227,231,233,238,234,235,236,237,239,240,113,241,243,244,232,249,242,247,245,230";
-
-/* c and s give copyright and section sign */
-static char     elot_xlat_acc[] = "65-122:182,194,216,196,184,214,195,185,186,206,202,203,204,205,188,208,81,209,211,212,200,191,87,215,190,198,91,92,93,94,95,96,220,226," /*248 */ "169,228,221,246,227,222,223,238,234,235,236,237,252,240,113,241," /*243 */ "167,244,232,254,242,247,253,230";
-static char     elot_xlat_acc_xtra[] = "46-62:183,47,48,49,50,51,52,53,54,55,56,57,58,59,171,61,187";	/* anw teleia, quotes */
-static char     elot_xlat_uml[] = "65-122:193,194,216,196,197,214,195,199,218,206,202,203,204,205,207,208,81,209,211,212,200,217,87,215,219,198,91,92,93,94,95,96,225,226,248,228,229,246,227,231,250,238,234,235,236,237,239,240,113,241,243,244,232,249,242,247,251,230";
-static char     elot_xlat_umacc[] = "65-122:193,194,216,196,197,214,195,199,201,206,202,203,204,205,207,208,81,209,211,212,200,217,87,215,213,198,91,92,93,94,95,96,225,226,248,228,229,246,227,231,192,238,234,235,236,237,239,240,113,241,243,244,232,249,242,247,224,230";
-
-/* ibm 437 xlations */
-static char     i437_xlat_plain[] = "65-122:128,129,150,131,132,148,130,134,136,141,137,138,139,140,142,143,81,144,145,146,135,151,87,149,147,133,91,92,93,94,95,96,152,153,175,155,156,173,154,158,160,165,161,162,163,164,166,167,113,168,169,171,159,224,170,174,172,157";
-static char     i437_xlat_acc[] = "65-122:234,129,150,131,235,148,130,236,237,141,137,138,139,140,238,143,81,144,145,146,135,240,87,149,239,133,91,92,93,94,95,96,225,153,175,155,226,173,154,227,229,165,161,162,163,164,230,167,113,168,169,171,159,233,170,174,231,157";
-static char     i437_xlat_acc_xtra[] = "46-46:250";	/* anw teleia */
-static char     i437_xlat_uml[] = "65-122:128,129,150,131,132,148,130,134,136,141,137,138,139,140,142,143,81,144,145,146,135,151,87,149,147,133,91,92,93,94,95,96,152,153,175,155,156,173,154,158,228,165,161,162,163,164,166,167,113,168,169,171,159,224,170,174,232,157";
-static char     i437_xlat_umacc[] = "65-122:128,129,150,131,132,148,130,134,136,141,137,138,139,140,142,143,81,144,145,146,135,151,87,149,147,133,91,92,93,94,95,96,152,153,175,155,156,173,154,158,42,165,161,162,163,164,166,167,113,168,169,171,159,224,170,174,42,157";
-
-/*
- * currently ELOT928 and IBM437 are supported; easy to include others
- * (not recommended: stick to just these 2 if not only the ELOT one)
- */
-static XLAT_TYPE xlat_type[] =
-  {
-    {elot_xlat_plain, elot_xlat_acc, elot_xlat_acc_xtra, elot_xlat_uml, elot_xlat_umacc},
-    {i437_xlat_plain, i437_xlat_acc, i437_xlat_acc_xtra, i437_xlat_uml, i437_xlat_umacc},
-  };
-
-/* the current trasnaltion type */
-static XLAT_TYPE *xlat_now = &xlat_type[GREEK_ELOT928];
-
-#define NUM_XLAT_TYPES	(sizeof(xlat_type) / sizeof(xlat_type[0]))
-
-static void     kstate_add_xlat (char *str);
-static void     kstate_add_switcher (char *str);
-static void     kstate_set_life (char *str);
-
-/* --- Functions ------------- */
-void
-kstate_setcurr (int stateno)
-{
-  u_char          prev_state;
-
-  if ((u_int) stateno > (u_int) MAX_STATES)
-    return;
-  if (pStateNow->life == 1)
-    prev_state = pStateNow->prev_state;
-  else
-    prev_state = nStateNow;
-  pStateNow = &State[nStateNow = stateno];
-  pStateNow->prev_state = prev_state;
-}
-
-void
-kstate_init (void)
-{
-  pStateNow->num_xlat = pStateNow->num_switcher = pStateNow->life = pStateNow->prev_state = 0;
-  pStateNow->xlat = NULL;
-}
-
-void
-kstate_end (void)
-{
-  int             i;
-
-  for (i = 0; i < pStateNow->num_xlat; i++)
-    free (pStateNow->xlat[i].pval);
-  if (pStateNow->num_xlat > 0)
-    free (pStateNow->xlat);
-}
-
-/*
- * Hard coded ELOT-928 translations. Could read these from an rc-type file
- * to support other remappers.
- */
-void
-kstate_init_all (int greek_mode)
-{
-  /* the translation tables for the 4 FSM states for ELOT-928 mappings */
-  int             i;
-
-  for (i = 0; i < MAX_STATES; i++)
-    {
-      kstate_setcurr (i);
-      kstate_init ();
-    }
-  if (greek_mode < 0 || greek_mode >= NUM_XLAT_TYPES)		/* avoid death */
-    greek_mode = GREEK_ELOT928;
-  xlat_now = &xlat_type[greek_mode];
-  kstate_setcurr (0);
-  kstate_add_xlat (xlat_now->plain);
-  kstate_add_switcher ("A;:1");
-  kstate_add_switcher ("A::2");
-  kstate_set_life ("L0");
-
-  kstate_setcurr (1);
-  kstate_add_xlat (xlat_now->accent);
-  kstate_add_xlat (xlat_now->accent_xtra);
-  kstate_add_switcher ("A::3");
-  kstate_set_life ("L1");
-
-  kstate_setcurr (2);
-  kstate_add_xlat (xlat_now->umlaut);
-  kstate_add_switcher ("A;:3");
-  kstate_set_life ("L1");
-
-  kstate_setcurr (3);
-  kstate_add_xlat (xlat_now->acc_uml);
-  kstate_set_life ("L1");
-}
-
-void
-kstate_end_all (void)
-{
-  int             i;
-
-  for (i = 0; i < MAX_STATES; i++)
-    {
-      kstate_setcurr (i);
-      kstate_end ();
-    }
-  kstate_setcurr (0);
-}
-
-/*
- * reset FSM
- */
-void
-kstate_reset (void)
-{
-  kstate_setcurr (0);
-}
-
-void
-kstate_add_xlat (char *str)
-{
-  K_XLAT         *xlat;
-  u_int          *pval_tmp;
-  char           *sval;
-  int             i;
-
-  if (str == NULL)
-    return;
-  /* add a new xlat table in state */
-  if (pStateNow->num_xlat == 0)
-    {
-      pStateNow->xlat = malloc (sizeof (K_XLAT));
-    }
-  else			/* prefer contiguous data, realloc */
-    pStateNow->xlat = realloc (pStateNow->xlat, (pStateNow->num_xlat + 1) * sizeof (K_XLAT));
-  xlat = &pStateNow->xlat[pStateNow->num_xlat];
-  /* parse str and derive first, last, values */
-  xlat->first = (u_int) atoi (strtok (str, "-"));
-  xlat->last = (u_int) atoi (strtok (NULL, ":"));
-  i = 0;
-  pval_tmp = calloc (MAX_VAL, sizeof (K_XLAT));
-  while ((sval = strtok (NULL, ",")) != NULL)
-    pval_tmp[i++] = (u_int) (atoi (sval));
-  xlat->pval = calloc (i, sizeof (K_XLAT));
-  if (xlat->pval != NULL)
-    memcpy (xlat->pval, pval_tmp, i * sizeof (u_int));
-  free (pval_tmp);
-  pStateNow->num_xlat++;
-}
-
-/*
- * Ascii only for this implementation
- */
-void
-kstate_add_switcher (char *str)
-{
-  K_SWITCH       *switcher;
-
-  if (str == NULL)
-    return;
-  if (pStateNow->num_switcher >= MAX_SWITCHER)
-    return;
-  switcher = &pStateNow->switcher[pStateNow->num_switcher];
-  switch (switcher->type = str[0])
-    {
-      case 'A':			/* ascii eg: A;:2 */
-        switcher->code = str[1];
-        switcher->nextstate = atoi (&str[3]);
-        break;
-    }
-  switcher->on = 0;
-  pStateNow->num_switcher++;
-}
-
-/* L1 or L0 */
-void
-kstate_set_life (char *str)
-{
-  pStateNow->life = atoi (&str[1]);
-}
-
-unsigned int
-kstate_cxlat (unsigned int c)
-{
-  int             i;
-
-  /* check for ascii switcher */
-  for (i = 0; i < pStateNow->num_switcher; i++)
-    if (pStateNow->switcher[i].type == 'A' &&	/* only ascii here */
-        c == pStateNow->switcher[i].code)
-      {
-        kstate_setcurr (pStateNow->switcher[i].nextstate);
-        pStateNow->switcher[i].on = 1;
-        return ((unsigned int)-1);
-      }
-  /* do translation */
-  for (i = 0; i < pStateNow->num_xlat; i++)
-    if (c >= pStateNow->xlat[i].first && c <= pStateNow->xlat[i].last)
-      {
-        c = pStateNow->xlat[i].pval[c - pStateNow->xlat[i].first];
-        break;
-      }
-  /* switch back to previous state if life of current is 1 */
-  if (pStateNow->life == 1)
-    kstate_setcurr (pStateNow->prev_state);
-  return (c);
-}
-
-#ifdef RXVT
-void
-greek_init (void)
-{
-  kstate_init_all (GreekMode);
-}
-
-void
-greek_end (void)
-{
-  kstate_end_all ();
-}
-
-void
-greek_reset (void)
-{
-  kstate_reset ();
-}
-
-void
-greek_setmode (int greek_mode)
-{
-  GreekMode = greek_mode;
-}
-
-int
-greek_getmode (void)
-{
-  return (GreekMode);
-}
-
-/*
- * xlate a given string in-place - return new string length
- */
-int
-greek_xlat (char *s, int num_chars)
-{
-  int             i, count;
-  unsigned int    c;
-
-  for (i = 0, count = 0; i < num_chars; i++)
-    {
-      c = kstate_cxlat ((unsigned int)s[i]);
-      if (c != -1)
-        s[count++] = (char)c;
-    }
-  s[count] = '\0';
-  return (count);
-
-}
-
-#ifdef TEST
-int
-main (void)
-{
-  /*char text[] = "abcdef;aGDZXC"; */
-  char            text[] = "abcdef;a:ibgdezhuiklmnjoprstyfxcv";
-
-  kstate_init_all (GREEK_ELOT928);
-  printf ("text: %s\n", text);
-  greek_xlat (text, strlen (text));
-  printf ("xlat'ed text: %s\n", text);
-  kstate_end_all ();
-  return 0;
-}
-#endif
-#endif				/* RXVT */
-
-#endif				/* GREEK_SUPPORT */
diff --git a/src/grkelot.h b/src/grkelot.h
deleted file mode 100644
index a20e0f48f611013f83c8562da331f4a5d73cd34b..0000000000000000000000000000000000000000
--- a/src/grkelot.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * File:	grkelot.h
- *
- * Synopsis:	string -> greek ELOT928 string; 4-state FSM.
- *
- * Copyright (c) 1994 Angelo Haritsis. All rights reserved.
- * Copyright (c) 1997,1998 Oezguer Kesim <kesim@math.fu-berlin.de>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef GRKELOT_H
-#define GRKELOT_H
-
-#define GREEK_ELOT928	0
-#define GREEK_IBM437	1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-   extern void	greek_init (void);
-   extern void	greek_end (void);
-   extern void	greek_reset (void);
-   extern void  greek_setmode (int greek_mode);
-   extern int   greek_getmode (void);
-   extern int	greek_xlat (char *s, int num_chars);
-#ifdef __cplusplus
-}
-#endif
-#endif	/* _GRKELOT_H */
diff --git a/src/init.C b/src/init.C

index bd13379f5ec326b8bbf59a44166d381ecd2909a9..

index ..7f2926176d3d65c124dd4e79c67db3af4f8c8055 100644

--- a/src/init.C
+++ b/src/init.C
@@ -401,10 +401,6 @@ rxvt_term::init_vars ()
   ks_smallfont = XK_less;
 #endif

-#ifdef GREEK_SUPPORT
-  ks_greekmodeswith = GREEK_KEYBOARD_MODESWITCH;
-#endif
-
   refresh_limit = 1;
   refresh_type = SLOW_REFRESH;
   prev_nrow = prev_ncol = 0;
@@ -903,10 +899,6 @@ rxvt_term::init_command (const char *const *argv)
       SavedModes |= PrivMode_menuBar;
     }

-#ifdef GREEK_SUPPORT
-  greek_init ();
-#endif
-
 #ifdef CURSOR_BLINK
   if (Options & Opt_cursorBlink)
     (void)gettimeofday (&lastcursorchange, NULL);
diff --git a/src/main.C b/src/main.C

index c4638d9ef72aa2eed1aabfbaf6db0c6ad3477827..

index ..28f96b278c2fe626672266215c70b03ee1a6c0aa 100644

--- a/src/main.C
+++ b/src/main.C
@@ -264,9 +264,6 @@ rxvt_term::init (int argc, const char *const *argv)
   init_xlocale ();

   scr_reset ();         /* initialize screen */
-#ifdef RXVT_GRAPHICS
-  Gr_reset ();          /* reset graphics */
-#endif

 #if 0
   XSynchronize (display->display, True);
@@ -997,11 +994,6 @@ rxvt_term::resize_all_windows (unsigned int width, unsigned int height, int igno
       XMoveResizeWindow (display->display, TermWin.vt, window_vt_x,
                          window_vt_y, TermWin_TotalWidth (),
                          TermWin_TotalHeight ());
-#ifdef RXVT_GRAPHICS
-      if (old_height)
-        Gr_Resize (old_width - szHint.base_width,
-                   old_height - szHint.base_height);
-#endif
       scr_clear ();
 #ifdef XPM_BACKGROUND
       resize_pixmap ();
diff --git a/src/protos.h b/src/protos.h

index a740635fc05f0a822c502f44a4b163bc1adf618c..

index ..1b263cb357a19b795fb7463d487a0b80c7a69fcb 100644

--- a/src/protos.h
+++ b/src/protos.h
@@ -3,13 +3,6 @@

 #include "defaultfont.extpro"

-#ifdef RXVT_GRAPHICS
-# include "graphics.extpro"
-#endif
-#ifdef GREEK_SUPPORT
-# include "grkelot.extpro"
-#endif
-
 #include "init.extpro"

 #ifdef UTMP_SUPPORT
diff --git a/src/rxvt.h b/src/rxvt.h

index 67356dac67de8f7b382a952f262e0c7a13695579..

index ..1d433350c0010dd30a2678239cd65b460a40a58e 100644

--- a/src/rxvt.h
+++ b/src/rxvt.h
@@ -51,9 +51,6 @@ typedef struct {
 } ttymode_t;
 #endif

-#ifdef GREEK_SUPPORT
-# include "grkelot.h"
-#endif
 #ifdef XPM_BACKGROUND
 # ifdef XPM_INC_X11
 #  include <X11/xpm.h>
@@ -474,10 +471,6 @@ enum {
 #endif
 #if (MENUBAR_MAX)
   Rs_menu,
-#endif
-#ifdef GREEK_SUPPORT
-  Rs_greek_keyboard,
-  Rs_greektoggle_key,
 #endif
   Rs_loginShell,
   Rs_jumpScroll,
@@ -868,16 +861,10 @@ struct rxvt_term : rxvt_vars {
                   selection_wait,
                   selection_type;
 /* ---------- */
-#ifdef GREEK_SUPPORT
-  short           greek_mode;         /* greek keyboard mode               */
-#endif
   short           rvideo;
   int16_t         num_scr;    /* screen: number lines scrolled             */
   unsigned int    prev_ncol,  /* screen: previous number of columns        */
                   prev_nrow;  /* screen: previous number of rows           */
-#ifdef RXVT_GRAPHICS
-  uint16_t        gr_prev_start;
-#endif
 /* ---------- */
   rend_t          rstyle;
 /* ---------- */
@@ -989,9 +976,6 @@ struct rxvt_term : rxvt_vars {
 #if defined (HOTKEY_CTRL) || defined (HOTKEY_META)
   KeySym          ks_bigfont, ks_smallfont;
 #endif
-#ifdef GREEK_SUPPORT
-  KeySym          ks_greekmodeswith;
-#endif
 #ifdef USE_XIM
   rxvt_xim       *input_method;
   XIC             Input_Context;
@@ -1000,10 +984,6 @@ struct rxvt_term : rxvt_vars {
 #endif
   struct mouse_event MEvent;
   XComposeStatus  compose;
-#ifdef RXVT_GRAPHICS
-  int             graphics_up;
-  struct grwin_t *gr_root;
-#endif
   ttymode_t       tio;
 #ifdef UTMP_SUPPORT
 # ifdef HAVE_STRUCT_UTMP
@@ -1022,10 +1002,6 @@ struct rxvt_term : rxvt_vars {
   bgPixmap_t      bgPixmap;
   XpmAttributes   xpmAttr;    /* originally loaded pixmap and its scaling */
 #endif
-#ifdef MULTICHAR_SET
-  int             oldcursormulti;
-  void            (*multichar_decode) (unsigned char *str, int len);
-#endif
 #ifndef RESET_TTY_TO_COMMON_DEFAULTS
   struct stat     ttyfd_stat; /* original status of our tty */
 #endif
@@ -1037,9 +1013,6 @@ struct rxvt_term : rxvt_vars {
   bar_t           BarList;
 # endif                         /* (MENUBAR_MAX > 1) */
 #endif
-#ifdef RXVT_GRAPHICS
-  Window          gr_last_id;
-#endif
 #ifdef CURSOR_BLINK
   struct timeval  lastcursorchange;
 #endif
diff --git a/src/screen.C b/src/screen.C

index f0d23f869f72954c29676296b110f27cafcaf509..

index ..8b4763a92d92f0cd68a9694abe9fd15c97bcbfa9 100644

--- a/src/screen.C
+++ b/src/screen.C
@@ -487,9 +487,6 @@ rxvt_term::scr_poweron ()

   scr_clear ();
   scr_refresh (SLOW_REFRESH);
-#ifdef RXVT_GRAPHICS
-  Gr_reset ();
-#endif
 }

 /* ------------------------------------------------------------------------- *
@@ -595,26 +592,9 @@ rxvt_term::scr_change_screen (int scrn)
   SWAP_IT (screen.flags, swap.flags, int);
   screen.flags |= Screen_VisibleCursor;
   swap.flags |= Screen_VisibleCursor;
-
-# ifdef RXVT_GRAPHICS
-
-  if (Gr_Displayed ())
-    {
-      Gr_scroll (0);
-      Gr_ChangeScreen ();
-    }
-# endif
 #else
 # ifdef SCROLL_ON_NO_SECONDARY
-#  ifdef RXVT_GRAPHICS
-  if (Gr_Displayed ())
-    Gr_ClearScreen ();
-#  endif
-  if (current_screen == PRIMARY
-#  ifdef RXVT_GRAPHICS
-      && !Gr_Displayed ()
-#  endif
-     )
+  if (current_screen == PRIMARY)
     scr_scroll_text (0, (prev_nrow - 1), prev_nrow, 0);
 # endif
 #endif
@@ -774,11 +754,6 @@ rxvt_term::scr_scroll_text (int row1, int row2, int count, int spec)
                               (unsigned int)j, rstyle);
     }

-#ifdef RXVT_GRAPHICS
-  if (Gr_Displayed ())
-    Gr_scroll (count);
-#endif
-
   return count;
 }

@@ -1077,10 +1052,6 @@ rxvt_term::scr_gotorc (int row, int col, int relative)
 {
   want_refresh = 1;
   ZERO_SCROLLBACK ();
-#ifdef RXVT_GRAPHICS
-  if (Gr_Displayed ())
-    Gr_scroll (0);
-#endif

   D_SCREEN ((stderr, "rxvt_scr_gotorc (r:%s%d,c:%s%d): from (r:%d,c:%d)", (relative & R_RELATIVE ? "+" : ""), row, (relative & C_RELATIVE ? "+" : ""), col, screen.cur.row, screen.cur.col));

@@ -1138,11 +1109,6 @@ rxvt_term::scr_index (enum page_dirn direction)

   ZERO_SCROLLBACK ();

-#ifdef RXVT_GRAPHICS
-  if (Gr_Displayed ())
-    Gr_scroll (0);
-#endif
-
   screen.flags &= ~Screen_WrapNext;
   if ((screen.cur.row == screen.bscroll && direction == UP)
       || (screen.cur.row == screen.tscroll && direction == DN))
@@ -1170,11 +1136,6 @@ rxvt_term::scr_erase_line (int mode)
   D_SCREEN ((stderr, "rxvt_scr_erase_line (%d) at screen row: %d", mode, screen.cur.row));
   ZERO_SCROLLBACK ();

-#ifdef RXVT_GRAPHICS
-  if (Gr_Displayed ())
-    Gr_scroll (0);
-#endif
-
   selection_check (1);

   screen.flags &= ~Screen_WrapNext;
@@ -1252,9 +1213,6 @@ rxvt_term::scr_erase_screen (int mode)
         break;
       case 2:                     /* erase whole screen */
         selection_check (3);
-#ifdef RXVT_GRAPHICS
-        Gr_ClearScreen ();
-#endif
         row = 0;
         num = TermWin.nrow;
         break;
@@ -1333,11 +1291,6 @@ rxvt_term::scr_insdel_lines (int count, int insdel)

   ZERO_SCROLLBACK ();

-#ifdef RXVT_GRAPHICS
-  if (Gr_Displayed ())
-    Gr_scroll (0);
-#endif
-
   selection_check (1);

   if (screen.cur.row > screen.bscroll)
@@ -1372,11 +1325,6 @@ rxvt_term::scr_insdel_chars (int count, int insdel)
   want_refresh = 1;
   ZERO_SCROLLBACK ();

-#ifdef RXVT_GRAPHICS
-  if (Gr_Displayed ())
-    Gr_scroll (0);
-#endif
-
   if (count <= 0)
     return;

@@ -1810,10 +1758,6 @@ rxvt_term::scr_changeview (uint16_t oldviewstart)
   if (TermWin.view_start != oldviewstart)
     {
       want_refresh = 1;
-#ifdef RXVT_GRAPHICS
-      if (Gr_Displayed ())
-        Gr_scroll (0);
-#endif
       num_scr -= (TermWin.view_start - oldviewstart);
     }
   return (int) (TermWin.view_start - oldviewstart);
diff --git a/src/xdefaults.C b/src/xdefaults.C

index 126f10623ececb7ff5f5f6fa066e55f20a489324..

index ..3d4a769df8e4ba55c15798adcb483afca2010d67 100644

--- a/src/xdefaults.C
+++ b/src/xdefaults.C
@@ -1,7 +1,7 @@
 /*--------------------------------*-C-*---------------------------------*
  * File:	xdefaults.c
  *----------------------------------------------------------------------*
- * $Id: xdefaults.C,v 1.11 2004/02/13 12:16:21 pcg Exp $
+ * $Id: xdefaults.C,v 1.12 2004/02/22 08:09:38 pcg Exp $
  *
  * All portions of code are copyright by their respective author/s.
  * Copyright (c) 1994      Robert Nation <nation@rocket.sanders.lockheed.com>
@@ -199,11 +199,6 @@ optList[] = {
               STRG (Rs_imLocale, "imLocale", "imlocale", "string", "locale to use for input method"),
 #endif
 #endif				/* USE_XIM */
-#ifdef GREEK_SUPPORT
-              STRG (Rs_greek_keyboard, "greek_keyboard", "grk", "mode",
-                   "greek keyboard mapping; mode = iso | ibm"),
-              RSTRG (Rs_greektoggle_key, "greektoggle_key", "keysym"),
-#endif
               STRG (Rs_name, NULL, "name", "string",
                    "client instance, icon, and title strings"),
               STRG (Rs_title, "title", "title", "string", "title name for window"),
@@ -325,12 +320,6 @@ static const char optionsstring[] = "Options: "
 # endif
 #endif
                                     ","
-#if defined(GREEK_SUPPORT)
-                                    "Greek,"
-#endif
-#if defined(RXVT_GRAPHICS)
-                                    "graphics,"
-#endif
 #if defined(NO_BACKSPACE_KEY)
                                     "no_backspace,"
 #endif
@@ -998,40 +987,16 @@ rxvt_term::extract_resources (Display *display __attribute__ ((unused)), const c
    * even without resources, at least do this setup for command-line
    * options and command-line long options
    */
-#ifdef MULTICHAR_SET
-  set_multichar_encoding (rs[Rs_multichar_encoding]);
-#endif
-#ifdef GREEK_SUPPORT
-  /* this could be a function in grkelot.c */
-  /* void set_greek_keyboard (const char * str); */
-  if (rs[Rs_greek_keyboard])
-    {
-      if (!STRCMP (rs[Rs_greek_keyboard], "iso"))
-        greek_setmode (GREEK_ELOT928);	/* former -grk9 */
-      else if (!STRCMP (rs[Rs_greek_keyboard], "ibm"))
-        greek_setmode (GREEK_IBM437);	/* former -grk4 */
-    }
-  {
-    KeySym          sym;
-
-    if (rs[Rs_greektoggle_key]
-        && ((sym = XStringToKeysym (rs[Rs_greektoggle_key])) != 0))
-      ks_greekmodeswith = sym;
-  }
-#endif				/* GREEK_SUPPORT */

 #if defined (HOTKEY_CTRL) || defined (HOTKEY_META)
-
-  {
-    KeySym          sym;
-
-    if (rs[Rs_bigfont_key]
-        && ((sym = XStringToKeysym (rs[Rs_bigfont_key])) != 0))
-      ks_bigfont = sym;
-    if (rs[Rs_smallfont_key]
-        && ((sym = XStringToKeysym (rs[Rs_smallfont_key])) != 0))
-      ks_smallfont = sym;
-  }
+  KeySym          sym;
+
+  if (rs[Rs_bigfont_key]
+      && ((sym = XStringToKeysym (rs[Rs_bigfont_key])) != 0))
+    ks_bigfont = sym;
+  if (rs[Rs_smallfont_key]
+      && ((sym = XStringToKeysym (rs[Rs_smallfont_key])) != 0))
+    ks_smallfont = sym;
 #endif
 }

-----END OF PAGE-----

-- Response ended

-- Page fetched on Sun Jun 2 13:49:30 2024