Re: [dev] Warning free code: the missing modules

2006-07-19 Thread Stephan Bergmann

Kay Ramme - Sun Germany - Hamburg wrote:

Stephan Bergmann wrote:

Kay Ramme - Sun Germany - Hamburg wrote:

Hi,

please correct me, if I am wrong. I understand this as a 'C' 
inherited C++ oddity (no constructors for integral values), which 
leads to a warning if the first operation on the integral value is 
not classified as assignment. Obviously 'operator =' has not been 
classified as assignment at least not for the right operand.


No, the compiler does not assume the user-supplied operator = has 
any assignment semantics.  Rather, as the operator = is inline, GCC 
tries 

I thought that this is what I said ;-), however.

So, it seems that we have used the wrong operator here. Therefor I 
tend to agree to Frank, that we may want to fix this.


The choice of operator is indeed unfortunate.  However, I do not agree 
that


  - T b;
  + T b = T();

is in general a fix that improves code quality.
Certainly not in general, only for the places the warning gets emitted. 
And only for the reason, that we may have chosen the wrong operator.


I do not understand why the choice of function name should motivate us 
to change or not to change some code so that the (imperfect) 
definitive-assignment-analysis of some compiler does not cause problems. 
 (The chosen function name operator = is IMO unfortunate in that a 
human reader might assume modification of the lhs, whereas it actually 
does assignment to the rhs.)



If I get it right, the compiler makers are more or less in a dilemma.


Why?  They just need to be conservative in 
definitive-assignment-analysis and do not emit warnings if the compiler 
is not sure that a variable has definitely not been assigned a value (as 
most compiler versions seem to do).


-Stephan


-Stephan

Kay


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] Warning free code: the missing modules

2006-07-19 Thread Stephan Bergmann

Frank Schönheit - Sun Microsystems Germany wrote:

Hi Stephan,

So, it seems that we have used the wrong operator here. Therefor I tend 
to agree to Frank, that we may want to fix this.

The choice of operator is indeed unfortunate.  However, I do not agree that

   - T b;
   + T b = T();

is in general a fix that improves code quality.


Don't know which Ts are affected, but the original example was about
sal_Bool, and

  - sal_Bool b;
  + sal_Bool b( sal_False );

seems legitimate to me.


With GCC 4.0.2, sal_Bool and other small integral types like 
sal_Int16, sal_Unicode are affected.  With GCC 4.1.1, only those other 
small integral types are affected (which are used considerably less 
often in conjunction with com::sun::star::Any than sal_Bool).


In the case of sal_Bool, it might be true that false is a better default 
value than true (no pun intended), but that need not be the case always, 
so you would have to analyze each place in the code where you add = 
false, which is tedious due to the large number of places involved. 
And still, I personally consider it a degradation of code quality to 
explicitly assign an (arbitrary) default value to a variable in places 
where it is obvious that the variable is only used after definitively 
having been assigned to (in places where that is not obvious, I think it 
is often better to restructure the code to make that obvious, than to 
initially assign an arbitrary dummy value to the variable; rationale: in 
the latter case, the reader has to scan the code to find out whether the 
initial assignment is of importance, or merely there to silence warnings 
from the compiler).



Besides that: Sure, not every change we did during the warning-freeness
ride does directly improve code quality. But this is not the point -
it's getting the code to compile without warning :)


...but only on compilers where we can achieve this with a reasonable 
amount of work.  If we would need to make lots of hacky changes to 
make a single version of GCC work, while most other versions (even more 
recent ones) of GCC would not need that, I think we should weigh what is 
more important.  That's all I wanted to say.


There will probably always be warnings which are wrong. Remember for
instance MSVC's
  Foo* pFoo = ...;
  pFoo-doSomething();
which sometimes yields the wrong pFoo might be used without being
initialized (or so) warning.
In those cases, we simply need to workaround the compiler bug/limitation
here.

Of course, if there are other alternatives (other than disabling the
respective warning completely), then that's fine, too. However, none
springs to my mind ...


Not supporting GCC 4.0.2 is the alternative that springs to my mind (see 
above).


-Stephan


Ciao
Frank


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[dev] Mac Os X - X11 ?

2006-07-19 Thread Jens R. Knutsen
Hvor kan jeg få tak i tillegget X11 for å kunne bruke OpenOffice på  
min maskin med operativsysten

Mac OS X, versjon 10.4.7?

Mvh
Jens R. Knutsen
[EMAIL PROTECTED]
Tlf 76952281 - mobnr; 905 03 178




Re: [dev] Warning free code: the missing modules

2006-07-19 Thread Frank Schönheit - Sun Microsystems Germa ny
Hi Stephan,

 In the case of sal_Bool, it might be true that false is a better default 
 value than true (no pun intended), but that need not be the case always, 
 so you would have to analyze each place in the code where you add = 
 false, which is tedious due to the large number of places involved.

