From ce7f24ecc1add825ee5714ff09cbc5604c6e4c81 Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Sun, 19 Sep 2004 20:26:15 +0000 Subject: [PATCH] Log server/channel/private to file --- ChangeLog | 1 + TODO | 8 +- po/POTFILES.in | 1 + po/fr.po | 278 ++++++++++++++------------- po/weechat.pot | 242 ++++++++++++----------- src/common/Makefile.am | 4 +- src/common/log.c | 149 ++++++++++++++ src/common/log.h | 31 +++ src/common/weechat.c | 25 ++- src/common/weeconfig.c | 33 +--- src/common/weeconfig.h | 6 +- src/gui/curses/gui-display.c | 9 +- src/gui/gui-common.c | 16 ++ src/gui/gui.h | 7 +- weechat/ChangeLog | 1 + weechat/TODO | 8 +- weechat/po/POTFILES.in | 1 + weechat/po/fr.po | 278 ++++++++++++++------------- weechat/po/weechat.pot | 242 ++++++++++++----------- weechat/src/common/Makefile.am | 4 +- weechat/src/common/log.c | 149 ++++++++++++++ weechat/src/common/log.h | 31 +++ weechat/src/common/weechat.c | 25 ++- weechat/src/common/weeconfig.c | 33 +--- weechat/src/common/weeconfig.h | 6 +- weechat/src/gui/curses/gui-display.c | 9 +- weechat/src/gui/gui-common.c | 16 ++ weechat/src/gui/gui.h | 7 +- 28 files changed, 1026 insertions(+), 594 deletions(-) create mode 100644 src/common/log.c create mode 100644 src/common/log.h create mode 100644 weechat/src/common/log.c create mode 100644 weechat/src/common/log.h diff --git a/ChangeLog b/ChangeLog index ee48759e0..b8bd46ac0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,7 @@ ChangeLog - 2004-09-19 Version 0.0.8 (under dev!): + * logging buffers to disk (server/channel/private according to user prefs) * /buffer command developed (buffers list and move function) * Away now announced in channels, and config option "look_display_away" added to enable/disable this feature diff --git a/TODO b/TODO index 42d38db10..363aa7100 100644 --- a/TODO +++ b/TODO @@ -1,7 +1,7 @@ WeeChat - Wee Enhanced Environment for Chat =========================================== -TODO - 2004-08-08 +TODO - 2004-09-19 Legend: # done @@ -21,7 +21,8 @@ v0.0.8: + "/dcc" command (for chat and sending/receiving files) * Interface: - + "/buffer" command, buffers ordered by number, auto-jump to active + # log chats to file + # "/buffer" command, buffers ordered by number, auto-jump to active buffers (alt-a), jump to buffers by number (alt-number) + "/window" command, split terminal in multiple windows (horizontally/vertically) @@ -67,8 +68,7 @@ Future versions: - add lag indicator - improve completion (for example complete command parameters when possible) - understand incomplete commands if unambigous (for example: /he for /help is ok) - - tab key with empty command line should switch to next window (like F7) - - log chats to file + - tab key with empty command line should switch to next window (like F7) ? Qt GUI * TCP/IP communication: diff --git a/po/POTFILES.in b/po/POTFILES.in index 1727c1dbb..838de9075 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -24,6 +24,7 @@ ./src/common/command.h ./src/common/completion.h ./src/common/history.h +./src/common/log.c ./src/common/weechat.h ./src/common/weeconfig.c ./src/common/weeconfig.h diff --git a/po/fr.po b/po/fr.po index 54e521768..a573a583b 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.0.8-pre2\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2004-09-19 11:19+0200\n" +"POT-Creation-Date: 2004-09-19 22:20+0200\n" "PO-Revision-Date: 2004-08-08 20:47+0200\n" "Last-Translator: FlashCode \n" "Language-Team: weechat-dev \n" @@ -20,7 +20,7 @@ msgstr "" msgid "%s cannot allocate new nick\n" msgstr "%s ompossible d'allouer un nouveau pseudo\n" -#: src/irc/irc-server.c:130 src/common/weeconfig.c:1240 +#: src/irc/irc-server.c:130 src/common/weeconfig.c:1227 msgid "Unable to get user's name" msgstr "Impossible de déterminer le nom d'utilisateur" @@ -1681,51 +1681,51 @@ msgstr "" "%s impossible d'ajouter la fonction pour le message \"%s\" (mémoire " "insuffisante)\n" -#: src/gui/curses/gui-display.c:568 +#: src/gui/curses/gui-display.c:569 msgid "bytes" msgstr "octets" -#: src/gui/curses/gui-display.c:568 +#: src/gui/curses/gui-display.c:569 msgid "Kb" msgstr "Ko" -#: src/gui/curses/gui-display.c:568 +#: src/gui/curses/gui-display.c:569 msgid "Mb" msgstr "Mo" -#: src/gui/curses/gui-display.c:568 +#: src/gui/curses/gui-display.c:569 msgid "Gb" msgstr "Go" -#: src/gui/curses/gui-display.c:997 +#: src/gui/curses/gui-display.c:998 #, c-format msgid "%d:[not connected] " msgstr "%d:[non connecté] " -#: src/gui/curses/gui-display.c:1005 +#: src/gui/curses/gui-display.c:1006 msgid "[Act: " msgstr "[Act: " -#: src/gui/curses/gui-display.c:1044 src/gui/curses/gui-display.c:1047 +#: src/gui/curses/gui-display.c:1045 src/gui/curses/gui-display.c:1048 msgid "-MORE-" msgstr "-PLUS-" -#: src/gui/curses/gui-display.c:1216 +#: src/gui/curses/gui-display.c:1217 msgid " [A] Accept" msgstr " [A] Accepter" -#: src/gui/curses/gui-display.c:1217 src/gui/curses/gui-display.c:1223 -#: src/gui/curses/gui-display.c:1230 +#: src/gui/curses/gui-display.c:1218 src/gui/curses/gui-display.c:1224 +#: src/gui/curses/gui-display.c:1231 msgid " [C] Cancel" msgstr " [C] Annuler" -#: src/gui/curses/gui-display.c:1218 src/gui/curses/gui-display.c:1224 -#: src/gui/curses/gui-display.c:1231 src/gui/curses/gui-display.c:1238 -#: src/gui/curses/gui-display.c:1243 +#: src/gui/curses/gui-display.c:1219 src/gui/curses/gui-display.c:1225 +#: src/gui/curses/gui-display.c:1232 src/gui/curses/gui-display.c:1239 +#: src/gui/curses/gui-display.c:1244 msgid " [Q] Close DCC view" msgstr " [Q] Fermer la vue DCC" -#: src/gui/curses/gui-display.c:1237 +#: src/gui/curses/gui-display.c:1238 msgid " [R] Remove" msgstr " [R] Retirer" @@ -1733,17 +1733,17 @@ msgstr " [R] Retirer" msgid "server" msgstr "serveur" -#: src/gui/gui-common.c:308 +#: src/gui/gui-common.c:319 #, c-format msgid "%s not enough memory for infobar message\n" msgstr "%s pas assez de mémoire pour un message de la barre d'infos\n" -#: src/gui/gui-common.c:443 +#: src/gui/gui-common.c:459 #, c-format msgid "%s not enough memory for new line!\n" msgstr "%s pas assez de mémoire pour une nouvelle ligne !\n" -#: src/gui/gui-common.c:486 +#: src/gui/gui-common.c:502 msgid "not enough memory!\n" msgstr "pas assez de mémoire !\n" @@ -2455,20 +2455,41 @@ msgstr "%s pas assez de m msgid "%s unable to create ~/.weechat directory\n" msgstr "%s impossible de créer le répertoire ~/.weechat\n" -#: src/common/weechat.c:388 +#: src/common/weechat.c:362 +#, c-format +msgid "%s unable to create ~/.weechat/logs directory\n" +msgstr "%s impossible de créer le répertoire ~/.weechat/logs\n" + +#: src/common/weechat.c:397 #, c-format msgid "%s unable to create/append to log file (~/.weechat/%s)" msgstr "%s impossible de créer/ajouter dans le fichier de log (~/.weechat/%s)" -#: src/common/weechat.c:411 +#: src/common/weechat.c:420 #, c-format msgid "%sWelcome to " msgstr "%sBienvenue dans " -#: src/common/weechat.c:424 +#: src/common/weechat.c:433 msgid "compiled on" msgstr "compilé le" +#: src/common/log.c:95 +msgid "Not enough memory to write log file for a buffer\n" +msgstr "Pas assez de mémoire pour écrire un fichier log de tampon\n" + +#: src/common/log.c:123 +msgid "Unable to write log file for a buffer\n" +msgstr "Impossible d'écrire le fichier log pour un tampon\n" + +#: src/common/log.c:127 +msgid "**** Beginning of log " +msgstr "**** Début du log " + +#: src/common/log.c:141 +msgid "**** End of log " +msgstr "**** Fin du log " + #: src/common/weechat.h:49 msgid " Error:" msgstr " Erreur:" @@ -2846,235 +2867,204 @@ msgid "maximum number of user commands in history (0 = unlimited)" msgstr "" "nombre maximum de commandes utilisateur dans l'historique (0 = sans limite)" -#: src/common/weeconfig.c:424 src/common/weeconfig.c:425 +#: src/common/weeconfig.c:422 src/common/weeconfig.c:423 +msgid "automatically log server messages" +msgstr "enregistrer automatiquement les messages du serveur" + +#: src/common/weeconfig.c:426 src/common/weeconfig.c:427 msgid "automatically log channel chats" msgstr "enregistrer automatiquement les conversations des canaux" -#: src/common/weeconfig.c:428 src/common/weeconfig.c:429 +#: src/common/weeconfig.c:430 src/common/weeconfig.c:431 msgid "automatically log private chats" msgstr "enregistrer automatiquement les conversations privées" -#: src/common/weeconfig.c:432 +#: src/common/weeconfig.c:434 msgid "path for log files" msgstr "chemin pour les conversations sauvegardées" -#: src/common/weeconfig.c:433 +#: src/common/weeconfig.c:435 msgid "path for WeeChat log files" msgstr "chemin pour les conversations sauvegardées par WeeChat" -#: src/common/weeconfig.c:436 -msgid "name for log files" -msgstr "nom des conversations sauvegardées" - -#: src/common/weeconfig.c:437 -msgid "" -"name for log files (%S == irc server name, %N == channel name (or nickname " -"if private chat)" -msgstr "" -"nom des conversations saivegardées (%S == nom du serveur irc, %N == nom du " -"canal (ou pseudo si fenêtre privée)" - -#: src/common/weeconfig.c:441 +#: src/common/weeconfig.c:438 msgid "timestamp for log" msgstr "horodatage pour les conversations sauvegardées" -#: src/common/weeconfig.c:442 +#: src/common/weeconfig.c:439 msgid "timestamp for log (see man strftime for date/time specifiers)" msgstr "" "horodatage pour les conversations sauvegardées (voir man strftime pour le " "format de date/heure)" -#: src/common/weeconfig.c:445 -msgid "start string for log files" -msgstr "chaîne de début pour les conversations sauvegardées" - -#: src/common/weeconfig.c:446 -msgid "" -"text written when starting new log file (see man strftime for date/time " -"specifiers)" -msgstr "" -"texte écrit en démarrant la sauvegarde d'une discussion (voir man strftime " -"pour le format de date/heure)" - -#: src/common/weeconfig.c:450 -msgid "end string for log files" -msgstr "chaîne de fin pour les conversations sauvegardées" - -#: src/common/weeconfig.c:451 -msgid "" -"text written when ending log file (see man strftime for date/time specifiers)" -msgstr "" -"texte écrit à la fin d'une discussion sauvegardées (voir man strftime pour " -"le format de date/heure)" - -#: src/common/weeconfig.c:470 +#: src/common/weeconfig.c:457 msgid "automatically accept dcc files" msgstr "accepte automatiquement les fichiers dcc" -#: src/common/weeconfig.c:471 +#: src/common/weeconfig.c:458 msgid "automatically accept incoming dcc files" msgstr "accepte automatiquement les fichiers dcc entrants" -#: src/common/weeconfig.c:474 +#: src/common/weeconfig.c:461 msgid "automatically accept dcc chats" msgstr "accepte automatiquement les demandes de discussion dcc" -#: src/common/weeconfig.c:475 +#: src/common/weeconfig.c:462 msgid "automatically accept dcc chats (use carefully!)" msgstr "" "accepte automatiquement les demandes de discussion dcc (à utiliser avec " "précaution !)" -#: src/common/weeconfig.c:478 +#: src/common/weeconfig.c:465 msgid "timeout for dcc request" msgstr "délai d'attente pour les requêtes dcc" -#: src/common/weeconfig.c:479 +#: src/common/weeconfig.c:466 msgid "timeout for dcc request (in seconds)" msgstr "délai d'attente pour les requêtes dcc (en secondes)" -#: src/common/weeconfig.c:482 +#: src/common/weeconfig.c:469 msgid "block size for dcc packets" msgstr "taille de bloc pour les paquets dcc" -#: src/common/weeconfig.c:483 +#: src/common/weeconfig.c:470 msgid "block size for dcc packets in bytes (default: 1024)" msgstr "taille de bloc pour les paquets dcc en octets (défaut: 1024)" -#: src/common/weeconfig.c:486 +#: src/common/weeconfig.c:473 msgid "path for incoming files with dcc" msgstr "chemin les fichiers reçus par dcc" -#: src/common/weeconfig.c:487 +#: src/common/weeconfig.c:474 msgid "path for writing incoming files with dcc (default: user home)" msgstr "" "chemin pour écrire les fichiers reçus par dcc (par défaut: répertoire de " "l'utilisateur)" -#: src/common/weeconfig.c:490 +#: src/common/weeconfig.c:477 msgid "default path for sending files with dcc" msgstr "chemin par défaut pour envoyer les fichiers par dcc" -#: src/common/weeconfig.c:491 +#: src/common/weeconfig.c:478 msgid "" "path for reading files when sending thru dcc (when no path is specified)" msgstr "" "chemin pour lire les fichiers lorsqu'ils sont envoyés par dcc (quand aucun " "chemin n'est spécifié)" -#: src/common/weeconfig.c:494 +#: src/common/weeconfig.c:481 msgid "automatically rename dcc files if already exists" msgstr "renomme automatiquement les fichiers dcc s'ils existent déjà" -#: src/common/weeconfig.c:495 +#: src/common/weeconfig.c:482 msgid "rename incoming files if already exists (add '.1', '.2', ...)" msgstr "" "renommer les fichiers reçus s'ils existent déjà (ajoute '.1', '.2', ...)" -#: src/common/weeconfig.c:498 +#: src/common/weeconfig.c:485 msgid "automatically resume aborted transfers" msgstr "continuer automatiquement les transferts non terminés" -#: src/common/weeconfig.c:499 +#: src/common/weeconfig.c:486 msgid "" "automatically resume dcc transfer if connection with remote host is loosed" msgstr "" "continuer automatiquement les transferts dcc si la connexion avec la machine " "distante a été perdue" -#: src/common/weeconfig.c:513 +#: src/common/weeconfig.c:500 msgid "use proxy" msgstr "utiliser un proxy" -#: src/common/weeconfig.c:514 +#: src/common/weeconfig.c:501 msgid "use a proxy server to connect to irc server" msgstr "utiliser un proxy pour se connecter au serveur irc" -#: src/common/weeconfig.c:517 +#: src/common/weeconfig.c:504 msgid "proxy address" msgstr "adresse du proxy" -#: src/common/weeconfig.c:518 +#: src/common/weeconfig.c:505 msgid "proxy server address (IP or hostname)" msgstr "adresse du serveur proxy (IP ou nom)" -#: src/common/weeconfig.c:521 +#: src/common/weeconfig.c:508 msgid "port for proxy" msgstr "port pour le proxy" -#: src/common/weeconfig.c:522 +#: src/common/weeconfig.c:509 msgid "port for connecting to proxy server" msgstr "port pour se connecter au serveur proxy" -#: src/common/weeconfig.c:525 +#: src/common/weeconfig.c:512 msgid "proxy password" msgstr "mot de passe pour le proxy" -#: src/common/weeconfig.c:526 +#: src/common/weeconfig.c:513 msgid "password for proxy server" msgstr "mot de passe pour le serveur proxy" -#: src/common/weeconfig.c:537 +#: src/common/weeconfig.c:524 msgid "server name" msgstr "nom du serveur" -#: src/common/weeconfig.c:538 +#: src/common/weeconfig.c:525 msgid "name associated to IRC server (for display only)" msgstr "nom associé au serveur IRC (pour affichage seulement)" -#: src/common/weeconfig.c:541 +#: src/common/weeconfig.c:528 msgid "automatically connect to server" msgstr "connexion automatique au serveur" -#: src/common/weeconfig.c:542 +#: src/common/weeconfig.c:529 msgid "automatically connect to server when WeeChat is starting" msgstr "connexion automatique au serveur quand WeeChat démarre" -#: src/common/weeconfig.c:545 +#: src/common/weeconfig.c:532 msgid "server address or hostname" msgstr "adresse ou nom du serveur" -#: src/common/weeconfig.c:546 +#: src/common/weeconfig.c:533 msgid "IP address or hostname of IRC server" msgstr "adresse IP ou nom du serveur IRC" -#: src/common/weeconfig.c:549 +#: src/common/weeconfig.c:536 msgid "port for IRC server" msgstr "port pour le serveur IRC" -#: src/common/weeconfig.c:550 +#: src/common/weeconfig.c:537 msgid "port for connecting to server" msgstr "port pour se connecter au serveur" -#: src/common/weeconfig.c:553 +#: src/common/weeconfig.c:540 msgid "server password" msgstr "mot de passe pour le serveur" -#: src/common/weeconfig.c:554 +#: src/common/weeconfig.c:541 msgid "password for IRC server" msgstr "mot de passe pour le serveur IRC" -#: src/common/weeconfig.c:557 +#: src/common/weeconfig.c:544 msgid "nickname for server" msgstr "pseudo pour le serveur" -#: src/common/weeconfig.c:558 +#: src/common/weeconfig.c:545 msgid "nickname to use on IRC server" msgstr "pseudo à utiliser sur le serveur IRC" -#: src/common/weeconfig.c:561 +#: src/common/weeconfig.c:548 msgid "alternate nickname for server" msgstr "pseudo alternatif pour le serveur" -#: src/common/weeconfig.c:562 +#: src/common/weeconfig.c:549 msgid "alternate nickname to use on IRC server (if nickname is already used)" msgstr "pseudo alternatif pour le serveur IRC (si le pseudo est déjà utilisé)" -#: src/common/weeconfig.c:565 +#: src/common/weeconfig.c:552 msgid "2nd alternate nickname for server" msgstr "2nd pseudo alternatif pour le serveur" -#: src/common/weeconfig.c:566 +#: src/common/weeconfig.c:553 msgid "" "2nd alternate nickname to use on IRC server (if alternate nickname is " "already used)" @@ -3082,87 +3072,87 @@ msgstr "" "2nd pseudo alternatif pour le serveur IRC (si le pseudo alternatif est déjà " "utilisé)" -#: src/common/weeconfig.c:569 +#: src/common/weeconfig.c:556 msgid "user name for server" msgstr "nom d'utilisateur pour le serveur" -#: src/common/weeconfig.c:570 +#: src/common/weeconfig.c:557 msgid "user name to use on IRC server" msgstr "nom d'utilisateur pour le serveur IRC" -#: src/common/weeconfig.c:573 +#: src/common/weeconfig.c:560 msgid "real name for server" msgstr "nom réel pour le serveur" -#: src/common/weeconfig.c:574 +#: src/common/weeconfig.c:561 msgid "real name to use on IRC server" msgstr "nom réel pour le serveur IRC" -#: src/common/weeconfig.c:577 src/common/weeconfig.c:578 +#: src/common/weeconfig.c:564 src/common/weeconfig.c:565 msgid "first command to run when connected to server" msgstr "commande à exécuter en premier lorsque connecté au serveur" -#: src/common/weeconfig.c:581 +#: src/common/weeconfig.c:568 msgid "list of channels to join when connected to server" msgstr "liste des canaux à rejoindre lorsque connecté au serveur" -#: src/common/weeconfig.c:582 +#: src/common/weeconfig.c:569 msgid "comma separated list of channels to join when connected to server" msgstr "" "liste des canaux (séparés par des virgules) à rejoindre lorsque connecté au " "serveur" -#: src/common/weeconfig.c:804 +#: src/common/weeconfig.c:791 #, c-format msgid "%s %s, line %d: new server, but previous was incomplete\n" msgstr "%s %s, ligne %d: nouveau serveur, mais le précédent était incomplet\n" -#: src/common/weeconfig.c:813 +#: src/common/weeconfig.c:800 #, c-format msgid "%s %s, line %d: server '%s' already exists\n" msgstr "%s %s, ligne %d: le serveur '%s' existe déjà\n" -#: src/common/weeconfig.c:825 +#: src/common/weeconfig.c:812 #, c-format msgid "%s %s, line %d: unable to create server\n" msgstr "%s %s, ligne %d: impossible de créer le serveur\n" -#: src/common/weeconfig.c:864 +#: src/common/weeconfig.c:851 #, c-format msgid "%s unable to assign default int with string (\"%s\")\n" msgstr "%s impossible d'assigner la valeur entière avec la chaîne (\"%s\")\n" -#: src/common/weeconfig.c:875 +#: src/common/weeconfig.c:862 #, c-format msgid "%s unable to assign default color (\"%s\")\n" msgstr "%s impossible d'assigner la couleur par défaut (\"%s\")\n" -#: src/common/weeconfig.c:914 +#: src/common/weeconfig.c:901 #, c-format msgid "%s config file \"%s\" not found.\n" msgstr "%s fichier de configuration \"%s\" non trouvé.\n" -#: src/common/weeconfig.c:946 +#: src/common/weeconfig.c:933 #, c-format msgid "%s %s, line %d: invalid syntax, missing \"]\"\n" msgstr "%s %s, ligne %d: syntaxe invalide, il manque \"]\"\n" -#: src/common/weeconfig.c:963 +#: src/common/weeconfig.c:950 #, c-format msgid "%s %s, line %d: unknown section identifier (\"%s\")\n" msgstr "%s %s, ligne %d: section inconnue (\"%s\")\n" -#: src/common/weeconfig.c:981 +#: src/common/weeconfig.c:968 #, c-format msgid "%s %s, line %d: invalid syntax, missing \"=\"\n" msgstr "%s %s, ligne %d: syntaxe invalide, il manque \"=\"\n" -#: src/common/weeconfig.c:1015 +#: src/common/weeconfig.c:1002 #, c-format msgid "%s %s, line %d: invalid option \"%s\"\n" msgstr "%s %s, ligne %d: option \"%s\" invalide\n" -#: src/common/weeconfig.c:1026 +#: src/common/weeconfig.c:1013 #, c-format msgid "" "%s %s, line %d: invalid value foroption '%s'\n" @@ -3171,7 +3161,7 @@ msgstr "" "%s %s, ligne %d: valeur invalide pour l'option '%s'\n" "Attendu: valeur booléenne: 'off' ou 'on'\n" -#: src/common/weeconfig.c:1035 +#: src/common/weeconfig.c:1022 #, c-format msgid "" "%s %s, line %d: invalid value for option '%s'\n" @@ -3180,7 +3170,7 @@ msgstr "" "%s %s, ligne %d: valeur invalide pour l'option '%s'\n" "Attendu: entier compris entre %d et %d\n" -#: src/common/weeconfig.c:1046 +#: src/common/weeconfig.c:1033 #, c-format msgid "" "%s %s, line %d: invalid value for option '%s'\n" @@ -3189,26 +3179,26 @@ msgstr "" "%s %s, ligne %d: valeur invalide pour l'option '%s'\n" "Attendu: une de ces chaînes: " -#: src/common/weeconfig.c:1062 +#: src/common/weeconfig.c:1049 #, c-format msgid "%s %s, line %d: invalid color name for option '%s'\n" msgstr "%s %s, ligne %d: nom de couleur invalide pour l'option '%s'\n" -#: src/common/weeconfig.c:1121 src/common/weeconfig.c:1289 +#: src/common/weeconfig.c:1108 src/common/weeconfig.c:1276 #, c-format msgid "%s cannot create file \"%s\"\n" msgstr "%s impossible de créer le fichier \"%s\"\n" -#: src/common/weeconfig.c:1127 +#: src/common/weeconfig.c:1114 #, c-format msgid "%s: creating default config file...\n" msgstr "%s: création du fichier de configuration par défaut...\n" -#: src/common/weeconfig.c:1128 +#: src/common/weeconfig.c:1115 msgid "creating default config file\n" msgstr "création du fichier de configuration par défaut\n" -#: src/common/weeconfig.c:1131 src/common/weeconfig.c:1298 +#: src/common/weeconfig.c:1118 src/common/weeconfig.c:1285 #, c-format msgid "" "#\n" @@ -3217,6 +3207,36 @@ msgstr "" "#\n" "# %s: fichier de configuration, créé par %s v%s le %s#\n" -#: src/common/weeconfig.c:1295 +#: src/common/weeconfig.c:1282 msgid "saving config to disk\n" msgstr "sauvegarde de la configuration sur disque\n" + +#~ msgid "name for log files" +#~ msgstr "nom des conversations sauvegardées" + +#~ msgid "" +#~ "name for log files (%S == irc server name, %N == channel name (or " +#~ "nickname if private chat)" +#~ msgstr "" +#~ "nom des conversations saivegardées (%S == nom du serveur irc, %N == nom " +#~ "du canal (ou pseudo si fenêtre privée)" + +#~ msgid "start string for log files" +#~ msgstr "chaîne de début pour les conversations sauvegardées" + +#~ msgid "" +#~ "text written when starting new log file (see man strftime for date/time " +#~ "specifiers)" +#~ msgstr "" +#~ "texte écrit en démarrant la sauvegarde d'une discussion (voir man " +#~ "strftime pour le format de date/heure)" + +#~ msgid "end string for log files" +#~ msgstr "chaîne de fin pour les conversations sauvegardées" + +#~ msgid "" +#~ "text written when ending log file (see man strftime for date/time " +#~ "specifiers)" +#~ msgstr "" +#~ "texte écrit à la fin d'une discussion sauvegardées (voir man strftime " +#~ "pour le format de date/heure)" diff --git a/po/weechat.pot b/po/weechat.pot index 5a43fbbb5..e41b0db95 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2004-09-19 11:19+0200\n" +"POT-Creation-Date: 2004-09-19 22:20+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -20,7 +20,7 @@ msgstr "" msgid "%s cannot allocate new nick\n" msgstr "" -#: src/irc/irc-server.c:130 src/common/weeconfig.c:1240 +#: src/irc/irc-server.c:130 src/common/weeconfig.c:1227 msgid "Unable to get user's name" msgstr "" @@ -1574,51 +1574,51 @@ msgstr "" msgid "%s unable to add handler for \"%s\" message (not enough memory)\n" msgstr "" -#: src/gui/curses/gui-display.c:568 +#: src/gui/curses/gui-display.c:569 msgid "bytes" msgstr "" -#: src/gui/curses/gui-display.c:568 +#: src/gui/curses/gui-display.c:569 msgid "Kb" msgstr "" -#: src/gui/curses/gui-display.c:568 +#: src/gui/curses/gui-display.c:569 msgid "Mb" msgstr "" -#: src/gui/curses/gui-display.c:568 +#: src/gui/curses/gui-display.c:569 msgid "Gb" msgstr "" -#: src/gui/curses/gui-display.c:997 +#: src/gui/curses/gui-display.c:998 #, c-format msgid "%d:[not connected] " msgstr "" -#: src/gui/curses/gui-display.c:1005 +#: src/gui/curses/gui-display.c:1006 msgid "[Act: " msgstr "" -#: src/gui/curses/gui-display.c:1044 src/gui/curses/gui-display.c:1047 +#: src/gui/curses/gui-display.c:1045 src/gui/curses/gui-display.c:1048 msgid "-MORE-" msgstr "" -#: src/gui/curses/gui-display.c:1216 +#: src/gui/curses/gui-display.c:1217 msgid " [A] Accept" msgstr "" -#: src/gui/curses/gui-display.c:1217 src/gui/curses/gui-display.c:1223 -#: src/gui/curses/gui-display.c:1230 +#: src/gui/curses/gui-display.c:1218 src/gui/curses/gui-display.c:1224 +#: src/gui/curses/gui-display.c:1231 msgid " [C] Cancel" msgstr "" -#: src/gui/curses/gui-display.c:1218 src/gui/curses/gui-display.c:1224 -#: src/gui/curses/gui-display.c:1231 src/gui/curses/gui-display.c:1238 -#: src/gui/curses/gui-display.c:1243 +#: src/gui/curses/gui-display.c:1219 src/gui/curses/gui-display.c:1225 +#: src/gui/curses/gui-display.c:1232 src/gui/curses/gui-display.c:1239 +#: src/gui/curses/gui-display.c:1244 msgid " [Q] Close DCC view" msgstr "" -#: src/gui/curses/gui-display.c:1237 +#: src/gui/curses/gui-display.c:1238 msgid " [R] Remove" msgstr "" @@ -1626,17 +1626,17 @@ msgstr "" msgid "server" msgstr "" -#: src/gui/gui-common.c:308 +#: src/gui/gui-common.c:319 #, c-format msgid "%s not enough memory for infobar message\n" msgstr "" -#: src/gui/gui-common.c:443 +#: src/gui/gui-common.c:459 #, c-format msgid "%s not enough memory for new line!\n" msgstr "" -#: src/gui/gui-common.c:486 +#: src/gui/gui-common.c:502 msgid "not enough memory!\n" msgstr "" @@ -2299,20 +2299,41 @@ msgstr "" msgid "%s unable to create ~/.weechat directory\n" msgstr "" -#: src/common/weechat.c:388 +#: src/common/weechat.c:362 +#, c-format +msgid "%s unable to create ~/.weechat/logs directory\n" +msgstr "" + +#: src/common/weechat.c:397 #, c-format msgid "%s unable to create/append to log file (~/.weechat/%s)" msgstr "" -#: src/common/weechat.c:411 +#: src/common/weechat.c:420 #, c-format msgid "%sWelcome to " msgstr "" -#: src/common/weechat.c:424 +#: src/common/weechat.c:433 msgid "compiled on" msgstr "" +#: src/common/log.c:95 +msgid "Not enough memory to write log file for a buffer\n" +msgstr "" + +#: src/common/log.c:123 +msgid "Unable to write log file for a buffer\n" +msgstr "" + +#: src/common/log.c:127 +msgid "**** Beginning of log " +msgstr "" + +#: src/common/log.c:141 +msgid "**** End of log " +msgstr "" + #: src/common/weechat.h:49 msgid " Error:" msgstr "" @@ -2669,348 +2690,323 @@ msgstr "" msgid "maximum number of user commands in history (0 = unlimited)" msgstr "" -#: src/common/weeconfig.c:424 src/common/weeconfig.c:425 +#: src/common/weeconfig.c:422 src/common/weeconfig.c:423 +msgid "automatically log server messages" +msgstr "" + +#: src/common/weeconfig.c:426 src/common/weeconfig.c:427 msgid "automatically log channel chats" msgstr "" -#: src/common/weeconfig.c:428 src/common/weeconfig.c:429 +#: src/common/weeconfig.c:430 src/common/weeconfig.c:431 msgid "automatically log private chats" msgstr "" -#: src/common/weeconfig.c:432 +#: src/common/weeconfig.c:434 msgid "path for log files" msgstr "" -#: src/common/weeconfig.c:433 +#: src/common/weeconfig.c:435 msgid "path for WeeChat log files" msgstr "" -#: src/common/weeconfig.c:436 -msgid "name for log files" -msgstr "" - -#: src/common/weeconfig.c:437 -msgid "" -"name for log files (%S == irc server name, %N == channel name (or nickname " -"if private chat)" -msgstr "" - -#: src/common/weeconfig.c:441 +#: src/common/weeconfig.c:438 msgid "timestamp for log" msgstr "" -#: src/common/weeconfig.c:442 +#: src/common/weeconfig.c:439 msgid "timestamp for log (see man strftime for date/time specifiers)" msgstr "" -#: src/common/weeconfig.c:445 -msgid "start string for log files" -msgstr "" - -#: src/common/weeconfig.c:446 -msgid "" -"text written when starting new log file (see man strftime for date/time " -"specifiers)" -msgstr "" - -#: src/common/weeconfig.c:450 -msgid "end string for log files" -msgstr "" - -#: src/common/weeconfig.c:451 -msgid "" -"text written when ending log file (see man strftime for date/time specifiers)" -msgstr "" - -#: src/common/weeconfig.c:470 +#: src/common/weeconfig.c:457 msgid "automatically accept dcc files" msgstr "" -#: src/common/weeconfig.c:471 +#: src/common/weeconfig.c:458 msgid "automatically accept incoming dcc files" msgstr "" -#: src/common/weeconfig.c:474 +#: src/common/weeconfig.c:461 msgid "automatically accept dcc chats" msgstr "" -#: src/common/weeconfig.c:475 +#: src/common/weeconfig.c:462 msgid "automatically accept dcc chats (use carefully!)" msgstr "" -#: src/common/weeconfig.c:478 +#: src/common/weeconfig.c:465 msgid "timeout for dcc request" msgstr "" -#: src/common/weeconfig.c:479 +#: src/common/weeconfig.c:466 msgid "timeout for dcc request (in seconds)" msgstr "" -#: src/common/weeconfig.c:482 +#: src/common/weeconfig.c:469 msgid "block size for dcc packets" msgstr "" -#: src/common/weeconfig.c:483 +#: src/common/weeconfig.c:470 msgid "block size for dcc packets in bytes (default: 1024)" msgstr "" -#: src/common/weeconfig.c:486 +#: src/common/weeconfig.c:473 msgid "path for incoming files with dcc" msgstr "" -#: src/common/weeconfig.c:487 +#: src/common/weeconfig.c:474 msgid "path for writing incoming files with dcc (default: user home)" msgstr "" -#: src/common/weeconfig.c:490 +#: src/common/weeconfig.c:477 msgid "default path for sending files with dcc" msgstr "" -#: src/common/weeconfig.c:491 +#: src/common/weeconfig.c:478 msgid "" "path for reading files when sending thru dcc (when no path is specified)" msgstr "" -#: src/common/weeconfig.c:494 +#: src/common/weeconfig.c:481 msgid "automatically rename dcc files if already exists" msgstr "" -#: src/common/weeconfig.c:495 +#: src/common/weeconfig.c:482 msgid "rename incoming files if already exists (add '.1', '.2', ...)" msgstr "" -#: src/common/weeconfig.c:498 +#: src/common/weeconfig.c:485 msgid "automatically resume aborted transfers" msgstr "" -#: src/common/weeconfig.c:499 +#: src/common/weeconfig.c:486 msgid "" "automatically resume dcc transfer if connection with remote host is loosed" msgstr "" -#: src/common/weeconfig.c:513 +#: src/common/weeconfig.c:500 msgid "use proxy" msgstr "" -#: src/common/weeconfig.c:514 +#: src/common/weeconfig.c:501 msgid "use a proxy server to connect to irc server" msgstr "" -#: src/common/weeconfig.c:517 +#: src/common/weeconfig.c:504 msgid "proxy address" msgstr "" -#: src/common/weeconfig.c:518 +#: src/common/weeconfig.c:505 msgid "proxy server address (IP or hostname)" msgstr "" -#: src/common/weeconfig.c:521 +#: src/common/weeconfig.c:508 msgid "port for proxy" msgstr "" -#: src/common/weeconfig.c:522 +#: src/common/weeconfig.c:509 msgid "port for connecting to proxy server" msgstr "" -#: src/common/weeconfig.c:525 +#: src/common/weeconfig.c:512 msgid "proxy password" msgstr "" -#: src/common/weeconfig.c:526 +#: src/common/weeconfig.c:513 msgid "password for proxy server" msgstr "" -#: src/common/weeconfig.c:537 +#: src/common/weeconfig.c:524 msgid "server name" msgstr "" -#: src/common/weeconfig.c:538 +#: src/common/weeconfig.c:525 msgid "name associated to IRC server (for display only)" msgstr "" -#: src/common/weeconfig.c:541 +#: src/common/weeconfig.c:528 msgid "automatically connect to server" msgstr "" -#: src/common/weeconfig.c:542 +#: src/common/weeconfig.c:529 msgid "automatically connect to server when WeeChat is starting" msgstr "" -#: src/common/weeconfig.c:545 +#: src/common/weeconfig.c:532 msgid "server address or hostname" msgstr "" -#: src/common/weeconfig.c:546 +#: src/common/weeconfig.c:533 msgid "IP address or hostname of IRC server" msgstr "" -#: src/common/weeconfig.c:549 +#: src/common/weeconfig.c:536 msgid "port for IRC server" msgstr "" -#: src/common/weeconfig.c:550 +#: src/common/weeconfig.c:537 msgid "port for connecting to server" msgstr "" -#: src/common/weeconfig.c:553 +#: src/common/weeconfig.c:540 msgid "server password" msgstr "" -#: src/common/weeconfig.c:554 +#: src/common/weeconfig.c:541 msgid "password for IRC server" msgstr "" -#: src/common/weeconfig.c:557 +#: src/common/weeconfig.c:544 msgid "nickname for server" msgstr "" -#: src/common/weeconfig.c:558 +#: src/common/weeconfig.c:545 msgid "nickname to use on IRC server" msgstr "" -#: src/common/weeconfig.c:561 +#: src/common/weeconfig.c:548 msgid "alternate nickname for server" msgstr "" -#: src/common/weeconfig.c:562 +#: src/common/weeconfig.c:549 msgid "alternate nickname to use on IRC server (if nickname is already used)" msgstr "" -#: src/common/weeconfig.c:565 +#: src/common/weeconfig.c:552 msgid "2nd alternate nickname for server" msgstr "" -#: src/common/weeconfig.c:566 +#: src/common/weeconfig.c:553 msgid "" "2nd alternate nickname to use on IRC server (if alternate nickname is " "already used)" msgstr "" -#: src/common/weeconfig.c:569 +#: src/common/weeconfig.c:556 msgid "user name for server" msgstr "" -#: src/common/weeconfig.c:570 +#: src/common/weeconfig.c:557 msgid "user name to use on IRC server" msgstr "" -#: src/common/weeconfig.c:573 +#: src/common/weeconfig.c:560 msgid "real name for server" msgstr "" -#: src/common/weeconfig.c:574 +#: src/common/weeconfig.c:561 msgid "real name to use on IRC server" msgstr "" -#: src/common/weeconfig.c:577 src/common/weeconfig.c:578 +#: src/common/weeconfig.c:564 src/common/weeconfig.c:565 msgid "first command to run when connected to server" msgstr "" -#: src/common/weeconfig.c:581 +#: src/common/weeconfig.c:568 msgid "list of channels to join when connected to server" msgstr "" -#: src/common/weeconfig.c:582 +#: src/common/weeconfig.c:569 msgid "comma separated list of channels to join when connected to server" msgstr "" -#: src/common/weeconfig.c:804 +#: src/common/weeconfig.c:791 #, c-format msgid "%s %s, line %d: new server, but previous was incomplete\n" msgstr "" -#: src/common/weeconfig.c:813 +#: src/common/weeconfig.c:800 #, c-format msgid "%s %s, line %d: server '%s' already exists\n" msgstr "" -#: src/common/weeconfig.c:825 +#: src/common/weeconfig.c:812 #, c-format msgid "%s %s, line %d: unable to create server\n" msgstr "" -#: src/common/weeconfig.c:864 +#: src/common/weeconfig.c:851 #, c-format msgid "%s unable to assign default int with string (\"%s\")\n" msgstr "" -#: src/common/weeconfig.c:875 +#: src/common/weeconfig.c:862 #, c-format msgid "%s unable to assign default color (\"%s\")\n" msgstr "" -#: src/common/weeconfig.c:914 +#: src/common/weeconfig.c:901 #, c-format msgid "%s config file \"%s\" not found.\n" msgstr "" -#: src/common/weeconfig.c:946 +#: src/common/weeconfig.c:933 #, c-format msgid "%s %s, line %d: invalid syntax, missing \"]\"\n" msgstr "" -#: src/common/weeconfig.c:963 +#: src/common/weeconfig.c:950 #, c-format msgid "%s %s, line %d: unknown section identifier (\"%s\")\n" msgstr "" -#: src/common/weeconfig.c:981 +#: src/common/weeconfig.c:968 #, c-format msgid "%s %s, line %d: invalid syntax, missing \"=\"\n" msgstr "" -#: src/common/weeconfig.c:1015 +#: src/common/weeconfig.c:1002 #, c-format msgid "%s %s, line %d: invalid option \"%s\"\n" msgstr "" -#: src/common/weeconfig.c:1026 +#: src/common/weeconfig.c:1013 #, c-format msgid "" "%s %s, line %d: invalid value foroption '%s'\n" "Expected: boolean value: 'off' or 'on'\n" msgstr "" -#: src/common/weeconfig.c:1035 +#: src/common/weeconfig.c:1022 #, c-format msgid "" "%s %s, line %d: invalid value for option '%s'\n" "Expected: integer between %d and %d\n" msgstr "" -#: src/common/weeconfig.c:1046 +#: src/common/weeconfig.c:1033 #, c-format msgid "" "%s %s, line %d: invalid value for option '%s'\n" "Expected: one of these strings: " msgstr "" -#: src/common/weeconfig.c:1062 +#: src/common/weeconfig.c:1049 #, c-format msgid "%s %s, line %d: invalid color name for option '%s'\n" msgstr "" -#: src/common/weeconfig.c:1121 src/common/weeconfig.c:1289 +#: src/common/weeconfig.c:1108 src/common/weeconfig.c:1276 #, c-format msgid "%s cannot create file \"%s\"\n" msgstr "" -#: src/common/weeconfig.c:1127 +#: src/common/weeconfig.c:1114 #, c-format msgid "%s: creating default config file...\n" msgstr "" -#: src/common/weeconfig.c:1128 +#: src/common/weeconfig.c:1115 msgid "creating default config file\n" msgstr "" -#: src/common/weeconfig.c:1131 src/common/weeconfig.c:1298 +#: src/common/weeconfig.c:1118 src/common/weeconfig.c:1285 #, c-format msgid "" "#\n" "# %s configuration file, created by %s v%s on %s#\n" msgstr "" -#: src/common/weeconfig.c:1295 +#: src/common/weeconfig.c:1282 msgid "saving config to disk\n" msgstr "" diff --git a/src/common/Makefile.am b/src/common/Makefile.am index 7ef59d69a..1500e96e8 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -30,4 +30,6 @@ lib_weechat_main_a_SOURCES = weechat.c \ history.c \ history.h \ hotlist.c \ - hotlist.h + hotlist.h \ + log.c \ + log.h diff --git a/src/common/log.c b/src/common/log.c new file mode 100644 index 000000000..62f7aefb7 --- /dev/null +++ b/src/common/log.c @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2004 by FlashCode + * See README for License detail, AUTHORS for developers list. + * + * 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 2 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 + */ + +/* log.c: log buffers to files */ + + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + +#include "weechat.h" +#include "log.h" +#include "weeconfig.h" + + +/* + * log_write_date: writes date to log file + */ + +void +log_write_date (t_gui_buffer *buffer) +{ + static char buf_time[256]; + static time_t seconds; + struct tm *date_tmp; + + if (buffer->log_file) + { + seconds = time (NULL); + date_tmp = localtime (&seconds); + if (date_tmp) + { + strftime (buf_time, sizeof (buf_time) - 1, cfg_log_timestamp, date_tmp); + fprintf (buffer->log_file, "%s ", buf_time); + fflush (buffer->log_file); + } + } +} + +/* + * log_write: writes a message to log file + */ + +void +log_write (t_gui_buffer *buffer, char *message) +{ + if (buffer->log_file) + { + fprintf (buffer->log_file, "%s", message); + fflush (buffer->log_file); + } +} + +/* + * log_start: starts a log + */ + +void +log_start (t_gui_buffer *buffer) +{ + int length; + char *ptr_home; + + ptr_home = getenv ("HOME"); + length = strlen (cfg_log_path) + + ((cfg_log_path[0] == '~') ? strlen (ptr_home) : 0) + + 64; + if (SERVER(buffer)) + length += strlen (SERVER(buffer)->name); + if (CHANNEL(buffer)) + length += strlen (CHANNEL(buffer)->name); + buffer->log_filename = (char *) malloc (length); + if (!buffer->log_filename) + { + wee_log_printf (_("Not enough memory to write log file for a buffer\n")); + return; + } + if (cfg_log_path[0] == '~') + { + strcpy (buffer->log_filename, ptr_home); + strcat (buffer->log_filename, cfg_log_path + 1); + } + else + strcpy (buffer->log_filename, cfg_log_path); + if (buffer->log_filename[strlen (buffer->log_filename) - 1] != DIR_SEPARATOR_CHAR) + strcat (buffer->log_filename, DIR_SEPARATOR); + + if (SERVER(buffer)) + { + strcat (buffer->log_filename, SERVER(buffer)->name); + strcat (buffer->log_filename, "."); + } + if (CHANNEL(buffer)) + { + strcat (buffer->log_filename, CHANNEL(buffer)->name); + strcat (buffer->log_filename, "."); + } + strcat (buffer->log_filename, "weechatlog"); + + buffer->log_file = fopen (buffer->log_filename, "a"); + if (!buffer->log_file) + { + wee_log_printf (_("Unable to write log file for a buffer\n")); + free (buffer->log_filename); + return; + } + log_write (buffer, _("**** Beginning of log ")); + log_write_date (buffer); + log_write (buffer, "****\n"); +} + +/* + * log_end: ends a log + */ + +void +log_end (t_gui_buffer *buffer) +{ + if (buffer->log_file) + { + log_write (buffer, _("**** End of log ")); + log_write_date (buffer); + log_write (buffer, "****\n"); + fclose (buffer->log_file); + buffer->log_file = NULL; + } + if (buffer->log_filename) + free (buffer->log_filename); +} diff --git a/src/common/log.h b/src/common/log.h new file mode 100644 index 000000000..de132b93e --- /dev/null +++ b/src/common/log.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2004 by FlashCode + * See README for License detail, AUTHORS for developers list. + * + * 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 2 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 + */ + + +#ifndef __WEECHAT_LOG_H +#define __WEECHAT_LOG_H 1 + +#include "../irc/irc.h" + +extern void log_write_date (t_gui_buffer *); +extern void log_write (t_gui_buffer *, char *); +extern void log_start (t_gui_buffer *); +extern void log_end (t_gui_buffer *); + +#endif /* log.h */ diff --git a/src/common/weechat.c b/src/common/weechat.c index dc6eb9026..776ae4005 100644 --- a/src/common/weechat.c +++ b/src/common/weechat.c @@ -60,7 +60,7 @@ int quit_weechat; /* = 1 if quit request from user... why ? :'( */ char *weechat_home; /* WeeChat home dir. (example: /home/toto/.weechat) */ -FILE *log_file; /* WeeChat log file (~/.weechat/weechat.log) */ +FILE *weechat_log_file; /* WeeChat log file (~/.weechat/weechat.log) */ int server_cmd_line; /* at least one server on WeeChat command line */ @@ -88,7 +88,7 @@ wee_log_printf (char *message, ...) static time_t seconds; struct tm *date_tmp; - if (!log_file) + if (!weechat_log_file) return; va_start (argptr, message); @@ -98,13 +98,13 @@ wee_log_printf (char *message, ...) seconds = time (NULL); date_tmp = localtime (&seconds); if (date_tmp) - fprintf (log_file, "[%04d-%02d-%02d %02d:%02d:%02d] %s", + fprintf (weechat_log_file, "[%04d-%02d-%02d %02d:%02d:%02d] %s", date_tmp->tm_year + 1900, date_tmp->tm_mon + 1, date_tmp->tm_mday, date_tmp->tm_hour, date_tmp->tm_min, date_tmp->tm_sec, buffer); else - fprintf (log_file, "%s", buffer); - fflush (log_file); + fprintf (weechat_log_file, "%s", buffer); + fflush (weechat_log_file); } /* @@ -354,6 +354,15 @@ wee_create_home_dirs () } #endif + /* create "~/.weechat/logs" */ + snprintf (dir_name, dir_length, "%s%s%s", weechat_home, DIR_SEPARATOR, + "logs"); + if (!wee_create_dir (dir_name)) + { + fprintf (stderr, _("%s unable to create ~/.weechat/logs directory\n"), + WEECHAT_WARNING); + } + free (dir_name); } @@ -383,7 +392,7 @@ wee_init_log () filename = (char *) malloc (filename_length * sizeof (char)); snprintf (filename, filename_length, "%s/" WEECHAT_LOG_NAME, weechat_home); - if ((log_file = fopen (filename, "wt")) == NULL) + if ((weechat_log_file = fopen (filename, "wt")) == NULL) fprintf (stderr, _("%s unable to create/append to log file (~/.weechat/%s)"), WEECHAT_WARNING, WEECHAT_LOG_NAME); @@ -440,8 +449,8 @@ wee_shutdown () dcc_end (); server_free_all (); gui_end (); - if (log_file) - fclose (log_file); + if (weechat_log_file) + fclose (weechat_log_file); exit (EXIT_SUCCESS); } diff --git a/src/common/weeconfig.c b/src/common/weeconfig.c index 2416333a8..e08833175 100644 --- a/src/common/weeconfig.c +++ b/src/common/weeconfig.c @@ -412,19 +412,21 @@ t_config_option weechat_options_history[] = /* config, log section */ -int cfg_log_auto_channels; +int cfg_log_auto_server; +int cfg_log_auto_channel; int cfg_log_auto_private; char *cfg_log_path; -char *cfg_log_name; char *cfg_log_timestamp; -char *cfg_log_start_string; -char *cfg_log_end_string; t_config_option weechat_options_log[] = -{ { "log_auto_channels", N_("automatically log channel chats"), +{ { "log_auto_server", N_("automatically log server messages"), + N_("automatically log server messages"), + OPTION_TYPE_BOOLEAN, BOOL_FALSE, BOOL_TRUE, BOOL_TRUE, + NULL, NULL, &cfg_log_auto_server, NULL, NULL }, + { "log_auto_channel", N_("automatically log channel chats"), N_("automatically log channel chats"), OPTION_TYPE_BOOLEAN, BOOL_FALSE, BOOL_TRUE, BOOL_TRUE, - NULL, NULL, &cfg_log_auto_channels, NULL, NULL }, + NULL, NULL, &cfg_log_auto_channel, NULL, NULL }, { "log_auto_private", N_("automatically log private chats"), N_("automatically log private chats"), OPTION_TYPE_BOOLEAN, BOOL_FALSE, BOOL_TRUE, BOOL_TRUE, @@ -433,25 +435,10 @@ t_config_option weechat_options_log[] = N_("path for WeeChat log files"), OPTION_TYPE_STRING, 0, 0, 0, "~/.weechat/logs/", NULL, NULL, &cfg_log_path, NULL }, - { "log_name", N_("name for log files"), - N_("name for log files (%S == irc server name, " - "%N == channel name (or nickname if private chat)"), - OPTION_TYPE_STRING, 0, 0, 0, - "%S,%N.weechatlog", NULL, NULL, &cfg_log_name, NULL }, { "log_timestamp", N_("timestamp for log"), N_("timestamp for log (see man strftime for date/time specifiers)"), OPTION_TYPE_STRING, 0, 0, 0, - "~", NULL, NULL, &cfg_log_timestamp, NULL }, - { "log_start_string", N_("start string for log files"), - N_("text written when starting new log file " - "(see man strftime for date/time specifiers)"), - OPTION_TYPE_STRING, 0, 0, 0, - "--- Log started %a %b %d %Y %H:%M:%s", NULL, NULL, &cfg_log_start_string, NULL }, - { "log_end_string", N_("end string for log files"), - N_("text written when ending log file " - "(see man strftime for date/time specifiers)"), - OPTION_TYPE_STRING, 0, 0, 0, - "--- Log ended %a %b %d %Y %H:%M:%s", NULL, NULL, &cfg_log_end_string, NULL }, + "%Y %b %d %H:%M:%S", NULL, NULL, &cfg_log_timestamp, NULL }, { NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL } }; @@ -1305,7 +1292,7 @@ config_write (char *config_name) if ((i != CONFIG_SECTION_ALIAS) && (i != CONFIG_SECTION_SERVER)) { fprintf (file, "\n[%s]\n", config_sections[i].section_name); - if ((i == CONFIG_SECTION_LOG) || (i == CONFIG_SECTION_PROXY)) + if (i == CONFIG_SECTION_PROXY) fprintf (file, "# WARNING!!! Options for section \"%s\" are not developed!\n", config_sections[i].section_name); diff --git a/src/common/weeconfig.h b/src/common/weeconfig.h index 4f39b29c3..c90d287b7 100644 --- a/src/common/weeconfig.h +++ b/src/common/weeconfig.h @@ -139,13 +139,11 @@ extern int cfg_col_dcc_aborted; extern int cfg_history_max_lines; extern int cfg_history_max_commands; -extern int cfg_log_auto_channels; +extern int cfg_log_auto_server; +extern int cfg_log_auto_channel; extern int cfg_log_auto_private; extern char *cfg_log_path; -extern char *cfg_log_name; extern char *cfg_log_timestamp; -extern char *cfg_log_start_string; -extern char *cfg_log_end_string; extern int cfg_dcc_auto_accept_files; extern int cfg_dcc_auto_accept_chats; diff --git a/src/gui/curses/gui-display.c b/src/gui/curses/gui-display.c index e57b7ba44..1f65fee8c 100644 --- a/src/gui/curses/gui-display.c +++ b/src/gui/curses/gui-display.c @@ -36,6 +36,7 @@ #include "../gui.h" #include "../../common/weeconfig.h" #include "../../common/hotlist.h" +#include "../../common/log.h" #include "../../irc/irc.h" @@ -1409,7 +1410,7 @@ gui_get_dcc_buffer () /* check if dcc buffer exists */ for (ptr_buffer = gui_buffers; ptr_buffer; ptr_buffer = ptr_buffer->next_buffer) { - if (BUFFER_IS_DCC (ptr_buffer)) + if (ptr_buffer->dcc) break; } if (ptr_buffer) @@ -1433,7 +1434,7 @@ gui_switch_to_dcc_buffer () /* check if dcc buffer exists */ for (ptr_buffer = gui_buffers; ptr_buffer; ptr_buffer = ptr_buffer->next_buffer) { - if (BUFFER_IS_DCC (ptr_buffer)) + if (ptr_buffer->dcc) break; } if (ptr_buffer) @@ -2032,8 +2033,12 @@ gui_printf_color_type (t_gui_buffer *buffer, int type, int color, char *message, snprintf (timestamp, 16, "%02d", date_tmp->tm_sec); gui_add_message (buffer, MSG_TYPE_TIME, COLOR_WIN_CHAT_TIME, timestamp); gui_add_message (buffer, MSG_TYPE_TIME, COLOR_WIN_CHAT_DARK, "] "); + if (buffer->log_file) + log_write_date (buffer); } gui_add_message (buffer, type, color, pos + 1); + if (buffer->log_file) + log_write (buffer, pos + 1); pos = strchr (pos + 1, '\n'); if (pos && !pos[1]) pos = NULL; diff --git a/src/gui/gui-common.c b/src/gui/gui-common.c index ac6b1cc54..43a6297ed 100644 --- a/src/gui/gui-common.c +++ b/src/gui/gui-common.c @@ -36,6 +36,7 @@ #include "gui.h" #include "../common/weeconfig.h" #include "../common/hotlist.h" +#include "../common/log.h" #include "../irc/irc.h" @@ -146,6 +147,8 @@ gui_buffer_new (t_gui_window *window, void *server, void *channel, int dcc, ((t_irc_channel *)(channel))->buffer = gui_buffers; SERVER(gui_buffers) = server; CHANNEL(gui_buffers) = channel; + if (cfg_log_auto_server) + log_start (gui_buffers); return gui_buffers; } @@ -179,6 +182,14 @@ gui_buffer_new (t_gui_window *window, void *server, void *channel, int dcc, new_buffer->num_lines = 0; new_buffer->line_complete = 1; + /* create/append to log file */ + new_buffer->log_filename = NULL; + new_buffer->log_file = NULL; + if ((cfg_log_auto_server && BUFFER_IS_SERVER(new_buffer)) + || (cfg_log_auto_channel && BUFFER_IS_CHANNEL(new_buffer)) + || (cfg_log_auto_private && BUFFER_IS_PRIVATE(new_buffer))) + log_start (new_buffer); + /* init input buffer */ new_buffer->input_buffer_alloc = INPUT_BUFFER_BLOCK_SIZE; new_buffer->input_buffer = (char *) malloc (INPUT_BUFFER_BLOCK_SIZE); @@ -390,6 +401,11 @@ gui_buffer_free (t_gui_buffer *buffer, int switch_to_another) gui_line_free (buffer->lines); buffer->lines = ptr_line; } + + /* close log if opened */ + if (buffer->log_file) + log_end (buffer); + if (buffer->input_buffer) free (buffer->input_buffer); diff --git a/src/gui/gui.h b/src/gui/gui.h index ddf7422d2..20d561677 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -73,7 +73,6 @@ #define BUFFER_IS_SERVER(buffer) (SERVER(buffer) && !CHANNEL(buffer)) #define BUFFER_IS_CHANNEL(buffer) (CHANNEL(buffer) && (CHANNEL(buffer)->type == CHAT_CHANNEL)) #define BUFFER_IS_PRIVATE(buffer) (CHANNEL(buffer) && (CHANNEL(buffer)->type == CHAT_PRIVATE)) -#define BUFFER_IS_DCC(buffer) (!SERVER(buffer) && !CHANNEL(buffer)) #define MSG_TYPE_TIME 1 #define MSG_TYPE_NICK 2 @@ -143,8 +142,6 @@ struct t_gui_buffer /* server/channel */ void *server; /* buffer's server */ void *channel; /* buffer's channel */ - - /* dcc buffer */ int dcc; /* buffer is dcc status */ /* chat content (lines, line is composed by many messages) */ @@ -153,6 +150,10 @@ struct t_gui_buffer int num_lines; /* number of lines in the window */ int line_complete; /* current line complete ? (\n ending) */ + /* file to save buffer content */ + char *log_filename; /* filename for saving buffer content */ + FILE *log_file; /* for logging buffer to file */ + /* inupt buffer */ char *input_buffer; /* input buffer */ int input_buffer_alloc; /* input buffer: allocated size in mem */ diff --git a/weechat/ChangeLog b/weechat/ChangeLog index ee48759e0..b8bd46ac0 100644 --- a/weechat/ChangeLog +++ b/weechat/ChangeLog @@ -5,6 +5,7 @@ ChangeLog - 2004-09-19 Version 0.0.8 (under dev!): + * logging buffers to disk (server/channel/private according to user prefs) * /buffer command developed (buffers list and move function) * Away now announced in channels, and config option "look_display_away" added to enable/disable this feature diff --git a/weechat/TODO b/weechat/TODO index 42d38db10..363aa7100 100644 --- a/weechat/TODO +++ b/weechat/TODO @@ -1,7 +1,7 @@ WeeChat - Wee Enhanced Environment for Chat =========================================== -TODO - 2004-08-08 +TODO - 2004-09-19 Legend: # done @@ -21,7 +21,8 @@ v0.0.8: + "/dcc" command (for chat and sending/receiving files) * Interface: - + "/buffer" command, buffers ordered by number, auto-jump to active + # log chats to file + # "/buffer" command, buffers ordered by number, auto-jump to active buffers (alt-a), jump to buffers by number (alt-number) + "/window" command, split terminal in multiple windows (horizontally/vertically) @@ -67,8 +68,7 @@ Future versions: - add lag indicator - improve completion (for example complete command parameters when possible) - understand incomplete commands if unambigous (for example: /he for /help is ok) - - tab key with empty command line should switch to next window (like F7) - - log chats to file + - tab key with empty command line should switch to next window (like F7) ? Qt GUI * TCP/IP communication: diff --git a/weechat/po/POTFILES.in b/weechat/po/POTFILES.in index 1727c1dbb..838de9075 100644 --- a/weechat/po/POTFILES.in +++ b/weechat/po/POTFILES.in @@ -24,6 +24,7 @@ ./src/common/command.h ./src/common/completion.h ./src/common/history.h +./src/common/log.c ./src/common/weechat.h ./src/common/weeconfig.c ./src/common/weeconfig.h diff --git a/weechat/po/fr.po b/weechat/po/fr.po index 54e521768..a573a583b 100644 --- a/weechat/po/fr.po +++ b/weechat/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.0.8-pre2\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2004-09-19 11:19+0200\n" +"POT-Creation-Date: 2004-09-19 22:20+0200\n" "PO-Revision-Date: 2004-08-08 20:47+0200\n" "Last-Translator: FlashCode \n" "Language-Team: weechat-dev \n" @@ -20,7 +20,7 @@ msgstr "" msgid "%s cannot allocate new nick\n" msgstr "%s ompossible d'allouer un nouveau pseudo\n" -#: src/irc/irc-server.c:130 src/common/weeconfig.c:1240 +#: src/irc/irc-server.c:130 src/common/weeconfig.c:1227 msgid "Unable to get user's name" msgstr "Impossible de déterminer le nom d'utilisateur" @@ -1681,51 +1681,51 @@ msgstr "" "%s impossible d'ajouter la fonction pour le message \"%s\" (mémoire " "insuffisante)\n" -#: src/gui/curses/gui-display.c:568 +#: src/gui/curses/gui-display.c:569 msgid "bytes" msgstr "octets" -#: src/gui/curses/gui-display.c:568 +#: src/gui/curses/gui-display.c:569 msgid "Kb" msgstr "Ko" -#: src/gui/curses/gui-display.c:568 +#: src/gui/curses/gui-display.c:569 msgid "Mb" msgstr "Mo" -#: src/gui/curses/gui-display.c:568 +#: src/gui/curses/gui-display.c:569 msgid "Gb" msgstr "Go" -#: src/gui/curses/gui-display.c:997 +#: src/gui/curses/gui-display.c:998 #, c-format msgid "%d:[not connected] " msgstr "%d:[non connecté] " -#: src/gui/curses/gui-display.c:1005 +#: src/gui/curses/gui-display.c:1006 msgid "[Act: " msgstr "[Act: " -#: src/gui/curses/gui-display.c:1044 src/gui/curses/gui-display.c:1047 +#: src/gui/curses/gui-display.c:1045 src/gui/curses/gui-display.c:1048 msgid "-MORE-" msgstr "-PLUS-" -#: src/gui/curses/gui-display.c:1216 +#: src/gui/curses/gui-display.c:1217 msgid " [A] Accept" msgstr " [A] Accepter" -#: src/gui/curses/gui-display.c:1217 src/gui/curses/gui-display.c:1223 -#: src/gui/curses/gui-display.c:1230 +#: src/gui/curses/gui-display.c:1218 src/gui/curses/gui-display.c:1224 +#: src/gui/curses/gui-display.c:1231 msgid " [C] Cancel" msgstr " [C] Annuler" -#: src/gui/curses/gui-display.c:1218 src/gui/curses/gui-display.c:1224 -#: src/gui/curses/gui-display.c:1231 src/gui/curses/gui-display.c:1238 -#: src/gui/curses/gui-display.c:1243 +#: src/gui/curses/gui-display.c:1219 src/gui/curses/gui-display.c:1225 +#: src/gui/curses/gui-display.c:1232 src/gui/curses/gui-display.c:1239 +#: src/gui/curses/gui-display.c:1244 msgid " [Q] Close DCC view" msgstr " [Q] Fermer la vue DCC" -#: src/gui/curses/gui-display.c:1237 +#: src/gui/curses/gui-display.c:1238 msgid " [R] Remove" msgstr " [R] Retirer" @@ -1733,17 +1733,17 @@ msgstr " [R] Retirer" msgid "server" msgstr "serveur" -#: src/gui/gui-common.c:308 +#: src/gui/gui-common.c:319 #, c-format msgid "%s not enough memory for infobar message\n" msgstr "%s pas assez de mémoire pour un message de la barre d'infos\n" -#: src/gui/gui-common.c:443 +#: src/gui/gui-common.c:459 #, c-format msgid "%s not enough memory for new line!\n" msgstr "%s pas assez de mémoire pour une nouvelle ligne !\n" -#: src/gui/gui-common.c:486 +#: src/gui/gui-common.c:502 msgid "not enough memory!\n" msgstr "pas assez de mémoire !\n" @@ -2455,20 +2455,41 @@ msgstr "%s pas assez de m msgid "%s unable to create ~/.weechat directory\n" msgstr "%s impossible de créer le répertoire ~/.weechat\n" -#: src/common/weechat.c:388 +#: src/common/weechat.c:362 +#, c-format +msgid "%s unable to create ~/.weechat/logs directory\n" +msgstr "%s impossible de créer le répertoire ~/.weechat/logs\n" + +#: src/common/weechat.c:397 #, c-format msgid "%s unable to create/append to log file (~/.weechat/%s)" msgstr "%s impossible de créer/ajouter dans le fichier de log (~/.weechat/%s)" -#: src/common/weechat.c:411 +#: src/common/weechat.c:420 #, c-format msgid "%sWelcome to " msgstr "%sBienvenue dans " -#: src/common/weechat.c:424 +#: src/common/weechat.c:433 msgid "compiled on" msgstr "compilé le" +#: src/common/log.c:95 +msgid "Not enough memory to write log file for a buffer\n" +msgstr "Pas assez de mémoire pour écrire un fichier log de tampon\n" + +#: src/common/log.c:123 +msgid "Unable to write log file for a buffer\n" +msgstr "Impossible d'écrire le fichier log pour un tampon\n" + +#: src/common/log.c:127 +msgid "**** Beginning of log " +msgstr "**** Début du log " + +#: src/common/log.c:141 +msgid "**** End of log " +msgstr "**** Fin du log " + #: src/common/weechat.h:49 msgid " Error:" msgstr " Erreur:" @@ -2846,235 +2867,204 @@ msgid "maximum number of user commands in history (0 = unlimited)" msgstr "" "nombre maximum de commandes utilisateur dans l'historique (0 = sans limite)" -#: src/common/weeconfig.c:424 src/common/weeconfig.c:425 +#: src/common/weeconfig.c:422 src/common/weeconfig.c:423 +msgid "automatically log server messages" +msgstr "enregistrer automatiquement les messages du serveur" + +#: src/common/weeconfig.c:426 src/common/weeconfig.c:427 msgid "automatically log channel chats" msgstr "enregistrer automatiquement les conversations des canaux" -#: src/common/weeconfig.c:428 src/common/weeconfig.c:429 +#: src/common/weeconfig.c:430 src/common/weeconfig.c:431 msgid "automatically log private chats" msgstr "enregistrer automatiquement les conversations privées" -#: src/common/weeconfig.c:432 +#: src/common/weeconfig.c:434 msgid "path for log files" msgstr "chemin pour les conversations sauvegardées" -#: src/common/weeconfig.c:433 +#: src/common/weeconfig.c:435 msgid "path for WeeChat log files" msgstr "chemin pour les conversations sauvegardées par WeeChat" -#: src/common/weeconfig.c:436 -msgid "name for log files" -msgstr "nom des conversations sauvegardées" - -#: src/common/weeconfig.c:437 -msgid "" -"name for log files (%S == irc server name, %N == channel name (or nickname " -"if private chat)" -msgstr "" -"nom des conversations saivegardées (%S == nom du serveur irc, %N == nom du " -"canal (ou pseudo si fenêtre privée)" - -#: src/common/weeconfig.c:441 +#: src/common/weeconfig.c:438 msgid "timestamp for log" msgstr "horodatage pour les conversations sauvegardées" -#: src/common/weeconfig.c:442 +#: src/common/weeconfig.c:439 msgid "timestamp for log (see man strftime for date/time specifiers)" msgstr "" "horodatage pour les conversations sauvegardées (voir man strftime pour le " "format de date/heure)" -#: src/common/weeconfig.c:445 -msgid "start string for log files" -msgstr "chaîne de début pour les conversations sauvegardées" - -#: src/common/weeconfig.c:446 -msgid "" -"text written when starting new log file (see man strftime for date/time " -"specifiers)" -msgstr "" -"texte écrit en démarrant la sauvegarde d'une discussion (voir man strftime " -"pour le format de date/heure)" - -#: src/common/weeconfig.c:450 -msgid "end string for log files" -msgstr "chaîne de fin pour les conversations sauvegardées" - -#: src/common/weeconfig.c:451 -msgid "" -"text written when ending log file (see man strftime for date/time specifiers)" -msgstr "" -"texte écrit à la fin d'une discussion sauvegardées (voir man strftime pour " -"le format de date/heure)" - -#: src/common/weeconfig.c:470 +#: src/common/weeconfig.c:457 msgid "automatically accept dcc files" msgstr "accepte automatiquement les fichiers dcc" -#: src/common/weeconfig.c:471 +#: src/common/weeconfig.c:458 msgid "automatically accept incoming dcc files" msgstr "accepte automatiquement les fichiers dcc entrants" -#: src/common/weeconfig.c:474 +#: src/common/weeconfig.c:461 msgid "automatically accept dcc chats" msgstr "accepte automatiquement les demandes de discussion dcc" -#: src/common/weeconfig.c:475 +#: src/common/weeconfig.c:462 msgid "automatically accept dcc chats (use carefully!)" msgstr "" "accepte automatiquement les demandes de discussion dcc (à utiliser avec " "précaution !)" -#: src/common/weeconfig.c:478 +#: src/common/weeconfig.c:465 msgid "timeout for dcc request" msgstr "délai d'attente pour les requêtes dcc" -#: src/common/weeconfig.c:479 +#: src/common/weeconfig.c:466 msgid "timeout for dcc request (in seconds)" msgstr "délai d'attente pour les requêtes dcc (en secondes)" -#: src/common/weeconfig.c:482 +#: src/common/weeconfig.c:469 msgid "block size for dcc packets" msgstr "taille de bloc pour les paquets dcc" -#: src/common/weeconfig.c:483 +#: src/common/weeconfig.c:470 msgid "block size for dcc packets in bytes (default: 1024)" msgstr "taille de bloc pour les paquets dcc en octets (défaut: 1024)" -#: src/common/weeconfig.c:486 +#: src/common/weeconfig.c:473 msgid "path for incoming files with dcc" msgstr "chemin les fichiers reçus par dcc" -#: src/common/weeconfig.c:487 +#: src/common/weeconfig.c:474 msgid "path for writing incoming files with dcc (default: user home)" msgstr "" "chemin pour écrire les fichiers reçus par dcc (par défaut: répertoire de " "l'utilisateur)" -#: src/common/weeconfig.c:490 +#: src/common/weeconfig.c:477 msgid "default path for sending files with dcc" msgstr "chemin par défaut pour envoyer les fichiers par dcc" -#: src/common/weeconfig.c:491 +#: src/common/weeconfig.c:478 msgid "" "path for reading files when sending thru dcc (when no path is specified)" msgstr "" "chemin pour lire les fichiers lorsqu'ils sont envoyés par dcc (quand aucun " "chemin n'est spécifié)" -#: src/common/weeconfig.c:494 +#: src/common/weeconfig.c:481 msgid "automatically rename dcc files if already exists" msgstr "renomme automatiquement les fichiers dcc s'ils existent déjà" -#: src/common/weeconfig.c:495 +#: src/common/weeconfig.c:482 msgid "rename incoming files if already exists (add '.1', '.2', ...)" msgstr "" "renommer les fichiers reçus s'ils existent déjà (ajoute '.1', '.2', ...)" -#: src/common/weeconfig.c:498 +#: src/common/weeconfig.c:485 msgid "automatically resume aborted transfers" msgstr "continuer automatiquement les transferts non terminés" -#: src/common/weeconfig.c:499 +#: src/common/weeconfig.c:486 msgid "" "automatically resume dcc transfer if connection with remote host is loosed" msgstr "" "continuer automatiquement les transferts dcc si la connexion avec la machine " "distante a été perdue" -#: src/common/weeconfig.c:513 +#: src/common/weeconfig.c:500 msgid "use proxy" msgstr "utiliser un proxy" -#: src/common/weeconfig.c:514 +#: src/common/weeconfig.c:501 msgid "use a proxy server to connect to irc server" msgstr "utiliser un proxy pour se connecter au serveur irc" -#: src/common/weeconfig.c:517 +#: src/common/weeconfig.c:504 msgid "proxy address" msgstr "adresse du proxy" -#: src/common/weeconfig.c:518 +#: src/common/weeconfig.c:505 msgid "proxy server address (IP or hostname)" msgstr "adresse du serveur proxy (IP ou nom)" -#: src/common/weeconfig.c:521 +#: src/common/weeconfig.c:508 msgid "port for proxy" msgstr "port pour le proxy" -#: src/common/weeconfig.c:522 +#: src/common/weeconfig.c:509 msgid "port for connecting to proxy server" msgstr "port pour se connecter au serveur proxy" -#: src/common/weeconfig.c:525 +#: src/common/weeconfig.c:512 msgid "proxy password" msgstr "mot de passe pour le proxy" -#: src/common/weeconfig.c:526 +#: src/common/weeconfig.c:513 msgid "password for proxy server" msgstr "mot de passe pour le serveur proxy" -#: src/common/weeconfig.c:537 +#: src/common/weeconfig.c:524 msgid "server name" msgstr "nom du serveur" -#: src/common/weeconfig.c:538 +#: src/common/weeconfig.c:525 msgid "name associated to IRC server (for display only)" msgstr "nom associé au serveur IRC (pour affichage seulement)" -#: src/common/weeconfig.c:541 +#: src/common/weeconfig.c:528 msgid "automatically connect to server" msgstr "connexion automatique au serveur" -#: src/common/weeconfig.c:542 +#: src/common/weeconfig.c:529 msgid "automatically connect to server when WeeChat is starting" msgstr "connexion automatique au serveur quand WeeChat démarre" -#: src/common/weeconfig.c:545 +#: src/common/weeconfig.c:532 msgid "server address or hostname" msgstr "adresse ou nom du serveur" -#: src/common/weeconfig.c:546 +#: src/common/weeconfig.c:533 msgid "IP address or hostname of IRC server" msgstr "adresse IP ou nom du serveur IRC" -#: src/common/weeconfig.c:549 +#: src/common/weeconfig.c:536 msgid "port for IRC server" msgstr "port pour le serveur IRC" -#: src/common/weeconfig.c:550 +#: src/common/weeconfig.c:537 msgid "port for connecting to server" msgstr "port pour se connecter au serveur" -#: src/common/weeconfig.c:553 +#: src/common/weeconfig.c:540 msgid "server password" msgstr "mot de passe pour le serveur" -#: src/common/weeconfig.c:554 +#: src/common/weeconfig.c:541 msgid "password for IRC server" msgstr "mot de passe pour le serveur IRC" -#: src/common/weeconfig.c:557 +#: src/common/weeconfig.c:544 msgid "nickname for server" msgstr "pseudo pour le serveur" -#: src/common/weeconfig.c:558 +#: src/common/weeconfig.c:545 msgid "nickname to use on IRC server" msgstr "pseudo à utiliser sur le serveur IRC" -#: src/common/weeconfig.c:561 +#: src/common/weeconfig.c:548 msgid "alternate nickname for server" msgstr "pseudo alternatif pour le serveur" -#: src/common/weeconfig.c:562 +#: src/common/weeconfig.c:549 msgid "alternate nickname to use on IRC server (if nickname is already used)" msgstr "pseudo alternatif pour le serveur IRC (si le pseudo est déjà utilisé)" -#: src/common/weeconfig.c:565 +#: src/common/weeconfig.c:552 msgid "2nd alternate nickname for server" msgstr "2nd pseudo alternatif pour le serveur" -#: src/common/weeconfig.c:566 +#: src/common/weeconfig.c:553 msgid "" "2nd alternate nickname to use on IRC server (if alternate nickname is " "already used)" @@ -3082,87 +3072,87 @@ msgstr "" "2nd pseudo alternatif pour le serveur IRC (si le pseudo alternatif est déjà " "utilisé)" -#: src/common/weeconfig.c:569 +#: src/common/weeconfig.c:556 msgid "user name for server" msgstr "nom d'utilisateur pour le serveur" -#: src/common/weeconfig.c:570 +#: src/common/weeconfig.c:557 msgid "user name to use on IRC server" msgstr "nom d'utilisateur pour le serveur IRC" -#: src/common/weeconfig.c:573 +#: src/common/weeconfig.c:560 msgid "real name for server" msgstr "nom réel pour le serveur" -#: src/common/weeconfig.c:574 +#: src/common/weeconfig.c:561 msgid "real name to use on IRC server" msgstr "nom réel pour le serveur IRC" -#: src/common/weeconfig.c:577 src/common/weeconfig.c:578 +#: src/common/weeconfig.c:564 src/common/weeconfig.c:565 msgid "first command to run when connected to server" msgstr "commande à exécuter en premier lorsque connecté au serveur" -#: src/common/weeconfig.c:581 +#: src/common/weeconfig.c:568 msgid "list of channels to join when connected to server" msgstr "liste des canaux à rejoindre lorsque connecté au serveur" -#: src/common/weeconfig.c:582 +#: src/common/weeconfig.c:569 msgid "comma separated list of channels to join when connected to server" msgstr "" "liste des canaux (séparés par des virgules) à rejoindre lorsque connecté au " "serveur" -#: src/common/weeconfig.c:804 +#: src/common/weeconfig.c:791 #, c-format msgid "%s %s, line %d: new server, but previous was incomplete\n" msgstr "%s %s, ligne %d: nouveau serveur, mais le précédent était incomplet\n" -#: src/common/weeconfig.c:813 +#: src/common/weeconfig.c:800 #, c-format msgid "%s %s, line %d: server '%s' already exists\n" msgstr "%s %s, ligne %d: le serveur '%s' existe déjà\n" -#: src/common/weeconfig.c:825 +#: src/common/weeconfig.c:812 #, c-format msgid "%s %s, line %d: unable to create server\n" msgstr "%s %s, ligne %d: impossible de créer le serveur\n" -#: src/common/weeconfig.c:864 +#: src/common/weeconfig.c:851 #, c-format msgid "%s unable to assign default int with string (\"%s\")\n" msgstr "%s impossible d'assigner la valeur entière avec la chaîne (\"%s\")\n" -#: src/common/weeconfig.c:875 +#: src/common/weeconfig.c:862 #, c-format msgid "%s unable to assign default color (\"%s\")\n" msgstr "%s impossible d'assigner la couleur par défaut (\"%s\")\n" -#: src/common/weeconfig.c:914 +#: src/common/weeconfig.c:901 #, c-format msgid "%s config file \"%s\" not found.\n" msgstr "%s fichier de configuration \"%s\" non trouvé.\n" -#: src/common/weeconfig.c:946 +#: src/common/weeconfig.c:933 #, c-format msgid "%s %s, line %d: invalid syntax, missing \"]\"\n" msgstr "%s %s, ligne %d: syntaxe invalide, il manque \"]\"\n" -#: src/common/weeconfig.c:963 +#: src/common/weeconfig.c:950 #, c-format msgid "%s %s, line %d: unknown section identifier (\"%s\")\n" msgstr "%s %s, ligne %d: section inconnue (\"%s\")\n" -#: src/common/weeconfig.c:981 +#: src/common/weeconfig.c:968 #, c-format msgid "%s %s, line %d: invalid syntax, missing \"=\"\n" msgstr "%s %s, ligne %d: syntaxe invalide, il manque \"=\"\n" -#: src/common/weeconfig.c:1015 +#: src/common/weeconfig.c:1002 #, c-format msgid "%s %s, line %d: invalid option \"%s\"\n" msgstr "%s %s, ligne %d: option \"%s\" invalide\n" -#: src/common/weeconfig.c:1026 +#: src/common/weeconfig.c:1013 #, c-format msgid "" "%s %s, line %d: invalid value foroption '%s'\n" @@ -3171,7 +3161,7 @@ msgstr "" "%s %s, ligne %d: valeur invalide pour l'option '%s'\n" "Attendu: valeur booléenne: 'off' ou 'on'\n" -#: src/common/weeconfig.c:1035 +#: src/common/weeconfig.c:1022 #, c-format msgid "" "%s %s, line %d: invalid value for option '%s'\n" @@ -3180,7 +3170,7 @@ msgstr "" "%s %s, ligne %d: valeur invalide pour l'option '%s'\n" "Attendu: entier compris entre %d et %d\n" -#: src/common/weeconfig.c:1046 +#: src/common/weeconfig.c:1033 #, c-format msgid "" "%s %s, line %d: invalid value for option '%s'\n" @@ -3189,26 +3179,26 @@ msgstr "" "%s %s, ligne %d: valeur invalide pour l'option '%s'\n" "Attendu: une de ces chaînes: " -#: src/common/weeconfig.c:1062 +#: src/common/weeconfig.c:1049 #, c-format msgid "%s %s, line %d: invalid color name for option '%s'\n" msgstr "%s %s, ligne %d: nom de couleur invalide pour l'option '%s'\n" -#: src/common/weeconfig.c:1121 src/common/weeconfig.c:1289 +#: src/common/weeconfig.c:1108 src/common/weeconfig.c:1276 #, c-format msgid "%s cannot create file \"%s\"\n" msgstr "%s impossible de créer le fichier \"%s\"\n" -#: src/common/weeconfig.c:1127 +#: src/common/weeconfig.c:1114 #, c-format msgid "%s: creating default config file...\n" msgstr "%s: création du fichier de configuration par défaut...\n" -#: src/common/weeconfig.c:1128 +#: src/common/weeconfig.c:1115 msgid "creating default config file\n" msgstr "création du fichier de configuration par défaut\n" -#: src/common/weeconfig.c:1131 src/common/weeconfig.c:1298 +#: src/common/weeconfig.c:1118 src/common/weeconfig.c:1285 #, c-format msgid "" "#\n" @@ -3217,6 +3207,36 @@ msgstr "" "#\n" "# %s: fichier de configuration, créé par %s v%s le %s#\n" -#: src/common/weeconfig.c:1295 +#: src/common/weeconfig.c:1282 msgid "saving config to disk\n" msgstr "sauvegarde de la configuration sur disque\n" + +#~ msgid "name for log files" +#~ msgstr "nom des conversations sauvegardées" + +#~ msgid "" +#~ "name for log files (%S == irc server name, %N == channel name (or " +#~ "nickname if private chat)" +#~ msgstr "" +#~ "nom des conversations saivegardées (%S == nom du serveur irc, %N == nom " +#~ "du canal (ou pseudo si fenêtre privée)" + +#~ msgid "start string for log files" +#~ msgstr "chaîne de début pour les conversations sauvegardées" + +#~ msgid "" +#~ "text written when starting new log file (see man strftime for date/time " +#~ "specifiers)" +#~ msgstr "" +#~ "texte écrit en démarrant la sauvegarde d'une discussion (voir man " +#~ "strftime pour le format de date/heure)" + +#~ msgid "end string for log files" +#~ msgstr "chaîne de fin pour les conversations sauvegardées" + +#~ msgid "" +#~ "text written when ending log file (see man strftime for date/time " +#~ "specifiers)" +#~ msgstr "" +#~ "texte écrit à la fin d'une discussion sauvegardées (voir man strftime " +#~ "pour le format de date/heure)" diff --git a/weechat/po/weechat.pot b/weechat/po/weechat.pot index 5a43fbbb5..e41b0db95 100644 --- a/weechat/po/weechat.pot +++ b/weechat/po/weechat.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2004-09-19 11:19+0200\n" +"POT-Creation-Date: 2004-09-19 22:20+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -20,7 +20,7 @@ msgstr "" msgid "%s cannot allocate new nick\n" msgstr "" -#: src/irc/irc-server.c:130 src/common/weeconfig.c:1240 +#: src/irc/irc-server.c:130 src/common/weeconfig.c:1227 msgid "Unable to get user's name" msgstr "" @@ -1574,51 +1574,51 @@ msgstr "" msgid "%s unable to add handler for \"%s\" message (not enough memory)\n" msgstr "" -#: src/gui/curses/gui-display.c:568 +#: src/gui/curses/gui-display.c:569 msgid "bytes" msgstr "" -#: src/gui/curses/gui-display.c:568 +#: src/gui/curses/gui-display.c:569 msgid "Kb" msgstr "" -#: src/gui/curses/gui-display.c:568 +#: src/gui/curses/gui-display.c:569 msgid "Mb" msgstr "" -#: src/gui/curses/gui-display.c:568 +#: src/gui/curses/gui-display.c:569 msgid "Gb" msgstr "" -#: src/gui/curses/gui-display.c:997 +#: src/gui/curses/gui-display.c:998 #, c-format msgid "%d:[not connected] " msgstr "" -#: src/gui/curses/gui-display.c:1005 +#: src/gui/curses/gui-display.c:1006 msgid "[Act: " msgstr "" -#: src/gui/curses/gui-display.c:1044 src/gui/curses/gui-display.c:1047 +#: src/gui/curses/gui-display.c:1045 src/gui/curses/gui-display.c:1048 msgid "-MORE-" msgstr "" -#: src/gui/curses/gui-display.c:1216 +#: src/gui/curses/gui-display.c:1217 msgid " [A] Accept" msgstr "" -#: src/gui/curses/gui-display.c:1217 src/gui/curses/gui-display.c:1223 -#: src/gui/curses/gui-display.c:1230 +#: src/gui/curses/gui-display.c:1218 src/gui/curses/gui-display.c:1224 +#: src/gui/curses/gui-display.c:1231 msgid " [C] Cancel" msgstr "" -#: src/gui/curses/gui-display.c:1218 src/gui/curses/gui-display.c:1224 -#: src/gui/curses/gui-display.c:1231 src/gui/curses/gui-display.c:1238 -#: src/gui/curses/gui-display.c:1243 +#: src/gui/curses/gui-display.c:1219 src/gui/curses/gui-display.c:1225 +#: src/gui/curses/gui-display.c:1232 src/gui/curses/gui-display.c:1239 +#: src/gui/curses/gui-display.c:1244 msgid " [Q] Close DCC view" msgstr "" -#: src/gui/curses/gui-display.c:1237 +#: src/gui/curses/gui-display.c:1238 msgid " [R] Remove" msgstr "" @@ -1626,17 +1626,17 @@ msgstr "" msgid "server" msgstr "" -#: src/gui/gui-common.c:308 +#: src/gui/gui-common.c:319 #, c-format msgid "%s not enough memory for infobar message\n" msgstr "" -#: src/gui/gui-common.c:443 +#: src/gui/gui-common.c:459 #, c-format msgid "%s not enough memory for new line!\n" msgstr "" -#: src/gui/gui-common.c:486 +#: src/gui/gui-common.c:502 msgid "not enough memory!\n" msgstr "" @@ -2299,20 +2299,41 @@ msgstr "" msgid "%s unable to create ~/.weechat directory\n" msgstr "" -#: src/common/weechat.c:388 +#: src/common/weechat.c:362 +#, c-format +msgid "%s unable to create ~/.weechat/logs directory\n" +msgstr "" + +#: src/common/weechat.c:397 #, c-format msgid "%s unable to create/append to log file (~/.weechat/%s)" msgstr "" -#: src/common/weechat.c:411 +#: src/common/weechat.c:420 #, c-format msgid "%sWelcome to " msgstr "" -#: src/common/weechat.c:424 +#: src/common/weechat.c:433 msgid "compiled on" msgstr "" +#: src/common/log.c:95 +msgid "Not enough memory to write log file for a buffer\n" +msgstr "" + +#: src/common/log.c:123 +msgid "Unable to write log file for a buffer\n" +msgstr "" + +#: src/common/log.c:127 +msgid "**** Beginning of log " +msgstr "" + +#: src/common/log.c:141 +msgid "**** End of log " +msgstr "" + #: src/common/weechat.h:49 msgid " Error:" msgstr "" @@ -2669,348 +2690,323 @@ msgstr "" msgid "maximum number of user commands in history (0 = unlimited)" msgstr "" -#: src/common/weeconfig.c:424 src/common/weeconfig.c:425 +#: src/common/weeconfig.c:422 src/common/weeconfig.c:423 +msgid "automatically log server messages" +msgstr "" + +#: src/common/weeconfig.c:426 src/common/weeconfig.c:427 msgid "automatically log channel chats" msgstr "" -#: src/common/weeconfig.c:428 src/common/weeconfig.c:429 +#: src/common/weeconfig.c:430 src/common/weeconfig.c:431 msgid "automatically log private chats" msgstr "" -#: src/common/weeconfig.c:432 +#: src/common/weeconfig.c:434 msgid "path for log files" msgstr "" -#: src/common/weeconfig.c:433 +#: src/common/weeconfig.c:435 msgid "path for WeeChat log files" msgstr "" -#: src/common/weeconfig.c:436 -msgid "name for log files" -msgstr "" - -#: src/common/weeconfig.c:437 -msgid "" -"name for log files (%S == irc server name, %N == channel name (or nickname " -"if private chat)" -msgstr "" - -#: src/common/weeconfig.c:441 +#: src/common/weeconfig.c:438 msgid "timestamp for log" msgstr "" -#: src/common/weeconfig.c:442 +#: src/common/weeconfig.c:439 msgid "timestamp for log (see man strftime for date/time specifiers)" msgstr "" -#: src/common/weeconfig.c:445 -msgid "start string for log files" -msgstr "" - -#: src/common/weeconfig.c:446 -msgid "" -"text written when starting new log file (see man strftime for date/time " -"specifiers)" -msgstr "" - -#: src/common/weeconfig.c:450 -msgid "end string for log files" -msgstr "" - -#: src/common/weeconfig.c:451 -msgid "" -"text written when ending log file (see man strftime for date/time specifiers)" -msgstr "" - -#: src/common/weeconfig.c:470 +#: src/common/weeconfig.c:457 msgid "automatically accept dcc files" msgstr "" -#: src/common/weeconfig.c:471 +#: src/common/weeconfig.c:458 msgid "automatically accept incoming dcc files" msgstr "" -#: src/common/weeconfig.c:474 +#: src/common/weeconfig.c:461 msgid "automatically accept dcc chats" msgstr "" -#: src/common/weeconfig.c:475 +#: src/common/weeconfig.c:462 msgid "automatically accept dcc chats (use carefully!)" msgstr "" -#: src/common/weeconfig.c:478 +#: src/common/weeconfig.c:465 msgid "timeout for dcc request" msgstr "" -#: src/common/weeconfig.c:479 +#: src/common/weeconfig.c:466 msgid "timeout for dcc request (in seconds)" msgstr "" -#: src/common/weeconfig.c:482 +#: src/common/weeconfig.c:469 msgid "block size for dcc packets" msgstr "" -#: src/common/weeconfig.c:483 +#: src/common/weeconfig.c:470 msgid "block size for dcc packets in bytes (default: 1024)" msgstr "" -#: src/common/weeconfig.c:486 +#: src/common/weeconfig.c:473 msgid "path for incoming files with dcc" msgstr "" -#: src/common/weeconfig.c:487 +#: src/common/weeconfig.c:474 msgid "path for writing incoming files with dcc (default: user home)" msgstr "" -#: src/common/weeconfig.c:490 +#: src/common/weeconfig.c:477 msgid "default path for sending files with dcc" msgstr "" -#: src/common/weeconfig.c:491 +#: src/common/weeconfig.c:478 msgid "" "path for reading files when sending thru dcc (when no path is specified)" msgstr "" -#: src/common/weeconfig.c:494 +#: src/common/weeconfig.c:481 msgid "automatically rename dcc files if already exists" msgstr "" -#: src/common/weeconfig.c:495 +#: src/common/weeconfig.c:482 msgid "rename incoming files if already exists (add '.1', '.2', ...)" msgstr "" -#: src/common/weeconfig.c:498 +#: src/common/weeconfig.c:485 msgid "automatically resume aborted transfers" msgstr "" -#: src/common/weeconfig.c:499 +#: src/common/weeconfig.c:486 msgid "" "automatically resume dcc transfer if connection with remote host is loosed" msgstr "" -#: src/common/weeconfig.c:513 +#: src/common/weeconfig.c:500 msgid "use proxy" msgstr "" -#: src/common/weeconfig.c:514 +#: src/common/weeconfig.c:501 msgid "use a proxy server to connect to irc server" msgstr "" -#: src/common/weeconfig.c:517 +#: src/common/weeconfig.c:504 msgid "proxy address" msgstr "" -#: src/common/weeconfig.c:518 +#: src/common/weeconfig.c:505 msgid "proxy server address (IP or hostname)" msgstr "" -#: src/common/weeconfig.c:521 +#: src/common/weeconfig.c:508 msgid "port for proxy" msgstr "" -#: src/common/weeconfig.c:522 +#: src/common/weeconfig.c:509 msgid "port for connecting to proxy server" msgstr "" -#: src/common/weeconfig.c:525 +#: src/common/weeconfig.c:512 msgid "proxy password" msgstr "" -#: src/common/weeconfig.c:526 +#: src/common/weeconfig.c:513 msgid "password for proxy server" msgstr "" -#: src/common/weeconfig.c:537 +#: src/common/weeconfig.c:524 msgid "server name" msgstr "" -#: src/common/weeconfig.c:538 +#: src/common/weeconfig.c:525 msgid "name associated to IRC server (for display only)" msgstr "" -#: src/common/weeconfig.c:541 +#: src/common/weeconfig.c:528 msgid "automatically connect to server" msgstr "" -#: src/common/weeconfig.c:542 +#: src/common/weeconfig.c:529 msgid "automatically connect to server when WeeChat is starting" msgstr "" -#: src/common/weeconfig.c:545 +#: src/common/weeconfig.c:532 msgid "server address or hostname" msgstr "" -#: src/common/weeconfig.c:546 +#: src/common/weeconfig.c:533 msgid "IP address or hostname of IRC server" msgstr "" -#: src/common/weeconfig.c:549 +#: src/common/weeconfig.c:536 msgid "port for IRC server" msgstr "" -#: src/common/weeconfig.c:550 +#: src/common/weeconfig.c:537 msgid "port for connecting to server" msgstr "" -#: src/common/weeconfig.c:553 +#: src/common/weeconfig.c:540 msgid "server password" msgstr "" -#: src/common/weeconfig.c:554 +#: src/common/weeconfig.c:541 msgid "password for IRC server" msgstr "" -#: src/common/weeconfig.c:557 +#: src/common/weeconfig.c:544 msgid "nickname for server" msgstr "" -#: src/common/weeconfig.c:558 +#: src/common/weeconfig.c:545 msgid "nickname to use on IRC server" msgstr "" -#: src/common/weeconfig.c:561 +#: src/common/weeconfig.c:548 msgid "alternate nickname for server" msgstr "" -#: src/common/weeconfig.c:562 +#: src/common/weeconfig.c:549 msgid "alternate nickname to use on IRC server (if nickname is already used)" msgstr "" -#: src/common/weeconfig.c:565 +#: src/common/weeconfig.c:552 msgid "2nd alternate nickname for server" msgstr "" -#: src/common/weeconfig.c:566 +#: src/common/weeconfig.c:553 msgid "" "2nd alternate nickname to use on IRC server (if alternate nickname is " "already used)" msgstr "" -#: src/common/weeconfig.c:569 +#: src/common/weeconfig.c:556 msgid "user name for server" msgstr "" -#: src/common/weeconfig.c:570 +#: src/common/weeconfig.c:557 msgid "user name to use on IRC server" msgstr "" -#: src/common/weeconfig.c:573 +#: src/common/weeconfig.c:560 msgid "real name for server" msgstr "" -#: src/common/weeconfig.c:574 +#: src/common/weeconfig.c:561 msgid "real name to use on IRC server" msgstr "" -#: src/common/weeconfig.c:577 src/common/weeconfig.c:578 +#: src/common/weeconfig.c:564 src/common/weeconfig.c:565 msgid "first command to run when connected to server" msgstr "" -#: src/common/weeconfig.c:581 +#: src/common/weeconfig.c:568 msgid "list of channels to join when connected to server" msgstr "" -#: src/common/weeconfig.c:582 +#: src/common/weeconfig.c:569 msgid "comma separated list of channels to join when connected to server" msgstr "" -#: src/common/weeconfig.c:804 +#: src/common/weeconfig.c:791 #, c-format msgid "%s %s, line %d: new server, but previous was incomplete\n" msgstr "" -#: src/common/weeconfig.c:813 +#: src/common/weeconfig.c:800 #, c-format msgid "%s %s, line %d: server '%s' already exists\n" msgstr "" -#: src/common/weeconfig.c:825 +#: src/common/weeconfig.c:812 #, c-format msgid "%s %s, line %d: unable to create server\n" msgstr "" -#: src/common/weeconfig.c:864 +#: src/common/weeconfig.c:851 #, c-format msgid "%s unable to assign default int with string (\"%s\")\n" msgstr "" -#: src/common/weeconfig.c:875 +#: src/common/weeconfig.c:862 #, c-format msgid "%s unable to assign default color (\"%s\")\n" msgstr "" -#: src/common/weeconfig.c:914 +#: src/common/weeconfig.c:901 #, c-format msgid "%s config file \"%s\" not found.\n" msgstr "" -#: src/common/weeconfig.c:946 +#: src/common/weeconfig.c:933 #, c-format msgid "%s %s, line %d: invalid syntax, missing \"]\"\n" msgstr "" -#: src/common/weeconfig.c:963 +#: src/common/weeconfig.c:950 #, c-format msgid "%s %s, line %d: unknown section identifier (\"%s\")\n" msgstr "" -#: src/common/weeconfig.c:981 +#: src/common/weeconfig.c:968 #, c-format msgid "%s %s, line %d: invalid syntax, missing \"=\"\n" msgstr "" -#: src/common/weeconfig.c:1015 +#: src/common/weeconfig.c:1002 #, c-format msgid "%s %s, line %d: invalid option \"%s\"\n" msgstr "" -#: src/common/weeconfig.c:1026 +#: src/common/weeconfig.c:1013 #, c-format msgid "" "%s %s, line %d: invalid value foroption '%s'\n" "Expected: boolean value: 'off' or 'on'\n" msgstr "" -#: src/common/weeconfig.c:1035 +#: src/common/weeconfig.c:1022 #, c-format msgid "" "%s %s, line %d: invalid value for option '%s'\n" "Expected: integer between %d and %d\n" msgstr "" -#: src/common/weeconfig.c:1046 +#: src/common/weeconfig.c:1033 #, c-format msgid "" "%s %s, line %d: invalid value for option '%s'\n" "Expected: one of these strings: " msgstr "" -#: src/common/weeconfig.c:1062 +#: src/common/weeconfig.c:1049 #, c-format msgid "%s %s, line %d: invalid color name for option '%s'\n" msgstr "" -#: src/common/weeconfig.c:1121 src/common/weeconfig.c:1289 +#: src/common/weeconfig.c:1108 src/common/weeconfig.c:1276 #, c-format msgid "%s cannot create file \"%s\"\n" msgstr "" -#: src/common/weeconfig.c:1127 +#: src/common/weeconfig.c:1114 #, c-format msgid "%s: creating default config file...\n" msgstr "" -#: src/common/weeconfig.c:1128 +#: src/common/weeconfig.c:1115 msgid "creating default config file\n" msgstr "" -#: src/common/weeconfig.c:1131 src/common/weeconfig.c:1298 +#: src/common/weeconfig.c:1118 src/common/weeconfig.c:1285 #, c-format msgid "" "#\n" "# %s configuration file, created by %s v%s on %s#\n" msgstr "" -#: src/common/weeconfig.c:1295 +#: src/common/weeconfig.c:1282 msgid "saving config to disk\n" msgstr "" diff --git a/weechat/src/common/Makefile.am b/weechat/src/common/Makefile.am index 7ef59d69a..1500e96e8 100644 --- a/weechat/src/common/Makefile.am +++ b/weechat/src/common/Makefile.am @@ -30,4 +30,6 @@ lib_weechat_main_a_SOURCES = weechat.c \ history.c \ history.h \ hotlist.c \ - hotlist.h + hotlist.h \ + log.c \ + log.h diff --git a/weechat/src/common/log.c b/weechat/src/common/log.c new file mode 100644 index 000000000..62f7aefb7 --- /dev/null +++ b/weechat/src/common/log.c @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2004 by FlashCode + * See README for License detail, AUTHORS for developers list. + * + * 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 2 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 + */ + +/* log.c: log buffers to files */ + + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + +#include "weechat.h" +#include "log.h" +#include "weeconfig.h" + + +/* + * log_write_date: writes date to log file + */ + +void +log_write_date (t_gui_buffer *buffer) +{ + static char buf_time[256]; + static time_t seconds; + struct tm *date_tmp; + + if (buffer->log_file) + { + seconds = time (NULL); + date_tmp = localtime (&seconds); + if (date_tmp) + { + strftime (buf_time, sizeof (buf_time) - 1, cfg_log_timestamp, date_tmp); + fprintf (buffer->log_file, "%s ", buf_time); + fflush (buffer->log_file); + } + } +} + +/* + * log_write: writes a message to log file + */ + +void +log_write (t_gui_buffer *buffer, char *message) +{ + if (buffer->log_file) + { + fprintf (buffer->log_file, "%s", message); + fflush (buffer->log_file); + } +} + +/* + * log_start: starts a log + */ + +void +log_start (t_gui_buffer *buffer) +{ + int length; + char *ptr_home; + + ptr_home = getenv ("HOME"); + length = strlen (cfg_log_path) + + ((cfg_log_path[0] == '~') ? strlen (ptr_home) : 0) + + 64; + if (SERVER(buffer)) + length += strlen (SERVER(buffer)->name); + if (CHANNEL(buffer)) + length += strlen (CHANNEL(buffer)->name); + buffer->log_filename = (char *) malloc (length); + if (!buffer->log_filename) + { + wee_log_printf (_("Not enough memory to write log file for a buffer\n")); + return; + } + if (cfg_log_path[0] == '~') + { + strcpy (buffer->log_filename, ptr_home); + strcat (buffer->log_filename, cfg_log_path + 1); + } + else + strcpy (buffer->log_filename, cfg_log_path); + if (buffer->log_filename[strlen (buffer->log_filename) - 1] != DIR_SEPARATOR_CHAR) + strcat (buffer->log_filename, DIR_SEPARATOR); + + if (SERVER(buffer)) + { + strcat (buffer->log_filename, SERVER(buffer)->name); + strcat (buffer->log_filename, "."); + } + if (CHANNEL(buffer)) + { + strcat (buffer->log_filename, CHANNEL(buffer)->name); + strcat (buffer->log_filename, "."); + } + strcat (buffer->log_filename, "weechatlog"); + + buffer->log_file = fopen (buffer->log_filename, "a"); + if (!buffer->log_file) + { + wee_log_printf (_("Unable to write log file for a buffer\n")); + free (buffer->log_filename); + return; + } + log_write (buffer, _("**** Beginning of log ")); + log_write_date (buffer); + log_write (buffer, "****\n"); +} + +/* + * log_end: ends a log + */ + +void +log_end (t_gui_buffer *buffer) +{ + if (buffer->log_file) + { + log_write (buffer, _("**** End of log ")); + log_write_date (buffer); + log_write (buffer, "****\n"); + fclose (buffer->log_file); + buffer->log_file = NULL; + } + if (buffer->log_filename) + free (buffer->log_filename); +} diff --git a/weechat/src/common/log.h b/weechat/src/common/log.h new file mode 100644 index 000000000..de132b93e --- /dev/null +++ b/weechat/src/common/log.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2004 by FlashCode + * See README for License detail, AUTHORS for developers list. + * + * 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 2 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 + */ + + +#ifndef __WEECHAT_LOG_H +#define __WEECHAT_LOG_H 1 + +#include "../irc/irc.h" + +extern void log_write_date (t_gui_buffer *); +extern void log_write (t_gui_buffer *, char *); +extern void log_start (t_gui_buffer *); +extern void log_end (t_gui_buffer *); + +#endif /* log.h */ diff --git a/weechat/src/common/weechat.c b/weechat/src/common/weechat.c index dc6eb9026..776ae4005 100644 --- a/weechat/src/common/weechat.c +++ b/weechat/src/common/weechat.c @@ -60,7 +60,7 @@ int quit_weechat; /* = 1 if quit request from user... why ? :'( */ char *weechat_home; /* WeeChat home dir. (example: /home/toto/.weechat) */ -FILE *log_file; /* WeeChat log file (~/.weechat/weechat.log) */ +FILE *weechat_log_file; /* WeeChat log file (~/.weechat/weechat.log) */ int server_cmd_line; /* at least one server on WeeChat command line */ @@ -88,7 +88,7 @@ wee_log_printf (char *message, ...) static time_t seconds; struct tm *date_tmp; - if (!log_file) + if (!weechat_log_file) return; va_start (argptr, message); @@ -98,13 +98,13 @@ wee_log_printf (char *message, ...) seconds = time (NULL); date_tmp = localtime (&seconds); if (date_tmp) - fprintf (log_file, "[%04d-%02d-%02d %02d:%02d:%02d] %s", + fprintf (weechat_log_file, "[%04d-%02d-%02d %02d:%02d:%02d] %s", date_tmp->tm_year + 1900, date_tmp->tm_mon + 1, date_tmp->tm_mday, date_tmp->tm_hour, date_tmp->tm_min, date_tmp->tm_sec, buffer); else - fprintf (log_file, "%s", buffer); - fflush (log_file); + fprintf (weechat_log_file, "%s", buffer); + fflush (weechat_log_file); } /* @@ -354,6 +354,15 @@ wee_create_home_dirs () } #endif + /* create "~/.weechat/logs" */ + snprintf (dir_name, dir_length, "%s%s%s", weechat_home, DIR_SEPARATOR, + "logs"); + if (!wee_create_dir (dir_name)) + { + fprintf (stderr, _("%s unable to create ~/.weechat/logs directory\n"), + WEECHAT_WARNING); + } + free (dir_name); } @@ -383,7 +392,7 @@ wee_init_log () filename = (char *) malloc (filename_length * sizeof (char)); snprintf (filename, filename_length, "%s/" WEECHAT_LOG_NAME, weechat_home); - if ((log_file = fopen (filename, "wt")) == NULL) + if ((weechat_log_file = fopen (filename, "wt")) == NULL) fprintf (stderr, _("%s unable to create/append to log file (~/.weechat/%s)"), WEECHAT_WARNING, WEECHAT_LOG_NAME); @@ -440,8 +449,8 @@ wee_shutdown () dcc_end (); server_free_all (); gui_end (); - if (log_file) - fclose (log_file); + if (weechat_log_file) + fclose (weechat_log_file); exit (EXIT_SUCCESS); } diff --git a/weechat/src/common/weeconfig.c b/weechat/src/common/weeconfig.c index 2416333a8..e08833175 100644 --- a/weechat/src/common/weeconfig.c +++ b/weechat/src/common/weeconfig.c @@ -412,19 +412,21 @@ t_config_option weechat_options_history[] = /* config, log section */ -int cfg_log_auto_channels; +int cfg_log_auto_server; +int cfg_log_auto_channel; int cfg_log_auto_private; char *cfg_log_path; -char *cfg_log_name; char *cfg_log_timestamp; -char *cfg_log_start_string; -char *cfg_log_end_string; t_config_option weechat_options_log[] = -{ { "log_auto_channels", N_("automatically log channel chats"), +{ { "log_auto_server", N_("automatically log server messages"), + N_("automatically log server messages"), + OPTION_TYPE_BOOLEAN, BOOL_FALSE, BOOL_TRUE, BOOL_TRUE, + NULL, NULL, &cfg_log_auto_server, NULL, NULL }, + { "log_auto_channel", N_("automatically log channel chats"), N_("automatically log channel chats"), OPTION_TYPE_BOOLEAN, BOOL_FALSE, BOOL_TRUE, BOOL_TRUE, - NULL, NULL, &cfg_log_auto_channels, NULL, NULL }, + NULL, NULL, &cfg_log_auto_channel, NULL, NULL }, { "log_auto_private", N_("automatically log private chats"), N_("automatically log private chats"), OPTION_TYPE_BOOLEAN, BOOL_FALSE, BOOL_TRUE, BOOL_TRUE, @@ -433,25 +435,10 @@ t_config_option weechat_options_log[] = N_("path for WeeChat log files"), OPTION_TYPE_STRING, 0, 0, 0, "~/.weechat/logs/", NULL, NULL, &cfg_log_path, NULL }, - { "log_name", N_("name for log files"), - N_("name for log files (%S == irc server name, " - "%N == channel name (or nickname if private chat)"), - OPTION_TYPE_STRING, 0, 0, 0, - "%S,%N.weechatlog", NULL, NULL, &cfg_log_name, NULL }, { "log_timestamp", N_("timestamp for log"), N_("timestamp for log (see man strftime for date/time specifiers)"), OPTION_TYPE_STRING, 0, 0, 0, - "~", NULL, NULL, &cfg_log_timestamp, NULL }, - { "log_start_string", N_("start string for log files"), - N_("text written when starting new log file " - "(see man strftime for date/time specifiers)"), - OPTION_TYPE_STRING, 0, 0, 0, - "--- Log started %a %b %d %Y %H:%M:%s", NULL, NULL, &cfg_log_start_string, NULL }, - { "log_end_string", N_("end string for log files"), - N_("text written when ending log file " - "(see man strftime for date/time specifiers)"), - OPTION_TYPE_STRING, 0, 0, 0, - "--- Log ended %a %b %d %Y %H:%M:%s", NULL, NULL, &cfg_log_end_string, NULL }, + "%Y %b %d %H:%M:%S", NULL, NULL, &cfg_log_timestamp, NULL }, { NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL } }; @@ -1305,7 +1292,7 @@ config_write (char *config_name) if ((i != CONFIG_SECTION_ALIAS) && (i != CONFIG_SECTION_SERVER)) { fprintf (file, "\n[%s]\n", config_sections[i].section_name); - if ((i == CONFIG_SECTION_LOG) || (i == CONFIG_SECTION_PROXY)) + if (i == CONFIG_SECTION_PROXY) fprintf (file, "# WARNING!!! Options for section \"%s\" are not developed!\n", config_sections[i].section_name); diff --git a/weechat/src/common/weeconfig.h b/weechat/src/common/weeconfig.h index 4f39b29c3..c90d287b7 100644 --- a/weechat/src/common/weeconfig.h +++ b/weechat/src/common/weeconfig.h @@ -139,13 +139,11 @@ extern int cfg_col_dcc_aborted; extern int cfg_history_max_lines; extern int cfg_history_max_commands; -extern int cfg_log_auto_channels; +extern int cfg_log_auto_server; +extern int cfg_log_auto_channel; extern int cfg_log_auto_private; extern char *cfg_log_path; -extern char *cfg_log_name; extern char *cfg_log_timestamp; -extern char *cfg_log_start_string; -extern char *cfg_log_end_string; extern int cfg_dcc_auto_accept_files; extern int cfg_dcc_auto_accept_chats; diff --git a/weechat/src/gui/curses/gui-display.c b/weechat/src/gui/curses/gui-display.c index e57b7ba44..1f65fee8c 100644 --- a/weechat/src/gui/curses/gui-display.c +++ b/weechat/src/gui/curses/gui-display.c @@ -36,6 +36,7 @@ #include "../gui.h" #include "../../common/weeconfig.h" #include "../../common/hotlist.h" +#include "../../common/log.h" #include "../../irc/irc.h" @@ -1409,7 +1410,7 @@ gui_get_dcc_buffer () /* check if dcc buffer exists */ for (ptr_buffer = gui_buffers; ptr_buffer; ptr_buffer = ptr_buffer->next_buffer) { - if (BUFFER_IS_DCC (ptr_buffer)) + if (ptr_buffer->dcc) break; } if (ptr_buffer) @@ -1433,7 +1434,7 @@ gui_switch_to_dcc_buffer () /* check if dcc buffer exists */ for (ptr_buffer = gui_buffers; ptr_buffer; ptr_buffer = ptr_buffer->next_buffer) { - if (BUFFER_IS_DCC (ptr_buffer)) + if (ptr_buffer->dcc) break; } if (ptr_buffer) @@ -2032,8 +2033,12 @@ gui_printf_color_type (t_gui_buffer *buffer, int type, int color, char *message, snprintf (timestamp, 16, "%02d", date_tmp->tm_sec); gui_add_message (buffer, MSG_TYPE_TIME, COLOR_WIN_CHAT_TIME, timestamp); gui_add_message (buffer, MSG_TYPE_TIME, COLOR_WIN_CHAT_DARK, "] "); + if (buffer->log_file) + log_write_date (buffer); } gui_add_message (buffer, type, color, pos + 1); + if (buffer->log_file) + log_write (buffer, pos + 1); pos = strchr (pos + 1, '\n'); if (pos && !pos[1]) pos = NULL; diff --git a/weechat/src/gui/gui-common.c b/weechat/src/gui/gui-common.c index ac6b1cc54..43a6297ed 100644 --- a/weechat/src/gui/gui-common.c +++ b/weechat/src/gui/gui-common.c @@ -36,6 +36,7 @@ #include "gui.h" #include "../common/weeconfig.h" #include "../common/hotlist.h" +#include "../common/log.h" #include "../irc/irc.h" @@ -146,6 +147,8 @@ gui_buffer_new (t_gui_window *window, void *server, void *channel, int dcc, ((t_irc_channel *)(channel))->buffer = gui_buffers; SERVER(gui_buffers) = server; CHANNEL(gui_buffers) = channel; + if (cfg_log_auto_server) + log_start (gui_buffers); return gui_buffers; } @@ -179,6 +182,14 @@ gui_buffer_new (t_gui_window *window, void *server, void *channel, int dcc, new_buffer->num_lines = 0; new_buffer->line_complete = 1; + /* create/append to log file */ + new_buffer->log_filename = NULL; + new_buffer->log_file = NULL; + if ((cfg_log_auto_server && BUFFER_IS_SERVER(new_buffer)) + || (cfg_log_auto_channel && BUFFER_IS_CHANNEL(new_buffer)) + || (cfg_log_auto_private && BUFFER_IS_PRIVATE(new_buffer))) + log_start (new_buffer); + /* init input buffer */ new_buffer->input_buffer_alloc = INPUT_BUFFER_BLOCK_SIZE; new_buffer->input_buffer = (char *) malloc (INPUT_BUFFER_BLOCK_SIZE); @@ -390,6 +401,11 @@ gui_buffer_free (t_gui_buffer *buffer, int switch_to_another) gui_line_free (buffer->lines); buffer->lines = ptr_line; } + + /* close log if opened */ + if (buffer->log_file) + log_end (buffer); + if (buffer->input_buffer) free (buffer->input_buffer); diff --git a/weechat/src/gui/gui.h b/weechat/src/gui/gui.h index ddf7422d2..20d561677 100644 --- a/weechat/src/gui/gui.h +++ b/weechat/src/gui/gui.h @@ -73,7 +73,6 @@ #define BUFFER_IS_SERVER(buffer) (SERVER(buffer) && !CHANNEL(buffer)) #define BUFFER_IS_CHANNEL(buffer) (CHANNEL(buffer) && (CHANNEL(buffer)->type == CHAT_CHANNEL)) #define BUFFER_IS_PRIVATE(buffer) (CHANNEL(buffer) && (CHANNEL(buffer)->type == CHAT_PRIVATE)) -#define BUFFER_IS_DCC(buffer) (!SERVER(buffer) && !CHANNEL(buffer)) #define MSG_TYPE_TIME 1 #define MSG_TYPE_NICK 2 @@ -143,8 +142,6 @@ struct t_gui_buffer /* server/channel */ void *server; /* buffer's server */ void *channel; /* buffer's channel */ - - /* dcc buffer */ int dcc; /* buffer is dcc status */ /* chat content (lines, line is composed by many messages) */ @@ -153,6 +150,10 @@ struct t_gui_buffer int num_lines; /* number of lines in the window */ int line_complete; /* current line complete ? (\n ending) */ + /* file to save buffer content */ + char *log_filename; /* filename for saving buffer content */ + FILE *log_file; /* for logging buffer to file */ + /* inupt buffer */ char *input_buffer; /* input buffer */ int input_buffer_alloc; /* input buffer: allocated size in mem */