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