monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] [PATCH] New lua command execute_redirout which executes


From: Daniel Dickinson
Subject: [Monotone-devel] [PATCH] New lua command execute_redirout which executes an os command and captures standard output
Date: Mon, 14 Aug 2006 01:00:18 -0400

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

The following diff adds a new command for use in lua hooks. The command
is called execute_redirout.  I chose the name based on spawn_redir and
execute.  execute_redirout executes an os command and captures standard
output and returns it (and a success/failure indicator).  The win32
code is completely untested (not even compiled) because I have not
win32 development system to try it on.  Also, I couldn't figure out how
to get mtn diff to not include the .po files, which aren't really
relevant and the only changes are the line numbers of the strings,
which should be automagically updated anyway.

Comments on the code are welcome, and I'll make any changes, hopefully
quickly enough to get into 0.29.

Cheers,

Daniel

<diff>
# 
# 
# add_file "examples/execute_redirout_test.lua"
#  content [6959e69b5417e1633a6ac2fcde3e6bb7944109b2]
# 
# patch "constants.hh"
#  from [323249b08f5a03e2e6f63b4c72f02bbc0260547a]
#    to [d64bac19429c3a40536e3bd11017017ca25b5077]
# 
# patch "luaext_platform.cc"
#  from [d6b2a9e14b19d3fe6bc6105f3574048a333b118b]
#    to [186f18019b766de62254ea6e1a53dd82c08ac00b]
# 
# patch "platform.hh"
#  from [ab4ecd686f732703d28b571a2caf8939cebe86cf]
#    to [851f5e8751c03d5c9e76fc44e9c69b2748b0856c]
# 
# patch "po/de.po"
#  from [65a4cfd3f7d1b4048d8103efcbfee60b414d80bf]
#    to [3c6406c9ac11abf7f31a5900b462eb6fa145bf9e]
# 
# patch "po/fr.po"
#  from [0e4fcaee91ffc866e2843206d48a6d066b6c0433]
#    to [bf245fb71c1b9434589707f0443d3cb42c358e8d]
# 
# patch "po/it.po"
#  from [74b73f1b2e2414b6ec491de313dc3af19da6880a]
#    to [4c9ee2f0cca2defbb4efe34a87bac4fef2a3f567]
# 
# patch "po/ja.po"
#  from [93fbc1f52b7dbc2c9aeb397879a909369734be85]
#    to [46f9111d210f21e662105a3431daa0b021ec8fe6]
# 
# patch "po/pt_BR.po"
#  from [8aa4e56407b0812cc4f066a06eac6520866f26ae]
#    to [087e116ba9976e9f315494204de348a8d1ea996d]
# 
# patch "po/sv.po"
#  from [532b8080a6715b13809e53f972fed77c588cea12]
#    to [ce0b2377e75eb56ad85e333a4c3a50caf422987a]
# 
# patch "std_hooks.lua"
#  from [9c74f2c3a134625e54d6dac5f6aeaa05508e85bc]
#    to [42f3bf1d7d2c23733cf732bf15f878a1b7eeb478]
# 
# patch "unix/process.cc"
#  from [04e4acb200ae781f7b94bef190f2972179504424]
#    to [3fd0f14d7534c919df95b2133ca64e4f27f67cff]
# 
# patch "win32/process.cc"
#  from [993e5bdc06b7b7aa5fa5236e635bc97f37020968]
#    to [43710478f0daed3c0516e65b857fe8964342266b]
# 
============================================================
- --- examples/execute_redirout_test.lua        
6959e69b5417e1633a6ac2fcde3e6bb7944109b2
+++ examples/execute_redirout_test.lua  6959e69b5417e1633a6ac2fcde3e6bb7944109b2
@@ -0,0 +1,5 @@
+function ignore_file(name)
+   local ret, out = execute_redirout('echo', 'doing a capture of stdout for an 
os command')
+   print('executed echo getting: ' .. out)
+   return false
+end 
============================================================
- --- constants.hh      323249b08f5a03e2e6f63b4c72f02bbc0260547a
+++ constants.hh        d64bac19429c3a40536e3bd11017017ca25b5077
@@ -157,6 +157,10 @@ namespace constants
   extern std::string const binary_encoding;
   extern std::string const default_encoding;
   extern std::string const manual_merge_attribute;
+
+  // win32 spawn and catch output
+  extern size_t const tempdirname_buffer_size;
+  extern size_t const tempfilename_buffer_size;
 }
 
 // Local Variables:
============================================================
- --- luaext_platform.cc        d6b2a9e14b19d3fe6bc6105f3574048a333b118b
+++ luaext_platform.cc  186f18019b766de62254ea6e1a53dd82c08ac00b
@@ -1,7 +1,8 @@
 
 #include "lua.hh"
 
 #include <signal.h>
+#include <string>
 
 #include "platform.hh"
 
@@ -74,6 +75,28 @@ LUAEXT(spawn_redirected, )
   return 1;
 }
 
