| 2161 | #include <../lib/pengine/unpack.h> |
| 2162 | #define set_char(x) last_rsc_id[lpc] = x; complete = TRUE; |
| 2163 | static char * |
| 2164 | increment_clone(char *last_rsc_id) |
| 2165 | { |
| 2166 | int lpc = 0; |
| 2167 | int len = 0; |
| 2168 | char *tmp = NULL; |
| 2169 | gboolean complete = FALSE; |
| 2170 | |
| 2171 | CRM_CHECK(last_rsc_id != NULL, return NULL); |
| 2172 | if (last_rsc_id != NULL) { |
| 2173 | len = strlen(last_rsc_id); |
| 2174 | } |
| 2175 | |
| 2176 | lpc = len - 1; |
| 2177 | while (complete == FALSE && lpc > 0) { |
| 2178 | switch (last_rsc_id[lpc]) { |
| 2179 | case 0: |
| 2180 | lpc--; |
| 2181 | break; |
| 2182 | case '0': |
| 2183 | set_char('1'); |
| 2184 | break; |
| 2185 | case '1': |
| 2186 | set_char('2'); |
| 2187 | break; |
| 2188 | case '2': |
| 2189 | set_char('3'); |
| 2190 | break; |
| 2191 | case '3': |
| 2192 | set_char('4'); |
| 2193 | break; |
| 2194 | case '4': |
| 2195 | set_char('5'); |
| 2196 | break; |
| 2197 | case '5': |
| 2198 | set_char('6'); |
| 2199 | break; |
| 2200 | case '6': |
| 2201 | set_char('7'); |
| 2202 | break; |
| 2203 | case '7': |
| 2204 | set_char('8'); |
| 2205 | break; |
| 2206 | case '8': |
| 2207 | set_char('9'); |
| 2208 | break; |
| 2209 | case '9': |
| 2210 | last_rsc_id[lpc] = '0'; |
| 2211 | lpc--; |
| 2212 | break; |
| 2213 | case ':': |
| 2214 | tmp = last_rsc_id; |
| 2215 | last_rsc_id = calloc(1, len + 2); |
| 2216 | memcpy(last_rsc_id, tmp, len); |
| 2217 | last_rsc_id[++lpc] = '1'; |
| 2218 | last_rsc_id[len] = '0'; |
| 2219 | last_rsc_id[len + 1] = 0; |
| 2220 | complete = TRUE; |
no outgoing calls
no test coverage detected