static void john_register_all(void) { int i, cnt; struct fmt_main *selfs; if (options.format) strlwr(options.format); // NOTE, this MUST happen, before ANY format that links a 'thin' format to dynamic. // Since gen(27) and gen(28) are MD5 and MD5a formats, we build the // generic format first cnt = dynamic_Register_formats(&selfs); john_register_one(&fmt_DES); john_register_one(&fmt_BSDI); john_register_one(&fmt_MD5); john_register_one(&fmt_BF); john_register_one(&fmt_AFS); john_register_one(&fmt_LM); for (i = 0; i < cnt; ++i) john_register_one(&(selfs[i])); #include "fmt_registers.h" john_register_one(&fmt_hmacMD5); john_register_one(&fmt_hmacSHA1); john_register_one(&fmt_rawSHA0); #if OPENSSL_VERSION_NUMBER >= 0x00908000 john_register_one(&fmt_rawSHA224); john_register_one(&fmt_rawSHA256); john_register_one(&fmt_rawSHA384); john_register_one(&fmt_rawSHA512); john_register_one(&fmt_hmacSHA224); john_register_one(&fmt_hmacSHA256); john_register_one(&fmt_hmacSHA384); john_register_one(&fmt_hmacSHA512); john_register_one(&fmt_XSHA512); john_register_one(&fmt_hmailserver); john_register_one(&fmt_SybaseASE); john_register_one(&fmt_dragonfly3_64); john_register_one(&fmt_dragonfly4_64); john_register_one(&fmt_dragonfly3_32); john_register_one(&fmt_dragonfly4_32); john_register_one(&fmt_drupal7); john_register_one(&fmt_cryptsha256); john_register_one(&fmt_cryptsha512); john_register_one(&episerver_fmt); john_register_one(&KeePass_fmt); john_register_one(&pwsafe_fmt); #endif #if OPENSSL_VERSION_NUMBER >= 0x10000000 john_register_one(&fmt_django); #endif #if defined(__GNUC__) && defined(__SSE2__) john_register_one(&sha1_fmt_ng); #endif #ifdef HAVE_NSS john_register_one(&mozilla_fmt); #endif #ifdef HAVE_CRYPT john_register_one(&fmt_crypt); #endif john_register_one(&fmt_trip); #ifdef HAVE_SKEY john_register_one(&fmt_SKEY); #endif john_register_one(&fmt_ssh); john_register_one(&fmt_pdf); john_register_one(&fmt_wpapsk); #ifndef _MSC_VER john_register_one(&rar_fmt); #endif john_register_one(&zip_fmt); john_register_one(&fmt_dummy); #ifdef CL_VERSION_1_0 john_register_one(&fmt_opencl_NSLDAPS); john_register_one(&fmt_opencl_rawMD4); john_register_one(&fmt_opencl_rawMD5); john_register_one(&fmt_opencl_NT); john_register_one(&fmt_opencl_rawSHA1); john_register_one(&fmt_opencl_cryptMD5); john_register_one(&fmt_opencl_phpass); john_register_one(&fmt_opencl_mysqlsha1); john_register_one(&fmt_opencl_cryptsha512); john_register_one(&fmt_opencl_mscash2); john_register_one(&fmt_opencl_wpapsk); john_register_one(&fmt_opencl_xsha512); john_register_one(&fmt_opencl_rawsha512); john_register_one(&fmt_opencl_bf); john_register_one(&fmt_opencl_pwsafe); #endif #ifdef HAVE_CUDA john_register_one(&fmt_cuda_cryptmd5); john_register_one(&fmt_cuda_phpass); john_register_one(&fmt_cuda_cryptsha256); john_register_one(&fmt_cuda_cryptsha512); john_register_one(&fmt_cuda_mscash); john_register_one(&fmt_cuda_mscash2); john_register_one(&fmt_cuda_rawsha256); john_register_one(&fmt_cuda_rawsha224); john_register_one(&fmt_cuda_xsha512); john_register_one(&fmt_cuda_wpapsk); john_register_one(&fmt_cuda_rawsha512); john_register_one(&fmt_cuda_pwsafe); #endif #ifdef HAVE_DL if (options.fmt_dlls) register_dlls ( options.fmt_dlls, cfg_get_param(SECTION_OPTIONS, NULL, "plugin"), john_register_one ); #endif if (!fmt_list) { #ifdef HAVE_MPI if (mpi_id == 0) #endif fprintf(stderr, "Unknown ciphertext format name requested\n"); error(); } }
static BOOL CALLBACK TlenOptDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { char text[256]; WNDPROC oldProc; switch (msg) { case WM_INITDIALOG: { DBVARIANT dbv; TranslateDialogDefault(hwndDlg); SetDlgItemText(hwndDlg, IDC_TLEN, jabberModuleName); #ifdef TLEN_PLUGIN ShowWindow(GetDlgItem(hwndDlg, IDC_USE_SSL), SW_HIDE); #endif if (!DBGetContactSetting(NULL, jabberProtoName, "LoginName", &dbv)) { SetDlgItemText(hwndDlg, IDC_EDIT_USERNAME, dbv.pszVal); DBFreeVariant(&dbv); } if (!DBGetContactSetting(NULL, jabberProtoName, "Password", &dbv)) { CallService(MS_DB_CRYPT_DECODESTRING, strlen(dbv.pszVal)+1, (LPARAM) dbv.pszVal); SetDlgItemText(hwndDlg, IDC_EDIT_PASSWORD, dbv.pszVal); DBFreeVariant(&dbv); } CheckDlgButton(hwndDlg, IDC_SAVEPASSWORD, DBGetContactSettingByte(NULL, jabberProtoName, "SavePassword", TRUE)); CheckDlgButton(hwndDlg, IDC_USE_SSL, DBGetContactSettingByte(NULL, jabberProtoName, "UseSSL", FALSE)); CheckDlgButton(hwndDlg, IDC_RECONNECT, DBGetContactSettingByte(NULL, jabberProtoName, "Reconnect", FALSE)); CheckDlgButton(hwndDlg, IDC_ROSTER_SYNC, DBGetContactSettingByte(NULL, jabberProtoName, "RosterSync", FALSE)); CheckDlgButton(hwndDlg, IDC_SHOW_OFFLINE, DBGetContactSettingByte(NULL, jabberProtoName, "OfflineAsInvisible", FALSE)); CheckDlgButton(hwndDlg, IDC_OFFLINE_MESSAGE, DBGetContactSettingByte(NULL, jabberProtoName, "LeaveOfflineMessage", FALSE)); CheckDlgButton(hwndDlg, IDC_IGNORE_ADVERTISEMENTS, DBGetContactSettingByte(NULL, jabberProtoName, "IgnoreAdvertisements", TRUE)); SendDlgItemMessage(hwndDlg, IDC_ALERT_POLICY, CB_ADDSTRING, 0, (LPARAM)Translate("Accept all alerts")); SendDlgItemMessage(hwndDlg, IDC_ALERT_POLICY, CB_ADDSTRING, 0, (LPARAM)Translate("Ignore alerts from unauthorized contacts")); SendDlgItemMessage(hwndDlg, IDC_ALERT_POLICY, CB_ADDSTRING, 0, (LPARAM)Translate("Ignore all alerts")); SendDlgItemMessage(hwndDlg, IDC_ALERT_POLICY, CB_SETCURSEL, DBGetContactSettingWord(NULL, jabberProtoName, "AlertPolicy", 0), 0); SendDlgItemMessage(hwndDlg, IDC_MUC_POLICY, CB_ADDSTRING, 0, (LPARAM)Translate("Always ask me")); SendDlgItemMessage(hwndDlg, IDC_MUC_POLICY, CB_ADDSTRING, 0, (LPARAM)Translate("Accept invitations from authorized contacts")); SendDlgItemMessage(hwndDlg, IDC_MUC_POLICY, CB_ADDSTRING, 0, (LPARAM)Translate("Accept all invitations")); SendDlgItemMessage(hwndDlg, IDC_MUC_POLICY, CB_ADDSTRING, 0, (LPARAM)Translate("Ignore invitations from unauthorized contacts")); SendDlgItemMessage(hwndDlg, IDC_MUC_POLICY, CB_ADDSTRING, 0, (LPARAM)Translate("Ignore all invitation")); SendDlgItemMessage(hwndDlg, IDC_MUC_POLICY, CB_SETCURSEL, DBGetContactSettingWord(NULL, jabberProtoName, "GroupChatPolicy", 0), 0); SendDlgItemMessage(hwndDlg, IDC_VOICE_POLICY, CB_ADDSTRING, 0, (LPARAM)Translate("Always ask me")); SendDlgItemMessage(hwndDlg, IDC_VOICE_POLICY, CB_ADDSTRING, 0, (LPARAM)Translate("Accept invitations from authorized contacts")); SendDlgItemMessage(hwndDlg, IDC_VOICE_POLICY, CB_ADDSTRING, 0, (LPARAM)Translate("Accept all invitations")); SendDlgItemMessage(hwndDlg, IDC_VOICE_POLICY, CB_ADDSTRING, 0, (LPARAM)Translate("Ignore invitations from unauthorized contacts")); SendDlgItemMessage(hwndDlg, IDC_VOICE_POLICY, CB_ADDSTRING, 0, (LPARAM)Translate("Ignore all invitation")); SendDlgItemMessage(hwndDlg, IDC_VOICE_POLICY, CB_SETCURSEL, DBGetContactSettingWord(NULL, jabberProtoName, "VoiceChatPolicy", 0), 0); SendDlgItemMessage(hwndDlg, IDC_OFFLINE_MESSAGE_OPTION, CB_ADDSTRING, 0, (LPARAM)Translate("<Last message>")); //SendDlgItemMessage(hwndDlg, IDC_OFFLINE_MESSAGE_OPTION, CB_ADDSTRING, 0, (LPARAM)Translate("<Ask me>")); SendDlgItemMessage(hwndDlg, IDC_OFFLINE_MESSAGE_OPTION, CB_ADDSTRING, 0, (LPARAM)Translate("Online")); SendDlgItemMessage(hwndDlg, IDC_OFFLINE_MESSAGE_OPTION, CB_ADDSTRING, 0, (LPARAM)Translate("Away")); SendDlgItemMessage(hwndDlg, IDC_OFFLINE_MESSAGE_OPTION, CB_ADDSTRING, 0, (LPARAM)Translate("NA")); SendDlgItemMessage(hwndDlg, IDC_OFFLINE_MESSAGE_OPTION, CB_ADDSTRING, 0, (LPARAM)Translate("DND")); SendDlgItemMessage(hwndDlg, IDC_OFFLINE_MESSAGE_OPTION, CB_ADDSTRING, 0, (LPARAM)Translate("Free for chat")); SendDlgItemMessage(hwndDlg, IDC_OFFLINE_MESSAGE_OPTION, CB_ADDSTRING, 0, (LPARAM)Translate("Invisible")); SendDlgItemMessage(hwndDlg, IDC_OFFLINE_MESSAGE_OPTION, CB_SETCURSEL, DBGetContactSettingWord(NULL, jabberProtoName, "OfflineMessageOption", 0), 0); oldProc = (WNDPROC) GetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT_USERNAME), GWL_WNDPROC); SetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT_USERNAME), GWL_USERDATA, (LONG) oldProc); SetWindowLong(GetDlgItem(hwndDlg, IDC_EDIT_USERNAME), GWL_WNDPROC, (LONG) JabberValidateUsernameWndProc); TlenVoiceBuildInDeviceList(GetDlgItem(hwndDlg, IDC_VOICE_DEVICE_IN)); TlenVoiceBuildOutDeviceList(GetDlgItem(hwndDlg, IDC_VOICE_DEVICE_OUT)); return TRUE; } case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_EDIT_USERNAME: case IDC_EDIT_PASSWORD: if ((HWND)lParam==GetFocus() && HIWORD(wParam)==EN_CHANGE) SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; case IDC_USE_SSL: // Fall through case IDC_SAVEPASSWORD: case IDC_RECONNECT: case IDC_ROSTER_SYNC: case IDC_IGNORE_ADVERTISEMENTS: case IDC_SHOW_OFFLINE: case IDC_OFFLINE_MESSAGE: SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; case IDC_REGISTERACCOUNT: CallService(MS_UTILS_OPENURL, (WPARAM) 1, (LPARAM) TLEN_REGISTER); break; case IDC_OFFLINE_MESSAGE_OPTION: case IDC_ALERT_POLICY: case IDC_MUC_POLICY: case IDC_VOICE_POLICY: case IDC_VOICE_DEVICE_IN: case IDC_VOICE_DEVICE_OUT: if (HIWORD(wParam) == CBN_SELCHANGE) SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; default: SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; } break; case WM_NOTIFY: switch (((LPNMHDR) lParam)->code) { case PSN_APPLY: { BOOL reconnectRequired = FALSE; DBVARIANT dbv; GetDlgItemText(hwndDlg, IDC_EDIT_USERNAME, text, sizeof(text)); if (DBGetContactSetting(NULL, jabberProtoName, "LoginName", &dbv) || strcmp(text, dbv.pszVal)) reconnectRequired = TRUE; if (dbv.pszVal != NULL) DBFreeVariant(&dbv); DBWriteContactSettingString(NULL, jabberProtoName, "LoginName", strlwr(text)); if (IsDlgButtonChecked(hwndDlg, IDC_SAVEPASSWORD)) { GetDlgItemText(hwndDlg, IDC_EDIT_PASSWORD, text, sizeof(text)); CallService(MS_DB_CRYPT_ENCODESTRING, sizeof(text), (LPARAM) text); if (DBGetContactSetting(NULL, jabberProtoName, "Password", &dbv) || strcmp(text, dbv.pszVal)) reconnectRequired = TRUE; if (dbv.pszVal != NULL) DBFreeVariant(&dbv); DBWriteContactSettingString(NULL, jabberProtoName, "Password", text); } else DBDeleteContactSetting(NULL, jabberProtoName, "Password"); DBWriteContactSettingByte(NULL, jabberProtoName, "SavePassword", (BYTE) IsDlgButtonChecked(hwndDlg, IDC_SAVEPASSWORD)); DBWriteContactSettingByte(NULL, jabberProtoName, "UseSSL", (BYTE) IsDlgButtonChecked(hwndDlg, IDC_USE_SSL)); DBWriteContactSettingByte(NULL, jabberProtoName, "Reconnect", (BYTE) IsDlgButtonChecked(hwndDlg, IDC_RECONNECT)); DBWriteContactSettingByte(NULL, jabberProtoName, "RosterSync", (BYTE) IsDlgButtonChecked(hwndDlg, IDC_ROSTER_SYNC)); DBWriteContactSettingByte(NULL, jabberProtoName, "OfflineAsInvisible", (BYTE) IsDlgButtonChecked(hwndDlg, IDC_SHOW_OFFLINE)); DBWriteContactSettingByte(NULL, jabberProtoName, "IgnoreAdvertisements", (BYTE) IsDlgButtonChecked(hwndDlg, IDC_IGNORE_ADVERTISEMENTS)); DBWriteContactSettingByte(NULL, jabberProtoName, "LeaveOfflineMessage", (BYTE) IsDlgButtonChecked(hwndDlg, IDC_OFFLINE_MESSAGE)); DBWriteContactSettingWord(NULL, jabberProtoName, "OfflineMessageOption", (WORD) SendDlgItemMessage(hwndDlg, IDC_OFFLINE_MESSAGE_OPTION, CB_GETCURSEL, 0, 0)); DBWriteContactSettingWord(NULL, jabberProtoName, "AlertPolicy", (WORD) SendDlgItemMessage(hwndDlg, IDC_ALERT_POLICY, CB_GETCURSEL, 0, 0)); DBWriteContactSettingWord(NULL, jabberProtoName, "GroupChatPolicy", (WORD) SendDlgItemMessage(hwndDlg, IDC_MUC_POLICY, CB_GETCURSEL, 0, 0)); DBWriteContactSettingWord(NULL, jabberProtoName, "VoiceChatPolicy", (WORD) SendDlgItemMessage(hwndDlg, IDC_VOICE_POLICY, CB_GETCURSEL, 0, 0)); DBWriteContactSettingWord(NULL, jabberProtoName, "VoiceDeviceIn", (WORD) SendDlgItemMessage(hwndDlg, IDC_VOICE_DEVICE_IN, CB_GETCURSEL, 0, 0)); DBWriteContactSettingWord(NULL, jabberProtoName, "VoiceDeviceOut", (WORD) SendDlgItemMessage(hwndDlg, IDC_VOICE_DEVICE_OUT, CB_GETCURSEL, 0, 0)); if (reconnectRequired && jabberConnected) MessageBox(hwndDlg, Translate("These changes will take effect the next time you connect to the Tlen network."), Translate("Tlen Protocol Option"), MB_OK|MB_SETFOREGROUND); return TRUE; } } break; } return FALSE; }
int authorise_server(struct asfd *asfd, struct conf **globalcs, struct conf **cconfs) { int ret=-1; char *cp=NULL; char *password=NULL; char *cname=NULL; char whoareyou[256]=""; struct iobuf *rbuf=asfd->rbuf; const char *peer_version=NULL; if(asfd->read(asfd)) { logp("unable to read initial message\n"); goto end; } if(rbuf->cmd!=CMD_GEN || strncmp_w(rbuf->buf, "hello")) { iobuf_log_unexpected(rbuf, __func__); goto end; } // String may look like... // "hello" // "hello:(version)" // (version) is a version number if((cp=strchr(rbuf->buf, ':'))) { cp++; if(cp && set_string(cconfs[OPT_PEER_VERSION], cp)) goto end; } iobuf_free_content(rbuf); snprintf(whoareyou, sizeof(whoareyou), "whoareyou"); peer_version=get_string(cconfs[OPT_PEER_VERSION]); if(peer_version) { long min_ver=0; long cli_ver=0; if((min_ver=version_to_long("1.3.2"))<0 || (cli_ver=version_to_long(peer_version))<0) return -1; // Stick the server version on the end of the whoareyou string. // if the client version is recent enough. if(min_ver<=cli_ver) snprintf(whoareyou, sizeof(whoareyou), "whoareyou:%s", PACKAGE_VERSION); } if(asfd->write_str(asfd, CMD_GEN, whoareyou) || asfd->read(asfd)) { logp("unable to get client name\n"); goto end; } if(!(cname=strdup_w(rbuf->buf, __func__))) goto end; if(!get_int(globalcs[OPT_CNAME_FQDN])) strip_fqdn(&cname); if(get_int(globalcs[OPT_CNAME_LOWERCASE])) strlwr(cname); if(set_string(cconfs[OPT_CNAME], cname)) goto end; iobuf_free_content(rbuf); if(asfd->write_str(asfd, CMD_GEN, "okpassword") || asfd->read(asfd)) { logp("unable to get password for client %s\n", get_string(cconfs[OPT_CNAME])); goto end; } password=rbuf->buf; iobuf_init(rbuf); if(check_client_and_password(globalcs, password, cconfs)) goto end; if(get_int(cconfs[OPT_VERSION_WARN])) version_warn(asfd, get_cntr(globalcs), cconfs); logp("auth ok for: %s%s\n", get_string(cconfs[OPT_CNAME]), get_int(cconfs[OPT_PASSWORD_CHECK])? "":" (no password needed)"); if(asfd->write_str(asfd, CMD_GEN, "ok")) goto end; ret=0; end: iobuf_free_content(rbuf); free_w(&password); free_w(&cname); return ret; }
/* ** GLimp_Init ** ** This routine is responsible for initializing the OS specific portions ** of OpenGL. */ void GLimp_Init( void ) { qboolean attemptedlibGL = qfalse; qboolean attempted3Dfx = qfalse; qboolean success = qfalse; char buf[1024]; cvar_t *lastValidRenderer = ri.Cvar_Get( "r_lastValidRenderer", "(uninitialized)", CVAR_ARCHIVE ); r_allowSoftwareGL = ri.Cvar_Get( "r_allowSoftwareGL", "0", CVAR_LATCH ); r_previousglDriver = ri.Cvar_Get( "r_previousglDriver", "", CVAR_ROM ); InitSig(); // Hack here so that if the UI if ( *r_previousglDriver->string ) { // The UI changed it on us, hack it back // This means the renderer can't be changed on the fly ri.Cvar_Set( "r_glDriver", r_previousglDriver->string ); } // set up our custom error handler for X failures XSetErrorHandler( &qXErrorHandler ); // // load and initialize the specific OpenGL driver // if ( !GLW_LoadOpenGL( r_glDriver->string ) ) { if ( !Q_stricmp( r_glDriver->string, OPENGL_DRIVER_NAME ) ) { attemptedlibGL = qtrue; } else if ( !Q_stricmp( r_glDriver->string, _3DFX_DRIVER_NAME ) ) { attempted3Dfx = qtrue; } #if 0 // TTimo // show_bug.cgi?id=455 // old legacy load code, was confusing people who had a bad OpenGL setup if ( !attempted3Dfx && !success ) { attempted3Dfx = qtrue; if ( GLW_LoadOpenGL( _3DFX_DRIVER_NAME ) ) { ri.Cvar_Set( "r_glDriver", _3DFX_DRIVER_NAME ); r_glDriver->modified = qfalse; success = qtrue; } } #endif // try ICD before trying 3Dfx standalone driver if ( !attemptedlibGL && !success ) { attemptedlibGL = qtrue; if ( GLW_LoadOpenGL( OPENGL_DRIVER_NAME ) ) { ri.Cvar_Set( "r_glDriver", OPENGL_DRIVER_NAME ); r_glDriver->modified = qfalse; success = qtrue; } } if ( !success ) { ri.Error( ERR_FATAL, "GLimp_Init() - could not load OpenGL subsystem\n" ); } } // Save it in case the UI stomps it ri.Cvar_Set( "r_previousglDriver", r_glDriver->string ); // This values force the UI to disable driver selection glConfig.driverType = GLDRV_ICD; glConfig.hardwareType = GLHW_GENERIC; // get our config strings Q_strncpyz( glConfig.vendor_string, qglGetString( GL_VENDOR ), sizeof( glConfig.vendor_string ) ); Q_strncpyz( glConfig.renderer_string, qglGetString( GL_RENDERER ), sizeof( glConfig.renderer_string ) ); if ( *glConfig.renderer_string && glConfig.renderer_string[strlen( glConfig.renderer_string ) - 1] == '\n' ) { glConfig.renderer_string[strlen( glConfig.renderer_string ) - 1] = 0; } Q_strncpyz( glConfig.version_string, qglGetString( GL_VERSION ), sizeof( glConfig.version_string ) ); Q_strncpyz( glConfig.extensions_string, qglGetString( GL_EXTENSIONS ), sizeof( glConfig.extensions_string ) ); // TTimo - safe check if ( strlen( qglGetString( GL_EXTENSIONS ) ) >= sizeof( glConfig.extensions_string ) ) { Com_Printf( S_COLOR_YELLOW "WARNNING: GL extensions string too long (%d), truncated to %d\n", strlen( qglGetString( GL_EXTENSIONS ) ), sizeof( glConfig.extensions_string ) ); } // // chipset specific configuration // strcpy( buf, glConfig.renderer_string ); strlwr( buf ); // // NOTE: if changing cvars, do it within this block. This allows them // to be overridden when testing driver fixes, etc. but only sets // them to their default state when the hardware is first installed/run. // if ( Q_stricmp( lastValidRenderer->string, glConfig.renderer_string ) ) { glConfig.hardwareType = GLHW_GENERIC; ri.Cvar_Set( "r_textureMode", "GL_LINEAR_MIPMAP_NEAREST" ); // VOODOO GRAPHICS w/ 2MB if ( Q_stristr( buf, "voodoo graphics/1 tmu/2 mb" ) ) { ri.Cvar_Set( "r_picmip", "2" ); ri.Cvar_Get( "r_picmip", "1", CVAR_ARCHIVE | CVAR_LATCH ); } else { ri.Cvar_Set( "r_picmip", "1" ); if ( Q_stristr( buf, "rage 128" ) || Q_stristr( buf, "rage128" ) ) { ri.Cvar_Set( "r_finish", "0" ); } // Savage3D and Savage4 should always have trilinear enabled else if ( Q_stristr( buf, "savage3d" ) || Q_stristr( buf, "s3 savage4" ) ) { ri.Cvar_Set( "r_texturemode", "GL_LINEAR_MIPMAP_LINEAR" ); } } } // // this is where hardware specific workarounds that should be // detected/initialized every startup should go. // if ( Q_stristr( buf, "banshee" ) || Q_stristr( buf, "Voodoo_Graphics" ) ) { glConfig.hardwareType = GLHW_3DFX_2D3D; } else if ( Q_stristr( buf, "rage pro" ) || Q_stristr( buf, "RagePro" ) ) { glConfig.hardwareType = GLHW_RAGEPRO; } else if ( Q_stristr( buf, "permedia2" ) ) { glConfig.hardwareType = GLHW_PERMEDIA2; } else if ( Q_stristr( buf, "riva 128" ) ) { glConfig.hardwareType = GLHW_RIVA128; } else if ( Q_stristr( buf, "riva tnt " ) ) { } ri.Cvar_Set( "r_lastValidRenderer", glConfig.renderer_string ); // initialize extensions GLW_InitExtensions(); GLW_InitGamma(); InitSig(); return; }
PFN wrapper_get_addr( const tsd_t *TSD, const struct library *lptr, const streng *name ) { PFN addr; handle_type handle=(handle_type)lptr->handle; char *funcname ; #if defined(DYNAMIC_WIN32) char LoadError[256]; char *entryname; unsigned u; char c; #endif #if defined(DYNAMIC_OS2) char *entryname; unsigned u; char c; ULONG ordinal; APIRET rc=0L; #endif #if defined(DYNAMIC_BEOS) status_t rc=0; #endif #if defined(DYNAMIC_STATIC) int rc=0; #endif #if defined(MODULES_NEED_USCORE) streng *us_func; #endif funcname = str_of( TSD, name ) ; #if defined(DYNAMIC_STATIC) rc = static_dlsym( handle, funcname,(void **)&addr ); if ( rc != 0 ) { char buf[150]; sprintf(buf,"static_dlsym() failed with %d looking for %s", rc, funcname ); set_err_message(TSD, buf, "" ) ; addr = NULL; } #elif defined(DYNAMIC_DLOPEN) # if defined(MODULES_NEED_USCORE) /* * Some platforms need to have an underscore prepended to the function * name to be found in a loadable module. */ FreeTSD( funcname ); us_func = Str_makeTSD( Str_len( name ) + 1 ); memcpy( us_func->value, "_", 1 ); us_func->len = 1; Str_catTSD( us_func, name ); funcname = str_of( TSD, us_func ); Free_stringTSD( us_func ); # endif /* * Note, the following assignment is not allowed by ANSI, but SVR4.2 * includes it as an example, so it is probably safe in this context */ addr = (PFN)(dlsym( handle, funcname )) ; /* deal with, eg 'SysLoadFuncs' when the function is 'sysloadfuncs' or 'SYSLOADFUNCS' */ if (addr == NULL) { mem_upper( funcname, strlen( funcname ) ); addr = (PFN)(dlsym( handle, funcname )) ; if (addr == NULL) { mem_lower( funcname, strlen( funcname ) ); addr = (PFN)(dlsym( handle, funcname )) ; if (addr==NULL) set_err_message( TSD, "dlsym() failed: ", dlerror() ); } } #elif defined(DYNAMIC_HPSHLOAD) { long eaddr ; int rc; if (rc = shl_findsym( &handle, funcname, TYPE_PROCEDURE, &eaddr )) { mem_upper( funcname, strlen( funcname ) ); if (rc = shl_findsym( &handle, funcname, TYPE_PROCEDURE, &eaddr )) { mem_lower( funcname, strlen( funcname ) ); if (rc = shl_findsym( &handle, funcname, TYPE_PROCEDURE, &eaddr )) { addr = NULL ; set_err_message( TSD, "shl_findsym() failed: ", strerror(errno) ); } } } if (!rc) addr = (PFN)eaddr ; } #elif defined(DYNAMIC_AIXLOAD) addr = (PFN)handle ; #elif defined(DYNAMIC_OS2) if ( ( sscanf( funcname, "#%u%c", &u, &c ) == 1 ) && ( u != 0 ) ) { ordinal = (ULONG) u; entryname = NULL; } else { ordinal = 0L; entryname = funcname; } rc = DosQueryProcAddr(handle,ordinal,entryname,&addr); if (rc) { char buf[150]; sprintf(buf,"DosQueryProcAddr() failed with %lu looking for %.90s", (long) rc, funcname ); set_err_message(TSD, buf, "" ) ; } #elif defined(DYNAMIC_WIN32) /* 13/12/1999 JH moved cast, (HMODULE), from second parm to first. Removed * a compiler warning, */ if ( ( sscanf( funcname, "#%u%c", &u, &c ) == 1 ) && ( u != 0 ) && ( u <= 0xFFFF ) ) entryname = (char *) u; else entryname = funcname; addr = (PFN) GetProcAddress( (HMODULE) handle, entryname ); if ( ( addr == NULL ) && ( funcname == entryname ) ) { strlwr(funcname); addr = (PFN)GetProcAddress((HMODULE)handle,funcname); if (addr == NULL) { strupr(funcname); addr = (PFN)GetProcAddress((HMODULE)handle, funcname); } } if (addr == NULL) { char buf[150]; FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT), LoadError, 256, NULL ); sprintf( buf, "Failed to find \"%s\" in external library: GetProcAddress() failed: ", funcname ); set_err_message( TSD, buf, LoadError ); } #elif defined(DYNAMIC_BEOS) rc = get_image_symbol(handle,funcname,B_SYMBOL_TYPE_TEXT,(void **)&addr); if (rc == B_BAD_IMAGE_ID) { char buf[150]; sprintf(buf,"get_image_symbol() failed with %d looking for %s", rc, funcname ); set_err_message( TSD, buf, "" ); addr = NULL; } #elif defined(DYNAMIC_SKYOS) fprintf(stderr,"%s %d:\n",__FILE__,__LINE__); addr = (PFN)GetDllFunction( handle, funcname ); if ( addr == NULL ) { char buf[150]; sprintf(buf,"GetDllFunction() failed looking for %s", funcname ); set_err_message( TSD, buf, "" ); addr = NULL; } fprintf(stderr,"%s %d:\n",__FILE__,__LINE__); #endif FreeTSD( funcname ); if (addr) return (PFN)addr ; else return NULL ; }
int main(int argc, char *argv[]) { char nom[10][50],i,resp[2],editnom[30],valor[50]; int fecha[10][3],edad[10],pos=-1,totalfecha[10]; for(i=0;i<10;i++){ fecha[i][0]=-1; fecha[i][1]=-1; fecha[i][2]=-1; edad[i]=-1; } for(i=0;i<10;i++){ do{ printf("Ingrese el nombre n:%d\n>",(i+1)); gets(nom[i]); fflush(stdin); if(comparar(nom[i],nom,i)==0 ){ printf("Nombre repetido\n"); } }while(comparar(nom[i],nom,i)==0 ); do{ printf("Ingrese fecha de ingreso ej 12/12/1993\n>"); scanf("%d/%d/%d",&fecha[i][0],&fecha[i][1],&fecha[i][2]); //printf("%d/%d/%d",fecha[0],fecha[1],fecha[2]); fflush(stdin); if(sacarFecha(fecha[i])==0){ printf("Error,FECHA incorrecta\n"); }}while(sacarFecha(fecha[i])==0); }//Parte uno ingreso printf("¿Deseas editar alguna fecha?\n>"); scanf("%s",resp); fflush(stdin); while(strcmp(strlwr(resp), "si")==0){//Parte dos printf("Ingrese el nombre que deseas editar\n>"); gets(editnom); fflush(stdin); for(i=0;i<10;i++){ //printf("%s\n",nom[i]); if((strcmp(nom[i],editnom)==0)||(strcmp(nom[0],editnom))){ pos=i; break; } } if(pos==-1){ printf("Nombre no encontrado\n"); } else{ printf("La fecha es %d/%d/%d\n",fecha[pos][0],fecha[pos][1],fecha[pos][2]); do{ printf("Ingrese la nueva fecha ej 12/12/1993\n>"); scanf("%d/%d/%d",&fecha[pos][0],&fecha[pos][1],&fecha[pos][2]); fflush(stdin); if(sacarFecha(fecha[pos])==0){ printf("Error,FECHA incorrecta\n"); }}while(sacarFecha(fecha[pos])==0); printf("Fecha cambia correctamente\n"); } printf("¿Deseas editar alguna fecha?\n>"); scanf("%s",resp); fflush(stdin); pos=-1; }//Parte dos editar nombre calcularEdad(fecha,edad); ordenarEdad(nom,fecha,edad); printf("Nombre fecha anio\n"); for(i=0;i<10;i++){ printf("%s \t ",nom[i]); printf("%d/%d/%d\t",fecha[i][0],fecha[i][1],fecha[i][2]); printf("%d\n",edad[i]); }//parte 3 mostrar en pantalla return 0; }
/* * dir_list * * list the files in the directory */ int dir_list(int pathlen , char *pattern , unsigned long *dcnt , unsigned long *fcnt , unsigned long *bcnt ) { struct ffblk file; unsigned long bytecount = 0; unsigned long filecount = 0; unsigned long dircount = 0; int time; int count; unsigned mode = FA_RDONLY | FA_ARCH | FA_DIREC; int rv = E_None; assert(path); assert(pattern); assert(pathlen >= 2); /* at least root */ /* if the user wants all files listed */ if (optA) mode |= FA_HIDDEN | FA_SYSTEM; /* Search for matching entries */ path[pathlen - 1] = '\\'; strcpy(&path[pathlen], pattern); if (FINDFIRST(path, &file, mode) == 0) { /* moved down here because if we are recursively searching and * don't find any files, we don't want just to print * Directory of C:\SOMEDIR * with nothing else */ if (!optB) { rv = flush_nl(); if(rv == E_None) { /* path without superflous '\' at its end */ if(pathlen == 3) /* root directory */ path[pathlen] = '\0'; /* path := path w/o filename */ else path[pathlen - 1] = '\0'; /* /// Changed to exactly match DOS's formatting. - Ron Cemer */ printf("%sDirectory of %s\n", (optS ? "" : " "), path); if((rv = incline()) == E_None) { putchar('\n'); rv = incline(); } } } /* For counting columns of output */ count = WIDE_COLUMNS; /* if optB && optS the path with trailing backslash is needed, also for optS below do {} while */ strcpy(&path[pathlen - 1], "\\"); if(rv == E_None) do { assert(strlen(file.ff_name) < 13); if (cbreak) rv = E_CBreak; else { if (optL) strlwr(file.ff_name); if (optW) { char buffer[sizeof(file.ff_name) + 3]; if (file.ff_attrib & FA_DIREC) { sprintf(buffer, "[%s]", file.ff_name); dircount++; } else { strcpy(buffer, file.ff_name); filecount++; bytecount += file.ff_fsize; } printf("%-15s", buffer); if (!--count) { /* outputted 5 columns */ putchar('\n'); rv = incline(); count = WIDE_COLUMNS; } } else if (optB) { if (strcmp(file.ff_name, ".") == 0 || strcmp(file.ff_name, "..") == 0) continue; if (optS) fputs(path, stdout); printf("%-13s\n", file.ff_name); if (file.ff_attrib & FA_DIREC) dircount++; else { filecount++; bytecount += file.ff_fsize; } rv = incline(); } else { char buffer[sizeof(long) * 4 + 2], *ext; if (file.ff_name[0] == '.') printf("%-13s", file.ff_name); else { ext = strrchr(file.ff_name, '.'); if (!ext) ext = ""; else *ext++ = '\0'; printf("%-8s %-3s ", file.ff_name, ext); } if (file.ff_attrib & FA_DIREC) { printf("%-14s", " <DIR>"); dircount++; } else { convert(file.ff_fsize, buffer); printf(" %10s ", buffer); bytecount += file.ff_fsize; filecount++; } printf(" %.2d-%.2d-%02d", ((file.ff_fdate >> 5) & 0x000f), (file.ff_fdate & 0x001f), ((file.ff_fdate >> 9) + 80) % 100); time = file.ff_ftime >> 5 >> 6; printf(" %2d:%.2u%c\n", (time == 0 ? 12 : (time <= 12 ? time : time - 12)), ((file.ff_ftime >> 5) & 0x003f), (time <= 11 ? 'a' : 'p')); rv = incline(); } } } while (rv == E_None && FINDNEXT(&file) == 0); } if (rv == E_None && optW && (count != 0)) { putchar('\n'); rv = incline(); } if (rv == E_None) if(filecount || dircount) { /* The code that was here is now in print_summary */ rv = print_summary(filecount, bytecount); } else if(!optS) { error_file_not_found(); rv = E_Other; } if(rv == E_None /* no error */ && optS) { /* do recursively */ /* already set for optB && optS before do {} while above path[pathlen - 1] = '\\'; */ strcpy(&path[pathlen], "*.*"); if (FINDFIRST(path, &file, mode) == 0) do { if((file.ff_attrib & FA_DIREC) != 0 /* is directory */ && strcmp(file.ff_name, ".") != 0 /* not cur dir */ && strcmp(file.ff_name, "..") != 0) { /* not parent dir */ if (optL) strlwr(file.ff_name); strcpy(&path[pathlen], file.ff_name); rv = dir_list(pathlen + strlen(file.ff_name) + 1, pattern , &dircount, &filecount, &bytecount ); } } while (rv == E_None && FINDNEXT(&file) == 0); } *dcnt += dircount; *fcnt += filecount; *bcnt += bytecount; return rv; }
void MechBayScreen::init(FitIniFile* file) { // init button, texts, statics, rects LogisticsScreen::init( *file, "MechBayStatic", "MechBayTextEntry", "MechBayRect", "MechBayButton" ); // initialize the list box mechListBox.init(); mechListBox.setHelpID( IDS_HELP_MECHSTORAGE ); loadoutListBox.init( rects[3].left(), rects[3].top(), rects[3].width(), rects[3].height() ); // fill the mech list box ((aObject*)&mechListBox)->init( rects[0].left(), rects[0].top(), rects[0].width(), rects[0].height() ); // initialize little icons FitIniFile iconFile; char path[256]; strcpy( path, artPath ); strcat( path, "mcl_gn_deploymentteams.fit" ); strlwr( path ); if ( NO_ERR != iconFile.open( path ) ) { gosASSERT( "couldn't open the MCL_GN_DevploymentTeams file" ); return; } LogisticsMechIcon::init(iconFile); pIcons = new LogisticsMechIcon[ICON_COUNT]; int count = 0; long x = 0; long y = 0; for ( int j = 0; j < ICON_COUNT_Y; j++ ) { for ( int i = 0; i < ICON_COUNT_X; i++ ) { pIcons[count].setMech( 0 ); pIcons[count].move( x, y ); x+= pIcons[count].width(); x+=4; count++; } y+= pIcons[i].height(); y += 5; x = 0; } mechListBox.drawCBills( 0 ); mechListBox.setScrollBarOrange(); // initialize the attribute meeters attributeMeters[0].init( file, "AttributeMeter0" ); attributeMeters[1].init( file, "AttributeMeter1" ); attributeMeters[2].init( file, "AttributeMeter2" ); dropWeightMeter.init( file, "DropWeightMeter" ); file->readIdLong( "RayCenterX", weightCenterX ); file->readIdLong( "RayCenterY", weightCenterY ); file->readIdLong( "RayStartColor ", weightStartColor ); file->readIdLong( "RayEndColor ", weightEndColor ); file->seekBlock( "weightAddAnimation" ); addWeightAnim.init( file, "" ); file->seekBlock( "weightRemoveAnimation" ); removeWeightAnim.init( file, "" ); file->seekBlock( "FRectAnim" ); mechCamera->init( rects[1].left(), rects[1].top(), rects[2].right(), rects[1].bottom() ); for ( int i= 0; i < buttonCount; i++ ) buttons[i].setMessageOnRelease(); textObjects[7].setText( "" ); textObjects[8].setText( "" ); textObjects[9].setText( "" ); textObjects[10].setText( "" ); textObjects[11].setText( "" ); textObjects[12].setText( "" ); textObjects[14].setText( "" ); for ( i = 0; i < 3; i++ ) { attributeMeters[i].setValue(0); } setMech( NULL, 0 ); }
//========================================================================== // // ParseStates // parses a state block // //========================================================================== int ParseStates(FActorInfo * actor, AActor * defaults, Baggage &bag) { FString statestring; intptr_t count = 0; FState state; FState * laststate = NULL; intptr_t lastlabel = -1; int minrequiredstate = -1; SC_MustGetStringName ("{"); SC_SetEscape(false); // disable escape sequences in the state parser while (!SC_CheckString ("}") && !sc_End) { memset(&state,0,sizeof(state)); statestring = ParseStateString(); if (!statestring.CompareNoCase("GOTO")) { do_goto: statestring = ParseStateString(); if (SC_CheckString ("+")) { SC_MustGetNumber (); statestring += '+'; statestring += sc_String; } // copy the text - this must be resolved later! if (laststate != NULL) { // Following a state definition: Modify it. laststate->NextState = (FState*)copystring(statestring); } else if (lastlabel >= 0) { // Following a label: Retarget it. RetargetStates (count+1, statestring); } else { SC_ScriptError("GOTO before first state"); } } else if (!statestring.CompareNoCase("STOP")) { do_stop: if (laststate!=NULL) { laststate->NextState=(FState*)-1; } else if (lastlabel >=0) { RetargetStates (count+1, NULL); } else { SC_ScriptError("STOP before first state"); continue; } } else if (!statestring.CompareNoCase("WAIT") || !statestring.CompareNoCase("FAIL")) { if (!laststate) { SC_ScriptError("%s before first state", sc_String); continue; } laststate->NextState=(FState*)-2; } else if (!statestring.CompareNoCase("LOOP")) { if (!laststate) { SC_ScriptError("LOOP before first state"); continue; } laststate->NextState=(FState*)(lastlabel+1); } else { const char * statestrp; SC_MustGetString(); if (SC_Compare (":")) { laststate = NULL; do { lastlabel = count; AddState(statestring, (FState *) (count+1)); statestring = ParseStateString(); if (!statestring.CompareNoCase("GOTO")) { goto do_goto; } else if (!statestring.CompareNoCase("STOP")) { goto do_stop; } SC_MustGetString (); } while (SC_Compare (":")); // continue; } SC_UnGet (); if (statestring.Len() != 4) { SC_ScriptError ("Sprite names must be exactly 4 characters\n"); } memcpy(state.sprite.name, statestring, 4); state.Misc1=state.Misc2=0; state.ParameterIndex=0; SC_MustGetString(); statestring = (sc_String+1); statestrp = statestring; state.Frame=(*sc_String&223)-'A'; if ((*sc_String&223)<'A' || (*sc_String&223)>']') { SC_ScriptError ("Frames must be A-Z, [, \\, or ]"); state.Frame=0; } SC_MustGetNumber(); sc_Number++; state.Tics=sc_Number&255; state.Misc1=(sc_Number>>8)&255; if (state.Misc1) state.Frame|=SF_BIGTIC; while (SC_GetString() && !sc_Crossed) { if (SC_Compare("BRIGHT")) { state.Frame|=SF_FULLBRIGHT; continue; } if (SC_Compare("OFFSET")) { if (state.Frame&SF_BIGTIC) { SC_ScriptError("You cannot use OFFSET with a state duration larger than 254!"); } // specify a weapon offset SC_MustGetStringName("("); SC_MustGetNumber(); state.Misc1=sc_Number; SC_MustGetStringName (","); SC_MustGetNumber(); state.Misc2=sc_Number; SC_MustGetStringName(")"); continue; } // Make the action name lowercase to satisfy the gperf hashers strlwr (sc_String); int minreq=count; if (DoActionSpecials(state, !statestring.IsEmpty(), &minreq, bag)) { if (minreq>minrequiredstate) minrequiredstate=minreq; goto endofstate; } PSymbol *sym = bag.Info->Class->Symbols.FindSymbol (FName(sc_String, true), true); if (sym != NULL && sym->SymbolType == SYM_ActionFunction) { PSymbolActionFunction *afd = static_cast<PSymbolActionFunction *>(sym); state.Action = afd->Function; if (!afd->Arguments.IsEmpty()) { const char *params = afd->Arguments.GetChars(); int numparams = (int)afd->Arguments.Len(); int v; if (!islower(*params)) { SC_MustGetStringName("("); } else { if (!SC_CheckString("(")) goto endofstate; } int paramindex = PrepareStateParameters(&state, numparams); int paramstart = paramindex; bool varargs = params[numparams - 1] == '+'; if (varargs) { StateParameters[paramindex++] = 0; } while (*params) { switch(*params) { case 'I': case 'i': // Integer SC_MustGetNumber(); v=sc_Number; break; case 'F': case 'f': // Fixed point SC_MustGetFloat(); v=fixed_t(sc_Float*FRACUNIT); break; case 'S': case 's': // Sound name SC_MustGetString(); v=S_FindSound(sc_String); break; case 'M': case 'm': // Actor name case 'T': case 't': // String SC_SetEscape(true); SC_MustGetString(); SC_SetEscape(false); v = (int)(sc_String[0] ? FName(sc_String) : NAME_None); break; case 'L': case 'l': // Jump label if (SC_CheckNumber()) { if (strlen(statestring)>0) { SC_ScriptError("You cannot use A_Jump commands with a jump index on multistate definitions\n"); } v=sc_Number; if (v<1) { SC_ScriptError("Negative jump offsets are not allowed"); } { int minreq=count+v; if (minreq>minrequiredstate) minrequiredstate=minreq; } } else { if (JumpParameters.Size()==0) JumpParameters.Push(NAME_None); v = -(int)JumpParameters.Size(); // This forces quotation marks around the state name. SC_MustGetToken(TK_StringConst); FString statestring = sc_String; // ParseStateString(); const PClass *stype=NULL; int scope = statestring.IndexOf("::"); if (scope >= 0) { FName scopename = FName(statestring, scope, false); if (scopename == NAME_Super) { // Super refers to the direct superclass scopename = actor->Class->ParentClass->TypeName; } JumpParameters.Push(scopename); statestring = statestring.Right(statestring.Len()-scope-2); stype = PClass::FindClass (scopename); if (stype == NULL) { SC_ScriptError ("%s is an unknown class.", scopename.GetChars()); } if (!stype->IsDescendantOf (RUNTIME_CLASS(AActor))) { SC_ScriptError ("%s is not an actor class, so it has no states.", stype->TypeName.GetChars()); } if (!stype->IsAncestorOf (actor->Class)) { SC_ScriptError ("%s is not derived from %s so cannot access its states.", actor->Class->TypeName.GetChars(), stype->TypeName.GetChars()); } } else { // No class name is stored. This allows 'virtual' jumps to // labels in subclasses. // It also means that the validity of the given state cannot // be checked here. JumpParameters.Push(NAME_None); } TArray<FName> names; MakeStateNameList(statestring, &names); if (stype != NULL) { if (!stype->ActorInfo->FindState(names.Size(), &names[0])) { SC_ScriptError("Jump to unknown state '%s' in class '%s'", statestring.GetChars(), stype->TypeName.GetChars()); } } JumpParameters.Push((ENamedName)names.Size()); for(unsigned i=0;i<names.Size();i++) { JumpParameters.Push(names[i]); } // No offsets here. The point of jumping to labels is to avoid such things! } break; case 'C': case 'c': // Color SC_MustGetString (); if (SC_Compare("none")) { v = -1; } else { int c = V_GetColor (NULL, sc_String); // 0 needs to be the default so we have to mark the color. v = MAKEARGB(1, RPART(c), GPART(c), BPART(c)); } break; case 'X': case 'x': v = ParseExpression (false, bag.Info->Class); break; case 'Y': case 'y': v = ParseExpression (true, bag.Info->Class); break; default: assert(false); v = -1; break; } StateParameters[paramindex++] = v; params++; if (varargs) { StateParameters[paramstart]++; } if (*params) { if (*params == '+') { if (SC_CheckString(")")) { goto endofstate; } params--; v = 0; StateParameters.Push(v); } else if ((islower(*params) || *params=='!') && SC_CheckString(")")) { goto endofstate; } SC_MustGetStringName (","); } } SC_MustGetStringName(")"); } else { SC_MustGetString(); if (SC_Compare("(")) { SC_ScriptError("You cannot pass parameters to '%s'\n",sc_String); } SC_UnGet(); } goto endofstate; } SC_ScriptError("Invalid state parameter %s\n", sc_String); } SC_UnGet(); endofstate: StateArray.Push(state); while (*statestrp) { int frame=((*statestrp++)&223)-'A'; if (frame<0 || frame>28) { SC_ScriptError ("Frames must be A-Z, [, \\, or ]"); frame=0; } state.Frame=(state.Frame&(SF_FULLBRIGHT|SF_BIGTIC))|frame; StateArray.Push(state); count++; } laststate=&StateArray[count]; count++; } } if (count<=minrequiredstate) { SC_ScriptError("A_Jump offset out of range in %s", actor->Class->TypeName.GetChars()); } SC_SetEscape(true); // re-enable escape sequences return count; }
int main(){ char * razonamiento = NULL; //PILA DONDE SE ALMACENARÁN LAS OPERACIONES A RESOLVER pNode primero = NULL, ultimo=NULL; int vFlag = 1; //Bandera que verifica si un razonamiento es valido o no int validez, invalidos=0, validos=0, total=0, Bool=1; int cuenta=0; // int verific=0, z=0, contadorValidos=0; //Funciona como bandera para verificar char * razonamientoEnCola; //Variable que saca un razonamiento de la cola char ** rCola; //Mostrara el razonamiento que esta en la cola char * rInvalido = NULL, **rInvalidoAux=NULL; //Para mostrar el ultimo razonamiento invalido //VARIABLE QUE SEPARAMOS EN ANTECEDENTE Y CONSECUENTE EL RAZONAMIENTO AUXILIAR PARA //MOSTRARLO EN PANTALLA AL FINAL char ** rAux; char ** rAux2; char ** comas; //Contendra todos los razonamientos separados con comas //Variables para la verificacion de la cadena: char * aParentesis=NULL; int parentesisValidos=0, cadenaValidaA=0, cadenaValidaB=0; printf("==================================================\n"); printf("\tPrueba Automatica de Teoremas (PAT)\n"); printf("==================================================\n"); simbologia(); printf("Para mostrar la ayuda escriba el comando \"a\" o \"ayuda\"\n"); printf("\nIntroduce el razonamiento a verificar:\n"); while(Bool==1){ //MENU consola(cuenta); //INGRESAR LA CADENA razonamiento = readString(); rAux = split(razonamiento,"="); //Para verificar rAux2 = split(razonamiento,"=");//Para mostrar //Si es un comando if(esComando(razonamiento)==1){ if(strncmp("s",razonamiento,1)==0 || strncmp("salir",razonamiento,5)==0){ //printf("[-] Saliendo del programa\n"); Bool = 0; } else if(strncmp("a",razonamiento,1)==0 || strncmp("ayuda",razonamiento,5)==0){ mostrarAyuda(); } else if(strncmp("i",razonamiento,1)==0 || strncmp("invalido",razonamiento,8)==0){ if(rInvalido!=NULL){ rInvalidoAux = split(rInvalido,"="); printf("[+] Ultimo razonamiento invalido\n"); mostrarRazonamiento(rInvalidoAux[0],rInvalidoAux[1]); }else{ printf("[!] No existe algun razonamiento invalido\n"); } } else if(strncmp("l",razonamiento,1)==0 || strncmp("limpiar",razonamiento,7)==0){ system("clear"); } else if(strncmp("v",razonamiento,1)==0 || strncmp("version",razonamiento,7)==0){ version(); } } else if(stringArraySize(rAux)<2){ printf("[Error] Falta el operador '=>'\n"); }else if (stringArraySize(rAux)>2){ printf("[Error] El operador '=>' encontrado mas de una vez\n"); } else{ //Eliminar espacios en blanco de la expresión quitarEspaciosBlanco(razonamiento); //Pasamos a minusculas el razonamiento strlwr(razonamiento); //Verificamos la cadena (Parentesis) aParentesis = obtenerParentesis(razonamiento); parentesisValidos = verificaParentesis(aParentesis); if(parentesisValidos==0){ printf("[Error] Razonamiento no valido: Parentesis no validos\n"); } //Para verificar el antecedente y el consecuente strlwr(rAux[0]); strlwr(rAux[1]); quitarEspaciosBlanco(rAux[0]); //Quita espacios en blanco de antecedente quitarEspaciosBlanco(rAux[1]); //Quita espacios en blanco de consecuente comas = split(rAux[0],","); for(verific=0;verific<stringArraySize(comas);verific++){ z = verificaCadena(comas[verific]); if(z==1) contadorValidos++; } if(contadorValidos==stringArraySize(comas)){ //Si son iguales quiere decir queno hay errores cadenaValidaA=1; }else{ printf("[Error] Razonamiento no valido: Error de sintaxis en el Antecedente\n"); cadenaValidaA=0; } comas = split(rAux[1],","); contadorValidos =0; for(verific=0;verific<stringArraySize(comas);verific++){ z = verificaCadena(comas[verific]); if(z==1) contadorValidos++; } if(contadorValidos==stringArraySize(comas)){ //Si son iguales quiere decir queno hay errores cadenaValidaB=1; }else{ printf("[Error] Razonamiento no valido: Error de sintaxis en el Consecuente\n"); cadenaValidaB=0; } //Si no hay errores entonces hace el procedimiento if(parentesisValidos==1 && cadenaValidaA==1 && cadenaValidaB==1){ //AGREGAMOS A LA COLA EL RAZONAIENTO INGRESADO add(&primero,&ultimo,razonamiento); //LEEMOS EL RAZONAMIENTO INGRESADO DE LA COLA razonamientoEnCola = read(&primero,&ultimo); //MIENTRAS QUE EXISTAN RAZONAMIENTOS: do{ validez = PAT(razonamientoEnCola,&primero,&ultimo); if(validez!=0){ //Mientras sea valido el razonamiento razonamientoEnCola = read(&primero,&ultimo); if(razonamientoEnCola!=NULL){ rCola = split(razonamientoEnCola,"="); printf("\n[+] Analizando el siguiente razonamiento en espera: %s => %s \n",rCola[0],rCola[1]); } vFlag = 1; }else{ //Si existe algun razonamiento invalido lo copiamos a rInvalido rInvalido = (char*)calloc(strlen(razonamientoEnCola)+1,sizeof(char)); strncpy(rInvalido,razonamientoEnCola,strlen(razonamientoEnCola)+1); vFlag = 0; break; } }while(razonamientoEnCola!=NULL); if (vFlag == 1){ printf("\n[VALIDO] El Razonamiento : %s => %s es valido\n\n",rAux2[0],rAux2[1]); return 0; }else{ printf("\n[INVALIDO] El Razonamiento : %s => %s es invalido\n\n",rAux2[0],rAux2[1]); return 0; } //VACIAMOS LA COLA primero=ultimo=NULL; } } cuenta++; verific=0, z=0, contadorValidos=0; //Resetamos las banderas parentesisValidos=0; } return 0; }
static Bool get_default_install_path(char *file_path, u32 path_type) { FILE *f; char *sep; char szPath[GF_MAX_PATH]; #ifdef _WIN32_WCE TCHAR w_szPath[GF_MAX_PATH]; GetModuleFileName(NULL, w_szPath, GF_MAX_PATH); CE_WideToChar((u16 *) w_szPath, file_path); #else GetModuleFileNameA(NULL, file_path, GF_MAX_PATH); #endif /*remove exe name*/ if (strstr(file_path, ".exe")) { sep = strrchr(file_path, '\\'); if (sep) sep[0] = 0; } strcpy(szPath, file_path); strlwr(szPath); /*if this is run from a browser, we do not get our app path - fortunately on Windows, we always use 'GPAC' in the installation path*/ if (!strstr(file_path, "gpac")) { HKEY hKey = NULL; DWORD dwSize = GF_MAX_PATH; /*locate the key in current user, then in local machine*/ #ifdef _WIN32_WCE DWORD dwType = REG_SZ; u16 w_path[1024]; RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Software\\GPAC"), 0, KEY_READ, &hKey); #ifdef _DEBUG if (RegQueryValueEx(hKey, TEXT("DebugDir"), 0, &dwType, (LPBYTE) w_path, &dwSize) != ERROR_SUCCESS) #endif RegQueryValueEx(hKey, TEXT("InstallDir"), 0, &dwType, (LPBYTE) w_path, &dwSize); CE_WideToChar(w_path, (char *)file_path); RegCloseKey(hKey); #else if (RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\GPAC", 0, KEY_READ, &hKey) != ERROR_SUCCESS) RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\GPAC", 0, KEY_READ, &hKey); dwSize = GF_MAX_PATH; #ifdef _DEBUG if (RegQueryValueEx(hKey, "DebugDir", NULL, NULL,(unsigned char*) file_path, &dwSize) != ERROR_SUCCESS) #endif RegQueryValueEx(hKey, "InstallDir", NULL, NULL,(unsigned char*) file_path, &dwSize); RegCloseKey(hKey); #endif } if (path_type==GF_PATH_APP) return 1; if (path_type==GF_PATH_GUI) { char *sep; strcat(file_path, "\\gui"); if (check_file_exists("gui.bt", file_path, file_path)) return 1; sep = strstr(file_path, "\\bin\\"); if (sep) { sep[0] = 0; strcat(file_path, "\\gui"); if (check_file_exists("gui.bt", file_path, file_path)) return 1; } return 0; } /*modules are stored in the GPAC directory (should be changed to GPAC/modules)*/ if (path_type==GF_PATH_MODULES) return 1; /*we are looking for the config file path - make sure it is writable*/ assert(path_type == GF_PATH_CFG); strcpy(szPath, file_path); strcat(szPath, "\\gpaccfgtest.txt"); f = gf_f64_open(szPath, "wb"); if (f != NULL) { fclose(f); gf_delete_file(szPath); return 1; } #ifdef _WIN32_WCE return 0; #else /*no write access, get user home directory*/ SHGetFolderPath(NULL, CSIDL_APPDATA | CSIDL_FLAG_CREATE, NULL, SHGFP_TYPE_CURRENT, file_path); if (file_path[strlen(file_path)-1] != '\\') strcat(file_path, "\\"); strcat(file_path, "GPAC"); /*create GPAC dir*/ _mkdir(file_path); strcpy(szPath, file_path); strcat(szPath, "\\gpaccfgtest.txt"); f = gf_f64_open(szPath, "wb"); /*COMPLETE FAILURE*/ if (!f) return 0; fclose(f); gf_delete_file(szPath); return 1; #endif }
void checkEndSound() { if(getMode() != SOUNDPLAYER) { return; } if(!soundLoaded) { char ext[256]; char tmp[256]; strcpy(tmp,getFileName()); separateExtension(tmp,ext); strlwr(ext); if(strcmp(ext,".pls") == 0 || strcmp(ext,".m3u") == 0) { sndMode = TYPE_PLS; if(loadPlaylist(getFileName(), &curPlaylist)) { DRAGON_chdir("/"); loadSound(curPlaylist.urlEntry[0].data); plsPos = 0; } else { destroyRandomList(); exitSound(0,0); return; } } else { sndMode = TYPE_NORMAL; bool success = loadSound(getFileName()); if(soundMode == SOUND_ONESHOT || firstTime) { if(success == false) { destroyRandomList(); exitSound(0,0); return; } } else { while(!success) { getNextSoundInternal(false); if(getMode() == BROWSER) // cover for no files found { destroyRandomList(); return; } success = loadSound(getFileName()); } } } sampleWidth = (getSoundLength() / 236); soundLoaded = true; } firstTime = false; if(getState() == STATE_STOPPED || getState() == STATE_UNLOADED) { if(sndMode == TYPE_NORMAL) { if(soundMode == SOUND_ONESHOT) { exitSound(0,0); } else { getNextSoundInternal(true); } } if(sndMode == TYPE_PLS) { if(!queued) { if(plsPos == curPlaylist.numEntries - 1) plsPos = 0; else plsPos++; } DRAGON_chdir("/"); loadSound(curPlaylist.urlEntry[plsPos].data); queued = false; } } }
char *_V_strlower (const char* file, int line, char *start) { AssertValidStringPtr( start ); return strlwr(start); }
void KNpcTemplate::InitNpcBaseData(int nNpcTemplateId) { if (nNpcTemplateId < 0 ) return; int nNpcTempRow = nNpcTemplateId + 2; g_NpcSetting.GetString(nNpcTempRow, "Name", "", Name, sizeof(Name)); g_NpcSetting.GetInteger(nNpcTempRow, "Kind", 0, (int *)&m_Kind); g_NpcSetting.GetInteger(nNpcTempRow, "Camp", 0, &m_Camp); g_NpcSetting.GetInteger(nNpcTempRow, "Series", 0, &m_Series); g_NpcSetting.GetInteger(nNpcTempRow, "HeadImage", 0, &m_HeadImage); g_NpcSetting.GetInteger(nNpcTempRow, "ClientOnly", 0, &m_bClientOnly); g_NpcSetting.GetInteger(nNpcTempRow, "CorpseIdx", 0, &m_CorpseSettingIdx); g_NpcSetting.GetInteger(nNpcTempRow, "DeathFrame", 12, &m_DeathFrame); g_NpcSetting.GetInteger(nNpcTempRow, "WalkFrame", 15, &m_WalkFrame); g_NpcSetting.GetInteger(nNpcTempRow, "RunFrame", 15, &m_RunFrame); g_NpcSetting.GetInteger(nNpcTempRow, "HurtFrame", 10, &m_HurtFrame); g_NpcSetting.GetInteger(nNpcTempRow, "WalkSpeed", 5, &m_WalkSpeed); g_NpcSetting.GetInteger(nNpcTempRow, "AttackSpeed", 20, &m_AttackFrame); g_NpcSetting.GetInteger(nNpcTempRow, "CastSpeed", 20, &m_CastFrame); g_NpcSetting.GetInteger(nNpcTempRow, "RunSpeed", 10, &m_RunSpeed); g_NpcSetting.GetInteger(nNpcTempRow, "StandFrame", 15, &m_StandFrame); g_NpcSetting.GetInteger(nNpcTempRow, "StandFrame1", 15, &m_StandFrame1); g_NpcSetting.GetInteger(nNpcTempRow, "Stature", 0, &m_nStature); #ifdef _SERVER g_NpcSetting.GetInteger(nNpcTempRow, "Treasure", 0, &m_Treasure); g_NpcSetting.GetInteger(nNpcTempRow, "AIMode", 0, &m_AiMode); g_NpcSetting.GetInteger(nNpcTempRow, "AIParam1", 0, &m_AiParam[0]); g_NpcSetting.GetInteger(nNpcTempRow, "AIParam2", 0, &m_AiParam[1]); g_NpcSetting.GetInteger(nNpcTempRow, "AIParam3", 0, &m_AiParam[2]); g_NpcSetting.GetInteger(nNpcTempRow, "AIParam4", 0, &m_AiParam[3]); g_NpcSetting.GetInteger(nNpcTempRow, "AIParam5", 0, &m_AiParam[4]); g_NpcSetting.GetInteger(nNpcTempRow, "AIParam6", 0, &m_AiParam[5]); g_NpcSetting.GetInteger(nNpcTempRow, "AIParam7", 0, &m_AiParam[6]); g_NpcSetting.GetInteger(nNpcTempRow, "AIParam8", 0, &m_AiParam[7]); g_NpcSetting.GetInteger(nNpcTempRow, "AIParam9", 0, &m_AiParam[8]); g_NpcSetting.GetInteger(nNpcTempRow, "AIParam10", 5, &m_AiParam[9]); g_NpcSetting.GetInteger(nNpcTempRow, "FireResistMax", 0, &m_FireResistMax); g_NpcSetting.GetInteger(nNpcTempRow, "ColdResistMax", 0, &m_ColdResistMax); g_NpcSetting.GetInteger(nNpcTempRow, "LightResistMax", 0, &m_LightResistMax); g_NpcSetting.GetInteger(nNpcTempRow, "PoisonResistMax", 0, &m_PoisonResistMax); g_NpcSetting.GetInteger(nNpcTempRow, "PhysicsResistMax", 0, &m_PhysicsResistMax); g_NpcSetting.GetInteger(nNpcTempRow, "ActiveRadius", 30, &m_ActiveRadius); g_NpcSetting.GetInteger(nNpcTempRow, "VisionRadius", 40, &m_VisionRadius); char szDropFile[200]; g_NpcSetting.GetString(nNpcTempRow, "DropRateFile", "", szDropFile, sizeof(szDropFile)); strlwr(szDropFile); strcpy(m_szDropRateFile, szDropFile); KItemDropRateNode DropNode; strcpy(DropNode.m_szFileName, szDropFile); if (g_ItemDropRateBinTree.Find(DropNode)) { m_pItemDropRate = DropNode.m_pItemDropRate; } else { KItemDropRateNode newDropNode; strcpy(newDropNode.m_szFileName,szDropFile); newDropNode.m_pItemDropRate = g_GenItemDropRate(szDropFile); g_ItemDropRateBinTree.Insert(newDropNode); m_pItemDropRate = newDropNode.m_pItemDropRate; } int nAIMaxTime = 0; g_NpcSetting.GetInteger(nNpcTempRow, "AIMaxTime", 25, (int*)&nAIMaxTime); m_AIMAXTime = (BYTE)nAIMaxTime; g_NpcSetting.GetInteger(nNpcTempRow, "HitRecover", 0, &m_HitRecover); g_NpcSetting.GetInteger(nNpcTempRow, "ReviveFrame", 2400, &m_ReviveFrame); char szLevelScript[MAX_PATH]; g_NpcSetting.GetString(nNpcTempRow, "LevelScript", "", szLevelScript, MAX_PATH); if (!szLevelScript[0]) m_dwLevelSettingScript = 0; else { #ifdef WIN32 _strlwr(szLevelScript); #else for (int nl = 0; szLevelScript[nl]; nl++) if (szLevelScript[nl] >= 'A' && szLevelScript[nl] <= 'Z') szLevelScript[nl] += 'a' - 'A'; #endif m_dwLevelSettingScript = g_FileName2Id(szLevelScript); } #else g_NpcSetting.GetInteger(nNpcTempRow, "ArmorType", 0, &m_ArmorType); g_NpcSetting.GetInteger(nNpcTempRow, "HelmType", 0, &m_HelmType); g_NpcSetting.GetInteger(nNpcTempRow, "WeaponType", 0, &m_WeaponType); g_NpcSetting.GetInteger(nNpcTempRow, "HorseType", -1, &m_HorseType); g_NpcSetting.GetInteger(nNpcTempRow, "RideHorse",0, &m_bRideHorse); g_NpcSetting.GetString(nNpcTempRow, "ActionScript", "", ActionScript,sizeof(ActionScript)); g_NpcSetting.GetString(nNpcTempRow, "LevelScript", "", m_szLevelSettingScript, 100); #endif }
//get 166 genes information in database void TFIM::getGeneInformation(FILE *fp) { ifstream data("TFIM"); //ofstream text("Sequence"); if(!data) { getError=1; } else getError=0; char ch; int i; for(i=1;i<aM;i++) { if(!data.get(ch)) { i=aM; } while(ch=='#')//filter RegulonDB line { string noUse; getline(data,noUse); data.get(ch); } string line; char GN[10]; getline(data,line); for(int h=0;h<10;h++) GN[h]=geneName[h]; char cLine[60]; for(int H=0;H<60;H++) cLine[H]=line[H]; strlwr(cLine); strlwr(GN); int haveFound=easyFind(cLine,GN); if(haveFound==1) { char fullLine[10000]; int h=0; while(line[h]!='\0') { fullLine[h]=line[h]; h++; } fullLine[h]='\0'; const char *delims=" "; char *p; p=strtok(fullLine,delims); iD=p; p=strtok(NULL,delims); p=strtok(NULL,delims); leftPosition=p; p=strtok(NULL,delims); rightPosition=p; p=strtok(NULL,delims); p=strtok(NULL,delims); if(*p!='-')RNA=1; else RNA=0; p=strtok(NULL,delims); p=strtok(NULL,delims); p=strtok(NULL,delims); p=strtok(NULL,delims); geneSequence=p; i=aM+1; //text.seekp(text.end); //text<<geneNumber<<" "<<geneSequence<<endl; fprintf(fp,"%d %s\n",geneNumber,geneSequence); } //cout<<i<<endl; } if(i==aM) cout<<"can't find gene sequence"<<endl; }
void AsInsertPrefix ( char *Buffer, char *Keyword, UINT8 Type) { char *SubString; char *SubBuffer; char *EndKeyword; int StrLength; int InsertLength; char *InsertString; int TrailingSpaces; char LowerKeyword[128]; int KeywordLength; switch (Type) { case SRC_TYPE_STRUCT: InsertString = "struct "; break; case SRC_TYPE_UNION: InsertString = "union "; break; default: return; } strcpy (LowerKeyword, Keyword); strlwr (LowerKeyword); SubBuffer = Buffer; SubString = Buffer; InsertLength = strlen (InsertString); KeywordLength = strlen (Keyword); while (SubString) { /* Find an instance of the keyword */ SubString = strstr (SubBuffer, LowerKeyword); if (!SubString) { return; } SubBuffer = SubString; /* Must be standalone word, not a substring */ if (AsMatchExactWord (SubString, KeywordLength)) { /* Make sure the keyword isn't already prefixed with the insert */ if (!strncmp (SubString - InsertLength, InsertString, InsertLength)) { /* Add spaces if not already at the end-of-line */ if (*(SubBuffer + KeywordLength) != '\n') { /* Already present, add spaces after to align structure members */ #if 0 /* ONLY FOR C FILES */ AsInsertData (SubBuffer + KeywordLength, " ", 8); #endif } goto Next; } /* Make sure the keyword isn't at the end of a struct/union */ /* Note: This code depends on a single space after the brace */ if (*(SubString - 2) == '}') { goto Next; } /* Prefix the keyword with the insert string */ Gbl_MadeChanges = TRUE; StrLength = strlen (SubString); /* Is there room for insertion */ EndKeyword = SubString + strlen (LowerKeyword); TrailingSpaces = 0; while (EndKeyword[TrailingSpaces] == ' ') { TrailingSpaces++; } /* * Use "if (TrailingSpaces > 1)" if we want to ignore casts */ SubBuffer = SubString + InsertLength; if (TrailingSpaces > InsertLength) { /* Insert the keyword */ memmove (SubBuffer, SubString, KeywordLength); /* Insert the keyword */ memmove (SubString, InsertString, InsertLength); } else { AsInsertData (SubString, InsertString, InsertLength); } } Next: SubBuffer += KeywordLength; } }
static krb5_error_code parse_key_set(krb5_context context, const char *key, krb5_enctype **ret_enctypes, size_t *ret_num_enctypes, krb5_salt *salt, krb5_principal principal) { const char *p; char buf[3][256]; int num_buf = 0; int i, num_enctypes = 0; krb5_enctype e; const krb5_enctype *enctypes = NULL; krb5_error_code ret; p = key; *ret_enctypes = NULL; *ret_num_enctypes = 0; /* split p in a list of :-separated strings */ for(num_buf = 0; num_buf < 3; num_buf++) if(strsep_copy(&p, ":", buf[num_buf], sizeof(buf[num_buf])) == -1) break; salt->saltvalue.data = NULL; salt->saltvalue.length = 0; for(i = 0; i < num_buf; i++) { if(enctypes == NULL && num_buf > 1) { /* this might be a etype specifier */ /* XXX there should be a string_to_etypes handling special cases like `des' and `all' */ if(strcmp(buf[i], "des") == 0) { enctypes = des_etypes; num_enctypes = sizeof(des_etypes)/sizeof(des_etypes[0]); } else if(strcmp(buf[i], "des3") == 0) { e = ETYPE_DES3_CBC_SHA1; enctypes = &e; num_enctypes = 1; } else { ret = krb5_string_to_enctype(context, buf[i], &e); if (ret == 0) { enctypes = &e; num_enctypes = 1; } else return ret; } continue; } if(salt->salttype == 0) { /* interpret string as a salt specifier, if no etype is set, this sets default values */ /* XXX should perhaps use string_to_salttype, but that interface sucks */ if(strcmp(buf[i], "pw-salt") == 0) { if(enctypes == NULL) { enctypes = all_etypes; num_enctypes = sizeof(all_etypes)/sizeof(all_etypes[0]); } salt->salttype = KRB5_PW_SALT; } else if(strcmp(buf[i], "afs3-salt") == 0) { if(enctypes == NULL) { enctypes = des_etypes; num_enctypes = sizeof(des_etypes)/sizeof(des_etypes[0]); } salt->salttype = KRB5_AFS3_SALT; } continue; } { /* if there is a final string, use it as the string to salt with, this is mostly useful with null salt for v4 compat, and a cell name for afs compat */ salt->saltvalue.data = strdup(buf[i]); if (salt->saltvalue.data == NULL) { krb5_set_error_message(context, ENOMEM, "malloc: out of memory"); return ENOMEM; } salt->saltvalue.length = strlen(buf[i]); } } if(enctypes == NULL || salt->salttype == 0) { krb5_set_error_message(context, EINVAL, "bad value for default_keys `%s'", key); return EINVAL; } /* if no salt was specified make up default salt */ if(salt->saltvalue.data == NULL) { if(salt->salttype == KRB5_PW_SALT) ret = krb5_get_pw_salt(context, principal, salt); else if(salt->salttype == KRB5_AFS3_SALT) { krb5_const_realm realm = krb5_principal_get_realm(context, principal); salt->saltvalue.data = strdup(realm); if(salt->saltvalue.data == NULL) { krb5_set_error_message(context, ENOMEM, "out of memory while " "parsing salt specifiers"); return ENOMEM; } strlwr(salt->saltvalue.data); salt->saltvalue.length = strlen(realm); } } *ret_enctypes = malloc(sizeof(enctypes[0]) * num_enctypes); if (*ret_enctypes == NULL) { krb5_free_salt(context, *salt); krb5_set_error_message(context, ENOMEM, "malloc: out of memory"); return ENOMEM; } memcpy(*ret_enctypes, enctypes, sizeof(enctypes[0]) * num_enctypes); *ret_num_enctypes = num_enctypes; return 0; }
TFingerprint *TFingerprintParse(const char *Data) { char *Name=NULL, *Value=NULL, *ptr; TFingerprint *FP; FP=(TFingerprint *) calloc(1,sizeof(TFingerprint)); FP->Path=CopyStr(FP->Path,""); FP->Hash=CopyStr(FP->Hash,""); FP->Flags=0; memset(&FP->FStat,0,sizeof(struct stat)); StripTrailingWhitespace(Data); if (strncmp(Data,"hash=",5) ==0) { //Native format ptr=GetNameValuePair(Data," ","=",&Name,&Value); while (ptr) { if (StrLen(Name)) { if (strcmp(Name,"path")==0) FP->Path=CopyStr(FP->Path,Value); if (strcmp(Name,"size")==0) { FP->Flags |= FP_HASSTAT; FP->FStat.st_size=(size_t) strtol(Value,NULL,10); } if (strcmp(Name,"mode")==0) { FP->Flags |= FP_HASSTAT; FP->FStat.st_mode=strtol(Value,NULL,8); } if (strcmp(Name,"mtime")==0) { FP->Flags |= FP_HASSTAT; FP->FStat.st_mtime=strtol(Value,NULL,10); } if (strcmp(Name,"inode")==0) { FP->Flags |= FP_HASSTAT; FP->FStat.st_ino=(ino_t) strtol(Value,NULL,10); } if (strcmp(Name,"uid")==0) { FP->Flags |= FP_HASSTAT; FP->FStat.st_uid=strtol(Value,NULL,10); } if (strcmp(Name,"gid")==0) { FP->Flags |= FP_HASSTAT; FP->FStat.st_gid=strtol(Value,NULL,10); } if (strcmp(Name,"hash")==0) { FP->Hash=CopyStr(FP->Hash,GetToken(Value,":",&FP->HashType,0)); } } ptr=GetNameValuePair(ptr," ","=",&Name,&Value); } } else { ptr=GetToken(Data," ",&FP->Hash,0); if (StrLen(FP->Hash) < 10) ParseBSDFormat(Data, &FP->HashType, &FP->Hash, &FP->Path); else ParseTradFormat(Data, &FP->Hash, &FP->Path); } if (StrLen(FP->Hash)) strlwr(FP->Hash); DestroyString(Name); DestroyString(Value); return(FP); }
void TRI_LoadPolysets( const char *filename, polyset_t **ppPSET, int *numpsets ) { FILE *input; float start; char name[256], tex[256]; int i, count, magic, pset = 0; triangle_t *ptri; polyset_t *pPSET; int iLevel; int exitpattern; float t; t = -FLOAT_START; *((unsigned char *)&exitpattern + 0) = *((unsigned char *)&t + 3); *((unsigned char *)&exitpattern + 1) = *((unsigned char *)&t + 2); *((unsigned char *)&exitpattern + 2) = *((unsigned char *)&t + 1); *((unsigned char *)&exitpattern + 3) = *((unsigned char *)&t + 0); if ((input = fopen(filename, "rb")) == 0) Error ("reader: could not open file '%s'", filename); iLevel = 0; fread(&magic, sizeof(int), 1, input); if (BigLong(magic) != MAGIC) Error ("%s is not a Alias object separated triangle file, magic number is wrong.", filename); pPSET = calloc( 1, POLYSET_MAXPOLYSETS * sizeof( polyset_t ) ); ptri = calloc( 1, POLYSET_MAXTRIANGLES * sizeof( triangle_t ) ); *ppPSET = pPSET; while (feof(input) == 0) { if (fread(&start, sizeof(float), 1, input) < 1) break; *(int *)&start = BigLong(*(int *)&start); if (*(int *)&start != exitpattern) { if (start == FLOAT_START) { /* Start of an object or group of objects. */ i = -1; do { /* There are probably better ways to read a string from */ /* a file, but this does allow you to do error checking */ /* (which I'm not doing) on a per character basis. */ ++i; fread( &(name[i]), sizeof( char ), 1, input); } while( name[i] != '\0' ); if ( i != 0 ) strncpy( pPSET[pset].name, name, sizeof( pPSET[pset].name ) - 1 ); else strcpy( pPSET[pset].name , "(unnamed)" ); strlwr( pPSET[pset].name ); // indent(); // fprintf(stdout,"OBJECT START: %s\n",name); fread( &count, sizeof(int), 1, input); count = BigLong(count); ++iLevel; if (count != 0) { // indent(); // fprintf(stdout,"NUMBER OF TRIANGLES: %d\n",count); i = -1; do { ++i; fread( &(tex[i]), sizeof( char ), 1, input); } while( tex[i] != '\0' ); /* if ( i != 0 ) strncpy( pPSET[pset].texname, tex, sizeof( pPSET[pset].texname ) - 1 ); else strcpy( pPSET[pset].texname, "(unnamed)" ); strlwr( pPSET[pset].texname ); */ // indent(); // fprintf(stdout," Object texture name: '%s'\n",tex); } /* Else (count == 0) this is the start of a group, and */ /* no texture name is present. */ } else if (start == FLOAT_END) { /* End of an object or group. Yes, the name should be */ /* obvious from context, but it is in here just to be */ /* safe and to provide a little extra information for */ /* those who do not wish to write a recursive reader. */ /* Mea culpa. */ --iLevel; i = -1; do { ++i; fread( &(name[i]), sizeof( char ), 1, input); } while( name[i] != '\0' ); if ( i != 0 ) strncpy( pPSET[pset].name, name, sizeof( pPSET[pset].name ) - 1 ); else strcpy( pPSET[pset].name , "(unnamed)" ); strlwr( pPSET[pset].name ); // indent(); // fprintf(stdout,"OBJECT END: %s\n",name); continue; } } // // read the triangles // if ( count > 0 ) { pPSET[pset].triangles = ptri; ReadPolysetGeometry( pPSET[0].triangles, input, count, ptri ); ptri += count; pPSET[pset].numtriangles = count; if ( ++pset >= POLYSET_MAXPOLYSETS ) { Error ("Error: too many polysets; increase POLYSET_MAXPOLYSETS\n"); } } } *numpsets = pset; fclose (input); }
char *mycmdstr(char *instr, char *fpath) { char str[256],str2[128]; int i,j,len; #if 0 char cmd[MAX_PATH+1]; #else char *cmd; #endif cmd=(char *)malloc(MAX_PATH+1); if(cmd==NULL) { display_message("malloc() Error", "Cannot allocate enough memory for the message", "gtk-dialog-error"); return(NULL); } len=strlen(instr); for(i=j=0;i<len && j<128;i++) { if(instr[i]=='%') { i++; cmd[j]=0; switch(toupper(instr[i])) { case 'F': /* File path */ strcat(cmd,fpath); break; case 'G': /* Temp directory */ if(cfg.temp_dir[0]!='\\' && cfg.temp_dir[0]!='/' && cfg.temp_dir[1]!=':') { strcpy(str,cfg.ctrl_dir); strcat(str,cfg.temp_dir); if(FULLPATH(str2,str,40)) strcpy(str,str2); backslash(str); strcat(cmd,str); } else strcat(cmd,cfg.temp_dir); break; case 'J': if(cfg.data_dir[0]!='\\' && cfg.data_dir[0]!='/' && cfg.data_dir[1]!=':') { strcpy(str,cfg.ctrl_dir); strcat(str,cfg.data_dir); if(FULLPATH(str2,str,40)) strcpy(str,str2); backslash(str); strcat(cmd,str); } else strcat(cmd,cfg.data_dir); break; case 'K': strcat(cmd,cfg.ctrl_dir); break; case 'O': /* SysOp */ strcat(cmd,cfg.sys_op); break; case 'Q': /* QWK ID */ strcat(cmd,cfg.sys_id); break; case '!': /* EXEC Directory */ strcat(cmd,cfg.exec_dir); break; case '@': /* EXEC Directory for DOS/OS2/Win32, blank for Unix */ #ifndef __unix__ strcat(cmd,cfg.exec_dir); #endif break; case '%': /* %% for percent sign */ strcat(cmd,"%"); break; case '.': /* .exe for DOS/OS2/Win32, blank for Unix */ #ifndef __unix__ strcat(cmd,".exe"); #endif break; case '?': /* Platform */ #ifdef __OS2__ strcpy(str,"OS2"); #else strcpy(str,PLATFORM_DESC); #endif strlwr(str); strcat(cmd,str); break; default: /* unknown specification */ sprintf(cmd,"ERROR Checking Command Line '%s'",instr); display_message("Command line Error",cmd,"gtk-dialog-error"); free(cmd); return(NULL); } j=strlen(cmd); } else cmd[j++]=instr[i]; } cmd[j]=0; return(cmd); }
void ProjectSupplyQuery::ExtractKeywordsFromKeywordString(char *keyword_string,vector<char *> &keywords) { UINT i; // Make the string lowercase (although it already should be) char *lbuf=new char[strlen(keyword_string)+1]; strcpy(lbuf,keyword_string); strlwr(lbuf); // Trim leading and trailing whitespace CString cstring=lbuf; cstring.TrimLeft(); cstring.TrimRight(); string cstring_string=cstring; strcpy(lbuf,cstring_string.c_str()); // Extract the keywords char *ptr=lbuf; while(strlen(ptr)>0) { // Skip past any intermediate spaces in between keywords while((*ptr==' ')) { ptr++; } bool done=true; if(strchr(ptr,' ')!=NULL) // see if there are more keywords after this keyword { done=false; *strchr(ptr,' ')='\0'; } // Check to see if this keyword is already in there bool found=false; for(i=0; i<keywords.size(); i++) { if(strcmp(keywords[i],ptr)==0) { found=true; break; } } if(!found) // if not, then add it { char *tmp_ptr=new char[strlen(ptr)+1]; strcpy(tmp_ptr,ptr); keywords.push_back(tmp_ptr); } if(done) { break; } else { ptr+=strlen(ptr)+1; } } delete [] lbuf; }
static void _pascal checkareas(char *areafile) { FILE *fp = NULL; char buffer[TEXTLEN]; char *s = NULL; int flag = 1; if ((fp = fileopen("BINKLEY;OPUS;SEADOG;BBS;",areafile)) == NULL) if ((fp = fileopen("BINKLEY;OPUS;SEADOG;BBS;","areas.bbs")) == NULL) return; if (fp != NULL) { while (fgets(buffer, TEXTLEN, fp) != NULL) { char *tag = NULL; char *path = NULL; int i = 0; if ((*buffer == '\r') || (*buffer == '\n')) continue; s = striplwhite(buffer); if ((*s == ';') || (*s == '-') || (*s == '#')) continue; if ((strchr(buffer,'!')) && flag) { char *p = strrchr(buffer,'!'); if (p != NULL) { *p = '\0'; if (origin != NULL) free(origin); origin = strdup(buffer); } flag = 0; continue; } path = strtok(s," \t"); if (path) strlwr(path); tag = strtok(NULL," \t\n"); if (tag) strlwr(tag); flag = 0; for (;i < areas; i++) if ((arealist[i].path != NULL) && (strcmp(path,arealist[i].path) == 0)) break; if (i == areas) { areas++; area = areas - 1; arealist = handle_realloc(arealist, areas * sizeof(struct _area)); memset(&(arealist[area]),0,sizeof(struct _area)); arealist[area].echomail = 1; arealist[area].description = strdup(tag); arealist[area].tag = arealist[area].description; arealist[area].path = strdup(path); if (*(arealist[area].path + strlen(arealist[area].path) - 1) == '\\') *(arealist[area].path + strlen(arealist[area].path) - 1) = '\0'; } else arealist[area].echomail = 1; } } if (fp != NULL) fclose(fp); }
//��������������������������������������������������������������������������� // WinMain //��������������������������������������������������������������������������� int APIENTRY WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ushort width = 640; ushort height = 480; int bpp = 16; screen_type scrndevice = SCREEN_DIB; dword scrnflags = 0; float gamma = 1.0f; BOOL use_dinput = FALSE; char palname[256]; strcpy(palname,"DEFAULT.PAL"); //��� Process INI { XFParseINI ini; if (!ini.open("VIEWER.INI",XF_OPEN_READ)) { char buff[256]; //��� Screen parameters if (!ini.section("Screen")) { if (!ini.read("FullScreen",buff)) { strlwr(buff); if (strstr(buff,"yes")) scrnflags |= VNGO_SET_RESOLUTION; } if (!ini.read("Device",buff)) { strlwr(buff); if (strstr(buff,"ddraw")) scrndevice = SCREEN_DDRAW; else if (strstr(buff,"d3d")) scrndevice = SCREEN_D3D; else scrndevice = SCREEN_DIB; } if (!ini.read("Resolution",buff)) { strlwr(buff); if (strstr(buff,"320x240x8")) { width = 320; height = 240; bpp = 8; } else if (strstr(buff,"640x480x8")) { width = 640; height = 480; bpp = 8; } else if (strstr(buff,"640x480x15")) { width = 640; height = 480; bpp = 15; } else if (strstr(buff,"640x480x16")) { width = 640; height = 480; bpp = 16; } } if (!ini.read("Palette",buff)) strncpy(palname,buff,sizeof(palname)); if (!ini.read("Gamma",buff)) { gamma = float(atof(buff)); if (gamma < 0.5f) gamma = 0.5f; else if (gamma > 2.0f) gamma = 2.0f; } } //��� Startup parameters if (!ini.section("Startup")) { if (!ini.read("DirectInput",buff)) { strlwr(buff); if (strstr(buff,"yes")) use_dinput = TRUE; } } } } //��� Initialize Windows //��� If we are already running, this routine will reactivate the older //��� application and return failure. if (!InitApplication (hInstance, nCmdShow, width, height)) return 1; //��� Initializes MythOS //��� Initialize the MythOS system MythOS = new MythosSystem (MYTHOS_MEM_SIZE); if (!MythOS) return 1; //��� Create the devices if (use_dinput) { Devs = new MaxDevicesDirectX (hWndClient); if (!Devs) return 1; if (!Devs->is_mouse_present() || !Devs->is_keyboard_present()) { delete Devs; Devs = new MaxDevicesWin32 (hWndClient); } } else Devs = new MaxDevicesWin32 (hWndClient); if (!Devs) return 1; //��� Finish MythOS initialization if (MythOS->init (MYTHOS_ESCHER_ARENA_SIZE, MYTHOS_ESCHER_SORT_SIZE, 0)) return 1; MythOS->Vangogh.set_gamma(gamma); //��� Install Fonts if (gberg_install_font("ARIAL-15.IFF", 0)) return 1; //��� Setup palette and screen manager for(;;) { if (Palette) { delete Palette; Palette = 0; } if (Screen) { delete Screen; Screen = 0; } //��� Create palette switch (bpp) { case 8: Palette = new VngoPal8; break; case 15: Palette = new VngoPal15; break; case 16: Palette = new VngoPal16; break; } if (!Palette || Palette->init(0,palname)) return 1; //��� Create screen manager switch (scrndevice) { case SCREEN_DIB: Screen = new VngoDIB(hWndClient); break; case SCREEN_DDRAW: Screen = new VngoDirectDraw(hWndClient); break; case SCREEN_D3D: Screen = new VngoDirect3D(hWndClient); scrnflags |= VNGO_3DDEVICE | VNGO_ALLOC_ZBUFFER; break; } if (!Screen || Screen->get_initstate()) return 1; VNGError err = Screen->set_mode (width, height, (bpp == 8) ? 8 : 16, Palette, scrnflags); if (err == VNGO_NO_ERROR) break; else if (err == VNGO_NEEDS_PAL8) bpp = 8; else if (err == VNGO_NEEDS_PAL15) bpp = 15; else if (err == VNGO_NEEDS_PAL16) bpp = 16; else return 1; } //��� Create viewport switch (scrndevice) { case SCREEN_DIB: if (bpp == 8) { Vport = new VngoVportDB8(width,height, ((VngoDIB*)Screen)->gmap,0,Palette, VNGO_ZBUFFER_DEV); } else { Vport = new VngoVportDB16(width,height, ((VngoDIB*)Screen)->gmap,0,Palette, VNGO_ZBUFFER_DEV); } break; case SCREEN_DDRAW: if (bpp == 8) { Vport = new VngoVportDD8(((VngoDirectDraw*)Screen)->SurfaceManager, 0, Palette, VNGO_ZBUFFER_DEV); } else { Vport = new VngoVportDD16(((VngoDirectDraw*)Screen)->SurfaceManager, 0, Palette, VNGO_ZBUFFER_DEV); } break; case SCREEN_D3D: { VngoRect rct(0,0,width,height); Vport = new VngoVportD3D(rct, Palette, VNGO_ZBUFFER_DEV, Screen); } break; } if (!Vport) return 1; gberg_color(Palette->get_index(VngoColor24bit(255,255,255)), VNGO_TRANSPARENT); //��� Create viewer application instance Viewer *view = new Viewer; if (!view || !view->create()) return 1; //��� Main Loop while (PumpWindows()) { Devs->update(); view->process_events(); view->render(); Screen->flip(); } //��� Destroy viewer application delete view; //����������������������������������������������������������� Termination if (Vport) { delete Vport; Vport=0; } if (Palette) { delete Palette; Palette=0; } if (Screen) { delete Screen; Screen=0; } if (Devs) { delete Devs; Devs=0; } if (MythOS) { delete MythOS; MythOS=0; } return 0; }
static void _pascal parsemail(char *keyword, char *value) { char *s = value; char *e = NULL; AREA *t; AREA a; check(username); memset(&a,0,sizeof a); switch (tolower(*keyword)) { /* one letter is enough for now */ default : case 'f' : a.msgtype = FIDO; break; case 'q' : a.msgtype = QUICK; break; } while (*s && isspace(*s)) s++; if (!*s) return; switch (tolower(*s)) { /* one letter is enough */ case 'n' : a.news = 1; break; case 'u' : a.uucp = 1; break; case 'm' : a.netmail = 1; break; case 'e' : a.echomail = 1; break; case 'l' : default : a.local = 1; break; } while (*s && !isspace(*s)) s++; /* skip the rest */ while (*s && isspace(*s)) s++; if (!*s) return; if (*s != '\"') { while (*s && !isspace(*s)) { switch (tolower(*s)) { case 'p' : a.priv = 1; break; case 'h' : a.hold = 1; break; case 'd' : a.direct = 1; break; case 'c' : a.crash = 1; break; case 'k' : a.killsent = 1; break; case 0 : return; } s++; } while (*s && isspace(*s)) s++; if (!*s) return; } if ((e = strchr(++s,'\"')) == NULL) return; *e++ = '\0'; a.description = strdup(s); s = e; while (*s && isspace(*s)) s++; if (!*s) { free(a.description); return; } if ((e = strchr(s,' ')) == NULL) e = strchr(s,'\t'); if (e == NULL) e = s; else *e++ = '\0'; while (*s && isspace(*s)) s++; if (!*s) { free(a.description); return; } switch (a.msgtype) { default : case FIDO : a.path = strdup(strlwr(s)); break; case QUICK : a.board = atoi(s); break; } if (a.msgtype == FIDO) { if (chdir(a.path) != 0) { free(a.path); free(a.description); return; } else setcwd(home); } if (a.echomail) { s = e; while (*s && isspace(*s)) s++; if (s && *s) a.tag = strdup(s); else a.tag = NULL; } for (area = 0; area < areas; area++) { /* this is a sneaky use of the ternary operator */ if (((a.msgtype == QUICK) && (arealist[area].msgtype == QUICK))? (a.board == arealist[area].board): (strcmp(a.path,arealist[area].path)==0)) { arealist[area].priv |= a.priv; arealist[area].hold |= a.hold; arealist[area].direct |= a.direct; arealist[area].crash |= a.crash; arealist[area].killsent |= a.killsent; arealist[area].news |= a.news; arealist[area].echomail |= a.echomail; arealist[area].uucp |= a.uucp; arealist[area].netmail |= a.netmail; arealist[area].local |= a.local; if (arealist[area].description == NULL) arealist[area].description = a.description; else if (a.description) free(a.description); if (arealist[area].tag == NULL) arealist[area].tag = a.tag; else if (a.tag) free(a.tag); if ((a.msgtype == FIDO) && (a.path)) free(a.path); return; } } areas++; area = areas - 1; check(username); if (arealist == NULL) arealist = handle_malloc(areas * sizeof(struct _area)); else { check(username); arealist = handle_realloc(arealist, areas * sizeof(struct _area)); check(username); } check(username); if (arealist == NULL) outamemory(); check(username); checkp(arealist); t = arealist + area; checkp(t); checkp(arealist); check(username); *t = a; checkp(t); check(username); }
static BOOL CALLBACK TlenAdvOptDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { char text[256]; BOOL bChecked; switch (msg) { case WM_INITDIALOG: { DBVARIANT dbv; TranslateDialogDefault(hwndDlg); if (!DBGetContactSetting(NULL, jabberProtoName, "LoginServer", &dbv)) { SetDlgItemText(hwndDlg, IDC_EDIT_LOGIN_SERVER, dbv.pszVal); DBFreeVariant(&dbv); } else { SetDlgItemText(hwndDlg, IDC_EDIT_LOGIN_SERVER, "tlen.pl"); } CheckDlgButton(hwndDlg, IDC_USE_SSL, DBGetContactSettingByte(NULL, jabberProtoName, "UseSSL", FALSE)); EnableWindow(GetDlgItem(hwndDlg, IDC_HOST), TRUE); EnableWindow(GetDlgItem(hwndDlg, IDC_HOSTPORT), TRUE); if (!DBGetContactSetting(NULL, jabberProtoName, "ManualHost", &dbv)) { SetDlgItemText(hwndDlg, IDC_HOST, dbv.pszVal); DBFreeVariant(&dbv); } else SetDlgItemText(hwndDlg, IDC_HOST, "s1.tlen.pl"); SetDlgItemInt(hwndDlg, IDC_HOSTPORT, DBGetContactSettingWord(NULL, jabberProtoName, "ManualPort", TLEN_DEFAULT_PORT), FALSE); CheckDlgButton(hwndDlg, IDC_KEEPALIVE, DBGetContactSettingByte(NULL, jabberProtoName, "KeepAlive", TRUE)); CheckDlgButton(hwndDlg, IDC_VISIBILITY_SUPPORT, DBGetContactSettingByte(NULL, jabberProtoName, "VisibilitySupport", FALSE)); // File transfer options bChecked = FALSE; if (DBGetContactSettingByte(NULL, jabberProtoName, "UseFileProxy", FALSE) == TRUE) { bChecked = TRUE; CheckDlgButton(hwndDlg, IDC_FILE_USE_PROXY, TRUE); } EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_TYPE_LABEL), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_TYPE), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_HOST_LABEL), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_HOST), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_PORT_LABEL), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_PORT), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_USE_AUTH), bChecked); if (DBGetContactSettingByte(NULL, jabberProtoName, "FileProxyAuth", FALSE) == TRUE) { CheckDlgButton(hwndDlg, IDC_FILE_PROXY_USE_AUTH, TRUE); } else { bChecked = FALSE; } EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_USER_LABEL), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_USER), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_PASSWORD_LABEL), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_PASSWORD), bChecked); SendDlgItemMessage(hwndDlg, IDC_FILE_PROXY_TYPE, CB_ADDSTRING, 0, (LPARAM)Translate("Forwarding")); SendDlgItemMessage(hwndDlg, IDC_FILE_PROXY_TYPE, CB_ADDSTRING, 0, (LPARAM)Translate("SOCKS4")); SendDlgItemMessage(hwndDlg, IDC_FILE_PROXY_TYPE, CB_ADDSTRING, 0, (LPARAM)Translate("SOCKS5")); SendDlgItemMessage(hwndDlg, IDC_FILE_PROXY_TYPE, CB_SETCURSEL, DBGetContactSettingWord(NULL, jabberProtoName, "FileProxyType", 0), 0); if (!DBGetContactSetting(NULL, jabberProtoName, "FileProxyHost", &dbv)) { SetDlgItemText(hwndDlg, IDC_FILE_PROXY_HOST, dbv.pszVal); DBFreeVariant(&dbv); } SetDlgItemInt(hwndDlg, IDC_FILE_PROXY_PORT, DBGetContactSettingWord(NULL, jabberProtoName, "FileProxyPort", 0), FALSE); if (!DBGetContactSetting(NULL, jabberProtoName, "FileProxyUsername", &dbv)) { SetDlgItemText(hwndDlg, IDC_FILE_PROXY_USER, dbv.pszVal); DBFreeVariant(&dbv); } if (!DBGetContactSetting(NULL, jabberProtoName, "FileProxyPassword", &dbv)) { CallService(MS_DB_CRYPT_DECODESTRING, strlen(dbv.pszVal)+1, (LPARAM) dbv.pszVal); SetDlgItemText(hwndDlg, IDC_FILE_PROXY_PASSWORD, dbv.pszVal); DBFreeVariant(&dbv); } return TRUE; } case WM_COMMAND: { switch (LOWORD(wParam)) { case IDC_FILE_PROXY_TYPE: if (HIWORD(wParam) == CBN_SELCHANGE) SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; case IDC_EDIT_LOGIN_SERVER: case IDC_HOST: case IDC_HOSTPORT: case IDC_FILE_PROXY_HOST: case IDC_FILE_PROXY_PORT: case IDC_FILE_PROXY_USER: case IDC_FILE_PROXY_PASSWORD: if ((HWND)lParam==GetFocus() && HIWORD(wParam)==EN_CHANGE) SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; case IDC_FILE_USE_PROXY: bChecked = IsDlgButtonChecked(hwndDlg, IDC_FILE_USE_PROXY); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_TYPE_LABEL), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_TYPE), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_HOST_LABEL), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_HOST), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_PORT_LABEL), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_PORT), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_USE_AUTH), bChecked); case IDC_FILE_PROXY_USE_AUTH: bChecked = IsDlgButtonChecked(hwndDlg, IDC_FILE_PROXY_USE_AUTH) & IsDlgButtonChecked(hwndDlg, IDC_FILE_USE_PROXY); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_USER_LABEL), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_USER), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_PASSWORD_LABEL), bChecked); EnableWindow(GetDlgItem(hwndDlg, IDC_FILE_PROXY_PASSWORD), bChecked); SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; case IDC_KEEPALIVE: case IDC_VISIBILITY_SUPPORT: SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; default: // SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; } } break; case WM_NOTIFY: { switch (((LPNMHDR) lParam)->code) { case PSN_APPLY: { WORD port; BOOL reconnectRequired = FALSE; DBVARIANT dbv; GetDlgItemText(hwndDlg, IDC_EDIT_LOGIN_SERVER, text, sizeof(text)); if (DBGetContactSetting(NULL, jabberProtoName, "LoginServer", &dbv) || strcmp(text, dbv.pszVal)) reconnectRequired = TRUE; if (dbv.pszVal != NULL) DBFreeVariant(&dbv); DBWriteContactSettingString(NULL, jabberProtoName, "LoginServer", strlwr(text)); DBWriteContactSettingByte(NULL, jabberProtoName, "UseSSL", (BYTE) IsDlgButtonChecked(hwndDlg, IDC_USE_SSL)); GetDlgItemText(hwndDlg, IDC_HOST, text, sizeof(text)); if (DBGetContactSetting(NULL, jabberProtoName, "ManualHost", &dbv) || strcmp(text, dbv.pszVal)) reconnectRequired = TRUE; if (dbv.pszVal != NULL) DBFreeVariant(&dbv); DBWriteContactSettingString(NULL, jabberProtoName, "ManualHost", text); port = (WORD) GetDlgItemInt(hwndDlg, IDC_HOSTPORT, NULL, FALSE); if (DBGetContactSettingWord(NULL, jabberProtoName, "ManualPort", TLEN_DEFAULT_PORT) != port) reconnectRequired = TRUE; DBWriteContactSettingWord(NULL, jabberProtoName, "ManualPort", port); DBWriteContactSettingByte(NULL, jabberProtoName, "KeepAlive", (BYTE) IsDlgButtonChecked(hwndDlg, IDC_KEEPALIVE)); jabberSendKeepAlive = IsDlgButtonChecked(hwndDlg, IDC_KEEPALIVE); DBWriteContactSettingByte(NULL, jabberProtoName, "VisibilitySupport", (BYTE) IsDlgButtonChecked(hwndDlg, IDC_VISIBILITY_SUPPORT)); // File transfer options DBWriteContactSettingByte(NULL, jabberProtoName, "UseFileProxy", (BYTE) IsDlgButtonChecked(hwndDlg, IDC_FILE_USE_PROXY)); DBWriteContactSettingWord(NULL, jabberProtoName, "FileProxyType", (WORD) SendDlgItemMessage(hwndDlg, IDC_FILE_PROXY_TYPE, CB_GETCURSEL, 0, 0)); GetDlgItemText(hwndDlg, IDC_FILE_PROXY_HOST, text, sizeof(text)); DBWriteContactSettingString(NULL, jabberProtoName, "FileProxyHost", text); DBWriteContactSettingWord(NULL, jabberProtoName, "FileProxyPort", (WORD) GetDlgItemInt(hwndDlg, IDC_FILE_PROXY_PORT, NULL, FALSE)); DBWriteContactSettingByte(NULL, jabberProtoName, "FileProxyAuth", (BYTE) IsDlgButtonChecked(hwndDlg, IDC_FILE_PROXY_USE_AUTH)); GetDlgItemText(hwndDlg, IDC_FILE_PROXY_USER, text, sizeof(text)); DBWriteContactSettingString(NULL, jabberProtoName, "FileProxyUsername", text); GetDlgItemText(hwndDlg, IDC_FILE_PROXY_PASSWORD, text, sizeof(text)); CallService(MS_DB_CRYPT_ENCODESTRING, sizeof(text), (LPARAM) text); DBWriteContactSettingString(NULL, jabberProtoName, "FileProxyPassword", text); if (reconnectRequired && jabberConnected) MessageBox(hwndDlg, Translate("These changes will take effect the next time you connect to the Tlen network."), Translate("Tlen Protocol Option"), MB_OK|MB_SETFOREGROUND); return TRUE; } } } break; case WM_DESTROY: break; } return FALSE; }
static void _pascal parseconfig(FILE *fp) { char buffer[TEXTLEN]; char *keyword = NULL; char *value = NULL; char *s = NULL; memset(buffer, 0, TEXTLEN); while (!feof(fp)) { if (fgets(buffer, TEXTLEN, fp) == NULL) return; keyword = strtok(buffer, " \t\n\r"); if (keyword) strlwr(keyword); else continue; if ((*keyword) == ';') continue; value = strtok(NULL, ";\n\r"); if (value != NULL) { s = value + strlen(value) - 1; while ((s > value) && isspace(*s)) *s-- = '\0'; } while (value && *value && isspace(*value)) if ((*value == '\n') || (*value == ';')) break; else value++; if (strcmp("attribution", keyword) == 0) { free(attribline); if (value) attribline = strdup(value); else attribline = NULL; continue; } if (!value) continue; if (strcmp("name",keyword) == 0) { check(value); username = strdup(value); check(username); } else if (strcmp("include", keyword) == 0) { FILE *ifp; if ((ifp = fopen(value,"rt")) != NULL) { parseconfig(ifp); fclose(ifp); } } else if (strcmp("outfile", keyword) == 0) { free(outfile); outfile = strdup(value); } else if (strcmp("uucp", keyword) == 0) { uucp_gate = parsenode(value); uucp_gate.notfound = 0; } else if (strcmp("lastread", keyword) == 0) { free(lastread); lastread = strdup(value); } else if (strcmp("tosslog", keyword) == 0) { free(confmail); confmail = strdup(value); } #ifndef NOSPELL else if (strcmp("speller", keyword) == 0) { free(speller); speller = strdup(value); } #endif else if (strcmp("quickbbs", keyword) == 0) { int i; if (quickbbs != NULL) free(quickbbs); quickbbs = strdup(value); i = strlen(quickbbs); if ((*(quickbbs + i - 1) != '\\') && (*(quickbbs + i - 1) != '/')) { char *s = calloc(1,i+2); strcat(strcpy(s,quickbbs),"/"); free(quickbbs); quickbbs = strdup(s); free(s); } } else if (strcmp("video",keyword) == 0) { if (value) strlwr(value); if (strncmp(value,"direct",6) == 0) videomethod = DIRECT; else if (strncmp(value,"bios",4) == 0) videomethod = BIOS; else if (strncmp(value,"fossil",6) == 0) videomethod = FOSSIL; else if (strncmp(value,"ansi",4) == 0) videomethod = ANSI; } else if (strcmp("gate",keyword) == 0) { if (gate == 7) gate = 0; if (value) strlwr(value); if (strncmp(value,"zones",5) == 0) gate |= GZONES; else if (strncmp(value,"domains",7) == 0) gate |= GDOMAINS; else if (strncmp(value,"both",4) == 0) gate = GDOMAINS | GZONES; else if (strncmp(value,"none",4) == 0) gate = 0; } else if (strcmp("function",keyword) == 0) { int i; char *s; i = (int) strtol(value,&s,0); s = striplwhite(s); if ((i >= 0) && (i <= 40)) macros[i] = parse_macro(s); } else if (strcmp("userlist", keyword) == 0) { fidolist = strdup(strtok(value,",\n")); if ((userlist = strtok(NULL,",\n")) != NULL) userlist = strdup(userlist); } else if (strcmp("address", keyword) == 0) { if (alias == NULL) { alias = (ADDRESS *) calloc(1, sizeof(ADDRESS)); aliascount = 1; } else alias = (ADDRESS *) realloc(alias,++aliascount * sizeof(ADDRESS)); alias[aliascount - 1] = parsenode(value); } else if (strcmp("videoseg", keyword) == 0) vbase = (int) strtol(value,NULL,0); else if (strcmp("privatenet", keyword) == 0) pointnet = (int) strtol(value,NULL,0); else if (strcmp("maxx", keyword) == 0) maxx = (int) strtol(value,NULL,0); else if (strcmp("maxy", keyword) == 0) maxy = (int) strtol(value,NULL,0); else if (strcmp("tabsize", keyword) == 0) tabsize = (int) strtol(value,NULL,0); else if (strcmp("right", keyword) == 0) rm = (int) strtol(value,NULL,0); else if (strcmp("quoteright", keyword) == 0) qm = (int) strtol(value,NULL,0); else if (strcmp("no",keyword) == 0) { if (value) strlwr(value); softcr ^= (strcmp("softcr", value) == 0); seenbys ^= (strcmp("seen-bys", value) == 0); tearline ^= (strcmp("tearline", value) == 0); shownotes ^= (strcmp("shownotes", value) == 0); confirmations ^= (strcmp("confirm", value) == 0); msgids ^= (strcmp("msgids",value) == 0); stripnotes ^= (strcmp("strip",value) == 0); opusdate ^= (strcmp("opusdate",value) == 0); swapping ^= (strcmp("swapping",value) == 0); } else if (!(strcmp("editkey", keyword))||!(strcmp("readkey",keyword))) { /*WRA*/ int scancode; if (value) { strlwr(value); scancode = (int) strtol(value,&value,0); value = striplwhite(value); } if (*keyword == 'e') e_assignkey(scancode,value); else r_assignkey(scancode,value); } else if (strcmp("quote", keyword) == 0) { char *s; if (quotestr != NULL) free(quotestr); s = quotestr = strdup(value); while (*s) { *s = (*s == (char) '_')?(char)' ':*s; s++; } } else if (strcmp("origin", keyword) == 0) { if (origin != NULL) free(origin); origin = strdup(value); } else if ((strcmp("quick", keyword) == 0) || (strcmp("fido", keyword) == 0)) { parsemail(keyword,value); } else if (strcmp("color", keyword) == 0) { keyword = strtok(value," \t"); value = strtok(NULL,"\0"); set_colors(keyword,value); } memset(buffer, 0, TEXTLEN); } }
int GetScriptInfo(char *name) { FILE *fp; char buffer[256]; char tempbuff[256]; char delims[] = {" \t,\n"}; printf("Opening script file %s.\n", name); if (fp = fopen(name, "r")) { while(fgets(buffer, 256, fp)) { if (strncmp(buffer, "//", 2) && strncmp(buffer, "\n", 1)) { strupr(buffer); strcpy(tempbuff, buffer); if (strcmp(strtok(tempbuff, delims), "OUTPUT") == 0) { strcpy(out.name, strtok(NULL, delims)); strlwr(out.name); } strcpy(tempbuff, buffer); if (strcmp(strtok(tempbuff, delims), "SOURCEDIR") == 0) { strcpy(tempbuff, strtok(NULL, delims)); strcpy(sourcedir, ExpandPathAndArchive(tempbuff)); } strcpy(tempbuff, buffer); if (strcmp(strtok(tempbuff, delims), "DOSORT") == 0) dosort = 1; strcpy(tempbuff, buffer); if (strcmp(strtok(tempbuff, delims), "XCHARSIZE") == 0) xcharsize = strtol(strtok(NULL, delims), NULL, 0); strcpy(tempbuff, buffer); if (strcmp(strtok(tempbuff, delims), "YCHARSIZE") == 0) ycharsize = strtol(strtok(NULL, delims), NULL, 0); strcpy(tempbuff, buffer); if (strcmp(strtok(tempbuff, delims), "OUTSCRIPT") == 0) { strcpy(outscript, strtok(NULL, delims)); strlwr(outscript); } strcpy(tempbuff, buffer); if (strcmp(strtok(tempbuff, delims), "OUTUSAGE") == 0) strcpy(outusage, strtok(NULL, delims)); strcpy(tempbuff, buffer); if (strcmp(strtok(tempbuff, delims), "POS") == 0) { out.w = strtol(strtok(NULL, delims), NULL, 0); out.h = strtol(strtok(NULL, delims), NULL, 0); } strcpy(tempbuff, buffer); if (strcmp(strtok(tempbuff, delims), "FILE") == 0) { strcpy(in[filenum].name, strtok(NULL, delims)); in[filenum].x = strtol(strtok(NULL, delims), NULL, 0); in[filenum].y = strtol(strtok(NULL, delims), NULL, 0); in[filenum].col = strtol(strtok(NULL, delims), NULL, 0); filenum++; } } } fclose(fp); return(true); } else { printf("ERROR : Could not open script file.\n"); return(false); } }
void _pascal opening(char *cfgfile, char *areafile) { FILE *fp = NULL; int count = 0,i; char tmp[PATHLEN]; init(); video_init(); /* start looking for the config file... */ if ((fp = fileopen("BINKLEY;OPUS;SEADOG;BBS;",cfgfile)) == NULL) if ((fp = fileopen("BINKLEY;OPUS;SEADOG;BBS","msged.cfg")) == NULL) settings(); if (fp) { parseconfig(fp); if (videomethod != BIOS) video_init(); } if (opusdate) fidozone = NO; for (i = 0; i < 40; i++) count += (macros[i] != (void *) NULL)?1:0; if (fp != NULL) fclose(fp); rm = (rm > maxx)?maxx:rm; qm = (qm > rm)?rm - 5 - strlen(quotestr):qm; colors.quote = (colors.quote)?colors.quote:colors.normal; checkareas(areafile); set_color(colors.normal); cls(); gotoxy(6, 9); set_color(colors.hilite); bputs("msged FTS Compatible Mail Editor"); set_color(colors.normal); gotoxy(6, 11); bputs("version " VERSION " PUBLIC DOMAIN by Jim Nutt"); gotoxy(6,13); bprintf("%d by %d ",maxx,maxy); bputs((videomethod==DIRECT)?"direct video":(videomethod==BIOS)?"bios video":(videomethod==ANSI)?"ansi video":"fossil video"); gotoxy(6, 15); bprintf("%s at %s", username, show_address(thisnode)); if (aliascount > 1) bprintf(" (primary)"); if (thisnode.point) bprintf(" (private net %d/%d)", pointnet, thisnode.point); if (origin != NULL) { gotoxy(6,16); bputs(origin); gotoxy(6,18); } else gotoxy(6,17); bprintf("%d message areas found", areas); gotoxy(6,wherey() + 1); bprintf("%d macros defined",count); getcwd(tmp,PATHLEN); if (tmp) strlwr(tmp); home = strdup(tmp); gotoxy(6,wherey() + 2); bprintf("home directory is %s",home); if (arealist == NULL) { puts("Oops! at least one message area must be defined."); puts("Exiting..."); exit(0); } }
HACCEL uikeyboard_create_accelerator_table(void) { FILE *fshortcuts; char *complete_path; char buffer[1000]; char *p, *menustr, *metastr, *keystr, *displaystr; int i; accelnum = 0; menuitemmodifier_len = 0; for (i = 0; idmlist[i].str != NULL; i++) { if (idmlist[i].cmd >= menuitemmodifier_len) { menuitemmodifier_len = idmlist[i].cmd + 1; } } menuitemmodifier = lib_calloc(menuitemmodifier_len, sizeof(char*)); memset(menuitemmodifier, 0, menuitemmodifier_len * sizeof(char*)); fshortcuts = sysfile_open("win_shortcuts.vsc", &complete_path, MODE_READ_TEXT); lib_free(complete_path); if (fshortcuts == NULL) { log_error(LOG_DEFAULT, "Warning. Cannot open keyboard shortcut file win_shortcuts.vsc."); return NULL; } /* read the shortcut table */ do { buffer[0] = 0; if (fgets(buffer, 999, fshortcuts)) { if (strlen(buffer) == 0) { break; } buffer[strlen(buffer) - 1] = 0; /* remove newline */ /* remove comments */ if ((p = strchr(buffer, '#'))) { *p = 0; } metastr = strtok(buffer, " \t:"); keystr = strtok(NULL, " \t:"); menustr = strtok(NULL, " \t:"); displaystr = strtok(NULL, " \t:"); if (displaystr && (p = strchr(displaystr, '#'))) { *p = 0; } if (metastr && keystr && menustr) { for (i = 0; idmlist[i].str; i++) { if (strcmp(idmlist[i].str, menustr) == 0) { break; } } if (idmlist[i].str) { ACCEL accel; accel.fVirt = FVIRTKEY | FNOINVERT; if (strstr(strlwr(metastr), "shift") != NULL) { accel.fVirt |= FSHIFT; } if (strstr(strlwr(metastr), "ctrl") != NULL) { accel.fVirt |= FCONTROL; } if (strstr(strlwr(metastr), "alt") != NULL) { accel.fVirt |= FALT; } if (keystr[0] == '\'' && keystr[2] == '\'') { accel.key = keystr[1]; if (displaystr == NULL || displaystr[0] == 0) { displaystr = keystr + 1; keystr[2] = 0; } } else { accel.key = (unsigned short)strtol(keystr, NULL, 0); } accel.cmd = idmlist[i].cmd; if (accel.key > 0 && accel.cmd > 0 && accelnum < MAXACCEL) { accellist[accelnum++] = accel; } if (displaystr != NULL && menuitemmodifier[accel.cmd] == NULL) { p = util_concat("\t", ((accel.fVirt & FSHIFT ) ? "Shift+" : ""), ((accel.fVirt & FCONTROL) ? "Ctrl+" : ""), ((accel.fVirt & FALT) ? "Alt+" : ""), displaystr, NULL); menuitemmodifier[accel.cmd] = p; } } } } } while (!feof(fshortcuts)); fclose(fshortcuts); return CreateAcceleratorTable(accellist, accelnum); }
int main(int argc, char **argv) { char *name; #ifdef _MSC_VER // Send all reports to STDOUT _CrtSetReportMode( _CRT_WARN, _CRTDBG_MODE_FILE ); _CrtSetReportFile( _CRT_WARN, _CRTDBG_FILE_STDOUT ); _CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_FILE ); _CrtSetReportFile( _CRT_ERROR, _CRTDBG_FILE_STDOUT ); _CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE ); _CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDOUT ); #endif #ifdef __DJGPP__ if (--argc <= 0) return 1; if ((name = strrchr(argv[0], '/'))) strcpy(name + 1, argv[1]); name = argv[1]; argv[1] = argv[0]; argv++; #else if (!argv[0]) name = "john"; else if ((name = strrchr(argv[0], '/'))) name++; #if defined(__CYGWIN32__) || defined (__MINGW32__) || defined (_MSC_VER) else if ((name = strrchr(argv[0], '\\'))) name++; #endif else name = argv[0]; #endif #if defined(__CYGWIN32__) || defined (__MINGW32__) || defined (_MSC_VER) strlwr(name); if (strlen(name) > 4 && !strcmp(name + strlen(name) - 4, ".exe")) name[strlen(name) - 4] = 0; #endif if (!strcmp(name, "unshadow")) { CPU_detect_or_fallback(argv, 0); return unshadow(argc, argv); } if (!strcmp(name, "unafs")) { CPU_detect_or_fallback(argv, 0); return unafs(argc, argv); } if (!strcmp(name, "undrop")) { CPU_detect_or_fallback(argv, 0); return undrop(argc, argv); } if (!strcmp(name, "unique")) { CPU_detect_or_fallback(argv, 0); return unique(argc, argv); } #ifndef _MSC_VER if (!strcmp(name, "ssh2john")) { CPU_detect_or_fallback(argv, 0); return ssh2john(argc, argv); } if (!strcmp(name, "keepass2john")) { CPU_detect_or_fallback(argv, 0); return keepass2john(argc, argv); } if (!strcmp(name, "keychain2john")) { CPU_detect_or_fallback(argv, 0); return keychain2john(argc, argv); } if (!strcmp(name, "rar2john")) { CPU_detect_or_fallback(argv, 0); return rar2john(argc, argv); } if (!strcmp(name, "racf2john")) { CPU_detect_or_fallback(argv, 0); return racf2john(argc, argv); } if (!strcmp(name, "pwsafe2john")) { CPU_detect_or_fallback(argv, 0); return pwsafe2john(argc, argv); } #endif #ifdef HAVE_NSS if (!strcmp(name, "mozilla2john")) { CPU_detect_or_fallback(argv, 0); return mozilla2john(argc, argv); } #endif if (!strcmp(name, "pdf2john")) { CPU_detect_or_fallback(argv, 0); return pdf2john(argc, argv); } if (!strcmp(name, "zip2john")) { CPU_detect_or_fallback(argv, 0); return zip2john(argc, argv); } if (!strcmp(name, "hccap2john")) { CPU_detect_or_fallback(argv, 0); return hccap2john(argc, argv); } #ifdef HAVE_MPI mpi_setup(argc, argv); #endif john_init(name, argc, argv); /* --max-run-time disregards load times */ timer_abort = options.max_run_time + 1; john_run(); john_done(); #ifdef _MSC_VER _CrtDumpMemoryLeaks(); #endif return exit_status; }