| 2117 | } |
| 2118 | |
| 2119 | static int handle_dotdot(const char *arg, |
| 2120 | struct rev_info *revs, int flags, |
| 2121 | int cant_be_filename) |
| 2122 | { |
| 2123 | struct object_context a_oc = {0}, b_oc = {0}; |
| 2124 | const char *dotdot = strstr(arg, ".."); |
| 2125 | char *tmp; |
| 2126 | int symmetric = 0; |
| 2127 | int ret; |
| 2128 | |
| 2129 | if (!dotdot) |
| 2130 | return -1; |
| 2131 | |
| 2132 | tmp = xmemdupz(arg, dotdot - arg); |
| 2133 | dotdot += 2; |
| 2134 | if (*dotdot == '.') { |
| 2135 | symmetric = 1; |
| 2136 | dotdot++; |
| 2137 | } |
| 2138 | ret = handle_dotdot_1(tmp, dotdot, arg, symmetric, revs, flags, |
| 2139 | cant_be_filename, &a_oc, &b_oc); |
| 2140 | free(tmp); |
| 2141 | |
| 2142 | object_context_release(&a_oc); |
| 2143 | object_context_release(&b_oc); |
| 2144 | return ret; |
| 2145 | } |
| 2146 | |
| 2147 | static int handle_revision_arg_1(const char *arg_, struct rev_info *revs, int flags, unsigned revarg_opt) |
| 2148 | { |
no test coverage detected