pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

yasr: remove, imported to pkgsrc/audio/yasr



Module Name:	pkgsrc-wip
Committed By:	Thomas Klausner <wiz%NetBSD.org@localhost>
Pushed By:	wiz
Date:		Mon Mar 11 08:53:09 2024 +0100
Changeset:	560dc6e40c7ab7a9ec3eb501a9e96bd19cb959c3

Modified Files:
	Makefile
Removed Files:
	yasr/COMMIT_MSG
	yasr/DESCR
	yasr/Makefile
	yasr/PLIST
	yasr/distinfo
	yasr/patches/patch-meson.build
	yasr/patches/patch-yasr_main.c
	yasr/patches/patch-yasr_tts.c
	yasr/patches/patch-yasr_yasr.h

Log Message:
yasr: remove, imported to pkgsrc/audio/yasr

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=560dc6e40c7ab7a9ec3eb501a9e96bd19cb959c3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 Makefile                       |   1 -
 yasr/COMMIT_MSG                |   3 -
 yasr/DESCR                     |   7 -
 yasr/Makefile                  |  33 --
 yasr/PLIST                     |   6 -
 yasr/distinfo                  |   9 -
 yasr/patches/patch-meson.build |  15 -
 yasr/patches/patch-yasr_main.c | 946 -----------------------------------------
 yasr/patches/patch-yasr_tts.c  | 373 ----------------
 yasr/patches/patch-yasr_yasr.h |  39 --
 10 files changed, 1432 deletions(-)

diffs:
diff --git a/Makefile b/Makefile
index d0c15afd9f..f268069d00 100644
--- a/Makefile
+++ b/Makefile
@@ -5855,7 +5855,6 @@ SUBDIR+=	yaggo
 SUBDIR+=	yakuake
 SUBDIR+=	yamlfmt
 SUBDIR+=	yap
-SUBDIR+=	yasr
 SUBDIR+=	yaupspe
 SUBDIR+=	yder
 SUBDIR+=	yersinia
