Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37564906
en ru br
Репозитории ALT
S:1.13.1-alt1
5.1: 1.9.15-alt5
4.1: 1.9.15-alt5
4.0: 1.9.15-alt4
3.0: 1.9.11-alt1
www.altlinux.org/Changes

Группа :: Система/Серверы
Пакет: dictd

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: dictd-1.9.15-natspec.patch
Скачать


diff -Naur dictd-1.9.11/dictl.in dictd-1.9.11.fix/dictl.in
--- dictd-1.9.11/dictl.in	2003-10-26 14:04:55 +0100
+++ dictl.in	2004-01-29 10:51:07 +0100
@@ -48,7 +48,7 @@
 
 #####################################
 
-params="dict"
+params="dict -n"
 
 while test $# -ne 0; do
     case $1 in
--- /home/lav/RPM/BUILD/dictd-1.9.15/configure.in	2004-12-23 21:56:44 +0300
+++ configure.in	2006-03-13 00:09:30 +0300
@@ -320,6 +320,9 @@
     fi
 fi
 
+# Checks for libnatspec
+AM_PATH_NATSPEC
+
 AC_CHECK_LIB(Judy, JudySLNext, [JUDYLIB=-lJudy])
 AC_CHECK_LIB(dbi,  dbi_shutdown, [DBILIB=-ldbi])
 
--- /home/lav/RPM/BUILD/dictd-1.9.15/Makefile.in	2004-12-13 22:12:55 +0300
+++ Makefile.in	2006-03-13 00:13:35 +0300
@@ -81,7 +81,7 @@
 LDFLAGS=        @LDFLAGS@
 XTRACFLAGS=     @WCFLAGS@ @XTRACFLAGS@ @DEFS@ @CPPFLAGS@ -I.
 XTRALDFLAGS=    @WLDFLAGS@ @XTRALDFLAGS@
-LDLIBS=		@LIBS@
+LDLIBS=		@LIBS@ @NATSPEC_LIBS@
 LIBOBJS=        @LIBOBJS@
 LIBSOBJS=       $(LIBOBJS:.o=.os)
 EXES=	 	dict dictd dictzip dictfmt
--- /home/lav/RPM/BUILD/dictd-1.9.15/dict.c	2004-11-17 15:39:44 +0300
+++ dict.c	2006-03-13 00:24:29 +0300
@@ -25,6 +25,10 @@
 #include "parse.h"
 #include "md5.h"
 #include <stdarg.h>
+#include <locale.h>
+#ifdef HAVE_NATSPEC
+#include <natspec.h>
+#endif
 
 extern int         yy_flex_debug;
        lst_List    dict_Servers;
@@ -98,6 +102,8 @@
 #define EXST_INVALID_STRATEGY        40
 #define EXST_CONNECTION_FAILED       41
 
+char *localcharset = "";
+
 struct def {
    lst_List   data;
    const char *word;
@@ -266,6 +272,8 @@
    lst_List l = lst_create();
    char     line[BUFFERSIZE];
    int      len;
+   char     *source;
+
 
    while ((len = net_read(s, line, BUFFERSIZE - 1)) >= 0) {
       line [len] = 0;
@@ -273,10 +281,10 @@
       client_bytes += len;
       PRINTF(DBG_RAW,("* Text: %s\n",line));
       if (line[0] == '.' && line[1] == '\0') break;
+	  source = line;
       if (len >= 2 && line[0] == '.' && line[1] == '.') 
-	 lst_append( l, xstrdup(line + 1) );
-      else
-	 lst_append( l, xstrdup(line) );
+           source++;
+      lst_append( l, natspec_convert(source, localcharset, "UTF-8", 3));
    }
    if (len < 0) {
        client_close_pager();
@@ -685,12 +693,15 @@
       cmd_reply.key     = c->key;
    }
    if ((len = strlen(buffer))) {
-      char *pt;
+      char *pt, *decodedline;
 
       PRINTF(DBG_PIPE,("* Sending %d commands (%d bytes)\n",count,len));
       PRINTF(DBG_RAW,("* Send/%d: %s",c->command,buffer));
-      pt = alloca(2*len);
-      client_crlf(pt,buffer);
+
+      decodedline = natspec_convert(buffer, "UTF-8", localcharset, 3);
+      pt = alloca(2*strlen(decodedline));
+      client_crlf(pt, decodedline);
+      free(decodedline);
       net_write( cmd_reply.s, pt, strlen(pt) );
    } else {
       PRINTF(DBG_PIPE,("* Sending nothing\n"));
@@ -1161,6 +1172,7 @@
       "-s --strategy <strategy>  strategy for matching or defining",
       "-c --config <file>        specify configuration file",
       "-C --nocorrect            disable attempted spelling correction",
+      "-n --notranslate          disable UTF-8 -> client encoding translation",
       "-D --dbs                  show available databases",
       "-S --strats               show available search strategies",
       "-H --serverhelp           show server help",
@@ -1217,6 +1229,7 @@
       { "match",      0, 0, 'm' },
       { "strategy",   1, 0, 's' },
       { "nocorrect",  0, 0, 'C' },
+      { "notranslate",0, 0, 'n' }, 
       { "config",     1, 0, 'c' },
       { "dbs",        0, 0, 'D' },
       { "strats",     0, 0, 'S' },
@@ -1236,6 +1249,8 @@
       { 0,            0, 0,  0  }
    };
 
+   setlocale(LC_CTYPE, "");
+
    dict_output = stdout;
    maa_init(argv[0]);
 
@@ -1249,7 +1264,7 @@
    dbg_register( DBG_URL,     "url" );
 
    while ((c = getopt_long( argc, argv,
-			    "h:p:d:i:Ims:DSHau:c:Ck:VLvrP:",
+			    "h:p:d:i:Imns:DSHau:c:Ck:VLvrP:",
 			    longopts, NULL )) != EOF)
    {
       switch (c) {
@@ -1259,6 +1274,7 @@
       case 'i': database = optarg; function |= INFO;   break;
       case 'I':                    function |= SERVER; break;
       case 'm':                    function = MATCH;   break;
+      case 'n': localcharset = "UTF-8";                break;
       case 's': strategy = optarg;                     break;
       case 'D':                    function |= DBS;    break;
       case 'S':                    function |= STRATS; break;
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin