# HG changeset patch # User Mikael Berthe # Date 1222548089 -7200 # Node ID 63dc211a4c1a131eea0ca3e5a32ca6cb49368a40 # Parent 6df03b9b17ba65a3cd2863d17e8bce8327ae3d24 New command: /echo (display a message in the log window) diff -r 6df03b9b17ba -r 63dc211a4c1a mcabber/src/commands.c --- a/mcabber/src/commands.c Sat Sep 27 21:21:37 2008 +0200 +++ b/mcabber/src/commands.c Sat Sep 27 22:41:29 2008 +0200 @@ -85,6 +85,7 @@ static void do_color(char *arg); static void do_otr(char *arg); static void do_otrpolicy(char *arg); +static void do_echo(char *arg); static void do_say_internal(char *arg, int parse_flags); @@ -125,9 +126,11 @@ COMPL_BUFFER, 0, &do_buffer); cmd_add("chat_disable", "Disable chat mode", 0, 0, &do_chat_disable); cmd_add("clear", "Clear the dialog window", 0, 0, &do_clear); + cmd_add("color", "Set coloring options", COMPL_COLOR, 0, &do_color); cmd_add("connect", "Connect to the server", 0, 0, &do_connect); cmd_add("del", "Delete the current buddy", 0, 0, &do_del); cmd_add("disconnect", "Disconnect from server", 0, 0, &do_disconnect); + cmd_add("echo", "Display a string in the log window", 0, 0, &do_echo); cmd_add("event", "Process an event", COMPL_EVENTSID, COMPL_EVENTS, &do_event); cmd_add("group", "Change group display settings", COMPL_GROUP, COMPL_GROUPNAME, &do_group); @@ -161,7 +164,6 @@ cmd_add("status_to", "Show or set your status for one recipient", COMPL_JID, COMPL_STATUS, &do_status_to); cmd_add("version", "Show mcabber version", 0, 0, &do_version); - cmd_add("color", "Set coloring options", COMPL_COLOR, 0, &do_color); // Status category compl_add_category_word(COMPL_STATUS, "online"); @@ -3619,4 +3621,11 @@ help_process(arg); } +static void do_echo(char *arg) +{ + if (arg) + scr_print_logwindow(arg); +} + + /* vim: set expandtab cindent cinoptions=>2\:2(0: For Vim users... */ diff -r 6df03b9b17ba -r 63dc211a4c1a mcabber/src/logprint.h --- a/mcabber/src/logprint.h Sat Sep 27 21:21:37 2008 +0200 +++ b/mcabber/src/logprint.h Sat Sep 27 22:41:29 2008 +0200 @@ -10,6 +10,7 @@ // For convenience... #define LPRINT_LOGNORM (LPRINT_NORMAL|LPRINT_LOG) +void scr_print_logwindow(const char *string); void scr_LogPrint(unsigned int flag, const char *fmt, ...); void scr_DoUpdate(void); diff -r 6df03b9b17ba -r 63dc211a4c1a mcabber/src/screen.c --- a/mcabber/src/screen.c Sat Sep 27 21:21:37 2008 +0200 +++ b/mcabber/src/screen.c Sat Sep 27 22:41:29 2008 +0200 @@ -802,8 +802,27 @@ return timepreflengths[(n < 3 ? n : 0)]; } +// scr_print_logwindow(string) +// Display the string in the log window. +// Note: The string must be in the user's locale! +void scr_print_logwindow(const char *string) +{ + time_t timestamp; + char strtimestamp[64]; + + timestamp = time(NULL); + strftime(strtimestamp, 48, "[%H:%M:%S]", localtime(×tamp)); + if (Curses) { + wprintw(logWnd, "\n%s %s", strtimestamp, string); + update_panels(); + } else { + printf("%s %s\n", strtimestamp, string); + } +} + // scr_LogPrint(...) -// Display a message in the log window. +// Display a message in the log window and in the status buffer. +// Add the message to the tracelog file if the log flag is set. // This function will convert from UTF-8 unless the LPRINT_NOTUTF8 flag is set. void scr_LogPrint(unsigned int flag, const char *fmt, ...) {