rem: free(arg);
add: g_free(arg);
context: void process_options(int *argcp, char *argv[], struct opt opts[],                      int case_sensitive){    int argctr;    int newargctr;    for (argctr = 1, newargctr = 1; argctr < *argcp; argctr++) {        char *arg = argv[argctr];        int removed = 0;        if (arg[0] == '-' && arg[1] == 'o') {            if (arg[2])                removed = process_option_group(arg+2, opts, case_sensitive);            else {                if (argctr + 1 < *argcp) {                    argctr++;                    arg = argv[argctr];                    removed = process_option_group(arg, opts, case_sensitive);                    if (removed)                        free(argv[argctr-1]);                    else if (argctr != newargctr)                        argv[newargctr++] = argv[argctr-1];                                    }            }        }        if (removed)            free(arg);        else {            if(argctr != newargctr)                argv[newargctr] = arg;            newargctr++;        }    }    *argcp = newargctr;}