| 945 | } |
| 946 | |
| 947 | void format_sanitized_subject(struct strbuf *sb, const char *msg, size_t len) |
| 948 | { |
| 949 | size_t trimlen; |
| 950 | size_t start_len = sb->len; |
| 951 | int space = 2; |
| 952 | int i; |
| 953 | |
| 954 | for (i = 0; i < len; i++) { |
| 955 | if (istitlechar(msg[i])) { |
| 956 | if (space == 1) |
| 957 | strbuf_addch(sb, '-'); |
| 958 | space = 0; |
| 959 | strbuf_addch(sb, msg[i]); |
| 960 | if (msg[i] == '.') |
| 961 | while (msg[i+1] == '.') |
| 962 | i++; |
| 963 | } else |
| 964 | space |= 1; |
| 965 | } |
| 966 | |
| 967 | /* trim any trailing '.' or '-' characters */ |
| 968 | trimlen = 0; |
| 969 | while (sb->len - trimlen > start_len && |
| 970 | (sb->buf[sb->len - 1 - trimlen] == '.' |
| 971 | || sb->buf[sb->len - 1 - trimlen] == '-')) |
| 972 | trimlen++; |
| 973 | strbuf_remove(sb, sb->len - trimlen, trimlen); |
| 974 | } |
| 975 | |
| 976 | const char *format_subject(struct strbuf *sb, const char *msg, |
| 977 | const char *line_separator) |
no test coverage detected