| | @@ -100,11 +100,11 @@ |
| 100 | 100 | zPathname |
| 101 | 101 | ); |
| 102 | 102 | shell_escape(&cmd, zFullName); |
| 103 | 103 | printf("%s\n", blob_str(&cmd)); |
| 104 | 104 | fflush(stdout); |
| 105 | | - system(blob_str(&cmd)); |
| 105 | + portable_system(blob_str(&cmd)); |
| 106 | 106 | } |
| 107 | 107 | free(zFullName); |
| 108 | 108 | } |
| 109 | 109 | db_finalize(&q); |
| 110 | 110 | } |
| | @@ -221,19 +221,21 @@ |
| 221 | 221 | } |
| 222 | 222 | |
| 223 | 223 | /* |
| 224 | 224 | ** This function implements a cross-platform "system()" interface. |
| 225 | 225 | */ |
| 226 | | -void portable_system(char *zOrigCmd){ |
| 226 | +int portable_system(char *zOrigCmd){ |
| 227 | + int rc; |
| 227 | 228 | #ifdef __MINGW32__ |
| 228 | 229 | /* On windows, we have to put double-quotes around the entire command. |
| 229 | 230 | ** Who knows why - this is just the way windows works. |
| 230 | 231 | */ |
| 231 | 232 | char *zNewCmd = mprintf("\"%s\"", zOrigCmd); |
| 232 | | - system(zNewCmd); |
| 233 | + rc = system(zNewCmd); |
| 233 | 234 | free(zNewCmd); |
| 234 | 235 | #else |
| 235 | 236 | /* On unix, evaluate the command directly. |
| 236 | 237 | */ |
| 237 | | - system(zOrigCmd); |
| 238 | | -#endif |
| 238 | + rc = system(zOrigCmd); |
| 239 | +#endif |
| 240 | + return rc; |
| 239 | 241 | } |
| 240 | 242 | |