| 47 | } |
| 48 | |
| 49 | static char *alias_url(const char *url, struct rewrites *r) |
| 50 | { |
| 51 | int i, j; |
| 52 | struct counted_string *longest; |
| 53 | int longest_i; |
| 54 | |
| 55 | longest = NULL; |
| 56 | longest_i = -1; |
| 57 | for (i = 0; i < r->rewrite_nr; i++) { |
| 58 | if (!r->rewrite[i]) |
| 59 | continue; |
| 60 | for (j = 0; j < r->rewrite[i]->instead_of_nr; j++) { |
| 61 | if (starts_with(url, r->rewrite[i]->instead_of[j].s) && |
| 62 | (!longest || |
| 63 | longest->len < r->rewrite[i]->instead_of[j].len)) { |
| 64 | longest = &(r->rewrite[i]->instead_of[j]); |
| 65 | longest_i = i; |
| 66 | } |
| 67 | } |
| 68 | } |
| 69 | if (!longest) |
| 70 | return NULL; |
| 71 | |
| 72 | return xstrfmt("%s%s", r->rewrite[longest_i]->base, url + longest->len); |
| 73 | } |
| 74 | |
| 75 | static void add_url(struct remote *remote, const char *url) |
| 76 | { |
no test coverage detected