Commit Graph

295 Commits

Author SHA1 Message Date
Przemysław Czerpak
fdd75b00bf 2016-01-22 16:55 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/rddads/ads1.c
  * src/rdd/hbsix/sxcompr.c
  * src/rtl/gtxwc/gtxwc.c
    ! cleaned C++ casting
2016-01-22 16:55:41 +01:00
Przemysław Czerpak
ae90545eb1 2016-01-21 20:42 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtalleg/gtallegd.c
  * contrib/hbamf/amfdec.c
  * contrib/hbamf/amfenc.c
  * contrib/hbbz2/core.c
  * contrib/hbbz2io/bz2io.c
  * contrib/hbct/atrepl.c
  * contrib/hbct/charrepl.c
  * contrib/hbct/envparam.c
  * contrib/hbct/pack.c
  * contrib/hbct/token2.c
  * contrib/hbfimage/fi_wrp.c
  * contrib/hbgd/gdwrp.c
  * contrib/hbgs/core.c
  * contrib/hbgzio/gzio.c
  * contrib/hbhpdf/core.c
  * contrib/hbhpdf/image.c
  * contrib/hbmlzo/core.c
  * contrib/hbmxml/core.c
  * contrib/hbodbc/odbc.c
  * contrib/hbsqlit3/core.c
  * contrib/hbssl/bio.c
  * contrib/hbssl/ssl.c
  * contrib/rddads/ads1.c
  * contrib/rddads/adsfunc.c
  * contrib/rddads/adsmgmnt.c
  * contrib/rddads/adsx.c
  * contrib/rddads/rddads.h
  * contrib/sddodbc/core.c
  * contrib/xhb/cstructc.c
  * include/hbapi.h
  * include/hbdefs.h
  * src/common/expropt1.c
  * src/common/expropt2.c
  * src/common/hbmem.c
  * src/compiler/complex.c
  * src/compiler/harbour.y
  * src/compiler/harbour.yyc
  * src/compiler/harbour.yyh
  * src/compiler/hbident.c
  * src/macro/macrolex.c
  * src/nortl/nortl.c
  * src/pp/ppcore.c
  * src/rdd/hbsix/sxcompr.c
  * src/rdd/hbsix/sxfname.c
  * src/rdd/usrrdd/usrrdd.c
  * src/rtl/cdpapi.c
  * src/rtl/filebuf.c
  * src/rtl/filesys.c
  * src/rtl/fslink.c
  * src/rtl/gtcrs/gtcrs.c
  * src/rtl/gtsln/gtsln.c
  * src/rtl/gtsln/mousesln.c
  * src/rtl/gtxwc/gtxwc.c
  * src/rtl/hbbfsock.c
  * src/rtl/hbgtcore.c
  * src/rtl/hbsocket.c
  * src/rtl/hbzlib.c
  * src/rtl/hbznet.c
  * src/rtl/hbzsock.c
  * src/rtl/iousr.c
  * src/rtl/langapi.c
  * src/vm/cmdarg.c
  * src/vm/codebloc.c
  * src/vm/hvm.c
  * src/vm/itemapi.c
  * src/vm/macro.c
  * src/vm/set.c
  * src/vm/strapi.c
    * cleaned const qualifier dropping
    ! fixed few bugs I found analyzing related code
    ; I left untouched two places in HBSSL which IMO should be fixed yet
2016-01-21 20:42:30 +01:00
Przemysław Czerpak
682d8e32e3 2016-01-15 16:02 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapifs.h
  * src/common/hbfsapi.c
    + added automatic file handle table resizing to hb_fsOS2DosOpenL()
    + added new C function: hb_fsOS2DosOpen() which is wrapper to DosOpen()
      with automatic file handle table resizing.
      Please remember that unlike hb_fsOS2DosOpenL() this function is
      pure wrapper to DosOpen() so it does not make file name conversions
      and does not set hb_fsError().

  * src/rtl/filesys.c
  * src/rtl/hbcom.c
  * src/rtl/hbproces.c
    * use hb_fsOS2DosOpen() instead of DosOpen()

  * src/vm/cmdarg.c
    * set the initial size of file handle table to 256 in OS2 OpenWatcom
      builds if user does not set it explicitly by //F:<n> switch

  * config/global.mk
    - removed set HARBOUR=F:100 - it's not necessary with automatic FHT
      resizing

  ; Please test it in real OS2 environment