+LUAEXT(execute_redirout, )
+{
+  std::string out;
+  int n = -lua_gettop(L);
+  const char *path = luaL_checkstring(L, n);
+  n = -n;
+  char **argv = (char**)malloc((n+1)*sizeof(char*));
+  int i;
+  pid_t ret;
+  if (argv==NULL)
+    return 0;
+  argv[0] = (char*)path;
+  for (i=1; i<n; i++) argv[i] = (char*)luaL_checkstring(L, -(n - i));
+  argv[i] = NULL;
+
+  ret = process_execute_redirout(out, argv);
+  free(argv);
+  lua_pushnumber(L, ret);
+  lua_pushstring(L, out.c_str());
+  return 2;
+}
+
 LUAEXT(wait, )
 {
   pid_t pid = static_cast<pid_t>(luaL_checknumber(L, -1));
============================================================
- --- platform.hh       ab4ecd686f732703d28b571a2caf8939cebe86cf
+++ platform.hh 851f5e8751c03d5c9e76fc44e9c69b2748b0856c
@@ -29,6 +29,8 @@ pid_t process_spawn_redirected(char cons
                                char const * out,
                                char const * err,
                                char const * const argv[]);
+int process_execute_redirout(std::string & output, 
+                        char const * const argv[]);
 int process_wait(pid_t pid, int *res, int timeout = -1);// default infinite
 int process_kill(pid_t pid, int signal);
 int process_sleep(unsigned int seconds);
============================================================
- --- po/de.po  65a4cfd3f7d1b4048d8103efcbfee60b414d80bf
+++ po/de.po    3c6406c9ac11abf7f31a5900b462eb6fa145bf9e
@@ -28,7 +28,7 @@ msgstr ""
 msgstr ""
 "Project-Id-Version: de\n"
 "Report-Msgid-Bugs-To: \n"
- -"POT-Creation-Date: 2006-07-31 07:24+0200\n"
+"POT-Creation-Date: 2006-08-13 22:32-0400\n"
 "PO-Revision-Date: 2006-07-31 07:31+0100\n"
 "Last-Translator: Thomas Keller <address@hidden>\n"
 "Language-Team: Deutsch <address@hidden>\n"
@@ -40,57 +40,62 @@ msgstr ""
 "X-Poedit-Basepath: ..\n"
 "X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,175,-1,-1,-1\n"
 
- -#: app_state.cc:141
+#: app_state.cc:142
 #, c-format
 msgid "workspace required but not found%s%s"
 msgstr "Arbeitsverzeichnis benötigt, jedoch nicht gefunden%s%s"
 
- -#: app_state.cc:149
+#: app_state.cc:150
 #, c-format
 msgid "invalid directory ''"
 msgstr "ungültiges Verzeichnis ''"
 
- -#: app_state.cc:157
+#: app_state.cc:158
 #, c-format
 msgid "monotone bookkeeping directory '%s' already exists in '%s'"
 msgstr "Das monotone-Systemverzeichnis '%s' existiert bereits in '%s'"
 
- -#: app_state.cc:238
+#: app_state.cc:239
 #, c-format
 msgid "search root '%s' does not exist"
 msgstr "Wurzel der Suche '%s' existiert nicht"
 
- -#: app_state.cc:239
+#: app_state.cc:240
 #, c-format
 msgid "search root '%s' is not a directory\n"
 msgstr "Wurzel der Suche '%s' ist kein Verzeichnis\n"
 
- -#: app_state.cc:273
+#: app_state.cc:274
 #, c-format
 msgid "failed to parse date string '%s': %s"
 msgstr "konnte Zeichenkette '%s' nicht parsen: %s"
 
- -#: app_state.cc:288
+#: app_state.cc:289
 #, c-format
 msgid "negative depth not allowed\n"
 msgstr "negative Tiefe nicht erlaubt\n"
 
- -#: app_state.cc:296
+#: app_state.cc:297
 #, c-format
 msgid "illegal argument to --last: cannot be zero or negative\n"
 msgstr "ungültiges Argument für --last: kann nicht null oder negativ sein\n"
 
- -#: app_state.cc:304
+#: app_state.cc:305
 #, c-format
 msgid "illegal argument to --next: cannot be zero or negative\n"
 msgstr "ungültiges Argument für --next: kann nicht null oder negativ sein\n"
 
- -#: app_state.cc:440
+#: app_state.cc:389
+#, fuzzy, c-format
+msgid "illegal argument to --automate-stdio-size: cannot be zero or negative\n"
+msgstr "ungültiges Argument für --last: kann nicht null oder negativ sein\n"
+
+#: app_state.cc:449
 #, c-format
 msgid "Failed to read options file %s"
 msgstr "Konnte Optionen-Datei %s nicht lesen"
 
- -#: app_state.cc:457
+#: app_state.cc:466
 #, c-format
 msgid "Failed to write options file %s"
 msgstr "Konnte Optionen-Datei %s nicht schreiben"
@@ -174,27 +179,27 @@ msgstr ""
 "mehrere Zweigzertifikate für Revision %s gefunden, bitte geben Sie einen "
 "Zweignamen an"
 
- -#: cmd_automate.cc:205
+#: cmd_automate.cc:206
 #, c-format
 msgid "read from client failed with error code: %d"
 msgstr "Lesen vom Client schlug fehl, Fehlercode: %d"
 
- -#: cmd_automate.cc:248
+#: cmd_automate.cc:249
 #, c-format
 msgid "Bad input to automate stdio"
 msgstr "Falsche Eingabe für 'automate stdio'"
 
- -#: cmd_automate.cc:301
+#: cmd_automate.cc:303
 msgid "automation"
 msgstr "Automatisierung"
 
- -#: cmd_automate.cc:302
+#: cmd_automate.cc:304
 msgid "automation interface"
 msgstr "Schnittstelle für die Automatisierung"
 
 #: cmd_db.cc:35 cmd_diff_log.cc:387 cmd_diff_log.cc:419 cmd_diff_log.cc:421
 #: cmd_files.cc:138 cmd_files.cc:200 cmd_merging.cc:146 cmd_merging.cc:699
- -#: cmd_merging.cc:714 cmd_merging.cc:717 cmd_ws_commit.cc:453 commands.cc:393
+#: cmd_merging.cc:714 cmd_merging.cc:717 cmd_ws_commit.cc:453 commands.cc:433
 #, c-format
 msgid "no such revision '%s'"
 msgstr "Revision nicht gefunden: '%s'"
@@ -276,7 +281,7 @@ msgstr "keine Variable mit dem Namen %s 
 
 #: cmd_db.cc:152 cmd_diff_log.cc:331 cmd_diff_log.cc:543 cmd_files.cc:114
 #: cmd_files.cc:181 cmd_list.cc:448 cmd_merging.cc:636 cmd_ws_commit.cc:328
- -#: commands.cc:248
+#: commands.cc:253
 msgid "informative"
 msgstr "Informativ"
 
@@ -1514,8 +1519,8 @@ msgstr "Datei '%s' wurde während des Ei
 msgstr "Datei '%s' wurde während des Einpflegens geändert, breche ab"
 
 #: cmd_ws_commit.cc:774
- -#, c-format
- -msgid "Your database is missing version %1% of file '%2%'"
+#, fuzzy, c-format
+msgid "Your database is missing version %s of file '%s'"
 msgstr "Ihrer Datenbank fehlt die Version %1% der Datei '%2%'"
 
 #: cmd_ws_commit.cc:820
@@ -1551,53 +1556,53 @@ msgstr "aktualisiere den 'inodeprint'-Ca
 msgid "refresh the inodeprint cache"
 msgstr "aktualisiere den 'inodeprint'-Cache"
 
- -#: commands.cc:125 commands.cc:227
+#: commands.cc:130 commands.cc:232
 #, c-format
 msgid "unknown command '%s'"
 msgstr "unbekanntes Kommando '%s'"
 
- -#: commands.cc:136
+#: commands.cc:141
 #, c-format
 msgid "command '%s' has multiple ambiguous expansions:\n"
 msgstr "Das Kommando '%s' kann auf mehrere Arten erweitert werden:\n"
 
- -#: commands.cc:169
+#: commands.cc:174
 msgid "commands:"
 msgstr "Kommandos:"
 
- -#: commands.cc:248
+#: commands.cc:253
 msgid "command [ARGS...]"
 msgstr "Kommando [ARGUMENTE...]"
 
- -#: commands.cc:248
+#: commands.cc:253
 msgid "display command help"
 msgstr "zeige Hilfe für Kommando"
 
- -#: commands.cc:400
+#: commands.cc:440
 #, c-format
 msgid "expanding selection '%s'"
 msgstr "expandiere Auswahl '%s'"
 
- -#: commands.cc:408
+#: commands.cc:448
 #, c-format
 msgid "no match for selection '%s'"
 msgstr "kein Treffer für Auswahl '%s'"
 
- -#: commands.cc:414
+#: commands.cc:454
 #, c-format
 msgid "expanded to '%s'"
 msgstr "erweitert zu '%s'"
 
- -#: commands.cc:431
+#: commands.cc:471
 #, c-format
 msgid "selection '%s' has multiple ambiguous expansions: \n"
 msgstr "Die Auswahl '%s' kann auf mehrere Arten erweitert werden: \n"
 
- -#: commands.cc:448
+#: commands.cc:488
 msgid "note: "
 msgstr "Hinweis: "
 
- -#: commands.cc:449
+#: commands.cc:489
 #, c-format
 msgid ""
 "branch '%s' has multiple heads\n"
@@ -1606,7 +1611,7 @@ msgstr ""
 "Der Zweig '%s' hat mehrere Köpfe.\n"
 "Eventuell möchten Sie '%s merge' ausführen."
 
- -#: commands.cc:467
+#: commands.cc:507
 #, c-format
 msgid "--message and --message-file are mutually exclusive"
 msgstr "--message und --message-file können nicht zusammen verwendet werden"
@@ -1765,8 +1770,8 @@ msgstr "Revision %s ungültige Signatur 
 msgstr "Revision %s ungültige Signatur in %s Zertifikat von Schlüssel %s"
 
 #: database_check.cc:774
- -#, c-format
- -msgid "revision %1% missing %2% cert"
+#, fuzzy, c-format
+msgid "revision %s missing %s cert"
 msgstr "Revision %1% fehlt Zertifikat %2%"
 
 #: database_check.cc:783
@@ -1903,7 +1908,7 @@ msgstr "Datenbank ist in Ordnung"
 msgid "database is good"
 msgstr "Datenbank ist in Ordnung"
 
- -#: database.cc:156
+#: database.cc:157
 #, c-format
 msgid ""
 "layout of database %s doesn't match this version of monotone\n"
@@ -1917,12 +1922,12 @@ msgstr ""
 "(Dieser Vorgang ist nicht umkehrbar; Sie sollten vorher eine Sicherung "
 "machen.)"
 
- -#: database.cc:170
+#: database.cc:171
 #, c-format
 msgid "this database already contains rosters"
 msgstr "diese Datenbank enthält bereits Kataloge"
 
- -#: database.cc:190
+#: database.cc:191
 #, c-format
 msgid ""
 "database %s contains revisions but no rosters\n"
@@ -1941,7 +1946,7 @@ msgstr ""
 "  und holen Sie sich dann eine aktualisierte Kopie.\n"
 "Wir bitten die Unanehmlichkeiten zu entschuldigen."
 
- -#: database.cc:209
+#: database.cc:210
 #, c-format
 msgid ""
 "database %s contains manifests but no revisions\n"
@@ -1952,19 +1957,19 @@ msgstr ""
 "Dies ist eine sehr alte Datenbank, die erneuert werden muss.\n"
 "Bitte konsultieren Sie die Datei README.changesets für Details."
 
- -#: database.cc:245
+#: database.cc:246
 #, c-format
 msgid "unable to probe database version in file %s"
 msgstr "kann Datenbankversion der Datei %s nicht bestimmen"
 
- -#: database.cc:252
+#: database.cc:253
 #, c-format
 msgid "database %s is not an sqlite version 3 file, try dump and reload"
 msgstr ""
 "Datenbank %s ist keine SQLite-Version-3-Datei, versuchen Sie ein Export und "
 "anschliessenden Import"
 
- -#: database.cc:281 schema_migration.cc:200
+#: database.cc:282 schema_migration.cc:200
 msgid ""
 "make sure database and containing directory are writeable\n"
 "and you have not run out of disk space"
@@ -1973,7 +1978,7 @@ msgstr ""
 "schreibbar sind\n"
 "und das noch genügend Speicherplatz verfügbar ist."
 
- -#: database.cc:287 schema_migration.cc:205
+#: database.cc:288 schema_migration.cc:205
 #, c-format
 msgid ""
 "sqlite error: %s\n"
@@ -1982,12 +1987,12 @@ msgstr ""
 "SQLite-Fehler: %s\n"
 "%s"
 
- -#: database.cc:332
+#: database.cc:333
 #, c-format
 msgid "could not initialize database: %s: already exists"
 msgstr "Konnte Datenbank nicht initialisieren: %s existiert bereits"
 
- -#: database.cc:337
+#: database.cc:338
 #, c-format
 msgid ""
 "existing (possibly stale) journal file '%s' has same stem as new database '%"
@@ -1998,12 +2003,12 @@ msgstr ""
 "s'\n"
 "Datenbankerstellung abgebrochen"
 
- -#: database.cc:487
+#: database.cc:488
 #, c-format
 msgid "cannot create %s; it already exists"
 msgstr "Kann %s nicht erzeugen; es existiert bereits"
 
- -#: database.cc:564
+#: database.cc:565
 #, c-format
 msgid ""
 "schema version    : %s\n"
@@ -2052,72 +2057,72 @@ msgstr ""
 "  Seitengröße          : %u\n"
 "  Cache-Größe          : %u\n"
 
- -#: database.cc:626
+#: database.cc:627
 #, c-format
 msgid "database schema version: %s"
 msgstr "Datenbank Schema-Version: %s"
 
- -#: database.cc:703
+#: database.cc:704
 #, c-format
 msgid "multiple statements in query: %s\n"
 msgstr "mehrere Angaben in Anfrage: %s\n"
 
- -#: database.cc:709
+#: database.cc:710
 #, c-format
 msgid "wanted %d columns got %d in query: %s"
 msgstr "erwarte %d, erhielt %d Spalten in Anfrage: %s"
 
- -#: database.cc:768
+#: database.cc:769
 #, c-format
 msgid "null result in query: %s"
 msgstr "null-Ergebnis in Anfrage: %s"
 
- -#: database.cc:786
+#: database.cc:787
 #, c-format
 msgid "wanted %d rows got %d in query: %s"
 msgstr "erwarte %d, erhielt %d Zeilen in Anfrage: %s"
 
- -#: database.cc:1926
+#: database.cc:1950
 #, c-format
 msgid "another key with name '%s' already exists"
 msgstr "ein anderer Schlüssel mit dem Namen '%s' existiert bereits"
 
- -#: database.cc:2958
+#: database.cc:2982
 #, c-format
 msgid "no database specified"
 msgstr "keine Datenbank spezifiziert"
 
- -#: database.cc:2966
+#: database.cc:2990
 #, c-format
 msgid "database %s does not exist"
 msgstr "Datenbank %s existiert nicht"
 
- -#: database.cc:2967
+#: database.cc:2991
 #, c-format
 msgid "%s is a directory, not a database"
 msgstr "%s ist ein Verzeichnis, keine Datenbank"
 
- -#: database.cc:2992
+#: database.cc:3016
 #, c-format
 msgid "could not open database '%s': %s"
 msgstr "Konnte Datenbank '%s' nicht öffnen: %s"
 
- -#: diff_patch.cc:608
+#: diff_patch.cc:610
 #, c-format
 msgid "file '%s' does not exist in workspace"
 msgstr "Datei '%s' existiert nicht im Arbeitsbereich"
 
- -#: diff_patch.cc:609
+#: diff_patch.cc:611
 #, c-format
 msgid "'%s' in workspace is a directory, not a file"
 msgstr "'%s' im Arbeitsbereich ist ein Verzeichnis, keine Datei"
 
- -#: diff_patch.cc:613
+#: diff_patch.cc:615
 #, c-format
 msgid "file %s in workspace has id %s, wanted %s"
 msgstr "Datei %s im Arbeitsbereich hat die ID %s, erwartete %s"
 
- -#: diff_patch.cc:734
+#: diff_patch.cc:736
 #, c-format
 msgid ""
 "help required for 3-way merge\n"
@@ -2328,7 +2333,7 @@ msgstr "Das Verzeichnis '%s' existiert n
 msgid "Directory '%s' does not exist"
 msgstr "Das Verzeichnis '%s' existiert nicht"
 
- -#: lua.cc:480 rcs_import.cc:1235 work.cc:480
+#: lua.cc:480 rcs_import.cc:1235 work.cc:474
 #, c-format
 msgid "'%s' is not a directory"
 msgstr "'%s' ist kein Verzeichnis"
@@ -2338,14 +2343,6 @@ msgstr "lua-Fehler während dem Laden de
 msgid "lua error while loading rcfile '%s'"
 msgstr "lua-Fehler während dem Laden der rc-Datei '%s'"
 
- -#: main.cc:326
- -msgid "interrupted"
- -msgstr "unterbrochen"
- -
- -#: main.cc:330
- -msgid "terminated by signal"
- -msgstr "beendet durch Signal"
- -
 #: merkle_tree.cc:290
 #, c-format
 msgid "node level is %d, exceeds maximum %d"
@@ -2356,240 +2353,244 @@ msgstr "falsch zugeordneter Knoten-Hashw
 msgid "mismatched node hash value %s, expected %s"
 msgstr "falsch zugeordneter Knoten-Hashwert %s, %s erwartet"
 
- -#: monotone.cc:65
+#: monotone.cc:90
 msgid "select branch cert for operation"
 msgstr "wähle das Zweigzertifikat für die Operation aus"
 
- -#: monotone.cc:66
+#: monotone.cc:91
 msgid "select revision id for operation"
 msgstr "wähle die Revisions-ID für die Operation aus"
 
- -#: monotone.cc:67
+#: monotone.cc:92
 msgid "set commit changelog message"
 msgstr "setze Nachricht für Änderungshistorie"
 
- -#: monotone.cc:68
+#: monotone.cc:93
 msgid "set filename containing commit changelog message"
 msgstr ""
 "setze Dateinamen der Datei, die die Nachricht für die Änderungshistorie "
 "beinhaltet"
 
- -#: monotone.cc:69
+#: monotone.cc:94
 msgid "override date/time for commit"
 msgstr "übergehe Datums-/Zeitangabe für Einpflegen "
 
- -#: monotone.cc:70
+#: monotone.cc:95
 msgid "override author for commit"
 msgstr "übergehe Autorenangabe für Einpflegen"
 
- -#: monotone.cc:71
+#: monotone.cc:96
 msgid "limit the number of levels of directories to descend"
 msgstr "beschränke die Anzahl der einbezogenen Verzeichnisebenen"
 
- -#: monotone.cc:72
+#: monotone.cc:97
 msgid "limit log output to the last number of entries"
 msgstr "beschränke Logausgabe auf die letzte Anzahl von Einträgen"
 
- -#: monotone.cc:73
+#: monotone.cc:98
 msgid "limit log output to the next number of entries"
 msgstr "beschränke die Logausgabe auf die nächstfolgende Anzahl von 
Einträgen"
 
- -#: monotone.cc:74
+#: monotone.cc:99
 msgid "record process id of server"
 msgstr "merke Prozess-ID des Serverprozesses"
 
- -#: monotone.cc:75
+#: monotone.cc:100
 msgid "print a brief version of the normal output"
 msgstr "gebe eine Kurzversion der normalen Ausgabe aus"
 
- -#: monotone.cc:76
+#: monotone.cc:101
 msgid "print diffs along with logs"
 msgstr "gebe Differenzen mit den entsprechenden Logeinträgen aus"
 
- -#: monotone.cc:77
+#: monotone.cc:102
 msgid "exclude merges when printing logs"
 msgstr "schließe Vereinigungen bei der Ausgabe der Logeinträge aus"
 
- -#: monotone.cc:78
+#: monotone.cc:103
 msgid "use the current arguments as the future default"
 msgstr "benutze die derzeitigen Argumente in der Zukunft als Standard"
 
- -#: monotone.cc:79
+#: monotone.cc:104
 msgid "leave out anything described by its argument"
 msgstr "lasse etwas durch das Argument beschriebene heraus"
 
- -#: monotone.cc:80
+#: monotone.cc:105
 msgid "use unified diff format"
 msgstr "benutze das 'unified diff'-Format"
 
- -#: monotone.cc:81
+#: monotone.cc:106
 msgid "use context diff format"
 msgstr "benutze das 'context diff'-Format"
 
- -#: monotone.cc:82
+#: monotone.cc:107
 msgid "use external diff hook for generating diffs"
 msgstr "benutze externe 'diff'-Anwendung für die Erstellung von Differenzen"
 
- -#: monotone.cc:83
+#: monotone.cc:108
 msgid "argument to pass external diff hook"
 msgstr "Argument für externe 'diff'-Anwendung"
 
- -#: monotone.cc:84
+#: monotone.cc:109
 msgid "do not show the function containing each block of changes"
 msgstr "zeige nicht die Funktion, die den jeweiligen Änderungsblock 
beinhaltet"
 
- -#: monotone.cc:85
+#: monotone.cc:110
 msgid "another name for --no-show-encloser (for compatibility with GNU diff)"
 msgstr ""
 "anderer Name für '--no-show-encloser' (für Kompatibilität mit GNU diff)"
 
- -#: monotone.cc:86
+#: monotone.cc:111
 msgid "perform the associated file operation"
 msgstr "führe die zusammenhängende Dateioperation aus"
 
- -#: monotone.cc:87
+#: monotone.cc:112
 msgid "address:port to listen on (default :4691)"
 msgstr "Adresse:Port, auf den die Anwendung lauschen soll (Standard: :4691)"
 
- -#: monotone.cc:88
+#: monotone.cc:113
 msgid "perform the operations for files missing from workspace"
 msgstr "führe diese Operationen für fehlende Dateien im Arbeitsbereich aus"
 
- -#: monotone.cc:89
+#: monotone.cc:114
 msgid "perform the operations for unknown files from workspace"
 msgstr "führe diese Operation für unbekannte Dateien im Arbeitsbereich aus"
 
- -#: monotone.cc:90
+#: monotone.cc:115
 msgid "push the specified key even if it hasn't signed anything"
 msgstr "exportiere diesen Schlüssel, selbst wenn damit nichts signiert wurde"
 
- -#: monotone.cc:91
+#: monotone.cc:116
 msgid "serve netsync on stdio"
 msgstr "bediene netsync über stdio"
 
- -#: monotone.cc:92
+#: monotone.cc:117
 msgid "disable transport authentication"
 msgstr "deaktiviere Transport-Authentifizierung"
 
- -#: monotone.cc:93
+#: monotone.cc:118
 msgid "when rosterifying, drop attrs entries with the given key"
 msgstr ""
 "während der Katalogisierung, entferne 'attrs'-Einträge mit dem gegebenen "
 "Schlüssel"
 
- -#: monotone.cc:94
+#: monotone.cc:119
 msgid "exclude files when printing logs"
 msgstr "schließe Dateien bei der Ausgabe der Logeinträge aus"
 
- -#: monotone.cc:95
+#: monotone.cc:120
 msgid "also operate on the contents of any listed directories"
 msgstr "arbeite auch auf den Inhalten beliebiger aufgeführter Verzeichnisse"
 
- -#: monotone.cc:104
+#: monotone.cc:121
+msgid "block size in bytes for \"automate stdio\" output"
+msgstr ""
+
+#: monotone.cc:130
 msgid "print debug log to stderr while running"
 msgstr "schreibe das Debug-Log nach stderr während der Ausführung"
 
- -#: monotone.cc:105
+#: monotone.cc:131
 msgid "file to dump debugging log to, on failure"
 msgstr "Datei, in die das Debug-Log im Fehlerfall geschrieben werden soll"
 
- -#: monotone.cc:106
+#: monotone.cc:132
 msgid "file to write the log to"
 msgstr "Datei, in die das Log geschrieben wird"
 
- -#: monotone.cc:107
+#: monotone.cc:133
 msgid "suppress verbose, informational and progress messages"
 msgstr "unterdrücke wortreiche, informelle und Fortschrittsmeldungen"
 
- -#: monotone.cc:108
+#: monotone.cc:134
 msgid "suppress warning, verbose, informational and progress messages"
 msgstr ""
 "unterdrücke Warnungen, wortreiche, informelle und Fortschrittsmeldungen"
 
- -#: monotone.cc:109
+#: monotone.cc:135
 msgid "display help message"
 msgstr "zeige Hilfemeldung an"
 
- -#: monotone.cc:110
+#: monotone.cc:136
 msgid "print version number, then exit"
 msgstr "zeige Versionsinformationen an und beende dann das Programm"
 
- -#: monotone.cc:111
+#: monotone.cc:137
 msgid "print detailed version number, then exit"
 msgstr ""
 "zeige detailierte Versionsinformationen an und beende dann das Programm"
 
- -#: monotone.cc:112
+#: monotone.cc:138
 msgid "insert command line arguments taken from the given file"
 msgstr "füge Kommandozeilenargumente aus der gegebenen Datei an"
 
- -#: monotone.cc:113
+#: monotone.cc:139
 msgid "set ticker style (count|dot|none)"
 msgstr "setzte 'Ticker'-Stil (count|dot|none)"
 
- -#: monotone.cc:114
+#: monotone.cc:140
 msgid "do not load standard lua hooks"
 msgstr "lade nicht die Standard-lua-Hooks"
 
- -#: monotone.cc:115
+#: monotone.cc:141
 msgid "do not load ~/.monotone/monotonerc or _MTN/monotonerc lua files"
 msgstr "lade nicht ~/.monotone/monotonerc oder _MTN/monotonerc lua-Dateien"
 
- -#: monotone.cc:116
+#: monotone.cc:142
 msgid "load extra rc file"
 msgstr "lade zusätzliche rc-Datei"
 
- -#: monotone.cc:117
+#: monotone.cc:143
 msgid "set key for signatures"
 msgstr "setze Schlüssel für Signaturen"
 
- -#: monotone.cc:118
+#: monotone.cc:144
 msgid "set name of database"
 msgstr "setze Namen der Datenbank"
 
- -#: monotone.cc:119
+#: monotone.cc:145
 msgid "limit search for workspace to specified root"
 msgstr ""
 "beschränke Suche nach der Arbeitsumgebung auf angegebene Verzeichniswurzel"
 
- -#: monotone.cc:120
+#: monotone.cc:146
 msgid "verbose completion output"
 msgstr "ausführliche Komplettierungsausgabe"
 
- -#: monotone.cc:121
+#: monotone.cc:147
 msgid "set location of key store"
 msgstr "setze Ort des Schlüsselbundes"
 
- -#: monotone.cc:122
+#: monotone.cc:148
 msgid "set location of configuration directory"
 msgstr "setze Verzeichnis des Konfigurationsverzeichnisses"
 
- -#: monotone.cc:226
+#: monotone.cc:183
 #, c-format
 msgid "problem parsing arguments from file %s: %s"
 msgstr "Problem beim Parsen der Argumente der Datei %s: %s"
 
- -#: monotone.cc:235
+#: monotone.cc:192
 #, c-format
 msgid "weird error when stuffing arguments read from %s: %s\n"
 msgstr ""
 "seltsamer Fehler beim Zusammenpacken der gelesen Argumente von %s: %s\n"
 
- -#: monotone.cc:331
+#: monotone.cc:226
 msgid "[OPTION...] command [ARGS...]\n"
 msgstr "[OPTION...] Kommando [Argumente...]\n"
 
- -#: monotone.cc:600
+#: monotone.cc:493
 #, c-format
 msgid "syntax error near the \"%s\" option: %s"
 msgstr "Syntaxfehler in der der Option \"%s\": %s"
 
- -#: monotone.cc:639
+#: monotone.cc:514
 #, c-format
 msgid "%s %s doesn't use the option %s"
 msgstr "%s %s benutzt die Option %s nicht"
 
- -#: monotone.cc:673
+#: monotone.cc:547
 #, c-format
 msgid "Options specific to '%s %s':"
 msgstr "Spezifische Optionen für '%s %s':"
@@ -3089,7 +3090,7 @@ msgstr ""
 "Das 'exclude branch'-Muster beinhaltet ein Quotierungszeichen:\n"
 "%s\n"
 
- -#: netsync.cc:3160 netsync.cc:3164
+#: netsync.cc:3163 netsync.cc:3167
 #, c-format
 msgid "network error: %s"
 msgstr "Netzwerk-Fehler: %s"
@@ -3292,30 +3293,30 @@ msgstr ""
 "Eine neuere Version von monotone wird benötigt, um diese Operation "
 "durchzuführen."
 
- -#: sanity.cc:126
+#: sanity.cc:154
 #, c-format
 msgid "fatal: formatter failed on %s:%d: %s"
 msgstr "Fataler Fehler: Formatierung schlug fehl bei %s:%d: %s"
 
- -#: sanity.cc:200
+#: sanity.cc:228
 msgid "misuse: "
 msgstr "falscher Gebrauch: "
 
- -#: sanity.cc:212
+#: sanity.cc:240
 msgid "error: "
 msgstr "Fehler: "
 
- -#: sanity.cc:220
+#: sanity.cc:248
 #, c-format
 msgid "%s:%d: invariant '%s' violated"
 msgstr "%s:%d: Invariante '%s' verletzt"
 
- -#: sanity.cc:233
+#: sanity.cc:261
 #, c-format
 msgid "%s:%d: index '%s' = %d overflowed vector '%s' with size %d\n"
 msgstr "%s:%d: Index '%s' = %d übergelaufener Vektor '%s' der Größe %d\n"
 
- -#: sanity.cc:254
+#: sanity.cc:282
 #, c-format
 msgid "Current work set: %i items\n"
 msgstr "Derzeitiger Arbeitsgruppe: %i Elemente\n"
@@ -3391,44 +3392,44 @@ msgstr "verschiebe Schlüssel '%s' von D
 msgid "moving key '%s' from database to %s"
 msgstr "verschiebe Schlüssel '%s' von Datenbank nach %s"
 
- -#: std_hooks.lua:37
+#: std_hooks.lua:48
 msgid "Press enter"
 msgstr "Drücken Sie die Eingabetaste"
 
- -#: std_hooks.lua:39
+#: std_hooks.lua:50
 msgid "Press enter when the subprocess has completed"
 msgstr "Drücken Sie die Eingabetaste, wenn der Unterprozess beendet ist"
 
- -#: ui.cc:126
+#: ui.cc:158
 #, c-format
 msgid "%.1f G"
 msgstr "%.1f G"
 
- -#: ui.cc:132
+#: ui.cc:164
 #, c-format
 msgid "%.1f M"
 msgstr "%.1f M"
 
- -#: ui.cc:138
+#: ui.cc:170
 #, c-format
 msgid "%.1f k"
 msgstr "%.1f k"
 
- -#: ui.cc:151
+#: ui.cc:183
 #, c-format
 msgid "%d/%d"
 msgstr "%d/%d"
 
- -#: ui.cc:156
+#: ui.cc:188
 #, c-format
 msgid "%d"
 msgstr "%d"
 
- -#: ui.cc:423
+#: ui.cc:465
 msgid "warning: "
 msgstr "Warnung: "
 
- -#: ui.cc:432
+#: ui.cc:476
 #, c-format
 msgid ""
 "fatal: %s\n"
@@ -3441,8 +3442,13 @@ msgstr ""
 "Bitte senden Sie diese, die Ausgabe von '%s --full-version',\n"
 "sowie eine Beschreibung Ihrer Tätigkeit an %s.\n"
 
- -#: ui.cc:493
+#: ui.cc:511
 #, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: ui.cc:587
+#, c-format
 msgid "failed to open log file '%s'"
 msgstr "konnte Logdatei '%s' nicht öffnen"
 
@@ -3506,162 +3512,168 @@ msgstr "übergehe %s, bereits im Arbeits
 msgid "skipping %s, already accounted for in workspace"
 msgstr "übergehe %s, bereits im Arbeitsbereich festgehalten"
 
- -#: work.cc:191
+#: work.cc:198
 #, c-format
 msgid "adding %s to workspace manifest"
 msgstr "füge %s dem Arbeitsbereich-Manifest hinzu"
 
- -#: work.cc:281
+#: work.cc:275
 #, c-format
 msgid "skipping %s, not currently tracked"
 msgstr "übergehe %s, wird derzeit nicht verfolgt"
 
- -#: work.cc:291
+#: work.cc:285
 #, c-format
 msgid "cannot remove %s/, it is not empty"
 msgstr "kann %s/ nicht entfernen, Verzeichnis ist nicht leer"
 
- -#: work.cc:302
+#: work.cc:296
 #, c-format
 msgid "dropping %s from workspace manifest"
 msgstr "entferne %s vom Arbeitsbereich-Manifest"
 
- -#: work.cc:365
+#: work.cc:359
 #, c-format
 msgid "destination dir %s/ does not exist in current revision"
 msgstr "Zielverzeichnis %s/ existiert nicht in der derzeitigen Revision"
 
- -#: work.cc:368
+#: work.cc:362
 #, c-format
 msgid "destination %s is an existing file in current revision"
 msgstr "Ziel %s ist eine existierende Datei in der derzeitigen Revision"
 
- -#: work.cc:378
+#: work.cc:372
 #, c-format
 msgid "empty path %s is not allowed"
 msgstr "leerer Pfad %s ist nicht erlaubt"
 
- -#: work.cc:392
+#: work.cc:386
 #, c-format
 msgid "%s does not exist in current revision"
 msgstr "%s existiert nicht in der derzeitigen Revision"
 
- -#: work.cc:395
+#: work.cc:389
 #, c-format
 msgid "destination %s already exists in current revision"
 msgstr "Ziel %s existiert bereits in der derzeitigen Revision"
 
- -#: work.cc:404
+#: work.cc:398
 #, c-format
 msgid "renaming %s to %s in workspace manifest"
 msgstr "benenne %s zu %s im Arbeitsbereich-Manifest um"
 
- -#: work.cc:429
+#: work.cc:423
 #, c-format
 msgid "%s doesn't exist in workspace, skipping"
 msgstr "%s existiert nicht im Arbeitsbereich, übergehe Aktion"
 
- -#: work.cc:433
+#: work.cc:427
 #, c-format
 msgid "destination %s already exists in workspace, skipping"
 msgstr "Ziel %s existiert bereits im Arbeitsbereich, übergehe Aktion"
 
- -#: work.cc:460
+#: work.cc:454
 #, c-format
 msgid "proposed new root directory '%s' is not versioned or does not exist"
 msgstr ""
 "das neu vorgeschlagene Wurzelverzeichnis '%s' ist nicht unter "
 "Versionkontrolle oder existiert nicht"
 
- -#: work.cc:462
+#: work.cc:456
 #, c-format
 msgid "proposed new root directory '%s' is not a directory"
 msgstr "das neu vorgeschlagene Wurzelverzeichnis '%s' ist kein Verzeichnis"
 
- -#: work.cc:467
+#: work.cc:461
 #, c-format
 msgid "proposed new root directory '%s' contains illegal path %s"
 msgstr ""
 "das neu vorgeschlagene Wurzelverzeichnis '%s' beinhaltet den ungültigen Pfad 
"
 "%s"
 
- -#: work.cc:477
+#: work.cc:471
 #, c-format
 msgid "directory '%s' is not versioned or does not exist"
 msgstr ""
 "das Verzeichnis '%s' ist nicht unter Versionskontrolle oder existiert nicht"
 
- -#: work.cc:483
+#: work.cc:477
 #, c-format
 msgid "'%s' is in the way"
 msgstr "'%s' ist im Weg"
 
- -#: work.cc:578
+#: work.cc:572
 #, c-format
 msgid "workspace is corrupt: %s does not exist"
 msgstr "Arbeitsbereich ist beschädigt: %s existiert nicht"
 
- -#: work.cc:579
+#: work.cc:573
 #, c-format
 msgid "workspace is corrupt: %s is a directory"
 msgstr "Arbeitsbereich ist beschädigt: %s ist ein Verzeichnis"
 
- -#: work.cc:589
+#: work.cc:583
 #, c-format
 msgid "Problem with workspace: %s is unreadable"
 msgstr "Problem mit Arbeitsbereich: %s ist nicht lesbar"
 
- -#: work.cc:615
+#: work.cc:609
 #, c-format
 msgid "base revision %s does not exist in database"
 msgstr "Basis-Revision %s existiert nicht in der Datenbank"
 
- -#: work.cc:924
+#: work.cc:918
 #, c-format
 msgid "dropping %s"
 msgstr "entferne %s"
 
- -#: work.cc:935 work.cc:946
+#: work.cc:929 work.cc:940
 #, c-format
 msgid "path %s already exists"
 msgstr "Pfad %s existiert bereits"
 
- -#: work.cc:968 work.cc:995
+#: work.cc:962 work.cc:989
 #, c-format
 msgid "adding %s"
 msgstr "füge %s hinzu"
 
- -#: work.cc:984
+#: work.cc:978
 #, c-format
 msgid "path '%s' already exists, cannot create"
 msgstr "Pfad '%s' existiert bereits, kann ihn nicht erzeugen"
 
- -#: work.cc:991
+#: work.cc:985
 #, c-format
 msgid "renaming %s to %s"
 msgstr "benenne %s nach %s um"
 
- -#: work.cc:1026
+#: work.cc:1020
 #, c-format
 msgid "file '%s' does not exist"
 msgstr "Datei '%s' existiert nicht"
 
- -#: work.cc:1027
+#: work.cc:1021
 #, c-format
 msgid "file '%s' is a directory"
 msgstr "Datei '%s' ist ein Verzeichnis"
 
- -#: work.cc:1032
+#: work.cc:1026
 #, c-format
 msgid "content of file '%s' has changed, not overwriting"
 msgstr ""
 "Inhalt der Datei '%s' hat sich geändert, Datei wird nicht überschrieben"
 
- -#: work.cc:1033
+#: work.cc:1027
 #, c-format
 msgid "modifying %s"
 msgstr "verändere %s"
 
+#~ msgid "interrupted"
+#~ msgstr "unterbrochen"
+
+#~ msgid "terminated by signal"
+#~ msgstr "beendet durch Signal"
+
 #~ msgid "bad input to parse_basic_io"
 #~ msgstr "Falsche Eingabe für parse_basic_io"
 
============================================================
- --- po/fr.po  0e4fcaee91ffc866e2843206d48a6d066b6c0433
+++ po/fr.po    bf245fb71c1b9434589707f0443d3cb42c358e8d
@@ -243,7 +243,7 @@ msgstr ""
 msgstr ""
 "Project-Id-Version: monotone 0.28\n"
 "Report-Msgid-Bugs-To: \n"
- -"POT-Creation-Date: 2006-08-02 16:49-0700\n"
+"POT-Creation-Date: 2006-08-13 22:32-0400\n"
 "PO-Revision-Date: 2006-07-25 19:57+0200\n"
 "Last-Translator: Benoît Dejean <address@hidden>\n"
 "Language-Team: Benoît Dejean <address@hidden>\n"
@@ -252,57 +252,62 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n>1;\n"
 
- -#: app_state.cc:141
+#: app_state.cc:142
 #, c-format
 msgid "workspace required but not found%s%s"
 msgstr "espace de travail requis mais pas trouvé%s%s"
 
- -#: app_state.cc:149
+#: app_state.cc:150
 #, c-format
 msgid "invalid directory ''"
 msgstr "dossier pas valable «»"
 
- -#: app_state.cc:157
+#: app_state.cc:158
 #, fuzzy, c-format
 msgid "monotone bookkeeping directory '%s' already exists in '%s'"
 msgstr "le dossier administratif « %s » existe déjà dans « %s »\n"
 
- -#: app_state.cc:238
+#: app_state.cc:239
 #, c-format
 msgid "search root '%s' does not exist"
 msgstr "le racine de l'espace de travail « %s » n'existe pas"
 
- -#: app_state.cc:239
+#: app_state.cc:240
 #, c-format
 msgid "search root '%s' is not a directory\n"
 msgstr "le racine de l'espace de travail « %s » n'est pas un dossier\n"
 
- -#: app_state.cc:273
+#: app_state.cc:274
 #, c-format
 msgid "failed to parse date string '%s': %s"
 msgstr "échou de comprendre la date « %s » : %s"
 
- -#: app_state.cc:288
+#: app_state.cc:289
 #, c-format
 msgid "negative depth not allowed\n"
 msgstr "profondeur négative interdite\n"
 
- -#: app_state.cc:296
+#: app_state.cc:297
 #, c-format
 msgid "illegal argument to --last: cannot be zero or negative\n"
 msgstr "argument illégal à --last : il ne doit pas être nul ou négatif\n"
 
- -#: app_state.cc:304
+#: app_state.cc:305
 #, c-format
 msgid "illegal argument to --next: cannot be zero or negative\n"
 msgstr "argument illégal à --next : il ne pas être nul ou négatif\n"
 
- -#: app_state.cc:440
+#: app_state.cc:389
+#, fuzzy, c-format
+msgid "illegal argument to --automate-stdio-size: cannot be zero or negative\n"
+msgstr "argument illégal à --last : il ne doit pas être nul ou négatif\n"
+
+#: app_state.cc:449
 #, c-format
 msgid "Failed to read options file %s"
 msgstr "La lecture du fichier d'options « %s » a échouée"
 
- -#: app_state.cc:457
+#: app_state.cc:466
 #, c-format
 msgid "Failed to write options file %s"
 msgstr "L'écriture du fichier d'options « %s » a échouée"
@@ -389,27 +394,27 @@ msgstr ""
 "multiples certifs de branche trouvés pour la révision %s, veuillez donne le 
"
 "nom d'une branche"
 
- -#: cmd_automate.cc:205
+#: cmd_automate.cc:206
 #, c-format
 msgid "read from client failed with error code: %d"
 msgstr "la lecture depuis le client a échoué avec le code d'erreur : %d"
 
- -#: cmd_automate.cc:248
+#: cmd_automate.cc:249
 #, fuzzy, c-format
 msgid "Bad input to automate stdio"
 msgstr "mauvaise entrée à parse_basic_io"
 
- -#: cmd_automate.cc:301
+#: cmd_automate.cc:303
 msgid "automation"
 msgstr "automatisation"
 
- -#: cmd_automate.cc:302
+#: cmd_automate.cc:304
 msgid "automation interface"
 msgstr "interface d'automatisation"
 
 #: cmd_db.cc:35 cmd_diff_log.cc:387 cmd_diff_log.cc:419 cmd_diff_log.cc:421
 #: cmd_files.cc:138 cmd_files.cc:200 cmd_merging.cc:146 cmd_merging.cc:699
- -#: cmd_merging.cc:714 cmd_merging.cc:717 cmd_ws_commit.cc:453 commands.cc:393
+#: cmd_merging.cc:714 cmd_merging.cc:717 cmd_ws_commit.cc:453 commands.cc:433
 #, c-format
 msgid "no such revision '%s'"
 msgstr "aucune révision « %s »"
@@ -494,7 +499,7 @@ msgstr "aucune variable nommée %s dans 
 
 #: cmd_db.cc:152 cmd_diff_log.cc:331 cmd_diff_log.cc:543 cmd_files.cc:114
 #: cmd_files.cc:181 cmd_list.cc:448 cmd_merging.cc:636 cmd_ws_commit.cc:328
- -#: commands.cc:248
+#: commands.cc:253
 msgid "informative"
 msgstr "information"
 
@@ -1706,7 +1711,7 @@ msgstr "le fichier « %s » a été mo
 
 #: cmd_ws_commit.cc:774
 #, fuzzy, c-format
- -msgid "Your database is missing version %1% of file '%2%'"
+msgid "Your database is missing version %s of file '%s'"
 msgstr "le sondage de la version de la base de données dans « %s » a 
échouée"
 
 #: cmd_ws_commit.cc:820
@@ -1742,53 +1747,53 @@ msgstr "rafraîchir le cache d'inodeprin
 msgid "refresh the inodeprint cache"
 msgstr "rafraîchir le cache d'inodeprint"
 
- -#: commands.cc:125 commands.cc:227
+#: commands.cc:130 commands.cc:232
 #, c-format
 msgid "unknown command '%s'"
 msgstr "commande inconnue « %s »"
 
- -#: commands.cc:136
+#: commands.cc:141
 #, c-format
 msgid "command '%s' has multiple ambiguous expansions:\n"
 msgstr "la commande « %s » a plusieurs expansions ambigües : \n"
 
- -#: commands.cc:169
+#: commands.cc:174
 msgid "commands:"
 msgstr "commandes :"
 
- -#: commands.cc:248
+#: commands.cc:253
 msgid "command [ARGS...]"
 msgstr "commande [ARGUMENTS...]"
 
- -#: commands.cc:248
+#: commands.cc:253
 msgid "display command help"
 msgstr "afficher l'aide de la commande"
 
- -#: commands.cc:400
+#: commands.cc:440
 #, c-format
 msgid "expanding selection '%s'"
 msgstr "expansion de la sélection « %s »"
 
- -#: commands.cc:408
+#: commands.cc:448
 #, c-format
 msgid "no match for selection '%s'"
 msgstr "aucune correspondance pour la sélection « %s »"
 
- -#: commands.cc:414
+#: commands.cc:454
 #, fuzzy, c-format
 msgid "expanded to '%s'"
 msgstr "expansion à « %s »\n"
 
- -#: commands.cc:431
+#: commands.cc:471
 #, c-format
 msgid "selection '%s' has multiple ambiguous expansions: \n"
 msgstr "la sélection « %s » a plusieurs expansions ambigües : \n"
 
- -#: commands.cc:448
+#: commands.cc:488
 msgid "note: "
 msgstr "note : "
 
- -#: commands.cc:449
+#: commands.cc:489
 #, c-format
 msgid ""
 "branch '%s' has multiple heads\n"
@@ -1797,7 +1802,7 @@ msgstr ""
 "la branche « %s » a plusieurs heads\n"
 "vous devriez peut-être lancer « %s merge »"
 
- -#: commands.cc:467
+#: commands.cc:507
 #, c-format
 msgid "--message and --message-file are mutually exclusive"
 msgstr "--message et --message-file sont mutuellement exclusifs"
@@ -1965,7 +1970,7 @@ msgstr ""
 
 #: database_check.cc:774
 #, fuzzy, c-format
- -msgid "revision %1% missing %2% cert"
+msgid "revision %s missing %s cert"
 msgstr "la révision %s manque le certif %s\n"
 
 #: database_check.cc:783
@@ -2104,7 +2109,7 @@ msgstr "la base de données est bonne"
 msgid "database is good"
 msgstr "la base de données est bonne"
 
- -#: database.cc:156
+#: database.cc:157
 #, c-format
 msgid ""
 "layout of database %s doesn't match this version of monotone\n"
@@ -2119,12 +2124,12 @@ msgstr ""
 "(cette opération est irréversible; vous voudrez probablement prendre une "
 "copie d'abord)"
 
- -#: database.cc:170
+#: database.cc:171
 #, c-format
 msgid "this database already contains rosters"
 msgstr "cette base de données contient déjà des listes"
 
- -#: database.cc:190
+#: database.cc:191
 #, c-format
 msgid ""
 "database %s contains revisions but no rosters\n"
@@ -2143,7 +2148,7 @@ msgstr ""
 "  récupérez de nouveau dans une base de données fraiche.\n"
 "désolé pour l'inconvenience."
 
- -#: database.cc:209
+#: database.cc:210
 #, c-format
 msgid ""
 "database %s contains manifests but no revisions\n"
@@ -2155,19 +2160,19 @@ msgstr ""
 "niveau\n"
 "veuillez lire lest détails dans README.changesets"
 
- -#: database.cc:245
+#: database.cc:246
 #, c-format
 msgid "unable to probe database version in file %s"
 msgstr "le sondage de la version de la base de données dans « %s » a 
échouée"
 
- -#: database.cc:252
+#: database.cc:253
 #, c-format
 msgid "database %s is not an sqlite version 3 file, try dump and reload"
 msgstr ""
 "la base de données %s n'est pas un fichier sqlite version 3, essayer dump "
 "puis reload"
 
- -#: database.cc:281 schema_migration.cc:200
+#: database.cc:282 schema_migration.cc:200
 msgid ""
 "make sure database and containing directory are writeable\n"
 "and you have not run out of disk space"
@@ -2175,7 +2180,7 @@ msgstr ""
 "assurez-vous que la base de données et le dossier la contenant sont\n"
 "accessibles en écriture et que vous disposez encore d'espace disque"
 
- -#: database.cc:287 schema_migration.cc:205
+#: database.cc:288 schema_migration.cc:205
 #, c-format
 msgid ""
 "sqlite error: %s\n"
@@ -2184,12 +2189,12 @@ msgstr ""
 "erreur sqlite : %s\n"
 "%s"
 
- -#: database.cc:332
+#: database.cc:333
 #, c-format
 msgid "could not initialize database: %s: already exists"
 msgstr "impossible d'initialiser la base de données : %s : elle existe 
déjà"
 
- -#: database.cc:337
+#: database.cc:338
 #, c-format
 msgid ""
 "existing (possibly stale) journal file '%s' has same stem as new database '%"
@@ -2197,12 +2202,12 @@ msgstr ""
 "cancelling database creation"
 msgstr ""
 
- -#: database.cc:487
+#: database.cc:488
 #, c-format
 msgid "cannot create %s; it already exists"
 msgstr "impossible de créer %s car ceci existe déjà"
 
- -#: database.cc:564
+#: database.cc:565
 #, fuzzy, c-format
 msgid ""
 "schema version    : %s\n"
@@ -2247,73 +2252,73 @@ msgstr ""
 "  certifs            : %u\n"
 "  total              : %u\n"
 
- -#: database.cc:626
+#: database.cc:627
 #, c-format
 msgid "database schema version: %s"
 msgstr "version du schéma de la base de données : %s"
 
- -#: database.cc:703
+#: database.cc:704
 #, c-format
 msgid "multiple statements in query: %s\n"
 msgstr "plusieurs instructions dans la requête: %s\n"
 
- -#: database.cc:709
+#: database.cc:710
 #, fuzzy, c-format
 msgid "wanted %d columns got %d in query: %s"
 msgstr "voulais %d colonnes, reçu %d dans la requête: %s\n"
 
- -#: database.cc:768
+#: database.cc:769
 #, fuzzy, c-format
 msgid "null result in query: %s"
 msgstr "la requête donnait aucun résultat: %s\n"
 
- -#: database.cc:786
+#: database.cc:787
 #, fuzzy, c-format
 msgid "wanted %d rows got %d in query: %s"
 msgstr "voulais %d rangs, reçu %s dans la requête: %s\n"
 
- -#: database.cc:1926
+#: database.cc:1950
 #, c-format
 msgid "another key with name '%s' already exists"
 msgstr "une autre clef nommée « %s » existe déjà"
 
- -#: database.cc:2958
+#: database.cc:2982
 #, c-format
 msgid "no database specified"
 msgstr "aucune base de données n'a été spécifiée"
 
- -#: database.cc:2966
+#: database.cc:2990
 #, c-format
 msgid "database %s does not exist"
 msgstr "la base de données %s n'existe pas"
 
- -#: database.cc:2967
+#: database.cc:2991
 #, c-format
 msgid "%s is a directory, not a database"
 msgstr "%s est un dossier, pas une base de données"
 
- -#: database.cc:2992
+#: database.cc:3016
 #, c-format
 msgid "could not open database '%s': %s"
 msgstr "impossible d'ouvrir la base de données « %s » : %s"
 
- -#: diff_patch.cc:608
+#: diff_patch.cc:610
 #, c-format
 msgid "file '%s' does not exist in workspace"
 msgstr "le fichier « %s » n'existe pas dans l'espace de travail"
 
- -#: diff_patch.cc:609
+#: diff_patch.cc:611
 #, c-format
 msgid "'%s' in workspace is a directory, not a file"
 msgstr "« %s » est un dossier, pas un fichier"
 
- -#: diff_patch.cc:613
+#: diff_patch.cc:615
 #, c-format
 msgid "file %s in workspace has id %s, wanted %s"
 msgstr ""
 "le fichier « %s » dans l'espace de travail a l'identité %s, je voulais %s"
 
- -#: diff_patch.cc:734
+#: diff_patch.cc:736
 #, c-format
 msgid ""
 "help required for 3-way merge\n"
@@ -2526,7 +2531,7 @@ msgstr "le dossier « %s » n'existe p
 msgid "Directory '%s' does not exist"
 msgstr "le dossier « %s » n'existe pas"
 
- -#: lua.cc:480 rcs_import.cc:1235 work.cc:480
+#: lua.cc:480 rcs_import.cc:1235 work.cc:474
 #, c-format
 msgid "'%s' is not a directory"
 msgstr "« %s » n'est pas un dossier"
@@ -2536,14 +2541,6 @@ msgstr "erreur lua lors du chargement de
 msgid "lua error while loading rcfile '%s'"
 msgstr "erreur lua lors du chargement de « %s »"
 
- -#: main.cc:326
- -msgid "interrupted"
- -msgstr "interrompu"
- -
- -#: main.cc:330
- -msgid "terminated by signal"
- -msgstr "terminé par un signal"
- -
 #: merkle_tree.cc:290
 #, c-format
 msgid "node level is %d, exceeds maximum %d"
@@ -2554,243 +2551,247 @@ msgstr "la somme de contrôle %s ne corr
 msgid "mismatched node hash value %s, expected %s"
 msgstr "la somme de contrôle %s ne correspond pas à la valeur attendue %s"
 
- -#: monotone.cc:65
+#: monotone.cc:90
 msgid "select branch cert for operation"
 msgstr "choisi certif de branch pour l'opération"
 
- -#: monotone.cc:66
+#: monotone.cc:91
 msgid "select revision id for operation"
 msgstr "choisi révision pour l'opération"
 
- -#: monotone.cc:67
+#: monotone.cc:92
 msgid "set commit changelog message"
 msgstr "établissez le message du journal"
 
- -#: monotone.cc:68
+#: monotone.cc:93
 #, fuzzy
 msgid "set filename containing commit changelog message"
 msgstr ""
 "'etablissez le nom du fichier qui contient l'entrée du journal pour confier"
 
- -#: monotone.cc:69
+#: monotone.cc:94
 msgid "override date/time for commit"
 msgstr "supplante la date/l'heure pour confier"
 
- -#: monotone.cc:70
+#: monotone.cc:95
 msgid "override author for commit"
 msgstr "supplante l'auteur pour confier"
 
- -#: monotone.cc:71
+#: monotone.cc:96
 msgid "limit the number of levels of directories to descend"
 msgstr "limite le niveau de dossier à descendre"
 
- -#: monotone.cc:72
+#: monotone.cc:97
 msgid "limit log output to the last number of entries"
 msgstr "limiter l'affichage du journal au dernier nombre d'entrées spécifié"
 
- -#: monotone.cc:73
+#: monotone.cc:98
 msgid "limit log output to the next number of entries"
 msgstr "limiter l'affichage du journal au prochain nombre d'entrées 
spécifié"
 
- -#: monotone.cc:74
+#: monotone.cc:99
 msgid "record process id of server"
 msgstr "enregistrer l'identifiant du processus serveur"
 
- -#: monotone.cc:75
+#: monotone.cc:100
 msgid "print a brief version of the normal output"
 msgstr "affiche la version courte de l'affichage normale"
 
- -#: monotone.cc:76
+#: monotone.cc:101
 msgid "print diffs along with logs"
 msgstr "affiche la différnce en affichant le journal"
 
- -#: monotone.cc:77
+#: monotone.cc:102
 msgid "exclude merges when printing logs"
 msgstr "exclus les fusions en affichant le journal"
 
- -#: monotone.cc:78
+#: monotone.cc:103
 msgid "use the current arguments as the future default"
 msgstr "emploie les arguments actuels comme défauts futurs"
 
- -#: monotone.cc:79
+#: monotone.cc:104
 msgid "leave out anything described by its argument"
 msgstr "exclus tout ce qui est décrit par l'argument"
 
- -#: monotone.cc:80
+#: monotone.cc:105
 msgid "use unified diff format"
 msgstr "utiliser le format diff unifié"
 
- -#: monotone.cc:81
+#: monotone.cc:106
 msgid "use context diff format"
 msgstr "utiliser le format diff contextuel"
 
- -#: monotone.cc:82
+#: monotone.cc:107
 msgid "use external diff hook for generating diffs"
 msgstr ""
 "emploie la procédure automatique de « diff » externe pour créer les "
 "différences"
 
- -#: monotone.cc:83
+#: monotone.cc:108
 msgid "argument to pass external diff hook"
 msgstr "argument a passer la procédure automatique de « diff » externe"
 
- -#: monotone.cc:84
+#: monotone.cc:109
 msgid "do not show the function containing each block of changes"
 msgstr ""
 
- -#: monotone.cc:85
+#: monotone.cc:110
 msgid "another name for --no-show-encloser (for compatibility with GNU diff)"
 msgstr ""
 
- -#: monotone.cc:86
+#: monotone.cc:111
 msgid "perform the associated file operation"
 msgstr "accomplis les opérations sur les fichiers associés"
 
- -#: monotone.cc:87
+#: monotone.cc:112
 msgid "address:port to listen on (default :4691)"
 msgstr "écouter sur adresse:port (défaut :4691)"
 
- -#: monotone.cc:88
+#: monotone.cc:113
 msgid "perform the operations for files missing from workspace"
 msgstr ""
 "accomplis les opérations sur les fichiers qui manquent dans l'espace de "
 "travail"
 
- -#: monotone.cc:89
+#: monotone.cc:114
 msgid "perform the operations for unknown files from workspace"
 msgstr ""
 "accomplis les opérations sur les fichiers inconnus dans l'espace de travail"
 
- -#: monotone.cc:90
+#: monotone.cc:115
 msgid "push the specified key even if it hasn't signed anything"
 msgstr "envoie la clef donnée même si rien n'est signé avec elle"
 
- -#: monotone.cc:91
+#: monotone.cc:116
 msgid "serve netsync on stdio"
 msgstr ""
 
- -#: monotone.cc:92
+#: monotone.cc:117
 msgid "disable transport authentication"
 msgstr ""
 
- -#: monotone.cc:93
+#: monotone.cc:118
 msgid "when rosterifying, drop attrs entries with the given key"
 msgstr ""
 "tout en créent des listes, élimine les attributs signé par la clef donnée"
 
- -#: monotone.cc:94
+#: monotone.cc:119
 msgid "exclude files when printing logs"
 msgstr "n'affiche pas les fichiers en affichant le journal"
 
- -#: monotone.cc:95
+#: monotone.cc:120
 msgid "also operate on the contents of any listed directories"
 msgstr ""
 
- -#: monotone.cc:104
+#: monotone.cc:121
+msgid "block size in bytes for \"automate stdio\" output"
+msgstr ""
+
+#: monotone.cc:130
 msgid "print debug log to stderr while running"
 msgstr "affiche le journal à déboguer sur la sortie d'erreur standard"
 
- -#: monotone.cc:105
+#: monotone.cc:131
 msgid "file to dump debugging log to, on failure"
 msgstr "ficher dans lequel verser le journal à déboguer, en cas d'erreur"
 
- -#: monotone.cc:106
+#: monotone.cc:132
 msgid "file to write the log to"
 msgstr "fichier où écrire le journal"
 
- -#: monotone.cc:107
+#: monotone.cc:133
 #, fuzzy
 msgid "suppress verbose, informational and progress messages"
 msgstr "n'affiche pas le journal ou les messages de progrès"
 
- -#: monotone.cc:108
+#: monotone.cc:134
 #, fuzzy
 msgid "suppress warning, verbose, informational and progress messages"
 msgstr "n'affiche pas le journal ou les messages de progrès"
 
- -#: monotone.cc:109
+#: monotone.cc:135
 msgid "display help message"
 msgstr "afficher le message d'aide"
 
- -#: monotone.cc:110
+#: monotone.cc:136
 msgid "print version number, then exit"
 msgstr "afficher le numéro de version, puis quitte"
 
- -#: monotone.cc:111
+#: monotone.cc:137
 msgid "print detailed version number, then exit"
 msgstr "afficher le numéro de version détaillée, puis quitte"
 
- -#: monotone.cc:112
+#: monotone.cc:138
 msgid "insert command line arguments taken from the given file"
 msgstr "fourre les arguments pris du fichier donné dans la linge de commande"
 
- -#: monotone.cc:113
+#: monotone.cc:139
 msgid "set ticker style (count|dot|none)"
 msgstr "établis le style d'affichage de progrès (count|dot|none)"
 
- -#: monotone.cc:114
+#: monotone.cc:140
 msgid "do not load standard lua hooks"
 msgstr "ne pas charger les hooks standards lua"
 
- -#: monotone.cc:115
+#: monotone.cc:141
 msgid "do not load ~/.monotone/monotonerc or _MTN/monotonerc lua files"
 msgstr ""
 "ne pas charger les fichiers lua ~/.monotone/monotonerc ou _MTN/monotonerc"
 
- -#: monotone.cc:116
+#: monotone.cc:142
 msgid "load extra rc file"
 msgstr "charger un fichier rc supplémentaire"
 
- -#: monotone.cc:117
+#: monotone.cc:143
 msgid "set key for signatures"
 msgstr "paramétrer la clef pour les signatures"
 
- -#: monotone.cc:118
+#: monotone.cc:144
 msgid "set name of database"
 msgstr "paramétrer le nom de la base de données"
 
- -#: monotone.cc:119
+#: monotone.cc:145
 msgid "limit search for workspace to specified root"
 msgstr "limite la recherche d'un espace de travail à la racine donnée"
 
 # **** Richard stopped here ****
- -#: monotone.cc:120
+#: monotone.cc:146
 msgid "verbose completion output"
 msgstr "affiche plus d'information à la fin de l'exécution"
 
- -#: monotone.cc:121
+#: monotone.cc:147
 msgid "set location of key store"
 msgstr "paramétrer l'emplacement de l'entrepôt des clefs"
 
- -#: monotone.cc:122
+#: monotone.cc:148
 msgid "set location of configuration directory"
 msgstr "paramétrer l'emplacement du dossier de configuration"
 
- -#: monotone.cc:226
+#: monotone.cc:183
 #, c-format
 msgid "problem parsing arguments from file %s: %s"
 msgstr "erreur lors de l'analyse d'arguments venant du fichier %s : %s"
 
- -#: monotone.cc:235
+#: monotone.cc:192
 #, c-format
 msgid "weird error when stuffing arguments read from %s: %s\n"
 msgstr "erreur bizarre en employant des arguments lu de %s: %s\n"
 
- -#: monotone.cc:331
+#: monotone.cc:226
 msgid "[OPTION...] command [ARGS...]\n"
 msgstr "[OPTION...] commande [ARGUMENTS...]\n"
 
- -#: monotone.cc:600
+#: monotone.cc:493
 #, c-format
 msgid "syntax error near the \"%s\" option: %s"
 msgstr "erreur de syntaxe près de l'option « %s » : %s"
 
- -#: monotone.cc:639
+#: monotone.cc:514
 #, c-format
 msgid "%s %s doesn't use the option %s"
 msgstr "%s %s n'utilise pas l'option %s"
 
- -#: monotone.cc:673
+#: monotone.cc:547
 #, c-format
 msgid "Options specific to '%s %s':"
 msgstr "Options spécifiques à « %s %s » :"
@@ -3290,7 +3291,7 @@ msgstr ""
 "le motif des branches à exclure contient un caractère de citation :\n"
 "%s\n"
 
- -#: netsync.cc:3160 netsync.cc:3164
+#: netsync.cc:3163 netsync.cc:3167
 #, c-format
 msgid "network error: %s"
 msgstr "erreur réseau : %s"
@@ -3485,32 +3486,32 @@ msgstr ""
 "je ne comprend que le format version « 1 »\n"
 "il faut une version monotone plus nouvelle pour complèter cette opération"
 
- -#: sanity.cc:126
+#: sanity.cc:154
 #, c-format
 msgid "fatal: formatter failed on %s:%d: %s"
 msgstr "fatal : le formatteur a échoué à %s:%d : %s"
 
- -#: sanity.cc:200
+#: sanity.cc:228
 msgid "misuse: "
 msgstr "mauvais usage : "
 
- -#: sanity.cc:212
+#: sanity.cc:240
 msgid "error: "
 msgstr "erreur :"
 
- -#: sanity.cc:220
+#: sanity.cc:248
 #, c-format
 msgid "%s:%d: invariant '%s' violated"
 msgstr "%s:%d : violation de l'invariant « %s »"
 
- -#: sanity.cc:233
+#: sanity.cc:261
 #, c-format
 msgid "%s:%d: index '%s' = %d overflowed vector '%s' with size %d\n"
 msgstr ""
 "%s:%d : l'index « %s » = %d dépasse la capacité du vector « %s » dont 
la "
 "taille est %d\n"
 
- -#: sanity.cc:254
+#: sanity.cc:282
 #, c-format
 msgid "Current work set: %i items\n"
 msgstr "Ensemble de travail actuel: %i objets\n"
@@ -3589,44 +3590,44 @@ msgstr "déplace la clef « %s » de la 
 msgid "moving key '%s' from database to %s"
 msgstr "déplace la clef « %s » de la base de données à %s"
 
- -#: std_hooks.lua:37
+#: std_hooks.lua:48
 msgid "Press enter"
 msgstr "Appuyez sur entrée"
 
- -#: std_hooks.lua:39
+#: std_hooks.lua:50
 msgid "Press enter when the subprocess has completed"
 msgstr "Appuyez sur [Entrée] quand le sous-processus s'est terminé"
 
- -#: ui.cc:126
+#: ui.cc:158
 #, c-format
 msgid "%.1f G"
 msgstr "%.1f Gi"
 
- -#: ui.cc:132
+#: ui.cc:164
 #, c-format
 msgid "%.1f M"
 msgstr "%.1f Mi"
 
- -#: ui.cc:138
+#: ui.cc:170
 #, c-format
 msgid "%.1f k"
 msgstr "%.1f Ki"
 
- -#: ui.cc:151
+#: ui.cc:183
 #, c-format
 msgid "%d/%d"
 msgstr "%d/%d"
 
- -#: ui.cc:156
+#: ui.cc:188
 #, c-format
 msgid "%d"
 msgstr "%d"
 
- -#: ui.cc:423
+#: ui.cc:465
 msgid "warning: "
 msgstr "avertissement : "
 
- -#: ui.cc:432
+#: ui.cc:476
 #, fuzzy, c-format
 msgid ""
 "fatal: %s\n"
@@ -3639,8 +3640,13 @@ msgstr ""
 "veuillez envoyer un ce message, ce que « monotone --full-version » 
affiche\n"
 "et une description de ce que vous vouliez faire à %s.\n"
 
- -#: ui.cc:493
+#: ui.cc:511
 #, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: ui.cc:587
+#, c-format
 msgid "failed to open log file '%s'"
 msgstr "Impossible d'ouvrir le fichier journal « %s »"
 
@@ -3705,156 +3711,162 @@ msgstr "omission de %s qui existe déjà
 msgid "skipping %s, already accounted for in workspace"
 msgstr "omission de %s qui existe déjà dans l'espace de travail"
 
- -#: work.cc:191
+#: work.cc:198
 #, c-format
 msgid "adding %s to workspace manifest"
 msgstr "ajouter %s au manifeste de l'espace de travail"
 
- -#: work.cc:281
+#: work.cc:275
 #, c-format
 msgid "skipping %s, not currently tracked"
 msgstr ""
 
- -#: work.cc:291
+#: work.cc:285
 #, c-format
 msgid "cannot remove %s/, it is not empty"
 msgstr "impossible de supprimer %s/, il n'est pas vide"
 
- -#: work.cc:302
+#: work.cc:296
 #, c-format
 msgid "dropping %s from workspace manifest"
 msgstr "supprimer %s du manifeste de l'espace de travail"
 
- -#: work.cc:365
+#: work.cc:359
 #, c-format
 msgid "destination dir %s/ does not exist in current revision"
 msgstr "le dossier de destination %s/ n'existe pas dans la révision actuelle"
 
- -#: work.cc:368
+#: work.cc:362
 #, c-format
 msgid "destination %s is an existing file in current revision"
 msgstr "la destination %s est un fichier qui existe dans la révision actuelle"
 
- -#: work.cc:378
+#: work.cc:372
 #, c-format
 msgid "empty path %s is not allowed"
 msgstr "le chemin vide %s n'est pas permit"
 
- -#: work.cc:392
+#: work.cc:386
 #, c-format
 msgid "%s does not exist in current revision"
 msgstr "%s n'existe pas dans la révision actuelle"
 
- -#: work.cc:395
+#: work.cc:389
 #, c-format
 msgid "destination %s already exists in current revision"
 msgstr "la destination %s existe déjà dans la révision actuelle"
 
- -#: work.cc:404
+#: work.cc:398
 #, c-format
 msgid "renaming %s to %s in workspace manifest"
 msgstr "renomme %s à %s dans le manifeste de l'espace de travail"
 
- -#: work.cc:429
+#: work.cc:423
 #, c-format
 msgid "%s doesn't exist in workspace, skipping"
 msgstr "omission de %s qui n'existe pas dans la copie de travail"
 
- -#: work.cc:433
+#: work.cc:427
 #, c-format
 msgid "destination %s already exists in workspace, skipping"
 msgstr "omission de %s qui existe déjà dans la copie de travail"
 
- -#: work.cc:460
+#: work.cc:454
 #, c-format
 msgid "proposed new root directory '%s' is not versioned or does not exist"
 msgstr ""
 
- -#: work.cc:462
+#: work.cc:456
 #, c-format
 msgid "proposed new root directory '%s' is not a directory"
 msgstr "la nouvelle racine proposé « %s » n'est pas un dossier"
 
- -#: work.cc:467
+#: work.cc:461
 #, c-format
 msgid "proposed new root directory '%s' contains illegal path %s"
 msgstr "la nouvelle racine proposé « %s » contient le chemin illégal %s"
 
- -#: work.cc:477
+#: work.cc:471
 #, c-format
 msgid "directory '%s' is not versioned or does not exist"
 msgstr "le dossier « %s » n'est pas versioné ou n'existe pas"
 
- -#: work.cc:483
+#: work.cc:477
 #, c-format
 msgid "'%s' is in the way"
 msgstr "« %s » fait obstacle"
 
- -#: work.cc:578
+#: work.cc:572
 #, c-format
 msgid "workspace is corrupt: %s does not exist"
 msgstr "l'espace de travail est corrompu : %s n'existe pas"
 
- -#: work.cc:579
+#: work.cc:573
 #, c-format
 msgid "workspace is corrupt: %s is a directory"
 msgstr "l'espace de travail est corrompue : %s est un dossier"
 
- -#: work.cc:589
+#: work.cc:583
 #, c-format
 msgid "Problem with workspace: %s is unreadable"
 msgstr "Problème avec l'espace de travail: %s n'est pas lisible"
 
- -#: work.cc:615
+#: work.cc:609
 #, c-format
 msgid "base revision %s does not exist in database"
 msgstr "la révision de base %s n'existe pas dans la base de données"
 
- -#: work.cc:924
+#: work.cc:918
 #, c-format
 msgid "dropping %s"
 msgstr "supprime %s"
 
- -#: work.cc:935 work.cc:946
+#: work.cc:929 work.cc:940
 #, c-format
 msgid "path %s already exists"
 msgstr "le chemin %s existe déjà"
 
- -#: work.cc:968 work.cc:995
+#: work.cc:962 work.cc:989
 #, c-format
 msgid "adding %s"
 msgstr "ajout de %s"
 
- -#: work.cc:984
+#: work.cc:978
 #, c-format
 msgid "path '%s' already exists, cannot create"
 msgstr "le chemin « %s » existe déjà, ne peux pas le créer"
 
- -#: work.cc:991
+#: work.cc:985
 #, c-format
 msgid "renaming %s to %s"
 msgstr "renommage de %s en %s"
 
- -#: work.cc:1026
+#: work.cc:1020
 #, c-format
 msgid "file '%s' does not exist"
 msgstr "le fichier « %s » n'existe pas"
 
- -#: work.cc:1027
+#: work.cc:1021
 #, c-format
 msgid "file '%s' is a directory"
 msgstr "le fichier « %s » est un dossier"
 
- -#: work.cc:1032
+#: work.cc:1026
 #, c-format
 msgid "content of file '%s' has changed, not overwriting"
 msgstr "le contenu du fichier « %s » a changé, il ne sera pas écrasé"
 
- -#: work.cc:1033
+#: work.cc:1027
 #, c-format
 msgid "modifying %s"
 msgstr "modification de %s"
 
+#~ msgid "interrupted"
+#~ msgstr "interrompu"
+
+#~ msgid "terminated by signal"
+#~ msgstr "terminé par un signal"
+
 #~ msgid "bad input to parse_basic_io"
 #~ msgstr "mauvaise entrée à parse_basic_io"
 
============================================================
- --- po/it.po  74b73f1b2e2414b6ec491de313dc3af19da6880a
+++ po/it.po    4c9ee2f0cca2defbb4efe34a87bac4fef2a3f567
@@ -1,8 +1,8 @@ msgstr ""
 msgid ""
 msgstr ""
 "Project-Id-Version: monotone\n"
 "Report-Msgid-Bugs-To: \n"
- -"POT-Creation-Date: 2006-08-02 16:49-0700\n"
+"POT-Creation-Date: 2006-08-13 22:32-0400\n"
 "PO-Revision-Date: 2006-08-07 11:16+0100\n"
 "Last-Translator: Lapo Luchini <address@hidden>\n"
 "Language-Team: Lapo Luchini <address@hidden>\n"
@@ -64,7 +64,9 @@ msgid "illegal argument to --automate-st
 #: app_state.cc:389
 #, c-format
 msgid "illegal argument to --automate-stdio-size: cannot be zero or negative\n"
- -msgstr "argomento illegale per ‘--automate-stdio-size’: non può essere 
zero o negativo\n"
+msgstr ""
+"argomento illegale per ‘--automate-stdio-size’: non può essere zero o "
+"negativo\n"
 
 #: app_state.cc:449
 #, c-format
@@ -106,8 +108,7 @@ msgstr "l'hash calcolato sul certificato
 msgid "calculated cert hash '%s' does not match '%s'"
 msgstr "l'hash calcolato sul certificato è ‘%s’, non corrisponde a 
‘%s’"
 
- -#: cert.cc:379
- -#: keys.cc:554
+#: cert.cc:379 keys.cc:554
 #, c-format
 msgid "no key pair '%s' found in key store '%s'"
 msgstr "la coppia di chiavi ‘%s’ non è nel portachiavi ‘%s’"
@@ -133,17 +134,23 @@ msgid "no branch found for empty revisio
 #: cert.cc:478
 #, c-format
 msgid "no branch found for empty revision, please provide a branch name"
- -msgstr "nessun ramo trovato per revisione vuota, per favore fornisci un nome 
di ramo"
+msgstr ""
+"nessun ramo trovato per revisione vuota, per favore fornisci un nome di ramo"
 
 #: cert.cc:487
 #, c-format
 msgid "no branch certs found for revision %s, please provide a branch name"
- -msgstr "nessun certificato di ramo trovato per la revisione %s, per favore 
inserisci un nome di ramo"
+msgstr ""
+"nessun certificato di ramo trovato per la revisione %s, per favore inserisci "
+"un nome di ramo"
 
 #: cert.cc:491
 #, c-format
- -msgid "multiple branch certs found for revision %s, please provide a branch 
name"
- -msgstr "trovati certificati con rami multipli per la revisione %s, per 
favore inserisci il nome di un ramo"
+msgid ""
+"multiple branch certs found for revision %s, please provide a branch name"
+msgstr ""
+"trovati certificati con rami multipli per la revisione %s, per favore "
+"inserisci il nome di un ramo"
 
 #: cmd_automate.cc:206
 #, c-format
@@ -163,18 +170,9 @@ msgstr "interfaccia di automazione"
 msgid "automation interface"
 msgstr "interfaccia di automazione"
 
- -#: cmd_db.cc:35
- -#: cmd_diff_log.cc:387
- -#: cmd_diff_log.cc:419
- -#: cmd_diff_log.cc:421
- -#: cmd_files.cc:138
- -#: cmd_files.cc:200
- -#: cmd_merging.cc:146
- -#: cmd_merging.cc:699
- -#: cmd_merging.cc:714
- -#: cmd_merging.cc:717
- -#: cmd_ws_commit.cc:453
- -#: commands.cc:433
+#: cmd_db.cc:35 cmd_diff_log.cc:387 cmd_diff_log.cc:419 cmd_diff_log.cc:421
+#: cmd_files.cc:138 cmd_files.cc:200 cmd_merging.cc:146 cmd_merging.cc:699
+#: cmd_merging.cc:714 cmd_merging.cc:717 cmd_ws_commit.cc:453 commands.cc:433
 #, c-format
 msgid "no such revision '%s'"
 msgstr "la revisione %s non esiste"
@@ -229,8 +227,7 @@ msgstr "L'epoca deve essere di %s caratt
 msgid "The epoch must be %s characters"
 msgstr "L'epoca deve essere di %s caratteri"
 
- -#: cmd_db.cc:119
- -#: cmd_db.cc:135
+#: cmd_db.cc:119 cmd_db.cc:135
 msgid "vars"
 msgstr "variabili"
 
@@ -240,7 +237,8 @@ msgid "set the database variable NAME to
 
 #: cmd_db.cc:120
 msgid "set the database variable NAME to VALUE, in domain DOMAIN"
- -msgstr "imposta la variabile NOME del database come VALORE, nel dominio 
DOMINIO"
+msgstr ""
+"imposta la variabile NOME del database come VALORE, nel dominio DOMINIO"
 
 #: cmd_db.cc:135
 msgid "DOMAIN NAME"
@@ -255,14 +253,8 @@ msgstr "nessuna variabile ha nome ‘%sâ
 msgid "no var with name %s in domain %s"
 msgstr "nessuna variabile ha nome ‘%s’ nel dominio ‘%s’"
 
- -#: cmd_db.cc:152
- -#: cmd_diff_log.cc:331
- -#: cmd_diff_log.cc:543
- -#: cmd_files.cc:114
- -#: cmd_files.cc:181
- -#: cmd_list.cc:448
- -#: cmd_merging.cc:636
- -#: cmd_ws_commit.cc:328
+#: cmd_db.cc:152 cmd_diff_log.cc:331 cmd_diff_log.cc:543 cmd_files.cc:114
+#: cmd_files.cc:181 cmd_list.cc:448 cmd_merging.cc:636 cmd_ws_commit.cc:328
 #: commands.cc:253
 msgid "informative"
 msgstr "informativo"
@@ -280,12 +272,8 @@ msgstr "cifre non decimali nell'ID parzi
 msgid "non-hex digits in partial id"
 msgstr "cifre non decimali nell'ID parziale"
 
- -#: cmd_diff_log.cc:331
- -#: cmd_ws_commit.cc:53
- -#: cmd_ws_commit.cc:222
- -#: cmd_ws_commit.cc:250
- -#: cmd_ws_commit.cc:328
- -#: cmd_ws_commit.cc:620
+#: cmd_diff_log.cc:331 cmd_ws_commit.cc:53 cmd_ws_commit.cc:222
+#: cmd_ws_commit.cc:250 cmd_ws_commit.cc:328 cmd_ws_commit.cc:620
 msgid "[PATH]..."
 msgstr "[PERCORSO…]"
 
@@ -321,20 +309,20 @@ msgstr "[FILE…]"
 msgstr "[FILE…]"
 
 #: cmd_diff_log.cc:544
- -msgid "print history in reverse order (filtering by 'FILE'). If one or more 
revisions are given, use them as a starting point."
- -msgstr "stampa lo storico in ordine contrario (filtrando per ‘FILE’). Se 
sono specificate una o più revisioni, usa quelle come punto di partenza."
+msgid ""
+"print history in reverse order (filtering by 'FILE'). If one or more "
+"revisions are given, use them as a starting point."
+msgstr ""
+"stampa lo storico in ordine contrario (filtrando per ‘FILE’). Se sono "
+"specificate una o più revisioni, usa quelle come punto di partenza."
 
 #: cmd_diff_log.cc:607
 #, c-format
 msgid "only one of --last/--next allowed"
 msgstr "solo un comando permesso tra ‘--last’ e ‘--next’"
 
- -#: cmd_files.cc:28
- -#: cmd_files.cc:41
- -#: cmd_files.cc:78
- -#: cmd_files.cc:157
- -#: cmd_merging.cc:864
- -#: cmd_othervcs.cc:15
+#: cmd_files.cc:28 cmd_files.cc:41 cmd_files.cc:78 cmd_files.cc:157
+#: cmd_merging.cc:864 cmd_othervcs.cc:15
 msgid "debug"
 msgstr "debug"
 
@@ -427,8 +415,7 @@ msgstr "copia un file dal database a std
 msgid "write file from database to stdout"
 msgstr "copia un file dal database a stdout"
 
- -#: cmd_files.cc:212
- -#: cmd_files.cc:214
+#: cmd_files.cc:212 cmd_files.cc:214
 #, c-format
 msgid "no file '%s' found in revision '%s'"
 msgstr "nessun file ‘%s’ trovato nella revisione %s"
@@ -453,17 +440,12 @@ msgstr "id parziale ‘%s’ espanso in 
 msgid "expanded partial id '%s' to '%s'"
 msgstr "id parziale ‘%s’ espanso in ‘%s’"
 
- -#: cmd_key_cert.cc:26
- -#: cmd_key_cert.cc:52
- -#: cmd_key_cert.cc:92
- -#: cmd_key_cert.cc:113
- -#: cmd_key_cert.cc:149
+#: cmd_key_cert.cc:26 cmd_key_cert.cc:52 cmd_key_cert.cc:92
+#: cmd_key_cert.cc:113 cmd_key_cert.cc:149
 msgid "key and cert"
 msgstr "chiavi e cert"
 
- -#: cmd_key_cert.cc:26
- -#: cmd_key_cert.cc:52
- -#: cmd_key_cert.cc:92
+#: cmd_key_cert.cc:26 cmd_key_cert.cc:52 cmd_key_cert.cc:92
 msgid "KEYID"
 msgstr "IDCHIAVE"
 
@@ -503,12 +485,18 @@ msgid "public or private key '%s' does n
 #: cmd_key_cert.cc:84
 #, c-format
 msgid "public or private key '%s' does not exist in keystore or database"
- -msgstr "o la chiave pubblica o quella privata ‘%s’ non esiste nel 
portachiavi o nel database"
+msgstr ""
+"o la chiave pubblica o quella privata ‘%s’ non esiste nel portachiavi o 
nel "
+"database"
 
 #: cmd_key_cert.cc:87
 #, c-format
- -msgid "public or private key '%s' does not exist in keystore, and no 
database was specified"
- -msgstr "o la chiave pubblica o quella privata ‘%s’ non esiste nel 
portachiavi, e nessun database è stato specificato"
+msgid ""
+"public or private key '%s' does not exist in keystore, and no database was "
+"specified"
+msgstr ""
+"o la chiave pubblica o quella privata ‘%s’ non esiste nel portachiavi, e "
+"nessun database è stato specificato"
 
 #: cmd_key_cert.cc:93
 msgid "change passphrase of a private RSA key"
@@ -567,11 +555,8 @@ msgstr "NON fidato"
 msgid "UNtrusted"
 msgstr "NON fidato"
 
- -#: cmd_key_cert.cc:196
- -#: cmd_key_cert.cc:209
- -#: cmd_key_cert.cc:222
- -#: cmd_key_cert.cc:238
- -#: cmd_ws_commit.cc:169
+#: cmd_key_cert.cc:196 cmd_key_cert.cc:209 cmd_key_cert.cc:222
+#: cmd_key_cert.cc:238 cmd_ws_commit.cc:169
 msgid "review"
 msgstr "verifica"
 
@@ -592,8 +577,7 @@ msgstr "annota i risultati dell'esecuzio
 msgid "note the results of running a test on a revision"
 msgstr "annota i risultati dell'esecuzione di un test su una revisione"
 
- -#: cmd_key_cert.cc:222
- -#: cmd_ws_commit.cc:169
+#: cmd_key_cert.cc:222 cmd_ws_commit.cc:169
 msgid "REVISION"
 msgstr "REVISIONE"
 
@@ -624,8 +608,7 @@ msgstr "commento vuoto"
 msgid "empty comment"
 msgstr "commento vuoto"
 
- -#: cmd_list.cc:64
- -#: cmd_list.cc:666
+#: cmd_list.cc:64 cmd_list.cc:666
 #, c-format
 msgid "no public key '%s' found in database"
 msgstr "la chiave pubblica ‘%s’ non è nel database"
@@ -720,15 +703,9 @@ msgstr "La revisione %s non esiste"
 msgid "No such revision %s"
 msgstr "La revisione %s non esiste"
 
- -#: cmd_merging.cc:94
- -#: cmd_merging.cc:677
- -#: cmd_ws_commit.cc:53
- -#: cmd_ws_commit.cc:222
- -#: cmd_ws_commit.cc:250
- -#: cmd_ws_commit.cc:284
- -#: cmd_ws_commit.cc:309
- -#: cmd_ws_commit.cc:522
- -#: cmd_ws_commit.cc:620
+#: cmd_merging.cc:94 cmd_merging.cc:677 cmd_ws_commit.cc:53
+#: cmd_ws_commit.cc:222 cmd_ws_commit.cc:250 cmd_ws_commit.cc:284
+#: cmd_ws_commit.cc:309 cmd_ws_commit.cc:522 cmd_ws_commit.cc:620
 msgid "workspace"
 msgstr "spazio di lavoro"
 
@@ -742,14 +719,17 @@ msgstr ""
 msgstr ""
 "aggiorna spazio di lavoro.\n"
 "Questo comando modifica il tuo spazio di lavoro affinché sia basato su di\n"
- -"una differente versione, preservando nel contempo i cambiamenti non 
sottomessi.\n"
- -"Se è specificata una revisione, aggiorna lo spazio di lavoro a quella 
revisione.\n"
+"una differente versione, preservando nel contempo i cambiamenti non "
+"sottomessi.\n"
+"Se è specificata una revisione, aggiorna lo spazio di lavoro a quella "
+"revisione.\n"
 "Altrimenti aggiorna lo spazio di lavoro alla testa del ramo."
 
 #: cmd_merging.cc:116
 #, c-format
 msgid "this workspace is a new project; cannot update"
- -msgstr "questo spazio di lavoro è un nuovo progetto, non posso fare un 
‘update’"
+msgstr ""
+"questo spazio di lavoro è un nuovo progetto, non posso fare un ‘update’"
 
 #: cmd_merging.cc:123
 #, c-format
@@ -840,19 +820,13 @@ msgstr "[destra]   %s"
 msgid "[right] %s"
 msgstr "[destra]   %s"
 
- -#: cmd_merging.cc:335
- -#: cmd_merging.cc:606
+#: cmd_merging.cc:335 cmd_merging.cc:606
 #, c-format
 msgid "[merged] %s"
 msgstr "[unione] %s"
 
- -#: cmd_merging.cc:342
- -#: cmd_merging.cc:441
- -#: cmd_merging.cc:452
- -#: cmd_merging.cc:610
- -#: cmd_merging.cc:840
- -#: cmd_ws_commit.cc:392
- -#: cmd_ws_commit.cc:859
+#: cmd_merging.cc:342 cmd_merging.cc:441 cmd_merging.cc:452 cmd_merging.cc:610
+#: cmd_merging.cc:840 cmd_ws_commit.cc:392 cmd_ws_commit.cc:859
 #: cmd_ws_commit.cc:880
 msgid "tree"
 msgstr "albero"
@@ -861,16 +835,12 @@ msgstr "fa il ‘merge’ delle teste di
 msgid "merge unmerged heads of branch"
 msgstr "fa il ‘merge’ delle teste di un ramo"
 
- -#: cmd_merging.cc:352
- -#: cmd_merging.cc:848
+#: cmd_merging.cc:352 cmd_merging.cc:848
 #, c-format
 msgid "please specify a branch, with --branch=BRANCH"
 msgstr "specifica un ramo, con ‘--branch=RAMO’"
 
- -#: cmd_merging.cc:357
- -#: cmd_merging.cc:491
- -#: cmd_merging.cc:494
- -#: cmd_merging.cc:853
+#: cmd_merging.cc:357 cmd_merging.cc:491 cmd_merging.cc:494 cmd_merging.cc:853
 #: cmd_ws_commit.cc:437
 #, c-format
 msgid "branch '%s' is empty"
@@ -888,8 +858,7 @@ msgstr[1] "%d teste sul ramo ‘%s’"
 msgstr[0] "%d testa sul ramo ‘%s’"
 msgstr[1] "%d teste sul ramo ‘%s’"
 
- -#: cmd_merging.cc:385
- -#: cmd_merging.cc:430
+#: cmd_merging.cc:385 cmd_merging.cc:430
 #, c-format
 msgid "merge %d / %d:"
 msgstr "merge %d / %d:"
@@ -920,8 +889,7 @@ msgstr "‘merge’ di un ramo in una so
 msgid "merge one branch into a subdirectory in another branch"
 msgstr "‘merge’ di un ramo in una sottodirectory di un altro ramo"
 
- -#: cmd_merging.cc:492
- -#: cmd_merging.cc:495
+#: cmd_merging.cc:492 cmd_merging.cc:495
 #, c-format
 msgid "branch '%s' is not merged"
 msgstr "il ramo ‘%s’ è separato"
@@ -967,15 +935,16 @@ msgid "merge two explicitly given revisi
 
 #: cmd_merging.cc:612
 msgid "merge two explicitly given revisions, placing result in given branch"
- -msgstr "unisce due revisioni specificate, mettendo il risultato in un ramo 
specificato"
+msgstr ""
+"unisce due revisioni specificate, mettendo il risultato in un ramo "
+"specificato"
 
 #: cmd_merging.cc:627
 #, c-format
 msgid "%s and %s are the same revision, aborting"
 msgstr "%s e %s sono la stessa revisione, annullo"
 
- -#: cmd_merging.cc:629
- -#: cmd_merging.cc:631
+#: cmd_merging.cc:629 cmd_merging.cc:631
 #, c-format
 msgid "%s is already an ancestor of %s"
 msgstr "%s è già antenato di %s"
@@ -985,11 +954,13 @@ msgstr "REV REV"
 msgstr "REV REV"
 
 #: cmd_merging.cc:637
- -msgid "Show what conflicts would need to be resolved to merge the given 
revisions."
- -msgstr "Mostra quali conflitti andrebbero risolto per fare il ‘merge’ di 
due revisioni specificate."
+msgid ""
+"Show what conflicts would need to be resolved to merge the given revisions."
+msgstr ""
+"Mostra quali conflitti andrebbero risolto per fare il ‘merge’ di due "
+"revisioni specificate."
 
- -#: cmd_merging.cc:647
- -#: cmd_merging.cc:649
+#: cmd_merging.cc:647 cmd_merging.cc:649
 #, c-format
 msgid "%s is an ancestor of %s; no merge is needed."
 msgstr "‘%s’ è un antenato di ‘%s’: il merge non è necessario."
@@ -1099,8 +1070,7 @@ msgstr "nessun server specificato e ness
 msgid "no server given and no default server set"
 msgstr "nessun server specificato e nessun server di default impostato"
 
- -#: cmd_netsync.cc:59
- -#: cmd_netsync.cc:79
+#: cmd_netsync.cc:59 cmd_netsync.cc:79
 #, c-format
 msgid "no branch pattern given"
 msgstr "nessun pattern di ramo specificato"
@@ -1118,37 +1088,38 @@ msgid "no branch pattern given and no de
 #: cmd_netsync.cc:81
 #, c-format
 msgid "no branch pattern given and no default pattern set"
- -msgstr "nessun pattern di ramo specificato e nessun pattern di default 
impostato"
+msgstr ""
+"nessun pattern di ramo specificato e nessun pattern di default impostato"
 
- -#: cmd_netsync.cc:97
- -#: cmd_netsync.cc:112
- -#: cmd_netsync.cc:126
- -#: cmd_netsync.cc:173
+#: cmd_netsync.cc:97 cmd_netsync.cc:112 cmd_netsync.cc:126 cmd_netsync.cc:173
 msgid "network"
 msgstr "rete"
 
- -#: cmd_netsync.cc:97
- -#: cmd_netsync.cc:112
- -#: cmd_netsync.cc:126
+#: cmd_netsync.cc:97 cmd_netsync.cc:112 cmd_netsync.cc:126
 msgid "[ADDRESS[:PORTNUMBER] [PATTERN]]"
 msgstr "[INDIRIZZO[:NUMERO_PORTA] [PATTERN]]"
 
 #: cmd_netsync.cc:98
 msgid "push branches matching PATTERN to netsync server at ADDRESS"
- -msgstr "invia i rami che corrispondono a PATTERN al server netsync presso 
INDIRIZZO"
+msgstr ""
+"invia i rami che corrispondono a PATTERN al server netsync presso INDIRIZZO"
 
 #: cmd_netsync.cc:113
 msgid "pull branches matching PATTERN from netsync server at ADDRESS"
- -msgstr "riceve i rami che corrispondono a PATTERN dal server netsync presso 
INDIRIZZO"
+msgstr ""
+"riceve i rami che corrispondono a PATTERN dal server netsync presso INDIRIZZO"
 
 #: cmd_netsync.cc:120
 #, c-format
 msgid "doing anonymous pull; use -kKEYNAME if you need authentication"
- -msgstr "eseguo ‘pull’ anonimo; utilizza ‘-k NOMECHIAVE’ se necessiti 
di autenticazione"
+msgstr ""
+"eseguo ‘pull’ anonimo; utilizza ‘-k NOMECHIAVE’ se necessiti di "
+"autenticazione"
 
 #: cmd_netsync.cc:127
 msgid "sync branches matching PATTERN with netsync server at ADDRESS"
- -msgstr "sync dei rami che corrispondono a PATTERN con server netsync presso 
INDIRIZZO"
+msgstr ""
+"sync dei rami che corrispondono a PATTERN con server netsync presso INDIRIZZO"
 
 #: cmd_netsync.cc:149
 #, c-format
@@ -1170,13 +1141,18 @@ msgstr ""
 
 #: cmd_netsync.cc:189
 #, c-format
- -msgid "need permission to store persistent passphrase (see hook 
persist_phrase_ok())"
- -msgstr "è necessario un permesso per ricordare la passphrase (vedi hook 
‘persist_phrase_ok()’)"
+msgid ""
+"need permission to store persistent passphrase (see hook persist_phrase_ok())"
+msgstr ""
+"è necessario un permesso per ricordare la passphrase (vedi hook "
+"‘persist_phrase_ok()’)"
 
 #: cmd_netsync.cc:195
 #, c-format
