void MVM_add_executable(MVM_VirtualMachine *mvm, MVM_Executable *executable) { int i; mvm->executable = executable; add_functions(mvm, executable); convert_code(mvm, executable, executable->code, executable->code_size, NULL); for (i = 0; i < executable->function_count; i++) { convert_code(mvm, executable, executable->function[i].code, executable->function[i].code_size, &executable->function[i]); } add_static_variables(mvm, executable); }
void ansi_c_convertt::convert_expr(exprt &expr) { if(expr.id()==ID_sideeffect) { const irep_idt &statement=expr.get(ID_statement); if(statement==ID_statement_expression) { assert(expr.operands().size()==1); convert_code(to_code(expr.op0())); return; // done } } Forall_operands(it, expr) convert_expr(*it); if(expr.id()==ID_symbol) { expr.remove(ID_C_id_class); expr.remove(ID_C_base_name); } else if(expr.id()==ID_sizeof) { if(expr.operands().size()==0) { typet &type=static_cast<typet &>(expr.add(ID_type_arg)); convert_type(type); } } else if(expr.id()==ID_designated_initializer) { exprt &designator=static_cast<exprt &>(expr.add(ID_designator)); convert_expr(designator); } else if(expr.id()==ID_alignof) { if(expr.operands().size()==0) { typet &type=static_cast<typet &>(expr.add(ID_type_arg)); convert_type(type); } } else if(expr.id()==ID_gcc_builtin_va_arg) { convert_type(expr.type()); } else if(expr.id()==ID_generic_selection) { assert(expr.operands().size()==1); irept::subt &generic_associations= expr.add(ID_generic_associations).get_sub(); Forall_irep(it, generic_associations) { convert_expr(static_cast<exprt &>(it->add(ID_value))); convert_type(static_cast<typet &>(it->add(ID_type_arg))); }
void ansi_c_convertt::convert_declaration(ansi_c_declarationt &declaration) { c_storage_spect c_storage_spec; convert_type(declaration.type(), c_storage_spec); declaration.set_is_inline(c_storage_spec.is_inline); declaration.set_is_static(c_storage_spec.is_static); declaration.set_is_extern(c_storage_spec.is_extern); declaration.set_is_thread_local(c_storage_spec.is_thread_local); declaration.set_is_register(c_storage_spec.is_register); // do not overwrite is_typedef -- it's done by the parser // typedefs are macros if(declaration.get_is_typedef()) declaration.set_is_macro(true); if(declaration.value().is_not_nil()) { if(declaration.value().type().id()==ID_code) convert_code(to_code(declaration.value())); else convert_expr(declaration.value()); } }
inline std::vector< char > read_file(boost::string_ref path) { std::ifstream ifs( convert_code( path, CP_UTF8, CP_OEMCP ), std::ios::binary ); if( ifs.fail() ) { return {}; } std::istreambuf_iterator< char > first( ifs ), last; return { first, last }; }
inline bool is_emm_file(boost::string_ref path) { std::ifstream ifs( convert_code( path, CP_UTF8, CP_OEMCP ), std::ios::binary ); if( ifs.fail() ) { return false; } std::istreambuf_iterator< char > first( ifs ), last; boost::string_ref const seg( "[Info]\r\nVersion = 3\r\n" ); return std::search( first, last, seg.begin(), seg.end() ) != last; }
void CWiiController::get_keys(wiimote* wm) { m_buttonHeld = 0; m_buttonPressed = 0; m_buttonReleased = 0; m_repeatableHeld = (wm->btns & (m_repeatFlags)); m_holdableHeld = (wm->btns & (m_holdFlags)); m_repeatableReleased = (wm->btns_released & (m_repeatFlags)); m_holdableReleased = (wm->btns_released & (m_holdFlags)); for (int i = 1;i <= WIIMOTE_NUM_BUTTONS; i++) { if (IS_PRESSED(wm,convert_code(i))) m_buttonPressed = i; if (IS_RELEASED(wm,convert_code(i))) m_buttonReleased = i; if (IS_HELD(wm,convert_code(i))) m_buttonHeld = i; } }
inline std::vector< std::string > find_file_paths(std::vector< char > const& buf, char end) { std::vector< std::string > result; for( auto itr = buf.begin(); itr != buf.end(); ++itr ) { if( !drive_letter_exists( itr, buf.end() ) ) { continue; } auto last = std::find( itr, buf.end(), end ); result.push_back( convert_code( std::string( itr, last ), CP_OEMCP, CP_UTF8 ) ); itr = last; } return result; }
/* * Do the real work. */ void do_syncnews(void) { int r; int i; /* * call mboxlist_syncnews() to check our group list against * the mailboxes file. mboxlist_syncnews() will remove any * mailboxes that aren't in the group list. */ r = mboxlist_syncnews(group_num, group, group_seen); if (r) { com_err("syncnews: resynchronizing", r, (r == IMAP_IOERROR) ? error_message(errno) : NULL); code = convert_code(r); return; } /* * Go through the group list creating mailboxes for * those groups which were not found in the mailboxes file. */ for (i = 0; i < group_num; i++) { if (!group_seen[i]) { r = mboxlist_createmailbox(group[i], 0, "news", 1, "anonymous", NULL, 0, 0, 0, NULL, 0, NULL); if (r == IMAP_MAILBOX_BADNAME) { printf("ignored %s\n", group[i]); } else if (r) { fprintf(stderr, "syncnews: cannot creat %s: %s\n", group[i], error_message(r)); syslog(LOG_ERR, "cannot create %s: %s", group[i], error_message(r)); } else { printf("created %s\n", group[i]); } } } return; }
int main(int argc,char **argv) { int opt; int i; int fflag = 0; int r, code = 0; int do_report = 1; char *alt_config = NULL, *domain = NULL; if ((geteuid()) == 0 && (become_cyrus(/*is_master*/0) != 0)) { fatal("must run as the Cyrus user", EC_USAGE); } while ((opt = getopt(argc, argv, "C:d:fqZ")) != EOF) { switch (opt) { case 'C': /* alt config file */ alt_config = optarg; break; case 'q': do_report = 0; break; case 'd': domain = optarg; break; case 'f': fflag = 1; break; /* deliberately undocumented option for testing */ case 'Z': test_sync_mode = 1; break; default: usage(); } } /* always report if not fixing, otherwise we do nothing */ if (!fflag) do_report = 1; cyrus_init(alt_config, "quota", 0, CONFIG_NEED_PARTITION_DATA); /* Set namespace -- force standard (internal) */ if ((r = mboxname_init_namespace("a_namespace, 1)) != 0) { syslog(LOG_ERR, "%s", error_message(r)); fatal(error_message(r), EC_CONFIG); } if (config_getswitch(IMAPOPT_IMPROVED_MBOXLIST_SORT)) compar = bsearch_compare_mbox; else compar = strcmp; /* * Lock mailbox list to prevent mailbox creation/deletion * during work */ mboxlist_init(0); mboxlist_open(NULL); quotadb_init(0); quotadb_open(NULL); quota_changelock(); if (!r) r = buildquotalist(domain, argv+optind, argc-optind); if (!r && fflag) r = fixquotas(domain, argv+optind, argc-optind); quota_changelockrelease(); if (r) code = convert_code(r); else if (do_report) reportquota(); quotadb_close(); quotadb_done(); mboxlist_close(); mboxlist_done(); /* just for neatness */ for (i = 0; i < quota_num; i++) free(quotaroots[i].name); free(quotaroots); cyrus_done(); return code; }