[Harbour] Re: Documentation storm on user's list

2010-06-11 Thread pete_westg

στις 29/05/2010 10:40, O/H Przemysław Czerpak έγραψε:

 This is my last massage in this thread. I strongly suggest to invest
 resources necessary to create such long messages about how to create
 harbour documentation in creating some real documentation. It will
 be really productive.

 best regards,
 Przemek


To (Przemek, Viktor and co-developers)

I understand that you, the leaders of Harbour, along with a bunch of 
very capable and helpfully dedicated developers, have undertaken an 
abandoned-on-the-shelf project and have made it such an outstanding 
programming language with an unparalleled quality, similar to which is 
not easy to find in the FOSS arena.
We the standalone HB_users, mostly ex-clipper programmers, feel very 
happy, lucky and blessed to have you in the head of this great-great 
project:

- happy because we were here to see it happen,
	- lucky because we have (someone more, someone lesser) _benefited_ by 
your generously offered product, product of your hard work
	- blessed because (well, i 'm not such a religious man to speak about 
it, let say that..) we just feel it so!


I guess that some of us, being motivated by such thoughts, we're seeking 
ways to give back whatever we think could help the project, give back 
not as a payment but rather as a moral obligation . Sadly i see that 
till now the results is a mixture of plenty of good intentions along 
with much disturbing noise. It really doesn't help! To mumbling, in the 
event, our apologies does not help either. Maybe the best thing we could 
do is to follow your suggestion, that is, to try to invest resources 
necessary to create such long messages about how to create harbour 
documentation in creating some real documentation. [The only problem 
here is the very real case where some user (for many reasons, eg. lack 
of time, lack of knowledge, inefficiency in writing etc) is unable to 
create some real documentation but still he wants to contribute. That 
was the aim to create a Harbour-Foundation but since you consider that 
it'd produce more problems than it'd solve, we can let the proposition 
peacefully rest into recycle bin of the never-said].


Once again, we[*] feel the need to express ours warm thanks and sincere 
appreciation to your great work.

Many-many thanks for your patient too!

---
Pete


[*] and before any fellow reader comes and question me:
who have made me the spoke-person of Harbour users, i must clarify
that i 'm not pretend that i represent anyone, nor i am doing it 
intentionally!

it's only because i find it humanly normal to express an opinion,
it's only because we sometimes have to speak about things that touch our 
common interests,

but also because this _dumbness by the users side_
is unfitting to thinking people, and certainly discouraging and 
disheartening

for the developers! [forgive me if you find my words are
wrong and/or upsetting, but Please let's take, from time to time, the 
chance to reply to them just to say 'thanks'. eventually, it seems that 
still it counts more than we guess...]




___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Re: Documentation storm on user's list

2010-05-29 Thread pete_westg

στις 29/05/2010 00:42, O/H Pritpal Bedi έγραψε:



Ok, I commit to write documentation, how much you will pay ?


Certainly not less than the current market price[*] for similar products.

(and of course, I'd prefer it to be an under-official-leadership 
initiative.)




Users of Harbour can pledge how much one is willing to pay,
pledge only on this list, do not pay now, and if the total figure
will match my expectations, I will start writing.
You will pay when I will at certain stage.



For sure, your suggested terms are fairly reasonable, however..

 Accepted ?

..I'd prefer to we follow a Harbour-Fund financing model. That is, we 
start making donations to a common-treasure and let project leaders 
decide and make hiring agreements for manual creation, or whatever 
would help project's improvement.


But, of course, let's hear other harbour followers opinions.






[*] Okay! plus the beers, at the release-day feasts.
( 12 bottles maximum and no more.. ;) )

___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Re: Documentation storm on user's list

2010-05-28 Thread pete_westg

στις 27/05/2010 23:33, O/H smu johnson έγραψε:

Some thoughts,

On Thu, May 27, 2010 at 12:18 PM, pete_westg
pete_we...@yahoo.gr mailto:pete_we...@yahoo.gr
wrote:

are you sure you have understood my words? I 'm afraid you don't!
What I am not sure for, is the reason for this misunderstanding.
Perhaps, is it due to my bad English or what?