- -msgid "The --no-transport-auth option is only permitted in combination with 
--stdio"
- -msgstr "L'opzione ‘--no-transport-auth’ è permessa solo in combinazione 
con ‘--stdio’"
+msgid ""
+"The --no-transport-auth option is only permitted in combination with --stdio"
+msgstr ""
+"L'opzione ‘--no-transport-auth’ è permessa solo in combinazione con 
‘--stdio’"
 
 #: cmd_othervcs.cc:15
 msgid "RCSFILE..."
@@ -1185,7 +1161,8 @@ msgid ""
 #: cmd_othervcs.cc:16
 msgid ""
 "parse versions in RCS files\n"
- -"this command doesn't reconstruct or import revisions.you probably want 
cvs_import"
+"this command doesn't reconstruct or import revisions.you probably want "
+"cvs_import"
 msgstr ""
 
 #: cmd_othervcs.cc:32
@@ -1200,14 +1177,11 @@ msgstr "importa tutte le versioni di un 
 msgid "import all versions in CVS repository"
 msgstr "importa tutte le versioni di un repository CVS"
 
- -#: cmd_packet.cc:21
- -#: cmd_packet.cc:50
- -#: cmd_packet.cc:69
+#: cmd_packet.cc:21 cmd_packet.cc:50 cmd_packet.cc:69
 msgid "packet i/o"
 msgstr "i/o pacchetti"
 
