zed.0xff.me

proftpd utf8

Патчим proftpd на тему отображения в ftptop нормальных русских (ну, или японских, в общем utf8 :) букв

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
--- proftpd-1.3.2-orig/utils/ftptop.c        2009-03-05 16:43:35.000000000 +0500
+++ proftpd-1.3.2/utils/ftptop.c        2009-03-09 11:54:51.000000000 +0500
@@ -37,6 +37,7 @@
 #include <signal.h>
 #include <stdlib.h>
 #include <time.h>
+#include <locale.h>

 static const char *program = "ftptop";

@@ -553,6 +554,8 @@
   signal(SIGINT, finish);
   signal(SIGTERM, finish);

+  setlocale(LC_ALL,"");
+
   /* Initialize the display. */
   initscr();
   cbreak();
--- proftpd-1.3.2-orig/configure.in        2009-03-05 16:43:35.000000000 +0500
+++ proftpd-1.3.2/configure.in        2009-03-09 11:23:51.000000000 +0500
@@ -1720,9 +1720,14 @@
 fi

 if test x"$ac_cv_header_ncurses_h" = xyes; then
-  AC_CHECK_LIB(ncurses, initscr,
-    [ CURSES_LIBS="-lncurses"
+  AC_CHECK_LIB(ncursesw, initscr,
+    [ CURSES_LIBS="-lncursesw"
       AC_DEFINE(HAVE_LIBNCURSES, 1, [Define if you have ncurses])
+    ],
+    [ AC_CHECK_LIB(ncurses, initscr,
+      [ CURSES_LIBS="-lncurses"
+        AC_DEFINE(HAVE_LIBNCURSES, 1, [Define if you have ncurses])
+      ])
     ])
 fi

после применения патча также нужно прогнать (в смысле запустить) ./autoconf, чтобы он перегенерил configure.

баг и обсуждение на багтрекере proftpd

в данный момент девелоперы proftpd активно фиксят поддержку utf8. так что скоро ждем в релизе :)

еще у него была проблемка с мусклом при включенном NLS. вылечил так:

1
2
3
4
5
6
7
8
9
10
11
--- proftpd-1.3.2-orig/contrib/mod_sql_mysql.c  2009-03-05 16:43:35.000000000 +0500
+++ proftpd-1.3.2/contrib/mod_sql_mysql.c       2009-03-05 16:44:02.000000000 +0500
@@ -440,7 +440,7 @@
     return _build_error(cmd, conn);
   }

-#ifdef PR_USE_NLS
+#ifdef PR_USE_NLS_SQL
   if (pr_encode_get_encoding() != NULL) {

 # if MYSQL_VERSION_ID >= 50007