-  Stating that Harbour's lack of documention is straightly against to
the spirit of open source initiative can be considered offensive by
many.  Who made you the spokesperson of the Open Source movement?  It
could be interpreted that your statement means their years of work were
done improperly.



Please don't put  words in my mouth that i never said. Or please show me 
even one instance of the word Harbour into my first post to which you 
are referring. There is not one! You have just tailored a phrase, by 
mixing your assumptions with cut-n-past parts of my lines, to base your 
claim that this (the tailored) statement can be considered offensive by 
many.
I wonder what is the purpose of this conversation. Is it to accuse me, 
for my comments being offensive, strange, insulting, bugging or 
whatever?  I can't say to someone do or don't feel offended.  All I 
can do is to explain my point, and wish that through understanding, the 
reasons that make someone to feel offended would vanish. So, i must make 
it clear, that when i wrote documentation is (or must be) on upper 
top, in the scale of open source priorities, since documents, or better 
the lack of documents, is straightly against to the spirit of open 
source initiative (this is my unaltered phrase)  i was not referring 
specifically to Harbour but rather i was expressing a general point, 
regarding the whole opensource case. and I believe, you don't need to be 
a spokesperson of the OS movement to speak up your thoughts about it.
I have a sentiment that the problem in present days is not just the open 
source code. you don't need to be a specialist to see it. Trillions 
lines of very good code have been written and quadrillions will be 
written in the close future. It is really amazing and all the respect 
belongs to the great developers. On the other hand we can't ignore the 
fact that we already have an infinite ocean of source code inside which 
we (the community/society) could sink or we could sail. I vote to sail! 
and the ship to sail and not sink, you guess it, is the documents.
To put it an other way, the crucial subject today, is not any  more the 
open source code. It is (and always was) the open knowledge.
And knowledge without documentations is simply impossible. Documentation 
is the vehicle of knowledge. documenting is to securing the ability to 
be able to use the brilliant machines that brilliant developers-brains 
have created.

Now, Viktor will come and accuse me: Empty words, again.
Yes, I see it. I see the emptiness in the absence of manual. I see the 
emptiness in my inability to be useful in the subject.
And the question is still here, as you Viktor, say. Why we have no 
documentation?
Why we have such a brilliant and huge amount of excellent code, like 
Harbour has become thanks to your (and all of developers) tremendous 
efforts and not an analogous documentation? We said, it is difficult to 
create documentation. but if we think it better, difficulty is not the 
main reason. The main reason is that nobody wants documentation so much, 
nobody is burned to create it. and the deeper cause of this, is the 
lack of belief to the great value of a documentation, is the lack of 
belief to the vital significance of a manual, it is because we are much 
eager for source code and we are not interested for documentation, 
perhaps because is not so glorious to write documents compared to 
code-writing. obviously we lack a documenting culture( similar to 
coding culture), and for this to happen, perhaps we need empty words, 
even to just have something to filling up, even to just have something 
to keep the spark alive. as i see it there two directions. to get rid 
off of this documentation blah-blah, which means that we'll immediately 
stop bugging you the developers, or to keep searching ways how the goal 
of documentation will become true. Honestly, Viktor, i 'm not interest 
to bugging you, (i don't know what exactly the bugging is, or means, 
but if it is related to the activity of a bug, then i think it's my time 
to start feeling offended. However, feeling offended or not, doesn't 
cure my real displeasure to feel almost guilty because i can't find a 
practical way to effectively contribute documentation.


___
P.S. Strangely enough, i see no reaction to the challenging idea of 
harbour-xhb merging. Does the harbour community think it was a joke or 
this deafening silence express their glacial indifference about the 
future of Harbour?


---
Pete

___
Harbour mailing list

[Harbour] Re: Documentation storm on user's list

2010-05-28 Thread pete_westg

στις 28/05/2010 15:23, O/H Viktor Szakáts έγραψε:



Pls remember that even such _quite well documented_, _fully open_
and long time known systems as Linux, have several companies
_earning_ large sums of money by supporting them (f.e. Red Hat),


(I don't know if this has been proposed before but) why don't you create 
some kind of Harbour Fund? It could be used to accept donations, 
contributions and, why not, for hired services (be it on-line help or 
code-writing or support etc.)



---
Pete

___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Re: Documentation storm on user's list

2010-05-27 Thread pete_westg

στις 27/05/2010 13:02, O/H Viktor Szakáts έγραψε:

To Pete,

[ Sorry to reply here, but I'm readonly user of users-list. ]


Strange and insulting thoughts towards anyone who have
dedicated huge amount (many years) of (maybe even full
time) to take this project where it is now. Maybe
you could elaborate on what you mean by documentation
friendly code...

If coding means nothing to you, pls delete all the
Harbour sources and try to use it after...



Viktor,

[I finally managed to discover that my post in users-forum had been 
replied here. so, here it is my humble yet belated answer]


are you sure you have understood my words? I 'm afraid you don't!
What I am not sure for, is the reason for this misunderstanding. 
Perhaps, is it due to my bad English or what?
And how did you find insulting thoughts, there where it doesn't exist? 
When I am saying documentation is more valuable than coding, in no way 
mean that coding is nothing.
It just means that without documentation, many parts of code is almost 
unusable, for many people (users).


We all agree with you that if every individual harbour user would be 
willing to write some (small) part of documentation, the Harbour manual 
would perhaps be already here. But life has shown that it is not that 
simple. Months ago we have had the very same discussion. many people had 
then declared their interest to contribute, some of them had shown their 
valuable ideas and had made specific proposals. Unfortunately after a 
while the interest had faded out, and the only real remained/result 
was an documenting extension into hbide, which supposedly would help to 
write documentation. I have tried to use it. It didn't work (not in 
operational meaning of the term). Beyond this, i 've had spent hours 
digging into sources, trying to format some pieces of documentation. the 
results were not significant. why? because writing documentation is 
indeed difficult, actually is more difficult than somebody can imagine 
and for sure more difficult than coding. that's why, i suppose, for 
every thousands good coders correspond few -very few or even none- good 
documenters.

Regarding your definition of idealism, i couldn't put it better.
thinking, learning, contributing and/or paying is the only realistic 
approach.
Starting from the later, please don't have any doubt that I (and I 
believe many other Harbour users) would be more than willing to _pay_ 
for a manual if anything did exist. Contributing is another crucial story.
Nobody's _demanding_ anything from developers. And how one could do 
that? But asking for documentation should not considered as a demand. Is 
a very normal and absolutely expected query for any newcomer to Harbour. 
The do it yourself is a pushing away answer. What insulting do you 
find in this paragraph?
By documentation friendly code i mean two simple and very well known 
things.
a. Short introductory description on top of source code (in place of 
this long and more or less useless copyright reminding replica )

b. in-line comments.
c. sample program.
[OK, they are three, but any combination of two will perfectly do the 
job ;)]




P.S.: merging harbour-xhb? (wow! this question could be a real 
philosophical dilemma). although this is a core-developers decision, 
you better  don't have doubts that the great majority of the users, in 
case they'd been asked for,  would loudly vote No!


---
Pete

___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Re: NETIO Questions

2010-04-22 Thread pete_westg

στις 22/04/2010 21:49, O/H Winston Garcia έγραψε:

Have you a sample of Netio server what received many conections ?
The samples en contrib/netio only accept one conection at time ?
Greeting
Winston Garcia
Venezuela



Take a look there:
http://f1.grp.yahoofs.com/v1/sJzQSwQCQIw6Af3naxConxutoY73t1E0_89GDgni_uAcXdcW2NxwfaeOJflYf70ReA1pJdu_mVYYmlkv4st3C-jZREL9OxKf/CONTRIB/NETIO.7z

It is a simple NETIO applet that i wrote (win platform) utilizing Server 
 client connection(s). Install the prog. (just copy the executable) 
into directory where are your .dbfs and start it in server mode.
Then install in *each* client-machine a copy of the (same) executable, 
enter server's IP and try to connect. It should work..


rgrds,

---
Pete

___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Re: field-(name) in a macro

2010-03-24 Thread pete_westg

στις 21/03/2010 20:31, O/H Przemysław Czerpak έγραψε:

