Merge branch 'js/maint-cover-letter-non-ascii' into maint
authorJunio C Hamano <gitster@pobox.com>
Wed, 26 Aug 2009 19:05:57 +0000 (12:05 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 26 Aug 2009 19:05:57 +0000 (12:05 -0700)
* js/maint-cover-letter-non-ascii:
Correctly mark cover letters' encodings if they are not pure ASCII
Expose the has_non_ascii() function

1  2 
builtin-log.c
diff --combined builtin-log.c
index 30358166e64c5745e979e6231a5de5e0e5111119,1929e0a16c2a8fb458132017823990474b0db4d6..5f3133079d868922d37d95143d3ecac808084bcf
@@@ -257,7 -257,7 +257,7 @@@ static void show_tagger(char *buf, int 
        pp_user_info("Tagger", rev->commit_format, &out, buf, rev->date_mode,
                git_log_output_encoding ?
                git_log_output_encoding: git_commit_encoding);
 -      printf("%s\n", out.buf);
 +      printf("%s", out.buf);
        strbuf_release(&out);
  }
  
@@@ -329,14 -329,11 +329,14 @@@ int cmd_show(int argc, const char **arg
                case OBJ_TAG: {
                        struct tag *t = (struct tag *)o;
  
 +                      if (rev.shown_one)
 +                              putchar('\n');
                        printf("%stag %s%s\n",
                                        diff_get_color_opt(&rev.diffopt, DIFF_COMMIT),
                                        t->tag,
                                        diff_get_color_opt(&rev.diffopt, DIFF_RESET));
                        ret = show_object(o->sha1, 1, &rev);
 +                      rev.shown_one = 1;
                        if (ret)
                                break;
                        o = parse_object(t->tagged->sha1);
                        break;
                }
                case OBJ_TREE:
 +                      if (rev.shown_one)
 +                              putchar('\n');
                        printf("%stree %s%s\n\n",
                                        diff_get_color_opt(&rev.diffopt, DIFF_COMMIT),
                                        name,
                                        diff_get_color_opt(&rev.diffopt, DIFF_RESET));
                        read_tree_recursive((struct tree *)o, "", 0, 0, NULL,
                                        show_tree_object, NULL);
 +                      rev.shown_one = 1;
                        break;
                case OBJ_COMMIT:
                        rev.pending.nr = rev.pending.alloc = 0;
@@@ -664,6 -658,10 +664,10 @@@ static void make_cover_letter(struct re
        log_write_email_headers(rev, head, &subject_start, &extra_headers,
                                &need_8bit_cte);
  
+       for (i = 0; !need_8bit_cte && i < nr; i++)
+               if (has_non_ascii(list[i]->buffer))
+                       need_8bit_cte = 1;
        msg = body;
        pp_user_info(NULL, CMIT_FMT_EMAIL, &sb, committer, DATE_RFC2822,
                     encoding);