- -#: cmd_packet.cc:21
- -#: cmd_packet.cc:50
+#: cmd_packet.cc:21 cmd_packet.cc:50
 msgid "ID"
 msgstr "ID"
 
@@ -1364,18 +1338,20 @@ msgstr ""
 "estrae una revisione dal database in una directory.\n"
 "Se viene specificata una revisione, sarà quella ad essere estratta.\n"
 "Altrimenti sarà la testa del ramo (specificato o implicito).\n"
- -"Se nessuna directory è specificata, il nome del ramo sarà usato come 
directory"
+"Se nessuna directory è specificata, il nome del ramo sarà usato come "
+"directory"
 
- -#: cmd_ws_commit.cc:413
- -#: cmd_ws_commit.cc:432
+#: cmd_ws_commit.cc:413 cmd_ws_commit.cc:432
 #, c-format
 msgid "need --branch argument for branch-based checkout"
- -msgstr "c'è bisogno di un parametro ‘--branch=RAMO’ per estrarre un 
ramo specifico"
+msgstr ""
+"c'è bisogno di un parametro ‘--branch=RAMO’ per estrarre un ramo 
specifico"
 
 #: cmd_ws_commit.cc:426
 #, c-format
 msgid "checkout directory '%s' already exists"
- -msgstr "la directory ‘%s’ esiste già, non può essere utilizzata per il 
‘checkout’"
+msgstr ""
+"la directory ‘%s’ esiste già, non può essere utilizzata per il 
‘checkout’"
 
 #: cmd_ws_commit.cc:440
 #, c-format
@@ -1457,7 +1433,8 @@ msgstr ""
 "perhaps move or delete _MTN/log,\n"
 "or remove --message/--message-file from the command line?"
 msgstr ""
- -"‘_MTN/log’ non è vuoto e un messaggio di log è stato specificato 
sulla riga di comando\n"
+"‘_MTN/log’ non è vuoto e un messaggio di log è stato specificato sulla 
riga "
+"di comando\n"
 "forse vuoi muovere o cancellare ‘_MTN/log’ oppure\n"
 "togliere ‘--message’/‘--message-file’ dalla riga di comando?"
 
@@ -1476,15 +1453,14 @@ msgstr "la revisione %s è già nel data
 msgid "revision %s already in database"
 msgstr "la revisione %s è già nel database"
 
- -#: cmd_ws_commit.cc:762
- -#: cmd_ws_commit.cc:792
+#: cmd_ws_commit.cc:762 cmd_ws_commit.cc:792
 #, c-format
 msgid "file '%s' modified during commit, aborting"
 msgstr "file ‘%s’ modificato durante il commit, abbandono"
 
 #: cmd_ws_commit.cc:774
- -#, c-format
- -msgid "Your database is missing version %1% of file '%2%'"
+#, fuzzy, c-format
+msgid "Your database is missing version %s of file '%s'"
 msgstr "Nel tuo database manca la versione %1% del file ‘%2%’"
 
 #: cmd_ws_commit.cc:820
@@ -1507,7 +1483,9 @@ msgid "setup a new workspace directory, 
 
 #: cmd_ws_commit.cc:860
 msgid "setup a new workspace directory, default to current"
- -msgstr "imposta una nuova directory come spazio di lavoro, il default è 
quella attuale"
+msgstr ""
+"imposta una nuova directory come spazio di lavoro, il default è quella "
+"attuale"
 
 #: cmd_ws_commit.cc:866
 #, c-format
@@ -1518,8 +1496,7 @@ msgstr "aggiorna la cache degli inodepri
 msgid "refresh the inodeprint cache"
 msgstr "aggiorna la cache degli inodeprint"
 
- -#: commands.cc:130
- -#: commands.cc:232
+#: commands.cc:130 commands.cc:232
 #, c-format
 msgid "unknown command '%s'"
 msgstr "comando ‘%s’ sconosciuto"
@@ -1596,9 +1573,7 @@ msgstr "contrassegni"
 msgid "markings"
 msgstr "contrassegni"
 
- -#: database_check.cc:338
- -#: netsync.cc:2967
- -#: rcs_import.cc:1244
+#: database_check.cc:338 netsync.cc:2967 rcs_import.cc:1244
 msgid "revisions"
 msgstr "revisioni"
 
@@ -1606,8 +1581,7 @@ msgstr "ascendenza"
 msgid "ancestry"
 msgstr "ascendenza"
 
- -#: database_check.cc:470
- -#: netsync.cc:2971
+#: database_check.cc:470 netsync.cc:2971
 msgid "keys"
 msgstr "chiavi"
 
@@ -1644,7 +1618,8 @@ msgid "roster %s is not parseable (perha
 #: database_check.cc:581
 #, c-format
 msgid "roster %s is not parseable (perhaps with unnormalized paths?)"
- -msgstr "roster ‘%s’ non comprensibile (forse a causa di percorsi non 
normalizzati)"
+msgstr ""
+"roster ‘%s’ non comprensibile (forse a causa di percorsi non 
normalizzati)"
 
 #: database_check.cc:588
 #, c-format
@@ -1653,8 +1628,13 @@ msgstr "il roster ‘%s’ non è in for
 
 #: database_check.cc:613
 #, c-format
- -msgid "revision %s missing (%d revision references; %d cert references; %d 
parent references; %d child references; %d roster references)"
- -msgstr "revisione %s mancante (%d riferimenti alla revisione; %d riferimenti 
al certificato; %d riferimenti al genitore; %d riferimenti al figlio; %d 
riferimenti al roster)"
+msgid ""
+"revision %s missing (%d revision references; %d cert references; %d parent "
+"references; %d child references; %d roster references)"
+msgstr ""
+"revisione %s mancante (%d riferimenti alla revisione; %d riferimenti al "
+"certificato; %d riferimenti al genitore; %d riferimenti al figlio; %d "
+"riferimenti al roster)"
 
 #: database_check.cc:621
 #, c-format