2016-01-15 16:02:45 +01:00
Przemysław Czerpak
70d3fbee3a 2016-01-15 14:50 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
    ! _A_READONLY -> _A_RDONLY
2016-01-15 14:50:14 +01:00
Przemysław Czerpak
bd92a307f5 2016-01-15 11:15 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc.h
  * contrib/gtqtc/gtqtc1.cpp
    * renamed few variables to avoid -Wshadow warnings

  * contrib/hbfimage/fi_wrp.c
    * removed unnecessary ;

  * contrib/hbodbc/odbc.c
    ! replaced '\0' with NULL in pointer initialization

  * src/3rd/jpeg/Makefile
    % added missing HAVE_UNSIGNED_CHAR build macro. Without it LIBJPEG
      uses SHORT to hold unsigned 8 bit integers what increases memory
      usage and reduces the speed.

  * src/pp/hbpp.c
    * minor modification to keep string constant C90 comnpatible

  * src/rtl/filesys.c
    * simplified DOS to POSIX file attribute translation
    + respect hidden and system file attribute in DOS builds of hb_fsOpenEx()

  * src/vm/fm.c
    ! added yet another missing HB_STACK_TLS_PRELOAD
2016-01-15 11:15:55 +01:00
Viktor Szakats
3ed9fa0f45 2016-01-14 19:33 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
* *
    % remove brandings and homepage from copyright header. Pass 2 - semi-auto.
    * project homepage and name is described in README, amongst others
    ; this should make the diff between 3.4 and 3.2 easier to manage
2016-01-14 19:35:07 +01:00
Viktor Szakats
58faf91453 2016-01-14 19:17 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
* *
    % remove brandings and homepage [1] from copyright header. Pass 1 - using script.
      [1] nobody has access to it anymore AFAIK - and it's also just
          a redirect since long
    ! update url in copyright header
    ; this should make the diff between 3.4 and 3.2 easier to manage
2016-01-14 19:18:17 +01:00
Przemysław Czerpak
04283dd94f 2016-01-14 11:02 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* config/global.mk
    * set HARBOUR=F:100 during build process in OS2 builds - it increases
      maximum number of open handles per process from 20 to 100 so it should
      be possible to use -j<n> switch during Harbour compilation - please
      test, i.e.:
         os2-make -j3

  * contrib/xhb/hbcompat.ch
    ! fixed pp rules for Str(,,, <lStrip> ) translation

  * include/hbapifs.h
  * src/rtl/filesys.c
    + added new C function:
         HB_FHANDLE hb_fsOpenEx( const char * pszFileName, HB_FATTR nAttr,
                                 HB_USHORT uiFlags );
    * minor cleanup

  * include/hbmemory.ch
  * src/vm/fm.c
    + added two new actions for Memory() function:
         HB_MEM_STATISTICS - return non 0 value if FM statistic is enabled
         HB_MEM_ISLIMIT    - return non 0 value if used memory limit is
                             supported
    + added new PRG function:
         __fm_allocLimit( [ <nNewLimit> ] ) -> <nPrevLimit>
      It allows to set limit for maximum used memory in some memory
      managers, -1 means no limit.
      Now it works with DLMALLOC and in ST mode it's limit for memory
      allocated from system for whole application. In MT mode when
      HB_FM_DLMT_ALLOC (default for DLMALLOC) is enabled it's limit for
      single MSPACE (Harbour allocates 16 MSPACES and balance them
      between threads to improve scalability) so it's rather per thread
      limit. If memory statistic module is enabled during Harbour build
      process then this limit works with any memory manager and defines
      limit for total memory allocated by Harbour application regardles
      of MT or ST mode.

  * src/vm/hvm.c
    * use HB_MEM_STATISTICS instead of HB_MEM_USEDMAX to check if memory
      statistic module is enabled
2016-01-14 11:02:51 +01:00
Przemysław Czerpak
ca9bb39a23 2016-01-13 15:25 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtip/encurlc.c
    ! fixed C&P typos in tip_URLEncode() and tip_URLDecode() in may
      previous commit

  * src/pp/ppcore.c
    * pacified warning

  * src/common/hbver.c
  * src/rtl/hbsocket.c
    * updated for Digital Mars C compilation
