]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
slang: Update to 2.2.4
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 14 Aug 2014 10:54:10 +0000 (12:54 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 14 Aug 2014 10:54:10 +0000 (12:54 +0200)
config/rootfiles/common/slang
lfs/slang
src/patches/slang-1.4.5-utf8-segv.patch [deleted file]
src/patches/slang-debian-utf8.patch [deleted file]
src/patches/slang-utf8-acs.patch [deleted file]
src/patches/slang-utf8-fix.patch [deleted file]

index c6afc2c79758a2812440c8576b6cc01be0645466..0ebef78c70cfcd4c3d9b5af57d1176bda54e290f 100644 (file)
-#usr/doc
-#usr/doc/slang
-#usr/doc/slang/COPYING
-#usr/doc/slang/COPYING.ART
-#usr/doc/slang/COPYING.GPL
-#usr/doc/slang/COPYRIGHT
-#usr/doc/slang/changes.txt
-#usr/doc/slang/cref.txt
-#usr/doc/slang/cslang.txt
-#usr/doc/slang/slang.txt
-#usr/doc/slang/slangdoc.html
-#usr/doc/slang/slangfun.txt
+#etc/slsh.rc
+#usr/bin/slsh
 #usr/include/slang.h
 #usr/include/slcurses.h
-#usr/lib/libslang-utf8.a
-usr/lib/libslang-utf8.so
-usr/lib/libslang-utf8.so.1
-usr/lib/libslang-utf8.so.1.4.9
-#usr/lib/libslang.a
-usr/lib/libslang.so
+#usr/lib/libslang.so
+usr/lib/libslang.so.2
+usr/lib/libslang.so.2.2.4
+#usr/lib/pkgconfig/slang.pc
+#usr/lib/slang
+#usr/lib/slang/v2
+#usr/lib/slang/v2/modules
+usr/lib/slang/v2/modules/csv-module.so
+usr/lib/slang/v2/modules/fcntl-module.so
+usr/lib/slang/v2/modules/fork-module.so
+usr/lib/slang/v2/modules/iconv-module.so
+usr/lib/slang/v2/modules/pcre-module.so
+usr/lib/slang/v2/modules/png-module.so
+usr/lib/slang/v2/modules/rand-module.so
+usr/lib/slang/v2/modules/select-module.so
+usr/lib/slang/v2/modules/slsmg-module.so
+usr/lib/slang/v2/modules/socket-module.so
+usr/lib/slang/v2/modules/sysconf-module.so
+usr/lib/slang/v2/modules/termios-module.so
+usr/lib/slang/v2/modules/varray-module.so
+usr/lib/slang/v2/modules/zlib-module.so
+#usr/share/doc/slang
+#usr/share/doc/slang/v2
+#usr/share/doc/slang/v2/COPYING
+#usr/share/doc/slang/v2/changes.txt
+#usr/share/doc/slang/v2/cref.txt
+#usr/share/doc/slang/v2/cslang.txt
+#usr/share/doc/slang/v2/slang.txt
+#usr/share/doc/slang/v2/slangdoc.html
+#usr/share/doc/slang/v2/slangfun.txt
+#usr/share/doc/slsh
+#usr/share/doc/slsh/html
+#usr/share/doc/slsh/html/slshfun-1.html
+#usr/share/doc/slsh/html/slshfun-2.html
+#usr/share/doc/slsh/html/slshfun-3.html
+#usr/share/doc/slsh/html/slshfun-4.html
+#usr/share/doc/slsh/html/slshfun-5.html
+#usr/share/doc/slsh/html/slshfun-6.html
+#usr/share/doc/slsh/html/slshfun-7.html
+#usr/share/doc/slsh/html/slshfun-8.html
+#usr/share/doc/slsh/html/slshfun-9.html
+#usr/share/doc/slsh/html/slshfun.html
+#usr/share/man/man1/slsh.1
+#usr/share/slsh
+#usr/share/slsh/arrayfuns.sl
+#usr/share/slsh/autoload.sl
+#usr/share/slsh/cmaps
+#usr/share/slsh/cmaps/cool.map
+#usr/share/slsh/cmaps/coolwarm.map
+#usr/share/slsh/cmaps/copper.map
+#usr/share/slsh/cmaps/drywet.map
+#usr/share/slsh/cmaps/ds9b.map
+#usr/share/slsh/cmaps/ds9sls.map
+#usr/share/slsh/cmaps/gebco.map
+#usr/share/slsh/cmaps/globe.map
+#usr/share/slsh/cmaps/gray.map
+#usr/share/slsh/cmaps/haxby.map
+#usr/share/slsh/cmaps/hot.map
+#usr/share/slsh/cmaps/jet.map
+#usr/share/slsh/cmaps/no_green.map
+#usr/share/slsh/cmaps/ocean.map
+#usr/share/slsh/cmaps/polar.map
+#usr/share/slsh/cmaps/rainbow.map
+#usr/share/slsh/cmaps/red2green.map
+#usr/share/slsh/cmaps/relief.map
+#usr/share/slsh/cmaps/sealand.map
+#usr/share/slsh/cmaps/seis.map
+#usr/share/slsh/cmaps/split.map
+#usr/share/slsh/cmaps/topo.map
+#usr/share/slsh/cmaps/wysiwyg.map
+#usr/share/slsh/cmdopt.sl
+#usr/share/slsh/csv.sl
+#usr/share/slsh/fcntl.sl
+#usr/share/slsh/fork.sl
+#usr/share/slsh/glob.sl
+#usr/share/slsh/help
+#usr/share/slsh/help/arrayfuns.hlp
+#usr/share/slsh/help/cmdopt.hlp
+#usr/share/slsh/help/csvfuns.hlp
+#usr/share/slsh/help/forkfuns.hlp
+#usr/share/slsh/help/glob.hlp
+#usr/share/slsh/help/onigfuns.hlp
+#usr/share/slsh/help/pcrefuns.hlp
+#usr/share/slsh/help/pngfuns.hlp
+#usr/share/slsh/help/print.hlp
+#usr/share/slsh/help/process.hlp
+#usr/share/slsh/help/profile.hlp
+#usr/share/slsh/help/randfuns.hlp
+#usr/share/slsh/help/readascii.hlp
+#usr/share/slsh/help/require.hlp
+#usr/share/slsh/help/setfuns.hlp
+#usr/share/slsh/help/slsmg.hlp
+#usr/share/slsh/help/sockfuns.hlp
+#usr/share/slsh/help/structfuns.hlp
+#usr/share/slsh/iconv.sl
+#usr/share/slsh/local-packages
+#usr/share/slsh/onig.sl
+#usr/share/slsh/pcre.sl
+#usr/share/slsh/png.sl
+#usr/share/slsh/print.sl
+#usr/share/slsh/process.sl
+#usr/share/slsh/profile.sl
+#usr/share/slsh/rand.sl
+#usr/share/slsh/readascii.sl
+#usr/share/slsh/require.sl
+#usr/share/slsh/rline
+#usr/share/slsh/rline/complete.sl
+#usr/share/slsh/rline/editfuns.sl
+#usr/share/slsh/rline/editor.sl
+#usr/share/slsh/rline/emacskeys.sl
+#usr/share/slsh/rline/history.sl
+#usr/share/slsh/rline/histsrch.sl
+#usr/share/slsh/rline/slrline.rc
+#usr/share/slsh/rline/vikeys.sl
+#usr/share/slsh/scripts
+#usr/share/slsh/scripts/jpegsize
+#usr/share/slsh/scripts/lsrpm
+#usr/share/slsh/scripts/sldb
+#usr/share/slsh/scripts/slprof
+#usr/share/slsh/scripts/slstkchk
+#usr/share/slsh/scripts/svnsh
+#usr/share/slsh/select.sl
+#usr/share/slsh/setfuns.sl
+#usr/share/slsh/sldb.sl
+#usr/share/slsh/sldbcore.sl
+#usr/share/slsh/sldbsock.sl
+#usr/share/slsh/slshhelp.sl
+#usr/share/slsh/slshrl.sl
+#usr/share/slsh/slsmg.sl
+#usr/share/slsh/socket.sl
+#usr/share/slsh/stkcheck.sl
+#usr/share/slsh/structfuns.sl
+#usr/share/slsh/sysconf.sl
+#usr/share/slsh/termios.sl
+#usr/share/slsh/varray.sl
+#usr/share/slsh/zlib.sl
index e6c8cc88d3d2f90d746240c120067f8ebdb65f60..55590f7cb2c8bff423d8f5328d7589a0ab9925e8 100644 (file)
--- a/lfs/slang
+++ b/lfs/slang
 
 include Config
 
-VER        = 1.4.9
+VER        = 2.2.4
 
 THISAPP    = slang-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 4fbb1a7f1257e065ca830deefe13d350
+$(DL_FILE)_MD5 = 86cd8689cd71e281b4720fef8453ceeb
 
 install : $(TARGET)
 
@@ -69,17 +69,9 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-debian-utf8.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-utf8-acs.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-1.4.5-utf8-segv.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-utf8-fix.patch
-       perl -p -i -e 's/(ELF_CFLAGS=\"[^\"]*)-O2([^\"]*\".*)/$1'"$(CFLAGS)"' $2/gs' configure
-       cd $(DIR_APP) && ./configure --prefix=/usr
-       cd $(DIR_APP) && make elf all
-       cd $(DIR_APP) && make install-elf
-       ln -sf libslang-utf8.so.1.4.9 /usr/lib/libslang-utf8.so.1
-       ln -sf libslang-utf8.so /usr/lib/libslang.so
-       ln -sf libslang-utf8.a /usr/lib/libslang.a
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc
+       cd $(DIR_APP) && make #$(MAKETUNING)
+       cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/src/patches/slang-1.4.5-utf8-segv.patch b/src/patches/slang-1.4.5-utf8-segv.patch
deleted file mode 100644 (file)
index f8df90a..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -ru slang-1.4.5/src/slsmg.c slang-1.4.5-new/src/slsmg.c
---- slang-1.4.5/src/slsmg.c    2002-07-25 00:09:00.000000000 -0400
-+++ slang-1.4.5-new/src/slsmg.c        2002-07-25 00:04:02.000000000 -0400
-@@ -369,7 +369,10 @@
-   max_len = Start_Col + Screen_Cols;
-   len = This_Col;
--  p = SL_Screen[This_Row - Start_Row].neew + len - Start_Col;
-+
-+       
-+  p = SL_Screen[This_Row - Start_Row].neew;
-+  if (len > Start_Col) p += len - Start_Col;
-   prev = 0;
-   for (i = 0; i < n; i++, str) {
diff --git a/src/patches/slang-debian-utf8.patch b/src/patches/slang-debian-utf8.patch
deleted file mode 100644 (file)
index 62eb670..0000000
+++ /dev/null
@@ -1,917 +0,0 @@
---- slang-1.4.4.orig/src/slinclud.h
-+++ slang-1.4.4/src/slinclud.h
-@@ -23,4 +23,12 @@
- # include <memory.h>
- #endif
-
-+#define UTF8 1
-+
-+#ifdef UTF8
-+#include <wchar.h>
-+#include <limits.h>
-+#endif /* UTF8 */
-+
-+
- #endif                                       /* _SLANG_INCLUDE_H_ */
---- slang-1.4.4.orig/src/slang.h
-+++ slang-1.4.4/src/slang.h
-@@ -1239,10 +1239,20 @@
- extern int SLtt_Msdos_Cheap_Video;
- #endif
-
-+#define UTF8 1
-+
-+#ifdef UTF8
-+typedef int SLsmg_Char_Type;
-+#define SLSMG_EXTRACT_CHAR(x) ((x) & 0xFFFFFF)
-+#define SLSMG_EXTRACT_COLOR(x) (((x)>>24)&0xFF)
-+#define SLSMG_BUILD_CHAR(ch,color) (((SLsmg_Char_Type)(wchar_t)(ch))|((color)<<24))
-+#define SLSMG_NOCHAR 1
-+#else
- typedef unsigned short SLsmg_Char_Type;
- #define SLSMG_EXTRACT_CHAR(x) ((x) & 0xFF)
- #define SLSMG_EXTRACT_COLOR(x) (((x)>>8)&0xFF)
- #define SLSMG_BUILD_CHAR(ch,color) (((SLsmg_Char_Type)(unsigned char)(ch))|((color)<<8))
-+#endif /* UTF8 */
- extern int SLtt_flush_output (void);
- extern void SLtt_set_scroll_region(int, int);
-@@ -1334,7 +1342,11 @@
- /*{{{ SLsmg Screen Management Functions */
-+#ifdef UTF8
-+extern void SLsmg_fill_region (int, int, unsigned int, unsigned int, wchar_t);
-+#else
- extern void SLsmg_fill_region (int, int, unsigned int, unsigned int, unsigned char);
-+#endif /* UTF8 */
- extern void SLsmg_set_char_set (int);
- #ifndef IBMPC_SYSTEM
- extern int SLsmg_Scroll_Hash_Border;
-@@ -1351,7 +1363,12 @@
- extern void SLsmg_vprintf (char *, va_list);
- extern void SLsmg_write_string (char *);
- extern void SLsmg_write_nstring (char *, unsigned int);
-+#ifdef UTF8
-+extern void SLsmg_write_char (wchar_t);
-+extern void SLsmg_write_nwchars (wchar_t *, unsigned int);
-+#else
- extern void SLsmg_write_char (char);
-+#endif /* UTF8 */
- extern void SLsmg_write_nchars (char *, unsigned int);
- extern void SLsmg_write_wrapped_string (char *, int, int, unsigned int, unsigned int, int);
- extern void SLsmg_cls (void);
---- slang-1.4.4.orig/src/slcurses.c
-+++ slang-1.4.4/src/slcurses.c
-@@ -440,20 +440,130 @@
- static int do_newline (SLcurses_Window_Type *w)
- {
--   w->_curx = 0;
-+   /* w->_curx = 0; */
-    w->_cury += 1;
-    if (w->_cury >= w->scroll_max)
-      {
-       w->_cury = w->scroll_max - 1;
--      if (w->scroll_ok)
-+      if (w->scroll_ok) {
-+        w->_curx = 0;
-         SLcurses_wscrl (w, 1);
-+      }
-      }
-+   else
-+     w->_curx = 0;
-+   
-+   return 0;
-+}
-+
-+#ifdef UTF8
-+static int SLcurses_waddch1 (SLcurses_Window_Type *win,
-+                           wchar_t ch, int color)
-+{
-+   SLsmg_Char_Type *b, *bmin, *bmax, *c;
-+   int k;
-+
-+   if (win == NULL) return -1;
-+
-+   if (win->_cury >= win->nrows)
-+     {
-+      /* Curses seems to move current postion to top of window. */
-+      win->_cury = win->_curx = 0;
-+      return -1;
-+     }
-+
-+   win->modified = 1;
-+
-+   if (ch < ' ')
-+     {
-+      if (ch == '\n')
-+        {
-+           SLcurses_wclrtoeol (win);
-+           return do_newline (win);
-+        }
-+
-+      if (ch == '\r')
-+        {
-+           win->_curx = 0;
-+           return 0;
-+        }
-+
-+      if (ch == '\b')
-+        {
-+           if (win->_curx > 0)
-+             win->_curx--;
-+
-+           return 0;
-+        }
-+
-+      /* HACK HACK!!!! */
-+      if (ch == '\t') ch = ' ';
-+     }
-+
-+   k = wcwidth(ch);
-+
-+   if (!k)
-+     return 0; /* ignore combining characters for now */
-+
-+   if (k > win->ncols)
-+     return 0; /* character wider than window */
-+
-+   if (win->_curx + k > win->ncols) {
-+     if (win->_curx < win->ncols)
-+       SLcurses_wclrtoeol(win);
-+     do_newline (win);
-+   }
-+
-+   bmin = win->lines[win->_cury];
-+   b = bmin + win->_curx;
-+   bmax = bmin + win->ncols;
-+
-+   /* Remove overwritten chars to left */
-+   if (*b == SLSMG_NOCHAR) {
-+     for (c = b - 1; c >= bmin && *c == SLSMG_NOCHAR; c--)
-+       *c = SLSMG_BUILD_CHAR(' ',SLSMG_EXTRACT_COLOR(*c));
-+     if (c >= bmin)
-+       *c = SLSMG_BUILD_CHAR(' ',SLSMG_EXTRACT_COLOR(*c));
-+   }
-+
-+   *b = SLSMG_BUILD_CHAR(ch,color);
-+   win->_curx += k;
-+   while (--k > 0)
-+     *++b = SLSMG_NOCHAR;
-+
-+   /* Remove overwritten chars to right */
-+   for (c = b + 1; c < bmax && *c == SLSMG_NOCHAR; c++)
-+     *c = SLSMG_BUILD_CHAR(' ',SLSMG_EXTRACT_COLOR(*c));
-    return 0;
- }
- int SLcurses_waddch (SLcurses_Window_Type *win, SLtt_Char_Type attr)
- {
-+   SLsmg_Char_Type ch, color;
-+
-+   if (win == NULL) return -1;
-+
-+   ch = SLSMG_EXTRACT_CHAR(attr);
-+
-+   if (attr == ch)
-+     color = win->color;
-+   else
-+     {
-+      /* hack to pick up the default color for graphics chars */
-+      if (((attr & A_COLOR) == 0) && ((attr & A_ALTCHARSET) != 0))
-+        {
-+           /* FIXME: priority=medium: Use SLSMG_?? instead of << */
-+           attr |= win->color << 8;
-+        }
-+      color = map_attr_to_object (attr);
-+     }
-+
-+   return SLcurses_waddch1 (win, ch, color);
-+}
-+#else
-+int SLcurses_waddch (SLcurses_Window_Type *win, SLtt_Char_Type attr)
-+{
-    SLsmg_Char_Type *b, ch;
-    SLsmg_Char_Type color;
-@@ -518,6 +628,7 @@
-    return 0;
- }
-+#endif /* UTF8 */
- int SLcurses_wnoutrefresh (SLcurses_Window_Type *w)
- {
-@@ -577,7 +688,11 @@
- int SLcurses_wclrtoeol (SLcurses_Window_Type *w)
- {
-+#ifdef UTF8
-+   SLsmg_Char_Type *b, *bmin, *bmax, *c;
-+#else
-    SLsmg_Char_Type *b, *bmax;
-+#endif /* UTF8 */
-    SLsmg_Char_Type blank;
-    if (w == NULL) return -1;
-@@ -588,9 +703,23 @@
-    blank = SLSMG_BUILD_CHAR(' ',w->color);
-+#ifdef UTF8
-+   bmin = w->lines[w->_cury];
-+   b = bmin + w->_curx;
-+   bmax = bmin + w->ncols;
-+
-+   /* Remove overwritten chars to left */
-+   if (b < bmax && *b == SLSMG_NOCHAR) {
-+     for (c = b - 1; c >= bmin && *c == SLSMG_NOCHAR; c--)
-+       *c = SLSMG_BUILD_CHAR(' ',SLSMG_EXTRACT_COLOR(*c));
-+     if (c >= bmin) 
-+       *c = SLSMG_BUILD_CHAR(' ',SLSMG_EXTRACT_COLOR(*c));
-+   }
-+#else
-    b = w->lines[w->_cury];
-    bmax = b + w->ncols;
-    b += w->_curx;
-+#endif /* UTF8 */
-    while (b < bmax) *b++ = blank;
-    return 0;
-@@ -677,6 +806,34 @@
-    return 0;
- }
-+#ifdef UTF8
-+/* Note: if len is < 0, entire string will be used.
-+ */
-+int SLcurses_waddnstr (SLcurses_Window_Type *w, char *str, int len)
-+{
-+   size_t k;
-+   wchar_t wc;
-+   mbstate_t mbstate;
-+
-+   if ((w == NULL)
-+       || (str == NULL))
-+     return -1;
-+
-+   if (len < 0)
-+     len = (char *)(-1) - str;
-+
-+   memset (&mbstate, 0, sizeof (mbstate));
-+   while ((k = mbrtowc (&wc, str, len, &mbstate)) &&
-+        k != (size_t)(-1) &&
-+        k != (size_t)(-2))
-+     {
-+      SLcurses_waddch1 (w, wc, w->color);
-+      str += k;
-+      len -= k;
-+     }
-+   return k;
-+}
-+#else
- /* Note: if len is < 0, entire string will be used.
-  */
- int SLcurses_waddnstr (SLcurses_Window_Type *w, char *str, int len)
-@@ -758,6 +915,7 @@
-    return 0;
- }
-+#endif /* UTF8 */
- /* This routine IS NOT CORRECT.  It needs to compute the proper overlap
-  * and copy accordingly.  Here, I just assume windows are same size.
-@@ -852,12 +1010,36 @@
- int SLcurses_wdelch (SLcurses_Window_Type *w)
- {
-+#ifdef UTF8
-+   SLsmg_Char_Type *p, *p1, *pmin, *pmax, *q;
-+#else
-    SLsmg_Char_Type *p, *p1, *pmax;
-+#endif /* UTF8 */
-+#ifdef UTF8
-+   pmin = w->lines[w->_cury];
-+   p = pmin + w->_curx;
-+   pmax = pmin + w->ncols;
-+
-+   /* Remove overwritten chars to left */
-+   if (p < pmax && *p == SLSMG_NOCHAR) {
-+     for (q = p - 1; q >= pmin && *q == SLSMG_NOCHAR; q--)
-+       *q = SLSMG_BUILD_CHAR(' ',SLSMG_EXTRACT_COLOR(*q));
-+     if (q >= pmin)
-+       *q = SLSMG_BUILD_CHAR(' ',SLSMG_EXTRACT_COLOR(*q));
-+   }
-+
-+   /* Remove overwritten chars to right */
-+   for (q = p + 1; q < pmax && *q == SLSMG_NOCHAR; q++)
-+     *q = SLSMG_BUILD_CHAR(' ',SLSMG_EXTRACT_COLOR(*q));
-+ 
-+   p1 = p + 1;
-+#else
-    p = w->lines[w->_cury];
-    pmax = p + w->ncols;
-    p += w->_curx;
-    p1 = p + 1;
-+#endif /* UTF8 */
-    while (p1 < pmax)
-      {
-@@ -884,12 +1066,12 @@
-    while (pmax > p)
-      {
--      *pmax = *p1;
-+      *pmax = *p1; /* Doesn't this assign beyond the end of the line? */
-       pmax = p1;
-       p1--;
-      }
--   if (p < pmax)
-+   if (p < pmax) /* How could it be? */
-      *p = SLSMG_BUILD_CHAR(ch, w->color);
-    w->modified = 1;
---- slang-1.4.4.orig/src/slsmg.c
-+++ slang-1.4.4/src/slsmg.c
-@@ -225,6 +225,38 @@
-    SLsmg_write_nchars (str, strlen (str));
- }
-+#ifdef UTF8
-+void SLsmg_write_nstring (char *str, unsigned int n)
-+{
-+   char blank = ' ';
-+   mbstate_t mbstate;
-+
-+   /* Avoid a problem if a user accidently passes a negative value */
-+   if ((int) n < 0)
-+     return;
-+
-+   if (str != NULL)
-+     {
-+      wchar_t wc;
-+      size_t k;
-+      int w;
-+
-+      memset (&mbstate, 0, sizeof (mbstate));
-+        while ((k = mbrtowc (&wc, str, MB_LEN_MAX, &mbstate)) &&
-+             k != (size_t)(-1) &&
-+             k != (size_t)(-2))
-+        {
-+           w = wcwidth(wc);
-+           if (w < 0 || w > n)
-+             break;
-+           SLsmg_write_nwchars (&wc, 1);
-+           str += k;
-+           n -= w;
-+        }
-+     }
-+   while (n-- > 0) SLsmg_write_nchars (&blank, 1);
-+}
-+#else
- void SLsmg_write_nstring (char *str, unsigned int n)
- {
-    unsigned int width;
-@@ -243,7 +275,11 @@
-      }
-    while (width++ < n) SLsmg_write_nchars (&blank, 1);
- }
-+#endif /* UTF8 */
-+#ifdef UTF8
-+/* FIXME: This function not UTF8'd yet - Edmund */
-+#endif /* UTF8 */
- void SLsmg_write_wrapped_string (char *s, int r, int c,
-                                unsigned int dr, unsigned int dc,
-                                int fill)
-@@ -302,6 +338,123 @@
- int SLsmg_Display_Eight_Bit = 128;
- #endif
-+#ifdef UTF8
-+void SLsmg_write_nwchars (wchar_t *str, unsigned int n)
-+{
-+  SLsmg_Char_Type *p, *prev, *q;
-+  int len, max_len, w, i;
-+  wchar_t ch;
-+
-+#ifndef IBMPC_SYSTEM
-+   int alt_char_set_flag;
-+
-+   alt_char_set_flag = ((This_Color & ALT_CHAR_FLAG)
-+                      && ((tt_Use_Blink_For_ACS == NULL)
-+                          || (*tt_Use_Blink_For_ACS == 0)));
-+#endif
-+
-+  if (Smg_Inited == 0)
-+    return;
-+  if (This_Row < Start_Row || This_Row >= Start_Row + Screen_Rows)
-+    return;
-+
-+  max_len = Start_Col + Screen_Cols;
-+  len = This_Col;
-+  p = SL_Screen[This_Row - Start_Row].neew + len - Start_Col;
-+  prev = 0;
-+
-+  for (i = 0; i < n; i++, str) {
-+    ch = *str++;
-+#ifndef IBMPC_SYSTEM
-+    if (alt_char_set_flag)
-+      ch = Alt_Char_Set[ch & 0x7F];
-+#endif
-+    w = wcwidth(ch);
-+
-+    if (w > 0) {
-+      if (len + w <= max_len) {
-+      if (!prev) {
-+        for (q = p; *q == SLSMG_NOCHAR; q--)
-+          *q = SLSMG_BUILD_CHAR(' ', SLSMG_EXTRACT_COLOR(*q));
-+        *q = SLSMG_BUILD_CHAR(' ', SLSMG_EXTRACT_COLOR(*q));
-+      }
-+      prev = p;
-+      *p++ = SLSMG_BUILD_CHAR(ch, This_Color), ++len;
-+      for (; --w; len++, p++)
-+        *p = SLSMG_NOCHAR;
-+      }
-+      else if (len < max_len) {
-+      for (; len < max_len; len++, p++)
-+        *p = SLSMG_BUILD_CHAR(' ', SLSMG_EXTRACT_COLOR(*p));
-+      prev = 0;
-+      }
-+    }
-+    else if (ch == '\n' &&
-+           SLsmg_Newline_Behavior != SLSMG_NEWLINE_PRINTABLE) {
-+      SL_Screen[This_Row - Start_Row].flags |= TOUCHED;
-+      for (; len < max_len && *p == SLSMG_NOCHAR; len++, p++)
-+      *p = SLSMG_BUILD_CHAR(' ', SLSMG_EXTRACT_COLOR(*p));
-+      if (!SLsmg_Newline_Behavior)
-+      break;
-+      ++This_Row;
-+      len = 0;
-+      if (This_Row == Start_Row + Screen_Rows) {
-+      if (SLsmg_Newline_Behavior == SLSMG_NEWLINE_SCROLLS)
-+        scroll_up();
-+      else
-+        break;
-+      }
-+      p = SL_Screen[This_Row - Start_Row].neew;
-+      prev = 0;
-+    }
-+    else if (ch == '\t' && (SLsmg_Tab_Width > 0)) {
-+      while (len < max_len) {
-+      *p = SLSMG_BUILD_CHAR(' ', SLSMG_EXTRACT_COLOR(*p));
-+      ++p, ++len;
-+      if (len % SLsmg_Tab_Width == 0)
-+        break;
-+      }
-+    }
-+    else if ((ch == 0x8) && SLsmg_Backspace_Moves) {
-+      /* not implemented */
-+    }
-+    else if (!w && ch) {
-+      /* we could handle combining characters here, using prev */
-+    }
-+    else {
-+      /* we should convert control characters to printable form here */
-+    }
-+  }
-+  This_Col = len;
-+  if (i == n) {
-+    SL_Screen[This_Row - Start_Row].flags |= TOUCHED;
-+    for (; len < max_len && *p == SLSMG_NOCHAR; len++, p++)
-+      *p = SLSMG_BUILD_CHAR(' ', SLSMG_EXTRACT_COLOR(*p));
-+  }
-+}
-+
-+void SLsmg_write_char (wchar_t wc)
-+{
-+   SLsmg_write_nwchars (&wc, 1);
-+}
-+
-+void SLsmg_write_nchars (char *str, unsigned int n)
-+{
-+   wchar_t wc;
-+   size_t k;
-+   mbstate_t mbstate;
-+
-+   memset (&mbstate, 0, sizeof (mbstate));
-+   while ((k = mbrtowc (&wc, str, n, &mbstate)) &&
-+        k != (size_t)(-1) &&
-+        k != (size_t)(-2))
-+     {
-+        SLsmg_write_nwchars (&wc, 1);
-+      str += k;
-+      n -= k;
-+     }
-+}
-+#else
- void SLsmg_write_nchars (char *str, unsigned int n)
- {
-    register SLsmg_Char_Type *p, old, neew, color;
-@@ -475,6 +628,7 @@
- {
-    SLsmg_write_nchars (&ch, 1);
- }
-+#endif /* UTF8 */
- static int Cls_Flag;
-@@ -891,6 +1045,10 @@
-            This_Color = color;
-         }
-+#ifdef UTF8
-+      /* FIXME: We should convert broken wide characters to spaces
-+         before calling smart_puts */
-+#endif /* UTF8 */
-       SL_Screen[i].old[Screen_Cols] = 0;
-       SL_Screen[i].neew[Screen_Cols] = 0;
-@@ -1334,9 +1492,16 @@
-    This_Row = r; This_Col = c;
- }
-+#ifdef UTF8
-+void SLsmg_fill_region (int r, int c, unsigned int dr, unsigned int dc, wchar_t ch)
-+{
-+   static wchar_t hbuf[16];
-+   int i;
-+#else
- void SLsmg_fill_region (int r, int c, unsigned int dr, unsigned int dc, unsigned char ch)
- {
-    static unsigned char hbuf[16];
-+#endif /* UTF8 */
-    int count;
-    int dcmax, rmax;
-@@ -1357,16 +1522,30 @@
- #if 0
-    ch = Alt_Char_Set[ch];
- #endif
-+#ifdef UTF8
-+   if (ch != hbuf[0])
-+     for (i = 0; i < 16; i++)
-+       hbuf[i] = ch;
-+#else
-    if (ch != hbuf[0]) SLMEMSET ((char *) hbuf, (char) ch, 16);
-+#endif /* UTF8 */
-    for (This_Row = r; This_Row < rmax; This_Row++)
-      {
-       This_Col = c;
-       count = dc / 16;
-+#ifdef UTF8
-+      SLsmg_write_nwchars (hbuf, dc % 16);
-+#else
-       SLsmg_write_nchars ((char *) hbuf, dc % 16);
-+#endif /* UTF8 */
-       while (count-- > 0)
-         {
-+#ifdef UTF8
-+           SLsmg_write_nwchars (hbuf, 16);
-+#else
-            SLsmg_write_nchars ((char *) hbuf, 16);
-+#endif /* UTF8 */
-         }
-      }
-@@ -1381,14 +1560,22 @@
- void SLsmg_write_color_chars (SLsmg_Char_Type *s, unsigned int len)
- {
-    SLsmg_Char_Type *smax, sh;
-+#ifdef UTF8
-+   wchar_t buf[32], *b, *bmax;
-+#else
-    char buf[32], *b, *bmax;
-+#endif /* UTF8 */
-    int color, save_color;
-    if (Smg_Inited == 0) return;
-    smax = s + len;
-    b = buf;
-+#ifdef UTF8
-+   bmax = b + sizeof (buf) / sizeof (SLsmg_Char_Type);
-+#else
-    bmax = b + sizeof (buf);
-+#endif /* UTF8 */
-    save_color = This_Color;
-@@ -1412,16 +1599,28 @@
-         {
-            if (b != buf)
-              {
-+#ifdef UTF8
-+                SLsmg_write_nwchars (buf, (int) (b - buf));
-+#else
-                 SLsmg_write_nchars (buf, (int) (b - buf));
-+#endif /* UTF8 */
-                 b = buf;
-              }
-            This_Color = color;
-         }
-+#ifdef UTF8
-+      *b++ = SLSMG_EXTRACT_CHAR(sh);
-+#else
-       *b++ = (char) SLSMG_EXTRACT_CHAR(sh);
-+#endif /* UTF8 */
-      }
-    if (b != buf)
-+#ifdef UTF8
-+     SLsmg_write_nwchars (buf, (unsigned int) (b - buf));
-+#else
-      SLsmg_write_nchars (buf, (unsigned int) (b - buf));
-+#endif /* UTF8 */
-    This_Color = save_color;
- }
-@@ -1473,7 +1672,11 @@
- SLsmg_set_color_in_region (int color, int r, int c, unsigned int dr, unsigned int dc)
- {
-    int cmax, rmax;
-+#ifdef UTF8
-+   int color_mask;
-+#else
-    SLsmg_Char_Type char_mask;
-+#endif /* UTF8 */
-    if (Smg_Inited == 0) return;
-@@ -1498,14 +1701,22 @@
-         color = ((color & 0x7F) + Bce_Color_Offset) & 0x7F;
-      }
- #endif
-+#ifdef UTF8
-+   color_mask = 0;
-+#else
-    color = color << 8;
-    char_mask = 0xFF;
-+#endif /* UTF8 */
- #ifndef IBMPC_SYSTEM
-    if ((tt_Use_Blink_For_ACS == NULL)
-        || (0 == *tt_Use_Blink_For_ACS))
-+#ifdef UTF8
-+     color_mask = 0x80;
-+#else
-      char_mask = 0x80FF;
-+#endif /* UTF8 */
- #endif
-    while (r < rmax)
-@@ -1519,7 +1730,13 @@
-       while (s < smax)
-         {
-+#ifdef UTF8
-+           *s = SLSMG_BUILD_CHAR(SLSMG_EXTRACT_CHAR(*s),
-+                                 (SLSMG_EXTRACT_COLOR(*s) & color_mask)
-+                                 | color);
-+#else
-            *s = (*s & char_mask) | color;
-+#endif /* UTF8 */
-            s++;
-         }
-       r++;
---- slang-1.4.5/src/Makefile.in.foo    2002-06-12 19:30:09.000000000 -0400
-+++ slang-1.4.5/src/Makefile.in        2002-06-12 19:31:13.000000000 -0400
-@@ -67,7 +67,7 @@
- #---------------------------------------------------------------------------
- # There should be no need to change anything below here.
- #---------------------------------------------------------------------------
--THIS_LIB              = slang#
-+THIS_LIB              = slang-utf8#
- OTHERSTUFF            = 
- THIS_LIB_DEFINES      = -DSLANG
- ELF_MAJOR_VERSION     = @slang_major_version@#
---- slang-1.4.9/src/sldisply.c.orig    2003-10-27 17:24:15.000000000 -0500
-+++ slang-1.4.9/src/sldisply.c 2003-10-27 17:56:25.000000000 -0500
-@@ -9,6 +9,7 @@
- #include <time.h>
- #include <ctype.h>
-+#include <limits.h>
- #if !defined(VMS) || (__VMS_VER >= 70000000)
- # include <sys/time.h>
-@@ -1426,14 +1427,25 @@
- /* Highest bit represents the character set. */
- #define COLOR_MASK 0x7F00
-+#ifdef UTF8
-+# define COLOR_OF(x) (SLSMG_EXTRACT_COLOR(x) & 0x7F)
-+#else
- #define COLOR_OF(x) (((x)&COLOR_MASK)>>8)
-+#endif
- #define CHAR_OF(x) ((x)&0x80FF)
- #if SLTT_HAS_NON_BCE_SUPPORT
-+#ifdef UTF8
-+static int bce_color_eqs (SLsmg_Char_Type a, SLsmg_Char_Type b)
-+{
-+   a = SLSMG_EXTRACT_COLOR(a) & 0x7F;
-+   b = SLSMG_EXTRACT_COLOR(b) & 0x7F;
-+#else
- static int bce_color_eqs (unsigned int a, unsigned int b)
- {
-    a = COLOR_OF(a);
-    b = COLOR_OF(b);
-+#endif
-    
-    if (a == b)
-      return 1;
-@@ -1459,8 +1471,14 @@
-     :  (Ansi_Color_Map[COLOR_OF(a)].mono == Ansi_Color_Map[COLOR_OF(b)].mono))
- #endif
-+#ifdef UTF8
-+#define CHAR_EQS(a, b) ((a) == (b)\
-+                      || (SLSMG_EXTRACT_CHAR(a) == SLSMG_EXTRACT_CHAR(b)\
-+                          && COLOR_EQS((a), (b))))
-+#else
- #define CHAR_EQS(a, b) (((a) == (b))\
-                       || ((CHAR_OF(a)==CHAR_OF(b)) && COLOR_EQS(a,b)))
-+#endif
- /* The whole point of this routine is to prevent writing to the last column
-  * and last row on terminals with automatic margins.
-@@ -1488,9 +1506,58 @@
-    tt_write (str, len);
- }
-+#ifdef UTF8
-+/* FIXME: This duplicates the function above
-+ */
-+static void write_wstring_with_care (SLsmg_Char_Type *str, unsigned int len)
-+{
-+   mbstate_t mbstate;
-+
-+   if (str == NULL) return;
-+
-+   if (Automatic_Margins && (Cursor_r + 1 == SLtt_Screen_Rows))
-+     {
-+      if (len + (unsigned int) Cursor_c >= (unsigned int) SLtt_Screen_Cols)
-+        {
-+           /* For now, just do not write there.  Later, something more
-+            * sophisticated will be implemented.
-+            */
-+           if (SLtt_Screen_Cols > Cursor_c)
-+             {
-+                len = SLtt_Screen_Cols - Cursor_c - 1;
-+                while (len > 0 && str[len] == SLSMG_NOCHAR)
-+                  --len;
-+             }
-+           else len = 0;
-+        }
-+     }
-+
-+   memset (&mbstate, 0, sizeof (mbstate));
-+   while (len--)
-+     {
-+        SLsmg_Char_Type c = *str++;
-+      char buf[MB_LEN_MAX];
-+      size_t n;
-+
-+      if (c == SLSMG_NOCHAR)
-+        continue;
-+
-+      n = wcrtomb (buf, c, &mbstate);
-+      if (n == (size_t)(-1))
-+        break;
-+
-+      tt_write(buf, n);
-+     }
-+}
-+#endif /* UTF8 */
-+
- static void send_attr_str (SLsmg_Char_Type *s)
- {
-+#ifdef UTF8
-+   SLsmg_Char_Type out[SLTT_MAX_SCREEN_COLS], ch, *p;
-+#else
-    unsigned char out[SLTT_MAX_SCREEN_COLS], ch, *p;
-+#endif /* UTF8 */
-    register SLtt_Char_Type attr;
-    register SLsmg_Char_Type sh;
-    int color, last_color = -1;
-@@ -1498,8 +1565,13 @@
-    p = out;
-    while (0 != (sh = *s++))
-      {
-+#ifdef UTF8
-+      ch = SLSMG_EXTRACT_CHAR(sh);
-+      color = SLSMG_EXTRACT_COLOR(sh);
-+#else
-       ch = sh & 0xFF;
-       color = ((int) sh & 0xFF00) >> 8;
-+#endif
- #if SLTT_HAS_NON_BCE_SUPPORT
-       if (Bce_Color_Offset
-@@ -1511,8 +1583,12 @@
-         {
-            if (SLtt_Use_Ansi_Colors) attr = Ansi_Color_Map[color & 0x7F].fgbg;
-            else attr = Ansi_Color_Map[color & 0x7F].mono;
--
-+ 
-+#ifdef UTF8
-+           if (SLSMG_EXTRACT_COLOR(sh) & 0x80) /* alternate char set */
-+#else
-            if (sh & 0x8000) /* alternate char set */
-+#endif
-              {
-                 if (SLtt_Use_Blink_For_ACS)
-                   {
-@@ -1534,8 +1610,12 @@
-                   {
-                      if (p != out)
-                        {
-+#ifdef UTF8
-+                          write_wstring_with_care (out, p-out);
-+#else
-                           *p = 0;
-                           write_string_with_care ((char *) out);
-+#endif
-                           Cursor_c += (int) (p - out);
-                           p = out;
-                        }
-@@ -1558,8 +1638,12 @@
-         }
-       *p++ = ch;
-      }
-+#ifdef UTF8
-+   if (p != out) write_wstring_with_care (out, p-out);
-+#else
-    *p = 0;
-    if (p != out) write_string_with_care ((char *) out);
-+#endif
-    Cursor_c += (int) (p - out);
- }
-@@ -1686,7 +1770,11 @@
-       while (qq < qmax)
-         {
-+#ifdef UTF8
-+           if (SLSMG_EXTRACT_COLOR(*qq))
-+#else
-            if (*qq & 0xFF00)
-+#endif
-              {
-                 SLtt_normal_video ();
-                 SLtt_del_eol ();
-@@ -1701,7 +1789,11 @@
-    /* Find where the last non-blank character on old/new screen is */
-    space_char = ' ';
-+#ifdef UTF8
-+   if (SLSMG_EXTRACT_CHAR(*(pmax-1)) == ' ')
-+#else
-    if (CHAR_EQS(*(pmax-1), ' '))
-+#endif
-      {
-       /* If we get here, then we can erase to the end of the line to create
-        * the final space.  However, this will only work _if_ erasing will 
-@@ -1752,7 +1844,11 @@
-      {
- #endif
-       /* Try use use erase to bol if possible */
-+#ifdef UTF8
-+      if ((Del_Bol_Str != NULL) && (SLSMG_EXTRACT_CHAR(*neww) == ' '))
-+#else
-       if ((Del_Bol_Str != NULL) && (CHAR_OF(*neww) == ' '))
-+#endif
-         {
-            SLsmg_Char_Type *p1;
-            SLsmg_Char_Type blank;
-@@ -1781,7 +1877,11 @@
-                 q = oldd + ofs;
-                 p = p1;
-                 SLtt_goto_rc (row, ofs - 1);
-+#ifdef UTF8
-+                SLtt_reverse_video (SLSMG_EXTRACT_COLOR (blank));
-+#else
-                 SLtt_reverse_video (COLOR_OF(blank));
-+#endif
-                 tt_write_string (Del_Bol_Str);
-                 tt_write (" ", 1);
-                 Cursor_c += 1;
-@@ -1978,7 +2078,11 @@
-    if (q < qmax) 
-      {
-+#ifdef UTF8
-+      SLtt_reverse_video (SLSMG_EXTRACT_COLOR (space_char));
-+#else
-       SLtt_reverse_video (COLOR_OF(space_char));
-+#endif
-       del_eol ();
-      }
-    
diff --git a/src/patches/slang-utf8-acs.patch b/src/patches/slang-utf8-acs.patch
deleted file mode 100644 (file)
index dc8a851..0000000
+++ /dev/null
@@ -1,417 +0,0 @@
---- slang-1.4.5/src/slang.h.acs        2002-07-09 00:03:57.000000000 -0400
-+++ slang-1.4.5/src/slang.h    2002-07-09 00:11:06.000000000 -0400
-@@ -1255,6 +1255,8 @@
- #ifdef UTF8
- typedef int SLsmg_Char_Type;
-+extern SLtt_Char_Type SLcurses_Acs_Map [128];
-+#define acs_map SLcurses_Acs_Map
- #define SLSMG_EXTRACT_CHAR(x) ((x) & 0xFFFFFF)
- #define SLSMG_EXTRACT_COLOR(x) (((x)>>24)&0xFF)
- #define SLSMG_BUILD_CHAR(ch,color) (((SLsmg_Char_Type)(wchar_t)(ch))|((color)<<24))
-@@ -1396,7 +1398,11 @@
- extern void SLsmg_set_screen_start (int *, int *);
- extern void SLsmg_draw_hline (unsigned int);
- extern void SLsmg_draw_vline (int);
-+#ifdef UTF8
-+extern void SLsmg_draw_object (int, int, SLsmg_Char_Type);
-+#else
- extern void SLsmg_draw_object (int, int, unsigned char);
-+#endif
- extern void SLsmg_draw_box (int, int, unsigned int, unsigned int);
- extern int SLsmg_get_column(void);
- extern int SLsmg_get_row(void);
-@@ -1408,6 +1414,9 @@
- extern int SLsmg_Display_Eight_Bit;
- extern int SLsmg_Tab_Width;
-+extern int SLsmg_Is_Unicode;
-+extern int SLsmg_Setlocale;
-+
- #define SLSMG_NEWLINE_IGNORED 0      /* default */
- #define SLSMG_NEWLINE_MOVES   1      /* moves to next line, column 0 */
- #define SLSMG_NEWLINE_SCROLLS 2      /* moves but scrolls at bottom of screen */
-@@ -1465,31 +1474,79 @@
- #  define SLSMG_BOARD_CHAR    '#'
- #  define SLSMG_BLOCK_CHAR    '#'
- # else
--#  define SLSMG_HLINE_CHAR    'q'
--#  define SLSMG_VLINE_CHAR    'x'
--#  define SLSMG_ULCORN_CHAR   'l'
--#  define SLSMG_URCORN_CHAR   'k'
--#  define SLSMG_LLCORN_CHAR   'm'
--#  define SLSMG_LRCORN_CHAR   'j'
--#  define SLSMG_CKBRD_CHAR    'a'
--#  define SLSMG_RTEE_CHAR     'u'
--#  define SLSMG_LTEE_CHAR     't'
--#  define SLSMG_UTEE_CHAR     'w'
--#  define SLSMG_DTEE_CHAR     'v'
--#  define SLSMG_PLUS_CHAR     'n'
--#  define SLSMG_DIAMOND_CHAR  '`'
--#  define SLSMG_DEGREE_CHAR   'f'
--#  define SLSMG_PLMINUS_CHAR  'g'
--#  define SLSMG_BULLET_CHAR   '~'
--#  define SLSMG_LARROW_CHAR   ','
--#  define SLSMG_RARROW_CHAR   '+'
--#  define SLSMG_DARROW_CHAR   '.'
--#  define SLSMG_UARROW_CHAR   '-'
--#  define SLSMG_BOARD_CHAR    'h'
--#  define SLSMG_BLOCK_CHAR    '0'
-+#  define SLSMG_HLINE_CHAR    (acs_map['q'])
-+#  define SLSMG_VLINE_CHAR    (acs_map['x'])
-+#  define SLSMG_ULCORN_CHAR   (acs_map['l'])
-+#  define SLSMG_URCORN_CHAR   (acs_map['k'])
-+#  define SLSMG_LLCORN_CHAR   (acs_map['m'])
-+#  define SLSMG_LRCORN_CHAR   (acs_map['j'])
-+#  define SLSMG_CKBRD_CHAR    (acs_map['a'])
-+#  define SLSMG_RTEE_CHAR     (acs_map['u'])
-+#  define SLSMG_LTEE_CHAR     (acs_map['t'])
-+#  define SLSMG_UTEE_CHAR     (acs_map['v'])
-+#  define SLSMG_DTEE_CHAR     (acs_map['w'])
-+#  define SLSMG_PLUS_CHAR     (acs_map['n'])
-+#  define SLSMG_DIAMOND_CHAR  (acs_map['`'])
-+#  define SLSMG_DEGREE_CHAR   (acs_map['f'])
-+#  define SLSMG_PLMINUS_CHAR  (acs_map['g'])
-+#  define SLSMG_BULLET_CHAR   (acs_map['~'])
-+#  define SLSMG_LARROW_CHAR   (acs_map[','])
-+#  define SLSMG_RARROW_CHAR   (acs_map['+'])
-+#  define SLSMG_DARROW_CHAR   (acs_map['.'])
-+#  define SLSMG_UARROW_CHAR   (acs_map['-'])
-+#  define SLSMG_BOARD_CHAR    (acs_map['h'])
-+#  define SLSMG_BLOCK_CHAR    (acs_map['0'])
-+#
-+#  define SLSMG_HLINE_CHAR_TERM       'q'
-+#  define SLSMG_VLINE_CHAR_TERM       'x'
-+#  define SLSMG_ULCORN_CHAR_TERM      'l'
-+#  define SLSMG_URCORN_CHAR_TERM      'k'
-+#  define SLSMG_LLCORN_CHAR_TERM      'm'
-+#  define SLSMG_LRCORN_CHAR_TERM      'j'
-+#  define SLSMG_CKBRD_CHAR_TERM       'a'
-+#  define SLSMG_RTEE_CHAR_TERM        'u'
-+#  define SLSMG_LTEE_CHAR_TERM        't'
-+#  define SLSMG_UTEE_CHAR_TERM        'v'
-+#  define SLSMG_DTEE_CHAR_TERM        'w'
-+#  define SLSMG_PLUS_CHAR_TERM        'n'
-+#  define SLSMG_DIAMOND_CHAR_TERM     '`'
-+#  define SLSMG_DEGREE_CHAR_TERM      'f'
-+#  define SLSMG_PLMINUS_CHAR_TERM     'g'
-+#  define SLSMG_BULLET_CHAR_TERM      '~'
-+#  define SLSMG_LARROW_CHAR_TERM      ','
-+#  define SLSMG_RARROW_CHAR_TERM      '+'
-+#  define SLSMG_DARROW_CHAR_TERM      '.'
-+#  define SLSMG_UARROW_CHAR_TERM      '-'
-+#  define SLSMG_BOARD_CHAR_TERM       'h'
-+#  define SLSMG_BLOCK_CHAR_TERM       '0'
- # endif                                      /* AMIGA */
- #endif                                       /* IBMPC_SYSTEM */
-+#ifdef UTF8
-+# define SLSMG_HLINE_CHAR_UNICODE     0x2500
-+# define SLSMG_VLINE_CHAR_UNICODE     0x2502
-+# define SLSMG_ULCORN_CHAR_UNICODE    0x250c
-+# define SLSMG_URCORN_CHAR_UNICODE    0x2510
-+# define SLSMG_LLCORN_CHAR_UNICODE    0x2514
-+# define SLSMG_LRCORN_CHAR_UNICODE    0x2518
-+# define SLSMG_RTEE_CHAR_UNICODE      0x2524
-+# define SLSMG_LTEE_CHAR_UNICODE      0x251c
-+# define SLSMG_UTEE_CHAR_UNICODE      0x2534
-+# define SLSMG_DTEE_CHAR_UNICODE      0x252c
-+# define SLSMG_PLUS_CHAR_UNICODE      0x253c
-+# define SLSMG_CKBRD_CHAR_UNICODE     0x2592
-+# define SLSMG_DIAMOND_CHAR_UNICODE   0x25c6
-+# define SLSMG_DEGREE_CHAR_UNICODE    0x00b0
-+# define SLSMG_PLMINUS_CHAR_UNICODE   0x00b1
-+# define SLSMG_BULLET_CHAR_UNICODE    0x00b7
-+# define SLSMG_LARROW_CHAR_UNICODE    0x2190
-+# define SLSMG_RARROW_CHAR_UNICODE    0x2192
-+# define SLSMG_DARROW_CHAR_UNICODE    0x2193
-+# define SLSMG_UARROW_CHAR_UNICODE    0x2191
-+# define SLSMG_BOARD_CHAR_UNICODE     0x2592
-+# define SLSMG_BLOCK_CHAR_UNICODE     0x25ae
-+#endif
-+
- #ifndef IBMPC_SYSTEM
- # define SLSMG_COLOR_BLACK            0x000000
- # define SLSMG_COLOR_RED              0x000001
---- slang-1.4.5/src/slcurses.c.acs     2002-07-09 00:03:57.000000000 -0400
-+++ slang-1.4.5/src/slcurses.c 2002-07-09 00:09:03.000000000 -0400
-@@ -331,40 +331,63 @@
-    /* SLtt_set_mono (A_BLINK >> 8, NULL, SLTT_BLINK_MASK); */
-    SLtt_set_mono ((A_BOLD|A_UNDERLINE) >> 8, NULL, SLTT_ULINE_MASK|SLTT_BOLD_MASK);
-    SLtt_set_mono ((A_REVERSE|A_UNDERLINE) >> 8, NULL, SLTT_ULINE_MASK|SLTT_REV_MASK);
-+   
-+   SLcurses_init_acs_map();
-+
-+   return SLcurses_Stdscr;
-+}
-+void SLcurses_init_acs_map()
-+{
-    if (SLtt_Has_Alt_Charset)
-      {
--       SLcurses_Acs_Map[SLSMG_ULCORN_CHAR] = SLSMG_ULCORN_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_URCORN_CHAR] = SLSMG_URCORN_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_LLCORN_CHAR] = SLSMG_LLCORN_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_LRCORN_CHAR] = SLSMG_LRCORN_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_UTEE_CHAR] = SLSMG_UTEE_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_DTEE_CHAR] = SLSMG_DTEE_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_LTEE_CHAR] = SLSMG_LTEE_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_RTEE_CHAR] = SLSMG_RTEE_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_VLINE_CHAR] = SLSMG_VLINE_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_HLINE_CHAR] = SLSMG_HLINE_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_PLUS_CHAR] = SLSMG_PLUS_CHAR | A_ALTCHARSET;
--       SLcurses_Acs_Map[SLSMG_CKBRD_CHAR] = SLSMG_CKBRD_CHAR | A_ALTCHARSET;
-+       if (SLsmg_Is_Unicode)
-+         {
-+           SLcurses_Acs_Map['l'] = SLSMG_ULCORN_CHAR_UNICODE;
-+           SLcurses_Acs_Map['k'] = SLSMG_URCORN_CHAR_UNICODE;
-+           SLcurses_Acs_Map['m'] = SLSMG_LLCORN_CHAR_UNICODE;
-+           SLcurses_Acs_Map['j'] = SLSMG_LRCORN_CHAR_UNICODE;
-+           SLcurses_Acs_Map['v'] = SLSMG_UTEE_CHAR_UNICODE;
-+           SLcurses_Acs_Map['w'] = SLSMG_DTEE_CHAR_UNICODE;
-+           SLcurses_Acs_Map['t'] = SLSMG_LTEE_CHAR_UNICODE;
-+           SLcurses_Acs_Map['u'] = SLSMG_RTEE_CHAR_UNICODE;
-+           SLcurses_Acs_Map['x'] = SLSMG_VLINE_CHAR_UNICODE;
-+           SLcurses_Acs_Map['q'] = SLSMG_HLINE_CHAR_UNICODE;
-+           SLcurses_Acs_Map['n'] = SLSMG_PLUS_CHAR_UNICODE;
-+           SLcurses_Acs_Map['a'] = SLSMG_CKBRD_CHAR_UNICODE;
-+         }
-+       else
-+       {
-+           SLcurses_Acs_Map['l'] = SLSMG_ULCORN_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['k'] = SLSMG_URCORN_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['m'] = SLSMG_LLCORN_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['j'] = SLSMG_LRCORN_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['v'] = SLSMG_UTEE_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['w'] = SLSMG_DTEE_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['t'] = SLSMG_LTEE_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['u'] = SLSMG_RTEE_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['x'] = SLSMG_VLINE_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['q'] = SLSMG_HLINE_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['n'] = SLSMG_PLUS_CHAR_TERM | A_ALTCHARSET;
-+           SLcurses_Acs_Map['a'] = SLSMG_CKBRD_CHAR_TERM | A_ALTCHARSET;
-+         }
-      }
-    else
-      {
-        /* ugly defaults to use on terminals which don't support graphics */
--       SLcurses_Acs_Map[SLSMG_ULCORN_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_URCORN_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_LLCORN_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_LRCORN_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_UTEE_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_DTEE_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_LTEE_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_RTEE_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_VLINE_CHAR] = '|';
--       SLcurses_Acs_Map[SLSMG_HLINE_CHAR] = '-';
--       SLcurses_Acs_Map[SLSMG_PLUS_CHAR] = '+';
--       SLcurses_Acs_Map[SLSMG_CKBRD_CHAR] = '#';
-+       SLcurses_Acs_Map['l'] = '+';
-+       SLcurses_Acs_Map['k'] = '+';
-+       SLcurses_Acs_Map['m'] = '+';
-+       SLcurses_Acs_Map['j'] = '+';
-+       SLcurses_Acs_Map['v'] = '+';
-+       SLcurses_Acs_Map['w'] = '+';
-+       SLcurses_Acs_Map['t'] = '+';
-+       SLcurses_Acs_Map['u'] = '+';
-+       SLcurses_Acs_Map['x'] = '|';
-+       SLcurses_Acs_Map['q'] = '-';
-+       SLcurses_Acs_Map['n'] = '+';
-+       SLcurses_Acs_Map['a'] = '#';
-      }
--
--   return SLcurses_Stdscr;
- }
- int SLcurses_wattrset (SLcurses_Window_Type *w, SLtt_Char_Type ch)
---- slang-1.4.5/src/slcurses.h.acs     2002-02-10 02:39:19.000000000 -0500
-+++ slang-1.4.5/src/slcurses.h 2002-07-09 00:03:57.000000000 -0400
-@@ -141,6 +141,7 @@
- extern int SLcurses_nodelay (SLcurses_Window_Type *, int);
- extern SLcurses_Window_Type *SLcurses_initscr (void);
-+extern void SLcurses_init_acs_map (void);
- #define initscr SLcurses_initscr
- extern int SLcurses_cbreak (void);
-@@ -222,21 +222,21 @@
- extern SLtt_Char_Type SLcurses_Acs_Map [128];
- #define acs_map SLcurses_Acs_Map
--#define ACS_ULCORNER (acs_map[SLSMG_ULCORN_CHAR])
--#define ACS_URCORNER (acs_map[SLSMG_URCORN_CHAR])
--#define ACS_LRCORNER (acs_map[SLSMG_LRCORN_CHAR])
--#define ACS_LLCORNER (acs_map[SLSMG_LLCORN_CHAR])
--#define ACS_TTEE (acs_map[SLSMG_UTEE_CHAR])
--#define ACS_LTEE (acs_map[SLSMG_LTEE_CHAR])
--#define ACS_RTEE (acs_map[SLSMG_RTEE_CHAR])
--#define ACS_BTEE (acs_map[SLSMG_DTEE_CHAR])
--#define ACS_PLUS (acs_map[SLSMG_PLUS_CHAR])
--#define ACS_VLINE (acs_map[SLSMG_VLINE_CHAR])
--#define ACS_HLINE (acs_map[SLSMG_HLINE_CHAR])
-+#define ACS_ULCORNER SLSMG_ULCORN_CHAR
-+#define ACS_URCORNER SLSMG_URCORN_CHAR
-+#define ACS_LRCORNER SLSMG_LRCORN_CHAR
-+#define ACS_LLCORNER SLSMG_LLCORN_CHAR
-+#define ACS_TTEE SLSMG_UTEE_CHAR
-+#define ACS_LTEE SLSMG_LTEE_CHAR
-+#define ACS_RTEE SLSMG_RTEE_CHAR
-+#define ACS_BTEE SLSMG_DTEE_CHAR
-+#define ACS_PLUS SLSMG_PLUS_CHAR
-+#define ACS_VLINE SLSMG_VLINE_CHAR
-+#define ACS_HLINE SLSMG_HLINE_CHAR
- #define ACS_S1                '-'
- #define ACS_S9                '-'
- #define ACS_DIAMOND           '&'
--#define ACS_CKBOARD           (acs_map[SLSMG_CKBRD_CHAR])
-+#define ACS_CKBOARD           SLSMG_CKBRD_CHAR
- #define ACS_DEGREE            'o'
- #define ACS_PLMINUS           '+'
- #define ACS_BULLET            '*'
---- slang-1.4.5/src/slsmg.c.acs        2002-07-09 00:03:57.000000000 -0400
-+++ slang-1.4.5/src/slsmg.c    2002-07-09 00:03:57.000000000 -0400
-@@ -10,6 +10,9 @@
- #include "slang.h"
- #include "_slang.h"
-+#include "slcurses.h"
-+
-+#include <locale.h>
- typedef struct Screen_Type
-   {
-@@ -44,9 +47,9 @@
-                                       */
- #ifndef IBMPC_SYSTEM
--#define ALT_CHAR_FLAG 0x80
-+static int ALT_CHAR_FLAG=0x80;
- #else
--#define ALT_CHAR_FLAG 0x00
-+static int ALT_CHAR_FLAG=0x00;
- #endif
- #if SLTT_HAS_NON_BCE_SUPPORT && !defined(IBMPC_SYSTEM)
-@@ -54,6 +57,8 @@
- static int Bce_Color_Offset;
- #endif
-+int SLsmg_Is_Unicode = 0;
-+int SLsmg_Setlocale = 1;
- int SLsmg_Newline_Behavior = 0;
- int SLsmg_Backspace_Moves = 0;
- /* Backward compatibility. Not used. */
-@@ -184,6 +189,8 @@
-      return;/* alt chars not used and the alt bit
-            * is used to indicate a blink.
-            */
-+   if (SLsmg_Is_Unicode)
-+       ALT_CHAR_FLAG=0x00;
-    if (i) This_Alt_Char = ALT_CHAR_FLAG;
-    else This_Alt_Char = 0;
-@@ -348,6 +355,8 @@
- #ifndef IBMPC_SYSTEM
-    int alt_char_set_flag;
-+   if (SLsmg_Is_Unicode)
-+     ALT_CHAR_FLAG = 0x00;
-    alt_char_set_flag = ((This_Color & ALT_CHAR_FLAG)
-                       && ((tt_Use_Blink_For_ACS == NULL)
-                           || (*tt_Use_Blink_For_ACS == 0)));
-@@ -1221,6 +1230,20 @@
-    Smg_Inited = 0;
- }
-+static void SLsmg_check_unicode(void)
-+{
-+    char *s,*t;
-+    
-+    if (SLsmg_Setlocale)
-+              s = setlocale(LC_ALL, "");
-+    else
-+              s = setlocale(LC_ALL, NULL);
-+    if (s && (strstr(s,"UTF-8") || strstr(s,"utf8"))) {
-+          SLsmg_Is_Unicode = 1;
-+          return;
-+    }
-+    SLsmg_Is_Unicode = 0;
-+}
- static int init_smg (void)
- {
-@@ -1242,6 +1265,8 @@
-    This_Col = This_Row = Start_Col = Start_Row = 0;
-    This_Alt_Char = 0;
-+   SLsmg_check_unicode ();
-+   SLcurses_init_acs_map ();
-    SLsmg_set_color (0);
-    Cls_Flag = 1;
- #ifndef IBMPC_SYSTEM
-@@ -1386,7 +1411,11 @@
-      }
- }
-+#ifdef UTF8
-+void SLsmg_draw_object (int r, int c, SLsmg_Char_Type object)
-+#else
- void SLsmg_draw_object (int r, int c, unsigned char object)
-+#endif
- {
-    This_Row = r;  This_Col = c;
-@@ -1405,7 +1434,7 @@
- void SLsmg_draw_hline (unsigned int n)
- {
--   static unsigned char hbuf[16];
-+   SLsmg_Char_Type ch = SLSMG_HLINE_CHAR;
-    int count;
-    int cmin, cmax;
-    int final_col = This_Col + (int) n;
-@@ -1421,11 +1450,6 @@
-       return;
-      }
--   if (hbuf[0] == 0)
--     {
--      SLMEMSET ((char *) hbuf, SLSMG_HLINE_CHAR, 16);
--     }
--
-    n = (unsigned int)(cmax - cmin);
-    count = n / 16;
-@@ -1433,10 +1457,10 @@
-    This_Color |= ALT_CHAR_FLAG;
-    This_Col = cmin;
--   SLsmg_write_nchars ((char *) hbuf, n % 16);
--   while (count-- > 0)
-+   SLsmg_draw_object(This_Row, This_Col, ch);
-+   while (n-- > 0)
-      {
--      SLsmg_write_nchars ((char *) hbuf, 16);
-+      SLsmg_draw_object(This_Row, This_Col, ch);
-      }
-    This_Color = save_color;
-@@ -1445,7 +1469,7 @@
- void SLsmg_draw_vline (int n)
- {
--   unsigned char ch = SLSMG_VLINE_CHAR;
-+   SLsmg_Char_Type ch = SLSMG_VLINE_CHAR;
-    int c = This_Col, rmin, rmax;
-    int final_row = This_Row + n;
-    int save_color;
-@@ -1466,7 +1490,7 @@
-    for (This_Row = rmin; This_Row < rmax; This_Row++)
-      {
-       This_Col = c;
--      SLsmg_write_nchars ((char *) &ch, 1);
-+      SLsmg_draw_object (This_Row, This_Col, ch);
-      }
-    This_Col = c;  This_Row = final_row;
diff --git a/src/patches/slang-utf8-fix.patch b/src/patches/slang-utf8-fix.patch
deleted file mode 100644 (file)
index 6c0a80f..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
---- slang-1.4.5/src/slsmg.c.jj 2003-02-21 12:11:37.000000000 -0500
-+++ slang-1.4.5/src/slsmg.c    2003-02-21 14:09:28.000000000 -0500
-@@ -378,8 +378,10 @@ void SLsmg_write_nwchars (wchar_t *str, 
-   for (i = 0; i < n; i++, str) {
-     ch = *str++;
- #ifndef IBMPC_SYSTEM
--    if (alt_char_set_flag)
-+    if (alt_char_set_flag) {
-       ch = Alt_Char_Set[ch & 0x7F];
-+      w = 1;
-+    } else
- #endif
-     w = wcwidth(ch);
---- slang-1.4.5/src/sldisply.c.jj      2003-02-21 12:11:37.000000000 -0500
-+++ slang-1.4.5/src/sldisply.c 2003-02-21 15:51:43.000000000 -0500
-@@ -1498,6 +1498,17 @@ static void write_wstring_with_care (SLs
-         }
-      }
-+   if (Current_Fgbg & SLTT_ALTC_MASK)
-+     {
-+      char c;
-+      while (len--)
-+        {
-+           c = *str++;
-+           tt_write(&c, 1);
-+        }
-+      return;
-+     }
-+
-    memset (&mbstate, 0, sizeof (mbstate));
-    while (len--)
-      {