[Harbour] SF bugtracker#1672301: Charset Mapping CP437 or CP850 (not documentated ?)

2008-11-10 Thread Chen Kedem
This is more than a year old report / feature request about locale maping.
After reading the recent codepage discussion here on the list, I put this as a 
reminder
that might help users porting thier DOS application to *nix world.

http://sourceforge.net/tracker/index.php?func=detail&aid=1672301&group_id=681&atid=100681


  Chen.

[I was away for a while and just finished reading more that 100 digest (!) 
posts from this list]
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] the FRM

2008-11-10 Thread Ciro Vargas Clemow


hi Victor:

the Frm goes to you

best regards
Ciro

--
http://sistemascvc.tripod.com  (la casa del clip2win y nodosimp / the no2imp and
clip2win home )

http://www.oohg.org ( Object Oriented Harbour GUI, more simple, more powerfull )





cvc.frm
Description: Binary data
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] 2008-11-11 05:34 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

2008-11-10 Thread Szakáts Viktor
2008-11-11 05:34 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
  * make_b32.mak
  * make_vc.mak
  * common.mak
  * bin/hbmk.bat
+ Added generation of MT harbour .dlls for BCC and MSVC.
; TOFIX: 'hbmk -shared -mt' doesn't seem to work, resulting 
 app simply exists for both BCC and MSVC.
; TODO: Please update make_gcc.mak.
--
Brgds,
Viktor

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] 2008-11-11 04:22 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

2008-11-10 Thread Szakáts Viktor
2008-11-11 04:22 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
  * make_b32.mak
  * make_vc.mak
  * make_gcc.mak
  * common.mak
* Changed dll and mt obj locations to reside inside the platform dir:
  obj/dll/* -> obj/*/dll
  obj/*_mt -> obj/*/mt
+ Added provisions for new obj location:
  obj/*/mt_dll
--
Brgds,
Viktor

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] 2008-11-11 03:56 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

2008-11-10 Thread Szakáts Viktor
2008-11-11 03:56 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
  * make_b32.mak
  * make_vc.mak
  * make_gcc.mak
  * common.mak
+ Added generation of hbmainstd and hbmainwin libs.

  * bin/hbmk.bat
+ Changed to use above libs. This also means that '-shared' 
  can now be used in Harbour binary distributions, too.
--
Brgds,
Viktor

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SET PRINTER TO ( cPrinter ) - Bug

2008-11-10 Thread Szakáts Viktor

First of turn _SET_DEFEXTENSIONS to .F.,
after that in Harbour you'll need to convert
the Windows printer name to a port, share
name, or filename in order to print to it using
SET PRINTER TO.

Harbour core doesn't support any Windows
printers natively, so you'll need to use
hbwin.lib for some name to port conversion
and getting Windows printer name list.

IOW, in Harbour 'SET PRINTER TO' always need
to point to a filename, or any name that
can be opened using FOpen().

Brgds,
Viktor

On 2008.11.11., at 2:47, Pritpal Bedi wrote:



Hello All

Here is the code:

  cPrinter := 'Kyocera FS-1000 (KPDL-2)'

  SET PRINT ON
  SET CONSOLE OFF
  SET PRINTER TO ( cPrinter )

  ? 'Ok, I am printing'
  eject

  SET PRINTER TO
  SET PRINT OFF
  SET CONSOLE ON

The code above correctly prints on the specified printer in xHarbour
but fails in Harbour. In Harbour it creates a disk file  with .prn  
suffix:

Kyocera FS-1000 (KPDL-2).prn

xharbour/source/rtl/set.c :

 case HB_SET_PRINTER:
hb_retl( hb_set.HB_SET_PRINTER );
if( args > 1 )
{
   hb_set.HB_SET_PRINTER = set_logical( pArg2,
hb_set.HB_SET_PRINTER );

   if( hb_set.HB_SET_PRINTER )
   {
  hb_set_SetPrinterStart();
   }
   else
   {
  hb_set_SetPrinterStop();
   }
}
break;

harbour/source/vm/set.c :

 case HB_SET_PRINTER:
hb_retl( pSet->HB_SET_PRINTER );
if( args > 1 )
   pSet->HB_SET_PRINTER = set_logical( pArg2, pSet- 
>HB_SET_PRINTER

);
break;

Which compiles has the correct behavior?

Regards
Pritpal Bedi

--
View this message in context: 
http://www.nabble.com/SET-PRINTER-TO-%28-cPrinter-%29---Bug-tp20431996p20431996.html
Sent from the Harbour - Dev mailing list archive at Nabble.com.

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] hb_gtInfoEx( pGT, nGtInfo, xValue, xValue2 ) - Feature Request

2008-11-10 Thread Pritpal Bedi

To keep it alive !


Pritpal Bedi wrote:
> 
> Hello Przemek
> 
> Can we have hb_gtInfoEx() function accepting 
>  as its first parameter and then the rest parameters.
> It will help me to control GT behavior from other threads .
> 
> Also can we retrieve  for current context, i.e., 
> pGT := hb_gtCurrent() or like ?
> 
> hb_gtReload() returns TRUE/FALSE. How can I retreive its .
> 
> Regards
> Pritpal Bedi
> 

-- 
View this message in context: 
http://www.nabble.com/hb_gtInfoEx%28-pGT%2C-nGtInfo%2C-xValue%2C-xValue2-%29---Feature-Request-tp20414605p20432291.html
Sent from the Harbour - Dev mailing list archive at Nabble.com.

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Clipper RL compilation problem

2008-11-10 Thread Szakáts Viktor

Hi all,

RL will crash when compiled with Harbour.

The problem is that it's using 10 chars longer
PRIVATE vars, then saves them to a .mem file
and restores them before doing anything.

Now, .mem files can only store var names up to
10 chars, so when the vars are restored their
names are truncated and not found at runtime
using the longer names used in the source.

Any suggestion how to solve this Clipper
compatibility problem the most efficient way?

I had thought that we could limit PRIVATE/
PUBLIC var names to ten chars at runtime for
compatibility. PRIVATE/PUBLIC is not something
users want to use for new code, yet, above
situation can very easily break old apps.

Brgds,
Viktor

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] abour EJECT in CLASS TREPORT

2008-11-10 Thread Szakáts Viktor

Hi Ciro,

Can you send the .frm, too?

Brgds,
Viktor

On 2008.11.11., at 0:48, Ciro Vargas Clemow wrote:




Hi Victor:

i'm not sure if the problem is the Treport.prg

but the next code... in clipper  generate FF chr(12) chars after  
each page

in harbour the FF chars not appear in list.txt

best regards
Ciro

local i
local aDbf := {}
AADD(aDbf, { "Name", "C", 10, 0 })
AADD(aDbf, { "Address", "C", 20, 0 })
AADD(aDbf, { "Phone", "N", 13, 0 })
//
DBCREATE("People", aDbf)
Use People
for i:= 1 to 200
 append blank
 replace  name with str(i)
 replace address with str(i+1)
 replace phone with i+2
next i
set printer to list.txt
report form cvc to print
set printer to
**//   (3 columns name 10, address 20  phone 13 )






--
http://sistemascvc.tripod.com  (la casa del clip2win y nodosimp /  
the no2imp and clip2win home )


http://www.oohg.org ( Object Oriented Harbour GUI, more simple, more  
powerfull )



___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] 2008-11-11 03:13 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

2008-11-10 Thread Szakáts Viktor
2008-11-11 03:13 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
  + contrib/examples/rl
  + contrib/examples/rl/Makefile
  + contrib/examples/rl/hbmk_b32.bat
  + contrib/examples/rl/hbmk_vc.bat
  + contrib/examples/rl/readme.txt
+ Added build files for Clipper RL utility.
  (if someone remembers :)

  * contrib/examples/guestbk/hbmk_vc.bat
  * contrib/examples/pp/hbmk_vc.bat
  * contrib/examples/pe/hbmk_vc.bat
  * contrib/examples/dbu/hbmk_b32.bat
  * contrib/examples/dbu/hbmk_vc.bat
  * contrib/examples/hscript/hbmk_vc.bat
  * utils/hbdoc/hbmk_b32.bat
  * utils/hbdoc/hbmk_vc.bat
  * utils/hbmake/hbmk_b32.bat
  * utils/hbmake/hbmk_vc.bat
% Removed winspool.lib from liblists.
% Removed '/subsystem:console' from MSVC commandlines.
+ Added gtwvt.lib + gdi32.lib to liblists.
  (work in progress)

  * contrib/examples/dbu/readme.txt
* Minor.

  * contrib/examples/pe/editorhi.prg
! Fixed stupid s&r error which broke compilation.
  [TOMERGE 1.0]
--
Brgds,
Viktor

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] How to implement remote printing in Harbour

2008-11-10 Thread Pritpal Bedi

Hello All

How can I implement remote printing at the client terminal.

I am using TCP/IP protocol, I mean hb_INet* functions to have 
my own terminal. ( anybody interested can download
http://www.vouch.info/downloads/vouchclient.zip 
  user1/user1 ~ user9/user9  userid/password )

I need something to feed as  to SET PRINTER TO ( cPrinter )
command.
Server knows the client's IP address. OR any other alternative.

Regards
Pritpal Bedi
-- 
View this message in context: 
http://www.nabble.com/How-to-implement-remote-printing-in-Harbour-tp20432275p20432275.html
Sent from the Harbour - Dev mailing list archive at Nabble.com.

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] 2008-11-11 02:44 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

2008-11-10 Thread Szakáts Viktor
2008-11-11 02:44 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
  * bin/hbmk.bat
+ Added '-shared' support for MSVC.
! Fixed to cleanup mainstd.obj and mainwin.obj.

  * ChangeLog
* Some TODO/TOFIX marked as [DONE]. One [DONE] marked 
  as [DONE - REOPENED].
--
Brgds,
Viktor

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] SET PRINTER TO ( cPrinter ) - Bug

2008-11-10 Thread Pritpal Bedi

Hello All

Here is the code:

   cPrinter := 'Kyocera FS-1000 (KPDL-2)'

   SET PRINT ON
   SET CONSOLE OFF
   SET PRINTER TO ( cPrinter )

   ? 'Ok, I am printing'
   eject

   SET PRINTER TO
   SET PRINT OFF
   SET CONSOLE ON

The code above correctly prints on the specified printer in xHarbour
but fails in Harbour. In Harbour it creates a disk file  with .prn suffix:
Kyocera FS-1000 (KPDL-2).prn

xharbour/source/rtl/set.c :

  case HB_SET_PRINTER:
 hb_retl( hb_set.HB_SET_PRINTER );
 if( args > 1 )
 {
hb_set.HB_SET_PRINTER = set_logical( pArg2,
hb_set.HB_SET_PRINTER );

if( hb_set.HB_SET_PRINTER )
{
   hb_set_SetPrinterStart();
}
else
{
   hb_set_SetPrinterStop();
}
 }
 break;

harbour/source/vm/set.c :

  case HB_SET_PRINTER:
 hb_retl( pSet->HB_SET_PRINTER );
 if( args > 1 )
pSet->HB_SET_PRINTER = set_logical( pArg2, pSet->HB_SET_PRINTER
);
 break;

Which compiles has the correct behavior?

Regards
Pritpal Bedi