2016-01-13 15:25:21 +01:00
Przemysław Czerpak
05bbf52617 2016-01-13 11:08 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbsocket.h
  * src/rtl/hbsockhb.c
    + added new C function:
         HB_BOOL hb_sockexItemReplace( PHB_ITEM pItem, PHB_SOCKEX pSock );

  * contrib/hbssl/ssl_sock.c
    + replace passed socket structure to hb_socketNewSSL_connect() and
      hb_socketNewSSL_accept() with new one using SSL filter if it was
      passed by reference, current syntax is:
         hb_socketNewSSL_connect( [@]<pSocket>, <pSSL> [, <nTimeout> ] )
                     -> <pSocketSSL>
         hb_socketNewSSL_accept( [@]<pSocket>, <pSSL> [, <nTimeout> ] )
                     -> <pSocketSSL>

  * contrib/hbssl/hbssl.hbm
  * contrib/hbssl/hbssl.hbx
  + contrib/hbssl/ssl_hbcon.prg
    + added new PRG functions which can be used for fast initialization of
      SSL connection:
         hb_SSL_new() -> <pSSL>
         hb_SSL_connect_inet( <pSocket>, [ <nTimeOut> ], [ @<cInfo> ] )
                     -> <lConnected>
         hb_SSL_connect_socket( <pSocket>, [ <nTimeOut> ], [ @<cInfo> ] )
                     -> <lConnected>
      They do not need any addiitonal initialization code and can be called
      as first and the only SSL functions in user code.

  * contrib/hbtip/mail.prg
    ! fixed bug reported by Lorenzo - thanks
    * use hb_MemoWrit() in :detachFile() to honor Harbour File IO API
    * cleanup

  * src/common/hbffind.c
  * src/rtl/gtos2/gtos2.c
  * src/rtl/hbproces.c
    * cleaned DosAllocMem() flags

  * src/common/hbfsapi.c
  * src/rtl/hbproces.c
    * pacified OS2 GCC warnings

  * config/global.mk
    * show information about HB_MT build parameter if set by user
2016-01-13 11:08:23 +01:00
Przemysław Czerpak
6be1156f7c 2016-01-12 21:13 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbtip/encurlc.c
    ! fixed url decoding - thanks to Lorenzo for reporting the problem
    * small simplification of url encoding code

  * src/rtl/hbproces.c
    ! use DosAllocMem() instead of hb_xgrab() to allocate memory for
      DosExecPgm() parameters - it should fix the problem with random
      build crashes when pipes are used for redirection of child
      process standard IO handles - please test in real OS2 environment.
2016-01-12 21:13:30 +01:00
Przemysław Czerpak
b5a02bcab4 2016-01-11 17:12 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/spfiles.c
    ! typo in HB_TR_DEBUG message

  * src/rtl/hbproces.c
    - removed unnecessary call to hb_fsSetIOError()
    % variable localization
    ! fixed wrongly located hb_vmLock() - it was not called if
      hb_fsProcessOpen() failed.
2016-01-11 17:12:51 +01:00
Przemysław Czerpak
c5758d9b83 2016-01-05 10:04 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapigt.h
  * src/rtl/gttrm/gttrm.c
    * modified GTTRM to generate HB_K_CLOSE if input stream is closed and
      then HB_K_TERMINATE on next inkey calls.
2016-01-05 10:04:37 +01:00
Przemysław Czerpak
aae691a434 2016-01-04 21:25 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbznet.c
  * src/rtl/hbzsock.c
    ! cleanup

  * include/hbrdddel.h
  * include/hbrddsdf.h
  * src/rdd/delim1.c
  * src/rdd/sdf1.c
    + added support for any standard EOL combination to DELIM and SDF RDDs,
      Now LF, CRLF, CR and LFCR EOLs are supported and automatically
      recognized during import if one of such EOLs is also set in HVM by
      _SET_EOL.
    % use 8192 bytes read ahead buffer to speed up import from DELIM and
      SDF RDDs
    + modified file IO operations to work with stream only (no support for
      file seek) Harbour File IO drivers
    % optimized some File IO operations
    * strip all EOF (^Z) characters from imported data. It's not strictly
      Cl*pper compatible because Cl*pper interrupts import on first ^Z
      character anyhow it was always the source of problems when .txt
      files are concatenated by tools like 'cat' in *nixes so I decided
      to change it.
    + added support RECORD clause command in commands like:
         APPEND FROM "data.txt" RECORD (nRec) DELIMITED
         APPEND FROM "data.txt" RECORD (nRec) SDF
      It's Harbour extension - Cl*pper does not support it.
    + generate RTE when some unsupported in transfer RDDs methods are
      called
