Commit Graph

42 Commits

Author SHA1 Message Date
Ryszard Glab
49d728084c 2006-03-09 16:30 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* include/hbapi.h
  * include/hbexpra.c
  * include/hbexprb.c
  * include/hbexprop.h
    * modified to support strings with embeded LF/CR characters

  * source/common/hbstr.c
  * source/rtl/strings.c
    * added hb_strRemEscSeq() function that removes C-like Esc
      sequences (\n \t \r \b currently)

  * source/compiler/cmdcheck.c
    * added new command line switch
      -r=<max_recursive_preprocessor_passes>
      with defaults equal to -r=1024

  * include/hbpp.h
  * source/compiler/harbour.l
  * source/compiler/harbour.y
  * source/macro/macro.y
  * source/pp/ppcomp.c
  * source/pp/ppcore.c
  * source/pp/pplib.c
  * source/pp/pptable.c
  * source/pp/pragma.c
    * fixed compilation of #command ( => (,7
      (loops in #define or #command are trapped now)
    * fixed compilation of \[ and \] in command/translate
    * modified TEXT/ENDTEXT to use '#pragma __text'
    + added #pragma __stream and #pragma __cstream
      (examples later)
2006-03-09 15:22:16 +00:00
Ryszard Glab
6beed6b7f5 2006-03-02 18:00 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* source/compiler/harbour.l
   * source/pp/ppcomp.c
   * source/pp/ppcore.c
   * source/pp/pptable.c
      * fixed compilation of included files in cases when the file
        ends with ';' (with no LF or CR)
      * fixed translation of nested command/translate
      * fixed translation of TEXT/ENDTEXT to be more Clipper compatible
        (added new hidden preprocessor directive
        __text|ParseBlockCode|EndBlockCode|StartBlockCode

        currently TEXT is preprocessed using:
        #command TEXT => __text|Qout(%s)|QQOut()
        #command TEXT TO FILE <f> => ;
         __text|Qout(%s)|__TextRestore()|__TextSave(<f>)

        ParseBlockCode is called for every line beetwen TEXT/ENDTEXT,
        %s is replaced with the text enclosed with []
2006-03-02 16:56:01 +00:00
Ryszard Glab
8a61908828 2006-02-28 17:00 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* include/hbpp.h
   * source/pp/ppcore.c
   * source/pp/pptable.c
      * fixed handling of optional clauses in command/translate
        e.g.
        #command PRINT TO <oPage> => [<oPage>:=]PrintPage()
      * fixed <-x-> match marker
      * added fixed length of command/translate/define name to
        speed translation

   * source/compiler/harbour.l
      * fixed GPF in handling of '&macro.tekst' syntax
        (introduced recently)
2006-02-28 15:58:08 +00:00
Przemyslaw Czerpak
e4ac791059 2004-12-28 10:30 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/harbour.spec
  * harbour/hbgtmk.sh
  * harbour/make_rpm.sh
  * harbour/bin/pack_src.sh
    * updated for recent changes in make process

  * harbour/contrib/Makefile
    * added odbc lib for Linux compilation

  * harbour/contrib/btree/Makefile
    * changed lib name from hb_btree to hbtree

  * harbour/contrib/btree/hb_btree.api
  * harbour/contrib/btree/hb_btree.c
    * fixed GCC compilation in HB_TR_DEBUG mode

  * harbour/contrib/hbzlib/hbzip.h
  * harbour/contrib/hbzlib/include/hbzip.h
  * harbour/include/hbapi.h
  * harbour/include/hbapicdp.h
  * harbour/include/hbapierr.h
  * harbour/include/hbapifs.h
  * harbour/include/hbapigt.h
  * harbour/include/hbapiitm.h
  * harbour/include/hbapilng.h
  * harbour/include/hbapirdd.h
  * harbour/include/hbcomp.h
  * harbour/include/hbdate.h
  * harbour/include/hbdbsort.h
  * harbour/include/hberrors.h
  * harbour/include/hbexprb.c
  * harbour/include/hbexprop.h
  * harbour/include/hbhash.h
  * harbour/include/hbinit.h
  * harbour/include/hbmacro.h
  * harbour/include/hbpp.h
  * harbour/include/hbrdddel.h
  * harbour/include/hbrddntx.h
  * harbour/include/hbrddsdf.h
  * harbour/include/hbrddwrk.h
  * harbour/include/hbset.h
  * harbour/include/hbstack.h
  * harbour/include/hbtrace.h
  * harbour/include/hbvm.h
  * harbour/include/hbvmpub.h
    * changed #if defined (HB_EXTERN_C) to HB_EXTERN_BEGIN / HB_EXTERN_END
      macros for easier manipulation with different ABI
    * added HB_IS_BADITEM() macro for debugging
    * synced CDP with xHarbour - added basic Unicode support
    * synced RDD with xHarbour

  * harbour/source/codepage/Makefile
  * harbour/source/codepage/cdp_tpl.c
  * harbour/source/codepage/cdpeldos.c
  * harbour/source/codepage/cdpelwin.c
  * harbour/source/codepage/cdpesdos.c
  * harbour/source/codepage/cdpeswin.c
  * harbour/source/codepage/cdpgedos.c
  * harbour/source/codepage/cdpgewin.c
  * harbour/source/codepage/cdphu852.c
  * harbour/source/codepage/cdphuwin.c
  * harbour/source/codepage/cdppl852.c
  * harbour/source/codepage/cdppliso.c
  * harbour/source/codepage/cdpplmaz.c
  * harbour/source/codepage/cdpplwin.c
  * harbour/source/codepage/cdppt850.c
  * harbour/source/codepage/cdpptiso.c
  * harbour/source/codepage/cdpru866.c
  * harbour/source/codepage/cdprukoi.c
  * harbour/source/codepage/cdpruwin.c
  * harbour/source/codepage/cdpsl437.c
  * harbour/source/codepage/cdpsl852.c
  * harbour/source/codepage/cdpsliso.c
  * harbour/source/codepage/cdpslwin.c
  * harbour/source/codepage/cdpsrwin.c
  + harbour/source/codepage/uc1250.c
  + harbour/source/codepage/uc1251.c
  + harbour/source/codepage/uc1253.c
  + harbour/source/codepage/uc1257.c
  + harbour/source/codepage/uc737.c
  + harbour/source/codepage/uc850.c
  + harbour/source/codepage/uc852.c
  + harbour/source/codepage/uc866.c
  + harbour/source/codepage/uc88591b.c
  + harbour/source/codepage/uc8859_1.c
  + harbour/source/codepage/uc8859_2.c
  + harbour/source/codepage/uckoi8.c
  + harbour/source/codepage/uckoi8u.c
  + harbour/source/codepage/ucmaz.c
  * harbour/source/rtl/cdpapi.c
    * synced HB CDP API with xHarbour - added basic Unicode support

  * harbour/source/common/expropt2.c

  * harbour/source/common/hbstr.c
    * removed unnecessary initialization to avoid BCC warnings

  * harbour/source/compiler/harbour.c
    * formatting
      hb_compCodeBlockStop() looks like work in progress or is has
      some old unused code - Ryszard, can you look at it?

  * harbour/source/macro/macro.y
    * removed hack for GCC and old Bison versions

  * harbour/source/pp/ppcore.c
    * removed unnecessary initialization to avoid BCC warnings

  * harbour/source/pp/pptable.c
    + added some sets for RDD synchronization with xHarbour

  * harbour/source/rdd/dbcmd.c
    + added __RDDGETTEMPALIAS

  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/dbfuncs.prg
  * harbour/source/rdd/dbnubs.c
  * harbour/source/rdd/dbstrux.prg
  * harbour/source/rdd/hbdbsort.c
  * harbour/source/rdd/rddord.prg
  * harbour/source/rdd/workarea.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  * harbour/source/rdd/dbfdbt/dbfdbt1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
  * harbour/source/rdd/dbfntx/dbfntx1.c
    * synchronized with xHarbour - still dbcmd.c has to be synced yet
    ! fixed all known bugs
    Alexander, please look at DBFNTX - I hope all is correct.

  * harbour/source/vm/codebloc.c
    * formatting

  * harbour/source/vm/fm.c
    + added HB_PARANOID_MEM_CHECK to force reallocations in hb_xrealloc
      and fill allocated and freed memory with HB_MEMFILER (0xff by default)
      It's for debugging only.

  * harbour/source/vm/hvm.c
    ! fixed hb_vmTopNumber() declaration for BCC
    * use hb_gcCollectAll() at HVM exit instead of hb_gcReleaseAll() to
      report allocated and not freed items - It could caused that some
      programs begin to report memory leaks.

  * harbour/source/vm/itemapi.c
    * check for HB_IS_BADITEM inside hb_itemClear() when compiled with
      HB_PARANOID_MEM_CHECK for debugging

  * harbour/source/vm/memvars.c
    * formatting
    ! fixed pItem initialization in hb_memvarDetachLocal()
      BTW - is this really necessary? I copy it form hb_itemUnRef()
      but in fact it cannot detect all possible item reference cycles
      if they appear - can they appear?
2004-12-28 09:29:30 +00:00
Ryszard Glab
641d0c4c5a 2004-03-23 14:50 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
* source/pp/ppcore.c
      * fixed parsing of nested #defines in command/translate
      for example:
      #define PRE_CHAR  'A'
      #define IDX_EXPR(x)  PRE_CHAR+x
      INDEX ON IDX_EXPR(myfield) TO myfile

   * source/pp/pptable.c
      * updated for fixes in ppcore.c (_DFSET define)
2004-03-23 13:31:11 +00:00
Alexander S.Kresin
a2a1251487 2003-11-09 00:50 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su> 2003-11-08 21:53:16 +00:00
David G. Holm
763ccea561 See ChangeLog entry 2003-07-28 22:00 UTC-0400 David G. Holm <dholm@jsd-llc.com> 2003-07-29 02:01:25 +00:00
Luiz Rafael Culik
01099577fc See changelog 2002-11-20 21:45 UTC-0300 2002-11-20 23:40:02 +00:00
Alexander S.Kresin
eadf174bde 2002-11-18 14:55 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su> 2002-11-18 11:53:21 +00:00
Alexander S.Kresin
3108d6ebe5 2002-10-24 16:05 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su> 2002-10-24 12:03:33 +00:00
Gustavo Junior Alves
5c91af924a Implement SET FILECASE, DIRCASE and DIRSEPARATOR 2002-09-24 01:10:15 +00:00
Alexander S.Kresin
6068977e0b 2002-05-08 12:50 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su> 2002-05-08 08:58:12 +00:00
Alexander S.Kresin
a09aadc281 2002-05-06 13:30 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su> 2002-05-06 09:25:54 +00:00
Alexander S.Kresin
f147bf2a27 2002-03-18 15:12 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su> 2002-03-18 12:08:06 +00:00
Alexander S.Kresin
92c853f1b6 2002-03-13 13:25 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su> 2002-03-13 10:21:31 +00:00
Luiz Rafael Culik
f46098b2d2 See changelog 2002-03-10 13:25 UTC -0300 2002-03-10 18:22:54 +00:00
Alexander S.Kresin
50b9610280 2002-01-10 17:20 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su> 2002-01-10 14:21:09 +00:00
Alexander S.Kresin
5f314016e2 2001-10-15 09:15 GMT+3 Alexander Kresin <alex@belacy.belgorod.su> 2001-10-15 05:13:40 +00:00
Alexander S.Kresin
12625f5a8e 2001-10-11 21:45 GMT+3 Alexander Kresin <alex@belacy.belgorod.su> 2001-10-11 17:42:01 +00:00
Brian Hays
8ee6ee64f9 2001-08-20 11:55 UTC-0800 Brian Hays <bhays@abacuslaw.com> 2001-08-21 06:55:25 +00:00
David G. Holm
f708ef92c8 See ChangeLog entry 2001-08-16 16:30 UTC-0400 David G. Holm <dholm@jsd-llc.com> 2001-08-16 20:31:54 +00:00
David G. Holm
7a5deeffde See ChangeLog entry 2001-06-04 17:45 UTC-0400 David G. Holm <dholm@jsd-llc.com> 2001-06-04 21:46:23 +00:00
Ron Pinkas
93f31e08c4 2001-01-24 20:50 UTC-0800 Ron Pinkas <ron@profit-master.com>
* source/pp/ppcore.c
     ! Fixed compilation and parsing of #command of single and bi-char operators
     ! Removed prior hack in hb_pp_RdStr() related to @[&-].

   * source/pp/pptable.c
     ! Fixed compilation of #command ?? [ <list,...> ] => QQOut( <list> )

   /* This [should] finally resolve all prior issues regarding @ and many other problems, of operators as command keys. */
2001-01-25 04:54:17 +00:00
Ron Pinkas
92bc542014 2000-11-30 07:50 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/pp/pptable.c
     - Removed #ifdef SIMPLEX recently added by Ryszard, SimpLex was using same 5 paramters as Cliiper.
2000-11-30 15:58:07 +00:00
Ryszard Glab
4866775e31 ChangeLog 2000-11-30 10:55 UTC+0100 2000-11-30 09:45:07 +00:00
Ron Pinkas
159793c2ce 2000-11-29 13:50 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.c
     * Exported: hb_compFieldGetPos() and hb_compMemvarGetPos()

   * source/compiler/harbour.sly
     ! Changed __GET() support to be parameter compatible with Clipper

   * include/hberrors.h
   * source/compiler/hbgenerr.c
     + Added Error: "GET contains complex macro"

   * source/pp/pptable.c
     - Removed bSetGet from rule of GET, PP output now Clipper compatible.

   * source/vm/memvars.c
     + Added HB_FUNC( __ISMV ) // Return .T. if passed string as a Memory Variable.

   * source/rtl/tgetint.prg
     ! Fixed __GET() to be 100% parameter compatible with Clipper.
     ! When 1st parameter (bSetGet) is NIL the bSetGet will be built internaly,
       not using macro in most cases, even if the Get Variable itslef is a macro :-)

   /* Ryszard, this will further break Flex support for GET, but makes __GET() 100% Clipper compatible as you suggested.
      Please note, that Clipper does *NOT* pass a bSetGet *only* when the Get Var is a *simple* *non* declared Variable.
      Declared Variables in this context are: MEMVAR, FIELD, LOCAL, and STATIC. For all of those, bSetGet *is* generated!
      Clipper also generates bSetGet for "Complex Variables", i.e. Aliased Variables, Object Data, etc.! */
2000-11-29 21:54:03 +00:00
Ron Pinkas
46ae9d2f68 2000-11-24 12:50 UTC+0800 Ron Pinkas <ron@profit-master.com>
* include/hbset.h
   * include/set.ch
   * source/pp/pptable.c
     + Added _SET_IDLEREPEAT = 101
   * source/rtl/set.c
     + Added suport for SET( _SET_IDLEREPEAT ) - Default is .T.

   * source/rtl/idle.c
     - Removed HB_IDLE_RESET()
     * Changed handling of Idle Process to default to REPEAT.

   * tests/onidle.prg
     - Removed call to HB_IDLE_RESET()

   + tests/testidle.prg
     + New test of Idle Blocks in default (REPEAT) mode and optional NON REPEAT mode.
2000-11-24 21:00:13 +00:00
Ron Pinkas
039265a0ba 2000-11-04 14:45 UTC+0800 Ron Pinkas <ron@profit-master.com>
* include/hbexpra.c
   * source/pp/pptable.c
     ! Excluded Ryszard changes using #if[n]def SIMPLEX from SimpLex version.
       Ryszard code remains intact for Flex version (including 3 reported bugs).

   * hb_slex.bc
     + Added -DSIMPLEX when compiling source/pp/pptable.c, source/compiler/expropta.c, and source/macro/macroa.c
       /* This allow conditional exclusion of Ryszard changes for SimpLex version. */

     /* Todo - have to do same in GNU make */
2000-11-04 23:03:31 +00:00
Ryszard Glab
92e1ff661f ChangeLog 2000-11-04 13:35 UTC+0100 2000-11-04 12:39:40 +00:00
Ron Pinkas
266d3fdfdf 2000-11-03 16:05 UTC+0800 Ron Pinkas <ron@profit-master.com>
* source/pp/pptable.c
     * Changed {|u| to {|_1| and := u to := _1 in bSetGet of _GET_(...) to avoid unexpected result with @ X,Y GET u
2000-11-04 00:06:10 +00:00
Alexander S.Kresin
ed1853501e 2000-09-21 16:30 GMT+3 Alexander Kresin <alex@belacy.belgorod.su> 2000-09-21 12:32:36 +00:00
Alexander S.Kresin
c20cc8251f 2000-08-13 15:58 GMT+3 Alexander Kresin <alex@belacy.belgorod.su> 2000-08-13 12:00:55 +00:00
Viktor Szakats
7a5701da69 2000-07-12 08:46 UTC+0100 Victor Szakats <info@szelvesz.hu> 2000-07-12 07:29:09 +00:00
Ron Pinkas
a3a61fd11d 2000-06-04 03:05 UTC-0800 Ron Pinkas <Ron@Profit-Master.com>
* include/hbcomp.h
     + Added: extern char *        hb_pp_STD_CH;

   * include/hbpp.h
     + Added: extern void hb_pp_SetRules( BOOL (*hb_compInclude)(char *, PATHNAMES * ) );

   * source/compiler/hbusage.c
   * source/compiler/harbour.c
   * source/compiler/cmdcheck.c
     + Added support for -u[FileName]
     - Removed TODO for -u

   * source/pp/ppcomp.c
     + Added hb_pp_ReadRules() - Logic to process directives from user supplied command defs.

   * source/pp/ppcore.c
     + Added hb_pp_SetRules() - Logic to use predefined rules, none, or user defined.

   * source/pp/pptable.c
     + Added hb_pp_Table() - Moved predefined rules into this function, to allow for conditional use.
2000-06-04 10:12:52 +00:00
Viktor Szakats
be81ee127d 2000-05-27 23:12 UTC+0100 Victor Szakats <info@szelvesz.hu> 2000-05-28 19:52:03 +00:00
Ron Pinkas
04837b2eaa 2000-05-22 10:40 UTC-800 Ron Pinkas <Ron@Profit-Master.com>
* include/hbvmpub.h
     * Modified HB_FS_FIRST to  ( ( HB_SYMBOLSCOPE ) 0x04 )

   * source/compiler/harbour.c
     * Minor optimization when storing HB_FS_FIRST

   * source/pp/pptable.c
     - Removed built-in rule, for STRUCTURE support

   * source/vm/runner.c
     ! Fixed bug when there is no startup procedure

   * source/rtl/tclass.prg
     - Removed HB_Structure()

   * include/hbextern.ch
     * Moved EXTERNAL HB_STRUCTURE to separate section

   * tests/teststru.prg
     + added #INCLUDE "..\Include\HBSTRUC.CH"

   + include/hbstruc.ch

   + source/rtl/hbstruc.prg

   * makefile.bc
     + Added rules for hbstruc.prg
2000-05-26 07:39:42 +00:00
Ron Pinkas
9f05928bd2 20000522-10:40 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/hbpcode.c
     ! Fixed ambigious else in hb_StrongType()

   * source/pp/pptable.c
     ! Fixed STRUCTURE rule to allow nesting of structures.

   * tests/teststru.prg
     * Enhanced to demonstrate Structure as element of other structure and self reference capabilities.
2000-05-23 01:31:34 +00:00
Ron Pinkas
eb2d8afdb4 20000522-06:15 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/harbour.l
     + Added "as structure", "as stru", "as array of structure", "as array of stru"

   * source/compiler/hbpcode.c
     * Improved some logic in hb_StrongType()

   * source/vm/hvm.c
     ! Corrected startup symbol when having to use Main() as per Ryszard.

   * source/pp/pptable.c
     + Added the equivalent of:
        #COMMANDS STRUCTURE <StruName> <Var1> AS <Type1> [, <VarN> AS <TypeN> ] => ;
                  STATIC __<StruName> := {|| IF( __<StruName> == NIL, , ) , HB_Structure( <"StruName">, { <"Var1"> [, <"VarN">] } )} ;;
                  DECLARE <StruName> <Var1> AS <Type1> [ <VarN> AS <TypeN> ] ;;
                  #TRANSLATE AS NEW <ClassName> => AS CLASS <StruName> := ( Eval( __<StruName> ), HB_Structure( <StruName> ) )

	#TRANSLATE AS NEW <ClassName> => AS CLASS <ClassName> := <ClassName>():New()

   * source/rtl/tclass.prg
     + Added Function HB_Structure() ( Fully Declared! ) This function is used internally, but may be freely called from Clipper level.
       It Aceepts Parameter 1 Structure Name, and optional parameter 2, as array of structure variable names.
       If called with 2nd parameter, returns NIL (just creates the new Structure), if called with just parameter 1, it returns
       new instance of defined structure.

   + tests\teststru.prg
     + Added demo for new structure syntax
2000-05-22 13:53:14 +00:00
David G. Holm
76629ea7ab See ChangeLog entry 2000-04-17 14:40 GMT-4 David G. Holm <dholm@jsd-llc.com> 2000-04-17 18:46:05 +00:00
Viktor Szakats
28d912ee09 20000315-14:28 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-03-15 13:32:17 +00:00
Viktor Szakats
b268b9a1ee 20000315-08:08 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-03-15 07:32:26 +00:00
Viktor Szakats
a49700b2da 20000307-12:35 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-03-07 11:41:00 +00:00