const char *rfc2822_header_field_name_sanitize(const char *name) { char *result = t_strdup_noconst(name); char *p; /* Make the whole name lower case ... */ result = str_lcase(result); /* ... except for the first letter and those that follow '-' */ p = result; *p = i_toupper(*p); while ( *p != '\0' ) { if ( *p == '-' ) { p++; if ( *p != '\0' ) *p = i_toupper(*p); continue; } p++; } return result; }
static bool test_dump_imapzlib(const char *path) { const char *p; char buf[4096]; int fd, ret; bool match = FALSE; p = strrchr(path, '.'); if (p == NULL || (strcmp(p, ".in") != 0 && strcmp(p, ".out") != 0)) return FALSE; fd = open(path, O_RDONLY); if (fd == -1) return FALSE; ret = read(fd, buf, sizeof(buf)-1); if (ret > 0) { buf[ret] = '\0'; (void)str_lcase(buf); match = strstr(buf, " ok begin compression.") != NULL || strstr(buf, " compress deflate") != NULL; } i_close_fd(&fd); return match; }
bool CommandLine::parse(int argc,char **argv) { g_option_context_parse (ctx, &argc, &argv, &error); if (error) { g_printerr("Error parsing command line arguments: %s\n", error->message); return false; } if(_slot1_fat_dir) slot1_fat_dir = _slot1_fat_dir; if(_slot1) slot1 = _slot1; if(_console_type) console_type = _console_type; if(slot1.size() != 0) str_lcase((char*)&slot1[0]); if(_play_movie_file) play_movie_file = _play_movie_file; if(_record_movie_file) record_movie_file = _record_movie_file; if(_cflash_image) cflash_image = _cflash_image; if(_cflash_path) cflash_path = _cflash_path; if(_gbaslot_rom) gbaslot_rom = _gbaslot_rom; if(_lua_script) lua_script = _lua_script; if(_num_cores != -1) CommonSettings.num_cores = _num_cores; if(_rigorous_timing) CommonSettings.rigorous_timing = true; if(_advanced_timing != -1) CommonSettings.advanced_timing = _advanced_timing==1; if(depth_threshold != -1) CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack = depth_threshold; //process console type CommonSettings.DebugConsole = false; CommonSettings.ConsoleType = NDS_CONSOLE_TYPE_FAT; std::transform(console_type.begin(), console_type.end(), console_type.begin(), ::mytoupper); if(console_type == "") {} else if(console_type == "FAT") CommonSettings.ConsoleType = NDS_CONSOLE_TYPE_FAT; else if(console_type == "LITE") CommonSettings.ConsoleType = NDS_CONSOLE_TYPE_LITE; else if(console_type == "IQUE") CommonSettings.ConsoleType = NDS_CONSOLE_TYPE_IQUE; else if(console_type == "DSI") CommonSettings.ConsoleType = NDS_CONSOLE_TYPE_DSI; else if(console_type == "DEBUG") { CommonSettings.ConsoleType = NDS_CONSOLE_TYPE_FAT; CommonSettings.DebugConsole = true; } if (autodetect_method != -1) CommonSettings.autodetectBackupMethod = autodetect_method; //TODO NOT MAX PRIORITY! change ARM9BIOS etc to be a std::string if(_bios_arm9) { CommonSettings.UseExtBIOS = true; strcpy(CommonSettings.ARM9BIOS,_bios_arm9); } if(_bios_arm7) { CommonSettings.UseExtBIOS = true; strcpy(CommonSettings.ARM7BIOS,_bios_arm7); } if(_bios_swi) CommonSettings.SWIFromBIOS = true; if(_spu_advanced) CommonSettings.spu_advanced = true; if (argc == 2) nds_file = argv[1]; if (argc > 2) return false; return true; }
bool mod_lower_modify(string_t *in, string_t **result) { char *content; *result = t_str_new(str_len(in)); str_append_str(*result, in); content = str_c_modifiable(*result); (void)str_lcase(content); return TRUE; }
bool CommandLine::parse(int argc,char **argv) { g_option_context_parse (ctx, &argc, &argv, &error); if (error) { g_printerr("Error parsing command line arguments: %s\n", error->message); return false; } if(_slot1_fat_dir) slot1_fat_dir = _slot1_fat_dir; if(_slot1) slot1 = _slot1; if(slot1.size() != 0) str_lcase((char*)&slot1[0]); if(_play_movie_file) play_movie_file = _play_movie_file; if(_record_movie_file) record_movie_file = _record_movie_file; if(_cflash_image) cflash_image = _cflash_image; if(_cflash_path) cflash_path = _cflash_path; if(_gbaslot_rom) gbaslot_rom = _gbaslot_rom; if(_num_cores != -1) CommonSettings.num_cores = _num_cores; if(_rigorous_timing) CommonSettings.rigorous_timing = true; if(_advanced_timing != -1) CommonSettings.advanced_timing = _advanced_timing==1; if(depth_threshold != -1) CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack = depth_threshold; if(debug_console != -1) CommonSettings.DebugConsole = (debug_console==1); if(dsi_mode != -1) CommonSettings.DSI = (dsi_mode==1); if(autodetect_method != -1) CommonSettings.autodetectBackupMethod = autodetect_method; //TODO MAX PRIORITY! change ARM9BIOS etc to be a std::string if(_bios_arm9) { CommonSettings.UseExtBIOS = true; strcpy(CommonSettings.ARM9BIOS,_bios_arm9); } if(_bios_arm7) { CommonSettings.UseExtBIOS = true; strcpy(CommonSettings.ARM7BIOS,_bios_arm7); } if(_bios_swi) CommonSettings.SWIFromBIOS = true; if(_spu_advanced) CommonSettings.spu_advanced = true; if (argc == 2) nds_file = argv[1]; if (argc > 2) return false; return true; }
static bool auth_handle_response(struct digest_auth_request *request, char *key, char *value, const char **error) { unsigned int i; (void)str_lcase(key); if (strcmp(key, "realm") == 0) { if (request->auth_request.realm == NULL && *value != '\0') request->auth_request.realm = p_strdup(request->pool, value); return TRUE; } if (strcmp(key, "username") == 0) { if (request->username != NULL) { *error = "username must not exist more than once"; return FALSE; } if (*value == '\0') { *error = "empty username"; return FALSE; } request->username = p_strdup(request->pool, value); return TRUE; } if (strcmp(key, "nonce") == 0) { /* nonce must be same */ if (strcmp(value, request->nonce) != 0) { *error = "Invalid nonce"; return FALSE; } request->nonce_found = TRUE; return TRUE; } if (strcmp(key, "cnonce") == 0) { if (request->cnonce != NULL) { *error = "cnonce must not exist more than once"; return FALSE; } if (*value == '\0') { *error = "cnonce can't contain empty value"; return FALSE; } request->cnonce = p_strdup(request->pool, value); return TRUE; } if (strcmp(key, "nc") == 0) { unsigned int nc; if (request->nonce_count != NULL) { *error = "nonce-count must not exist more than once"; return FALSE; } if (str_to_uint(value, &nc) < 0) { *error = "nonce-count value invalid"; return FALSE; } if (nc != 1) { *error = "re-auth not supported currently"; return FALSE; } request->nonce_count = p_strdup(request->pool, value); return TRUE; } if (strcmp(key, "qop") == 0) { for (i = 0; i < QOP_COUNT; i++) { if (strcasecmp(qop_names[i], value) == 0) break; } if (i == QOP_COUNT) { *error = t_strdup_printf("Unknown QoP value: %s", str_sanitize(value, 32)); return FALSE; } request->qop &= (1 << i); if (request->qop == 0) { *error = "Nonallowed QoP requested"; return FALSE; } request->qop_value = p_strdup(request->pool, value); return TRUE; } if (strcmp(key, "digest-uri") == 0) { /* type / host / serv-name */ const char *const *uri = t_strsplit(value, "/"); if (uri[0] == NULL || uri[1] == NULL) { *error = "Invalid digest-uri"; return FALSE; } /* FIXME: RFC recommends that we verify the host/serv-type. But isn't the realm enough already? That'd be just extra configuration.. Maybe optionally list valid hosts in config file? */ request->digest_uri = p_strdup(request->pool, value); return TRUE; } if (strcmp(key, "maxbuf") == 0) { if (request->maxbuf != 0) { *error = "maxbuf must not exist more than once"; return FALSE; } if (str_to_ulong(value, &request->maxbuf) < 0 || request->maxbuf == 0) { *error = "Invalid maxbuf value"; return FALSE; } return TRUE; } if (strcmp(key, "charset") == 0) { if (strcasecmp(value, "utf-8") != 0) { *error = "Only utf-8 charset is allowed"; return FALSE; } return TRUE; } if (strcmp(key, "response") == 0) { if (strlen(value) != 32) { *error = "Invalid response value"; return FALSE; } memcpy(request->response, value, 32); return TRUE; } if (strcmp(key, "cipher") == 0) { /* not supported, ignore */ return TRUE; } if (strcmp(key, "authzid") == 0) { if (request->authzid != NULL) { *error = "authzid must not exist more than once"; return FALSE; } if (*value == '\0') { *error = "empty authzid"; return FALSE; } request->authzid = p_strdup(request->pool, value); return TRUE; } /* unknown key, ignore */ return TRUE; }
const char *t_str_lcase(const char *str) { i_assert(str != NULL); return str_lcase(t_strdup_noconst(str)); }