@@ -1690,13 +1670,16 @@ msgid "revision %s mismatched parents (%
 #: database_check.cc:659
 #, c-format
 msgid "revision %s mismatched parents (%d ancestry parents; %d revision refs)"
- -msgstr "la revisione %s non corrisponde ai genitori (%d stirpi di genitori; 
%d riferimenti alla revisione)"
+msgstr ""
+"la revisione %s non corrisponde ai genitori (%d stirpi di genitori; %d "
+"riferimenti alla revisione)"
 
 # TODO: stirpi?
 #: database_check.cc:668
 #, c-format
 msgid "revision %s mismatched children (%d ancestry children; %d parents)"
- -msgstr "la revisione %s non corrisponde ai figli (%d stirpi di figli; %d 
genitori)"
+msgstr ""
+"la revisione %s non corrisponde ai figli (%d stirpi di figli; %d genitori)"
 
 #: database_check.cc:680
 #, c-format
@@ -1707,7 +1690,8 @@ msgid "revision %s is not parseable (per
 #: database_check.cc:687
 #, c-format
 msgid "revision %s is not parseable (perhaps with unnormalized paths?)"
- -msgstr "revisione %s non comprensibile (forse a causa di percorsi non 
normalizzati)"
+msgstr ""
+"revisione %s non comprensibile (forse a causa di percorsi non normalizzati)"
 
 #: database_check.cc:694
 #, c-format
@@ -1722,22 +1706,27 @@ msgid "revision %s unchecked signature i
 #: database_check.cc:751
 #, c-format
 msgid "revision %s unchecked signature in %s cert from missing key %s"
- -msgstr "revisione ‘%s’ firma non controllata nel certificato ‘%s’ 
per chiave ‘%s’ mancante"
+msgstr ""
+"revisione ‘%s’ firma non controllata nel certificato ‘%s’ per chiave 
‘%s’ "
+"mancante"
 
 #: database_check.cc:759
 #, c-format
 msgid "revision %s bad signature in %s cert from key %s"
- -msgstr "revisione ‘%s’ firma non ammessa per certificato ‘%s’ della 
chiave ‘%s’"
+msgstr ""
+"revisione ‘%s’ firma non ammessa per certificato ‘%s’ della chiave 
‘%s’"
 
 #: database_check.cc:774
- -#, c-format
- -msgid "revision %1% missing %2% cert"
+#, fuzzy, c-format
+msgid "revision %s missing %s cert"
 msgstr "alla revisione ‘%1%’ manca il certificato ‘%2%’"
 
 #: database_check.cc:783
 #, c-format
 msgid "revision %s mismatched certs (%d authors %d dates %d changelogs)"
- -msgstr "la revisione ‘%s’ non corrisponde ai certificati (%d autori %d 
date %d changelogs)"
+msgstr ""
+"la revisione ‘%s’ non corrisponde ai certificati (%d autori %d date %d "
+"changelogs)"
 
 #: database_check.cc:870
 #, c-format
@@ -1842,7 +1831,9 @@ msgid "check complete: %d files; %d rost
 #: database_check.cc:944
 #, c-format
 msgid "check complete: %d files; %d rosters; %d revisions; %d keys; %d certs"
- -msgstr "controllo completo: %d file; %d roster; %d revisioni; %d chiavi; %d 
certificati"
+msgstr ""
+"controllo completo: %d file; %d roster; %d revisioni; %d chiavi; %d "
+"certificati"
 
 #: database_check.cc:950
 #, c-format
@@ -1921,10 +1912,10 @@ msgid "database %s is not an sqlite vers
 #: database.cc:253
 #, c-format
 msgid "database %s is not an sqlite version 3 file, try dump and reload"
- -msgstr "il database ‘%s’ non è un file SQLite versione 3, prova 
‘dump’ e ‘reload’"
+msgstr ""
+"il database ‘%s’ non è un file SQLite versione 3, prova ‘dump’ e 
‘reload’"
 
- -#: database.cc:282
- -#: schema_migration.cc:200
+#: database.cc:282 schema_migration.cc:200
 msgid ""
 "make sure database and containing directory are writeable\n"
 "and you have not run out of disk space"
@@ -1932,8 +1923,7 @@ msgstr ""
 "assicurati che database e directory contenente sia scrivibili\n"
 "e non devi uscire dallo spazio disco"
 
- -#: database.cc:288
- -#: schema_migration.cc:205
+#: database.cc:288 schema_migration.cc:205
 #, c-format
 msgid ""
 "sqlite error: %s\n"
@@ -1950,7 +1940,8 @@ msgid ""
 #: database.cc:338
 #, c-format
 msgid ""
- -"existing (possibly stale) journal file '%s' has same stem as new database 
'%s'\n"
+"existing (possibly stale) journal file '%s' has same stem as new database '%"
+"s'\n"
 "cancelling database creation"
 msgstr ""
 
@@ -2058,22 +2049,22 @@ msgstr "non riesco ad aprire il database
 msgid "could not open database '%s': %s"
 msgstr "non riesco ad aprire il database ‘%s’: %s"
 
- -#: diff_patch.cc:608
+#: diff_patch.cc:610
 #, c-format
 msgid "file '%s' does not exist in workspace"
 msgstr "il file ‘%s’ non esiste nello spazio di lavoro"
 
- -#: diff_patch.cc:609
+#: diff_patch.cc:611
 #, c-format
 msgid "'%s' in workspace is a directory, not a file"
 msgstr "nello spazio di lavoro ‘%s’ è una directory, non un file"
 
- -#: diff_patch.cc:613
+#: diff_patch.cc:615
 #, c-format
 msgid "file %s in workspace has id %s, wanted %s"
 msgstr "il file ‘%s’ hd id ‘%s’ nello spazio di lavoro, era atteso 
‘%s’"
 
- -#: diff_patch.cc:734
+#: diff_patch.cc:736
 #, c-format
 msgid ""
 "help required for 3-way merge\n"
@@ -2088,8 +2079,7 @@ msgstr ""
 "[  destra] %s\n"
 "[  unione] %s\n"
 
- -#: file_io.cc:176
- -#: file_io.cc:183
+#: file_io.cc:176 file_io.cc:183
 #, c-format
 msgid ""
 "could not create directory '%s'\n"
@@ -2169,10 +2159,10 @@ msgid "rename source file '%s' is a dire
 #: file_io.cc:255
 #, c-format
 msgid "rename source file '%s' is a directory -- bug in monotone?"
- -msgstr "il file sorgente da rinominare ‘%s’ è una directory -- bug in 
monotone?"
+msgstr ""
+"il file sorgente da rinominare ‘%s’ è una directory -- bug in monotone?"
 
- -#: file_io.cc:258
- -#: file_io.cc:271
+#: file_io.cc:258 file_io.cc:271
 #, c-format
 msgid "rename target '%s' already exists"
 msgstr "esiste già un'altra chiave con nome ‘%s’"
@@ -2252,8 +2242,7 @@ msgstr "le passphrase non può essere vu
 msgid "empty passphrases not allowed, try again"
 msgstr "le passphrase non può essere vuota, riprova"
 
- -#: keys.cc:128
- -#: keys.cc:135
+#: keys.cc:128 keys.cc:135
 #, c-format
 msgid "too many failed passphrases"
 msgstr "troppe passphrase errate"
@@ -2273,8 +2262,7 @@ msgstr "passphrase incorretta per ‘%sâ
 msgid "passphrase for '%s' is incorrect"
 msgstr "passphrase incorretta per ‘%s’"
 
- -#: lua.cc:462
- -#: lua.cc:476
+#: lua.cc:462 lua.cc:476
 #, c-format
 msgid "%s called with an invalid parameter"
 msgstr "‘%s’ chiamato con un parametro non valido"
@@ -2284,9 +2272,7 @@ msgstr "La directory ‘%s’ non esiste
 msgid "Directory '%s' does not exist"
 msgstr "La directory ‘%s’ non esiste"
 
- -#: lua.cc:480
- -#: rcs_import.cc:1235
- -#: work.cc:474
+#: lua.cc:480 rcs_import.cc:1235 work.cc:474
 #, c-format
 msgid "'%s' is not a directory"
 msgstr "‘%s’ non è una directory"
@@ -2420,7 +2406,9 @@ msgid "when rosterifying, drop attrs ent
 
 #: monotone.cc:118
 msgid "when rosterifying, drop attrs entries with the given key"
- -msgstr "durante la conversione al formato con roster, elimina gli attributi 
con una chiave specificata"
+msgstr ""
+"durante la conversione al formato con roster, elimina gli attributi con una "
+"chiave specificata"
 
 #: monotone.cc:119
 msgid "exclude files when printing logs"
@@ -2584,11 +2572,15 @@ msgid "the remote side has a newer, inco
 
 #: netcmd.cc:125
 msgid "the remote side has a newer, incompatible version of monotone"
- -msgstr "all'altro capo c'è una versione più nuova di monotone, non 
compatibile con questa"
+msgstr ""
+"all'altro capo c'è una versione più nuova di monotone, non compatibile con "
+"questa"
 
 #: netcmd.cc:126
 msgid "the remote side has an older, incompatible version of monotone"
- -msgstr "all'altro capo c'è una versione più vecchia di monotone, non 
compatibile con questa"
+msgstr ""
+"all'altro capo c'è una versione più vecchia di monotone, non compatibile 
con "
+"questa"
 
 #: netcmd.cc:136
 #, c-format
@@ -2602,20 +2594,17 @@ msgstr ""
 "this suggests data was corrupted in transit\n"
 msgstr ""
 
- -#: netcmd.cc:272
- -#: netcmd.cc:318
+#: netcmd.cc:272 netcmd.cc:318
 #, c-format
 msgid "unknown role specifier %d"
 msgstr "specificatore di ruolo %d sconosciuto"
 
- -#: netio.hh:41
- -#: netio.hh:59
+#: netio.hh:41 netio.hh:59
 #, c-format
 msgid "need %d bytes to decode %s at %d, only have %d"
 msgstr ""
 
- -#: netio.hh:87
- -#: netio.hh:122
+#: netio.hh:87 netio.hh:122
 #, fuzzy, c-format
 msgid "uleb128 decode for '%s' into %d-byte datum overflowed"
 msgstr "la decodifica uleb128 per ‘%s’ in ***datum*** %d-byte 
***overflow***"
@@ -2628,7 +2617,9 @@ msgid "decoding variable length string o
 #: netio.hh:278
 #, c-format
 msgid "decoding variable length string of %d bytes for '%s', maximum is %d"
- -msgstr "decodifica in corso della stringa a lungheza variabile di %d byte 
per ‘%s’, il massimo è %d"
+msgstr ""
+"decodifica in corso della stringa a lungheza variabile di %d byte per 
‘%s’, "
+"il massimo è %d"
 
 #: netio.hh:333
 #, c-format
@@ -2652,8 +2643,7 @@ msgstr "cert. ↓"
 msgid "certs in"
 msgstr "cert. ↓"
 
- -#: netsync.cc:732
- -#: netsync.cc:745
+#: netsync.cc:732 netsync.cc:745
 msgid "revs in"
 msgstr "rev. ↓"
 
@@ -2661,8 +2651,7 @@ msgstr "cert. ↑"
 msgid "certs out"
 msgstr "cert. ↑"
 
- -#: netsync.cc:739
- -#: netsync.cc:747
+#: netsync.cc:739 netsync.cc:747
 msgid "revs out"
 msgstr "rev. ↑"
 
@@ -2725,8 +2714,7 @@ msgstr "rifiutato un tentativo di connes
 msgid "rejected attempt at anonymous connection while running as sink"
 msgstr "rifiutato un tentativo di connessione anonima funzionando come pozzo"
 
- -#: netsync.cc:1372
- -#: netsync.cc:1496
+#: netsync.cc:1372 netsync.cc:1496
 #, c-format
 msgid "not serving branch '%s'"
 msgstr "il ramo ‘%s’ non è servito"
@@ -2744,7 +2732,8 @@ msgid "allowed anonymous read/write perm
 #: netsync.cc:1391
 #, c-format
 msgid "allowed anonymous read/write permission for '%s' excluding '%s'"
- -msgstr "concessi permessi di lettura/scrittura anonime a ‘%s’ con 
esclusione di ‘%s’"
+msgstr ""
+"concessi permessi di lettura/scrittura anonime a ‘%s’ con esclusione di 
‘%s’"
 
 #: netsync.cc:1447
 #, c-format
@@ -2758,13 +2747,20 @@ msgstr "l'hash ‘%s’ della chiave pub
 
 #: netsync.cc:1484
 #, c-format
- -msgid "denied '%s' read permission for '%s' excluding '%s' while running as 
pure sink"
- -msgstr "negato a ‘%s’ il permesso di lettura a ‘%s’ con esclusione 
di ‘%s’ nel ruolo di pozzo"
+msgid ""
+"denied '%s' read permission for '%s' excluding '%s' while running as pure "
+"sink"
+msgstr ""
+"negato a ‘%s’ il permesso di lettura a ‘%s’ con esclusione di 
‘%s’ nel ruolo "
+"di pozzo"
 
 #: netsync.cc:1501
 #, c-format
- -msgid "denied '%s' read permission for '%s' excluding '%s' because of branch 
'%s'"
- -msgstr "negato a ‘%s’ il permesso di lettura a ‘%s’ con esclusione 
di ‘%s’ a causa del ramo ‘%s’"
+msgid ""
+"denied '%s' read permission for '%s' excluding '%s' because of branch '%s'"
+msgstr ""
+"negato a ‘%s’ il permesso di lettura a ‘%s’ con esclusione di 
‘%s’ a causa "
+"del ramo ‘%s’"
 
 #: netsync.cc:1511
 #, c-format
@@ -2773,8 +2769,12 @@ msgstr "concessi a ‘%s’ permessi di 
 
 #: netsync.cc:1521
 #, c-format
- -msgid "denied '%s' write permission for '%s' excluding '%s' while running as 
pure source"
- -msgstr "negato a ‘%s’ il permesso di scrittura a ‘%s’ con esclusione 
di ‘%s’ nel ruolo di sorgente"
+msgid ""
+"denied '%s' write permission for '%s' excluding '%s' while running as pure "
+"source"
+msgstr ""
+"negato a ‘%s’ il permesso di scrittura a ‘%s’ con esclusione di 
‘%s’ nel "
+"ruolo di sorgente"
 
 #: netsync.cc:1528
 #, c-format
@@ -2814,7 +2814,9 @@ msgid "Mismatched epoch on branch %s. Se
 #: netsync.cc:1857
 #, c-format
 msgid "Mismatched epoch on branch %s. Server has '%s', client has '%s'."
- -msgstr "Epoca non corrispondente sul ramo ‘%s’: il server usa ‘%s’, 
il client usa ‘%s’."
+msgstr ""
+"Epoca non corrispondente sul ramo ‘%s’: il server usa ‘%s’, il client 
usa ‘%"
+"s’."
 
 #: netsync.cc:1875
 #, c-format
@@ -2831,18 +2833,15 @@ msgstr "Ricevuto avvertimento dall'uscie
 msgid "Received warning from usher: %s"
 msgstr "Ricevuto avvertimento dall'usciere: %s"
 
- -#: netsync.cc:2038
- -#: netsync.cc:2069
+#: netsync.cc:2038 netsync.cc:2069
 msgid "source and sink"
 msgstr "sorgente e pozzo"
 
- -#: netsync.cc:2039
- -#: netsync.cc:2070
+#: netsync.cc:2039 netsync.cc:2070
 msgid "source"
 msgstr "sorgente"
 
- -#: netsync.cc:2039
- -#: netsync.cc:2070
+#: netsync.cc:2039 netsync.cc:2070
 msgid "sink"
 msgstr "pozzo"
 
@@ -2851,8 +2850,7 @@ msgstr ""
 msgid "input buffer for peer %s is overfull after netcmd dispatch\n"
 msgstr ""
 
- -#: netsync.cc:2238
- -#: netsync.cc:2337
+#: netsync.cc:2238 netsync.cc:2337
 #, c-format
 msgid "protocol error while processing peer %s: '%s'"
 msgstr "errore di protocollo processando il peer %s: '%s' "
@@ -2895,7 +2893,8 @@ msgid "protocol error while processing p
 #: netsync.cc:2469
 #, c-format
 msgid "protocol error while processing peer %s: '%s', marking as bad"
- -msgstr "errore di protocollo processando peer ‘%s’: ‘%s’, marcato 
come invalido"
+msgstr ""
+"errore di protocollo processando peer ‘%s’: ‘%s’, marcato come 
invalido"
 
 #: netsync.cc:2501
 #, c-format
@@ -2914,7 +2913,8 @@ msgstr ""
 
 #: netsync.cc:2554
 #, c-format
- -msgid "peer %s read failed in shutdown state (possibly client misreported 
error)\n"
+msgid ""
+"peer %s read failed in shutdown state (possibly client misreported error)\n"
 msgstr ""
 
 #: netsync.cc:2560
@@ -2929,7 +2929,8 @@ msgstr ""
 
 #: netsync.cc:2586
 #, c-format
- -msgid "peer %s write failed in shutdown state (possibly client misreported 
error)\n"
+msgid ""
+"peer %s write failed in shutdown state (possibly client misreported error)\n"
 msgstr ""
 
 #: netsync.cc:2592
@@ -3006,8 +3007,7 @@ msgstr ""
 "%s\n"
 msgstr ""
 
- -#: netsync.cc:3163
- -#: netsync.cc:3167
+#: netsync.cc:3163 netsync.cc:3167
 #, c-format
 msgid "network error: %s"
 msgstr "errore di rete: %s"
@@ -3027,10 +3027,7 @@ msgstr "manca un requisito: la revisione
 msgid "missing prerequisite revision '%s'"
 msgstr "manca un requisito: la revisione %s"
 
- -#: packet.cc:140
- -#: packet.cc:151
- -#: packet.cc:167
- -#: packet.cc:175
+#: packet.cc:140 packet.cc:151 packet.cc:167 packet.cc:175
 #, c-format
 msgid "dropping revision '%s'"
 msgstr "elimino la revisione %s"
@@ -3080,7 +3077,8 @@ msgid "parse failure %d:%d: expecting %s
 #: rcs_file.cc:354
 #, c-format
 msgid "parse failure %d:%d: expecting %s, got %s with value '%s'\n"
- -msgstr "errore sintattico %d:%d: mi aspettavo %s, ho ricevuto %s con valore 
‘%s’\n"
+msgstr ""
+"errore sintattico %d:%d: mi aspettavo %s, ho ricevuto %s con valore 
‘%s’\n"
 
 #: rcs_file.cc:373
 #, c-format
@@ -3158,12 +3156,16 @@ msgid "Directory for path %s cannot be a
 #: revision.cc:1010
 #, c-format
 msgid "Directory for path %s cannot be added, as there is a file in the way\n"
- -msgstr "La cartella per il percorso ‘%s’ non può essere aggiunta, dato 
che c'è già un file con lo stesso nome\n"
+msgstr ""
+"La cartella per il percorso ‘%s’ non può essere aggiunta, dato che c'è 
già "
+"un file con lo stesso nome\n"
 
 #: revision.cc:1021
 #, c-format
 msgid "Path %s cannot be added, as there is a directory in the way"
- -msgstr "Il percorso ‘%s’ non può essere aggiunto, dato che c'è già 
una directory con lo stesso nome"
+msgstr ""
+"Il percorso ‘%s’ non può essere aggiunto, dato che c'è già una 
directory con "
+"lo stesso nome"
 
 #: revision.cc:1024
 #, c-format
@@ -3182,7 +3184,8 @@ msgid "converting existing revision grap
 #: revision.cc:1423
 #, c-format
 msgid "converting existing revision graph to new roster-style revisions"
- -msgstr "converto il grafo esistente delle revisioni al nuovo formato con 
roster"
+msgstr ""
+"converto il grafo esistente delle revisioni al nuovo formato con roster"
 
 #: revision.cc:1478
 #, c-format
@@ -3248,7 +3251,9 @@ msgid "mismatched result of migration, g
 #: schema_migration.cc:292
 #, c-format
 msgid "mismatched result of migration, got %s, wanted %s"
- -msgstr "risultati della migrazione diversi da quanto previsto: ho ottenuto 
‘%s’ e mi aspettavo ‘%s’"
+msgstr ""
+"risultati della migrazione diversi da quanto previsto: ho ottenuto ‘%s’ e 
mi "
+"aspettavo ‘%s’"
 
 #: schema_migration.cc:295
 #, c-format
@@ -3283,7 +3288,9 @@ msgid "no migration performed; database 
 #: schema_migration.cc:316
 #, c-format
 msgid "no migration performed; database schema already up-to-date at %s"
- -msgstr "nessuna migrazione effettuata: lo schema del database era già 
aggiornato a ‘%s’"
+msgstr ""
+"nessuna migrazione effettuata: lo schema del database era già aggiornato a 
‘%"
+"s’"
 
 #: schema_migration.cc:866
 #, c-format
@@ -3295,11 +3302,11 @@ msgstr "sposto chiave ‘%s’ dal datab
 msgid "moving key '%s' from database to %s"
 msgstr "sposto chiave ‘%s’ dal database a ‘%s’"
 
- -#: std_hooks.lua:37
+#: std_hooks.lua:48
 msgid "Press enter"
 msgstr "Premi ‘invio’"
 
- -#: std_hooks.lua:39
+#: std_hooks.lua:50
 msgid "Press enter when the subprocess has completed"
 msgstr "Premi ‘invio’ quando il sotto-processo è completato"
 
@@ -3522,14 +3529,12 @@ msgstr "sto cancellando ‘%s’"
 msgid "dropping %s"
 msgstr "sto cancellando ‘%s’"
 
- -#: work.cc:929
- -#: work.cc:940
+#: work.cc:929 work.cc:940
 #, c-format
 msgid "path %s already exists"
 msgstr "il percorso ‘%s’ esiste già"
 
- -#: work.cc:962
- -#: work.cc:989
+#: work.cc:962 work.cc:989
 #, c-format
 msgid "adding %s"
 msgstr "aggiungo ‘%s’"
@@ -3563,4 +3568,3 @@ msgstr "modifico ‘%s’"
 #, c-format
 msgid "modifying %s"
 msgstr "modifico ‘%s’"
- -
============================================================
- --- po/ja.po  93fbc1f52b7dbc2c9aeb397879a909369734be85
+++ po/ja.po    46f9111d210f21e662105a3431daa0b021ec8fe6
@@ -7,7 +7,7 @@ msgstr ""
 msgstr ""
 "Project-Id-Version: monotone HEAD\n"
 "Report-Msgid-Bugs-To: \n"
- -"POT-Creation-Date: 2006-08-02 16:49-0700\n"
+"POT-Creation-Date: 2006-08-13 22:32-0400\n"
 "PO-Revision-Date: 2006-04-06 22:47+0900\n"
 "Last-Translator: Satoru SATOH <address@hidden>\n"
 "Language-Team: Japanese <address@hidden>\n"
@@ -16,57 +16,62 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
- -#: app_state.cc:141
+#: app_state.cc:142
 #, c-format
 msgid "workspace required but not found%s%s"
 msgstr "ワークスペースが必
要ですがみつかりませんでした%s%s"
 
- -#: app_state.cc:149
+#: app_state.cc:150
 #, c-format
 msgid "invalid directory ''"
 msgstr "無効なディレクトリ ''"
 
- -#: app_state.cc:157
+#: app_state.cc:158
 #, fuzzy, c-format
 msgid "monotone bookkeeping directory '%s' already exists in '%s'"
 msgstr "monotone 記録簿用ディレクトリ '%s' は既に '%s' 内
に存在しています\n"
 
- -#: app_state.cc:238
+#: app_state.cc:239
 #, c-format
 msgid "search root '%s' does not exist"
 msgstr "検索ルート '%s' は存在しません"
 
- -#: app_state.cc:239
+#: app_state.cc:240
 #, c-format
 msgid "search root '%s' is not a directory\n"
 msgstr "検索ルート '%s' はディレクトリではありません\n"
 
- -#: app_state.cc:273
+#: app_state.cc:274
 #, c-format
 msgid "failed to parse date string '%s': %s"
 msgstr "データ文字列 '%s' の解析に失敗: %s"
 
- -#: app_state.cc:288
+#: app_state.cc:289
 #, c-format
 msgid "negative depth not allowed\n"
 msgstr "深さの値を負にすることはできません\n"
 
- -#: app_state.cc:296
+#: app_state.cc:297
 #, c-format
 msgid "illegal argument to --last: cannot be zero or negative\n"
 msgstr ""
 
- -#: app_state.cc:304
+#: app_state.cc:305
 #, c-format
 msgid "illegal argument to --next: cannot be zero or negative\n"
 msgstr ""
 
- -#: app_state.cc:440
+#: app_state.cc:389
 #, c-format
+msgid "illegal argument to --automate-stdio-size: cannot be zero or negative\n"
+msgstr ""
+
+#: app_state.cc:449
+#, c-format
 msgid "Failed to read options file %s"
 msgstr "オプションファイル '%s' の解析に失敗"
 
- -#: app_state.cc:457
+#: app_state.cc:466
 #, c-format
 msgid "Failed to write options file %s"
 msgstr "オプションファイル '%s' の書き込みに失敗"
@@ -141,27 +146,27 @@ msgstr "リビジョン %s のブランã
 "multiple branch certs found for revision %s, please provide a branch name"
 msgstr "リビジョン %s のブランチ証明は複数あります. 
ブランチ名を指定して下さい"
 
- -#: cmd_automate.cc:205
+#: cmd_automate.cc:206
 #, c-format
 msgid "read from client failed with error code: %d"
 msgstr ""
 
- -#: cmd_automate.cc:248
+#: cmd_automate.cc:249
 #, fuzzy, c-format
 msgid "Bad input to automate stdio"
 msgstr "parse_basic_io に対し不正な入力"
 
- -#: cmd_automate.cc:301
+#: cmd_automate.cc:303
 msgid "automation"
 msgstr "自動化"
 
- -#: cmd_automate.cc:302
+#: cmd_automate.cc:304
 msgid "automation interface"
 msgstr "自動化インターフェース"
 
 #: cmd_db.cc:35 cmd_diff_log.cc:387 cmd_diff_log.cc:419 cmd_diff_log.cc:421
 #: cmd_files.cc:138 cmd_files.cc:200 cmd_merging.cc:146 cmd_merging.cc:699
- -#: cmd_merging.cc:714 cmd_merging.cc:717 cmd_ws_commit.cc:453 commands.cc:393
+#: cmd_merging.cc:714 cmd_merging.cc:717 cmd_ws_commit.cc:453 commands.cc:433
 #, c-format
 msgid "no such revision '%s'"
 msgstr "リビジョン '%s' は存在しません"