2016-01-04 21:25:29 +01:00
Przemysław Czerpak
c559d7409b 2015-12-29 17:03 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
+ src/3rd/hbdossrl/Makefile
  + src/3rd/hbdossrl/serial.c
  + src/3rd/hbdossrl/serial.h
  + src/3rd/hbdossrl/README
    + added DOS Serial Library - it's much cleaner and simpler then COMLib
      we used so far in DOS builds. It also supports hardware and software
      flow control. Many thanks for Karl Stenerud for his wonderful job.

  * src/rtl/hbcom.c
    + added support for DOS Serial Library used as low level backend in
      Harbour DOS builds.

  * config/dos/djgpp.mk
  * config/dos/watcom.mk
  * config/dyn.mk
  * config/lib.mk
  * src/3rd/Makefile
  * src/Makefile
  * utils/hbmk2/hbmk2.hbp
  * utils/hbmk2/hbmk2.prg
    * use DOS Serial Library (hbdossrl) instead of COMLib (hbpmcom)
2015-12-29 17:03:40 +01:00
Przemysław Czerpak
9e04ac8ad3 2015-12-14 14:34 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbproces.c
    + protect DosExecPgm() and standard file IO redirection in OS2 builds
      by GT mutex
2015-12-14 14:34:51 +01:00
Przemysław Czerpak
7b7ac86752 2015-12-10 17:24 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
    * added HB_OS2_NONAMEDPIPES macro for OS2 build tests
  * src/rtl/hbproces.c
    * formatting
2015-12-10 17:24:10 +01:00
Przemysław Czerpak
ea09561adf 2015-12-09 14:22 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/dbinfo.ch
  * include/hbrdddbf.h
  * src/rdd/dbf1.c
    + added new RDD switch RDDI_SETHEADER
      It allows to define how DBF header is updated in tables which
      will be opened later, i.e.:
         // maximize performance reducing number of DBF header updating
         // header is updated only when table is closed if before new
         // record was added
         hb_rddInfo( RDDI_SETHEADER, DB_SETHEADER_MINIMAL )
      or:
         // update header in the same moment as Clipper and xBase++
         // and store only last two digit from the year for compatibility
         // with old dBase and FoxPro versions
         hb_rddInfo( RDDI_SETHEADER, ;
                     hb_bitOr( DB_SETHEADER_CLIPPER, DB_SETHEADER_YYEAR ) )
         // DB_SETHEADER_CLIPPER
      By default Harbour uses DB_SETHEADER_APPENDSYNC.
      For more information look at comments for DB_SETHEADER_* switches
      in dbinfo.ch
    + added new table switch DBI_SETHEADER
      It has the same meaning as RDDI_SETHEADER but changes the header
      updated mode of already open table by dbInfo() function.

  * src/rtl/filebuf.c
    ! added missing redirection for Configure() method.

  * src/rtl/hbproces.c
    ! fixed sysconf() emulation for OpenWatcom 1.9 and earlier to work with
      _SC_PAGESIZE
2015-12-09 14:22:57 +01:00
Przemysław Czerpak
071cdda627 2015-12-05 10:05 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtos2/gtos2.c
    ! fixed GCC builds - many thanks to David Macias
2015-12-05 10:05:59 +01:00
Przemysław Czerpak
43006ae7e9 2015-12-01 22:46 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbf1.c
    * update DBF header only after modification in COMMIT and CLOSE methods.
      It's Cl*pper and xBase++ compatible behavior anyhow it also means that
      number of records in DBF header is not modified just after APPEND
      so it cannot be used to synchronization in concurrent file access.

  * src/rtl/hbproces.c
    ! safe and restore hb_fsError() when unused pipe handles are closed
      in hb_fsProcessOpen()
    ! add extension (.com or .exe) in hb_fsProcessOpen()/hb_fsProcessRun()
      when executed command is given with PATH part and without extension.
      It's documented that DosExecPgm() needs full filename in such case.
      It fixes problem with contrib/make.hb which calls hbmk2 with directory
      part but without extension.
    ! enabled pipes instead of temporary files for stdio redirection in OS2
      builds of hb_fsProcessRun() - now it should work correctly.

  * src/rtl/hbprocfn.c
    + update FError() in hb_Proces*() functions
2015-12-01 22:46:39 +01:00
Przemysław Czerpak
f55c0a997a 2015-11-30 14:56 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbjson.h
  * src/rtl/hbjson.c
    + added new C function:
         char * hb_jsonEncodeCP( PHB_ITEM pValue, HB_SIZE * pnLen,
                                 HB_BOOL fHuman, PHB_CODEPAGE cdp );
      It allows to pass explicitly codepage in which strings inside pValue
      are encoded. If cdp parameter is not NULL then it's used to extract
      unicode character values from passed strings and this values is used
      to encode to encode non ASCII characters as "\uXXXX" where XXXX is
      unicode character value. Data serialized in such way is 7bit clean.
      If this parameter is NULL then strings are encoded in raw form just
      like in hb_jsonEncode().
    + added new C function:
         HB_SIZE hb_jsonDecodeCP( const char * szSource, PHB_ITEM pValue,
                                  PHB_CODEPAGE cdp );
      It allows to pass explicitly codepage used for strings decoded from
      JSON data. If this parameter is NULL then strings are decoded in raw
      form and unicode character with code over 255 are converted to '?'
      char.
    + added optional 3-rd parameter with codepage ID to PRG functions
      hb_jsonEncode() and hb_jsonDecode(). If this parameter is not given
      then above functions works like before this modification:
      hb_jsonEncode() uses raw string encoding and hb_jsonDecode() uses
      current HVM CP to decode characters encoded as \uXXXX.
    + modified PRG function hb_jsonDecode() to return decoded data
      instead of length of decoded data when second parameter is not
      passed by reference.
2015-11-30 14:56:10 +01:00
Przemysław Czerpak
706a75cece 2015-11-25 15:06 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
  * src/rtl/dateshb.c
    + added two new PRG functions:
         hb_SecToT( <nSeconds> ) -> <tTime>
         hb_MSecToT( <nMilliseconds> ) -> <tTime>

  * include/hbset.h
  * src/vm/set.c
    + added new C function:
         int hb_setUpdateEpoch( int iYear );
      if necessary it converts year respecting _SET_EPOCH settings

  * src/rtl/dates.c
    * use hb_setUpdateEpoch() instead of local code

  * src/rdd/dbf1.c
    ! respect _SET_EPOCH decoding DBF update time from DBF HEADER
      (LUpdate() function).
      It's not Cl*pper compatible anyhow looks that most of tools
      stores only last two digits from the year (just like in the
      DBF documentation) and -1900 trick is not used so it helps
      to decode correct update date.
    * store 'year % 100' instead of 'year - 1900' in DBF header
      when DBF table with VFP signature is used (DB_DBF_VFP).
2015-11-25 15:06:44 +01:00
Przemysław Czerpak
7340d7a5cd 2015-11-14 13:19 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebuf.c
    ! restored _SET_DEFAULT and _SET_PATH functionality
2015-11-14 13:19:16 +01:00
Przemysław Czerpak
debf33a962 2015-11-13 14:03 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebuf.c
    * removed unused after last modification assignment
2015-11-13 14:03:45 +01:00
Przemysław Czerpak
30d0f5bd78 2015-11-13 10:29 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebuf.c
    ! fixed file handle sharing in POSIX systems when writeonly mode is used
    ! fixed accessing files in writeonly mode in POSIX systems which use
      fcntl() locks for DENY_* flag emulation.
    ! added for POSIX systems protection against potential race condition in
      MT programs and file open and close operations. Now the whole low level
      open and close operations are covered by mutex. It means that they are
      fully serialized so in case of remote file access (i.e. NFS or SMBFS)
      it may reduce the performance in applications which simultaneously open
      and closes many different files in different threads but its necessary.
      For local file access it should not create noticeable scalability
      problems. In my Linux box Harbour can open and close in MT mode more
      then 250000 files per second.
    % use different mutexes for file open/close and file lock operations to
      not reduce the lock performance by potentially slow open() operation
      in POSIX systems.
    ; NOTE: please remember that DENY_* flag emulation in POSIX systems
            emulates only shared and exclusive modes so if any of
            FO_DENYREAD, FO_DENYWRITE or FO_EXCLUSIVE flag is used then
            it effectively works like FO_EXCLUSIVE in POSIX system and
            is not mandatory for other processes so it blocks only
            other Harbour applications which use Harbour virtual handles
            (RDD code, hb_vf*() functions)

  * src/rtl/filesys.c
    * do not convert exclusive lock to shared one when file is open in
      readonly mode on POSIX system using flock() for DENY_* flag emulation.
      Now HB_USE_BSDLOCKS is enabled only for Linux and it's documented that
      this implementation allow to use shared and exclusive locks regardless of
      file open mode.
    % do not create file name copy in hb_fsExtOpen() when passed parameters
      does not force file name modification
