RE: [PATCH] Update 2 - Setup.exe property sheet patch

2002-01-07 Thread "Schaible, Jörg"

Hi Robert,

>> "Once virtual, always virtual", i.e., it isn't necessary to add
>"virtual" to
>> any overridden virtual functions, and in fact it's not possible to
>> "unvirtualize" once virtualized.  I do try to maintain them as a
>stylistic
>> convention, but even I fall short sometimes ;-).  Thanks for patching
>that.
>
>My understanding is that this is not 100% the case. Or more
>pedantically - in a class derived from a a class with virtual 
>functions,
>those virtual functions wil get overriden, but if not declared virtual
>themselves, any further derivations will not. I believe that the
>technique of doing this to allow inlining of code calling references to
>an object is called 'final classes'.

Sorry, Gary is right. See 10.3.2 of the standard.

Regards,
Jörg



FW: [PATCH] Update 2 - Setup.exe property sheet patch

2002-01-07 Thread "Schaible, Jörg"

did not recognize, that Robert mailed twice - one private, one to the list

-Original Message-
From: Schaible, Jörg 
Sent: Monday, January 07, 2002 3:24 PM
To: 'Robert Collins'
Subject: RE: [PATCH] Update 2 - Setup.exe property sheet patch


Hi Robert,

unfortunately is this document not freely available and have to be purchased
from the ISO commitee, but I can cite here:

--- 10.3.2 ---
If a virtual member function "vf" is declared in a class "Base" and in a
derived class "Derived", derived directly or indirectly from "Base", a
member function "vf" with the same name and same parameter list as
"Base::vf" is declared, then "Dervived::vf" is also virtual (wether or not
so declared) and it overrides(97) "Base::vf". For conveniance we say that
any virtual function overrides itself. Then in any well-formed class, for
each virtual function declared in that class or any of its direct or
indirect base classes there is a unique "final overrider" that overrides
that function and every other overrider of that function. The rules for
member lookup (10.2) are used to determin the final overrider for a virtual
function in the scope of a derived class but ignoring names introduced by
"using-declaration"s. [Example:

struct A {
virtual void f();
};
struct B : virtual A {
virtual void f();
};

struct C : B , virtual A {
using A::f;
}
void foo() {
C c;
c.f();  // calls "B::f", the final overrider
c.C::f();   // calls "A::f" because of the using-declaration
-- end example]

97) A function with the same name but a different parameter list (clause 13)
as a virtual function is not necessarily virtual and does not override. The
use of the "virtual" specifier in the declaration of an overriding function
is legal but redundant (has empty semantics). Access control (clause 11) is
not considered in determining overriding.


Regards,
Jörg

BTW: The address book entries are managed in a company wide Exchange server,
so no modification possible. It seems that you've setup your mail client to
accept "," as separator, while normally only ";" is accepted.



>-Original Message-
>From: Robert Collins [mailto:[EMAIL PROTECTED]]
>Sent: Monday, January 07, 2002 2:47 PM
>To: Schaible, Jörg
>Subject: Fw: [PATCH] Update 2 - Setup.exe property sheet patch
>
>
>
>===
>- Original Message -
>From: "Robert Collins" <[EMAIL PROTECTED]>
>To: ; "Jörg" <[EMAIL PROTECTED]>;
><[EMAIL PROTECTED]>
>Sent: Tuesday, January 08, 2002 12:46 AM
>Subject: Re: [PATCH] Update 2 - Setup.exe property sheet patch
>
>
>> I'm sorry Jorg, but I don't have the standard to reference. Do you
>know
>> of an on-line copy? (Googling for "c++ standard 10.3.2" gave me lots
>of
>> useless hits :})
>>
>> I got my info from the C++ FAQS second edition (Cline Lomow & Girou),
>> FAQ 33.09.
>>
>> Rob
>> ===
>> - Original Message -
>> From: "Schaible, Jörg" <[EMAIL PROTECTED]>
>> >My understanding is that this is not 100% the case. Or more
>> >pedantically - in a class derived from a a class with virtual
>> >functions,
>> >those virtual functions wil get overriden, but if not declared
>virtual
>> >themselves, any further derivations will not. I believe that the
>> >technique of doing this to allow inlining of code calling references
>to
>> >an object is called 'final classes'.
>>
>> Sorry, Gary is right. See 10.3.2 of the standard.
>>
>> Regards,
>> Jörg
>>
>>
>



