X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fcommands.c;h=427887cbb67554bd5d4670856a953e74947907be;hb=4eb74b26380dfde31c86c685f0589e0c653aebf0;hp=fb1b99b9b9ee5c9430a17c51021697e408732bc8;hpb=15e5e9fa5d67fd415fac5962a62fabf5d8a9e3dc;p=citadel.git diff --git a/citadel/commands.c b/citadel/commands.c index fb1b99b9b..427887cbb 100644 --- a/citadel/commands.c +++ b/citadel/commands.c @@ -4,6 +4,21 @@ * This file contains functions which implement parts of the * text-mode user interface. * + * Copyright (c) 1987-2009 by the citadel.org team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "sysdep.h" @@ -43,6 +58,7 @@ #include #include #include +#include #include "citadel.h" #include "citadel_ipc.h" #include "commands.h" @@ -50,7 +66,6 @@ #include "citadel_decls.h" #include "routines.h" #include "routines2.h" -#include "tools.h" #include "rooms.h" #include "client_chat.h" #include "citadel_dirs.h" @@ -81,6 +96,7 @@ int rc_color_use_bg; int rc_prompt_control = 0; time_t rc_idle_threshold = (time_t)900; char rc_url_cmd[SIZ]; +char rc_open_cmd[SIZ]; char rc_gotmail_cmd[SIZ]; char *gl_string; @@ -394,6 +410,7 @@ static int async_ka_enabled = 0; static void *ka_thread(void *arg) { +#ifdef HAVE_BACKTRACE char threadName[256]; // Set up our name @@ -401,12 +418,14 @@ static void *ka_thread(void *arg) // Register for tracing eCrash_RegisterThread(threadName, 0); - +#endif really_do_keepalive(); pthread_detach(ka_thr_handle); ka_thr_active = 0; +#ifdef HAVE_BACKTRACE eCrash_UnregisterThread(); +#endif return NULL; } @@ -769,6 +788,7 @@ void load_command_set(void) rc_ansi_color = 0; rc_color_use_bg = 0; strcpy(rc_url_cmd, ""); + strcpy(rc_open_cmd, ""); strcpy(rc_gotmail_cmd, ""); #ifdef HAVE_OPENSSL rc_encrypt = RC_DEFAULT; @@ -905,6 +925,9 @@ void load_command_set(void) if (!strncasecmp(buf, "urlcmd=", 7)) strcpy(rc_url_cmd, &buf[7]); + if (!strncasecmp(buf, "opencmd=", 7)) + strcpy(rc_open_cmd, &buf[8]); + if (!strncasecmp(buf, "gotmailcmd=", 11)) strcpy(rc_gotmail_cmd, &buf[11]); @@ -1561,7 +1584,7 @@ void look_for_ansi(void) struct timeval tv; char abuf[512]; time_t now; - int a; + int a, rv; if (rc_ansi_color == 0) { enable_color = 0; @@ -1586,7 +1609,7 @@ void look_for_ansi(void) select(1, &rfds, NULL, NULL, &tv); if (FD_ISSET(0, &rfds)) { abuf[strlen(abuf) + 1] = 0; - read(0, &abuf[strlen(abuf)], 1); + rv = read(0, &abuf[strlen(abuf)], 1); } } while (FD_ISSET(0, &rfds)); @@ -1637,7 +1660,7 @@ char keymenu(char *menuprompt, char *menustring) { choices = num_tokens(menustring, '|'); if (menuprompt != NULL) do_prompt = 1; - if (menuprompt != NULL) if (IsEmptyStr(menuprompt)) do_prompt = 0; + if ((menuprompt != NULL) && (IsEmptyStr(menuprompt))) do_prompt = 0; while (1) { if (display_prompt) {