═══ 1. SMART On-Line Help ═══ The SMART Toolset Source Migration Analysis Reporting Toolset Native 'C' and C++ Source Code Migration Version 2.1B September 1995 (C) 1991, 1994, 1995 One Up Corporation All Rights Reserved Topic Sections: One Up Products and Services Main Menu Dialog Panels Introduction/Tutorial Utilities Reference ═══ 2. One Up Products and Services ═══ One Up Corporation develops technical programming and end user OS/2 software products, computer education and consulting services. SMART is the application you are currently running. This tool provides powerful assistance in the process of migrating source code and migration analysis and evaluation. SourceLink is an excellent general programming tool with an emphasis on hyperlink source code access and source code editing. SourceLink is tightly integrated into SMART to provide a highly productive programming environment. Window Washer is a screen saver with many animation features. Open Shutter creates screen captures and bitmap translation. Computer Education and Training is provided in formal classes at One Up's educational facility. Consulting Services providing outsourcing of platform porting for your software and porting workshops. For sales information regarding these products and services please contact: One Up Corporation Sales Department P.O. Box 7500 LB 349 Dallas, Texas 75209-0500 sales (817) 962-9500 support (817) 962-9687 fax (817) 962-9626 See Also: SMART SourceLink Window Washer Open Shutter Computer Education and Training Consulting Services SMART On-Line Help ═══ 2.1. SMART - Product Information ═══ SMART provides analysis and source code migration from one platform to another or one version to another on a given platform. SMART - Source Code Migration, Analysis, and Reporting Tool. Features  The SMART process provides native source code migration without the requirement of emulation, and other run time modules by the completed application as part of this process.  The current version supports Windows 16 bit -> OS/2 32 bit, OS/2 16 bit -> OS/2 32 bit or Windows 32 bit -> OS/2 32 bit migration and analysis depending upon the licensed migration tables that are installed with this application.  Source code analysis provides detailed report and display of items to be ported.  Analysis indicates category of changes and relative effort for port.  Migration automatically changes many straight forward differences (Category 010 items). All other items to be changed are flagged with in-line comments.  Migration code formats are user selectable.  Interface with SourceLink provides automatic hyperlink to points of change and provides IDE support.  SMART Viewer provides on-line access to migration help. See Also: SMART On-Line Help One Up Products ═══ 2.2. SourceLink - Product Information ═══ SourceLink is a feature rich programming development tool combining hyperlink source code access, a fully functional editor, and many file manipulation utility functions. Features  Build hyperlinks to key elements of your source code.  REXX Macro interface.  Full IBM Workframe interface.  Spawn Compiles directly from SourceLink and hyperlink to errors.  Context sensitivity to all IBM development help files (if installed).  Edit with multiple windows, any size files.  Create functional call tree and other documentation display - all hyperlink sensitive.  Unsurpassed methods for navigating directories, drives and source code.  Hyperlink capabilities make learning new code a breeze.  Print SMART analysis and source code with format from within SourceLink.  Interface with SMART provides automatic hyperlink to all points of change. See Also: SMART On-Line Help One Up Products ═══ 2.3. Open Shutter - Product Information ═══ This simple to use screen capture process allows you to select any rectangular area, window, or the entire desktop, and capture it with a single user-defined keystroke or mouse click. Rotate your image at any angle, map colors and modify your color palette, and stretch or compress your image to any dimension you need. Preview the modifications prior to output. Save your image as an OS/2 or Windows BMP, ICO or metafile. Also save as an OS/2 pointer, Windows Cursor, PC Paint Brush (PCX), Tagged Image File Format (TIFF), Graphic Interchange Format (GIF), Ventura Publisher image format (IMG), and MacPaint (MAC) formats. Features  Captures screen regions and windows for OS/2.  Output to printer, clipboard, or file.  Select any window or portion of a window for capture.  Set your own hotkey for quick save or print.  Save in 2, 4, 8 or 24 bit color or gray scales.  Flip horizontally/vertically and rotate to any angle.  View previously saved screen captures.  Stretch or compress captured area.  Gray shading and color mapping.  Preview prior to save or print. See Also: SMART On-Line Help One Up Products ═══ 2.4. Window Washer - Product Information ═══ This latest addition of the best selling 32-bit screen saver for OS/2 now provides the first FULL SCREEN keyboard monitoring feature for OS/2, along with new effects and multimedia enhancements. Window Washer provides OS/2 users with full password security of their personal computers as well as providing monitor phosphor burn-in protection. Features  Provides screen saving and locking functionality.  Digital audio and video enabled.  Ability to use TIFF, GIF, BMP and PCX backgrounds for Window Washer Effect.  Ability to play CD's, or any Digital Audio supported by MMPM/2.  Hot Key activation.  Keyboard/Mouse password protection.  Keyboard monitoring of Full Screen sessions for inactivity.  Effects include: Enhanced Window Washer Riding Mower Spot Light Slider PM Lines Messages Digital Movies Spinning Globe See Also: SMART On-Line Help One Up Products ═══ 2.5. Computer Education and Training - Service Information ═══ One Up's educational services offer an unmatched curriculum delivered by OS/2 professionals. Features  Scheduled classes are taught at One Up corporate facility in Dallas, Texas.  Courses include: OS/2 Basics for End Users Installing, Using and Customizing OS/2 OS/2 Technical Support 'C' Language Programming C++ Programming OS/2 PM Programming Advanced OS/2 PM Programming SOM Programming for OS/2 OS/2 LAN Server Administration OS/2 Communications Manager SMART Tools and Migration Techniques See Also: SMART On-Line Help One Up Products ═══ 2.6. Consulting Services - Service Information ═══ One Up provides complete application migration and porting services. Using the One Up developed Tools - SMART and SourceLink, in conjunction with a migration methodology and the expertise of trained and experienced professionals, One Up will provide a native source code port for your application. Features  Custom outsourcing for the migration of your application across multiple platforms.  Use of professional with extensive experience in porting and multiple platform issues.  Reduction of effort and time through the use of highly productive tools and methodologies. See Also: SMART On-Line Help One Up Products ═══ 3. SMART Main Menu ═══ The SMART Main Menu includes the following selections:  File - File Functions.  Analysis - Analysis Functions.  Migration - Migration Functions.  Resources - Resources Functions.  Tables - Table Functions.  Options - Setup and Configuration Functions.  Help - On-line Help. See Also: SMART On-Line Help ═══ 3.1. File Menu ═══ The File Menu contains selections dealing with SMART common file functions. Access Alt-F The File Menu includes the following selections:  Open/View File(s)  Maintain List-of-Files  Maintain PreProc Variables File  Select Current List-of-Files  Print Analysis Report  Printer Setup  Exit See Also: Main Menu SMART On-Line Help ═══ 3.1.1. Open/View File(s) ═══ This selection provides a dialog panel for selecting a files (or files) to edit or view. Features 1. Files may be selected by navigating through the drives/directories and file list boxes. 2. You can display sets of files designated by a wildcard extension parameter. 3. The filenames selected will be sent to the editor/browser that has been defined in the Setup Options panel. Access  Alt-F, O (File Menu, Selection O) See Also: Open File Dialog Setup Options Dialog SMART On-Line Help Main Menu File Menu ═══ 3.1.2. Maintain List-of-Files ═══ This selection provides the functionality for creating or maintaining a List-of-Files. A 'List-of-Files' is actually a text file containing fully qualified filenames for The SMART Tool Analysis or Source Code Migration. Typically these files are ".C", ".CPP", "H", "HPP" source files for source analysis. A similiar List-of-Files can be constructed to contain the .RC and .DLG files for Windows resource analysis. This List-of-Files can also be created or maintained by SourceLink or a text editor. Features 1. The 'List-of-Files' filename is first created or selected from the File Selection Dialog. 2. The Files List Dialog displays the current filenames in the 'List-of-Files'. 3. You may add or delete files from this list. 4. The Add Files Dialog provides a quick method of selecting files to add to the list. Access  Alt-F, L (File Menu, Selection L) See Also: File Selection Dialog Files List Dialog Add Files Dialog SMART On-Line Help Main Menu File Menu ═══ 3.1.3. Maintain Preprocessor Variables File ═══ This selection provides the functionality for creating or maintaining a file containing preprocessor (ifdef) variables. Preprocessor variables for both Analysis and/or Migration can be defined in a text file using this process. Use of preprocessor variables in 'ifdefined' statements can be used to skip or include source code to be processed by SMART. Features 1. A list of all preprocessor variables can be created using SLBUILD.EXE (from SourceLink). 2. You can specify variables and the processing value in this process. 3. The preprocessor variables file can also be created using a text editor. Access  Alt-F, P (File Menu, Selection P) See Also: File Selection Dialog Preprocessor Dialog SMART On-Line Help Main Menu File Menu ═══ 3.1.4. Select Current List-of-Files ═══ This selection provides the functionality selecting an existing List-of-Files for processing Analysis or Migration. SMART projects are defined by unique List-of-Files. Features 1. The File Selection Dialog provides the method for navigating through your directories and selecting the List-of-Files filename. 2. The current list filename is displayed in the main title bar of SMART Access  Alt-F, S (File Menu, Selection S) See Also: File Selection Dialog SMART On-Line Help Main Menu File Menu ═══ 3.1.5. Print Analysis Files ═══ This selection provides the functionality to select an analysis file and summary files to print. Features 1. Up to two summary files can be specified for printing in a single report. 2. The Print Analysis Dialog provides the method and entry fields to specify the report files to be printed, along with the name to appear on the report heading. 3. The print format dialog can be accessed from this panel. Access  Alt-F, A (File Menu, Selection A) See Also: Print Analysis Dialog SMART On-Line Help Main Menu File Menu ═══ 3.1.6. Printer Setup ═══ This selection provides the functionality to select and setup a printer for printing. Features 1. You can choose from a list of installed printers. 2. By selecting 'Job Properties' on this panel the selected printer setup panels will appear. Access  Alt-F, U (File Menu, Selection U) See Also: SMART On-Line Help Main Menu File Menu ═══ 3.1.7. Exit SMART ═══ This selection will terminate SMART. Features 1. Unless the option is checked to verify close, SMART will immediately terminate. 2. This option is maintained in the Setup Options Dialog. Access  Alt-F, X (File Menu, Selection X) See Also: Setup Options Dialog SMART On-Line Help Main Menu File Menu ═══ 3.2. Analysis Menu ═══ The Analysis Menu contains selections dealing with source code analysis. Access Alt-A The Analysis Menu includes the following selections:  Analysis  Analyze Resource Code  Recreate Analysis Display  Packup Analysis Files  Remove Temp. Analysis Files  Display Detail  Display Recap See Also: Main Menu SMART On-Line Help ═══ 3.2.1. Analyze Code ═══ This selection will display the Analysis Configuration Dialog. Analysis options and parameters can be chosen. Subsequently, you can proceed through the source code analysis to identify changes in code migration. If there is no List-of-Files currently selected, a selection dialog will preceed this configuration panel. Features 1. Selection of List-of-Files, Exclude (keyword) file, Preprocessor variable file. 2. Selection of analysis display and report options. Access  Alt-A, A (Analysis Menu, Selection A) See Also: Analysis Configuration Dialog SMART On-Line Help Main Menu Analysis Menu ═══ 3.2.2. Analyze Resource Code ═══ This selection will display the Analyze Resources Dialog when you have selected any migration table where Windows is the source platform. Resource Analysis options and parameters can be chosen. Subsequently, you can proceed through the source code analysis to identify changes in code migration. If there is no List-of-Files currently selected, a selection dialog will preceed this configuration panel. The list-of-Files should only contain .RC and .DLG file names. Features 1. Selection of List-of-Files file. 2. Selection of analysis summary output filename. 3. Optional entry field for Effort Modifier. Access  Alt-A, S (Analysis Menu, Selection S) See Also: Analyze Resources Dialog SMART On-Line Help Main Menu Analysis Menu ═══ 3.2.3. Recreate Analysis Display ═══ This selection will display the Analysis Configuration Dialog Analysis options and parameters can be chosen. Subsequently, you can proceed to re-create an analysis display from existing temporary analysis files. You must have previously performed the source code analysis. Features 1. Skips the analysis phase of source code analysis process to rebuild the display report. 2. Can be used to regroup previously analyzed files for report display. Access  Alt-A, C (Analysis Menu, Selection C) See Also: Analysis Configuration Dialog Analyze Code SMART On-Line Help Main Menu Analysis Menu ═══ 3.2.4. Packup Analysis Files ═══ This selection will compress all temporary analysis files corresponding to the List-of-Files files, and copy these compressed files to a floppy disk on the A: drive. This process requires that you have a copy of "PKZIP2.EXE" from PKWARE, Inc. Features 1. Before processing, a Select List-of-Files Dialog panel will be displayed to verify or change the current List-of-Files. 2. Compresses and backs up analysis files for storage or transmission. 3. You may choose Remove Analysis after successfully completing this process to delete all backed up analysis files. Access  Alt-A, P (Analysis Menu, Selection P) See Also: Remove Temp. Analysis Files Select List-of-Files Dialog SMART On-Line Help Main Menu Analysis Menu ═══ 3.2.5. Remove Temp. Analysis Files ═══ This selection will delete all temporary analysis files corresponding to the List-of-Files files. Features 1. Before processing, a Select List-of-Files Dialog panel will be displayed to verify or change the current List-of-Files. 2. Before removal you may want to backup the analysis files for future processing. See: Packup Analysis Access  Alt-A, T (Analysis Menu, Selection T) See Also: Packup Analysis Select List-of-Files Dialog SMART On-Line Help Main Menu Analysis Menu ═══ 3.2.6. Display Detail ═══ Choose this selection to flip the Analysis report display to show the analysis detail. Features 1. This menu selection is only valid if the Analysis container display is present and the Recap portion of the display is showing. 2. The function key 'F5' will toggle the Recap and Detail analysis display. Access  Alt-A, D (Analysis Menu, Selection D)  F5  Click right mouse button See Also: SMART On-Line Help Main Menu Analysis Menu ═══ 3.2.7. Display Recap ═══ Choose this selection to flip the Analysis report display to show the analysis recap. Features 1. This menu selection is only valid if the Analysis container display is present and the Detail portion of the display is showing. 2. The function key 'F5' will toggle the Recap and Detail analysis display. Access  Alt-A, R (Analysis Menu, Selection R)  F5  Click right mouse button See Also: SMART On-Line Help Main Menu Analysis Menu ═══ 3.3. Migration Menu ═══ The Migration Menu contains selections dealing with source code migration. This menu is only available with SMART licensed for Analysis and Migration. Access Alt-M The Migration Menu includes the following selections:  Migrate Code  Trace MiCL  Comment-Out Code Lines  Remove Tagged Code Lines See Also: Main Menu SMART On-Line Help ═══ 3.3.1. Migrate Code ═══ This selection will display the Migration Configuration Dialog. Migration options and parameters can be chosen. Subsequently, you can proceed through the source code migration to generate the ported code. If there is no List-of-Files currently selected, a selection dialog will preced this configuration panel. Features 1. Selection of List-of-Files, Exclude (keyword) file, Preprocessor variable file. 2. Selection of file generation options (overwrite, map to new filename, etc). 3. Define code insertion format (ifdef or commented code). 4. Selection of migration code formats by category code. 5. Processing options. Access  Alt-M, M (Migration Menu, Selection M) See Also: Migration Configuration Dialog Map Extensions Dialog Link Database Options Migrate Format Options SMART On-Line Help Main Menu Migration Menu ═══ 3.3.2. Trace MiCL ═══ This selection will create the MiCL Trace window to enable you to trace through MiCL commands at run time that appear in a selected UDMD. This trace window must be active prior to the migration process in order to trace the MiCL Commands in a UDMD. Documentation for programming UDMD with MiCL is in the SMART Programming Guide On-Line Document in the SMART Folder. Features 1. Capable of line by line MiCL command tracing. 2. Trace a specific keyword or all keywords. 3. All variables and the results of each command are displayed. Access  Alt-M, T (Migration Menu, Selection T) See Also: Trace Keyword Dialog SMART On-Line Help Main Menu Migration Menu Trace Menu ═══ 3.4. Trace Menu ═══ The Trace Menu contains selections dealing with MiCL Tracing. The menu items on this window provide control for tracing MiCL commands. Access Migration Menu - Trace MiCL The Trace Menu includes the following selections:  Trace Keyword...  Cancel Trace  Terminate Process  Clear Trace Display  Close Trace See Also: Trace MiCL Main Menu SMART On-Line Help ═══ 3.4.1. Trace Keyword ═══ This selection will display the Trace Keywordl Dialog. The trace facility will trace through the MiCL commands of a specified keyword or trace through all keywords. This dialog allows you to enter the keyword to trace or specify all keywords. Features 1. Enter the keyword to trace. 2. Specify all keywords with MiCL Commands. Access  Alt-K, (Trace Menu) See Also: Trace Keyword Dialog SMART On-Line Help Main Menu Migration Menu Trace MiCL Trace Menu ═══ 3.4.2. Cancel Trace ═══ This selection will cancel the tracing of MiCL commands and the migration will proceed. Access  Alt-C, (Trace Menu) See Also: SMART On-Line Help Main Menu Migration Menu Trace MiCL Trace Menu ═══ 3.4.3. Terminate Process ═══ This selection will immediately terminate the migration process. Access  Alt-P, (Trace Menu) See Also: SMART On-Line Help Main Menu Migration Menu Trace MiCL Trace Menu ═══ 3.4.4. Clear Trace Display ═══ This selection will clear the trace display window. Access  Alt-D, (Trace Menu) See Also: SMART On-Line Help Main Menu Migration Menu Trace MiCL Trace Menu ═══ 3.4.5. Close Trace Window ═══ This selection will close the trace display window and cancel tracing any MiCL commands. Access  Alt-C, (Main Trace Window) See Also: SMART On-Line Help Main Menu Migration Menu Trace MiCL Trace Menu ═══ 3.4.6. Remove Tagged Code Lines ═══ This selection will display the Code Removal Dialog. Code removal options and parameters can be chosen. Subsequently, you can proceed through the code removal process. You can also specify tags to be removed without the removal of the source code prior to the tag. This function is used to remove migration comments at completion of porting process. If there is no List-of-Files currently selected, a selection dialog will preced this configuration panel. Features 1. Selection of List-of-Files. 2. Selection of file output options (overwrite, map to new filename, etc). 3. Define code tag types for removalof tags or tags and code lines. Access  Alt-M, R (Migration Menu, Selection R) See Also: Code Removal Dialog SMART On-Line Help Main Menu Migration Menu ═══ 3.4.7. Comment-Out Code Lines ═══ This selection will display the Comment-Out Dialog. Commenting and ifdef code block removal options and parameters can be chosen. Subsequently, you can proceed through the code removal or commenting process. This function is used to comment out or remove #ifdef blocks of code. If there is no List-of-Files currently selected, a selection dialog will preceed this configuration panel. Features 1. Provides for #ifdef block comments or uncomment (reversal). 2. Provides for #ifdef block code removal (non reversible). 3. Define code tag for comment-out. Access  Alt-M, C (Migration Menu, Selection C) See Also: Comment-Out Dialog SMART On-Line Help Main Menu Migration Menu ═══ 3.5. Resources Menu ═══ The Resources Menu contains selections dealing with utility processes related to Resource Translation and Graphical Resource Conversion. This menu is only available with SMART licensed for Win 3.1-> OS/2 migration. Access Alt-R The Migration Menu includes the following selections:  Convert Graphical Resource See Also: Main Menu SMART On-Line Help ═══ 3.5.1. Translate Resources ═══ This selection provides a PM interface for options settings and spawns the Resource Translator utility program. This selection is only available with the selection of Windows Migration Tables. Features 1. This function provides a popup dialog panel to provide a PM interface to the Resource Translator utility program "SMARTRC.EXE". Access  Alt-R, T (Resources Menu, Selection T) See Also: Resource Translator Topics Resource Translator Dialog SMART On-Line Help Main Menu Resources Menu ═══ 3.5.2. Convert Graphical Resources ═══ This selection provides a PM interface for options settings and spawns the Graphical Resource Converter utility program. (It is necessary to use this utility only when migrating from Windows to OS/2. Resource files do not require translating when migrating from one version of OS/2 to another.) Features 1. This function provides a popup dialog panel to provide a PM interface to the Graphical Resource Converter utility program "SMARTCVT.EXE". Access  Alt-R, C (Resources Menu, Selection C) See Also: Graphical Resource Converter Topics Graphical Resource Converter Dialog SMART On-Line Help Main Menu Resources Menu ═══ 3.6. Tables Menu ═══ The Tables Menu contains selections dealing with utility processes related to SMART Primary and UDMD Table selection. Access Alt-T The Tables Menu includes the following selections:  Select Tables  Current Table Info  Create UDMD  Dump UDMD See Also: Main Menu SMART On-Line Help ═══ 3.6.1. Select Tables ═══ This selection provides a panel for selecting SMART Primary and/or a UDMD for processing Analysis and/or Migration. Access  Alt-T, C (Tables Menu, Selection S) See Also: Select Tables Dialog Set UDMD Directory Dialog SMART On-Line Help Main Menu Tables Menu ═══ 3.6.2. Current Tables Info ═══ This selection provides a panel for providing information related to the current selection of Analysis and Migration Tables. Access  Alt-T, I (Tables Menu, Selection I) See Also: Tables Info Dialog Select Tables Dialog SMART On-Line Help Main Menu Tables Menu ═══ 3.6.3. Create User UDMD ═══ This selection provides a panel for selecting the options to create a user UDMD. Access  Alt-T, C (Tables Menu, Selection C) See Also: Create UDMD Dialog Select Tables Dialog SMART On-Line Help Main Menu Tables Menu ═══ 3.6.4. Dump User UDMD ═══ This selection provides a panel for creating an ascii text file in the tagged format of a UDMD migration dictionary from a specified UDMD data base. Access  Alt-T, D (Tables Menu, Selection D) See Also: Create UDMD Dialog Select Tables Dialog SMART On-Line Help Main Menu Tables Menu ═══ 3.7. Options Menu ═══ The Options Menu contains selections dealing with SMART configuration options. Access Alt-O The Options Menu includes the following selections:  Setup Options  Where is SMART  Notify Completion See Also: Main Menu SMART On-Line Help ═══ 3.7.1. Setup Options ═══ This selection will display the Setup Options Dialog. Parameters for defining the default editor/browser and the migration table are entered in this panel. Features 1. Selection of default editor for sending analysis and filenames for browsing. 2. Selection of migration table name. 3. Checkbox for verifying exit of this application. Access  Alt-O, S (Options Menu, Selection S) See Also: Setup Options Dialog SMART On-Line Help Main Menu Options Menu ═══ 3.7.2. Where is SMART ═══ This selection will display the directory containing the executable of SMART and the location of the SMART configuration file. Access  Alt-O, W (Options Menu, Selection W) See Also: Setup Options SMART On-Line Help Main Menu Options Menu ═══ 3.7.3. Notify Completion ═══ This selection will define whether or not an audible beep will be heard at the completion of the analysis or migration process. Access  Alt-O, N (Options Menu, Selection N) See Also: Analysis Configuration Dialog Migration Configuration Dialog SMART On-Line Help Main Menu Options Menu ═══ 3.8. Help Menu ═══ The Help Menu provides selections for help. Access Alt-H For additional information select one of the following topics:  Help Index  Help Contents  General Help  Keys Help  Using Help  Product Information See Also: Main Menu SMART On-Line Help ═══ 3.8.1. Using Help ═══ Help for Using the System Help Facility ═══ 3.8.2. Help Index ═══ Alphabetical listing of all help topics in this application. ═══ 3.8.3. Contents Help ═══ Table of Contents for SMART Help Topics. ═══ 4. Dialog Panels ═══ The Dialog Panels includes the following dialogs:  File Open  Select Filename  Verify/Select Filename  List-of-Files List  List-of-Files Add  Link Db Options  Map File Extensions  PreProcessor Variables Maintenance  Setup Options  Analysis Configuration  Migrate Configuration  Migrate Format Options  Remove Tagged Code Configuration  Comment-Out Code Configuration  Configuration File Location  Resource Translator Interface  Graphical Resource Converter Interface  Win Help Translator Interface  Print Analysis Files  Resource Analysis  Set Tables  Tables Info  Create UDMD  Dump UDMD  Trace Keyword See Also: SMART On-Line Help ═══ 4.1. Open File Dialog Panel ═══ The Open File dialog displays file information, provides selection of one or more existing files for viewing or editing. You must specify the name of the files to be opened or created by entering the filename or selecting the path and filename through the use of the list boxes. Features 1. When a file is selected, and 'Open' is selected, the filename is passed to the default configured editor. 2. You can change the current directory by the following actions: You can double-click on a directory in the directory listbox, or you can type in the directory name (followed by a back-slash) in the file data entry box and choose the Open button. When you enter the directory name in the file data entry box, you can type in the full path terminated by a back-slash; e.g. C:\OS2\SUBDIR\. When you type in the directory name without being preceded by the drive, however, you do not have to terminate the name with a back-slash; e.g. if you are positioned at C:\OS2\CURRDIR and you want to go to the next higher directory, you can type in '..' or 'OS2'. When you click on a file in the files listbox or type in the filename and choose the Select button, the size and date of the file are displayed. 3. You can select which files appear in the Filenames listbox by using a wildcard. You can choose the *.* button and all files within the current directory will be displayed. You can choose the *.C* button and all files with a C* extension will be displayed. You can type in your own wildcard in the Wildcard data entry box and choose the Display button and only those files satisfying your wildcard will be displayed. You can choose one of the default Wildcard masks by selecting from the list of Wildcards. 4. You can open multiple files. Select the files to be opened from the Files listbox and then press Open. All files will be opened in the specified edit and word wrap mode. Access Alt-F, O (File Menu, Option O) Controls Dir: The current directory is displayed. File: You may type in a new directory path; if you type in the full path, this must end with a \ (e.g. C:\NEWDIR\). When you choose the Open button, the directories listbox and files listbox are updated. You may type in the name of the file to be opened or whose size and date will be displayed (e.g. NEWFILE.C). You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be opened or created or whose size and date will be displayed. Size: The size of the selected filename is displayed. Date/Time: The Date/Time stamp of the selected filename is displayed. Drives This listbox contains drives. You may select the current drive from this list. Directories This listbox contains directories. You may select the current directory from this list. Filenames This listbox contains a list of files satisfying the current wildcard (usually *.*) which are contained within the selected drive and directory. You may select the filename of the file to be opened or viewed. Display (D) The Display button updates the Filenames listbox according to the current wildcard which is displayed in the Wildcard data entry box. You either choose the *.* button, the *.C button, type in your own wildcard in the Wildcard data entry box or select from the list of wildcards and then choose the Display button. Wildcard: The Wildcard data entry box allows you to type in your own filenames wildcard. When you choose the Display button, the Filenames listbox is updated. When you press the arrow to the right of the Wildcard data entry box, a list of wildcards appear; you can select from this list. *.* (*) The *.* button updates the Filenames wildcard. When you choose this button, the Filenames listbox displays all of the files in the current directory. *.C* (C) The *.C* button updates the Filenames wildcard. When you choose this button, the Filenames listbox displays all of the files in the current directory satisfying the *.C wildcard. Open (O) When you choose the Open button, the selected filenames sent to the default configured editor. If a file does not exist, you will be notified. If the file data entry box contains a directory name, the directory is changed when you choose this button. Cancel When you choose the Cancel button, the current command is canceled. Clear (E) When you choose the Clear button, the selections from the files listbox are cleared. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Setup Options Dialog Panels SMART On-Line Help ═══ 4.2. Select File Dialog Panel ═══ The Select File dialog provides selection of a file for specification in an entry field when you would rather navigate through your directories and select a file rather than type the filename into the entry field. You can specify the name of the file selecting the path and filename through the use of the list boxes. Features 1. You can change the current directory by the following actions: You can double-click on a directory in the directory listbox, or you can type in the directory name in the file data entry box and choose the Ok button. When you enter the directory name in the file data entry box, you can type in the full path terminated by a slash; e.g. C:\OS2\SUBDIR\. When you type in the directory name without being preceded by the drive, however, you do not have to terminate the name with a slash; e.g. if you are positioned at C:\OS2\CURRDIR and you want to go to the next higher directory, you can type in '..' or 'OS2'. When you click on a file in the files listbox or type in the filename and choose the Select button, the size and date of the file are displayed. 2. You can select which files appear in the Filenames listbox by using a wildcard. You can choose the *.* button and all files within the current directory will be displayed. You can choose the *.C* button and all files with a C* extension will be displayed. You can type in your own wildcard in the Wildcard data entry box and choose the Display button and only those files satisfying your wildcard will be displayed. You can choose one of the default Wildcard masks by selecting from the list of Wildcards. 3. You can only select a single file. Access Alt-F, O (File Menu, Option O) Controls Dir: The current directory is displayed. File: You may type in a new directory path; if you type in the full path, this must end with a \ (e.g. C:\NEWDIR\). When you choose the Ok button, the directories listbox and files listbox are updated. You may type in the name of the file to be opened or whose size and date will be displayed (e.g. NEWFILE.C). You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be opened or created or whose size and date will be displayed. Size: The size of the selected filename is displayed. Drives This listbox contains drives. You may select the current drive from this list. Directories This listbox contains directories. You may select the current directory from this list. Filenames This listbox contains a list of files satisfying the current wildcard (usually *.*) which are contained within the selected drive and directory. You may select the filename of the file to be opened or viewed. Display (D) The Display button updates the Filenames listbox according to the current wildcard which is displayed in the Wildcard data entry box. You either choose the *.* button, the *.C button, type in your own wildcard in the Wildcard data entry box or select from the list of wildcards and then choose the Display button. Wildcard: The Wildcard data entry box allows you to type in your own filenames wildcard. When you choose the Display button, the Filenames listbox is updated. When you press the arrow to the right of the Wildcard data entry box, a list of wildcards appear; you can select from this list. *.* (*) The *.* button updates the Filenames wildcard. When you choose this button, the Filenames listbox displays all of the files in the current directory. *.C* (C) The *.C* button updates the Filenames wildcard. When you choose this button, the Filenames listbox displays all of the files in the current directory satisfying the *.C wildcard. Open (O) *.LST (L) The *.LST button updates the Filenames wildcard. When you choose this button, the Filenames listbox displays all of the files in the current directory. When you choose the Open button, the selected filenames sent to the default configured editor. If a file does not exist, you will be notified. If the file data entry box contains a directory name, the directory is changed when you choose this button. Ok Pressing 'Ok' or [Enter] will choose the filename as specified in the Dir: and File: entry boxes. Cancel When you choose the Cancel button, the current command is canceled. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Setup Options Dialog Panels SMART On-Line Help ═══ 4.3. Verify/Select Filename ═══ The Verify/Select Filename Dialog Panel prompts you to verify the use of the displayed filename or select another filename. Access Verify/Select Filename Dialog Panel Controls Select (S) Press this button to display the Select Filename dialog panel. Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. Ok [Enter] Pressing 'Ok' or [Enter] will accept the displayed filename. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Select Filename Dialog Panel Dialog Panels SMART On-Line Help ═══ 4.4. Setup Options ═══ The Setup Options Dialog Panel provides you with application configuration setup options and parameters. Access Setup Options Dialog Panel Controls Editor/BrowserSelect Press this button to display the Select Filename dialog panel. Editor/Browser Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\SLINK2\SLSTART.EXE) of the editor to be used. Note: if using SourceLink, specify SLSTART.EXE in this entry field. Editor/Browser Parameters Enter any desired parameters to pass to the editor. Note: if using SLSTART.EXE you may wish to specify "/F" to force the file sent to SourceLink to be immediately displayed. Confirm Exit SMART If this box is checked, you will be prompted to confirm exit upon closure of this application. Save Pressing Save will accept changes to this panel. Cancel Pressing Cancel will ignore changes to this panel. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Select Filename Dialog Panel Dialog Panels SMART On-Line Help ═══ 4.5. Files List Dialog Panel ═══ The Files List Dialog Panel enables you to add and delete files contained in a List-of-Files. Access Link Menu: Maintain A List Of Files Controls Files List Filename The List-of-Files filename is displayed. Filenames Count The number of files contained in the List-of-Files is displayed. Filenames listbox The Filenames listbox displays each entry contained in the List-of-Files file. You may select one or more files from this list, then choose the Delete button and the selected files will be deleted from the List-of-Files. Save [S] The Save button saves the contents of the list-of-files in the List-of-Files file. Cancel When you choose the Cancel button, the current command is canceled. Add [A] The Add button displays the Add Files To List where you can add files to the List-of-Files. Delete [D] The Delete button removes all files selected in the Filenames listbox from the List-of-Files file. Delete All [L] The Delete All button removes all files from the List-of-Files file. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: List-of-Files Add Dialog Panels SMART On-Line Help ═══ 4.6. Add Files To List Dialog Panel ═══ The Add Files To List Dialog Panel prompts you for the name of the files to add to the List-of-Files. Access List-Of-Files Files List Dialog Panel Controls Dir: The current directory is displayed. Filename: You may type in a new directory path; this must end with a \ (e.g. C:\NEWDIR\). The directories listbox and files listbox are updated. You may type in the name of the file to be added (e.g. NEWFILE.C). You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be added. Directories This listbox contains drives and directories. You may select the current drive or directory from this list. Filenames This listbox contains a list of files satisfying the current wildcard (usually *.*) which are contained within the selected drive and directory. You may select multiple filenames. Display (D) The Display button updates the Filenames listbox according to the current wildcard which is displayed in the Wildcard data entry box. Wildcard: The Wildcard data entry box allows entry of a new filenames wildcard. When you choose the Display button, the Filenames listbox is updated. *.* (*) The *.* button updates the Filenames wildcard. When you choose this button, the Filenames listbox displays all of the files in the current directory. *.C (C) The *.C* button updates the Filenames wildcard. When you choose this button, the Filenames listbox displays all of the files in the current directory satisfying the *.C wildcard. Add [A] When you choose the Add button, all selected files will be added to the previously defined List-of-Files listbox. Close [C] When you choose the Close button, you are returned to the List-of-files Files List Dialog panel. Select All [S] When you choose the Select All button, all displayed files will be selected. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: (List-of-)Files List Dialog Panels SMART On-Line Help ═══ 4.7. Preproc Variables Maintenance ═══ The Preproc Variables Maintenance Dialog Panel provides you with the capability to maintain a file containing preprocessor "ifdef" variables for the analysis and migration processes. Prior to this panel you will select the name of the variables file by using the Select Filename dialog panel. You can create variable names that match the "ifdef" statements in the source code and set the variables to 1 or 0 for processing. These variables are used for manipulating blocks of code in the migration process. Variables not specified in this list will be ignored and the block of code will be processed as if no preprocessor statement was encountered. The file format created in this process is compatible with the variables file format created and used in the SLBUILD for SourceLink Access Preproc Variables Maintenance Controls Variable Name Entry Field The selected variable name from the list box will be displayed here. You may also enter a new variable name in this field. Value Entry Field The selected variable name value from the list box will be displayed here. You may also enter a new or changed variable name value in this field. Variable Listbox The List Box displays the current contents of the Preprocessor variables file. Selecting any line in this box will result in its display in the "Variable" entry fields. Add (A) The item entered in the "Variable name" entry field and "Value" entry field will be added to the list of variables. Change (C) A line item in the list box must be selected. Any change to the Variable name or value as entered in the entry field will replace the item in the list box. Delete (D) The selected item in the list box will be deleted. Set '1' (1) The currently selected item will be set to "1" in both the entry field and the list box. Set '0' (0) The currently selected item will be set to "0" in both the entry field and the list box. Save Pressing Save will accept changes to this panel and save the variables in the specified filename. Cancel Pressing Cancel will ignore changes to this panel and return to the main menu. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Select Filename Dialog Panel Dialog Panels SMART On-Line Help ═══ 4.8. Map File Extensions ═══ The Map File Extensions Dialog Panel provides you with the capability to maintain a file containing the file extension map for the migration processes. This file is saved as MAPEXT.DAT in the installed directory for SMART. This text file contains pairs of file extensions to be used when the migration process creates migrated source code files. Although a set of extension mapping pairs are supplied in the SMART installation you may wish to change the extensions to meet your specific requirements. This dialog panel is invoked from the "Extension Mapping" push-button on the Migrate Configuration. dialog panel. Access Map File Extensions Controls Extensions/Mapped Listbox This listbox displays the current file extension mapping pairs. Selecting any line in this box will result in its display in the "Extension" and "Map" entry fields. The filenames with extensions shown in the first column will be mapped to the extensions in the second column during the Migration process if the "Create files using mapped extensions" options is chosen. Extension Entry Field The selected extension from the list box will be displayed here. You may also enter a new extension in this field. Map Entry Field The corresponding mapped extension from the list box will be displayed here. You may also enter a new or changed mapped extension in this field. Add (A) The item entered in the "Extension" entry field and "Map" entry field will be added to the list of extension pairs. Change (C) A line item in the list box must be selected. Any change to the Extension or Map as entered in the entry fields will replace the item in the list box. Delete (D) The selected item in the list box will be deleted. Save Pressing Save will accept changes to this panel and save the extension mapping parameters. Cancel Pressing Cancel will terminate this process without change and return to the Migration panel. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Migrate Configuration. Dialog Panels SMART On-Line Help ═══ 4.9. Link DB Options ═══ The Link DB Options Dialog Panel provides you with the capability to specify Link options when creating a hyperlink database from the data in the Analysis Procedure or Migration Procedure. These options are only applicable when SMART is used with SourceLink. SourceLink can be a very effective and productive tool in the migration of source code. This option panel provides the configuration settings for using SourceLink to automatically create hyperlink source code access to all points of change in the source code for migration. Using this facility you can easily access all keywords that require migration. SourceLink allows you to mouse-click to each change throughout your source base to provide a systematic method of checking or making migration code changes. Refer to "Utilities", SLBUILD in the SourceLink Technical Manual. This dialog panel is invoked from the "Build Options..." push-button on the Migrate Configuration and the Analysis Configuration dialog panel. Access Build Options Controls Link with migration link list If this radio button is selected the hyperlink database will be created with user optional links from the list of keywords encountered in the Analysis or Migration process (xxxx.LNK file). Link all possible code words If this radio button is selected the hyperlink database will be created with all possible links. This is equivalent to creating a user link list with a single character wildcard "*". Select... (Custom Response File) Press this button to display the Select Filename dialog panel. Path and filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used if you have created a custom response file to create the link database. Create Function Call Tree Check this checkbox to create a function call tree as a part of the hyperlink build. If this option is checked a valid root function must be entered in the following entry field. Enter name of root function (A) Requires the name of the root function for the call tree (most likely will be WinMain for Windows, or simply "main" for OS/2 applications. Ok Pressing Ok will accept changes to this panel and return to the applicable configuration panel. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Migrate Configuration Analysis Configuration Dialog Panels SMART On-Line Help ═══ 4.10. Migrate Format Options ═══ The Migrate Format Options Dialog Panel provides you with the capability to specify migration format options for each of the category types encountered in the migration process. It is highly recommended that you try various option selections for all of the categories on a set of sample code prior to migration of your source code. The latitude of options produce widely varied results in the migrated code. This dialog panel is invoked from any one of the 'Migration Code - Category Options' push-buttons on the Migrate Configuration dialog panel. Access Cat. 000, Cat.010, Cat.020, Cat. 030, Cat. 040, Cat.050, Cat. 999 Controls Category Name This display box contains the currently selected Migration Keyword Category. Migration Comment The group box contains the three selections for the general migration comment related to the keyword. Short Press this button to select the short migration comment for any keyword encountered in this category. Long Press this button to select the Long migration comment for any keyword encountered in this category. None Press this button to suppress insertion of any comment for this category. Template Press this button to select the insertion of a migration template (if exists) for this category. Highly recommended for categories above 010. Prototype Press this button to select the insertion of a migration prototype (if exists) for this category. Example Code Press this button to select the insertion of a migration Example Code (if exists) for this category. Restate Original Code Press this button to select the insertion of a restatement of the original source code (tagged for later removal). This option is highly recommended for all categories above 010 in order to provide migration progess analysis during the porting process. These lines should be removed as each migration line is completed. Ignore Migration Press this button to ignore migration for this category. This option should be chosen only with full understanding that no migration for this category will be affected and all items encountered for this category will be ignored during the migration process. Ok Pressing Ok will accept changes to this panel and return to the migration configuration panel. Cancel Pressing Cancel will ignore changes to this panel and return to the migration configuration panel. Default Pressing Default will set the options on this panel to this panel to the system default values. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Migrate Configuration Dialog Panels SMART On-Line Help ═══ 4.11. Analysis Configuration Dialog ═══ The Analysis Configuration Dialog Panel allows you to specify options and parameters for the Analysis Procedure. If a default List-of-Files has not been previously chosen, this panel will be preceded by the Select Filename Dialog Panel Access Analysis Configuration Dialog Controls Select List-of-Files Press this button to display the Select Filename dialog panel. List-of-Files Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. The default path and filename for the List-of-Files file is automatically displayed in this entry field. Select List-of-Files Press this button to display the Select Filename dialog panel. List-of-Files Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. The default path and filename for the List-of-Files file is automatically displayed in this entry field. Select Exclude File Press this button to display the Select Filename dialog panel. Exclude Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. This file is not required. If used, it must be a text file and contain the names of keywords that are to be ignored in the SMART Analysis or Migration This list would contain keywords that are in the SMART dictionary table that need to be excluded from processing. Process #if If this checkbox is checked the Analysis or Migration Process will recognize preprocessor "ifdef" and "ifndef" statements to include or exclude blocks of code. If this option is selected, the name of the preprocessor variables file must be included in the following entry field. Refer to Maintain PreProc Variables File. Select Preprocessor Variables File Press this button to display the Select Filename dialog panel. Preprocessor Variables Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. Suppress Recap Check this option to suppress creation of the Recap section of the Analysis display and report. Refer to Analysis Display and Report Layout Description Suppress File Detail Check this option to suppress creation of the File Detail section of the Analysis display and report. Send Analysis Output to Editor Check this option to automatically send a text copy of the Analysis display to the editor/browser that has been specified in the setup options dialog panel. Start Link DB Build Check this option to automatically start the hyperlink DB build process (only available if used with SourceLink). When used in conjunction with SourceLink you will have the ability to mouse-click to each keyword to be changed in the migration with the hyperlink database created within SourceLink Build Options... Press this push-button to open the Link Db Options dialog panel in order to set the link options. (Available only with SourceLink). Cat 020 - Auto Pcnt: This checkbox and entry field will modify the effort calculations in the Analysis evaluation. The percentage entered in this field should indicate the amount of Category 020 encountered that SMART can automatically process. Effort Modifier: This checkbox and entry field with modify the effort calculations in the Analysis evaluation. If the checkbox is checked this modifier will be used in the calculations, otherwise it will be ignored. The value entered in the entry field will be used as a modifier for all of the effort calculations. This number can be a mixed whole and decimal fraction. The number can be greater or less than 1.0, but not zero (0) if the checkbox is checked. Process [Enter] Pressing Process will proceed to the Analysis process. Save Pressing Save will store the settings of this panel without proceeding to the Analysis process. Cancel [Esc] Pressing Cancel will terminate this process without starting the Analysis Process. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Select Filename Dialog Panel Maintain PreProc Variables File Analysis Display and Report Layout Description Link Db Build Options Dialog Panels SMART On-Line Help ═══ 4.12. Migrate Configuration Dialog ═══ The Migrate Configuration Dialog Panel allows you to specify options and parameters for the Migration Procedure. The migration process will not automatically provide a new Analysis of the source code. If a default List-of-Files has not been previously chosen, this panel will be preceded by the Select Filename Dialog Panel Access Migrate Configuration Dialog Controls Select List-of-Files Press this button to display the Select Filename dialog panel. List-of-Files Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. The default path and filename for the List-of-Files file is automatically displayed in this entry field. Select Exclude File Press this button to display the Select Filename dialog panel. Exclude Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. This file is not required. If used, it must be a text file and contain the names of keywords that are to be ignored in the SMART Analysis or Migration This list would contain keywords that are in the SMART dictionary that need to be excluded from processing. Process #if If this checkbox is checked the Migration Process will recognize preprocessor "ifdef" and "ifndef" statements to include or exclude blocks of code. If this option is selected, the name of the preprocessor variables file must be included in the following entry field. Refer to Maintain PreProc Variables File. Select Preprocessor Variables File Press this button to display the Select Filename dialog panel. Preprocessor Variables Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. Overwrite Original File Check this option to overwrite original source file with migrated file output. NOT RECOMMENDED - see following option. Create Files using mapped extensions Check this option and use mapping file extensions to create migrated files. Extension Mapping Press this push-button to display the Map File Extensions dialog panel. Verify File Overwrite Check this checkbox to have a verification box displayed any time a new file is about to overwrite an existing file. Use '#ifndef' variable: Check this option to create code blocks using ifndef preprocessor statements to maintain both the source and target code after the migration process. If this option is chosen, the variable in the following entry field must be entered. If 'ifdef' code blocking is not specified, the original source must be commented out (refer to the 'Use Commented code' option below). Preprocessor variable entry field Enter the variable to be used in the migration process to block out the migration code. Use Commented code Check this option to specify that the migration process will comment out the original source code that is migrated. Tag at Column: entry field Enter that column number for insertion of SMART coding tags. The default is column 76. No Comment Tags Check this option to prevent the creation of line comment tags. NOT RECOMMENDED. If the migration tags are not inserted, automatic comment removal will not be possible. Refer to Remove Code Configuration Format //... Check this option to specify slash-slash comment symbols. Format /*...*/. Check this option to specify slash-asterisk comment symbols. Migration Code - Category Options This gorup box contains the access buttons to set the format options for each keyword category. Refer to Migration Format Options Category 000... Press this button to access the options panel for this category. Category 010... Press this button to access the options panel for this category. Category 020... Press this button to access the options panel for this category. Category 030... Press this button to access the options panel for this category. Category 040... Press this button to access the options panel for this category. Category 050... Press this button to access the options panel for this category. Category 999... Press this button to access the options panel for this category. Start Link DB Build Check this option to automatically start the hyperlink DB build process (only available if used with SourceLink). When used in conjunction with SourceLink you will have the ability to mouse-click to each keyword to be changed in the migration with the hyperlink database created within SourceLink. Build Options... Press this push-button to open the Link Db Options dialog panel in order to set the link options. (Available only with SourceLink). Output Tabs to Spaces Check this option to automatically replace tabs to the specificed number of spaces in the migrated output code. If unchecked, tabs may create uneven spacing in the inserted tags at the end of code lines in the migrated output code. Process [Enter] Pressing Process will proceed to the Migration process. Save Pressing Save will store the settings of this panel without proceeding to the Migration process. Cancel [Esc] Pressing Cancel will terminate this process and return to the main menu. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Select Filename Dialog Panel Maintain PreProc Variables File Map File Extensions Link Db Build Options Migrate Format Options Dialog Panels SMART On-Line Help ═══ 4.13. Remove Tagged Code Configuration ═══ The Remove Code Configuration Dialog Panel allows you to specify options and parameters for the Code Removal Procedure. If a default List-of-Files has not been previously chosen, this panel will be preceded by the Verify/Select Filename. Access Remove Code Configuration Dialog Controls Select List-of-Files Press this button to display the Select Filename dialog panel. List-of-Files Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. The default path and filename for the List-of-Files file is automatically displayed in this entry field. Overwrite Original File Check this option to overwrite original source file with migrated file output. NOT RECOMMENDED - see following option. Create Files using mapped extensions Check this option and use mapping file extensions to create migrated files. Extension Mapping Press this push-button to display the Map File Extensions dialog panel. Verify File Overwrite Check this checkbox to have a verification box displayed any time a new file is about to overwrite an existing file. Remove Code with the Following Tags The group box contains options for code removal based on tagged code (// followed by a single space and the specified tag ID). Informational - SM$:I Informational comment lines associated with Category 000 keyword migration. Keyword - SM$:K Keyword heading comment containing Keyword, Category, Type, and Area identification. Prototype Code - SM$:P Prototype definitions of the source and migrated code, if applicable. Short Comments - SM$:S Short comments for migration of the keyword. Long Comments - SM$:L Long, more detailed explanation regarding the migrated keyword. Code Examples - SM$:X Code examples, if available, for the migrated code. Original Code - SM$:O Original source code lines before migration. Restated Code - SM$:R Original source code lines restated with a tag. Comments - SM$:C General comments. Cat 000 Comments - SM$:0 Comments related to Category 000 keyword migration. Cat 010 Comments - SM$:1 Comments related to Category 010 keyword migration. Cat 999 Comments - SM$:9 Comments related to Category 999 keyword migration. Other tagged Lines Check this checkbox to remove additional tags as identified in the following entry fields. SM: Entry Fields Specify unique tag identifiers to be removed. These may be identity characters that you have used in the process of the code migration. Remove Comment Tags and Spaces at End of Lines The group box contains options for tag removal based on tagged code (// followed by a single space and the specified tag ID). Note that this option removed only the specified tags and any trailing tabs or spaces. This option does not remove source code. Tags begining with... This checkbox will cause removal of the end-of-line tags for the specified tags entered in the entry boxes following the checkbox. Process [Enter] Pressing Process will proceed to the Removal process. Save Pressing Save will store the settings of this panel without proceeding to the Analysis process. Cancel [Esc] Pressing Cancel will terminate this process and return to the main menu. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Verify/Select Filename Maintain PreProc Variables File Map File Extensions Dialog Panels SMART On-Line Help ═══ 4.14. Comment-Out Dialog Panel ═══ The Comment-Out Dialog Panel allows you to specify options and parameters for the Comment-Out #ifdef Procedure. If a default List-of-Files has not been previously chosen, this panel will be preceded by the Verify/Select Filename. Processing from this panel provides three different functions: #ifdef code block commenting, reversal of block comments from this process, complete code removal of #ifdef blocks (not reversible). The #if processing follows conventions for preprocessor variable processing. Access Comment-Out Code Dialog Controls Select List-of-Files Press this button to display the Select Filename dialog panel. List-of-Files Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. The default path and filename for the List-of-Files file is automatically displayed in this entry field. #ifdef list If this checkbox is checked the Comment-Out Process will process #ifdef blocks according to the variables provided in the list. If this option is selected, the name of the preprocessor variables file must be included in the following entry field. Refer to Maintain PreProc Variables File. Select #ifdef Variables File Press this button to display the Select Filename dialog panel. Preprocessor Variables Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. Overwrite Original File Check this option to overwrite original source file with the processed file output. NOT RECOMMENDED - see following option. Create Files using mapped extensions Check this option and use mapping file extensions to create migrated files. Extension Mapping Press this push-button to display the Map File Extensions dialog panel. Verify File Overwrite Check this checkbox to have a verification box displayed any time a new file is about to overwrite an existing file. Comment Line Tagging The group box contains options for inserting a tag at the end of each commented code line defined by the #ifdef block. Comment Line Tag Check this checkbox to have a tag inserted at the end of the commented code line. SM: Tag Entry Field Specify a unique tag identifier. Please insure that the tag that you use is not one used by SMART in the Migration Process, or by you for any other reason. Refer to Comment Tags Tag at Column Column Entry Field Specify a column number for the begining of the tag. Convert Tabs to spaces in all lines Check this checkbox to have all tabs in the processed files converted to spaces. Tab Spacing Entry Field Specify the number of spaces to replace tab characters in all lines of the files. Process [Enter] Pressing Process will proceed to comment-out the code represented by the #ifdef variables. Cancel [Esc] Pressing Cancel will terminate this process and return to the main menu. Help (H) When you choose the Help button, the corresponding on-line help is displayed. Clear Comments Pressing this button will process the files reversing out all commented code within the #ifdef code blocks identified by the #ifdef variable list. Remove Blocks Pressing this button will process the files REMOVING all code (including the #if statements) represented by the #ifdef variables. This processing step is not reversible. See Also: Verify/Select Filename Maintain PreProc Variables File Map File Extensions Dialog Panels SMART On-Line Help ═══ 4.15. Locate Configuration File ═══ The Locate Configuration File Dialog Panel prompts you for the path and filename of the SMART configuration file. This panel will only appear at application startup when the configuration file cannot be located. The location of the SMART configuration file is stored in OS2.INI during the installation of SMART If OS/2 has been reinstalled and you have rebuilt the OS2.INI file or the SMART configuration file has been move or deleted, this panel will appear. Access Locate Configuration File Controls Select (S) Press this button to display the Select Filename dialog panel. Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. The default path and filename for the configuration file is [the installed directory for SMART]\SMART.CFG. Ok [Enter] Pressing 'Ok' or [Enter] will accept the displayed filename. Cancel [Esc] Pressing Cancel will terminate this process without starting SMART. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Select Filename Dialog Panel Dialog Panels SMART On-Line Help ═══ 4.16. Graphical Resource Converter Dialog Panel ═══ The Graphical Resource Dialog Panel allows you to specify options and parameters along with spawning the Graphical Resource Converter (SMARTCVT.EXE). SMARTCVT.EXE can also be executed from a command line or batch program. Refer to Graphical Resource Converter for additional details. Access Graphical Resource Dialog Controls Select Source File(s) Press this button to display the Select Filename dialog panel. Source Files entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. Normal wildcard characters can be used in this field to specify a set of source files. Select Target File(s) Press this button to display the Select Filename dialog panel. Target File(s) entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. Normal wildcard characters can be used in this field to specify a set of Target (converted) files. Select Error File Press this button to display the Select Filename dialog panel. Error File entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. Send Error File to Editor Check this option to automatically send the error file generated from this process to the editor/browser that has been specified in the setup options dialog panel. Process [Enter] Pressing Process will proceed to spawn the Graphical Resource Utility program with the options specified in this panel. Cancel [Esc] Pressing Cancel will terminate this process and return to the main menu. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Verify/Select Filename Graphical Resource Converter Dialog Panels SMART On-Line Help ═══ 4.17. Resource Translator Dialog Panel ═══ The Resource Translator Dialog Panel allows you to specify options and parameters along with spawning the Resource Translator (SMARTRC.EXE). It is necessary to use this utility only when migrating from Windows to OS/2. Resource files do not require translating when migrating from one version of OS/2 to another. SMARTRC.EXE can also be executed from a command line or batch program. Refer to Resource Translator for additional details. Access Resource Translator Dialog Controls Select Resource Filename Press this button to display the Select Filename dialog panel. Resource Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. Normal wildcard characters can be used in this field to specify a set of resource files. If you use a wildcard resource filename, then you MUST explicitly name the error filr, header file and summary file (see below). Error File Check this to specify that the error file is to be user specified (otherwise the default (resource).err will be used). Select Error File Press this button to display the Select Filename dialog panel. Error File entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. Header File Check this to specify that the header file is to be user specified (otherwise the default (resource).HHH will be used). Select Header File Press this button to display the Select Filename dialog panel. Header File entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. Summary File Check this to specify that the summary file is to be user specified (otherwise the default (resource).SUM will be used). Select Summary File Press this button to display the Select Filename dialog panel. Summary File entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. Define File Check this to specify that the define file is to be user specified (otherwise no define will be used). Select Define File Press this button to display the Select Filename dialog panel. Define File entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. Font Map File Check this to specify that the font map file is to be user specified (otherwise no define will be used). Select Font Map File Press this button to display the Select Filename dialog panel. Font Map File entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. Include Paths Check this to specify that additional include paths are to be user specified (otherwise no additional paths will be used). Include Paths entry You may type in additional paths that will be included in the environment for this process. Define Symbols Check this to specify that define symbols are to be user specified (otherwise no additional symbols will be used). Define Symbols entry You may type in symbol definitions that will be included in this process. Target Screen Height Check this to specify that the processing target screen height is to be user specified (otherwise the current screen will be used). Target Screen Height entry You may type in a screen height to be used in this process. Max. Symbols entry You may change the table processing size to be used in this process (8192 is the default). Target[,Source] Code Pages entry You may specify the target (and source) code pages to be used in this process (850,1004 is the default). Translated Filename The group box contains the option for the translated file(s) from this process. In either case, the mapping mask is required. Either the original file will be written to this mapped filename, or the translated filename will be written to this mapped file. Overwrite Original Check this to specify that the translated file(s) will overwrite the original filenames and the original files will be written to the mapped filename. Use Mapping Mask Check this to specify that the translated filename will be created using the mapping mask and the original file will remain untouched. Mapping Mask entry You must specify the filename mapping mask to be used in this process (*.??X is the default). Send Error File to Editor Check this option to automatically send the error file generated from this process to the editor/browser that has been specified in the setup options dialog panel. Process [Enter] Pressing Process will proceed to spawn the Resource Translator Utility program with the options specified in this panel. Cancel [Esc] Pressing Cancel will terminate this process and return to the main menu. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Verify/Select Filename Resource Translator Dialog Panels SMART On-Line Help ═══ 4.18. Print Analysis Reports Dialog Panel ═══ This panel allows you to specify and configure the print format for printing the SMART Analysis Reports generated from the analysis processes. Access Print Dialog Controls Incl SMART Summary Report Filename Check this option to include the Analysis summary in the printed report. Select SMART Summary Report Filename Press this button to display the Select Filename dialog panel. SMART Summary Report Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. Normally this will be the same filename as your List-of-Files with an extension of SUM. Incl SMART Additional Summary Report Filename Check this option to include an additional Analysis summary in the printed report. Typically this will be a resource analysis (Windows Only). Select SMART Additional Summary Report Filename Press this button to display the Select Filename dialog panel. SMART Additional Summary Report Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. Normally this will be the same filename as your Resource List-of-Files with an extension of SUM. Select Analysis Report Filename Press this button to display the Select Filename dialog panel. Analysis Report Filename Entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. Normally this will be the same filename as your List-of-Files with an extension of RPT. Report Title Lines Three Report Title line entry fields are available for your use. All Three lines will appear on the report cover page. The first line will appear at the top of each printed page in the report. Print Copies entry You may type in the number of copies to be printed for this report. Print [Enter] Pressing Print will process the specified files to create a print file to the specified printer. Cancel [Esc] Pressing Cancel will terminate this process and return to the main menu. Format... [Esc] Pressing Format will create a popup panel to specify font and margins for the report. To maintain column spacing - Courier font should be chosen. The font size should be as small as readable to prevent wraping in landscape mode. Printer Setup... [Esc] Pressing this button will create a popup panel for the selection of a printer and for setting the job properties of the printer to obtain lanscape mode printing. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Print Analysis Report Menu Dialog Panels SMART On-Line Help ═══ 4.19. Resource Analysis Dialog ═══ The Resource Analysis Dialog Panel allows you to specify options and parameters for the Resource Analysis Procedure. (Windows Resources Only). Access Resource Analysis Dialog Controls Select List-of-Resource-Files Press this button to display the Select Filename dialog panel. List-of-Resource-Files Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. The resource List-of-Files should contain all of the .RC and .DLG resource files that are to be analyzed. Typically these files will contain Menu Templates, Dialog Templates, String Tables and Accelerator Tables. Select Output Resource Summary File Press this button to display the Select Filename dialog panel. Output Resource Summary Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. The typical path and filename for this file is the same as the Lis-of-Resource-Filname with an extension of SUM. Process #if If this checkbox is checked the Resource AnalysisProcess will recognize preprocessor "ifdef" and "ifndef" statements to include or exclude blocks of code. If this option is selected, the name of the preprocessor variables file must be included in the following entry field. Refer to Maintain PreProc Variables File. Select Preprocessor Variables File Press this button to display the Select Filename dialog panel. Preprocessor Variables Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be used. Send Analysis Output to Editor Check this option to automatically send a text copy of the Analysis display to the editor/browser that has been specified in the setup options dialog panel. Effort Modifier: This checkbox and entry field with modify the effort calculations in the Analysis evaluation. If the checkbox is checked this modifier will be used in the calculations, otherwise it will be ignored. The value entered in the entry field will be used as a modifier for all of the effort calculations. This number can be a mixed whole and decimal fraction. The number can be greater or less than 1.0, but not zero (0) if the checkbox is checked. Process [Enter] Pressing Process will proceed to the Analysis process. Cancel [Esc] Pressing Cancel will terminate this process without starting the Analysis Process. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Select Filename Dialog Panel Maintain PreProc Variables File Dialog Panels SMART On-Line Help ═══ 4.20. Select Tables Dialog Panel ═══ This panel allows you to specify and select Migration Data Base Tables for processing Analysis and/or Migration. One Primary (Application supplied) Tables is chosen. One additional User Defined Migration Data Base (UDMD) can be chosen, if required. You can specify to use the UDMD or not, and even specify that the UDMD will be the only Table processed in the run, or simply be an override of the Primary Table. Access Set Tables Dialog Controls Select1... SMART Primary Table Filename Press this button to display the Select Filename dialog panel. SMART Primary Table Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR) of the file to be used. This field will contain the Primary Table filename selected. In the following three display lines the header information for this table will be shown. Select2... UDMD Data Base Directory Press this button to display the Select Directory dialog panel. Note: you will be selecting the directory containing the UDMD Data Base files and NOT the Table filename. Only one UDMD Table and associated files may be contained within a single directory This control is disabled if you have chosen not to include a UDMD (see radio button below). UDMD Data Base Directory entry You may type in the full path, drive, directory (e.g. C:\NEWDIR) of the file to be used. Do Not Use UDMD Button Press this radio button to chose not to use a UDMD in your processing. Use UDMD with Primary Table - Button Press this radio button to chose to have UDMD in your processing to override matching keyword entries with entries in your UDMD. Use UDMD Instead of Primary Table - Button Press this radio button to chose to have UDMD in your processing to disable the Primary Table. A Primary Table must always be specified for processing that is consistent with the migration direction. If the UDMD migrates from Windows version 3.1 source to OS/2 version 2.1, then the Windows 3.1 to OS/2 2.1 table must be the Primary Table. If it is not the Primary Table, the Category, Type, and Area data will be inconsistent with the target platform. Selecting this button will disable all references to keywords in the Primary table and only use the Category, Type, and Area data from the Primary Table. Set [Enter] Pressing Set will load the newly selected tables and configuration into SMART to ready processing.. Cancel [Esc] Pressing Cancel will terminate this process and return to the main menu. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Select Tables Menu Create User UDMD Menu Dialog Panels SMART On-Line Help ═══ 4.21. Current Table Information Dialog Panel ═══ This panel Displays the header data for the tables that you have chosen for processing Analysis or Migration. If a User UDMD has be chosen for processing with the Primary Migration Table the name of the table directory and the header data will be displayed. You can change the selection of the tables with the menu item Select Tables Menu using the Select Tables Dialog Panel Access Tables Info Dialog Controls Ok [Enter] Pressing Ok will close this panel and return processing to the main menu. See Also: Select Tables Menu Create User UDMD Menu Dialog Panels SMART On-Line Help ═══ 4.22. Create UDMD Dialog Panel ═══ This panel allows you to specify and select a User create Migration Data Base Distionary and create both the Migration Table and Data Base files for Analysis or Migration processing. Please refer to the SMART Programming Guide Document found in the SMART2 Folder on your desktop for complete programming and format information regarding your UDMD. Access Set Create UDMD Dialog Controls Select1... UDMD Data Base Directory Press this button to display the Select Directory dialog panel. Note: you will be selecting the directory to store the UDMD Data Base files and NOT the Table filename. Only one UDMD Table and associated files may be contained within a single directory UDMD Data Base Directory entry You may type in the full path, drive, directory (e.g. C:\NEWDIR) of the file to be used. Select2... Input Dictionary Filename Press this button to display the Select Filename dialog panel. SMART Primary Table Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\TABLE.DCT) of the file to be used. This field will contain the ascii text dictionary filename selected. This file does not have to be in the same directory as the generated data based files, but is most logically put in the same directory. Select3... Output Log Filename Press this button to display the Select Filename dialog panel. Output Log Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\TABLE.log) of the file to be used. The log file will indicate the number of keywords created in the table and will show any errors encountered. Send Log File to Editor Check this option to automatically send a text copy of the Analysis display to the editor/browser that has been specified in the setup options dialog panel. Process [Enter] Pressing Process will create the UDMD from the information specified on this panel. At the conclusion of the processing, The Select Tables Dialog will automatically appear, assuming that you wish to select the newly created table for processing. Cancel [Esc] Pressing Cancel will terminate this process and return to the main menu. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Select Tables Menu Create User UDMD Menu Dialog Panels SMART On-Line Help ═══ 4.23. Dump UDMD Dialog Panel ═══ This panel allows you to specify and select a User create Migration Data Base Distionary and produce an ascii text dictionary file. This is a convenience utility to protect you from the loss of your dictionary file. Please refer to the SMART Programming Guide Document found in the SMART2 Folder on your desktop for complete programming and format information regarding your UDMD. Access Set Dump UDMD Dialog Controls Select1... UDMD Data Base Directory Press this button to display the Select Directory dialog panel. Note: you will be selecting the directory to the UDMD Data Base files and NOT the Table filename. Only one UDMD Table and associated files may be contained within a single directory UDMD Data Base Directory entry You may type in the full path, drive, directory (e.g. C:\NEWDIR) of the file to be used. Select2... Input Dictionary Filename Press this button to display the Select Filename dialog panel. SMART Primary Table Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\TABLE.DCT) of the file to be used. This field will contain the ascii text dictionary filename selected. This file does not have to be in the same directory as the generated data based files, but is most logically put in the same directory. Select2... Output Dictionary Filename Press this button to display the Select Filename dialog panel. Output Dictionary Filename entry You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\TABLE.log) of the file to be used. Overwrite if existing Filename Check this option if you wish to automatically overwrite any existing file with a name matching the specified Dictionary Filename. Otherwise you will be prompted for overwrite verification. Send Output Dictionary to Editor Check this option to automatically send a text copy of the Analysis display to the editor/browser that has been specified in the setup options dialog panel. Ok [Enter] Pressing Ok will recreate the dictionary from the information specified on this panel. Cancel [Esc] Pressing Cancel will terminate this process and return to the main menu. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Dump UDMD Menu Select Tables Menu Create User UDMD Menu Dialog Panels SMART On-Line Help ═══ 4.24. Trace Keyword Dialog Panel ═══ This panel allows you to specify the keyword to trace MiCL Commands or specify to trace ALL keywords. You can change the keyword to trace at any point during the migration process. Access Trace Menu Controls Enter Keyword to Trace entry You may type in nmae of the keyword to trace. This entry is ignored if you select the 'Trace ALL' processing button. Trace Keyword [Enter] Processing will proceed to trace the MiCL commands for the specified keyword as encountered in the source code currently being migrated. Trace ALL Processing will proceed to trace all MiCL commands encountered in the source code currently being migrated. Cancel [Esc] Pressing Cancel will terminate this process and return to the trace menu. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Trace Keyword... Trace MiCL Trace Menu SMART On-Line Help ═══ 4.25. Set UDMD Directory Dialog Panel ═══ The Set UDMD Directory Dialog provides selection of a directory for your UDMD database. You can specify the name of the directory selecting the drive and path through the use of the list boxes. Features 1. You can change the current directory by the following actions: You can double-click on a directory in the directory listbox, or you can type in the directory name in the file data entry box and choose the Ok button. When you enter the directory name in the file data entry box, you can type in the full path terminated by a slash; e.g. C:\OS2\SUBDIR\. When you type in the directory name without being preceded by the drive, however, you do not have to terminate the name with a slash; e.g. if you are positioned at C:\OS2\CURRDIR and you want to go to the next higher directory, you can type in '..' or 'OS2'. When you click on a file in the files listbox or type in the filename and choose the Select button, the size and date of the file are displayed. 2. The files list box displaying the files in the selected directory is for your reference only. Files cannot be selected in this panel. 3. You may also create a new directory path from this panel. 4. This panel is only active when you choose to select a UDMD. Access Alt-T, S, 2 (Tables Menu, Select Tables, Select 2 ) Controls Current: The current directory is displayed. New Path: You may type in a new directory path; if you type in the full path, this must end with a \ (e.g. C:\NEWDIR\). When you choose the Ok button, the directories listbox and files listbox are updated. You may type in the name of the file to be opened or whose size and date will be displayed (e.g. NEWFILE.C). You may type in the full path, drive, directory, and filename (e.g. C:\NEWDIR\NEWFILE.C) of the file to be opened or created or whose size and date will be displayed. Drives This listbox contains drives. You may select the current drive from this list. Directories This listbox contains directories. You may select the current directory from this list. Filenames This listbox contains a list of fileswhich are contained within the selected drive and directory. You may not select any filename. Filename selection is not required. Ok Pressing 'Ok' or [Enter] will choose the directory as specified in the entry panel. Cancel When you choose the Cancel button, the current command is canceled. Make Dir Press this button to create the directory specified in the 'New Path' entry field. If the directory already exists or cannot be created, a popup message will be displayed. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Select Tables Dialog Dialog Panels SMART On-Line Help ═══ 4.26. Printer Setup Dialog Panel ═══ The Printer Set Dialog provides selection of a printer and printer job properties for printing. Features 1. You can select an installed printer to be used for printing. 2. You can change the job properties of the selected printer. You will most probably select landscape mode for printing SMART Analysis reports. Access Alt-F, U (File Menu, Printer Setup) Controls Select Printer This listbox contains the names of installed printers. You may select a printer from this list. Ok Pressing 'Ok' or [Enter] will choose the selected printer. Cancel When you choose the Cancel button, the current command is canceled. Job Properties Press this button obtain access to the selected printer job properties dialog. You will most likely wish to set your printer to print in landscape mode for the SMART Analysis Reports. Help (H) When you choose the Help button, the corresponding on-line help is displayed. See Also: Print Analysis Report Menu Dialog Panels SMART On-Line Help ═══ 4.27. Win Help Translator Dialog Panel ═══ The Win Help Translator Dialog provides file selection and translation options for spawning the Win Help Translation utility "SMARTHLP.EXE". You can specify the name of the input and output files along with the type of output desired. Features 1. You can select the input Win Help (ASCII Text) file (default is a .HPJ file). 2. You can select the output filename or accept the default naming convention (the file will be written to the same directory as the input file). 3. You can specify the output format as a compiled .HLP, or .INF file (requires the installation of the IBM IPFC Compiler - not provided with this application). 4. The Win Help Translation Utility will be spawned in a separate OS/2 Window process as a result of selecting Ok from this dialog panel. Access Alt-R, H (Resources Menu, Translate Win Help) Controls Input Filename: Enter the filename of an existing the Win Help (ASCII Text) file. This file must be in the HPJ file format. Select (Input Filename:) Select this button to display a file selection dialog. Output Filename: You may type in a filename for the translated output, or leave the entry field blank and accept a default filename created from the input filename with the appropriate extension ( .HLP or .INF, depending upon the output format selection). Select (Output Filename:) Select this button to display a file selection dialog. Output .HLP Press this radio button to select the translated output as an OS/2 .HLP format file. This is the command line parameter default for the Win Help Translation Utility and requires no special option parameter. Output .INF Press this radio button to select the translated output as an OS/2 .INF format file. This is equivalent to the '-I' parameter to the command line execution of the Win Help Translation utility. Translate ALL Characters (-A) Check this option to translate ALL code page characters not just those with numeric values greater than 127. This is equivalent to the '-A' parameter to the command line execution of the Win Help Translation utility. Preserve Intermediate IPF File (-D) Check this option to preserve the intermediate IPF file instead of deleting it after the corresponding INF or HLP has been generated. This is equivalent to the '-D' parameter to the command line execution of the Win Help Translation utility. Use PM Default Font Only (-F) Check this option to translate to PM font only ignoring references in RTF. This is equivalent to the '-F' parameter to the command line execution of the Win Help Translation utility. Display warning msg at level [nn] (-X) Check this option to display debug messages at level nn. Where message level is between 0 and 99. This is equivalent to the '-X' parameter to the command line execution of the Win Help Translation utility. Use IPF Paragraph Tags (-U) Check this option to use IPF paragraph tags to output paragraphs, ignoring RTF paragraph spacing attributes. This is equivalent to the '-U' parameter to the command line execution of the Win Help Translation utility. Convert output file to IPF only (-C) Check this option to create an file in the IPF format instead of the HPJ file format. This is equivalent to the '-C' parameter to the command line execution of the Win Help Translation utility. Target [,Source] Code Pages (-Gnnn -Ynnn) Specify the target (and source) code page identification or accept the default 850,1004. This is equivalent to specifying these values with the '-G' and '-Y' parameter to the command line execution of the Win Help Translation utility. Table Attributes (-B[xxx]) The following five options affect the translation of help tables. Horizontal Rules (h) Check this option to apply the horizontal table rules. This is equivalent to an 'h' following the '-B' parameter to the command line execution of the Win Help Translation utility. Vertical Rules (v) Check this option to apply the vertical table rules. This is equivalent to a 'v' following the '-B' parameter to the command line execution of the Win Help Translation utility. Top and Bottom Rules (r) Check this option to apply the top and bottom table rules. This is equivalent to an 'r' following the '-B' parameter to the command line execution of the Win Help Translation utility. Box Around Table (x) Check this option to create a box around help tables. This is equivalent to an 'x' following the '-B' parameter to the command line execution of the Win Help Translation utility. Rules and Box (a) This option is equivalent to the selection of ALL four options above. When this option is selected the other four check boxes will be deselected. This option cannot be selected if any one of the other four attribute options is selected This is equivalent to an 'a' following the '-B' parameter to the command line execution of the Win Help Translation utility. Send Error file to Editor Select this option to automatically send the error file created during the translation process to the editor selected in the SMART Options panel. Ok Pressing 'Ok' or [Enter] will spawn the Win Help Translation Utility process with the options selected on this panel. Cancel When you choose the Cancel button, the translation process is not started and the values chosen on this panel are not retained. The dialog panel is closed. Help When you choose the Help button, the corresponding on-line help is displayed. See Also: Win Help Translator Topics Dialog Panels SMART On-Line Help ═══ 5. Tutorial ═══ The Tutorial Section includes the following topics:  General Introduction  Analysis Procedure  Migration Procedure START TUTORIAL - General Intro See Also: SMART On-Line Help ═══ 5.1. SMART General Introduction ═══ SMART provides analysis and source code migration from one platform to another or one version to another on a given platform. SMART - Source Migration Analysis Reporting Toolset. The process of porting source code from one platform to another is indeed difficult and subjective. In fact, exploiting the features of one platform, and using proprietary libraries, class, and objects may make it severely difficult to port to another platform without a major rewrite of the code. There is no pat solution or utility to port all code to a target platform, and we dare say there most probably never will be. However, with the proper tools, methodology, techniques and training the effort required in the migration of source code can be GREATLY reduced. The most appropriate solution for this process is to use the computer tools to perform tasks that are easily identified, routine, and labor intensive and provide a knowledge base to contain information related to all occurence types of differences between the platforms. The human element must be applied where the complexity of the issue is too complicated for the computer analysis. It is obvious to again provide the programming professional with powerful productivity tools to make global changes based on the migration issues of complex nature. This is the One Up SMART approach to native code migration. SMART supports Windows 16 bit -> OS/2 32 bit, Windows 32 bit -> OS/2 32 bit, and OS/2 16 bit -> OS/2 32 bit depending upon the tables that are installed with this application. SMART is designed to assist in the analysis and migration of native source code from one platform to another or one version of an operating environment to another on the same platform. The platform dependent data is contained in the migration dictionary (table) and the migration database files. This process is based on finding keywords (API calls, symbols, parameters, typedefs, etc) that differ in the migration. No attempt is made to analysis the intended use of the application source code. As such there is no intent to evaluate platform explotation, or evaluate the use of the source code for application functionality such as MDI, DDE, communication, LAN, and etc. The base API keyword differences are categorized into groups to represent the difficulty in migration, ranging from a simple literal replacement to the case where the functionality does not exist in the target platform. SMART will analyze source code and prepare a report (display) providing a detailed evaluation of the migration requirements. Furthermore, in the migration process, SMART will process the user specified source files and create migrated source files. The migrated source file will contain automatic migration changes (where possible) and in all cases will provide in-line commented code for the developer to complete the migration. CONTINUE TUTORIAL - Analysis See Also: SMART - Product Information SMART On-Line Help Tutorial ═══ 5.2. Analysis Procedure ═══ The analysis of source code for an evaluation of the migration and porting effort is accomplished through the use of SMART Analysis Procedure. This procedure simply consists of creating a text file (called a List-of-Files) with the fully qualified filenames of the files to be analyzed, and then perform the analysis procedure. The results of the analysis can be viewed on-screen and printed using SourceLink or a word processing application. 1. Create Analysis directories. Each separate analysis should be performed from a separate directory. The directory will contain the "List-of-Files" file, and subsequently will contain analysis files created by the SMART Analysis process. Refer to the files in the Reference Section of this help. If separate analyses are to be created, each to represent a different component of the product under analysis, an individual sub-directory should be created to contain the analysis files. Each "List-of-Files" for each of these analyses should have a different filename, even though they will be in a different sub-directory. Sub-directories can be created from SourceLink using the "Copy" function under the "More" main menu selection. Select the directory to create the new sub-directory in the "TO" section of the "Copy" dialog panel. Type the name of the new sub-directory in the "TO" "File" entry panel and press "Make Dir.". Note that you will automatically be placed in this new sub-directory. If these sub-directories are created under the installed "SMART" directory, then the sub-directories will be wiped clean as part of the SMART removal process. 2. Copy the source files to be analyzed to a backup directory (and appropriate sub-directories) that will be used in this analysis. 3. Create the "List-of-Files" files containing the files for the analysis. Use the "Maintain List-of-Files" function under the "Files" main menu item in SMART or the equivalent function in SourceLink under the "Link" main menu. The files in this list may span multiple directories and even drives. 4. Execute "Analyze Code" under the "Analysis" Menu selection. Take care to select the proper option on the setup panel for this function. The standard options will have only the "Send Analysis Output to Editor" checked (all other options unchecked). The "List-of-Files" filename should be shown in the "List-of-Files" entry panel. NOTE: multiple instances of SM.A.R.T. can be run at the same time if running multiple analyses. This may speed processing. 5. At the completion of the analysis, you will be able to print the analysis report from SourceLink (as displayed at the completion of the analysis). With the report showing on the SourceLink edit screen, select "More", "Printing" and "Print Current File". Select "Printer Setup" to select appropriate printer, and then chose "Job Properties" to select "Landscape" for the printing mode. Close the printing setup panels with "Ok". Select "Formatting" and set the following parameters for the printed format. Uncheck "Date/Time..." and "Word Wrap". Set all page margins to 0.0. Press "Select Fonts". Uncheck "Display" but leave "Printer" fonts checked. Select the smallest "Courier" font available, "Normal" style. Close the "Formatting panels with "Ok". One last check before printing - insure that "Print File" on the "Print" dialog panel is selected (instead of "Print Select"). Press "Ok" on the "Print" dialog panel to print the analysis report. 6. Removal and Backup of Analysis Files. To save the analysis files to floppy disk, select "Pack up Analysis Files" from the "Analysis" menu in SMART If you are running multiple analyses, you may wish to perform this step after each analysis. You will need a floppy disk with blank sufficient space to perform this function. You will also need a copy of the compression utility "PKZIP2.EXE" from PKWARE (not included with this application) in the same directory with SMART.EXE. The captured data in these analysis files contains absolutely no other information than appears in the analysis report. The data is in text and binary format and is used to rerun the analysis report if necessary with different file combinations or analysis options. The files copied to the floppy disk are: A text format of the analysis report, a compress file containing the analysis numerical summary data, and the text format of the List-of-Files file used for the analysis. After the analysis data is copied to the floppy disk, you can remove the small summary analyses files by selecting the Remove Temp Analysis Files" from the "Analysis" menu. Insure that the proper "List-of-Files" file is used in this process. If multiple analyses are performed, this process must be performed for each List-of-Files used. This process will delete all "*.??^" files associated with the analysis. The 'EFFORT' value calculated for the Analysis Reportis a relative number related to the number of hours required to complete the migration. The is a subject number and varies depending upon the developers experience in the migrating platforms, and the tools, techniques and methodologies uses in the migration. The One Up Corporation Porting Work Shops may greatly reduce your porting effort through the techniques tought in these Work Shop sessions. It is suggested that you proceed through a complete migration of the sample code provided in the installation of this product, or other small sample of your source code to determine the relative difference between the reported EFFORT from SMART and the hours required in your actual process. The EFFORT value from the SMART Analysis should be used as a guide only and may not bear any correspondence to the actual time required in any porting process. The EFFORT value does not include any time required to prepare your code for migration, nor the correction of any compilation errors induced by the migration process, or time required in learning the target or source platform programming internals. CONTINUE TUTORIAL - Migration BACK - General Introduction See Also: Analysis Display and Report Layout Description Analysis Menu - Analysis Functions. SMART On-Line Help Tutorial ═══ 5.3. Migration Procedure ═══ The migration process of SMART processes the specified source files and generates migrated files with code changes and in-line comments. The List-of-Files file contains the fully qualified files to migrate (as in the Analysis Process). The migrated files will be placed in the same directory as the source files (with mapped extensions). The Migration Configuration dialog panel provides the user with the opportunity to select migration formats and options. It is highly recommended that you test various output migration ofrmats with a small set of sample code in order to determine the best format for your intended purpose. 1. Perform Analysis Procedure First Prior to executing the Migration procedure, you will want to perform the Analysis Procedure on the source code to be migrated. Refer to Analysis Procedure. 2. Create the "List-of-Files" files containing the files for the analysis. Use the "Maintain List-of-Files" function under the "Files" main menu item in SMART or the equivalent function in SourceLink under the "Link" main menu. The files in this list may span multiple directories and even drives. If you have created the List-of-Files in the Analysis procedure, you may wish to modify the list for migrating a sub set of the original List-of-Files. 3. Execute "Migrate Code" under the "Migration" Menu selection. Take care to select the proper option on the setup panel for this function. You will have a great latitude of options in the configuration of the Migration process. Refer to the Migration Configuration Dialog Panel for an explanation of these options. The typical default selections include: Create files using mapped extensions, use of commented code (as opposed to 'ifdef' blocks). If you are using SourceLink you will want to create a link database for hyperlinking to migrated changes, otherwise uncheck this option. If building the SourceLink Database you may wish to set the DB options to link on the migration keyword list. You will probably like to use the files in the samples directory of the SMART installation to try migrations with various options and see the results. 4. Rerunning the Migration process with the same List-of-Files and the same file extension mapping will overwrite the original migration files. Recursive migration of the same files may give unpredictable results. 5. Note that the migration process creates a new List-of-Files file containing the new migrated file names which you may wish to use for a number of purposes, including the SourceLink Link Database build. 6. You can now proceed through the migrated files to complete the migration according to the in-line comments that have been placed in the migrated code. Use of an editor with hyperlink source code access, like SourceLink will be a valuable asset in quickly pulling up on-line help and accessing all references to a migrated function, structure, etc. 7. After you have made all changes to the migrated code, you can use the Remove Comments and Tagged Code to remove migration comment, examples and other code that has been inserted in the source files to assist you in the migration process. BACK - Analysis See Also: Migration Menu - Migration Functions. SMART On-Line Help Tutorial ═══ 6. Reference ═══ The Reference Section includes the following topics:  Migration Formats  SMART filenames  General Specification  Analysis Display and Report Layout Description  Accelerator Keys  Comment Tags See Also: SMART On-Line Help ═══ 6.1. Migration Formats ═══ Migrated code formats are user configurable. A number of options relating to the migrated code are available. The Format References include the following formats:  Original source code (before migration)  Format - 'ifdef' and '/*...*/' comments  Format - 'ifdef' and '//' comments  Format - NO 'ifdef' and '/*...*/' comments  Format - NO 'ifdef' and '//' comments  Format - '//' comments and NO Tags  Format - '//', Short comments and Prototypes  Format - '/*...*/', Long comments, Prototypes and Examples  Format - Source code with migration comments removed See Also: SMART On-Line Help Reference ═══ 6.1.1. Original source code (before migration) ═══ Original Source Code /* Open the file with the OF_PARSE flag to obtain the fully qualified * pathname in the OFSTRUCT structure. */ wFileTemp = OpenFile ((LPSTR)szFile, (LPOFSTRUCT)&of, OF_PARSE); _lclose (wFileTemp); LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz)); See Also: Migration Formats SMART On-Line Help Reference ═══ 6.1.2. Format - 'ifdef' and '/*...*/' comments ═══ Format - 'ifdef' and '/*...*/' comments /* SM$:FO C:\TEST\TEST.C - 03/28/94 14:25:07 */ /* Open the file with the OF_PARSE flag to obtain the fully qualified * pathname in the OFSTRUCT structure. */ #ifndef OS221 wFileTemp = OpenFile ((LPSTR)szFile, (LPOFSTRUCT)&of, OF_PARSE);/* SM$:O */ #else wFileTemp = OpenFile ((PSZ)szFile, (LPOFSTRUCT)&of, OF_PARSE); /* SM$:M3 */ DosOpen (,,,,,,,) /* SM$:M3 */ DosQueryPathInfo (, FIL_QUERYFULLNAME,,); /* SM$:M2 */ /* SM$:C * OpenFile Cat:030 Type:010 Area:130 SM$:K * Replace with DosOpen, DosDelete, or DosQueryPathInfo SM$:S * SM$:C * LPSTR replaced with PSZ - Cat:010 Type:030 Area:990 SM$:1 * SM$:C * OF_PARSE Cat:020 Type:030 Area:130 SM$:K * Use DosQueryPathInfo to replace OpenFile function call SM$:S */ /* SM$:C */ #endif #ifndef OS221 _lclose (wFileTemp); /* SM$:O */ #else DosClose (wFileTemp); /* SM$:M1 */ /* SM$:C * _lclose replaced with DosClose - Cat:010 Type:010 Area:130 SM$:1 */ /* SM$:C */ #endif #ifndef OS221 LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz)); /* SM$:O */ #else LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz)); /* SM$:R */ WinLoadString (,,,,); /* SM$:M2 */ /* SM$:C * LoadString Cat:020 Type:010 Area:060 SM$:K * Replace with WinLoadString SM$:S */ /* SM$:C */ #endif See Also: Original source code (before migration) Migration Formats SMART On-Line Help Reference ═══ 6.1.3. Format - 'ifdef' and '//' comments ═══ Format - 'ifdef' and '//' comments // SM$:FO C:\TEST\TEST.C - 03/28/94 14:30:22 /* Open the file with the OF_PARSE flag to obtain the fully qualified * pathname in the OFSTRUCT structure. */ #ifndef OS221 wFileTemp = OpenFile ((LPSTR)szFile, (LPOFSTRUCT)&of, OF_PARSE);// SM$:O #else wFileTemp = OpenFile ((PSZ)szFile, (LPOFSTRUCT)&of, OF_PARSE); // SM$:M3 DosOpen (,,,,,,,) // SM$:M3 DosQueryPathInfo (, FIL_QUERYFULLNAME,,); // SM$:M2 // OpenFile Cat:030 Type:010 Area:130 SM$:K // Replace with DosOpen, DosDelete, or DosQueryPathInfo SM$:S // SM$:C // LPSTR replaced with PSZ - Cat:010 Type:030 Area:990 SM$:1 // SM$:C // OF_PARSE Cat:020 Type:030 Area:130 SM$:K // Use DosQueryPathInfo to replace OpenFile function call SM$:S #endif #ifndef OS221 _lclose (wFileTemp); // SM$:O #else DosClose (wFileTemp); // SM$:M1 // _lclose replaced with DosClose - Cat:010 Type:010 Area:130 SM$:1 #endif #ifndef OS221 LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz)); // SM$:O #else LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz)); // SM$:R WinLoadString (,,,,); // SM$:M2 // LoadString Cat:020 Type:010 Area:060 SM$:K // Replace with WinLoadString SM$:S #endif See Also: Original source code (before migration) Migration Formats SMART On-Line Help Reference ═══ 6.1.4. Format - NO 'ifdef' and '/*...*/' comments ═══ Format - NO 'ifdef' and '/*...*/' comments /* SM$:FO C:\TEST\TEST.C - 03/28/94 14:32:18 */ /* Open the file with the OF_PARSE flag to obtain the fully qualified * pathname in the OFSTRUCT structure. */ /* wFileTemp = OpenFile ((LPSTR)szFile, (LPOFSTRUCT)&of, OF_PARSE); SM$:O */ wFileTemp = OpenFile ((PSZ)szFile, (LPOFSTRUCT)&of, OF_PARSE); /* SM$:M3 */ DosOpen (,,,,,,,) /* SM$:M3 */ DosQueryPathInfo (, FIL_QUERYFULLNAME,,); /* SM$:M2 */ /* SM$:C * OpenFile Cat:030 Type:010 Area:130 SM$:K * Replace with DosOpen, DosDelete, or DosQueryPathInfo SM$:S * SM$:C * LPSTR replaced with PSZ - Cat:010 Type:030 Area:990 SM$:1 * SM$:C * OF_PARSE Cat:020 Type:030 Area:130 SM$:K * Use DosQueryPathInfo to replace OpenFile function call SM$:S */ /* SM$:C */ /* _lclose (wFileTemp); SM$:O */ DosClose (wFileTemp); /* SM$:M1 */ /* SM$:C * _lclose replaced with DosClose - Cat:010 Type:010 Area:130 SM$:1 */ /* SM$:C */ /* LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz)); SM$:O */ LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz)); /* SM$:R */ WinLoadString (,,,,); /* SM$:M2 */ /* SM$:C * LoadString Cat:020 Type:010 Area:060 SM$:K * Replace with WinLoadString SM$:S */ /* SM$:C */ See Also: Original source code (before migration) Migration Formats SMART On-Line Help Reference ═══ 6.1.5. Format - NO 'ifdef' and '//' comments ═══ Format - NO 'ifdef' and '//' comments // SM$:FO C:\TEST\TEST.C - 03/28/94 14:33:45 /* Open the file with the OF_PARSE flag to obtain the fully qualified * pathname in the OFSTRUCT structure. */ // wFileTemp = OpenFile ((LPSTR)szFile, (LPOFSTRUCT)&of, OF_PARSE);SM$:O wFileTemp = OpenFile ((PSZ)szFile, (LPOFSTRUCT)&of, OF_PARSE); // SM$:M3 DosOpen (,,,,,,,) // SM$:M3 DosQueryPathInfo (, FIL_QUERYFULLNAME,,); // SM$:M2 // OpenFile Cat:030 Type:010 Area:130 SM$:K // Replace with DosOpen, DosDelete, or DosQueryPathInfo SM$:S // SM$:C // LPSTR replaced with PSZ - Cat:010 Type:030 Area:990 SM$:1 // SM$:C // OF_PARSE Cat:020 Type:030 Area:130 SM$:K // Use DosQueryPathInfo to replace OpenFile function call SM$:S // _lclose (wFileTemp); SM$:O DosClose (wFileTemp); // SM$:M1 // _lclose replaced with DosClose - Cat:010 Type:010 Area:130 SM$:1 // LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz)); SM$:O LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz)); // SM$:R WinLoadString (,,,,); // SM$:M2 // LoadString Cat:020 Type:010 Area:060 SM$:K // Replace with WinLoadString SM$:S See Also: Original source code (before migration) Migration Formats SMART On-Line Help Reference ═══ 6.1.6. Format - '//' comments and NO Tags ═══ Format - '//' comments and NO Tags Note: Option chosen to insert Short comment and Prototype only. Elimination of tags on commented lines prevents automatic removal of inserted code! // SM$:FO C:\TEST\TEST.C - 03/28/94 14:34:59 /* Open the file with the OF_PARSE flag to obtain the fully qualified * pathname in the OFSTRUCT structure. */ // wFileTemp = OpenFile ((LPSTR)szFile, (LPOFSTRUCT)&of, OF_PARSE); wFileTemp = OpenFile ((PSZ)szFile, (LPOFSTRUCT)&of, OF_PARSE); DosOpen (,,,,,,,) DosQueryPathInfo (, FIL_QUERYFULLNAME,,); // OpenFile Cat:030 Type:010 Area:130 // Replace with DosOpen, DosDelete, or DosQueryPathInfo // // LPSTR replaced with PSZ - Cat:010 Type:030 Area:990 // // OF_PARSE Cat:020 Type:030 Area:130 // Use DosQueryPathInfo to replace OpenFile function call // _lclose (wFileTemp); DosClose (wFileTemp); // _lclose replaced with DosClose - Cat:010 Type:010 Area:130 // LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz)); LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz)); WinLoadString (,,,,); // LoadString Cat:020 Type:010 Area:060 // Replace with WinLoadString See Also: Original source code (before migration) Migration Formats SMART On-Line Help Reference ═══ 6.1.7. Format - '//', Short comments and Prototypes ═══ Format - '//', Short comments and Prototypes // SM$:FO C:\TEST\TEST.C - 03/28/94 14:37:08 /* Open the file with the OF_PARSE flag to obtain the fully qualified * pathname in the OFSTRUCT structure. */ // wFileTemp = OpenFile ((LPSTR)szFile, (LPOFSTRUCT)&of, OF_PARSE);SM$:O wFileTemp = OpenFile ((PSZ)szFile, (LPOFSTRUCT)&of, OF_PARSE); // SM$:M3 DosOpen (,,,,,,,) // SM$:M3 DosQueryPathInfo (, FIL_QUERYFULLNAME,,); // SM$:M2 // OpenFile Cat:030 Type:010 Area:130 SM$:K // Replace with DosOpen, DosDelete, or DosQueryPathInfo SM$:S // SM$:C // APIRET APIENTRY DosOpen(PSZ pszFileName, PHFILE pHf, SM$:P // PULONG pulAction, ULONG cbFile, ULONG ulAttribute, SM$:P // ULONG fsOpenFlags, ULONG fsOpenMode, PEAOP2 peaop2); SM$:P // APIRET APIENTRY DosQueryPathInfo(PSZ pszPathName, SM$:P // ULONG ulInfoLevel, PVOID pInfoBuf, ULONG cbInfoBuf); SM$:P // APIRET APIENTRY DosSearchPath(ULONG flag, PSZ pszPathOrName, SM$:P // PSZ pszFilename, PBYTE pBuf, ULONG cbBuf); SM$:P // APIRET APIENTRY DosDelete(PSZ pszFile); SM$:P // SM$:C // LPSTR replaced with PSZ - Cat:010 Type:030 Area:990 SM$:1 // SM$:C // OF_PARSE Cat:020 Type:030 Area:130 SM$:K // Use DosQueryPathInfo to replace OpenFile function call SM$:S // SM$:C // APIRET APIENTRY DosQueryPathInfo(PSZ pszPathName, SM$:P // ULONG ulInfoLevel, PVOID pInfoBuf, ULONG cbInfoBuf); SM$:P // _lclose (wFileTemp); SM$:O DosClose (wFileTemp); // SM$:M1 // _lclose replaced with DosClose - Cat:010 Type:010 Area:130 SM$:1 // LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz)); SM$:O LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz)); // SM$:R WinLoadString (,,,,); // SM$:M2 // LoadString Cat:020 Type:010 Area:060 SM$:K // Replace with WinLoadString SM$:S // SM$:C // LONG APIENTRY WinLoadString (HAB hab, HMODULE hModResource, SM$:P // ULONG idString, LONG lBufferMax, PSZ pszBuffer); SM$:P See Also: Original source code (before migration) Migration Formats SMART On-Line Help Reference ═══ 6.1.8. Format - '/*...*/', Long comments, Prototypes and Examples ═══ Format - '/*...*/', Long comments, Prototypes and Examples // SM$:FO C:\TEST\TEST.C - 03/28/94 14:38:42 /* Open the file with the OF_PARSE flag to obtain the fully qualified * pathname in the OFSTRUCT structure. */ // wFileTemp = OpenFile ((LPSTR)szFile, (LPOFSTRUCT)&of, OF_PARSE);SM$:O wFileTemp = OpenFile ((PSZ)szFile, (LPOFSTRUCT)&of, OF_PARSE); // SM$:M3 DosOpen (,,,,,,,) // SM$:M3 DosQueryPathInfo (, FIL_QUERYFULLNAME,,); // SM$:M2 // OpenFile Cat:030 Type:010 Area:130 SM$:K // Replace with DosOpen to open a file. Use DosQueryPathInfo SM$:L // specifying FIL_QUERYFULLNAME to parse the file name. Use SM$:L // DosSearchPath to query the fully qualified path name of a SM$:L // file. Use DosDelete to delete a file. SM$:L // SM$:C // APIRET APIENTRY DosOpen(PSZ pszFileName, PHFILE pHf, SM$:P // PULONG pulAction, ULONG cbFile, ULONG ulAttribute, SM$:P // ULONG fsOpenFlags, ULONG fsOpenMode, PEAOP2 peaop2); SM$:P // APIRET APIENTRY DosQueryPathInfo(PSZ pszPathName, SM$:P // ULONG ulInfoLevel, PVOID pInfoBuf, ULONG cbInfoBuf); SM$:P // APIRET APIENTRY DosSearchPath(ULONG flag, PSZ pszPathOrName, SM$:P // PSZ pszFilename, PBYTE pBuf, ULONG cbBuf); SM$:P // APIRET APIENTRY DosDelete(PSZ pszFile); SM$:P // SM$:C // Windows: SM$:X // OFSTRUCT OFStruct; SM$:X // HFILE hFile = OpenFile ("TEST.DAT", &OFStruct, SM$:X // OF_CREATE); SM$:X // OS/2: SM$:X // HFILE hFile; SM$:X // ULONG ulAction; SM$:X // DosOpen ("TEST.DAT", &hFile, &ulAction, FILE_NORMAL, SM$:X // OPEN_ACTION_CREATE_IF_NEW | SM$:X // OPEN_ACTION_REPLACE_IF_EXISTS, OPEN_ACCESS_READWRITE | SM$:X // OPEN_SHARE_DENYNONE, NULL); SM$:X // SM$:C // LPSTR replaced with PSZ - Cat:010 Type:030 Area:990 SM$:1 // SM$:C // OF_PARSE Cat:020 Type:030 Area:130 SM$:K // Use DosQueryPathInfo specifying FIL_QUERYFULLNAME to SM$:L // query the full path of a file. This replaces the OpenFile SM$:L // function call. SM$:L // SM$:C // APIRET APIENTRY DosQueryPathInfo(PSZ pszPathName, SM$:P // ULONG ulInfoLevel, PVOID pInfoBuf, ULONG cbInfoBuf); SM$:P // _lclose (wFileTemp); SM$:O DosClose (wFileTemp); // SM$:M1 // _lclose replaced with DosClose - Cat:010 Type:010 Area:130 SM$:1 // LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz)); SM$:O LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz)); // SM$:R WinLoadString (,,,,); // SM$:M2 // LoadString Cat:020 Type:010 Area:060 SM$:K // Replace with WinLoadString SM$:L // SM$:C // LONG APIENTRY WinLoadString (HAB hab, HMODULE hModResource, SM$:P // ULONG idString, LONG lBufferMax, PSZ pszBuffer); SM$:P // SM$:C // Windows: SM$:X // int iLen = LoadString (hInst, 1, szBuf, sizeof(szBuf)); SM$:X // OS/2: SM$:X // LONG lLen = WinLoadString (hAB, hMod, 1, sizeof(szBuf), SM$:X // szBuf); SM$:X See Also: Original source code (before migration) Migration Formats SMART On-Line Help Reference ═══ 6.1.9. Format - Source code with migration comments removed ═══ Format - Source code with migration comments removed /* Open the file with the OF_PARSE flag to obtain the fully qualified * pathname in the OFSTRUCT structure. */ wFileTemp = OpenFile ((PSZ)szFile, (LPOFSTRUCT)&of, OF_PARSE); // SM$:M3 DosOpen (,,,,,,,) // SM$:M3 DosQueryPathInfo (, FIL_QUERYFULLNAME,,); // SM$:M2 DosClose (wFileTemp); // SM$:M1 WinLoadString (,,,,); // SM$:M2 See Also: Original source code (before migration) Migration Formats SMART On-Line Help Reference ═══ 6.2. Filenames ═══ The SMART generates a number of files related to Analysis and Migration. Also, a set of files may be created as a result of SourceLink creating a hyperlink database for the source files processed by SMART These files are listed below: SMART Dictionary and Migration Database files (one set per directory)  XXXXXXXX.TBL - Dictionary  SMART1DB.D1 - Database  SMART1DB.D2 - Database  SMART1DB.D3 - Database  SMART1DB.D4 - Database  SMART1DB.K1 - Database Analysis and Migration files (in List-of-Files Directory)  XXXXXXXX.LST - List-of-Files  (List-of-Files).RPT - Analysis report  (List-of-Files).LOG - Logfile from SourceLink (SLBUILD)  (List-of-Files).RSP - Response File for SourceLink (SLBUILD)  (List-of-Files).LNK - Analysis Keyword List  (List-of-FileX).LOG - Logfile from SourceLink (SLBUILD) (Migrated files)  (List-of-FileX).RSP - Response File for SourceLink (SLBUILD) (Migrated files)  (List-of-FileX).LNK - Migration Keyword List Analysis and Migration Files (in directories with original source files)  XXXXXXXXX.X_X - Migrated Source file with mapped extension  (source file)_^ - Binary analysis data file (one for each source file) SourceLink Database Link files and report displays (from DB Build) (in directory with List-of-Files)  SLINK2DB.D1 - SourceLink Link Database file  SLINK2DB.D2 - SourceLink Link Database file  SLINK2DB.K1 - SourceLink Link Database file  SLINK2DB.K2 - SourceLink Link Database file  SLINK2DB.K3 - SourceLink Link Database file  SL_CALL.RPT - SourceLink Call Tree display report  SL_DLGBOX.RPT - SourceLink Dialog Template display report  SL_FUNCT.RPT - SourceLink Functions List display report  SL_GLOB.RPT - SourceLink Globals display report  SL_MODS.RPT - SourceLink Files display report  SL_UNREF.RPT - SourceLink Unreferenced Functions display report  SL_USER.RPT - SourceLink User Links display report (contains keywords found in Migration or Analysis from SMART processes) See Also: SMART On-Line Help Reference ═══ 6.3. Comment Tags ═══ The SMART generated migration code contains comment tags for identification and removal. These tags are listed below:  SM$:I - Informational  SM$:K - Keyword Classification  SM$:P - Keyword Prototype  SM$:S - Short Comment  SM$:L - Long Comment  SM$:X - Keyword Sample Code  SM$:O - Original Source Code  SM$:R - Restated Original Source  SM$:Mn - Migrated code (n = highest category)  SM$:C - General comment line  SM$:0 - Category 000 comment  SM$:1 - Category 010 comment  SM$:9 - Category 999 comment See Also: SMART On-Line Help Reference Remove Comment Code Panel ═══ 6.4. General Specification ═══ SMART is designed to assist in the analysis and migration of native source code from one platform to another or one version of an operating environment to another on the same platform. The platform dependent data is contained in the migration dictionary (table) and the migration database files. This process is based on finding keywords (API calls, symbols, parameters, typedefs, etc) that differ in the migration. These keyword differences are categorized into group to represent the difficult in migration, ranging from a simple literal replacement to the case where the functionality does not exist in the target platform. SMART will analyze source code and prepare a report (display) providing a detailed evaluation of the migration requirement. Furthermore, in the migration process, SMART will process the user specified source files and create migrated source files. The migrated source file will contain automatic migration changes (where possible) and in all cases will provide in-line commented code for the user to complete the migration. The following general specifications define this product. Source Code  "C" and C++ program source and header files. NOTE: Calls to objects and libraries that are not part of the basic platform are not covered.  Resource Files are translated by The SMART Resource Translator (not included). Number of Files  List of files must be capable of display in a list box. File Size  Virtually unlimited. Cataloged Migration Points of Difference  Win16->OS/2 32- approximately 4700 keyword differences.  Win32->OS/2 32- approximately 14,000 keyword differences.  OS/2 16->32 Bit - approximately 800 keyword differences. Migration with Macro redefinitions  Some difficulty may be encountered depending upon the hiding and redefinition of coding by use of macro redefinitions.  Maximum path and file length 255  Maximum directory levels 10  Maximum ifdef name length 40  Maximum "List-of-Files" data 64K (unless created by an editor)  Maximum lines of code in any one file 32767  Maximum code line length 512  Supported preprocessor statements: #if, #ifdef, # if defined, #else, #elif, #endif Analysis and Migration- syntax not supported: Keywords within quotation marks Keywords within macro define statements Fields of a structure are not identified for migration Context of a parameter within a call Resource Translator (Windows Only) restrictions: Macros cannot be used for any of the reserved resource definition keywords. Preprocessor conditional statements must begin and end within a single file. Preprocessor conditional statements within a DIALOG resource definition template are properly evaluated but are not output to the converted resource file. #include and rcinclude statements are not recognized within any multiline resource statements. #define statements are not recognized within any multiline resource statements. Macro definitions which contain parameter substitutions are currently not processed. Converted files replace any existing files with the same name. When converting dialog units as outlined in the Dialog Conversion section the conversion is relative to the system font for the current display resolution. See Also: SMART On-Line Help Reference ═══ 6.5. Layout Description for Analysis Display and Report ═══ The SMART Analysis process creates a detailed report evaluating the effort for migrating the source code. This report is in two parts - a detailed section covering each source file, and a recap of the analysis by categories related to the difficulty of the migration, the type of keyword affected and a list of each category of keywords. The following documentation explains the column headings in this analysis display and report. File Detail  PATH/FILENAME If a new path is encountered in the List-of-Files in the Analysis, this path will be displayed in this column.  SIZE The size of the source file in bytes.  LINES The total number of lines of text in the source file - including lines skipped and comments.  CODE The number of lines of text in the source file excluding blank lines and comments.  HITS The number of keyword occurences that will require migration change.  PCT HITS The percentage of Hits from the previous column to the number of Code lines.  INSTS The number of different keywords encountered in the hits.  PCT INSTS The percentage of instances from the previous column to the number of code lines.  EFFORT A relative number indicating the effort to migrate the hits encountered in the source file. This effort value takes in consideration the Category of the hits the number of hits and the number of different keyword instances. The higher the effort value, the more time is estimated to migrate the code.  CAT xxx The number of Hits in each category. The categories are defined in an increasing level of difficulty as defined in the Recap section of the analysis. Recap  ITEMS A descriptive name for the recap item displayed.  HITS The number of keyword occurences that will require migration change.  PCT HITS The percentage of Hits from the previous column to the total number of Hits.  INSTS The number of different keywords encountered in the hits.  PCT INSTS The percentage of instances from the previous column to the total number of instances encountered.  EFFORT A relative number indicating the effort to migrate the recap item displayed. This effort value takes in consideration the Category of the hits the number of hits and the number of different keyword instances. The higher the effort value, the more time is estimated to migrate the code. This number is highly subjective and may not accurately apply to your specific set of source code. Use this number as a guide only until you have related this number to a factor relating to the number of developer hours required to complete the migration process. See Also: SMART On-Line Help Reference ═══ 6.6. SMART Accelerator Keys ═══ The Following Accelerator keys can be used with SMART Display Selection: F5 = Toggle Detail or Recap. Functions and Processes: Alt+O = Open/View Files. Alt+L = Maintain List-of-Files. Alt+V = Maintain Preprocessor Variables. Alt+S = Set Current List-of-Files. Alt+P = Print Analysis Report. Alt+F4 = Exit SMART. Alt+A = Analysis Process. Alt+M = Migration Process. Alt+T = Trace MiCL. Alt+R = Translate Resources. Alt+C = Convert Graphical Resources. ═══ 7. Utility Processes ═══ The Utility Processes Section includes the following topics:  Resource Translator  Win Help Translator  Graphical Resource Converter  SMART Viewer See Also: SMART On-Line Help ═══ 7.1. Resource Translator Topics ═══ The Resource Translator Section includes the following topics:  Resource Translator Introduction  Resource Translator Options  Resource Translator Output  Resource Translator Messages  Resource Translator Dialog Panel See Also: SMART On-Line Help Utility Processes ═══ 7.1.1. Resource Translator Introduction ═══ (It is necessary to use this utility only when migrating from Windows to OS/2. Resource files do not require translating when migrating from one version of OS/2 to another.) The SMART Windows to OS/2 Resource Conversion utility (SMARTRC.EXE) provides source-to-source conversion of Windows resource definition files to OS/2 resource definition files. Support is provided for converting the following resource definition statements: - ACCELERATORS - ICON - BITMAP - LISTBOX - CAPTION - LTEXT - CHECKBOX - MENU - CLASS - MENUITEM - COMBOBOX - POPUP - CONTROL - PUSHBUTTON - CTEXT - RADIOBUTTON - CURSOR - RCDATA - DEFPUSHBUTTON - RTEXT - DIALOG - SCROLLBAR - EDITTEXT - SEPARATOR - FONT - STRINGTABLE - GROUPBOX - STYLE SMARTRC also recognizes and processes the following preprocessor directives: - #define - #ifdef - #elif - #ifndef - #else - #include - #endif - #undef - #if - rcinclude Additional functionality includes:  Automatic reformatting of all Windows resource definition statements to the equivalent OS/2 format.  Automatic generation of alternate accelerator key sequences.  Automatic reformatting of strings contained in RCDATA to produce equivalent binary representation in the RES file.  Automatic conversion of mnemonic characters  Automatic scaling and recalculation of OS/2 dialog units from Windows dialog units  Automatic remapping of Windows dialog control styles to OS/2 dialog control styles.  Automatic remapping of common dialog control identifiers to equivalent OS/2 common dialog control identifiers.  Automatic detection of named-resources and generation of header file to assign integer identifiers.  Optional dialog font mapping from Windows font name and point size to OS/2 font name and point size.  Code page conversion of text strings from Windows code page to OS/2 code page. The general philosophy of converting resource definition statements is that SMARTRC will attempt to convert everything and anything that it understands. For those statements which do not have an equivalent statement in OS/2 SMARTRC will identify the file and line number on which the statement occurs. In addition, SMARTRC will identify any conversion which may result in slightly different functionality in OS/2. It is up to the developer to decide how to proceed with any statement in error. SMARTRC is a utility that can be executed from SMART through the interface dialog panel associated with the "Translate Resources..." under the "Resources" menu item or can be run from a command line or embedded in a batch command file. Although SMARTRC contains many run time options, simply specifying the resource filename without options will process with the system default parameters. See Also: SMART On-Line Help See Also: SMART On-Line Help Utility Processes Resource Translator Topics ═══ 7.1.2. Resource Translator Options ═══ Usage of the SMARTRC command is: SMARTRC [options] rcfilename rcfilename is any file containing resource definition statements. rcfilename can contain wildcard characters '?' and '*'. where [options] is one or more of the following: -C nnn Specify "nnn" as the screen height. This option uses nnn to specify the screen height to use when translating dialog coordinates for dialogs that are screen-aligned. To convert the y-position of a dialog that is screen-aligned to the OS/2 coordinate system the screen height is used in calculating the lower-left corner of the dialog. Default: current screen resolution -D name[=[value]] Define the symbol "name" to the preprocessor This option defines the symbol "name" to the preprocessor. If "value" is defined, the value of the symbol is "value". If the equal sign is given without "value", the value of the symbol is empty. If "name" is defined without the equal sign, the value of the symbol is 1. The following items are defined at program startup by SMARTRC: -DSMARTRC -DRC_INVOKED -DWINVER=0x030A -DFALSE=0 -DTRUE=1 -E filename Specify the error filename This option specifies an alternate name for the error file. Default: rcfilename.ERR -G ttt[,sss] Specify the target and source code page This option specifies the target and source code pages to use for text string conversion. Strings created by Windows text editors are normally entered using code page 1004. The default code page used by an OS/2 application is specified in the CONFIG.SYS file using the CODEPAGE tag. Default: Target code page = 850 Source code page = 1004 -H filename Specify the named-resource header filename This option specifies an alternate name for the named-resource header file created by SMARTRC. OS/2 requires that all resources have an integer identifier. Windows allows resources to have either an integer identifier or name. The named-resource header file contains a #define statement for every resource name that does not resolve to an integer value. Default: rcfilename.HHH -I pathname[s] Specify search path to use before INCLUDE path This option specifies a search path to be added to the beginning of the list of directories specified by the INCLUDE environment variable. The pathname can contain multiple directories separated by a semicolon. -L filename Specify file of preprocessor statements This option specifies a file containing preprocessor statements (i.e., #define and #include) that are to be processed prior to beginning resource translation. This option is useful for translating resource files (e.g., a dialog resource file) separately from the base RC file. -M filename Specify the font mapping file This option specifies a file that contains a list of font mappings. Font mappings are used to substitute an appropriate OS/2 font name and point size for the Windows font names and point sizes that are specified in the RC file. -R Save converted file using original filename This option reverses the default naming of converted files. By default, a converted resource file is saved using the original resource filename with the extension changed as specified by the file renaming mask (default is *.??X). This option causes the original resource file to be renamed using the file renaming mask and the converted resource file to be saved using the original resource filename. Example: Original resource file is SAMPLE.RC Default: Converted file saved as SAMPLE.RCX Original filename unchanged -R : Converted file saved as SAMPLE.RC Original file renamed to SAMPLE.RCX -S filename Specify the summary filename This option specifies an alternate name for the summary file. Default: rcfilename.SUM -X mask Specify "mask" as the file renaming mask This option specifies the file renaming mask that is used to create the converted resource filename. This mask can contain the '?' and '*' wildcard characters. The mask is applied to the original resource filename to edit and form the name of the file that contains the converted resource. Directories cannot be specified in the mask. Default: *.??X -Y nnnnn Specify "nnnnn" as the maximum number of symbols This option specifies the maximum number of symbols that can be loaded into the internal symbol table. Symbols are names specified using the "#define" preprocessor command. This option is used if the application has an unusually large number of symbols. Default: 8192 -? Display command line options This option displays the list of command line options. SMART On-Line Help Utility Processes Resource Translator Topics ═══ 7.1.3. Resource Translator Output ═══ ERROR FILE (ERR) ---------------- SMARTRC generates an error file containing a list of all warning and error messages generated during the conversion process. Each message contains the filename, line, and column at which the error occurred. SUMMARY FILE (SUM) ------------------ The summary file contains a file-by-file summary of all resources that were converted and a count of all informational, warning, and error messages. The files are output in the order in which the files were completed. A summary at the bottom of the file recaps the entire conversion process. Below is an example of the output contained in the summary file. SMART Windows to OS/2 Resource Conversion Version 1.00 Copyright (c) 1994, 1994 One Up Corporation Start: Wednesday 01/05/1994 14:03:25 Command line: smartrc showdib.rc Converting from code page <1004> to code page <850> E:\SMART\SMARTRC\TESTFILE\showdib.h Messages Output: Informational: 0 Warning: 0 Error: 0 E:\SMART\SMARTRC\TESTFILE\showdib.dlg Converted file saved as Resources Processed: DIALOG: 4 Controls: 41 Messages Output: Informational: 1 Warning: 8 Error: 15 E:\SMART\SMARTRC\TESTFILE\showdib.rc Converted file saved as Resources Processed: STRINGTABLE: 1 Strings: 1 MENU: 1 MenuItems: 21 SubMenus: 3 ICON: 1 Messages Output: Informational: 1 Warning: 7 Error: 0 TOTALS Files Processed: 3 Files Converted: 2 Resources Processed: STRINGTABLE: 1 Strings: 1 DIALOG: 4 Controls: 41 MENU: 1 MenuItems: 21 SubMenus: 3 ICON: 1 Messages Output: Informational: 2 Warning: 15 Error: 15 Finish: Wednesday 01/05/1994 14:03:28 NAMED-RESOURCE FILE (HHH) ------------------------- The named-resource file contains a #define statement for every resource name that does not resolve to an integer value. Since Windows allows resources to have either an integer identifier or a name, those resources which are identified by name must be assigned an integer identifier value. SMARTRC does this by creating a named-resource header file containing a #define statement for the named-resources that are encountered during the conversion. This header file must then be included by both the resource file and any source files which reference the named-resources. All source code references to these resources must be changed from a string reference to an integer reference. The integer identifiers that are assigned start at 0x1000 and increment by one. As an example of this case, the following resource statement contains a named-resource (i.e., there is no #define for VerStampIcon) VerStampIcon ICON VERSTAMP.ICO SMARTRC generates the following entry in the named-resource file: #define VerStampIcon 0x1000 By including the named-resource header file into the converted resource file there should be no change required to the resource files to handle named-resources. To continue with this example, if this icon was loaded in the application source code with the following statement: /* Windows code */ hIcon = LoadIcon (hInstance, "VerStampIcon"); it would be changed to /* Windows code */ hIcon = LoadIcon (hInstance, MAKEINTRESOURCE(VerStampIcon)); or /* OS/2 code */ hIcon = WinLoadPointer (HWND_DESKTOP, 0, VerStampIcon); FONT MAPPING FILE ----------------- SMARTRC attempts to locate an equivalent font in OS/2 for any fonts specified in a FONT statement within the header of a DIALOG definition. However, the font may not map to an acceptable font or the font may not even exist in OS/2. The font mapping file gives you control over how fonts are mapped when the dialog is converted. The format of each entry in the font mapping file is as follows: "[pt.]facename"="[pt.]facename"[="fontfile"] Note that the double-quotes and equal sign are required. Items enclosed in brackets are optional (the brackets are not included in the actual specification). The first part is the source point size and font name. This is the Windows font name and size as specified in the resource file. The second part is the OS/2 point size and font name to use. If the OS/2 font is not one of the system fonts but is contained in a font file the name of the font file is specified in the third part. To map all point sizes of a font the point size can be left off of the mapping specification leaving just the font name. When no FONT statement is specified in the header of the DIALOG definition the default system font is used. To map the default system font in this situation insert a font mapping of "0.System_Default". Following are various examples of font mapping file entries. "10.Courier"="8.Courier" "8.AppFont"="8.AppFont"="APPFONT.FON" "Arial"="Helv" "0.System_Default"="10.System Proportional" SMARTRC also contains several default font mappings that map Windows font names to OS/2 equivalent names. These default mappings can be overridden by specifying entries in the font mapping file for these font names. The current default mappings are as follows: "Arial"="Helvetica" "FixedSys"="System Monospaced" "MS Sans Serif"="Helv" "MS Serif"="Tms Rmn" "Small Fonts"="System VIO" "Symbol"="Symbol Set" "System"="System Proportional" ACCELERATORS CONVERSION ----------------------- Accelerator tables are converted to the equivalent OS/2 ACCELTABLE format. The following special situations are handled by SMARTRC: - All numpad virtual key accelerators are mapped to an accelerator specifying the CHAR keyword. Since OS/2 does not have virtual key identifiers specifically for the numpad virtual keys these accelerators are simulated by specifying them as CHAR values. - Additional accelerator entries are generated for all ASCII character accelerators. Since OS/2 differentiates between upper and lower case accelerator entries it is necessary to define both upper and lower case versions of the accelerator. STRINGTABLE CONVERSION ---------------------- Stringtable entries are converted to the equivalent OS/2 STRINGTABLE format. All explicitly defined strings in the stringtable are converted from the source code page to the target code page. The following special string translations also are handled by SMARTRC: - '\n' characters are converted to '\x0A' - '\r' characters are converted to '\x0D' - '&' mnemonic characters are converted to '~' MENU CONVERSION --------------- Menus are converted to the equivalent OS/2 MENU format. Mnemonic characters specified as '&' are converted to '~' in menu text. All explicitly defined strings in the menu item text are converted from the source code page to the target code page. Popup menu items in Windows are not assigned identifiers. OS/2 requires that all menu items, including submenu items, have an integer identifier. SMARTRC takes care of this by automatically assigning an identifier starting at 0xF200 and incrementing by one. Since none of the existing application code references submenu items by identifier this is merely a syntactical addition which should not require any change to the application. RCDATA CONVERSION ----------------- RCDATA resources are converted to the equivalent OS/2 RCDATA format. All explicitly defined strings in the RCDATA block are converted from the source code page to the target code page. The following special string translations are also handled by SMARTRC: - '\n' characters are converted to '\x0A' - '\r' characters are converted to '\x0D' - '\a' characters are converted to '\x08' - '\0' characters are converted to string termination character '\"' The OS/2 resource compiler automatically inserts a null byte at the end of each string specified in the RCDATA statement. To assist in maintaining binary compatibility between the Windows and OS/2 RCDATA data SMARTRC appropriately converts any null bytes encountered in strings to string termination characters ('\"'). SMARTRC reformats the strings so that the compiled string matches the Windows compiled string. Because of the automatic insertion of a null byte by the OS/2 resource compiler an extra null byte will be added to any string which does does not have an explict null bytes specified in the Windows version of the RCDATA string. The binary data present in the RCDATA generated by the OS/2 resource compiler for these strings will NOT match the binary data of the Windows RCDATA. ICON, CURSOR, BITMAP, AND FONT STATEMENT CONVERSION --------------------------------------------------- ICON, CURSOR, BITMAP, and FONT resource definition statements are reformatted to the equivalent OS/2 format. SMARTRC does NOT automatically converted the actual resource files referenced by these statements to their OS/2 equivalent. Windows icon and cursor resource files can be converted to OS/2 format by using the SMARTCVT conversion utility. Most Windows bitmaps are recognized by OS/2. However, if you have a bitmap which is not recognized it can be converted with any number of bitmap conversion utilities currently available. Font files must be converted manually. DIALOG UNIT CONVERSION ---------------------- One of the premier features of SMARTRC is its ability to convert dialog coordinates and dialog units to the appropriate OS/2 dialog units. While the formula used for converting dialog units to device units is the same for both systems, there is a significant difference in the way that a dialog unit is calculated. Windows calculates the dialog units at run-time based on the size of the font that is specified for the dialog. OS/2 calculates the dialog units at run-time based on the size of the system proportional font, regardless of the font that is specified for the dialog. What does this mean? Suppose we have two dialogs that have the exact same dialog coordinates but specify two different fonts. The two dialogs will display with two different sizes in Windows since the font sizes are different for the two dialogs. Relative positioning of controls is still maintained. The same two dialogs, in OS/2, will display with the exact same size and location. The controls will be displayed with the correct font, however, the size and location of the controls will be identical between the two dialogs. To compensate for this difference SMARTRC performs several internal calculations based upon the sizes of the specified dialog font and the current system font. Since the current system font size can change from one screen resolution to another the actual size of a dialog and its controls may differ slightly at different resolutions. This results from rounding errors which occur in the system when dialog units are converted to device units. To compensate for this problem and to produce a converted dialog which will appear correct at most all screen resolutions it is recommended to run SMARTRC on a system which has the current screen resolution set to the median size of all screen resolutions that the application will support. As an example, if the application will support 640 x 480, 800 x 600, and 1024 x 768 then SMARTRC should be run when the system is in 800 x 600 mode. DIALOG HEADER CONVERSION ------------------------ Dialog templates are converted to the equivalent OS/2 DLGTEMPLATE format. During this conversion the font mapping file, if specified, is used to map the dialog FONT statement to the appropriate OS/2 font and point size. The dialog coordinates are properly translated to the OS/2 coordinate system and the dialog units are translated according to the specified dialog font. If a MENU statement is encountered in the dialog header an error message is output. The OS/2 resource definition syntax does not allow a menu to be specified in a dialog template simply by referencing the menu identifier. The menu must either be loaded by the application during the WM_INITDLG message or the entire menu definition can be placed inside the DLGTEMPLATE using a WINDOW statement and specifying a window identifier of FID_MENU. When converting a dialog which is screen-aligned the current height of the screen is used to calculate the lower-left corner of the dialog coordinates. The height used in the calculation can be changed with the -C command line option. DIALOG CONTROLS CONVERSION -------------------------- Dialog controls are converted to the equivalent OS/2 dialog control format. The coordinates for the controls are translated to the OS/2 coordinate system and the dialog units are translated according to the specified dialog font. Note that the x and y coordinates for a control in OS/2 are specified as the lower-left corner of the control compared with the upper-left corner of the control in Windows. In addition, the coordinates in OS/2 are specified relative to the lower-left corner of the dialog compared with the upper-left corner of the dialog in Windows. SMARTRC automatically performs the necessary calculations for this conversion. Mnemonic characters specified as '&' in control text strings are converted to the OS/2 mnemonic character '~'. All explicity defined strings in the control text are converted from the source code page to the target code page. The following special string translations also are handled by SMARTRC: - '\n' characters are converted to '\x0D' - '\r' characters are converted to '\x0D' - '&' mnemonic characters are converted to '~' Since the format of the OS/2 control statements differs significantly from the format of the Windows control statements, SMARTRC attempts to format and align the control statements for readability. Every attempt is made to maintain as much of the original control statement format as possible. RESTRICTIONS ------------ - The following Windows 3.1 resource definition statements are not converted by SMARTRC: VERSIONINFO user-defined resources - SMARTRC defines the following symbols during program initialization. These values can be overridden by using the -D command line option. Symbol Value ---------- ------ SMARTRC RC_INVOKED WINVER 0x030A FALSE 0 TRUE 1 - Macros cannot be used for any of the reserved resouce definition keywords. #define MYDIALOG DIALOG 100 MYDIALOG LOADONCALL MOVEABLE 30, 35, 247, 120 /* INVALID */ - Preprocessor conditional statements must begin and end within a single file. It is not valid to have a #ifdef block begin in one file and have the matching #endif in another file. - Preprocessor conditional statements within a DIALOG resource definition template are properly evaluated but are not output to the converted resource file. - #include and rcinclude statements are not recognized within any multiline resource statements. 100 DIALOG LOADONCALL MOVEABLE 30, 35, 247, 120 BEGIN #include "controls.h" /* NOT PROCESSED */ END - #define statements are not recognized within any multiline resource statements. 100 DIALOG LOADONCALL MOVEABLE 30, 35, 247, 120 BEGIN #define CONTROLWIDTH 20 /* NOT PROCESSED */ END - Macro definitions which contain parameter substitutions are currently not processed. #define CONTROLWIDTH(x) (x + 10) /* NOT PROCESSED */ #define CONTROLWIDTH (x + 10) /* PROCESSED */ - Converted files replace any existing files with the same name. - When converting dialog units as outlined in the Dialog Conversion section the conversion is relative to the system font for the current display resolution. SAMPLE ------ The following sample demonstrates the use of SMARTRC on a simple sample resource and dialog file. The sample resource file is SAMPLE.RC as follows: ------------------------------------------------------------------- #include "windows.h" #include "sample.h" SAMPLECURSOR CURSOR sample.cur SAMPLEICON ICON sample.ico SAMPLEBITMAP BITMAP sample.bmp STRINGTABLE BEGIN IDS_TITLE, "Sample Title string" IDS_MNEMONIC, "This string has a &mnemonic" IDS_CHAR, "This string has special chars\n\r" END IDACCEL ACCELERATORS BEGIN VK_DELETE, IDM_DELETE, VIRTKEY "r", IDM_REMOVE VK_TAB, 200, ALT, SHIFT, VIRTKEY 0x42, 201, ASCII END IDMENU MENU BEGIN POPUP "&File" BEGIN MENUITEM "&Open...", IDM_OPEN MENUITEM "&Save As...", IDM_SAVE MENUITEM SEPARATOR MENUITEM "E&xit", IDM_EXIT END END rcinclude "sample.dlg" ------------------------------------------------------------------- The sample dialog file SAMPLE.DLG is as follows: ------------------------------------------------------------------- 100 DIALOG 3, 15, 258, 166 STYLE DS_ABSALIGN | DS_MODALFRAME | DS_NOIDLEMSG | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Dialog Title" FONT 8, "MS Sans Serif" BEGIN GROUPBOX "йStatic Controls", 101, 5, 6, 59, 102 LTEXT "Left", 102, 7, 18, 40, 8 CTEXT "Center", 103, 7, 30, 40, 8 RTEXT "Right", 104, 7, 42, 40, 8 CONTROL "Simple", 105, "Static", SS_SIMPLE | WS_GROUP, 7, 54, 40, 8 CONTROL "Left No-Wrap", 106, "Static", SS_LEFTNOWORDWRAP | WS_GROUP, 7, 66, 40, 8 LTEXT "&Left No Prefix", 107, 7, 78, 40, 8, SS_NOPREFIX CONTROL "Left Disabled", 108, "Static", SS_LEFTNOWORDWRAP | WS_DISABLED | WS_GROUP, 7, 90, 40, 8 GROUPBOX "Button Controls", 109, 73, 6, 90, 102 CONTROL "&Auto", 110, "Button", BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP, 79, 18, 70, 10 CONTROL "Auto 3-State", 111, "Button", BS_AUTO3STATE | WS_TABSTOP, 79, 32, 70, 10 CONTROL "Auto &Left", 112, "Button", BS_AUTOCHECKBOX | BS_LEFTTEXT | WS_TABSTOP, 79, 46, 70, 10 CONTROL "Auto", 113, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 79, 60, 70, 10 CONTROL "Auto Left", 114, "Button", BS_AUTORADIOBUTTON | BS_LEFTTEXT, 79, 74, 70, 10 PUSHBUTTON "Standard", 115, 77, 86, 40, 14, WS_GROUP DEFPUSHBUTTON "Default", 116, 120, 86, 40, 14 GROUPBOX "Listbox Control", 117, 173, 112, 78, 47 LISTBOX 118, 179, 125, 38, 26, LBS_SORT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP GROUPBOX "ComboBox Controls", 119, 173, 7, 78, 102 COMBOBOX 120, 181, 19, 48, 35, CBS_SIMPLE | CBS_AUTOHSCROLL | CBS_DISABLENOSCROLL | WS_VSCROLL | WS_GROUP | WS_TABSTOP COMBOBOX 121, 182, 53, 48, 35, CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP COMBOBOX 122, 182, 73, 48, 35, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP ICON 124, 123, 226, 127, 18, 20 GROUPBOX "Frames", 125, 5, 112, 78, 47 CONTROL "", 126, "Static", SS_BLACKFRAME, 37, 120, 38, 11 LTEXT "Black", 127, 9, 122, 20, 8 LTEXT "White", 128, 9, 134, 20, 8 LTEXT "Gray", 129, 9, 146, 20, 8 CONTROL "", 130, "Static", SS_WHITEFRAME, 37, 132, 38, 11 CONTROL "", 131, "Static", SS_GRAYFRAME, 37, 144, 38, 11 GROUPBOX "Rectangles", 132, 89, 112, 78, 47 LTEXT "Black", 134, 93, 122, 20, 8 LTEXT "White", 135, 93, 134, 20, 8 LTEXT "Gray", 136, 93, 146, 20, 8 CONTROL "", 133, "Static", SS_BLACKRECT, 118, 120, 38, 11 CONTROL "", 137, "Static", SS_WHITERECT, 118, 132, 38, 11 CONTROL "", 138, "Static", SS_GRAYRECT, 118, 144, 38, 11 END ------------------------------------------------------------------- The sample header file SAMPLE.H is as follows: ------------------------------------------------------------------- #define IDS_TITLE 0x0100 #define IDS_MNEMONIC 0x0101 #define IDS_CHAR 0x0102 #define IDM_DELETE 0x0103 #define IDM_REMOVE 0x0104 #define IDM_OPEN 0x0105 #define IDM_SAVE 0x0106 #define IDM_EXIT 0x0107 #define SAMPLECURSOR 0x1000 #define SAMPLEICON 0x1001 #define SAMPLEBITMAP 0x1002 #define SAMPLEFONT 0x1003 ------------------------------------------------------------------- To begin the conversion the following command line is entered: SMARTRC SAMPLE.RC The output from executing this command is as follows: ------------------------------------------------------------------- SMART Windows to OS/2 Resource Conversion Version 1.00 Copyright (c) 1994, 1994 One Up Corporation I1003 Converting from code page <1004> to code page <850> Processing file ... Processing file ... Processing file ... E3032 is not supported in OS/2 E3032 is not supported in OS/2 E3032 is not supported in OS/2 E3032 is not supported in OS/2 E3032 is not supported in OS/2 I1001 Converted file saved as I1001 Converted file saved as ------------------------------------------------------------------- This output indicates that the files SAMPLE.RC, SAMPLE.H, and SAMPLE.DLG were examined by SMARTRC. The controls styles BS_LEFTTEXT, LBS_SORT, and CBS_SORT were encountered and there is no equivalent style in OS/2. These errors will have to be corrected later through programming changes. Finally, two of the files were converted and the converted files were saved with their extensions changed according to the default renaming mask. The error file contains a more detailed look at the warnings and errors by listing the exact file, line, and column in the source file which generated the message. The file SAMPLE.ERR is as follows: ------------------------------------------------------------------- SMART Windows to OS/2 Resource Conversion Version 1.00 Copyright (c) 1994, 1994 One Up Corporation Command line: smartrc sample.rc I1003 Converting from code page <1004> to code page <850> E:\SMART\SMARTRC\DOC\SAMPLE.RC(1:1) : W2017 Include file name changed to E:\SMART\SMARTRC\DOC\SAMPLE.RC(15:1) : W2005 Resource name assigned integer ID <0x1000> in HHH file E:\SMART\SMARTRC\DOC\SAMPLE.RC(18:3) : W2008 Generated alternate accelerator case <"R"> E:\SMART\SMARTRC\DOC\SAMPLE.RC(20:3) : W2008 Generated alternate accelerator case <0x62> E:\SMART\SMARTRC\DOC\SAMPLE.RC(23:1) : W2005 Resource name assigned integer ID <0x1001> in HHH file E:\SMART\SMARTRC\DOC\SAMPLE.RC(25:9) : W2006 Submenu item <"&File"> assigned identifier of <0xF200> E:\SMART\SMARTRC\DOC\sample.dlg(5:6) : W2001 Font mapped to E:\SMART\SMARTRC\DOC\sample.dlg(24:21) : E3032 is not supported in OS/2 E:\SMART\SMARTRC\DOC\sample.dlg(28:21) : E3032 is not supported in OS/2 E:\SMART\SMARTRC\DOC\sample.dlg(32:44) : E3032 is not supported in OS/2 E:\SMART\SMARTRC\DOC\sample.dlg(37:58) : E3032 is not supported in OS/2 E:\SMART\SMARTRC\DOC\sample.dlg(39:62) : E3032 is not supported in OS/2 E:\SMART\SMARTRC\DOC\SAMPLE.RC(34:1) : W2017 Include file name changed to ------------------------------------------------------------------- Note also that the warnings are listed in the error file as well as the errors which were sent to the screen by SMARTRC. The warnings indicate that the include file "windows.h" was automatically converted to "os2.h". The two W2005 warnings indicate that there were two named resources found and they have been output to the SAMPLE.HHH file. The W2008 warnings indicate that SMARTRC automatically generated the two additional accelerator keys needed for compatibility. Warning W2006 indicates that an integer identifier was assigned to a submenu item. Warning W2001 indicates that the default font mapping from "MS Sans Serif" to "Helv" was performed. Finally, since the dialog file SAMPLE.DLG was renamed to SAMPLE.DLX, warning W2017 indicates that the rcinclude statement changed the name of the included file to match the converted file name. The named-resource header file SAMPLE.HHH is as follows: ------------------------------------------------------------------- #define IDACCEL 0x1000 #define IDMENU 0x1001 ------------------------------------------------------------------- and the summary file SAMPLE.SUM is as follows: ------------------------------------------------------------------- SMART Windows to OS/2 Resource Conversion Version 1.00 Copyright (c) 1994, 1994 One Up Corporation Start: Thursday 03/31/1994 11:00:59 Command line: smartrc sample.rc I1003 Converting from code page <1004> to code page <850> E:\SMART\SMARTRC\DOC\sample.h Messages Output: Informational: 0 Warning: 0 Error: 0 E:\SMART\SMARTRC\DOC\sample.dlg Converted file saved as Resources Processed: DIALOG: 1 Controls: 37 Messages Output: Informational: 1 Warning: 1 Error: 5 E:\SMART\SMARTRC\DOC\SAMPLE.RC Converted file saved as Resources Processed: STRINGTABLE: 1 Strings: 3 MENU: 1 MenuItems: 3 SubMenus: 1 ACCELERATORS: 1 Keys: 4 Keys Added: 2 ICON: 1 CURSOR: 1 BITMAP: 1 Messages Output: Informational: 1 Warning: 7 Error: 0 TOTALS Files Processed: 3 Files Converted: 2 Resources Processed: STRINGTABLE: 1 Strings: 3 DIALOG: 1 Controls: 37 MENU: 1 MenuItems: 3 SubMenus: 1 ACCELERATORS: 1 Keys: 4 Keys Added: 2 ICON: 1 CURSOR: 1 BITMAP: 1 Messages Output: Informational: 3 Warning: 8 Error: 5 Finish: Thursday 03/31/1994 11:01:01 ------------------------------------------------------------------- The converted files SAMPLE.RCX and SAMPLE.DLX appear as follows: ------------------------------------------------------------------- /* SM$FO E:\SMART\SMARTRC\DOC\SAMPLE.RC - Thursday 03/31/1994 11:00:59 */ #include "os2.h" #include "sample.h" POINTER SAMPLECURSOR sample.cur ICON SAMPLEICON sample.ico BITMAP SAMPLEBITMAP sample.bmp STRINGTABLE BEGIN IDS_TITLE, "Sample Title string" IDS_MNEMONIC, "This string has a ~mnemonic" IDS_CHAR, "This string has special chars\x0A\x0D" END ACCELTABLE IDACCEL BEGIN VK_DELETE, IDM_DELETE, VIRTUALKEY "r", IDM_REMOVE "R", IDM_REMOVE VK_TAB, 200, VIRTUALKEY, ALT, SHIFT 0x42, 201, CHAR, SHIFT 0x62, 201, CHAR, SHIFT END MENU IDMENU BEGIN SUBMENU "~File", 0xF200 BEGIN MENUITEM "~Open...", IDM_OPEN MENUITEM "~Save As...", IDM_SAVE MENUITEM SEPARATOR MENUITEM "E~xit", IDM_EXIT END END rcinclude "sample.dlX" ------------------------------------------------------------------- /* SM$FO E:\SMART\SMARTRC\DOC\sample.dlg - Thursday 03/31/1994 11:01:00 */ DLGTEMPLATE 100 BEGIN DIALOG "Dialog Title", 100, 4, 162, 291, 133, WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN, FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER PRESPARAMS PP_FONTNAMESIZE, "8.Helv" BEGIN GROUPBOX "╕Static Controls", 101, 6, 46, 67, 82, DT_MNEMONIC LTEXT "Left", 102, 8, 113, 45, 6, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC CTEXT "Center", 103, 8, 103, 45, 6, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC RTEXT "Right", 104, 8, 93, 45, 6, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC CONTROL "Simple", 105, 8, 84, 45, 6, WC_STATIC, DT_LEFT | WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE CONTROL "Left No-Wrap", 106, 8, 74, 45, 6, WC_STATIC, DT_LEFT | WS_GROUP | SS_TEXT | DT_MNEMONIC | WS_VISIBLE LTEXT "&Left No Prefix", 107, 8, 65, 45, 6, SS_TEXT | DT_WORDBREAK CONTROL "Left Disabled", 108, 8, 55, 45, 6, WC_STATIC, DT_LEFT | WS_DISABLED | WS_GROUP | SS_TEXT | DT_MNEMONIC | WS_VISIBLE GROUPBOX "Button Controls", 109, 82, 46, 102, 82, DT_MNEMONIC CONTROL "~Auto", 110, 89, 111, 79, 8, WC_BUTTON, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP | WS_VISIBLE CONTROL "Auto 3-State", 111, 89, 99, 79, 8, WC_BUTTON, BS_AUTO3STATE | WS_TABSTOP | WS_VISIBLE CONTROL "Auto ~Left", 112, 89, 88, 79, 8, WC_BUTTON, BS_AUTOCHECKBOX | WS_TABSTOP | WS_VISIBLE CONTROL "Auto", 113, 89, 77, 79, 8, WC_BUTTON, BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP | WS_VISIBLE CONTROL "Auto Left", 114, 89, 66, 79, 8, WC_BUTTON, BS_AUTORADIOBUTTON | WS_VISIBLE PUSHBUTTON "Standard", 115, 87, 53, 45, 11, WS_GROUP DEFPUSHBUTTON "Default", 116, 135, 53, 45, 11 GROUPBOX "Listbox Control", 117, 195, 5, 88, 38, DT_MNEMONIC LISTBOX 118, 202, 12, 43, 21, WS_TABSTOP GROUPBOX "ComboBox Controls", 119, 195, 45, 88, 82, DT_MNEMONIC COMBOBOX "", 120, 204, 90, 54, 28, CBS_SIMPLE | WS_GROUP | WS_TABSTOP COMBOBOX "", 121, 205, 63, 54, 28, CBS_DROPDOWN | WS_TABSTOP COMBOBOX "", 122, 205, 47, 54, 28, CBS_DROPDOWNLIST | WS_TABSTOP ICON 124, 123, 255, 15, 20, 16 GROUPBOX "Frames", 125, 6, 5, 88, 38, DT_MNEMONIC CONTROL "", 126, 42, 28, 43, 9, WC_STATIC, SS_FGNDFRAME | WS_VISIBLE LTEXT "Black", 127, 10, 29, 23, 6, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC LTEXT "White", 128, 10, 20, 23, 6, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC LTEXT "Gray", 129, 10, 10, 23, 6, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC CONTROL "", 130, 42, 18, 43, 9, WC_STATIC, SS_BKGNDFRAME | WS_VISIBLE CONTROL "", 131, 42, 9, 43, 9, WC_STATIC, SS_HALFTONEFRAME | WS_VISIBLE GROUPBOX "Rectangles", 132, 100, 5, 88, 38, DT_MNEMONIC LTEXT "Black", 134, 105, 29, 23, 6, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC LTEXT "White", 135, 105, 20, 23, 6, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC LTEXT "Gray", 136, 105, 10, 23, 6, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC CONTROL "", 133, 133, 28, 43, 9, WC_STATIC, SS_FGNDRECT | WS_VISIBLE CONTROL "", 137, 133, 18, 43, 9, WC_STATIC, SS_BKGNDRECT | WS_VISIBLE CONTROL "", 138, 133, 9, 43, 9, WC_STATIC, SS_HALFTONERECT | WS_VISIBLE END END ------------------------------------------------------------------- The next step in the process is to add the following line to the SAMPLE.RCX file: #include "sample.hhh" and convert the Windows cursor and icon files SAMPLE.CUR and SAMPLE.ICO to the equivalent OS/2 format. This can be done using the SMARTCVT icon and cursor conversion utility. If the names of the converted icon and cursor files change then it is necessary to change the file names in the converted SAMPLE.RCX file as well. Next, the OS/2 resource compiler is run on the converted files using the following command line: RC -R SAMPLE.RCX Finally, the application must be modified to handle the items identified as errors in the error file. SMART On-Line Help Utility Processes Resource Translator Topics ═══ 7.1.4. Resource Translator Messages ═══ The following types of messages can be issued from SMARTRC:  Information messages  Warning messages  Error messages Information Messages ---------------------- I1000 Original file saved as This message indicates that the original resource definition file file1 was renamed and saved as file2. I1001 Converted file saved as This message indicates that the converted resource definition file was saved as file1. I1002 File converted This message indicates that the resource definition file file1 has been successfully converted. I1003 Converting from code page to code page This message indicates that code page conversion will occur from source code page srccp to target code page tgtcp. Warning Messages ---------------- W2000 Identifier does not have a numeric value The identifier id1 does not resolve to an integer value (via a macro definition) and is considered a named-resource. An entry for id1 is created in the named-resource header file. W2001 Font mapped to The dialog fontname font1 has been mapped to fontname font2. W2002 Point size remapped to actual point size The point size of the dialog font ptsiz1 has been remapped or scaled to font point size ptsiz2. W2004 Code page translation error on string String string1 could not be fully converted from the source code page to the target code page. This occurs when a character from the source code page does not map to an entry in the target code page. The invalid character in the string is unchanged. W2005 Resource name assigned integer ID in HHH file An entry in the named-resource header file has been created for the named-resource name1. The identifier has been assigned a value of id1. W2006 Submenu item assigned identifier of Popup menu items (which map to submenu items) must have integer identifiers in OS/2. The identifier id1 has been assigned to the submenu item. W2007 Accelerator numpad virtual key mapped to CHAR value The number pad virtual key key1 has been mapped to an accelerator specifying the CHAR keyword. This indicates that the accelerator will not be identified as a virtual key in the WM_CHAR message. W2008 Generated alternate accelerator case The alternate case of the accelerator key key1 has been automatically generated for the accelerator table. If an ASCII character is specified for the accelerator key the alternate case is generated since OS/2 differentiates between upper and lower case accelerator entries. Adding the alternate case ensures that the accelerator key works for both upper and lower case versions of the character. W2009 Icon text reformatted as ; check ID reference The text specifying the name of an icon for an icon dialog control has been reformatted to match the OS/2 format. The text of a Windows icon dialog control specifies the name of an icon resource defined elsewhere in the resource file. The text of an OS/2 icon dialog control is the integer identifier of the icon resource formatted as "#nnn". Check that the integer identifier in id1 matches the identifier of the desired icon resource. W2010 No icon identifier provided; substituting <0> The text specifying the name of a icon for an icon dialog control specified a null string. Zero was substituted for the text of the icon dialog control. The formatted text of the icon must be set by the application in order for the icon to appear in the control. The format of the integer identifier for the icon in OS/2 is "#nnn", where nnn is the integer identifier. W2011 Removed null byte will be re-inserted by the OS/2 resource compiler The explicitly defined null byte which terminates a string in the RCDATA statement has been removed from the string. OS/2 automatically inserts a null byte at the end of each string specified in the RCDATA statement. Therefore, the binary data present in the RCDATA generated by the OS/2 resource compiler will match the binary data of the Windows RCDATA. W2012 A terminating null byte will be added by the OS/2 resource compiler A string in the RCDATA statement was encountered which did not explicitly specify a null termination character. OS/2 automatically inserts a null byte at the end of each string specified in the RCDATA statement. Therefore, the binary data present in the RCDATA generated by the OS/2 resource compiler will NOT match the binary data of the Windows RCDATA. W2013 Macro redefinition : The macro name name1 has been redefined to a new value. W2015 # if/#endif processed but not copied to output file -- Verify completeness A preprocessor conditional statement was encountered inside of a multiline resource definition statement. SMARTRC properly evaluates the conditional statement but does not output the conditional statement to the converted resource file. W2016 Control identifier changed to The identifier specified for a dialog control has been mapped from the Windows mnemonic name id1 to the equivalent OS/2 mnemonic name id2. These identifiers are defined for the common dialog controls and the predefined dialog button identifiers (e.g., IDOK -> DID_OK). W2017 Include file name changed to The filename specified in a #include or rcinclude statement has been changed from name1 to name2. This occurs when the file that has been included has itself been converted, resulting in the renaming of the included file. Included files that do not contain any resource definition statements are unchanged. Error Messages -------------- E3000 Invalid expression An expression for an identifier or conditional statement is invalid. The expression may contain symbols which do not evaluate or the expression is improperly formed. E3001 Original filename matches renamed filename After applying the file renaming mask (option -X) the filename name1 is the same as the original filename. The temporary file containing the converted resource definition statements is not renamed. E3002 Translated file was not renamed The converted resource file name1 was not renamed to the appropriate filename. Refer to the file name1 for the converted resource definition statements. E3003 Unable to rename to The file name1 could not be renamed to name2. E3004 Unable to load font file The OS/2 font file name1 that was specified in the font mapping file could not be loaded by OS/2. Ensure that the OS/2 font file name is correct and that it contains an OS/2 font. E3005 Unable to open font mapping file The font mapping file name1 specified with the -M command line option could not be opened. Check that the filename is valid and that the file exists. E3006 Unable to read font mapping file An error occurred while attempting to read the font mapping file name1. E3007 Invalid font mapping specification on line line# The font mapping statement on line line# in the font mapping file has a syntax error. Check that the identified line conforms to the font mapping file syntax. E3008 Unable to add symbol to symbol table; specify <-Y> option SMARTRC was unable to add the symbol name1 to the internal symbol table. This occurs when the resource file defines a large number of symbols. Correct this error by increasing the number of allowable symbols with the -Y command line option. E3009 Unable to map accelerator entry The accelerator key entry name1 does not have an equivalent entry in OS/2. E3010 Dialog menus cannot be defined in an OS/2 resource file A MENU statement was encountered in the header of a DIALOG resource template. The OS/2 resource definition syntax does not allow a menu to be specified in a dialog template by referencing the menu identifier. The menu must either be loaded by the application during the WM_INITDLG message or the entire menu definition can be placed inside the DLGTEMPLATE using a WINDOW statement. E3011 Unable to locate file The included file name1 could not be located in the INCLUDE path. Correct the INCLUDE environment variable or define additional include directories with the -I command line option. E3012 Unable to open file The file name1 could not be opened. Check that the filename is specified correctly and that the file exists. E3013 Unable to read file An error occurred while attempting to read the file name1. E3014 Unable to create temporary file SMARTRC was unable to create the temporary file name1. The temporary file is used during the conversion process to maintain intermediate conversion data. The temporary file is created in the same directory as the resource file that is being converted. Check that enough disk space is available on the specified drive. E3015 Source code page is not available The source code page srccp is not available on the current system. Either an incorrect source code page was specified on the -G command line option or the default source code page is not available. E3016 Target code page is not available The target code page srccp is not available on the current system. Either an incorrect target code page was specified on the -G command line option or the default target code page is not available. E3017 Code page conversion will not be performed Code page conversion of strings will not be performed if either the source or target code pages do not exist on the current system. E3018 Unknown option: opt1 ignored The command line option opt1 is not recognized by SMARTRC. The option is ignored and processing continues. E3019 Unable to allocate memory for symbol table SMARTRC was unable to allocate enough memory to hold the symbol table. The number of symbol table entries specified by the -Y command line option may be too large. E3020 Unable to allocate memory for stack SMARTRC was unable to allocate enough memory for its internal stack. E3021 Unable to allocate memory for tokens SMARTRC was unable to allocate enough memory for its internal token stack. E3022 Unable to load font mapping file An error occurred while initializing or loading the font mapping file name1. E3023 Unable to open error file SMARTRC was unable to create or open the error file name1. If the file exists then it may currently be opened by another application. E3024 Unable to open HHH file SMARTRC was unable to create or open the named-resource header file name1. If the file exists then it may currently be opened by another application. E3025 Unable to open summary file SMARTRC was unable to create or open the summary file name1. If the file exists then it may currently be opened by another application. E3026 The VERSIONINFO resource statement is not supported in OS/2 A VERSIONINFO statement was encountered in the resource file. There is no equivalent resource statement in OS/2. E3027 No matching font found for font The default system font will be used A FONT statement was encountered in the header of a DIALOG resource template and no matching OS/2 font could be found for font name1 with point size pt1. A font mapping for this font must be specified in the font mapping file. Otherwise, the default system font is used. E3028 is not supported for multiline edit controls The ES_CENTER style flag was encountered while processing a multiline edit dialog control statement. There is no equivalent flag in OS/2 for multiline edit controls. E3029 is not supported for multiline edit controls The ES_RIGHT style flag was encountered while processing a multiline edit dialog control statement. There is no equivalent flag in OS/2 for multiline edit controls. E3030 is not supported in OS/2. Style set to LS_OWNERDRAW The flag1 style flag was encountered while processing a listbox dialog control statement. There is no equivalent flag in OS/2 for listbox controls. E3031 is not supported in OS/2. Style set to BS_OWNERDRAW The flag1 style flag was encountered while processing a button dialog control statement. There is no equivalent flag in OS/2 for button controls. E3032 is not supported in OS/2 The flag1 style flag was encountered while processing a dialog or dialog control statement. There is no equivalent flag in OS/2. E3033 is not a recognized keyword The flag1 style flag was encountered while processing a dialog or dialog control statement. The flag is not recognized by SMARTRC. SMART On-Line Help Utility Processes Resource Translator Topics ═══ 7.2. Win Help Translator Topics ═══ The Win Help Translator Section includes the following topics:  Win Help Translator Use  Win Help Translator Options  Win Help Translator Messages  Win Help Translator Dialog Panel See Also: SMART On-Line Help Utility Processes ═══ 7.2.1. Win Help Translator Use ═══ Win Help Translation The SMART Windows to OS/2 Help Translator Conversion utility (SMARTHLP.EXE) provides conversion of Windows help files to OS/2 help files. This utility can be executed from SMART through the interface dialog panel associated with "Translate Win Help..." under the "Resources" menu item or can be run from a command line or embedded in a batch command file. It is necessary to use this utility only when migrating from Windows to OS/2. Help files do not require translation when migrating from one version of OS/2 to another. Follow these steps to convert a Windows RTF (Rich Text Format) file to an OS/2 help file. 1. Create an HPJ file that contains the name of the RTF file to be converted along with any bitmap names that are needed. A sample HPJ file is located in ..SMARTAUX\SAMPLE.HPJ. 2. To access the the Win Help Translator dialog panel, choose "Resources" from the SMART main dialog panel. From the Resources pulldown choose "Translate Win Help". 3. On the Win Help Translator dialog panel, enter the name (including path) of the HPJ file in the "Input Filename" field. 4. Choose the rest of the options as they apply. Generally, most of the options will be needed. 5. If the output will be used by an application, choose "Output .HLP file". If the output will be independent, like a "users' reference", choose "Output .INF file". To view the output, create an .INF file and use the VIEW command (in OS/2). 6. Another useful option is "Send Error file to Editor". Then, errors can be viewed. 7. When all options have been chosen, press "ok". 8. SMART does not display a status on the conversion process for a HELP document. If the "Send Error File to Editor" option is chosen, then the process will be complete when the error file is displayed. Otherwise, watch the OS/2 window in the backgound to ensure that the Help conversion process is complete. 9. Output from the Help conversion will depend on the options chosen. If nothing was entered in the "Output Filename" the file will be written to the same directory as the input file. 10. Unless the "Convert to IPF Only" option is chosen, the IPF file produced by SMART will automatically be sent to the IPF compiler. In that case, an INF or HLP file will be produced (depending on the option chosen). If the "Convert to IPF Only" option IS chosen, only the IPF file will be produced and will not be compiled. Note: Error messages are explained in the online help. To view the error message explanations, choose HELP from the Win Help Translator dialog panel. Then choose "Win Help Translator Topics". After that choose "Win Help Translator Messages". Please note that the IPF compiler (IPFC.EXE) is required for SMART Win Help translation. IPF (Information Processing Facility) is available from the IBM Developers Toolkit. WIN HELP TRANSLATION LIMITATIONS The .RTF format can specify a more general document than the IPF's tag language. Because of this, some word-processing functionality available with Windows help files cannot be translated to the PM IPF system. The following are the word processing functionalities that cannot be supported:  Headers and Footers are not supported and will be ignored.  Metafiles and Macintosh pictures are not supported and will be ignored. You may convert these pictures to bitmaps rather than use these unsupported formats.  Scaling and cropping of pictures are not supported and are ignored.  Outline, shadow, small-cap and all-cap character attributes are not supported and are ignored.  Revision marking, tables, side-by-side paragraphs, centered paragraphs, right-justified paragraphs, paragraph borders, and paragraph leaders are not supported and are ignored.  Decimal, right, and center tabs are not supported and are ignored.  Margins, paragraph indentations, and tabs are approximated to the nearest character width.  Line spacing before, within, and after paragraphs is approximated to the nearest system font character height.  Text does not flow around left or right-margin images, but follows immediately below the image.  Monochrome images appear in black and white instead of the text foreground and background colors.  Character attributes of bold, underline and italics work correctly in all combinations, except for all three together. It produces red text.  A maximum of 64KB of keys information can be provided.  There are cosmetic differences in the way that hypertext links are displayed on the screen and in the mouse and keyboard interfaces to those links. SMART On-Line Help Utility Processes Win Help Translator Topics ═══ 7.2.2. Win Help Translator Options ═══ The usage of the SMARTHLP command from the command line or in a batch file is as follows: SMARTHLP [OPTIONS] INPUT-FILE [OUTPUT-FILE] [OPTIONS] -A Do code page translation for all characters, not just those with numeric values greater than 127 This option allows for all code page translation when translating the help files instead of just those with the code page translation with the numeric values of 128 or greater. -Bhvrxa Any combination of h, v, r, x and a can be used to specify the table attributes. h - horizontal rules v - vertical rules r - rules at the top and bottom x - box around the table a - all attributes: rules and box This option allows for the selection of attributes for the tables. The option includes horizontal rules, vertical rules, rules along the top and bottom, a box around the table, and the selection of all the attributes. -C Convert to IPF only. DO NOT call IPFC.EXE. This option allows for the conversion to an .IPF file only and DOES NOT call the IPFC.EXE file. If the -I option is chosen, the IPF is written in the format compatible for an INF file. If the -I option is NOT chosen, the IPF is written in the format compatible for an HLP file and the intermediate BIN files will remain. If you continue the process of building the help file by manually calling IPFC.EXE, it is important to set the right flags to continue on a consistent path. If you used the -I option to make the IPF file, use the -INF option with IPFC.EXE. If you did NOT use the -I option to make the IPF file, DO NOT use the -INF option with IPFC.EXE which will create an HLP file. -D Do not delete intermediate IPF file. This option causes the IPF file to remain after the creation of the HLP or INF file. This may be useful for debugging purposes. Normally this option is not selected; allowing the IPF file to be deleted after calling IPFC.EXE. -F Use PM default font only. This option allows the font references in the RTF files to be ignored when the IPF file is generated. Only the PM default font will be used. -Gnnn Use nnn as destination code page in text translation. This option must be used in conjunction with the -(Ynnn) option. It allows the specification of the target (and source) code pages. The 'nnn' is used as the destination code page for the text translation. The default used for the target code page is 850. -I Create VIEWable .INF file instead of .HLP file. This option allows for the conversion to create an .INF file instead of the .HLP file. The intermediate .IPF file is written to support processing by the IBM VIEW application. -U Use IPF paragraph tags to output paragraphs. This option causes the Translator to read the IPF paragraph tags when outputting paragraphs thus ignoring the .RTF paragraph spacing attributes. -W Increase warning level to output detail level message. This option causes the warning level to increase so the Translator outputs detail level messages to the editor. -Xn Display debug messages at level n. This option is for the specification of the level of the debug messages to be displayed, otherwise no messages will be displayed. The level number is placed in n. The default is 0. -(Ynnn) Use nnn as source code page in text translation. This option must be used in conjunction with the -Gnnn option. It allows the specification of the source code pages. The 'nnn' is used as the source code page for the text translation. The default used for the source code page is 1004. Win Help Translator Dialog Panel SMART On-Line Help Utility Processes Win Help Translator Topics ═══ 7.2.3. Win Help Translator Messages ═══ The SMARTHLP Translator generates the following types of messages during processing:  Information messages  Warning messages  Error messages Information Messages -------------------- The information messages that are generated are of the following format: PARSING [filename] - PASS [number] Warning Messages ---------------- If a warning message is generated the SMARTHLP Translator will continue to process the Windows help files. It is strongly recommended that you look at the source of the warning and fix it. Warning HLP messages are of the format "[filename]([line number]) : Warning HLPnnnn : [explanation]". The following is a list of possible warning messages that can be generated. 0054 "Outline, Shadow, and Caps attributes not supported." These attributes can be specified in the RTF file for Windows 3.1, but are not supported under OS/2. This message is given only on the first occurrence 0055 "Subscript and Superscript attributes not supported." These attributes are not supported by SMARTHLP. 0056 "Revision marking not supported." Revision marking is not supported by SMARTHLP. 0057 "Only left-paragraph justification supported." RTF files support right-justified, left-justified, and centered paragraphs. Only left- justified paragraphs are supported by SMARTHLP. 0058 "Tables not supported." Tables are not supported by SMARTHLP. 0059 "Side-by-side paragraphs not supported." Side-by-side paragraphs are not supported by SMARTHLP. 0060 "Right, Centered, Decimal and Bar tabs not supported." These tab types are not supported by SMARTHLP. 0061 "Paragraph borders not supported." SMARTHLP does not support lines drawn around paragraphs. 0062 "Paragraph leaders not supported." Leading characters in the paragraphs such as period or spaces are not supported. 0063 "IPFC.EXE not found within path or path too long." SMARTHLP could not find the PM help facility. Verify that IPFC.EXE exists and is in your path. 0064 "Not enough memory to execute IPFC.EXE." SMARTHLP uses the IPFC utility program in its translation. There was not enough memory to launch this program. Close other applications and try rerunning the program. 0065 "Unable to execute IPFC.EXE." SMARTHLP uses IPFC to process the Windows help files. This program could not be launched for unknown reasons. 0066 "IPFC.EXE failed and returned an error code of [number]." The PM help facility has failed and returned the error code listed. Check the OS/2 documentation for an explanation of the error code. 0067 "Unbalanced parenthesis in Build Topic Expression." SMARTHLP has detected a syntax error in a Build Topic expression. 0068 "Expression name [string] not listed in [BUILDTAGS] section." All BUILDTAGS must be declared. SMARTHLP will simulate this declaration and continue if possible. 0069 "Syntax error in Build Topic Expression." Topics can have an associated Boolean expression that is used to determine whether the topic should be included in building the help file. An invalid expression was detected. 0070 "Build Topic expression [string] not completely parsed." Build Topic expressions are similar to mathematical expressions. A syntax error was detected in this type of expression. 0071 "Referenced name [string] not listed in [BUILDTAGS] section." A string found as part of an expression within the .HPJ file was not found within the BUILDTAGS section of the .HPJ file. 0072 "Topic [string] referenced but not in text." There is a hypertext link to a topic that the translator cannot find. Verify that the topic string is spelled the same in both locations. 0073 "Cannot append keys info to .HLP file [filename]." This message should not appear. Try rerunning the program. If the message persists contact SMART technical support for assistance. 0074 "Write error appending keys info to .HLP file [filename]." SMARTHLP must append information to the .HLP file. This information could not be appended. A full disk is one possible cause. 0075 "Picture borders not supported." Borders drawn around pictures are not available. 0076 "Picture scaling and cropping not supported." Picture scaling and cropping are not available. 0077 "Macintosh pictures not supported." Macintosh pictures are not supported by OS/2. Translate the Macintosh picture to a recognized bitmap format. 0078 "Metafile pictures not supported." Metafile pictures are not supported by OS/2. Error Messages -------------- If an error message is generated the SMARTHLP Translator will stop processing the Windows help files. At that time it is necessary to fix the error. Error HLP messages are of the format "[filename]([line number]) : Error HLPnnnn : [explanation]". The following is a list of possible error messages that can be generated. 0000 "No message text for message number [number]." This is an internal consistency check for the error message functions. This message should not appear. Try rerunning the program. If the message persists contact SMART technical support for assistance. 0001 "Message number [number] has invalid severity code of [number]." This is an internal consistency check for the error message functions. This message should not appear. Try rerunning the program. If the message persists, contact SMART technical support for assistance. 0002 "Cannot open input file." The input .HPJ file could not be opened. Verify that the file exists. 0003 "Cannot open output file [filename]." The output .IPF file could not be opened. The disk may be full or the output filename may be invalid. 0004 "Cannot allocate buffer of size [number]." A necessary buffer could not be allocated in the available memory. Close other applications and try rerunning the program. 0005 "Cannot re-allocate buffer to size [number]." This message indicates a memory allocation problem. Close other applications and try rerunning the program. 0006 "Cannot allocate buffer for string storage." A necessary buffer could not be allocated in the available memory. Close other applications and try rerunning the program. 0007 "RTF token identification problem." This message indicates a general syntax error. 0008 "State stack has garbage on it." There were more open braces than closed braces in the .RTF file. 0009 "RTF stack underflow." There were more closed braces than open braces in the .RTF file. 0010 "Cannot open .RTF file [filename]." An .RTF file referenced in the .HPJ file could not be opened. Verify that the file exists. 0011 "Unexpected colortbl keyword." A probable syntax error was detected. 0012 "Unexpected fonttbl keyword." A probable syntax error was detected. 0013 "Cannot locate referenced font." There is a reference to an undeclared font in the .RTF file. 0014 "Invalid state in RTF tokenizer." This is an internal error. The internal tokenizer cannot process a sequence of characters. 0015 "Ignoring reference to unknown style sheet [number]." Style sheets reside within the help document. A reference has been found to a style sheet that cannot be located. 0016 "Bad footnote type encountered." In the .RTF file, footnotes identify individual blocks of text as topics. A footnote was used in an inappropriate way for Windows help. 0017 "No topic identification in footnotes." In an .RTF file, individual help topics are separated by a hard page break. A page was found for which there was no identification. 0018 "Bad separator." SMARTHLP has found confusing syntax in the .RTF file. 0019 "Text keyword processing error." A syntax error was detected while processing text. 0020 "Text processing error." A syntax error was detected while processing text. 0021 "Bitmap Translator not found within path, or path too long." SMARTHLP uses SMARTCVT to convert bitmaps. This conversion utility program could not be found by SMARTHLP. Verify that SMARTCVT.EXE exists and is in your path. 0022 "Not enough memory to execute Bitmap Translator." SMARTHLP uses SMARTCVT to convert bitmaps. There was not enough memory to launch the conversion utility program. Close other applications and try rerunning the program. 0023 "Unable to execute Bitmap Translator." SMARTHLP uses SMARTCVT to convert bitmaps. SMARTCVT could not be launched for an unknown reason. 0024 "Bitmap Translator failed and returned an error code of [number]." SMARTHLP uses SMARTCVT to convert bitmaps. This conversion utility program failed with the error code indicated. For an explanation of the error code refer to the section below which documents the CVI messages. For example, if the error code returned is 3 then the corresponding CVI message is CVI0003. 0025 "Cannot open temporary file [filename]." An expected temporary file could not be found. 0026 "Invalid number of bits per pixel in picture." In the .RTF file, an invalid number was entered for the number of bits per pixel. Valid values are 1, 4, 8 or 24. 0027 "Internal error occurred while processing picture." Images can be inserted in-line in .RTF files, which include metafiles and Macintosh picture files. An error was detected while processing a picture. 0028 "Invalid #include filename delimiter." The syntax of an #include reference is invalid. The two acceptable delimiters are quotation marks or angle brackets. 0029 "Cannot open #include file [filename]." .HPJ files can use Include files in a manner similar to .C files. The referenced file could not be found; verify that it exists. 0030 "Expected section name." An expected section name could not be found. 0031 "Expected close bracket." In the .RTF file, SMARTHLP expected a closed bracket, but encountered some other item. 0032 "Expected end of line." In the .RTF file, SMARTHLP expected an end-of-line marker, but encountered some other item. 0033 "Internal error processing .HPJ file." This error will not ordinarily occur. If it does, some earlier syntax error probably confused the translator. 0034 "File name syntax error." In the .HPJ file, SMARTHLP encountered invalid syntax. 0035 "Expected equals sign." In the .HPJ file, SMARTHLP expected an equals sign (=), but encountered some other character. 0036 "Alias syntax error." This message indicates a syntax error in the .HPJ file. 0037 "Map #define syntax error." There is a syntax error in a #define statement. 0038 "Expected map name." In the .HPJ file, SMARTHLP expected a map name, but encountered some other item. 0039 "Expected map value." In the .HPJ file, SMARTHLP expected a map value, but encountered some other item. 0040 "Expected Build Topic Expression." In the .HPJ file, SMARTHLP expected the Build Topic expression, but encountered some other item. 0041 "Expected min font size to map." In the .HPJ file, SMARTHLP expected a minimum font size indicator, but encountered some other item. This should occur only at the beginning of the file unless syntax is unreadable by the translator. 0042 "Invalid font mapping syntax." This message indicates a syntax error in the .HPJ file. 0043 "Expected max font size to map." In the .HPJ file, SMARTHLP expected a maximum font size indicator, but encountered some other item. This should only occur at the beginning of the file unless syntax is unreadable by the translator. 0044 "Expected font size to map to." In the .HPJ file, SMARTHLP expected a font size, but encountered some other item. 0045 "Expected title text." In the .HPJ file, SMARTHLP expected title text, but encountered some other item. 0046 "Invalid ROOT path." In the .HPJ file, ROOT designates the root path where the .HPJ, bitmap, and associated files should be found. The translator could not find this directory. 0047 "Expected index name." In the .HPJ file, SMARTHLP expected an index name, but encountered some other item. 0048 "Expected single character multi-key." In the .HPJ file, SMARTHLP expected a single-character multi-key, but encountered some other item. An error was probably found in the footnote tag for a multi-key item. 0049 "Expected font name." In the .HPJ file, SMARTHLP expected the name of a font, but encountered some other item. 0050 "Expected valid warning level." In the .HPJ file, SMARTHLP encountered an invalid warning level. Valid values are 1, 2, or 3. 0051 "Expected keyword YES, NO, HIGH, MEDIUM, 0, 1, TRUE or FALSE." Compression statements can have one of two values: TRUE or FALSE. In the statement that SMARTHLP is translating, some other value was encountered. 0052 "Expected valid option name." In the .HPJ file, SMARTHLP encountered an invalid option name. 0053 "Unexpected end of file encountered." A probable syntax error was detected. 0128 "Can not translate a character from the windows code page to the OS/2 code page." 0132 "PM Help limit - file has too many topics (>64000)." The PM limitation of 64,000 help topics has been exceeded. 0136 "Expected copyright text." The text for the copyright notice is missing. 0138 "Expected error log filename." In the .RTF file, SMARTHLP expected to find the name of the error log file, but encountered some other item. 0139 "Error log file could not be created." Check to see if the file exists and if so, that the file is not write protected. 0140 "Expected keyword YES, NO, ON, OFF, 1, 0, TRUE or FALSE." In the .RTF file, SMARTHLP expected to find a boolean keyword, but encountered some other item. 0144 "Expected language name SCANDANAVIAN or ENGLISH." The LANGUAGE keyword was encountered but the language option was not SCANDANAVIAN or ENGLISH. 0146 "Expected name of icon file." In the .RTF file, SMARTHLP expected to find the name of the icon file, but encountered some other item. 0150 "Expected caption string." In the .RTF file, SMARTHLP expected to find a caption string but instead encountered some other item. 0151 "Expected comma after caption string." In the .RTF file, SMARTHLP expected to find a comma (,) after the caption string but encountered some other item. 0152 "Expected left parenthesis before window X value." In the .RTF file, SMARTHLP expected to find a left parenthesis, but encountered some other item. 0153 "Expected window X value." In the .RTF file, SMARTHLP expected to find a numeric value, but encountered some other item. 0154 "Expected comma after window X value." In the .RTF file, SMARTHLP expected to find a comma (,) but encountered some other item. 0155 "Expected window Y value." In the .RTF file, SMARTHLP expected to find a numeric value, but encountered some other item. 0156 "Expected comma after window Y value." In the .RTF file, SMARTHLP expected to find a comma (,) but encountered some other item. 0157 "Expected window width value." In the .RTF file, SMARTHLP expected to find the window width value, but encountered some other item. 0158 "Expected comma after window width value." In the .RTF file, SMARTHLP expected to find a comma (,) but encountered some other item. 0159 "Expected window height value." In the .RTF file, SMARTHLP expected to find the window height value, but encountered some other item. 0160 "Expected right parenthesis before sizing value." In the .RTF file, SMARTHLP expected to find a right parenthesis, but encountered some other item. 0161 "Expected comma before sizing value." In the .RTF file, SMARTHLP expected to find a comma (,) but encountered some other item. 0162 "Expected sizing value." In the .RTF file, SMARTHLP expected to find a numeric value, but encountered some other item. 0163 "Expected comma after sizing value." In the .RTF file, SMARTHLP expected to find a comma (,) but encountered some other item. 0164 "Expected left parenthesis to begin client RGB value." In the .RTF file, SMARTHLP expected to find a left parenthesis, but encountered some other item. 0165 "Expected client Red value." In the .RTF file, SMARTHLP expected to find a numeric value, but encountered some other item. 0166 "Expected comma after client Red value." In the .RTF file, SMARTHLP expected to find a comma (,) but encountered some other item. 0167 "Expected client Green value." In the .RTF file, SMARTHLP expected to find a numeric value, but encountered some other item. 0168 "Expected comma after client Green value." In the .RTF file, SMARTHLP expected to find a comma (,) but encountered some other item. 0169 "Expected client Blue value." In the .RTF file, SMARTHLP expected to find a numeric value, but encountered some other item. 0170 "Expected right parenthesis to end client RGB value." In the .RTF file, SMARTHLP expected to find a right parenthesis, but encountered some other item. 0171 "Expected comma after client RGB value." In the .RTF file, SMARTHLP expected to find a comma (,) but encountered some other item. 0172 "Expected left parenthesis to begin non-scroll RGB value." In the .RTF file, SMARTHLP expected to find a left parenthesis, but encountered some other item. 0173 "Expected non-scroll Red value." In the .RTF file, SMARTHLP expected to find a numeric value, but encountered some other item. 0174 "Expected comma after non-scroll Red value." In the .RTF file, SMARTHLP expected to find a comma (,) but encountered some other item. 0175 "Expected non-scroll Green value." In the .RTF file, SMARTHLP expected to find a numeric value, but encountered some other item. 0176 "Expected comma after non-scroll Green value." In the .RTF file, SMARTHLP expected to find a comma (,) but encountered some other item. 0177 "Expected non-scroll Blue value." In the .RTF file, SMARTHLP expected to find a numeric value, but encountered some other item. 0178 "Expected right parenthesis to end non-scroll RGB value." In the .RTF file, SMARTHLP expected to find a right parenthesis, but encountered some other item. CVI Messages -------------------- The bitmap translator is called by the SMARTHLP translator to convert imbedded icons, cursors and bitmaps. If it encounters problems, the bitmap translator returns a distinct set of error messages of the format "[filename] CVInnnn [explanation]". the following is a list of possible warning messages. CVI0000 "No message text for message number [number]." This message should not appear. Try rerunning the program. If the message persists contact SMART technical support for assistance. CVI0001 "Message number [number] has invalid severity code of [number]." This message should not appear. Try rerunning the program. If the message persists contact SMART technical support for assistance. CVI0002 "Input file does not contaon a windows 3 bitmap, curosr or icon." The file given to the icon converter as the input file is not a recognized bitmap, cursor or icon. CVI0003 "Cannot open input file." The file given as input could not be open. An invalid filename is the probable cause. CVI0004 "Cannot open output file [filename]." The output file count not be opened by the icon converter. The filename may be invalid or there may be a problem with the disk system. For example, the disk used for output may be full or not ready. CVI0005 "Cannot allocate buffer of size [number]." The icon converter may require rather large buffers to convert bitmaps and other graphic resources. The required memory could not be allocated. CVI0006 "Premature end of input file." While reading the bits of a graphic image, the icon converter detected the end of the file before it found the expected end of the data. CVI0007 "System error occured while writing output file [filename]." A system-level error such as a full disk prevented the icon converter from completing its file output. CVI0008 "Unsupported RLE image compression format [number]." The valid run-length encoded images for the icon converter are RLE 4 or RLE 8 formats. A value other than one of these was specified in the file header. CVI0009 "Converting Windows 3 bitmap [string] to PM bitmap [string]." A windows bitmap has been detected and is being converted. CVI0010 "Converting Windows 3 icon [string] to PM icon [String." a Windows icon has been detected and is being converted. CVI0011 "Converting Windows 3 cursor [string] to PM pointer [string]." A Windows cursor resource has been detected and is being converted . Presentation Manager calls the Windows cursor a pointer. Dos not confuse this with a memory reference. CVI0012 "Copying existing PM file [filename] to file [filename]." The icon converter has detected that the necessary resource already exists in a PM format. However, other conversion utility programs expect target files to have certain names. The conversion utility program copies the PM file to the destination filename. SMART On-Line Help Utility Processes Win Help Translator Topics ═══ 7.3. Graphical Resource Converter Topics ═══ The Graphical Resource Converter Section includes the following topics:  Graphical Resource Converter Introduction  Graphical Resource Converter Options  Graphical Resource Converter Output  Graphical Resource Converter Messages  Graphical Resource Converter Dialog Panel See Also: SMART On-Line Help Utility Processes ═══ 7.3.1. Graphical Resource Converter Introduction ═══ The SMART Windows to OS/2 Graphical Resource File Conversion utility (SMARTCVT) provides binary conversion of Window's icon and cursor files to OS/2 pointer files. It also provides conversion of Window's bitmap files and Window's Device Independent Bitmap(DIB) files to OS/2 bitmaps. Both icon and cursor files are referred to as pointer files in OS/2. The graphical format of Windows icons and cursors is significantly different from OS/2 pointer files. SMARTCVT is a utility that can be executed from the SMART interface panel under the "Resources" menu or can be run from the OS/2 command line or placed in a batch command file. SMART On-Line Help Utility Processes Graphical Resource Converter Topics ═══ 7.3.2. Graphical Resource Converter Options ═══ Usage of the SMARTCVT command is: SMARTCVT [options] srcfilename tgtfilename srcfilename is the Windows icon, cursor, or bitmap filename tgtfilename is the OS/2 pointer filename or bitmap filename srcfilename can contain wildcard characters '?' and '*' tgtfilename can contain wildcard characters '?' and '*' where [options] is one or more of the following: -O Overwrite existing files This option automatically overwrites the target file if the file already exists. Normally if the target file exists SMARTCVT will prompt for the action to perform. This option disables the prompting and automatically replaces the existing file. -? Display command line options This option displays the list of command line options. SMART On-Line Help Utility Processes Graphical Resource Converter Topics ═══ 7.3.3. Graphical Resource Converter Output ═══ SUMMARY INFORMATION ------------------- The summary information output by SMARTCVT at the completion of file conversion recaps the entire conversion process. Below is an example of the output contained in the summary information: Files Processed: 10 Files Converted: 10 Warnings: 0 Errors: 0 SAMPLE ------ The following sample demonstrates the use of SMARTCVT to convert Windows icon and cursor files. The following command line is entered to convert the icon file "SAMPLE.ICO": SMARTCVT SAMPLE.ICO SAMPLE.PTR The following command line is entered to convert all icon files in the current directory: SMARTCVT *.ICO *.PTR The following command line is entered to convert all cursor files in the current directory: SMARTCVT *.CUR *.PTR The following command line is entered to convert all bitmap files in the current directory: SMARTCVT *.BMP *.BMP SMART On-Line Help Utility Processes Graphical Resource Converter Topics ═══ 7.3.4. Graphical Resource Converter Messages ═══ The following types of messages can be issued from SMARTCVT - Informational - Warning - Error Informational Messages ---------------------- I1002 File converted This message indicates that the resource definition file file1 has been successfully converted. I1101 Converting Windows icon to OS/2 icon The file name1 is a recognized Windows icon file and is being converted to the OS/2 icon (pointer) file format. I1102 Converting Windows cursor to OS/2 pointer The file name1 is a recognized Windows cursor file and is being converted to the OS/2 pointer file format. I1103 Processing cancelled by user The response to message W2100 was to cancel processing of the remaining icon and cursor files. I1104 File was not converted The file name1 was not converted because the response to message W2100 was either no or cancel or a file error occurred during processing. I1105 is already an OS/2 icon; copying file The file name1 is already an OS/2 icon (pointer) file. SMARTCVT copies the source OS/2 icon file to the target file. I1106 is already an OS/2 pointer; copying file The file name1 is already an OS/2 pointer file. SMARTCVT copies the source OS/2 pointer file to the target file. I1107 is already an OS/2 bitmap; copying file The file name1 is already an OS/2 bitmap file. SMARTCVT copies the source OS/2 bitmap file to the target file. Warning Messages ---------------- W2100 already exists. Overwrite (y/n/a/c)? The target file name1 already exists. This message requires input to select the action to perform. The following options are available: - y(es) Replace the existing file - n(o) Do not replace the existing file. Proceed to the next file in the specified file list. - a(lways) Replace the existing file and automatically replace any other target files which already exist when converting the rest of the files in the specified file list. - c(ancel) Do not replace the existing file. Do not process any more files in the specified file list. Error Messages -------------- E3011 Unable to locate file The source file name1 could not be located. Check that the filename is specified correctly and that the file exists. E3012 Unable to open file The file name1 could not be opened. Check that the filename is specified correctly and that the file exists. E3013 Unable to read file An error occurred while attempting to read the file name1. E3018 Unknown option: opt1 ignored The command line option opt1 is not recognized by SMARTCVT. The option is ignored and processing continues. E3103 Unable to create target file SMARTCVT was unable to create the target file name1. Check that the filename is valid and that enough disk space is available on the specified drive. E3105 Invalid file format The file name1 does not contain a valid Windows icon or cursor. E3106 Unrecognized graphics file format The file name1 does not contain a valid Windows icon or cursor. The format is not recognized by SMARTCVT. SMART On-Line Help Utility Processes Graphical Resource Converter Topics ═══ 7.4. SMART Viewer ═══ The Resource Translator Section includes the following topics: The SMART Viewer provides a context sensitive on-line help to the SMART Migration knowledge base. By providing a topic name, you can display information regarding the migration of the specified keyword. The display windows that are available in this utility are "Topic", "Template", "Prototype", "Example", and "References". An additional window "History" provides a list of all topics accessed in the current session. Features:  On-line access to SMART Migration data base.  Context sensitive access to migration source platform keywords (if properly linked from your editor).  Capability to copy most display panels and selected text to the OS/2 clipboard.  WPS aware to drag-and-drop colors and fonts.  External references to OS/2 on-line develop help (if installed) is automatically created by spawning the VIEWER.EXE help facility. The SMART Viewer is invoked from an SourceLink through the supplied Rexx Macro "SMVIEWER.REX". After you have registered this macro file in SourceLink under the "Macro" menu you will be able to call up this on-line migration help. Simply mouse click on a Source Platform keyword and invoke the Rexx Macro with your assigned hot-key. If you are using an editor other than SourceLink, you will want to create a macro or other linking function to spawn SMART Viewer with topic names using "SMARTVUE.EXE". The SMART Viewer communicates externally through the proxy process "SMARTVUE.EXE", which eliminates starting a new instance each time a request for a new topic is created. The argument to this executable is the topic name to be viewed. SMART View contains a search panel which allows you to enter a desired topic (keyword) name for viewing. Selected text from the "Template", "Prototype", and "Example" window displays can be copied to the clipboard buffer providing "cut" and "paste" programming capability from the migration data base to your editor. Additional functionality for this utility of SMART is explained in the SMART Viewer on-line help facility accessed from SMART Viewer. See Also: SMART On-Line Help Utility Processes