Index: config/config.in =================================================================== --- config/config.in (revision 1672) +++ config/config.in (working copy) @@ -595,6 +595,11 @@ fi bool 'thttpd' CONFIG_USER_THTTPD_THTTPD bool 'tinyirc' CONFIG_USER_TINYIRC_TINYIRC +bool 'tmsnc' CONFIG_USER_TMSNC_TMSNC +if [ "$CONFIG_USER_TMSNC_TMSNC" = "y" ]; then + define_bool CONFIG_LIB_LIBSSL y + define_bool CONFIG_LIB_NCURSES y +fi bool 'traceroute' CONFIG_USER_TRACEROUTE_TRACEROUTE bool 'vconfig' CONFIG_USER_VCONFIG_VCONFIG Index: config/Configure.help =================================================================== --- config/Configure.help (revision 1672) +++ config/Configure.help (working copy) @@ -1335,6 +1335,9 @@ CONFIG_USER_TINYIRC_TINYIRC Very tiny IRC client. +CONFIG_USER_TMSNC_TMSNC + Text mode MSN Messenger client. + CONFIG_USER_TRIPWIRE_TRIPWIRE The tripwire file modification detection utility. Index: user/Makefile =================================================================== --- user/Makefile (revision 1672) +++ user/Makefile (working copy) @@ -364,6 +364,7 @@ dir_$(CONFIG_USER_TINYTCL_TCLSH) += tinytcl dir_$(CONFIG_USER_TIP_TIP) += tip dir_$(CONFIG_USER_TIMEPEG_TPT) += tpt +dir_$(CONFIG_USER_TMSNC_TMSNC) += tmsnc dir_$(CONFIG_USER_TRACEROUTE_TRACEROUTE) += traceroute dir_$(CONFIG_USER_TRIPWIRE_SIGGEN) += tripwire dir_$(CONFIG_USER_TRIPWIRE_TRIPWIRE) += tripwire diff -urN user/tmsnc/tmsnc-0.3.2/configure user/tmsnc/src/configure --- user/tmsnc/tmsnc-0.3.2/configure 2006-10-17 13:14:07.000000000 +0200 +++ user/tmsnc/src/configure 2006-12-26 14:50:54.000000000 +0100 @@ -5488,7 +5488,7 @@ echo "$as_me: error: You don't seem to have the curses headers installed" >&2;} { (exit 1); exit 1; }; } fi -CURSES_LIBS="$CURSES_LIBS -lpanel -lform" +CURSES_LIBS="-lpanel -lform $CURSES_LIBS" if test "X$prefix" = "XNONE"; then diff -urN user/tmsnc/tmsnc-0.3.2/src/charset.c user/tmsnc/src/src/charset.c --- user/tmsnc/tmsnc-0.3.2/src/charset.c 2006-10-17 13:09:56.000000000 +0200 +++ user/tmsnc/src/src/charset.c 2006-12-26 14:00:20.000000000 +0100 @@ -99,4 +99,11 @@ { return convert(to_cd, ibuf, isize, obuf, osize); } +#else +char *strncpyz(char *dest, const char *src, size_t n) +{ + strncpy(dest, src, n); + dest[n] = '\0'; + return dest; +} #endif diff -urN user/tmsnc/tmsnc-0.3.2/src/core.h user/tmsnc/src/src/core.h --- user/tmsnc/tmsnc-0.3.2/src/core.h 2006-10-17 13:09:56.000000000 +0200 +++ user/tmsnc/src/src/core.h 2006-12-26 14:00:20.000000000 +0100 @@ -114,9 +114,10 @@ int https_auth(char *, int, char *, char *, char *, char *, char *, int, void (*cb) (int, void *)); -/* translate.c */ +/* charset.c */ int convert_from_utf8(char *, size_t, char *, size_t); int convert_to_utf8(char *, size_t, char *, size_t); +char *strncpyz(char *, const char *, size_t); /* debug.c */ int debug_init(void); diff -urN user/tmsnc/tmsnc-0.3.2/src/core_net.c user/tmsnc/src/src/core_net.c --- user/tmsnc/tmsnc-0.3.2/src/core_net.c 2006-10-17 13:09:56.000000000 +0200 +++ user/tmsnc/src/src/core_net.c 2006-12-26 14:00:20.000000000 +0100 @@ -194,7 +194,7 @@ #ifdef HAVE_ICONV convert_to_utf8(str, strlen(str), conv_str, conv_size); #else - strncpy(conv_str, str, strlen(str)); + strncpyz(conv_str, str, strlen(str)); #endif *csc++; @@ -665,7 +665,7 @@ #ifdef HAVE_ICONV convert_to_utf8(nick, strlen(nick), buf, sizeof(buf)); #else - strncpy(buf, nick, sizeof(buf) - 1); + strncpyz(buf, nick, sizeof(buf) - 1); #endif MSN_url_encode(buf, r_buf, sizeof(r_buf) - 1); @@ -699,7 +699,7 @@ #ifdef HAVE_ICONV convert_to_utf8(buf, strlen(buf), session->me.cmedia, CMEDIA_LEN); #else - strncpy(session->me.cmedia, buf, CMEDIA_LEN - 1); + strncpyz(session->me.cmedia, buf, CMEDIA_LEN - 1); #endif MSN_send_uux(session); @@ -717,7 +717,7 @@ #ifdef HAVE_ICONV convert_to_utf8(buf, strlen(buf), session->me.psm, PSM_LEN); #else - strncpy(session->me.psm, buf, PSM_LEN - 1); + strncpyz(session->me.psm, buf, PSM_LEN - 1); #endif MSN_send_uux(session); @@ -879,7 +879,7 @@ #ifdef HAVE_ICONV convert_from_utf8(ptr[0], strlen(ptr[0]), session->contact[i]->psm, PSM_LEN - 1); #else - strncpy(session->contact[i]->psm, ptr[0], PSM_LEN - 1); + strncpyz(session->contact[i]->psm, ptr[0], PSM_LEN - 1); #endif snprintf(message, message_len-1, "%s's psm : %s", session->contact[i]->addr, session->contact[i]->psm); diff -urN user/tmsnc/tmsnc-0.3.2/src/dialog.c user/tmsnc/src/src/dialog.c --- user/tmsnc/tmsnc-0.3.2/src/dialog.c 2006-10-17 13:09:56.000000000 +0200 +++ user/tmsnc/src/src/dialog.c 2006-12-26 13:43:53.000000000 +0100 @@ -125,6 +125,7 @@ break; case KEY_BACKSPACE: case 127: + case 8: if (dialog_ptr > 0) { dialog_ptr--; str_length--; diff -urN user/tmsnc/tmsnc-0.3.2/src/event.c user/tmsnc/src/src/event.c --- user/tmsnc/tmsnc-0.3.2/src/event.c 2006-10-17 13:09:56.000000000 +0200 +++ user/tmsnc/src/src/event.c 2006-12-26 13:43:53.000000000 +0100 @@ -258,6 +258,7 @@ break; case KEY_BACKSPACE: case 127: /* Backspace in terminal.app */ + case 8: if (c_win->field_ptr > 0) { c_win->field_ptr--; c_win->field_length--; diff -urN user/tmsnc/tmsnc-0.3.2/src/login.c user/tmsnc/src/src/login.c --- user/tmsnc/tmsnc-0.3.2/src/login.c 2006-10-17 13:09:56.000000000 +0200 +++ user/tmsnc/src/src/login.c 2006-12-26 13:43:53.000000000 +0100 @@ -32,8 +32,8 @@ mvwaddstr(statuswin, 1, 31, "ERROR"); mvwaddch(statuswin, 1, 2, '['); - mvwaddch(statuswin, 1, 65, ']'); - mvwaddstr(statuswin, 3, (70 - (strlen(str))) / 2, str); + mvwaddch(statuswin, 1, 55, ']'); + mvwaddstr(statuswin, 3, (60 - (strlen(str))) / 2, str); wrefresh(statuswin); } @@ -62,8 +62,8 @@ char *addr; char *pass; { - wins->field[0] = new_field(1, 46, 2, 2, 4, 0); - wins->field[1] = new_field(1, 46, 4, 2, 4, 0); + wins->field[0] = new_field(1, 36, 2, 2, 4, 0); + wins->field[1] = new_field(1, 36, 4, 2, 4, 0); wins->field[2] = NULL; /* @@ -94,10 +94,10 @@ int max_y; int max_x; { - wins->main = newwin(11, 70, (max_y - 11) / 2, (max_x - 70) / 2); + wins->main = newwin(11, 60, (max_y - 11) / 2, (max_x - 60) / 2); wins->main_panel = new_panel(wins->main); - wins->formwin = derwin(wins->main, 5, 48, 1, 20); - statuswin = derwin(wins->main, 4, 68, 6, 1); + wins->formwin = derwin(wins->main, 5, 38, 1, 10); + statuswin = derwin(wins->main, 4, 58, 6, 1); top_panel(wins->main_panel); refresh(); doupdate(); @@ -107,7 +107,7 @@ */ wins->form = new_form(wins->field); set_form_win(wins->form, wins->formwin); - set_form_sub(wins->form, derwin(wins->formwin, 5, 48, 0, 0)); + set_form_sub(wins->form, derwin(wins->formwin, 5, 38, 0, 0)); post_form(wins->form); wrefresh(wins->formwin); @@ -155,6 +155,7 @@ break; case KEY_BACKSPACE: case 127: /* Backspace in terminal.app */ + case 8: form_driver(form, REQ_PREV_CHAR); //Simulate backspace form_driver(form, REQ_DEL_CHAR); diff -urN user/tmsnc/tmsnc-0.3.2/src/menu.h user/tmsnc/src/src/menu.h --- user/tmsnc/tmsnc-0.3.2/src/menu.h 2006-10-17 13:09:56.000000000 +0200 +++ user/tmsnc/src/src/menu.h 2006-12-26 13:43:53.000000000 +0100 @@ -48,7 +48,7 @@ INIT_MENU_ITEM("Set personal message", cmd_setpsm, 0), INIT_MENU_ITEM("Invite principal", cmd_invite, 0), INIT_MENU_ITEM("Set talkfilter", cmd_setfilter, 0), - INIT_MENU_ITEM("Redraw interface", cmd_redraw, 0), + /*INIT_MENU_ITEM("Redraw interface", cmd_redraw, 0),*/ END_ITEM, }; --- /dev/null 2006-12-26 12:59:07.912057000 +0100 +++ user/tmsnc/Makefile 2006-12-26 17:16:09.000000000 +0100 @@ -0,0 +1,21 @@ +all: .compiled + +.configured: + cd src && ./configure --prefix=/usr \ + --host=$(shell echo $(CROSS) | sed 's/\(.*\)-/\1/') \ + CFLAGS="$(CFLAGS) -DRENAMED_NCURSES" \ + --with-ncurses="$(ROOTDIR)/lib/libncurses" + touch $@ + +.compiled: .configured + $(MAKE) -C src + touch $@ + +clean: + -test -f src/Makefile && $(MAKE) -C src clean + rm -f .configured .compiled + +romfs: .compiled + $(ROMFSINST) ./src/src/tmsnc /usr/bin/tmsnc + +.PHONY: all clean romfs