Sure, this analysis has to take place. forgive me if I missed this in
the thread: About which order of magnitued do we talk here? 10 places?
1?

 And still, I personally consider it a degradation of code quality to 
 explicitly assign an (arbitrary) default value to a variable in places 
 where it is obvious that the variable is only used after definitively 
 having been assigned to (in places where that is not obvious, I think it 
 is often better to restructure the code to make that obvious, than to 
 initially assign an arbitrary dummy value to the variable; rationale: in 
 the latter case, the reader has to scan the code to find out whether the 
 initial assignment is of importance, or merely there to silence warnings 
 from the compiler).

Well, the warning could be an indicator to think about whether
restructuring would be a good idea here ...

That's the basic idea behind warnings, isn't it? Sometimes, they point
to an error - then fix it. Sometimes, they don't, then check whether you
can write code which doesn't expose the warning. This does not always
mean silence the warning by brute force (which is assigning a default
in our case), but restructure your code so it becomes better and less
warning-prone is of course always a valid alternative :)

 ...but only on compilers where we can achieve this with a reasonable 
 amount of work.  If we would need to make lots of hacky changes to 
 make a single version of GCC work, while most other versions (even more 
 recent ones) of GCC would not need that, I think we should weigh what is 
 more important.  That's all I wanted to say.

Okay, I agree. As said, I might have missed the number of places
affected. For a certain amount, I'd probably also say it's not worth it
... (though my gut feeling is that my limit would be higher than your's
here :)

 Not supporting GCC 4.0.2 is the alternative that springs to my mind (see 
 above).

Okay, cannot judge how many people will be repelled by this. But if it's
as buggy as you say, this might be no problem, anyway ...

Ciao
Frank


-- 
- Frank Schönheit, Software Engineer [EMAIL PROTECTED] -
- Sun Microsystems  http://www.sun.com/staroffice -
- OpenOffice.org Database   http://dba.openoffice.org -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] Warning free code: the missing modules

2006-07-19 Thread Stephan Bergmann

Frank Schönheit - Sun Microsystems Germany wrote:

Hi Stephan,

In the case of sal_Bool, it might be true that false is a better default 
value than true (no pun intended), but that need not be the case always, 
so you would have to analyze each place in the code where you add = 
false, which is tedious due to the large number of places involved.


Sure, this analysis has to take place. forgive me if I missed this in
the thread: About which order of magnitued do we talk here? 10 places?
1?


10^2--10^3 would be my guess

-Stephan

[...]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] Warning free code: the missing modules

2006-07-19 Thread Frank Schönheit - Sun Microsystems Germa ny
Hi Stephan,

 forgive me if I missed this in
the thread: About which order of magnitued do we talk here? 10 places?
1?
 
 10^2--10^3 would be my guess

Hmm, that's quite a lot ...

Ciao
Frank

-- 
- Frank Schönheit, Software Engineer [EMAIL PROTECTED] -
- Sun Microsystems  http://www.sun.com/staroffice -
- OpenOffice.org Database   http://dba.openoffice.org -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] Seeking for guide

2006-07-19 Thread Philipp Lohmann - Sun Germany

Mathias Bauer wrote:

Xu, Shenshen wrote:


Hello Everybody,

Could anybody tell me what is the meaning of the return value of
IMPL_LINK, I found some of the codes return 0L and few of the codes
return 1L, I wonder what the difference is ?


The meaning is that returning 0 means that the link wasn't executed
successfully while returning any other value means success.


nitpick
Actually the return value is a matter of negotiation between caller and 
callee - an implementation detail so to speak. In some case you might 
find more values than 0 or 1. Think of a Link as an early version of 
boost::bind, a safe function pointer.

/nitpick


As in most cases nobody cared for the return value on the calling side
it's possible that also meanwhile nobody cares for it anymore on the
called side. :-)


Yes, that too :-)

Kind regards, pl

--
If you give someone a program, you will frustrate them for a day;
if you teach them how to program, you will frustrate them for a lifetime.
 -- Author unknown

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[dev] Re: paragraph number

2006-07-19 Thread Gloops

Hello,

I have read somewhere that version 2.0.3 does that easily.
___
On 18th of July 2006 02:40, Mohammad Alhammouri wrote :

Hello there,

is there a similar function to the page number function  
xPageCursor.getPage(),

that finds the paragraph number  within the text document.
if not is there any way to find that number in JAVA ?

thanks in advance.

Regards,
Mohammad.



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] Set default posSize for new created Windows

2006-07-19 Thread Tom Schindl
You could add this Snippet to our collection:

http://codesnippets.services.openoffice.org/

Tom

