ci_socket icap_init_server(int port, int *protocol_family, int secs_to_linger) { ci_socket s; int er; struct sockaddr_in addr; if (!windows_init()) { ci_debug_printf(1, "Error initialize windows sockets...\n"); } s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (s == INVALID_SOCKET) { er = WSAGetLastError(); ci_debug_printf(1, "Error opening socket ....%d\n", er); return CI_SOCKET_ERROR; } icap_socket_opts(s, secs_to_linger); addr.sin_family = AF_INET; addr.sin_port = htons(port); addr.sin_addr.s_addr = INADDR_ANY; if (bind(s, (struct sockaddr *) &addr, sizeof(addr))) { ci_debug_printf(1, "Error bind \n");; return CI_SOCKET_ERROR; } if (listen(s, 512)) { ci_debug_printf(1, "Error listen .....\n"); return CI_SOCKET_ERROR; } *protocol_family = AF_INET; return s; }
/** * See header */ void utils_init() { #ifdef WIN32 windows_init(); #endif atomics_init(); strerror_init(); }
/** * See header */ void utils_init() { #ifdef WIN32 windows_init(); #endif #if !defined(HAVE_GCC_ATOMIC_OPERATIONS) && !defined(HAVE_GCC_SYNC_OPERATIONS) ref_lock = spinlock_create(); cas_lock = spinlock_create(); #endif strerror_init(); }
X11Menu *x11_menu_alloc(const X11MenuDescr *descr, Window parent, int x, int y, unsigned int w, X11StatusBar *sb, X11MenuSelectFunc select_func, void *cookie) { X11Menu *ret = malloc(sizeof(*ret)); if (!ret) return NULL; ret->descr = *descr; ret->sb = sb; ret->select_func = select_func; ret->cookie = cookie; ret->max_len = 0; for (int i = 0; i < descr->num_entries; i++) { size_t n = strlen(descr->entries[i].label); if (n > ret->max_len) ret->max_len = n; } if (!w) w = DCURX * (ret->max_len + 3); ret->title_win = XCreateSimpleWindow(display, parent, x, y, w, DCURY + 7, 0, MyBackColor, MyForeColor); XSelectInput(display, ret->title_win, ExposureMask); XMapWindow(display, ret->title_win); Cursor cursor = XCreateFontCursor(display, XC_hand2); windows_init(&ret->entry_wins, descr->num_entries); if (!windows_insert(&ret->entry_wins, 0, descr->num_entries)) { XDestroyWindow(display, ret->title_win); free(ret); return NULL; } for (int i = 0; i < descr->num_entries; i++) { ret->entry_wins.elems[i] = make_window(parent, x, y + DCURY + 7 + i * (DCURY + 5), w, DCURY + 3, 0); XDefineCursor(display, ret->entry_wins.elems[i], cursor); XSelectInput(display, ret->entry_wins.elems[i], EV_MASK); } return ret; }
int main(int argc, char **argv) { int i; unsigned offset = 0; enum windows_init_args initargs = WIN_NONE; for(i = 1; i < argc; i++){ if(!strcmp(argv[i], "-O")){ initargs = WIN_VALL; }else if(!strcmp(argv[i], "-o")){ initargs = WIN_HALL; }else if(*argv[i] == '+'){ char *p = argv[i] + 1; while(isdigit(*p)) p++; if(*p == '\0' && sscanf(argv[i]+1, "%u", &offset) == 1){ /* continue */ if(offset > 0) offset--; /* 1-base -> 0-base */ }else{ break; } }else{ break; } } ui_init(); /* must be before buffers_init() */ windows_init(argc - i, argv + i, initargs, offset); int r = ui_main(); ui_term(); windows_term(); return r; }
void fe_common_core_init(void) { /*settings_add_bool("lookandfeel", "show_menubar", TRUE); settings_add_bool("lookandfeel", "show_toolbar", FALSE); settings_add_bool("lookandfeel", "show_statusbar", TRUE); settings_add_bool("lookandfeel", "show_nicklist", TRUE);*/ settings_add_bool("lookandfeel", "timestamps", TRUE); settings_add_bool("lookandfeel", "msgs_timestamps", FALSE); settings_add_bool("lookandfeel", "hide_text_style", FALSE); settings_add_bool("lookandfeel", "bell_beeps", FALSE); settings_add_bool("lookandfeel", "show_nickmode", TRUE); settings_add_bool("lookandfeel", "use_status_window", FALSE); settings_add_bool("lookandfeel", "use_msgs_window", FALSE); /*settings_add_bool("lookandfeel", "autoraise_msgs_window", FALSE);*/ /*settings_add_bool("lookandfeel", "use_tabbed_windows", TRUE); settings_add_int("lookandfeel", "tab_orientation", 3);*/ settings_add_str("lookandfeel", "current_theme", "default"); themes_init(); theme_register(fecommon_core_formats); autorun_init(); hilight_text_init(); command_history_init(); keyboard_init(); printtext_init(); fe_log_init(); fe_server_init(); fe_settings_init(); translation_init(); windows_init(); window_activity_init(); window_commands_init(); window_items_init(); fe_core_commands_init(); }
/* given a xa_instance_t struct with the xc_handle and the * domain_id filled in, this function will fill in the rest * of the values using queries to libxc. */ int helper_init (xa_instance_t *instance) { int ret = XA_SUCCESS; uint32_t local_offset = 0; unsigned char *memory = NULL; if (XA_MODE_XEN == instance->mode){ #ifdef ENABLE_XEN /* init instance->m.xen.xc_handle */ if (xc_domain_getinfo( instance->m.xen.xc_handle, instance->m.xen.domain_id, 1, &(instance->m.xen.info) ) != 1){ fprintf(stderr, "ERROR: Failed to get domain info\n"); ret = xa_report_error(instance, 0, XA_ECRITICAL); if (XA_FAILURE == ret) goto error_exit; } xa_dbprint("--got domain info.\n"); /* find the version of xen that we are running */ init_xen_version(instance); #endif /* ENABLE_XEN */ } /* read in configure file information */ if (read_config_file(instance) == XA_FAILURE){ ret = xa_report_error(instance, 0, XA_EMINOR); if (XA_FAILURE == ret) goto error_exit; } /* determine the page sizes and layout for target OS */ if (XA_MODE_XEN == instance->mode){ #ifdef ENABLE_XEN if (get_page_info_xen(instance) == XA_FAILURE){ fprintf(stderr, "ERROR: memory layout not supported\n"); ret = xa_report_error(instance, 0, XA_ECRITICAL); if (XA_FAILURE == ret) goto error_exit; } #endif /* ENABLE_XEN */ } else{ /*TODO add memory layout discovery here for file */ instance->hvm = 1; /* assume nonvirt image or hvm image for now */ instance->pae = 0; /* assume no pae for now */ } xa_dbprint("--got memory layout.\n"); /* setup the correct page offset size for the target OS */ init_page_offset(instance); if (XA_MODE_XEN == instance->mode){ #ifdef ENABLE_XEN /* init instance->hvm */ instance->hvm = xa_ishvm(instance->m.xen.domain_id); #ifdef XA_DEBUG if (instance->hvm){ xa_dbprint("**set instance->hvm to true (HVM).\n"); } else{ xa_dbprint("**set instance->hvm to false (PV).\n"); } #endif /* XA_DEBUG */ #endif /* ENABLE_XEN */ } /* get the memory size */ if (get_memory_size(instance) == XA_FAILURE){ fprintf(stderr, "ERROR: Failed to get memory size.\n"); ret = xa_report_error(instance, 0, XA_ECRITICAL); if (XA_FAILURE == ret) goto error_exit; } /* setup OS specific stuff */ if (instance->os_type == XA_OS_LINUX){ ret = linux_init(instance); } else if (instance->os_type == XA_OS_WINDOWS){ ret = windows_init(instance); } error_exit: return ret; }
int main(int argc, char** argv) { char tecla_pulsada; int c; int i = 0; struct itimerval req_ts; struct termios t; //Setup del terminal tcgetattr(STDIN_FILENO, &t); t.c_lflag &= ~ICANON; //No espera a enter para meter la informacion t.c_lflag &= ~ECHO; //No imprime el caracter en pantalla tcsetattr(STDIN_FILENO, TCSANOW, &t); /* No funcionan... printf("\033f");//Esconder el cursor printf("\033w");//Desactivar wrapping mode */ w_clear(); //Setup de timer req_ts.it_interval.tv_sec = 0; req_ts.it_interval.tv_usec = 0; req_ts.it_value.tv_sec = REFRESH_MS / 1000; req_ts.it_value.tv_usec = (REFRESH_MS % 1000) * 1000L; signal(SIGALRM, contador_timeout); setitimer(ITIMER_REAL, &req_ts, 0); //Setup de ctetris estado_init(&estado); leds_init(&leds); juego_init(&juego); resultados_init(&resultados); //Setup de las posiciones dentro del terminal windows_init(); //Inicio de ctetris output(TEXTO_BIENVENIDA); output(TEXTO_NIVELES_POSIBLES); while (c = getchar()) { tecla_pulsada = (char) c; if (estado.jugando == FALSE) { menu(&estado, &leds, &juego, &resultados, tecla_pulsada); } else { //Remapeamos las teclas para que sea comodo de usar en el PC switch (tecla_pulsada) { case KEY_LEFT: juego_tecla_pulsada(&leds, &juego, &resultados, &estado, TECLA_IZQUIERDA); break; case KEY_DOWN: juego_tecla_pulsada(&leds, &juego, &resultados, &estado, TECLA_ABAJO); break; case KEY_RIGHT: juego_tecla_pulsada(&leds, &juego, &resultados, &estado, TECLA_DERECHA); break; case KEY_UP: juego_tecla_pulsada(&leds, &juego, &resultados, &estado, TECLA_ROTAR); break; case 'e': //Para tener una salida "limpia" en el Netbeans... signal(SIGALRM, no_interrrupcion); w_clear(); return EXIT_SUCCESS; break; } } } return EXIT_SUCCESS; }
void fe_common_core_init(void) { const char *str; settings_add_bool("lookandfeel", "timestamps", TRUE); settings_add_level("lookandfeel", "timestamp_level", "ALL"); settings_add_time("lookandfeel", "timestamp_timeout", "0"); settings_add_bool("lookandfeel", "bell_beeps", FALSE); settings_add_level("lookandfeel", "beep_msg_level", ""); settings_add_bool("lookandfeel", "beep_when_window_active", TRUE); settings_add_bool("lookandfeel", "beep_when_away", TRUE); settings_add_bool("lookandfeel", "hide_text_style", FALSE); settings_add_bool("lookandfeel", "hide_colors", FALSE); settings_add_bool("lookandfeel", "hide_server_tags", FALSE); settings_add_bool("lookandfeel", "use_status_window", TRUE); settings_add_bool("lookandfeel", "use_msgs_window", FALSE); g_get_charset(&str); settings_add_str("lookandfeel", "term_charset", str); themes_init(); theme_register(fecommon_core_formats); command_history_init(); completion_init(); keyboard_init(); printtext_init(); formats_init(); #ifndef WIN32 fe_exec_init(); #endif fe_expandos_init(); fe_help_init(); fe_ignore_init(); fe_log_init(); fe_modules_init(); fe_server_init(); fe_settings_init(); windows_init(); window_activity_init(); window_commands_init(); window_items_init(); windows_layout_init(); fe_core_commands_init(); fe_channels_init(); fe_queries_init(); fe_messages_init(); hilight_text_init(); fe_ignore_messages_init(); fe_recode_init(); settings_check(); signal_add_first("server connected", (SIGNAL_FUNC) sig_connected); signal_add_last("server disconnected", (SIGNAL_FUNC) sig_disconnected); signal_add_first("channel created", (SIGNAL_FUNC) sig_channel_created); signal_add_last("channel destroyed", (SIGNAL_FUNC) sig_channel_destroyed); module_register("core", "fe"); }
static status_t vmi_init_private( vmi_instance_t *vmi, uint32_t flags, uint64_t id, const char *name, vmi_config_t config) { uint32_t access_mode = flags & 0x0000FFFF; uint32_t init_mode = flags & 0x00FF0000; uint32_t config_mode = flags & 0xFF000000; status_t status = VMI_FAILURE; /* allocate memory for instance structure */ *vmi = (vmi_instance_t) safe_malloc(sizeof(struct vmi_instance)); memset(*vmi, 0, sizeof(struct vmi_instance)); /* initialize instance struct to default values */ dbprint(VMI_DEBUG_CORE, "LibVMI Version 0.11.0\n"); //TODO change this with each release /* save the flags and init mode */ (*vmi)->flags = flags; (*vmi)->init_mode = init_mode; (*vmi)->config_mode = config_mode; /* the config hash table is set up later based on mode */ (*vmi)->config = NULL; /* set page mode to unknown */ (*vmi)->page_mode = VMI_PM_UNKNOWN; /* setup the caches */ pid_cache_init(*vmi); sym_cache_init(*vmi); rva_cache_init(*vmi); v2p_cache_init(*vmi); if ( init_mode & VMI_INIT_SHM_SNAPSHOT ) { #if ENABLE_SHM_SNAPSHOT == 1 v2m_cache_init(*vmi); #else errprint("LibVMI wasn't compiled with SHM support!\n"); status = VMI_FAILURE; goto error_exit; #endif } /* connecting to xen, kvm, file, etc */ if (VMI_FAILURE == set_driver_type(*vmi, access_mode, id, name)) { goto error_exit; } /* driver-specific initilization */ if (VMI_FAILURE == driver_init(*vmi)) { goto error_exit; } dbprint(VMI_DEBUG_CORE, "--completed driver init.\n"); /* resolve the id and name */ if (VMI_FAILURE == set_id_and_name(*vmi, access_mode, id, name)) { goto error_exit; } /* init vmi for specific file/domain through the driver */ if (VMI_FAILURE == driver_init_vmi(*vmi)) { goto error_exit; } /* setup the page offset size */ if (VMI_FAILURE == init_page_offset(*vmi)) { goto error_exit; } /* get the memory size */ if (driver_get_memsize(*vmi, &(*vmi)->allocated_ram_size, &(*vmi)->max_physical_address) == VMI_FAILURE) { errprint("Failed to get memory size.\n"); goto error_exit; } dbprint(VMI_DEBUG_CORE, "**set size = %"PRIu64" [0x%"PRIx64"]\n", (*vmi)->size, (*vmi)->size); // for file mode we need os-specific heuristics to deduce the architecture // for live mode, having arch_interface set even in VMI_PARTIAL mode // allows use of dtb-based translation methods. if (VMI_FILE != (*vmi)->mode) { if(VMI_FAILURE == arch_init(*vmi)) { if (init_mode & VMI_INIT_COMPLETE) { dbprint(VMI_DEBUG_CORE, "--failed to determine architecture of live vm and INIT_COMPLETE.\n"); goto error_exit; } else { dbprint(VMI_DEBUG_CORE, "--failed to determine architecture of live vm and INIT_PARTIAL, continuing.\n"); } } else { dbprint(VMI_DEBUG_CORE, "--succesfully completed architecture init.\n"); } } /* we check VMI_INIT_COMPLETE first as VMI_INIT_PARTIAL is not exclusive */ if (init_mode & VMI_INIT_COMPLETE) { switch((*vmi)->config_mode) { case VMI_CONFIG_STRING: /* read and parse the config string */ if(VMI_FAILURE == read_config_string(*vmi, (char*)config)) { goto error_exit; } break; case VMI_CONFIG_GLOBAL_FILE_ENTRY: /* read and parse the config file */ if(VMI_FAILURE == read_config_file_entry(*vmi)) { goto error_exit; } break; case VMI_CONFIG_GHASHTABLE: /* read and parse the ghashtable */ if (!config) { goto error_exit; } (*vmi)->config = (GHashTable*)config; break; case VMI_CONFIG_NONE: default: /* init_complete requires configuration falling back to VMI_CONFIG_GLOBAL_FILE_ENTRY is unsafe here as the config pointer is probably NULL */ goto error_exit; } if(VMI_FAILURE == set_os_type_from_config(*vmi)) { dbprint(VMI_DEBUG_CORE, "--failed to determine os type from config\n"); goto error_exit; } /* setup OS specific stuff */ switch ( (*vmi)->os_type ) { #ifdef ENABLE_LINUX case VMI_OS_LINUX: if(VMI_FAILURE == linux_init(*vmi)) { goto error_exit; } break; #endif #ifdef ENABLE_WINDOWS case VMI_OS_WINDOWS: if(VMI_FAILURE == windows_init(*vmi)) { goto error_exit; } break; #endif default: goto error_exit; } status = VMI_SUCCESS; } else if (init_mode & VMI_INIT_PARTIAL) { status = VMI_SUCCESS; } else { errprint("Need to specify either VMI_INIT_PARTIAL or VMI_INIT_COMPLETE.\n"); goto error_exit; } if(init_mode & VMI_INIT_EVENTS) { #if ENABLE_XEN_EVENTS == 1 /* Enable event handlers */ events_init(*vmi); #else errprint("LibVMI wasn't compiled with events support!\n"); status = VMI_FAILURE; #endif } error_exit: return status; }
void fe_common_core_init(void) { static struct poptOption options[] = { { "connect", 'c', POPT_ARG_STRING, &autocon_server, 0, N_("Automatically connect to server/ircnet"), N_("SERVER") }, { "password", 'w', POPT_ARG_STRING, &autocon_password, 0, N_("Autoconnect password"), N_("SERVER") }, { "port", 'p', POPT_ARG_INT, &autocon_port, 0, N_("Autoconnect port"), N_("PORT") }, { "noconnect", '!', POPT_ARG_NONE, &no_autoconnect, 0, N_("Disable autoconnecting"), NULL }, { "nick", 'n', POPT_ARG_STRING, &cmdline_nick, 0, N_("Specify nick to use"), NULL }, { "hostname", 'h', POPT_ARG_STRING, &cmdline_hostname, 0, N_("Specify host name to use"), NULL }, { NULL, '\0', 0, NULL } }; autocon_server = NULL; autocon_password = NULL; autocon_port = 6667; no_autoconnect = FALSE; cmdline_nick = NULL; cmdline_hostname = NULL; args_register(options); settings_add_bool("lookandfeel", "timestamps", TRUE); settings_add_bool("lookandfeel", "msgs_timestamps", FALSE); settings_add_bool("lookandfeel", "hide_text_style", FALSE); settings_add_bool("lookandfeel", "bell_beeps", FALSE); settings_add_bool("lookandfeel", "beep_when_away", TRUE); settings_add_bool("lookandfeel", "use_status_window", TRUE); settings_add_bool("lookandfeel", "use_msgs_window", FALSE); themes_init(); theme_register(fecommon_core_formats); autorun_init(); command_history_init(); completion_init(); hilight_text_init(); keyboard_init(); printtext_init(); formats_init(); #ifndef WIN32 fe_exec_init(); #endif fe_expandos_init(); fe_help_init(); fe_ignore_init(); fe_log_init(); fe_modules_init(); fe_server_init(); fe_settings_init(); translation_init(); windows_init(); window_activity_init(); window_commands_init(); window_items_init(); windows_layout_init(); fe_core_commands_init(); fe_channels_init(); fe_queries_init(); fe_messages_init(); fe_ignore_messages_init(); settings_check(); signal_add_first("server connected", (SIGNAL_FUNC) sig_connected); signal_add_last("server disconnected", (SIGNAL_FUNC) sig_disconnected); signal_add_first("channel created", (SIGNAL_FUNC) sig_channel_created); signal_add_last("channel destroyed", (SIGNAL_FUNC) sig_channel_destroyed); }
static status_t vmi_init_private( vmi_instance_t *vmi, uint32_t flags, unsigned long id, char *name, vmi_config_t *config) { uint32_t access_mode = flags & 0x0000FFFF; uint32_t init_mode = flags & 0x00FF0000; uint32_t config_mode = flags & 0xFF000000; status_t status = VMI_FAILURE; /* allocate memory for instance structure */ *vmi = (vmi_instance_t) safe_malloc(sizeof(struct vmi_instance)); memset(*vmi, 0, sizeof(struct vmi_instance)); /* initialize instance struct to default values */ dbprint("LibVMI Version 0.9_alpha\n"); //TODO change this with each release /* save the flags and init mode */ (*vmi)->flags = flags; (*vmi)->init_mode = init_mode; (*vmi)->config = config; (*vmi)->config_mode = config_mode; /* setup the caches */ pid_cache_init(*vmi); sym_cache_init(*vmi); rva_cache_init(*vmi); v2p_cache_init(*vmi); /* connecting to xen, kvm, file, etc */ if (VMI_FAILURE == set_driver_type(*vmi, access_mode, id, name)) { goto error_exit; } /* resolve the id and name */ if (VMI_FAILURE == set_id_and_name(*vmi, access_mode, id, name)) { goto error_exit; } /* driver-specific initilization */ if (VMI_FAILURE == driver_init(*vmi)) { goto error_exit; } dbprint("--completed driver init.\n"); /* we check VMI_INIT_COMPLETE first as VMI_INIT_PARTIAL is not exclusive */ if (init_mode & VMI_INIT_COMPLETE) { /* init_complete requires configuration */ if(VMI_CONFIG_NONE & (*vmi)->config_mode) { /* falling back to VMI_CONFIG_GLOBAL_FILE_ENTRY is unsafe here as the config pointer is probably NULL */ goto error_exit; } /* read and parse the config file */ else if ( (VMI_CONFIG_STRING & (*vmi)->config_mode || VMI_CONFIG_GLOBAL_FILE_ENTRY & (*vmi)->config_mode) && VMI_FAILURE == read_config_file(*vmi)) { goto error_exit; } /* read and parse the ghashtable */ else if (VMI_CONFIG_GHASHTABLE & (*vmi)->config_mode && VMI_FAILURE == read_config_ghashtable(*vmi)) { dbprint("--failed to parse ghashtable\n"); goto error_exit; } /* setup the correct page offset size for the target OS */ if (VMI_FAILURE == init_page_offset(*vmi)) { goto error_exit; } /* get the memory size */ if (driver_get_memsize(*vmi, &(*vmi)->size) == VMI_FAILURE) { errprint("Failed to get memory size.\n"); goto error_exit; } dbprint("**set size = %"PRIu64" [0x%"PRIx64"]\n", (*vmi)->size, (*vmi)->size); /* determine the page sizes and layout for target OS */ // Find the memory layout. If this fails, then proceed with the // OS-specific heuristic techniques. (*vmi)->pae = (*vmi)->pse = (*vmi)->lme = (*vmi)->cr3 = 0; (*vmi)->page_mode = VMI_PM_UNKNOWN; status = get_memory_layout(*vmi, &((*vmi)->page_mode), &((*vmi)->cr3), &((*vmi)->pae), &((*vmi)->pse), &((*vmi)->lme)); if (VMI_FAILURE == status) { dbprint ("**Failed to get memory layout for VM. Trying heuristic method.\n"); // fall-through } // if // Heuristic method if (!(*vmi)->cr3) { (*vmi)->cr3 = find_cr3((*vmi)); dbprint("**set cr3 = 0x%.16"PRIx64"\n", (*vmi)->cr3); } // if /* setup OS specific stuff */ if (VMI_OS_LINUX == (*vmi)->os_type) { status = linux_init(*vmi); } else if (VMI_OS_WINDOWS == (*vmi)->os_type) { status = windows_init(*vmi); } /* Enable event handlers only if we're in a consistent state */ if((status == VMI_SUCCESS) && (init_mode & VMI_INIT_EVENTS)){ events_init(*vmi); } return status; } else if (init_mode & VMI_INIT_PARTIAL) { init_page_offset(*vmi); driver_get_memsize(*vmi, &(*vmi)->size); /* Enable event handlers */ if(init_mode & VMI_INIT_EVENTS){ events_init(*vmi); } return VMI_SUCCESS; } error_exit: return status; }
void fe_common_core_init(void) { static struct poptOption version_options[] = { { NULL, '\0', POPT_ARG_CALLBACK, (void *)&print_version, '\0', NULL }, { "version", 'v', POPT_ARG_NONE, NULL, 0, "Display irssi version" }, { NULL, '\0', 0, NULL } }; static struct poptOption options[] = { { NULL, '\0', POPT_ARG_INCLUDE_TABLE, version_options, 0, NULL, NULL }, POPT_AUTOHELP { "connect", 'c', POPT_ARG_STRING, &autocon_server, 0, "Automatically connect to server/ircnet", "SERVER" }, { "password", 'w', POPT_ARG_STRING, &autocon_password, 0, "Autoconnect password", "PASSWORD" }, { "port", 'p', POPT_ARG_INT, &autocon_port, 0, "Autoconnect port", "PORT" }, { "noconnect", '!', POPT_ARG_NONE, &no_autoconnect, 0, "Disable autoconnecting", NULL }, { "nick", 'n', POPT_ARG_STRING, &cmdline_nick, 0, "Specify nick to use", NULL }, { "hostname", 'h', POPT_ARG_STRING, &cmdline_hostname, 0, "Specify host name to use", NULL }, { NULL, '\0', 0, NULL } }; autocon_server = NULL; autocon_password = NULL; autocon_port = 0; no_autoconnect = FALSE; cmdline_nick = NULL; cmdline_hostname = NULL; args_register(options); settings_add_bool("lookandfeel", "timestamps", TRUE); settings_add_level("lookandfeel", "timestamp_level", "ALL"); settings_add_time("lookandfeel", "timestamp_timeout", 0); settings_add_bool("lookandfeel", "bell_beeps", FALSE); settings_add_level("lookandfeel", "beep_msg_level", ""); settings_add_bool("lookandfeel", "beep_when_window_active", TRUE); settings_add_bool("lookandfeel", "beep_when_away", TRUE); settings_add_bool("lookandfeel", "hide_text_style", FALSE); settings_add_bool("lookandfeel", "hide_colors", FALSE); settings_add_bool("lookandfeel", "hide_server_tags", FALSE); settings_add_bool("lookandfeel", "use_status_window", TRUE); settings_add_bool("lookandfeel", "use_msgs_window", FALSE); themes_init(); theme_register(fecommon_core_formats); command_history_init(); completion_init(); keyboard_init(); printtext_init(); formats_init(); #ifndef WIN32 fe_exec_init(); #endif fe_expandos_init(); fe_help_init(); fe_ignore_init(); fe_log_init(); fe_modules_init(); fe_server_init(); fe_settings_init(); translation_init(); windows_init(); window_activity_init(); window_commands_init(); window_items_init(); windows_layout_init(); fe_core_commands_init(); fe_channels_init(); fe_queries_init(); fe_messages_init(); hilight_text_init(); fe_ignore_messages_init(); settings_check(); signal_add_first("server connected", (SIGNAL_FUNC) sig_connected); signal_add_last("server disconnected", (SIGNAL_FUNC) sig_disconnected); signal_add_first("channel created", (SIGNAL_FUNC) sig_channel_created); signal_add_last("channel destroyed", (SIGNAL_FUNC) sig_channel_destroyed); module_register("core", "fe"); }