diff --git a/yasr/COMMIT_MSG b/yasr/COMMIT_MSG
deleted file mode 100644
index c2c80b8b73..0000000000
--- a/yasr/COMMIT_MSG
+++ /dev/null
@@ -1,3 +0,0 @@
-audio/yasr: Add yasr version 0.0.0.144
-
-Packaged in wip by adr
diff --git a/yasr/DESCR b/yasr/DESCR
deleted file mode 100644
index 0c14f7b9a9..0000000000
--- a/yasr/DESCR
+++ /dev/null
@@ -1,7 +0,0 @@
-YASR ("Yet Another Screen Reader") is an attempt at a lightweight,
-portable screen reader. It works by opening a shell in a pty and
-intercepting all user input/output, maintaining a window of what
-should be on the screen by looking at the codes and text sent to the
-screen. It thus uses no Linuxisms such as /dev/vcsa0 and does not
-necessarily need to be setuid root (the only requirement being that
-the user be able to access the tts device).
diff --git a/yasr/Makefile b/yasr/Makefile
deleted file mode 100644
index 7510d0d699..0000000000
--- a/yasr/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# $NetBSD: Makefile,v 1.1 2024/02/25 22:00:09 wiz Exp $
-
-COMMITS=	144
-DISTNAME=	yasr-0.0.0.${COMMITS}
-CATEGORIES=	audio
-MASTER_SITES=	${MASTER_SITE_GITHUB:=mgorse/}
-GITHUB_TAG=	f60db19350542e6f4b7d268a310b9f2b9f3076c0
-
-MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
-HOMEPAGE=	https://github.com/mgorse/yasr
-COMMENT=	Lightweight and portable screen reader
-LICENSE=	gnu-gpl-v2
-
-USE_LANGUAGES=	c
-USE_TOOLS=	pkg-config msgfmt xgettext
-
-# Replace bash with sh in configuration example
-SUBST_CLASSES+=		use-sh
-SUBST_STAGE.use-sh=	pre-configure
-SUBST_MESSAGE.use-sh=	Use sh instead of bash
-SUBST_FILES.use-sh=	yasr/yasr.conf
-SUBST_SED.use-sh=	-e 's,/bin/bash,/bin/sh,'
-
-# Fix eflite path in configuration example
-SUBST_CLASSES+=			fix-eflite
-SUBST_STAGE.fix-eflite=		pre-configure
-SUBST_MESSAGE.fix-eflite=	Fix eflite path
-SUBST_FILES.fix-eflite=		yasr/yasr.conf
-SUBST_SED.fix-eflite=		-e 's,/usr/local/bin/eflite,${PREFIX}/bin/eflite,'
-
-.include "../../devel/meson/build.mk"
-.include "../../audio/speech-dispatcher/buildlink3.mk"
-.include "../../mk/bsd.pkg.mk"
diff --git a/yasr/PLIST b/yasr/PLIST
deleted file mode 100644
index 29c50a9bba..0000000000
--- a/yasr/PLIST
+++ /dev/null
@@ -1,6 +0,0 @@
-@comment $NetBSD$
-bin/yasr
-man/man1/yasr.1
-share/locale/es/LC_MESSAGES/yasr.mo
-share/locale/fr/LC_MESSAGES/yasr.mo
-share/yasr/yasr.conf
diff --git a/yasr/distinfo b/yasr/distinfo
deleted file mode 100644
index 0fb4c4d716..0000000000
--- a/yasr/distinfo
+++ /dev/null
@@ -1,9 +0,0 @@
-$NetBSD$
-
-BLAKE2s (yasr-0.0.0.144-f60db19350542e6f4b7d268a310b9f2b9f3076c0.tar.gz) = 72d9fca67181fbc0761515cf44ab01e07f97e4f90863d54df2bb614a7cd88a6c
-SHA512 (yasr-0.0.0.144-f60db19350542e6f4b7d268a310b9f2b9f3076c0.tar.gz) = 1a97f4d18586e9e72a01b05b0c6240a7e346b44d920771d662a0cbf9cba26467732d5681f391938d01cf0bd9e269bf0879fd7fcbf48f9678b5eafa30cbecca63
-Size (yasr-0.0.0.144-f60db19350542e6f4b7d268a310b9f2b9f3076c0.tar.gz) = 99434 bytes
-SHA1 (patch-meson.build) = 81c27075691073e33799681441e4662275e62d3a
-SHA1 (patch-yasr_main.c) = 5e6493b9a995b3fb15b160569d21c893e99ed9d9
-SHA1 (patch-yasr_tts.c) = c7cd92e8530785e682d61f9423d4b796391fa453
-SHA1 (patch-yasr_yasr.h) = 8c1f5fdeb8c9f05e9145ee60983c707834c04b16
diff --git a/yasr/patches/patch-meson.build b/yasr/patches/patch-meson.build
deleted file mode 100644
index a0db0ce8d0..0000000000
--- a/yasr/patches/patch-meson.build
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-Add test for necessary headers
-
---- meson.build.orig	2023-04-08 21:22:57.000000000 +0000
-+++ meson.build
-@@ -26,7 +26,7 @@ localedir = join_paths(prefix, get_optio
- conf.set_quoted('LOCALEDIR', localedir)
- 
- foreach h : [ 'fcntl.h', 'sys/ioctl.h', 'sys/time.h', 'unistd.h',  'utmpx.h',
--  'pty.h', 'locale.h']
-+  'util.h', 'libutil.h', 'pty.h', 'locale.h']
-   if cc.check_header(h)
-     conf.set('HAVE_@0@'.format(h.underscorify().to_upper()), 1)
-   endif
diff --git a/yasr/patches/patch-yasr_main.c b/yasr/patches/patch-yasr_main.c
deleted file mode 100644
index 8c8d920408..0000000000
--- a/yasr/patches/patch-yasr_main.c
+++ /dev/null
@@ -1,946 +0,0 @@
-$NetBSD$
-
-Remove non-portable use of WCHAR_T in iconv code.
-Remove the enforcing of UTF-8 (but the code is expeting multibyte
-encodings or ASCII).
-Fix the reading of char after space using right cursor key.
-Use defined constants in buffer sizes when they are used elsewhere.
-Remove unused argument of gulp().
-Fix bug: buf[] used instead of kbuf[].
-Fix bug: the reading of master can be truncated even just getting one char at
-a time (bug in NetBSD's pty implementation?), the code has to take that
-into account.
-Simplify formatting now that we are there, but according to the rest of the code.
-
---- yasr/main.c.orig	2023-04-08 21:22:57.000000000 +0000
-+++ yasr/main.c
-@@ -39,8 +39,10 @@ static int cpid;
- static int size, wsize;
- static int master, slave;
- char *conffile = NULL;
--unsigned char buf[256];
--wchar_t wide_buf[256];
-+#define BUF_SIZE 256
-+#define WIDE_BUF_SIZE 256
-+char buf[BUF_SIZE];
-+wchar_t wide_buf[WIDE_BUF_SIZE];
- char usershell[OPT_STR_SIZE];
- static struct termios t;
- Win *win;
-@@ -50,9 +52,10 @@ Tts tts;
- Ui ui;
- Uirev rev;
- static int speaking = 1;
--int kbuf[100];
-+#define KBUF_SIZE 100
-+int kbuf[KBUF_SIZE];
- int kbuflen = 0;
--static wchar_t okbuf[100];
-+static wchar_t okbuf[KBUF_SIZE];
- static int okbuflen = 0;
- static int oldcr = 0, oldcc = 0, oldch = 0;
- Voices voices;
-@@ -307,40 +310,22 @@ is_separator (int ch)
- static int
- getkey_buf ()
- {
--  char *b1, *b2;
--  size_t s1, s2;
-   wchar_t ch;
-   int key;
-   int result;
- 
--  s1 = size;
--  s2 = sizeof (wchar_t);
--  b1 = (char *) buf;
--  b2 = (char *) &ch;
--  iconv (ih_inp, NULL, NULL, NULL, NULL);
--  result = iconv (ih_inp, &b1, &s1, &b2, &s2);
--  if (result != -1)
--  {
--    if (!s1)
--      return ch;
--  }
-+  result = mbtowc(&ch, buf, size);
-+  if (result == size && result != -1)
-+    return (int)ch;
-   key = (int) buf[0];
-   if (size > 1)
--  {
-     key = (key << 8) + buf[1];
--  }
-   if (size > 2)
--  {
-     key = (key << 8) + buf[2];
--  }
-   if (size > 3)
--  {
-     key = (key << 8) + buf[3];
--  }
-   if (key >> 8 == 0x1b4f)
--  {
-     key += 0x000c00;
--  }
- 
-   /* Convert high-bit meta keys to escape form */
- #ifndef __linux__
-@@ -355,11 +340,9 @@ getinput ()
- {
-   int key;
- 
--  size = read (0, buf, 255);
-+  size = read (0, buf, BUF_SIZE);
-   if (size <= 0)
--  {
-     finish (0);
--  }
-   key = getkey_buf ();
-   if (key == ui.disable)
-   {
-@@ -385,9 +368,7 @@ getinput ()
- 
-   tts_silence ();
-   if (ui.silent == -1)
--  {
-     ui.silent = 0;
--  }
-   ui.silent = -ui.silent;
-   if (ui.meta)
-   {
-@@ -401,9 +382,7 @@ getinput ()
-     okbuflen = tts.oflag = 0;
-   }
-   if (!ui_keypress (key))
--  {
-     (void) write (master, buf, size);
--  }
- }
- 
- static void
-@@ -418,9 +397,7 @@ wincpy (Win ** d, Win * s)
-   (*d)->cc = s->cc;
-   (*d)->mode = s->mode;
-   for (i = 0; i < s->rows; i++)
--  {
-     (void) memcpy ((*d)->row[i], s->row[i], s->cols * CHARSIZE);
--  }
-   (void) memcpy (&(*d)->savecp, &s->savecp, sizeof (Curpos));
- }
- 
-@@ -430,9 +407,7 @@ win_end (Win * win)
-   int i;
- 
-   for (i = 0; i < win->rows; i++)
--  {
-     free (win->row[i]);
--  }
-   free (win->row);
-   free (win->tab);
- }
-@@ -450,9 +425,7 @@ win_scrollup ()
-   tmpc = win->row[win_scrollmin];
-   (void) memset (tmpc, 0, win->cols * CHARSIZE);
-   for (i = win_scrollmin; i < win_scrollmax; i++)
--  {
-     win->row[i] = win->row[i + 1];
--  }
-   win->row[i] = tmpc;
-   win->cr--;
- }
-@@ -472,9 +445,7 @@ win_lf ()
-     tmpc = win->row[win_scrollmin];
-     (void) memset (tmpc, 0, win->cols * CHARSIZE);
-     for (i = win_scrollmin; i < win_scrollmax; i++)
--    {
-       win->row[i] = win->row[i + 1];
--    }
-     win->row[i] = tmpc;
-     win->cr--;
-   }
-@@ -490,9 +461,7 @@ win_scrolldown ()
-   tmpc = win->row[win_scrollmax];
-   (void) memset (tmpc, 0, CHARSIZE * win->cols);
-   for (i = win_scrollmax - 1; i >= win->cr; i--)
--  {
-     win->row[i + 1] = win->row[i];
--  }
-   win->row[win->cr] = tmpc;
- }
- 
-@@ -533,41 +502,44 @@ oldgulp (unsigned char *buf, int *size, 
-     if (ep)
-     {
-       n = buf + *size - *ep;
--      (void) memmove (buf, *ep, 256 - n);
--      *size = n + read (master, buf + n, 255 - n);
-+      (void) memmove (buf, *ep, BUF_SIZE - n);
-+      *size = n + read (master, buf + n, BUF_SIZE - 1  - n);
-       buf[*size] = '\0';
-       (void) write (1, buf + n, *size - n);
-       *ep = buf;
-       return ((char *) buf + n);
-     }
--    *size = read (master, buf, 255);
-+    *size = read (master, buf, BUF_SIZE - 1);
-     buf[*size] = '\0';
-     (void) write (1, buf, *size);
-     return ((char *) buf);
-   }
--  *size += read (master, buf + *size, 255 - *size);
-+  *size += read (master, buf + *size, BUF_SIZE - 1 - *size);
-   buf[*size] = '\0';
-   return ((char *) (buf + os));
- }
- 
- #endif
- 
--/*!
-+/*
- function reads portion of data into buf and converts
- to wide string, leaving 'leave' character in wide_buf;
- */
--static int bytes_left;
-+static int bytes_left = 0;
- static char *bytes_left_start;
- static void
- read_buf (int leave)
- {
--  char *b1, *b2;
--  size_t s1, s2;
--  if (bytes_left)
--  {
--    memcpy (buf, bytes_left_start, bytes_left);
-+  int mbcharsize;
-+  char *mbb;
-+  wchar_t *wcb, tmpb[WIDE_BUF_SIZE];
-+  size_t mbs;
-+  
-+  if (bytes_left){
-+    memcpy (tmpb, bytes_left_start, bytes_left);
-+    memcpy (buf, tmpb, bytes_left);
-   }
--  size = read (master, buf + bytes_left, 255 - bytes_left - leave);
-+  size = read (master, buf + bytes_left, BUF_SIZE - bytes_left - 1);
-   if (size < 0)
-   {
-     perror ("read");
-@@ -577,39 +549,43 @@ read_buf (int leave)
-   size += bytes_left;
-   buf[size] = 0;
-   bytes_left = 0;
--  b1 = (char *) buf;
--  b2 = (char *) (wide_buf + leave);
--  if (leave)
--    memcpy (wide_buf, wide_buf + wsize - leave,
--	    sizeof (wchar_t) * (wsize - leave));
--  s1 = size;
--  s2 = (255 - leave) * sizeof (wchar_t);
--  while (s1 > 0)
--  {
--
--    iconv (ih_inp, NULL, NULL, NULL, NULL);
--    if (iconv (ih_inp, &b1, &s1, &b2, &s2) == (size_t) -1)
-+  mbb = buf;
-+  wcb = wide_buf + leave;
-+  if (leave != 0 && leave < wsize){
-+    memcpy (tmpb, wide_buf + wsize - leave, sizeof (wchar_t) * leave);
-+    memcpy (wide_buf, tmpb, sizeof (wchar_t) * leave);
-+  }
-+  mbs = size;
-+  wsize = leave;
-+  while (mbs > 0 && wsize < (WIDE_BUF_SIZE - 1))
-+  {
-+    mbcharsize = mbrtowc (wcb, mbb, mbs, NULL);
-+    /* '\0's will not be copyed to wide_buf */
-+    if (mbcharsize <= 0)
-     {
--      if (errno == EINVAL)	/* incomplete sequence at end of buffer */
--      {
-+      if (mbcharsize == (size_t)-2)	/* incomplete sequence at end of buffer */
- 	break;
--      }
-       /* invalid multibyte sequence - should we ignore or insert
-          some character meaning 'invalid'? */
--      b1++;
--      s1--;
--    }
--  }
--  bytes_left = s1;
--  bytes_left_start = b1;
--  wsize = (wchar_t *) b2 - wide_buf;
--  wide_buf[wsize] = 0;
-+      mbb++;
-+      mbs--;
-+      continue;
-+    }
-+    wcb++;
-+    wsize++;
-+    mbb += mbcharsize;
-+    mbs -= mbcharsize;
-+  }
-+  bytes_left = mbs;
-+  bytes_left_start = mbb;
-+  wide_buf[wsize] = L'\0';
- }
- 
- static wchar_t *
--gulp (wchar_t *cp, wchar_t **ep)
-+gulp (wchar_t **ep)
- {
-   int leave;
-+
-   if (!ep)
-     leave = 0;
-   else
-@@ -619,7 +595,7 @@ gulp (wchar_t *cp, wchar_t **ep)
-   read_buf (leave);
-   if (ep)
-     *ep = wide_buf;
--  return wide_buf;
-+  return wide_buf + leave;
- }
- 
- static void
-@@ -627,12 +603,10 @@ kbsay ()
- {
-   if (!ui.kbsay)
-     return;
--  if (buf[0] == 8 || kbuf[0] == 127)
-+  if (kbuf[0] == 8 || kbuf[0] == 127)
-   {
-     if ((ui.kbsay == 2) && (okbuflen != 0))
--    {
-       okbuf[--okbuflen] = 0;
--    }
- 
-     /*tts_say(_("back")); */
-     return;
-@@ -644,10 +618,8 @@ kbsay ()
-   }
- 
-   /* ui.kbsay == 2 -- handle word echo */
--  if (okbuflen < sizeof (kbuf) - 1 && is_char (kbuf[0]))
--  {
-+  if (okbuflen < KBUF_SIZE - 1 && is_char (kbuf[0]))
-     okbuf[okbuflen++] = kbuf[0];
--  }
- }
- 
- #define MIN(a, b) ((a)>(b)? (b): (a))
-@@ -656,9 +628,7 @@ strwtol (wchar_t **p)
- {
-   long t = 0;
-   while (iswdigit (**p))
--  {
-     t = 10 * t + *(*p)++ - '0';
--  }
-   return t;
- }
- 
-@@ -671,24 +641,33 @@ win_csi (wchar_t **pp)
-   int i;
-   int x;
- 
-+  /* last gulp could be just 1 char... */
-+  
-+  if (!**pp)
-+  {
-+    if (!gulp (NULL))
-+      return;
-+    *pp = wide_buf;
-+  }
-+
-   p = *pp;
-+  
-   if (*p == '[')
-     p++;
-+  
-+  if (!*p && !(p = gulp (pp)))
-+    return;
-   if (*p == '?')
-     p++;
-   while (!*p || iswdigit ((int) *p) || *p == ';')
-   {
-     if (!*p)
-     {
--      if (!(p = gulp (p, pp)))
--      {
-+      if (!(p = gulp (pp)))
- 	return;
--      }
-     }
-     else
--    {
-       p++;
--    }
-   }
-   p = *pp;
-   if (*p == '[')
-@@ -697,9 +676,7 @@ win_csi (wchar_t **pp)
-     p++;
-   }
-   if (*p == '?')
--  {
-     p++;
--  }
-   (void) memset (&parm, 0, sizeof (int) * 16);
-   while (numparms < 16 && (*p == ';' || iswdigit ((int) *p)))
-   {
-@@ -709,12 +686,10 @@ win_csi (wchar_t **pp)
-     else
-       break;			/* TODO: is this redundant? */
-   }
--
-   *pp = p + 1;
-   if (ignore)
--  {
-     return;
--  }
-+
-   switch (*p)
-   {
-   case '@':			/* insert characters */
-@@ -727,9 +702,7 @@ win_csi (wchar_t **pp)
-   case 'A':			/* move up */
-     win->cr -= PARM1;
-     if (win->cr < 0)
--    {
-       win->cr = 0;
--    }
-     break;
- 
-   case 'B':			/* move down */
-@@ -780,24 +753,18 @@ win_csi (wchar_t **pp)
-       (void) memset (win->row[win->cr] + win->cc, 0,
- 		     CHARSIZE * (win->cols - win->cc));
-       for (i = win->cr + 1; i < win->rows; i++)
--      {
- 	(void) memset (win->row[i], 0, win->cols * CHARSIZE);
--      }
-       break;
- 
-     case 1:			/* erase from start to cursor */
-       (void) memset (win->row[win->cr], 0, win->cc);
-       for (i = 0; i < win->cr; i++)
--      {
- 	(void) memset (win->row[i], 0, win->cols * CHARSIZE);
--      }
-       break;
- 
-     case 2:			/* erase whole screen */
-       for (i = 0; i < win->rows; i++)
--      {
- 	(void) memset (win->row[i], 0, win->cols * CHARSIZE);
--      }
-       break;
-     }
-     break;
-@@ -823,29 +790,19 @@ win_csi (wchar_t **pp)
-   case 'L':			/* insert rows */
-     x = MIN (PARM1, win_scrollmax - win->cr);
-     for (i = win_scrollmax; i >= win->cr + x; i--)
--    {
-       (void) memcpy (win->row[i], win->row[i - x], win->cols * CHARSIZE);
--    }
-     for (i = win->cr; i < win->cr + x; i++)
--    {
-       (void) memset (win->row[i], 0, win->cols * CHARSIZE);
--    }
-     break;
- 
-   case 'M':
-     x = MIN (PARM1, win_scrollmax - win->cr);
-     if (x + win->cr > win_scrollmax)
--    {
-       x = win_scrollmax - win->cr;
--    }
-     for (i = win->cr; i <= win_scrollmax - x; i++)
--    {
-       (void) memcpy (win->row[i], win->row[i + x], win->cols * CHARSIZE);
--    }
-     for (i = win_scrollmax - x + 1; i <= win_scrollmax; i++)
--    {
-       (void) memset (win->row[i], 0, win->cols * CHARSIZE);
--    }
-     break;
- 
-   case 'P':			/* delete characters */
-@@ -858,16 +815,12 @@ win_csi (wchar_t **pp)
- 
-   case 'S':			/* Scroll up */
-     for (i = 0; i < PARM1; i++)
--    {
-       win_scrollup ();
--    }
-     break;
- 
-   case 'T':			/* Scroll down */
-     for (i = 0; i < PARM1; i++)
--    {
-       win_scrolldown ();;
--    }
-     break;
- 
-   case 'X':			/* Erase characters */
-@@ -884,9 +837,7 @@ win_csi (wchar_t **pp)
-     {
-     case 3:
-       for (i = 0; i < win->cols; i++)
--      {
- 	win->tab[i] = 0;
--      }
-       break;
- 
-     case 0:
-@@ -956,13 +907,9 @@ win_csi (wchar_t **pp)
-   }
- 
-   if (win->cr >= win->rows)
--  {
-     win->cr = win->rows - 1;
--  }
-   else if (win->cr < 0)
--  {
-     win->cr = 0;
--  }
-   if (win->cc >= win->cols - 1)
-     win->cc = win->cols - 1;
-   else if (win->cc < 0)
-@@ -979,20 +926,14 @@ win_addchr (wchar_t ch, int tflag)
-     win->carry++;
-   }
-   if (win->mode & 0x08)
--  {
-     (void) memmove (win->row[win->cr] + win->cc + 1,
- 		    win->row[win->cr] + win->cc,
- 		    (win->cols - win->cc - 1) * CHARSIZE);
--  }
-   win->row[win->cr][win->cc].attr = win->attr;
-   win->row[win->cr][win->cc++].wchar = ch;
-   if (tflag)
--  {
-     if (ui.silent != 1)
--    {
-       tts_addchr (ch);
--    }
--  }
- }
- 
- wchar_t
-@@ -1012,12 +953,8 @@ bol (int cr, int cc)
- 
-   rptr = win->row[cr];
-   for (i = 0; i < cc; i++)
--  {
-     if (y_isblank (rptr[i].wchar))
--    {
-       return (0);
--    }
--  }
- 
-   return (1);
- }
-@@ -1032,12 +969,8 @@ eol (int cr, int cc)
- 
-   rptr = win->row[cr];
-   for (i = cc + 1; i < win->cols; i++)
--  {
-     if (y_isblank (rptr[i].wchar))
--    {
-       return (0);
--    }
--  }
- 
-   return (1);
- }
-@@ -1053,16 +986,10 @@ firstword (int cr, int cc)
-   rptr = win->row[cr];
-   i = cc;
-   while (i && !y_isblank (rptr[i].wchar))
--  {
-     i--;
--  }
-   for (; i; i--)
--  {
-     if (!y_isblank (rptr[i].wchar))
--    {
-       return (0);
--    }
--  }
- 
-   return (1);
- }
-@@ -1077,20 +1004,12 @@ lastword (int cr, int cc)
- 
-   rptr = win->row[cr];
-   if (y_isblank (rptr[i].wchar))
--  {
-     i++;
--  }
-   while (i < win->cols && !y_isblank (rptr[i].wchar))
--  {
-     i++;
--  }
-   while (i < win->cols)
--  {
-     if (!y_isblank (rptr[i++].wchar))
--    {
-       return (0);
--    }
--  }
- 
-   return (1);
- }
-@@ -1105,14 +1024,13 @@ getoutput ()
-   static int stathit = 0, oldoflag = 0;
- 
-   read_buf (0);
-+
- #ifdef TERMTEST
-   (void) printf ("size=%d buf=%s\n", size, buf);
- #endif
--
-+  
-   if (!size)
--  {
-     finish (0);
--  }
-   p = wide_buf;
- 
-   while (p - wide_buf < wsize)
-@@ -1126,6 +1044,7 @@ getoutput ()
-     case 8:
-       if (win->cc)
- 	win->cc--;
-+
-       else if (win->carry && win->cr)
-       {
- 	win->cr--;
-@@ -1138,9 +1057,7 @@ getoutput ()
- 	ui_saychar (win->cr, win->cc);
-       }
-       if (tts.outlen)
--      {
- 	tts.outlen--;
--      }
-       break;
- 
-     case 9:
-@@ -1153,9 +1070,7 @@ getoutput ()
- 	}
-       }
-       if (i == win->cols)
--      {
- 	win->cc = i - 1;
--      }
-       break;
- 
-     case 10:
-@@ -1173,15 +1088,13 @@ getoutput ()
-       break;			/* may need to change in the future */
- 
-     case 27:
--      if (!*p && !(p = gulp (p, NULL)))
--      {
-+      if (!*p && !(p = gulp (NULL)))
- 	return;
--      }
-       switch (*p++)
-       {
-       case 'D':
- 	win_lf ();
--	break;
-+        break;
-       case 'E':
- 	break;			/* FIXME -- new line */
-       case 'H':
-@@ -1212,13 +1125,9 @@ getoutput ()
-       if (special)
-       {
- 	if (ch == '<')
--	{
- 	  speaking = 0;		/* hack for medievia.com */
--	}
- 	else if (ch == '>')
--	{
- 	  speaking = 1;
--	}
-       }
- #endif
-       if (ch == kbuf[0] && win->cr == oldcr && win->cc == oldcc && kbuflen)
-@@ -1229,19 +1138,13 @@ getoutput ()
- 	(void) memmove (kbuf, kbuf + 1, (--kbuflen) * sizeof (int));
-       }
-       else
--      {
- 	win_addchr (ch, speaking && (!special || !win->cr));
--      }
-       chr = 1;
-     }
-     if (!chr && ch != 8 && (stathit == 0 || ch < '0' || ch > '9'))
--    {
-       tts_flush ();
--    }
-     else
--    {
-       chr = 0;
--    }
-     if ((!win->cc && win->cr > win->rows - 3) || win->cr == win->rows - 1)
-     {
-       stathit = win->cr;
-@@ -1253,10 +1156,17 @@ getoutput ()
-       tts.oflag = oldoflag;
-     }
-   }
--  if (ch == 13 || ch == 10 || ch == 32)
-+  /* If last key was cursor left or cursor right just say char at cursor */
-+  if (kbuf[0] == 0x1b5b43 || kbuf[0] == 0x1b5b44)
-   {
--    tts_flush ();
-+    ui_saychar (win->cr, win->cc);
-+    oldcr = win->cr;
-+    oldcc = win->cc;
-+    oldch = win->row[win->cr][win->cc].wchar;
-+    return;
-   }
-+  if (ch == 13 || ch == 10 || ch == 32)
-+    tts_flush ();
-   if (size > 1)
-   {
-     if (!readable (master, 0))
-@@ -1265,9 +1175,7 @@ getoutput ()
-       return;
-   }
-   else if (ch == 32 || ch == 13)
--  {
-     tts_flush ();
--  }
-   if (tts.oflag || kbuf[0] == 13 || kbuf[0] == 3 || ui.silent)
-   {
-     tts.oflag = stathit = 0;
-@@ -1288,25 +1196,18 @@ getoutput ()
-     case 1:			/* cursor moved right one character */
-       if ((realchar (win->row[win->cr][win->cc - 1].wchar) == kbuf[0] &&
- 	   realchar (oldch) != kbuf[0]) ||
--	  ((y_isblank (oldch) && kbuf[0] == 32)))
--      {
-+		  ((y_isblank (oldch) && kbuf[0] == 32)))
- 	break;
--      }
--      if (kbuf[0] == 0x1b5b43 ||
--	  ((ui.curtrack == 2) && (ui.kbsay != 2 || is_separator (kbuf[0]))))
--      {
-+      if (ui.curtrack == 2 && (ui.kbsay != 2 || is_separator (kbuf[0])))
- 	ui_saychar (win->cr, win->cc);
--      }
-       break;
- 
-     case 0:
-       break;
- 
-     case -1:
--      if (kbuf[0] == 0x1b5b44 || ui.curtrack == 2)
--      {
-+      if (ui.curtrack == 2)
- 	ui_saychar (win->cr, win->cc);
--      }
-       break;
- 
-     default:
-@@ -1315,18 +1216,11 @@ getoutput ()
- 	if (eol (win->cr, win->cc))
- 	  ui_saychar (win->cr, win->cc);
- 	else
--	{
- 	  ui_sayword (win->cr, cblank (win->cr, win->cc) ?
- 		      win->cc + 1 : win->cc);
--	}
-       }
-     }
-   }
--  else if ((kbuf[0] == 0x1b5b43 && bol (win->cr, win->cc)) ||
--	   (kbuf[0] == 0x1b5b44 && eol (win->cr, win->cc)))
--  {
--    ui_saychar (win->cr, win->cc);
--  }
-   else
-   {
-     switch (win->cr - oldcr)
-@@ -1337,24 +1231,18 @@ getoutput ()
- 	ui_sayline (win->cr, 1);
- 	break;
-       }
--      if (win->cc == 0 && (oldcr == win->cols - 1 || kbuf[0] == 0x1b5b43))
-+      if (win->cc == 0 && oldcr == win->cols - 1)
-       {
- 	ui_saychar (win->cr, win->cc);
- 	break;
-       }
-       if (ui.curtrack < 2)
--      {
- 	break;
--      }
-       if (win->cc && bol (win->cr, win->cc) && lastword (oldcr, oldcc)
- 	  && oldcc)
--      {
- 	ui_sayword (win->cr, win->cc);
--      }
-       else
--      {
- 	ui_sayline (win->cr, 1);
--      }
-       break;
-     case -1:			/* cursor moved up a line */
-       if (kbuf[0] == 0x1b5b41)
-@@ -1364,17 +1252,13 @@ getoutput ()
-       }
-       if (ui.curtrack < 2)
- 	break;
--      if (win->cc == win->cols - 1 && (oldcr == 0 || kbuf[0] == 0x1b5b44))
--      {
-+      if (win->cc == win->cols - 1 && oldcr == 0)
- 	ui_saychar (win->cr, win->cc);
--      }
-       else if (lastword (win->cr, win->cc) &&
- 	       !firstword (win->cr, win->cc) &&
- 	       (!win->cc || cblank (win->cr, win->cc - 1)) &&
- 	       firstword (oldcr, oldcc))
--      {
- 	ui_sayword (win->cr, win->cc);
--      }
-       else
- 	ui_sayline (win->cr, 1);
-       break;
-@@ -1429,18 +1313,14 @@ parent ()
-       }
-     }
-     if (FD_ISSET (0, &rf))
--    {
-       getinput ();
--    }
-     if (FD_ISSET (master, &rf))
-     {
-       getoutput ();
--      kbuflen = 0;
-+      kbuf[0] = kbuflen = 0;
-     }
-     if (FD_ISSET (tts.fd, &rf))
--    {
-       get_tts_input ();
--    }
-   }
- }
- 
-@@ -1470,25 +1350,12 @@ main (int argc, char *argv[])
-   bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
-   textdomain (GETTEXT_PACKAGE);
-   strcpy (charmap, nl_langinfo (CODESET));
--  if (!strcmp (charmap, "ANSI_X3.4-1968"))
--    strcpy (charmap, "UTF-8");
--
--  ih_inp = iconv_open ("WCHAR_T", charmap);
--  if (ih_inp == (iconv_t) - 1)
--  {
--    fprintf (stderr, "Codeset %s not supported\n", charmap);
--    exit (1);
--  }
--
--
- #endif
- 
-   if (argv[0][0] == '-')
-     shell = 1;
-   if (isatty (0))
--  {
-     (void) ioctl (0, TIOCGWINSZ, &winsz);
--  }
-   if (!winsz.ws_row)
-   {
-     winsz.ws_row = 25;
-@@ -1529,9 +1396,7 @@ main (int argc, char *argv[])
-     }
-   }
-   if (argv[optind])
--  {
-     subprog = argv + optind;
--  }
-   readconf ();
- 
- #if 0				/* this doesn't work */
-@@ -1539,9 +1404,7 @@ main (int argc, char *argv[])
-   {
-     cp = usershell + strlen (usershell) - 1;
-     while (*cp && *cp != '/')
--    {
-       cp--;
--    }
-     cp++;
-     argv[0] = cp;
-     (void) execv (usershell, argv);
-@@ -1620,9 +1483,7 @@ w_speak (wchar_t *ibuf, int len)
-     {
-       olen -= nc;
-       if (olen)
--      {
- 	tts_out_w (wstart, olen);
--      }
-       olen = 0;
-       while (i < len1 && ibuf[i + 1] == lc)
-       {
-@@ -1641,22 +1502,16 @@ w_speak (wchar_t *ibuf, int len)
- 	wstart = ibuf + i;
-       olen++;
-       if (ibuf[i] != lc)
--      {
- 	nc = 0;
--      }
-       if (!iswalnum (ibuf[i]) &&
- 	  ibuf[i] != 32 && ibuf[i] != '=' && ibuf[i] >= 0)
--      {
- 	lc = ibuf[i];
--      }
-       else
- 	lc = 0;
-     }
-   }
-   if (olen)
--  {
-     tts_out_w (wstart, olen);
--  }
- }
- 
- #if 0
-@@ -1678,9 +1533,7 @@ speak (char *ibuf, int len)
-     {
-       olen -= nc;
-       if (olen)
--      {
- 	tts_out ((unsigned char *) obuf, olen);
--      }
-       olen = 0;
-       while (i < len1 && ibuf[i + 1] == lc)
-       {
-@@ -1697,14 +1550,10 @@ speak (char *ibuf, int len)
-     {
-       obuf[olen++] = ibuf[i];
-       if (ibuf[i] != lc)
--      {
- 	nc = 0;
--      }
-       if (!isalpha ((int) ibuf[i]) && !isdigit ((int) ibuf[i]) &&
- 	  ibuf[i] != 32 && ibuf[i] != '=' && ibuf[i] >= 0)
--      {
- 	lc = ibuf[i];
--      }
-       else
- 	lc = 0;
-       if (olen > 250 && !nc)
-@@ -1715,8 +1564,6 @@ speak (char *ibuf, int len)
-     }
-   }
-   if (olen)
--  {
-     tts_out ((unsigned char *) obuf, olen);
--  }
- }
- #endif
diff --git a/yasr/patches/patch-yasr_tts.c b/yasr/patches/patch-yasr_tts.c
deleted file mode 100644
index e55d54fc2f..0000000000
--- a/yasr/patches/patch-yasr_tts.c
+++ /dev/null
@@ -1,373 +0,0 @@
-$NetBSD$
-
-Remove non-portable use of WCHAR_T in iconv code.
-Fix comment's alignment.
-
---- yasr/tts.c.orig	2023-04-08 21:22:57.000000000 +0000
-+++ yasr/tts.c
-@@ -53,7 +53,8 @@ static Tts_synth synth[] = {
-   {NULL, NULL, "CANCEL SELF\r\n", NULL, NULL, FALSE, "", "quit\r\n"},
- };
- 
--static char *dict[256];
-+#define DICT_SIZE 256
-+static char *dict[DICT_SIZE];
- static int tts_flushed = 0;
- 
- 
-@@ -67,9 +68,7 @@ dict_read (char *buf)
-   {
-     c = strtol (buf, &p, 0);
-     if (c > 255)
--    {
-       return (1);
--    }
-     p++;
-   }
-   else
-@@ -88,20 +87,14 @@ dict_write (FILE * fp)
- {
-   int i;
- 
--  for (i = 0; i < 256; i++)
--  {
-+  for (i = 0; i < DICT_SIZE; i++)
-     if (dict[i])
-     {
-       if (i > 31 && i < 127 && i != 35 && i != 91)
--      {
- 	(void) fprintf (fp, "%c=%s\n", i, dict[i]);
--      }
-       else
--      {
- 	(void) fprintf (fp, "0x%.2x=%s\n", i, dict[i]);
--      }
-     }
--  }
- }
- 
- 
-@@ -111,9 +104,7 @@ void
- tts_flush ()
- {
-   if (tts.outlen)
--  {
-     w_speak (tts.buf, tts.outlen);
--  }
- 
-   tts.outlen = 0;
- 
-@@ -128,9 +119,7 @@ tts_wait (int usecs)
-   if (usecs != -1 && !readable (tts.fd, usecs))
-     return;
-   while (readable (tts.fd, 0))
--  {
-     read (tts.fd, buf, sizeof (buf));
--  }
- }
- #endif
- 
-@@ -140,9 +129,7 @@ tts_silence ()
-   char tmp[1] = { 0 };
- 
-   if (tts_flushed)
--  {
-     return;
--  }
-   tts.obufhead = tts.obuftail = tts.flood = 0;
- #ifdef ENABLE_SPEECHD
-   if (tts.synth == TTS_SPEECHD)
-@@ -200,17 +187,13 @@ tts_obufout (int x)
-   int oldoflag;
- 
-   if (!tts.flood)
--  {
-     opt_queue_empty (2);
--  }
-   oldoflag = tts.oflag;
-   while (tts.obufhead < tts.obuftail)
-   {
-     len = strlen (tts.obuf + tts.obufhead);
-     if (len > 1024)
--    {
-       len = 1024;
--    }
-     len2 = write (tts.fd, tts.obuf + tts.obufhead, len);
- #ifdef TTSLOG
-     (void) write (ofd, tts.obuf + tts.obufhead, len2);
-@@ -225,9 +208,7 @@ tts_obufout (int x)
-       return;
-     }
-     while (tts.obufhead < tts.obuftail && !tts.obuf[tts.obufhead])
--    {
-       tts.obufhead++;
--    }
-   }
-   tts.flood = 0;
-   tts.oflag = oldoflag;
-@@ -242,9 +223,7 @@ tts_addbuf (char *buf, int len, int len2
- 
-   tts.flood = 1;
-   if (len2 == -1)
--  {
-     ptr = buf;
--  }
-   else
-   {
-     ptr = buf + len2;
-@@ -258,9 +237,7 @@ tts_addbuf (char *buf, int len, int len2
-       tts.obuf = realloc (tts.obuf, tts.obuflen);
-     }
-     else
--    {
-       tts_obufpack ();
--    }
-   }
-   (void) memcpy (tts.obuf + tts.obuftail, ptr, len);
-   tts.obuftail += len;
-@@ -276,13 +253,9 @@ tts_send (char *buf, int len)
-   int len2;
- 
-   if (!len)
--  {
-     return;
--  }
-   if (tts_flushed)
--  {
-     tts_flushed = 0;
--  }
- #ifndef SILENT
-   if (!tts.flood)
-   {
-@@ -293,9 +266,7 @@ tts_send (char *buf, int len)
- #endif
- 
-     if (len2 < len)
--    {
-       tts_addbuf (buf, len, len2);
--    }
-   }
-   else
-     tts_addbuf (buf, len, 0);
-@@ -315,10 +286,8 @@ unspeakable (unsigned char ch)
-   if (ch < 32)
-     return 1;
-   while (*p)
--  {
-     if (*p++ == ch)
-       return 1;
--  }
-   return (0);
- }
- 
-@@ -412,7 +381,6 @@ tts_out_w (wchar_t *buf, int len)
-   char *p;
-   int i;
-   int xml = 0;			/* what's this? */
--
-   if (!len)
-     return;
-   if (tts.synth == TTS_SPEECHD)
-@@ -420,9 +388,7 @@ tts_out_w (wchar_t *buf, int len)
-     while (len > 0)
-     {
-       if (*buf < 0x80)
--      {
- 	obuf[obo++] = *buf;
--      }
-       else if (*buf < 0x800)
-       {
- 	obuf[obo++] = 0xc0 | (*buf >> 6);
-@@ -514,9 +480,7 @@ tts_out_w (wchar_t *buf, int len)
-       }
-     }
-     else
--    {
-       obuf[obo++] = *p;
--    }
-     p++;
-   }
-   tts_send (obuf, obo);
-@@ -619,9 +583,7 @@ tts_out (unsigned char *buf, int len)
-       }
-     }
-     else
--    {
-       obuf[obo++] = *p;
--    }
-     p++;
-   }
-   tts_send (obuf, obo);
-@@ -656,9 +618,7 @@ tts_saychar (wchar_t ch)
-   char buf[8];
- 
-   if (!ch)
--  {
-     ch = 32;
--  }
-   if (tts.synth == TTS_SPEECHD)
-   {
- #ifdef ENABLE_SPEECHD
-@@ -674,21 +634,22 @@ tts_saychar (wchar_t ch)
-       tts_printf_ll ("CHAR %c\r\n", ch);
- #else
-     else if (ch < 0x80)
--    {
-       tts_printf_ll ("CHAR %c\r\n", ch);
--    }
-     else
-     {
--      char buf[8], *cin, *cout;
-+      char tmpbuf[MB_CUR_MAX], buf[MB_CUR_MAX], *cin, *cout;
-       size_t l1, l2;
-       iconv_t cd;
--      cd = iconv_open ("UTF-8", "WCHAR_T");
-+      cd = iconv_open ("UTF-8", nl_langinfo (CODESET));
-       if (cd == (iconv_t) - 1)
- 	return;
--      l1 = sizeof (wchar_t);
--      l2 = 7;
--      cin = (char *) &ch;
-+      l1 = wctomb (tmpbuf, ch);
-+      if (l1 == -1)
-+	return;
-+      l2 = sizeof (buf) - 1;
-+      cin = tmpbuf;
-       cout = buf;
-+      
-       iconv (cd, &cin, &l1, &cout, &l2);
-       iconv_close (cd);
-       *cout = 0;
-@@ -704,7 +665,8 @@ tts_saychar (wchar_t ch)
-     return;
-   }
-   if (!synth[tts.synth].charoff)
--  {				/* assume on string does everything */
-+  {
-+    /* assume on string does everything */
-     (void) sprintf (ttsbuf, synth[tts.synth].charon, ch);
-     tts_send (ttsbuf, strlen (ttsbuf));
-     return;
-@@ -725,9 +687,7 @@ tts_saychar (wchar_t ch)
-   ttsbuf[0] = ch;
-   tts_send (ttsbuf, 1);
-   if (synth[tts.synth].saychar_needs_flush)
--  {
-     tts_send (synth[tts.synth].say + 2, strlen (synth[tts.synth].say) - 2);
--  }
-   while (j)
-   {
-     j -= 2;
-@@ -887,9 +847,7 @@ tts_init (int first_call)
- #ifdef TTSLOG
-   ofd = open ("tts.log", O_WRONLY | O_CREAT);
-   if (ofd == -1)
--  {
-     perror ("open");
--  }
- #endif
- 
- #ifdef ENABLE_SPEECHD
-@@ -920,17 +878,11 @@ tts_init (int first_call)
-   else if (tts.port[0] != '|')
-   {
-     if (tts.synth == TTS_DECTALK)
--    {
-       mode = O_NOCTTY | O_RDWR;
--    }
-     else if (tts.synth == TTS_EMACSPEAK_SERVER)
--    {
-       mode = O_WRONLY;
--    }
-     if (first_call)
--    {
-       tts.fd = open (portname, mode);
--    }
-     if (tts.fd == -1)
-     {
-       perror ("tts");
-@@ -958,21 +910,15 @@ tts_init (int first_call)
-     (void) strcpy (buf, tts.port + 1);
-     arg[i = 0] = strtok (buf, " ");
-     while (i < 7)
--    {
-       if (!(arg[++i] = strtok (NULL, " ")))
--      {
- 	break;
--      }
--    }
- 
-     if (first_call)
--    {
-       if (openpty (&tts.fd, &tts.fd_slave, NULL, NULL, NULL) == -1)
-       {
- 	perror ("openpty");
- 	exit (1);
-       }
--    }
- 
-     if (!(tts.pid = fork ()))
-     {
-@@ -989,9 +935,7 @@ tts_init (int first_call)
-     }
-     (void) usleep (10000);
-     if (tts.pid == -1)
--    {
-       perror ("forkpty");
--    }
-   }
-   if (tts.synth == TTS_SPEECHD)
-   {
-@@ -1043,10 +987,8 @@ void
- tts_addchr (wchar_t ch)
- {
-   tts.buf[tts.outlen++] = ch;
--  if (tts.outlen > 250)
--  {
-+  if (tts.outlen > TTS_BUF_SIZE)
-     tts_flush ();
--  }
- }
- 
- 
-@@ -1065,9 +1007,7 @@ tts_initsynth (int *argp)
-     }
-   }
-   if (!ui.silent)
--  {
-     tts_say (_("Synthesizer reinitialized."));
--  }
- }
- 
- 
-@@ -1078,9 +1018,7 @@ tts_reinit (int *argp)
-   int pid = tts.pid;
- 
-   if (pid == 0)
--  {
-     return;
--  }
- 
-   tts.reinit = 1;		/* Start reinit */
- 
-@@ -1090,20 +1028,14 @@ tts_reinit (int *argp)
-   if (kill (pid, SIGTERM) != 0)
-   {
-     if (errno == ESRCH)
--    {
-       tts_reinit2 ();
--    }
-     else
--    {
-       kill (pid, SIGKILL);
--    }
-   }
- 
-   /* wait init completion (tts.fd must be available) */
-   while (tts.reinit)
--  {
-     usleep (100000);
--  }
- }
- 
- 
diff --git a/yasr/patches/patch-yasr_yasr.h b/yasr/patches/patch-yasr_yasr.h
deleted file mode 100644
index 95a5d89a04..0000000000
--- a/yasr/patches/patch-yasr_yasr.h
+++ /dev/null
@@ -1,39 +0,0 @@
-$NetBSD$
-
-Remove size of array declarations defined elsewhere
-
---- yasr/yasr.h.orig	2023-04-08 21:22:57.000000000 +0000
-+++ yasr/yasr.h
-@@ -128,6 +128,7 @@ enum mpunct
- 
- #define OPT_STR_SIZE 256
- 
-+#define TTS_BUF_SIZE 256
- typedef struct Tts Tts;
- struct Tts
- {
-@@ -140,7 +141,7 @@ struct Tts
-   int obufhead, obuflen, obuftail;
-   int oflag;			/* set to 1 every time tts_send is called */
-   int outlen;
--  wchar_t buf[256];
-+  wchar_t buf[TTS_BUF_SIZE];
-   int synth;
-   pid_t pid;
-   char port[OPT_STR_SIZE];
-@@ -304,11 +305,11 @@ extern int cl_synthport;
- extern Opt opt[];
- extern int synthopt;
- extern char *conffile;
--extern unsigned char buf[256];
--extern int kbuf[100];
-+extern char buf[];
-+extern int kbuf[];
- extern int kbuflen;
--extern char usershell[OPT_STR_SIZE];
--extern char ttsbuf[80];
-+extern char usershell[];
-+extern char ttsbuf[];
- extern Voices voices;
- extern int special;
- extern char charmap[];


Home | Main Index | Thread Index | Old Index