Christoph Lutz schrieb:
 Hi Carsten,
 
 On 7/14/06, Carsten Driesner [EMAIL PROTECTED] wrote:
 You can see that the configuration set Factories contains nodes for
 every appplication module, in the example
 com.sun.star.frame.StartModule and com.sun.star.text.TextDocument.
 The property called ooSetupFactoryWindowAttributes stores the left,top
 position and the width and height in pixel. You can use the
 configuration API to change these values programmatically.
 
 thanks. this works!
 
 if you are interested in the solution, just have a look at example code
 below.
 
 I am not sure if the current implementation reads the values for every
 new window or if it just uses internal values. So it's possible that the
 values are only read once  from the configuration at startup time. Be
 aware that these values will be overwritten when a user changes the
 position or size of an application window.
 
 it seems that the current implementation reads the attribue for every
 new window and doesn't use internal values!
 
 here the example code:
 
/**
 * Diese Hilfsmethode liest das Attribut
 ooSetupFactoryWindowAttributes aus
 * dem Konfigurationsknoten
 *
 /org.openoffice.Setup/Office/Factories/com.sun.star.text.TextDocument
 * der OOo-Konfiguration, welches die Standard-FensterAttribute
 enthält, mit
 * denen neue Fenster für TextDokumente erzeugt werden.
 *
 * @return
 */
private static String getDefaultWindowAttributes(XComponentContext
 ctx) {
try {
Object cp = ctx.getServiceManager().createInstanceWithContext(
com.sun.star.configuration.ConfigurationProvider, ctx);
 
// creation arguments: nodepath
com.sun.star.beans.PropertyValue aPathArgument = new
 com.sun.star.beans.PropertyValue();
aPathArgument.Name = nodepath;
aPathArgument.Value =
 /org.openoffice.Setup/Office/Factories/com.sun.star.text.TextDocument;
Object[] aArguments = new Object[1];
aArguments[0] = aPathArgument;
 
XMultiServiceFactory xmsf = (XMultiServiceFactory) UnoRuntime
.queryInterface(XMultiServiceFactory.class, cp);
Object ca = xmsf.createInstanceWithArguments(
com.sun.star.configuration.ConfigurationUpdateAccess,
aArguments);
 
XPropertySet prop = (XPropertySet) UnoRuntime.queryInterface(
XPropertySet.class, ca);
return prop
   
 .getPropertyValue(ooSetupFactoryWindowAttributes).toString();
} catch (java.lang.Exception e) {
}
return null;
}
 
/**
 * Diese Hilfsmethode setzt das Attribut
 ooSetupFactoryWindowAttributes aus
 * dem Konfigurationsknoten
 *
 /org.openoffice.Setup/Office/Factories/com.sun.star.text.TextDocument
 * der OOo-Konfiguration auf den neuen Wert value, der (am besten) über
 * einen vorhergehenden Aufruf von getDefaultWindowAttributes() gewonnen
 * wird.
 *
 * @param value
 */
private static void setDefaultWindowAttributes(XComponentContext ctx,
String value) {
try {
Object cp = ctx.getServiceManager().createInstanceWithContext(
com.sun.star.configuration.ConfigurationProvider, ctx);
 
// creation arguments: nodepath
com.sun.star.beans.PropertyValue aPathArgument = new
 com.sun.star.beans.PropertyValue();
aPathArgument.Name = nodepath;
aPathArgument.Value =
 /org.openoffice.Setup/Office/Factories/com.sun.star.text.TextDocument;
Object[] aArguments = new Object[1];
aArguments[0] = aPathArgument;
 
XMultiServiceFactory xmsf = (XMultiServiceFactory) UnoRuntime
.queryInterface(XMultiServiceFactory.class, cp);
Object ca = xmsf.createInstanceWithArguments(
com.sun.star.configuration.ConfigurationUpdateAccess,
aArguments);
 
XPropertySet prop = (XPropertySet) UnoRuntime.queryInterface(
XPropertySet.class, ca);
prop.setPropertyValue(ooSetupFactoryWindowAttributes, value);
 
XChangesBatch committer = (XChangesBatch) UnoRuntime
.queryInterface(XChangesBatch.class, ca);
committer.commitChanges();
} catch (java.lang.Exception e) {
}
}
 
 regards,
 Christoph
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] Asian CJK Group Announced!

2006-07-19 Thread Kazunari Hirano

Hi Jianhua and all,

On 7/18/06, jiao jianhua [EMAIL PROTECTED] wrote:

Good luck.

Thanks.  Developer's help are essential to improve CJK functionality,
usability and accessibility.
Please feel free adding your idea to improve them at:
http://wiki.services.openoffice.org/wiki/CJK_Group
Regards,
khirano

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] Asian CJK Group Announced!

2006-07-19 Thread Kazunari Hirano

Hi Stanley and all,

Congrantulations!

Thanks.

 This group will allow these three projects to share experiences on
 common L10N and I18N issues

We often face gsl issues such as font rendering, vertical writing, use
of grid, pdf export etc.
I hope the Group help share our experience and improve CJK use with
OpenOffice.org.
Regards,
khirano

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]