-- 
View this message in context: 
http://www.nabble.com/SET-PRINTER-TO-%28-cPrinter-%29---Bug-tp20431996p20431996.html
Sent from the Harbour - Dev mailing list archive at Nabble.com.

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] 2008-11-11 02:35 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

2008-11-10 Thread Szakáts Viktor
2008-11-11 02:35 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
  * make_b32.mak
  * make_vc.mak
  * make_gcc.mak
+ Added -DHB_TR_LEVEL_DEBUG C compiler option when 
  HB_BUILD_DEBUG=yes.

  * source/rtl/hbinet.c
* Minor formatting.
--
Brgds,
Viktor

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] 2008-11-11 01:39 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

2008-11-10 Thread Szakáts Viktor
2008-11-11 01:39 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
  + config/w32/pocc64.cf
+ Added Pelles C x64 GNU-make file.

  * config/w32/pocc.cf
* Minor cleanup.
--
Brgds,
Viktor

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] abour EJECT in CLASS TREPORT

2008-11-10 Thread Ciro Vargas Clemow



Hi Victor:

i'm not sure if the problem is the Treport.prg

but the next code... in clipper  generate FF chr(12) chars after each page
in harbour the FF chars not appear in list.txt

best regards
Ciro

local i
local aDbf := {}
AADD(aDbf, { "Name", "C", 10, 0 })
AADD(aDbf, { "Address", "C", 20, 0 })
AADD(aDbf, { "Phone", "N", 13, 0 })
//
DBCREATE("People", aDbf)
Use People
for i:= 1 to 200
  append blank
  replace  name with str(i)
  replace address with str(i+1)
  replace phone with i+2
next i
set printer to list.txt
report form cvc to print
set printer to
**//   (3 columns name 10, address 20  phone 13 )






--
http://sistemascvc.tripod.com  (la casa del clip2win y nodosimp / the no2imp and 
clip2win home )


http://www.oohg.org ( Object Oriented Harbour GUI, more simple, more powerfull )


___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] 2008-11-11 00:39 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

2008-11-10 Thread Szakáts Viktor
2008-11-11 00:39 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
  * make_b32.mak
  * make_vc.mak
! Fixed linking hbtest-dll.exe with tracing enabled.

  * bin/hbmk.bat
+ Added '-shared' option.
; TOFIX: - '-shared' won't work in binary installations.
 - '-shared' cannot create MT apps.
 - '-shared' only works for BCC32 yet.

  - tests/hbmk_b32_dll.bat
- Removed. Use 'hbmk_b32 -shared' instead.

  * source/rtl/treport.prg
* Minor formatting.

  * make_b32.bat
  * make_vc.bat
  * common.mak
* Changed default of HB_BUILD_DLL to 'yes'.
--
Brgds,
Viktor

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Compiler source code SVN

2008-11-10 Thread Szakáts Viktor

Joel, could you please post your C_USR, L_USR and
other extra build settings?

Brgds,
Viktor

On 2008.11.10., at 23:16, Joel YAHOO wrote:


Hello

Starting from one it tree new of the msys.

I am also having problems to compile the harbour (SVN+MingW+Msys).
They are 2 errors.

1-
sh make_gnu.sh
config/global.cf:44: config/w32/mingw32.cf: No such file or directory
make: *** No rule to make target `config/w32/mingw32.cf'.  Stop.
I copied mingw.cf for mingw32.cf

--
= 
= 
= 
==

2-


c:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin 
\ld.exe: cannot find -lhbmainstd

collect2: ld returned 1 exit status
make[3]: *** [hbdoc.exe] Error 1
make[3]: Leaving directory `/harbour/utils/hbdoc/w32/mingw32'
make[2]: *** [descend] Error 2
make[2]: Leaving directory `/harbour/utils/hbdoc'
make[2]: Entering directory `/harbour/utils/hbmake'
make[3]: Entering directory `/harbour/utils/hbmake/w32/mingw32'
gcc -Wall -W -O3 -march=i586 -ohbmake.exe hbmfrdln.o hbmgauge.o  
hbmlang.o hbmake.o-L../../../../lib/w32/mingw32 -Wl,--start- 
group-lhbdebug  -lhbvm  -lhbrtl  -lhbnulrdd  -lhbrtl  -lhbvm  - 
lhbmacro  -lhbcommon  -lrddntx  -lrddcdx  -lrddfpt  -lhbsix  - 
lhbhsx  -lhbusrrdd -lhbmainstd  -lgtcgi  -lgtpca  -lgtstd  -lgtwin  - 
lgtwvt  -lgtgui -Wl,--end-group -luser32 -lgdi32 -lwsock32 - 
lwinspool -lcomctl32 -lcomdlg32 -lole32 -loleaut32 -luuid -lmpr - 
lws2_32 -lmapi32
c:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin 
\ld.exe: cannot find -lhbmainstd

collect2: ld returned 1 exit status
make[3]: *** [hbmake.exe] Error 1
make[3]: Leaving directory `/harbour/utils/hbmake/w32/mingw32'
make[2]: *** [descend] Error 2
make[2]: Leaving directory `/harbour/utils/hbmake'
make[1]: *** [install] Error 2

How can I solve that?

Many thank´s
{}s
Joel Bernardes
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Compiler source code SVN

2008-11-10 Thread Szakáts Viktor

Hi Joel,


sh make_gnu.sh
config/global.cf:44: config/w32/mingw32.cf: No such file or directory
make: *** No rule to make target `config/w32/mingw32.cf'.  Stop.
I copied mingw.cf for mingw32.cf


Instead you should use 'set HB_COMPILER=mingw' or even
better just drop this setting completely and let it be
autodetected by make_gnu.sh.

gcc -Wall -W -O3 -march=i586 -ohbmake.exe hbmfrdln.o hbmgauge.o  
hbmlang.o hbmake.o-L../../../../lib/w32/mingw32 -Wl,--start- 
group-lhbdebug  -lhbvm  -lhbrtl  -lhbnulrdd  -lhbrtl  -lhbvm  - 
lhbmacro  -lhbcommon  -lrddntx  -lrddcdx  -lrddfpt  -lhbsix  - 
lhbhsx  -lhbusrrdd -lhbmainstd  -lgtcgi  -lgtpca  -lgtstd  -lgtwin  - 
lgtwvt  -lgtgui -Wl,--end-group -luser32 -lgdi32 -lwsock32 - 
lwinspool -lcomctl32 -lcomdlg32 -lole32 -loleaut32 -luuid -lmpr - 
lws2_32 -lmapi32
c:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin 
\ld.exe: cannot find -lhbmainstd


The real question is why hbmainstd is not created.
Please check your log for warnings or errors before
this point, around hbmainstd creation.

BTW, it works here without any such problems also
with 3.4.5.

Brgds,
Viktor

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Compiler source code SVN

2008-11-10 Thread Joel YAHOO
Hello  

Starting from one it tree new of the msys.

I am also having problems to compile the harbour (SVN+MingW+Msys).  
They are 2 errors.

1-

