int main(int argc, char **argv) { const char *val; int nongit; if (argc != 2) { usage(var_usage); } git_extract_argv0_path(argv[0]); setup_git_directory_gently(&nongit); val = NULL; if (strcmp(argv[1], "-l") == 0) { git_config(show_config, NULL); list_vars(); return 0; } git_config(git_default_config, NULL); val = read_var(argv[1]); if (!val) usage(var_usage); printf("%s\n", val); return 0; }
int parse_line(Variable_List * vars, char * line) { int i, j; int len; int token_len; char temp[13]; if((len = check_errors(line)) == ERROR) { printf("ERROR: Syntax error\n"); return 0; } i = 0; while(i < len) { // variable if(line[i] == '$') { i++; for (j = 0; j < length_token(i,line); j++) temp[j] = line[i+j]; temp[j] = '\0'; i+=j; if(find_next(i,'=',line) > 0) new_var(vars, temp, INTEGER, 0); } // statement / function call if((line[i] >= 'a' && line[i] <= 'z') || (line[i] >= 'A' && line[i] <= 'Z') || line[i] == '_') { token_len = length_token(i, line); for (j = 0; j < token_len; j++) temp[j] = line[i+j]; temp[j] = '\0'; i+=j; if (strcmp("list", temp) == 0) list_vars(vars); if (strcmp("help", temp) == 0) help(); if (strcmp("exit", temp) == 0 || strcmp(temp,"quit") == 0) return -1; } i++; } return 0; }
int cmd_var(int argc, const char **argv, const char *prefix) { const char *val = NULL; if (argc != 2) usage(var_usage); if (strcmp(argv[1], "-l") == 0) { git_config(show_config, NULL); list_vars(); return 0; } git_config(git_default_config, NULL); val = read_var(argv[1]); if (!val) usage(var_usage); printf("%s\n", val); return 0; }