On Sun, 21 Mar 2010, Alexandr Okhotnikov wrote:

Hi


Example!

FUNC MAIN()
DBCREATE( aa.dbf, { { DACC, C, 10, 0 } } )
use aa.dbf alias aa new
DBAPPEND()
aa-DACC := hello
? aa-DACC :, aa-DACC
? 'aa-(DACC) :', aa-(DACC)

RETURN 0


Have you tested it?

druzus:/tmp# hbrun tst.prg

aa-DACC : hello
aa-(DACC) : hello

druzus:/tmp#

druzus:/tmp# harbour -n -gh tst.prg
Harbour 2.1.0dev (Rev. 14184)
Copyright (c) 1999-2010, http://www.harbour-project.org/
Compiling 'tst.prg'...
Lines 11, Functions/Procedures 1
Generating Harbour Portable Object source output to 'tst.hrb'... Done.
druzus:/tmp# hbrun tst.hrb

aa-DACC : hello
aa-(DACC) : hello

druzus:/tmp#

So it _confirms_ that you information about different in compiler when
HRB files are generated was completely wrong !!!
BTW technically such difference is impossible because compiler internally
generates _ONLY_ .HRB files which is native raw format for Harbour and
when -gc[N] switch is used then generated code is translated to .c code
as PCODE encapsulated in C functions (-gc[0-2]) or as C code directly
calling HVM functions (-gc3)

best regards,
Przemek



Hbrun tst.prg does work.
Compiled version does NOT!

(please see below tests)

WORKING -
C:\DEV\Harbour\Mytestshbrun tst.prg

aa-DACC : hello
aa-(DACC) : hello
Press any key to continue...
C:\DEV\Harbour\Mytests

NOT WORKING -
C:\DEV\Harbour\Mytestshbmk2 tst.prg
hbmk2: Processing configuration: C:\Harbour\bin\hbmk.cfg
Harbour 2.1.0dev (Rev. 14220)
Copyright (c) 1999-2010, http://www.harbour-project.org/
Compiling 'tst.prg'...
Lines 13, Functions/Procedures 1
Generating C source output to 'E:\WIN_TEMP\tst.c'... Done.

C:\DEV\Harbour\Myteststst

aa-DACC : hello
Error BASE/1449  Syntax error: 
Called from MAIN(9)
C:\DEV\Harbour\Mytests
--

Exactly the same error generates the line:

 Public mVar. := Len(_HMG_SYSDATA [  66 ]) + 1



regards,

---
Pete



___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Re: field-(name) in a macro

2010-03-24 Thread pete_westg

στις 24/03/2010 12:01, O/H Viktor Szakáts έγραψε:

WORKING -
C:\DEV\Harbour\Mytestshbrun tst.prg

aa-DACC : hello
aa-(DACC) : hello
Press any key to continue...
C:\DEV\Harbour\Mytests

NOT WORKING -
C:\DEV\Harbour\Mytestshbmk2 tst.prg
hbmk2: Processing configuration: C:\Harbour\bin\hbmk.cfg
Harbour 2.1.0dev (Rev. 14220)
Copyright (c) 1999-2010, http://www.harbour-project.org/
Compiling 'tst.prg'...
Lines 13, Functions/Procedures 1
Generating C source output to 'E:\WIN_TEMP\tst.c'... Done.

C:\DEV\Harbour\Myteststst

aa-DACC : hello
Error BASE/1449  Syntax error:
Called from MAIN(9)
C:\DEV\Harbour\Mytests
--

Exactly the same error generates the line:

PublicmVar. := Len(_HMG_SYSDATA [  66 ]) + 1


Very interesting. Here they both compile cleanly
(and first one also works) alright even with latest SVN.

Here is tested code (unaltered):
---
DBCREATE( aa.dbf, { { DACC, C, 10, 0 } } )

use aa.dbf alias aa new
DBAPPEND()
aa-DACC := hello
? aa-DACC :, aa-DACC
? 'aa-(DACC) :', aa-(DACC)
---

---
LOCAL _HMG_SYSDATA
PublicmVar. := Len(_HMG_SYSDATA [  66 ]) + 1
---