2015-11-13 10:29:25 +01:00
Przemysław Czerpak
9c5f875a7a 2015-11-03 10:44 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtwin/gtwin.c
    * added workaround for compilers which do not have MOUSE_HWHEELED macro
      (thanks to Alexey)

  * src/rtl/gtwvt/gtwvt.c
    * do not use LR_DEFAULTSIZE in WinCE builds (synced with Viktor's branch)

  * tests/gtkeys.prg
    * casing
2015-11-03 10:44:29 +01:00
Przemysław Czerpak
ef13a4a651 2015-11-02 17:13 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtsln/kbsln.c
  * tests/inkey.prg
    - removed not longer used HB_INKEY_RAW flag

  * tests/inkey.prg
    * test HB_INKEY_EXT keycodes when second parameter contains "E" letter

  * src/rtl/gtwvt/gtwvt.c
    * minor switch order modification
    * accept 127 as unicode character value if system also do that

  * src/rtl/gtwin/gtwin.c
    + added support for Harbour extended key codes
    + added support for mouse middle button
    + added support for some missing key combinations
    ! fixed mouse event processing
    ! fixed ALT + KeyPad NUMs processing - now it's disabled by default
      because current GTWIN supports native ALT + KeyPad NUMs processing
      provided by MS-Windows console. It works when NUMLOCK is ON. If
      someone needs to process it also when NUMLOCK is OFF then he can
      enable it by:
            hb_gtInfo( HB_GTI_KBDALT, .T. )
    ! fixed and simplified workaround for bug in MS-Windows 95 and 98
      consoles which wrongly decode SHIFT + <NUMBER> with CAPSLOCK ON
      for standard US keyboard drivers. Now enabling this workaround by:
         hb_gtInfo( HB_GTI_KBDSPECIAL, .T. )
      should not break input with fixed keyboard drivers.
    ; please test it with different windows versions and national keyboard
      layouts, tests/gtkeys.prg is quite good test program.
2015-11-02 17:13:20 +01:00
Omm
cc30b0f57c 2015-10-29 03:12 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com) 2015-11-02 10:22:46 +02:00
Viktor Szakats
c58fa44650 2015-10-29 11:52 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
* src/rtl/gtwin/gtwin.c
    ! add some HB_GTI_* setting to default GT handler
      (2015-06-08 23:32 UTC+0200 Viktor Szakats)
    + add HB_GTI_WINHANDLE support to GTWIN
      (2015-04-24 19:56 UTC+0200 Viktor Szakats)
    % variable scopes adjusted
    * minor cleanups along the way
      (2015-03-30 13:57 UTC+0200 Viktor Szakats)
    ! move misplaced comment to its proper location
      (2015-03-28 15:45 UTC+0100 Viktor Szakats)
    * simplify compatibility logic around [P]CONSOLE_SCREEN_BUFFER_INFOEX
      it's also an attempt to fix it for some mingw distros
      (f.e. on AppVeyor CI)
      (2015-03-23 03:32 UTC+0100 Viktor Szakats)
    % cleanup a #define spagetti
      (2015-03-23 03:27 UTC+0100 Viktor Szakats)
    ! fixed msvc sanitize warnings
      (2014-07-16 17:37 UTC+0200 Viktor Szakats)
2015-10-29 11:54:33 +01:00
Przemysław Czerpak
05d1a60e67 2015-10-28 17:10 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtkeycod.c
    ! fixed typo in CTRL+[UP|DOWN] mapping
    - removed obsolete comment

  * src/rtl/gtos2/gtos2.c
    + catch CTRL+BREAK in OpenWatcom builds
2015-10-28 17:10:11 +01:00
Przemysław Czerpak
9df2e23f8b 2015-10-28 16:02 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/cputime.c
    * disabled unused variables in WinCE builds
