]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'rs/micro-cleanups'
authorJunio C Hamano <gitster@pobox.com>
Mon, 2 Mar 2020 23:07:20 +0000 (15:07 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 2 Mar 2020 23:07:20 +0000 (15:07 -0800)
Code cleanup.

* rs/micro-cleanups:
  use strpbrk(3) to search for characters from a given set
  quote: use isalnum() to check for alphanumeric characters

1  2 
compat/mingw.c
mailinfo.c

diff --combined compat/mingw.c
index b5230149db53c4c49db930d75146224180d36368,7ec6c04dfc7ec8ad9d6cac9c4e9ace597d46af8f..d14065d60ec497131a23549727439d624ff4c710
  
  static const int delay[] = { 0, 1, 10, 20, 40 };
  
 +void open_in_gdb(void)
 +{
 +      static struct child_process cp = CHILD_PROCESS_INIT;
 +      extern char *_pgmptr;
 +
 +      argv_array_pushl(&cp.args, "mintty", "gdb", NULL);
 +      argv_array_pushf(&cp.args, "--pid=%d", getpid());
 +      cp.clean_on_exit = 1;
 +      if (start_command(&cp) < 0)
 +              die_errno("Could not start gdb");
 +      sleep(1);
 +}
 +
  int err_win_to_posix(DWORD winerr)
  {
        int error = ENOSYS;
@@@ -1245,7 -1232,7 +1245,7 @@@ static char *path_lookup(const char *cm
        int len = strlen(cmd);
        int isexe = len >= 4 && !strcasecmp(cmd+len-4, ".exe");
  
-       if (strchr(cmd, '/') || strchr(cmd, '\\'))
+       if (strpbrk(cmd, "/\\"))
                return xstrdup(cmd);
  
        path = mingw_getenv("PATH");
diff --combined mailinfo.c
index cf92255515d491c8508a885b885707425edf86bb,eeef190c3d6f9f6e2464953566e9d69d9c1f37f1..742fa376ab01142de8bb7410c37657a5ede4a391
@@@ -19,8 -19,7 +19,7 @@@ static void cleanup_space(struct strbu
  static void get_sane_name(struct strbuf *out, struct strbuf *name, struct strbuf *email)
  {
        struct strbuf *src = name;
-       if (name->len < 3 || 60 < name->len || strchr(name->buf, '@') ||
-               strchr(name->buf, '<') || strchr(name->buf, '>'))
+       if (name->len < 3 || 60 < name->len || strpbrk(name->buf, "@<>"))
                src = email;
        else if (name == out)
                return;
@@@ -254,7 -253,7 +253,7 @@@ static void handle_content_type(struct 
        mi->delsp = has_attr_value(line->buf, "delsp=", "yes");
  
        if (slurp_attr(line->buf, "boundary=", boundary)) {
 -              strbuf_insert(boundary, 0, "--", 2);
 +              strbuf_insertstr(boundary, 0, "--");
                if (++mi->content_top >= &mi->content[MAX_BOUNDARIES]) {
                        error("Too many boundaries to handle");
                        mi->input_error = -1;
@@@ -346,17 -345,11 +345,17 @@@ static const char *header[MAX_HDR_PARSE
        "From","Subject","Date",
  };
  
 -static inline int cmp_header(const struct strbuf *line, const char *hdr)
 +static inline int skip_header(const struct strbuf *line, const char *hdr,
 +                            const char **outval)
  {
 -      int len = strlen(hdr);
 -      return !strncasecmp(line->buf, hdr, len) && line->len > len &&
 -                      line->buf[len] == ':' && isspace(line->buf[len + 1]);
 +      const char *val;
 +      if (!skip_iprefix(line->buf, hdr, &val) ||
 +          *val++ != ':')
 +              return 0;
 +      while (isspace(*val))
 +              val++;
 +      *outval = val;
 +      return 1;
  }
  
  static int is_format_patch_separator(const char *line, int len)
@@@ -549,36 -542,22 +548,36 @@@ release_return
                mi->input_error = -1;
  }
  
 +/*
 + * Returns true if "line" contains a header matching "hdr", in which case "val"
 + * will contain the value of the header with any RFC2047 B and Q encoding
 + * unwrapped, and optionally normalize the meta information to utf8.
 + */
 +static int parse_header(const struct strbuf *line,
 +                      const char *hdr,
 +                      struct mailinfo *mi,
 +                      struct strbuf *val)
 +{
 +      const char *val_str;
 +
 +      if (!skip_header(line, hdr, &val_str))
 +              return 0;
 +      strbuf_addstr(val, val_str);
 +      decode_header(mi, val);
 +      return 1;
 +}
 +
  static int check_header(struct mailinfo *mi,
                        const struct strbuf *line,
                        struct strbuf *hdr_data[], int overwrite)
  {
 -      int i, ret = 0, len;
 +      int i, ret = 0;
        struct strbuf sb = STRBUF_INIT;
  
        /* search for the interesting parts */
        for (i = 0; header[i]; i++) {
 -              int len = strlen(header[i]);
 -              if ((!hdr_data[i] || overwrite) && cmp_header(line, header[i])) {
 -                      /* Unwrap inline B and Q encoding, and optionally
 -                       * normalize the meta information to utf8.
 -                       */
 -                      strbuf_add(&sb, line->buf + len + 2, line->len - len - 2);
 -                      decode_header(mi, &sb);
 +              if ((!hdr_data[i] || overwrite) &&
 +                  parse_header(line, header[i], mi, &sb)) {
                        handle_header(&hdr_data[i], &sb);
                        ret = 1;
                        goto check_header_out;
        }
  
        /* Content stuff */
 -      if (cmp_header(line, "Content-Type")) {
 -              len = strlen("Content-Type: ");
 -              strbuf_add(&sb, line->buf + len, line->len - len);
 -              decode_header(mi, &sb);
 -              strbuf_insert(&sb, 0, "Content-Type: ", len);
 +      if (parse_header(line, "Content-Type", mi, &sb)) {
                handle_content_type(mi, &sb);
                ret = 1;
                goto check_header_out;
        }
 -      if (cmp_header(line, "Content-Transfer-Encoding")) {
 -              len = strlen("Content-Transfer-Encoding: ");
 -              strbuf_add(&sb, line->buf + len, line->len - len);
 -              decode_header(mi, &sb);
 +      if (parse_header(line, "Content-Transfer-Encoding", mi, &sb)) {
                handle_content_transfer_encoding(mi, &sb);
                ret = 1;
                goto check_header_out;
        }
 -      if (cmp_header(line, "Message-Id")) {
 -              len = strlen("Message-Id: ");
 -              strbuf_add(&sb, line->buf + len, line->len - len);
 -              decode_header(mi, &sb);
 +      if (parse_header(line, "Message-Id", mi, &sb)) {
                if (mi->add_message_id)
                        mi->message_id = strbuf_detach(&sb, NULL);
                ret = 1;
@@@ -617,9 -606,8 +616,9 @@@ static int is_inbody_header(const struc
                            const struct strbuf *line)
  {
        int i;
 +      const char *val;
        for (i = 0; header[i]; i++)
 -              if (!mi->s_hdr_data[i] && cmp_header(line, header[i]))
 +              if (!mi->s_hdr_data[i] && skip_header(line, header[i], &val))
                        return 1;
        return 0;
  }