Double check your environment and test .prg,
because it's almost sure there is something
wrong with it.

Brgds,
Viktor



Ok, I will try to check my env. (although i'm not sure what exactly 
should I look for, since everything looks simple  clean. -I am just 
setting  paths and let the hbmk2 do the rest.)

BTW, is there any possibility to be the problem O/S related?
I 'm getting the error(s) on my every-day-use WIN2K box. On a WinXPPRO 
machine (where I make clean harbour's builds) everything works w/o prob. 
However binaries (exes and libs) on WIN2K box are copy/pasted from WinXPPRO.



regards,

---
Pete











___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour-users] Re: Mangled Posts

2010-03-19 Thread pete_westg
στις 18/03/2010 21:35, O/H do...@people.net.au 
έγραψε:

  Hi all

  For some reason my posts are getting mangled in the daily digests and I'm
not sure why.



Hi xProgrammer,

I'm not sure what you mean by getting mangled. I do read harbour.user 
mailing list through my e-mail client (thunderbird). I'm also receiving 
a daily-digest in my yahoo.mail account. In both, all posts (yours 
included) seem to be ok. The only problem i have noticed so far, in 
the digest version, is that in your posts show up in some places odd 
characters which, i suppose, are tab characters (perhaps not correctly 
decoded?) but this little-to-none effect has to your text regarding 
readability.


(By the way, I (and it's not only me, i think) find much interesting 
your posts about your client-server implementation.)


regards,

---
Pete

___
Harbour-users mailing list (attachment size limit: 40KB)
Harbour-users@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour-users


[Harbour] What about hard-coded make directives?

2010-03-17 Thread pete_westg

Hi,

I don't know if it is technically easy or even possible to implemented, 
but i think it might be very handy to have inside main .prg one (or 
more) make-time directive(s) instructing hbmk2, about desired compiler 
options and/or libraries inclusion.


Something like:

#makeoption /switch1, /switch2, ... /switchN
and
#libinclude libhb1, libhb2, ... libhbN
or
#using /switch1, /switch2, libhb1, libhb2, ... libhbN

It could save us (the commandliners particularly) some time and 
stress-full typing of hard to remember switches and lib names. Just a 
thought..


---
Pete



___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Re: What about hard-coded make directives?

2010-03-17 Thread pete_westg

στις 17/03/2010 18:18, O/H Viktor Szakáts έγραψε:


The rest would need hbmk2 to parse all source files for
make options, which would in turn have a rather huge speed
penalty. Plus it'd need a 3rd kind of option syntax to
maintain (above existing .hbp and .hbc).


No, in no way I did mean to parse all source files. And i fully agree 
that  that should be a very good chance of troubles like those you are 
 describe.
My thought was of a very few or even one line *on top of main.prg only* 
in the form :


#using this lib list, /and that switch list.

I can think some good reasons for implementing this feature 
(readability, flexibility, testability, security,  etc.) but if it's so 
much and complex work to be done then we can forget it. -no doubt, you 
are the chief-programmer here! ;-)



regards,

---
Pete

___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Re: About ADEL()

2010-03-15 Thread pete_westg

στις 13/03/2010 12:52, O/H Viktor Szakáts έγραψε:



And here you answered the question. ADEL() is a Clipper
compatibility function, so it's expected to behave exactly
the same way as in Clipper, regardless of what we think
about some of that behavior.


Hi Viktor,
Thanks you for your reply. I don't like to be pedantic but,
as I understand it, the term compatibility is the case where the 
compatible object keeps the same *documented* behavior and produce the 
same *expected* results like the original. Preserving or rather 
cloning undocumented questionable/problematic features, just for the 
sake of compatibility, is a bit surrealistic, which is ok on a 
philosophical/aesthetic level but from a pure programming view,

perhaps needs more consideration.

I agree that adel() does some kind of delete in the meaning that deletes 
the contents of an element but not the element itself, however, let me 
just to point out that in the case of a multidimensional array this 
delete translates to make it broken.
Anyway, enough with ADEL(). The question is if we can do something with 
HB_ADEL(). I don't know if it is proper to propose now modifications but 
here it is:

---
HB_ADEL(aArray, [wrong type value]) -- mismatch argument RTE
HB_ADEL(aArray, [nPosition out of index]) -- boundary RTE
HB_ADEL(aArray)  --  {} // an empty array, equal to aArray := {}

--

Of course all of the above could be easily implemented locally,
in prg or preprocessor level, but since i have faced the problem
in a real code situation, I thought that it might be useful
to notify my experience here.
Please, (and i hope i don't peculate your time) consider the code:
-
// IF nFile := ascan(a, {|x| UPPER(x[F_NAME]) == HBDIR.EXE})  0
IF ( nFile := HB_ASCAN( a, {|x| UPPER(x[F_NAME]) == HBDIR.EXE},,,.T. ) 
)  0

HB_Adel(a, nFile, .t. )
ENDIF
-
It took me some time to realize what was wrong (in the now commented 
line above). The problem, as you can easily see, was the (unforgivable) 
lack of parentheses that had as result nFile var to take a boolean value 
(.T. in the particular case), which subsequently was giving to HB_ADEL() 
the freedom to do its magic by deleting  the first array element 
instead of  HBDIR.EXE element. Of course I would have saved  my time 
(and my nerves) if HB_ADEL() had, from the very first run, warned me 
about the erroneous type value of nFile.


best regards,

---
Pete

___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour-users] Re: GUI programming.

2010-03-15 Thread pete_westg

στις 15/03/2010 17:10, O/H Paola Bruccoleri έγραψε:


Hello Pete..
do you know ooHG? it is a pure OOP GUI and the licence is the same that
harbour

bye


Hi Paola,
Yes, I am aware of ooHG. Interesting project and good product also.
But to be honest I am not an eager supporter of the OOP model. Actually 
I keep many doubts about object programming paradigm, since I don't 
believe is better than other models like procedural programming for 
example. I know, OOP is established as main stream programming style but 
I don't think that they're proved all the benefits that it is supposed 
that it has.


regards,

---
Pete

___
Harbour-users mailing list (attachment size limit: 40KB)
Harbour-users@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour-users


[Harbour] About ADEL()

2010-03-13 Thread pete_westg

According documentation a proper use of the Adel() function, is:
  ADEL(aTarget, nPosition) -- aTarget
where nPosition is the aTarget array element being deleted.
However, function  ADEL() does interesting, -yet unexpected at least for 
me, things when it's invoked with a slightly fuzzy way shown in the 
sample below:


8-
#define CRLF HB_OSNewLine()
PROCEDURE MAIN()
LOCAL aArray := {one, two, three, four, five}

? TestProg:  + HB_ARGV()+  [testing adel() function]
? 


