Commit Graph

2874 Commits

Author SHA1 Message Date
Viktor Szakats
dc2a07f2b7 2009-02-11 19:03 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* COPYING
  * source/rtl/philes.c
    ! Fixed license to have the Harbour exception, in agreement
      with the group and main copyright holders.
    * Minor cleanup to HB_FGETDATETIME().
2009-02-11 18:05:27 +00:00
Mindaugas Kavaliauskas
fb7b5e9659 2009-02-11 19:30 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* harbour/include/hbextern.ch
  * harbour/source/rtl/philes.c
    + added HB_FGETDATETIME(). A "brother" of function HB_FGETDATETIME().
    ; TODO: BTW, hb_fs*() functions can get a better precision 
      (milliseconds). It would be nice to support it also at .prg level.
2009-02-11 17:28:45 +00:00
Viktor Szakats
fc28614cee 2009-02-11 09:46 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* source/rtl/gtwvt/gtwvt.c
    * BYTE -> CHAR (Windows) - UNDONE.

  * include/hbdefs.h
    + Added (commented) new types. Work in progress, incomplete.

  * contrib/hbssl/ssl.c
    - Temporary disabled SSL_GET_READ_AHEAD() as a workaround for
      BCC linking problem with SSL_get_read_ahead() OpenSSL
      library function (symbol is unresolved due to missing
      leading underscore in implib generated ssleay32.lib file).

  * source/vm/set.c
    % hb_fsFile() -> hb_fsFileExists()

  * source/rtl/hbffind.c
    * HB_WIN_32_MATCH -> HB_WIN_MATCH

  * doc/whatsnew.txt
  * include/hbsetup.h
  * source/vm/fm.c
    * #define HB_FM_WIN32_ALLOC renamed to HB_FM_WIN_ALLOC.
    ; INCOMPATIBLE: For those who are using this switch, please
                    update your make files.

  * source/rtl/tpopup.prg
    ! Fixed to draw separator lines with BOX GT attributes,
      so that they appear properly.
2009-02-11 08:47:48 +00:00
Przemyslaw Czerpak
013f7ab9a5 2009-02-11 02:38 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/source/vm/cmdarg.c
    + added const char * hb_cmdargARGVN( int argc )

  * harbour/source/vm/cmdarg.c
    * try to convert executable file name argument in argv[0] to
      absolute path if it's relative one. Respect PATH envvar it necessary.

  * harbour/source/common/hbdate.c
    * formatting

  * harbour/source/rtl/philes.c
  * harbour/source/rtl/errorint.c
  * harbour/source/rtl/filesys.c
    ! use hb_cmdargARGVN(n) instead of hb_cmdargARGV()[n] to avoid
      possible GPF if some function will be called before argument
      initialization
    * removed additional logic which tries to convert relative paths
      in file name from hb_fsBaseDirBuff() and HB_PROGNAME() functions
2009-02-11 01:33:31 +00:00
Viktor Szakats
bd949536fe 2009-02-10 10:35 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/filesys.c
    ! Fixes for *NIX compilation to latest change.
      Please test. [ some more ]
2009-02-10 09:36:36 +00:00
Viktor Szakats
1c87526a47 2009-02-10 10:34 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/filesys.c
    ! Fixes for *NIX compilation to latest change.
      Please test.
2009-02-10 09:34:44 +00:00
Viktor Szakats
7ee8e7a80f 2009-02-10 03:52 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbssl/Makefile
    + Added new detection dir.

  * source/rtl/gtwvt/gtwvt.c
    + Added support for HB_GTI_BOXCP.
      (available for UNICODE builds only).

  * source/rtl/filesys.c
    + Added (untested) support for *NIX system to
      hb_fsBaseDirBuff() / HB_DIRBASE().
2009-02-10 03:19:10 +00:00
Przemyslaw Czerpak
4961857b2d 2009-02-10 04:15 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/classes.c
    * covered some old functions marked as deprecated long time ago
      by HB_LEGACY_LEVEL2 macro

  * harbour/source/rtl/hbgtcore.c
  * harbour/contrib/hbct/ctwin.c
  * harbour/contrib/hbct/keyset.c
  * harbour/contrib/hbct/misc3.c
  * harbour/contrib/hbnf/numlock.c
  * harbour/contrib/hbnf/shift.c
  * harbour/contrib/hbnf/alt.c
  * harbour/contrib/hbnf/ctrl.c
  * harbour/contrib/hbnf/caplock.c
    * use memset( &gtInfo, 0, sizeof( gtInfo ) ); to initialize
      HB_GT_INFO structure - it also fixes possible problems with
      uninitialized pNewVal2 member in few cases.
2009-02-10 03:10:57 +00:00
Viktor Szakats
667983f196 2009-02-10 02:34 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbapigt.h
  * source/rtl/hbgtcore.c
  * source/rtl/gtfunc.c
    - Removed unnecessary extension to HB_GT_INFO.
2009-02-10 01:35:15 +00:00
Viktor Szakats
897a02e44a 2009-02-10 01:39 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* doc/whatsnew.txt
  * include/clipdefs.h
  * include/filesys.api
  * include/gt.api
  * include/hbapi.h
  * include/hbapierr.h
  * include/hbapifs.h
  * include/hbapigt.h
  * include/hbapiitm.h
  * include/hbapirdd.h
  * include/hbdefs.h
  * include/hbgfxdef.ch
  * include/hbgtinfo.ch
  * include/hbsetup.ch
  * include/hbsetup.h
  * include/item.api
  * include/rdd.api
  * source/rtl/errorapi.c
  * source/rtl/filesys.c
  * source/vm/cmdarg.c
  * common.mak
  - source/vm/debugold.c
  * source/vm/Makefile
  * source/vm/vmmt/Makefile
    - Permanently disabled HB_LEGACY_LEVEL support.
    + Added HB_LEGACY_LEVEL2 support to protect some
      recently made incompatible changes. Old methods
      are supported until Harbour 1.2. Please update
      your code until then. To test your code for
      compatibility with recent changes, you can turn
      off legacy support manually by #defining HB_LEGACY_OFF.
      (HB_USER_CFLAGS=-DHB_LEGACY_OFF)
      This is recommended on local systems for all
      Harbour developers.