@@ -243,7 +248,7 @@ msgstr "%s という変数はドメイãƒ
 
 #: cmd_db.cc:152 cmd_diff_log.cc:331 cmd_diff_log.cc:543 cmd_files.cc:114
 #: cmd_files.cc:181 cmd_list.cc:448 cmd_merging.cc:636 cmd_ws_commit.cc:328
- -#: commands.cc:248
+#: commands.cc:253
 msgid "informative"
 msgstr "情報"
 
@@ -1431,7 +1436,7 @@ msgstr "ファイル '%s' は commit 前
 
 #: cmd_ws_commit.cc:774
 #, fuzzy, c-format
- -msgid "Your database is missing version %1% of file '%2%'"
+msgid "Your database is missing version %s of file '%s'"
 msgstr "ファイル %s 内
のデータベースバージョンを検出できませんでした"
 
 #: cmd_ws_commit.cc:820
@@ -1465,53 +1470,53 @@ msgstr "i-node 表示キャッシュをæ
 msgid "refresh the inodeprint cache"
 msgstr "i-node 表示キャッシュを更新"
 
- -#: commands.cc:125 commands.cc:227
+#: commands.cc:130 commands.cc:232
 #, fuzzy, c-format
 msgid "unknown command '%s'"
 msgstr "不明なコマンド '%s'\n"
 
- -#: commands.cc:136
+#: commands.cc:141
 #, c-format
 msgid "command '%s' has multiple ambiguous expansions:\n"
 msgstr "'%s' だ
けでは曖昧で、展開できるコマンド候補は複数あります:\n"
 
- -#: commands.cc:169
+#: commands.cc:174
 msgid "commands:"
 msgstr "コマンド:"
 
- -#: commands.cc:248
+#: commands.cc:253
 msgid "command [ARGS...]"
 msgstr "command [ARGS...]"
 
- -#: commands.cc:248
+#: commands.cc:253
 msgid "display command help"
 msgstr "コマンドヘルプを表示"
 
- -#: commands.cc:400
+#: commands.cc:440
 #, fuzzy, c-format
 msgid "expanding selection '%s'"
 msgstr "セレクション '%s' を展開\n"
 
- -#: commands.cc:408
+#: commands.cc:448
 #, c-format
 msgid "no match for selection '%s'"
 msgstr "セレクション '%s' に一致するものがありません"
 
- -#: commands.cc:414
+#: commands.cc:454
 #, fuzzy, c-format
 msgid "expanded to '%s'"
 msgstr "'%s' に展開\n"
 
- -#: commands.cc:431
+#: commands.cc:471
 #, c-format
 msgid "selection '%s' has multiple ambiguous expansions: \n"
 msgstr "'%s' だ
けでは曖昧で、展開できるセレクションの候補は複数あります:
 \n"
 
- -#: commands.cc:448
+#: commands.cc:488
 msgid "note: "
 msgstr "ノート: "
 
- -#: commands.cc:449
+#: commands.cc:489
 #, c-format
 msgid ""
 "branch '%s' has multiple heads\n"
@@ -1520,7 +1525,7 @@ msgstr ""
 "ブランチ '%s' には複数の最新版 (HEAD) があります\n"
 "’%s merge' を実行した方がよいでしょう"
 
- -#: commands.cc:467
+#: commands.cc:507
 #, c-format
 msgid "--message and --message-file are mutually exclusive"
 msgstr "--message と --message-file 
を同時に指定することはできません"
@@ -1676,7 +1681,7 @@ msgstr "リビジョン %s の %s 証明
 
 #: database_check.cc:774
 #, fuzzy, c-format
- -msgid "revision %1% missing %2% cert"
+msgid "revision %s missing %s cert"
 msgstr "リビジョン %s は %s 証明を欠いています\n"
 
 #: database_check.cc:783
@@ -1809,7 +1814,7 @@ msgstr "データベースは正常でã
 msgid "database is good"
 msgstr "データベースは正常です\n"
 
- -#: database.cc:156
+#: database.cc:157
 #, c-format
 msgid ""
 "layout of database %s doesn't match this version of monotone\n"
@@ -1822,12 +1827,12 @@ msgstr ""
 "'%s db migrate' として更新してみて下さい\n"
 
"(これは不可逆ですので、まずバックアップをとった方がいいでしょう)"
 
- -#: database.cc:170
+#: database.cc:171
 #, c-format
 msgid "this database already contains rosters"
 msgstr "このデータベースには既に名簿が含まれています"
 
- -#: database.cc:190
+#: database.cc:191
 #, c-format
 msgid ""
 "database %s contains revisions but no rosters\n"
@@ -1845,7 +1850,7 @@ msgstr ""
 "統合し、新しいデータベースに取り込むのを待
って下さい。\n"
 "不便ですみません。"
 
- -#: database.cc:209
+#: database.cc:210
 #, c-format
 msgid ""
 "database %s contains manifests but no revisions\n"
@@ -1856,19 +1861,19 @@ msgstr ""
 "このデータベースは古すぎるのでアップグレードする必
要があります\n"
 "詳細については README.changesets を参照して下さい"
 
- -#: database.cc:245
+#: database.cc:246
 #, c-format
 msgid "unable to probe database version in file %s"
 msgstr "ファイル %s 内
のデータベースバージョンを検出できませんでした"
 
- -#: database.cc:252
+#: database.cc:253
 #, c-format
 msgid "database %s is not an sqlite version 3 file, try dump and reload"
 msgstr ""
 "データベース %s は SQLite ver. 3 
のファイルではありません。ダンプした後再度読"
 "み込んでみて下さい"
 
- -#: database.cc:281 schema_migration.cc:200
+#: database.cc:282 schema_migration.cc:200
 msgid ""
 "make sure database and containing directory are writeable\n"
 "and you have not run out of disk space"
@@ -1876,7 +1881,7 @@ msgstr ""
 
"データベースとそれを含むディレクトリが書き込み可能であるか、\n"
 "そしてディスク容量が不足していないか確認して下さい"
 
- -#: database.cc:287 schema_migration.cc:205
+#: database.cc:288 schema_migration.cc:205
 #, c-format
 msgid ""
 "sqlite error: %s\n"
@@ -1885,12 +1890,12 @@ msgstr ""
 "sqlite エラー: %s\n"
 "%s"
 
- -#: database.cc:332
+#: database.cc:333
 #, c-format
 msgid "could not initialize database: %s: already exists"
 msgstr "データベースを初期化できませんでした: %s: 
既に存在しています"
 
- -#: database.cc:337
+#: database.cc:338
 #, c-format
 msgid ""
 "existing (possibly stale) journal file '%s' has same stem as new database '%"
@@ -1901,12 +1906,12 @@ msgstr ""
 "じ幹を持っています\n"
 "データベース作成を中止します"
 
- -#: database.cc:487
+#: database.cc:488
 #, c-format
 msgid "cannot create %s; it already exists"
 msgstr "%s を作成できません; 既に存在しています"
 
- -#: database.cc:564
+#: database.cc:565
 #, fuzzy, c-format
 msgid ""
 "schema version    : %s\n"
@@ -1954,73 +1959,73 @@ msgstr ""
 "  ページサイズ      : %u\n"
 "  キャッシュサイズ  : %u\n"
 
- -#: database.cc:626
+#: database.cc:627
 #, c-format
 msgid "database schema version: %s"
 msgstr "基準スキーマバージョン: %s"
 
- -#: database.cc:703
+#: database.cc:704
 #, c-format
 msgid "multiple statements in query: %s\n"
 msgstr "クエリ中に複数のステートメント: %s\n"
 
- -#: database.cc:709
+#: database.cc:710
 #, fuzzy, c-format
 msgid "wanted %d columns got %d in query: %s"
 msgstr "クエリで %d 列要求しましたが得たのは %d 列です: 
%s\n"
 
- -#: database.cc:768
+#: database.cc:769
 #, fuzzy, c-format
 msgid "null result in query: %s"
 msgstr "クエリ中に結果 null が含まれています: %s\n"
 
- -#: database.cc:786
+#: database.cc:787
 #, fuzzy, c-format
 msgid "wanted %d rows got %d in query: %s"
 msgstr "クエリで %d 行要求しましたが得たのは %s です: %s\n"
 
- -#: database.cc:1926
+#: database.cc:1950
 #, c-format
 msgid "another key with name '%s' already exists"
 msgstr "'%s' という名前の他の鍵が既に存在しています"
 
- -#: database.cc:2958
+#: database.cc:2982
 #, c-format
 msgid "no database specified"
 msgstr "データベース未指定"
 
- -#: database.cc:2966
+#: database.cc:2990
 #, c-format
 msgid "database %s does not exist"
 msgstr "データベース %s は存在しません"
 
- -#: database.cc:2967
+#: database.cc:2991
 #, c-format
 msgid "%s is a directory, not a database"
 msgstr "%s はデータベースではなくディレクトリです"
 
- -#: database.cc:2992
+#: database.cc:3016
 #, c-format
 msgid "could not open database '%s': %s"
 msgstr "データベース '%s': %s を開けませんでした"
 
- -#: diff_patch.cc:608
+#: diff_patch.cc:610
 #, c-format
 msgid "file '%s' does not exist in workspace"
 msgstr "ファイル '%s' はワークスペース内に存在しません"
 
- -#: diff_patch.cc:609
+#: diff_patch.cc:611
 #, c-format
 msgid "'%s' in workspace is a directory, not a file"
 msgstr "ワークスペース内の '%s' 
はファイルではなくディレクトリです"
 
- -#: diff_patch.cc:613
+#: diff_patch.cc:615
 #, c-format
 msgid "file %s in workspace has id %s, wanted %s"
 msgstr ""
 "ワークスペース内のファイル %s の ID は %s ですが、期待
されるのは %s です"
 
- -#: diff_patch.cc:734
+#: diff_patch.cc:736
 #, c-format
 msgid ""
 "help required for 3-way merge\n"
@@ -2227,7 +2232,7 @@ msgstr "ディレクトリ '%s' は存åœ
 msgid "Directory '%s' does not exist"
 msgstr "ディレクトリ '%s' は存在しません"
 
- -#: lua.cc:480 rcs_import.cc:1235 work.cc:480
+#: lua.cc:480 rcs_import.cc:1235 work.cc:474
 #, c-format
 msgid "'%s' is not a directory"
 msgstr "'%s' はディレクトリではありません"
@@ -2237,14 +2242,6 @@ msgstr "初期化ファイル '%s' をèª
 msgid "lua error while loading rcfile '%s'"
 msgstr "初期化ファイル '%s' を読み込み中に lua のエラー"
 
- -#: main.cc:326
- -msgid "interrupted"
- -msgstr "割込み"
- -
- -#: main.cc:330
- -msgid "terminated by signal"
- -msgstr "シグナルで終了"
- -
 #: merkle_tree.cc:290
 #, c-format
 msgid "node level is %d, exceeds maximum %d"
@@ -2255,234 +2252,238 @@ msgstr "一致しないノードハッã‚
 msgid "mismatched node hash value %s, expected %s"
 msgstr "一致しないノードハッシュ値 %s、期待されるのは %s 
です"
 
- -#: monotone.cc:65
+#: monotone.cc:90
 msgid "select branch cert for operation"
 msgstr "操作のためのブランチ証明を選択"
 
- -#: monotone.cc:66
+#: monotone.cc:91
 msgid "select revision id for operation"
 msgstr "操作のためのリビジョン ID を選択"
 
- -#: monotone.cc:67
+#: monotone.cc:92
 msgid "set commit changelog message"
 msgstr "コミット変更記録メッセージを設定"
 
- -#: monotone.cc:68
+#: monotone.cc:93
 msgid "set filename containing commit changelog message"
 msgstr "コミット変更記録メッセージを含むファイルを設定"
 
- -#: monotone.cc:69
+#: monotone.cc:94
 msgid "override date/time for commit"
 msgstr "コミット時の日時を上書き指定"
 
- -#: monotone.cc:70
+#: monotone.cc:95
 msgid "override author for commit"
 msgstr "コミット時の作成者を上書き指定"
 
- -#: monotone.cc:71
+#: monotone.cc:96
 msgid "limit the number of levels of directories to descend"
 msgstr "降下するディレクトリの深さを制限"
 
- -#: monotone.cc:72
+#: monotone.cc:97
 msgid "limit log output to the last number of entries"
 msgstr "ログ出力のエントリ数(最近)を制限"
 
- -#: monotone.cc:73
+#: monotone.cc:98
 msgid "limit log output to the next number of entries"
 msgstr "ログ出力のエントリ数(次)を制限"
 
- -#: monotone.cc:74
+#: monotone.cc:99
 msgid "record process id of server"
 msgstr "サーバーのプロセス ID を記録"
 
- -#: monotone.cc:75
+#: monotone.cc:100
 msgid "print a brief version of the normal output"
 msgstr "通常出力の簡単なバージョンを表示"
 
- -#: monotone.cc:76
+#: monotone.cc:101
 msgid "print diffs along with logs"
 msgstr "ログと共に差分を表示"
 
- -#: monotone.cc:77
+#: monotone.cc:102
 msgid "exclude merges when printing logs"
 msgstr "ログを表示する際に統合については省略"
 
- -#: monotone.cc:78
+#: monotone.cc:103
 msgid "use the current arguments as the future default"
 msgstr "現在の引数を将来のデフォルトとして使用"
 
- -#: monotone.cc:79
+#: monotone.cc:104
 msgid "leave out anything described by its argument"
 msgstr "引数によって説明されるすべてを省く"
 
- -#: monotone.cc:80
+#: monotone.cc:105
 msgid "use unified diff format"
 msgstr "unified diff 形式を使用"
 
- -#: monotone.cc:81
+#: monotone.cc:106
 msgid "use context diff format"
 msgstr "context diff 形式を使用"
 
- -#: monotone.cc:82
+#: monotone.cc:107
 msgid "use external diff hook for generating diffs"
 msgstr "差分の生成に外部 diff フックを使用"
 
- -#: monotone.cc:83
+#: monotone.cc:108
 msgid "argument to pass external diff hook"
 msgstr "外部 diff フックに渡す引数"
 
- -#: monotone.cc:84
+#: monotone.cc:109
 msgid "do not show the function containing each block of changes"
 msgstr ""
 
- -#: monotone.cc:85
+#: monotone.cc:110
 msgid "another name for --no-show-encloser (for compatibility with GNU diff)"
 msgstr ""
 
- -#: monotone.cc:86
+#: monotone.cc:111
 msgid "perform the associated file operation"
 msgstr "関連付けられたファイル操作を実行"
 
- -#: monotone.cc:87
+#: monotone.cc:112
 msgid "address:port to listen on (default :4691)"
 msgstr "待機する アドレス:ポート (デフォルト: 4691)"
 
- -#: monotone.cc:88
+#: monotone.cc:113
 msgid "perform the operations for files missing from workspace"
 msgstr "ワークスペース内
ではみつからないファイルについて操作を実行"
 
- -#: monotone.cc:89
+#: monotone.cc:114
 msgid "perform the operations for unknown files from workspace"
 msgstr "ワークスペース内
では不明なファイルについて操作を実行"
 
- -#: monotone.cc:90
+#: monotone.cc:115
 msgid "push the specified key even if it hasn't signed anything"
 msgstr "指定の鍵について署名の有無にかかわらず取り込み"
 
- -#: monotone.cc:91
+#: monotone.cc:116
 msgid "serve netsync on stdio"
 msgstr ""
 
- -#: monotone.cc:92
+#: monotone.cc:117
 msgid "disable transport authentication"
 msgstr ""
 
- -#: monotone.cc:93
+#: monotone.cc:118
 msgid "when rosterifying, drop attrs entries with the given key"
 msgstr "名簿作成中に指定の鍵のエントリの属性を破棄"
 
- -#: monotone.cc:94
+#: monotone.cc:119
 msgid "exclude files when printing logs"
 msgstr "ログを表示する際にファイルについては省略"
 
- -#: monotone.cc:95
+#: monotone.cc:120
 msgid "also operate on the contents of any listed directories"
 msgstr "一覧のディレクトリの内容についても処理"
 
- -#: monotone.cc:104
+#: monotone.cc:121
+msgid "block size in bytes for \"automate stdio\" output"
+msgstr ""
+
+#: monotone.cc:130
 msgid "print debug log to stderr while running"
 msgstr "実行時、標準エラー出力にデバッグログを表示"
 
- -#: monotone.cc:105
+#: monotone.cc:131
 msgid "file to dump debugging log to, on failure"
 msgstr "失敗時にデバッグログを出力するファイル"
 
- -#: monotone.cc:106
+#: monotone.cc:132
 msgid "file to write the log to"
 msgstr "ログを書き込むファイル"
 
- -#: monotone.cc:107
+#: monotone.cc:133
 #, fuzzy
 msgid "suppress verbose, informational and progress messages"
 msgstr "ログおよび進捗を示すメッセージを表示しない"
 
- -#: monotone.cc:108
+#: monotone.cc:134
 #, fuzzy
 msgid "suppress warning, verbose, informational and progress messages"
 msgstr "ログおよび進捗を示すメッセージを表示しない"
 
- -#: monotone.cc:109
+#: monotone.cc:135
 msgid "display help message"
 msgstr "ヘルプメッセージを表示"
 
- -#: monotone.cc:110
+#: monotone.cc:136
 msgid "print version number, then exit"
 msgstr "バージョン番号を表示し、終了"
 
- -#: monotone.cc:111
+#: monotone.cc:137
 msgid "print detailed version number, then exit"
 msgstr "詳細なバージョン番号を表示し、終了"
 
- -#: monotone.cc:112
+#: monotone.cc:138
 msgid "insert command line arguments taken from the given file"
 msgstr "指定のファイルの内容をコマンド行引数に挿入"
 
- -#: monotone.cc:113
+#: monotone.cc:139
 msgid "set ticker style (count|dot|none)"
 msgstr "ティッカーのスタイルを設定 (count|dot|none)"
 
- -#: monotone.cc:114
+#: monotone.cc:140
 msgid "do not load standard lua hooks"
 msgstr "標準 lua フックを読み込まない"
 
- -#: monotone.cc:115
+#: monotone.cc:141
 msgid "do not load ~/.monotone/monotonerc or _MTN/monotonerc lua files"
 msgstr ""
 "~/.monotone/monotonerc または _MTN/monotonerc lua 
ファイルを読み込まない"
 
- -#: monotone.cc:116
+#: monotone.cc:142
 msgid "load extra rc file"
 msgstr "別の初期化ファイルを読み込む"
 
- -#: monotone.cc:117
+#: monotone.cc:143
 msgid "set key for signatures"
 msgstr "署名の鍵を設定"
 
- -#: monotone.cc:118
+#: monotone.cc:144
 msgid "set name of database"
 msgstr "データベース名を設定"
 
- -#: monotone.cc:119
+#: monotone.cc:145
 msgid "limit search for workspace to specified root"
 msgstr "ワークスペースの検索を指定のルート下に制限"
 
- -#: monotone.cc:120
+#: monotone.cc:146
 msgid "verbose completion output"
 msgstr "冗長な完了メッセージ"
 
- -#: monotone.cc:121
+#: monotone.cc:147
 msgid "set location of key store"
 msgstr "鍵の保存場所を設定"
 
- -#: monotone.cc:122
+#: monotone.cc:148
 msgid "set location of configuration directory"
 msgstr "設定用のディレクトリの場所を設定"
 
- -#: monotone.cc:226
+#: monotone.cc:183
 #, c-format
 msgid "problem parsing arguments from file %s: %s"
 msgstr "ファイル %s からの引数を解析中に問題発生: %s"
 
- -#: monotone.cc:235
+#: monotone.cc:192
 #, c-format
 msgid "weird error when stuffing arguments read from %s: %s\n"
 msgstr "%s から引数を読み取り中に予期せぬエラー発生: %s\n"
 
- -#: monotone.cc:331
+#: monotone.cc:226
 msgid "[OPTION...] command [ARGS...]\n"
 msgstr "[OPTION...] command [ARGS...]\n"
 
- -#: monotone.cc:600
+#: monotone.cc:493
 #, c-format
 msgid "syntax error near the \"%s\" option: %s"
 msgstr "\"%s\" オプションの近くに構文エラー: %s"
 
- -#: monotone.cc:639
+#: monotone.cc:514
 #, fuzzy, c-format
 msgid "%s %s doesn't use the option %s"
 msgstr "monotone %s にはオプション %s は使えません"
 
- -#: monotone.cc:673
+#: monotone.cc:547
 #, c-format
 msgid "Options specific to '%s %s':"
 msgstr "'%s %s' に特化したオプション:"
@@ -2970,7 +2971,7 @@ msgstr ""
 "引用符を含むブランチパターンを含めない:\n"
 "%s\n"
 
- -#: netsync.cc:3160 netsync.cc:3164
+#: netsync.cc:3163 netsync.cc:3167
 #, c-format
 msgid "network error: %s"
 msgstr "ネットワークエラー: %s"
@@ -3164,30 +3165,30 @@ msgstr ""
 "理解できるのはバージョン '1' 形式だけです。\n"
 "この操作を完了するにはより新しいバージョンの monotone 
が必要です"
 
- -#: sanity.cc:126
+#: sanity.cc:154
 #, c-format
 msgid "fatal: formatter failed on %s:%d: %s"
 msgstr "致命的: フォーマッタ失敗 %s:%d: %s"
 
- -#: sanity.cc:200
+#: sanity.cc:228
 msgid "misuse: "
 msgstr "誤り: "
 
- -#: sanity.cc:212
+#: sanity.cc:240
 msgid "error: "
 msgstr "エラー: "
 
- -#: sanity.cc:220
+#: sanity.cc:248
 #, c-format
 msgid "%s:%d: invariant '%s' violated"
 msgstr "%s:%d: invariant '%s' violated"
 
- -#: sanity.cc:233
+#: sanity.cc:261
 #, c-format
 msgid "%s:%d: index '%s' = %d overflowed vector '%s' with size %d\n"
 msgstr "%s:%d: index '%s' = %d overflowed vector '%s' with size %d\n"
 
- -#: sanity.cc:254
+#: sanity.cc:282
 #, c-format
 msgid "Current work set: %i items\n"
 msgstr "現在の作業セット: %i アイテム\n"
@@ -3262,44 +3263,44 @@ msgstr "鍵 '%s' をデータベースã
 msgid "moving key '%s' from database to %s"
 msgstr "鍵 '%s' をデータベースから %s に移動しています"
 
- -#: std_hooks.lua:37
+#: std_hooks.lua:48
 msgid "Press enter"
 msgstr ""
 
- -#: std_hooks.lua:39
+#: std_hooks.lua:50
 msgid "Press enter when the subprocess has completed"
 msgstr "サブプロセスが完了したら [Enter] を押して下さい"
 
- -#: ui.cc:126
+#: ui.cc:158
 #, c-format
 msgid "%.1f G"
 msgstr "%.1f G"
 
- -#: ui.cc:132
+#: ui.cc:164
 #, c-format
 msgid "%.1f M"
 msgstr "%.1f M"
 
- -#: ui.cc:138
+#: ui.cc:170
 #, c-format
 msgid "%.1f k"
 msgstr "%.1f k"
 
- -#: ui.cc:151
+#: ui.cc:183
 #, c-format
 msgid "%d/%d"
 msgstr "%d/%d"
 
- -#: ui.cc:156
+#: ui.cc:188
 #, c-format
 msgid "%d"
 msgstr "%d"
 
- -#: ui.cc:423
+#: ui.cc:465
 msgid "warning: "
 msgstr ""
 
- -#: ui.cc:432
+#: ui.cc:476
 #, c-format
 msgid ""
 "fatal: %s\n"
@@ -3312,7 +3313,12 @@ msgstr ""
 "このエラーメッセージと '%s --full-version' の結果と %s 
について\n"
 "何をしたか説明を添えて報告して下さい\n"
 
- -#: ui.cc:493
+#: ui.cc:511
+#, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: ui.cc:587
 #, fuzzy, c-format
 msgid "failed to open log file '%s'"
 msgstr "オプションファイル '%s' の解析に失敗"
@@ -3377,159 +3383,165 @@ msgstr "既にワークスペースでæ•
 msgid "skipping %s, already accounted for in workspace"
 msgstr "既にワークスペースで数に入れられている %s 
をスキップしています"
 
- -#: work.cc:191
+#: work.cc:198
 #, c-format
 msgid "adding %s to workspace manifest"
 msgstr "ワークスペースのマニフェストに %s を追加
しています"
 
- -#: work.cc:281
+#: work.cc:275
 #, c-format
 msgid "skipping %s, not currently tracked"
 msgstr "追跡されていない %s をスキップしています"
 
- -#: work.cc:291
+#: work.cc:285
 #, c-format
 msgid "cannot remove %s/, it is not empty"
 msgstr "空ではないので %s/ を削除できません"
 
- -#: work.cc:302
+#: work.cc:296
 #, c-format
 msgid "dropping %s from workspace manifest"
 msgstr "ワークスペースのマニフェストから %s をç 
´æ£„しています"
 
- -#: work.cc:365
+#: work.cc:359
 #, c-format
 msgid "destination dir %s/ does not exist in current revision"
 msgstr "現在のリビジョンにディレクトリ %s/ はありません"
 
- -#: work.cc:368
+#: work.cc:362
 #, c-format
 msgid "destination %s is an existing file in current revision"
 msgstr "現在のリビジョンに %s はありません"
 
- -#: work.cc:378
+#: work.cc:372
 #, c-format
 msgid "empty path %s is not allowed"
 msgstr "パス %s は空にできません"
 
- -#: work.cc:392
+#: work.cc:386
 #, c-format
 msgid "%s does not exist in current revision"
 msgstr "現在のリビジョンに %s はありません"
 
- -#: work.cc:395
+#: work.cc:389
 #, c-format
 msgid "destination %s already exists in current revision"
 msgstr "%s は既に現在のリビジョンにあります"
 
- -#: work.cc:404
+#: work.cc:398
 #, c-format
 msgid "renaming %s to %s in workspace manifest"
 msgstr "ワークスペースのマニフェスト内の %s を %s 
に変更しています"
 
- -#: work.cc:429
+#: work.cc:423
 #, c-format
 msgid "%s doesn't exist in workspace, skipping"
 msgstr "ワークスペース内に %s 
はありませんので、スキップします"
 
- -#: work.cc:433
+#: work.cc:427
 #, c-format
 msgid "destination %s already exists in workspace, skipping"
 msgstr "リビジョン '%s' 
は既にデータベースにありますので、スキップします"
 
- -#: work.cc:460
+#: work.cc:454
 #, c-format
 msgid "proposed new root directory '%s' is not versioned or does not exist"
 msgstr ""
 "提案された新しいルートディレクトリ '%s' 