[PATCH] cygpath.cc

2002-05-20 Thread &quot;Schaible, Jörg"

Hi,

as already announced here is the next patch for cygpath.cc supporting -l
option to convert file names to Windows long format. Unfortunately this
works not for strict mode, since functions cygwin_conv_to_win32_path and
cygwin_conv_to_full_win32_path will return an error for a Windows short
path/name.

2002-05-20  Joerg Schaible <[EMAIL PROTECTED]>

* cygpath.cc (main): Add option l to support conversion to
Windows long file names.  Refactured code for capital options.
Support of options from file for capital options.
(dowin): New function.  Refactured from main.
(doit): Call long path conversion.
(get_long_name): New function.
(get_long_paths): New function.
(get_long_path_name_w32impl): New function.  Reimplementation
of Windows API function GetLongPathName (only 98/Me/2000/XP or 
higher).
(get_short_name): Call GetShortPathName only once.
(get_short_paths): Fix calculating buffer size.
* utils.sgml: Update cygpath section for l option.

Regards,
Jörg




cygpath.diff
Description: Binary data


utils.diff
Description: Binary data


RE: [PATCH] cygpath.cc

2002-05-22 Thread &quot;Schaible, Jörg"

Hi Corinna,

>AFAICS, the patch is ok.

Fine.

>Just two question:
>
>- The -s and -l options are only valid with the -w option.  Shouldn't
>  either the usage reflect that or the -s and -l options imply -w
>  automatically?  It's not *that* obvious for the user that s/he
>  has to use `cygpath -w -l ...'.

I always had in mind that it would be great to implement the options once
for -u, too.
Example:

$ cygdrive -u `cygdrive -asw \`cygdrive -u 'C:\Dokumente und
Einstellungen\All Users\.bashrc'\``
/cygdrive/c/DOKUME~1/ALLUSE~1/BASHRC~2

It would be nice to have instead:

$ cygdrive -us 'C:\Dokumente und Einstellungen\All Users\.bashrc'
/cygdrive/c/DOKUME~1/ALLUSE~1/BASHRC~2

Another example:
At least on my box W2K is converting TEMP automatically into short form if I
open a console. This is quite inconvenient in bash and I would like to have
rather the long form:

$ echo $TEMP
/cygdrive/c/DOKUME~1/joehni/LOKALE~1/Temp

Prefered call:
$ export TEMP=`cygpath -ul $TEMP`
$ echo $TEMP
/cygdrive/c/Dokumente\ und\ Einstellungen/joehni/Lokale\ Einstellungen/Temp

In any case, the normal usage of cygpath should not care about -s or -l,
since you would normally only convert a Unix path into a DOSish notation
(which is by default the long form anyway). Both options are IMHO for very
special purposes.

What bothers me more, is that you cannot convert a short path into the long
version when check_case:strict is set, since the conversion functions in the
cygwin1.dll will reject that path as non-matching. But I am not really sure,
whether this functions should look for the alternative physical name or not.
Another problem arises with Java CLASSPATHs, since their element may be also
files instead of directories, which prevents a conversion unfortunately,
too.

Regards
Jörg



RE: [PATCH] cygpath.cc

2002-05-22 Thread &quot;Schaible, Jörg"

Hi Corinna,

>I see and that's a good idea, IMHO.  However, for now I have
>applied your patch and just tweaked the usage output slightly.

Fine. I was unhappy with it by myself also, but was not sure how to improve
it in the best way.
:)



RE: /dev patch

2002-05-22 Thread &quot;Schaible, Jörg"


Hi Chris,

>This patch adds support for a virtual /dev which just lists 
>the devices that
>cygwin currently supports. 

Just curious, since I have this setup: Have you ever tested what happens
when /cygdrive is renamed to /dev already ??

Regards,
Jörg