2008-06-25 16:48 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbver.h
* removed unnecessary EOL inside comment
* harbour/contrib/hbodbc/odbc.c
! use valid integer type instead of explicit casting in function call.
Such casting is vary dangerous and may cause unpredictible results
when integer value has different binary size
* harbour/contrib/hbtpathy/Makefile
* harbour/contrib/hbtpathy/common.mak
* harbour/contrib/hbtpathy/telepath.ch
* harbour/contrib/hbtpathy/tplinux.c
* harbour/contrib/hbtpathy/tpwin32.c
* harbour/contrib/hbtpathy/tpos2.c
* harbour/contrib/hbtpathy/telepath.prg
* harbour/contrib/hbtpathy/readme.txt
* harbour/contrib/hbtpathy/tests/testtp.prg
* converted EOL style to native
* set valid SVN attributes
* harbour/contrib/hbapollo/Makefile
* disabled non W32 builds, SDE exists only for MS-Windows
* harbour/contrib/hbziparch/Makefile
! fixed C flag setting for Linux builds
* harbour/source/pp/ppcore.c
* formatting
* harbour/source/rtl/valtoexp.prg
! fixed empty date conversion
* harbour/hbgtmk.sh
* harbour/make_xmingwce.sh
* harbour/make_deb.sh
* harbour/make_rpmw32.sh
* harbour/make_gcc.sh
* harbour/make_rpm.sh
* harbour/make_xmingw.sh
* harbour/make_tgz.sh
* harbour/make_rpmce.sh
* harbour/contrib/hbmzip/make_gcc.sh
* harbour/contrib/hbsqlit3/make_gcc.sh
* harbour/contrib/make_gcc_all.sh
* harbour/contrib/hbziparch/make_gcc.sh
* harbour/contrib/hbnf/make_gcc.sh
* harbour/contrib/hbhpdf/tests/files/cp932.txt
* harbour/contrib/hbhpdf/make_gcc.sh
* harbour/contrib/rddado/make_gcc.sh
* harbour/contrib/gtwvg/make_gcc.sh
* harbour/contrib/hbpgsql/make_gcc.sh
* harbour/contrib/rddads/make_gcc.sh
* harbour/contrib/hbclipsm/make_gcc.sh
* harbour/contrib/mtpl_gcc.sh
* harbour/contrib/hbfimage/make_gcc.sh
* harbour/contrib/hbgd/tests/bld.sh
* harbour/contrib/hbgd/make_gcc.sh
* harbour/contrib/hbmisc/make_gcc.sh
* harbour/contrib/hbtip/make_gcc.sh
* harbour/contrib/hbbmcdx/make_gcc.sh
* harbour/contrib/hbvpdf/make_gcc.sh
* harbour/contrib/hbbtree/make_gcc.sh
* set valid SVN EOL attribute
This commit is contained in:
@@ -8,6 +8,71 @@
|
||||
2008-12-31 13:59 UTC+0100 Foo Bar <foo.bar@foobar.org>
|
||||
*/
|
||||
|
||||
2008-06-25 16:48 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/include/hbver.h
|
||||
* removed unnecessary EOL inside comment
|
||||
|
||||
* harbour/contrib/hbodbc/odbc.c
|
||||
! use valid integer type instead of explicit casting in function call.
|
||||
Such casting is vary dangerous and may cause unpredictible results
|
||||
when integer value has different binary size
|
||||
|
||||
* harbour/contrib/hbtpathy/Makefile
|
||||
* harbour/contrib/hbtpathy/common.mak
|
||||
* harbour/contrib/hbtpathy/telepath.ch
|
||||
* harbour/contrib/hbtpathy/tplinux.c
|
||||
* harbour/contrib/hbtpathy/tpwin32.c
|
||||
* harbour/contrib/hbtpathy/tpos2.c
|
||||
* harbour/contrib/hbtpathy/telepath.prg
|
||||
* harbour/contrib/hbtpathy/readme.txt
|
||||
* harbour/contrib/hbtpathy/tests/testtp.prg
|
||||
* converted EOL style to native
|
||||
* set valid SVN attributes
|
||||
|
||||
* harbour/contrib/hbapollo/Makefile
|
||||
* disabled non W32 builds, SDE exists only for MS-Windows
|
||||
|
||||
* harbour/contrib/hbziparch/Makefile
|
||||
! fixed C flag setting for Linux builds
|
||||
|
||||
* harbour/source/pp/ppcore.c
|
||||
* formatting
|
||||
|
||||
* harbour/source/rtl/valtoexp.prg
|
||||
! fixed empty date conversion
|
||||
|
||||
* harbour/hbgtmk.sh
|
||||
* harbour/make_xmingwce.sh
|
||||
* harbour/make_deb.sh
|
||||
* harbour/make_rpmw32.sh
|
||||
* harbour/make_gcc.sh
|
||||
* harbour/make_rpm.sh
|
||||
* harbour/make_xmingw.sh
|
||||
* harbour/make_tgz.sh
|
||||
* harbour/make_rpmce.sh
|
||||
* harbour/contrib/hbmzip/make_gcc.sh
|
||||
* harbour/contrib/hbsqlit3/make_gcc.sh
|
||||
* harbour/contrib/make_gcc_all.sh
|
||||
* harbour/contrib/hbziparch/make_gcc.sh
|
||||
* harbour/contrib/hbnf/make_gcc.sh
|
||||
* harbour/contrib/hbhpdf/tests/files/cp932.txt
|
||||
* harbour/contrib/hbhpdf/make_gcc.sh
|
||||
* harbour/contrib/rddado/make_gcc.sh
|
||||
* harbour/contrib/gtwvg/make_gcc.sh
|
||||
* harbour/contrib/hbpgsql/make_gcc.sh
|
||||
* harbour/contrib/rddads/make_gcc.sh
|
||||
* harbour/contrib/hbclipsm/make_gcc.sh
|
||||
* harbour/contrib/mtpl_gcc.sh
|
||||
* harbour/contrib/hbfimage/make_gcc.sh
|
||||
* harbour/contrib/hbgd/tests/bld.sh
|
||||
* harbour/contrib/hbgd/make_gcc.sh
|
||||
* harbour/contrib/hbmisc/make_gcc.sh
|
||||
* harbour/contrib/hbtip/make_gcc.sh
|
||||
* harbour/contrib/hbbmcdx/make_gcc.sh
|
||||
* harbour/contrib/hbvpdf/make_gcc.sh
|
||||
* harbour/contrib/hbbtree/make_gcc.sh
|
||||
* set valid SVN EOL attribute
|
||||
|
||||
2008-06-25 11:49 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
|
||||
* source/rtl/gtwvt/gtwvt.c
|
||||
* Slightly changed the way CLOSE button works.
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
# $Id$
|
||||
#
|
||||
|
||||
ifeq ($(HB_ARCHITECTURE),w32)
|
||||
|
||||
ROOT = ../../
|
||||
|
||||
C_SOURCES=\
|
||||
@@ -16,3 +18,5 @@ PRG_HEADERS=\
|
||||
LIBNAME=hbapollo
|
||||
|
||||
include $(TOP)$(ROOT)config/lib.cf
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
if [ "${HB_INC_LIBHARU}" == "" ]
|
||||
then
|
||||
echo "---------------------------------------------------------------"
|
||||
echo "IMPORTANT: You will need Haru Free PDF Library (libharu) DLL
|
||||
echo " package installed and this envvar to be set to"
|
||||
echo " successfully build this library:"
|
||||
echo " export HB_INC_LIBHARU=C:/libharu/include"
|
||||
echo " or"
|
||||
echo " export HB_INC_LIBHARU=/usr/include/libharu"
|
||||
echo "---------------------------------------------------------------"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export CFLAGS=
|
||||
for I in ${HB_INC_LIBHARU}; do
|
||||
CFLAGS="${CFLAGS} -I${I}"
|
||||
done
|
||||
../mtpl_gcc.sh $1 $2 $3 $4 $5 $6 $7 $8 $9
|
||||
unset CFLAGS
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
if [ "${HB_INC_LIBHARU}" == "" ]
|
||||
then
|
||||
echo "---------------------------------------------------------------"
|
||||
echo "IMPORTANT: You will need Haru Free PDF Library (libharu) DLL
|
||||
echo " package installed and this envvar to be set to"
|
||||
echo " successfully build this library:"
|
||||
echo " export HB_INC_LIBHARU=C:/libharu/include"
|
||||
echo " or"
|
||||
echo " export HB_INC_LIBHARU=/usr/include/libharu"
|
||||
echo "---------------------------------------------------------------"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export CFLAGS=
|
||||
for I in ${HB_INC_LIBHARU}; do
|
||||
CFLAGS="${CFLAGS} -I${I}"
|
||||
done
|
||||
../mtpl_gcc.sh $1 $2 $3 $4 $5 $6 $7 $8 $9
|
||||
unset CFLAGS
|
||||
|
||||
@@ -366,14 +366,14 @@ HB_FUNC( SQLCOLATTRIBUTE )
|
||||
SDWORD lLen = ( SDWORD ) hb_parnl( 5 );
|
||||
PTR bBuffer = hb_xgrab( lLen );
|
||||
SQLSMALLINT wBufLen = hb_parni( 6 );
|
||||
SQLSMALLINT wNumPtr = hb_parni( 7 );
|
||||
#if defined(__DMC__)
|
||||
SQLINTEGER wNumPtr = hb_parni( 7 );
|
||||
#else
|
||||
SQLLEN wNumPtr = hb_parni( 7 );
|
||||
#endif
|
||||
WORD wResult = SQLColAttribute( ( HSTMT ) hb_parnl( 1 ), hb_parni( 2 ), hb_parni( 3 ),
|
||||
(unsigned char*) bBuffer, hb_parni( 5 ), &wBufLen,
|
||||
#if defined(__DMC__)
|
||||
(SQLINTEGER FAR*) &wNumPtr );
|
||||
#else
|
||||
(SQLLEN *) &wNumPtr );
|
||||
#endif
|
||||
&wNumPtr );
|
||||
|
||||
if( wResult == SQL_SUCCESS || wResult == SQL_SUCCESS_WITH_INFO )
|
||||
{
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: ChangeLog,v 1.15 2005/10/24 14:39:26 mauriliolongo Exp $
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/* Use this format for the entry headers:
|
||||
|
||||
@@ -1,38 +1,38 @@
|
||||
#
|
||||
# $Id: Makefile,v 1.4 2005/10/13 10:45:46 mauriliolongo Exp $
|
||||
#
|
||||
|
||||
ROOT = ../../
|
||||
|
||||
ifneq ($(HB_ARCHITECTURE),dos)
|
||||
|
||||
ifeq ($(HB_ARCHITECTURE),linux)
|
||||
C_SOURCES=\
|
||||
tplinux.c \
|
||||
tpcommon.c \
|
||||
|
||||
endif
|
||||
ifeq ($(HB_ARCHITECTURE),win32)
|
||||
C_SOURCES=\
|
||||
tpwin32.c \
|
||||
tpcommon.c \
|
||||
|
||||
endif
|
||||
ifeq ($(HB_ARCHITECTURE),os2)
|
||||
C_SOURCES=\
|
||||
tpos2.c \
|
||||
tpcommon.c \
|
||||
|
||||
endif
|
||||
|
||||
PRG_SOURCES=\
|
||||
telepath.prg \
|
||||
|
||||
PRG_HEADERS=\
|
||||
telepath.ch \
|
||||
|
||||
LIBNAME=hbtpathy
|
||||
|
||||
include $(TOP)$(ROOT)config/lib.cf
|
||||
|
||||
endif
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
ROOT = ../../
|
||||
|
||||
ifneq ($(HB_ARCHITECTURE),dos)
|
||||
|
||||
ifeq ($(HB_ARCHITECTURE),linux)
|
||||
C_SOURCES=\
|
||||
tplinux.c \
|
||||
tpcommon.c \
|
||||
|
||||
endif
|
||||
ifeq ($(HB_ARCHITECTURE),win32)
|
||||
C_SOURCES=\
|
||||
tpwin32.c \
|
||||
tpcommon.c \
|
||||
|
||||
endif
|
||||
ifeq ($(HB_ARCHITECTURE),os2)
|
||||
C_SOURCES=\
|
||||
tpos2.c \
|
||||
tpcommon.c \
|
||||
|
||||
endif
|
||||
|
||||
PRG_SOURCES=\
|
||||
telepath.prg \
|
||||
|
||||
PRG_HEADERS=\
|
||||
telepath.ch \
|
||||
|
||||
LIBNAME=hbtpathy
|
||||
|
||||
include $(TOP)$(ROOT)config/lib.cf
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
#
|
||||
# $Id: common.mak 7935 2007-11-10 11:31:17Z vszakats $
|
||||
#
|
||||
|
||||
LIBNAME = $(LIBPREF)hbtpathy
|
||||
|
||||
LIB_PATH = $(LIB_DIR)$(LIBNAME)$(LIBEXT)
|
||||
|
||||
LIB_OBJS = \
|
||||
$(OBJ_DIR)tpwin32$(OBJEXT) \
|
||||
$(OBJ_DIR)tpcommon$(OBJEXT) \
|
||||
\
|
||||
$(OBJ_DIR)telepath$(OBJEXT) \
|
||||
|
||||
all: \
|
||||
$(LIB_PATH) \
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
LIBNAME = $(LIBPREF)hbtpathy
|
||||
|
||||
LIB_PATH = $(LIB_DIR)$(LIBNAME)$(LIBEXT)
|
||||
|
||||
LIB_OBJS = \
|
||||
$(OBJ_DIR)tpwin32$(OBJEXT) \
|
||||
$(OBJ_DIR)tpcommon$(OBJEXT) \
|
||||
\
|
||||
$(OBJ_DIR)telepath$(OBJEXT) \
|
||||
|
||||
all: \
|
||||
$(LIB_PATH) \
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@echo off
|
||||
rem
|
||||
rem $Id: make_b32.bat 7974 2007-11-14 23:24:27Z vszakats $
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
call ..\mtpl_b32.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@echo off
|
||||
rem
|
||||
rem $Id: make_vc.bat 7974 2007-11-14 23:24:27Z vszakats $
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
call ..\mtpl_vc.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
|
||||
|
||||
@@ -1,55 +1,55 @@
|
||||
/*
|
||||
* $Id: README,v 1.2 2004/08/16 14:30:18 mauriliolongo Exp $
|
||||
*/
|
||||
|
||||
Telepathy is the best serial communication library for Nantucket/CA Clipper.
|
||||
I ported a significant amount of the functionality contained in Telepathy in
|
||||
this Flagship port.
|
||||
|
||||
The .prg (in the MyTelepathy.tar package) is meant to be compiled with
|
||||
Flagship and provide some of the functionality of the Telepathy serial
|
||||
library from Extrasensory Inc. I've talked to Ira Emus, the proprietor of
|
||||
Extrasensory and he's ok with what I've done here. But Extrasensory has no
|
||||
involvement or responsibility with this project.
|
||||
|
||||
I wrote this originally on RedHat Linux 5.1 and I've tested it on RedHat
|
||||
6.2. And now Neolinux 2.0.1 and 2.1. I've tested it on kernels 2.0.x - 2.4.x.
|
||||
Your mileage may vary.
|
||||
|
||||
I only ported the parts of Telepathy that I needed. If you need other parts
|
||||
of the telepathy libarary, Use the Source... (and send me your new functions)
|
||||
|
||||
I tried to keep parameter counts and orders as consistent as possible between
|
||||
this Telepathy and the real Telepathy. The only difference I can think of is
|
||||
the parameter list for tp_open (and tp_reopen). That's just because unix has
|
||||
filename comports like /dev/ttyS0 and dos has com port numbers like 1. I kept
|
||||
the com port number thing so that all the telepathy functions (and all your
|
||||
code) that uses com port number won't need to be changed. But you do need to
|
||||
change the calls to tp_open.
|
||||
|
||||
Feel free to use, modify, distribute, hack, kludge, append, extend or whatever
|
||||
you like to this source code. You can (at your own risk) compile it into any
|
||||
program you wish and sell or freely distribute the resulting application. I
|
||||
would prefer you make your application Free and distribute the source. But who
|
||||
am I to say - the suite of applications that my company sells that I originally
|
||||
wrote this for is closed source.
|
||||
|
||||
Though I use this code in a production environment for a suite of programs that
|
||||
my company actually sells, I make no promises (expressed or implied) about its
|
||||
stability, functionality, effectiveness or anything else. I warn you now
|
||||
that if you use my code, you're doing so at your own risk and it will probably
|
||||
blow up your computer. But that's a risk you'll just have to take.
|
||||
|
||||
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
PURPOSE (thanks RMS).
|
||||
This software is totally as is, you may use it at your own risk.
|
||||
|
||||
This is freeware. But if you actually use this in your program, please send
|
||||
me email at dan@boba-fett.net. I'd just be curious to see if anyone ever
|
||||
uses it.
|
||||
|
||||
If you find a bug or write some new code for this project, pretty please send
|
||||
me email with it.
|
||||
|
||||
- Dan Levitt <dan@boba-fett.net>
|
||||
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
Telepathy is the best serial communication library for Nantucket/CA Clipper.
|
||||
I ported a significant amount of the functionality contained in Telepathy in
|
||||
this Flagship port.
|
||||
|
||||
The .prg (in the MyTelepathy.tar package) is meant to be compiled with
|
||||
Flagship and provide some of the functionality of the Telepathy serial
|
||||
library from Extrasensory Inc. I've talked to Ira Emus, the proprietor of
|
||||
Extrasensory and he's ok with what I've done here. But Extrasensory has no
|
||||
involvement or responsibility with this project.
|
||||
|
||||
I wrote this originally on RedHat Linux 5.1 and I've tested it on RedHat
|
||||
6.2. And now Neolinux 2.0.1 and 2.1. I've tested it on kernels 2.0.x - 2.4.x.
|
||||
Your mileage may vary.
|
||||
|
||||
I only ported the parts of Telepathy that I needed. If you need other parts
|
||||
of the telepathy libarary, Use the Source... (and send me your new functions)
|
||||
|
||||
I tried to keep parameter counts and orders as consistent as possible between
|
||||
this Telepathy and the real Telepathy. The only difference I can think of is
|
||||
the parameter list for tp_open (and tp_reopen). That's just because unix has
|
||||
filename comports like /dev/ttyS0 and dos has com port numbers like 1. I kept
|
||||
the com port number thing so that all the telepathy functions (and all your
|
||||
code) that uses com port number won't need to be changed. But you do need to
|
||||
change the calls to tp_open.
|
||||
|
||||
Feel free to use, modify, distribute, hack, kludge, append, extend or whatever
|
||||
you like to this source code. You can (at your own risk) compile it into any
|
||||
program you wish and sell or freely distribute the resulting application. I
|
||||
would prefer you make your application Free and distribute the source. But who
|
||||
am I to say - the suite of applications that my company sells that I originally
|
||||
wrote this for is closed source.
|
||||
|
||||
Though I use this code in a production environment for a suite of programs that
|
||||
my company actually sells, I make no promises (expressed or implied) about its
|
||||
stability, functionality, effectiveness or anything else. I warn you now
|
||||
that if you use my code, you're doing so at your own risk and it will probably
|
||||
blow up your computer. But that's a risk you'll just have to take.
|
||||
|
||||
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
PURPOSE (thanks RMS).
|
||||
This software is totally as is, you may use it at your own risk.
|
||||
|
||||
This is freeware. But if you actually use this in your program, please send
|
||||
me email at dan@boba-fett.net. I'd just be curious to see if anyone ever
|
||||
uses it.
|
||||
|
||||
If you find a bug or write some new code for this project, pretty please send
|
||||
me email with it.
|
||||
|
||||
- Dan Levitt <dan@boba-fett.net>
|
||||
|
||||
|
||||
@@ -1,126 +1,126 @@
|
||||
/*
|
||||
* $Id: telepath.ch,v 1.1 2004/08/31 14:48:39 mauriliolongo Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* Telepathy emulation library
|
||||
*
|
||||
* Copyright 2000, 2001 Dan Levitt <dan@boba-fett.net>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#define TP_MAXPORTS 8
|
||||
|
||||
#define TPFP_NAME 1 // Structure of ports array
|
||||
#define TPFP_HANDLE 2
|
||||
#define TPFP_BAUD 3
|
||||
#define TPFP_DBITS 4
|
||||
#define TPFP_PARITY 5
|
||||
#define TPFP_SBITS 6
|
||||
#define TPFP_OC 7 // Open/Close Flag
|
||||
#define TPFP_INBUF 8
|
||||
#define TPFP_INBUF_SIZE 9 // Size of input buffer
|
||||
|
||||
|
||||
// Error code definitions
|
||||
#define TE_PARAM -1 // Bad parameter
|
||||
#define TE_NOPORT -2 // No such port
|
||||
#define TE_CLOSED -3 // Port not open
|
||||
#define TE_CONFL -4 // IRQ conflict
|
||||
#define TE_TMOUT -5 // Timeout
|
||||
#define TE_NDCD -6 // Lost DCD
|
||||
#define TE_ESCAPE -7 // User escape
|
||||
#define TE_LENGTH -8 // Length limit
|
||||
#define TE_CANCEL -9 // Input canceled
|
||||
#define TE_NOHDL -10 // Out of handles
|
||||
|
||||
#define TE_UCANCEL -50 // Canceled by user
|
||||
#define TE_RCANCEL -51 // Canceled by remote
|
||||
#define TE_STARTTM -52 // Timeout waiting to start
|
||||
#define TE_BLOCKTM -53 // Timeout waiting for block
|
||||
#define TE_ACKTM -54 // Timeout waiting for acknowledge
|
||||
#define TE_SENDTM -55 // Timeout waiting to send
|
||||
#define TE_CLEARTM -56 // Timeout waiting for sender to stop
|
||||
#define TE_NAK -57 // Negative acknowledge
|
||||
#define TE_BADACK -58 // Bad acknowledge character
|
||||
#define TE_BADBLK -59 // Bad block format
|
||||
#define TE_LONGBLK -60 // Long block received
|
||||
#define TE_ERRMAX -61 // Too many errors
|
||||
#define TE_DUPBLK -62 // Duplicate block
|
||||
#define TE_PROTO -63 // Protocol failure
|
||||
#define TE_CKSUM -64 // Checksum error
|
||||
#define TE_HDRTM -65 // Timeout waiting for Zmodem header
|
||||
|
||||
#define TE_DISKFULL -100 // Disk full
|
||||
#define TE_NOFILE -102 // File not found
|
||||
#define TE_NOPATH -103 // Path not found
|
||||
#define TE_MFILE -104 // Too many open files
|
||||
#define TE_ACCESS -105 // Access denied
|
||||
|
||||
// File transfer status
|
||||
#define TXS_START 1 // Start of transfer
|
||||
#define TXS_SFILE 2 // Start of file
|
||||
#define TXS_NEWNAME 3 // File renamed
|
||||
#define TXS_SDATA 4 // Start of file data
|
||||
#define TXS_BLOCK 5 // End of block
|
||||
#define TXS_ERROR 6 // Error
|
||||
#define TXS_ABFILE 7 // Aborting file
|
||||
#define TXS_ABORT 8 // Aborting transfer
|
||||
#define TXS_WEND 9 // Waiting for end of file
|
||||
#define TXS_EFILE 10 // End of file
|
||||
#define TXS_END 11 // End of transfer
|
||||
|
||||
#define TP_32MAGIC 558161692
|
||||
|
||||
// Handshaking flags for tp_hshk()
|
||||
#define THS_RDSR 1 // Require DSR
|
||||
#define THS_RCTS 2 // Require CTS
|
||||
#define THS_RXOFF 4 // Respect XON/XOFF
|
||||
#define THS_RDCD 8 // Require DCD
|
||||
#define THS_ADTR 16 // Assert DTR
|
||||
#define THS_CDTR 32 // Flow control with DTR
|
||||
#define THS_ARTS 64 // Assert RTS
|
||||
#define THS_CRTS 128 // Flow control with RTS
|
||||
#define THS_SXOFF 256 // Send XON/XOFF
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* Telepathy emulation library
|
||||
*
|
||||
* Copyright 2000, 2001 Dan Levitt <dan@boba-fett.net>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#define TP_MAXPORTS 8
|
||||
|
||||
#define TPFP_NAME 1 // Structure of ports array
|
||||
#define TPFP_HANDLE 2
|
||||
#define TPFP_BAUD 3
|
||||
#define TPFP_DBITS 4
|
||||
#define TPFP_PARITY 5
|
||||
#define TPFP_SBITS 6
|
||||
#define TPFP_OC 7 // Open/Close Flag
|
||||
#define TPFP_INBUF 8
|
||||
#define TPFP_INBUF_SIZE 9 // Size of input buffer
|
||||
|
||||
|
||||
// Error code definitions
|
||||
#define TE_PARAM -1 // Bad parameter
|
||||
#define TE_NOPORT -2 // No such port
|
||||
#define TE_CLOSED -3 // Port not open
|
||||
#define TE_CONFL -4 // IRQ conflict
|
||||
#define TE_TMOUT -5 // Timeout
|
||||
#define TE_NDCD -6 // Lost DCD
|
||||
#define TE_ESCAPE -7 // User escape
|
||||
#define TE_LENGTH -8 // Length limit
|
||||
#define TE_CANCEL -9 // Input canceled
|
||||
#define TE_NOHDL -10 // Out of handles
|
||||
|
||||
#define TE_UCANCEL -50 // Canceled by user
|
||||
#define TE_RCANCEL -51 // Canceled by remote
|
||||
#define TE_STARTTM -52 // Timeout waiting to start
|
||||
#define TE_BLOCKTM -53 // Timeout waiting for block
|
||||
#define TE_ACKTM -54 // Timeout waiting for acknowledge
|
||||
#define TE_SENDTM -55 // Timeout waiting to send
|
||||
#define TE_CLEARTM -56 // Timeout waiting for sender to stop
|
||||
#define TE_NAK -57 // Negative acknowledge
|
||||
#define TE_BADACK -58 // Bad acknowledge character
|
||||
#define TE_BADBLK -59 // Bad block format
|
||||
#define TE_LONGBLK -60 // Long block received
|
||||
#define TE_ERRMAX -61 // Too many errors
|
||||
#define TE_DUPBLK -62 // Duplicate block
|
||||
#define TE_PROTO -63 // Protocol failure
|
||||
#define TE_CKSUM -64 // Checksum error
|
||||
#define TE_HDRTM -65 // Timeout waiting for Zmodem header
|
||||
|
||||
#define TE_DISKFULL -100 // Disk full
|
||||
#define TE_NOFILE -102 // File not found
|
||||
#define TE_NOPATH -103 // Path not found
|
||||
#define TE_MFILE -104 // Too many open files
|
||||
#define TE_ACCESS -105 // Access denied
|
||||
|
||||
// File transfer status
|
||||
#define TXS_START 1 // Start of transfer
|
||||
#define TXS_SFILE 2 // Start of file
|
||||
#define TXS_NEWNAME 3 // File renamed
|
||||
#define TXS_SDATA 4 // Start of file data
|
||||
#define TXS_BLOCK 5 // End of block
|
||||
#define TXS_ERROR 6 // Error
|
||||
#define TXS_ABFILE 7 // Aborting file
|
||||
#define TXS_ABORT 8 // Aborting transfer
|
||||
#define TXS_WEND 9 // Waiting for end of file
|
||||
#define TXS_EFILE 10 // End of file
|
||||
#define TXS_END 11 // End of transfer
|
||||
|
||||
#define TP_32MAGIC 558161692
|
||||
|
||||
// Handshaking flags for tp_hshk()
|
||||
#define THS_RDSR 1 // Require DSR
|
||||
#define THS_RCTS 2 // Require CTS
|
||||
#define THS_RXOFF 4 // Respect XON/XOFF
|
||||
#define THS_RDCD 8 // Require DCD
|
||||
#define THS_ADTR 16 // Assert DTR
|
||||
#define THS_CDTR 32 // Flow control with DTR
|
||||
#define THS_ARTS 64 // Assert RTS
|
||||
#define THS_CRTS 128 // Flow control with RTS
|
||||
#define THS_SXOFF 256 // Send XON/XOFF
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,78 +1,78 @@
|
||||
/*
|
||||
* $Id: testtp.prg,v 1.4 2004/08/25 08:49:06 mauriliolongo Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* Telepathy emulation library
|
||||
*
|
||||
* Copyright 2000, 2001 Dan Levitt <dan@boba-fett.net>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
This is based upon a library originally made by Dan Levitt <dan@boba-fett.net>
|
||||
(see README and ChangeLog). The original files have been committed as v1.0,
|
||||
so you can always retrieve them (see CVS docs on how to)
|
||||
|
||||
First xHarbour Port by Luiz Rafael Culik Guimaraes (culikr@brturbo.com)
|
||||
*/
|
||||
|
||||
/*
|
||||
instructions - hook up a loopback device to "com1" of your computer
|
||||
run this program. It should echo Hi there bob.
|
||||
If it gives you a file i/o error, try running as root.
|
||||
also make sure that other programs (minicom?) can successfully talk to your
|
||||
com port.
|
||||
*/
|
||||
|
||||
function main
|
||||
?
|
||||
?
|
||||
? tp_open( 1,, 9600, 8, "N", 1 )
|
||||
//tp_send( 1, "Hi there bob" )
|
||||
tp_inkey( .5 )
|
||||
//? tp_recv( 1 )
|
||||
?
|
||||
tp_Close( 1 )
|
||||
return nil
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* Telepathy emulation library
|
||||
*
|
||||
* Copyright 2000, 2001 Dan Levitt <dan@boba-fett.net>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
This is based upon a library originally made by Dan Levitt <dan@boba-fett.net>
|
||||
(see README and ChangeLog). The original files have been committed as v1.0,
|
||||
so you can always retrieve them (see CVS docs on how to)
|
||||
|
||||
First xHarbour Port by Luiz Rafael Culik Guimaraes (culikr@brturbo.com)
|
||||
*/
|
||||
|
||||
/*
|
||||
instructions - hook up a loopback device to "com1" of your computer
|
||||
run this program. It should echo Hi there bob.
|
||||
If it gives you a file i/o error, try running as root.
|
||||
also make sure that other programs (minicom?) can successfully talk to your
|
||||
com port.
|
||||
*/
|
||||
|
||||
function main
|
||||
?
|
||||
?
|
||||
? tp_open( 1,, 9600, 8, "N", 1 )
|
||||
//tp_send( 1, "Hi there bob" )
|
||||
tp_inkey( .5 )
|
||||
//? tp_recv( 1 )
|
||||
?
|
||||
tp_Close( 1 )
|
||||
return nil
|
||||
|
||||
@@ -1,308 +1,308 @@
|
||||
/*
|
||||
* $Id: linux.c,v 1.2 2005/10/24 14:39:26 mauriliolongo Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* Telepathy emulation library
|
||||
* C low level module for linux serial communication
|
||||
*
|
||||
* Copyright 2005 - Maurilio Longo <maurilio.longo@libero.it>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* Lots of code from http://www.easysw.com/~mike/serial/serial.html
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "hbapi.h"
|
||||
#include "hbapiitm.h"
|
||||
#include "hbapifs.h"
|
||||
|
||||
#ifdef HB_OS_UNIX
|
||||
|
||||
#include <stdio.h> /* Standard input/output definitions */
|
||||
#include <string.h> /* String function definitions */
|
||||
#include <unistd.h> /* UNIX standard function definitions */
|
||||
#include <fcntl.h> /* File control definitions */
|
||||
#include <errno.h> /* Error number definitions */
|
||||
#include <termios.h> /* POSIX terminal control definitions */
|
||||
#include <sys/ioctl.h>
|
||||
|
||||
HB_FUNC( P_OPEN )
|
||||
{
|
||||
int fd = open( hb_parcx( 1 ), O_RDWR | O_NOCTTY | O_NDELAY ); /* File descriptor for the port */
|
||||
|
||||
if( fd != -1 )
|
||||
fcntl( fd, F_SETFL, 0 );
|
||||
|
||||
hb_retnl( fd );
|
||||
}
|
||||
|
||||
/*
|
||||
p_InitPortSpeed( aPorts[ nPort, TPFP_HANDLE ] ,;
|
||||
aPorts[ nPort, TPFP_BAUD ] ,;
|
||||
aPorts[ nPort, TPFP_DBITS ] ,;
|
||||
aPorts[ nPort, TPFP_PARITY ] ,;
|
||||
aPorts[ nPort, TPFP_SBITS ] )
|
||||
*/
|
||||
HB_FUNC( P_INITPORTSPEED )
|
||||
{
|
||||
struct termios options;
|
||||
int port = hb_parnl( 1 );
|
||||
int baud = B300;
|
||||
char * ptr = hb_parcx( 4 );
|
||||
int rc;
|
||||
|
||||
tcgetattr( port, &options );
|
||||
|
||||
/* let's set baud rate */
|
||||
switch( hb_parnl( 2 ) )
|
||||
{
|
||||
case 0: baud = B0; break; /* Drop line */
|
||||
case 50: baud = B50; break;
|
||||
case 75: baud = B75; break;
|
||||
case 110: baud = B110; break;
|
||||
case 150: baud = B150; break;
|
||||
case 200: baud = B200; break;
|
||||
case 300: baud = B300; break;
|
||||
case 600: baud = B600; break;
|
||||
case 1200: baud = B1200; break;
|
||||
case 1800: baud = B1800; break;
|
||||
case 2400: baud = B2400; break;
|
||||
case 4800: baud = B4800; break;
|
||||
case 9600: baud = B9600; break;
|
||||
case 19200: baud = B19200; break;
|
||||
case 38400: baud = B38400; break;
|
||||
case 57600: baud = B57600; break;
|
||||
case 115200: baud = B115200; break;
|
||||
case 230400: baud = B230400; break;
|
||||
}
|
||||
|
||||
cfsetispeed( &options, baud );
|
||||
cfsetospeed( &options, baud );
|
||||
|
||||
/* Enable the receiver and set local mode... */
|
||||
options.c_cflag |= ( CLOCAL | CREAD );
|
||||
|
||||
/* Raw input from device */
|
||||
cfmakeraw( &options );
|
||||
|
||||
/* Reset data bits ( cfmakeraw() puts it to CS8 ) */
|
||||
options.c_cflag &= ~CSIZE;
|
||||
|
||||
/* Data bits */
|
||||
if( hb_parni( 3 ) == 8 )
|
||||
options.c_cflag |= CS8;
|
||||
else
|
||||
options.c_cflag |= CS7;
|
||||
|
||||
/* Stop bits */
|
||||
if( hb_parni( 5 ) == 1 )
|
||||
options.c_cflag &= ~CSTOPB;
|
||||
|
||||
/* Parity, only No, Even, Odd supported */
|
||||
switch ( *ptr )
|
||||
{
|
||||
case 'N':
|
||||
case 'n':
|
||||
options.c_cflag &= ~PARENB;
|
||||
|
||||
options.c_iflag &= ~(INPCK); /* disable input parity checking */
|
||||
break;
|
||||
|
||||
case 'O':
|
||||
case 'o':
|
||||
options.c_cflag |= PARENB;
|
||||
options.c_cflag |= PARODD;
|
||||
|
||||
options.c_iflag |= INPCK;
|
||||
break;
|
||||
|
||||
case 'E':
|
||||
case 'e':
|
||||
options.c_cflag |= PARENB;
|
||||
options.c_cflag &= ~PARODD;
|
||||
|
||||
options.c_iflag |= INPCK;
|
||||
break;
|
||||
}
|
||||
|
||||
/* Every read() call returns as soon as a char is available OR after 3 tenths of a second */
|
||||
options.c_cc[ VMIN ] = 0;
|
||||
options.c_cc[ VTIME ] = 3;
|
||||
|
||||
/* Set the new options for the port... */
|
||||
rc = tcsetattr( port, TCSAFLUSH, &options );
|
||||
|
||||
hb_retnl( rc );
|
||||
}
|
||||
|
||||
HB_FUNC( P_READPORT )
|
||||
{
|
||||
char Buffer[ 512 ];
|
||||
int nRead = read( hb_parnl( 1 ), Buffer, sizeof( Buffer ) );
|
||||
|
||||
hb_retclen( nRead > 0 ? Buffer : NULL, nRead );
|
||||
}
|
||||
|
||||
HB_FUNC( P_WRITEPORT )
|
||||
{
|
||||
long n = write( hb_parnl( 1 ), hb_parcx( 2 ), hb_parclen( 2 ) );
|
||||
|
||||
hb_retnl( n < 0 ? -1 : n );
|
||||
}
|
||||
|
||||
HB_FUNC( P_DRAIN )
|
||||
{
|
||||
hb_retnl( tcdrain( hb_parnl( 1 ) ) );
|
||||
}
|
||||
|
||||
HB_FUNC( P_OUTFREE )
|
||||
{
|
||||
#if 0
|
||||
APIRET rc;
|
||||
RXQUEUE rxqueue = { 0 };
|
||||
|
||||
if ( ( rc = DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_GETOUTQUECOUNT,
|
||||
NULL, 0L, NULL, &rxqueue, sizeof( RXQUEUE ), NULL ) ) == NO_ERROR )
|
||||
hb_retnl( rxqueue.cb - rxqueue.cch );
|
||||
else
|
||||
hb_retnl( -1 ); /* Put GetLastError() here, or better a second byref param? */
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( P_ISDCD )
|
||||
{
|
||||
int status;
|
||||
|
||||
if ( ioctl( hb_parnl( 1 ), TIOCMGET, &status ) == 0 )
|
||||
hb_retl( ( status & TIOCM_CD ) == TIOCM_CD );
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
HB_FUNC( P_ISRI )
|
||||
{
|
||||
int status;
|
||||
|
||||
if ( ioctl( hb_parnl( 1 ), TIOCMGET, &status ) == 0 )
|
||||
hb_retl( ( status & TIOCM_RI ) == TIOCM_RI );
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
HB_FUNC( P_ISDSR )
|
||||
{
|
||||
int status;
|
||||
|
||||
if ( ioctl( hb_parnl( 1 ), TIOCMGET, &status ) == 0 )
|
||||
hb_retl( ( status & TIOCM_DSR ) == TIOCM_DSR );
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
HB_FUNC( P_ISCTS )
|
||||
{
|
||||
int status;
|
||||
|
||||
if ( ioctl( hb_parnl( 1 ), TIOCMGET, &status ) == 0 )
|
||||
hb_retl( ( status & TIOCM_CTS ) == TIOCM_CTS );
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
HB_FUNC( P_CTRLCTS ) {
|
||||
|
||||
struct termios options;
|
||||
int port = hb_parnl( 1 );
|
||||
int newvalue = hb_pcount() == 2 ? hb_parnl( 2 ) : -1;
|
||||
int curvalue;
|
||||
int rc;
|
||||
|
||||
tcgetattr( port, &options );
|
||||
curvalue = ( options.c_cflag & CRTSCTS ) == CRTSCTS;
|
||||
|
||||
if( newvalue == 0 )
|
||||
options.c_cflag &= ~CRTSCTS;
|
||||
else if( newvalue == 1 )
|
||||
options.c_cflag |= CRTSCTS;
|
||||
|
||||
if( newvalue >= 0 )
|
||||
rc = tcsetattr( port, TCSAFLUSH, &options );
|
||||
|
||||
hb_retni( curvalue ? 1 : 0 );
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
||||
/* Inline function moved here from telepath.prg */
|
||||
HB_FUNC( _P_CTRLDTR )
|
||||
{
|
||||
double nph = hb_parnd( 1 );
|
||||
double nnewval, noldval;
|
||||
unsigned int result = 0;
|
||||
|
||||
ioctl( nph, TIOCMGET, &result );
|
||||
|
||||
if( result & TIOCM_DTR )
|
||||
noldval = 1;
|
||||
else
|
||||
noldval = 0;
|
||||
|
||||
if( noldval != nnewval )
|
||||
{
|
||||
if( nnewval == 0 )
|
||||
result &= ~TIOCM_DTR;
|
||||
else
|
||||
result |= TIOCM_DTR;
|
||||
|
||||
ioctl( nph, TIOCMSET, &result );
|
||||
}
|
||||
|
||||
hb_stornd( nnewval, 2 );
|
||||
hb_stornd( noldval, 3 );
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* HB_OS_UNIX */
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* Telepathy emulation library
|
||||
* C low level module for linux serial communication
|
||||
*
|
||||
* Copyright 2005 - Maurilio Longo <maurilio.longo@libero.it>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* Lots of code from http://www.easysw.com/~mike/serial/serial.html
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "hbapi.h"
|
||||
#include "hbapiitm.h"
|
||||
#include "hbapifs.h"
|
||||
|
||||
#ifdef HB_OS_UNIX
|
||||
|
||||
#include <stdio.h> /* Standard input/output definitions */
|
||||
#include <string.h> /* String function definitions */
|
||||
#include <unistd.h> /* UNIX standard function definitions */
|
||||
#include <fcntl.h> /* File control definitions */
|
||||
#include <errno.h> /* Error number definitions */
|
||||
#include <termios.h> /* POSIX terminal control definitions */
|
||||
#include <sys/ioctl.h>
|
||||
|
||||
HB_FUNC( P_OPEN )
|
||||
{
|
||||
int fd = open( hb_parcx( 1 ), O_RDWR | O_NOCTTY | O_NDELAY ); /* File descriptor for the port */
|
||||
|
||||
if( fd != -1 )
|
||||
fcntl( fd, F_SETFL, 0 );
|
||||
|
||||
hb_retnl( fd );
|
||||
}
|
||||
|
||||
/*
|
||||
p_InitPortSpeed( aPorts[ nPort, TPFP_HANDLE ] ,;
|
||||
aPorts[ nPort, TPFP_BAUD ] ,;
|
||||
aPorts[ nPort, TPFP_DBITS ] ,;
|
||||
aPorts[ nPort, TPFP_PARITY ] ,;
|
||||
aPorts[ nPort, TPFP_SBITS ] )
|
||||
*/
|
||||
HB_FUNC( P_INITPORTSPEED )
|
||||
{
|
||||
struct termios options;
|
||||
int port = hb_parnl( 1 );
|
||||
int baud = B300;
|
||||
char * ptr = hb_parcx( 4 );
|
||||
int rc;
|
||||
|
||||
tcgetattr( port, &options );
|
||||
|
||||
/* let's set baud rate */
|
||||
switch( hb_parnl( 2 ) )
|
||||
{
|
||||
case 0: baud = B0; break; /* Drop line */
|
||||
case 50: baud = B50; break;
|
||||
case 75: baud = B75; break;
|
||||
case 110: baud = B110; break;
|
||||
case 150: baud = B150; break;
|
||||
case 200: baud = B200; break;
|
||||
case 300: baud = B300; break;
|
||||
case 600: baud = B600; break;
|
||||
case 1200: baud = B1200; break;
|
||||
case 1800: baud = B1800; break;
|
||||
case 2400: baud = B2400; break;
|
||||
case 4800: baud = B4800; break;
|
||||
case 9600: baud = B9600; break;
|
||||
case 19200: baud = B19200; break;
|
||||
case 38400: baud = B38400; break;
|
||||
case 57600: baud = B57600; break;
|
||||
case 115200: baud = B115200; break;
|
||||
case 230400: baud = B230400; break;
|
||||
}
|
||||
|
||||
cfsetispeed( &options, baud );
|
||||
cfsetospeed( &options, baud );
|
||||
|
||||
/* Enable the receiver and set local mode... */
|
||||
options.c_cflag |= ( CLOCAL | CREAD );
|
||||
|
||||
/* Raw input from device */
|
||||
cfmakeraw( &options );
|
||||
|
||||
/* Reset data bits ( cfmakeraw() puts it to CS8 ) */
|
||||
options.c_cflag &= ~CSIZE;
|
||||
|
||||
/* Data bits */
|
||||
if( hb_parni( 3 ) == 8 )
|
||||
options.c_cflag |= CS8;
|
||||
else
|
||||
options.c_cflag |= CS7;
|
||||
|
||||
/* Stop bits */
|
||||
if( hb_parni( 5 ) == 1 )
|
||||
options.c_cflag &= ~CSTOPB;
|
||||
|
||||
/* Parity, only No, Even, Odd supported */
|
||||
switch ( *ptr )
|
||||
{
|
||||
case 'N':
|
||||
case 'n':
|
||||
options.c_cflag &= ~PARENB;
|
||||
|
||||
options.c_iflag &= ~(INPCK); /* disable input parity checking */
|
||||
break;
|
||||
|
||||
case 'O':
|
||||
case 'o':
|
||||
options.c_cflag |= PARENB;
|
||||
options.c_cflag |= PARODD;
|
||||
|
||||
options.c_iflag |= INPCK;
|
||||
break;
|
||||
|
||||
case 'E':
|
||||
case 'e':
|
||||
options.c_cflag |= PARENB;
|
||||
options.c_cflag &= ~PARODD;
|
||||
|
||||
options.c_iflag |= INPCK;
|
||||
break;
|
||||
}
|
||||
|
||||
/* Every read() call returns as soon as a char is available OR after 3 tenths of a second */
|
||||
options.c_cc[ VMIN ] = 0;
|
||||
options.c_cc[ VTIME ] = 3;
|
||||
|
||||
/* Set the new options for the port... */
|
||||
rc = tcsetattr( port, TCSAFLUSH, &options );
|
||||
|
||||
hb_retnl( rc );
|
||||
}
|
||||
|
||||
HB_FUNC( P_READPORT )
|
||||
{
|
||||
char Buffer[ 512 ];
|
||||
int nRead = read( hb_parnl( 1 ), Buffer, sizeof( Buffer ) );
|
||||
|
||||
hb_retclen( nRead > 0 ? Buffer : NULL, nRead );
|
||||
}
|
||||
|
||||
HB_FUNC( P_WRITEPORT )
|
||||
{
|
||||
long n = write( hb_parnl( 1 ), hb_parcx( 2 ), hb_parclen( 2 ) );
|
||||
|
||||
hb_retnl( n < 0 ? -1 : n );
|
||||
}
|
||||
|
||||
HB_FUNC( P_DRAIN )
|
||||
{
|
||||
hb_retnl( tcdrain( hb_parnl( 1 ) ) );
|
||||
}
|
||||
|
||||
HB_FUNC( P_OUTFREE )
|
||||
{
|
||||
#if 0
|
||||
APIRET rc;
|
||||
RXQUEUE rxqueue = { 0 };
|
||||
|
||||
if ( ( rc = DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_GETOUTQUECOUNT,
|
||||
NULL, 0L, NULL, &rxqueue, sizeof( RXQUEUE ), NULL ) ) == NO_ERROR )
|
||||
hb_retnl( rxqueue.cb - rxqueue.cch );
|
||||
else
|
||||
hb_retnl( -1 ); /* Put GetLastError() here, or better a second byref param? */
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( P_ISDCD )
|
||||
{
|
||||
int status;
|
||||
|
||||
if ( ioctl( hb_parnl( 1 ), TIOCMGET, &status ) == 0 )
|
||||
hb_retl( ( status & TIOCM_CD ) == TIOCM_CD );
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
HB_FUNC( P_ISRI )
|
||||
{
|
||||
int status;
|
||||
|
||||
if ( ioctl( hb_parnl( 1 ), TIOCMGET, &status ) == 0 )
|
||||
hb_retl( ( status & TIOCM_RI ) == TIOCM_RI );
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
HB_FUNC( P_ISDSR )
|
||||
{
|
||||
int status;
|
||||
|
||||
if ( ioctl( hb_parnl( 1 ), TIOCMGET, &status ) == 0 )
|
||||
hb_retl( ( status & TIOCM_DSR ) == TIOCM_DSR );
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
HB_FUNC( P_ISCTS )
|
||||
{
|
||||
int status;
|
||||
|
||||
if ( ioctl( hb_parnl( 1 ), TIOCMGET, &status ) == 0 )
|
||||
hb_retl( ( status & TIOCM_CTS ) == TIOCM_CTS );
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
HB_FUNC( P_CTRLCTS ) {
|
||||
|
||||
struct termios options;
|
||||
int port = hb_parnl( 1 );
|
||||
int newvalue = hb_pcount() == 2 ? hb_parnl( 2 ) : -1;
|
||||
int curvalue;
|
||||
int rc;
|
||||
|
||||
tcgetattr( port, &options );
|
||||
curvalue = ( options.c_cflag & CRTSCTS ) == CRTSCTS;
|
||||
|
||||
if( newvalue == 0 )
|
||||
options.c_cflag &= ~CRTSCTS;
|
||||
else if( newvalue == 1 )
|
||||
options.c_cflag |= CRTSCTS;
|
||||
|
||||
if( newvalue >= 0 )
|
||||
rc = tcsetattr( port, TCSAFLUSH, &options );
|
||||
|
||||
hb_retni( curvalue ? 1 : 0 );
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
||||
/* Inline function moved here from telepath.prg */
|
||||
HB_FUNC( _P_CTRLDTR )
|
||||
{
|
||||
double nph = hb_parnd( 1 );
|
||||
double nnewval, noldval;
|
||||
unsigned int result = 0;
|
||||
|
||||
ioctl( nph, TIOCMGET, &result );
|
||||
|
||||
if( result & TIOCM_DTR )
|
||||
noldval = 1;
|
||||
else
|
||||
noldval = 0;
|
||||
|
||||
if( noldval != nnewval )
|
||||
{
|
||||
if( nnewval == 0 )
|
||||
result &= ~TIOCM_DTR;
|
||||
else
|
||||
result |= TIOCM_DTR;
|
||||
|
||||
ioctl( nph, TIOCMSET, &result );
|
||||
}
|
||||
|
||||
hb_stornd( nnewval, 2 );
|
||||
hb_stornd( noldval, 3 );
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* HB_OS_UNIX */
|
||||
|
||||
@@ -1,220 +1,220 @@
|
||||
/*
|
||||
* $Id: os2.c,v 1.5 2005/10/24 14:39:26 mauriliolongo Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* Telepathy emulation library
|
||||
* C low level module for OS/2 serial communication
|
||||
*
|
||||
* Copyright 2004 - Maurilio Longo <maurilio.longo@libero.it>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "hbapi.h"
|
||||
#include "hbapiitm.h"
|
||||
#include "hbapifs.h"
|
||||
|
||||
#ifdef HB_OS_OS2
|
||||
|
||||
#define INCL_BASE
|
||||
#define INCL_DOS
|
||||
#define INCL_DOSERROR
|
||||
#define INCL_DOSDEVIOCTL
|
||||
#include <os2.h>
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
HB_FUNC( P_INITPORTSPEED )
|
||||
{
|
||||
APIRET rc;
|
||||
LINECONTROL lctl;
|
||||
DCBINFO dcb;
|
||||
USHORT Baud = ( USHORT ) hb_parnl( 2 );
|
||||
char * ptr = hb_parcx( 4 );
|
||||
|
||||
memset( &dcb, 0, sizeof( dcb ) );
|
||||
memset( &lctl, 0, sizeof( lctl ) );
|
||||
|
||||
/* OS/2 has Mark and Space parity options */
|
||||
switch( *ptr )
|
||||
{
|
||||
case 'N':
|
||||
case 'n':
|
||||
lctl.bParity = 0;
|
||||
break;
|
||||
case 'O':
|
||||
case 'o':
|
||||
lctl.bParity = 1;
|
||||
break;
|
||||
case 'E':
|
||||
case 'e':
|
||||
lctl.bParity = 2;
|
||||
break;
|
||||
case 'M':
|
||||
case 'm':
|
||||
lctl.bParity = 3;
|
||||
break;
|
||||
case 'S':
|
||||
case 's':
|
||||
lctl.bParity = 4;
|
||||
}
|
||||
|
||||
lctl.bDataBits = hb_parnl( 3 );
|
||||
lctl.bStopBits = hb_parnl( 5 ) == 1 ? 0 : hb_parnl( 5 ); /* 1 == 1.5 stop bits only valid with 5 data bits */
|
||||
lctl.fTransBreak = 0;
|
||||
|
||||
if( DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_SETBAUDRATE, &Baud,
|
||||
sizeof( USHORT ), NULL, NULL, 0L, NULL ) == NO_ERROR )
|
||||
{
|
||||
if( DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_SETLINECTRL,
|
||||
&lctl, sizeof( LINECONTROL ), NULL, NULL, 0L, NULL ) == NO_ERROR )
|
||||
{
|
||||
/* tp_ help says: on port open
|
||||
DTR ON (value 1)
|
||||
CTS OFF
|
||||
DCD IGNORE
|
||||
DSR OFF
|
||||
RTS ON (value 1)
|
||||
XON/XOFF OFF
|
||||
*/
|
||||
dcb.fbCtlHndShake = MODE_DTR_HANDSHAKE | MODE_RTS_HANDSHAKE;
|
||||
|
||||
/* 0x20 == full duplex */
|
||||
dcb.fbFlowReplace = MODE_RTS_HANDSHAKE | 0x20;
|
||||
|
||||
dcb.fbTimeout = MODE_NO_WRITE_TIMEOUT | MODE_NOWAIT_READ_TIMEOUT;
|
||||
|
||||
if( DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_SETDCBINFO, &dcb,
|
||||
sizeof(DCBINFO), 0L, NULL, 0L, NULL ) == NO_ERROR )
|
||||
hb_retnl( 0 );
|
||||
else
|
||||
hb_retnl( -3 );
|
||||
}
|
||||
else
|
||||
hb_retnl( -2 );
|
||||
}
|
||||
else
|
||||
hb_retnl( -1 );
|
||||
}
|
||||
|
||||
HB_FUNC( P_READPORT )
|
||||
{
|
||||
char Buffer[ 512 ];
|
||||
ULONG nRead = 0;
|
||||
APIRET rc = DosRead( ( HFILE ) hb_parnl( 1 ), Buffer, sizeof( Buffer ), &nRead );
|
||||
|
||||
hb_retclen( rc == NO_ERROR ? Buffer : NULL, nRead );
|
||||
}
|
||||
|
||||
HB_FUNC( P_WRITEPORT )
|
||||
{
|
||||
ULONG nWritten = 0;
|
||||
APIRET rc = DosWrite( ( HFILE ) hb_parnl( 1 ), hb_parcx( 2 ), hb_parclen( 2 ), &nWritten );
|
||||
|
||||
hb_retnl( rc == NO_ERROR ? nWritten : -1 ); /* Put GetLastError() on error, or better a second byref param? */
|
||||
}
|
||||
|
||||
HB_FUNC( P_OUTFREE )
|
||||
{
|
||||
APIRET rc;
|
||||
RXQUEUE rxqueue = { 0 };
|
||||
|
||||
if( ( rc = DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_GETOUTQUECOUNT,
|
||||
NULL, 0L, NULL, &rxqueue, sizeof(RXQUEUE), NULL ) ) == NO_ERROR )
|
||||
hb_retnl( rxqueue.cb - rxqueue.cch );
|
||||
else
|
||||
hb_retnl( -1 ); /* Put GetLastError() here, or better a second byref param? */
|
||||
}
|
||||
|
||||
HB_FUNC( P_ISDCD )
|
||||
{
|
||||
BYTE instat;
|
||||
|
||||
/* if DosDevIOCtl() returns an error, return no DCD */
|
||||
if( DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_GETMODEMINPUT,
|
||||
NULL, 0, NULL, &instat, sizeof( instat ), NULL ) == NO_ERROR )
|
||||
hb_retl( ( instat & DCD_ON ) == DCD_ON );
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
HB_FUNC( P_ISRI )
|
||||
{
|
||||
BYTE instat;
|
||||
|
||||
if( DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_GETMODEMINPUT,
|
||||
NULL, 0, NULL, &instat, sizeof( instat ), NULL ) == NO_ERROR )
|
||||
hb_retl( ( instat & RI_ON ) == RI_ON );
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
HB_FUNC( P_ISDSR )
|
||||
{
|
||||
BYTE instat;
|
||||
|
||||
if( DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_GETMODEMINPUT,
|
||||
NULL, 0, NULL, &instat, sizeof( instat ), NULL ) == NO_ERROR )
|
||||
hb_retl( ( instat & DSR_ON ) == DSR_ON );
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
HB_FUNC( P_ISCTS )
|
||||
{
|
||||
BYTE instat;
|
||||
|
||||
if( DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_GETMODEMINPUT,
|
||||
NULL, 0, NULL, &instat, sizeof( instat ), NULL ) == NO_ERROR )
|
||||
hb_retl( ( instat & CTS_ON ) == CTS_ON );
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
HB_FUNC( P_CTRLCTS )
|
||||
{
|
||||
hb_retni( 0 );
|
||||
}
|
||||
|
||||
#endif /* HB_OS_OS2 */
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* Telepathy emulation library
|
||||
* C low level module for OS/2 serial communication
|
||||
*
|
||||
* Copyright 2004 - Maurilio Longo <maurilio.longo@libero.it>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "hbapi.h"
|
||||
#include "hbapiitm.h"
|
||||
#include "hbapifs.h"
|
||||
|
||||
#ifdef HB_OS_OS2
|
||||
|
||||
#define INCL_BASE
|
||||
#define INCL_DOS
|
||||
#define INCL_DOSERROR
|
||||
#define INCL_DOSDEVIOCTL
|
||||
#include <os2.h>
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
HB_FUNC( P_INITPORTSPEED )
|
||||
{
|
||||
APIRET rc;
|
||||
LINECONTROL lctl;
|
||||
DCBINFO dcb;
|
||||
USHORT Baud = ( USHORT ) hb_parnl( 2 );
|
||||
char * ptr = hb_parcx( 4 );
|
||||
|
||||
memset( &dcb, 0, sizeof( dcb ) );
|
||||
memset( &lctl, 0, sizeof( lctl ) );
|
||||
|
||||
/* OS/2 has Mark and Space parity options */
|
||||
switch( *ptr )
|
||||
{
|
||||
case 'N':
|
||||
case 'n':
|
||||
lctl.bParity = 0;
|
||||
break;
|
||||
case 'O':
|
||||
case 'o':
|
||||
lctl.bParity = 1;
|
||||
break;
|
||||
case 'E':
|
||||
case 'e':
|
||||
lctl.bParity = 2;
|
||||
break;
|
||||
case 'M':
|
||||
case 'm':
|
||||
lctl.bParity = 3;
|
||||
break;
|
||||
case 'S':
|
||||
case 's':
|
||||
lctl.bParity = 4;
|
||||
}
|
||||
|
||||
lctl.bDataBits = hb_parnl( 3 );
|
||||
lctl.bStopBits = hb_parnl( 5 ) == 1 ? 0 : hb_parnl( 5 ); /* 1 == 1.5 stop bits only valid with 5 data bits */
|
||||
lctl.fTransBreak = 0;
|
||||
|
||||
if( DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_SETBAUDRATE, &Baud,
|
||||
sizeof( USHORT ), NULL, NULL, 0L, NULL ) == NO_ERROR )
|
||||
{
|
||||
if( DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_SETLINECTRL,
|
||||
&lctl, sizeof( LINECONTROL ), NULL, NULL, 0L, NULL ) == NO_ERROR )
|
||||
{
|
||||
/* tp_ help says: on port open
|
||||
DTR ON (value 1)
|
||||
CTS OFF
|
||||
DCD IGNORE
|
||||
DSR OFF
|
||||
RTS ON (value 1)
|
||||
XON/XOFF OFF
|
||||
*/
|
||||
dcb.fbCtlHndShake = MODE_DTR_HANDSHAKE | MODE_RTS_HANDSHAKE;
|
||||
|
||||
/* 0x20 == full duplex */
|
||||
dcb.fbFlowReplace = MODE_RTS_HANDSHAKE | 0x20;
|
||||
|
||||
dcb.fbTimeout = MODE_NO_WRITE_TIMEOUT | MODE_NOWAIT_READ_TIMEOUT;
|
||||
|
||||
if( DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_SETDCBINFO, &dcb,
|
||||
sizeof(DCBINFO), 0L, NULL, 0L, NULL ) == NO_ERROR )
|
||||
hb_retnl( 0 );
|
||||
else
|
||||
hb_retnl( -3 );
|
||||
}
|
||||
else
|
||||
hb_retnl( -2 );
|
||||
}
|
||||
else
|
||||
hb_retnl( -1 );
|
||||
}
|
||||
|
||||
HB_FUNC( P_READPORT )
|
||||
{
|
||||
char Buffer[ 512 ];
|
||||
ULONG nRead = 0;
|
||||
APIRET rc = DosRead( ( HFILE ) hb_parnl( 1 ), Buffer, sizeof( Buffer ), &nRead );
|
||||
|
||||
hb_retclen( rc == NO_ERROR ? Buffer : NULL, nRead );
|
||||
}
|
||||
|
||||
HB_FUNC( P_WRITEPORT )
|
||||
{
|
||||
ULONG nWritten = 0;
|
||||
APIRET rc = DosWrite( ( HFILE ) hb_parnl( 1 ), hb_parcx( 2 ), hb_parclen( 2 ), &nWritten );
|
||||
|
||||
hb_retnl( rc == NO_ERROR ? nWritten : -1 ); /* Put GetLastError() on error, or better a second byref param? */
|
||||
}
|
||||
|
||||
HB_FUNC( P_OUTFREE )
|
||||
{
|
||||
APIRET rc;
|
||||
RXQUEUE rxqueue = { 0 };
|
||||
|
||||
if( ( rc = DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_GETOUTQUECOUNT,
|
||||
NULL, 0L, NULL, &rxqueue, sizeof(RXQUEUE), NULL ) ) == NO_ERROR )
|
||||
hb_retnl( rxqueue.cb - rxqueue.cch );
|
||||
else
|
||||
hb_retnl( -1 ); /* Put GetLastError() here, or better a second byref param? */
|
||||
}
|
||||
|
||||
HB_FUNC( P_ISDCD )
|
||||
{
|
||||
BYTE instat;
|
||||
|
||||
/* if DosDevIOCtl() returns an error, return no DCD */
|
||||
if( DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_GETMODEMINPUT,
|
||||
NULL, 0, NULL, &instat, sizeof( instat ), NULL ) == NO_ERROR )
|
||||
hb_retl( ( instat & DCD_ON ) == DCD_ON );
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
HB_FUNC( P_ISRI )
|
||||
{
|
||||
BYTE instat;
|
||||
|
||||
if( DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_GETMODEMINPUT,
|
||||
NULL, 0, NULL, &instat, sizeof( instat ), NULL ) == NO_ERROR )
|
||||
hb_retl( ( instat & RI_ON ) == RI_ON );
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
HB_FUNC( P_ISDSR )
|
||||
{
|
||||
BYTE instat;
|
||||
|
||||
if( DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_GETMODEMINPUT,
|
||||
NULL, 0, NULL, &instat, sizeof( instat ), NULL ) == NO_ERROR )
|
||||
hb_retl( ( instat & DSR_ON ) == DSR_ON );
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
HB_FUNC( P_ISCTS )
|
||||
{
|
||||
BYTE instat;
|
||||
|
||||
if( DosDevIOCtl( ( HFILE ) hb_parnl( 1 ), IOCTL_ASYNC, ASYNC_GETMODEMINPUT,
|
||||
NULL, 0, NULL, &instat, sizeof( instat ), NULL ) == NO_ERROR )
|
||||
hb_retl( ( instat & CTS_ON ) == CTS_ON );
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
HB_FUNC( P_CTRLCTS )
|
||||
{
|
||||
hb_retni( 0 );
|
||||
}
|
||||
|
||||
#endif /* HB_OS_OS2 */
|
||||
|
||||
@@ -1,115 +1,115 @@
|
||||
/*
|
||||
* $Id: win32.c,v 1.2 2004/08/25 13:43:53 mauriliolongo Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* Telepathy emulation library
|
||||
* C low level module for Win32 serial communication
|
||||
*
|
||||
* Copyright 2004 - Maurilio Longo <maurilio.longo@libero.it>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
|
||||
#define HB_OS_WIN_32_USED
|
||||
|
||||
#include "hbapi.h"
|
||||
#include "hbapiitm.h"
|
||||
#include "hbapifs.h"
|
||||
|
||||
#ifdef HB_OS_WIN_32
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
HB_FUNC( P_INITPORTSPEED ) {
|
||||
|
||||
DCB dcb;
|
||||
char values[ 20 ];
|
||||
|
||||
FillMemory( &dcb, sizeof( dcb ), 0 );
|
||||
dcb.DCBlength = sizeof( dcb );
|
||||
|
||||
snprintf( values, sizeof( values ), "%u,%1s,%1u,%1u", hb_parnl( 2 ), hb_parcx( 4 ), hb_parnl( 3 ), hb_parnl( 5 ) );
|
||||
|
||||
if( BuildCommDCB( values, &dcb ) )
|
||||
{
|
||||
if( SetCommState( ( HANDLE ) hb_parnl( 1 ), &dcb ) )
|
||||
{
|
||||
COMMTIMEOUTS timeouts;
|
||||
|
||||
/* read/write operations return immediatly */
|
||||
timeouts.ReadIntervalTimeout = MAXDWORD;
|
||||
timeouts.ReadTotalTimeoutMultiplier = 0;
|
||||
timeouts.ReadTotalTimeoutConstant = 0;
|
||||
timeouts.WriteTotalTimeoutMultiplier = 0;
|
||||
timeouts.WriteTotalTimeoutConstant = 0;
|
||||
|
||||
hb_retnl( SetCommTimeouts( ( HANDLE ) hb_parnl( 1 ), &timeouts ) ? 0 : -1 );
|
||||
}
|
||||
else
|
||||
hb_retnl( -1 );
|
||||
}
|
||||
else
|
||||
hb_retnl( -1 );
|
||||
}
|
||||
|
||||
HB_FUNC( P_READPORT )
|
||||
{
|
||||
char Buffer[ 512 ];
|
||||
DWORD nRead = 0;
|
||||
OVERLAPPED Overlapped = { 0 };
|
||||
BOOL bRet = ReadFile( ( HANDLE ) hb_parnl( 1 ), Buffer, sizeof( Buffer ), &nRead, &Overlapped );
|
||||
|
||||
hb_retclen( bRet ? Buffer : NULL, nRead );
|
||||
}
|
||||
|
||||
HB_FUNC( P_WRITEPORT )
|
||||
{
|
||||
DWORD nWritten = 0;
|
||||
OVERLAPPED Overlapped = { 0 };
|
||||
BOOL bRet = WriteFile( ( HANDLE ) hb_parnl( 1 ), hb_parcx( 2 ), hb_parclen( 2 ), &nWritten, &Overlapped );
|
||||
|
||||
hb_retnl( bRet ? nWritten : -1 ); /* Put GetLastError() on error, or better a second byref param? */
|
||||
}
|
||||
|
||||
#endif /* HB_OS_WIN_32 */
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* Telepathy emulation library
|
||||
* C low level module for Win32 serial communication
|
||||
*
|
||||
* Copyright 2004 - Maurilio Longo <maurilio.longo@libero.it>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
|
||||
#define HB_OS_WIN_32_USED
|
||||
|
||||
#include "hbapi.h"
|
||||
#include "hbapiitm.h"
|
||||
#include "hbapifs.h"
|
||||
|
||||
#ifdef HB_OS_WIN_32
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
HB_FUNC( P_INITPORTSPEED ) {
|
||||
|
||||
DCB dcb;
|
||||
char values[ 20 ];
|
||||
|
||||
FillMemory( &dcb, sizeof( dcb ), 0 );
|
||||
dcb.DCBlength = sizeof( dcb );
|
||||
|
||||
snprintf( values, sizeof( values ), "%u,%1s,%1u,%1u", hb_parnl( 2 ), hb_parcx( 4 ), hb_parnl( 3 ), hb_parnl( 5 ) );
|
||||
|
||||
if( BuildCommDCB( values, &dcb ) )
|
||||
{
|
||||
if( SetCommState( ( HANDLE ) hb_parnl( 1 ), &dcb ) )
|
||||
{
|
||||
COMMTIMEOUTS timeouts;
|
||||
|
||||
/* read/write operations return immediatly */
|
||||
timeouts.ReadIntervalTimeout = MAXDWORD;
|
||||
timeouts.ReadTotalTimeoutMultiplier = 0;
|
||||
timeouts.ReadTotalTimeoutConstant = 0;
|
||||
timeouts.WriteTotalTimeoutMultiplier = 0;
|
||||
timeouts.WriteTotalTimeoutConstant = 0;
|
||||
|
||||
hb_retnl( SetCommTimeouts( ( HANDLE ) hb_parnl( 1 ), &timeouts ) ? 0 : -1 );
|
||||
}
|
||||
else
|
||||
hb_retnl( -1 );
|
||||
}
|
||||
else
|
||||
hb_retnl( -1 );
|
||||
}
|
||||
|
||||
HB_FUNC( P_READPORT )
|
||||
{
|
||||
char Buffer[ 512 ];
|
||||
DWORD nRead = 0;
|
||||
OVERLAPPED Overlapped = { 0 };
|
||||
BOOL bRet = ReadFile( ( HANDLE ) hb_parnl( 1 ), Buffer, sizeof( Buffer ), &nRead, &Overlapped );
|
||||
|
||||
hb_retclen( bRet ? Buffer : NULL, nRead );
|
||||
}
|
||||
|
||||
HB_FUNC( P_WRITEPORT )
|
||||
{
|
||||
DWORD nWritten = 0;
|
||||
OVERLAPPED Overlapped = { 0 };
|
||||
BOOL bRet = WriteFile( ( HANDLE ) hb_parnl( 1 ), hb_parcx( 2 ), hb_parclen( 2 ), &nWritten, &Overlapped );
|
||||
|
||||
hb_retnl( bRet ? nWritten : -1 ); /* Put GetLastError() on error, or better a second byref param? */
|
||||
}
|
||||
|
||||
#endif /* HB_OS_WIN_32 */
|
||||
|
||||
@@ -60,7 +60,7 @@ PRG_SOURCES= \
|
||||
LIBNAME=hbziparch
|
||||
|
||||
ifeq ($(HB_ARCHITECTURE),linux)
|
||||
CFLAGS := $(CFLAGS) -DZIP_ARCHIVE_LNX
|
||||
C_USR += -DZIP_ARCHIVE_LNX
|
||||
endif
|
||||
|
||||
include $(TOP)$(ROOT)config/lib.cf
|
||||
|
||||
@@ -59,8 +59,7 @@
|
||||
#define HB_VER_MINOR 0 /* Minor version number */
|
||||
#define HB_VER_REVISION 0 /* Revision number */
|
||||
#define HB_VER_STATUS "RC1" /* Build status */
|
||||
#define HB_VERSION 0x010000 /* Three bytes: Major + Minor +
|
||||
Revision */
|
||||
#define HB_VERSION 0x010000 /* Three bytes: Major + Minor + Revision */
|
||||
|
||||
/* #include "hb_verbld.h" */
|
||||
|
||||
|
||||
@@ -587,7 +587,7 @@ static void hb_pp_tokenAddNext( PHB_PP_STATE pState, const char * value, ULONG u
|
||||
else if( pState->iBlockState == 2 &&
|
||||
HB_PP_TOKEN_TYPE( type ) == HB_PP_TOKEN_COMMA )
|
||||
pState->iBlockState = 1;
|
||||
else
|
||||
else
|
||||
pState->iBlockState = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ FUNCTION hb_VALTOEXP( xVal )
|
||||
cVal := LTRIM( STR( xVal ) )
|
||||
EXIT
|
||||
CASE "D"
|
||||
cVal := "0d" + DTOS( xVal )
|
||||
cVal := IIF( EMPTY( xVal ), "0d00000000", "0d" + DTOS( xVal ) )
|
||||
EXIT
|
||||
CASE "L"
|
||||
cVal := IIF( xVal, ".T.", ".F." )
|
||||
@@ -117,7 +117,7 @@ FUNCTION hb_CSTR( xVal )
|
||||
CASE "N"
|
||||
RETURN STR( xVal )
|
||||
CASE "D"
|
||||
RETURN "0d" + DTOS( xVal )
|
||||
RETURN IIF( EMPTY( xVal ), "0d00000000", "0d" + DTOS( xVal ) )
|
||||
CASE "L"
|
||||
RETURN IIF( xVal, ".T.", ".F." )
|
||||
CASE "S"
|
||||
|
||||
Reference in New Issue
Block a user