home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
OSPORT.ZIP
/
OSPORT.KEX
next >
Wrap
Text File
|
1992-06-26
|
14KB
|
300 lines
/**
*** ┌─────────────────────────────────────────────────────────────────────────┐
*** │ │
*** │ This macro will assist in the migration of OS/2 1.x C programs │
*** │ to OS/2 2.0 by making reasonable edit changes. This is not a │
*** │ complete migration aid. Significant changes may still be required │
*** │ to fully convert your product. │
*** │ │
*** │ ═══════════════════════════════════════════════════════════════════════ │
*** │ Copyright(c) 1991, Hilbert Computing. Released to the public domain. │
*** │ No warranty expressed or implied. │
*** │ ═══════════════════════════════════════════════════════════════════════ │
*** │ │
*** │ If this has been useful to you, I would like to know. Drop me a line │
*** │ on Prodigy [VWSD07A] or CompuServe [73457,365]. If there are any │
*** │ errors or improvements, let me know. If someone researches the APIs │
*** │ that I skipped, I would appreciate knowing that as well. │
*** │ │
*** └─────────────────────────────────────────────────────────────────────────┘
**/
/**
***
***══════════════════════════════════════════════════════════════════════════════
*** Setup
**/
'preserve'
'set arb on ` ~'
'set autosave off'
'set case mixed respect'
'set linend off'
'set stay on'
'set varblank on'
'set wrap off'
'set zone 1 *'
'all'
'set scope display'
'set msgmode off'
/**
*** Specific to the author. You will probably want to remove this section.
**/
':0c/#include "b1hilb.h"/#include "b2hilb.h"/ * *'
':0c/#include "b1hdlg.h"/#include "b2hdlg.h"/ * *'
':0c/B1HILB/B2HILB/ * *'
':0c/Style.sLMargin/Style.lLMargin/ * *'
':0c/Style.sRMargin/Style.lRMargin/ * *'
':0c/Style.usJustify/Style.ulJustify/ * *'
':0c/Style.usLineSpacing/Style.ulLineSpacing/ * *'
':0c/Style.usTab/Style.ulTab/ * *'
':0c/pStyle->sLMargin/pStyle->lLMargin/ * *'
':0c/pStyle->sRMargin/pStyle->lRMargin/ * *'
':0c/pStyle->usJustify/pStyle->ulJustify/ * *'
':0c/pStyle->usLineSpacing/pStyle->ulLineSpacing/ * *'
':0c/pStyle->usTab/pStyle->ulTab/ * *'
/**
*** Mark APIs that needs to be hand-checked. A lot of this information was
*** obtained from an article by Ray Duncan in the May 1990 volume of the
*** "Microsoft Systems Journal", back before that journal turned into a
*** Windows advertisement.
**/
'display 0 *'
':0';do forever;'/ Kbd`(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/ Mou`(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/ Vio`(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosCallback(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosCLIAccess(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosCreateCSAlias(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosDevIOCtl(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosFindFirst(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosFSRamSem`(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosGetEnv(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosGetHugeShift(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosGetInfoSeg(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosGetMachineMode(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosGetMessage(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosGetPID(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosGetPPID(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosGetResource(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosGetVersion(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosGiveSeg(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosHoldSignal(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosMkDir(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosMon`(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosMuxSemWait(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosOpen(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosPortAccess(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosPTrace(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosQFileMode(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosR2StackRealloc(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosReadAsync(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosRead(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosReallocSeg(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosSem`(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosSendSignal(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosSetFileMode(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosSetSigHandler(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosSetVec(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosWriteAsync(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/DosQSysInfo(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/Dos`Seg(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/Dos`Sem(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/WinLockWindow(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/WinCreateStdWindow(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/GpiCreateBitmap/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/MAKEP(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/SELECTOROF(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/SEL / ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/OFFSETOF(`)/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/PIDINFO/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/VOID _cdecl FAR/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/VOID _cdecl far/ ';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/_beginthread(/ ';if rc \= 0 then leave;'set select' 20 1;end
/**
*** Note: These have been fully checked for parameter ordering changes and
*** should successfully change the API. (Beta 6.123)
**/
':0c/DosMakeNmPipe/DosCreateNPipe/ * *'
':0c/DosQCurDir/DosQueryCurrentDir/ * *'
':0c/DosQCurDisk/DosQueryCurrentDisk/ * *'
':0c/DosSelectDisk/DosSetDefaultDisk/ * *'
':0c/DosTimerAsync/DosAsyncTimer/ * *'
':0c/DosTimerStart/DosStartTimer/ * *'
':0c/DosTimerStop/DosStopTimer/ * *'
':0c/DosChDir(`,0L)/DosSetCurrentDir(`)/ * *'
':0c/DosMkDir(`,0L)/DosCreateDir(`)/ * *'
':0c/DosOpen2(`,0L)/DosOpen(`)/ * *'
':0c/DosChDir(`,0l)/DosSetCurrentDir(`)/ * *'
':0c/DosMkDir(`,0l)/DosCreateDir(`)/ * *'
':0c/DosOpen2(`,0l)/DosOpen(`)/ * *'
':0c/DosCopy(`,0l)/DosCopy(`)/ * *'
':0c/DosChDir(`, 0L)/DosSetCurrentDir(`)/ * *'
':0c/DosMkDir(`, 0L)/DosCreateDir(`)/ * *'
':0c/DosOpen2(`, 0L)/DosOpen(`)/ * *'
':0c/DosCopy(`, 0L)/DosCopy(`)/ * *'
':0c/DosChDir(`, 0l)/DosSetCurrentDir(`)/ * *'
':0c/DosMkDir(`, 0l)/DosCreateDir(`)/ * *'
':0c/DosOpen2(`, 0l)/DosOpen(`)/ * *'
':0c/DosGetPID(`)/DosGetThreadInfo(«PPTIB»,&«`»)/ * *'
':0c/WinQueryWindow(`, TRUE)/WinQueryWindow(`)/ * *'
':0c/WinQueryWindow(`,TRUE)/WinQueryWindow(`)/ * *'
':0c/WinQueryWindow(`, FALSE)/WinQueryWindow(`)/ * *'
':0c/WinQueryWindow(`,FALSE)/WinQueryWindow(`)/ * *'
/**
*** The cast for a window handle changed from a pointer to a ULONG. NULL
*** is cast as a pointer and causes type mismatch errors from the compiler
*** This set of lines will change the most common ones from NULLs to
*** NULLHANDLE, which is cast as a ULONG
**/
':0c/WinBeginPaint(hwnd, NULL, NULL)/WinBeginPaint(hwnd, NULLHANDLE, NULL)/ * *'
':0c/WinBeginPaint(hwnd,NULL,NULL)/WinBeginPaint(hwnd,NULLHANDLE,NULL)/ * *'
':0c/WinGetMsg(hab, &qmsg, NULL, 0, 0)/WinGetMsg(hab, &qmsg, NULLHANDLE, 0, 0)/ * *'
':0c/WinGetMsg(hab,&qmsg,NULL,0,0)/WinGetMsg(hab,&qmsg,NULLHANDLE,0,0)/ * *'
':0c/WinLoadString(`, NULL,/WinLoadString(`, NULLHANDLE,/ * *'
':0c/WinLoadString(`,NULL,/WinLoadString(`,NULLHANDLE,/ * *'
/**
*** The COMMANDMSG macro is defined only for 16-bit applications. This will
*** replace those with the corresponding translation macro. Ditto for
*** MOUSEMSG and CHARMSG.
**/
/**
*** ':0c/COMMANDMSG(&msg)->cmd/SHORT1FROMMP(mp1)/ * *'
*** ':0c/COMMANDMSG(&msg)->source/SHORT1FROMMP(mp2)/ * *'
*** ':0c/COMMANDMSG(&msg)->mouse/SHORT2FROMMP(mp2)/ * *'
*** ':0c/CHARMSG(&msg)->chr/SHORT1FROMMP(mp2)/ * *'
*** ':0c/CHARMSG(&msg)->vkey/SHORT2FROMMP(mp2)/ * *'
*** ':0c/CHARMSG(&msg)->fs/SHORT1FROMMP(mp1)/ * *'
*** ':0c/CHARMSG(&msg)->cRepeat/CHAR3FROMMP(mp1)/ * *'
*** ':0c/CHARMSG(&msg)->scancode/CHAR4FROMMP(mp1)/ * *'
*** ':0c/MOUSEMSG(&msg)->x/SHORT1FROMMP(mp1)/ * *'
*** ':0c/MOUSEMSG(&msg)->y/SHORT2FROMMP(mp1)/ * *'
*** ':0c/MOUSEMSG(&msg)->codeHitTest/SHORT1FROMMP(mp2)/ * *'
**/
':0c/VOID _cdecl FAR/VOID/ * *'
/**
*** Change the APIs that are just renames (with no parameter changes)
***
*** Note: This have not been fully checked for parameter compatibility since
*** the author has not used these macros. If there is a substitution
*** that can easily occur (e.g. DosChDir), you can make the change. If
*** there needs to be more sophisticated changes, add it to the set of
*** "do forever" loops above.
**/
':0c/DosBufReset/DosResetBuffer/ * *'
':0c/DosCaseMap/DosMapCase/ * *'
':0c/DosChgFilePtr/DosSetFilePtr/ * *'
':0c/DosCWait/DosWaitChild/ * *'
':0c/DosDevIOCtl2/DosDevIOCtl/ * *'
':0c/DosFileLocks/DosSetFileLocks/ * *'
':0c/DosFindFirst2/DosFindFirst/ * *'
':0c/DosGetCollate/DosQueryCollate/ * *'
':0c/DosGetCP/DosQueryCP/ * *'
':0c/DosGetCtryInfo/DosQueryCtryInfo/ * *'
':0c/DosGetDBCSEv/DosQueryDBCSEnv/ * *'
':0c/DosGetModName/DosQueryModuleName/ * *'
':0c/DosGetProcAddr/DosQueryProcAddr/ * *'
':0c/DosGetPrty/DosQueryPrty/ * *'
':0c/DosGetResouce2/DosGetResource/ * *'
':0c/DosInsMessage/DosInsertMessage/ * *'
':0c/DosNewSize/DosSetFileSize/ * *'
':0c/DosQAppType/DosQueryAppType/ * *'
':0c/DosQFHandState/DosQueryFHState/ * *'
':0c/DosQFileInfo/DosQueryFileInfo/ * *'
':0c/DosQFSAttach/DosQueryFSAttach/ * *'
':0c/DosQFSInfo/DosQueryFSInfo/ * *'
':0c/DosQHandType/DosQueryHType/ * *'
':0c/DosQNmPHandState/DosQueryNPHState/ * *'
':0c/DosQNmPipeInfo/DosQueryNPipeInfo/ * *'
':0c/DosQPathInfo/DosQueryPathInfo/ * *'
':0c/DosQSysInfo(Q_MAX_PATH_LENGTH,`,sizeof(USHORT))/DosQuerySysInfo(Q_MAX_PATH_LENGTH,Q_MAX_PATH_LENGTH,`,sizeof(ULONG))/ * * '
':0c/DosQSysInfo(Q_MAX_PATH_LENGTH,`, sizeof(USHORT))/DosQuerySysInfo(Q_MAX_PATH_LENGTH, Q_MAX_PATH_LENGTH,`, sizeof(ULONG))/ * * '
':0c/DosQVerify/DosQueryVerify/ * *'
':0c/DosRmDir/DosDeleteDir/ * *'
':0c/DosSetFHandState/DosSetFHState/ * *'
':0c/DosSetNmPHandState/DosSetNPipeSem/ * *'
':0c/DosSetProcCp/DosSetProcessCP/ * *'
':0c/DosSetPrty/DosSetPriority/ * *'
':0c/Dos`NmPipe(/Dos`NPipe(/ * *'
/**
*** Remove far references. Convert to near pointer references.
**/
':0c/ _FAR_/ / * *'
':0c/ FAR/ / * *'
':0c/ far/ / * *'
':0c/_fmalloc/malloc/ * *'
':0c/_ffree/free/ * *'
':0c/_fstr`(/str`(/ * *'
':0c/_fmem`(/mem`(/ * *'
/**
*** OS/2 2.0 (Beta 6.123) doesn't like WORDWRAP and VSCROLL both on an MLE.
**/
':0';do forever;'/MLS_HSCROLL`|`MLS_WORDWRAP/';if rc \= 0 then leave;'set select' 20 1;end
':0';do forever;'/MLS_WORDWRAP`|`MLS_HSCROLL/';if rc \= 0 then leave;'set select' 20 1;end
/**
*** These changes added for IBM C Set/2 product. C Set/2 is more ANSI
*** compliant that Microsoft compilers. MS extensions like itoa are
*** provided in C Set via the "/Se" compiler directive to include the
*** extensions. However, C Set adds an underscore to the beginning of the
*** extensions to remain ANSI-compliant.
**/
':0c/itoa/_itoa/ * *'
/**
*** The following are a duplication above and will only be needed if you run
*** this macro on the same source code twice.
**/
':0c/__itoa/_itoa/ * *'
/**
*** Remove references that are not longer needed
**/
':0/#define _MT/ del 1'
/**
*** Termination and information providing
**/
':0'
'set highlight altered'
'set msgmode on'
'set msgline on 10 8 overlay'
msg ' ┌─────────────────────────────────────────┐'
msg ' │ Press F12 to display all lines that │'
msg ' │ need special attention. Press Alt-F12 │'
msg ' │ to return to a normal display. │'
msg ' │ │'
msg ' │ Press Any key to continue... │'
msg ' └─────────────────────────────────────────┘'
'readv key'
'restore'
'define f12 "display 20 20"'
'define a-f12 "display 0 *"'