Commit Graph

252 Commits

Author SHA1 Message Date
Viktor Szakats
3d2fb06f5d 2010-08-04 22:02 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* config/hbextern.hbs
    ! Fixed filtering ANNOUNCE self-reference.
    ! Changed to do ANNOUNCE only if specifically requested
      using __HBEXTERN__<libname>__ANNOUNCE

  * include/harbour.hbx
    ! Added __HB_EXTERN__ to exclude list.

  * config/postinst.hbs
  - include/hbextudd.ch
  + include/harbour.hbx
  - include/hbextsca.ch
  + include/hbusrrdd.hbx
  * include/hbextcdp.ch
  + include/hbscalar.hbx
  * include/hbextlng.ch
  + include/hbcpage.hbx
  * include/Makefile
  * include/hbextern.ch
  + include/hblang.hbx
  * ChangeLog
  * contrib/hbct/ctextern.ch
  * contrib/hbct/hbct.hbp
  * contrib/hbct/hbct.hbx
  * contrib/xhb/xhb.hbp
  + contrib/xhb/xhb.hbx
  * contrib/xhb/xhbextrn.ch
  * contrib/hbqt/utils/hbqtgen.prg
  * contrib/hbqt/qtgui/hbqtgui.hbp
  + contrib/hbqt/qtgui/hbqtgui.hbx
  * contrib/hbqt/qtgui/g/filelist.hbm
  - contrib/hbqt/qtgui/g/hbqtgui_extern.ch
  + contrib/hbqt/qtgui/g/hbqtgui_extern.prg
  * contrib/hbqt/qtwebkit/hbqtwebkit.hbm
  * contrib/hbqt/qtwebkit/hbqtwebkit.hbp
  + contrib/hbqt/qtwebkit/hbqtwebkit.hbx
  * contrib/hbqt/qtwebkit/g/filelist.hbm
  + contrib/hbqt/qtwebkit/g/hbqtwebkit_extern.prg
  - contrib/hbqt/qtwebkit/g/hbqtwebkit_extern.ch
  * contrib/hbqt/qtcore/hbqtcore.hbp
  + contrib/hbqt/qtcore/hbqtcore.hbx
  * contrib/hbqt/qtcore/g/filelist.hbm
  - contrib/hbqt/qtcore/g/hbqtcore_extern.ch
  + contrib/hbqt/qtcore/g/hbqtcore_extern.prg
  * contrib/hbqt/qtnetwork/hbqtnetwork.hbm
  * contrib/hbqt/qtnetwork/hbqtnetwork.hbp
  + contrib/hbqt/qtnetwork/hbqtnetwork.hbx
  * contrib/hbqt/qtnetwork/g/filelist.hbm
  + contrib/hbqt/qtnetwork/g/hbqtnetwork_extern.prg
  - contrib/hbqt/qtnetwork/g/hbqtnetwork_extern.ch
  + contrib/hbqt/qscintilla/hbqscintillas.hbx
  * contrib/hbqt/qscintilla/hbqscintilla.hbp
  * contrib/hbqt/qscintilla/g/filelist.hbm
  + contrib/hbqt/qscintilla/g/hbqscintilla_extern.prg
  - contrib/hbqt/qscintilla/g/hbqscintilla_extern.ch
  * contrib/hbqt/qtdesigner/hbqtdesigner.hbm
  * contrib/hbqt/qtdesigner/hbqtdesigner.hbp
  + contrib/hbqt/qtdesigner/hbqtdesigner.hbx
  * contrib/hbqt/qtdesigner/g/filelist.hbm
  + contrib/hbqt/qtdesigner/g/hbqtdesigner_extern.prg
  - contrib/hbqt/qtdesigner/g/hbqtdesigner_extern.ch
  + contrib/hbxbp/hbxbpext.prg
  + contrib/hbxbp/hbxbp.hbx
  - contrib/hbxbp/hbxbp_extern.ch
  * contrib/hbxbp/hbxbp.hbp
  * contrib/hbxpp/hbxpp.hbp
  + contrib/hbxpp/hbxpp.hbx
  * contrib/hbxpp/hbxppext.ch
  * contrib/rddads/adsextrn.ch
  + contrib/rddads/rddads.hbx
  * contrib/rddads/rddads.hbp
  + contrib/hbgd/hbgd.hbx
  * contrib/hbgd/gdextern.ch
  * contrib/hbgd/hbgd.hbp
    * Generated core files are now named include/*.hbx
    + Added .hbx files for contribs which already had the "extern"
      feature.
    * Changed existing "extern" headers to reference .hbx files.
    + Added .hbx file to installed header list.
    * Changed hbqt generator to generate stubs with reference to
      .hbx files rather than rolling its own extern generator.
    + Changed hbxbp to use a puller stub to include all functions.

  * contrib/hbide/hbide.prg
    + Changed to use __HBEXTERN__ method instead of header method
      to pull complete libs.

  * contrib/hbqt/qtgui/g/THBQAbstractItemModel.prg
    ! Fixed props.
2010-08-04 20:04:53 +00:00
Viktor Szakats
1efe9cad7e 2010-08-03 20:15 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/make.hbs
  * config/postinst.hbs
  * config/hbextern.hbs
    + Implemented manual include/exclude filter in extern header
      generation process. Include filters can be specified
      using '// HB_FUNC_INCLUDE <func>', exclude filters using
      '// HB_FUNC_EXCLUDE <func>'. By default everything is
      included, this can be overridden using HB_FUNC_INCLUDE,
      and exceptions made using HB_FUNC_EXCLUDE. <func> can
      contain wildcards, so it's very flexible.
      NOTE: - By default the functions are declared using DYNAMIC 
              so these generated can be directly used when the goal 
              is to load pcode dynamic libs dynamically.
            - By #defining '__HBEXTERN__<libname>__REQUEST' the 
              generated headers will switch to EXTERNAL declaration, 
              so they can be used when building dynamic libs or when 
              user wants to explicitly pull all functions into lib 
              code. Do not use this from app code.
            - When __HBEXTERN__<libname>__REQUEST is defined, the 
              generated headers will also ANNOUNCE __HBEXTERN__<libname>, 
              which means that application can simply pull all functions 
              into app code, using:
                 'REQUEST __HBEXTERN__<libname>__' command.
            - Names are not necessarily finalized yet. ("extern", ".hbx")
    - Deleted hard-coded exceptions from generator code.
    ; TODO: Clean core generated headers to behave like before.
    ; TODO: Adapt hbextern lib to these changes.
    ; TODO: Add generated headers to SVN for contrib libs.
    ; TODO: Add stubs which include generated headers to all libs.
    ; TODO: Long term TODO: make it easy to generate such headers 
            for 3rd party projects.

  * include/hbextudd.ch
  * include/hbextsca.ch
  * include/hbextcdp.ch
  * include/hbextlng.ch
  * include/hbextern.ch
  * contrib/hbct/hbct.hbx
    + Filled HB_FUNC_INCLUDE, HB_FUNC_EXCLUDE exceptions to
      achieve the previous hard-coded results.
    * Regenerated.

  * contrib/hbqt/hbqt_hbmk2_plugin.hbs
  * config/postinst.hbs
  * config/hbextern.hbs
  * bin/hbmk2l2d.hbs
  * bin/hbxpatch.hbs
    + Added -km, -ko options.
2010-08-04 18:15:55 +00:00
Viktor Szakats
d612e8b3ce 2010-08-03 11:40 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextudd.ch
  * include/hbextsca.ch
  * include/hbextern.ch
  * config/postinst.hbs
    ! Fixed to exclude HB_GT_ symbols, put HBSYMBOL to hbextsca.ch,
      put USRRDD_* to hbextudd.ch.

    ; NOTE: May I ask to review the new headers compared to old
            one to see what else have to be filtered out or moved
            to different header?
2010-08-04 09:45:21 +00:00
Viktor Szakats
8de8345e77 2010-08-03 11:22 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbrun/hbrun.prg
    + Will now add the script's home directory to the header dir list.

  * contrib/make.hbs
  * config/postinst.hbs
  + config/hbextern.hbs
    + Moved extern header generation low level logic to separate script.
    + Added feedback about extern generation.
    + Moved core extern header generation logic to postinst.hbs.
    ! Minor fix to output when postinst is used in non-install phase.

  * contrib/global.mk
    + Displays HB_REBUILD_EXTERN setting.

  * Makefile
    * Changed to always execute config/postinst.hbs, not just in
      install phase.

  * include/hbextudd.ch
  * include/hbextsca.ch
  * include/hbextcdp.ch
  * include/hbextlng.ch
  * include/hbextern.ch
    + Replaced content with automatically generated one.

  * contrib/hbxbp/xbpgeneric.prg
  * contrib/hbide/idemisc.prg
  * contrib/hbide/idesaveload.prg
  * contrib/hbide/ideprojmanager.prg
  * contrib/hbide/ideshortcuts.prg
    * Deleted "just" functions and replaced them with HB_SYMBOL_UNUSED()
      macro, which has no runtime overhead.

  * contrib/hbide/hbide.hbp
  - contrib/hbide/iderequests.prg
    - Deleted requesting HBQT component via "just" function. Now it's
      done by EXTERNAL statements. BTW this function was not called,
      so it was ineffective.  Pls correct me if I missed the point
      of the old solution.
2010-08-04 09:24:15 +00:00
Viktor Szakats
8572f57500 2010-08-03 10:40 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/make.hbs
    + Generalized extern generation.
    + Added generation of core extern headers. (no launched yet)

  * config/global.mk
    + Exporting variables needed for automatic hbextern gerenation.
    % Deleted HB_DYN_COMPILE variable. (unused)

  * include/Makefile
  - include/hbexturs.ch
  + include/hbextudd.ch
  + include/hbextsca.ch
  * include/hbextern.ch
    + Added separate header for scalar classes.
      INCOMPATIBLE: Now they should be activated by '#include "hbextsca.ch"'
      instead of '#define HB_REQUEST_SCALAR / #include "hbextern.ch"'
    * Renamed hbexturs.ch to hbextudd.ch

  * contrib/hbqt/qtgui/hbqt_hbqsyntaxhighlighter.cpp
  * contrib/hbqt/qtgui/hbqt_hbqmainwindow.cpp
  * contrib/hbqt/qtgui/THbQtUI.prg
  * contrib/hbqt/qtcore/hbqt_hbslots.cpp
  * contrib/hbxbp/xbptabpage.prg
  * contrib/hbxbp/xbpwindow.prg
  * contrib/hbxbp/xbpdialog.prg
  * contrib/hbxbp/xbpgeneric.prg
  * contrib/hbide/ideedit.prg
  * contrib/hbide/idemisc.prg
  * contrib/hbide/ideobject.prg
  * contrib/hbide/idefunctions.prg
  * contrib/hbide/idedict.prg
  * contrib/hbide/idesaveload.prg
  * contrib/hbide/ideeditor.prg
  * contrib/hbide/ideprojmanager.prg
  * contrib/hbide/idesources.prg
  * contrib/hbide/hbide.prg
  * contrib/hbide/ideshortcuts.prg
  * contrib/hbide/idedocks.prg
    * HB_TR_ALWAYS -> HB_TR_DEBUG.
2010-08-04 08:42:08 +00:00
Viktor Szakats
83974c934d 2010-08-03 21:57 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
  * src/vm/Makefile
  * src/vm/vmmt/Makefile
  + src/vm/pvaluehb.c
    + Added PVALUE() to Harbour core.

  * contrib/xhb/hbcompat.ch
  * contrib/xhb/xhb.hbp
  - contrib/xhb/xhbpval.c
  * contrib/hbxpp/hbxpp.hbp
  - contrib/hbxpp/pvalue.c
  * contrib/hbfship/hbfship.hbp
  - contrib/hbfship/pvalue.c
    - Deleted PVALUE() definitions from contrib libs.
2010-08-03 20:01:18 +00:00
Viktor Szakats
94cfb1a339 2010-07-31 02:44 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/Makefile
  + include/hbexturs.ch
  * include/hbextern.ch
    + Moved User RDD declarations to separate file so that they
      can be included without the full set of Harbour functions.

  * include/Makefile
    ! Added missing hbcom.ch
2010-07-31 00:45:35 +00:00
Viktor Szakats
5445328e42 2010-07-30 21:16 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
  * src/rdd/usrrdd/usrrdd.c
    ! Fixed typo in function name: WRITEBHEADER() -> WRITEDBHEADER()
      Eagle-eye spotted by Marcos Gambeta.

  * contrib/make.hbs
    ! Fixed to include dependent .hbc files instead of referencing
      own .hbc file in HB_BUILD_CONTRIB_DYN mode. It was not good
      solution as it was referencing itself that way.
    + Will now request dynamic version of dependencies when building
      HB_BUILD_CONTRIB_DYN dynlibs. This is required otherwise f.e.
      hbxbp lib will contain a static copy of hbqt libs, which is not
      very good.
    ! Fixed to not attempt to build dynamic version of referenced 
      projects in HB_BUILD_CONTRIB_DYN mode.

  * contrib/hbct/hbct.hbc
  * contrib/hbqt/hbqt.hbc
  * contrib/rddsql/rddsql.hbc
  * contrib/hbtip/hbtipssl.hbc
  * contrib/hbtip/hbtip.hbc
  * contrib/hbwin/hbwin.hbc
  * contrib/hbssl/hbssl.hbc
    + Experimental move to support linking dynamic version of the
      dependencies when building dynamic lib in HB_BUILD_CONTRIB_DYN
      mode. This is starting to get insanely ugly (thanks Microsoft)
      so I'll with it some more and probably leave it.
    ; I hope I didn't miss any contribs which can also be a dependency
      (probably I did)

  * contrib/pkglist
  * contrib/hbtip/hbtip.hbp
    * hbtipssl made a separate project instead of being a sub-project
      of hbtip. hbtipssl has different dependencies, so this move
      was needed for libdyn support.

  * INSTALL
    * tdragon mingw marked as non-recommended. They due to
      incompatible with previous release tool naming, our make
      systems cannot currently support it. (it needs CCPOSTFIX
      for windres tool when using the dwarf-2 installation)
2010-07-30 19:18:08 +00:00
Viktor Szakats
4dac6f539c 2010-07-30 14:08 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
    + Added usrrdd functions.
2010-07-30 12:09:25 +00:00
Viktor Szakats
929b57a7e0 2010-07-29 00:36 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/Makefile
  * include/hbapifs.h
  * include/hbextern.ch
  + src/rtl/fslink.c
  + tests/flink.prg
    + Added new C level functions to create file links:

       HB_BOOL hb_fsLink( const char * pszExisting, const char * pszNewFile );
       HB_BOOL hb_fsLinkSym( const char * pszTarget, const char * pszNewFile );

    + Added new Harbour level functions to create file links:

       HB_FLINK( <cExistingFileName>, <cNewFileName> ) -> <nSuccess>
       HB_FLINKSYM( <cTargetFileName>, <cNewFileName> ) -> <nSuccess>

    ; They work on POSIX and Windows Vista/7 systems.

  * src/rtl/fserr.c
    + Mapped Windows error ERROR_PRIVILEGE_NOT_HELD to DOS error 5.
2010-07-28 22:38:23 +00:00
Viktor Szakats
bf4f1b0679 2010-07-14 22:13 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
  * src/rtl/hbdoc.prg
    + Added __HBDOC_LOADHBD( <cFileName> ) -> <hbdoc> | NIL
    + Added __HBDOC_SAVEHBD( <cFileName>, <hbdoc> ) -> <lSuccess>

  - doc/en/Makefile
  * doc/Makefile
  * package/mpkg_win.nsi
  * package/winuni/mpkg_win_uni_extra_copy.bat
  * package/winuni/mpkg_win_uni.nsi
    - Don't install doc sources.

  * config/postinst.hbs
    + Will now build .hbd files from doc sources at 'install' phase.
      .hbd files will be installed in HB_DOC_INSTALL path, which
      is /doc by default.
    ; NOTE: Apps like hbide can now use __HBDOC_LOADHBD() to load
            these .hbd files.
    ; NOTE: We may add other doc generators to hbrtl, plus we may
            further enhance .hbd format to be more easily usable
            for client apps (and f.e. to consume less disk space).
    ; TODO: Config HB_DOC_INSTALL also on *nix systems.

  * contrib/gtwvg/wvgwing.c
    ! Fixes after previous commit.
      Patch by Tamas Tevesz.

  * contrib/make.hbs
    * Minor.
2010-07-14 20:14:17 +00:00
Viktor Szakats
9e9e5129f8 2010-07-14 14:41 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
  * src/rtl/hbdoc.prg
    + Added __HBDOC_FROMSOURCE( <cStream> ) -> <aEntry>

  + tests/stripdoc.hbs
    + Strips NFDOC/HBDOC from .c/.prg sources.

  + tests/hbdocext.prg
    + Extracts NFDOC/HBDOC from source code.

  * contrib/hbct/bitnum.c
  * contrib/hbct/strdiff.c
  * contrib/hbct/token2.c
  * contrib/hbct/charlist.c
  * contrib/hbct/ctnet.c
  * contrib/hbct/charonly.c
  * contrib/hbct/atadjust.c
  * contrib/hbct/ctmath.c
  * contrib/hbct/ctset.c
  * contrib/hbct/ctwin.c
  + contrib/hbct/doc
  + contrib/hbct/doc/en
  + contrib/hbct/doc/en/strdiff.txt
  + contrib/hbct/doc/en/token1.txt
  + contrib/hbct/doc/en/token2.txt
  + contrib/hbct/doc/en/keyset.txt
  + contrib/hbct/doc/en/ct.txt
  + contrib/hbct/doc/en/charmirr.txt
  + contrib/hbct/doc/en/ctc.txt
  + contrib/hbct/doc/en/charlist.txt
  + contrib/hbct/doc/en/charlihb.txt
  + contrib/hbct/doc/en/relation.txt
  + contrib/hbct/doc/en/atadjust.txt
  + contrib/hbct/doc/en/charonly.txt
  + contrib/hbct/doc/en/ctmath.txt
  + contrib/hbct/doc/en/atnum.txt
  + contrib/hbct/doc/en/numconv.txt
  + contrib/hbct/doc/en/charsort.txt
  + contrib/hbct/doc/en/count.txt
  + contrib/hbct/doc/en/posdiff.txt
  + contrib/hbct/doc/en/ftoc.txt
  + contrib/hbct/doc/en/charmix.txt
  + contrib/hbct/doc/en/charevod.txt
  + contrib/hbct/doc/en/finan.txt
  + contrib/hbct/doc/en/range.txt
  + contrib/hbct/doc/en/wordrepl.txt
  + contrib/hbct/doc/en/charrepl.txt
  + contrib/hbct/doc/en/exponent.txt
  + contrib/hbct/doc/en/addascii.txt
  + contrib/hbct/doc/en/ctmath2.txt
  + contrib/hbct/doc/en/strswap.txt
  + contrib/hbct/doc/en/trig.txt
  + contrib/hbct/doc/en/tab.txt
  + contrib/hbct/doc/en/video.txt
  + contrib/hbct/doc/en/charswap.txt
  + contrib/hbct/doc/en/dattime2.txt
  + contrib/hbct/doc/en/dattime3.txt
  + contrib/hbct/doc/en/replace.txt
  + contrib/hbct/doc/en/charop.txt
  + contrib/hbct/doc/en/misc1.txt
  + contrib/hbct/doc/en/asciisum.txt
  + contrib/hbct/doc/en/color.txt
  + contrib/hbct/doc/en/charone.txt
  + contrib/hbct/doc/en/num1.txt
  + contrib/hbct/doc/en/pos1.txt
  + contrib/hbct/doc/en/pos2.txt
  + contrib/hbct/doc/en/numat.txt
  + contrib/hbct/doc/en/charophb.txt
  + contrib/hbct/doc/en/atrepl.txt
  + contrib/hbct/doc/en/ascpos.txt
  + contrib/hbct/doc/en/wordtoch.txt
  + contrib/hbct/doc/en/ctpad.txt
  + contrib/hbct/doc/en/datetime.txt
  + contrib/hbct/doc/en/print.txt
  + contrib/hbct/doc/en/justify.txt
  + contrib/hbct/doc/en/remove.txt
  + contrib/hbct/doc/en/ctstr.txt
  + contrib/hbct/doc/en/screen1.txt
    + Moved embedded docs to separate files.

  * contrib/hbct/charsort.c
  * contrib/hbct/ftoc.c
  * contrib/hbct/charmix.c
  * contrib/hbct/charevod.c
  * contrib/hbct/wordrepl.c
  * contrib/hbct/exponent.c
  * contrib/hbct/charrepl.c
  * contrib/hbct/files.c
  * contrib/hbct/strswap.c
  * contrib/hbct/trig.c
  * contrib/hbct/video.c
  * contrib/hbct/charswap.c
  * contrib/hbct/dattime3.c
  * contrib/hbct/charop.c
  * contrib/hbct/ct.prg
  * contrib/hbct/cursor.c
  * contrib/hbct/misc2.c
  * contrib/hbct/color.c
  * contrib/hbct/charone.c
  * contrib/hbct/num1.c
  * contrib/hbct/pos1.c
  * contrib/hbct/ctcom1.c
  * contrib/hbct/charophb.c
  * contrib/hbct/ascpos.c
  * contrib/hbct/numconv.prg
  * contrib/hbct/ctstr.c
  * contrib/hbct/screen1.c
  * contrib/hbct/token1.c
  * contrib/hbct/keyset.c
  * contrib/hbct/charmirr.c
  * contrib/hbct/ctc.c
  * contrib/hbct/ctwfunc.c
  * contrib/hbct/charlihb.c
  * contrib/hbct/relation.c
  * contrib/hbct/setlast.c
  * contrib/hbct/atnum.c
  * contrib/hbct/count.c
  * contrib/hbct/disk.c
  * contrib/hbct/posdiff.c
  * contrib/hbct/finan.c
  * contrib/hbct/range.c
  * contrib/hbct/addascii.c
  * contrib/hbct/ctmath2.c
  * contrib/hbct/tab.c
  * contrib/hbct/dattime2.c
  * contrib/hbct/replace.c
  * contrib/hbct/misc1.c
  * contrib/hbct/asciisum.c
  * contrib/hbct/pos2.c
  * contrib/hbct/numat.c
  * contrib/hbct/fcopy.prg
  * contrib/hbct/atrepl.c
  * contrib/hbct/ctcom2.c
  * contrib/hbct/wordtoch.c
  * contrib/hbct/ctpad.c
  * contrib/hbct/datetime.c
  * contrib/hbct/print.c
  * contrib/hbct/justify.c
  * contrib/hbct/remove.c
    - Stripped NFDOC/HBDOC from source code.

  + contrib/hbnf/doc
  + contrib/hbnf/doc/en
  + contrib/hbnf/doc/en/acctmnth.txt
  + contrib/hbnf/doc/en/savearr.txt
  + contrib/hbnf/doc/en/rand1.txt
  + contrib/hbnf/doc/en/madd.txt
  + contrib/hbnf/doc/en/dispmsg.txt
  + contrib/hbnf/doc/en/numlock.txt
  + contrib/hbnf/doc/en/mouse1.txt
  + contrib/hbnf/doc/en/settime.txt
  + contrib/hbnf/doc/en/restsets.txt
  + contrib/hbnf/doc/en/page.txt
  + contrib/hbnf/doc/en/prtscr.txt
  + contrib/hbnf/doc/en/color2n.txt
  + contrib/hbnf/doc/en/byt2bit.txt
  + contrib/hbnf/doc/en/month.txt
  + contrib/hbnf/doc/en/byt2hex.txt
  + contrib/hbnf/doc/en/findith.txt
  + contrib/hbnf/doc/en/at2.txt
  + contrib/hbnf/doc/en/acctweek.txt
  + contrib/hbnf/doc/en/gcd.txt
  + contrib/hbnf/doc/en/poke.txt
  + contrib/hbnf/doc/en/pegs.txt
  + contrib/hbnf/doc/en/min2dhm.txt
  + contrib/hbnf/doc/en/acctqtr.txt
  + contrib/hbnf/doc/en/dosver.txt
  + contrib/hbnf/doc/en/mkdir.txt
  + contrib/hbnf/doc/en/nooccur.txt
  + contrib/hbnf/doc/en/dayofyr.txt
  + contrib/hbnf/doc/en/metaph.txt
  + contrib/hbnf/doc/en/menu1.txt
  + contrib/hbnf/doc/en/byteand.txt
  + contrib/hbnf/doc/en/setlastk.txt
  + contrib/hbnf/doc/en/sqzn.txt
  + contrib/hbnf/doc/en/bytexor.txt
  + contrib/hbnf/doc/en/workdays.txt
  + contrib/hbnf/doc/en/byteor.txt
  + contrib/hbnf/doc/en/asum.txt
  + contrib/hbnf/doc/en/sleep.txt
  + contrib/hbnf/doc/en/wda.txt
  + contrib/hbnf/doc/en/aavg.txt
  + contrib/hbnf/doc/en/woy.txt
  + contrib/hbnf/doc/en/alt.txt
  + contrib/hbnf/doc/en/any2any.txt
  + contrib/hbnf/doc/en/adessort.txt
  + contrib/hbnf/doc/en/setdate.txt
  + contrib/hbnf/doc/en/netpv.txt
  + contrib/hbnf/doc/en/amedian.txt
  + contrib/hbnf/doc/en/blink.txt
  + contrib/hbnf/doc/en/ctrl.txt
  + contrib/hbnf/doc/en/vertmenu.txt
  + contrib/hbnf/doc/en/qtr.txt
  + contrib/hbnf/doc/en/linked.txt
  + contrib/hbnf/doc/en/aredit.txt
  + contrib/hbnf/doc/en/shift.txt
  + contrib/hbnf/doc/en/fttext.txt
  + contrib/hbnf/doc/en/xbox.txt
  + contrib/hbnf/doc/en/ftround.txt
  + contrib/hbnf/doc/en/hex2dec.txt
  + contrib/hbnf/doc/en/nwuid.txt
  + contrib/hbnf/doc/en/dectobin.txt
  + contrib/hbnf/doc/en/chdir.txt
  + contrib/hbnf/doc/en/bitset.txt
  + contrib/hbnf/doc/en/aemaxlen.txt
  + contrib/hbnf/doc/en/nwlstat.txt
  + contrib/hbnf/doc/en/invclr.txt
  + contrib/hbnf/doc/en/popadder.txt
  + contrib/hbnf/doc/en/lastday.txt
  + contrib/hbnf/doc/en/dispc.txt
  + contrib/hbnf/doc/en/ftattr.txt
  + contrib/hbnf/doc/en/tempfile.txt
  + contrib/hbnf/doc/en/diskfunc.txt
  + contrib/hbnf/doc/en/stod.txt
  + contrib/hbnf/doc/en/scregion.txt
  + contrib/hbnf/doc/en/mouse2.txt
  + contrib/hbnf/doc/en/d2e.txt
  + contrib/hbnf/doc/en/kspeed.txt
  + contrib/hbnf/doc/en/descendn.txt
  + contrib/hbnf/doc/en/pickday.txt
  + contrib/hbnf/doc/en/firstday.txt
  + contrib/hbnf/doc/en/daytobow.txt
  + contrib/hbnf/doc/en/getenvrn.txt
  + contrib/hbnf/doc/en/anomatch.txt
  + contrib/hbnf/doc/en/menutonf.txt
  + contrib/hbnf/doc/en/pvid.txt
  + contrib/hbnf/doc/en/proper.txt
  + contrib/hbnf/doc/en/isbiton.txt
  + contrib/hbnf/doc/en/isbit.txt
  + contrib/hbnf/doc/en/cntryset.txt
  + contrib/hbnf/doc/en/datecnfg.txt
  + contrib/hbnf/doc/en/caplock.txt
  + contrib/hbnf/doc/en/easter.txt
  + contrib/hbnf/doc/en/bytenot.txt
  + contrib/hbnf/doc/en/ftisprn.txt
  + contrib/hbnf/doc/en/setkeys.txt
  + contrib/hbnf/doc/en/ntow.txt
  + contrib/hbnf/doc/en/aeminlen.txt
  + contrib/hbnf/doc/en/floptst.txt
  + contrib/hbnf/doc/en/pchr.txt
  + contrib/hbnf/doc/en/savesets.txt
  + contrib/hbnf/doc/en/tbwhile.txt
  + contrib/hbnf/doc/en/year.txt
  + contrib/hbnf/doc/en/calendar.txt
  + contrib/hbnf/doc/en/e2d.txt
  + contrib/hbnf/doc/en/sysmem.txt
  + contrib/hbnf/doc/en/elapsed.txt
  + contrib/hbnf/doc/en/n2color.txt
  + contrib/hbnf/doc/en/bitclr.txt
  + contrib/hbnf/doc/en/eltime.txt
  + contrib/hbnf/doc/en/putkey.txt
  + contrib/hbnf/doc/en/aading.txt
  + contrib/hbnf/doc/en/dfile.txt
  + contrib/hbnf/doc/en/elapmil.txt
  + contrib/hbnf/doc/en/pending.txt
  + contrib/hbnf/doc/en/peek.txt
  + contrib/hbnf/doc/en/clrsel.txt
  + contrib/hbnf/doc/en/ontick.txt
  + contrib/hbnf/doc/en/acctyear.txt
  + contrib/hbnf/doc/en/byteneg.txt
  + contrib/hbnf/doc/en/isshare.txt
  + contrib/hbnf/doc/en/sinkey.txt
  + contrib/hbnf/doc/en/iamidle.txt
  + contrib/hbnf/doc/en/ftidle.txt
  + contrib/hbnf/doc/en/rmdir.txt
  + contrib/hbnf/doc/en/scancode.txt
  + contrib/hbnf/doc/en/vidmode.txt
  + contrib/hbnf/doc/en/origin.txt
  + contrib/hbnf/doc/en/nwsem.txt
  + contrib/hbnf/doc/en/acctadj.txt
  + contrib/hbnf/doc/en/week.txt
  + contrib/hbnf/doc/en/vidcur.txt
  + contrib/hbnf/doc/en/readme.txt
  + contrib/hbnf/doc/en/prtesc.txt
  + contrib/hbnf/doc/en/miltime.txt
    + Moved embedded docs to separate files.

  * contrib/hbnf/kspeed.c
  * contrib/hbnf/iamidle.c
  * contrib/hbnf/miltime.prg
  * contrib/hbnf/mouse1.prg
  * contrib/hbnf/setkeys.c
  * contrib/hbnf/origin.c
  * contrib/hbnf/chdir.c
  * contrib/hbnf/hex2dec.prg
  * contrib/hbnf/mouse2.prg
  * contrib/hbnf/ftisprn.c
  * contrib/hbnf/putkey.c
  * contrib/hbnf/floptst.prg
  * contrib/hbnf/mkdir.c
  * contrib/hbnf/rmdir.c
  * contrib/hbnf/setlastk.c
    ! Fixed NFDOC formatting.
    ; TODO: Strip docs.
2010-07-14 12:48:39 +00:00
Viktor Szakats
ec5c6619dc 2010-07-14 10:10 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapicdp.h
  * src/rtl/cdpapi.c
  * src/rtl/cdpapihb.c
  + tests/utf8at.prg
    + Added hb_cdpUTF8StringAt()
    ; Patch by Carlos Bacco. Many thanks!

  * include/hbextern.ch
  * include/hbapicdp.h
  * src/rtl/cdpapi.c
  * src/rtl/cdpapihb.c
    ; my modifications to above patch:
    - Using HB_BOOL instead of int for flag value.
    % HB_UTF8AT(), HB_UTF8RAT() optimized to use hb_param(),
      plus optimized out variables.
    ! HB_UTF8AT(), HB_UTF8RAT() fixed 'nEnd < nStart' case.
    ! Some formatting.
    + Added new functions to hbextern.ch.

  * tests/utf8at.prg
    * Changed to use UTF8 string as base.
    * Avoiding "OEM" and "ANSI" Microsoft misleading terms,
      using standard CP names instead.
    ! Using HB_TRANSLATE() to convert between CPs (instead
      of non-portable, Windows-only HB_OEMTOANSI()/HB_ANSITOOEM()
      functions).
    * Formatting.
    * Using '?' instead of QOUT(), plus added simpleio.ch to
      allow redirection of output.

  * contrib/make.hbs
    * Minor step to make dependency evaluation and automatic
      sorting of components for build.

  * utils/hbmk2/hbmk2.pt_BR.po
  * utils/hbmk2/hbmk2.hu_HU.po
  * utils/hbmk2/hbmk2.prg
    + Added -vcshead support for Monotone version control
      software.
    % Cleaned and optimized "in dir" C compiler run mode.
      (currently used by mingw)
    ! Fixed "in dir" C compiler run mode when using -jobs=
      option for multithreaded builds.
    % Little optimization to --hbinfo option.
2010-07-14 08:14:32 +00:00
Viktor Szakats
29cd12b694 2010-07-13 12:00 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/hbdoc.prg
  * include/hbextern.ch
    + Added __HBDOC_TOSOURCE( <aEntry> ) which is able to
      rebuild original HBDOC source from memory variable.
      ATM language information is lost in the process, this
      will have to be solved in the future.

  * utils/hbmk2/hbmk2.prg
    + Added experimental optimization to mingw build, where the
      compiler is called only once to compile all files. Since
      gcc doesn't have a switch for that, it's done in tricky
      way by changing directory and recalculating source dir
      relative from workdir. Now it's active by default, pls
      report any build errors, especially in multithreaded mode.

  * contrib/hbqt/generator/hbqtgen.prg
    * Cleanups

  * contrib/hbwin/win_shell.c
    ! Reverted previous patch 2010-07-13 08:55, it broke mingw builds.
2010-07-13 10:04:06 +00:00
Viktor Szakats
96e069c19e 2010-07-12 18:44 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
  * src/rtl/Makefile
  + src/rtl/hbdoc.prg
    + Added __HBDOC_LOADDIR() internal RTL function to read
      NFDOC formatted documentation source directories into
      memory. The result will be a list of hashes which contain
      the raw content of doc files. The function does format
      validation (but not content) and add all agreed-on metadata
      to the hashes.
      It's a start and I hope others can join to create new
      layers of function for below functionality:
         - doc content validation
         - pre-formatting
         - output generators
      The goal is to avoid local solutions and standardize
      the format.

  + tests/hbdoctst.prg
    + Added small test app which will find and parse all
      documentation inside the Harbour source tree and
      save them in .hbd (serialized doc hash) format.
      Such .hdb files can be generated by the build process
      in the future, so tools like HBIDE can use the content
      to display intellisense or built-in help.
    ; TODO: HBQT doc/html should be removed as it's 
            hbdoc tools' job to convert HBDOC source 
            format to html or whatever else format needed.

  * harbour.spec
  * debian/rules
  - doc/man
  + src/pp/hbpp.1
  + src/main/harbour.1
  + utils/hbmk2/hbmk2.1
  + utils/hbtest/hbtest.1
  + utils/hbrun/hbrun.1
    * Moved man doc files to their own component dirs.

  * doc/Makefile
  * doc/en/Makefile
  + doc/clipper.txt
  - doc/en/clipper.txt
    * Moved non-NFDOC formatted doc file to doc dir.

  * doc/en/Makefile
    ! Fixed missing 1stread.txt

  * doc/en/hb_apigt.txt
  * doc/en/hbinet.txt
  * doc/en/tbrowse.txt
  * doc/en/hb_apifs.txt
    ! Fixed NFDOC non-standard entries.

  * bin/hbxpatch.hbs
    ! Fixed detecting dirs. (could cause errors only in rare cases)

  * contrib/hbdoc2/tmplates.prg
    * Formatting.
2010-07-12 16:47:24 +00:00
Viktor Szakats
aed8cb147e 2010-07-06 13:02 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/console.c
  * src/rtl/philes.c
  * include/hbextern.ch
    + Added: HB_PS() function, which does the same as HB_OSPATHSEPARATOR().
    + Added: HB_EOL() function, which does the same as HB_OSNEWLINE().
    ; These are very often used functions with an exceptionally long and
      hard to type name, so most programs employed macros for it. Now this
      is unnecessary. Long names are deprecated.

  * contrib/Makefile
  - contrib/makefile.hbs
  + contrib/make.hbs
    * Renamed to be shorter.
    + Little steps for standlone running mode.
    + Using HB_EOL() and HB_PS().
    ; TODO: Change it all over Harbour SVN.
2010-07-06 11:03:51 +00:00
Przemyslaw Czerpak
8434f5ab14 2010-06-24 23:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbgtinfo.ch
  * harbour/include/hbgtcore.h
  * harbour/src/rtl/hbgtcore.c
    + added HB_GTI_INKEYFILTER which allows to set/get codeblock used to
      filter inkey key codes. This codeblock receives as 1-st parameter
      actually processed inside INKEY() function key code. It should return
      final inkey code (it can be the same or 0 if key should be ignored.
      I.e. this code change key 'a' to 'B' and blocks 'c':

         hb_gtInfo( HB_GTI_INKEYFILTER, { | nKey |
                                          SWITCH nKey
                                             CASE ASC( 'a' )
                                                RETURN ASC( 'B' )
                                             CASE ASC( 'c' )
                                                RETURN '0'
                                          ENDSWITCH
                                          RETURN nKey
                                       } )

    + added HB_GTI_INKEYREAD which allows to set/get codeblock executed
      just before INKEY() reads key code from the GT typeahead buffer.
      If it returns non 0 numeric value then this value is returned instead
      as inkey code. Otherwise standard inkey procedure is activated and
      key code is read from the GT typeahead buffer.

  * harbour/include/hbextern.ch
  * harbour/src/rtl/inkey.c
    - removed HB_INKEYSETPREBLOCK() and HB_INKEYSETPOSTBLOCK() functions

  * harbour/contrib/xhb/Makefile
  * harbour/contrib/xhb/xhbgt.c
  + harbour/contrib/xhb/xhbinkey.prg
  * harbour/contrib/xhb/hbcompat.ch
    * updated emulation of xHarbour hb_SetInkeyBeforeBlock() and
      hb_SetInkeyAfterBlock() functions to use new HB_GTI_* functionality.
      Incompatibility warning!
      In Harbour timeout value passed to inkey() is correctly respected
      and not reset internally on each call to inkey after block.
      If inkey before block returns non 0 numeric value then it's not
      ignored but returned as INKEY() function result without touching
      GT typeahead buffer.
2010-06-24 21:21:48 +00:00
Viktor Szakats
73db2d44f1 2010-06-24 18:31 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/inkey.c
  * include/hbextern.ch
    + Enabled .prg level control function for pre/post INKEY() block
      with names below:
         HB_INKEYSETPREBLOCK([<bBlock>]) -> <bOldBlock>
         HB_INKEYSETPOSTBLOCK([<bBlock>]) -> <bOldBlock>

  * contrib/xhb/xhbgt.c
  * contrib/xhb/hbcompat.ch
    + Added translations for just enabled HB_INKEYSET*() functions
      to/from xhb function equivalents:
         HB_INKEYSETPREBLOCK() <-> HB_SETINKEYBEFOREBLOCK()
         HB_INKEYSETPOSTBLOCK() <-> HB_SETINKEYAFTERBLOCK()
2010-06-24 16:32:34 +00:00
Przemyslaw Czerpak
46e9900a91 2010-06-23 12:47 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbextern.ch
  * harbour/src/vm/runner.c
    + added new PRG function
         HB_HRBSIGNATURE() -> <cSig>
      which returns HRB file signature
    + added internal function hb_hrbCheckSig() to keep HRB file
      signature checking in one place

  * harbour/include/hbextern.ch
  * harbour/src/vm/cmdarg.c
    + added new PRG function
         HB_ARGSHIFT( [<lProgName>] ) -> NIL
      which updates HB_ARG*() parameter list removing the 1-st one
      and replacing it by others. If <lProgName> is .T. then first
      non internal parameter is moved to hb_argv(0) (hb_progname())
      and all next are shifted.

  * harbour/utils/hbrun/hbrun.prg
    + when extension does not allow to recognize file type then check
      passed file signature. If it's HRB file then execute directly
      otherwise use it as PRG script.
      This modification allows to use any names (except the ones using
      known for HBRUN extensions like .hrb amd .dbf) as PRG script names.
    + Call HB_ARGSHIFT(.T.) to strip HBRUN executable file name from
      parameter list when PRG script or HRB file is executed
2010-06-23 10:47:41 +00:00
Mindaugas Kavaliauskas
f6ad555233 2010-06-09 18:37 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
+ harbour/src/rtl/hbcomhb.c
  * harnour/src/rtl/Makefile
  * harbour/include/hbextern.ch
    + added wrapper functions for Serial communication port API
      The list of exported functions is:
        HB_COMCLOSE( nPort )  --> lSuccess
        HB_COMDISCARDCHAR( nPort, nChar | cChar ) --> lSuccess
        HB_COMERRORCHAR( nPort, nChar | cChar ) --> lSuccess
        HB_COMFLOWCHARS( nPort, nXONchar | cXONchar, nXOFFchar | cXOFFchar ) --> lSuccess
        HB_COMFLOWCONTROL( nPort, @iValue, nFlow ) --> lSuccess
        HB_COMFLOWSET( nPort, nFlow ) --> lSuccess
        HB_COMFLUSH( nPort, [ nType = HB_COM_IOFLUSH ] ) --> lSuccess
        HB_COMGETDEVICE( nPort )  --> cDeviceName
        HB_COMGETERROR( nPort ) --> nError
        HB_COMGETOSERROR( nPort ) --> nError
        HB_COMINIT( nPort, nBaud, cParity, nSize, nStop ) --> lSuccess
        HB_COMINPUTCOUNT( nPort ) --> nCount
        HB_COMINPUTSTATE( nPort ) --> nState
        HB_COMLASTNUM() --> nLastPortNumber
        HB_COMLSR( nPort, @nValue ) --> lSuccess
        HB_COMMCR( nPort, @nValue, nClear, nSet ) --> lSuccess
        HB_COMMSR( nPort, @nValue ) --> lSuccess
        HB_COMOPEN( nPort ) --> lSuccess
        HB_COMOUTPUTCOUNT( nPort ) --> nCount
        HB_COMOUTPUTSTATE( nPort ) --> nState
        HB_COMSENDBREAK( nPort, [ nDuration = 50 ] ) --> lSuccess
        HB_COMSETDEVICE( nPort, cDeviceName ) --> lSuccess
        HB_COMRECV( nPort, @cBuffer, [ nLen = LEN( cBuffer ) ], [ nTimeout = 0 ] ) --> nBytesRecv
        HB_COMSEND( nPort, cBuffer, [ nLen = LEN( cBuffer ) ], [ nTimeout = 0 ] ) --> nBytesSent

  + harbour/include/hbcom.ch
  * harbour/include/hbapicom.h
    * moved HB_COM_* constants to .ch file

  + harbour/examples/commouse
  + harbour/examples/commouse/commouse.prg
    + sample application to decode and display COM port mouse data.
      Two types of mouse protocol is supported. You just need to 
      find COM port mouse! :) 

  * harbour/src/rtl/hbcom.c
    ! fixed timeouts on Windows platform (thanks Przemek!)
2010-06-09 15:37:23 +00:00
Viktor Szakats
c853e5052d 2010-06-08 21:21 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
    + Added new HB_SOCKET*() functions.

  * config/postinst.prg
    ! Fixed to exclude whole extra shared binary creation for 
      all platforms except win/wce/os2.

  + examples/udpds/udpds.hbp
    + Added hbmk2 make file.
2010-06-08 19:23:12 +00:00
Viktor Szakats
ce166b1c81 2010-06-08 13:17 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/hbregexc.c
    * Changed to not throw RTE, just gracefully return
      error value when invalid PCRE expression is used.
      It will continue to throw RTE only for user-controllable
      error situations, f.e. when wrong argument type is passed.
    ! Fixed to not contain English text hard-coded in RTE message.

  * src/rtl/hbregex.c
    * HB_ATX() changed to fill parameters passed by reference with
      error values (zeros) in case of error.
    * HB_REGEX(), HB_REGEXSPLIT(), HB_REGEXATX(), HB_REGEXALL()
      functions changed to consistently return arrays. If there
      is no match, the array will be empty. This gives a more
      natural (and Clipper/Harbour-like) interface (f.e. return
      value can be passed to FOR EACH loop without extra checks
      and extra local variable).
      Slight INCOMPATIBILITY for those who did 'r == NIL' check
      to verify non-match and something special in this case.
      For code simply evaluating the returned matches, the NIL
      check can be deleted, and for code which wants to be
      backward/forward compatible _and_ to specifically check
      for no match situation it's suggested to use 'EMPTY( r )'.
      Please check me.
    * HB_REGEXMATCH() marked as HB_LEGACY_LEVEL4. (this leaves
      quite some headstart to change it)

  * include/hbextern.ch
    - Deleted HB_REGEXMATCH().

  * utils/hbmk2/hbmk2.prg
    % Simplified regex usage after above changes.
    + Will now show an internal error in case the used
      regex is invalid in current Harbour context
      (f.e. when no PCRE engine was forced by user, or
      the one used doesn't support the expression used by
      hbmk2). I don't know how special current expression
      is (it doesn't seem very much so), but it can be
      streamlined to something more compatible if current
      is deemed not ideal.

  * src/compiler/hbusage.c
    * Changed to enclose e-mails between '()' instead of '<>'.

  * include/hbsetup.h
    ! Patch by Tamas Tevesz for SunPro compiler.

  * ChangeLog
    - Deleted my personal exception from ChangeLog license.
2010-06-08 11:19:04 +00:00
Viktor Szakats
2fa7ba29cf 2010-06-03 16:43 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* package/winuni/mpkg_win_uni.nsi
    * 2.0 -> 2.1

  * src/hbextern/hbextern.prg
  * src/pp/pplib.c
  * src/pp/ppcore.c
  * src/pp/pplib2.c
  * src/pp/hbpp.c
  * src/pp/pplib3.c
  * src/main/harbour.c
  * src/debug/dbgtwin.prg
  * src/debug/dbghelp.prg
  * src/debug/dbgtmenu.prg
  * src/debug/dbgtmitm.prg
  * src/debug/dbgtobj.prg
  * src/debug/dbgbrwsr.prg
  * src/debug/dbgmenu.prg
  * src/debug/dbgthsh.prg
  * src/debug/tbrwtext.prg
  * src/debug/dbgwa.prg
  * src/debug/debugger.prg
  * src/debug/dbgtarr.prg
  * src/debug/dbgtinp.prg
  * src/common/hbgete.c
  * src/common/hbffind.c
  * src/common/hbver.c
  * src/common/hbwin.c
  * src/common/hbtrace.c
  * src/common/funcid.c
  * src/common/hbfsapi.c
  * src/common/hbprintf.c
  * src/common/hbverdsp.c
  * src/common/hbwince.c
  * src/common/hbfopen.c
  * src/common/expropt1.c
  * src/common/hbstr.c
  * src/common/expropt2.c
  * src/common/hbdate.c
  * src/common/hbmem.c
  * src/common/strwild.c
  * src/common/hbhash.c
  * src/nortl/nortl.c
  * src/macro/macro.yyc
  * src/macro/macro.y
  * src/macro/macrolex.c
  * src/compiler/compi18n.c
  * src/compiler/hbmain.c
  * src/compiler/ppcomp.c
  * src/compiler/hbfix.c
  * src/compiler/cmdcheck.c
  * src/compiler/hbdbginf.c
  * src/compiler/hbpcode.c
  * src/compiler/genhrb.c
  * src/compiler/complex.c
  * src/compiler/hbdead.c
  * src/compiler/hbcomp.c
  * src/compiler/genobj32.c
  * src/compiler/genc.c
  * src/compiler/hbopt.c
  * src/compiler/hbident.c
  * src/compiler/hbusage.c
  * src/compiler/gencc.c
  * src/compiler/hbcmplib.c
  * src/compiler/hblbl.c
  * src/compiler/harbour.yyc
  * src/compiler/hbstripl.c
  * src/compiler/harbour.y
  * src/compiler/hbfunchk.c
  * src/compiler/hbgenerr.c
  * include/hbpp.h
  * include/set.ch
  * include/achoice.ch
  * include/hbrdddbf.h
  * include/hbstdgen.ch
  * include/hbvmpub.h
  * include/hbgtinfo.ch
  * include/vm.api
  * include/hbpcode.h
  * include/hbset.h
  * include/hbver.h
  * include/hbtrace.h
  * include/extend.api
  * include/hbapicdp.h
  * include/hbrddnsx.h
  * include/button.ch
  * include/hbstack.h
  * include/item.api
  * include/inkey.ch
  * include/hbapilng.h
  * include/hbhrb.ch
  * include/tbrowse.ch
  * include/common.ch
  * include/rdd.api
  * include/gt.api
  * include/hbgtcore.h
  * include/dbinfo.ch
  * include/hbundoc.api
  * include/hbapifs.h
  * include/hbtask.h
  * include/hbsetup.ch
  * include/hbwince.h
  * include/hbvmopt.h
  * include/hb_io.h
  * include/hbthread.h
  * include/hbxvm.h
  * include/setcurs.ch
  * include/hbdefs.h
  * include/hbmsgreg.h
  * include/dbedit.ch
  * include/hblang.ch
  * include/filesys.api
  * include/hbdebug.ch
  * include/hbextcdp.ch
  * include/hbsetup.h
  * include/hbmacro.h
  * include/hbzlib.ch
  * include/hbinit.h
  * include/hbtypes.h
  * include/hbmacro.ch
  * include/hbusrrdd.ch
  * include/hbrddsdf.h
  * include/hbgtreg.h
  * include/hbwinuni.h
  * include/hbapi.h
  * include/simpleio.ch
  * include/hbmemory.ch
  * include/hbpers.ch
  * include/error.ch
  * include/hb.ch
  * include/hbapiitm.h
  * include/hbmath.h
  * include/hbmath.ch
  * include/memoedit.ch
  * include/hbvmint.h
  * include/hbver.ch
  * include/fileio.ch
  * include/rddsys.ch
  * include/hbrddntx.h
  * include/hbapicom.h
  * include/hbatomic.h
  * include/extend.h
  * include/hbznet.h
  * include/hbvm.h
  * include/std.ch
  * include/hbapidbg.h
  * include/hbmemvar.ch
  * include/hbcomp.h
  * include/hbapirdd.h
  * include/hbextlng.ch
  * include/color.ch
  * include/hbcompdf.h
  * include/hbclass.ch
  * include/hbsxdef.ch
  * include/hbmather.h
  * include/dbstruct.ch
  * include/hbsocket.ch
  * include/hbdyn.ch
  * include/hbrdddel.h
  * include/hbtrace.ch
  * include/error.api
  * include/hbapistr.h
  * include/hbwmain.c
  * include/hbexpra.c
  * include/hbexprop.h
  * include/hbiniseg.h
  * include/hbgfx.ch
  * include/hbsocket.h
  * include/hbchksum.h
  * include/hbdbf.h
  * include/hbbfish.h
  * include/hbdbsort.h
  * include/hbcdpreg.h
  * include/hbapigt.h
  * include/hbfloat.h
  * include/hbgfxdef.ch
  * include/hbsix.ch
  * include/hbextern.ch
  * include/hbapicls.h
  * include/hberrors.h
  * include/directry.ch
  * include/clipdefs.h
  * include/hboo.ch
  * include/box.ch
  * include/hbinkey.ch
  * include/hbapierr.h
  * include/hbhash.h
  * include/assert.ch
  * include/hbassert.h
  * include/getexit.ch
  * include/reserved.ch
  * include/hbregex.h
  * include/fm.api
  * include/hbthread.ch
  * include/hbexprb.c
  * include/ord.ch
  * include/hbdate.h
    * Deleted 'www.' from harbour-project.org website name.
      (www.harbour-project.org -> harbour-project.org)
2010-06-03 14:48:23 +00:00
Viktor Szakats
513edc3356 2010-05-25 19:08 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    + Extended plugin API:
      - New macro expansion function:
          hbmk2_Macro( ctx, <str> )
      - New host variables:
          cTARGETTYPE, cTARGETNAME, lDEBUG, lMAP, lSTRIP, lINFO,
          lBEEP, lRUN, nErrorLevel

  * include/hbextern.ch
    + Added two recently added functions.

  * package/winuni/RELNOTES
    * Update one version number.
2010-05-25 17:09:12 +00:00
Viktor Szakats
e4196785d1 2010-05-17 20:47 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
  * src/rtl/Makefile
  + src/rtl/memvarhb.prg
    + Added:
        HB_MVSAVE( <cFileName>, [<cMask>], [<lIncludeMask>] )
        HB_MVRESTORE( <cFileName>, [<lAdditive>], [<cMask>], [<lIncludeMask>] )

      They serve the same purpose with same interface
      and similar behavior to __MVSAVE()/__MVRESTORE()
      (and __MSAVE()/__MRESTORE(), and 'SAVE TO' command),
      only that they support longer than 10 char variable names.
      It is not possible to add such support in Clipper-style
      .mem files, so these functions will create an incompatible
      file format with default '.hbv' extension.

    ; TOFIX: __MVRESTORE() restores variables as PRIVATEs
             while HB_MVRESTORE() as PUBLIC.
    ; NOTE: GETLIST exclusion is solved with simple trick,
            as I couldn't find how it's solved in __MVSAVE().
    ; Consider this experimental solution to the problem.

  * contrib/hbmysql/tmysql.prg
    % STOD( "" ) -> STOD()

  * contrib/hbide/ideprojmanager.prg
    ! -hbexec -> -hbexe

  * src/rtl/typefile.prg
    ! __TYPEFILE(): Fixed both RTEs to be Clipper compatible.
2010-05-17 18:49:23 +00:00
Viktor Szakats
4d1a8cc1a3 2010-04-28 19:05 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/Makefile
  * src/rtl/getsys.prg
  + src/rtl/getsyshb.prg
    ! Moved HB_GETREADVAR() to separate source file.
    ! HB_GETREADVAR() fixed to use HB_ASCIIUPPER() like
      TGETLIST():GETREADVAR() instead of UPPER().

  * src/rtl/tgetlist.prg
    % TGETLIST():GETREADVAR() now can use HB_GETREADVAR()
      instead of duplicating the code locally.

  * INSTALL
    + Added sort of "disclaimer" note to HB_BUILD_IMPLIB option.

  * include/hbextern.ch
    + Added missing TBREADER().
2010-04-28 17:06:52 +00:00
Viktor Szakats
feb9517ee2 2010-03-08 00:09 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapi.h
  * src/common/hbver.c
    + Added hb_iswin2k() low-level function to detect
      if running under Windows 2000 or newer.

  * include/hbextern.ch
  * src/rtl/version.c
    + Added HB_OSISWIN2K() .prg level function.

  * src/rtl/gtwin/gtwin.c
  * src/rtl/gtwvt/gtwvt.c
  * contrib/gtwvg/gtwvg.c
  * contrib/gtwvg/wvggui.c
  * examples/gtwvw/gtwvw.c
  * contrib/hbwin/win_prn2.c
  * contrib/hbwin/win_prn3.c
    % Changed to use hb_iswin*() API instead of implementing
      version detection locally.

  * contrib/hbmysql/mysql.c
  * contrib/hbpgsql/postgres.c
    + Added my partial copyright.

  * contrib/hbpgsql/tests/tstpgrdd.prg
    * Formatting.

  * contrib/hbpgsql/postgres.c
    ! Fixed to define all .prg level functions regardless
      of pgsql lib it's built against. They return
      permanent failure in this case.
    ! Fixed PQCREATETRACE() to return NULL pointer instead
      of NIL for static builds.
    ! PQFREECANCEL() marked with HB_LEGACY_LEVEL3.

  * contrib/hbwin/win_os.prg
    + Using HB_OSISWIN2K() core API.

  * contrib/hbide/ideprojmanager.prg
    * Minor alignment.
2010-03-07 23:11:09 +00:00
Viktor Szakats
23f4d52dda 2010-03-05 13:48 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/common/hbver.c
  * include/hbapi.h
    + Added hb_iswinvista() to detect Vista and newer Windows versions.

  * src/rtl/version.c
  * include/hbextern.ch
    + Added HB_OSISWINVISTA() .prg level function with above meaning.

  * contrib/hbwin/win_os.prg
    % Changed to use HB_OSISWINVISTA() instead of hbwin specific
      WIN_OSISVISTAORUPPER().
2010-03-05 12:48:53 +00:00
Przemyslaw Czerpak
91f9a3f12c 2010-03-03 02:38 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/doc/en/hvm.txt
    - removed __DBGVMVARLGET() description

  * harbour/src/debug/dbgbrwsr.prg
    % small speed improvement

  * harbour/include/hbextern.ch
  * harbour/src/vm/debug.c
    + added internal debug function: __DBGVMLOCALLIST( <nLevel> ) -> <aVars>
2010-03-03 01:39:10 +00:00
Viktor Szakats
08377bbdd8 2010-02-25 11:08 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
    ! Added __QUITCANCEL.

  * contrib/hbxpp/Makefile
  + contrib/hbxpp/pvaluex.c
  * contrib/hbfship/Makefile
  + contrib/hbfship/pvalue.c
    + Added function PVALUE() to both Xbase++ and FlagShip lib.

  * contrib/hbxpp/Makefile
  * contrib/hbxpp/hbxpp.ch
  * contrib/hbxpp/idlex.c
  - contrib/hbxpp/sleepx.prg
    * Renamed already existing XPP_SLEEP() to SLEEP().
    - Deleted translation from SLEEP() to XPP_SLEEP() hbxpp.ch.
    - Deleted recently added .prg implementation of SLEEP().

  * contrib/hbqt/qtgui/QWidget.cpp
  * contrib/hbqt/qtcore/TQChar.prg
    * Regenerated.
2010-02-25 10:11:07 +00:00
Viktor Szakats
c9de4f1d3a 2010-02-21 15:03 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
    + Added __CLSMSGTYPE function.

  * config/os2/gcc.mk
    * Changed to use 'ld' tools directly when creating
      Harbour dynamic libraries.
    ; Please test, it's possible that some option have to be 
      deleted, changed, or some system/compiler libs added 
      manually to make it work.
2010-02-21 14:03:38 +00:00
Przemyslaw Czerpak
87cff88914 2010-02-20 18:05 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/vm/task.c
    ! fixed casting for C++ builds

  * harbour/src/lang/msges.c
    ! added hack for Solaris builds where ES is macro
      TODDO: sync names of lang and corresponding code modules.

  * harbour/src/vm/dynlibhb.c
    * pacified warning

  * harbour/contrib/xpp/xppextrn.ch
  * harbour/contrib/xpp/dbcmdx.c
  * harbour/include/hbextern.ch
  * harbour/src/rdd/dbcmd53.c
    ! moved ordWildSeek() from XPP to HBRDD library.
      I have no idea if XPP has such function or if it's or not
      compatible with ORDWILDSEEK() functions I created for [x]Harbour
    * disable ordCount() and ordWildSeek() functions when HB_CLP_STRICT
      macro is set

  * harbour/include/hbsocket.ch
    + added macro values interface info flags: HB_SOCKET_IFF_*
    + added macro values for interface info array indexes: HB_SOCKET_IFINFO_*

  * harbour/include/hbsocket.h
  * harbour/src/rtl/hbsocket.c
    + added new C function:
         PHB_ITEM hb_socketGetIFaces( int af, HB_BOOL fNoAliases );
      it returns array with existing interfaces description.
      This code was added for non MS-Windows based platforms only.
      Support for MS-Windows has to be added yet.
      Some platforms may not fill all fields in the returned array.
      When some fields are not supported by platform or interface then
      they can contain NIL value.
      On some platforms this code can effectively work only with IP4
      interfaces and IP6 ones will need different implementation.
      TODO: add support for alternative long interface introduced in some
            new systems using 'struct lifreq' with SIOCGLIF* ioctls instead
            of 'struct ifreq' and SIOCGIF*
      TODO: add support for extracting hardware addreses (i.e. ethernet
            macaddresses) for systems which do not support SIOCGIFHWADDR.

      Please test this code with OS2 using OpenWatcom and GCC (old and
      new socket API). I enabled HB_HAS_SOCKADDR_SA_LEN in OS2 builds.
      OpenWatocm OS2 header files have such fields but I do know if it's
      also present in GCC socket API.

  * harbour/include/hbextern.ch
  * harbour/src/rtl/hbinet.c
    + added new PRG function:
         hb_inetIfInfo( [<lNoAliases>] [, <nAddrFamily>] ) -> <aInfo>
      <lNoAliases> is .F. by default so aliases are included
      <nAddrFamily> is HB_SOCKET_AF_INET by default
      <aInfo> is an array in which each entry is also array with the
      following fields:
         HB_SOCKET_IFINFO_FAMILY    1     // adress family
         HB_SOCKET_IFINFO_NAME      2     // interface name
         HB_SOCKET_IFINFO_FLAGS     3     // flags HB_SOCKET_IFF_*
         HB_SOCKET_IFINFO_ADDR      4     // interface address
         HB_SOCKET_IFINFO_NETMASK   5     // subnetmask
         HB_SOCKET_IFINFO_BROADCAST 6     // broadcast address
         HB_SOCKET_IFINFO_P2PADDR   7     // point-to-point address
         HB_SOCKET_IFINFO_HWADDR    8     // hardware address

      Please use this code on different non MS-Windows platforms:

            proc main( noAlias )
               local iface
               ? os(), version()
               ? "interfaces:"
               for each iface in hb_inetIfInfo( !empty( noAlias ), 0 )
                  ? hb_valToExp( iface )
               next
               ?
            return

      and check if it returns correct information about available
      interfaces.
2010-02-20 17:07:00 +00:00
Viktor Szakats
a352ff57ce 2010-02-20 15:55 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/philes.c
  * include/hbextern.ch
    + Added HB_CURDRIVE(). Similar to Xbase++ CURDRIVE(), but
      always provided by Harbour core.

  * utils/hbmk2/hbmk2.prg
    - Deleted mapping from hb_CurDrive() to CurDrive().

  * examples/httpsrv/uhttpd.prg
  * examples/httpsrv/modules/tableservletdb.prg
  * examples/gtwvw/tests/wvwtest9.prg
    * Changed to use hb_CurDrive() which is always available in
      Harbour core, instead of Xbase++ specific CurDrive().
2010-02-20 14:56:27 +00:00
Viktor Szakats
fe38540ca2 2010-02-20 12:55 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbsetup.ch
  * src/common/hbverdsp.c
    - Deleted HB_COMPAT_FLAGSHIP, HB_COMPAT_FOXPRO.

  * include/hbextern.ch
  * src/rtl/seconds.c
    + Added HB_SECONDSCPU()
      (native Harbour version of FlagShip specific SECONDSCPU())

  * tests/memtst.prg
  * tests/speedold.prg
  * tests/speedtst.prg
  * tests/vidtest.prg
    * Changed to use HB_SECONDSCPU().
    + Added translation from SECONDSCPU() to HB_SECONDSCPU() when
      built for FlagShip (where applicable).

  * include/hbextern.ch
  * src/rtl/Makefile
  - src/rtl/strpeek.c
  - src/rtl/secondfs.c
  * contrib/Makefile
  + contrib/hbfship
  + contrib/hbfship/Makefile
  + contrib/hbfship/hbfship.hbc
  + contrib/hbfship/secondfs.c
  + contrib/hbfship/strpeek.c
    - Moved FlagShip specific function from core to new hbfship lib.
    * Changed SECONDSCPU() to be just a wrapper over core HB_SECONDSCPU().
    ; INCOMPATIBLE: If you used SECONDSCPU() function, change it to
                    HB_SECONDSCPU(), or add hbfship to your lib list.
                    If you used STRPEEK() or STRPOKE() functions,
                    add hbfship to your lib list.

  * utils/hbmk2/examples/contribf.hbc
    + Added hbfship.
2010-02-20 11:57:17 +00:00
Viktor Szakats
f70ea27f20 2010-02-20 11:50 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
  * src/rtl/browdb.prg
  * src/rdd/dbcmd.c
  * contrib/xpp/dbcmdx.c
  * contrib/xpp/browdbx.prg
    + Cleaned the way TBrowseDB() "skipper" function is defined.
      This means that from now on by default the faster, .c
      implementation will be used (now called __DBSKIPPER()).
      The same will be used by xpp lib (via compatibility stub
      called DBSKIPPER()). The .prg implementation (now moved
      in core) will be used when HB_CLP_STRICT is enabled.

  * include/hbextern.ch
    + Added missing HB_DYNCALL().

  * contrib/xpp/xpp.ch
    * Do not #define HB_COMPAT_XPP.
2010-02-20 10:51:51 +00:00
Viktor Szakats
73aa1fd7d5 2010-02-20 04:29 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
- src/rtl/browdbx.prg
  - src/rtl/mousex.c
  * src/rtl/tbcolumn.prg
  - src/rtl/philesx.c
  * src/rtl/Makefile
  - src/rtl/thfuncx.prg
  - src/rtl/oemansix.c
  - src/rtl/tthreadx.prg
  - src/rtl/tgetx.prg
  - src/rtl/idlex.c
  * src/rtl/browdb.prg
  - src/rtl/typefilx.prg
  - src/rtl/binnumx.c
  * src/rtl/tbrowse.prg
  - src/rdd/dbjoinx.prg
  - src/rdd/dblistx.prg
  - src/rdd/dbtotalx.prg
  - src/rdd/dbstruxx.prg
  - src/rdd/dbsortx.prg
  * src/rdd/Makefile
  - src/rdd/dbcmdx.c
  - src/rdd/dbdetacx.c
  - src/rdd/dbupdatx.prg
  - src/rdd/dbfuncsx.prg
  * include/hbextern.ch
  * contrib/xpp/xppextrn.ch
  * contrib/xpp/binnumx.c
  * contrib/xpp/tthreadx.prg
    * Synced contrib/xpp compatibility lib source with core.
    - Deleted Xbase++ compatibility functions from core.
    ; NOTE: INCOMPATIBLE. If you use Xbase++ function, you should now link 
            xpp lib. (the name of the lib is not yet finalized)
    ; TODO: Clean remaining four HB_COMPAT_XPP guards and delete this 
            build-time option from core.
2010-02-20 03:31:25 +00:00
Przemyslaw Czerpak
b0f4f1f4a1 2010-02-15 10:05 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbvm.h
  * harbour/src/vm/hvm.c
    + added new C function hb_vmFindFuncSym() which looks for function with
      given name registered in HVM by dynamically loaded library. It looks
      for public function and if public function cannot be located it tries
      to find first static function which has requested name.

  * harbour/include/hbapi.h
  * harbour/src/vm/dynlibhb.c
    + added new C functions to manage dynamic libraries:
         PHB_ITEM hb_libLoad( PHB_ITEM pLibName, PHB_ITEM pArgs );
         HB_BOOL hb_libFree( PHB_ITEM pDynLib );
         void * hb_libHandle( PHB_ITEM pDynLib );
         void * hb_libSymAddr( PHB_ITEM pDynLib, const char * pszSymbol );

  * harbour/include/hbextern.ch
  * harbour/src/vm/dynlibhb.c
    - removed HB_LIBDO() PRG function. If someone used it then please
      use DO() instead
    + added new PRG function:
         HB_LIBGETFUNSYM( <pLibHandle>, <cFuncName> ) -> <sFuncSym> | NIL
      It works in similar way to HB_HRBGETFUNSYM() but it looks for
      PRG function in given library. It tries to find public function
      and if such function does not exists it looks for first static one.
      <pLibHandle> is library handle returned by HB_LIBLOAD()
      <cFuncName> is PRG function name.
      <sFuncSym> is symbol of located function
      If function can be found HB_LIBGETFUNSYM() returns NIL.
      Warning: this function returns only symbols for functions registered
               in HVM when library was loaded. It will not return symbols
               for functions written in C and not explicitly registered
               using own symbol table.
2010-02-15 09:05:58 +00:00
Viktor Szakats
e5abaa5fb4 2010-02-09 02:12 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/runner.c
  * src/vm/garbage.c
  * src/vm/classes.c
  * src/rtl/cdpapi.c
  * src/rtl/cdpapihb.c
  * src/rdd/dbcmd.c
  * include/hbapicdp.h
  * include/hbapiitm.h
  * include/hbextern.ch
  * include/hbdefs.h
  * include/hbsetup.h
  * include/hbapi.h
    - Deleted code guarded with (previously disabled) HB_LEGACY_LEVEL2

  * include/rdd.api
  * include/clipdefs.h
    + Permanently enabled HB_LEGACY_LEVEL2 related changes.

  * contrib/xhb/bkgtsks.c
    - Deleted HB_OS_WIN_USED. It wasn't used.

  * include/hbapi.h
  * src/vm/cmdarg.c
    * hb_winmainArgGet() changed to not use Windows types.
      This function is declared in hbapi.h and this header
      shouldn't depend on windows.h.

  * include/hbwince.h
  * include/hbsetup.h
    * HB_OS_HAS_DRIVE_LETTER is now configured in central
      place (hbsetup.h) for WinCE platform also.

  * include/hbwince.h
  * include/hbdefs.h
    * Windows (CE and not-CE) specific declarations moved from
      hbwince.h to hbdefs.h.

  * include/hbdefs.h
    % hbwince.h inclusion now better guarded to not include it
      for non WinCE platforms.
    + HB_OS_WIN_USED macro will now autodetected by checking
      whether windows.h was included before this header.
      This is required for hbwince.h. I don't like it, since
      hbapi.h still depends on windows.h for WinCE platform, 
      which still ties us to unnecessary windows.h inclusion 
      rules. Rather, hbwince.h should be included directly
      by .c files when needed and when HB_OS_WIN_CE is defined.
      After all this our little Windows API implementation 
      for compilers which need it.

  * include/hbdefs.h
  * include/hbwmain.c
    + hb_winmainArgInit() declaration moved to hbwmain.c, the
      only place where this is used.
    * Deleted HB_EXPORT from hb_winmainArgInit. Pls speak up if
      this is wrong. It's possible to move this back to hbdefs.h,
      but parameter types should be changed to ANSI ones.

  * contrib/gtwvg/gtwvg.c
  * contrib/gtwvg/gtwvg.h
  * contrib/gtwvg/wvggui.c
  * contrib/gtwvg/wvgcuig.c
  * contrib/gtwvg/wvggui.h
  * contrib/gtwvg/wvgwin.c
  * contrib/gtwvg/wvgutils.c
  * contrib/gtwvg/wvgcore.c
  * contrib/gtwvg/wvgwing.c
    - Deleted HB_OS_WIN_USED. Now it should work without it.
      windows.h was already included in non-official method, so
      it's now okay also.
2010-02-09 01:13:25 +00:00
Viktor Szakats
25550fe1fc 2010-02-03 20:34 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/fstemp.c
  * include/hbapifs.h
  * include/hbextern.ch
    + Added HB_DIRTEMP() .prg level function. Returns name of temp dir,
      with closing backslash.
    + Added hb_fsTempDir() .c level function.
    ; Please review, especially MS-DOS, OS/2, which I won't be able
      to test.

  * src/rtl/fstemp.c
    * Cleanup: Deleted hb_fsCreateTempLow(), made layout more clear.
    ; TOFIX: For some builds, MS-DOS, OS/2 and WIN without WIN IO
             the temp directory will be wrongly calculated by checking
             TMPDIR envvar. Such envvar seems *nix specific.
             If new hb_fsTempDir() will be tested, above can be fixed
             by using this new function.

  * package/winuni/RELNOTES
    + Noted update to Firebird 2.5.0rc1

  * contrib/hbpgsql/postgres.c
    + Marked recently deprecated function as HB_LEGACY_LEVEL3.

  * contrib/hbfbird/firebird.c
    * Cleanup for a macro.

  * contrib/hbnetio/utils/netiosrv.prg
    + Using HB_HRB_BIND_FORCELOCAL when loading .hrb.

  * contrib/hbnetio/utils/modules/test.prg
    + Marked function as STATIC.

  * ChangeLog
    * Old TODO marked DONE.
2010-02-03 19:37:35 +00:00
Viktor Szakats
892efc393d 2010-01-13 17:12 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/Makefile
  + src/rtl/strclear.c
  * include/hbextern.ch
    + Added HB_STRCLEAR() function to safely clear the content 
      of a string variable.
      Notice that this method by itself can only work if the 
      string variable has no other references, and generally 
      you have to code carefully to avoid creating unwanted 
      copies of the string when passing it around in an app.
      So this is no silver bullet, but rather just one component 
      to solve this problem.

  * contrib/hbnetio/utils/netiosrv.prg
    + Added steps to avoid having the password stored in memory, 
      while the server is running.

  * src/rtl/philes.c
    % Minor cleanup.
2010-01-13 16:13:29 +00:00
Przemyslaw Czerpak
86c9511f2f 2010-01-06 07:27 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtwin/gtwin.c
    + added support for HB_GTI_ISUNICODE

  * harbour/include/hbapifs.h
    * added missing 'extern' in some declarations

  * harbour/include/hbzlib.ch
    + added HB_ZLIB_STRATEGY_* constants
    + added HB_ZLIB_COMPRESSION_DISABLE

  * harbour/include/Makefile
  + harbour/include/hbznet.h
  * harbour/include/hbextern.ch
  * harbour/src/rtl/Makefile
  * harbour/src/rtl/hbinet.c
  + harbour/src/rtl/hbznet.c
    + added support for ZLIB compression in stream sockets.
    + added .prg function:
         HB_INETCOMPRESS( <pSocket>, [<nCompressionLevel>], [<nStrategy>] )
      which enables ZLIB compression for given HB_INET*() socket.
      <pSocket> is a socket created by one of HB_INET*() functions
      <nCompressionLevel> is compression factor between 1 (fastest) and
                          9 (best) (see HB_ZLIB_COMPRESSION_*)
                          0 (none) disable compression on output data
                          but decompression is still working.
      <nStrategy> is used to tune compression algorithm,
                  see HB_ZLIB_STRATEGY_*
      The compression must be enabled on both connection sides, i.e.
      on the server side:
         conn := hb_inetAccept( sock )
         hb_inetCompress( conn )
      and on the client side:
         sock := hb_inetConnect( cServer, nPort )
         hb_inetCompress( sock )
      in the same moment but it's not necessary to enable it at the
      beginning of connection. It can be done later, i.e. when both
      sides agree to enable connection using some custom protocol.
      The compression has effect only on stream connections, i.e.
      TCP and it's ignored in datagram connections like UDP.
      This function can be executed more then once changing the compression
      parameters but it causes that all data in readahead decompression
      buffer is discarded. When called with HB_ZLIB_COMPRESSION_DISABLE
      as <nCompressionLevel> then support for stream compression is removed
      and sockets works again in raw mode.
      The compression level and strategy do not have to be the same on both
      connection sides. Each side can chose the best settings for data it's
      going to send.

      This code was written in a way which allows to easy implement
      alternative compression methods or other extensions like encryption
      in existing HB_INET*() sockets also by non core code. The public C
      functions declared in hbznet.h allows to use this extension with raw
      harbour sockets two.
2010-01-06 06:27:38 +00:00
Viktor Szakats
78fcd3ab59 2009-12-21 00:59 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
    + Added new trace functions.
    ; TODO: Use these new functions in HBQT, HBXBP.

  * contrib/hbwin/win_dll.c
    ! Fix for OpenWatcom. Seems to require LPVOID in asm code.

  * contrib/hbqt/hbqt_destruct.cpp
    * Minor formatting. ('return( x )' -> 'return x', return is not a function)
    + Added 'TODO:' to todo text.
    + Added TOFIX to hb_parptr() usage. Without reference counting this is 
      still dangerous.
      Probably some mechanisms would be needed to count references when 
      attaching one GC collected pointer to another object, and decrement 
      references when disconnecting or deleting holder object. Without 
      this, there will always be a possibility that some objects refer 
      to deleted objects. Unless I'm missing some logic which already that.
      Probably "delayed release" is the mechanism which is trying to 
      solve that problem at the moment.

  * contrib/hbwin/wapi_winbase_mutex.c
    * Minor formatting (superfluous brackets)
2009-12-21 00:07:24 +00:00
Viktor Szakats
32bf41944d 2009-12-11 10:59 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
    + Added HB_THREADONCEINIT().

  * contrib/hbqt/hbqt.ch
  * contrib/hbxbp/xbp.ch
    ! Moved XBP specific macro to HBXBP header.

  * contrib/hbqt/tests/demoqt.prg
    ! Deleted no more needed init calls.

  * contrib/hbqt/hbqt_events.cpp
    + Added TOFIX about GC collected pointer stored in low level 
      structure. (source of GPF).

  * contrib/hbwin/win_misc.c
  * contrib/hbwin/wapi_winbase.c
  * contrib/hbwin/wapi_winuser.c
  * contrib/hbwin/win_regc.c
  * contrib/hbwin/win_prn1.c
  * contrib/hbwin/win_prn3.c
  * contrib/hbwin/wapi_shellapi.c
  * contrib/hbwin/legacyco.c
    - Deleted now unnecessary '( LP[C]TSTR )' casts.
    + Cleaned const usage in WIN_PRINTERSETDEFAULT().
      F.e. OpenPrinter() has apparently wrong winapi declaration, 
      so a cast must have been added.

    ; TOFIX: CreateProcessW() second parameter has to be a read/write 
             buffer. Przemek, do you have an idea how to solve that 
             the cleanest way?
             (for now I kept a cast, assuming that a buffer is 
             created by Harbour conversion API, but that's not 
             something it guarantees in the future.)
2009-12-11 10:01:12 +00:00
Viktor Szakats
b7d47cd284 2009-12-02 11:42 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/philes.c
  * include/hbextern.ch
    + Added HB_FISDEVICE()

    ; NOTE: Didn't add anything to hbmk2 yet, as after testing I found it 
            weird and unusual that the output is different when redirected, 
            but we may think of some other solution, like user option or else.
2009-12-02 10:44:06 +00:00
Viktor Szakats
b69e1a68c2 2009-12-02 01:55 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/vm/itemapi.c
  * src/vm/hvm.c
  * src/vm/set.c
  * src/rtl/gtdos/gtdos.c
  * src/rtl/gtwin/gtwin.c
  * src/rtl/gtxwc/gtxwc.h
  * src/rtl/gtxwc/gtxwc.c
  * src/rtl/gtcrs/gtcrs.c
  * src/rtl/gtcrs/gtcrs.h
  * src/rtl/gtstd/gtstd.c
  * src/rtl/gttrm/gttrm.c
  * src/rtl/gtcgi/gtcgi.c
  * src/rtl/hbgtcore.c
  * src/rtl/gtsln/gtsln.c
  * src/rtl/gtsln/kbsln.c
  * src/rtl/gtsln/gtsln.h
  * src/rtl/gtpca/gtpca.c
  * src/rtl/gtwvt/gtwvt.c
  * src/rdd/dbfntx/dbfntx1.c
  * src/rdd/hbdbsort.c
  * src/rdd/sdf1.c
  * src/rdd/dbfnsx/dbfnsx1.c
  * src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/delim1.c
  * src/rdd/dbf1.c
  * src/rdd/hsx/hsx.c
  * src/rdd/dbffpt/dbffpt1.c
  * doc/en-EN/lang.txt
  * include/hbrdddbf.h
  * include/hbapicdp.h
  * include/hbextern.ch
  * contrib/xhb/dbf2txt.c
  * contrib/gtqtc/gtqtc.cpp
  * contrib/gtwvg/gtwvg.c
  * contrib/gtwvg/wvggui.c
  * contrib/hbbmcdx/bmdbfcdx.c
  * examples/hbdoc/examples/core_es/lang.txt
    - Deleted HB_CDP_SUPPORT_OFF.
2009-12-02 00:57:48 +00:00
Viktor Szakats
f4c1fe62e5 2009-12-01 08:57 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/philes.c
  * src/rtl/philes53.c
  * include/hbextern.ch
    + Added HB_FSETDEVMODE(). Documented, always available
      equivalent of C5.3 undocumented function FSETDEVMOD().

  * utils/hbmk2/hbmk2.prg
    * Changed to use HB_FSETDEVMODE().
2009-12-01 07:58:05 +00:00
Viktor Szakats
4715be9ddc 2009-11-29 07:57 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
    ! HB_SETCODEPAGE() reference also guarded with HB_LEGACY_LEVEL2.

  * tests/wcecon.prg
  * tests/gtkeys.prg
  * examples/terminal/trm_cli.prg
    * HB_SETCODEPAGE() -> HB_CDPSELECT().

  * contrib/hbwin/win_prn2.c
    + Added comment.

  * contrib/hbwin/legacy.prg
    + Guarded with HB_WIN_LEGACY_LEVEL_OFF.

  * contrib/hbmysql/mysqlold.c
  * contrib/hbodbc/odbcold.c
  * contrib/hbwin/legacycd.c
  * contrib/hbwin/legacyco.c
  * contrib/hbwin/legacycp.c
  * contrib/hbwin/legacycv.c
  * contrib/hbwin/legacy.prg
    + Guarded with HB_LEGACY_LEVEL3.
      This means these will be removed after major release.
      Please upgrade your code to use new function names.
2009-11-29 06:59:59 +00:00
Przemyslaw Czerpak
fd4bd6208f 2009-11-27 18:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/cdpapi.c
  * harbour/include/hbextern.ch
    + added new .prg function:
         HB_UTF8ASC( <cUtf8> ) -> <nUnicode>

  * harbour/contrib/hbwin/olecore.c
    % removed redundant call to SafeArrayGetDim()
2009-11-27 17:40:49 +00:00
Przemyslaw Czerpak
7ec5d4cc53 2009-11-08 02:43 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/vm/set.c
    ! fixed small typos in returned values (FALSE instead of NULL and 0)

  * harbour/src/vm/estack.c
    * make calling hb_stackTotalItems() safe in MT mode when stack is not
      initialized - now this function can be used to check if HVM stack
      exists and is initialized in ST and MT mode

  * harbour/src/rtl/errintlo.c
    ! fixed at least 4 GPF traps exploited when hb_errInternal() was called
      and HVM stack was not initialized

  * harbour/include/Makefile
  + harbour/include/hbcdpreg.h
  * harbour/include/hbapicdp.h
  * harbour/src/rtl/cdpapi.c
    + added new CDP API which fixes many errors and limitations in old
      implementation.
      Warning !!! some very serious bugs in national sorting have been
                  fixed. It may cause that old indexes using some national
                  sorting will not be compatible. Please rebuild existing
                  indexes.

  * harbour/src/vm/itemapi.c
  * harbour/src/rdd/hsx/hsx.c
  * harbour/src/rdd/dbfntx/dbfntx1.c
  * harbour/src/rdd/dbfnsx/dbfnsx1.c
  * harbour/src/rdd/dbfcdx/dbfcdx1.c
  * harbour/contrib/hbbmcdx/bmdbfcdx.c
  * harbour/contrib/rddads/adsx.c
  * harbour/contrib/rddsql/sqlmix.c
    * updated to work with new CDP API
    TOFIX: update adsx.c and sqlmix.c to use hb_cdpcmp() which resepcts
           sorting with accented and mulitybyts characters.
           Mindaugas, can you update above code?

  * harbour/src/codepage/cpbg866.c
  * harbour/src/codepage/cpbgiso.c
  * harbour/src/codepage/cpbgmik.c
  * harbour/src/codepage/cpbgwin.c
  * harbour/src/codepage/cpcs852.c
  * harbour/src/codepage/cpcsiso.c
  * harbour/src/codepage/cpcskam.c
  * harbour/src/codepage/cpcswin.c
  * harbour/src/codepage/cpde850.c
  * harbour/src/codepage/cpdeiso.c
  * harbour/src/codepage/cpdewin.c
  * harbour/src/codepage/cpel737.c
  * harbour/src/codepage/cpeliso.c
  * harbour/src/codepage/cpelwin.c
  * harbour/src/codepage/cpes850.c
  * harbour/src/codepage/cpes850c.c
  * harbour/src/codepage/cpesiso.c
  * harbour/src/codepage/cpesisoc.c
  * harbour/src/codepage/cpeswin.c
  * harbour/src/codepage/cpeswinc.c
  * harbour/src/codepage/cpeswinm.c
  * harbour/src/codepage/cpfr850.c
  * harbour/src/codepage/cpfriso.c
  * harbour/src/codepage/cpfrwin.c
  * harbour/src/codepage/cphr437.c
  * harbour/src/codepage/cphr852.c
  * harbour/src/codepage/cphrwin.c
  * harbour/src/codepage/cphu852.c
  * harbour/src/codepage/cphu852s.c
  * harbour/src/codepage/cphuiso.c
  * harbour/src/codepage/cphuisos.c
  * harbour/src/codepage/cphuwin.c
  * harbour/src/codepage/cphuwins.c
  * harbour/src/codepage/cpit437.c
  * harbour/src/codepage/cpit850.c
  * harbour/src/codepage/cpitisb.c
  * harbour/src/codepage/cpitiso.c
  * harbour/src/codepage/cpitwin.c
  * harbour/src/codepage/cpltwin.c
  * harbour/src/codepage/cppl852.c
  * harbour/src/codepage/cppliso.c
  * harbour/src/codepage/cpplmaz.c
  * harbour/src/codepage/cpplwin.c
  * harbour/src/codepage/cppt850.c
  * harbour/src/codepage/cpptiso.c
  * harbour/src/codepage/cpro852.c
  * harbour/src/codepage/cproiso.c
  * harbour/src/codepage/cprowin.c
  * harbour/src/codepage/cpru866.c
  * harbour/src/codepage/cpruiso.c
  * harbour/src/codepage/cprukoi.c
  * harbour/src/codepage/cpruwin.c
  * harbour/src/codepage/cpsk852.c
  * harbour/src/codepage/cpskiso.c
  * harbour/src/codepage/cpskkam.c
  * harbour/src/codepage/cpskwin.c
  * harbour/src/codepage/cpsl437.c
  * harbour/src/codepage/cpsl852.c
  * harbour/src/codepage/cpsliso.c
  * harbour/src/codepage/cpslwin.c
  * harbour/src/codepage/cpsrwin.c
  * harbour/src/codepage/cpsv850.c
  * harbour/src/codepage/cpsvclip.c
  * harbour/src/codepage/cpsviso.c
  * harbour/src/codepage/cpsvwin.c
  * harbour/src/codepage/cptr857.c
  * harbour/src/codepage/cptriso.c
  * harbour/src/codepage/cptrwin.c
  * harbour/src/codepage/cpua1125.c
  * harbour/src/codepage/cpua866.c
  * harbour/src/codepage/cpuakoi.c
  * harbour/src/codepage/cpuawin.c
  * harbour/src/codepage/uc037.c
  * harbour/src/codepage/uc1006.c
  * harbour/src/codepage/uc1026.c
  * harbour/src/codepage/uc1125.c
  * harbour/src/codepage/uc1250.c
  * harbour/src/codepage/uc1251.c
  * harbour/src/codepage/uc1252.c
  * harbour/src/codepage/uc1253.c
  * harbour/src/codepage/uc1254.c
  * harbour/src/codepage/uc1255.c
  * harbour/src/codepage/uc1256.c
  * harbour/src/codepage/uc1257.c
  * harbour/src/codepage/uc1258.c
  * harbour/src/codepage/uc424.c
  * harbour/src/codepage/uc500.c
  * harbour/src/codepage/uc737.c
  * harbour/src/codepage/uc775.c
  * harbour/src/codepage/uc850.c
  * harbour/src/codepage/uc852.c
  * harbour/src/codepage/uc855.c
  * harbour/src/codepage/uc856.c
  * harbour/src/codepage/uc857.c
  * harbour/src/codepage/uc860.c
  * harbour/src/codepage/uc861.c
  * harbour/src/codepage/uc862.c
  * harbour/src/codepage/uc863.c
  * harbour/src/codepage/uc864.c
  * harbour/src/codepage/uc865.c
  * harbour/src/codepage/uc866.c
  * harbour/src/codepage/uc869.c
  * harbour/src/codepage/uc874.c
  * harbour/src/codepage/uc875.c
  * harbour/src/codepage/uc885910.c
  * harbour/src/codepage/uc885911.c
  * harbour/src/codepage/uc885913.c
  * harbour/src/codepage/uc885914.c
  * harbour/src/codepage/uc885915.c
  * harbour/src/codepage/uc885916.c
  * harbour/src/codepage/uc88591b.c
  * harbour/src/codepage/uc8859_1.c
  * harbour/src/codepage/uc8859_2.c
  * harbour/src/codepage/uc8859_3.c
  * harbour/src/codepage/uc8859_4.c
  * harbour/src/codepage/uc8859_5.c
  * harbour/src/codepage/uc8859_6.c
  * harbour/src/codepage/uc8859_7.c
  * harbour/src/codepage/uc8859_8.c
  * harbour/src/codepage/uc8859_9.c
  * harbour/src/codepage/ucascii.c
  * harbour/src/codepage/ucatari.c
  * harbour/src/codepage/uckam.c
  * harbour/src/codepage/uckoi8.c
  * harbour/src/codepage/uckoi8u.c
  * harbour/src/codepage/ucmacce.c
  * harbour/src/codepage/ucmaccyr.c
  * harbour/src/codepage/ucmacgrk.c
  * harbour/src/codepage/ucmacice.c
  * harbour/src/codepage/ucmacrom.c
  * harbour/src/codepage/ucmactrk.c
  * harbour/src/codepage/ucmaz.c
  * harbour/src/codepage/ucmik.c
  * harbour/src/codepage/ucnext.c
    * updated for new CP API
    Warning: please test all national CPs. I'm not able to test unknown for
             me national character conditions so it's possible that I made
             something wrong. Additionally current CP API does not have
             some limitations which existed in the old one so now some hacks
             or workarounds can be cleaned. I.e. now all translations are
             done using Unicode tables so it's not necessary to use the
             same number of characters to make them working.
             Updating CP files I've found the following potential problems
             in definitions which I haven't fixed or fixed only partially:

         cpes850c.c - update for new format removing hacks for old CP
                      implementation
         cpesisoc.c  > remove, it's not longer necessary
         cpeswinc.c /
         cpeswinm.c - it is the same as cpesiso.c so it should be removed

         cphu852.c  \
         cphu852s.c  \
         cphuiso.c    > update for new format removing hacks for old CP
         cphuwin.c   /  implementation

         cphuisos.c  > remove, it's not longer necessary
         cphuwins.c /

         cphr437.c  > does it really use CP-437? and ^]\[@~}|{` instead of
         cpsl437.c /  nationalletters or it uses different then 437 CP for
                      7-bit Croatian characters encoding. It's important
                      because without valid unicode table translations will
                      not work.

         cpit437.c  - update for new version if necessary (upper characters)

         cpsv850.c \
         cpsviso.c  > they had ACCENTED_INTERLEAVED but without ACCENTED_EQUAL
         cpsvwin.c /  so this setting was ignored. Now it's not ignored.

         cpsvclip.c - update for new format to be fully not only
                      "almost compatible with Clipper's NTXSWE.OBJ"

      For sure these are not all problems inherited from old CP
      implementation so please verify all existing CPs.

  * harbour/src/codepage/cp_tpl.c
    + added new example for CP definition. Working on new CPs please read
      this description:
         If accented characters need special sorting ( HB_CDP_ACSORT_EQUAL or
         HB_CDP_ACSORT_INTERLEAVE ) then you need to mark the accented
         characters with the symbol '~' before each of them, for example:
            a~_
         If there is two-character sequence, which is considered as one, it
         should be marked with '.' before and after it, for example:
            ... h.ch.i ...
         if such multibyte character has its own Unicode representation then
         this Unicode value can be set using '=' symbol, for example:
            ....h.ch=2A7C.i
         and it will be used in translations.

         The Upper case string and the Lower case string should use the
         same letters. If some characters does not have corresponding upper
         or lower letter then space ' ' can be used as dummy character, for
         example in German CPs there is no upper case 'scharfes S' letter
         so space is used as dummy character.

         HB_CP_LATIN should be 1 if the national alphabet is based on Latin
         otherwise 0

      Please note that now you can use two versions of CP definition.
      The 1-st one which uses human readable form similar to the old CP
      definition and 2-nd which uses directly final CP tables so it
      allows to replicate any conditions which existed in Clipper or
      any other compatible language which uses static tables.
      tests/cpinfo.prg can generate automatically .c files with new CP
      definition in the 2-nd version. Now if user wants to create new
      Harbour CP which is fully Clipper compatible he only has to
      compile and link cpinfo.prg with given national sorting module
      and then execute it with new Harbour CP name as 1-st parameter.
      cp<cpname>.c file is generated which can be added to Harbour
      repository. Optional 2-nd parameter is CP description and 3-rd
      is Harbour Unicode table ID (if not given 437 is used and should
      be updated by user in .c file). This method should definitely
      resolve any problems with creating Clipper compatible CP definition.
      It also allows to easy verify if CP definitions are compatible. It's
      enough to compare generated .c files.

  * harbour/src/codepage/uckam.c
    ! fixed Kamenicky Unicode table definition - it was Mazovia CP :)

  * harbour/src/codepage/cpde850.c
  * harbour/src/codepage/cpdeiso.c
  * harbour/src/codepage/cpdewin.c
    ! fixed CP wrongly encoded CP due to limitations in old CP definition.
      Now it's possible to define different number of upper an lower
      characters (space " " can be used as dummy character) and I used
      it to eliminate hack for 'scharfes S' which does not exists as upper
      case.
      Please clean other CPs which contain similar hacks.

  * harbour/src/codepage/cphu852.c
  * harbour/src/codepage/cphuiso.c
  * harbour/src/codepage/cphuwin.c
  * harbour/src/codepage/cpua866.c
    * removed dummy letters introduced for old translation code

  * harbour/src/rtl/natmsg.c
  * harbour/src/rtl/cdpapi.c
  * harbour/include/hbextern.ch
    + added HB_CDPINFO() function
    * redirected _NATSORTVER() function to HB_CDPINFO()

   To All,
      Please check your national sorting in current version and make
      any updates if necessary or inform me about found problems.
      I've checked that Polish CPs are working fine and all existing
      CPs passes my test program which verified some technical aspects
      of CP implementation. But I cannot verify if this definitions
      satisfy users in different countries.
2009-11-08 01:46:17 +00:00
Przemyslaw Czerpak
dce9013c0f 2009-10-19 22:13 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbextern.ch
    + added HB_TTOD() and HB_DTOT() functions
2009-10-19 20:14:02 +00:00