# # # patch "app_state.cc" # from [e023155657f790da146e61440a684c401861617e] # to [3b4f5adadc90538507819538426b7169c6638e96] # # patch "cmd.hh" # from [a5b25faa889c42eef0639d9bfc8de35560e4c750] # to [7142b69f986d070ea15a283a19fa16e4fb9edd59] # # patch "cmd_key_cert.cc" # from [f3f140dae84b41dfa105c9c2a732815dcab84b2d] # to [e54722f726beaaab17fe5b76d69c2406ea1771c2] # # patch "cmd_list.cc" # from [4481e430ec7ad9a903827eb164f06c010ca82825] # to [3f766006622a77936d626275828530e87756ffc4] # # patch "cmd_ws_commit.cc" # from [dd6762c181491f2c975366899b0169ad29d745ae] # to [016445f1951330fa7c359da43a467636de5a1529] # # patch "commands.cc" # from [94947fbc36757e11fa4d8f53a03c20bc481d1929] # to [c9e6fdb67f72a37dc491317be70923b5c701748a] # # patch "database.cc" # from [6189d9ea9e9d04146f65449b5a667a5242b5f785] # to [807b6a4bc4413e9f5058962f87f47dfcb820c0fb] # # patch "diff_patch.cc" # from [8277419d09a36a7d50b67310e7f7bb9e6bc9c553] # to [a8b1d3481a4ff79239887399a16f224df14a408a] # # patch "merge.cc" # from [50d493a68529cacffcc779ac57d463fc0269d72f] # to [71852a9175bfc8c69c16825c734428b9ed610855] # # patch "monotone.cc" # from [8f218bf8b34745356232b79848b8a126c05c53f9] # to [e2a095b54ab493c7b9d77e242949f74fbb75a404] # # patch "netcmd.cc" # from [caa78529e86c96bd1e158cf96fe7c0e119d2c7d6] # to [aec74e6839c0e64afce5066d350b4aef9e5a1e94] # # patch "netsync.cc" # from [816746f3fc709badab6c8082986cbf18fe1e995f] # to [a0fc2d152c269f9769c2f19998934d896cfc696c] # # patch "po/it.po" # from [05150f22f6b700c641ad365fe741466b28772460] # to [7c2823d8020b977b24b528903a0a18333d75ebb9] # # patch "rcs_file.cc" # from [a7e5014e6ae2cf6694ff8f120a7105cb90e37c85] # to [79b3250b30913654e617ed31e258ac6f6b9e7c9f] # # patch "revision.cc" # from [f0b0553d9ac7e49d67b696b8384fac10388a4fb8] # to [8b488424b904bc8d04a56dd5a0e24b37cab5507d] # # patch "sanity.cc" # from [61d59ca83d701cb703eb82ac38166099684752b2] # to [895be1df0de7918edb6fbb72f4f06f5428c38c9a] # # patch "ui.cc" # from [359b41c16854dc2b42a42449e9613079f1a95949] # to [f1bb749951aa4f9b75298f15d70b28ca98b217fd] # ============================================================ --- app_state.cc e023155657f790da146e61440a684c401861617e +++ app_state.cc 3b4f5adadc90538507819538426b7169c6638e96 @@ -243,7 +243,7 @@ app_state::set_root(system_path const & require_path_is_directory (path, F("search root '%s' does not exist") % path, - F("search root '%s' is not a directory\n") % path); + F("search root '%s' is not a directory") % path); search_root = path; L(FL("set search root to %s") % search_root); } @@ -292,7 +292,7 @@ app_state::set_depth(long d) app_state::set_depth(long d) { N(d >= 0, - F("negative depth not allowed\n")); + F("negative depth not allowed")); depth = d; } @@ -300,7 +300,7 @@ app_state::set_last(long l) app_state::set_last(long l) { N(l > 0, - F("illegal argument to --last: cannot be zero or negative\n")); + F("illegal argument to --last: cannot be zero or negative")); last = l; } @@ -308,7 +308,7 @@ app_state::set_next(long l) app_state::set_next(long l) { N(l > 0, - F("illegal argument to --next: cannot be zero or negative\n")); + F("illegal argument to --next: cannot be zero or negative")); next = l; } @@ -385,7 +385,7 @@ app_state::set_automate_stdio_size(long app_state::set_automate_stdio_size(long size) { N(size > 0, - F("illegal argument to --automate-stdio-size: cannot be zero or negative\n")); + F("illegal argument to --automate-stdio-size: cannot be zero or negative")); automate_stdio_size = (size_t)size; } ============================================================ --- cmd.hh a5b25faa889c42eef0639d9bfc8de35560e4c750 +++ cmd.hh 7142b69f986d070ea15a283a19fa16e4fb9edd59 @@ -65,7 +65,7 @@ namespace commands virtual ~command(); virtual std::string params(); virtual std::string desc(); - virtual void exec(app_state & app, + virtual void exec(app_state & app, std::vector const & args) = 0; }; }; @@ -117,8 +117,8 @@ complete(app_state & app, F("partial id '%s' does not have an expansion") % str); if (completions.size() > 1) { - std::string err = - (F("partial id '%s' has multiple ambiguous expansions:\n") + std::string err = + (F("partial id '%s' has multiple ambiguous expansions:") % str).str(); for (typename std::set::const_iterator i = completions.begin(); i != completions.end(); ++i) ============================================================ --- cmd_key_cert.cc f3f140dae84b41dfa105c9c2a732815dcab84b2d +++ cmd_key_cert.cc e54722f726beaaab17fe5b76d69c2406ea1771c2 @@ -179,16 +179,17 @@ CMD(trusted, N_("key and cert"), copy(signers.begin(), signers.end(), ostream_iterator(all_signers, " ")); - cout << F("if a cert on: %s\n" + cout << (F("if a cert on: %s\n" "with key: %s\n" "and value: %s\n" "was signed by: %s\n" - "it would be: %s\n") + "it would be: %s") % ident % name % value % all_signers.str() - % (trusted ? _("trusted") : _("UNtrusted")); + % (trusted ? _("trusted") : _("UNtrusted"))) + << "\n"; // final newline is kept out of the translation } CMD(tag, N_("review"), N_("REVISION TAGNAME"), ============================================================ --- cmd_list.cc 4481e430ec7ad9a903827eb164f06c010ca82825 +++ cmd_list.cc 3f766006622a77936d626275828530e87756ffc4 @@ -137,7 +137,7 @@ static void } static void -ls_keys(string const & name, app_state & app, +ls_keys(string const & name, app_state & app, vector const & args) { vector pubs; @@ -199,7 +199,7 @@ ls_keys(string const & name, app_state & cout << hash_code << " " << keyid << " (*)" << "\n"; } if (!all_in_db) - cout << (F("(*) - only in %s/") + cout << (F("(*) - only in %s/") % app.keys.get_key_dir()) << "\n"; cout << "\n"; } @@ -245,7 +245,7 @@ ls_branches(string name, app_state & app sort(names.begin(), names.end()); for (size_t i = 0; i < names.size(); ++i) - if (match(idx(names, i)) + if (match(idx(names, i)) && !app.lua.hook_ignore_branch(idx(names, i))) cout << idx(names, i) << "\n"; } @@ -258,7 +258,7 @@ ls_epochs(string name, app_state & app, if (args.size() == 0) { - for (map::const_iterator + for (map::const_iterator i = epochs.begin(); i != epochs.end(); ++i) { @@ -267,7 +267,7 @@ ls_epochs(string name, app_state & app, } else { - for (vector::const_iterator i = args.begin(); + for (vector::const_iterator i = args.begin(); i != args.end(); ++i) { @@ -284,7 +284,7 @@ ls_tags(string name, app_state & app, ve vector< revision > certs; app.db.get_revision_certs(tag_cert_name, certs); - set< pair > > + set< pair > > sorted_vals; for (vector< revision >::const_iterator i = certs.begin(); @@ -331,8 +331,8 @@ ls_vars(string name, app_state & app, ve continue; external ext_domain, ext_name; externalize_var_domain(i->first.first, ext_domain); - cout << ext_domain << ": " - << i->first.second << " " + cout << ext_domain << ": " + << i->first.second << " " << i->second << "\n"; } } @@ -352,12 +352,12 @@ ls_known(app_state & app, vector c new_roster, app); node_map const & nodes = new_roster.all_nodes(); - for (node_map::const_iterator i = nodes.begin(); + for (node_map::const_iterator i = nodes.begin(); i != nodes.end(); ++i) { node_id nid = i->first; - if (!new_roster.is_root(nid) + if (!new_roster.is_root(nid) && mask.includes(new_roster, nid)) { split_path sp; @@ -368,7 +368,7 @@ static void } static void -ls_unknown_or_ignored(app_state & app, bool want_ignored, +ls_unknown_or_ignored(app_state & app, bool want_ignored, vector const & args) { app.require_workspace(); @@ -384,11 +384,11 @@ ls_unknown_or_ignored(app_state & app, b app.work.find_unknown_and_ignored(mask, roots, unknown, ignored); if (want_ignored) - for (path_set::const_iterator i = ignored.begin(); + for (path_set::const_iterator i = ignored.begin(); i != ignored.end(); ++i) cout << file_path(*i) << "\n"; else - for (path_set::const_iterator i = unknown.begin(); + for (path_set::const_iterator i = unknown.begin(); i != unknown.end(); ++i) cout << file_path(*i) << "\n"; } @@ -407,7 +407,7 @@ ls_missing(app_state & app, vector path_set missing; app.work.find_missing(current_roster_shape, mask, missing); - for (path_set::const_iterator i = missing.begin(); + for (path_set::const_iterator i = missing.begin(); i != missing.end(); ++i) { cout << file_path(*i) << "\n"; @@ -428,19 +428,19 @@ ls_changed(app_state & app, vector app.work.get_base_and_current_roster_shape(old_roster, new_roster, nis); node_restriction mask(args_to_paths(args), - args_to_paths(app.exclude_patterns), + args_to_paths(app.exclude_patterns), app.depth, old_roster, new_roster, app); app.work.update_current_roster_from_filesystem(new_roster, mask); - make_restricted_csets(old_roster, new_roster, + make_restricted_csets(old_roster, new_roster, included, excluded, mask); check_restricted_cset(old_roster, included); set nodes; select_nodes_modified_by_cset(included, old_roster, new_roster, nodes); - for (set::const_iterator i = nodes.begin(); i != nodes.end(); + for (set::const_iterator i = nodes.begin(); i != nodes.end(); ++i) { split_path sp; ============================================================ --- cmd_ws_commit.cc dd6762c181491f2c975366899b0169ad29d745ae +++ cmd_ws_commit.cc 016445f1951330fa7c359da43a467636de5a1529 @@ -119,7 +119,7 @@ CMD(revert, N_("workspace"), N_("[PATH]. check_restricted_cset(old_roster, excluded); node_map const & nodes = old_roster.all_nodes(); - for (node_map::const_iterator i = nodes.begin(); + for (node_map::const_iterator i = nodes.begin(); i != nodes.end(); ++i) { node_id nid = i->first; @@ -200,7 +200,7 @@ CMD(disapprove, N_("review"), N_("REVISI app.db.get_revision(r, rev); N(rev.edges.size() == 1, - F("revision '%s' has %d changesets, cannot invert\n") % r % rev.edges.size()); + F("revision %s has %d changesets, cannot invert") % r % rev.edges.size()); cert_value branchname; guess_branch(r, app, branchname); @@ -231,8 +231,8 @@ CMD(disapprove, N_("review"), N_("REVISI cert_revision_in_branch(inv_id, branchname, app, dbw); cert_revision_date_now(inv_id, app, dbw); cert_revision_author_default(inv_id, app, dbw); - cert_revision_changelog(inv_id, - (FL("disapproval of revision '%s'") + cert_revision_changelog(inv_id, + (FL("disapproval of revision '%s'") % r).str(), app, dbw); guard.commit(); } @@ -261,7 +261,7 @@ CMD(add, N_("workspace"), N_("[PATH]..." app.work.find_unknown_and_ignored(mask, roots, paths, ignored); } else - for (vector::const_iterator i = args.begin(); + for (vector::const_iterator i = args.begin(); i != args.end(); ++i) { split_path sp; @@ -294,7 +294,7 @@ CMD(drop, N_("workspace"), N_("[PATH]... app.work.find_missing(current_roster_shape, mask, paths); } else - for (vector::const_iterator i = args.begin(); + for (vector::const_iterator i = args.begin(); i != args.end(); ++i) { split_path sp; @@ -371,7 +371,7 @@ CMD(status, N_("informative"), N_("[PATH old_roster, new_roster, app); app.work.update_current_roster_from_filesystem(new_roster, mask); - make_restricted_csets(old_roster, new_roster, + make_restricted_csets(old_roster, new_roster, included, excluded, mask); check_restricted_cset(old_roster, included); @@ -418,7 +418,7 @@ CMD(status, N_("informative"), N_("[PATH } } -CMD(checkout, N_("tree"), N_("[DIRECTORY]\n"), +CMD(checkout, N_("tree"), N_("[DIRECTORY]"), N_("check out a revision from database into directory.\n" "If a revision is given, that's the one that will be checked out.\n" "Otherwise, it will be the head of the branch (given or implicit).\n" @@ -436,12 +436,12 @@ CMD(checkout, N_("tree"), N_("[DIRECTORY if (app.revision_selectors.size() == 0) { // use branch head revision - N(!app.branch_name().empty(), + N(!app.branch_name().empty(), F("use --revision or --branch to specify what to checkout")); set heads; get_branch_heads(app.branch_name(), app, heads); - N(heads.size() > 0, + N(heads.size() > 0, F("branch '%s' is empty") % app.branch_name); if (heads.size() > 1) { @@ -479,7 +479,7 @@ CMD(checkout, N_("tree"), N_("[DIRECTORY N(certs.size() != 0, F("revision %s is not a member of branch %s") % ident % app.branch_name); } - + // we do this part of the checking down here, because it is legitimate to // do // $ mtn co -r h:net.venge.monotone @@ -488,11 +488,11 @@ CMD(checkout, N_("tree"), N_("[DIRECTORY // until after the guess_branch() call above: { bool checkout_dot = false; - + if (args.size() == 0) { // No checkout dir specified, use branch name for dir. - N(!app.branch_name().empty(), + N(!app.branch_name().empty(), F("you must specify a destination directory")); dir = system_path(app.branch_name()); } @@ -503,7 +503,7 @@ CMD(checkout, N_("tree"), N_("[DIRECTORY if (idx(args, 0) == utf8(".")) checkout_dot = true; } - + if (!checkout_dot) require_path_is_nonexistent (dir, F("checkout directory '%s' already exists") % dir); @@ -523,7 +523,7 @@ CMD(checkout, N_("tree"), N_("[DIRECTORY app.work.put_work_rev(workrev); node_map const & nodes = ros.all_nodes(); - for (node_map::const_iterator i = nodes.begin(); + for (node_map::const_iterator i = nodes.begin(); i != nodes.end(); ++i) { node_t node = i->second; @@ -605,7 +605,7 @@ CMD(attr, N_("workspace"), N_("set PATH { attr_key a_key = idx(args, 2)(); N(node->attrs.find(a_key) != node->attrs.end(), - F("Path '%s' does not have attribute '%s'\n") + F("Path '%s' does not have attribute '%s'") % path % a_key); node->attrs[a_key] = make_pair(false, ""); } @@ -629,8 +629,8 @@ CMD(attr, N_("workspace"), N_("set PATH i != node->attrs.end(); ++i) if (i->second.first) { - cout << path << " : " - << i->first << "=" + cout << path << " : " + << i->first << "=" << i->second.second << "\n"; has_any_live_attrs = true; } @@ -642,11 +642,11 @@ CMD(attr, N_("workspace"), N_("set PATH attr_key a_key = idx(args, 2)(); full_attr_map_t::const_iterator i = node->attrs.find(a_key); if (i != node->attrs.end() && i->second.first) - cout << path << " : " - << i->first << "=" + cout << path << " : " + << i->first << "=" << i->second.second << "\n"; else - cout << (F("No attribute '%s' on path '%s'") + cout << (F("No attribute '%s' on path '%s'") % a_key % path) << "\n"; } else @@ -660,7 +660,7 @@ CMD(commit, N_("workspace"), N_("[PATH]. CMD(commit, N_("workspace"), N_("[PATH]..."), N_("commit workspace to database"), - option::branch_name % option::message % option::msgfile % option::date % + option::branch_name % option::message % option::msgfile % option::date % option::author % option::depth % option::exclude) { utf8 log_message(""); @@ -681,7 +681,7 @@ CMD(commit, N_("workspace"), N_("[PATH]. old_roster, new_roster, app); app.work.update_current_roster_from_filesystem(new_roster, mask); - make_restricted_csets(old_roster, new_roster, + make_restricted_csets(old_roster, new_roster, included, excluded, mask); check_restricted_cset(old_roster, included); @@ -778,7 +778,7 @@ CMD(commit, N_("workspace"), N_("[PATH]. // process file deltas or new files cset const & cs = edge_changes(edge); - for (map >::const_iterator + for (map >::const_iterator i = cs.deltas_applied.begin(); i != cs.deltas_applied.end(); ++i) { @@ -814,12 +814,12 @@ CMD(commit, N_("workspace"), N_("[PATH]. else // If we don't err out here, our packet writer will // later. - E(false, + E(false, F("Your database is missing version %s of file '%s'") % old_content % path); } - for (map::const_iterator + for (map::const_iterator i = cs.files_added.begin(); i != cs.files_added.end(); ++i) { @@ -862,7 +862,7 @@ CMD(commit, N_("workspace"), N_("[PATH]. // we just checked in. revision_t remaining; make_revision_for_workspace(restricted_rev_id, excluded, remaining); - + // small race condition here... app.work.put_work_rev(remaining); P(F("committed revision %s") % restricted_rev_id); @@ -905,7 +905,7 @@ CMD_NO_WORKSPACE(setup, N_("tree"), N_(" CMD_NO_WORKSPACE(setup, N_("tree"), N_("[DIRECTORY]"), - N_("setup a new workspace directory, default to current"), + N_("setup a new workspace directory, default to current"), option::branch_name) { if (args.size() > 1) @@ -937,7 +937,7 @@ CMD_NO_WORKSPACE(migrate_workspace, N_(" if (args.size() == 1) go_to_workspace(system_path(idx(args, 0))); - + app.work.migrate_ws_format(); } ============================================================ --- commands.cc 94947fbc36757e11fa4d8f53a03c20bc481d1929 +++ commands.cc c9e6fdb67f72a37dc491317be70923b5c701748a @@ -139,7 +139,7 @@ namespace commands } // more than one matched command - string err = (F("command '%s' has multiple ambiguous expansions:\n") % cmd).str(); + string err = (F("command '%s' has multiple ambiguous expansions:") % cmd).str(); for (vector::iterator i = matched.begin(); i != matched.end(); ++i) err += (*i + "\n"); @@ -423,10 +423,10 @@ complete(app_state & app, if (completions.size() > 1) { - string err = (F("selection '%s' has multiple ambiguous expansions: \n") % str).str(); + string err = (F("selection '%s' has multiple ambiguous expansions:") % str).str(); for (set::const_iterator i = completions.begin(); i != completions.end(); ++i) - err += (describe_revision(app, *i) + "\n"); + err += ("\n" + describe_revision(app, *i)); N(completions.size() == 1, i18n_format(err)); } ============================================================ --- database.cc 6189d9ea9e9d04146f65449b5a667a5242b5f785 +++ database.cc 807b6a4bc4413e9f5058962f87f47dfcb820c0fb @@ -100,7 +100,7 @@ namespace }; return q; } - + // track all open databases for close_all_databases() handler set sql_contexts; } @@ -571,7 +571,7 @@ database::info(ostream & out) #define SPACE_USAGE(TABLE, COLS) add(space_usage(TABLE, COLS), total) - out << \ + out << ( \ F("schema version : %s\n" "counts:\n" " full rosters : %u\n" @@ -593,7 +593,7 @@ database::info(ostream & out) " total : %u\n" "database:\n" " page size : %u\n" - " cache size : %u\n" + " cache size : %u" ) % id // counts @@ -616,7 +616,8 @@ database::info(ostream & out) " + length(value) + length(keypair) + length(signature)") % total % page_size() - % cache_size(); + % cache_size() + ) << "\n"; // final newline is kept out of the translation #undef SPACE_USAGE } @@ -711,7 +712,7 @@ database::fetch(results & res, // no support for multiple statements here E(*tail == 0, - F("multiple statements in query: %s\n") % query.sql_cmd); + F("multiple statements in query: %s") % query.sql_cmd); } ncol = sqlite3_column_count(i->second.stmt()); @@ -878,7 +879,7 @@ database::cancel_delayed_file(file_id co size_t cancel_size = size_delayed_file(an_id, dat); I(cancel_size <= delayed_writes_size); delayed_writes_size -= cancel_size; - + safe_erase(delayed_files, an_id); } @@ -1112,7 +1113,7 @@ database::get_roster_base(string const & hexenc calculated; calculate_ident(data(res[0][1]), calculated); I(calculated == checksum); - + gzip dat_packed(res[0][1]); data dat; decode_gzip(dat_packed, dat); @@ -1132,7 +1133,7 @@ database::get_roster_delta(string const hexenc calculated; calculate_ident(data(res[0][1]), calculated); I(calculated == checksum); - + gzip del_packed(res[0][1]); delta tmp; decode_gzip(del_packed, tmp); @@ -1233,7 +1234,7 @@ struct file_and_manifest_reconstruction_ database & db; string const & data_table; string const & delta_table; - + file_and_manifest_reconstruction_graph(database & db, string const & data_table, string const & delta_table) @@ -1269,46 +1270,46 @@ database::get_version(hexenc const & file_and_manifest_reconstruction_graph graph(*this, data_table, delta_table); get_reconstruction_path(ident(), graph, selected_path); } - + I(!selected_path.empty()); - + hexenc curr = selected_path.back(); selected_path.pop_back(); data begin; - + if (vcache.exists(curr())) I(vcache.fetch(curr(), begin)); else get_file_or_manifest_base_unchecked(curr, begin, data_table); - + shared_ptr appl = new_piecewise_applicator(); appl->begin(begin()); - + for (reconstruction_path::reverse_iterator i = selected_path.rbegin(); i != selected_path.rend(); ++i) { hexenc const nxt = *i; - + if (!vcache.exists(curr())) { string tmp; appl->finish(tmp); vcache.insert_clean(curr(), tmp); } - + L(FL("following delta %s -> %s") % curr % nxt); delta del; get_file_or_manifest_delta_unchecked(nxt, curr, del, delta_table); apply_delta(appl, del()); - + appl->next(); curr = nxt; } - + string tmp; appl->finish(tmp); dat = data(tmp); - + hexenc final; calculate_ident(dat, final); I(final == ident); @@ -1352,7 +1353,7 @@ database::get_roster_version(revision_id roster_reconstruction_graph graph(*this); get_reconstruction_path(id.inner()(), graph, selected_path); } - + string curr = selected_path.back(); selected_path.pop_back(); // we know that this isn't already in the cache (because of the early exit @@ -1360,7 +1361,7 @@ database::get_roster_version(revision_id shared_ptr roster(new roster_t); shared_ptr marking(new marking_map); get_roster_base(curr, *roster, *marking); - + for (reconstruction_path::reverse_iterator i = selected_path.rbegin(); i != selected_path.rend(); ++i) { @@ -2808,7 +2809,7 @@ database::put_roster(revision_id const & // they aren't already). roster_cache.insert_dirty(rev_id, make_pair(roster, marking)); - + set parents; get_revision_parents(rev_id, parents); ============================================================ --- diff_patch.cc 8277419d09a36a7d50b67310e7f7bb9e6bc9c553 +++ diff_patch.cc a8b1d3481a4ff79239887399a16f224df14a408a @@ -745,7 +745,7 @@ content_merger::try_to_merge_files(file_ "[ancestor] %s\n" "[ left] %s\n" "[ right] %s\n" - "[ merged] %s\n") + "[ merged] %s") % anc_path % left_path % right_path @@ -812,7 +812,7 @@ struct hunk_consumer /* Find, and write to ENCLOSER, the nearest line before POS which matches ENCLOSER_PATTERN. We remember the last line scanned, and the matched, to avoid duplication of effort. */ - + void hunk_consumer::find_encloser(size_t pos, string & encloser) { @@ -973,7 +973,7 @@ void unidiff_hunk_writer::flush_hunk(siz first_mod = i - hunk.begin(); break; } - + find_encloser(a_begin + first_mod, encloser); ost << " @@" << encloser << endl; } @@ -1110,7 +1110,7 @@ void cxtdiff_hunk_writer::flush_hunk(siz find_encloser(a_begin + min(first_insert, first_delete), encloser); - + ost << "***************" << encloser << endl; } @@ -1282,7 +1282,7 @@ make_diff(string const & filename1, // If there is a tab, considers everything up to that tab to be the // filename. If there is not a tab, considers everything up to the // first whitespace to be the filename. - // + // // Contains comment: 'If the [file]name is "/dev/null", ignore the name // and mark the file as being nonexistent. The name "/dev/null" appears // in patches regardless of how NULL_DEVICE is spelled.' Also detects ============================================================ --- merge.cc 50d493a68529cacffcc779ac57d463fc0269d72f +++ merge.cc 71852a9175bfc8c69c16825c734428b9ed610855 @@ -121,7 +121,7 @@ resolve_merge_conflicts(roster_t const & } E(result.is_clean(), - F("merge failed due to unresolved conflicts\n")); + F("merge failed due to unresolved conflicts")); } void ============================================================ --- monotone.cc 8f218bf8b34745356232b79848b8a126c05c53f9 +++ monotone.cc e2a095b54ab493c7b9d77e242949f74fbb75a404 @@ -87,7 +87,7 @@ struct botan_library // Wrapper class to ensure Botan is properly initialized and deinitialized. struct botan_library { - botan_library() { + botan_library() { Botan::Init::initialize(); Botan::set_default_allocator("malloc"); hook_botan_sha1(); @@ -119,7 +119,7 @@ tokenize_for_command_line(string const & string cur; quote_type type = none; bool have_tok(false); - + for (string::const_iterator i = from.begin(); i != from.end(); ++i) { if (*i == '\'') @@ -662,7 +662,7 @@ cpp_main(int argc, char ** argv) } catch (po::ambiguous_option const & e) { - string msg = (F("%s:\n") % e.what()).str(); + string msg = (i18n_format("%s:\n") % e.what()).str(); vector::const_iterator it = e.alternatives.begin(); for (; it != e.alternatives.end(); ++it) msg += *it + "\n"; @@ -670,7 +670,7 @@ cpp_main(int argc, char ** argv) } catch (po::error const & e) { - N(false, F("%s") % e.what()); + N(false, i18n_format("%s") % e.what()); } catch (usage & u) { ============================================================ --- netcmd.cc caa78529e86c96bd1e158cf96fe7c0e119d2c7d6 +++ netcmd.cc aec74e6839c0e64afce5066d350b4aef9e5a1e94 @@ -153,7 +153,7 @@ netcmd::read(string_queue & inbuf, chain if (hmac.is_active() && cmd_code != usher_cmd) { // grab it before the data gets munged - I(hmac.hmac_length == constants::netsync_hmac_value_length_in_bytes); + I(hmac.hmac_length == constants::netsync_hmac_value_length_in_bytes); digest = hmac.process(inbuf, 0, pos + payload_len); } @@ -174,7 +174,7 @@ netcmd::read(string_queue & inbuf, chain && cmd_digest != digest) { throw bad_decode(F("bad HMAC checksum (got %s, wanted %s)\n" - "this suggests data was corrupted in transit\n") + "this suggests data was corrupted in transit") % encode_hexenc(cmd_digest) % encode_hexenc(digest)); } ============================================================ --- netsync.cc 816746f3fc709badab6c8082986cbf18fe1e995f +++ netsync.cc a0fc2d152c269f9769c2f19998934d896cfc696c @@ -1250,7 +1250,7 @@ session::process_hello_cmd(rsa_keypair_i { P(F("first time connecting to server %s\n" "I'll assume it's really them, but you might want to double-check\n" - "their key's fingerprint: %s\n") % peer_id % their_key_hash); + "their key's fingerprint: %s") % peer_id % their_key_hash); app.db.set_var(their_key_key, var_value(their_key_hash())); } if (!app.db.public_key_exists(their_key_hash)) @@ -2224,7 +2224,7 @@ bool session::process(transaction_guard if (inbuf.size() >= constants::netcmd_maxsz) W(F("input buffer for peer %s is overfull " - "after netcmd dispatch\n") % peer_id); + "after netcmd dispatch") % peer_id); guard.maybe_checkpoint(sz); @@ -2350,7 +2350,7 @@ call_server(protocol_role role, if (fd == -1 && !armed) { E(false, (F("timed out waiting for I/O with " - "peer %s, disconnecting\n") + "peer %s, disconnecting") % sess.peer_id)); } @@ -2373,7 +2373,7 @@ call_server(protocol_role role, // error from our server (which is translated to a decode // exception). We call these cases E() errors. E(false, F("processing failure while talking to " - "peer %s, disconnecting\n") + "peer %s, disconnecting") % sess.peer_id); return; } @@ -2401,7 +2401,7 @@ call_server(protocol_role role, } else E(false, (F("I/O failure while talking to " - "peer %s, disconnecting\n") + "peer %s, disconnecting") % sess.peer_id)); } } @@ -2552,7 +2552,7 @@ handle_read_available(Netxx::socket_type case session::shutdown_state: P(F("peer %s read failed in shutdown state " - "(possibly client misreported error)\n") + "(possibly client misreported error)") % sess->peer_id); break; @@ -2584,7 +2584,7 @@ handle_write_available(Netxx::socket_typ case session::shutdown_state: P(F("peer %s write failed in shutdown state " - "(possibly client misreported error)\n") + "(possibly client misreported error)") % sess->peer_id); break; @@ -2722,7 +2722,7 @@ serve_connections(protocol_role role, if (sessions.size() >= session_limit) W(F("session limit %d reached, some connections " - "will be refused\n") % session_limit); + "will be refused") % session_limit); else probe.add(server); @@ -3120,13 +3120,13 @@ run_netsync_protocol(protocol_voice voic if (include_pattern().find_first_of("'\"") != string::npos) { W(F("include branch pattern contains a quote character:\n" - "%s\n") % include_pattern()); + "%s") % include_pattern()); } if (exclude_pattern().find_first_of("'\"") != string::npos) { W(F("exclude branch pattern contains a quote character:\n" - "%s\n") % exclude_pattern()); + "%s") % exclude_pattern()); } // We do not want to be killed by SIGPIPE from a network disconnect. ============================================================ --- po/it.po 05150f22f6b700c641ad365fe741466b28772460 +++ po/it.po 7c2823d8020b977b24b528903a0a18333d75ebb9 @@ -1,9 +1,9 @@ msgstr "" msgid "" msgstr "" "Project-Id-Version: monotone\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2006-09-23 14:09+0200\n" -"PO-Revision-Date: 2006-10-08 13:32+0100\n" +"PO-Revision-Date: 2006-10-08 14:19+0100\n" "Last-Translator: Lapo Luchini \n" "Language-Team: Lapo Luchini \n" "MIME-Version: 1.0\n" @@ -36,37 +36,35 @@ msgstr "la radice di ricerca ‘%s’ no msgstr "la radice di ricerca ‘%s’ non esiste" # TODO: radice di ricerca? -# TODO: remove ending 'n' #: app_state.cc:246 #, c-format -msgid "search root '%s' is not a directory\n" -msgstr "la radice di ricerca ‘%s’ non è una directory\n" +msgid "search root '%s' is not a directory" +msgstr "la radice di ricerca ‘%s’ non è una directory" #: app_state.cc:280 #, c-format msgid "failed to parse date string '%s': %s" msgstr "impossibile interpretare la stringa ‘%s’ come data: %s" -# TODO: remove ending '\n' #: app_state.cc:295 #, c-format -msgid "negative depth not allowed\n" -msgstr "profondità negativa non permessa\n" +msgid "negative depth not allowed" +msgstr "profondità negativa non permessa" #: app_state.cc:303 #, c-format -msgid "illegal argument to --last: cannot be zero or negative\n" -msgstr "argomento illegale per ‘--last’: non può essere zero o negativo\n" +msgid "illegal argument to --last: cannot be zero or negative" +msgstr "argomento illegale per ‘--last’: non può essere zero o negativo" #: app_state.cc:311 #, c-format -msgid "illegal argument to --next: cannot be zero or negative\n" -msgstr "argomento illegale per ‘--next’: non può essere zero o negativo\n" +msgid "illegal argument to --next: cannot be zero or negative" +msgstr "argomento illegale per ‘--next’: non può essere zero o negativo" #: app_state.cc:388 #, 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" +msgid "illegal argument to --automate-stdio-size: cannot be zero or negative" +msgstr "argomento illegale per ‘--automate-stdio-size’: non può essere zero o negativo" #: automate.cc:65 msgid "[BRANCH]" @@ -210,9 +208,9 @@ msgstr "OPZIONE" msgstr "OPZIONE" #: automate.cc:1496 -#, fuzzy, c-format +#, c-format msgid "'%s' is not a recognized workspace option" -msgstr "nello spazio di lavoro ‘%s’ è una cartella, non un file" +msgstr "" #: automate.cc:1519 msgid "REV FILE" @@ -324,6 +322,7 @@ msgstr "database" msgid "database" msgstr "database" +# TODO: remove ending newline #: cmd_db.cc:47 msgid "" "init\n" @@ -586,8 +585,8 @@ msgstr "l'id parziale ‘%s’ non può #: cmd.hh:121 #, c-format -msgid "partial id '%s' has multiple ambiguous expansions:\n" -msgstr "id parziale ‘%s’ ha espansioni multiple ambigue: \n" +msgid "partial id '%s' has multiple ambiguous expansions:" +msgstr "id parziale ‘%s’ ha espansioni multiple ambigue:" #: cmd.hh:129 #, c-format @@ -682,13 +681,13 @@ msgid "" "with key: %s\n" "and value: %s\n" "was signed by: %s\n" -"it would be: %s\n" +"it would be: %s" msgstr "" "se un certificato in: %s\n" "con chiave: %s\n" "e valore: %s\n" -"è stato firmato da: %s\n" -"sarà: %s\n" +"fosse stato firmato da: %s\n" +"sarebbe: %s" #: cmd_key_cert.cc:191 msgid "trusted" @@ -698,59 +697,59 @@ msgstr "NON fidato" msgid "UNtrusted" msgstr "NON fidato" -#: cmd_key_cert.cc:194 -#: cmd_key_cert.cc:207 -#: cmd_key_cert.cc:220 -#: cmd_key_cert.cc:236 +#: cmd_key_cert.cc:195 +#: cmd_key_cert.cc:208 +#: cmd_key_cert.cc:221 +#: cmd_key_cert.cc:237 #: cmd_ws_commit.cc:189 msgid "review" msgstr "verifica" -#: cmd_key_cert.cc:194 +#: cmd_key_cert.cc:195 msgid "REVISION TAGNAME" msgstr "REVISIONE NOME_ETICHETTA" -#: cmd_key_cert.cc:195 +#: cmd_key_cert.cc:196 msgid "put a symbolic tag cert on a revision" msgstr "poni un tag simbolico su una revisione" # questa frase non credo vada tradotta -#: cmd_key_cert.cc:207 +#: cmd_key_cert.cc:208 msgid "ID (pass|fail|true|false|yes|no|1|0)" msgstr "ID (pass|fail|true|false|yes|no|1|0)" -#: cmd_key_cert.cc:208 +#: cmd_key_cert.cc:209 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:220 +#: cmd_key_cert.cc:221 #: cmd_ws_commit.cc:189 msgid "REVISION" msgstr "REVISIONE" -#: cmd_key_cert.cc:221 +#: cmd_key_cert.cc:222 msgid "approve of a particular revision" msgstr "approva una particolare revisione" -#: cmd_key_cert.cc:232 +#: cmd_key_cert.cc:233 #, c-format msgid "need --branch argument for approval" msgstr "per ‘approve’ è necessario un argomento ‘--branch=RAMO’" -#: cmd_key_cert.cc:236 +#: cmd_key_cert.cc:237 msgid "REVISION [COMMENT]" msgstr "REVISIONE [COMMENTO]" -#: cmd_key_cert.cc:237 +#: cmd_key_cert.cc:238 msgid "comment on a particular revision" msgstr "commento su una specifica revisione" -#: cmd_key_cert.cc:249 +#: cmd_key_cert.cc:250 #, c-format msgid "edit comment failed" msgstr "modifica del commento fallita" -#: cmd_key_cert.cc:254 +#: cmd_key_cert.cc:255 #, c-format msgid "empty comment" msgstr "commento vuoto" @@ -761,6 +760,7 @@ msgstr "la chiave pubblica ‘%s’ non msgid "no public key '%s' found in database" msgstr "la chiave pubblica ‘%s’ non è nel database" +# TODO: remove ending newline #: cmd_list.cc:74 #, c-format msgid "" @@ -1430,11 +1430,11 @@ msgstr "disapprova una particolare revis msgid "disapprove of a particular revision" msgstr "disapprova una particolare revisione" -# TODO: remove '\n' from monotone sources +# TODO: invert? #: cmd_ws_commit.cc:203 #, c-format -msgid "revision '%s' has %d changesets, cannot invert\n" -msgstr "la revisione %s contiene %d changeset, non può essere annullata\n" +msgid "revision %s has %d changesets, cannot invert" +msgstr "la revisione %s contiene %d changeset, non può essere annullata" #: cmd_ws_commit.cc:207 #, c-format @@ -1524,8 +1524,10 @@ msgstr " modificato %s" msgstr " modificato %s" #: cmd_ws_commit.cc:421 -msgid "[DIRECTORY]\n" -msgstr "[DIRECTORY]\n" +#: cmd_ws_commit.cc:907 +#: cmd_ws_commit.cc:930 +msgid "[DIRECTORY]" +msgstr "[DIRECTORY]" #: cmd_ws_commit.cc:422 msgid "" @@ -1601,8 +1603,8 @@ msgstr "Percorso sconosciuto ‘%s’" #: cmd_ws_commit.cc:608 #, c-format -msgid "Path '%s' does not have attribute '%s'\n" -msgstr "Il percorso ‘%s’ non ha l'attributo ‘%s’\n" +msgid "Path '%s' does not have attribute '%s'" +msgstr "Il percorso ‘%s’ non ha l'attributo ‘%s’" #: cmd_ws_commit.cc:638 #, c-format @@ -1679,11 +1681,6 @@ msgstr "" "nota: questa revisione crea una divergenza\n" "nota: potresti voler (o non voler) eseguire ‘%s merge’" -#: cmd_ws_commit.cc:907 -#: cmd_ws_commit.cc:930 -msgid "[DIRECTORY]" -msgstr "[DIRECTORY]" - #: cmd_ws_commit.cc:908 msgid "setup a new workspace directory, default to current" msgstr "imposta una nuova directory come spazio di lavoro, il default è quella attuale" @@ -1709,8 +1706,8 @@ msgstr "comando ‘%s’ sconosciuto" #: commands.cc:142 #, c-format -msgid "command '%s' has multiple ambiguous expansions:\n" -msgstr "il comando ‘%s’ ha espansioni multiple ambigue:\n" +msgid "command '%s' has multiple ambiguous expansions:" +msgstr "il comando ‘%s’ ha espansioni multiple ambigue:" #: commands.cc:175 msgid "commands:" @@ -1741,8 +1738,8 @@ msgstr "espanso in ‘%s’" #: commands.cc:426 #, c-format -msgid "selection '%s' has multiple ambiguous expansions: \n" -msgstr "la selezione ‘%s’ ha espansioni multiple ambigue: \n" +msgid "selection '%s' has multiple ambiguous expansions:" +msgstr "la selezione ‘%s’ ha espansioni multiple ambigue:" #: commands.cc:443 msgid "note: " @@ -2143,7 +2140,7 @@ msgid "" " total : %u\n" "database:\n" " page size : %u\n" -" cache size : %u\n" +" cache size : %u" msgstr "" "versione schema : %s\n" "numero:\n" @@ -2166,54 +2163,54 @@ msgstr "" " totale : %u\n" "database:\n" " dimensione pagine : %u\n" -" dimensione cache : %u\n" +" dimensione cache : %u" -#: database.cc:637 +#: database.cc:638 #, c-format msgid "database schema version: %s" msgstr "versione dello schema del database: %s" -#: database.cc:714 +#: database.cc:715 #, c-format -msgid "multiple statements in query: %s\n" -msgstr "query con più di un comando: %s\n" +msgid "multiple statements in query: %s" +msgstr "query con più di un comando: %s" -#: database.cc:720 +#: database.cc:721 #, c-format msgid "wanted %d columns got %d in query: %s" msgstr "mi aspettavo %d colonne e ne ho ottenute %d nella query ‘%s’" -#: database.cc:786 +#: database.cc:787 #, c-format msgid "null result in query: %s" msgstr "risultato nullo nella query: %s" -#: database.cc:804 +#: database.cc:805 #, c-format msgid "wanted %d rows got %d in query: %s" msgstr "mi aspettavo %d linee e ne ho ottenute %d nella query ‘%s’" -#: database.cc:1951 +#: database.cc:1952 #, c-format msgid "another key with name '%s' already exists" msgstr "esiste già un'altra chiave con nome ‘%s’" -#: database.cc:2948 +#: database.cc:2949 #, c-format msgid "no database specified" msgstr "nessuna database specificato" -#: database.cc:2956 +#: database.cc:2957 #, c-format msgid "database %s does not exist" msgstr "il database ‘%s’ non esiste" -#: database.cc:2957 +#: database.cc:2958 #, c-format msgid "%s is a directory, not a database" msgstr "‘%s’ è una directory, non un database" -#: database.cc:2982 +#: database.cc:2983 #, c-format msgid "could not open database '%s': %s" msgstr "non riesco ad aprire il database ‘%s’: %s" @@ -2240,13 +2237,13 @@ msgid "" "[ancestor] %s\n" "[ left] %s\n" "[ right] %s\n" -"[ merged] %s\n" +"[ merged] %s" msgstr "" "richiesto aiuto per ‘merge’ a 3 vie\n" "[antenato] %s\n" "[sinistra] %s\n" "[ destra] %s\n" -"[ unione] %s\n" +"[ unione] %s" #: file_io.cc:176 #: file_io.cc:183 @@ -2464,8 +2461,8 @@ msgstr "risolvi i conflitti non di conte #: merge.cc:124 #, c-format -msgid "merge failed due to unresolved conflicts\n" -msgstr "‘merge’ fallito a causa di conflitti non risolti\n" +msgid "merge failed due to unresolved conflicts" +msgstr "‘merge’ fallito a causa di conflitti non risolti" #: merkle_tree.cc:290 #, c-format @@ -2483,18 +2480,6 @@ msgstr "Escape non validi in ‘--xargs msgid "Invalid escape in --xargs file" msgstr "Escape non validi in ‘--xargs file’" -# TODO: remove from monotone sources -#: monotone.cc:665 -#, c-format -msgid "%s:\n" -msgstr "%s:\n" - -# TODO: remove from monotone sources -#: monotone.cc:673 -#, c-format -msgid "%s" -msgstr "%s" - #: monotone.cc:683 #, c-format msgid "Usage: %s [OPTION...] command [ARG...]" @@ -2563,7 +2548,7 @@ msgid "" #, c-format msgid "" "bad HMAC checksum (got %s, wanted %s)\n" -"this suggests data was corrupted in transit\n" +"this suggests data was corrupted in transit" msgstr "" #: netcmd.cc:272 @@ -2667,17 +2652,16 @@ msgstr "la chiave del server è cambiata msgid "server key changed" msgstr "la chiave del server è cambiata" -# TODO: remove ending '\n #: netsync.cc:1251 #, c-format msgid "" "first time connecting to server %s\n" "I'll assume it's really them, but you might want to double-check\n" -"their key's fingerprint: %s\n" +"their key's fingerprint: %s" msgstr "" "prima connessione con il server ‘%s’\n" "assumo che sia il server giusto, ma potresti voler controllare\n" -"il fingerprint della sua chiave: %s\n" +"il fingerprint della sua chiave: %s" #: netsync.cc:1258 #, c-format @@ -2817,14 +2801,14 @@ msgstr "pozzo" #: netsync.cc:2226 #, c-format -msgid "input buffer for peer %s is overfull after netcmd dispatch\n" +msgid "input buffer for peer %s is overfull after netcmd dispatch" msgstr "" #: 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' " +msgstr "errore di protocollo processando il peer %s: ‘%s’" #: netsync.cc:2244 #, c-format @@ -2838,13 +2822,13 @@ msgstr "connessione a ‘%s’" #: netsync.cc:2352 #, c-format -msgid "timed out waiting for I/O with peer %s, disconnecting\n" -msgstr "tempo disponibile finito aspettando I/O con peer ‘%s’, mi scollego\n" +msgid "timed out waiting for I/O with peer %s, disconnecting" +msgstr "tempo disponibile finito aspettando I/O con peer ‘%s’, mi scollego" #: netsync.cc:2375 #, c-format -msgid "processing failure while talking to peer %s, disconnecting\n" -msgstr "ottenuto fallimento parlando col peer ‘%s’, mi scollego\n" +msgid "processing failure while talking to peer %s, disconnecting" +msgstr "ottenuto fallimento parlando col peer ‘%s’, mi scollego" #: netsync.cc:2392 #, c-format @@ -2859,8 +2843,8 @@ msgstr "" # TODO: remove \n #: netsync.cc:2403 #, c-format -msgid "I/O failure while talking to peer %s, disconnecting\n" -msgstr "I/O fallito mentre parlavo col peer ‘%s’, mi scollego\n" +msgid "I/O failure while talking to peer %s, disconnecting" +msgstr "I/O fallito mentre parlavo col peer ‘%s’, mi scollego" #: netsync.cc:2469 #, c-format @@ -2884,7 +2868,7 @@ 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)" msgstr "" #: netsync.cc:2560 @@ -2899,7 +2883,7 @@ 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)" msgstr "" #: netsync.cc:2592 @@ -2927,11 +2911,10 @@ msgstr "" msgid "" msgstr "" -# TODO: ends with newline #: netsync.cc:2724 #, c-format -msgid "session limit %d reached, some connections will be refused\n" -msgstr "numero limite di sessioni (%d) raggiunto, alcune connessioni verrano rifiutate\n" +msgid "session limit %d reached, some connections will be refused" +msgstr "numero limite di sessioni (%d) raggiunto, alcune connessioni verrano rifiutate" #: netsync.cc:2789 #, c-format @@ -2967,14 +2950,14 @@ msgid "" #, c-format msgid "" "include branch pattern contains a quote character:\n" -"%s\n" +"%s" msgstr "" #: netsync.cc:3128 #, c-format msgid "" "exclude branch pattern contains a quote character:\n" -"%s\n" +"%s" msgstr "" #: netsync.cc:3163 @@ -3250,18 +3233,18 @@ msgstr "pacchetto di tipo sconosciuto: â #: 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" +msgid "parse failure %d:%d: expecting %s, got %s with value '%s'" +msgstr "errore sintattico %d:%d: mi aspettavo %s, ho ricevuto %s con valore ‘%s’" #: rcs_file.cc:373 #, c-format -msgid "parse failure %d:%d: expecting word '%s'\n" -msgstr "errore sintattico %d:%d: mi aspettavo la parola ‘%s’\n" +msgid "parse failure %d:%d: expecting word '%s'" +msgstr "errore sintattico %d:%d: mi aspettavo la parola ‘%s’" #: rcs_file.cc:388 #, c-format -msgid "parse failure %d:%d: expecting word\n" -msgstr "errore sintattico %d:%d: mi aspettavo una parola\n" +msgid "parse failure %d:%d: expecting word" +msgstr "errore sintattico %d:%d: mi aspettavo una parola" #: rcs_import.cc:721 #, c-format @@ -3324,13 +3307,13 @@ msgstr "ricostruisco %d nodi" # TODO: ? #: revision.cc:1132 #, c-format -msgid "Path %s added to child roster multiple times\n" -msgstr "Percorso ‘%s’ aggiunto più volte al roster figlio\n" +msgid "Path %s added to child roster multiple times" +msgstr "Percorso ‘%s’ aggiunto più volte al roster figlio" #: revision.cc:1145 #, 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" +msgid "Directory for path %s cannot be added, as there is a file in the way" +msgstr "La cartella per il percorso ‘%s’ non può essere aggiunta, dato che c'è già un file con lo stesso nome" #: revision.cc:1156 #, c-format @@ -3339,8 +3322,8 @@ msgstr "Il percorso ‘%s’ non può es #: revision.cc:1159 #, c-format -msgid "Path %s added twice with differing content\n" -msgstr "Percorso ‘%s’ aggiunto due volte con contenuti diversi\n" +msgid "Path %s added twice with differing content" +msgstr "Percorso ‘%s’ aggiunto due volte con contenuti diversi" #: revision.cc:1446 #, c-format @@ -3403,13 +3386,14 @@ msgstr "%s:%d: invariante ‘%s’ viola #: sanity.cc:255 #, c-format -msgid "%s:%d: index '%s' = %d overflowed vector '%s' with size %d\n" +msgid "%s:%d: index '%s' = %d overflowed vector '%s' with size %d" msgstr "" +# TODO: 'set', non 'space' #: sanity.cc:276 -#, c-format -msgid "Current work set: %i items\n" -msgstr "Spazio di lavoro attuale: %i elementi\n" +#, fuzzy, c-format +msgid "Current work set: %i items" +msgstr "Spazio di lavoro attuale: %i elementi" #: schema_migration.cc:258 #, c-format @@ -3539,26 +3523,19 @@ msgstr "attenzione: " msgid "warning: " msgstr "attenzione: " -# TODO: ends with newline #: ui.cc:477 #, c-format msgid "" "fatal: %s\n" "this is almost certainly a bug in monotone.\n" "please send this error message, the output of '%s --full-version',\n" -"and a description of what you were doing to %s.\n" +"and a description of what you were doing to %s." msgstr "" "errore fatale: %s\n" "questo è quasi sicuramente un bug in monotone.\n" "per favore invia questo messaggio di errore, l'output di ‘%s --full-version’\n" -"e una descrizione di quello che stavi facendo a ‘%s’.\n" +"e una descrizione di quello che stavi facendo a ‘%s’." -# TODO: remove from monotone sources -#: ui.cc:512 -#, c-format -msgid "%s: %s" -msgstr "%s: %s" - #: ui.cc:581 #, c-format msgid "failed to open log file '%s'" ============================================================ --- rcs_file.cc a7e5014e6ae2cf6694ff8f120a7105cb90e37c85 +++ rcs_file.cc 79b3250b30913654e617ed31e258ac6f6b9e7c9f @@ -351,7 +351,7 @@ struct parser void eat(token_type want) { if (ttype != want) - throw oops((F("parse failure %d:%d: expecting %s, got %s with value '%s'\n") + throw oops((F("parse failure %d:%d: expecting %s, got %s with value '%s'") % line % col % tt2str(want) % tt2str(ttype) % token).str()); advance(); } @@ -370,7 +370,7 @@ struct parser { string tmp; if (!symp(expected)) - throw oops((F("parse failure %d:%d: expecting word '%s'\n") + throw oops((F("parse failure %d:%d: expecting word '%s'") % line % col % expected).str()); advance(); } @@ -385,7 +385,7 @@ struct parser void word() { if (!wordp()) - throw oops((F("parse failure %d:%d: expecting word\n") + throw oops((F("parse failure %d:%d: expecting word") % line % col).str()); advance(); } ============================================================ --- revision.cc f0b0553d9ac7e49d67b696b8384fac10388a4fb8 +++ revision.cc 8b488424b904bc8d04a56dd5a0e24b37cab5507d @@ -1129,7 +1129,7 @@ insert_into_roster(roster_t & child_rost pth.split(sp); E(!child_roster.has_node(sp), - F("Path %s added to child roster multiple times\n") % pth); + F("Path %s added to child roster multiple times") % pth); dirname_basename(sp, dirname, basename); @@ -1142,7 +1142,7 @@ insert_into_roster(roster_t & child_rost if (child_roster.has_node(tmp_pth)) { E(is_dir_t(child_roster.get_node(tmp_pth)), - F("Directory for path %s cannot be added, as there is a file in the way\n") % pth); + F("Directory for path %s cannot be added, as there is a file in the way") % pth); } else child_roster.attach_node(child_roster.create_dir_node(nis), tmp_pth); @@ -1156,7 +1156,7 @@ insert_into_roster(roster_t & child_rost F("Path %s cannot be added, as there is a directory in the way") % sp); file_t f = downcast_to_file_t(n); E(f->content == fid, - F("Path %s added twice with differing content\n") % sp); + F("Path %s added twice with differing content") % sp); } else child_roster.attach_node(child_roster.create_file_node(fid, nis), sp); ============================================================ --- sanity.cc 61d59ca83d701cb703eb82ac38166099684752b2 +++ sanity.cc 895be1df0de7918edb6fbb72f4f06f5428c38c9a @@ -252,7 +252,7 @@ sanity::index_failure(string const & vec unsigned long idx, string const & file, int line) { - char const * pattern = N_("%s:%d: index '%s' = %d overflowed vector '%s' with size %d\n"); + char const * pattern = N_("%s:%d: index '%s' = %d overflowed vector '%s' with size %d"); log(FL(pattern) % file % line % idx_expr % idx % vec_expr % sz, file.c_str(), line); gasp(); @@ -273,7 +273,8 @@ sanity::gasp() already_dumping = true; L(FL("saving current work set: %i items") % musings.size()); ostringstream out; - out << F("Current work set: %i items\n") % musings.size(); + out << (F("Current work set: %i items") % musings.size()) + << "\n"; // final newline is kept out of the translation for (vector::const_iterator i = musings.begin(); i != musings.end(); ++i) { ============================================================ --- ui.cc 359b41c16854dc2b42a42449e9613079f1a95949 +++ ui.cc f1bb749951aa4f9b75298f15d70b28ca98b217fd @@ -477,7 +477,7 @@ user_interface::fatal(string const & fat inform(F("fatal: %s\n" "this is almost certainly a bug in monotone.\n" "please send this error message, the output of '%s --full-version',\n" - "and a description of what you were doing to %s.\n") + "and a description of what you were doing to %s.") % fatal % prog_name % PACKAGE_BUGREPORT); global_sanity.dump_buffer(); } @@ -509,7 +509,7 @@ user_interface::fatal_exception(std::exc || !strcmp(ex_what, ex_dem)) this->fatal(ex_dem); else - this->fatal(F("%s: %s") % ex_dem % ex_what); + this->fatal(i18n_format("%s: %s") % ex_dem % ex_what); } // Report what we can about a fatal exception (caught in the outermost catch