はバージョン付けされていないか、存在"
 "しません"
 
- -#: work.cc:462
+#: work.cc:456
 #, c-format
 msgid "proposed new root directory '%s' is not a directory"
 msgstr "提案された新しいルートディレクトリ '%s' 
はディレクトリではありません"
 
- -#: work.cc:467
+#: work.cc:461
 #, c-format
 msgid "proposed new root directory '%s' contains illegal path %s"
 msgstr ""
 "提案された新しいルートディレクトリ '%s' 
には不正なパス %s が含まれています"
 
- -#: work.cc:477
+#: work.cc:471
 #, c-format
 msgid "directory '%s' is not versioned or does not exist"
 msgstr "ディレクトリ '%s' 
はバージョン付けされていないか、存在しません"
 
- -#: work.cc:483
+#: work.cc:477
 #, c-format
 msgid "'%s' is in the way"
 msgstr "'%s' が邪魔になっています"
 
- -#: work.cc:578
+#: work.cc:572
 #, c-format
 msgid "workspace is corrupt: %s does not exist"
 msgstr "ワークスペースは壊れています: %s は存在しません"
 
- -#: work.cc:579
+#: work.cc:573
 #, c-format
 msgid "workspace is corrupt: %s is a directory"
 msgstr "ワークスペースは壊れています: %s は存在しません"
 
- -#: work.cc:589
+#: work.cc:583
 #, c-format
 msgid "Problem with workspace: %s is unreadable"
 msgstr "ワークスペースに問題があります: %s 
を読み込めません"
 
- -#: work.cc:615
+#: work.cc:609
 #, fuzzy, c-format
 msgid "base revision %s does not exist in database"
 msgstr "データベースに基準リビジョン %s 
は含まれていません\n"
 
- -#: work.cc:924
+#: work.cc:918
 #, c-format
 msgid "dropping %s"
 msgstr "%s を破棄しています"
 
- -#: work.cc:935 work.cc:946
+#: work.cc:929 work.cc:940
 #, c-format
 msgid "path %s already exists"
 msgstr "パス %s は既にあります"
 
- -#: work.cc:968 work.cc:995
+#: work.cc:962 work.cc:989
 #, c-format
 msgid "adding %s"
 msgstr "%s を追加しています"
 
- -#: work.cc:984
+#: work.cc:978
 #, c-format
 msgid "path '%s' already exists, cannot create"
 msgstr "パス '%s' は既にありますので作成できません"
 
- -#: work.cc:991
+#: work.cc:985
 #, c-format
 msgid "renaming %s to %s"
 msgstr "%s から %s に名称変更しています"
 
- -#: work.cc:1026
+#: work.cc:1020
 #, c-format
 msgid "file '%s' does not exist"
 msgstr "ファイル '%s' は存在しません"
 
- -#: work.cc:1027
+#: work.cc:1021
 #, c-format
 msgid "file '%s' is a directory"
 msgstr "ファイル '%s' はディレクトリです"
 
- -#: work.cc:1032
+#: work.cc:1026
 #, c-format
 msgid "content of file '%s' has changed, not overwriting"
 msgstr "ファイル '%s' の内
容は変更されているので上書きしません"
 
- -#: work.cc:1033
+#: work.cc:1027
 #, fuzzy, c-format
 msgid "modifying %s"
 msgstr "%s を追加しています"
 
+#~ msgid "interrupted"
+#~ msgstr "割込み"
+
+#~ msgid "terminated by signal"
+#~ msgstr "シグナルで終了"
+
 #, fuzzy
 #~ msgid "starting with revision 1 / %d"
 #~ msgstr "リビジョン 1 / %d について作業開始\n"
============================================================
- --- po/pt_BR.po       8aa4e56407b0812cc4f066a06eac6520866f26ae
+++ po/pt_BR.po 087e116ba9976e9f315494204de348a8d1ea996d
@@ -7,7 +7,7 @@ msgstr ""
 msgstr ""
 "Project-Id-Version: Monotone 0.26\n"
 "Report-Msgid-Bugs-To: \n"
- -"POT-Creation-Date: 2006-08-02 16:49-0700\n"
+"POT-Creation-Date: 2006-08-13 22:32-0400\n"
 "PO-Revision-Date: 2006-07-24 12:00-0300\n"
 "Last-Translator: Alex Sandro Queiroz e Silva <address@hidden>\n"
 "Language-Team: Alex Sandro Queiroz e Silva <address@hidden>\n"
@@ -16,57 +16,62 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n>1;\n"
 
- -#: app_state.cc:141
+#: app_state.cc:142
 #, c-format
 msgid "workspace required but not found%s%s"
 msgstr "área de trabalho necessária mas não encontrada%s%s"
 
- -#: app_state.cc:149
+#: app_state.cc:150
 #, c-format
 msgid "invalid directory ''"
 msgstr "diretório inválido ''"
 
- -#: app_state.cc:157
+#: app_state.cc:158
 #, c-format
 msgid "monotone bookkeeping directory '%s' already exists in '%s'"
 msgstr "diretório '%s' de manutenção do monotone já existe em '%s'"
 
- -#: app_state.cc:238
+#: app_state.cc:239
 #, c-format
 msgid "search root '%s' does not exist"
 msgstr "raiz de procura '%s' não existe"
 
- -#: app_state.cc:239
+#: app_state.cc:240
 #, c-format
 msgid "search root '%s' is not a directory\n"
 msgstr "raiz de procura '%s' não é um diretório\n"
 
- -#: app_state.cc:273
+#: app_state.cc:274
 #, c-format
 msgid "failed to parse date string '%s': %s"
 msgstr "erro lendo string de data '%s': %s"
 
- -#: app_state.cc:288
+#: app_state.cc:289
 #, c-format
 msgid "negative depth not allowed\n"
 msgstr "profundidade negativa não permitida\n"
 
- -#: app_state.cc:296
+#: app_state.cc:297
 #, c-format
 msgid "illegal argument to --last: cannot be zero or negative\n"
 msgstr "argumento ilegal para --last: não pode ser zero ou negativo\n"
 
- -#: app_state.cc:304
+#: app_state.cc:305
 #, c-format
 msgid "illegal argument to --next: cannot be zero or negative\n"
 msgstr "argumento ilegal para --next: não pode ser zero ou negativo\n"
 
- -#: app_state.cc:440
+#: app_state.cc:389
+#, fuzzy, c-format
+msgid "illegal argument to --automate-stdio-size: cannot be zero or negative\n"
+msgstr "argumento ilegal para --last: não pode ser zero ou negativo\n"
+
+#: app_state.cc:449
 #, c-format
 msgid "Failed to read options file %s"
 msgstr "Impossível ler arquivo de opções %s"
 
- -#: app_state.cc:457
+#: app_state.cc:466
 #, c-format
 msgid "Failed to write options file %s"
 msgstr "Impossível escrever arquivo de opções %s"
@@ -151,27 +156,27 @@ msgstr ""
 "vários certificados de ramo encontrados para a versão %s, por favor 
forneça "
 "o nome de um ramo"
 
- -#: cmd_automate.cc:205
+#: cmd_automate.cc:206
 #, c-format
 msgid "read from client failed with error code: %d"
 msgstr ""
 
- -#: cmd_automate.cc:248
+#: cmd_automate.cc:249
 #, c-format
 msgid "Bad input to automate stdio"
 msgstr ""
 
- -#: cmd_automate.cc:301
+#: cmd_automate.cc:303
 msgid "automation"
 msgstr "automação"
 
- -#: cmd_automate.cc:302
+#: cmd_automate.cc:304
 msgid "automation interface"
 msgstr "interface de automação"
 
 #: cmd_db.cc:35 cmd_diff_log.cc:387 cmd_diff_log.cc:419 cmd_diff_log.cc:421
 #: cmd_files.cc:138 cmd_files.cc:200 cmd_merging.cc:146 cmd_merging.cc:699
- -#: cmd_merging.cc:714 cmd_merging.cc:717 cmd_ws_commit.cc:453 commands.cc:393
+#: cmd_merging.cc:714 cmd_merging.cc:717 cmd_ws_commit.cc:453 commands.cc:433
 #, c-format
 msgid "no such revision '%s'"
 msgstr "versão '%s' não existe"
@@ -254,7 +259,7 @@ msgstr "nenhuma variável com nome %s no
 
 #: cmd_db.cc:152 cmd_diff_log.cc:331 cmd_diff_log.cc:543 cmd_files.cc:114
 #: cmd_files.cc:181 cmd_list.cc:448 cmd_merging.cc:636 cmd_ws_commit.cc:328
- -#: commands.cc:248
+#: commands.cc:253
 msgid "informative"
 msgstr "informativo"
 
@@ -1448,7 +1453,7 @@ msgstr "arquivo '%s' modificado durante 
 
 #: cmd_ws_commit.cc:774
 #, fuzzy, c-format
- -msgid "Your database is missing version %1% of file '%2%'"
+msgid "Your database is missing version %s of file '%s'"
 msgstr "O seu banco de dados não tem a versão %s do arquivo '%s'"
 
 #: cmd_ws_commit.cc:820
@@ -1482,53 +1487,53 @@ msgstr "atualiza o cache de inodeprint"
 msgid "refresh the inodeprint cache"
 msgstr "atualiza o cache de inodeprint"
 
- -#: commands.cc:125 commands.cc:227
+#: commands.cc:130 commands.cc:232
 #, c-format
 msgid "unknown command '%s'"
 msgstr "comando desconhecido '%s'"
 
- -#: commands.cc:136
+#: commands.cc:141
 #, c-format
 msgid "command '%s' has multiple ambiguous expansions:\n"
 msgstr "comando '%s' tem várias expansões possíveis:\n"
 
- -#: commands.cc:169
+#: commands.cc:174
 msgid "commands:"
 msgstr "comandos:"
 
- -#: commands.cc:248
+#: commands.cc:253
 msgid "command [ARGS...]"
 msgstr "comando [ARGS...]"
 
- -#: commands.cc:248
+#: commands.cc:253
 msgid "display command help"
 msgstr "exibe ajuda de comando"
 
- -#: commands.cc:400
+#: commands.cc:440
 #, c-format
 msgid "expanding selection '%s'"
 msgstr "expandindo seleção '%s'"
 
- -#: commands.cc:408
+#: commands.cc:448
 #, c-format
 msgid "no match for selection '%s'"
 msgstr "sem equivalente para seleção '%s'"
 
- -#: commands.cc:414
+#: commands.cc:454
 #, c-format
 msgid "expanded to '%s'"
 msgstr "expandido para '%s'"
 
- -#: commands.cc:431
+#: commands.cc:471
 #, c-format
 msgid "selection '%s' has multiple ambiguous expansions: \n"
 msgstr "seleção '%s' tem múltiplas expansões possíveis: \n"
 
- -#: commands.cc:448
+#: commands.cc:488
 msgid "note: "
 msgstr "nota: "
 
- -#: commands.cc:449
+#: commands.cc:489
 #, c-format
 msgid ""
 "branch '%s' has multiple heads\n"
@@ -1537,7 +1542,7 @@ msgstr ""
 "ramo '%s' tem múltiplas frentes\n"
 "considere usar '%s merge'"
 
- -#: commands.cc:467
+#: commands.cc:507
 #, c-format
 msgid "--message and --message-file are mutually exclusive"
 msgstr "--message e --message-file são mutuamente exclusivos"
@@ -1694,7 +1699,7 @@ msgstr "versão %s: assinatura ruim no c
 
 #: database_check.cc:774
 #, fuzzy, c-format
- -msgid "revision %1% missing %2% cert"
+msgid "revision %s missing %s cert"
 msgstr "versão %s: certificando %s faltando"
 
 #: database_check.cc:783
@@ -1829,7 +1834,7 @@ msgstr "o banco de dados está bem"
 msgid "database is good"
 msgstr "o banco de dados está bem"
 
- -#: database.cc:156
+#: database.cc:157
 #, c-format
 msgid ""
 "layout of database %s doesn't match this version of monotone\n"
@@ -1842,12 +1847,12 @@ msgstr ""
 "tente '%s db migrate' para atualizar\n"
 "(isto é irreversível, uma cópia de segurança pode ser necessária)"
 
- -#: database.cc:170
+#: database.cc:171
 #, c-format
 msgid "this database already contains rosters"
 msgstr "este banco de dados já contém inventórios"
 
- -#: database.cc:190
+#: database.cc:191
 #, c-format
 msgid ""
 "database %s contains revisions but no rosters\n"
@@ -1859,7 +1864,7 @@ msgstr ""
 "sorry about the inconvenience."
 msgstr ""
 
- -#: database.cc:209
+#: database.cc:210
 #, c-format
 msgid ""
 "database %s contains manifests but no revisions\n"
@@ -1867,24 +1872,24 @@ msgstr ""
 "please see README.changesets for details"
 msgstr ""
 
- -#: database.cc:245
+#: database.cc:246
 #, c-format
 msgid "unable to probe database version in file %s"
 msgstr "incapaz de verificar a versão do banco de dados no arquivo %s"
 
- -#: database.cc:252
+#: database.cc:253
 #, c-format
 msgid "database %s is not an sqlite version 3 file, try dump and reload"
 msgstr ""
 "banco de dados %s não é um arquivo sqlite versão 3, tente dump e reload"
 
- -#: database.cc:281 schema_migration.cc:200
+#: database.cc:282 schema_migration.cc:200
 msgid ""
 "make sure database and containing directory are writeable\n"
 "and you have not run out of disk space"
 msgstr ""
 
- -#: database.cc:287 schema_migration.cc:205
+#: database.cc:288 schema_migration.cc:205
 #, c-format
 msgid ""
 "sqlite error: %s\n"
@@ -1893,12 +1898,12 @@ msgstr ""
 "erro da sqlite: %s\n"
 "%s"
 
- -#: database.cc:332
+#: database.cc:333
 #, c-format
 msgid "could not initialize database: %s: already exists"
 msgstr "erro inicializando banco de dados: %s: já existe"
 
- -#: database.cc:337
+#: database.cc:338
 #, c-format
 msgid ""
 "existing (possibly stale) journal file '%s' has same stem as new database '%"
@@ -1906,12 +1911,12 @@ msgstr ""
 "cancelling database creation"
 msgstr ""
 
- -#: database.cc:487
+#: database.cc:488
 #, c-format
 msgid "cannot create %s; it already exists"
 msgstr "erro criando %s; já existe"
 
- -#: database.cc:564
+#: database.cc:565
 #, c-format
 msgid ""
 "schema version    : %s\n"
@@ -1938,72 +1943,72 @@ msgstr ""
 "  cache size      : %u\n"
 msgstr ""
 
- -#: database.cc:626
+#: database.cc:627
 #, c-format
 msgid "database schema version: %s"
 msgstr "versão do esquema do banco de dados: %s"
 
- -#: database.cc:703
+#: database.cc:704
 #, c-format
 msgid "multiple statements in query: %s\n"
 msgstr "múltiplos comandos na consulta: %s\n"
 
- -#: database.cc:709
+#: database.cc:710
 #, c-format
 msgid "wanted %d columns got %d in query: %s"
 msgstr "%d colunas pedidas, %d colunas obtidas da consulta: %s"
 
- -#: database.cc:768
+#: database.cc:769
 #, c-format
 msgid "null result in query: %s"
 msgstr "resultado vazio da consulta: %s"
 
- -#: database.cc:786
+#: database.cc:787
 #, c-format
 msgid "wanted %d rows got %d in query: %s"
 msgstr "%d linhas pedidas, %d linhas obtidas da consulta: %s"
 
- -#: database.cc:1926
+#: database.cc:1950
 #, c-format
 msgid "another key with name '%s' already exists"
 msgstr "outra chave com nome '%s' já existe"
 
- -#: database.cc:2958
+#: database.cc:2982
 #, c-format
 msgid "no database specified"
 msgstr "nenhum banco de dados especificado"
 
- -#: database.cc:2966
+#: database.cc:2990
 #, c-format
 msgid "database %s does not exist"
 msgstr "banco de dados %s não existe"
 
- -#: database.cc:2967
+#: database.cc:2991
 #, c-format
 msgid "%s is a directory, not a database"
 msgstr "%s é um diretório, não um banco de dados"
 
- -#: database.cc:2992
+#: database.cc:3016
 #, c-format
 msgid "could not open database '%s': %s"
 msgstr "erro abrindo banco de dados '%s': %s"
 
- -#: diff_patch.cc:608
+#: diff_patch.cc:610
 #, c-format
 msgid "file '%s' does not exist in workspace"
 msgstr "arquivo '%s' não existe na área de trabalho"
 
- -#: diff_patch.cc:609
+#: diff_patch.cc:611
 #, c-format
 msgid "'%s' in workspace is a directory, not a file"
 msgstr "'%s' na área de trabalho é um diretório, não um arquivo"
 
- -#: diff_patch.cc:613
+#: diff_patch.cc:615
 #, c-format
 msgid "file %s in workspace has id %s, wanted %s"
 msgstr "arquivo %s na área de trabalho tem id %s, pedido %s"
 
- -#: diff_patch.cc:734
+#: diff_patch.cc:736
 #, c-format
 msgid ""
 "help required for 3-way merge\n"
@@ -2208,7 +2213,7 @@ msgstr "Diretório '%s' não existe"
 msgid "Directory '%s' does not exist"
 msgstr "Diretório '%s' não existe"
 
- -#: lua.cc:480 rcs_import.cc:1235 work.cc:480
+#: lua.cc:480 rcs_import.cc:1235 work.cc:474
 #, c-format
 msgid "'%s' is not a directory"
 msgstr ""
@@ -2218,14 +2223,6 @@ msgstr ""
 msgid "lua error while loading rcfile '%s'"
 msgstr ""
 
- -#: main.cc:326
- -msgid "interrupted"
- -msgstr ""
- -
- -#: main.cc:330
- -msgid "terminated by signal"
- -msgstr ""
- -
 #: merkle_tree.cc:290
 #, c-format
 msgid "node level is %d, exceeds maximum %d"
@@ -2236,231 +2233,235 @@ msgstr ""
 msgid "mismatched node hash value %s, expected %s"
 msgstr ""
 
- -#: monotone.cc:65
+#: monotone.cc:90
 msgid "select branch cert for operation"
 msgstr ""
 
- -#: monotone.cc:66
+#: monotone.cc:91
 msgid "select revision id for operation"
 msgstr ""
 
- -#: monotone.cc:67
+#: monotone.cc:92
 msgid "set commit changelog message"
 msgstr ""
 
- -#: monotone.cc:68
+#: monotone.cc:93
 msgid "set filename containing commit changelog message"
 msgstr ""
 
- -#: monotone.cc:69
+#: monotone.cc:94
 msgid "override date/time for commit"
 msgstr ""
 
- -#: monotone.cc:70
+#: monotone.cc:95
 msgid "override author for commit"
 msgstr ""
 
- -#: monotone.cc:71
+#: monotone.cc:96
 msgid "limit the number of levels of directories to descend"
 msgstr ""
 
- -#: monotone.cc:72
+#: monotone.cc:97
 msgid "limit log output to the last number of entries"
 msgstr ""
 
- -#: monotone.cc:73
+#: monotone.cc:98
 msgid "limit log output to the next number of entries"
 msgstr ""
 
- -#: monotone.cc:74
+#: monotone.cc:99
 msgid "record process id of server"
 msgstr ""
 
- -#: monotone.cc:75
+#: monotone.cc:100
 msgid "print a brief version of the normal output"
 msgstr ""
 
- -#: monotone.cc:76
+#: monotone.cc:101
 msgid "print diffs along with logs"
 msgstr ""
 
- -#: monotone.cc:77
+#: monotone.cc:102
 msgid "exclude merges when printing logs"
 msgstr ""
 
- -#: monotone.cc:78
+#: monotone.cc:103
 msgid "use the current arguments as the future default"
 msgstr ""
 
- -#: monotone.cc:79
+#: monotone.cc:104
 msgid "leave out anything described by its argument"
 msgstr ""
 
- -#: monotone.cc:80
+#: monotone.cc:105
 msgid "use unified diff format"
 msgstr ""
 
- -#: monotone.cc:81
+#: monotone.cc:106
 msgid "use context diff format"
 msgstr ""
 
- -#: monotone.cc:82
+#: monotone.cc:107
 msgid "use external diff hook for generating diffs"
 msgstr ""
 
- -#: monotone.cc:83
+#: monotone.cc:108
 msgid "argument to pass external diff hook"
 msgstr ""
 
- -#: monotone.cc:84
+#: monotone.cc:109
 msgid "do not show the function containing each block of changes"
 msgstr ""
 
- -#: monotone.cc:85
+#: monotone.cc:110
 msgid "another name for --no-show-encloser (for compatibility with GNU diff)"
 msgstr ""
 
- -#: monotone.cc:86
+#: monotone.cc:111
 msgid "perform the associated file operation"
 msgstr ""
 
- -#: monotone.cc:87
+#: monotone.cc:112
 msgid "address:port to listen on (default :4691)"
 msgstr ""
 
- -#: monotone.cc:88
+#: monotone.cc:113
 msgid "perform the operations for files missing from workspace"
 msgstr ""
 
- -#: monotone.cc:89
+#: monotone.cc:114
 msgid "perform the operations for unknown files from workspace"
 msgstr ""
 
- -#: monotone.cc:90
+#: monotone.cc:115
 msgid "push the specified key even if it hasn't signed anything"
 msgstr ""
 
- -#: monotone.cc:91
+#: monotone.cc:116
 msgid "serve netsync on stdio"
 msgstr ""
 
- -#: monotone.cc:92
+#: monotone.cc:117
 msgid "disable transport authentication"
 msgstr ""
 
- -#: monotone.cc:93
+#: monotone.cc:118
 msgid "when rosterifying, drop attrs entries with the given key"
 msgstr ""
 
- -#: monotone.cc:94
+#: monotone.cc:119
 msgid "exclude files when printing logs"
 msgstr ""
 
- -#: monotone.cc:95
+#: monotone.cc:120
 msgid "also operate on the contents of any listed directories"
 msgstr ""
 
- -#: monotone.cc:104
+#: monotone.cc:121
+msgid "block size in bytes for \"automate stdio\" output"
+msgstr ""
+
+#: monotone.cc:130
 msgid "print debug log to stderr while running"
 msgstr ""
 
- -#: monotone.cc:105
+#: monotone.cc:131
 msgid "file to dump debugging log to, on failure"
 msgstr ""
 
- -#: monotone.cc:106
+#: monotone.cc:132
 msgid "file to write the log to"
 msgstr "arquivo onde registro será escrito"
 
- -#: monotone.cc:107
+#: monotone.cc:133
 msgid "suppress verbose, informational and progress messages"
 msgstr ""
 
- -#: monotone.cc:108
+#: monotone.cc:134
 msgid "suppress warning, verbose, informational and progress messages"
 msgstr ""
 
- -#: monotone.cc:109
+#: monotone.cc:135
 msgid "display help message"
 msgstr ""
 
- -#: monotone.cc:110
+#: monotone.cc:136
 msgid "print version number, then exit"
 msgstr ""
 
- -#: monotone.cc:111
+#: monotone.cc:137
 msgid "print detailed version number, then exit"
 msgstr ""
 
- -#: monotone.cc:112
+#: monotone.cc:138
 msgid "insert command line arguments taken from the given file"
 msgstr ""
 
- -#: monotone.cc:113
+#: monotone.cc:139
 msgid "set ticker style (count|dot|none)"
 msgstr ""
 
- -#: monotone.cc:114
+#: monotone.cc:140
 msgid "do not load standard lua hooks"
 msgstr ""
 
- -#: monotone.cc:115
+#: monotone.cc:141
 msgid "do not load ~/.monotone/monotonerc or _MTN/monotonerc lua files"
 msgstr ""
 
- -#: monotone.cc:116
+#: monotone.cc:142
 msgid "load extra rc file"
 msgstr ""
 
- -#: monotone.cc:117
+#: monotone.cc:143
 msgid "set key for signatures"
 msgstr ""
 
- -#: monotone.cc:118
+#: monotone.cc:144
 msgid "set name of database"
 msgstr ""
 
- -#: monotone.cc:119
+#: monotone.cc:145
 msgid "limit search for workspace to specified root"
 msgstr ""
 
- -#: monotone.cc:120
+#: monotone.cc:146
 msgid "verbose completion output"
 msgstr ""
 
- -#: monotone.cc:121
+#: monotone.cc:147
 msgid "set location of key store"
 msgstr "configura localização da coleção de chaves"
 
- -#: monotone.cc:122
+#: monotone.cc:148
 msgid "set location of configuration directory"
 msgstr ""
 
- -#: monotone.cc:226
+#: monotone.cc:183
 #, c-format
 msgid "problem parsing arguments from file %s: %s"
 msgstr ""
 
- -#: monotone.cc:235
+#: monotone.cc:192
 #, c-format
 msgid "weird error when stuffing arguments read from %s: %s\n"
 msgstr ""
 
- -#: monotone.cc:331
+#: monotone.cc:226
 msgid "[OPTION...] command [ARGS...]\n"
 msgstr ""
 
- -#: monotone.cc:600
+#: monotone.cc:493
 #, c-format
 msgid "syntax error near the \"%s\" option: %s"
 msgstr ""
 
- -#: monotone.cc:639
+#: monotone.cc:514
 #, c-format
 msgid "%s %s doesn't use the option %s"
 msgstr ""
 
- -#: monotone.cc:673
+#: monotone.cc:547
 #, c-format
 msgid "Options specific to '%s %s':"
 msgstr ""
@@ -2927,7 +2928,7 @@ msgstr ""
 "padrão de exclusão de ramos contém um caractere de aspas:\n"
 "%s\n"
 
- -#: netsync.cc:3160 netsync.cc:3164
+#: netsync.cc:3163 netsync.cc:3167
 #, c-format
 msgid "network error: %s"
 msgstr "erro de rede: %s"
@@ -3121,30 +3122,30 @@ msgstr ""
 "apenas sei como entender o formato da versão '1'\n"
 "uma nova versão de monotone é necessária para completar esta operação"
 
- -#: sanity.cc:126
+#: sanity.cc:154
 #, c-format
 msgid "fatal: formatter failed on %s:%d: %s"
 msgstr "fatal: formatador falhou em %s:%d: %s"
 
- -#: sanity.cc:200
+#: sanity.cc:228
 msgid "misuse: "
 msgstr "mal-uso:"
 
- -#: sanity.cc:212
+#: sanity.cc:240
 msgid "error: "
 msgstr "erro:"
 
- -#: sanity.cc:220
+#: sanity.cc:248
 #, c-format
 msgid "%s:%d: invariant '%s' violated"
 msgstr "%s:%d: invariante '%s' violada"
 