2015-10-28 16:02:42 +01:00
Przemysław Czerpak
60b029f057 2015-10-28 15:44 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbgtinfo.ch
    * removed unused HB_GTI_KBD_* macros
    * redefined few other HB_GTI_KBD_* macros to be more HB_KF_* friendly.
      [INCOMPATIBLE]
    ; Warning this modification is not binary compatible so if someone uses
         HB_GTI_KBD_SCROLOCK, HB_GTI_KBD_NUMLOCK, HB_GTI_KBD_CAPSLOCK,
         HB_GTI_KBD_LSHIFT, HB_GTI_KBD_RSHIFT,
         HB_GTI_KBD_LCTRL, HB_GTI_KBD_RCTRL,
         HB_GTI_KBD_LALT, HB_GTI_KBD_RALT,
         HB_GTI_KBD_LWIN, HB_GTI_KBD_RWIN or
         HB_GTI_KBD_MENU
      then he should recompile his code with new hbgtinfo.ch header files.

  * include/hbgtcore.h
  * src/rtl/gtkeycod.c
  * src/rtl/gtdos/gtdos.c
  * src/rtl/gtos2/gtos2.c
  * src/rtl/gtpca/gtpca.c
  * src/rtl/gtstd/gtstd.c
    + added support for Harbour extended keycodes

  * src/rtl/gtos2/gtos2.c
    + added support for HB_GTI_KBDSHIFTS

  * src/rtl/gtdos/gtdos.c
    ! fixed CTRL+C and CTRL+BREAK handling in OpenWatcom builds

  * src/rtl/inkeyapi.c
    ! fixed translation for CTRL + @

  * tests/gtkeys.prg
    + added raw keyboard test - it disables any additional interactions
    * modified Harbour output to show more information about extended
      keycodes
2015-10-28 15:44:35 +01:00
Alexey Myronenko
f7cb8a441d 2015-10-14 00:24 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com) 2015-10-27 15:40:32 +02:00
Przemysław Czerpak
2a743e15e1 2015-10-22 10:13 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtwvt/gtwvt.c
  * src/rtl/gtwvt/gtwvt.h
    * merged and simplified code for HB_GTI_ICONFILE and HB_GTI_ICONRES

  * src/rtl/hbcom.c
    * use "COM<n>:" instead of "COM<n>" as serial port name in WinCE
      builds - it's suggested by MSDN but if some of you has different
      experience then please inform me.
2015-10-22 10:13:39 +02:00
Aleksander Czajczynski
1eeec758f6 2015-10-20 15:55 UTC+0200 Aleksander Czajczynski (hb fki.pl)
* src/rtl/hbsocket.c
    ! enable socket type translation for Linux/MIPS, enum order is different
      there - fixes TCP/IP socket binding on such platform
2015-10-20 15:54:12 +02:00
Przemysław Czerpak
530838fcab 2015-10-13 23:05 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbwince.h
  * src/common/hbwince.c
  * src/rtl/cputime.c
    * do not use GetCurrentProcess() in WinCE builds
2015-10-13 23:05:32 +02:00
Przemysław Czerpak
f3fdf11830 2015-10-13 21:22 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/mlcfunc.c
    ! do not access trailing 0 byte in empty strings passed to hb_MLEval()
      (thanks to Abe for information and example illustrating the problem)
    * respect in return value also empty line after last EOL
2015-10-13 21:22:30 +02:00
Przemysław Czerpak
d3c36b080c 2015-10-13 15:08 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/memoedit.prg
    * always returned reformatted string after CTRL+W even if user has not
      made any modifications in edited data - Cl*pper compatible behavior.
2015-10-13 15:08:05 +02:00
Przemysław Czerpak
fe13ece4b4 2015-10-12 17:22 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsocket.c
    * added support for hb_socketGetIFaces() in DOS wattcp/watt-32 builds
2015-10-12 17:22:29 +02:00
Przemysław Czerpak
3abb37f67e 2015-10-12 13:32 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/mlcfunc.c
    * execute hb_MLEval() codeblock for last empty line if passed string
      ends with EOL
2015-10-12 13:32:24 +02:00
Przemysław Czerpak
f7b7e30c36 2015-10-12 12:56 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsocket.c
    ! added casting to 2-nd parameter of inet_ntop() as workaround for
      wrong declaration inet_ntop() in MSVC header file
2015-10-12 12:56:41 +02:00
Przemysław Czerpak
d5a11a9abe 2015-10-09 13:38 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsocket.c
    ! fixed typo (unnecessary parenthesis) in previous commit
    * enabled getnameinfo() in MSVS 2015 builds
    ; thanks to Viktor for the information about above items