?
? --- Our array before adel()'s touch.. -- 
AEVAL( aArray, {|ele| QQOUT(HB_ValToExp(ele) +  )} )
?
? CASE_1 : ADEL(aArray, .T. .OR. .F.) -- 
ADEL(aArray, .T. .OR. .F.) // to adel() or to not adel()?
AEVAL( aArray, {|ele| QQOUT(HB_ValToExp(ele) +  )} )
?
? CASE_2 : ADEL(aArray, 'Guess what element you'll nullify* now?') -- 
ADEL(aArray, Guess what element you'll nullify now?) // RTFM
AEVAL( aArray, {|ele| QQOUT(HB_ValToExp(ele) +  )} )
?
? CASE_3 : ADEL(aArray, 2^66) -- 
ADEL(aArray, 2^66)  // can arrays grow up so much ??
AEVAL( aArray, {|ele| QQOUT(HB_ValToExp(ele) +  )} )
?
? CASE_4 : ADEL(aArray)  -- 
ADEL(aArray) // do you mean, delete entire array?
AEVAL( aArray, {|ele| QQOUT(HB_ValToExp(ele) +  )} )
?
? CASE_4b : ADEL(ADEL(aArray)) -- 
?? ADEL(ADEL(aArray)) // now that you've learned the art of adeleting...
?
AEVAL( aArray, {|ele| QQOUT(HB_ValToExp(ele) +  )} )
?
Wait
RETURN
-8


In cases 1  2 one would expect the runtime mechanism to throw an error
because of the erroneous value types passed.
In case 3 a boundary error might be more appropriate/alarming.
And in Case 4 either:
- an entire array deletion could be more connotative expected or
- a runtime error due to lack of the 2nd mandatory arg.

Having the Adel() in all the above case to delete the first array 
element is quite unreasonable, primarily because such an action is 
undocumented. To be fair this is not a Harbour only feature. Clipper 
behaves exactly the same here!


And while talking about adel() i think the name ADEL is rather
misleading, since the function does NOT actually delete elements,
but rather nullifies them, and you have to use asize()[*] to achieve
what you probably wanted to do. Perhaps ANUL() would be a more precise name
but i think it's a little late now to rename it g.
__
[*] I am aware of HB_ADEL() function, that accepts a 3rd parameter 
(boolean) by which you can eventually adjust the array size without 
the need of calling asize(). This is a good thing. The bad things are 
that HB_adel() stands in the shade of adel() (due to lack of 
documentation) while the above remarks about ADEL() apply also for 
HB_ADEL too.


---
Pete

___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Re: About Harbour Documentation

2010-02-19 Thread pete_westg

στις 18/02/2010 17:27, O/H Viktor Szakáts έγραψε:

Hi All,

 So, I'd like to ask prospective contributors to _ignore

these_ and concentrate on our path. It has been said
many times: There will only be a documentation (in any
format, or medium), if someone actually writes them.

There is no other way.



Ok, let's (try to) write some documentation.
But before we start we have to know, what format should adopt. I mean, is
Nanforum format mandatory or we could follow a more human form?
For example, I am going to start documenting the functions HB_DirExists(),
HB_FileExists(), HB_FNameExists() found into src\rtl\hbfile.c
I choose to reproduce the structure of, say, doc\en-EN\dir.txt, hence 
i have

to write something like:

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 2010 documentor's_name m...@myoffice.gr
 *Documentation for: HB_DirExists(), HB_FileExists(), HB_FNameExists()
 *
 * See COPYING for licensing terms.
 *
 */

/*  $DOC$
 *  $TEMPLATE$
 *  Function
 *  $NAME$
 * HB_DirExists()
 *  $CATEGORY$
 *  API
 *  $SUBCATEGORY$
 *  FileSys
 *  $ONELINER$
 *  Determine if a directory exists
 *  $SYNTAX$
 *  HB_DirExists( [cDirName] ) -- lExists
 *  $ARGUMENTS$
 *  cDirName Directory name you want to check if exist.
 * Can contain a path and Drive letter.
 * Wildcards are NOT supported.
 * If no path specified then the current path is used.
 * SET DEFAULT are not evaluated.
 *  $RETURNS$
 *  HB_DirExists returns a logical TRUE if cDirName exists, 
otherwise FALSE

 *  $DESCRIPTION$
 *Here goes a detailed and very time consuming 'bla-bla' about the 
function
 *for which bla-bla is better to been left for the second 
documantation wave

 *and why not as an imagination exercise for the potential reader)
 *
 *  $EXAMPLES$
 * #include 'common.ch'
 * Function Main( cDir )
 *Default cDir to lib
 *QOUT(Current directory:CurDir() )
 *QOUT(--)
 *QOUT( Directory:cDirdoes   IIF( 
HB_DirExists(cDir),  , 

NOT  )   exist! )
 *cDir := C:\
 *QOUT( Directory:cDirdoes   IIF( 
HB_DirExists(cDir),  , 

NOT  )   exist! )
 *QOUT()
 *WAIT
 *RETURN Nil
 *
 *  $STATUS$
 *  R
 *  $COMPLIANCE$
 *  C
 *  $PLATFORMS$
 *  All(LFN)
 *  $FILES$
 *  Library is rtl
 *  $SEEALSO$
 *  HB_FileExists(), HB_FNameExists()
 *  $END$
 */

 Now i have one/two more questions:
 Are all those eye-bothering '$'  '*' necesary?
 Also, are _all_ the above statements mandatory or we could leave out some
 of them like $SUBCATEGORY$ $STATUS$ $COMPLIANCE$ etc. to make the txt 
more

 compact and 'quick-readable'
 Supposing the answers are 'yes' let see how the above document
 could be written:

-- 


/*  $DOC$

FUNCNAME  : HB_DirExists( cDirName ) -- lExists

SHORTDESC : Determine if a directory exists

ARGUMENTS : cDirName Directory name you want to check if exist.
Can contain a path and Drive letter.
Wildcards are NOT supported.
If no path specified then the current path is used.
SET DEFAULT are not evaluated.

RETURNS  : HB_DirExists returns a logical TRUE if cDirName exists,
   otherwise FALSE

DESCRIPTION:
  [Here goes a detailed and very time consuming 'bla-bla' about the 
function
   for which bla-bla is better to left for the second documantation 
wave
   (and why not as an imagination exersize for the potential 
reader) ...

 ...]

EXAMPLES:
  #include 'common.ch'
  Function Main( cDir )
 Default cDir to lib
 QOUT(Current directory:CurDir() )
 QOUT(--)
 QOUT( Directory:cDirdoes   IIF( HB_DirExists( cDir 
),  ,

 NOT  )   exist! )
 cDir := C:\
 QOUT( Directory:cDirdoes   IIF( HB_DirExists( cDir 
),  ,

 NOT  )   exist! )
 QOUT()
 WAIT
 RETURN Nil

 PLATFORMS:
   All(LFN)
 FILES:
  Library is rtl
 SEE ALSO:
   HB_FileExists(), HB_FNameExists()
$END$
*/


An other critical question is how do i decide to document what?
That is, how do I know if the above documentation is not already written by
someone else? Obviously, somebody has to monitor the whole process, 
keeping an

eye on 'who is documenting what' to avoid overlapping writing.

And of course, there are other things/questions that must be cleared up, but
can't  been discussed all at once..
regards,

---
Pete

___
Harbour 

[Harbour] WCenter() malfunction.

2009-04-28 Thread pete_westg

Hi,

WCenter() does not seem to work properly, at least in my installation.
The problem arises when I pass the parameter [.t.], in order to obtain a real 
centering, that is,  in the center of 'physical screen' (or terminal window). 
Although the wrow() wcol() coordinates seems to been updated  correctly, the 
window's region does not move to the center of screen. The result is corrupted 
/ mispositioned text, leaking out of the viewable margins of the window.
The interesting thing, which (maybe) could help to isolate the problem, is that 
if you call alert() and then close it, immediately after the previously 
unsuccessfully 'centered' window, moves to the correct place in the center and 
everything looks ok.
The other collateral damage is that (portion of) the alert() is not displayed 
on the topmost screen layer, but overlapped beneath the 'non-centered' window. 
However, after the alert() trick  the overlap problem vanish.

Below is a small prog, showing the problem.
(Tested with both MingW and BCC,  using Pritpal Bedi's latest distro.)

/*--- code -*/
PROC Main()
SetColor(W+/B)
Scroll(); DevPos(0,0)
? Hello Harbour..
? It was a long time.
@ Row()+2, 0 Say  Ok! now let's open a win. (press a key..)
Inkey(0)
SetColor(W/BG)
wopen( 0,0,10,40 )
wbox(ÚÄ¿³ÙÄÀ³)
WinMess(This is a window. Press a key to center it, please.)
Inkey( 0 )
wcenter(.T.)
Alert( Hmmm! wcenter() doesn't seem to work properly..; ..not to mention 
that alert() is being overlapped!)
winMess(The very same window again. It must be centered now. (or not?))
Inkey(0)
Alert(How about alert position?)
return


PROC WinMess(cMess)
***
Scroll()
DevPos((MaxRow()/2)-1, 0)
? cMess
RETURN

/*--- End code -*/

---
Pete



  
___ 
Χρησιμοποιείτε Yahoo!; 
Βαρεθήκατε τα ενοχλητικά μηνύματα (spam); Το Yahoo! Mail 
διαθέτει την καλύτερη δυνατή προστασία κατά των ενοχλητικών 
μηνυμάτων http://login.yahoo.com/config/mail?.intl=gr 


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