i18n: git-sh-setup.sh: mark strings for translation
[gitweb.git] / sequencer.c
index 80487860c8fc5c79e3ffd4fbe21a0a0ea7e385ca..57b367166d71a68e452092cf34384cdd806359a3 100644 (file)
@@ -124,42 +124,33 @@ static const char *action_name(const struct replay_opts *opts)
 
 struct commit_message {
        char *parent_label;
-       const char *label;
-       const char *subject;
+       char *label;
+       char *subject;
        const char *message;
 };
 
 static int get_message(struct commit *commit, struct commit_message *out)
 {
        const char *abbrev, *subject;
-       int abbrev_len, subject_len;
-       char *q;
-
-       if (!git_commit_encoding)
-               git_commit_encoding = "UTF-8";
+       int subject_len;
 
-       out->message = logmsg_reencode(commit, NULL, git_commit_encoding);
+       out->message = logmsg_reencode(commit, NULL, get_commit_output_encoding());
        abbrev = find_unique_abbrev(commit->object.oid.hash, DEFAULT_ABBREV);
-       abbrev_len = strlen(abbrev);
 
        subject_len = find_commit_subject(out->message, &subject);
 
-       out->parent_label = xmalloc(strlen("parent of ") + abbrev_len +
-                             strlen("... ") + subject_len + 1);
-       q = out->parent_label;
-       q = mempcpy(q, "parent of ", strlen("parent of "));
-       out->label = q;
-       q = mempcpy(q, abbrev, abbrev_len);
-       q = mempcpy(q, "... ", strlen("... "));
-       out->subject = q;
-       q = mempcpy(q, subject, subject_len);
-       *q = '\0';
+       out->subject = xmemdupz(subject, subject_len);
+       out->label = xstrfmt("%s... %s", abbrev, out->subject);
+       out->parent_label = xstrfmt("parent of %s", out->label);
+
        return 0;
 }
 
 static void free_message(struct commit *commit, struct commit_message *msg)
 {
        free(msg->parent_label);
+       free(msg->label);
+       free(msg->subject);
        unuse_commit_buffer(commit, msg->message);
 }
 
@@ -234,7 +225,7 @@ static int fast_forward_to(const unsigned char *to, const unsigned char *from,
        if (checkout_fast_forward(from, to, 1))
                exit(128); /* the callee should have complained already */
 
-       strbuf_addf(&sb, "%s: fast-forward", action_name(opts));
+       strbuf_addf(&sb, _("%s: fast-forward"), action_name(opts));
 
        transaction = ref_transaction_begin(&err);
        if (!transaction ||
@@ -706,9 +697,14 @@ static struct commit *parse_insn_line(char *bol, char *eol, struct replay_opts *
         * opts; we don't support arbitrary instructions
         */
        if (action != opts->action) {
-               const char *action_str;
-               action_str = action == REPLAY_REVERT ? "revert" : "cherry-pick";
-               error(_("Cannot %s during a %s"), action_str, action_name(opts));
+               if (action == REPLAY_REVERT)
+                     error((opts->action == REPLAY_REVERT)
+                           ? _("Cannot revert during a another revert.")
+                           : _("Cannot revert during a cherry-pick."));
+               else
+                     error((opts->action == REPLAY_REVERT)
+                           ? _("Cannot cherry-pick during a revert.")
+                           : _("Cannot cherry-pick during another cherry-pick."));
                return NULL;
        }
 
@@ -884,8 +880,7 @@ static int sequencer_rollback(struct replay_opts *opts)
                return rollback_single_pick();
        }
        if (!f)
-               return error(_("cannot open %s: %s"), git_path_head_file(),
-                                               strerror(errno));
+               return error_errno(_("cannot open %s"), git_path_head_file());
        if (strbuf_getline_lf(&buf, f)) {
                error(_("cannot read %s: %s"), git_path_head_file(),
                      ferror(f) ?  strerror(errno) : _("unexpected end of file"));