2015-10-09 13:38:37 +02:00
Przemysław Czerpak
7d9bd3b96d 2015-10-09 11:13 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbsocket.c
    * enabled inet_pton(), inet_ntop() and getaddrinfo() in MSVS 2015 builds
2015-10-09 11:13:20 +02:00
Przemysław Czerpak
3c35a01400 2015-10-08 22:07 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gttone.c
    ! fixed typo in my previous commit - thanks to Ronaldo
2015-10-08 22:07:59 +02:00
Przemysław Czerpak
f3de17319b 2015-10-08 19:10 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gttone.c
    ! disabled IO port access MSVS 2015 builds
2015-10-08 19:10:34 +02:00
Przemysław Czerpak
25d9caffb4 2015-10-08 14:26 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbzsock.c
    ! fixed two typos
2015-10-08 14:26:24 +02:00
Przemysław Czerpak
db11c4a1cf 2015-10-06 12:37 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/hbbfsock.c
    ! typo in comment

  * src/rtl/mlcfunc.c
    * casting

  * src/rtl/memoedit.prg
  * src/rtl/teditor.prg
    * formatting and few modifications to reduce some differences between
      core and Viktor's branch
2015-10-06 12:37:29 +02:00
Przemysław Czerpak
d32d766c98 2015-10-02 16:45 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapigt.h
  * src/rtl/inkeyapi.c
    + added new C function:
         int hb_inkeyKeyExt( int iKey );
      It extracts function/edit key code value HB_KX_* from Harbour extended
      key code. If passed keycode is not valid extended keycode which points
      to function/edit key then 0 is returned.

  * include/harbour.hbx
  * src/rtl/inkey.c
    + added new PRG function hb_keyExt() - it's wrapper to hb_inkeyKeyExt()

  * include/harbour.hbx
  * src/rtl/mlcfunc.c
    ! restored original Cl*pper behavior in memo line functions,
      test shows that inside MemoEdit() Cl*pper internally uses a little
      bit different rules to format text then in memo line functions,
      It's Cl*pper bug but hard to fix because any differences to Cl*pper
      in this area cause that someone reports them as bug. So I decided
      to leave original Cl*pper behavior for compatibility and add new
      function which can be used in MemoEdit() and related code.
    + added new memo line function:
         hb_MLEval( <cString>, <bCode>, [ <nLineLength>=79 ],
                    [ <nTabSize>=4 ], [ <lWrap>=.T. ],
                    [ <nPos> ], [ @<nRow> ], [ @<nCol> ] ) -> <nLines>
      it formats texts using rules like in Cl*pper MemoEdit() not Cl*pper
      memo lines functions. For each processed line <bCode> is executed
      with 2 parameters: <cLine> and <lSoftCR>. It recognizes and accepts
      any EOLs just like hb_ATokens( <cText>, .T. ) and strips or converts
      soft CRs depending on word wrap mode.

  * src/rtl/teditor.prg
    * Use hb_MLEval() to format text
    % minor optimization

  * src/rtl/memoedit.prg
    * enabled Harbour extended key codes
    * small optimization
    ! fixed ME_BOTTOMRIGHT processing
    ! fixed initial line size calculation

  * src/vm/thread.c
    * removed dymmy code
2015-10-02 16:45:17 +02:00
Przemysław Czerpak
6458e3a963 2015-09-30 10:55 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
  * src/vm/hvm.c
    + added internal PRG function to test number of HVM threads and stacks
         __vmCountThreads( [ @<nStacks> ], [ @<nThreads> ] ) -> <nThreads>

  * src/rtl/filesys.c
  * contrib/gtqtc/gtqtc1.cpp
  * contrib/gtwvg/gtwvgd.c
  * contrib/gtwvg/wvgcore.c
  * contrib/hbamf/amfdec.c
  * contrib/xhb/fparse.c
  * contrib/xhb/hbserv.c
  * contrib/xhb/hbxml.c
    * cleaned ;; usage in C code
2015-09-30 10:55:41 +02:00
Przemysław Czerpak
7c0914cd43 2015-09-25 11:41 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebuf.c
    ! removed unnecessary HB_EXPORT attribute

  * contrib/hbwin/oleuuid.c
    ! added missing HB_EXPORT attrinute for OpenWatcom builds

  * contrib/hbcomio/comio.c
  * contrib/hbpipeio/pipeio.c
  * contrib/hbtcpio/tcpio.c
  * src/rtl/hbsockhb.c
    ! cleaned integer types and casting
2015-09-25 11:41:09 +02:00