sh make_gnu.sh
config/global.cf:44: config/w32/mingw32.cf: No such file or directory
make: *** No rule to make target `config/w32/mingw32.cf'.  Stop.

I copied mingw.cf for mingw32.cf

--=
2-


c:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot 
find -lhbmainstd
collect2: ld returned 1 exit status
make[3]: *** [hbdoc.exe] Error 1
make[3]: Leaving directory `/harbour/utils/hbdoc/w32/mingw32'
make[2]: *** [descend] Error 2
make[2]: Leaving directory `/harbour/utils/hbdoc'
make[2]: Entering directory `/harbour/utils/hbmake'
make[3]: Entering directory `/harbour/utils/hbmake/w32/mingw32'
gcc -Wall -W -O3 -march=i586 -ohbmake.exe hbmfrdln.o hbmgauge.o hbmlang.o 
hbmake.o-L../../../../lib/w32/mingw32 -Wl,--start-group-lhbdebug  
-lhbvm  -lhbrtl  -lhbnulrdd  -lhbrtl  -lhbvm  -lhbmacro  -lhbcommon  -lrddntx  
-lrddcdx  -lrddfpt  -lhbsix  -lhbhsx  -lhbusrrdd -lhbmainstd  -lgtcgi  -lgtpca  
-lgtstd  -lgtwin  -lgtwvt  -lgtgui -Wl,--end-group -luser32 -lgdi32 -lwsock32 
-lwinspool -lcomctl32 -lcomdlg32 -lole32 -loleaut32 -luuid -lmpr -lws2_32 
-lmapi32
c:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot 
find -lhbmainstd
collect2: ld returned 1 exit status
make[3]: *** [hbmake.exe] Error 1
make[3]: Leaving directory `/harbour/utils/hbmake/w32/mingw32'
make[2]: *** [descend] Error 2
make[2]: Leaving directory `/harbour/utils/hbmake'
make[1]: *** [install] Error 2

How can I solve that?

Many thank´s
{}s
Joel Bernardes___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Printer list

2008-11-10 Thread Szakáts Viktor

'sh make_gnu.sh install'

This works here with 4.1.2, but should also with 3.4.5.


But I am using Windows XP + Harbour (SVN) + MinGW, and this, ('sh  
make_gnu.sh install' ), is for Linux.

What would it be for WinXP?


It is for XP, just try. 'sh' is part of msys.

[ Despite some drawbacks (you have to use forward
slash dir seps and no drive name in your HB_*_INSTALL
and HB_INC_* macros), this method looks much more
solid (and even quicker) than command.com forced
version. It also works without additional environment
hacks. ]

Brgds,
Viktor

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] abour EJECT in CLASS TREPORT

2008-11-10 Thread Szakáts Viktor

Hi Ciro,


  IF lPrinter   // To the printer
 ::lFormFeeds := .T.
  ELSE
 ::lFormFeeds := .F.
  ENDIF


in other words if  I send the report to a file the EJECTS are not  
triggered.


and if I normally send first to a file and later copy this file to  
print port, then my report will not have EJECTS.


I not agree with this point.

it's not clipper compatible.


It is compatible with C5.2e and also C5.3b.

If you can create a small example to show the
difference, of course we should fix it though,
maybe there's indeed a problem elsewhere.

Brgds,
Viktor

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Bug: :__enumKey context is lost for codeblocks

2008-11-10 Thread Szakáts Viktor

Other method is declaring temporary local variables for enumerators
and forbid using normal MEMVAR/STAATIC/LOCAL variables so the code
will look like:

  proc p( aCountry )
 for each aI in aCountry  // aI is temporary local variable
  // allocated automatically by compiler
? aI
 next
  return


I think it's better to have it declared manually.

Brgds,
Viktor

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] 2008-11-05 03:01 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

2008-11-10 Thread Petr Chornyj



Przemyslaw Czerpak-2 wrote:
> 
> 2008-11-05 03:01 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
> ..
>   * harbour/contrib/gtwvg/gtwvg.c
> * cover LWA_ALPHA usage by #if ( _WIN32_WINNT >= 0x0500 )
>   to keep at least compile time compatibility with older systems
> 
> 

I think is it should be as

#if ( _WIN32_WINNT >= 0x0500 )
 SetWindowLong( pWVT->hWnd,
GWL_EXSTYLE,
GetWindowLong( pWVT->hWnd, GWL_EXSTYLE )
| WS_EX_LAYERED );

 pWVT->pfnLayered( pWVT->hWnd,
   RGB( 255,255,255 ),
   hb_itemGetNI( pInfo->pNewVal2 ),
   /*LWA_COLORKEY|*/ LWA_ALPHA );
#endif

because we can see in winuser.h 

#if(_WIN32_WINNT >= 0x0500)
#define WS_EX_LAYERED   0x0008
#ifdef

BR,
Petr
-- 
View this message in context: 
http://www.nabble.com/2008-11-05-03%3A01-UTC%2B0100-Przemyslaw-Czerpak-%28druzus-at-priv.onet.pl%29-tp20335131p20427623.html
Sent from the Harbour - Dev mailing list archive at Nabble.com.

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Printer list

2008-11-10 Thread Guillermo Varona Silupú

Szakáts Viktor escribió:

Hi Guillermo,

I have this version of Harbor:
--
C:\HarbourMinGW\bin>harbour
Harbour 1.0.1dev Intl. (Rev. 9229)
Copyright (c) 1999-2008, http://www.harbour-project.org/
--
and here is not hbwin, What is equivalent to hbwin in this version?


It was called hbw32 lib in <= 1.0.1.

Thanks Viktor, Solved!!!, add LIB "libwinspool.a".

--
D:\harbour>make_gnu
c:\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: 
cannot find -lhbmainstd

Well, I've built a version from the current SVN and I get these messages:

Difficult to tell. I'd recommend starting with a
clean Harbour source tree, and to try with this command
after putting msys, then mingw bin dirs in your PATH:

'sh make_gnu.sh install'

This works here with 4.1.2, but should also with 3.4.5.


But I am using Windows XP + Harbour (SVN) + MinGW, and this, ('sh 
make_gnu.sh install' ), is for Linux.

What would it be for WinXP?

TIA

Best Regards
GVS
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] DBFCDX + HB_CDX_DBGCODE_EXT

2008-11-10 Thread Saulius Zrelskis
Hello Przemek,

Creating database with cdx index on field with binary data,
then appending records seems successful.

Then recompiling dbfcdx1.c with HB_CDX_DBGCODE_EXT defined,
program ends with message:

inserting, iSize=29, childs[i]->iFree=30
iKeys=102, iMaxReq=3
Unrecoverable error 9201: hb_cdxPageGetChild: index corrupted.
Called from DBGOTOP(0)

Is there bug covered or only some inaccuracy in debugging code
and can be ignored?

Test sample is quite simple, but data appended over thousand records
and unable to reduce.

Best regards,
Saulius
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] abour EJECT in CLASS TREPORT

2008-11-10 Thread Ciro Vargas Clemow



HI all:

I found a little thing that I don't undesrtand.

in TREPORT.prg

I found this

   IF lPrinter   // To the printer
  ::lFormFeeds := .T.
   ELSE
  ::lFormFeeds := .F.
   ENDIF


in other words if  I send the report to a file the EJECTS are not triggered.

and if I normally send first to a file and later copy this file to print port, 
then my report will not have EJECTS.


I not agree with this point.

it's not clipper compatible.

best regards
Ciro



--
http://sistemascvc.tripod.com  (la casa del clip2win y nodosimp / the no2imp and 
clip2win home )


http://www.oohg.org ( Object Oriented Harbour GUI, more simple, more powerfull )


___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Printer list

2008-11-10 Thread Szakáts Viktor

Hi Guillermo,


I have this version of Harbor:
--
C:\HarbourMinGW\bin>harbour
Harbour 1.0.1dev Intl. (Rev. 9229)
Copyright (c) 1999-2008, http://www.harbour-project.org/
--
and here is not hbwin, What is equivalent to hbwin in this version?


It was called hbw32 lib in <= 1.0.1.

Well, I've built a version from the current SVN and I get these  
messages:

--
D:\harbour>make_gnu
c:\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin 
\ld.exe: cannot find -lhbmainstd


Difficult to tell. I'd recommend starting with a
clean Harbour source tree, and to try with this command
after putting msys, then mingw bin dirs in your PATH:

'sh make_gnu.sh install'

This works here with 4.1.2, but should also with 3.4.5.


When compiling my PRG, which has only this:
--
function main ()
  aPrn: GETPRINTERS = ()
  wait
  RETURN NIL
--
I get these messages:
--
Proyecto: tst_CT, Entorno: H_SVN_MinGW:
[1]:Harbour.Exe tst_Prn.prg  /m /w0 /es2 /a /b /iC: 
\HRBSVN~1\Include /oObj\tst_Prn.c

Harbour 1.1.0dev (Rev. 9894)
Copyright (c) 1999-2008, http://www.harbour-project.org/
Compiling 'tst_Prn.prg'...
Lines 99, Functions/Procedures 2
Generating C source output to 'Obj\tst_Prn.c'... Done.
[1]:gcc.Exe -IC:\HRBSVN~1\Include -mno-cygwin -Wall -c tst_Prn.c - 
otst_Prn.o

[1]:gcc.Exe -otst_CT.Exe -Wall -mno-cygwin  -mconsole tst_CT.gcl


You'll need to add Windows winspool lib to your liblist
in order to use these functions in hbwin lib.

Brgds,
Viktor

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] hb* scripts and dylibs path under Mac OS X

2008-11-10 Thread Lorenzo Fiorini
On Mon, Nov 10, 2008 at 2:38 PM, Przemyslaw Czerpak <[EMAIL PROTECTED]> wrote:

> change -install_name parameter to:
>${CCPREFIX}libtool -dynamic -install_name "${BASE}${SLIB_EXT}" \
>
> Check if everything works correctly. If yes then please commit it.

Thanks it was it :)

Since today Mac OS X is a first class citizen in our company.

Many thanks to all.

best regards,
Lorenzo
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Bug: :__enumKey context is lost for codeblocks

2008-11-10 Thread Przemyslaw Czerpak
On Mon, 10 Nov 2008, Mindaugas Kavaliauskas wrote:

Hi Mindaugas,

> I'm just trying to made my understand about an answer to two questions:
> 1) is it good that enumerators are detached to references to iterated items 
> (or is it better to remain it enumerators in the codeblocks)?

If we left them as enumerator they will be updated by farther iterations
and it will not be possible to detach given item.

> 2) can it remain an enumerator in codeblocks? Can we implement it 
> technically? Or this is not possible because of current enumerators 
> implementation or some other side effects.

We do not have such functionality now but it can be implemented.
We will have to add support for reference counter to enumerators
and unblock their copping but it's possible. The question is if
we want to have such functionality.

> PROC main()
> LOCAL aCountry, aI, aJ, nI
>
>aCountry := {"LTU", "ZWE"}
>aJ := {}
>FOR nI := 1 TO LEN(aCountry)
>  aI := aCountry[nI]
>  AADD(aJ, {|| aI})
>NEXT
>FOR nI := 1 TO LEN(aCountry)
>  ? EVAL(aJ[nI])
>NEXT
> RETURN
> But in this sample aI is not detached to current aI value, and sample 
> prints:
> ZWE
> ZWE
> How can I easy understand/remember the difference between this behavior and 
> enumerators behavior?

Just like now you have to remember that:
   FOR EACH aI IN aCountry
  aI := NIL
   NEXT

will set NIL to all aCountry items. FOR and FOR EACH are different
things. In FOR EACH iterator is reference to item. When this reference
is detached it's not longer updated by next iterations. For me it's
correct behavior.

The only one problem I see here is the fact that comp;iler does
not generate compile time warning for the code you send. It should.
It's caused by side effect of simple codeblock implementation.
When expressions are created compiler does not know that they are
part of codeblock which is not allocated yet and finds aI as iterator
in parent function. For extended codeblocks and simple aI:__enum*()
usage warning message is correctly generated. F.e.:

   PROC main()
   LOCAL aCountry, aI, bc
  aCountry := {"LTU"=>"Lithuania", "ZWE"=>"Zimbabwe"}
  FOR EACH aI in aCountry
QOUT(aI:__enumKey)  // OK
EVAL({|| QOUT(aI:__enumKey), asd asd})   // RTE
bc:={||; return aI:__enumKey; } // WARNING
  NEXT
  QOUT(aI:__enumKey) // WARNING
   RETURN

It should be fixed. To make it well we should change the method
of codeblock creating in compiler but it's to small problem for
me to invest time for it now. I'll make it in the future with some
other modifications but now I can simply add new variable to FUNCTION
structure to indicate that we are in simple codeblock context.
I'll commit this modification in a while.

Meanwhile you may think about expected behavior for other FOR EACH
related contexts. F.e. please also remember that after leaving FOR EACH
original enumerator value is restored, f.e.:

   aI := 1234.567
   FOR EACH aI IN aCountry
  aI := NIL
   NEXT
   ? aI  // 1234.567

It's original behavior implemented by Ryszard we still keep.
If we begin to detach enumerators then after leaving FOR EACH
detached enumerators should also point to original value (1234.567
in above example).
Other method is declaring temporary local variables for enumerators
and forbid using normal MEMVAR/STAATIC/LOCAL variables so the code
will look like:

   proc p( aCountry )
  for each aI in aCountry  // aI is temporary local variable
   // allocated automatically by compiler
 ? aI
  next
   return

best regards,
Przemek
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Printer list

2008-11-10 Thread Guillermo Varona Silupú

Szakáts Viktor escribió:

Hi,
Check GETPRINTERS() in hbwin.lib.

Hi Viktor,

ENV: WinXP+Harbour from SVN+MinGW

I have this version of Harbor:
--
C:\HarbourMinGW\bin>harbour
Harbour 1.0.1dev Intl. (Rev. 9229)
Copyright (c) 1999-2008, http://www.harbour-project.org/
--
and here is not hbwin, What is equivalent to hbwin in this version?

Well, I've built a version from the current SVN and I get these messages:
--
D:\harbour>make_gnu
c:\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: 
cannot find -lhbmainstd

collect2: ld returned 1 exit status
make[3]: *** [hbrun.exe] Error 1
make[2]: *** [descend] Error 2
c:\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: 
cannot find -lhbmainstd

collect2: ld returned 1 exit status
make[3]: *** [hbtest.exe] Error 1
make[2]: *** [descend] Error 2
c:\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: 
cannot find -lhbmainstd

collect2: ld returned 1 exit status
make[3]: *** [hbdoc.exe] Error 1
make[2]: *** [descend] Error 2
c:\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: 
cannot find -lhbmainstd

collect2: ld returned 1 exit status
make[3]: *** [hbmake.exe] Error 1
make[2]: *** [descend] Error 2
make[1]: *** [first] Error 2
D:\harbour>c:
--
What do these messages?
Can I use the build?
But if I generate in Harbour.exe and LIBS (including hbwin.a).

When compiling my PRG, which has only this:
--
function main ()
   aPrn: GETPRINTERS = ()
   wait
   RETURN NIL
--
I get these messages:
--
Proyecto: tst_CT, Entorno: H_SVN_MinGW:
[1]:Harbour.Exe tst_Prn.prg  /m /w0 /es2 /a /b /iC:\HRBSVN~1\Include 
/oObj\tst_Prn.c

Harbour 1.1.0dev (Rev. 9894)
Copyright (c) 1999-2008, http://www.harbour-project.org/
Compiling 'tst_Prn.prg'...
Lines 99, Functions/Procedures 2
Generating C source output to 'Obj\tst_Prn.c'... Done.
[1]:gcc.Exe -IC:\HRBSVN~1\Include -mno-cygwin -Wall -c tst_Prn.c -otst_Prn.o
[1]:gcc.Exe -otst_CT.Exe -Wall -mno-cygwin  -mconsole tst_CT.gcl
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0x10f): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0x171): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0x1e6): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0x1f8): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0x408): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0x485): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0x5c2): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0x61b): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0x813): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0x867): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0x880): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0x965): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0x9a2): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0x9bf): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0x9dc): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0xbf1): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0xc53): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0xd0c): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0xd41): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0xdbb): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0xf42): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0xfa4): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2.o):win_prn2.c:(.text+0x1058): 
undefined reference to [EMAIL PROTECTED]'
C:\HrbSVNMinGW\Lib/libhbwin.a(win_prn2

Re: [Harbour] Bug: :__enumKey context is lost for codeblocks

2008-11-10 Thread Mindaugas Kavaliauskas

Hi,



PROC main()
LOCAL aCountry, aI
   aCountry := {"LTU"=>"Lithuania", "ZWE"=>"Zimbabwe"}
   FOR EACH aI in aCountry
 QOUT(aI:__enumKey)  // OK
 EVAL({|| QOUT(aI:__enumKey)})   // RTE
   NEXT
RETURN


It's expected and correct behavior. Variables stored in codeblocks
are detached. During detaching enumerators becomes simple references
to iterated items which is not later changed.


I'm just trying to made my understand about an answer to two questions:

1) is it good that enumerators are detached to references to iterated 
items (or is it better to remain it enumerators in the codeblocks)?
2) can it remain an enumerator in codeblocks? Can we implement it 
technically? Or this is not possible because of current enumerators 
implementation or some other side effects.




It allows to create code like:

   proc main()
  local aCountry, aBlocks, aI, aB
  aCountry := {"LTU"=>"Lithuania", "ZWE"=>"Zimbabwe"}
  aBlocks := array( len( aCountry ) )
  FOR EACH aI, aB in aCountry, aBlocks
 aB := {|x| iif( pcount()==0, aI, aI := x ) }
  NEXT
  ? eval( aBlocks[ 1 ] )
  ? eval( aBlocks[ 1 ], "X" )
  ? eval( aBlocks[ 1 ] )
  ? eval( aBlocks[ 2 ] )
  ? eval( aBlocks[ 2 ], "Y" )
  ? eval( aBlocks[ 2 ] )
   return

As you can see this code does not fail when codeblocks are
evaluated autside FOR EACH loop and in each codeblocks aI
referes to separated aCountry item which were valid when
codeblock was created.


PROC main()
LOCAL aCountry, aI, aJ, nI

   aCountry := {"LTU", "ZWE"}
   aJ := {}
   FOR nI := 1 TO LEN(aCountry)
 aI := aCountry[nI]
 AADD(aJ, {|| aI})
   NEXT
   FOR nI := 1 TO LEN(aCountry)
 ? EVAL(aJ[nI])
   NEXT
RETURN

But in this sample aI is not detached to current aI value, and sample 
prints:

ZWE
ZWE

How can I easy understand/remember the difference between this behavior 
and enumerators behavior?



Best regards,
Mindaugas


___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] 2008-11-09 20:58 UTC+0100 Viktor Szakats (harbour.01syenar hu)

2008-11-10 Thread Przemyslaw Czerpak
On Mon, 10 Nov 2008, [EMAIL PROTECTED] wrote:

Hi Toninho,

> Here is the results for Windows Vista 6.0.6000. Strange that DL-Alloc
> wins pratically in all parts except in last part of memtst. Maybe is
> possible do an optmization in this process?

You can make some experiments with DEFAULT_GRANULARITY, f.e.:
   set C_USR=-DDEFAULT_GRANULARITY=0x10

there are also other settings like:
   set C_USR=-DDEFAULT_MMAP_THRESHOLD=0x10
You can use them together.
Such switches are used to balance between memory usage and speed.
Make some tests and chose optimal values for your application.

> Why in memtst.prg we have
> this warning: "Warning!!! some compilers may badly fail here"

Try it with default BCC5.5 memory manager.

best regards,
Przemek
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Bug: :__enumKey context is lost for codeblocks

2008-11-10 Thread Przemyslaw Czerpak
On Mon, 10 Nov 2008, Mindaugas Kavaliauskas wrote:

Hi Mindaugas,

> PROC main()
> LOCAL aCountry, aI
>aCountry := {"LTU"=>"Lithuania", "ZWE"=>"Zimbabwe"}
>FOR EACH aI in aCountry
>  QOUT(aI:__enumKey)  // OK
>  EVAL({|| QOUT(aI:__enumKey)})   // RTE
>NEXT
> RETURN

It's expected and correct behavior. Variables stored in codeblocks
are detached. During detaching enumerators becomes simple references
to iterated items which is not later changed.
It allows to create code like:

   proc main()
  local aCountry, aBlocks, aI, aB
  aCountry := {"LTU"=>"Lithuania", "ZWE"=>"Zimbabwe"}
  aBlocks := array( len( aCountry ) )
  FOR EACH aI, aB in aCountry, aBlocks
 aB := {|x| iif( pcount()==0, aI, aI := x ) }
  NEXT
  ? eval( aBlocks[ 1 ] )
  ? eval( aBlocks[ 1 ], "X" )
  ? eval( aBlocks[ 1 ] )
  ? eval( aBlocks[ 2 ] )
  ? eval( aBlocks[ 2 ], "Y" )
  ? eval( aBlocks[ 2 ] )
   return

As you can see this code does not fail when codeblocks are
evaluated autside FOR EACH loop and in each codeblocks aI
referes to separated aCountry item which were valid when
codeblock was created.

best regards,
Przemek
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: Re: [Harbour] 2008-11-09 20:58 UTC+0100 Viktor Szakats (harbour.01syenar hu)

2008-11-10 Thread [EMAIL PROTECTED]
>Thanks Toninho.
>
>You could further help by sending speedtst and
>memtst results for both DLALLOC and STDALLOC
>builds, run on Vista and XP.

Hi Viktor, thank you, but please, wait until tonight. In my home I
have windows XP. I´ll collect all results and post here.

Regards,

Toninho.

__
Faça ligações para outros computadores com o novo Yahoo! Messenger
http://br.beta.messenger.yahoo.com/
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: Re: [Harbour] 2008-11-09 20:58 UTC+0100 Viktor Szakats (harbour.01syenar hu)

2008-11-10 Thread [EMAIL PROTECTED]
>As a last resort we may want to disable DLALLOC
>for BCC >= 6.0 if this seems to be best from the
>results.

Hi Viktor,

Here is the results for Windows Vista 6.0.6000. Strange that DL-Alloc
wins pratically in all parts except in last part of memtst. Maybe is
possible do an optmization in this process?  Why in memtst.prg we have
this warning: "Warning!!! some compilers may badly fail here"

memtst WITH DL

testing single large memory blocks allocation and freeing...
 CPU time:  0.84 sec.
real time:  0.84 sec.

testing many large memory blocks allocation and freeing...
 CPU time:  5.08 sec.
real time:  5.09 sec.

testing large memory block reallocation with intermediate
allocations...
Warning!!! some compilers may badly fail here  1000  2000
3000  4000  5000  6000  7000  8000  9000
1 11000 12000 13000 14000 15000 16000
17000 18000 19000 2 21000 22000 23000
24000 25000 26000 27000 28000 29000 3
31000 32000 33000 34000 35000 36000 37000
38000 39000 4 41000 42000 43000 44000
45000 46000 47000 48000 49000 5 51000
52000 53000 54000 55000 56000 57000 58000
59000 6 61000 62000 63000 64000 65000
66000 67000 68000 69000 7 71000 72000
73000 74000 75000 76000 77000 78000 79000
8 81000 82000 83000 84000 85000 86000
87000 88000 89000 9 91000 92000 93000
94000 95000 96000 97000 98000 9900010
 CPU time:  5.27 sec.
real time:  5.30 sec.


memtst WITHOUT DL

testing single large memory blocks allocation and freeing...
 CPU time:  0.86 sec.
real time:  0.86 sec.

testing many large memory blocks allocation and freeing...
 CPU time:  8.36 sec.
real time:  8.36 sec.

testing large memory block reallocation with intermediate
allocations...
Warning!!! some compilers may badly fail here  1000  2000
3000  4000  5000  6000  7000  8000  9000
1 11000 12000 13000 14000 15000 16000
17000 18000 19000 2 21000 22000 23000
24000 25000 26000 27000 28000 29000 3
31000 32000 33000 34000 35000 36000 37000
38000 39000 4 41000 42000 43000 44000
45000 46000 47000 48000 49000 5 51000
52000 53000 54000 55000 56000 57000 58000
59000 6 61000 62000 63000 64000 65000
66000 67000 68000 69000 7 71000 72000
73000 74000 75000 76000 77000 78000 79000
8 81000 82000 83000 84000 85000 86000
87000 88000 89000 9 91000 92000 93000
94000 95000 96000 97000 98000 9900010
 CPU time:  1.39 sec.
real time:  1.41 sec.



speedtst

11/10/08 13:15:19 Windows Vista 6.0.6000
Harbour 1.1.0dev (Rev. 9888) CodeGear C++ 6.1 (32-bit)
THREADS: 0
N_LOOPS: 100

...DLA ...WIN
[ T000: empty loop overhead ].0.09 ..0.09
=
[ T001: x := L_C ]0.13 ..0.13
[ T002: x := L_N ]0.14 ..0.14
[ T003: x := L_D ]0.13 ..0.11
[ T004: x := S_C ]0.13 ..0.13
[ T005: x := S_N ]0.22 ..0.14
[ T006: x := S_D ]0.13 ..0.11
[ T007: x := M_C ]0.14 ..0.13
[ T008: x := M_N ]0.11 ..0.27
[ T009: x := M_D ]0.11 ..0.13
[ T010: x := P_C ]0.13 ..0.14
[ T011: x := P_N ]0.14 ..0.11
[ T012: x := P_D ]0.22 ..0.13
[ T013: x := F_C ]0.48 ..0.69
[ T014: x := F_N ]0.41 ..0.64
[ T015: x := F_D ]0.19 ..0.27
[ T016: x := o:GenCode ]..0.39 ..0.36
[ T017: x := o[8] ]...0.25 ..0.44
[ T018: round( i / 1000, 2 ) ]0.45 ..0.50
[ T019: str( i / 1000 ) ].3.28 ..3.50
[ T020: val( s ) ]0.45 ..0.45
[ T021: val( a [ i % 16 + 1 ] ) ].1.31 ..1.33
[ T022: dtos( d - i % 1 ) ]...0.94 ..1.14
[ T023: eval( { || i % 16 } ) ]...0.63 ..0.98
[ T02

Re: [Harbour] Re: Harbour under OS/2 - OpenWatcom

2008-11-10 Thread Przemyslaw Czerpak
On Mon, 10 Nov 2008, Maurilio Longo wrote:

Hi Maurilio,

> It seems you did focus on mouse code, I've never dealt with it, but I'd say it
> has to do with openwatcom, because with GCC mttest*.* work ok.

To be precise the problem is with any console input and it's inside pure
OS2 API functions. It means that we probably using them in wrong way.
It may works for GCC because it may use some wrappers which resolve the
problem or hide it. I would be good to find what exactly it does because
it's a risk that the problem will be exploited also in some GCC builds.
First we should check keyboard input and disable mouse code. It should
give some answers which probably will also help to resolve problem with
mouse. We can easy disable mouse code for tests by removing:
   if( ch == 0 )
  ch = HB_GTSELF_MOUSEREADKEY( pGT, iEventMask );
from hb_gt_os2_ReadKey().
Now when 2-nd thread calls:

   KbdCharIn( s_key, IO_NOWAIT, ( HKBD ) * s_hk );

it fails with internal error. In OW this call is directly translated by:

   #define KbdCharIn  KBD16CHARIN

inside bsesub.h.
Why does it fail?
Why we have s_hk which is only low memory block initialized to NULL?
This code efectively works like:
   KbdCharIn( s_key, IO_NOWAIT, NULL );
so why we have s_hk variable if it does nothing?
OS2 API contains KbdGetFocus() and KbdFreeFocus(). If we begin to use
them to protect  can it help us?

You left this comment in gtos2.c:
   #if defined(HB_OS_OS2_GCC)
  /* 25/03/2000 - [EMAIL PROTECTED]
  OS/2 GCC hasn't got ToolKit headers available */
  #include 
   #else
  #include 
  #ifndef KBDTRF_EXTENDED_CODE
 #define KBDTRF_EXTENDED_CODE 0x02
  #endif
   #endif

It suggests me that in GCC builds KbdCharIn() is not directly translated
to KBD16CHARIN() but it's a wrapper function. Can you check its body and
what it exactly does? If the problem is not solved by some external setting
then the answer should be here.

> If I'm not wrong, openwatcom development, at least for os/2, has been stopped.

OS2 OW builds are still release. OW17a is the newest release.
AFAIK incoming 1.8 will also be released for OS2.

> Why are you trying to use it?

It allows to locate GCC only code and clean it.
It's C++ compiler so it allows to easy locate code which is not C++
compatible though here include G++ builds like in Linux should
also be solution.
It should allow to create cross binaries and I will want to add
support for it.
It should allow to make OS2 build test also for developers which
do not have OS2 what should greatly help us when we have to touch
code which is compiled conditionally only in OS2 builds.

best regards and many thanks for you help.
Przemek
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] 2008-11-09 20:58 UTC+0100 Viktor Szakats (harbour.01syenar hu)

2008-11-10 Thread Szakáts Viktor

Thanks Toninho.

You could further help by sending speedtst and
memtst results for both DLALLOC and STDALLOC
builds, run on Vista and XP.

As a last resort we may want to disable DLALLOC
for BCC >= 6.0 if this seems to be best from the
results.

Brgds,
Viktor

On 2008.11.10., at 13:04, [EMAIL PROTECTED] wrote:


Could you post the details of your Harbour build
switches and C compiler type/version, Harbour revision?
Did you do your tests in MT or ST mode?


---cut---
SET C_USR=-DHB_GUI -DHB_FM_STATISTICS_OFF -DHB_NO_PROFILER
-DADS_LIB_VERSION=700 -DHB_HASH_MSG_ITEMS -DHB_FM_STD_ALLOC
-DHB_NO_DEBUG
---cut---

---cut bcc32.cfg---
-IE:\bcc55\include;E:\bcc55\include\dinkumware
-LE:\bcc55\lib
-O2
-d
-5
-6
-a8
-WC
-w-inl-
---cut bcc32.cfg---

Path is called bcc55, but I´m using bcc6.10.


To compile test\memtst.prg I set:

---cut---
set HB_ARCHITECTURE=w32
set HB_COMPILER=bcc32
rem set HB_USER_LIBS=rddads.lib,ace32.li
set HB_BIN_INSTALL=e:\harbour\bin\b32
set HB_LIB_INSTALL=e:\harbour\lib\b32
set HB_INC_INSTALL=e:\harbour\include
COPY e:\bcc32.cfg e:\harbour\tests
---cut---

and call from tests dir:

..\bin\hbmk memtst



Maybe also Vista version/SP level, CPU type and
physical memory could also help.

Windows Vista Ultimate, Intel Pentium 4 CPU 3.06 GHz, RAM 1Mb


Experience from Vista users would also be great to
hear.

With the same environment and Windows XP I see no problem with dlalloc


Best regards,

Toninho.

__
Faça ligações para outros computadores com o novo Yahoo! Messenger
http://br.beta.messenger.yahoo.com/
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] 2008-11-10 15:17 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

2008-11-10 Thread Szakáts Viktor
2008-11-10 15:17 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
  * contrib/hbcurl/common.mak
  * contrib/hbcurl/Makefile
  * contrib/hbcurl/hbcurl.c
  + contrib/hbcurl/hbcurlm.c
+ Some disabled (not mainstream) functions moved to 
  a separate file.

  * contrib/hbwin/win_prn2.c
* Minor fix in comment.
--
Brgds,
Viktor

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] 2008-11-09 14:29 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

2008-11-10 Thread Szakáts Viktor

Hi Przemek,


I like the second one better, as it clears the ambiguity
and even the requirement to use -n switch when someone
defines MAIN(). So there would be one thing less to worry
about. First choice however is more Clipper compatible,
so IMO we should do it.


Please remember that current support for startup function
is a hack which works only with few C compilers and even
for them does not work correctly in all cases and we had
to add yet another hack: -n1 switch which disable it for
DLLs because DLL functions where registered before normal
functions and 1-st dll function was used as startup one.
Now we have two different behaviors which may cause portability
problems for Harbour code and this is probably even bigger
problem then strict Clipper compatibility.


Yes, I've even got such support question privately :(


This problem cannot be resolved at compile time. To make it
well we need linker wrapper which will extract first Harbour
function from linked modules and mark it as startup one.
I added such functionality to hb* scripts and this is the
only one method which works in all conditions and does not
dependent on the order of init code execution.
Anyhow it works only for GCC. For backward compatibility
with older Harbour code I gave main() higher priority then
1-st linked function but it can be removed. This feature
exists for many years and works well. So far no one reported
that it's a problem. I think it should be default for all
platforms/C compilers.


Okay with me. Any solution which closes platform,
compiler, build-system differences is superior. It
would be also nice to remove the hb* script hack if
possible.

[ Some developers seem to use _APPMAIN() as an entry
point probably to achieve that. ]


BTW If we want to keep -n1 then it should be changed to -n2
and simply -n1 should be the same as -n and -n0 should work
like -n- to make it compatible with other switches.


No, if possible let's please remove -n1 and keep only -n/-n-.

Brgds,
Viktor

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Bug: :__enumKey context is lost for codeblocks

2008-11-10 Thread Mindaugas Kavaliauskas

Hi,

PROC main()
LOCAL aCountry, aI
   aCountry := {"LTU"=>"Lithuania", "ZWE"=>"Zimbabwe"}
   FOR EACH aI in aCountry
 QOUT(aI:__enumKey)  // OK
 EVAL({|| QOUT(aI:__enumKey)})   // RTE
   NEXT
RETURN

Best regards,
Mindaugas
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] 2008-11-09 14:29 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

2008-11-10 Thread Przemyslaw Czerpak
On Sun, 09 Nov 2008, Szak�ts Viktor wrote:

Hi Viktor,

> I like the second one better, as it clears the ambiguity
> and even the requirement to use -n switch when someone
> defines MAIN(). So there would be one thing less to worry
> about. First choice however is more Clipper compatible,
> so IMO we should do it.

Please remember that current support for startup function
is a hack which works only with few C compilers and even
for them does not work correctly in all cases and we had
to add yet another hack: -n1 switch which disable it for
DLLs because DLL functions where registered before normal
functions and 1-st dll function was used as startup one.
Now we have two different behaviors which may cause portability
problems for Harbour code and this is probably even bigger
problem then strict Clipper compatibility.
This problem cannot be resolved at compile time. To make it
well we need linker wrapper which will extract first Harbour
function from linked modules and mark it as startup one.
I added such functionality to hb* scripts and this is the
only one method which works in all conditions and does not
dependent on the order of init code execution.
Anyhow it works only for GCC. For backward compatibility
with older Harbour code I gave main() higher priority then
1-st linked function but it can be removed. This feature
exists for many years and works well. So far no one reported
that it's a problem. I think it should be default for all
platforms/C compilers.
BTW If we want to keep -n1 then it should be changed to -n2
and simply -n1 should be the same as -n and -n0 should work
like -n- to make it compatible with other switches.

best regards,
Przemek
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Re: Harbour under OS/2 - OpenWatcom

2008-11-10 Thread Maurilio Longo
David, Przemyslaw,

I'm sorry, I was not monitoring this list lately because of lack of spare
time, anyway, can I do to help?

It seems you did focus on mouse code, I've never dealt with it, but I'd say it
has to do with openwatcom, because with GCC mttest*.* work ok.

If I'm not wrong, openwatcom development, at least for os/2, has been stopped.
Why are you trying to use it?

Maurilio.

David Arturo Macias Corona wrote:
>>> is executed but screen is not refreshed with tracing labels on it
>>> I was catching and error DISAPPEAR applying in hb_gt_os2_ReadKey():
>>>/*   KbdCharIn( s_key, IO_NOWAIT, ( HKBD ) * s_hk ); */
>>> As you said, fail reading keyboard input except thread 1  :-)
> 
>>we will have to find why it happens. Maybe Maurilio can help.
> 
> Maurilio, help !
> 
>>> ... and screen/output is not updated ?
> 
>>??? I do not understand. Do you want to say that only 1-st thread can
>>display data on the screen?
> 
> Good question but I am not tested that
> 
> What I say is: using gtos2, at least in these tests, screen/output is
> not refreshed and tracing labels existent in body of fuction where error
> happen are not shown
> You will see more samples below
> 
>>>   if( kbhit() )
>>>  ch = getch();
> 
>>Probably kbhit() internally call KbdCharIn() and it's exactly
>>the same problem.
> Maybe
> 
>>If possible then I would like to check if other GTOS2 functions works
>>correctly for 2-nd thread and the problem is only with KbdCharIn().
>>F.e. try mttest02.prg with such modified GTOS2 so we can see if screen
>>output works.
> 
> I was trying with mttest02.prg and we got many results
> Note: I am not testing if "screen output works" with 2nd thread but
> entire execution of program
> 
> For now we have in gtos2.c
>/*   KbdCharIn( s_key, IO_NOWAIT, ( HKBD ) * s_hk ); */
> 
> and mttest02.exe results:
> 
> 1. hb_gt_def_InkeyPollDo()
> 0. hb_gt_os2_ReadKey()
> 1. hb_gt_os2_ReadKey()
> 2. hb_gt_os2_ReadKey()
> 3. hb_gt_os2_ReadKey()
> 4. hb_gt_os2_ReadKey()
> 1. hb_gt_def_MouseReadKey()
> SYS1808:
> The process has stopped.  The software diagnostic
> code (exception code) is  0001.
> 
> 
> Using replacement for HB_GTSELF_MOUSEISPRESENT( pGT ):
> 
>printf("1. hb_gt_def_MouseReadKey()\r\n");fflush(stdout);
>/* if( HB_GTSELF_MOUSEISPRESENT( pGT ) ) */
>if( hb_gt_def_MouseIsPresent( pGT ) )
> 
> and mttest02.exe results:
> 
> 4. hb_gt_os2_ReadKey()
> 1. hb_gt_def_MouseReadKey()
> 10. hb_gt_def_MouseReadKey()
> SYS1808:
> The process has stopped.  The software diagnostic
> code (exception code) is  0001.
> 
> 
> so error happen trying HB_GTSELF_MOUSEISPRESENT( pGT )
> 
> Using
>printf("1. hb_gt_def_MouseReadKey()\r\n");fflush(stdout);
>if( HB_GTSELF_MOUSEISPRESENT( pGT ) )
>/* if( hb_gt_def_MouseIsPresent( pGT ) ) */
> 
> and
> 
> static BOOL hb_gt_os2_mouse_IsPresent( PHB_GT pGT )
> {
>printf("1. hb_gt_os2_mouse_IsPresent()\r\n");fflush(stdout);
>HB_SYMBOL_UNUSED( pGT );
>printf("2. hb_gt_os2_mouse_IsPresent()\r\n");fflush(stdout);
>return s_uMouHandle != 0;
> }
> 
> and mttest02.exe results:
> 
> 4. hb_gt_os2_ReadKey()
> 1. hb_gt_def_MouseReadKey()
> 1. hb_gt_os2_mouse_IsPresent()
> 2. hb_gt_os2_mouse_IsPresent()
> SYS1808:
> The process has stopped.  The software diagnostic
> code (exception code) is  0001.
> 
> 
> so hb_gt_os2_mouse_IsPresent( ) is working fine
> 
> Using in hb_gt_def_MouseReadKey( )
> 
>   /* if( iEventMask & INKEY_LDOWN && HB_GTSELF_MOUSEBUTTONPRESSED(
> pGT, 0, &iRow, &iCol ) ) */
>   if( iEventMask & INKEY_LDOWN && hb_gt_def_MouseButtonPressed( pGT,
> 0, &iRow, &iCol ) )
> 
> and mttest02.exe results:
> 
> 1. hb_gt_os2_mouse_IsPresent()
> 2. hb_gt_os2_mouse_IsPresent()
> 8. hb_gt_def_MouseReadKey()
> SYS1808:
> The process has stopped.  The software diagnostic
> code (exception code) is  0001.
> 
> 
> which belong to:
> 
>  printf("8. hb_gt_def_MouseReadKey()\r\n");fflush(stdout);
>  HB_GTSELF_MOUSEGETPOS( pGT, &iRow, &iCol );
>  printf("9. hb_gt_def_MouseReadKey()\r\n");fflush(stdout);
> 
> and HB_GTSELF_MOUSEGETPOS() should be checked later and is pending
> 
> Reusing:
>   /* if( iEventMask & INKEY_LDOWN && hb_gt_def_MouseButtonPressed(
> pGT, 0, &iRow, &iCol ) ) */
>   if( iEventMask & INKEY_LDOWN && HB_GTSELF_MOUSEBUTTONPRESSED( pGT,
> 0, &iRow, &iCol ) )
> 
> 
> and
> 
> 
> static BOOL hb_gt_os2_mouse_ButtonPressed( PHB_GT pGT, int iButton, int
> * piRow, int * piCol )
> {
>HB_SYMBOL_UNUSED( pGT );
>printf("1. hb_gt_os2_mouse_ButtonPressed()\r\n");fflush(stdout);
>hb_gt_os2_mouse_ReadMouseState();
>printf("2. hb_gt_os2_mouse_ButtonPressed()\r\n");fflush(stdout);
> 
> and mttest02.exe results:
> 
> 4. hb_gt_os2_ReadKey()
> 1. hb_gt_def_MouseReadKey()
> 1. hb_gt_os2_mouse_IsPresent()
> 2. hb_gt_os2_mouse_IsPresent()
> 1. hb_gt_os

[Harbour] 2008-11-10 14:41 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

2008-11-10 Thread Przemyslaw Czerpak
2008-11-10 14:41 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
  * harbour/include/hbapi.h
  * harbour/source/common/hbstr.c
+ added hb_numToStr()

  * harbour/source/vm/estack.c
  * harbour/source/compiler/genc.c
  * harbour/source/compiler/gencc.c
* use hb_numToStr() for integer number conversions

  * harbour/source/vm/dlmalloc.c
* disable #pragma warning ... in MinGW builds. If some newer MinGW
  versions support it and it's useful then it can be enabled after
  checking MinGW version

best regards
Przemek
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] hb* scripts and dylibs path under Mac OS X

2008-11-10 Thread Przemyslaw Czerpak
On Wed, 05 Nov 2008, Lorenzo Fiorini wrote:

Hi Lorenzo,

> I use standard gnu makefiles with hb* scripts but under Mac OS X I
> can't find the right way to shared executables.
> Everything gets built correctly using the same makefiles I use under
> Win and Lin but at runtime the executable looks for libmylib.0.dylib
> while my lib is libmylib.dylib.
> If I change it using install_name_tool I can get it working but it's
> not the best way.
> Could it be that we need sth different in the hb-mkslib for darwin?
> Any idea?

In hb-mkslib.sh we have:

FULLNAME="${BASE}.${VERSION}${SLIB_EXT}"
${CCPREFIX}libtool -dynamic -install_name "${BASE}.${MAJOR}${SLIB_EXT}" \
-compatibility_version ${MAJOR}.${MINOR} -current_version ${VERSION} \
-flat_namespace -undefined warning -multiply_defined suppress 
-single_module \
-o "${DSTDIR}/${FULLNAME}" "$@" && \
ln -sf "${FULLNAME}" "${DSTDIR}${BASE}.${MAJOR}${SLIB_EXT}" && \
ln -sf "${FULLNAME}" "${DSTDIR}${BASE}${SLIB_EXT}"

change -install_name parameter to:
${CCPREFIX}libtool -dynamic -install_name "${BASE}${SLIB_EXT}" \

Check if everything works correctly. If yes then please commit it.

best regards,
Przemek
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] 2008-11-01 21:13 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

2008-11-10 Thread Przemyslaw Czerpak
On Mon, 10 Nov 2008, Lorenzo Fiorini wrote:

Hi Lorenzo,

> On Mon, Nov 10, 2008 at 12:29 PM, Szakáts Viktor <[EMAIL PROTECTED]> wrote:
> > Experienced hash users should say the final word.
> We use hashes extensively and the RTE is useful to avoid mispelled
> keys exactly like arrays gets RTE if accessed out of bounds.
> When it's expected we use:
> #xtranslate GETKEYORDEFAULT( , ,  ) => iif( hHasKey( , 
> ), hGet( ,  ),  )
> or
> #xtranslate GETKEYOREMPTY( ,  ) => iif( hHasKey( ,  ),
> hGet( ,  ), "" )

To avoid confusion.
In practice we are talking about two functions where we can remove
RT errors: hb_hGet() and hb_hDel(). We do not want to touch RT errors
in direct hash access. Removing RT errors from hb_hDel() will make their
behavior similar to aDel() function which does not generate RT error
in code like aDel( {}, 2 ). With hb_hGet() it's a problem with returning
value when key does not exists because hash can hold any values.
So we can leave it as is and reduce the problem to:
   hb_hDel( {=>}, "key" )
Should it generate RT error or not.

best regards,
Przemek
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Re: Harbour under OS/2 - OpenWatcom

2008-11-10 Thread Przemyslaw Czerpak
On Sun, 09 Nov 2008, David Arturo Macias Corona wrote:

Hi David,

> Good question but I am not tested that
> What I say is: using gtos2, at least in these tests, screen/output is not 
> refreshed and tracing labels existent in body of fuction where error happen 
> are not shown
> You will see more samples below

So it's general problem with accessing console from other threads.

> >>   if( kbhit() )
> >>  ch = getch();
> >Probably kbhit() internally call KbdCharIn() and it's exactly
> >the same problem.
> Maybe

To be precise it's KbdPeek() and kbhit() is probably simple wrapper to it.
It means that OW internals are also effected by this problem.
The question is if it can be resolved or not. Is it OW bug or problem
with OS2 API. In GCC it seems to be resolved. The question is how.

> >If possible then I would like to check if other GTOS2 functions works
> >correctly for 2-nd thread and the problem is only with KbdCharIn().
> >F.e. try mttest02.prg with such modified GTOS2 so we can see if screen
> >output works.
> I was trying with mttest02.prg and we got many results
> Note: I am not testing if "screen output works" with 2nd thread but entire 
> execution of program
> For now we have in gtos2.c
>/*   KbdCharIn( s_key, IO_NOWAIT, ( HKBD ) * s_hk ); */

[...]

Please also disable mouse polling and comment this code:
   if( ch == 0 )
  ch = HB_GTSELF_MOUSEREADKEY( pGT, iEventMask );

> As you see in this and other cases, fail within hb_gt_os2_mouse_GetPos() 
> but screen/output is not refreshed to show at least
>printf("1. hb_gt_os2_mouse_GetPos()\r\n");fflush(stdout);
>printf("2. hb_gt_os2_mouse_GetPos()\r\n");fflush(stdout);
> This behaviour confuse us because last info seem to be fail in the calling 
> function, while fail occur in called function which does not refressh their 
> own printf( )
> I do not know if this is a normal behaviour for printf( )

It does not have to be printf() behavior. 1-st it's always better to
redirect output to file to eliminate possible overwriting. The
second problem can be caused by possible compile time optimizations
which can change the order of executed instructions. In such case is
always good to pass to printf() some pointers to variables which are
used in function you want to trace to disable such optimization.
It's the reason why I added s_key pointer to "0. hb_gt_os2_ReadKey(%p)"
though in this case seems that it wasn't help though I'm not sure
you replicated it.

> As summary there are problems in "reading devices" except for thread 1
> Now we have catched at least three points which cause fails:
>   KbdCharIn( )
>   MouReadEventQue( )
>   MouGetPtrPos( )
> and they are NOT Harbour functions/procedures

Many thanks for detail tests. We know the problem and now we will have
to find workaround for it. We can make it in simple way and disable
input for non main thread. BTW can you check if keyboard input works
correctly in GCC builds for all threads, f.e. inm code like:

   proc main()
   hb_threadJoin( hb_threadStart( @thFunc() ) )
   return
   proc thFunc()
   local k
  while (k:=inkey(0)) != 27
 ? k
  enddo
   return

OS2 KBD API has functions KbdGetFocus() and KbdFreeFocus(). It's possible
that they will resolve the problem for keyboard input.
Finally we can simply check in GCC source what exactly it does to resolve
the problem. Seeing Maurilio comment in gtos2.c I guess that GCC for OS2
has its own KbdCharIn() instead of direct mapping:
   #define KbdCharIn  KBD16CHARIN
and inside this function the problem is resolved. But I only guess.
I haven't ever seen this compiler.
For someone who has some experience with OS2 API the problem should
be easy to resolve or find workaround or give us an answer if it can work.

> As you see, I was changing C code myself  :-)

With very good results. Many thanks for your help.

best regards,
Przemek
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] 2008-11-01 21:13 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

2008-11-10 Thread Lorenzo Fiorini
On Mon, Nov 10, 2008 at 12:29 PM, Szakáts Viktor <[EMAIL PROTECTED]> wrote:

> Experienced hash users should say the final word.

We use hashes extensively and the RTE is useful to avoid mispelled
keys exactly like arrays gets RTE if accessed out of bounds.

When it's expected we use:

#xtranslate GETKEYORDEFAULT( , ,  ) => iif( hHasKey( , 
), hGet( ,  ),  )

or

#xtranslate GETKEYOREMPTY( ,  ) => iif( hHasKey( ,  ),
hGet( ,  ), "" )

best regards,
Lorenzo
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] 2008-11-01 21:13 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

2008-11-10 Thread Szakáts Viktor

Hi Przemek,


Probably some RT errors from function call should be eliminated
for flexible usage. I never though about this problem so far
and when I was adding hashes to harbour I simply replicated
most of RT errors which exists in xHarbour.


What I've suspected.


You've just accepted autoadd in assign because you have quite nice

example of these feature used for i18n translation tables and so
far you haven't created any code which can benefit from autoadd
in access and you still think about hash items like like about some
type of static storage.
This feature is usable when hash is used as backed to collect some
results.
F.e. I want to collect information about quantity of articles sold:


Thanks for these hashing examples. In this sense they are
basically a small in-memory database table with a unique key.

Nice!


does not exists in the hash array. F.e. In the 1-st report above

I may want to group some type of articles together and rest
present individually. With this feature it's enough to change
the line with:
 hReport[ FIELD->ARTICLE ] += FIELD->QUANTITY
to:
 hReport[ hGroups[ FIELD->ARTICLE ] ] += FIELD->QUANTITY
but I can also use:
 hReport[ hb_hKey( hGroups, FIELD->ARTICLE ) ] += FIELD->QUANTITY
Instead of adding new attribute to hashes.


This is a bit mind bending at first, but I get the idea :)
More elegant / compact than using arrays, for sure.




It cannot because NIL is also valid hash item value so it will
not be usable in all cases. But of course it does not mean that
we cannot remove RT error from hb_hGet() and document it as expected
behavior. If someone prefers functions call instead of faster h[key]
then probably he has some special reasons for this. One of such reason
can be missing RT error.


Experienced hash users should say the final word.

[ As a non-experienced one, I'd vote to drop similar
RTEs from functions. ]


xhb compatibility is not a concern BTW, because it uses
different function names anyway.


Because you asked to translate most of them. At the beginning
this implementation was using xHarbour compatible API. Anyhow
I do not think we have to be strictly compatible with RTE in
such functions.


It was not a complaint. Renaming has a nice side effect that
Harbour functionality is easy to detach from any xhb
heritage (meaning we're not restricted by xhb). If we happen
to bend any hash functions too far, we can just add the old
version to xhb.lib with the fully compliant functionality
and without any extra mapping tricks. xhb users should decide
what counts as "too far", and they'll most probably let us know.

Brgds,
Viktor

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: Re: [Harbour] 2008-11-09 20:58 UTC+0100 Viktor Szakats (harbour.01syenar hu)

2008-11-10 Thread [EMAIL PROTECTED]
>Could you post the details of your Harbour build
>switches and C compiler type/version, Harbour revision?
>Did you do your tests in MT or ST mode?

---cut---
SET C_USR=-DHB_GUI -DHB_FM_STATISTICS_OFF -DHB_NO_PROFILER
-DADS_LIB_VERSION=700 -DHB_HASH_MSG_ITEMS -DHB_FM_STD_ALLOC
-DHB_NO_DEBUG
---cut---

---cut bcc32.cfg---
-IE:\bcc55\include;E:\bcc55\include\dinkumware
-LE:\bcc55\lib
-O2
-d
-5
-6
-a8
-WC
-w-inl-
---cut bcc32.cfg---

Path is called bcc55, but I´m using bcc6.10.


To compile test\memtst.prg I set:

---cut---
set HB_ARCHITECTURE=w32
set HB_COMPILER=bcc32
rem set HB_USER_LIBS=rddads.lib,ace32.li
set HB_BIN_INSTALL=e:\harbour\bin\b32
set HB_LIB_INSTALL=e:\harbour\lib\b32
set HB_INC_INSTALL=e:\harbour\include
COPY e:\bcc32.cfg e:\harbour\tests
---cut---

and call from tests dir: 

..\bin\hbmk memtst


>Maybe also Vista version/SP level, CPU type and
>physical memory could also help.
Windows Vista Ultimate, Intel Pentium 4 CPU 3.06 GHz, RAM 1Mb

>Experience from Vista users would also be great to
>hear.
With the same environment and Windows XP I see no problem with dlalloc


Best regards,

Toninho.

__
Faça ligações para outros computadores com o novo Yahoo! Messenger
http://br.beta.messenger.yahoo.com/
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Printer list

2008-11-10 Thread Szakáts Viktor

Hi,

Check GETPRINTERS() in hbwin.lib.

Brgds,
Viktor

On 2008.11.10., at 4:09, Guillermo Varona Silupú wrote:


Hi
Is there any role that I return the printer list (names and ports  
they use)?

and the default printer

I use: WinXP SP3 + Harbour + MinGW

Best Regards.

GVS
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] 2008-11-09 20:58 UTC+0100 Viktor Szakats (harbour.01syenar hu)

2008-11-10 Thread Szakáts Viktor

Hi Toninho,

Could you post the details of your Harbour build
switches and C compiler type/version, Harbour revision?
Did you do your tests in MT or ST mode?

Maybe also Vista version/SP level, CPU type and
physical memory could also help.

Experience from Vista users would also be great to
hear.

Brgds,
Viktor

On 2008.11.10., at 12:03, [EMAIL PROTECTED] wrote:


In windows vista my tests display bad results if we use DL_ALLOC,


Can you tell some more about this? What does
"bad results" mean? It'd be important to know about
such problems before we settle with our default.


Hi Viktor, sorry for delay. I don´t have windows vista in my home, so
I was waiting to do another test in my office.

I did two posts here in the past, about this because I thought this
issue important.

In Windows Vista, my application doesn´t run smooth with dlalloc, it
pauses with a short delay in some circunstancies.

To reproduce this problem, run tests\memtst.prg. In last test with
standard bcc memory manager memtst run smooth and fast, but with
dlalloc it pause in each test.

---cut---
a := {}
for i := 1 to N_LOOPS
  aadd( a, {} )
  if i%1000 == 0
 ?? i
  endif
next
---cut---

With windowsXP both MM works fine.


Regards,

Toninho.

__
Faça ligações para outros computadores com o novo Yahoo! Messenger
http://br.beta.messenger.yahoo.com/
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Re: Harbour under OS/2 - OpenWatcom

2008-11-10 Thread David Arturo Macias Corona

I found in documentation included in OW a sample for multithreading

Entirely page is below
Przemek, can you check page ?

They talk about DosEnterCritSec() and DosExitCritSec() to prevent 
collisions between threads


I tested using
  wcl386 -bt=os2 -bm -l=os2v2 mthread

and results are:

Initial thread id = 1
Hi from thread 5
Hi from thread 4
Hi from thread 3
Hi from thread 2


There are this info in doc too


There is a limit to the number of threads an application can create 
under 16-bit OS/2.  The default limit is 32.  This limit can be adjusted 
by statically initializing the unsigned global variable __MaxThreads.


Under 32-bit OS/2, there is no limit to the number of threads an 
application can create.  However, due to the way in which multiple 
threads are supported in the Open Watcom libraries, there is a small 
performance penalty once the number of threads exceeds the default limit 
of 32 (this number includes the initial thread).  If you are creating 
more than 32 threads and wish to avoid this performance penalty, you can 
redefine the threshold value of 32.  You can statically initialize the 
global variable __MaxThreads.


By adding the following line to your multi-threaded application, the new 
threshold value will be set to 48.



 unsigned __MaxThreads = { 48 };


David Macias



Let us create a simple multi-threaded application.  The source code for 
this example can be found in \watcom\samples\os2.



 #include 
 #include 
 #include 
 #define INCL_DOS
 #include 

 static  volatile intNumThreads;
 static  volatile intHoldThreads;

 #define NUM_THREADS 5
 #define STACK_SIZE  32768

 static void a_thread( void *arglist )
 /***/
 {
 while( HoldThreads ) {
 DosSleep( 1 );
 }
 printf( "Hi from thread %d\n", *_threadid );
 DosEnterCritSec();
 --NumThreads;
 DosExitCritSec();
 _endthread();
 }

 int main( void )
 /**/
 {
 int i;

 printf( "Initial thread id = %d\n", *_threadid );
 NumThreads = 0;
 HoldThreads = 1;
 /* initial thread counts as 1 */
 for( i = 2; i <= NUM_THREADS; ++i ) {
 if( _beginthread( a_thread, NULL, STACK_SIZE, NULL ) == -1 
)

 {
 printf( "creation of thread %d failed\n", i );
 } else {
 ++NumThreads;
 }
 }

 HoldThreads = 0;
 while( NumThreads != 0 ) {
 DosSleep( 1 );
 }
 return( 0 );
 }

Note:

 1.In the function a_thread, DosEnterCritSec and DosExitCritSec are 
called when we modify the variable NumThreads.  This ensures that the 
action of extracting the value of NumThreads from memory, incrementing 
the value, and storing the new result into memory, occurs without 
interruption.  If these functions were not called, it would be possible 
for two threads to extract the value of NumThreads from memory before an 
update occurred.


Let us assume that the file mthread.c contains the above example. 
Before compiling the file, make sure that the WATCOM environment 
variable is set to the directory in which you installed Open Watcom 
C/C++.  Also, the INCLUDE environment variable must include the 
\watcom\h\os2 and \watcom\h directories ("\WATCOM" is the directory in 
which Open Watcom C/C++ was installed).


We can now compile and link the application by issuing the following 
command.



 [C:\]wcl386 -bt=os2 -bm -l=os2v2 mthread

The "bm" option must be specified since we are creating a multi-threaded 
application.  If your multi-threaded application contains more than one 
module, each module must be compiled using the "bm" switch.


The "l" option specifies the target system for which the application is 
to be linked.  The system name os2v2 is defined in the file wlsystem.lnk 
which is located in the "BINW" subdirectory of the directory in which 
you installed Open Watcom C/C++.


The multi-threaded application is now ready to be run.

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: Re: [Harbour] 2008-11-09 20:58 UTC+0100 Viktor Szakats (harbour.01syenar hu)

2008-11-10 Thread [EMAIL PROTECTED]
>> In windows vista my tests display bad results if we use DL_ALLOC,
>
>Can you tell some more about this? What does
>"bad results" mean? It'd be important to know about
>such problems before we settle with our default.

Hi Viktor, sorry for delay. I don´t have windows vista in my home, so
I was waiting to do another test in my office.

I did two posts here in the past, about this because I thought this
issue important.

In Windows Vista, my application doesn´t run smooth with dlalloc, it
pauses with a short delay in some circunstancies.

To reproduce this problem, run tests\memtst.prg. In last test with
standard bcc memory manager memtst run smooth and fast, but with
dlalloc it pause in each test.

---cut---
a := {}
for i := 1 to N_LOOPS
   aadd( a, {} )
   if i%1000 == 0
  ?? i
   endif
next
---cut---

With windowsXP both MM works fine.


Regards,

Toninho.

__
Faça ligações para outros computadores com o novo Yahoo! Messenger
http://br.beta.messenger.yahoo.com/
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Re: Harbour under OS/2 - OpenWatcom

2008-11-10 Thread David Arturo Macias Corona

[Przemek]
> ../../thread.c(1240): Error! E029: col(60) symbol '_gettid' has not 
been declared

>
> _gettid() is GCC local function.
> I do not see function which returns directly thread ID in OS2 API.
> Probably it can be extracted from TIB structure returned by
> DosGetInfoBlocks(). I cannot find simpler method. Maurilio can you help?
>

[Maurilio]
> I've not tested this code, but something like this should give you 
the thread id.

> unsigned long _gettid()
> {
>PTIB   ptib = NULL;
>APIRET rc;
>
>rc = DosGetInfoBlocks(&ptib, NULL);
>
>return ptib->tib_ptib2->tib2_ultid;
> }
> Hope this help.

[Przemek]
>Yes, thanks. I hoped that maybe there is simpler version then using
>DosGetInfoBlocks() but we can also use this. Thank you very much.

Przemek, Maurilio:

I do not know if it is what you are looking for
I found in different places of documentation included in OW
-
 The macro _threadid can be used to determine the current thread 
identifier.

-

The _threadid macro can be used to determine the current thread 
identifier.  It is defined as follows.



 int *__threadid(void);
 #define _threadid (__threadid())

The header file stddef.h contains the definition of the _threadid macro.
-

_threadid
Prototype in .

This variable/function may be used to obtain the id of the current 
thread which is an int.  In the 32-bit libraries,  _threadid is a 
function that returns a pointer to an int.  In the 16-bit libraries, 
_threadid is a far pointer to an int.  Note that the value stored where 
 _threadid points does not necessarily change when a thread context 
switch occurs (so do not make a copy of the pointer ...  it may change). 
 To obtain the current thread identifier, simply code:


 int tid = *_threadid;
-


So I tried in source\vm\thread.c

---
#if defined( HB_OS_OS2 )

#include< David was here !

ULONG _hb_gettid( void )
{
   ULONG tid = 0;
   PTIB  ptib = NULL;

   printf( "_hb_gettid()\r\n", tid ); fflush(stdout);
/*   < David was here !
   if( DosGetInfoBlocks( &ptib, NULL ) == NO_ERROR )
   {
  if( ! ptib )
 { printf( "ptib is NULL\r\n" ); fflush(stdout); }
  else if( !ptib->tib_ptib2 )
 { printf( "ptib->tib_ptib2 is NULL\r\n" ); fflush(stdout); }
  else
 tid = ptib->tib_ptib2->tib2_ultid;
   }
*/

   tid = *_threadid; < David was here !

   printf( "TID=%lu\r\n", tid ); fflush(stdout);

   return tid;
}
#endif
---

and mttest02.exe result with values TID=1, 2
---
[...]
_hb_gettid()
TID=1
1. hb_threadMutexLock()
_hb_gettid()
TID=2
[...]
---

So if _threadid is useful giving same value as GCC _gettid(), then 
_hb_gettid() can be discarded and use in harbour\include\hbthread.h:


---
//discard
   extern ULONG _hb_gettid( void );

#  if defined( __GNUC__ )
# define HB_THREAD_SELF()( ( TID ) _gettid() )

#  else

// case for OpenWatcom
//   Use something like
  #include< David was here !
   tid = *_threadid; < David was here !

int vs ULONG ?
In the 32-bit libraries,  _threadid is a function that returns a pointer 
to an int


#  else

//discard
# define HB_THREAD_SELF()( ( TID ) _hb_gettid() )
#  endif
---


And in this case ( thread ID ) what is happening/using in Windows 
OpenWatcom ? It can be used in OS/2 Watcom ?


David Macias


___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


RE: [Harbour] Problem with TOleAuto class

2008-11-10 Thread J. Lefebvre
Hi Przemek,

I already tryed that.

oReport:Set("RECORDSELECTIONFORMULA" , '{FFAC.CODJOU} = "VEN"' )

is also working...

in win_ole.c

I checked the result of 

  OleGetID( pDisp, hb_itemGetSymbol( hb_stackBaseItem() )->szName, &DispID, 
&bSetFirst )

Wich succeded and correctly set bSetFirst to True.

It is only the assignation wich failed ...

 OleSetProperty( pDisp, DispID, &DispParams )

Regards,

JF

-Message d'origine-
De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] De la part de Przemyslaw 
Czerpak
Envoyé : lundi 10 novembre 2008 1:12
À : Harbour Project Main Developer List.
Objet : Re: [Harbour] Problem with TOleAuto class

On Sun, 09 Nov 2008, J. Lefebvre wrote:

Hi,

> I have a strange problem with the TOleAuto Class from contrib/hbwin
> I can create an ole automation object without any problem,
> I can Get a propertie, using the automatic Getproperty routing method (by 
> onerror method), so this one is working fine
> cFormula := oReport:RecordSelectionFormula
> But doing this one does not work :
> oReport:RecordSelectionFormula := '{FFAC.CODJOU} = "VEN"'
> (Error 25926100/3  DISP_E_MEMBERNOTFOUND: _RECORDSELECTIONFORMULA)
> Whilst this one is working :
> oReport:Set("RecordSelectionFormula" , '{FFAC.CODJOU} = "VEN"' )
> I checked win_ole.c sources, comparing HB_FUNC( TOLEAUTO_ONERROR ) and
> HB_FUNC( TOLEAUTO_SET )and I did no see any reason for those error.
> Any Idea ?

Messages are in upper case and maybe this is the source of problem.

best regards,
Przemek
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] 2008-11-10 09:50 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

2008-11-10 Thread Szakáts Viktor
2008-11-10 09:50 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
  * include/hbmath.h
! Fixed Pelles C 5.00 not having an 'inf' (HUGE_VAL) symbol 
  when in -Tarm-coff (~WinCE) mode. Pelles C bug (?).

; NOTE: Now core fully compiles in WinCE mode. So we have 
a new port.

; TOFIX: (this is a complete list of all Pelles C WinCE problems)
 [except hbmysql errors]

  --- WARNINGS
  POLINK: warning: Multiple '.rdata' sections found with different flags 
(0x4040 and 0xc040).
  POLINK: warning: Multiple '.rdata' sections found with different flags 
(0x4040 and 0xc040).
  ../../ctnet.c(119): warning #2027: Missing prototype for 
'WNetGetLastError'.
  ../../ctnet.c(167): warning #2027: Missing prototype for 
'WNetCancelConnection'.
  ../../ctnet.c(208): warning #2027: Missing prototype for 
'WNetAddConnection'.
  ../../ctnet.c(210): warning #2027: Missing prototype for 
'WNetAddConnection'.
  ../../ctnet.c(251): warning #2027: Missing prototype for 
'WNetGetProviderName'.
  ../../ctnet.c(271): warning #2027: Missing prototype for 
'WNetGetProviderName'.
  ../../disk.c(127): warning #2027: Missing prototype for 'GetDriveType'.
  ../../disk.c(244): warning #2027: Missing prototype for 'SetVolumeLabel'.
  ../../disk.c(270): warning #2027: Missing prototype for 
'GetVolumeInformation'.
  ../../disk.c(307): warning #2027: Missing prototype for 
'GetVolumeInformation'.
  ../../disk.c(337): warning #2027: Missing prototype for 'GetFullPathName'.
  ../../winapi.c(194): warning #2027: Missing prototype for 
'InsertMenuItem'.
  ../../winapi.c(219): warning #2027: Missing prototype for 'SetMenu'.
  ../../getenvrn.c(177): warning #2027: Missing prototype for 
'GetEnvironmentStrings'.
  ../../getenvrn.c(246): warning #2027: Missing prototype for 
'FreeEnvironmentStrings'.
  contrib\hbsqlit3\sqlite3\sqlite3.c(9936): warning #2027: Missing 
prototype for 'localtime'.
  ../../tpwin32.c(75): warning #2027: Missing prototype for 'BuildCommDCB'.
  ../../wincorec.c(164): warning #2027: Missing prototype for 
'CreateMDIWindow'.
  ../../fi_winfu.c(97): warning #2027: Missing prototype for 
'CreateDIBitmap'.
  ../../fi_winfu.c(147): warning #2027: Missing prototype for 'GetDIBits'.
  ../../sqlbase.c(509): warning #2130: Result of unsigned comparison is 
constant.

  --- ERRORS
  contrib\gtwvg\gtwvg.h(78): fatal error #1035: Can't find include file 
.
  ../../ctnet.c(119): warning #2027: Missing prototype for 
'WNetGetLastError'.
  ../../disk.c(129): error #2048: Undeclared identifier 'DRIVE_RAMDISK'.
  ../../disk.c(129): error #2045: Case label must be a constant integer 
expression.
  ../../disk.c(132): error #2048: Undeclared identifier 'DRIVE_REMOVABLE'.
  ../../disk.c(132): error #2045: Case label must be a constant integer 
expression.
  ../../disk.c(135): error #2048: Undeclared identifier 'DRIVE_FIXED'.
  ../../disk.c(135): error #2045: Case label must be a constant integer 
expression.
  ../../disk.c(138): error #2048: Undeclared identifier 'DRIVE_CDROM'.
  ../../disk.c(138): error #2045: Case label must be a constant integer 
expression.
  ../../disk.c(141): error #2048: Undeclared identifier 'DRIVE_REMOTE'.
  ../../disk.c(141): error #2045: Case label must be a constant integer 
expression.
  ../../winapi.c(70): error #2048: Undeclared identifier 'CS_OWNDC'.
  ../../winapi.c(75): error #2048: Undeclared identifier 'IDI_APPLICATION'.
  ../../winapi.c(75): error #2140: Type error in argument 2 to 'LoadIconW'; 
found 'int', expected 'const wchar_t *'.
  ../../winapi.c(181): error #2048: Undeclared identifier 'MFS_DISABLED'.
  ../../getenvrn.c(177): error #2168: Operands of = have incompatible types 
'wchar_t *' and 'int'.
  ../../odbc.c(94): fatal error #1035: Can't find include file .
  contrib\hbsqlit3\sqlite3\sqlite3.c(9936): error #2168: Operands of = have 
incompatible types '(incomplete) struct tm *' and 'int'.
  contrib\hbsqlit3\sqlite3\sqlite3.c(9937): error #2152: Unknown field 
'tm_year' of '(incomplete) struct tm'.
  contrib\hbsqlit3\sqlite3\sqlite3.c(9938): error #2152: Unknown field 
'tm_mon' of '(incomplete) struct tm'.
  contrib\hbsqlit3\sqlite3\sqlite3.c(9939): error #2152: Unknown field 
'tm_mday' of '(incomplete) struct tm'.
  contrib\hbsqlit3\sqlite3\sqlite3.c(9940): error #2152: Unknown field 
'tm_hour' of '(incomplete) struct tm'.
  contrib\hbsqlit3\sqlite3\sqlite3.c(9941): error #2152: Unknown field 
'tm_min' of '(incomplete) struct tm'.
  contrib\hbsqlit3\sqlite3\sqlite3.c(9942): error #2152: Unknown field 
'tm_sec' of '(incomplete) struct tm'.
  contrib\hbsqlit3\sqlite3\sqlite3.c(22136): error #2120: Redeclaration of 
'localtime' previously declared at contrib\hbsqlit3\sqlite3\sqlite3.c(9936): 
found '(incomplete) struct tm * __cdecl function(const un