Changeset 108 for trunk/src/helpers/apps.c
- Timestamp:
- Oct 13, 2001, 7:57:58 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/helpers/apps.c
r105 r108 476 476 /* ****************************************************************** 477 477 * 478 * Application start478 * Application information 479 479 * 480 480 ********************************************************************/ 481 482 /*483 *@@ CallBatchCorrectly:484 * fixes the specified PROGDETAILS for485 * command files in the executable part486 * by inserting /C XXX into the parameters487 * and setting the executable according488 * to an environment variable.489 *490 *@@added V0.9.6 (2000-10-16) [umoeller]491 *@@changed V0.9.7 (2001-01-15) [umoeller]: now using XSTRING492 *@@changed V0.9.12 (2001-05-27) [umoeller]: moved from winh.c to apps.c493 */494 495 VOID CallBatchCorrectly(PPROGDETAILS pProgDetails,496 PXSTRING pstrParams, // in/out: modified parameters (reallocated)497 const char *pcszEnvVar, // in: env var spec'g command proc498 // (e.g. "OS2_SHELL"); can be NULL499 const char *pcszDefProc) // in: def't command proc (e.g. "CMD.EXE")500 {501 // XXX.CMD file as executable:502 // fix args to /C XXX.CMD503 504 PSZ pszOldParams = NULL;505 ULONG ulOldParamsLength = pstrParams->ulLength;506 if (ulOldParamsLength)507 // we have parameters already:508 // make a backup... we'll append that later509 pszOldParams = strdup(pstrParams->psz);510 511 // set new params to "/C filename.cmd"512 xstrcpy(pstrParams, "/C ", 0);513 xstrcat(pstrParams,514 pProgDetails->pszExecutable,515 0);516 517 if (pszOldParams)518 {519 // .cmd had params:520 // append space and old params521 xstrcatc(pstrParams, ' ');522 xstrcat(pstrParams,523 pszOldParams,524 ulOldParamsLength);525 free(pszOldParams);526 }527 528 // set executable to $(OS2_SHELL)529 pProgDetails->pszExecutable = NULL;530 if (pcszEnvVar)531 pProgDetails->pszExecutable = getenv(pcszEnvVar);532 if (!pProgDetails->pszExecutable)533 pProgDetails->pszExecutable = (PSZ)pcszDefProc;534 // should be on PATH535 }536 481 537 482 /* … … 557 502 * -- PROG_VDD 558 503 * 559 * -- PROG_XWP_DLL: new apptype defined in winh.h for 560 * dynamic link libraries. 504 * -- PROG_DLL 561 505 * 562 506 * -- PROG_WINDOWEDVDM … … 590 534 else if ((_ulDosAppType & 0xF0) == FAPPTYP_DLL) // 0x10) 591 535 // DLL bit set 592 *pulWinAppType = PROG_ XWP_DLL;536 *pulWinAppType = PROG_DLL; 593 537 else if (_ulDosAppType & FAPPTYP_DOS) // 0x20) 594 538 // DOS bit set? … … 611 555 612 556 /* 557 *@@ appDescribeAppType: 558 * returns a "PROG_*" string for the given 559 * program type. Useful for WPProgram setup 560 * strings and such. 561 * 562 *@@added V0.9.16 (2001-10-06) 563 */ 564 565 PCSZ appDescribeAppType(PROGCATEGORY progc) // in: from PROGDETAILS.progc 566 { 567 switch (progc) 568 { 569 case PROG_DEFAULT: return "PROG_DEFAULT"; 570 case PROG_FULLSCREEN: return "PROG_FULLSCREEN"; 571 case PROG_WINDOWABLEVIO: return "PROG_WINDOWABLEVIO"; 572 case PROG_PM: return "PROG_PM"; 573 case PROG_GROUP: return "PROG_GROUP"; 574 case PROG_VDM: return "PROG_VDM"; 575 // same as case PROG_REAL: return "PROG_REAL"; 576 case PROG_WINDOWEDVDM: return "PROG_WINDOWEDVDM"; 577 case PROG_DLL: return "PROG_DLL"; 578 case PROG_PDD: return "PROG_PDD"; 579 case PROG_VDD: return "PROG_VDD"; 580 case PROG_WINDOW_REAL: return "PROG_WINDOW_REAL"; 581 case PROG_30_STD: return "PROG_30_STD"; 582 // same as case PROG_WINDOW_PROT: return "PROG_WINDOW_PROT"; 583 case PROG_WINDOW_AUTO: return "PROG_WINDOW_AUTO"; 584 case PROG_30_STDSEAMLESSVDM: return "PROG_30_STDSEAMLESSVDM"; 585 // same as case PROG_SEAMLESSVDM: return "PROG_SEAMLESSVDM"; 586 case PROG_30_STDSEAMLESSCOMMON: return "PROG_30_STDSEAMLESSCOMMON"; 587 // same as case PROG_SEAMLESSCOMMON: return "PROG_SEAMLESSCOMMON"; 588 case PROG_31_STDSEAMLESSVDM: return "PROG_31_STDSEAMLESSVDM"; 589 case PROG_31_STDSEAMLESSCOMMON: return "PROG_31_STDSEAMLESSCOMMON"; 590 case PROG_31_ENHSEAMLESSVDM: return "PROG_31_ENHSEAMLESSVDM"; 591 case PROG_31_ENHSEAMLESSCOMMON: return "PROG_31_ENHSEAMLESSCOMMON"; 592 case PROG_31_ENH: return "PROG_31_ENH"; 593 case PROG_31_STD: return "PROG_31_STD"; 594 595 // Warp 4 toolkit defines, whatever these were designed for... 596 #ifndef PROG_DOS_GAME 597 #define PROG_DOS_GAME (PROGCATEGORY)21 598 #endif 599 #ifndef PROG_WIN_GAME 600 #define PROG_WIN_GAME (PROGCATEGORY)22 601 #endif 602 #ifndef PROG_DOS_MODE 603 #define PROG_DOS_MODE (PROGCATEGORY)23 604 #endif 605 606 case PROG_DOS_GAME: return "PROG_DOS_GAME"; 607 case PROG_WIN_GAME: return "PROG_WIN_GAME"; 608 case PROG_DOS_MODE: return "PROG_DOS_MODE"; 609 } 610 611 return NULL; 612 } 613 614 /* 613 615 *@@ appIsWindowsApp: 614 616 * checks the specified program category … … 657 659 658 660 return (0); 661 } 662 663 /* ****************************************************************** 664 * 665 * Application start 666 * 667 ********************************************************************/ 668 669 /* 670 *@@ CallBatchCorrectly: 671 * fixes the specified PROGDETAILS for 672 * command files in the executable part 673 * by inserting /C XXX into the parameters 674 * and setting the executable according 675 * to an environment variable. 676 * 677 *@@added V0.9.6 (2000-10-16) [umoeller] 678 *@@changed V0.9.7 (2001-01-15) [umoeller]: now using XSTRING 679 *@@changed V0.9.12 (2001-05-27) [umoeller]: moved from winh.c to apps.c 680 */ 681 682 VOID CallBatchCorrectly(PPROGDETAILS pProgDetails, 683 PXSTRING pstrParams, // in/out: modified parameters (reallocated) 684 const char *pcszEnvVar, // in: env var spec'g command proc 685 // (e.g. "OS2_SHELL"); can be NULL 686 const char *pcszDefProc) // in: def't command proc (e.g. "CMD.EXE") 687 { 688 // XXX.CMD file as executable: 689 // fix args to /C XXX.CMD 690 691 PSZ pszOldParams = NULL; 692 ULONG ulOldParamsLength = pstrParams->ulLength; 693 if (ulOldParamsLength) 694 // we have parameters already: 695 // make a backup... we'll append that later 696 pszOldParams = strdup(pstrParams->psz); 697 698 // set new params to "/C filename.cmd" 699 xstrcpy(pstrParams, "/C ", 0); 700 xstrcat(pstrParams, 701 pProgDetails->pszExecutable, 702 0); 703 704 if (pszOldParams) 705 { 706 // .cmd had params: 707 // append space and old params 708 xstrcatc(pstrParams, ' '); 709 xstrcat(pstrParams, 710 pszOldParams, 711 ulOldParamsLength); 712 free(pszOldParams); 713 } 714 715 // set executable to $(OS2_SHELL) 716 pProgDetails->pszExecutable = NULL; 717 if (pcszEnvVar) 718 pProgDetails->pszExecutable = getenv(pcszEnvVar); 719 if (!pProgDetails->pszExecutable) 720 pProgDetails->pszExecutable = (PSZ)pcszDefProc; 721 // should be on PATH 659 722 } 660 723
Note:
See TracChangeset
for help on using the changeset viewer.