2009-02-10 00:47:50 +00:00
Viktor Szakats
c5641b250f 2009-02-10 00:39 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbapigt.h
  * source/rtl/gtfunc.c
    + Extended HB_GT_INFO structure with nPCount member.

  * include/hbgtinfo.ch
  * include/hbgtcore.h
  * source/rtl/hbgtcore.c
    + Added HB_GTI_CARGO. This can be used to store whatever
      user defined value on a per GT basis.
      HB_GTINFO( HB_GTI_CARGO[, <xValue ] ) -> <xPrevValue>

  * source/rtl/hbgtcore.c
    ! hb_gt_def_Alert() fixed to also initialize pNewVal2 with NULL.
      (didn't cause any real-world harm).

  * contrib/hbwin/win_tprn.prg
    % Minor optimizations.
2009-02-09 23:44:49 +00:00
Viktor Szakats
357acc1f38 2009-02-09 12:43 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/fstemp.c
    ! Added cast for MSVC warning. (this code part was 
      formerly only active for non-Windows builds)

  * include/hbapifs.h
  * source/rtl/fstemp.c
  * source/rtl/filebuf.c
    * UCHAR -> BYTE in new FS functions, for consistency.
2009-02-09 11:43:46 +00:00
Viktor Szakats
7799f9234e 2009-02-08 22:19 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbapifs.h
  * source/rtl/spfiles.c
    + Added hb_spFileExists(). Same as hb_spFile(), but uses
      the more efficient (especially on networks) hb_fsFileExists()
      call to check for file exitance.
      [ not very elegant solution, as I've just copied the
      whole function, and changed the file existance call, maybe
      a worker function + passing the check function pointer
      could help, but the hb_fsFile() and hb_fsFileExists() workings
      differ slightly. ]

  * source/rdd/dbfntx/dbfntx1.c
  * source/rdd/dbfnsx/dbfnsx1.c
  * source/rdd/dbfcdx/dbfcdx1.c
  * source/rdd/dbf1.c
    % Using hb_spFileExists() instead of hb_spFile().
      This API also works for dirs where use doesn't have file listing
      rights, which may create a slight incompatibility by finding
      files which weren't found by former method (and by Clipper).
      C:\WINDOWS\TEMP\*.* were such when logged in as non-admin user,
      but this dir is only used as a default TEMP dir for DOS programs.
      Please speak up if you find this issue (or something else) to
      be problem.

  * source/rtl/file.c
    * File naming standardized.

  * doc/whatsnew.txt
    * Minor updates.
2009-02-08 21:36:57 +00:00
Viktor Szakats
eefe474f98 2009-02-08 18:06 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/gtwvt/gtwvt.c
    * BYTE -> CHAR (Windows)

  * contrib/hbct/ctwin.c
  * contrib/hbct/ctwin.h
    + Added hb_ctwGetPosWindows() to find out which window
      is visible on a given physical screen coordinate.

  * make_b32.mak
  * make_gcc.mak
  * make_vc.mak
    * Formatting.

  * include/hbdefs.h
    + Added type HB_COLOR to replace current BYTE.
    * Minor formatting.

  * contrib/rddsql/sddfb/make_b32.bat
  * contrib/rddsql/sddfb/make_vc.bat
  * contrib/rddsql/sddmy/make_b32.bat
  * contrib/rddsql/sddmy/make_vc.bat
  * contrib/rddsql/sddpg/make_b32.bat
  * contrib/rddsql/sddpg/make_vc.bat
    * Minor cleanup.

  * source/vm/hvm.c
  * source/vm/memvars.c
    * Added varnames to prototypes.
2009-02-08 17:07:38 +00:00
Przemyslaw Czerpak
73c7f2a2bd 2009-02-07 02:15 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/fstemp.c
    * casting for C++ mode
2009-02-07 01:11:03 +00:00
Viktor Szakats
ad83c96712 2009-02-07 01:21 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbapifs.h
  * include/hbextern.ch
  * source/rtl/fstemp.c
  * source/rtl/filebuf.c
    + Added hb_fsCreateTempEx(). Similar to hb_fsCreateTemp(),
      but allows to control the extension. Note, that the
      ordering of parameters ha slightly changed compared to
      hb_fsCreateTemp().
    + Added hb_fileCreateTempEx(). See above.
    + Added Harbour level HB_FTEMPCREATEEX(). See above.
    ; Please review & test.
2009-02-07 00:22:40 +00:00
Viktor Szakats
027fa965de 2009-02-07 00:22 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/Makefile
  - include/hbfixdj.h
  * include/hbsetup.h
    - Removed file no longer needed. Harbour no longer uses
      is*()/toupper()/tolower() calls, or <ctype.h>.

  * source/rtl/gtpca/gtpca.c
    % Removed #include <ctype.h>.
2009-02-06 23:23:20 +00:00
Przemyslaw Czerpak
e339973046 2009-02-07 00:22 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbdefs.h
  * harbour/include/hbapi.h
    * moved HB_ISSPACE(), HB_ISFIRSTIDCHAR() and HB_ISNEXTIDCHAR() from
      hbapi.h to hbdefs.h
    + HB_ISXDIGIT() macro

  * harbour/include/hbpp.h
    * updated other HB_PP_IS*() macros definitions to internally use HB_IS*()
      ones

  * harbour/source/rtl/fstemp.c
    ! fixed unterminated ASCIIZ string

   TODO: new macros HB_CHARVAL( c ), HB_CHARXVAL( c ),
                    HB_VALDIGIT( i ), HB_VALXDIGIT( i )
2009-02-06 23:18:19 +00:00
Viktor Szakats
b129b78a47 2009-02-06 19:03 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbdefs.h
    + Added HB_ISALNUM() macro.
    + Added HB_ISSPACE() macro. Please review.

  * source/contrib/hbver.c
    * isspace() -> HB_ISSPACE().

  * contrib/rddads/ads1.c
    ! toupper() -> HB_TOUPPER()

  * contrib/xhb/hbxml.c
    + Readded #include <ctype.h> because this one still uses isspace().

  * include/hbcomp.h
  * include/hbmacro.h
  * contrib/hbct/token1.c
  * contrib/hbodbc/odbc.c
  * contrib/xhb/freadlin.c
  * contrib/rddsql/sqlmix.c
  * contrib/gtwvg/gtwvg.h
  * contrib/gtwvg/wvggui.h
  * contrib/rddads/adsx.c
  * contrib/rddads/ads1.c
  * contrib/hbclipsm/time.c
  * contrib/hbclipsm/status.c
  * contrib/hbmisc/dates2.c
  * contrib/hbwin/win_ole.c
  * contrib/examples/pp/pp.c
  * source/debug/dbgentry.c
  * source/common/hbver.c
  * source/rtl/chrasc.c
  * source/rtl/philes.c
  * source/rtl/dirdrive.c
  * source/rtl/dateshb.c
  * source/rtl/philesx.c
  * source/rtl/disksphb.c
  * source/rtl/soundex.c
  * source/rtl/gtapi.c
  * source/rtl/filesys.c
  * source/codepage/cppt850.c
  * source/codepage/cpuawin.c
  * source/codepage/cpde850.c
  * source/codepage/cpsv850.c
  * source/codepage/cpeswinc.c
  * source/codepage/cptr857.c
  * source/codepage/cpru866.c
  * source/codepage/cproiso.c
  * source/codepage/cprowin.c
  * source/codepage/cpeswinm.c
  * source/codepage/cpes850.c
  * source/codepage/cpcs852.c
  * source/codepage/cpitisb.c
  * source/codepage/cphu852.c
  * source/codepage/cpsk852.c
  * source/codepage/cpplmaz.c
  * source/codepage/cpesisoc.c
  * source/codepage/cppliso.c
  * source/codepage/cpbgmik.c
  * source/codepage/cpplwin.c
  * source/codepage/cpbg866.c
  * source/codepage/cpltwin.c
  * source/codepage/cphu852s.c
  * source/codepage/cpptiso.c
  * source/codepage/cpel737.c
  * source/codepage/cpsrwin.c
  * source/codepage/cpsviso.c
  * source/codepage/cpdeiso.c
  * source/codepage/cpfr850.c
  * source/codepage/cpsvwin.c
  * source/codepage/cpdewin.c
  * source/codepage/cphr437.c
  * source/codepage/cpes850c.c
  * source/codepage/cphr852.c
  * source/codepage/cpua866.c
  * source/codepage/cpit850.c
  * source/codepage/cpit437.c
  * source/codepage/cpsl437.c
  * source/codepage/cpsl852.c
  * source/codepage/cphuwins.c
  * source/codepage/cpcsiso.c
  * source/codepage/cpesiso.c
  * source/codepage/cpcswin.c
  * source/codepage/cpeswin.c
  * source/codepage/cphuiso.c
  * source/codepage/cpskiso.c
  * source/codepage/cprukoi.c
  * source/codepage/cphuwin.c
  * source/codepage/cpskwin.c
  * source/codepage/cp_tpl.c
  * source/codepage/cpruiso.c
  * source/codepage/cpruwin.c
  * source/codepage/cphuisos.c
  * source/codepage/cpelwin.c
  * source/codepage/cpro852.c
  * source/codepage/cpfriso.c
  * source/codepage/cpfrwin.c
  * source/codepage/cpitiso.c
  * source/codepage/cphrwin.c
  * source/codepage/cpsliso.c
  * source/codepage/cpitwin.c
  * source/codepage/cpslwin.c
  * source/codepage/cpcskam.c
  * source/codepage/cpsvclip.c
  * source/codepage/cpbgiso.c
  * source/codepage/cptrwin.c
  * source/codepage/cpskkam.c
  * source/codepage/cpbgwin.c
  * source/codepage/cpuakoi.c
  * source/codepage/cppl852.c
  * utils/hbdoc/hbdfrdln.c
  * utils/hbmake/hbmfrdln.c
    % Removed #include <ctype.h>. Most of these didn't need it anyway.
2009-02-06 18:23:08 +00:00
Viktor Szakats
1e894d019e 2009-02-06 18:46 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbdefs.h
    + Added HB_ISALNUM() macro.

  * include/hbpp.h
  * include/hbapicdp.h
  * contrib/hbct/pos1.c
  * contrib/hbct/ascpos.c
  * contrib/xhb/hbxml.c
  * contrib/hbtip/utils.c
  * contrib/examples/pp/hbppcore.c
  * source/vm/itemapi.c
  * source/vm/memvars.c
  * source/vm/set.c
  * source/vm/classes.c
  * source/debug/dbgentry.c
  * source/common/hbstr.c
  * source/common/expropt2.c
  * source/rtl/strcase.c
  * source/rtl/cdpapi.c
  * source/rtl/is.c
  * source/rtl/transfrm.c
  * source/rtl/dates.c
  * source/rtl/natmsg.c
  * source/rtl/soundex.c
  * source/rtl/hbffind.c
  * source/rdd/workarea.c
  * source/compiler/hbmain.c
  * source/compiler/harbour.yyc
  * source/compiler/harbour.y
    * Replaced:
      isdigit() -> HB_ISDIGIT()
      isalpha() -> HB_ISALPHA()
      isalnum() -> HB_ISALNUM()
      isupper() -> HB_ISUPPER()
      islower() -> HB_ISLOWER()
      tolower() -> HB_TOLOWER()
      toupper() -> HB_TOUPPER()

  * source/rtl/natmsg.c
    ! Fixed to use CP sensitive case conversion in
      __NATISNEGATIVE() and __NATISAFFIRM().

  * source/rtl/is.c
    ! Fixed typo in recently added hb_charIsUpper()/hb_charIsLower()
      functions.

  ; TODO: Remove DJGPP to*() hack.
  ; TODO: Replace HB_PP_UPPER(), HB_PP_ISDIGIT() with equivalent
          new macros.
  ; TOFIX: Some of the above macros should better be replaced
           by CP sensitive versions. F.e. the one in hbtip.
  ; TOFIX: Remove remaining #include <ctype.h> lines.
2009-02-06 17:47:46 +00:00
Viktor Szakats
06280f2498 2009-02-06 17:46 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbdefs.h
    + Added macros:
      HB_TOUPPER(), HB_TOLOWER(), HB_ISUPPER(), HB_ISLOWER(),
      HB_ISALPHA(), HB_ISDIGIT().

  * source/rtl/strcase.c
  * source/compiler/cmdcheck.c
    * Replaced tolower()/toupper()/isdigit() with macros or other
      constructs.

  * source/rtl/tmenusys.prg
    % Changed to use Inkey() second parameter instead of
      tweaking Set( _SET_EVENTMASK ).

  * contrib/rddads/ads1.c
    * Minor formatting.
2009-02-06 16:50:18 +00:00
Przemyslaw Czerpak
8d6dce6b76 2009-02-06 12:29 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/common/hbprintf.c
    * pacified warning

  * harbour/source/rtl/philesx.c
    ! fixed typo
2009-02-06 11:25:08 +00:00
Przemyslaw Czerpak
4c9438f207 2009-02-06 11:52 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/hbproces.c
    * removed always false condition for #if expression
2009-02-06 10:47:56 +00:00
Przemyslaw Czerpak
75890d9bb2 2009-02-06 11:26 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/philes.c
  * harbour/source/rtl/dirdrive.c
  * harbour/source/rtl/philesx.c
  * harbour/source/rtl/filesys.c
    ! fixed CURDRIVE() and DISKNAME() to not return "A" in OS-es which
      does not use drive letters
    ! eliminated toupper()
    % minor cleanup and speed improvement

  * harbour/config/bin.cf
  * harbour/config/test.cf
    * removed quoting for TOP=$(GRANDP) nested GNU make call parameters
2009-02-06 10:21:51 +00:00
Maurilio Longo
32cf59595f 2009-02-06 10:55 UTC+0100 Maurilio Longo (maurilio.longo@libero.it)
* config/os2/dir.cf
    * use $(COMSPEC) instead of calling cmd.exe directly
  * config/os2/gcc.cf
    * rewrote create_library rule to work with make -jn without
      breaking shell environment/command line size.
  * source/rtl/hbproces.c
    * included sys/waith.h in OS/2 build. I think that initial
      #defines can be simplified a bit.
  * config/os2/install.cf
    * rewrote install_rule to work with make -jn without
      breaking shell environment/command line size.
  * config/lib.cf
    * removed unnecessary double quotes around TOP definition
2009-02-06 09:55:04 +00:00
Przemyslaw Czerpak
5dbddbeb1a 2009-02-06 00:05 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbstack.h
  * harbour/source/vm/estack.c
    ! fixed typo in one internal function name

  * harbour/include/hbapi.h
  * harbour/include/hbstack.h
  * harbour/source/vm/estack.c
  * harbour/source/vm/dynsym.c
  * harbour/source/vm/memvars.c
    % changed code used for memvars clear in MT mode - it greatly 
      reduce the cost of HVM thread exit
    % changed code for memvars copping/sharing when thread is started
      it greatly reduce the time of thread creation when existing memvars
      are shared or copied
   Both modifications reduced the cost of simple
      hb_threadJoin( hb_threadCreate( {|| NIL } ) )
   few times depending on number of symbols and memvars.

  * harbour/source/rtl/gttrm/gttrm.c
  * harbour/source/rtl/gtsln/gtsln.c
  * harbour/source/rtl/gtsln/gtsln.h
  * harbour/source/rtl/gtpca/gtpca.c
    % added better initial cursor position detection and eliminated sscanf()

  * harbour/source/Makefile
    ! fixed concurrent dependencies in cross builds
2009-02-05 23:01:40 +00:00
Viktor Szakats
a8598c6299 2009-02-04 23:23 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbwince.h
  * include/hb_io.h
  * include/hbwmain.c
  * include/hbthread.h
  * include/hbsetup.h
  * include/hbmath.h
  * include/hbassert.h
  * contrib/gtwvg/gtwvg.c
  * contrib/gtwvg/gtwvg.h
  * contrib/gtwvg/wvggui.c
  * contrib/gtwvg/wvggui.h
  * contrib/gtwvg/wvgutils.c
  * contrib/hbwin/win_prn2.c
  * contrib/hbwin/win_dll.c
  * contrib/hbwin/win_prn1.c
  * contrib/examples/pp/pp.c
  * contrib/examples/pp/hbppcore.c
  * source/pp/hbpp.c
  * source/vm/fm.c
  * source/vm/extrap.c
  * source/main/harbour.c
  * source/common/hbver.c
  * source/common/hbwince.c
  * source/rtl/diskspac.c
  * source/rtl/hbgtcore.c
  * source/rtl/gtclip.c
  * source/rtl/gtstd/gtstd.c
  * source/rtl/disksphb.c
  * source/rtl/gtpca/gtpca.c
  * source/rtl/seconds.c
  * source/rtl/filebuf.c
  * source/rtl/hbproces.c
  * source/rtl/gtwvt/gtwvt.h
  * source/rtl/gtwvt/gtwvt.c
  * source/rtl/fssize.c
  * source/rtl/hbinet.c
  * source/rtl/gtsys.c
  * source/rtl/filesys.c
    * HB_WINCE -> HB_OS_WIN_CE.
      Now all OS branching #defines are in the HB_OS_* namespace.
      Please use the new name from now on.
2009-02-04 22:24:35 +00:00
Viktor Szakats
c60db4b7aa 2009-02-04 23:13 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/tget.prg
  * source/rtl/tgetx.prg
  * source/rtl/tbcolumn.prg
  * source/rtl/tbrowse.prg
    * Reset internal name of GET(), TBROWSE(), TBCOLUMN(),
      because even if Clipper doesn't have such public
      symbols, Class(y) has them, and we want to maintain
      compatibility.

  * include/hbextern.ch
    + Added GET, TBROWSE, TBCOLUMN.
2009-02-04 22:14:46 +00:00
Viktor Szakats
56a8e960d4 2009-02-04 21:59 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbgtcore.h
  * contrib/gtwvg/gtwvg.c
  * contrib/gtwvg/wvggui.c
  * source/rtl/gtclip.c
  * source/rtl/gttone.c
  * source/rtl/gtkbstat.c
  * source/rtl/gtgui/gtgui.c
  * source/rtl/gtwin/gtwin.c
  * source/rtl/gtwvt/gtwvt.c
    * hb_gt_w32_*() internal functions renamed to hb_gt_winapi_*().
2009-02-04 20:59:47 +00:00
Viktor Szakats
e8777b2dfd 2009-02-04 19:20 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbextern.ch
   * source/rtl/tbcolumn.prg
   * source/rtl/tbrowse.prg
   * source/rtl/tget.prg
   * source/rtl/tgetx.prg
     ! Using new method to solve the GET()/TBROWSE()/TBCOLUMN()
       symbol problem (these aren't public symbols in Clipper).
       The method used is the one already implemented for other
       C53 CUI classes.
       This allows inheritance, doesn't mess up the class name,
       and won't declare above public symbols.
     * Moved Xbase++ compatible GET()/TBROWSE()/TBCOLUMN()
       functionality into separate classes, all inheriting from
       original Harbour classes. This means that Xbase++
       compatible methods are only accessible when using the
       derived classes. The separation will allow us to
       move XPP (and other HB_COMPAT_*) compatible functionality
       into a separate libraries in the future, allowing more
       freedom to resolve clashing features, symbol names, etc..
     * Xbase++ compatible classes are named: xpp_Get(),
       xpp_TBrowse(), xpp_TBColumn(). This is a slight
       incompatibility compared to Xbase++ and also to
       previous Harbour. Technically it seems possible
       to give them the names GET()/TBROWSE()/TBCOLUMN(), if
       the class is defined in a different file, but let's first 
       discuss it.

   * source/rtl/tgetint.prg
     * Using GetNew() instead of Get():New().

     ; Finally I didn't use '( ... )' to pass parameters in GetNew(),
       as it's a tiny bit less efficient with -gc3.

   * include/hbusrrdd.ch
   * include/hbapi.h
     + Comment.
2009-02-04 18:21:23 +00:00
Viktor Szakats
8181b8c258 2009-02-04 14:42 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbextern.ch
  * common.mak
  * source/rtl/Makefile
  + source/rtl/tgetx.prg
  * source/rtl/tget.prg
  * source/rtl/tgetint.prg
    + CA-Cl*pper compatible GET class renamed to HBGet and
      is now always available regardless of feature settings.
    * Xbase++ compatible GET class named Get(), moved to separate
      file and now inherits from HBGet, plus implements
      additional functionality also in the separate file.
    * GetNew() moved to tget.prg from tgetint.prg.
    * Code changed to use HBGet():New() instead of Get():New().
    ; TOFIX: After above changes, Xbase++ compatiblity
             methods are no longer available for regular
             GETs, only if they are explicitly created
             using Get():New(). If this is a problem for someone
             we can start thinking of a solution.
    ; TODO: Do the same with TBrowse() and TColumn().
2009-02-04 13:45:09 +00:00
Viktor Szakats
1d13959a7b 2009-02-04 01:09 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/extend.api
  * include/hbgtcore.h
  * include/hbwince.h
  * include/hbthread.h
  * include/hbdefs.h
  * include/hbsetup.h
  * include/hbapi.h
  * include/clipdefs.h
  * include/hbatomic.h
  * contrib/hbmysql/mysql.c
  * contrib/hbct/ctnet.c
  * contrib/hbct/files.c
  * contrib/hbct/dattime3.c
  * contrib/hbct/disk.c
  * contrib/hbodbc/odbc.c
  * contrib/xhb/hboutdbg.c
  * contrib/xhb/hbsyslog.c
  * contrib/xhb/filestat.c
  * contrib/hbmsql/msql.c
  * contrib/hbole/ole2.c
  * contrib/hbmzip/hbmzip.c
  * contrib/hbapollo/apollo.c
  * contrib/hbfbird/firebird.c
  * contrib/hbnf/descendn.c
  * contrib/hbnf/getenvrn.c
  * contrib/rddsql/sqlmix.c
  * contrib/gtwvg/gtwvg.c
  * contrib/gtwvg/wvggui.c
  * contrib/gtwvg/wvgwin.c
  * contrib/gtwvg/wvgutils.c
  * contrib/gtwvg/wvgcore.c
  * contrib/rddads/adsx.c
  * contrib/rddads/rddads.h
  * contrib/rddads/adsmgmnt.c
  * contrib/rddads/adsfunc.c
  * contrib/rddads/ads1.c
  * contrib/hbfimage/fi_winfu.c
  * contrib/hbfimage/fi_wrp.c
  * contrib/hbgd/gd.ch
  * contrib/hbgd/gdwrp.c
  * contrib/hbgf/hbgfwin/winapi.c
  * contrib/hbtip/utils.c
  * contrib/hbtip/ChangeLog
  * contrib/hbwin/win_prn2.c
  * contrib/hbwin/win_osc.c
  * contrib/hbwin/win_misc.c
  * contrib/hbwin/win_prt.c
  * contrib/hbwin/win_dll.c
  * contrib/hbwin/win_ole.c
  * contrib/hbwin/win_prn1.c
  * contrib/hbwin/win_regc.c
  * contrib/hbssl/sslsess.c
  * contrib/hbssl/sslrand.c
  * contrib/hbwhat/whtdate.c
  * contrib/hbwhat/whtini.c
  * contrib/hbwhat/whtcret.c
  * contrib/hbwhat/whthead.c
  * contrib/hbwhat/whtilst.c
  * contrib/hbwhat/whtreg.c
  * contrib/hbwhat/whtclpb.c
  * contrib/hbwhat/whtmous.c
  * contrib/hbwhat/whtrgn.c
  * contrib/hbwhat/whtmeta.c
  * contrib/hbwhat/whttbar.c
  * contrib/hbwhat/whtrect.c
  * contrib/hbwhat/whtbrsh.c
  * contrib/hbwhat/whtgdi.c
  * contrib/hbwhat/whtdlg.c
  * contrib/hbwhat/whtview.c
  * contrib/hbwhat/whtsys.c
  * contrib/hbwhat/whtmain.c
  * contrib/hbwhat/whtwnd.c
  * contrib/hbwhat/whtmmcap.c
  * contrib/hbwhat/whtfont.c
  * contrib/hbwhat/whtdir.c
  * contrib/hbwhat/whtbmp.c
  * contrib/hbwhat/whtkbrd.c
  * contrib/hbwhat/whtpen.c
  * contrib/hbwhat/whttext.c
  * contrib/hbwhat/whtdc.c
  * contrib/hbwhat/whtdraw.c
  * contrib/examples/uhttpd/socket.c
  * contrib/examples/uhttpd/uhttpdc.c
  * source/vm/mainwin.c
  * source/vm/maindll.c
  * source/vm/maindllh.c
  * source/vm/hvm.c
  * source/vm/cmdarg.c
  * source/vm/maindllp.c
  * source/vm/fm.c
  * source/vm/extrap.c
  * source/vm/thread.c
  * source/vm/dynlibhb.c
  * source/vm/set.c
  * source/common/hbgete.c
  * source/common/hbver.c
  * source/common/hbfsapi.c
  * source/common/hbwince.c
  * source/common/hbdate.c
  * source/rtl/diskspac.c
  * source/rtl/console.c
  * source/rtl/gtwin/gtwin.c
  * source/rtl/fserror.c
  * source/rtl/hbgtcore.c
  * source/rtl/gtclip.c
  * source/rtl/fstemp.c
  * source/rtl/idle.c
  * source/rtl/oemansi.c
  * source/rtl/disksphb.c
  * source/rtl/net.c
  * source/rtl/gtgui/gtgui.c
  * source/rtl/seconds.c
  * source/rtl/gttone.c
  * source/rtl/hbproces.c
  * source/rtl/gtkeycod.c
  * source/rtl/version.c
  * source/rtl/gtwvt/gtwvt.c
  * source/rtl/hbrandom.c
  * source/rtl/hbinet.c
  * source/rtl/hbffind.c
  * source/rtl/gtsys.c
  * source/rtl/filesys.c
  * source/rtl/gtkbstat.c
  * source/rtl/isprint.c
  * source/compiler/cmdcheck.c
  * utils/hbmake/hbmlang.c
    * #defines renamed to be bitwidth-independent.
      - HB_OS_WIN_32_USED -> HB_OS_WIN_USED
      - HB_OS_WIN_32      -> HB_OS_WIN
    ; Please modify your code accordingly.

  * include/hbdefs.h
  * include/hbsetup.h
    + Added compatibility to still understand HB_OS_WIN_32_USED,
      and to #define HB_OS_WIN_32 in addition to HB_OS_WIN.
      This means that old code will still work, but these
      compatibility features will be removed in the future,
      so it's recommended to change the code as above.
2009-02-04 00:18:56 +00:00
Viktor Szakats
4b82944aa3 2009-02-03 17:25 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/gtwvt/gtwvt.c
    ! Fixed for OpenWatcom 1.8. (SM_REMOTESESSION wasn't defined)
2009-02-03 16:26:25 +00:00
Viktor Szakats
b438524f5e 2009-02-03 15:03 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbapigt.h
  * contrib/hbct/screen1.c
  * source/rtl/console.c
  * source/rtl/hbrunfun.c
  * source/rtl/gx.c
  * source/rtl/gtapi.c
    * SUCCESS -> HB_SUCCESS
    * FAILURE -> HB_FAILURE
    * ERRCODE -> HB_ERRCODE
2009-02-03 14:04:36 +00:00
Viktor Szakats
d13af773dd 2009-02-02 17:25 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* doc/cmpopt.txt
    ! Fixed missing SVN keyword.
      [Przemek was faster]

  * source/rtl/perfuncs.prg
  * source/rtl/menuto.prg
  * source/rtl/getlist.prg
  * source/rtl/readvar.prg
  * source/rtl/thfuncx.prg
  * source/rtl/text.prg
    * Renamed THREAD STATIC vars to t_* (from s_*).
2009-02-02 16:32:36 +00:00
Viktor Szakats
ef3da0603c 2009-01-29 14:25 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/gtwvt/gtwvt.c
    ! Fixed to #undef _WIN32_WINNT before setting it.
    ; TOFIX: hbwhat has this problem in almost all of its source
             files.

  * contrib/examples/uhttpd/modules/bldhrb.bat
  * contrib/examples/uhttpd/modules/showcounter.prg
  * contrib/examples/uhttpd/hbmk_b32.bat
  * contrib/examples/uhttpd/hbmk_vc.bat
    * Minor.
2009-01-29 13:26:40 +00:00
Przemyslaw Czerpak
3a5ebae50f 2009-01-27 16:33 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbdefs.h
    * include stdint.h in DJGPP >= 2.4

  * harbour/source/common/hbprintf.c
    ! fixed DJGPP <= 2.3 compilation

  * harbour/source/common/hbstr.c
    * force buffer ending in DJGPP <= 2.3 when vsprintf() is used

  * harbour/source/rtl/hbproces.c
    ! fixed typo in HB_SYMBOL_UNUSED() variable name

  * harbour/config/dos/global.cf
    ! fixed for GNU make ports which prefer COMSPEC before SHELL
2009-01-27 15:29:56 +00:00
Viktor Szakats
1d1c058f9d 2009-01-27 02:22 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/version.c
    ! Fixed hb_version( HB_VERSION_BUILD_DATE ).
2009-01-27 01:22:42 +00:00
Viktor Szakats
cffcac1c84 2009-01-26 17:10 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* common.mak
   * include/hbextern.ch
   * source/rtl/Makefile
   + source/rtl/strxor.c
     + Added HB_STRXOR() (work of Mindaugas Kavaliauskas)

   * common.mak
   * source/common/Makefile
   + source/common/hbprintf.c
     + Added hb_snprintf_c() (temp name, untested) (work of Przemyslaw Czerpak)
       [ I've added a normal Harbour license, as per your permission
       on the list. Pls give me feedback is this is wrong. ]

   * source/rdd/usrrdd/example/exlog.prg
     ! Fixed missing #includes.

   * source/rdd/usrrdd/example/hbmk_b32.bat
   + source/rdd/usrrdd/example/hbmk_vc.bat
     + Added MSVC make file.
     ! Added EOL to the last line to hbmk_b32.bat.
     ! xhb.lib dependency removed. It was not needed anyway.
     ; TOFIX: When compiling exhsx.prg, this happens:
              exhsx.obj : error LNK2001: unresolved external symbol _HB_FUN_HSXRDD

   * contrib/hbssl/sslsess.c
   * contrib/hbssl/sslctx.c
   * contrib/hbssl/sslciph.c
     * Minor changes.
2009-01-26 16:13:57 +00:00
Viktor Szakats
3fb63e0f0b 2009-01-25 22:16 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/philes.c
    ! FWRITE(): Fixed accessing past the string buffer (thus 
      causing potential GPF and a huge security hole) when
      the passed length is greate than the lenght of the string.
      Very old bug. In fact CA-Cl*pper suffers from the same 
      problem, and behavior for such case is not documented.
      Harbour will ignore the length parameter (thus writing 
      the whole passed string), if the length is invalid.
2009-01-25 21:19:17 +00:00
Przemyslaw Czerpak
93fab23315 2009-01-21 17:52 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/common.mak
  * harbour/source/rtl/Makefile
  - harbour/source/rtl/hbi18n.c
  + harbour/source/rtl/hbi18n1.c
    * renamed hbi18n.c to hbi18n1.c to avoid conflicts with hbi18n
      program - non GNU make files needs unique file names
    ! fixed bug in internal function __I18N_HASHTABLE()

  * harbour/common.mak
  * harbour/source/rtl/Makefile
  + harbour/source/rtl/hbi18n2.prg
    + added new I18N functions to manage .pot files and generate .hbl ones.
      public functions:
      HB_I18N_loadPot( <cFile>, [<pI18N>] [, @<cErrorMsg>] ) -> <pI18N> | NIL
         Reads .pot file and returns Harbour translation set or NIL when
         error appears. In such case <cErrorMsg> is contains error message
         string. If second parameter [<pI18N>] is given then translation
         items read from .pot file are added to this set. Otherwise new
         Harbour translation set is created.
      HB_I18N_savePot( <cFile>, <pI18N> [, @<cErrorMsg>] ) -> <lSuccess>
         Generates .pot file from Harbour translation set. Please note
         that Harbour translation set does not contain additional
         information which exists in original .pot files like source
         code numbers or alternative plural forms.
      internal functions for Harbour developers which will work on I18N
      tools:
      __I18N_potArrayLoad( <cFile> [, @<cErrorMsg>] ) -> <aTrans> | NIL
         Reads .pot file and returns array with translation items or
         NIL when error appears. In such case <cErrorMsg> is contains
         error message string.
         <aTrans> is an array with translation items containing additional
         informations from .pot file which are not necessary in final
         translation sets used at runtime. It's designed for I18N tools
         written in Harbour to manage .pot files and/or create .hbl ones.
      __I18N_potArraySave( <cFile>, <aTrans> [, @<cErrorMsg>] ) -> <lSuccess>
         Generates .pot file from array with translations items.
      __I18N_potArrayJoin( <aTrans>, <aTrans2> ) -> <aTrans>
         Join two arrays with translation items. Items from <aTrans2>
         are added to <aTrans>. If given translation item already exists
         in <aTrans> (the same msgctxt and msgid) then source code references
         are merged and translations from <aTrans2> are added only if
         <aTrans> does not have it.
      __I18N_potArrayToHash( <aTrans>, [<lEmpty>] [, <hI18N>] ) -> <hI18N>
         Converts array with translation items to hash table in the format
         used internally by Harbour translation sets. It's the same format
         as used __I18N_hashTable() function. The conversion removes data
         which is not necessary for runtime translations like source code
         references or alternative source plural forms.
         If second parameter <hI18N> is given then translation items form
         <aTrans> are added to it. Otherwise new hash table with is created.
         If <lEmpty> is .T. then also items with empty translation are added
         but source strings are used instead of missing destination ones.

  * harbour/include/hbextern.ch
    + added new I18N functions

  * harbour/harbour-win-spec
  * harbour/harbour-wce-spec
  * harbour/harbour.spec
  * harbour/mpkg_tgz.sh
  * harbour/make_b32.mak
  * harbour/make_vc.mak
  * harbour/make_gcc.mak
  * harbour/common.mak
  * harbour/utils/Makefile
  + harbour/utils/hbi18n
  + harbour/utils/hbi18n/hbi18n.prg
  + harbour/utils/hbi18n/Makefile
    + added very simple application to manage .pot/.hbl files
      Syntax: hbi18n -m | -g [-o<outfile>] [-e] [-q] <files1[.pot] ...>
         -m             merge given .pot files
         -g             generate .hbl file from given .pot files
         -o<outfile>    output file name
                        default is first .pot file name with
                        .po_ (merge) or .hbl extension
         -e             do not strip empty translation rules from .hbl files
         -q             quiet mode

      TODO: extend it and add support for interactive mode which will
            allow to edit translations.
2009-01-21 16:49:03 +00:00
Przemyslaw Czerpak
079f7c9859 2009-01-21 10:02 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/ChangeLog
    * cleaned some typos

  * harbour/common.mak
  * harbour/source/rtl/Makefile
  + harbour/source/rtl/strtoexp.c
  * harbour/source/rtl/valtostr.c
    * moved my HB_STRTOEXP() function to separate file

  * harbour/common.mak
  * harbour/source/rtl/Makefile
  + harbour/source/rtl/strc.c
    + added two new functions to operate on C like strings:
      HB_STRDECODESCAPE( <cEscSeqStr> ) -> <cStr>
         Decode string with \ escape sequences.
      HB_STRCDECODE( <cStr> [, @<lCont> ] ) -> <cResult> | NIL
         Decode string using C compiler rules.
         If second parameter <lCont> is passed by reference then it allows
         to decode multiline strings. In such case <lCont> is set to .T.
         if string ends with unclosed "" quoting and next call to this
         function with lCont parameter continue string decoding.
         Function returns decoded string or NIL on syntax error.
      They will be helper functions for decoding .pot files.

  * harbour/source/rtl/hbi18n.c
  * harbour/source/rtl/hbstrsh.c
    % small optimizations
2009-01-21 08:59:24 +00:00
Przemyslaw Czerpak
85d9bb78b6 2009-01-19 12:57 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/hbproces.c
    ! include signal.h in all *nixes builds - it was my typo and not only
      Darwin needs it.
2009-01-19 11:54:04 +00:00
Przemyslaw Czerpak
7f2ee1ad0b 2009-01-18 22:12 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/hbgtcore.c
    ! fixed UNSELECTED color updating in SetColor(). It should be changed
      only and always when ENHANCED color is changed

  * harbour/contrib/hbmzip/hbmzip.c
    ! fixed GPF in hb_zipDeleteFile() when file has comment
2009-01-18 21:08:29 +00:00
Viktor Szakats
be621dfd81 2009-01-17 19:21 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* source/rtl/hbproces.c
    ! Added header for Darwin to cover kill() call.
2009-01-17 18:21:41 +00:00
Przemyslaw Czerpak
507ea35468 2009-01-17 03:39 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbgtcore.h
  * harbour/source/rtl/hbgtcore.c
    + added two new methods:
      TOUCHLINE() - marks line as modified
      REDRAWDIFF() - it contains REFRESH() from which is now called so
      it's possible to overload this method by upper level RDDs without
      touching REFRESH() method which can be overloaded by intermediate
      RDDs

  * harbour/contrib/hbct/ctwin.c
    % do not use EXPOSEAREA() and TOUCHCELL() methods but TOUCHLINE()
      only and overloaded REDRAWDIFF() - it should gives noticeable
      speed improvement in some where cost of screen update is very
      big and GT does not calculate minimal update area.

  * harbour/source/rdd/dbfnsx/dbfnsx1.c
    % minor speed improvement in key decoding
2009-01-17 02:35:29 +00:00
Viktor Szakats
1e62fb550e 2009-01-14 16:15 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/net.c
  * contrib/hbziparc/hbziparc.prg
  * contrib/hbct/files.c
    * Minor formatting.

  * source/rtl/gtxwc/gtxwc.c
    ! Fix to recent fix. An '!' was missing, Przemek pls check me.

  * source/rtl/philes.c
    + HB_PROGNAME() now returns absolute path in *NIX systems, too.
      (please test and refine)

  * source/lang/msgca.c
    ! Fixes from xhb.

  * contrib/hbziparc/hbziparc.prg
    * Minor correction ( = -> := )

  * source/rtl/gtwin/gtwin.c
    + Added HB_GTI_CODEPAGE support.
      As per MS docs, this works only when non-raster font is used
      in the console window. Notice that the accepted CP values are
      different from the GTWVT ones (GTWIN being the more "logical"
      one, since it's a newer API). Currently, Harbour doesn't try
      to hide these interface details.
    ; TODO: UNICODE and BOX char support for GTWIN mode.

  * source/rtl/tbrowse.prg
    * Using HB_DISPOUTATBOX() to draw column/header/footer separators.
    ; NOTE: This may cause problems if someone wants to use native
            CP (accented or other special CP specific) chars to draw
            these screen elements. Maybe an option should be added,
            or some sort of markings in the separator strings to
            control that.
            Pls REVIEW.

  * include/hbextern.ch
  * source/rtl/console.c
    + Added HB_DISPOUTATBOX() which is similar to HB_DISPOUTAT(),
      but marks the text drawn as HB_GT_ATTR_BOX, so these chars
      can be properly displayed as drawing chars, regardless of
      the selected codepage. Another difference is that this
      function only supports strings to be printed. Other types
      don't print anything.
    ; NOTE: Maybe this function could use a better name, pls
            review and decide.

  * source/rtl/gtwvt/gtwvt.c
  * source/rtl/gtwvt/gtwvt.h
    ! Fixed not accepting zero as a HB_GTI_CODEPAGE value.
    ! Fixed HB_GTI_CODEPAGE to change the codepage.
    + Added box char support in Unicode mode.
      For chars marked as HB_GT_ATTR_BOX, chars will be
      mapped to Unicode according to CP437.
    + Added box char support in non-Unicode mode.
      For chars marked as HB_GT_ATTR_BOX, OEM_CHARSET will
      always be used.
    ; NOTE: This way it's possible to use ISO/WIN codepages with
            GTWVT, while still being able to use various drawing
            chars (lines, blocks, arrows).
    ; NOTE: The available set of drawing chars depends on the
            OS OEM_CHARSET mapping _for non-Unicode Harbour_.
            For Unicode Harbour, full CP437 codepage is
            always available.
    ; NOTE: This solution doesn't go as far as (GTWXC) to
            graphically draw / emulate these chars.
    ; TODO: Add HB_GTI_BOXCP support to change hard-wired "EN" CP.

  * include/hbapigt.h
  * include/hbgtcore.h
    ! Moved HB_GT_ATTR_* macros to public headers, because they
      are needed for public API functions.

  * contrib/hbwin/win_reg.prg
    + w32_regRead(): Added second parameter to specify the default
      value returned in case the reg entry doesn't exist.
      If not specified, NIL will be returned, just like before.
    + GetRegistry(): Added 4th parameter with same purpose as above.

  * source/rtl/hbregex.c
    * Minor opt.

  * contrib/hbwin/win_misc.c
    * Added command line option parameter to WIN_RUNDETACHED().

  * include/hbapi.h
    + HB_ERRCODE (to replace ERRCODE)
    + HB_SUCCESS (to replace SUCCESS)
    + HB_FAILURE (to replace FAILURE)

  + contrib/hbwin/win_misc.c
  * contrib/hbwin/common.mak
  * contrib/hbwin/Makefile
    + WIN_SHELLEXECUTE()
      WIN_RUNDETACHED()
      WIN_LOADRESOURCE()
      Added some new Windows API wrappers.
    ; TODO: Add hb_osEncode() to them.

  * source/rtl/diskspac.c
  * source/rtl/disksphb.c
    ! Fixed DISKSPACE() and HB_DISKSPACE() for Darwin.
      Previously they had returned erroneous values.
    ; TOFIX: Probably HB_DISKSPACE() should be implemented for Watcom and CEGCC,
             just like DISKSPACE() is.

  * source/rtl/filesys.c
    ! hb_fsGetAttr() to set the returned attribute to zero
      in case of error.

  * include/hbextern.ch
  * source/rtl/philes.c
    + HB_FSETATTR( <cFileName>, @<nAttr> ) -> <lSuccess>
    + HB_FGETATTR( <cFileName>, <nAttr> ) -> <lSuccess>
    + HB_FSETDATETIME( <cFileName>, [<dDate>], [<cTime HH:MM:SS>] ) -> <lSuccess>

  * source/rtl/direct.c
    ! Fixed DIRECTORY() when called with "V" (label) parameter.
      Tested under Windows. Please test/correct for other platforms.
      On Windows, the dirspec should not contain a filemask in order
      to work.

  * contrib/hbtip/base64x.c
    % HB_BASE64(): Optimized, cleaned.
    ! HB_BASE64(): Removed second parameter allowing to pass the length of
      the string. This could cause GPF if passed incorrectly. Now length
      is simply determined using hb_parclen().
    ; TOFIX: Input string size limit checking.

  * include/hbdefs.h
    + HB_SIZEOFARRAY() macro, which does: ( sizeof( var ) / sizeof( *var ) )
      To be really precise, f.e. all hb_strncpy() calls should use
      'hb_strncpy( d, s, HB_SIZEOFARRAY( d ) );' instead of:
      'hb_strncpy( d, s, sizeof( d ) );' (given that 'd' is allocated at compile time).
      So that the code adapts to changing character sizes (like UTF-16/32).
      It's useful in some other places, too.

  * contrib/hbct/dattime2.c
    * 0 -> FALSE for BOOL types.

  * include/hbextern.ch
  * source/rtl/strmatch.c
    + HB_WILDMATCHI(). Case-instenstive, exact match. First
      two parameters and return value are the same as for
      HB_WILDMATCH().

  * include/hbextern.ch
  * source/rtl/cdpapi.c
    + HB_CDPSELECT() which does the same as HB_SETCODEPAGE(), but
      aligns well with function naming rules and namespace.
      HB_SETCODEPAGE() still works, but usage is not recommended.
    + Added HB_CDPUNIID( <cHarbourCP> ) -> <cCPName>
      This will return the std CP ID of a Harbour CP, or empty
      if the Harbour CP isn't linked.

  * include/hbapi.h
  * source/rtl/is.c
    ! Fixed compile error when HB_CDP_SUPPORT_OFF is defined.
    + Added following functions:
      hb_charIsDigit()
      hb_charIsAlpha()
      hb_charIsLower()
      hb_charIsUpper()

  * include/hbapi.h
    - hb_strUpperCopy() removed. Implementation was missing.

  * source/rtl/strcase.c
    * Minor formatting.

  * source/rtl/filesys.c
    ! hb_fsCurDirBuff() fixed potential buffer overrun by one byte.

  * source/rtl/hbrunfun.c
  * source/rtl/run.c
    ! Fixed missing header hbapiitm.h (after previous local change).

  * include/hbapi.h
  * include/hbset.h
  * include/hbapifs.h
  * include/set.ch
  * source/rtl/hbffind.c
  * source/rtl/gete.c
  * source/rtl/filesys.c
  * source/rtl/hbrunfun.c
  * source/rtl/run.c
  * source/rtl/philes.c
  * source/vm/set.c
  * source/vm/cmdarg.c
    + Added file system CP translation.
      Set( _SET_FNAMECP[, <cCPID> ] ) -> <cOldCPID>
      All operations passing filenames to/from the
      OS will convert them to/from the host CP from/to
      the FS CP specified using _SET_FNAMECP.
    * hb_fsNameConv() extended to deal with CP
      conversion, if requested by the app.
    + hb_fsNameConvFrom() (exported) added to deal
      with CP conversions for filenames received from OS.
    + hb_fsNameConvTo() (exported) added to deal
      with CP conversions for filenames/string sent to the OS.
    + Added hb_setGetFNAMECP() (exported) function.
    + Added hb_setGetFileCPTransTo(), hb_setGetFileCPTransFrom()
      (non-exported) functions.
    + hb_fsCurDirBuff() and hb_fsFindNextLow() extended
      to use hb_fsNameConvFrom().
    + Added hb_fsBaseDirBuff() to return the base
      directory on the C level (based on argv[0]).
    + Added HB_PROGNAME() to return the executable
      program name (based on argv[0]).
    + Added HB_DIRBASE() to return the executable
      base directory (based on argv[0]).
    * Renames done regarding OS/FS CP conversion:
      hb_fsNameConvFrom()        -> hb_osDecode()
      hb_fsNameConvTo()          -> hb_osEncode()
      hb_setGetFileCPTransTo()   -> -
      hb_setGetFileCPTransFrom() -> -
      hb_setGetFNAMECP()         -> hb_setGetOSCODEPAGE()
      _SET_FNAMECP               -> _SET_OSCODEPAGE
    * hb_osDecode()/hb_osEncode() extended to have a second
      parameter BOOL * fFree.
       Changed all calls to handle the case when fFree is set
      to TRUE by hb_osDecode()/hb_osEncode().
    + HB_GETENV(): Added 3rd logical parameter to control wether
      to convert the returned value from OS CP to Harbour CP.
      The default is TRUE to be in sync with GETE[NV]() and the
      rest of core.
    * hb_fsNameConv() is now doing OS CP conversion using std APIs,
      rather than duplicating such logic. I've traded some speed
      for modularity.
    * hb_osDecode/hb_osEncode() function declarations moved to hbapi.h
    * hb_osDecode/hb_osEncode() function definitions moved to set.c
    ; NOTE: None of these were extensively tested, and I tend
            to make mistakes when dealing with pointers.
            It compiles cleanly with BCC, and some basic tests
            worked, but bFree = TRUE codepaths are not yet
            working so this needs more review.

  * source/rtl/teditor.prg
  * source/rtl/tpersist.prg
  * utils/hbmake/hbmake.prg
    * MemoRead() -> hb_MemoRead()

  * contrib/hbct/files.c
    ; TOFIX: Many functions here are possibly not thread safe.
    ; TOFIX: Calling hb_fsFindClose() at app exit (and thus keeping
             the FF handles open for the whole app lifetime) doesn't
             play well with server side apps (as the app may run for
             months or even longer), and even worse, they
             will lock the passed directory so that they cannot be
             removed (maybe even renamed), until the app exists.
             At least on Windows.

  * source/rtl/dirdrive.c
    ! Fixed to use F_ERROR instead of -1.

  * include/hbextern.ch
    ! Added missing HB_GCSTEP().

  * source/vm/extrap.c
    + Added CPU dump code for Windows x64.
    + Enabled module listing for Windows 64-bit platforms.
    % Minor cleanup in Windows x86 CPU dump code.
    + Added TODO for Windows IA64 CPU dump.
    + Added TODO for Windows x64 stack walk, with pointers.
    + Added TOFIX regarding displaying module names in Windows x64 mode.

  * source/rtl/fstemp.c
    ! Minor formatting.

  * source/rtl/gete.c
  * source/rtl/run.c
  * source/rtl/hbrunfun.c
  * source/vm/cmdarg.c
    + Added CP conversion to:
      GETE[NV](), HB_GETENV(), __RUN(), HB_RUN(),
      HB_ARGSTRING(), HB_CMDLINE().

  ; TODO: dbCreateTemp( <cAlias>, <aStruct>, <cRDD>, <cDelimArg>, <nConnection> ) -> <lSuccess>
          Generates and opens a new dbf with a temporary filename
          in exclusive mode, deletes it automatically when closed.
          All indexes created for this table, should ideally have
          the temporary flag on, so those get deleted too, when closed.

  ; TOFIX: hb_regex*() functions will not honor Harbour CP setting,
           when case insensitivity is selected.

  ; TOFIX: hbct / SetFDaTi() to move any local logic into Harbour core
           functions and use a simple Harbour API call only.
           I'm not sure what is the reason with keeping the logic
           duplicated here; if this isn't by intent, this function
           could be much simplified.

  ; TOFIX: Avoid using C level toupper()/tolower()/islower()/isupper()

  ; TOFIX: hb_regexMatch()'s 3rd parameter has a double meaning.
           It controls case-sensitivity (in sync with the documentation),
           but it also controls if hb_regexMatch() behaves like
           hb_regexLike() (.T.), or hb_regexHas() (.F.). This means
           that hb_regexMatch(,, .T.) == hb_regexLike(,, .T.) (case-sensitive) and
                hb_regexMatch(,, .F.) == hb_regexHas(,, .F.) (case-insensitive)
           Maybe this was the intent of the original developers, but
           to me it looks a rather strange behaviour which was added by
           accidentally forgetting about the 3rd parameter already being
           utilized. This either needs to be fixed, or properly documented.

  ; NOTE: Noteworthy links:
          http://docs.python.org/3.0/whatsnew/3.0.html
            - Unicode/text section
            - Removed <> (use != instead)
          http://sphinx.pocoo.org/
            - Documentation format
          http://fredeaker.blogspot.com/2007/01/character-encoding-detection.html
            - Character encoding detection
2009-01-14 15:32:43 +00:00
Przemyslaw Czerpak
39ffeed5f9 2009-01-14 01:38 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/gtxwc/gtxwc.c
    ! added protection against inaccessible character cell value
      what could cause accessing uninitialized memory and GPF

  * harbour/include/hbrdddbf.h
    ! fixed HB_DIRTYREAD() macro not updated when RDDI_* settings were
      converted from global to thread local

  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/dbfntx/dbfntx1.c
  * harbour/source/rdd/dbfnsx/dbfnsx1.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
    % replaced <RDD>NODE_DATA() and <RDD>AREA_DATA() macros defined
      in each RDD by common for all DBF bases RDDs DBFNODE_DATA() and
      DBFAREA_DATA() macros defined in hbrdddbf.h to reduce possible
      mistakes in code updating in the future
2009-01-14 00:35:33 +00:00
Przemyslaw Czerpak
558525e5b5 2009-01-13 22:44 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
    ! restored GCC optimization flags in hb* scripts disabled unintentionally
      by some other modifications 

  * harbour/include/hbapifs.h
  * harbour/source/rtl/hbproces.c
    * renamed hb_fsOpenProcess() and hb_fsCloseProcess() to
      hb_fsProcessOpen(), hb_fsProcessClose()

  * harbour/include/hbextern.ch
  * harbour/source/rtl/hbprocfn.c
    * renamed hb_openProcess() and hb_closeProcess() to
      hb_processOpen(), hb_processClose()

  * harbour/contrib/xhb/hbcompat.ch
    * added xHarbour compatible translations
      hb_openProcess() <-> hb_processOpen()
      hb_closeProcess() <-> hb_processClose()
2009-01-13 21:41:13 +00:00
Przemyslaw Czerpak
3b6d1242e5 2009-01-13 14:07 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/common.mak
  * harbour/source/rtl/Makefile
  * harbour/include/hbapifs.h
  * harbour/include/hbextern.ch
  + harbour/source/rtl/hbproces.c
  + harbour/source/rtl/hbprocfn.c
    + added C functions hb_fsOpenProcess(), hb_fsProcessValue(),
      hb_fsCloseProcess()
    + added .prg functions HB_OPENPROCESS(), HB_PROCESSVALUE(),
      HB_CLOSEPROCESS()
    Based on xHarbour code by Giancarlo Niccolai.
    Warning: it's possible that they will be changed in the future.
    Please test current implementation. Now few notes about it.
    Each handle returned by HB_OPENPROCESS() have to be closed
    by HB_PROCESSVALUE(). Even if process is killed by HB_CLOSEPROCESS()
    its handle is still open and HB_PROCESSVALUE() has to be executed.
    Type of handle depends on OS. In *nixes it's process PID. In MS-Windows
    it's HANDLE. HB_PROCESSVALUE() attach process exit result in *nixes
    cleaning zombie processes and in Windows closing the HANDLE. If you
    do not call this function then you will have resource leak.
    HB_CLOSEPROCESS() only sends quite request to the process but does
    not execute any cleanup code.
    All communication handles returned in parameters by reference by
    HB_OPENPROCESS() function have to be closed using FCLOSE() function.
    If hStdOut and hStdErr are references to the same variables then
    executing process stdout and stderr is redirected to the only one
    pipe. When handles for stdout, stderr and stdin are not given then
    executed process inherits them from parent process unless <lDetach>
    parameter is not given. In such case they are redirected to null
    device (/dev/null or NUL).
    The OS2 version is not tested. Please make tests.
    There is no support for DOS which is single process OS.
    In WinCE builds std{out,err,in} redirecting and process detaching does
    not work too.
    The parameters parsing should be updated. Now MS-Windows version uses
    native OS command line parsing and quoting by "" can be used for
    parameters with blank characters. I do not know any escape character
    which can be used to pass (") as parameter to MS-Windows application.
    In all other OS-es standard bourne shell rules are used. Parameters can
    be quoted by "" or '' and escape character is \. Quoting by '' disables
    special meaning of escape character. In OS2 where \ is path separator
    escaping and '' quoting is disabled so it works like in MS-Windows
    but I do not know if parameters divided by calling process are fully
    respected by low level API calls in this system.
2009-01-13 13:04:01 +00:00