/[LeafOK_CVS]/lbbs/src/io.c
ViewVC logotype

Diff of /lbbs/src/io.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.63 by sysadm, Tue Nov 4 14:58:56 2025 UTC Revision 1.64 by sysadm, Wed Nov 5 02:48:48 2025 UTC
# Line 23  Line 23 
23  #include <libssh/libssh.h>  #include <libssh/libssh.h>
24  #include <libssh/server.h>  #include <libssh/server.h>
25    
26  char stdio_charset[20] = BBS_DEFAULT_CHARSET;  const char BBS_default_charset[CHARSET_MAX_LEN + 1] = "UTF-8";
27    char stdio_charset[CHARSET_MAX_LEN + 1] = "UTF-8";
28    
29  // static input / output buffer  // static input / output buffer
30  static char stdin_buf[LINE_BUFFER_LEN];  static char stdin_buf[LINE_BUFFER_LEN];
# Line 1026  int io_buf_conv(iconv_t cd, char *p_buf, Line 1027  int io_buf_conv(iconv_t cd, char *p_buf,
1027    
1028  int io_conv_init(const char *charset)  int io_conv_init(const char *charset)
1029  {  {
1030          char tocode[32];          char tocode[CHARSET_MAX_LEN + 20];
1031    
1032          if (charset == NULL)          if (charset == NULL)
1033          {          {
# Line 1039  int io_conv_init(const char *charset) Line 1040  int io_conv_init(const char *charset)
1040          strncpy(stdio_charset, charset, sizeof(stdio_charset) - 1);          strncpy(stdio_charset, charset, sizeof(stdio_charset) - 1);
1041          stdio_charset[sizeof(stdio_charset) - 1] = '\0';          stdio_charset[sizeof(stdio_charset) - 1] = '\0';
1042    
1043          snprintf(tocode, sizeof(tocode), "%s%s", BBS_DEFAULT_CHARSET,          snprintf(tocode, sizeof(tocode), "%s%s", BBS_default_charset,
1044                           (strcasecmp(stdio_charset, BBS_DEFAULT_CHARSET) == 0 ? "" : "//IGNORE"));                           (strcasecmp(stdio_charset, BBS_default_charset) == 0 ? "" : "//IGNORE"));
1045          stdin_cd = iconv_open(tocode, stdio_charset);          stdin_cd = iconv_open(tocode, stdio_charset);
1046          if (stdin_cd == (iconv_t)(-1))          if (stdin_cd == (iconv_t)(-1))
1047          {          {
# Line 1049  int io_conv_init(const char *charset) Line 1050  int io_conv_init(const char *charset)
1050          }          }
1051    
1052          snprintf(tocode, sizeof(tocode), "%s%s", stdio_charset,          snprintf(tocode, sizeof(tocode), "%s%s", stdio_charset,
1053                           (strcasecmp(BBS_DEFAULT_CHARSET, stdio_charset) == 0 ? "" : "//TRANSLIT"));                           (strcasecmp(BBS_default_charset, stdio_charset) == 0 ? "" : "//TRANSLIT"));
1054          stdout_cd = iconv_open(tocode, BBS_DEFAULT_CHARSET);          stdout_cd = iconv_open(tocode, BBS_default_charset);
1055          if (stdout_cd == (iconv_t)(-1))          if (stdout_cd == (iconv_t)(-1))
1056          {          {
1057                  log_error("iconv_open(%s->%s) error: %d\n", BBS_DEFAULT_CHARSET, tocode, errno);                  log_error("iconv_open(%s->%s) error: %d\n", BBS_default_charset, tocode, errno);
1058                  iconv_close(stdin_cd);                  iconv_close(stdin_cd);
1059                  return -2;                  return -2;
1060          }          }


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1