home *** CD-ROM | disk | FTP | other *** search
- /*------------------------------------------------------------------*/
- /* REVORDER.C */
- /*------------------------------------------------------------------*/
- /* API ▒` ªí : revorder() */
- /* API ¿τ╝╞└] : revorder.plb */
- /* ╗y ¬k : REVORDER(<expC>) */
- /* Ñ╬ │~ : ░f┬αñ@¡╙ñσªrªΩ */
- /* ⌐IÑsñΦªí : SET LIBRARY TO REVORDER */
- /* ? REVORDER("XYZ") */
- /*------------------------------------------------------------------*/
-
- #include <pro_ext.h>
-
- void FAR revorder(ParamBlk FAR *parm)
- {
- int i;
- MHANDLE space;
- char FAR * in;
- char FAR * out;
-
-
- // └╦¼d¼Oº_»α░t╕m⌐╥╗▌ñº░O╛╨┼Θ
-
- if ((space = _AllocHand(parm->p[0].val.ev_length+1)) == 0)
- _Error(182); /* ░O╛╨┼Θñú¿¼ */
-
- /*
- Ñ╤⌐≤ª╣▒`ªí¿├ñú╖|⌐IÑsÑ⌠ª≤ñ▐░_░O╛╨┼Θ¡½▓╒ñº¿τ╝╞, ª]ª╣ªb¿╧Ñ╬ _HandToPtr()
- ñº½e╡L╢╖Ѳ¿╧Ñ╬ _HLock() ┬Ωªφª╣ñσªrªΩñº MHANDLE
- */
- in = _HandToPtr(parm->p[0].val.ev_handle);
- out = (char FAR *) _HandToPtr(space) + parm->p[0].val.ev_length;
-
- *(out--) = '\0'; /* Ñ╤⌐≤╡y½ß▒N¿╧Ñ╬ _RetChar() ╢╟ª^░f┬α½ßñºñσ */
- /* ªrªΩ, ¼Gª╣ªrªΩÑ▓╢╖ÑH NULL ªrñ╕╡▓º└ */
-
- for (i = 0; i < parm->p[0].val.ev_length; i++)
- *(out--) = *(in++);
-
- _HLock(space); /* ⌐≤¬≡┴┘⌐IÑs┤┴╢í┬Ωªφ MHANDLE */
- _RetChar(out+1);
-
- _FreeHand(space); /* ─└⌐±▒╝º┌¡╠⌐╥░t╕m¬║ MHANDLE */
- }
-
-
-
- FoxInfo myFoxInfo[] =
- {
- {"REVORDER", revorder , 1 , "C"},
- };
-
- FoxTable _FoxTable =
- {
- (FoxTable FAR *)0,
- sizeof(myFoxInfo) / sizeof(FoxInfo),
- myFoxInfo
- };