Example #1
0
DWORD DosLowAlloc( WORD wBytes )
{

    if( DpmiTable.pLowAlloc == 0 )
        return (DWORD) _xgrab( wBytes );

    return ( DpmiTable.pLowAlloc )( wBytes );

}
Example #2
0
 int ScanModPublics(WORD wModule){
    BYTE abBuffer[300];
    WORD wLen,wPublics;
    BYTE *pbBuffer,bType;
    wPublics=0;
    _tlseek(wLib,alOffsets[wModule],0);
    if (ReadByte()== THEADR)
       if (ReadHdrRecord(abBuffer)){
          while(TRUE){
             bType = ReadByte();
             switch(bType){
                case PUBDEF:
                   if ((wLen = ReadWord())!=0xffff){
                      WORD GrpIndex,SegIndex;
                      if ((GrpIndex=ReadByte()) >= 128){
                         wLen -=2;
                         ReadByte();
                      } else wLen--;
                      if ((SegIndex=ReadByte()) >= 128){
                         wLen -=2;
                         ReadByte();
                      } else wLen--;
                      if (GrpIndex==0 && SegIndex == 0){
                         ReadWord();
                         wLen -= 2;
                      }
                      while(wLen > 1){
                         ReadName(abBuffer);
                         pcStrings[wPublics]=_xgrab(strlen(abBuffer)+1);
                         strcpy(pcStrings[wPublics],abBuffer);
                         wPublics++;
                         ReadWord();
                         if (ReadByte() >= 128){
                            wLen -=2;
                            ReadByte();
                         } else wLen--;
                         wLen -= strlen(abBuffer)+1;
                         wLen -= 2;
                      }
                      ReadByte();
                   }
                   break;
                case 0x0:
                case LIBTRL:
                case THEADR:
                   return wPublics;
                default:
                   if (!SkipRecord()){
                      return 0xffff;
                   }
             }
          }
       }
    FreeStrings(wPublics);
    return 0xffff;
 }
Example #3
0
    CLIPPER RECV( PARAMS )  //  nSocket --> cResult
#endif
{
   LPBYTE buffer = ( LPBYTE ) _xgrab( 8192 );
   WORD wLen = recv( _parni( 1 ), ( char * ) buffer, 8192, 0 );

   if( wLen < 10000 )  // socket errors = 10000 + ...
      _storclen( ( char * ) buffer, wLen, 2 );
   else
      _storclen( "", 0, 2 );

   _retni( wLen );
   _xfree( buffer );
}
Example #4
0
CLIPPER JW_SCRAM(void)
{
    char *temp;
    char *str;
    unsigned int len;
    int i;
    char c;

    if ( PCOUNT == 2 && ISCHAR(1) && ISNUM(2))
	{
	/* get pointer to param */
	str = _parc(1);

	/* get strings length */
	len = _parclen(1);

	/* allocate temp buffer */
	temp = _xgrab(len+1);

	/* put null byte */
	temp[len] = '\0';

	/* get encrypting value */
	i = _parni(2);

	/* convert to char */
	c = (char)i;

	/* copy input string to buffer XORing and 2's complementing as we go */
	for (i = 0; i < len; i++)
	    {
	    temp[i] = ~(str[i] ^ c);
	    }
	/* post modified value as CLIPPER return */
	_retclen(temp, len);

	/* free buffer */
	_xfree(temp);
	}
    else
    {
	     /* bad param */
	     _ret();
    }
}
Example #5
0
 int ScanModExternals(WORD wModule){
    BYTE abBuffer[300];
    WORD wLen,wExternals;
    BYTE *pbBuffer,bType;
    wExternals=0;
    _tlseek(wLib,alOffsets[wModule],0);
    if (ReadByte()== THEADR)
       if (ReadHdrRecord(abBuffer)){
          while(TRUE){
             bType = ReadByte();
             switch(bType){
                case EXTDEF:
                   if ((wLen = ReadWord())!=0xffff){
                      while(wLen > 1){
                         ReadName(abBuffer);
                         pcStrings[wExternals]=_xgrab(strlen(abBuffer)+1);
                         strcpy(pcStrings[wExternals],abBuffer);
                         wExternals++;
                         wLen -= strlen(abBuffer)+1;
                         if (ReadByte() >= 128){
                            wLen -=2;
                            ReadByte();
                         } else wLen--;
                      }
                      ReadByte();
                   }
                   break;
                case 0x0:
                case LIBTRL:
                case THEADR:
                   return wExternals;
                default:
                   if (!SkipRecord()){
                      return 0xffff;
                   }
             }
          }
       }
    FreeStrings(wExternals);
    return 0xffff;
 }