From 38bf163c173395571ca2772eda23bf162713a912 Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Sun, 18 Jan 2004 23:53:34 +0000 Subject: [PATCH] Servers allowed on command line (irc://nick:passwd@irc.example.org:port) --- po/fr.po | 142 ++++++++++++++------------- po/weechat.pot | 140 +++++++++++++++------------ src/common/command.c | 17 ++-- src/common/weechat.c | 170 ++++++++++++++++++++------------- src/common/weechat.h | 7 +- src/common/weeconfig.c | 39 ++++---- src/irc/irc-server.c | 73 +++++++++++++- src/irc/irc.h | 8 +- weechat/po/fr.po | 142 ++++++++++++++------------- weechat/po/weechat.pot | 140 +++++++++++++++------------ weechat/src/common/command.c | 17 ++-- weechat/src/common/weechat.c | 170 ++++++++++++++++++++------------- weechat/src/common/weechat.h | 7 +- weechat/src/common/weeconfig.c | 39 ++++---- weechat/src/irc/irc-server.c | 73 +++++++++++++- weechat/src/irc/irc.h | 8 +- 16 files changed, 740 insertions(+), 452 deletions(-) diff --git a/po/fr.po b/po/fr.po index c47a5cfab..4050fc0e3 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.0.5-pre2\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2004-01-18 19:34+0100\n" +"POT-Creation-Date: 2004-01-19 00:47+0100\n" "PO-Revision-Date: 2004-01-01 11:52+0100\n" "Last-Translator: FlashCode \n" "Language-Team: weechat-dev \n" @@ -20,76 +20,76 @@ msgstr "" msgid "%s cannot allocate new nick\n" msgstr "%s ompossible d'allouer un nouveau pseudo\n" -#: src/irc/irc-server.c:95 +#: src/irc/irc-server.c:158 #, c-format msgid "%s cannot allocate new server\n" msgstr "%s impossible d'allouer un nouveau serveur\n" -#: src/irc/irc-server.c:351 +#: src/irc/irc-server.c:415 #, c-format msgid "%s unable to explode received buffer\n" msgstr "%s impossible d'exploser le tampon de réception\n" -#: src/irc/irc-server.c:424 +#: src/irc/irc-server.c:488 #, c-format msgid "Command '%s' failed!\n" msgstr "La commande '%s' a échoué !\n" -#: src/irc/irc-server.c:428 +#: src/irc/irc-server.c:492 msgid "No command to execute!\n" msgstr "Pas de commande à exécuter !\n" -#: src/irc/irc-server.c:432 +#: src/irc/irc-server.c:496 #, c-format msgid "Unknown command: cmd=%s, args=%s\n" msgstr "Commande inconnue: cmd=%s, params=%s\n" -#: src/irc/irc-server.c:482 +#: src/irc/irc-server.c:546 #, c-format msgid "%s: connecting to %s:%d...\n" msgstr "%s: connexion à %s:%d...\n" -#: src/irc/irc-server.c:484 +#: src/irc/irc-server.c:548 #, c-format msgid "connecting to server %s:%d...\n" msgstr "connexion au serveur %s:%d...\n" -#: src/irc/irc-server.c:492 +#: src/irc/irc-server.c:556 #, c-format msgid "%s cannot create pipe\n" msgstr "%s impossible de créer le pipe\n" -#: src/irc/irc-server.c:506 +#: src/irc/irc-server.c:570 #, c-format msgid "%s cannot set socket option \"SO_REUSEADDR\"\n" msgstr "%s impossible de paramétrer l'option socket \"SO_REUSEADDR\"\n" -#: src/irc/irc-server.c:513 +#: src/irc/irc-server.c:577 #, c-format msgid "%s cannot set socket option \"SO_KEEPALIVE\"\n" msgstr "%s impossible de paramétrer l'option socket \"SO_KEEPALIVE\"\n" -#: src/irc/irc-server.c:521 +#: src/irc/irc-server.c:585 #, c-format msgid "%s address \"%s\" not found\n" msgstr "%s adresse \"%s\" introuvable\n" -#: src/irc/irc-server.c:544 +#: src/irc/irc-server.c:608 #, c-format msgid "%s IP address not found\n" msgstr "%s adresse IP introuvable\n" -#: src/irc/irc-server.c:554 +#: src/irc/irc-server.c:618 #, c-format msgid "%s: server IP is: %s\n" msgstr "%s: l'adresse IP du serveur est : %s\n" -#: src/irc/irc-server.c:560 +#: src/irc/irc-server.c:624 #, c-format msgid "%s cannot connect to irc server\n" msgstr "%s connexion au serveur irc impossible\n" -#: src/irc/irc-server.c:609 +#: src/irc/irc-server.c:674 msgid "Disconnected from server!\n" msgstr "Déconnecté du serveur !\n" @@ -1906,8 +1906,8 @@ msgstr "non connect #: src/common/command.c:1170 #, c-format -msgid " Autoconnect: %s\n" -msgstr " Autoconnect: %s\n" +msgid " Autoconnect: %s%s\n" +msgstr " Autoconnect: %s%s\n" #: src/common/command.c:1171 msgid "yes" @@ -1917,134 +1917,138 @@ msgstr "oui" msgid "no" msgstr "non" -#: src/common/command.c:1175 +#: src/common/command.c:1173 +msgid " (temporary server, will not be saved)" +msgstr " (serveur temporaire, ne sera pas sauvé)" + +#: src/common/command.c:1178 #, c-format msgid " Hostname : %s\n" msgstr " Nom/IP : %s\n" -#: src/common/command.c:1180 +#: src/common/command.c:1183 #, c-format msgid " Port : %d\n" msgstr " Port : %d\n" -#: src/common/command.c:1186 +#: src/common/command.c:1189 msgid " Password : (hidden)\n" msgstr " Mot passe : (caché)\n" -#: src/common/command.c:1190 +#: src/common/command.c:1193 msgid " Password : (none)\n" msgstr " Mot passe : (aucun)\n" -#: src/common/command.c:1194 +#: src/common/command.c:1197 #, c-format msgid " Nicks : %s" msgstr " Pseudos : %s" -#: src/common/command.c:1211 +#: src/common/command.c:1214 #, c-format msgid " Username : %s\n" msgstr " Nom utilis.: %s\n" -#: src/common/command.c:1216 +#: src/common/command.c:1219 #, c-format msgid " Realname : %s\n" msgstr " Nom réel : %s\n" -#: src/common/command.c:1222 +#: src/common/command.c:1225 #, c-format msgid " Command : %s\n" msgstr " Commande : %s\n" -#: src/common/command.c:1227 +#: src/common/command.c:1230 msgid " Command : (none)\n" msgstr " Commande : (aucune)\n" -#: src/common/command.c:1232 +#: src/common/command.c:1235 #, c-format msgid " Auto-join : %s\n" msgstr " Auto-join : %s\n" -#: src/common/command.c:1237 +#: src/common/command.c:1240 msgid " Auto-join : (none)\n" msgstr " Auto-join : (aucun)\n" -#: src/common/command.c:1241 +#: src/common/command.c:1244 msgid "No server.\n" msgstr "Pas de serveur.\n" -#: src/common/command.c:1250 +#: src/common/command.c:1253 #, c-format msgid "%s missing servername for \"%s\" command\n" msgstr "%s il manque le nom du serveur pour la commande \"%s\"\n" -#: src/common/command.c:1256 +#: src/common/command.c:1259 #, c-format msgid "%s too much arguments for \"%s\" command, ignoring arguments\n" msgstr "%s trop de paramètres pour la commande \"%s\", paramètres ignorés\n" -#: src/common/command.c:1273 +#: src/common/command.c:1276 #, c-format msgid "%s server \"%s\" not found for \"%s\" command\n" msgstr "%s le serveur \"%s\" n'existe pas pour la commande \"%s\"\n" -#: src/common/command.c:1279 src/common/command.c:1410 +#: src/common/command.c:1282 src/common/command.c:1413 msgid "Server" msgstr "Serveur" -#: src/common/command.c:1282 +#: src/common/command.c:1285 msgid "has been deleted\n" msgstr "a été supprimé\n" -#: src/common/command.c:1296 +#: src/common/command.c:1299 #, c-format msgid "%s missing parameters for \"%s\" command\n" msgstr "%s paramètres manquants pour la commande \"%s\"\n" -#: src/common/command.c:1305 +#: src/common/command.c:1308 #, c-format msgid "%s server \"%s\" already exists, can't create it!\n" msgstr "%s le serveur \"%s\" existe déjà, impossible de le créer !\n" -#: src/common/command.c:1329 src/common/command.c:1355 -#: src/common/command.c:1367 src/common/command.c:1391 +#: src/common/command.c:1332 src/common/command.c:1358 +#: src/common/command.c:1370 src/common/command.c:1394 #, c-format msgid "%s missing password for \"%s\" parameter\n" msgstr "%s mot de passe manquant pour le paramètre \"%s\"\n" -#: src/common/command.c:1341 +#: src/common/command.c:1344 #, c-format msgid "%s missing nick(s) for \"%s\" parameter\n" msgstr "%s pseudo(s) manquant(s) pour le paramètre \"%s\"\n" -#: src/common/command.c:1379 +#: src/common/command.c:1382 #, c-format msgid "%s missing command for \"%s\" parameter\n" msgstr "%s commande manquante pour le paramètre \"%s\"\n" -#: src/common/command.c:1413 +#: src/common/command.c:1416 msgid "created\n" msgstr "créé\n" -#: src/common/command.c:1418 +#: src/common/command.c:1421 #, c-format msgid "%s unable to create server\n" msgstr "%s impossible de créer le serveur\n" -#: src/common/command.c:1490 +#: src/common/command.c:1493 msgid "(unknown)" msgstr "(inconnu)" -#: src/common/command.c:1523 +#: src/common/command.c:1526 #, c-format msgid "%s alias or command \"%s\" not found\n" msgstr "%s alias ou commande \"%s\" non trouvé\n" -#: src/common/command.c:1532 +#: src/common/command.c:1535 #, c-format msgid "Alias \"%s\" removed\n" msgstr "Alias \"%s\" supprimé\n" -#: src/common/weechat.c:120 +#: src/common/weechat.c:116 msgid "" "WeeChat configuration options (~/.weechat/weechat.rc):\n" "\n" @@ -2052,43 +2056,43 @@ msgstr "" "Options de configuration de WeeChat (~/.weechat/weechat.rc):\n" "\n" -#: src/common/weechat.c:133 +#: src/common/weechat.c:129 msgid " . type boolean (values: 'on' or 'off')\n" msgstr " . type booléen (valeurs: 'on' ou 'off')\n" -#: src/common/weechat.c:134 src/common/weechat.c:157 src/common/weechat.c:163 -#: src/common/weechat.c:169 +#: src/common/weechat.c:130 src/common/weechat.c:153 src/common/weechat.c:159 +#: src/common/weechat.c:165 #, c-format msgid " . default value: '%s'\n" msgstr " . valeur par défaut: '%s'\n" -#: src/common/weechat.c:139 +#: src/common/weechat.c:135 #, c-format msgid " . type integer (values: between %d and %d)\n" msgstr " . type entier (valeurs: entre %d et %d)\n" -#: src/common/weechat.c:142 +#: src/common/weechat.c:138 #, c-format msgid " . default value: %d\n" msgstr " . valeur par défaut: %d\n" -#: src/common/weechat.c:146 +#: src/common/weechat.c:142 msgid " . type string (values: " msgstr " . type chaîne (valeurs: " -#: src/common/weechat.c:159 src/common/weechat.c:165 src/common/weechat.c:171 +#: src/common/weechat.c:155 src/common/weechat.c:161 src/common/weechat.c:167 msgid "empty" msgstr "vide" -#: src/common/weechat.c:162 +#: src/common/weechat.c:158 msgid " . type color (Curses or Gtk color, look at WeeChat doc)\n" msgstr " . type couleur (couleur Curses ou Gtk, voir la doc WeeChat)\n" -#: src/common/weechat.c:168 +#: src/common/weechat.c:164 msgid " . type string (any string)\n" msgstr " . type chaîne (toute chaîne)\n" -#: src/common/weechat.c:174 +#: src/common/weechat.c:170 #, c-format msgid "" " . description: %s\n" @@ -2097,14 +2101,14 @@ msgstr "" " . description: %s\n" "\n" -#: src/common/weechat.c:180 +#: src/common/weechat.c:176 msgid "" "Moreover, you can define aliases in [alias] section, by adding lines like:\n" msgstr "" "De plus, vous pouvez définir des alias dans la section [alias], en ajoutant " "des lignes comme :\n" -#: src/common/weechat.c:182 +#: src/common/weechat.c:178 msgid "" "where 'j' is alias name, and 'join' associated command.\n" "\n" @@ -2112,27 +2116,37 @@ msgstr "" "où 'j' est le nom de l'alias, et 'join' la commande associée.\n" "\n" -#: src/common/weechat.c:206 +#: src/common/weechat.c:224 +#, c-format +msgid "%s invalid syntax for IRC server ('%s'), ignored\n" +msgstr "%s syntaxe invalide pour le serveur IRC ('%s'), ignoré\n" + +#: src/common/weechat.c:238 +#, c-format +msgid "%s unable to create server ('%s'), ignored\n" +msgstr "%s impossible de créer le serveur ('%s'), ignoré\n" + +#: src/common/weechat.c:247 #, c-format msgid "%s unknown parameter '%s', ignored\n" msgstr "%s paramètre inconnu '%s', ignoré\n" -#: src/common/weechat.c:226 +#: src/common/weechat.c:267 #, c-format msgid "%s cannot create directory \"%s\"\n" msgstr "%s impossible de créer le répertoire \"%s\"\n" -#: src/common/weechat.c:328 +#: src/common/weechat.c:369 #, 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:352 +#: src/common/weechat.c:393 #, c-format msgid "%sWelcome to " msgstr "%sBienvenue dans " -#: src/common/weechat.c:365 +#: src/common/weechat.c:406 msgid "compiled on" msgstr "compilé le" diff --git a/po/weechat.pot b/po/weechat.pot index e2f1a230d..253701eb1 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-01-18 19:34+0100\n" +"POT-Creation-Date: 2004-01-19 00:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -20,76 +20,76 @@ msgstr "" msgid "%s cannot allocate new nick\n" msgstr "" -#: src/irc/irc-server.c:95 +#: src/irc/irc-server.c:158 #, c-format msgid "%s cannot allocate new server\n" msgstr "" -#: src/irc/irc-server.c:351 +#: src/irc/irc-server.c:415 #, c-format msgid "%s unable to explode received buffer\n" msgstr "" -#: src/irc/irc-server.c:424 +#: src/irc/irc-server.c:488 #, c-format msgid "Command '%s' failed!\n" msgstr "" -#: src/irc/irc-server.c:428 +#: src/irc/irc-server.c:492 msgid "No command to execute!\n" msgstr "" -#: src/irc/irc-server.c:432 +#: src/irc/irc-server.c:496 #, c-format msgid "Unknown command: cmd=%s, args=%s\n" msgstr "" -#: src/irc/irc-server.c:482 +#: src/irc/irc-server.c:546 #, c-format msgid "%s: connecting to %s:%d...\n" msgstr "" -#: src/irc/irc-server.c:484 +#: src/irc/irc-server.c:548 #, c-format msgid "connecting to server %s:%d...\n" msgstr "" -#: src/irc/irc-server.c:492 +#: src/irc/irc-server.c:556 #, c-format msgid "%s cannot create pipe\n" msgstr "" -#: src/irc/irc-server.c:506 +#: src/irc/irc-server.c:570 #, c-format msgid "%s cannot set socket option \"SO_REUSEADDR\"\n" msgstr "" -#: src/irc/irc-server.c:513 +#: src/irc/irc-server.c:577 #, c-format msgid "%s cannot set socket option \"SO_KEEPALIVE\"\n" msgstr "" -#: src/irc/irc-server.c:521 +#: src/irc/irc-server.c:585 #, c-format msgid "%s address \"%s\" not found\n" msgstr "" -#: src/irc/irc-server.c:544 +#: src/irc/irc-server.c:608 #, c-format msgid "%s IP address not found\n" msgstr "" -#: src/irc/irc-server.c:554 +#: src/irc/irc-server.c:618 #, c-format msgid "%s: server IP is: %s\n" msgstr "" -#: src/irc/irc-server.c:560 +#: src/irc/irc-server.c:624 #, c-format msgid "%s cannot connect to irc server\n" msgstr "" -#: src/irc/irc-server.c:609 +#: src/irc/irc-server.c:674 msgid "Disconnected from server!\n" msgstr "" @@ -1773,7 +1773,7 @@ msgstr "" #: src/common/command.c:1170 #, c-format -msgid " Autoconnect: %s\n" +msgid " Autoconnect: %s%s\n" msgstr "" #: src/common/command.c:1171 @@ -1784,214 +1784,228 @@ msgstr "" msgid "no" msgstr "" -#: src/common/command.c:1175 +#: src/common/command.c:1173 +msgid " (temporary server, will not be saved)" +msgstr "" + +#: src/common/command.c:1178 #, c-format msgid " Hostname : %s\n" msgstr "" -#: src/common/command.c:1180 +#: src/common/command.c:1183 #, c-format msgid " Port : %d\n" msgstr "" -#: src/common/command.c:1186 +#: src/common/command.c:1189 msgid " Password : (hidden)\n" msgstr "" -#: src/common/command.c:1190 +#: src/common/command.c:1193 msgid " Password : (none)\n" msgstr "" -#: src/common/command.c:1194 +#: src/common/command.c:1197 #, c-format msgid " Nicks : %s" msgstr "" -#: src/common/command.c:1211 +#: src/common/command.c:1214 #, c-format msgid " Username : %s\n" msgstr "" -#: src/common/command.c:1216 +#: src/common/command.c:1219 #, c-format msgid " Realname : %s\n" msgstr "" -#: src/common/command.c:1222 +#: src/common/command.c:1225 #, c-format msgid " Command : %s\n" msgstr "" -#: src/common/command.c:1227 +#: src/common/command.c:1230 msgid " Command : (none)\n" msgstr "" -#: src/common/command.c:1232 +#: src/common/command.c:1235 #, c-format msgid " Auto-join : %s\n" msgstr "" -#: src/common/command.c:1237 +#: src/common/command.c:1240 msgid " Auto-join : (none)\n" msgstr "" -#: src/common/command.c:1241 +#: src/common/command.c:1244 msgid "No server.\n" msgstr "" -#: src/common/command.c:1250 +#: src/common/command.c:1253 #, c-format msgid "%s missing servername for \"%s\" command\n" msgstr "" -#: src/common/command.c:1256 +#: src/common/command.c:1259 #, c-format msgid "%s too much arguments for \"%s\" command, ignoring arguments\n" msgstr "" -#: src/common/command.c:1273 +#: src/common/command.c:1276 #, c-format msgid "%s server \"%s\" not found for \"%s\" command\n" msgstr "" -#: src/common/command.c:1279 src/common/command.c:1410 +#: src/common/command.c:1282 src/common/command.c:1413 msgid "Server" msgstr "" -#: src/common/command.c:1282 +#: src/common/command.c:1285 msgid "has been deleted\n" msgstr "" -#: src/common/command.c:1296 +#: src/common/command.c:1299 #, c-format msgid "%s missing parameters for \"%s\" command\n" msgstr "" -#: src/common/command.c:1305 +#: src/common/command.c:1308 #, c-format msgid "%s server \"%s\" already exists, can't create it!\n" msgstr "" -#: src/common/command.c:1329 src/common/command.c:1355 -#: src/common/command.c:1367 src/common/command.c:1391 +#: src/common/command.c:1332 src/common/command.c:1358 +#: src/common/command.c:1370 src/common/command.c:1394 #, c-format msgid "%s missing password for \"%s\" parameter\n" msgstr "" -#: src/common/command.c:1341 +#: src/common/command.c:1344 #, c-format msgid "%s missing nick(s) for \"%s\" parameter\n" msgstr "" -#: src/common/command.c:1379 +#: src/common/command.c:1382 #, c-format msgid "%s missing command for \"%s\" parameter\n" msgstr "" -#: src/common/command.c:1413 +#: src/common/command.c:1416 msgid "created\n" msgstr "" -#: src/common/command.c:1418 +#: src/common/command.c:1421 #, c-format msgid "%s unable to create server\n" msgstr "" -#: src/common/command.c:1490 +#: src/common/command.c:1493 msgid "(unknown)" msgstr "" -#: src/common/command.c:1523 +#: src/common/command.c:1526 #, c-format msgid "%s alias or command \"%s\" not found\n" msgstr "" -#: src/common/command.c:1532 +#: src/common/command.c:1535 #, c-format msgid "Alias \"%s\" removed\n" msgstr "" -#: src/common/weechat.c:120 +#: src/common/weechat.c:116 msgid "" "WeeChat configuration options (~/.weechat/weechat.rc):\n" "\n" msgstr "" -#: src/common/weechat.c:133 +#: src/common/weechat.c:129 msgid " . type boolean (values: 'on' or 'off')\n" msgstr "" -#: src/common/weechat.c:134 src/common/weechat.c:157 src/common/weechat.c:163 -#: src/common/weechat.c:169 +#: src/common/weechat.c:130 src/common/weechat.c:153 src/common/weechat.c:159 +#: src/common/weechat.c:165 #, c-format msgid " . default value: '%s'\n" msgstr "" -#: src/common/weechat.c:139 +#: src/common/weechat.c:135 #, c-format msgid " . type integer (values: between %d and %d)\n" msgstr "" -#: src/common/weechat.c:142 +#: src/common/weechat.c:138 #, c-format msgid " . default value: %d\n" msgstr "" -#: src/common/weechat.c:146 +#: src/common/weechat.c:142 msgid " . type string (values: " msgstr "" -#: src/common/weechat.c:159 src/common/weechat.c:165 src/common/weechat.c:171 +#: src/common/weechat.c:155 src/common/weechat.c:161 src/common/weechat.c:167 msgid "empty" msgstr "" -#: src/common/weechat.c:162 +#: src/common/weechat.c:158 msgid " . type color (Curses or Gtk color, look at WeeChat doc)\n" msgstr "" -#: src/common/weechat.c:168 +#: src/common/weechat.c:164 msgid " . type string (any string)\n" msgstr "" -#: src/common/weechat.c:174 +#: src/common/weechat.c:170 #, c-format msgid "" " . description: %s\n" "\n" msgstr "" -#: src/common/weechat.c:180 +#: src/common/weechat.c:176 msgid "" "Moreover, you can define aliases in [alias] section, by adding lines like:\n" msgstr "" -#: src/common/weechat.c:182 +#: src/common/weechat.c:178 msgid "" "where 'j' is alias name, and 'join' associated command.\n" "\n" msgstr "" -#: src/common/weechat.c:206 +#: src/common/weechat.c:224 +#, c-format +msgid "%s invalid syntax for IRC server ('%s'), ignored\n" +msgstr "" + +#: src/common/weechat.c:238 +#, c-format +msgid "%s unable to create server ('%s'), ignored\n" +msgstr "" + +#: src/common/weechat.c:247 #, c-format msgid "%s unknown parameter '%s', ignored\n" msgstr "" -#: src/common/weechat.c:226 +#: src/common/weechat.c:267 #, c-format msgid "%s cannot create directory \"%s\"\n" msgstr "" -#: src/common/weechat.c:328 +#: src/common/weechat.c:369 #, c-format msgid "%s unable to create/append to log file (~/.weechat/%s)" msgstr "" -#: src/common/weechat.c:352 +#: src/common/weechat.c:393 #, c-format msgid "%sWelcome to " msgstr "" -#: src/common/weechat.c:365 +#: src/common/weechat.c:406 msgid "compiled on" msgstr "" diff --git a/src/common/command.c b/src/common/command.c index 0e2b3d58a..0f6d388f2 100644 --- a/src/common/command.c +++ b/src/common/command.c @@ -1167,8 +1167,11 @@ weechat_cmd_server (int argc, char **argv) irc_display_prefix (NULL, PREFIX_INFO); gui_printf_color (NULL, COLOR_WIN_CHAT, - _(" Autoconnect: %s\n"), - (ptr_server->autoconnect) ? _("yes") : _("no")); + _(" Autoconnect: %s%s\n"), + (ptr_server->autoconnect) ? _("yes") : _("no"), + (ptr_server->command_line) ? + _(" (temporary server, will not be saved)") : + ""); irc_display_prefix (NULL, PREFIX_INFO); gui_printf_color (NULL, COLOR_WIN_CHAT, @@ -1399,11 +1402,11 @@ weechat_cmd_server (int argc, char **argv) } /* create new server */ - new_server = server_new (server.name, server.autoconnect, server.address, - server.port, server.password, server.nick1, - server.nick2, server.nick3, server.username, - server.realname, server.command, - server.autojoin); + new_server = server_new (server.name, server.autoconnect, 0, + server.address, server.port, server.password, + server.nick1, server.nick2, server.nick3, + server.username, server.realname, + server.command, server.autojoin); if (new_server) { irc_display_prefix (NULL, PREFIX_INFO); diff --git a/src/common/weechat.c b/src/common/weechat.c index b03ba027c..0de07f37d 100644 --- a/src/common/weechat.c +++ b/src/common/weechat.c @@ -63,6 +63,8 @@ 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) */ +int server_cmd_line; /* at least one server on WeeChat command line */ + /* * my_sigint: SIGINT handler, do nothing (just ignore this signal) @@ -103,6 +105,79 @@ wee_log_printf (char *message, ...) fflush (log_file); } +/* + * wee_display_config_options: display config options + */ + +void wee_display_config_options () +{ + int i, j, k; + + printf (_("WeeChat configuration options (~/.weechat/weechat.rc):\n\n")); + for (i = 0; i < CONFIG_NUMBER_SECTIONS; i++) + { + if (weechat_options[i]) + { + j = 0; + while (weechat_options[i][j].option_name) + { + printf ("* %s:\n", + weechat_options[i][j].option_name); + switch (weechat_options[i][j].option_type) + { + case OPTION_TYPE_BOOLEAN: + printf (_(" . type boolean (values: 'on' or 'off')\n")); + printf (_(" . default value: '%s'\n"), + (weechat_options[i][j].default_int == BOOL_TRUE) ? + "on" : "off"); + break; + case OPTION_TYPE_INT: + printf (_(" . type integer (values: between %d and %d)\n"), + weechat_options[i][j].min, + weechat_options[i][j].max); + printf (_(" . default value: %d\n"), + weechat_options[i][j].default_int); + break; + case OPTION_TYPE_INT_WITH_STRING: + printf (_(" . type string (values: ")); + k = 0; + while (weechat_options[i][j].array_values[k]) + { + printf ("'%s'", + weechat_options[i][j].array_values[k]); + if (weechat_options[i][j].array_values[k + 1]) + printf (", "); + k++; + } + printf (")\n"); + printf (_(" . default value: '%s'\n"), + (weechat_options[i][j].default_string) ? + weechat_options[i][j].default_string : _("empty")); + break; + case OPTION_TYPE_COLOR: + printf (_(" . type color (Curses or Gtk color, look at WeeChat doc)\n")); + printf (_(" . default value: '%s'\n"), + (weechat_options[i][j].default_string) ? + weechat_options[i][j].default_string : _("empty")); + break; + case OPTION_TYPE_STRING: + printf (_(" . type string (any string)\n")); + printf (_(" . default value: '%s'\n"), + (weechat_options[i][j].default_string) ? + weechat_options[i][j].default_string : _("empty")); + break; + } + printf (_(" . description: %s\n\n"), + gettext (weechat_options[i][j].long_description)); + j++; + } + } + } + printf (_("Moreover, you can define aliases in [alias] section, by adding lines like:\n")); + printf ("j=join\n"); + printf (_("where 'j' is alias name, and 'join' associated command.\n\n")); +} + /* * wee_parse_args: parse command line args */ @@ -110,82 +185,24 @@ wee_log_printf (char *message, ...) void wee_parse_args (int argc, char *argv[]) { - int i, j, k, m; + int i; + t_irc_server server_tmp; + server_cmd_line = 0; + for (i = 1; i < argc; i++) { if ((strcmp (argv[i], "-c") == 0) || (strcmp (argv[i], "--config") == 0)) { - printf(_("WeeChat configuration options (~/.weechat/weechat.rc):\n\n")); - for (j = 0; j < CONFIG_NUMBER_SECTIONS; j++) - { - if (weechat_options[j]) - { - k = 0; - while (weechat_options[j][k].option_name) - { - printf ("* %s:\n", - weechat_options[j][k].option_name); - switch (weechat_options[j][k].option_type) - { - case OPTION_TYPE_BOOLEAN: - printf (_(" . type boolean (values: 'on' or 'off')\n")); - printf (_(" . default value: '%s'\n"), - (weechat_options[j][k].default_int == BOOL_TRUE) ? - "on" : "off"); - break; - case OPTION_TYPE_INT: - printf (_(" . type integer (values: between %d and %d)\n"), - weechat_options[j][k].min, - weechat_options[j][k].max); - printf (_(" . default value: %d\n"), - weechat_options[j][k].default_int); - break; - case OPTION_TYPE_INT_WITH_STRING: - printf (_(" . type string (values: ")); - m = 0; - while (weechat_options[j][k].array_values[m]) - { - printf ("'%s'", - weechat_options[j][k].array_values[m]); - if (weechat_options[j][k].array_values[m + 1]) - printf (", "); - m++; - } - printf (")\n"); - printf (_(" . default value: '%s'\n"), - (weechat_options[j][k].default_string) ? - weechat_options[j][k].default_string : _("empty")); - break; - case OPTION_TYPE_COLOR: - printf (_(" . type color (Curses or Gtk color, look at WeeChat doc)\n")); - printf (_(" . default value: '%s'\n"), - (weechat_options[j][k].default_string) ? - weechat_options[j][k].default_string : _("empty")); - break; - case OPTION_TYPE_STRING: - printf (_(" . type string (any string)\n")); - printf (_(" . default value: '%s'\n"), - (weechat_options[j][k].default_string) ? - weechat_options[j][k].default_string : _("empty")); - break; - } - printf (_(" . description: %s\n\n"), - gettext (weechat_options[j][k].long_description)); - k++; - } - } - } - printf (_("Moreover, you can define aliases in [alias] section, by adding lines like:\n")); - printf ("j=join\n"); - printf (_("where 'j' is alias name, and 'join' associated command.\n\n")); + wee_display_config_options (); exit (0); } else if ((strcmp (argv[i], "-h") == 0) || (strcmp (argv[i], "--help") == 0)) { - printf ("\n%s%s", WEE_USAGE); + printf ("\n " WEE_USAGE1, argv[0]); + printf ("%s", WEE_USAGE2); exit (0); } else if ((strcmp (argv[i], "-l") == 0) @@ -200,6 +217,26 @@ wee_parse_args (int argc, char *argv[]) printf (PACKAGE_VERSION "\n"); exit (0); } + else if ((strncasecmp (argv[i], "irc://", 6) == 0)) + { + if (server_init_with_url (argv[i], &server_tmp) < 0) + { + fprintf (stderr, _("%s invalid syntax for IRC server ('%s'), ignored\n"), + WEECHAT_WARNING, argv[i]); + } + else + { + if (!server_new (server_tmp.name, 0, 1, + server_tmp.address, server_tmp.port, + server_tmp.password, server_tmp.nick1, + server_tmp.nick2, server_tmp.nick3, + NULL, NULL, NULL, NULL)) + fprintf (stderr, _("%s unable to create server ('%s'), ignored\n"), + WEECHAT_WARNING, argv[i]); + server_destroy (&server_tmp); + server_cmd_line = 1; + } + } else { fprintf (stderr, @@ -425,7 +462,8 @@ main (int argc, char *argv[]) gui_init (); /* init WeeChat interface */ plugin_init (); /* init plugin interface(s) */ weechat_welcome_message (); /* display WeeChat welcome message */ - server_auto_connect (); /* auto-connect to servers */ + /* auto-connect to servers */ + server_auto_connect (server_cmd_line); gui_main_loop (); /* WeeChat main loop */ diff --git a/src/common/weechat.h b/src/common/weechat.h index 5ab30e049..58a3b72d9 100644 --- a/src/common/weechat.h +++ b/src/common/weechat.h @@ -76,11 +76,14 @@ "along with this program; if not, write to the Free Software\n" \ "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n\n" -#define WEE_USAGE \ +#define WEE_USAGE1 \ PACKAGE_STRING " (c) Copyright 2004, compiled on " __DATE__ " " __TIME__ \ "\nDeveloped by FlashCode, Bounga and Xahlexx - " WEECHAT_WEBSITE "\n\n" \ + "Usage: %s [options ...] [irc://nick[:passwd]@irc.example.org[:port] ...]\n\n" + +#define WEE_USAGE2 \ " -c, --config config file help (list of options)\n" \ - " -h, --help this help screen\n", \ + " -h, --help this help screen\n" \ " -l, --license display WeeChat license\n" \ " -v, --version display WeeChat version\n\n" diff --git a/src/common/weeconfig.c b/src/common/weeconfig.c index 98211aa05..4d91862b6 100644 --- a/src/common/weeconfig.c +++ b/src/common/weeconfig.c @@ -658,7 +658,7 @@ config_allocate_server (char *filename, int line_number) return 0; } if (!server_new (cfg_server.name, - cfg_server.autoconnect, cfg_server.address, cfg_server.port, + cfg_server.autoconnect, 0, cfg_server.address, cfg_server.port, cfg_server.password, cfg_server.nick1, cfg_server.nick2, cfg_server.nick3, cfg_server.username, cfg_server.realname, cfg_server.command, cfg_server.autojoin)) @@ -1194,23 +1194,26 @@ config_write (char *config_name) for (ptr_server = irc_servers; ptr_server; ptr_server = ptr_server->next_server) { - fprintf (file, "\n[server]\n"); - fprintf (file, "server_name=%s\n", ptr_server->name); - fprintf (file, "server_autoconnect=%s\n", - (ptr_server->autoconnect) ? "on" : "off"); - fprintf (file, "server_address=%s\n", ptr_server->address); - fprintf (file, "server_port=%d\n", ptr_server->port); - fprintf (file, "server_password=%s\n", - (ptr_server->password) ? ptr_server->password : ""); - fprintf (file, "server_nick1=%s\n", ptr_server->nick1); - fprintf (file, "server_nick2=%s\n", ptr_server->nick2); - fprintf (file, "server_nick3=%s\n", ptr_server->nick3); - fprintf (file, "server_username=%s\n", ptr_server->username); - fprintf (file, "server_realname=%s\n", ptr_server->realname); - fprintf (file, "server_command=%s\n", - (ptr_server->command) ? ptr_server->command : ""); - fprintf (file, "server_autojoin=%s\n", - (ptr_server->autojoin) ? ptr_server->autojoin : ""); + if (!ptr_server->command_line) + { + fprintf (file, "\n[server]\n"); + fprintf (file, "server_name=%s\n", ptr_server->name); + fprintf (file, "server_autoconnect=%s\n", + (ptr_server->autoconnect) ? "on" : "off"); + fprintf (file, "server_address=%s\n", ptr_server->address); + fprintf (file, "server_port=%d\n", ptr_server->port); + fprintf (file, "server_password=%s\n", + (ptr_server->password) ? ptr_server->password : ""); + fprintf (file, "server_nick1=%s\n", ptr_server->nick1); + fprintf (file, "server_nick2=%s\n", ptr_server->nick2); + fprintf (file, "server_nick3=%s\n", ptr_server->nick3); + fprintf (file, "server_username=%s\n", ptr_server->username); + fprintf (file, "server_realname=%s\n", ptr_server->realname); + fprintf (file, "server_command=%s\n", + (ptr_server->command) ? ptr_server->command : ""); + fprintf (file, "server_autojoin=%s\n", + (ptr_server->autojoin) ? ptr_server->autojoin : ""); + } } fclose (file); diff --git a/src/irc/irc-server.c b/src/irc/irc-server.c index 6e6a014be..88318ff42 100644 --- a/src/irc/irc-server.c +++ b/src/irc/irc-server.c @@ -59,6 +59,7 @@ server_init (t_irc_server *server) { server->name = NULL; server->autoconnect = 0; + server->command_line = 0; server->address = NULL; server->port = -1; server->password = NULL; @@ -80,6 +81,68 @@ server_init (t_irc_server *server) server->last_channel = NULL; } +/* + * server_init_with_url: init a server with url of this form: + * irc://nick:pass@irc.toto.org:6667 + * returns: 0 = ok + * -1 = invalid syntax + */ + +int +server_init_with_url (char *irc_url, t_irc_server *server) +{ + char *url, *pos_address, *pos, *pos2; + + server_init (server); + if (strncasecmp (irc_url, "irc://", 6) != 0) + return -1; + url = strdup (irc_url); + pos_address = strchr (url, '@'); + if (!pos_address || !pos_address[1]) + { + free (url); + return -1; + } + pos_address[0] = '\0'; + pos_address++; + pos = url + 6; + if (!pos[0]) + { + free (url); + return -1; + } + pos2 = strchr (pos, ':'); + if (pos2) + { + pos2[0] = '\0'; + server->password = strdup (pos2 + 1); + } + server->nick1 = strdup (pos); + + pos2 = strchr (pos_address, ':'); + if (pos2) + { + pos2[0] = '\0'; + server->port = atoi (pos2 + 1); + } + server->name = strdup (pos_address); + server->address = strdup (pos_address); + + free (url); + + /* some default values */ + if (server->port < 0) + server->port = DEFAULT_IRC_PORT; + server->nick2 = (char *) malloc (strlen (server->nick1) + 2); + strcpy (server->nick2, server->nick1); + server->nick2 = strcat (server->nick2, "1"); + server->nick3 = (char *) malloc (strlen (server->nick1) + 2); + strcpy (server->nick3, server->nick1); + server->nick3 = strcat (server->nick3, "2"); + + return 0; +} + /* * server_alloc: allocate a new server and add it to the servers queue */ @@ -193,8 +256,8 @@ server_free_all () */ t_irc_server * -server_new (char *name, int autoconnect, char *address, int port, - char *password, char *nick1, char *nick2, char *nick3, +server_new (char *name, int autoconnect, int command_line, char *address, + int port, char *password, char *nick1, char *nick2, char *nick3, char *username, char *realname, char *command, char *autojoin) { t_irc_server *new_server; @@ -216,6 +279,7 @@ server_new (char *name, int autoconnect, char *address, int port, { new_server->name = strdup (name); new_server->autoconnect = autoconnect; + new_server->command_line = command_line; new_server->address = strdup (address); new_server->port = port; new_server->password = (password) ? strdup (password) : strdup (""); @@ -574,14 +638,15 @@ server_connect (t_irc_server *server) */ void -server_auto_connect () +server_auto_connect (int command_line) { t_irc_server *ptr_server; for (ptr_server = irc_servers; ptr_server; ptr_server = ptr_server->next_server) { - if (ptr_server->autoconnect) + if ( ((command_line) && (ptr_server->command_line)) + || ((!command_line) && (ptr_server->autoconnect)) ) { gui_window_new (ptr_server, NULL, 1); if (server_connect (ptr_server)) diff --git a/src/irc/irc.h b/src/irc/irc.h index c1b761e35..f050ce86a 100644 --- a/src/irc/irc.h +++ b/src/irc/irc.h @@ -34,6 +34,8 @@ #define CHANNEL_PREFIX "#&+!" +#define DEFAULT_IRC_PORT 6667 + /* nick types */ typedef struct t_irc_nick t_irc_nick; @@ -78,6 +80,7 @@ struct t_irc_server /* user choices */ char *name; /* name of server (only for display) */ int autoconnect; /* = 1 if auto connect at startup */ + int command_line; /* server was given on command line */ char *address; /* address of server (IP or name) */ int port; /* port for server (6667 by default) */ char *password; /* password for server */ @@ -140,17 +143,18 @@ extern t_irc_channel *current_channel; /* server functions (irc-server.c) */ extern void server_init (t_irc_server *); +extern int server_init_with_url (char *, t_irc_server *); extern t_irc_server *server_alloc (); extern void server_destroy (t_irc_server *); extern void server_free (t_irc_server *); extern void server_free_all (); -extern t_irc_server *server_new (char *, int, char *, int, char *, char *, +extern t_irc_server *server_new (char *, int, int, char *, int, char *, char *, char *, char *, char *, char *, char *, char *); extern int server_send (t_irc_server *, char *, int); extern int server_sendf (t_irc_server *, char *, ...); extern void server_recv (t_irc_server *); extern int server_connect (); -extern void server_auto_connect (); +extern void server_auto_connect (int); extern void server_disconnect (t_irc_server *); extern void server_disconnect_all (); extern t_irc_server *server_search (char *); diff --git a/weechat/po/fr.po b/weechat/po/fr.po index c47a5cfab..4050fc0e3 100644 --- a/weechat/po/fr.po +++ b/weechat/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.0.5-pre2\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2004-01-18 19:34+0100\n" +"POT-Creation-Date: 2004-01-19 00:47+0100\n" "PO-Revision-Date: 2004-01-01 11:52+0100\n" "Last-Translator: FlashCode \n" "Language-Team: weechat-dev \n" @@ -20,76 +20,76 @@ msgstr "" msgid "%s cannot allocate new nick\n" msgstr "%s ompossible d'allouer un nouveau pseudo\n" -#: src/irc/irc-server.c:95 +#: src/irc/irc-server.c:158 #, c-format msgid "%s cannot allocate new server\n" msgstr "%s impossible d'allouer un nouveau serveur\n" -#: src/irc/irc-server.c:351 +#: src/irc/irc-server.c:415 #, c-format msgid "%s unable to explode received buffer\n" msgstr "%s impossible d'exploser le tampon de réception\n" -#: src/irc/irc-server.c:424 +#: src/irc/irc-server.c:488 #, c-format msgid "Command '%s' failed!\n" msgstr "La commande '%s' a échoué !\n" -#: src/irc/irc-server.c:428 +#: src/irc/irc-server.c:492 msgid "No command to execute!\n" msgstr "Pas de commande à exécuter !\n" -#: src/irc/irc-server.c:432 +#: src/irc/irc-server.c:496 #, c-format msgid "Unknown command: cmd=%s, args=%s\n" msgstr "Commande inconnue: cmd=%s, params=%s\n" -#: src/irc/irc-server.c:482 +#: src/irc/irc-server.c:546 #, c-format msgid "%s: connecting to %s:%d...\n" msgstr "%s: connexion à %s:%d...\n" -#: src/irc/irc-server.c:484 +#: src/irc/irc-server.c:548 #, c-format msgid "connecting to server %s:%d...\n" msgstr "connexion au serveur %s:%d...\n" -#: src/irc/irc-server.c:492 +#: src/irc/irc-server.c:556 #, c-format msgid "%s cannot create pipe\n" msgstr "%s impossible de créer le pipe\n" -#: src/irc/irc-server.c:506 +#: src/irc/irc-server.c:570 #, c-format msgid "%s cannot set socket option \"SO_REUSEADDR\"\n" msgstr "%s impossible de paramétrer l'option socket \"SO_REUSEADDR\"\n" -#: src/irc/irc-server.c:513 +#: src/irc/irc-server.c:577 #, c-format msgid "%s cannot set socket option \"SO_KEEPALIVE\"\n" msgstr "%s impossible de paramétrer l'option socket \"SO_KEEPALIVE\"\n" -#: src/irc/irc-server.c:521 +#: src/irc/irc-server.c:585 #, c-format msgid "%s address \"%s\" not found\n" msgstr "%s adresse \"%s\" introuvable\n" -#: src/irc/irc-server.c:544 +#: src/irc/irc-server.c:608 #, c-format msgid "%s IP address not found\n" msgstr "%s adresse IP introuvable\n" -#: src/irc/irc-server.c:554 +#: src/irc/irc-server.c:618 #, c-format msgid "%s: server IP is: %s\n" msgstr "%s: l'adresse IP du serveur est : %s\n" -#: src/irc/irc-server.c:560 +#: src/irc/irc-server.c:624 #, c-format msgid "%s cannot connect to irc server\n" msgstr "%s connexion au serveur irc impossible\n" -#: src/irc/irc-server.c:609 +#: src/irc/irc-server.c:674 msgid "Disconnected from server!\n" msgstr "Déconnecté du serveur !\n" @@ -1906,8 +1906,8 @@ msgstr "non connect #: src/common/command.c:1170 #, c-format -msgid " Autoconnect: %s\n" -msgstr " Autoconnect: %s\n" +msgid " Autoconnect: %s%s\n" +msgstr " Autoconnect: %s%s\n" #: src/common/command.c:1171 msgid "yes" @@ -1917,134 +1917,138 @@ msgstr "oui" msgid "no" msgstr "non" -#: src/common/command.c:1175 +#: src/common/command.c:1173 +msgid " (temporary server, will not be saved)" +msgstr " (serveur temporaire, ne sera pas sauvé)" + +#: src/common/command.c:1178 #, c-format msgid " Hostname : %s\n" msgstr " Nom/IP : %s\n" -#: src/common/command.c:1180 +#: src/common/command.c:1183 #, c-format msgid " Port : %d\n" msgstr " Port : %d\n" -#: src/common/command.c:1186 +#: src/common/command.c:1189 msgid " Password : (hidden)\n" msgstr " Mot passe : (caché)\n" -#: src/common/command.c:1190 +#: src/common/command.c:1193 msgid " Password : (none)\n" msgstr " Mot passe : (aucun)\n" -#: src/common/command.c:1194 +#: src/common/command.c:1197 #, c-format msgid " Nicks : %s" msgstr " Pseudos : %s" -#: src/common/command.c:1211 +#: src/common/command.c:1214 #, c-format msgid " Username : %s\n" msgstr " Nom utilis.: %s\n" -#: src/common/command.c:1216 +#: src/common/command.c:1219 #, c-format msgid " Realname : %s\n" msgstr " Nom réel : %s\n" -#: src/common/command.c:1222 +#: src/common/command.c:1225 #, c-format msgid " Command : %s\n" msgstr " Commande : %s\n" -#: src/common/command.c:1227 +#: src/common/command.c:1230 msgid " Command : (none)\n" msgstr " Commande : (aucune)\n" -#: src/common/command.c:1232 +#: src/common/command.c:1235 #, c-format msgid " Auto-join : %s\n" msgstr " Auto-join : %s\n" -#: src/common/command.c:1237 +#: src/common/command.c:1240 msgid " Auto-join : (none)\n" msgstr " Auto-join : (aucun)\n" -#: src/common/command.c:1241 +#: src/common/command.c:1244 msgid "No server.\n" msgstr "Pas de serveur.\n" -#: src/common/command.c:1250 +#: src/common/command.c:1253 #, c-format msgid "%s missing servername for \"%s\" command\n" msgstr "%s il manque le nom du serveur pour la commande \"%s\"\n" -#: src/common/command.c:1256 +#: src/common/command.c:1259 #, c-format msgid "%s too much arguments for \"%s\" command, ignoring arguments\n" msgstr "%s trop de paramètres pour la commande \"%s\", paramètres ignorés\n" -#: src/common/command.c:1273 +#: src/common/command.c:1276 #, c-format msgid "%s server \"%s\" not found for \"%s\" command\n" msgstr "%s le serveur \"%s\" n'existe pas pour la commande \"%s\"\n" -#: src/common/command.c:1279 src/common/command.c:1410 +#: src/common/command.c:1282 src/common/command.c:1413 msgid "Server" msgstr "Serveur" -#: src/common/command.c:1282 +#: src/common/command.c:1285 msgid "has been deleted\n" msgstr "a été supprimé\n" -#: src/common/command.c:1296 +#: src/common/command.c:1299 #, c-format msgid "%s missing parameters for \"%s\" command\n" msgstr "%s paramètres manquants pour la commande \"%s\"\n" -#: src/common/command.c:1305 +#: src/common/command.c:1308 #, c-format msgid "%s server \"%s\" already exists, can't create it!\n" msgstr "%s le serveur \"%s\" existe déjà, impossible de le créer !\n" -#: src/common/command.c:1329 src/common/command.c:1355 -#: src/common/command.c:1367 src/common/command.c:1391 +#: src/common/command.c:1332 src/common/command.c:1358 +#: src/common/command.c:1370 src/common/command.c:1394 #, c-format msgid "%s missing password for \"%s\" parameter\n" msgstr "%s mot de passe manquant pour le paramètre \"%s\"\n" -#: src/common/command.c:1341 +#: src/common/command.c:1344 #, c-format msgid "%s missing nick(s) for \"%s\" parameter\n" msgstr "%s pseudo(s) manquant(s) pour le paramètre \"%s\"\n" -#: src/common/command.c:1379 +#: src/common/command.c:1382 #, c-format msgid "%s missing command for \"%s\" parameter\n" msgstr "%s commande manquante pour le paramètre \"%s\"\n" -#: src/common/command.c:1413 +#: src/common/command.c:1416 msgid "created\n" msgstr "créé\n" -#: src/common/command.c:1418 +#: src/common/command.c:1421 #, c-format msgid "%s unable to create server\n" msgstr "%s impossible de créer le serveur\n" -#: src/common/command.c:1490 +#: src/common/command.c:1493 msgid "(unknown)" msgstr "(inconnu)" -#: src/common/command.c:1523 +#: src/common/command.c:1526 #, c-format msgid "%s alias or command \"%s\" not found\n" msgstr "%s alias ou commande \"%s\" non trouvé\n" -#: src/common/command.c:1532 +#: src/common/command.c:1535 #, c-format msgid "Alias \"%s\" removed\n" msgstr "Alias \"%s\" supprimé\n" -#: src/common/weechat.c:120 +#: src/common/weechat.c:116 msgid "" "WeeChat configuration options (~/.weechat/weechat.rc):\n" "\n" @@ -2052,43 +2056,43 @@ msgstr "" "Options de configuration de WeeChat (~/.weechat/weechat.rc):\n" "\n" -#: src/common/weechat.c:133 +#: src/common/weechat.c:129 msgid " . type boolean (values: 'on' or 'off')\n" msgstr " . type booléen (valeurs: 'on' ou 'off')\n" -#: src/common/weechat.c:134 src/common/weechat.c:157 src/common/weechat.c:163 -#: src/common/weechat.c:169 +#: src/common/weechat.c:130 src/common/weechat.c:153 src/common/weechat.c:159 +#: src/common/weechat.c:165 #, c-format msgid " . default value: '%s'\n" msgstr " . valeur par défaut: '%s'\n" -#: src/common/weechat.c:139 +#: src/common/weechat.c:135 #, c-format msgid " . type integer (values: between %d and %d)\n" msgstr " . type entier (valeurs: entre %d et %d)\n" -#: src/common/weechat.c:142 +#: src/common/weechat.c:138 #, c-format msgid " . default value: %d\n" msgstr " . valeur par défaut: %d\n" -#: src/common/weechat.c:146 +#: src/common/weechat.c:142 msgid " . type string (values: " msgstr " . type chaîne (valeurs: " -#: src/common/weechat.c:159 src/common/weechat.c:165 src/common/weechat.c:171 +#: src/common/weechat.c:155 src/common/weechat.c:161 src/common/weechat.c:167 msgid "empty" msgstr "vide" -#: src/common/weechat.c:162 +#: src/common/weechat.c:158 msgid " . type color (Curses or Gtk color, look at WeeChat doc)\n" msgstr " . type couleur (couleur Curses ou Gtk, voir la doc WeeChat)\n" -#: src/common/weechat.c:168 +#: src/common/weechat.c:164 msgid " . type string (any string)\n" msgstr " . type chaîne (toute chaîne)\n" -#: src/common/weechat.c:174 +#: src/common/weechat.c:170 #, c-format msgid "" " . description: %s\n" @@ -2097,14 +2101,14 @@ msgstr "" " . description: %s\n" "\n" -#: src/common/weechat.c:180 +#: src/common/weechat.c:176 msgid "" "Moreover, you can define aliases in [alias] section, by adding lines like:\n" msgstr "" "De plus, vous pouvez définir des alias dans la section [alias], en ajoutant " "des lignes comme :\n" -#: src/common/weechat.c:182 +#: src/common/weechat.c:178 msgid "" "where 'j' is alias name, and 'join' associated command.\n" "\n" @@ -2112,27 +2116,37 @@ msgstr "" "où 'j' est le nom de l'alias, et 'join' la commande associée.\n" "\n" -#: src/common/weechat.c:206 +#: src/common/weechat.c:224 +#, c-format +msgid "%s invalid syntax for IRC server ('%s'), ignored\n" +msgstr "%s syntaxe invalide pour le serveur IRC ('%s'), ignoré\n" + +#: src/common/weechat.c:238 +#, c-format +msgid "%s unable to create server ('%s'), ignored\n" +msgstr "%s impossible de créer le serveur ('%s'), ignoré\n" + +#: src/common/weechat.c:247 #, c-format msgid "%s unknown parameter '%s', ignored\n" msgstr "%s paramètre inconnu '%s', ignoré\n" -#: src/common/weechat.c:226 +#: src/common/weechat.c:267 #, c-format msgid "%s cannot create directory \"%s\"\n" msgstr "%s impossible de créer le répertoire \"%s\"\n" -#: src/common/weechat.c:328 +#: src/common/weechat.c:369 #, 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:352 +#: src/common/weechat.c:393 #, c-format msgid "%sWelcome to " msgstr "%sBienvenue dans " -#: src/common/weechat.c:365 +#: src/common/weechat.c:406 msgid "compiled on" msgstr "compilé le" diff --git a/weechat/po/weechat.pot b/weechat/po/weechat.pot index e2f1a230d..253701eb1 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-01-18 19:34+0100\n" +"POT-Creation-Date: 2004-01-19 00:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -20,76 +20,76 @@ msgstr "" msgid "%s cannot allocate new nick\n" msgstr "" -#: src/irc/irc-server.c:95 +#: src/irc/irc-server.c:158 #, c-format msgid "%s cannot allocate new server\n" msgstr "" -#: src/irc/irc-server.c:351 +#: src/irc/irc-server.c:415 #, c-format msgid "%s unable to explode received buffer\n" msgstr "" -#: src/irc/irc-server.c:424 +#: src/irc/irc-server.c:488 #, c-format msgid "Command '%s' failed!\n" msgstr "" -#: src/irc/irc-server.c:428 +#: src/irc/irc-server.c:492 msgid "No command to execute!\n" msgstr "" -#: src/irc/irc-server.c:432 +#: src/irc/irc-server.c:496 #, c-format msgid "Unknown command: cmd=%s, args=%s\n" msgstr "" -#: src/irc/irc-server.c:482 +#: src/irc/irc-server.c:546 #, c-format msgid "%s: connecting to %s:%d...\n" msgstr "" -#: src/irc/irc-server.c:484 +#: src/irc/irc-server.c:548 #, c-format msgid "connecting to server %s:%d...\n" msgstr "" -#: src/irc/irc-server.c:492 +#: src/irc/irc-server.c:556 #, c-format msgid "%s cannot create pipe\n" msgstr "" -#: src/irc/irc-server.c:506 +#: src/irc/irc-server.c:570 #, c-format msgid "%s cannot set socket option \"SO_REUSEADDR\"\n" msgstr "" -#: src/irc/irc-server.c:513 +#: src/irc/irc-server.c:577 #, c-format msgid "%s cannot set socket option \"SO_KEEPALIVE\"\n" msgstr "" -#: src/irc/irc-server.c:521 +#: src/irc/irc-server.c:585 #, c-format msgid "%s address \"%s\" not found\n" msgstr "" -#: src/irc/irc-server.c:544 +#: src/irc/irc-server.c:608 #, c-format msgid "%s IP address not found\n" msgstr "" -#: src/irc/irc-server.c:554 +#: src/irc/irc-server.c:618 #, c-format msgid "%s: server IP is: %s\n" msgstr "" -#: src/irc/irc-server.c:560 +#: src/irc/irc-server.c:624 #, c-format msgid "%s cannot connect to irc server\n" msgstr "" -#: src/irc/irc-server.c:609 +#: src/irc/irc-server.c:674 msgid "Disconnected from server!\n" msgstr "" @@ -1773,7 +1773,7 @@ msgstr "" #: src/common/command.c:1170 #, c-format -msgid " Autoconnect: %s\n" +msgid " Autoconnect: %s%s\n" msgstr "" #: src/common/command.c:1171 @@ -1784,214 +1784,228 @@ msgstr "" msgid "no" msgstr "" -#: src/common/command.c:1175 +#: src/common/command.c:1173 +msgid " (temporary server, will not be saved)" +msgstr "" + +#: src/common/command.c:1178 #, c-format msgid " Hostname : %s\n" msgstr "" -#: src/common/command.c:1180 +#: src/common/command.c:1183 #, c-format msgid " Port : %d\n" msgstr "" -#: src/common/command.c:1186 +#: src/common/command.c:1189 msgid " Password : (hidden)\n" msgstr "" -#: src/common/command.c:1190 +#: src/common/command.c:1193 msgid " Password : (none)\n" msgstr "" -#: src/common/command.c:1194 +#: src/common/command.c:1197 #, c-format msgid " Nicks : %s" msgstr "" -#: src/common/command.c:1211 +#: src/common/command.c:1214 #, c-format msgid " Username : %s\n" msgstr "" -#: src/common/command.c:1216 +#: src/common/command.c:1219 #, c-format msgid " Realname : %s\n" msgstr "" -#: src/common/command.c:1222 +#: src/common/command.c:1225 #, c-format msgid " Command : %s\n" msgstr "" -#: src/common/command.c:1227 +#: src/common/command.c:1230 msgid " Command : (none)\n" msgstr "" -#: src/common/command.c:1232 +#: src/common/command.c:1235 #, c-format msgid " Auto-join : %s\n" msgstr "" -#: src/common/command.c:1237 +#: src/common/command.c:1240 msgid " Auto-join : (none)\n" msgstr "" -#: src/common/command.c:1241 +#: src/common/command.c:1244 msgid "No server.\n" msgstr "" -#: src/common/command.c:1250 +#: src/common/command.c:1253 #, c-format msgid "%s missing servername for \"%s\" command\n" msgstr "" -#: src/common/command.c:1256 +#: src/common/command.c:1259 #, c-format msgid "%s too much arguments for \"%s\" command, ignoring arguments\n" msgstr "" -#: src/common/command.c:1273 +#: src/common/command.c:1276 #, c-format msgid "%s server \"%s\" not found for \"%s\" command\n" msgstr "" -#: src/common/command.c:1279 src/common/command.c:1410 +#: src/common/command.c:1282 src/common/command.c:1413 msgid "Server" msgstr "" -#: src/common/command.c:1282 +#: src/common/command.c:1285 msgid "has been deleted\n" msgstr "" -#: src/common/command.c:1296 +#: src/common/command.c:1299 #, c-format msgid "%s missing parameters for \"%s\" command\n" msgstr "" -#: src/common/command.c:1305 +#: src/common/command.c:1308 #, c-format msgid "%s server \"%s\" already exists, can't create it!\n" msgstr "" -#: src/common/command.c:1329 src/common/command.c:1355 -#: src/common/command.c:1367 src/common/command.c:1391 +#: src/common/command.c:1332 src/common/command.c:1358 +#: src/common/command.c:1370 src/common/command.c:1394 #, c-format msgid "%s missing password for \"%s\" parameter\n" msgstr "" -#: src/common/command.c:1341 +#: src/common/command.c:1344 #, c-format msgid "%s missing nick(s) for \"%s\" parameter\n" msgstr "" -#: src/common/command.c:1379 +#: src/common/command.c:1382 #, c-format msgid "%s missing command for \"%s\" parameter\n" msgstr "" -#: src/common/command.c:1413 +#: src/common/command.c:1416 msgid "created\n" msgstr "" -#: src/common/command.c:1418 +#: src/common/command.c:1421 #, c-format msgid "%s unable to create server\n" msgstr "" -#: src/common/command.c:1490 +#: src/common/command.c:1493 msgid "(unknown)" msgstr "" -#: src/common/command.c:1523 +#: src/common/command.c:1526 #, c-format msgid "%s alias or command \"%s\" not found\n" msgstr "" -#: src/common/command.c:1532 +#: src/common/command.c:1535 #, c-format msgid "Alias \"%s\" removed\n" msgstr "" -#: src/common/weechat.c:120 +#: src/common/weechat.c:116 msgid "" "WeeChat configuration options (~/.weechat/weechat.rc):\n" "\n" msgstr "" -#: src/common/weechat.c:133 +#: src/common/weechat.c:129 msgid " . type boolean (values: 'on' or 'off')\n" msgstr "" -#: src/common/weechat.c:134 src/common/weechat.c:157 src/common/weechat.c:163 -#: src/common/weechat.c:169 +#: src/common/weechat.c:130 src/common/weechat.c:153 src/common/weechat.c:159 +#: src/common/weechat.c:165 #, c-format msgid " . default value: '%s'\n" msgstr "" -#: src/common/weechat.c:139 +#: src/common/weechat.c:135 #, c-format msgid " . type integer (values: between %d and %d)\n" msgstr "" -#: src/common/weechat.c:142 +#: src/common/weechat.c:138 #, c-format msgid " . default value: %d\n" msgstr "" -#: src/common/weechat.c:146 +#: src/common/weechat.c:142 msgid " . type string (values: " msgstr "" -#: src/common/weechat.c:159 src/common/weechat.c:165 src/common/weechat.c:171 +#: src/common/weechat.c:155 src/common/weechat.c:161 src/common/weechat.c:167 msgid "empty" msgstr "" -#: src/common/weechat.c:162 +#: src/common/weechat.c:158 msgid " . type color (Curses or Gtk color, look at WeeChat doc)\n" msgstr "" -#: src/common/weechat.c:168 +#: src/common/weechat.c:164 msgid " . type string (any string)\n" msgstr "" -#: src/common/weechat.c:174 +#: src/common/weechat.c:170 #, c-format msgid "" " . description: %s\n" "\n" msgstr "" -#: src/common/weechat.c:180 +#: src/common/weechat.c:176 msgid "" "Moreover, you can define aliases in [alias] section, by adding lines like:\n" msgstr "" -#: src/common/weechat.c:182 +#: src/common/weechat.c:178 msgid "" "where 'j' is alias name, and 'join' associated command.\n" "\n" msgstr "" -#: src/common/weechat.c:206 +#: src/common/weechat.c:224 +#, c-format +msgid "%s invalid syntax for IRC server ('%s'), ignored\n" +msgstr "" + +#: src/common/weechat.c:238 +#, c-format +msgid "%s unable to create server ('%s'), ignored\n" +msgstr "" + +#: src/common/weechat.c:247 #, c-format msgid "%s unknown parameter '%s', ignored\n" msgstr "" -#: src/common/weechat.c:226 +#: src/common/weechat.c:267 #, c-format msgid "%s cannot create directory \"%s\"\n" msgstr "" -#: src/common/weechat.c:328 +#: src/common/weechat.c:369 #, c-format msgid "%s unable to create/append to log file (~/.weechat/%s)" msgstr "" -#: src/common/weechat.c:352 +#: src/common/weechat.c:393 #, c-format msgid "%sWelcome to " msgstr "" -#: src/common/weechat.c:365 +#: src/common/weechat.c:406 msgid "compiled on" msgstr "" diff --git a/weechat/src/common/command.c b/weechat/src/common/command.c index 0e2b3d58a..0f6d388f2 100644 --- a/weechat/src/common/command.c +++ b/weechat/src/common/command.c @@ -1167,8 +1167,11 @@ weechat_cmd_server (int argc, char **argv) irc_display_prefix (NULL, PREFIX_INFO); gui_printf_color (NULL, COLOR_WIN_CHAT, - _(" Autoconnect: %s\n"), - (ptr_server->autoconnect) ? _("yes") : _("no")); + _(" Autoconnect: %s%s\n"), + (ptr_server->autoconnect) ? _("yes") : _("no"), + (ptr_server->command_line) ? + _(" (temporary server, will not be saved)") : + ""); irc_display_prefix (NULL, PREFIX_INFO); gui_printf_color (NULL, COLOR_WIN_CHAT, @@ -1399,11 +1402,11 @@ weechat_cmd_server (int argc, char **argv) } /* create new server */ - new_server = server_new (server.name, server.autoconnect, server.address, - server.port, server.password, server.nick1, - server.nick2, server.nick3, server.username, - server.realname, server.command, - server.autojoin); + new_server = server_new (server.name, server.autoconnect, 0, + server.address, server.port, server.password, + server.nick1, server.nick2, server.nick3, + server.username, server.realname, + server.command, server.autojoin); if (new_server) { irc_display_prefix (NULL, PREFIX_INFO); diff --git a/weechat/src/common/weechat.c b/weechat/src/common/weechat.c index b03ba027c..0de07f37d 100644 --- a/weechat/src/common/weechat.c +++ b/weechat/src/common/weechat.c @@ -63,6 +63,8 @@ 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) */ +int server_cmd_line; /* at least one server on WeeChat command line */ + /* * my_sigint: SIGINT handler, do nothing (just ignore this signal) @@ -103,6 +105,79 @@ wee_log_printf (char *message, ...) fflush (log_file); } +/* + * wee_display_config_options: display config options + */ + +void wee_display_config_options () +{ + int i, j, k; + + printf (_("WeeChat configuration options (~/.weechat/weechat.rc):\n\n")); + for (i = 0; i < CONFIG_NUMBER_SECTIONS; i++) + { + if (weechat_options[i]) + { + j = 0; + while (weechat_options[i][j].option_name) + { + printf ("* %s:\n", + weechat_options[i][j].option_name); + switch (weechat_options[i][j].option_type) + { + case OPTION_TYPE_BOOLEAN: + printf (_(" . type boolean (values: 'on' or 'off')\n")); + printf (_(" . default value: '%s'\n"), + (weechat_options[i][j].default_int == BOOL_TRUE) ? + "on" : "off"); + break; + case OPTION_TYPE_INT: + printf (_(" . type integer (values: between %d and %d)\n"), + weechat_options[i][j].min, + weechat_options[i][j].max); + printf (_(" . default value: %d\n"), + weechat_options[i][j].default_int); + break; + case OPTION_TYPE_INT_WITH_STRING: + printf (_(" . type string (values: ")); + k = 0; + while (weechat_options[i][j].array_values[k]) + { + printf ("'%s'", + weechat_options[i][j].array_values[k]); + if (weechat_options[i][j].array_values[k + 1]) + printf (", "); + k++; + } + printf (")\n"); + printf (_(" . default value: '%s'\n"), + (weechat_options[i][j].default_string) ? + weechat_options[i][j].default_string : _("empty")); + break; + case OPTION_TYPE_COLOR: + printf (_(" . type color (Curses or Gtk color, look at WeeChat doc)\n")); + printf (_(" . default value: '%s'\n"), + (weechat_options[i][j].default_string) ? + weechat_options[i][j].default_string : _("empty")); + break; + case OPTION_TYPE_STRING: + printf (_(" . type string (any string)\n")); + printf (_(" . default value: '%s'\n"), + (weechat_options[i][j].default_string) ? + weechat_options[i][j].default_string : _("empty")); + break; + } + printf (_(" . description: %s\n\n"), + gettext (weechat_options[i][j].long_description)); + j++; + } + } + } + printf (_("Moreover, you can define aliases in [alias] section, by adding lines like:\n")); + printf ("j=join\n"); + printf (_("where 'j' is alias name, and 'join' associated command.\n\n")); +} + /* * wee_parse_args: parse command line args */ @@ -110,82 +185,24 @@ wee_log_printf (char *message, ...) void wee_parse_args (int argc, char *argv[]) { - int i, j, k, m; + int i; + t_irc_server server_tmp; + server_cmd_line = 0; + for (i = 1; i < argc; i++) { if ((strcmp (argv[i], "-c") == 0) || (strcmp (argv[i], "--config") == 0)) { - printf(_("WeeChat configuration options (~/.weechat/weechat.rc):\n\n")); - for (j = 0; j < CONFIG_NUMBER_SECTIONS; j++) - { - if (weechat_options[j]) - { - k = 0; - while (weechat_options[j][k].option_name) - { - printf ("* %s:\n", - weechat_options[j][k].option_name); - switch (weechat_options[j][k].option_type) - { - case OPTION_TYPE_BOOLEAN: - printf (_(" . type boolean (values: 'on' or 'off')\n")); - printf (_(" . default value: '%s'\n"), - (weechat_options[j][k].default_int == BOOL_TRUE) ? - "on" : "off"); - break; - case OPTION_TYPE_INT: - printf (_(" . type integer (values: between %d and %d)\n"), - weechat_options[j][k].min, - weechat_options[j][k].max); - printf (_(" . default value: %d\n"), - weechat_options[j][k].default_int); - break; - case OPTION_TYPE_INT_WITH_STRING: - printf (_(" . type string (values: ")); - m = 0; - while (weechat_options[j][k].array_values[m]) - { - printf ("'%s'", - weechat_options[j][k].array_values[m]); - if (weechat_options[j][k].array_values[m + 1]) - printf (", "); - m++; - } - printf (")\n"); - printf (_(" . default value: '%s'\n"), - (weechat_options[j][k].default_string) ? - weechat_options[j][k].default_string : _("empty")); - break; - case OPTION_TYPE_COLOR: - printf (_(" . type color (Curses or Gtk color, look at WeeChat doc)\n")); - printf (_(" . default value: '%s'\n"), - (weechat_options[j][k].default_string) ? - weechat_options[j][k].default_string : _("empty")); - break; - case OPTION_TYPE_STRING: - printf (_(" . type string (any string)\n")); - printf (_(" . default value: '%s'\n"), - (weechat_options[j][k].default_string) ? - weechat_options[j][k].default_string : _("empty")); - break; - } - printf (_(" . description: %s\n\n"), - gettext (weechat_options[j][k].long_description)); - k++; - } - } - } - printf (_("Moreover, you can define aliases in [alias] section, by adding lines like:\n")); - printf ("j=join\n"); - printf (_("where 'j' is alias name, and 'join' associated command.\n\n")); + wee_display_config_options (); exit (0); } else if ((strcmp (argv[i], "-h") == 0) || (strcmp (argv[i], "--help") == 0)) { - printf ("\n%s%s", WEE_USAGE); + printf ("\n " WEE_USAGE1, argv[0]); + printf ("%s", WEE_USAGE2); exit (0); } else if ((strcmp (argv[i], "-l") == 0) @@ -200,6 +217,26 @@ wee_parse_args (int argc, char *argv[]) printf (PACKAGE_VERSION "\n"); exit (0); } + else if ((strncasecmp (argv[i], "irc://", 6) == 0)) + { + if (server_init_with_url (argv[i], &server_tmp) < 0) + { + fprintf (stderr, _("%s invalid syntax for IRC server ('%s'), ignored\n"), + WEECHAT_WARNING, argv[i]); + } + else + { + if (!server_new (server_tmp.name, 0, 1, + server_tmp.address, server_tmp.port, + server_tmp.password, server_tmp.nick1, + server_tmp.nick2, server_tmp.nick3, + NULL, NULL, NULL, NULL)) + fprintf (stderr, _("%s unable to create server ('%s'), ignored\n"), + WEECHAT_WARNING, argv[i]); + server_destroy (&server_tmp); + server_cmd_line = 1; + } + } else { fprintf (stderr, @@ -425,7 +462,8 @@ main (int argc, char *argv[]) gui_init (); /* init WeeChat interface */ plugin_init (); /* init plugin interface(s) */ weechat_welcome_message (); /* display WeeChat welcome message */ - server_auto_connect (); /* auto-connect to servers */ + /* auto-connect to servers */ + server_auto_connect (server_cmd_line); gui_main_loop (); /* WeeChat main loop */ diff --git a/weechat/src/common/weechat.h b/weechat/src/common/weechat.h index 5ab30e049..58a3b72d9 100644 --- a/weechat/src/common/weechat.h +++ b/weechat/src/common/weechat.h @@ -76,11 +76,14 @@ "along with this program; if not, write to the Free Software\n" \ "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n\n" -#define WEE_USAGE \ +#define WEE_USAGE1 \ PACKAGE_STRING " (c) Copyright 2004, compiled on " __DATE__ " " __TIME__ \ "\nDeveloped by FlashCode, Bounga and Xahlexx - " WEECHAT_WEBSITE "\n\n" \ + "Usage: %s [options ...] [irc://nick[:passwd]@irc.example.org[:port] ...]\n\n" + +#define WEE_USAGE2 \ " -c, --config config file help (list of options)\n" \ - " -h, --help this help screen\n", \ + " -h, --help this help screen\n" \ " -l, --license display WeeChat license\n" \ " -v, --version display WeeChat version\n\n" diff --git a/weechat/src/common/weeconfig.c b/weechat/src/common/weeconfig.c index 98211aa05..4d91862b6 100644 --- a/weechat/src/common/weeconfig.c +++ b/weechat/src/common/weeconfig.c @@ -658,7 +658,7 @@ config_allocate_server (char *filename, int line_number) return 0; } if (!server_new (cfg_server.name, - cfg_server.autoconnect, cfg_server.address, cfg_server.port, + cfg_server.autoconnect, 0, cfg_server.address, cfg_server.port, cfg_server.password, cfg_server.nick1, cfg_server.nick2, cfg_server.nick3, cfg_server.username, cfg_server.realname, cfg_server.command, cfg_server.autojoin)) @@ -1194,23 +1194,26 @@ config_write (char *config_name) for (ptr_server = irc_servers; ptr_server; ptr_server = ptr_server->next_server) { - fprintf (file, "\n[server]\n"); - fprintf (file, "server_name=%s\n", ptr_server->name); - fprintf (file, "server_autoconnect=%s\n", - (ptr_server->autoconnect) ? "on" : "off"); - fprintf (file, "server_address=%s\n", ptr_server->address); - fprintf (file, "server_port=%d\n", ptr_server->port); - fprintf (file, "server_password=%s\n", - (ptr_server->password) ? ptr_server->password : ""); - fprintf (file, "server_nick1=%s\n", ptr_server->nick1); - fprintf (file, "server_nick2=%s\n", ptr_server->nick2); - fprintf (file, "server_nick3=%s\n", ptr_server->nick3); - fprintf (file, "server_username=%s\n", ptr_server->username); - fprintf (file, "server_realname=%s\n", ptr_server->realname); - fprintf (file, "server_command=%s\n", - (ptr_server->command) ? ptr_server->command : ""); - fprintf (file, "server_autojoin=%s\n", - (ptr_server->autojoin) ? ptr_server->autojoin : ""); + if (!ptr_server->command_line) + { + fprintf (file, "\n[server]\n"); + fprintf (file, "server_name=%s\n", ptr_server->name); + fprintf (file, "server_autoconnect=%s\n", + (ptr_server->autoconnect) ? "on" : "off"); + fprintf (file, "server_address=%s\n", ptr_server->address); + fprintf (file, "server_port=%d\n", ptr_server->port); + fprintf (file, "server_password=%s\n", + (ptr_server->password) ? ptr_server->password : ""); + fprintf (file, "server_nick1=%s\n", ptr_server->nick1); + fprintf (file, "server_nick2=%s\n", ptr_server->nick2); + fprintf (file, "server_nick3=%s\n", ptr_server->nick3); + fprintf (file, "server_username=%s\n", ptr_server->username); + fprintf (file, "server_realname=%s\n", ptr_server->realname); + fprintf (file, "server_command=%s\n", + (ptr_server->command) ? ptr_server->command : ""); + fprintf (file, "server_autojoin=%s\n", + (ptr_server->autojoin) ? ptr_server->autojoin : ""); + } } fclose (file); diff --git a/weechat/src/irc/irc-server.c b/weechat/src/irc/irc-server.c index 6e6a014be..88318ff42 100644 --- a/weechat/src/irc/irc-server.c +++ b/weechat/src/irc/irc-server.c @@ -59,6 +59,7 @@ server_init (t_irc_server *server) { server->name = NULL; server->autoconnect = 0; + server->command_line = 0; server->address = NULL; server->port = -1; server->password = NULL; @@ -80,6 +81,68 @@ server_init (t_irc_server *server) server->last_channel = NULL; } +/* + * server_init_with_url: init a server with url of this form: + * irc://nick:pass@irc.toto.org:6667 + * returns: 0 = ok + * -1 = invalid syntax + */ + +int +server_init_with_url (char *irc_url, t_irc_server *server) +{ + char *url, *pos_address, *pos, *pos2; + + server_init (server); + if (strncasecmp (irc_url, "irc://", 6) != 0) + return -1; + url = strdup (irc_url); + pos_address = strchr (url, '@'); + if (!pos_address || !pos_address[1]) + { + free (url); + return -1; + } + pos_address[0] = '\0'; + pos_address++; + pos = url + 6; + if (!pos[0]) + { + free (url); + return -1; + } + pos2 = strchr (pos, ':'); + if (pos2) + { + pos2[0] = '\0'; + server->password = strdup (pos2 + 1); + } + server->nick1 = strdup (pos); + + pos2 = strchr (pos_address, ':'); + if (pos2) + { + pos2[0] = '\0'; + server->port = atoi (pos2 + 1); + } + server->name = strdup (pos_address); + server->address = strdup (pos_address); + + free (url); + + /* some default values */ + if (server->port < 0) + server->port = DEFAULT_IRC_PORT; + server->nick2 = (char *) malloc (strlen (server->nick1) + 2); + strcpy (server->nick2, server->nick1); + server->nick2 = strcat (server->nick2, "1"); + server->nick3 = (char *) malloc (strlen (server->nick1) + 2); + strcpy (server->nick3, server->nick1); + server->nick3 = strcat (server->nick3, "2"); + + return 0; +} + /* * server_alloc: allocate a new server and add it to the servers queue */ @@ -193,8 +256,8 @@ server_free_all () */ t_irc_server * -server_new (char *name, int autoconnect, char *address, int port, - char *password, char *nick1, char *nick2, char *nick3, +server_new (char *name, int autoconnect, int command_line, char *address, + int port, char *password, char *nick1, char *nick2, char *nick3, char *username, char *realname, char *command, char *autojoin) { t_irc_server *new_server; @@ -216,6 +279,7 @@ server_new (char *name, int autoconnect, char *address, int port, { new_server->name = strdup (name); new_server->autoconnect = autoconnect; + new_server->command_line = command_line; new_server->address = strdup (address); new_server->port = port; new_server->password = (password) ? strdup (password) : strdup (""); @@ -574,14 +638,15 @@ server_connect (t_irc_server *server) */ void -server_auto_connect () +server_auto_connect (int command_line) { t_irc_server *ptr_server; for (ptr_server = irc_servers; ptr_server; ptr_server = ptr_server->next_server) { - if (ptr_server->autoconnect) + if ( ((command_line) && (ptr_server->command_line)) + || ((!command_line) && (ptr_server->autoconnect)) ) { gui_window_new (ptr_server, NULL, 1); if (server_connect (ptr_server)) diff --git a/weechat/src/irc/irc.h b/weechat/src/irc/irc.h index c1b761e35..f050ce86a 100644 --- a/weechat/src/irc/irc.h +++ b/weechat/src/irc/irc.h @@ -34,6 +34,8 @@ #define CHANNEL_PREFIX "#&+!" +#define DEFAULT_IRC_PORT 6667 + /* nick types */ typedef struct t_irc_nick t_irc_nick; @@ -78,6 +80,7 @@ struct t_irc_server /* user choices */ char *name; /* name of server (only for display) */ int autoconnect; /* = 1 if auto connect at startup */ + int command_line; /* server was given on command line */ char *address; /* address of server (IP or name) */ int port; /* port for server (6667 by default) */ char *password; /* password for server */ @@ -140,17 +143,18 @@ extern t_irc_channel *current_channel; /* server functions (irc-server.c) */ extern void server_init (t_irc_server *); +extern int server_init_with_url (char *, t_irc_server *); extern t_irc_server *server_alloc (); extern void server_destroy (t_irc_server *); extern void server_free (t_irc_server *); extern void server_free_all (); -extern t_irc_server *server_new (char *, int, char *, int, char *, char *, +extern t_irc_server *server_new (char *, int, int, char *, int, char *, char *, char *, char *, char *, char *, char *, char *); extern int server_send (t_irc_server *, char *, int); extern int server_sendf (t_irc_server *, char *, ...); extern void server_recv (t_irc_server *); extern int server_connect (); -extern void server_auto_connect (); +extern void server_auto_connect (int); extern void server_disconnect (t_irc_server *); extern void server_disconnect_all (); extern t_irc_server *server_search (char *);