- -#: sanity.cc:233
+#: sanity.cc:261
 #, c-format
 msgid "%s:%d: index '%s' = %d overflowed vector '%s' with size %d\n"
 msgstr "%s:%d: índice '%s' = %d estourou vetor '%s' com tamanho %d\n"
 
- -#: sanity.cc:254
+#: sanity.cc:282
 #, c-format
 msgid "Current work set: %i items\n"
 msgstr "Conjunto de trabalho atual: %i itens\n"
@@ -3219,44 +3220,44 @@ msgstr "movendo chave '%s' do banco de d
 msgid "moving key '%s' from database to %s"
 msgstr "movendo chave '%s' do banco de dados para %s"
 
- -#: std_hooks.lua:37
+#: std_hooks.lua:48
 msgid "Press enter"
 msgstr "Pressione enter"
 
- -#: std_hooks.lua:39
+#: std_hooks.lua:50
 msgid "Press enter when the subprocess has completed"
 msgstr "Por favor pressione <Enter> quando o subprocesso terminar"
 
- -#: ui.cc:126
+#: ui.cc:158
 #, c-format
 msgid "%.1f G"
 msgstr "%.1f G"
 
- -#: ui.cc:132
+#: ui.cc:164
 #, c-format
 msgid "%.1f M"
 msgstr "%.1f M"
 
- -#: ui.cc:138
+#: ui.cc:170
 #, c-format
 msgid "%.1f k"
 msgstr "%.1f k"
 
- -#: ui.cc:151
+#: ui.cc:183
 #, c-format
 msgid "%d/%d"
 msgstr "%d/%d"
 
- -#: ui.cc:156
+#: ui.cc:188
 #, c-format
 msgid "%d"
 msgstr "%d"
 
- -#: ui.cc:423
+#: ui.cc:465
 msgid "warning: "
 msgstr "aviso: "
 
- -#: ui.cc:432
+#: ui.cc:476
 #, c-format
 msgid ""
 "fatal: %s\n"
@@ -3269,8 +3270,13 @@ msgstr ""
 "por favor envie esta mensagem de erro, a saída de '%s --full-version',\n"
 "e uma descrição do que você estava fazendo para %s.\n"
 
- -#: ui.cc:493
+#: ui.cc:511
 #, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: ui.cc:587
+#, c-format
 msgid "failed to open log file '%s'"
 msgstr "Erro abrindo arquivo de registro '%s'"
 
@@ -3334,152 +3340,152 @@ msgstr "pulando %s, já encontrado na á
 msgid "skipping %s, already accounted for in workspace"
 msgstr "pulando %s, já encontrado na área de trabalho"
 
- -#: work.cc:191
+#: work.cc:198
 #, c-format
 msgid "adding %s to workspace manifest"
 msgstr "adicionando %s à lista de arquivos da área de trabalho"
 
- -#: work.cc:281
+#: work.cc:275
 #, c-format
 msgid "skipping %s, not currently tracked"
 msgstr "pulando %s, não é versionado atualmente"
 
- -#: work.cc:291
+#: work.cc:285
 #, c-format
 msgid "cannot remove %s/, it is not empty"
 msgstr "impossível remover %s/, não está vazio"
 
- -#: work.cc:302
+#: work.cc:296
 #, c-format
 msgid "dropping %s from workspace manifest"
 msgstr "removendo %s da listagem da área de trabalho"
 
- -#: work.cc:365
+#: work.cc:359
 #, c-format
 msgid "destination dir %s/ does not exist in current revision"
 msgstr "diretório de destino %s/ não existe na versão atual"
 
- -#: work.cc:368
+#: work.cc:362
 #, c-format
 msgid "destination %s is an existing file in current revision"
 msgstr "destino %s é um arquivo existente na versão atual"
 
- -#: work.cc:378
+#: work.cc:372
 #, c-format
 msgid "empty path %s is not allowed"
 msgstr "caminho vazio %s não permitido"
 
- -#: work.cc:392
+#: work.cc:386
 #, c-format
 msgid "%s does not exist in current revision"
 msgstr "%s não existe na versão atual"
 
- -#: work.cc:395
+#: work.cc:389
 #, c-format
 msgid "destination %s already exists in current revision"
 msgstr "destino %s já existe na versão atual"
 
- -#: work.cc:404
+#: work.cc:398
 #, c-format
 msgid "renaming %s to %s in workspace manifest"
 msgstr "renomeando %s para %s na listagem da área de trabalho"
 
- -#: work.cc:429
+#: work.cc:423
 #, c-format
 msgid "%s doesn't exist in workspace, skipping"
 msgstr "%s não existe na área de trabalho, pulando"
 
- -#: work.cc:433
+#: work.cc:427
 #, c-format
 msgid "destination %s already exists in workspace, skipping"
 msgstr "destino %s já existe na área de trabalho, pulando"
 
- -#: work.cc:460
+#: work.cc:454
 #, c-format
 msgid "proposed new root directory '%s' is not versioned or does not exist"
 msgstr "novo diretório raiz proposto '%s' não está versionado ou não 
existe"
 
- -#: work.cc:462
+#: work.cc:456
 #, c-format
 msgid "proposed new root directory '%s' is not a directory"
 msgstr "novo diretório raiz proposto '%s' não é um diretório"
 
- -#: work.cc:467
+#: work.cc:461
 #, c-format
 msgid "proposed new root directory '%s' contains illegal path %s"
 msgstr "novo diretório raiz proposto '%s' contém caminho ilegal %s"
 
- -#: work.cc:477
+#: work.cc:471
 #, c-format
 msgid "directory '%s' is not versioned or does not exist"
 msgstr "diretório '%s' não está versionado ou não existe"
 
- -#: work.cc:483
+#: work.cc:477
 #, c-format
 msgid "'%s' is in the way"
 msgstr "'%s' está no caminho"
 
- -#: work.cc:578
+#: work.cc:572
 #, c-format
 msgid "workspace is corrupt: %s does not exist"
 msgstr "área de trabalho está corrompida: %s não existe"
 
- -#: work.cc:579
+#: work.cc:573
 #, c-format
 msgid "workspace is corrupt: %s is a directory"
 msgstr "área de trabalho está corrompida: %s é um diretório"
 
- -#: work.cc:589
+#: work.cc:583
 #, c-format
 msgid "Problem with workspace: %s is unreadable"
 msgstr "Problema com área de trabalho: %s é ilegível"
 
- -#: work.cc:615
+#: work.cc:609
 #, c-format
 msgid "base revision %s does not exist in database"
 msgstr "versão-base %s não existe no banco de dados"
 
- -#: work.cc:924
+#: work.cc:918
 #, c-format
 msgid "dropping %s"
 msgstr "descartando %s"
 
- -#: work.cc:935 work.cc:946
+#: work.cc:929 work.cc:940
 #, c-format
 msgid "path %s already exists"
 msgstr "caminho '%s' já existe"
 
- -#: work.cc:968 work.cc:995
+#: work.cc:962 work.cc:989
 #, c-format
 msgid "adding %s"
 msgstr "adicionando %s"
 
- -#: work.cc:984
+#: work.cc:978
 #, c-format
 msgid "path '%s' already exists, cannot create"
 msgstr "caminho '%s' já existe, impossível criar"
 
- -#: work.cc:991
+#: work.cc:985
 #, c-format
 msgid "renaming %s to %s"
 msgstr "renomeando %s para %s"
 
- -#: work.cc:1026
+#: work.cc:1020
 #, c-format
 msgid "file '%s' does not exist"
 msgstr "arquivo '%s' não existe"
 
- -#: work.cc:1027
+#: work.cc:1021
 #, c-format
 msgid "file '%s' is a directory"
 msgstr "arquivo '%s' é um diretório"
 
- -#: work.cc:1032
+#: work.cc:1026
 #, c-format
 msgid "content of file '%s' has changed, not overwriting"
 msgstr "conteúdo do arquivo '%s' mudou, arquivo não será sobrescrito"
 
- -#: work.cc:1033
+#: work.cc:1027
 #, c-format
 msgid "modifying %s"
 msgstr "modificando %s"
============================================================
- --- po/sv.po  532b8080a6715b13809e53f972fed77c588cea12
+++ po/sv.po    ce0b2377e75eb56ad85e333a4c3a50caf422987a
@@ -145,7 +145,7 @@ msgstr ""
 msgstr ""
 "Project-Id-Version: monotone 0.26pre1\n"
 "Report-Msgid-Bugs-To: \n"
- -"POT-Creation-Date: 2006-08-10 06:22+0200\n"
+"POT-Creation-Date: 2006-08-13 22:32-0400\n"
 "PO-Revision-Date: 2006-08-10 06:29+0200\n"
 "Last-Translator: Joel Rosdahl <address@hidden>\n"
 "Language-Team: Richard Levitte <address@hidden>\n"
@@ -2179,22 +2179,22 @@ msgstr "kunde inte öppna databasen '%s'
 msgid "could not open database '%s': %s"
 msgstr "kunde inte öppna databasen '%s': %s"
 
- -#: diff_patch.cc:608
+#: diff_patch.cc:610
 #, c-format
 msgid "file '%s' does not exist in workspace"
 msgstr "filen '%s' existerar inte i arbetskopian"
 
- -#: diff_patch.cc:609
+#: diff_patch.cc:611
 #, c-format
 msgid "'%s' in workspace is a directory, not a file"
 msgstr "'%s' i arbetskopian är en katalog, inte en fil"
 
- -#: diff_patch.cc:613
+#: diff_patch.cc:615
 #, c-format
 msgid "file %s in workspace has id %s, wanted %s"
 msgstr "filen %s i arbetskopian har identiteten %s, %s eftersöktes"
 
- -#: diff_patch.cc:734
+#: diff_patch.cc:736
 #, c-format
 msgid ""
 "help required for 3-way merge\n"
@@ -3444,11 +3444,11 @@ msgstr "flyttar nyckeln '%s' från datab
 msgid "moving key '%s' from database to %s"
 msgstr "flyttar nyckeln '%s' från databasen till %s"
 
- -#: std_hooks.lua:37
+#: std_hooks.lua:48
 msgid "Press enter"
 msgstr "Tryck på Enter"
 
- -#: std_hooks.lua:39
+#: std_hooks.lua:50
 msgid "Press enter when the subprocess has completed"
 msgstr "Tryck [Retur] när underprocessen är klar"
 
============================================================
- --- std_hooks.lua     9c74f2c3a134625e54d6dac5f6aeaa05508e85bc
+++ std_hooks.lua       42f3bf1d7d2c23733cf732bf15f878a1b7eeb478
@@ -25,6 +25,17 @@ end
    return ret
 end
 
+function execute_out(path, ...)
+   local pid
+   local ret, out = execute_redirout(path, unpack(arg))
+
+   if (ret == -1) then
+       print('Error executing ' .. path)
+       out = nil
+   end              
+   return out
+end
+
 -- Wrapper around execute to let user confirm in the case where a subprocess
 -- returns immediately
 -- This is needed to work around some brokenness with some merge tools
============================================================
- --- unix/process.cc   04e4acb200ae781f7b94bef190f2972179504424
+++ unix/process.cc     3fd0f14d7534c919df95b2133ca64e4f27f67cff
@@ -11,8 +11,10 @@
 #include <fcntl.h>
 #include <errno.h>
 #include <string.h>
+#include <stdio.h>
 
 #include <sstream>
+#include <boost/algorithm/string/trim.hpp>
 
 #include "sanity.hh"
 #include "platform.hh"
@@ -110,11 +112,43 @@ struct redir
   struct bad_redir {};
   int savedfd;
   int fd;
+  FILE * tempfile;
   redir(int which, char const * file);
+  redir(int which);
+  void unredir(void);
   ~redir();
 };
+redir::redir(int which)
+  : savedfd(-1), fd(which), tempfile(NULL)
+{
+
+  FILE *tempfile = tmpfile();
+  if (tempfile == NULL)
+    throw redir::bad_redir();
+
+  int tempfd = fileno(tempfile);
+  if (tempfd == -1)
+    {
+      fclose(tempfile);
+      throw redir::bad_redir();
+    }
+
+  int oldfd = dup(which);
+  if (oldfd == -1)
+    {
+      fclose(tempfile);
+      close(tempfd);
+      throw redir::bad_redir();
+    }
+  close(which);
+  while (dup2(tempfd, which) == -1 && errno == EINTR) ;
+  close(tempfd);
+  fd = which;
+  savedfd = oldfd;
+}
+
 redir::redir(int which, char const * file)
- - : savedfd(-1), fd(which)
+  : savedfd(-1), fd(which), tempfile(NULL)
 {
   int tempfd = open(file, (which==0?O_RDONLY:O_WRONLY|O_CREAT|O_TRUNC), 0664);
   if (tempfd == -1)
@@ -133,14 +167,37 @@ redir::redir(int which, char const * fil
   fd = which;
   savedfd = oldfd;
 }
+
+void redir::unredir(void)
+{
+  if (savedfd != -1)
+    {
+      int tempfd = dup(fd);
+      close(fd);
+      dup2(savedfd, fd);
+      close(savedfd);
+      savedfd = -1;
+      fd = tempfd;
+    }
+}
+
 redir::~redir()
 {
   if (savedfd != -1)
     {
       close(fd);
       dup2(savedfd, fd);
+      fd = -1;
       close(savedfd);
     }
+  if (fd != -1)
+    {
+      close(fd);
+    }
+  if (tempfile != NULL)
+    {
+      fclose(tempfile);
+    }
 }
 
 pid_t process_spawn_redirected(char const * in,
@@ -161,6 +218,135 @@ pid_t process_spawn_redirected(char cons
     }
 }
 
+int process_execute_redirout(std::string & output, char const * const argv[])
+{
+  const int reached_none = 255;
+  const int reached_exec = 250;
+  const int reached_prep_out = 245;
+  const int reached_out_buffer = 240;
+  const int reached_out_close = 235;
+  const int reached_out_read = 230;
+  const int reached_end = 0;
+
+  int how_far = reached_none;
+
+  char * outbuffer = NULL;
+  int outfd = -1;
+  pid_t pid = -1;
+  off_t filesize = -1;
+
+  output = std::string("");
+  redir * redir_out = NULL;
+
+  while(true)
+    {
+      try
+       {
+         redir_out = new redir(1);
+         how_far = reached_exec;
+         pid = process_spawn(argv);
+       }
+      catch (redir::bad_redir & r)
+       {
+         break;
+       }
+
+      int result = -1;
+      int ret = -1;
+
+      if (pid == -1)
+       break;
+
+      ret = process_wait(pid, &result);
+      
+      if ((ret == -1) || (result == -1)) 
+       break;
+
+      redir_out->unredir();
+
+      how_far = reached_prep_out;
+
+      outfd = redir_out->fd;
+
+      filesize = lseek(outfd, 0, SEEK_END);
+      if (filesize == -1) 
+       break;
+
+      if (lseek(outfd, 0, SEEK_SET) == -1)
+       break;
+
+      how_far = reached_out_buffer;
+      outbuffer = (char * )malloc(filesize + sizeof(char));
+      if (outbuffer == NULL)
+       break;
+
+      how_far = reached_out_read;
+      if (read(outfd, outbuffer, filesize) == -1)      
+       break;
+
+      outbuffer[filesize] = 0;
+      output = boost::algorithm::trim_copy(std::string(outbuffer));
+
+      how_far = reached_out_close; 
+
+      int closeres = -1;
+
+      do
+       {
+         closeres = close(outfd);
+       }
+      while (closeres == -1 && errno == EINTR);
+
+      if (closeres == -1)
+       break;
+
+      if (redir_out != NULL)
+       delete redir_out;
+
+      if (outbuffer != NULL)
+       free(outbuffer);
+
+      how_far = reached_end;
+      break;
+    }
+
+  bool doneerr = false;
+  int retval = -1;
+
+  switch(how_far)
+    {
+    case reached_end:
+      doneerr = true;
+      retval = 0;
+      break;
+    case reached_out_close:
+      E((doneerr), F("Error closing temporary file used to capture command 
output"));
+      doneerr = true;
+    case reached_out_read:
+      E((doneerr), F("Error reading temporary file used to capture command 
output"));
+      doneerr = true;
+    case reached_out_buffer:
+      E((doneerr), F("Error allocating memory used to capture command 
output"));
+      doneerr = true;
+      if (outbuffer != NULL)
+       free(outbuffer);
+    case reached_prep_out:
+      E((doneerr), F("Error preparing to read temporary file used to capture 
output"));
+      doneerr = true;
+      while (close(outfd) == -1 && errno == EINTR) ;
+    case reached_exec:
+      E((doneerr), F("Error executing command"));
+      doneerr = true;
+      if (redir_out != NULL)
+       delete redir_out;
+    case reached_none:
+      doneerr = true;
+      break;
+    }      
+
+  return retval;
+}
+
 int process_wait(pid_t pid, int *res, int timeout)
 {
         int status;
============================================================
- --- win32/process.cc  993e5bdc06b7b7aa5fa5236e635bc97f37020968
+++ win32/process.cc    43710478f0daed3c0516e65b857fe8964342266b
@@ -6,10 +6,21 @@
 #include <string>
 #include <sstream>
 #include <windows.h>
+#include <stdio.h>
+#include <io.h>
 
+#include <boost/algorithm/string/trim.hpp>
+
 #include "sanity.hh"
 #include "platform.hh"
 
+namespace constants 
+{
+  static size_t const tempdirname_buffer_size = 65535;
+  static size_t const tempfilename_buffer_size = 65535;
+}
+
+
 static std::string munge_inner_argument(const char* arg)
 {
   std::string result;
@@ -152,25 +163,51 @@ struct redir
   struct bad_redir {};
   HANDLE saved;
   int what;
+  HANDLE tempfile;
+  void unredir(void);
   redir(int which, char const * file);
+  redir(int which);
   ~redir();
 };
- -redir::redir(int which, char const * filename)
- - : what(which)
+
+redir::redir(int which)
+  : what(which), tempfile(INVALID_HANDLE_VALUE)
 {
   HANDLE file;
+  char tempdirname_buffer[tempdirname_buffer_size];
+  char tmpfilename_buffer[tempfilename_buffer_size];
+
+  int opret = GetTempPath(tempdirname_buffer_size,
+                         &tmpdirname_buffer[0]);
+
+  if (opret > tempdirname_buffer_size)
+       throw redir::bad_redir();
+    
+  // Create a temporary file. 
+  opret = GetTempFileName(&tempdirname_buffer[0],
+                         "NEW",
+                         0,
+                         &tempfilename_buffer[0]);  
+
+  if (opret == 0) 
+    throw redir::bad_redir();
+         
   SECURITY_ATTRIBUTES sa;
   sa.nLength = sizeof(SECURITY_ATTRIBUTES);
   sa.lpSecurityDescriptor = 0;
   sa.bInheritHandle = true;
   
- -  file = CreateFile(filename,
+  file = CreateFile((LPTSTR) &tempfilename_buffer[0], 
                     (which==0?GENERIC_READ:GENERIC_WRITE),
                     FILE_SHARE_READ,
                     &sa,
                     (which==0?OPEN_EXISTING:CREATE_ALWAYS),
                     FILE_ATTRIBUTE_NORMAL,
                     NULL);
+  
+  if (file == INVALID_HANDLE_VALUE)
+    throw redir::bad_redir();
+
   switch(which)
   {
   case 0:
@@ -186,25 +223,80 @@ redir::redir(int which, char const * fil
     SetStdHandle(STD_ERROR_HANDLE, file);
     break;
   }
+  
+  tempfile = file;
 }
- -redir::~redir()
+
+redir::redir(int which, char const * filename)
+  : what(which), tempfile(INVALID_HANDLE_VALUE)
 {
- -  switch(what)
- -  {
+  HANDLE file;
+  SECURITY_ATTRIBUTES sa;
+  sa.nLength = sizeof(SECURITY_ATTRIBUTES);
+  sa.lpSecurityDescriptor = 0;
+  sa.bInheritHandle = true;
+  
+  file = CreateFile(filename,
+                    (which==0?GENERIC_READ:GENERIC_WRITE),
+                    FILE_SHARE_READ,
+                    &sa,
+                    (which==0?OPEN_EXISTING:CREATE_ALWAYS),
+                    FILE_ATTRIBUTE_NORMAL,
+                    NULL);
+  switch(which)
+    {
   case 0:
- -    CloseHandle(GetStdHandle(STD_INPUT_HANDLE));
- -    SetStdHandle(STD_INPUT_HANDLE, saved);
+    saved = GetStdHandle(STD_INPUT_HANDLE);
+    SetStdHandle(STD_INPUT_HANDLE, file);
     break;
   case 1:
- -    CloseHandle(GetStdHandle(STD_OUTPUT_HANDLE));
- -    SetStdHandle(STD_OUTPUT_HANDLE, saved);
+    saved = GetStdHandle(STD_OUTPUT_HANDLE);
+    SetStdHandle(STD_OUTPUT_HANDLE, file);
     break;
   case 2:
- -    CloseHandle(GetStdHandle(STD_ERROR_HANDLE));
- -    SetStdHandle(STD_ERROR_HANDLE, saved);
+    saved = GetStdHandle(STD_ERROR_HANDLE);
+    SetStdHandle(STD_ERROR_HANDLE, file);
     break;
   }
 }
+ 
+void redir::unredir(void)
+{
+  if (saved != INVALID_HANDLE_VALUE)
+    {
+      SetStdHandle(STD_INPUT_HANDLE, saved);
+      saved = INVALID_HANDLE_VALUE;
+    }
+}
+
+redir::~redir()
+{
+  if (saved != INVALID_HANDLE_VALUE)
+    {
+      switch(what)
+       {
+       case 0:
+         //      CloseHandle(GetStdHandle(STD_INPUT_HANDLE));
+         SetStdHandle(STD_INPUT_HANDLE, saved);
+         break;
+       case 1:
+         //      CloseHandle(GetStdHandle(STD_OUTPUT_HANDLE));
+         SetStdHandle(STD_OUTPUT_HANDLE, saved);
+         break;
+       case 2:
+         //      CloseHandle(GetStdHandle(STD_ERROR_HANDLE));
+         SetStdHandle(STD_ERROR_HANDLE, saved);
+         break;
+       }
+    }
+  if (tempfile != INVALID_HANDLE_VALUE)
+    {
+      CloseHandle(tempfile);
+      tempfile = INVALID_HANDLE_VALUE;
+      DeleteFile(&tempfilename_buffer[0]);
+    }
+}
+
 pid_t process_spawn_redirected(char const * in,
                                char const * out,
                                char const * err,
@@ -217,12 +309,142 @@ pid_t process_spawn_redirected(char cons
       redir e(2, err);
       return process_spawn(argv);
     }
- -  catch (redir::bad_redir)
+  catch (redir::bad_redir & r)
     {
       return -1;
     }
 }
 
+int process_execute_redirout(std::string & output, char const * const argv[]) 
+{
+  const int reached_none = 255;
+  const int reached_exec = 250;
+  const int reached_prep_out = 245;
+  const int reached_out_buffer = 240;
+  const int reached_out_close = 235;
+  const int reached_out_read = 230;
+  const int reached_end = 0;
+
+  int how_far = reached_none;
+  int tempfd = -1;
+  pid_t pid = -1;
+  HANDLE outhandle = INVALID_HANDLE_VALUE;
+  char * outbuffer = NULL;
+  redir * redir_out = NULL;
+  off_t filesize = -1;  
+
+  output = std::string("");
+
+  while(true)
+    {
+      try 
+       {
+         redir_out = new redir(1);
+         how_far = reached_exec;    
+         pid = process_spawn(argv);
+       }
+      catch (redir::bad_redir & r)
+       {
+         break;
+       }
+      int result = -1;
+      int ret = -1;
+
+      if (pid == -1)
+       break;
+  
+      ret = process_wait(pid, &result);
+      if ((ret == -1) || (result == -1))
+       break;
+
+      redir_out->unredir();
+
+      how_far = reached_prep_out;
+      
+      outhandle = redir_out->tempfile;
+      tempfd = _open_osfhandle((long)outhandle, O_RDONLY);
+      if (tempfd == -1)    
+       break;
+
+      filesize = _lseek(tempfd, 0, SEEK_END);
+      if (filesize == -1)
+       break;
+
+      if (_lseek(tempfd, 0, SEEK_SET) == -1)
+       break;
+
+      how_far = reached_out_buffer;
+      outbuffer = (char * )malloc(filesize + sizeof(char));
+      if (outbuffer == NULL)
+       break;
+
+      how_far = reached_out_read;
+      if (_read(tempfd, outbuffer, filesize) == -1)
+       break;
+
+      outbuffer[filesize] = 0;
+      output = boost::algorithm::trim_copy(std::string(outbuffer));
+
+      how_far = reached_out_close;
+      
+      int closeres = -1;
+
+      do
+       {
+         closeres = close(outfd);
+       }
+      while (closeres = -1 && errno == EINTR);
+      
+      if (closeres == -1)
+       break;
+
+      if (redir_out != NULL)
+       delete redir_out;
+
+      if (outbuffer != NULL)
+       free(outbuffer);
+
+      how_far = reached_end;
+      break;
+    }
+  
+  bool doneerr = false;
+  int retval = -1;
+
+  switch(how_far)
+    {
+    case reached_end:
+      doneerr = true;
+      retval = 0;
+      break;
+    case reached_out_close:
+      E((doneerr), F("Error closing temporary file used to capture command 
output"));
+      doneerr = true;
+    case reached_out_read:
+      E((doneerr), F("Error reading temporary file used to capture command 
output"));
+      doneerr = true;
+    case reached_out_buffer:
+      E((doneerr), F("Error allocating memory used to capture command 
output"));
+      doneerr = true;
+      if (outbuffer != NULL)
+       free(outbuffer);
+    case reached_prep_out:
+      E((!doneerr), F("Error preparing to read temporary file used to capture 
output"));
+      doneerr = true;
+      while (close(tempfd) == -1 && errno == EINTR) ;
+    case reached_exec:
+      E((doneerr), F("Error executing command"));
+      doneerr = true;
+      if (redir_out != NULL)
+       delete redir_out;
+    case reached_none:
+      doneerr = true;
+      break;
+    }      
+
+  return retval;
+}
+
 int process_wait(pid_t pid, int *res, int timeout)
 {
   HANDLE hProcess = (HANDLE)pid;
</diff>

- -- 
GnuPG Key Fingerprint 86 F5 81 A5 D4 2E 1F 1C      http://gnupg.org
And that's my crabbing done for the day.  Got it out of the way early, 
now I have the rest of the afternoon to sniff fragrant tea-roses or 
strangle cute bunnies or something.   -- Michael Devore
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFE4ANwhvWBpdQuHxwRAvP/AJ9AS93fgWzpsomCiE1HH44hlG01fACfUoN5
8chKVnbJtqQMaav/wQSEa8k=
=3GRQ
-----END PGP SIGNATURE-----

reply via email to

[Prev in Thread] Current Thread [Next in Thread]