]> git.pld-linux.org Git - packages/kdelibs.git/blame - kdelibs-branch.diff
- adapter
[packages/kdelibs.git] / kdelibs-branch.diff
CommitLineData
56e2d959
AM
1Index: kate/plugins/kdatatool/ktexteditor_kdatatool.desktop
2===================================================================
3--- kate/plugins/kdatatool/ktexteditor_kdatatool.desktop (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
4+++ kate/plugins/kdatatool/ktexteditor_kdatatool.desktop (.../branches/KDE/3.5/kdelibs) (revision 526003)
5@@ -83,7 +83,7 @@
6 Comment[cy]=Alluogi offer data fel theawrws a cywirydd sillafu (os maent wedi'u gosod)
7 Comment[da]=Aktivér dataværktøjer som begrebsordbog og stavekontrol (hvis installeret)
8 Comment[de]=Aktivierung von Dienstprogrammen wie Thesaurus und Rechtschreibprüfung (falls installiert)
9-Comment[el]=Ενεργοποίηση εργαλειών δεδομένων όπως ο θησαυρός λέξεων και ο ορθογραφικός έλεγχος (εάν είναι εγκατεστημένα)
10+Comment[el]=Ενεργοποίηση εργαλειών δεδομένων όπως ο θησαυρός λέξεων και ο ορθογραφικός έλεγχος (αν είναι εγκατεστημένα)
11 Comment[eo]=Enŝaltu datumiloj kiel "thesaurus" kaj literumado (se instalita)
12 Comment[es]=Activa herramientas como el thesaurus y el corrector ortográfico (si instalados)
13 Comment[et]=Andmete tööriistad, näiteks thesaurus ja õigekirja kontroll
14Index: kate/plugins/insertfile/ktexteditor_insertfile.desktop
15===================================================================
16--- kate/plugins/insertfile/ktexteditor_insertfile.desktop (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
17+++ kate/plugins/insertfile/ktexteditor_insertfile.desktop (.../branches/KDE/3.5/kdelibs) (revision 526003)
18@@ -20,7 +20,7 @@
19 Name[fa]=متصل‌کننده‌ی پرونده‌ی ورود KTextEditor
20 Name[fi]=KTextEditorin 'Lisää tiedosto'-laajennus
21 Name[fr]=Module externe du fichier d'insertion de KTextEditor
22-Name[fy]=KTextEditor-plugin foar it ynfoegjen fan triemen
23+Name[fy]=KTextEditor-plugin foar it ynfoegjen fan triemmen
24 Name[ga]=Breiseán KTextEditor chun comhad a ionsá
25 Name[gl]=Plugin de Inserzón de Arquivo de KTextEditor
26 Name[he]=תוסף הוספת קובץ ל־KTextEditor
27Index: kate/part/katedocument.cpp
28===================================================================
29--- kate/part/katedocument.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
30+++ kate/part/katedocument.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
31@@ -699,6 +699,10 @@
32
33 bool replacetabs = ( config()->configFlags() & KateDocumentConfig::cfReplaceTabsDyn && ! m_isInUndo );
34 uint tw = config()->tabWidth();
35+ uint insertPosExpanded = insertPos;
36+ KateTextLine::Ptr l = m_buffer->line( line );
37+ if (l != 0)
38+ insertPosExpanded = l->cursorX( insertPos, tw );
39
40 for (uint pos = 0; pos < len; pos++)
41 {
42@@ -706,28 +710,30 @@
43
44 if (ch == '\n')
45 {
46+ editInsertText (line, insertPos, buf);
47+
48 if ( !blockwise )
49 {
50- editInsertText (line, insertPos, buf);
51 editWrapLine (line, insertPos + buf.length());
52+ insertPos = insertPosExpanded = 0;
53 }
54 else
55 {
56- editInsertText (line, col, buf);
388da7ab 57-
56e2d959
AM
58 if ( line == lastLine() )
59- editWrapLine (line, col + buf.length());
60+ editWrapLine (line, insertPos + buf.length());
61 }
61c08fac 62
56e2d959
AM
63 line++;
64- insertPos = 0;
65 buf.truncate(0);
66+ l = m_buffer->line( line );
67+ if (l)
68+ insertPosExpanded = l->cursorX( insertPos, tw );
69 }
70 else
71 {
72 if ( replacetabs && ch == '\t' )
73 {
74- uint tr = tw - ( ((blockwise?col:insertPos)+buf.length())%tw ); //###
75+ uint tr = tw - ( insertPosExpanded+buf.length() )%tw;
76 for ( uint i=0; i < tr; i++ )
77 buf += ' ';
78 }
79@@ -736,10 +742,7 @@
80 }
81 }
61c08fac 82
56e2d959
AM
83- if ( !blockwise )
84- editInsertText (line, insertPos, buf);
85- else
86- editInsertText (line, col, buf);
87+ editInsertText (line, insertPos, buf);
88
89 editEnd ();
90 emit textInserted(line,insertPos);
91@@ -3097,29 +3100,7 @@
92 if (pos < 0 || pos >= (int)colX)
93 {
94 // only spaces on left side of cursor
95- // search a line with less spaces
96- int y = line;
97- while (--y >= 0)
98- {
99- // this is save, y <= line, and line was already success
100- textLine = m_buffer->plainLine(y);
101-
102- pos = textLine->firstChar();
103-
104- if (pos >= 0)
105- {
106- pos = textLine->cursorX(pos, config()->tabWidth());
107- if (pos < (int)colX)
108- {
109- replaceWithOptimizedSpace(line, col, pos, config()->configFlags());
110- break;
111- }
112- }
113- }
114- if (y < 0) {
115- // FIXME: what shoud we do in this case?
116- removeText(line, 0, line, col+complement);
117- }
118+ indent( view, line, -1);
119 }
120 else
121 removeText(line, col-1, line, col+complement);
122Index: kate/data/progress.xml
123===================================================================
124--- kate/data/progress.xml (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
125+++ kate/data/progress.xml (.../branches/KDE/3.5/kdelibs) (revision 526003)
126@@ -1,6 +1,6 @@
127 <?xml version="1.0" encoding="UTF-8"?>
128 <!DOCTYPE language SYSTEM "language.dtd">
129-<language name="progress" version="1.08" kateversion="2.4" section="Database" extensions="*.p;*.w;*.i" author="Rares Stanciulescu (rstanciu@operamail.com)" license="GPL">
130+<language name="progress" version="1.09" kateversion="2.4" section="Database" extensions="*.p;*.w;*.i;*.cls" author="Rares Stanciulescu (rstanciu@operamail.com)" license="GPL">
131
132 <highlighting>
133
134@@ -31,20 +31,11 @@
135 <item> TEMP-TABLE </item>
136 <item> BUFFER </item>
137 <item> STREAM </item>
138+ <item> SAX-WRITER </item>
139 <item> MEMPTR </item>
140 </list>
141
142 <list name="operators">
143- <item> + </item>
144- <item> - </item>
145- <item> * </item>
146- <item> / </item>
147- <item> = </item>
148- <item> &lt; </item>
149- <item> &gt; </item>
150- <item> &lt;= </item>
151- <item> &gt;= </item>
152- <item> &lt;&gt; </item>
153 <item> AND </item>
154 <item> OR </item>
155 <item> NOT </item>
156@@ -82,6 +73,8 @@
157
158 <list name="phrases">
159 <item> AS </item>
160+ <item> WORD-INDEX </item>
161+ <item> LIKE </item>
162 <item> ALERT-BOX </item>
163 <item> AT </item>
164 <item> COLOR </item>
165@@ -148,9 +141,17 @@
166 <item> NO-ECHO </item>
167 <item> NO-MAP </item>
168 <item> PRIVATE </item>
169+ <item> PUBLIC </item>
170+ <item> PROTECTED </item>
171 </list>
172
173 <list name="functions">
174+ <item> output-content-type </item>
175+ <item> get-value </item>
176+ <item> get-cgi </item>
177+ <item> get-field </item>
178+ <item> html-encode </item>
179+ <item> url-encode </item>
180 <item> ABSOLUTE </item>
181 <item> ACCUM </item>
182 <item> ADD-INTERVAL </item>
183@@ -577,6 +578,7 @@
184 <item> DEFAULT-WINDOW </item>
185 <item> ERROR-STATUS </item>
186 <item> FILE-INFO </item>
187+ <item> FIELD </item>
188 <item> FOCUS </item>
189 <item> FONT-TABLE </item>
190 <item> LAST-EVENT </item>
191@@ -611,7 +613,6 @@
192 <item> HONORPROKEYS </item>
193 <item> HONORRETURNKEY </item>
194 <item> LEFT </item>
195- <item> NAME </item>
196 <item> TOP </item>
197 <item> WIDTH </item>
198 <item> TAG </item>
199@@ -934,7 +935,6 @@
200 <item> MULTIPLE </item>
201 <item> MULTITASKING-INTERVAL </item>
202 <item> MUST-UNDERSTAND </item>
203- <item> NAME </item>
204 <item> NAMESPACE-PREFIX </item>
205 <item> NAMESPACE-URI </item>
206 <item> NEEDS-APPSERVER-PROMPT </item>
207@@ -1163,6 +1163,22 @@
208 <item> XML-SUPPRESS-NAMESPACE-PROCESSING </item>
209 <item> Y </item>
210 <item> YEAR-OFFSET </item>
211+ <item> WRITE-XMLSCHEMA </item>
212+ <item> WRITE-XML </item>
213+ <item> READ-XML </item>
214+ <item> NESTED </item>
215+ <item> XML-DATA-TYPE </item>
216+ <item> XML-NODE-TYPE </item>
217+ <item> FORMATTED </item>
218+ <item> SET-OUTPUT-DESTINATION </item>
219+ <item> START-DOCUMENT </item>
220+ <item> START-ELEMENT </item>
221+ <item> WRITE-CHARACTERS </item>
222+ <item> END-ELEMENT </item>
223+ <item> END-DOCUMENT </item>
224+ <item> WRITE-DATA-ELEMENT </item>
225+ <item> INSERT-ATTRIBUTE </item>
226+
227 </list>
228
229 <list name="methods">
230@@ -1489,7 +1505,7 @@
231 <DetectChar attribute="Comment" context="Identifier" char='"'/>
232 <DetectChar attribute="String" context="#stay" char='"'/>
233 <DetectChar attribute="String" context="#stay" char="'"/>
234- <AnyChar attribute="Symbol" context="#stay" String="{}[]()~:"/>
235+ <AnyChar attribute="Symbol" context="#stay" String="+-*=/\?~{}[]():."/>
236
237 <StringDetect attribute="Region Marker" context="#stay"
238 String="PROCEDURE" insensitive="TRUE"
239@@ -1504,7 +1520,27 @@
240 <StringDetect attribute="Region Marker" context="#stay"
241 String="END FUNCTION" insensitive="TRUE"
242 endRegion="F1" firstNonSpace="TRUE"/>
243+
244+ <StringDetect attribute="Region Marker" context="#stay"
245+ String="CLASS" insensitive="TRUE"
246+ beginRegion="C1" firstNonSpace="TRUE"/>
247+ <StringDetect attribute="Region Marker" context="#stay"
248+ String="END CLASS" insensitive="TRUE"
249+ endRegion="C1" firstNonSpace="TRUE"/>
250
251+ <StringDetect attribute="Region Marker" context="#stay"
252+ String="METHOD" insensitive="TRUE"
253+ beginRegion="M1" firstNonSpace="TRUE"/>
254+ <StringDetect attribute="Region Marker" context="#stay"
255+ String="END METHOD" insensitive="TRUE"
256+ endRegion="M1" firstNonSpace="TRUE"/>
257+ <StringDetect attribute="Region Marker" context="#stay"
258+ String="CONSTRUCTOR" insensitive="TRUE"
259+ beginRegion="CN1" firstNonSpace="TRUE"/>
260+ <StringDetect attribute="Region Marker" context="#stay"
261+ String="END CONSTRUCTOR" insensitive="TRUE"
262+ endRegion="CN1" firstNonSpace="TRUE"/>
263+
264 <StringDetect attribute="Function" context="#stay"
265 String="DO:" insensitive="TRUE"
266 beginRegion="L1" firstNonSpace="FALSE"/>
267@@ -1521,6 +1557,7 @@
268 String="END" insensitive="TRUE"
269 endRegion="L1" firstNonSpace="TRUE"/>
270
271+
272 </context>
273 <context name="String" attribute="String" lineEndContext="#stay">
274 <LineContinue attribute="String" context="#pop"/>
275Index: kate/data/lua.xml
276===================================================================
277--- kate/data/lua.xml (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
278+++ kate/data/lua.xml (.../branches/KDE/3.5/kdelibs) (revision 526003)
279@@ -1,6 +1,6 @@
280 <?xml version="1.0" encoding="UTF-8"?>
281 <!DOCTYPE language SYSTEM "language.dtd">
282-<language name="Lua" version="0.22" kateversion="2.3" section="Scripts" extensions="*.lua" mimetype="text/x-lua">
283+<language name="Lua" version="0.23" kateversion="2.3" section="Scripts" extensions="*.lua" mimetype="text/x-lua">
284 <highlighting>
285 <list name="keywords">
286 <item> and </item>
287@@ -19,7 +19,7 @@
288 <item> else </item>
289 <item> or </item>
290 <item> while </item>
291- <item> elsif </item>
292+ <item> elseif </item>
293 <item> in </item>
294 <item> repeat </item>
295 </list>
296Index: kate/data/ada.xml
297===================================================================
298--- kate/data/ada.xml (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
299+++ kate/data/ada.xml (.../branches/KDE/3.5/kdelibs) (revision 526003)
300@@ -73,14 +73,16 @@
301 <context attribute="Normal Text" lineEndContext="#stay" name="Default">
302 <RegExpr attribute="Keyword" context="#stay" String="if " insensitive="TRUE" beginRegion="Region1" firstNonSpace="true"/>
303 <StringDetect attribute="Keyword" context="#stay" String="end if" insensitive="TRUE" endRegion="Region1"/>
304- <RegExpr attribute="Keyword" context="#stay" String="case " insensitive="TRUE" beginRegion="Region2" firstNonSpace="true"/>
305- <StringDetect attribute="Keyword" context="#stay" String="end case" insensitive="TRUE" endRegion="Region2"/>
306 <RegExpr attribute="Keyword" context="#stay" String="\sloop\s+" insensitive="TRUE" beginRegion="Region3"/>
307 <RegExpr attribute="Keyword" context="#stay" String="\sloop$" insensitive="TRUE" beginRegion="Region3"/>
308 <StringDetect attribute="Keyword" context="#stay" String="end loop;" insensitive="TRUE" endRegion="Region3"/>
309 <RegExpr attribute="Keyword" context="#stay" String="\sselect\s+" insensitive="TRUE" beginRegion="Region4"/>
310 <RegExpr attribute="Keyword" context="#stay" String="\sselect$" insensitive="TRUE" beginRegion="Region4"/>
311 <StringDetect attribute="Keyword" context="#stay" String="end select;" insensitive="TRUE" endRegion="Region4"/>
312+ <RegExpr attribute="Keyword" context="#stay" String="\b(begin|case|record)\b" insensitive="true" beginRegion="Region5"/>
313+ <RegExpr attribute="Keyword" context="#stay" String="\bend(?=((\{[^}]*(\}|$)|\(\*.*(\*\)|$))*)([.;\s]|$)|//|$)" insensitive="true" endRegion="Region5"/>
314+ <StringDetect attribute="Region Marker" context="Region Marker" String="-- BEGIN" beginRegion="RegionMarker" firstNonSpace="true" />
315+ <StringDetect attribute="Region Marker" context="Region Marker" String="-- END" endRegion="RegionMarker" firstNonSpace="true" />
316 <keyword attribute="Keyword" context="#stay" String="keywords"/>
317 <Float attribute="Float" context="#stay"/>
318 <Int attribute="Decimal" context="#stay"/>
319@@ -88,6 +90,7 @@
320 <DetectChar attribute="String" context="String" char="&quot;"/>
321 <Detect2Chars attribute="Comment" context="Comment" char="-" char1="-"/>
322 </context>
323+ <context attribute="Region Marker" lineEndContext="#pop" name="Region Marker"/>
324 <context attribute="String" lineEndContext="#pop" name="String">
325 <DetectChar attribute="String" context="#pop" char="&quot;"/>
326 </context>
327@@ -102,6 +105,7 @@
328 <itemData name="Char" defStyleNum="dsChar" />
329 <itemData name="String" defStyleNum="dsString" />
330 <itemData name="Comment" defStyleNum="dsComment" />
331+ <itemData name="Region Marker" defStyleNum="dsRegionMarker" />
332 </itemDatas>
333 </highlighting>
334 <general>
335Index: kate/data/ruby.xml
336===================================================================
337--- kate/data/ruby.xml (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
338+++ kate/data/ruby.xml (.../branches/KDE/3.5/kdelibs) (revision 526003)
339@@ -34,7 +34,7 @@
340 -->
341
342 <!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->
343-<language name="Ruby" version="1.17" kateversion="2.4" section="Scripts" extensions="*.rb;*.rxml" mimetype="application/x-ruby" author="Stefan Lang (langstefan@gmx.at), Sebastian Vuorinen (sebastian.vuorinen@helsinki.fi)" license="LGPL">
344+<language name="Ruby" version="1.17" kateversion="2.4" section="Scripts" extensions="*.rb;*.rjs;*.rxml" mimetype="application/x-ruby" author="Stefan Lang (langstefan@gmx.at), Sebastian Vuorinen (sebastian.vuorinen@helsinki.fi)" license="LGPL">
345
346 <highlighting>
347
348Index: kate/data/logtalk.xml
349===================================================================
350--- kate/data/logtalk.xml (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
351+++ kate/data/logtalk.xml (.../branches/KDE/3.5/kdelibs) (revision 526003)
352@@ -1,7 +1,7 @@
353 <?xml version="1.0" encoding="UTF-8"?>
354 <!DOCTYPE language SYSTEM "language.dtd">
355
356-<language name="Logtalk" version="1.40" kateversion="2.4" section="Sources" extensions="*.lgt;*.config" mimetype="text/x-logtalk" author="Paulo Moura (pmoura@logtalk.org)" license="Artistic License 2.0">
357+<language name="Logtalk" version="1.51" kateversion="2.4" section="Sources" extensions="*.lgt;*.config" mimetype="text/x-logtalk" author="Paulo Moura (pmoura@logtalk.org)" license="Artistic License 2.0">
358
359 <highlighting>
360
361@@ -17,11 +17,11 @@
362 <!-- Reflection -->
363 <RegExpr String = "\b(current_predicate|predicate_property)(?=[(])" attribute = "Built-in" context = "#stay" />
364 <!-- DCGs -->
365- <RegExpr String = "\b(expand_term|phrase)(?=[(])" attribute = "Built-in" context = "#stay" />
366+ <RegExpr String = "\b(expand_term|term_expansion|phrase)(?=[(])" attribute = "Built-in" context = "#stay" />
367 <!-- Entity -->
368 <RegExpr String = "\b(abolish|c(reate|urrent))_(object|protocol|category)(?=[(])" attribute = "Built-in" context = "#stay" />
369 <RegExpr String = "\b(object|protocol|category)_property(?=[(])" attribute = "Built-in" context = "#stay" />
370- <!-- Event handlers -->
371+ <!-- Entity relations -->
372 <RegExpr String = "\bextends_(object|protocol)(?=[(])" attribute = "Built-in" context = "#stay" />
373 <RegExpr String = "\bimplements_protocol(?=[(])" attribute = "Built-in" context = "#stay" />
374 <RegExpr String = "\b(instantiates|specializes)_class(?=[(])" attribute = "Built-in" context = "#stay" />
375@@ -48,7 +48,7 @@
376 <RegExpr String = "\b(rem|mod|abs|sign)(?=[(])" attribute = "Built-in" context = "#stay" />
377 <RegExpr String = "\bfloat(_(integer|fractional)_part)?(?=[(])" attribute = "Built-in" context = "#stay" />
378 <RegExpr String = "\b(floor|truncate|round|ceiling)(?=[(])" attribute = "Built-in" context = "#stay" />
379- <!-- Other arithemtic functors -->
380+ <!-- Other arithmetic functors -->
381 <RegExpr String = "\b(cos|atan|exp|log|s(in|qrt))(?=[(])" attribute = "Built-in" context = "#stay" />
382 <!-- Term testing -->
383 <RegExpr String = "\b(var|atom(ic)?|integer|float|compound|n(onvar|umber))(?=[(])" attribute = "Built-in" context = "#stay" />
384@@ -149,15 +149,16 @@
385 <!-- Entity directives -->
386 <RegExpr String = "\b(category|object|protocol)(?=[(])" attribute = "Directive" context = "entityrelations" beginRegion = "Entity"/>
387 <RegExpr String = "\bend_(category|object|protocol)[.]" attribute = "Directive" context = "#pop" endRegion = "Entity" />
388+ <RegExpr String = "\bmodule(?=[(])" attribute = "Directive" context = "#pop"/>
389 <!-- Predicate scope directives -->
390 <RegExpr String = "\bp(ublic|r(otected|ivate))(?=[(])" attribute = "Directive" context = "#pop" />
391 <!-- Other directives -->
392- <RegExpr String = "\bencoding(?=[(])" attribute = "Directive" context = "#pop" />
393+ <RegExpr String = "\be(ncoding|xport)(?=[(])" attribute = "Directive" context = "#pop" />
394 <RegExpr String = "\bin(fo|itialization)(?=[(])" attribute = "Directive" context = "#pop" />
395 <RegExpr String = "\bdynamic[.]" attribute = "Directive" context = "#pop" />
396- <RegExpr String = "\b(alias|d(ynamic|iscontiguous)|m(etapredicate|ode|ultifile))(?=[(])" attribute = "Directive" context = "#pop" />
397+ <RegExpr String = "\b(alias|d(ynamic|iscontiguous)|meta_predicate|m(etapredicate|ode|ultifile))(?=[(])" attribute = "Directive" context = "#pop" />
398 <RegExpr String = "\bop(?=[(])" attribute = "Directive" context = "#pop" />
399- <RegExpr String = "\b(calls|uses)(?=[(])" attribute = "Directive" context = "#pop" />
400+ <RegExpr String = "\b(calls|use(s|_module))(?=[(])" attribute = "Directive" context = "#pop" />
401 </context>
402
403 <context name = "entityrelations" attribute = "Normal" lineEndContext = "#stay" >
404Index: kate/data/php.xml
405===================================================================
406--- kate/data/php.xml (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
407+++ kate/data/php.xml (.../branches/KDE/3.5/kdelibs) (revision 526003)
408@@ -1,6 +1,12 @@
409 <?xml version="1.0" encoding="UTF-8"?>
410+<!--
411+ Changes: version 1.25 -> 1.26
412+ Date: 26/01/2006
413+ Change author: Nicola Gigante
414+ Added alternative syntax control structures and named logical operators (and or xor)
415+-->
416 <!DOCTYPE language SYSTEM "language.dtd">
417-<language name="PHP/PHP" version="1.25" kateversion="2.4" section="Scripts" extensions="" priority="5" mimetype="" hidden="true">
418+<language name="PHP/PHP" version="1.26" kateversion="2.4" section="Scripts" extensions="" priority="5" mimetype="" hidden="true">
419 <highlighting>
420 <list name="control structures">
421 <item>as</item>
422@@ -21,6 +27,11 @@
423 <item>include</item>
424 <item>require_once</item>
425 <item>include_once</item>
426+ <item>endif</item>
427+ <item>endwhile</item>
428+ <item>endfor</item>
429+ <item>endforeach</item>
430+ <item>endswitch</item>
388da7ab 431 </list>
56e2d959
AM
432 <list name="keywords">
433 <item> abstract </item>
434@@ -42,6 +53,9 @@
435 <item> public </item>
436 <item> throw </item>
437 <item> try </item>
438+ <item> and </item>
439+ <item> or </item>
440+ <item> xor </item>
441 <item> var </item>
442 <item> __FILE__ </item>
443 <item> __LINE__ </item>
444Index: kate/data/cpp.xml
445===================================================================
446--- kate/data/cpp.xml (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
447+++ kate/data/cpp.xml (.../branches/KDE/3.5/kdelibs) (revision 526003)
448@@ -1,6 +1,6 @@
449 <?xml version="1.0" encoding="UTF-8"?>
450 <!DOCTYPE language SYSTEM "language.dtd">
451-<language name="C++" version="1.34" kateversion="2.4" section="Sources" extensions="*.cxx;*.cpp;*.cc;*.C;*.h;*.hh;*.H;*.hxx;*.hpp;*.hcc;*.moc" mimetype="text/x-c++src;text/x-c++hdr;text/x-chdr" priority="9">
452+<language name="C++" version="1.36" kateversion="2.4" section="Sources" extensions="*.c++;*.cxx;*.cpp;*.cc;*.C;*.h;*.H;*.h++;*.hxx;*.hpp;*.hcc;*.moc" mimetype="text/x-c++src;text/x-c++hdr;text/x-chdr" priority="9">
453 <highlighting>
454 <list name="keywords">
455 <item> asm </item>
456@@ -31,6 +31,7 @@
388da7ab 457 <item> private </item>
388da7ab 458 <item> protected </item>
56e2d959
AM
459 <item> public </item>
460+ <item> qobject_cast </item>
461 <item> reinterpret_cast </item>
462 <item> return </item>
463 <item> sizeof </item>
464@@ -79,6 +80,33 @@
465 <item> Q_OVERRIDE </item>
466 <item> Q_PROPERTY </item>
467 <item> Q_SETS </item>
468+ <item> Q_SIGNALS </item>
469+ <item> Q_SLOTS </item>
470+ <item> Q_FOREACH </item>
471+ <item> Q_DECLARE_FLAGS </item>
472+ <item> Q_INIT_RESOURCE </item>
473+ <item> Q_CLEANUP_RESOURCE </item>
474+ <item> Q_GLOBAL_STATIC </item>
475+ <item> Q_GLOBAL_STATIC_WITH_ARGS </item>
476+ <item> Q_DECLARE_TYPEINFO </item>
477+ <item> Q_DECLARE_SHARED </item>
478+ <item> Q_DECLARE_FLAGS </item>
479+ <item> Q_DECLARE_OPERATORS_FOR_FLAGS </item>
480+ <item> Q_FOREVER </item>
481+ <item> Q_DECLARE_PRIVATE </item>
482+ <item> Q_DECLARE_PUBLIC </item>
483+ <item> Q_D </item>
484+ <item> Q_Q </item>
485+ <item> Q_DISABLE_COPY </item>
486+ <item> Q_INTERFACES </item>
487+ <item> Q_FLAGS </item>
488+ <item> Q_SCRIPTABLE </item>
489+ <item> Q_INVOKABLE </item>
490+ <item> Q_GADGET </item>
491+ <item> Q_ARG </item>
492+ <item> Q_RETURN_ARG </item>
493+ <item> Q_ASSERT </item>
494+ <item> Q_ASSERT_X </item>
495 <item> TRUE </item>
496 <item> FALSE </item>
497 <item> connect </item>
498@@ -87,6 +115,7 @@
499 <item> signals </item>
500 <item> slots </item>
501 <item> foreach </item>
502+ <item> forever </item>
388da7ab
AM
503 </list>
504 <list name="types">
56e2d959
AM
505 <item> auto </item>
506Index: mimetypes/all.desktop
507===================================================================
508--- mimetypes/all.desktop (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
509+++ mimetypes/all.desktop (.../branches/KDE/3.5/kdelibs) (revision 526003)
510@@ -24,7 +24,7 @@
511 Comment[fa]=تمام پرونده‌ها و پوشه‌ها
512 Comment[fi]=Kaikki tiedostot ja kansiot
513 Comment[fr]=Tous les fichiers et dossiers
514-Comment[fy]=Alle Triemen en Mappen
515+Comment[fy]=Alle Triemmen en Mappen
516 Comment[ga]=Gach Comhad agus Comhadlann
517 Comment[gl]=Todos os Arquivos e Cartafois
518 Comment[he]=כל הקבצים והתיקיות
519Index: mimetypes/image/x-djvu-2.desktop
520===================================================================
521--- mimetypes/image/x-djvu-2.desktop (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
522+++ mimetypes/image/x-djvu-2.desktop (.../branches/KDE/3.5/kdelibs) (revision 526003)
523@@ -7,6 +7,7 @@
524 Comment=DjVu Document
525 Comment[af]=DjVu Dokument
526 Comment[bg]=Документ DjVu
527+Comment[br]=Teul DjVu
528 Comment[ca]=Document DjVu
529 Comment[cs]=DjVu dokument
530 Comment[da]=DjVU-dokument
531Index: mimetypes/image/x-djvu.desktop
532===================================================================
533--- mimetypes/image/x-djvu.desktop (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
534+++ mimetypes/image/x-djvu.desktop (.../branches/KDE/3.5/kdelibs) (revision 526003)
535@@ -7,6 +7,7 @@
536 Comment=DjVu Document
537 Comment[af]=DjVu Dokument
538 Comment[bg]=Документ DjVu
539+Comment[br]=Teul DjVu
540 Comment[ca]=Document DjVu
541 Comment[cs]=DjVu dokument
542 Comment[da]=DjVU-dokument
388da7ab
AM
543Index: mimetypes/image/x-raw.desktop
544===================================================================
56e2d959
AM
545--- mimetypes/image/x-raw.desktop (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
546+++ mimetypes/image/x-raw.desktop (.../branches/KDE/3.5/kdelibs) (revision 526003)
547@@ -6,12 +6,14 @@
548 Patterns=*.raw;*.RAW;*.dcr;*.DCR;*.dng;*.DNG;*.crw;*.CRW;*.cr2,*.CR2;*.nef;*.NEF;*.mrw;*.MRW;
549 Comment=RAW Camera Image
550 Comment[ca]=Fitxer de càmera RAW
551+Comment[cs]=RAW soubor z fotoaparátu
552 Comment[da]=Ubehandlet kamerabillede
553 Comment[de]=Kamera-Bild im RAW-Format
554 Comment[el]=RAW εικόνα κάμερας
555 Comment[es]=Imagen RAW de cámara
556 Comment[et]=Kaamera toorpilt
557 Comment[eu]=RAW kamara fitxategia
558+Comment[fi]=RAW-kameratiedosto
559 Comment[fr]=Image RAW d'appareil photo
560 Comment[fy]=RAW-fototastelôfbylding
561 Comment[hu]=RAW-képfájl
562@@ -27,6 +29,7 @@
563 Comment[pt]=Imagem RAW da Máquina Fotográfica
564 Comment[pt_BR]=Imagem RAW da Máquina Fotográfica
565 Comment[ro]=Imagine foto brută
566+Comment[sl]=Slika RAW s fotoaparata
567 Comment[sr]=Сирова слика са камере
568 Comment[sr@Latn]=Sirova slika sa kamere
569 Comment[sv]=Obehandlad kamerafil
570Index: mimetypes/allfiles.desktop
571===================================================================
572--- mimetypes/allfiles.desktop (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
573+++ mimetypes/allfiles.desktop (.../branches/KDE/3.5/kdelibs) (revision 526003)
574@@ -24,7 +24,7 @@
575 Comment[fa]=تمام پرونده‌ها
576 Comment[fi]=Kaikki tiedostot
577 Comment[fr]=Tous les fichiers
578-Comment[fy]=Alle triemen
579+Comment[fy]=Alle triemmen
580 Comment[ga]=Gach Comhad
581 Comment[gl]=Todos os Arquivos
582 Comment[he]=כל הקבצים
583Index: mimetypes/application/vnd.oasis.opendocument.graphics-template.desktop
584===================================================================
585--- mimetypes/application/vnd.oasis.opendocument.graphics-template.desktop (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
586+++ mimetypes/application/vnd.oasis.opendocument.graphics-template.desktop (.../branches/KDE/3.5/kdelibs) (revision 526003)
587@@ -53,6 +53,7 @@
588 Comment[tr]=OASIS OpenDocument Grafik Şablonu
589 Comment[tt]=OASIS OpenDocument Sızımı öçen Ürçetmä
590 Comment[uk]=Шаблон графічного зображення OASIS OpenDocument
591+Comment[uz]=OASIS OpenDocument графика намунаси
592 Comment[zh_CN]=OASIS OpenDocument 图形模板
593 Comment[zh_HK]=OASIS OpenDocument 繪圖範本
594 [Property::X-KDE-NativeExtension]
388da7ab 595Index: mimetypes/application/mbox.desktop
549beba1 596===================================================================
56e2d959
AM
597--- mimetypes/application/mbox.desktop (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
598+++ mimetypes/application/mbox.desktop (.../branches/KDE/3.5/kdelibs) (revision 526003)
599@@ -4,6 +4,7 @@
600 MimeType=application/mbox
601 Patterns=
602 Comment=MBOX Mail Folder
603+Comment[br]=Renkell postel MBOX
604 Comment[ca]=Carpeta de correu MBOX
605 Comment[cs]=Složka pošty MBOX
606 Comment[da]=MBOX mappe til e-mail
607@@ -38,6 +39,7 @@
608 Comment[sv]=Mbox-brevkorg
609 Comment[tg]=MBOX Феҳристи Почта
610 Comment[uk]=Поштова тека MBOX
611+Comment[uz]=MBOX хат қутиси
612 Comment[zh_CN]=MBOX 邮件文件夹
613
614 [Property::X-KDE-text]
615Index: mimetypes/text/x-diff.desktop
616===================================================================
617--- mimetypes/text/x-diff.desktop (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
618+++ mimetypes/text/x-diff.desktop (.../branches/KDE/3.5/kdelibs) (revision 526003)
619@@ -22,7 +22,7 @@
620 Comment[fa]=اختلاف‌های میان پرونده‌ها
621 Comment[fi]=Tiedostojen väliset erot
622 Comment[fr]=Différences entre fichiers
623-Comment[fy]=Ferskil tusken triemen
624+Comment[fy]=Ferskil tusken triemmen
625 Comment[ga]=Difríochtaí idir chomhaid
626 Comment[gl]=Diferéncias Entre Arquivos
627 Comment[he]=הבדלים בין קבצים
628Index: mimetypes/text/x-bibtex.desktop
629===================================================================
630--- mimetypes/text/x-bibtex.desktop (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
631+++ mimetypes/text/x-bibtex.desktop (.../branches/KDE/3.5/kdelibs) (revision 526003)
632@@ -7,6 +7,7 @@
633 Comment[be]=Бібліяграфічныя дадзеныя (Bibtex)
634 Comment[bg]=Библиографични данни (Bibtex)
635 Comment[bn]=গ্রন্থতালিকা (বিবটেক)
636+Comment[br]=Levrlennadur roadoù (Bibtex)
637 Comment[bs]=Bibliografski podaci (Bibtex)
638 Comment[ca]=Dades bibliogràfiques (Bibtex)
639 Comment[cs]=Bibliografická data (bibtex)
640Index: mimetypes/text/x-katefilelist.desktop
641===================================================================
642--- mimetypes/text/x-katefilelist.desktop (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
643+++ mimetypes/text/x-katefilelist.desktop (.../branches/KDE/3.5/kdelibs) (revision 526003)
644@@ -20,7 +20,7 @@
645 Comment[fa]=سیاهه‌ی پرونده (برای متصل‌کننده‌ی بارکننده‌ی سیاهه‌ی پرونده‌ی Kate)
646 Comment[fi]=Tiedostolista (Kate-tiedostolistalisäosalle)
647 Comment[fr]=Liste de fichiers (pour le chargeur de listes de fichiers de Kate)
648-Comment[fy]=Triemenlist (foar de Kate-triemenplugin)
649+Comment[fy]=Triemmenlist (foar de Kate-triemmenplugin)
650 Comment[gl]=Lista de Arquivos (para o Plugin Carregador de Lista de Arquivos de Kate)
651 Comment[he]=רשימת קבצים (עבור תוסף טעינת רשימות הקבצים של Kate)
652 Comment[hi]=फ़ाइल सूची(के-एटीई फ़ाइल लिस्ट लोडर प्लगिन के लिए)
653Index: kioslave/http/http.cc
654===================================================================
655--- kioslave/http/http.cc (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
656+++ kioslave/http/http.cc (.../branches/KDE/3.5/kdelibs) (revision 526003)
657@@ -2712,6 +2712,7 @@
658
659 QString dispositionType; // In case we get a Content-Disposition type
660 QString dispositionFilename; // In case we get a Content-Disposition filename
661+
662 QString mediaValue;
663 QString mediaAttribute;
664
665@@ -3279,6 +3280,11 @@
666 << dispositionFilename<< endl;
667 }
388da7ab 668 }
56e2d959
AM
669+ else if(strncasecmp(buf, "Content-Language:", 17) == 0) {
670+ QString language = QString::fromLatin1(trimLead(buf+17)).stripWhiteSpace();
671+ if (!language.isEmpty())
672+ setMetaData("content-language", language);
673+ }
674 else if (strncasecmp(buf, "Proxy-Connection:", 17) == 0)
388da7ab 675 {
56e2d959
AM
676 if (strncasecmp(trimLead(buf + 17), "Close", 5) == 0)
677Index: kinit/setproctitle.h
61c08fac 678===================================================================
56e2d959
AM
679--- kinit/setproctitle.h (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
680+++ kinit/setproctitle.h (.../branches/KDE/3.5/kdelibs) (revision 526003)
681@@ -71,8 +71,8 @@
682 # define SPT_PADCHAR '\0' /* pad process title with nulls */
388da7ab
AM
683 #endif
684
56e2d959
AM
685-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
686-# if defined(__NetBSD__)
687+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
688+# if defined(__NetBSD__) || defined(__DragonFly__)
689 # undef SPT_TYPE
690 # define SPT_TYPE SPT_BUILTIN /* setproctitle is in libc */
691 # endif
692Index: kimgio/psd.kimgio
693===================================================================
694--- kimgio/psd.kimgio (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
695+++ kimgio/psd.kimgio (.../branches/KDE/3.5/kdelibs) (revision 526003)
696@@ -24,6 +24,7 @@
697 Name[ja]=Adobe Photoshop 画像
698 Name[km]= រូបភាព​របស់ Adobe Photoshop
699 Name[lb]=Adobe-Photoshop-Bild
700+Name[ms]=Imej Adobe Photoshop
701 Name[nb]=Adobe Photoshop-bilde
702 Name[nds]=Adobe-Photoshop-Bild
703 Name[nl]=Adobe Photoshop-afbeelding
704Index: kio/kio/global.cpp
705===================================================================
706--- kio/kio/global.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
707+++ kio/kio/global.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
708@@ -1438,7 +1438,11 @@
709
710 #ifdef HAVE_GETMNTINFO
711
712+#ifdef HAVE_STATFS
713 struct statfs *mounted;
714+#elif defined(HAVE_STATVFS)
715+ struct statvfs *mounted;
388da7ab 716+#endif
388da7ab 717
56e2d959 718 int num_fs = getmntinfo(&mounted, MNT_NOWAIT);
388da7ab 719
56e2d959 720@@ -1704,7 +1708,12 @@
388da7ab 721
56e2d959 722 #ifdef HAVE_GETMNTINFO
388da7ab 723
56e2d959
AM
724+#ifdef HAVE_STATFS
725 struct statfs *mounted;
726+#elif defined(HAVE_STATVFS)
727+ struct statvfs *mounted;
728+#endif
84bbb013 729+
56e2d959 730 char realpath_buffer[MAXPATHLEN];
388da7ab 731
56e2d959
AM
732 int num_fs = getmntinfo(&mounted, MNT_NOWAIT);
733Index: kio/kio/yacc.y
84bbb013 734===================================================================
56e2d959
AM
735--- kio/kio/yacc.y (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
736+++ kio/kio/yacc.y (.../branches/KDE/3.5/kdelibs) (revision 526003)
737@@ -116,7 +116,7 @@
388da7ab 738
56e2d959
AM
739 void yyerror ( const char *s ) /* Called by yyparse on error */
740 {
741- printf ("ERROR: %s\n", s);
742+ KTraderParse_error( s );
388da7ab
AM
743 }
744
56e2d959
AM
745 void KTraderParse_mainParse( const char *_code )
746Index: kio/kio/ktar.cpp
e96bff9a 747===================================================================
56e2d959
AM
748--- kio/kio/ktar.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
749+++ kio/kio/ktar.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
750@@ -301,10 +301,10 @@
751 delete filterDev;
752 return false;
753 }
754- Q_LONG len;
755- while ( !filterDev->atEnd() ) {
756+ Q_LONG len = -1;
757+ while ( !filterDev->atEnd() && len != 0) {
758 len = filterDev->readBlock(buffer.data(),buffer.size());
759- if ( len <= 0 ) { // corrupted archive
760+ if ( len < 0 ) { // corrupted archive
761 delete filterDev;
762 return false;
763 }
764Index: kio/kio/krun.cpp
765===================================================================
766--- kio/kio/krun.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
767+++ kio/kio/krun.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
768@@ -660,8 +660,17 @@
769 if ( mx1.expandMacrosShellQuote( exec ) && !mx1.hasUrls ) {
770 Q_ASSERT( supportedProtocols.isEmpty() ); // huh? If you support protocols you need %u or %U...
771 } else {
772- if ( supportedProtocols.isEmpty() ) // compat: assume KIO if not set
773- supportedProtocols.append( "KIO" );
774+ if ( supportedProtocols.isEmpty() )
775+ {
776+ // compat mode: assume KIO if not set and it's a KDE app
777+ QStringList categories = _service.property("Categories").toStringList();
778+ if ( categories.find("KDE") != categories.end() )
779+ supportedProtocols.append( "KIO" );
780+ else { // if no KDE app, be a bit over-generic
781+ supportedProtocols.append( "http");
782+ supportedProtocols.append( "ftp");
783+ }
784+ }
785 }
786 kdDebug(7010) << "supportedProtocols:" << supportedProtocols << endl;
787
788Index: kio/kio/ktraderparse.h
789===================================================================
790--- kio/kio/ktraderparse.h (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
791+++ kio/kio/ktraderparse.h (.../branches/KDE/3.5/kdelibs) (revision 526003)
792@@ -1,21 +1,21 @@
793 /* This file is part of the KDE project
794 Copyright (C) 1998, 1999 Torben Weis <weis@kde.org>
795-
796+
797 This library is free software; you can redistribute it and/or
798 modify it under the terms of the GNU Library General Public
799 License as published by the Free Software Foundation; either
800 version 2 of the License, or (at your option) any later version.
801-
802+
803 This library is distributed in the hope that it will be useful,
804 but WITHOUT ANY WARRANTY; without even the implied warranty of
805 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
806 Library General Public License for more details.
807-
808+
809 You should have received a copy of the GNU Library General Public License
810 along with this library; see the file COPYING.LIB. If not, write to
811 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
812 Boston, MA 02110-1301, USA.
813-*/
814+*/
e96bff9a 815
56e2d959
AM
816 #ifndef __parse_h__
817 #define __parse_h__
818@@ -23,7 +23,9 @@
819 /*
820 * Functions definition for yacc
821 */
822+void KTraderParse_mainParse( const char *_code );
823 void KTraderParse_setParseTree( void *_ptr1 );
824+void KTraderParse_error( const char* err );
825 void* KTraderParse_newOR( void *_ptr1, void *_ptr2 );
826 void* KTraderParse_newAND( void *_ptr1, void *_ptr2 );
827 void* KTraderParse_newCMP( void *_ptr1, void *_ptr2, int _i );
828Index: kio/kio/job.cpp
829===================================================================
830--- kio/kio/job.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
831+++ kio/kio/job.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
832@@ -2786,7 +2786,7 @@
388da7ab 833 {
56e2d959
AM
834 m_conflictError = job->error();
835 if ( (m_conflictError == ERR_DIR_ALREADY_EXIST)
836- || (m_conflictError == ERR_FILE_ALREADY_EXIST) )
837+ || (m_conflictError == ERR_FILE_ALREADY_EXIST) ) // can't happen?
838 {
839 KURL oldURL = ((SimpleJob*)job)->url();
840 // Should we skip automatically ?
841@@ -3050,7 +3050,8 @@
842 m_conflictError = job->error(); // save for later
843 // Existing dest ?
844 if ( ( m_conflictError == ERR_FILE_ALREADY_EXIST )
845- || ( m_conflictError == ERR_DIR_ALREADY_EXIST ) )
846+ || ( m_conflictError == ERR_DIR_ALREADY_EXIST )
847+ || ( m_conflictError == ERR_IDENTICAL_FILES ) )
848 {
849 subjobs.remove( job );
850 assert ( subjobs.isEmpty() );
851@@ -3132,7 +3133,8 @@
852 m_reportTimer->stop();
853
854 if ( ( m_conflictError == ERR_FILE_ALREADY_EXIST )
855- || ( m_conflictError == ERR_DIR_ALREADY_EXIST ) )
856+ || ( m_conflictError == ERR_DIR_ALREADY_EXIST )
857+ || ( m_conflictError == ERR_IDENTICAL_FILES ) )
388da7ab 858 {
56e2d959
AM
859 // Its modification time:
860 time_t destmtime = (time_t)-1;
861@@ -3161,6 +3163,7 @@
862 // Offer overwrite only if the existing thing is a file
863 // If src==dest, use "overwrite-itself"
864 RenameDlg_Mode mode;
865+ bool isDir = true;
866
867 if( m_conflictError == ERR_DIR_ALREADY_EXIST )
868 mode = (RenameDlg_Mode) 0;
869@@ -3172,6 +3175,7 @@
870 mode = M_OVERWRITE_ITSELF;
871 else
872 mode = M_OVERWRITE;
873+ isDir = false;
874 }
e96bff9a 875
56e2d959
AM
876 if ( m_bSingleFileCopy )
877@@ -3179,7 +3183,7 @@
878 else
879 mode = (RenameDlg_Mode) ( mode | M_MULTI | M_SKIP );
880
881- res = Observer::self()->open_RenameDlg( this, m_conflictError == ERR_FILE_ALREADY_EXIST ?
882+ res = Observer::self()->open_RenameDlg( this, !isDir ?
883 i18n("File Already Exists") : i18n("Already Exists as Folder"),
884 (*it).uSource.url(),
885 (*it).uDest.url(),
886@@ -3602,7 +3606,9 @@
887 // In that case it's the _same_ dir, we don't want to copy+del (data loss!)
888 if ( m_currentSrcURL.isLocalFile() && m_currentSrcURL.url(-1) != dest.url(-1) &&
889 m_currentSrcURL.url(-1).lower() == dest.url(-1).lower() &&
890- ( err == ERR_FILE_ALREADY_EXIST || err == ERR_DIR_ALREADY_EXIST ) )
891+ ( err == ERR_FILE_ALREADY_EXIST ||
892+ err == ERR_DIR_ALREADY_EXIST ||
893+ err == ERR_IDENTICAL_FILES ) )
894 {
895 kdDebug(7007) << "Couldn't rename directly, dest already exists. Detected special case of lower/uppercase renaming in same dir, try with 2 rename calls" << endl;
896 QCString _src( QFile::encodeName(m_currentSrcURL.path()) );
897@@ -3643,7 +3649,9 @@
898 Q_ASSERT( m_currentSrcURL == *m_currentStatSrc );
899
900 // Existing dest?
901- if ( ( err == ERR_DIR_ALREADY_EXIST || err == ERR_FILE_ALREADY_EXIST )
902+ if ( ( err == ERR_DIR_ALREADY_EXIST ||
903+ err == ERR_FILE_ALREADY_EXIST ||
904+ err == ERR_IDENTICAL_FILES )
905 && isInteractive() )
906 {
907 if (m_reportTimer)
908@@ -3693,7 +3701,7 @@
909
910 RenameDlg_Result r = Observer::self()->open_RenameDlg(
911 this,
912- err == ERR_FILE_ALREADY_EXIST ? i18n("File Already Exists") : i18n("Already Exists as Folder"),
913+ err != ERR_DIR_ALREADY_EXIST ? i18n("File Already Exists") : i18n("Already Exists as Folder"),
914 m_currentSrcURL.url(),
915 dest.url(),
916 mode, newPath,
917Index: kio/kio/ktraderparse.cpp
918===================================================================
919--- kio/kio/ktraderparse.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
920+++ kio/kio/ktraderparse.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
921@@ -25,26 +25,32 @@
922 extern "C"
388da7ab 923 {
56e2d959
AM
924 #include "ktraderparse.h"
925-
926-void KTraderParse_mainParse( const char *_code );
e96bff9a
AM
927 }
928
56e2d959
AM
929 #include "ktraderparsetree.h"
930+#include <kdebug.h>
e96bff9a 931
56e2d959 932 using namespace KIO;
e96bff9a 933
56e2d959
AM
934 static ParseTreeBase::Ptr *pTree = 0;
935+static const char* sCode = 0;
936
937 ParseTreeBase::Ptr KIO::parseConstraints( const QString& _constr )
388da7ab 938 {
56e2d959
AM
939- KTraderParse_mainParse( _constr.ascii() );
940+ QCString str = _constr.utf8();
941+ sCode = str.data();
942+ KTraderParse_mainParse( sCode );
943+ sCode = 0;
944 assert( pTree );
945 return *pTree;
946 }
e96bff9a 947
56e2d959 948 ParseTreeBase::Ptr KIO::parsePreferences( const QString& _prefs )
388da7ab 949 {
56e2d959
AM
950- KTraderParse_mainParse( _prefs.ascii() );
951+ QCString str = _prefs.utf8();
952+ sCode = str.data();
953+ KTraderParse_mainParse( sCode );
954+ sCode = 0;
955 assert( pTree );
956 return *pTree;
957 }
958@@ -52,10 +58,16 @@
959 void KTraderParse_setParseTree( void *_ptr1 )
960 {
961 if ( !pTree )
962- pTree = new ParseTreeBase::Ptr; // ### leak
963+ pTree = new ParseTreeBase::Ptr; // ### leak; should use KStaticDeleter
964 *pTree = static_cast<ParseTreeBase*>( _ptr1 );
e96bff9a
AM
965 }
966
e96bff9a 967+
56e2d959 968+void KTraderParse_error( const char* err )
388da7ab 969+{
56e2d959 970+ kdWarning(7014) << "Parsing '" << sCode << "' gave " << err << endl;
388da7ab 971+}
e96bff9a 972+
56e2d959
AM
973 void* KTraderParse_newOR( void *_ptr1, void *_ptr2 )
974 {
975 return new ParseTreeOR( (ParseTreeBase*)_ptr1, (ParseTreeBase*)_ptr2 );
976Index: kio/kio/yacc.c
977===================================================================
978--- kio/kio/yacc.c (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
979+++ kio/kio/yacc.c (.../branches/KDE/3.5/kdelibs) (revision 526003)
980@@ -1,7 +1,7 @@
981-/* A Bison parser, made by GNU Bison 1.875. */
982+/* A Bison parser, made by GNU Bison 2.0. */
983
984 /* Skeleton parser for Yacc-like parsing with Bison,
985- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
986+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
987
988 This program is free software; you can redistribute it and/or modify
989 it under the terms of the GNU General Public License as published by
990@@ -15,8 +15,8 @@
991
992 You should have received a copy of the GNU General Public License
993 along with this program; if not, write to the Free Software
994- Foundation, Inc., 51 Franklin Street, Fifth Floor,
995- Boston, MA 02110-1301, USA. */
996+ Foundation, Inc., 59 Temple Place - Suite 330,
997+ Boston, MA 02111-1307, USA. */
998
999 /* As a special exception, when this file is copied by Bison into a
1000 Bison output file, you may use that output file without restriction.
1001@@ -45,8 +45,7 @@
1002 /* Using locations. */
1003 #define YYLSP_NEEDED 0
1004
1005-/* If NAME_PREFIX is specified substitute the variables and functions
1006- names. */
1007+/* Substitute the variable and function names. */
1008 #define yyparse kiotraderparse
1009 #define yylex kiotraderlex
1010 #define yyerror kiotradererror
1011@@ -139,7 +138,7 @@
1012 char *name;
1013 void *ptr;
1014 } YYSTYPE;
1015-/* Line 191 of yacc.c. */
1016+/* Line 190 of yacc.c. */
1017 #line 143 "yacc.tab.c"
1018 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
1019 # define YYSTYPE_IS_DECLARED 1
1020@@ -151,23 +150,26 @@
1021 /* Copy the second part of user declarations. */
1022
1023
1024-/* Line 214 of yacc.c. */
1025+/* Line 213 of yacc.c. */
1026 #line 155 "yacc.tab.c"
1027
1028 #if ! defined (yyoverflow) || YYERROR_VERBOSE
1029
1030+# ifndef YYFREE
1031+# define YYFREE free
1032+# endif
1033+# ifndef YYMALLOC
1034+# define YYMALLOC malloc
1035+# endif
1036+
1037 /* The parser invokes alloca or malloc; define the necessary symbols. */
1038
1039-# if YYSTACK_USE_ALLOCA
1040-# define YYSTACK_ALLOC alloca
1041-# else
1042-# ifndef YYSTACK_USE_ALLOCA
1043-# if defined (alloca) || defined (_ALLOCA_H)
1044+# ifdef YYSTACK_USE_ALLOCA
1045+# if YYSTACK_USE_ALLOCA
1046+# ifdef __GNUC__
1047+# define YYSTACK_ALLOC __builtin_alloca
1048+# else
1049 # define YYSTACK_ALLOC alloca
1050-# else
1051-# ifdef __GNUC__
1052-# define YYSTACK_ALLOC __builtin_alloca
1053-# endif
1054 # endif
1055 # endif
1056 # endif
1057@@ -180,20 +182,20 @@
1058 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1059 # define YYSIZE_T size_t
1060 # endif
1061-# define YYSTACK_ALLOC malloc
1062-# define YYSTACK_FREE free
1063+# define YYSTACK_ALLOC YYMALLOC
1064+# define YYSTACK_FREE YYFREE
1065 # endif
1066 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
1067
1068
1069 #if (! defined (yyoverflow) \
1070 && (! defined (__cplusplus) \
1071- || (YYSTYPE_IS_TRIVIAL)))
1072+ || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
1073
1074 /* A type that is properly aligned for any stack member. */
1075 union yyalloc
1076 {
1077- short yyss;
1078+ short int yyss;
1079 YYSTYPE yyvs;
1080 };
388da7ab 1081
56e2d959
AM
1082@@ -203,13 +205,13 @@
1083 /* The size of an array large to enough to hold all stacks, each with
1084 N elements. */
1085 # define YYSTACK_BYTES(N) \
1086- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
1087+ ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
1088 + YYSTACK_GAP_MAXIMUM)
1089
1090 /* Copy COUNT objects from FROM to TO. The source and destination do
1091 not overlap. */
1092 # ifndef YYCOPY
1093-# if 1 < __GNUC__
1094+# if defined (__GNUC__) && 1 < __GNUC__
1095 # define YYCOPY(To, From, Count) \
1096 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1097 # else
1098@@ -245,7 +247,7 @@
1099 #if defined (__STDC__) || defined (__cplusplus)
1100 typedef signed char yysigned_char;
1101 #else
1102- typedef short yysigned_char;
1103+ typedef short int yysigned_char;
388da7ab
AM
1104 #endif
1105
56e2d959
AM
1106 /* YYFINAL -- State number of the termination state. */
1107@@ -344,11 +346,11 @@
1108 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1109 static const char *const yytname[] =
1110 {
1111- "$end", "error", "$undefined", "NOT", "EQ", "NEQ", "LEQ", "GEQ", "LE",
1112- "GR", "OR", "AND", "TOKEN_IN", "EXIST", "MAX", "MIN", "VAL_BOOL",
1113- "VAL_STRING", "VAL_ID", "VAL_NUM", "VAL_FLOAT", "'~'", "'+'", "'-'",
1114- "'*'", "'/'", "'('", "')'", "$accept", "constraint", "bool", "bool_or",
1115- "bool_and", "bool_compare", "expr_in", "expr_twiddle", "expr", "term",
1116+ "$end", "error", "$undefined", "NOT", "EQ", "NEQ", "LEQ", "GEQ", "LE",
1117+ "GR", "OR", "AND", "TOKEN_IN", "EXIST", "MAX", "MIN", "VAL_BOOL",
1118+ "VAL_STRING", "VAL_ID", "VAL_NUM", "VAL_FLOAT", "'~'", "'+'", "'-'",
1119+ "'*'", "'/'", "'('", "')'", "$accept", "constraint", "bool", "bool_or",
1120+ "bool_and", "bool_compare", "expr_in", "expr_twiddle", "expr", "term",
1121 "factor_non", "factor", 0
1122 };
388da7ab 1123 #endif
56e2d959
AM
1124@@ -356,7 +358,7 @@
1125 # ifdef YYPRINT
1126 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1127 token YYLEX-NUM. */
1128-static const unsigned short yytoknum[] =
1129+static const unsigned short int yytoknum[] =
1130 {
1131 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1132 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1133@@ -482,7 +484,7 @@
1134
1135 #define YYACCEPT goto yyacceptlab
1136 #define YYABORT goto yyabortlab
1137-#define YYERROR goto yyerrlab1
1138+#define YYERROR goto yyerrorlab
1139
1140
1141 /* Like YYERROR except do call yyerror. This remains here temporarily
1142@@ -510,20 +512,53 @@
1143 } \
1144 while (0)
1145
1146+
1147 #define YYTERROR 1
1148 #define YYERRCODE 256
1149
1150-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
1151- are run). */
1152
1153+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1154+ If N is 0, then set CURRENT to the empty location which ends
1155+ the previous symbol: RHS[0] (always defined). */
1156+
1157+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
1158 #ifndef YYLLOC_DEFAULT
1159-# define YYLLOC_DEFAULT(Current, Rhs, N) \
1160- Current.first_line = Rhs[1].first_line; \
1161- Current.first_column = Rhs[1].first_column; \
1162- Current.last_line = Rhs[N].last_line; \
1163- Current.last_column = Rhs[N].last_column;
1164+# define YYLLOC_DEFAULT(Current, Rhs, N) \
1165+ do \
1166+ if (N) \
1167+ { \
1168+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1169+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1170+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1171+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1172+ } \
1173+ else \
1174+ { \
1175+ (Current).first_line = (Current).last_line = \
1176+ YYRHSLOC (Rhs, 0).last_line; \
1177+ (Current).first_column = (Current).last_column = \
1178+ YYRHSLOC (Rhs, 0).last_column; \
1179+ } \
1180+ while (0)
388da7ab 1181 #endif
388da7ab 1182
388da7ab 1183+
56e2d959
AM
1184+/* YY_LOCATION_PRINT -- Print the location on the stream.
1185+ This macro was not mandated originally: define only if we know
1186+ we won't break user code: when these are the locations we know. */
1187+
1188+#ifndef YY_LOCATION_PRINT
1189+# if YYLTYPE_IS_TRIVIAL
1190+# define YY_LOCATION_PRINT(File, Loc) \
1191+ fprintf (File, "%d.%d-%d.%d", \
1192+ (Loc).first_line, (Loc).first_column, \
1193+ (Loc).last_line, (Loc).last_column)
1194+# else
1195+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1196+# endif
1197+#endif
388da7ab 1198+
388da7ab 1199+
56e2d959 1200 /* YYLEX -- calling `yylex' with the right arguments. */
388da7ab 1201
56e2d959
AM
1202 #ifdef YYLEX_PARAM
1203@@ -546,36 +581,30 @@
1204 YYFPRINTF Args; \
1205 } while (0)
388da7ab 1206
56e2d959
AM
1207-# define YYDSYMPRINT(Args) \
1208-do { \
1209- if (yydebug) \
1210- yysymprint Args; \
1211-} while (0)
1212-
1213-# define YYDSYMPRINTF(Title, Token, Value, Location) \
1214+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1215 do { \
1216 if (yydebug) \
1217 { \
1218 YYFPRINTF (stderr, "%s ", Title); \
1219 yysymprint (stderr, \
1220- Token, Value); \
1221+ Type, Value); \
1222 YYFPRINTF (stderr, "\n"); \
1223 } \
1224 } while (0)
1225
1226 /*------------------------------------------------------------------.
1227 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1228-| TOP (cinluded). |
1229+| TOP (included). |
1230 `------------------------------------------------------------------*/
1231
1232 #if defined (__STDC__) || defined (__cplusplus)
1233 static void
1234-yy_stack_print (short *bottom, short *top)
1235+yy_stack_print (short int *bottom, short int *top)
1236 #else
1237 static void
1238 yy_stack_print (bottom, top)
1239- short *bottom;
1240- short *top;
1241+ short int *bottom;
1242+ short int *top;
1243 #endif
388da7ab 1244 {
56e2d959
AM
1245 YYFPRINTF (stderr, "Stack now");
1246@@ -605,9 +634,9 @@
1247 #endif
1248 {
1249 int yyi;
1250- unsigned int yylineno = yyrline[yyrule];
1251+ unsigned int yylno = yyrline[yyrule];
1252 YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
1253- yyrule - 1, yylineno);
1254+ yyrule - 1, yylno);
1255 /* Print the symbols being reduced, and their result. */
1256 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
1257 YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
1258@@ -625,8 +654,7 @@
1259 int yydebug;
1260 #else /* !YYDEBUG */
1261 # define YYDPRINTF(Args)
1262-# define YYDSYMPRINT(Args)
1263-# define YYDSYMPRINTF(Title, Token, Value, Location)
1264+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1265 # define YY_STACK_PRINT(Bottom, Top)
1266 # define YY_REDUCE_PRINT(Rule)
1267 #endif /* !YYDEBUG */
1268@@ -644,10 +672,6 @@
1269 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
1270 evaluated with infinite-precision integer arithmetic. */
1271
1272-#if YYMAXDEPTH == 0
1273-# undef YYMAXDEPTH
1274-#endif
388da7ab 1275-
56e2d959
AM
1276 #ifndef YYMAXDEPTH
1277 # define YYMAXDEPTH 10000
1278 #endif
1279@@ -729,15 +753,15 @@
1280 (void) yyvaluep;
1281
1282 if (yytype < YYNTOKENS)
1283- {
1284- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1285-# ifdef YYPRINT
1286- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1287-# endif
388da7ab 1288- }
56e2d959
AM
1289+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1290 else
1291 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1292
1293+
1294+# ifdef YYPRINT
1295+ if (yytype < YYNTOKENS)
1296+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1297+# endif
1298 switch (yytype)
388da7ab 1299 {
56e2d959
AM
1300 default:
1301@@ -753,10 +777,11 @@
1302
1303 #if defined (__STDC__) || defined (__cplusplus)
1304 static void
1305-yydestruct (int yytype, YYSTYPE *yyvaluep)
1306+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1307 #else
1308 static void
1309-yydestruct (yytype, yyvaluep)
1310+yydestruct (yymsg, yytype, yyvaluep)
1311+ const char *yymsg;
1312 int yytype;
1313 YYSTYPE *yyvaluep;
1314 #endif
1315@@ -764,6 +789,10 @@
1316 /* Pacify ``unused variable'' warnings. */
1317 (void) yyvaluep;
388da7ab 1318
56e2d959
AM
1319+ if (!yymsg)
1320+ yymsg = "Deleting";
1321+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1322+
1323 switch (yytype)
388da7ab 1324 {
388da7ab 1325
56e2d959 1326@@ -791,10 +820,10 @@
388da7ab 1327
84bbb013 1328
84bbb013 1329
56e2d959
AM
1330-/* The lookahead symbol. */
1331+/* The look-ahead symbol. */
1332 int yychar;
84bbb013 1333
56e2d959
AM
1334-/* The semantic value of the lookahead symbol. */
1335+/* The semantic value of the look-ahead symbol. */
1336 YYSTYPE yylval;
22f6d8dd 1337
56e2d959
AM
1338 /* Number of syntax errors so far. */
1339@@ -830,7 +859,7 @@
1340 int yyresult;
1341 /* Number of tokens to shift before error messages enabled. */
1342 int yyerrstatus;
1343- /* Lookahead token as an internal (translated) token number. */
1344+ /* Look-ahead token as an internal (translated) token number. */
1345 int yytoken = 0;
e96bff9a 1346
56e2d959
AM
1347 /* Three stacks and their tools:
1348@@ -842,9 +871,9 @@
1349 to reallocate them elsewhere. */
e96bff9a 1350
56e2d959
AM
1351 /* The state stack. */
1352- short yyssa[YYINITDEPTH];
1353- short *yyss = yyssa;
1354- register short *yyssp;
1355+ short int yyssa[YYINITDEPTH];
1356+ short int *yyss = yyssa;
1357+ register short int *yyssp;
e96bff9a 1358
56e2d959
AM
1359 /* The semantic value stack. */
1360 YYSTYPE yyvsa[YYINITDEPTH];
1361@@ -881,6 +910,9 @@
1362 yyssp = yyss;
1363 yyvsp = yyvs;
e96bff9a 1364
e96bff9a 1365+
56e2d959 1366+ yyvsp[0] = yylval;
e96bff9a 1367+
56e2d959 1368 goto yysetstate;
388da7ab 1369
56e2d959
AM
1370 /*------------------------------------------------------------.
1371@@ -906,7 +938,7 @@
1372 these so that the &'s don't force the real ones into
1373 memory. */
1374 YYSTYPE *yyvs1 = yyvs;
1375- short *yyss1 = yyss;
1376+ short int *yyss1 = yyss;
61c08fac 1377
e96bff9a 1378
56e2d959
AM
1379 /* Each stack pointer address is followed by the size of the
1380@@ -934,7 +966,7 @@
1381 yystacksize = YYMAXDEPTH;
61c08fac 1382
56e2d959
AM
1383 {
1384- short *yyss1 = yyss;
1385+ short int *yyss1 = yyss;
1386 union yyalloc *yyptr =
1387 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1388 if (! yyptr)
1389@@ -970,18 +1002,18 @@
1390 yybackup:
61c08fac 1391
56e2d959
AM
1392 /* Do appropriate processing given the current state. */
1393-/* Read a lookahead token if we need one and don't already have one. */
1394+/* Read a look-ahead token if we need one and don't already have one. */
1395 /* yyresume: */
84bbb013 1396
56e2d959
AM
1397- /* First try to decide what to do without reference to lookahead token. */
1398+ /* First try to decide what to do without reference to look-ahead token. */
84bbb013 1399
56e2d959
AM
1400 yyn = yypact[yystate];
1401 if (yyn == YYPACT_NINF)
1402 goto yydefault;
84bbb013 1403
56e2d959
AM
1404- /* Not known => get a lookahead token if don't already have one. */
1405+ /* Not known => get a look-ahead token if don't already have one. */
84bbb013 1406
56e2d959
AM
1407- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
1408+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
1409 if (yychar == YYEMPTY)
1410 {
1411 YYDPRINTF ((stderr, "Reading a token: "));
1412@@ -996,7 +1028,7 @@
1413 else
1414 {
1415 yytoken = YYTRANSLATE (yychar);
1416- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
1417+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1418 }
84bbb013 1419
56e2d959
AM
1420 /* If the proper action on seeing token YYTOKEN is to reduce or to
1421@@ -1016,8 +1048,8 @@
1422 if (yyn == YYFINAL)
1423 YYACCEPT;
84bbb013 1424
56e2d959
AM
1425- /* Shift the lookahead token. */
1426- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
1427+ /* Shift the look-ahead token. */
1428+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
e96bff9a 1429
56e2d959
AM
1430 /* Discard the token being shifted unless it is eof. */
1431 if (yychar != YYEOF)
1432@@ -1073,179 +1105,179 @@
388da7ab 1433
56e2d959
AM
1434 case 3:
1435 #line 57 "yacc.y"
1436- { KTraderParse_setParseTree( yyvsp[0].ptr ); ;}
1437+ { KTraderParse_setParseTree( (yyvsp[0].ptr) ); ;}
1438 break;
84bbb013 1439
56e2d959
AM
1440 case 4:
1441 #line 60 "yacc.y"
1442- { yyval.ptr = yyvsp[0].ptr; ;}
1443+ { (yyval.ptr) = (yyvsp[0].ptr); ;}
1444 break;
388da7ab 1445
56e2d959
AM
1446 case 5:
1447 #line 63 "yacc.y"
1448- { yyval.ptr = KTraderParse_newOR( yyvsp[-2].ptr, yyvsp[0].ptr ); ;}
1449+ { (yyval.ptr) = KTraderParse_newOR( (yyvsp[-2].ptr), (yyvsp[0].ptr) ); ;}
1450 break;
84bbb013 1451
56e2d959
AM
1452 case 6:
1453 #line 64 "yacc.y"
1454- { yyval.ptr = yyvsp[0].ptr; ;}
1455+ { (yyval.ptr) = (yyvsp[0].ptr); ;}
1456 break;
e96bff9a 1457
56e2d959
AM
1458 case 7:
1459 #line 67 "yacc.y"
1460- { yyval.ptr = KTraderParse_newAND( yyvsp[-2].ptr, yyvsp[0].ptr ); ;}
1461+ { (yyval.ptr) = KTraderParse_newAND( (yyvsp[-2].ptr), (yyvsp[0].ptr) ); ;}
1462 break;
84bbb013 1463
56e2d959
AM
1464 case 8:
1465 #line 68 "yacc.y"
1466- { yyval.ptr = yyvsp[0].ptr; ;}
1467+ { (yyval.ptr) = (yyvsp[0].ptr); ;}
1468 break;
84bbb013 1469
56e2d959
AM
1470 case 9:
1471 #line 71 "yacc.y"
1472- { yyval.ptr = KTraderParse_newCMP( yyvsp[-2].ptr, yyvsp[0].ptr, 1 ); ;}
1473+ { (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 1 ); ;}
1474 break;
84bbb013 1475
56e2d959
AM
1476 case 10:
1477 #line 72 "yacc.y"
1478- { yyval.ptr = KTraderParse_newCMP( yyvsp[-2].ptr, yyvsp[0].ptr, 2 ); ;}
1479+ { (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 2 ); ;}
1480 break;
84bbb013 1481
56e2d959
AM
1482 case 11:
1483 #line 73 "yacc.y"
1484- { yyval.ptr = KTraderParse_newCMP( yyvsp[-2].ptr, yyvsp[0].ptr, 3 ); ;}
1485+ { (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 3 ); ;}
1486 break;
84bbb013 1487
56e2d959
AM
1488 case 12:
1489 #line 74 "yacc.y"
1490- { yyval.ptr = KTraderParse_newCMP( yyvsp[-2].ptr, yyvsp[0].ptr, 4 ); ;}
1491+ { (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 4 ); ;}
1492 break;
388da7ab 1493
56e2d959
AM
1494 case 13:
1495 #line 75 "yacc.y"
1496- { yyval.ptr = KTraderParse_newCMP( yyvsp[-2].ptr, yyvsp[0].ptr, 5 ); ;}
1497+ { (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 5 ); ;}
1498 break;
84bbb013 1499
56e2d959
AM
1500 case 14:
1501 #line 76 "yacc.y"
1502- { yyval.ptr = KTraderParse_newCMP( yyvsp[-2].ptr, yyvsp[0].ptr, 6 ); ;}
1503+ { (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 6 ); ;}
1504 break;
388da7ab 1505
56e2d959
AM
1506 case 15:
1507 #line 77 "yacc.y"
1508- { yyval.ptr = yyvsp[0].ptr; ;}
1509+ { (yyval.ptr) = (yyvsp[0].ptr); ;}
1510 break;
e96bff9a 1511
56e2d959
AM
1512 case 16:
1513 #line 80 "yacc.y"
1514- { yyval.ptr = KTraderParse_newIN( yyvsp[-2].ptr, KTraderParse_newID( yyvsp[0].name ) ); ;}
1515+ { (yyval.ptr) = KTraderParse_newIN( (yyvsp[-2].ptr), KTraderParse_newID( (yyvsp[0].name) ) ); ;}
1516 break;
388da7ab 1517
56e2d959
AM
1518 case 17:
1519 #line 81 "yacc.y"
1520- { yyval.ptr = yyvsp[0].ptr; ;}
1521+ { (yyval.ptr) = (yyvsp[0].ptr); ;}
1522 break;
e96bff9a 1523
56e2d959
AM
1524 case 18:
1525 #line 84 "yacc.y"
1526- { yyval.ptr = KTraderParse_newMATCH( yyvsp[-2].ptr, yyvsp[0].ptr ); ;}
1527+ { (yyval.ptr) = KTraderParse_newMATCH( (yyvsp[-2].ptr), (yyvsp[0].ptr) ); ;}
1528 break;
e96bff9a 1529
56e2d959
AM
1530 case 19:
1531 #line 85 "yacc.y"
1532- { yyval.ptr = yyvsp[0].ptr; ;}
1533+ { (yyval.ptr) = (yyvsp[0].ptr); ;}
1534 break;
388da7ab 1535
56e2d959
AM
1536 case 20:
1537 #line 88 "yacc.y"
1538- { yyval.ptr = KTraderParse_newCALC( yyvsp[-2].ptr, yyvsp[0].ptr, 1 ); ;}
1539+ { (yyval.ptr) = KTraderParse_newCALC( (yyvsp[-2].ptr), (yyvsp[0].ptr), 1 ); ;}
1540 break;
e96bff9a 1541
56e2d959
AM
1542 case 21:
1543 #line 89 "yacc.y"
1544- { yyval.ptr = KTraderParse_newCALC( yyvsp[-2].ptr, yyvsp[0].ptr, 2 ); ;}
1545+ { (yyval.ptr) = KTraderParse_newCALC( (yyvsp[-2].ptr), (yyvsp[0].ptr), 2 ); ;}
1546 break;
a07378f5 1547
56e2d959
AM
1548 case 22:
1549 #line 90 "yacc.y"
1550- { yyval.ptr = yyvsp[0].ptr; ;}
1551+ { (yyval.ptr) = (yyvsp[0].ptr); ;}
1552 break;
a07378f5 1553
56e2d959
AM
1554 case 23:
1555 #line 93 "yacc.y"
1556- { yyval.ptr = KTraderParse_newCALC( yyvsp[-2].ptr, yyvsp[0].ptr, 3 ); ;}
1557+ { (yyval.ptr) = KTraderParse_newCALC( (yyvsp[-2].ptr), (yyvsp[0].ptr), 3 ); ;}
1558 break;
84bbb013 1559
56e2d959
AM
1560 case 24:
1561 #line 94 "yacc.y"
1562- { yyval.ptr = KTraderParse_newCALC( yyvsp[-2].ptr, yyvsp[0].ptr, 4 ); ;}
1563+ { (yyval.ptr) = KTraderParse_newCALC( (yyvsp[-2].ptr), (yyvsp[0].ptr), 4 ); ;}
1564 break;
84bbb013 1565
56e2d959
AM
1566 case 25:
1567 #line 95 "yacc.y"
1568- { yyval.ptr = yyvsp[0].ptr; ;}
1569+ { (yyval.ptr) = (yyvsp[0].ptr); ;}
1570 break;
e96bff9a 1571
56e2d959
AM
1572 case 26:
1573 #line 98 "yacc.y"
1574- { yyval.ptr = KTraderParse_newNOT( yyvsp[0].ptr ); ;}
1575+ { (yyval.ptr) = KTraderParse_newNOT( (yyvsp[0].ptr) ); ;}
1576 break;
549beba1 1577
56e2d959
AM
1578 case 27:
1579 #line 99 "yacc.y"
1580- { yyval.ptr = yyvsp[0].ptr; ;}
1581+ { (yyval.ptr) = (yyvsp[0].ptr); ;}
1582 break;
388da7ab 1583
56e2d959
AM
1584 case 28:
1585 #line 102 "yacc.y"
1586- { yyval.ptr = KTraderParse_newBRACKETS( yyvsp[-1].ptr ); ;}
1587+ { (yyval.ptr) = KTraderParse_newBRACKETS( (yyvsp[-1].ptr) ); ;}
1588 break;
388da7ab 1589
56e2d959
AM
1590 case 29:
1591 #line 103 "yacc.y"
1592- { yyval.ptr = KTraderParse_newEXIST( yyvsp[0].name ); ;}
1593+ { (yyval.ptr) = KTraderParse_newEXIST( (yyvsp[0].name) ); ;}
1594 break;
388da7ab 1595
56e2d959
AM
1596 case 30:
1597 #line 104 "yacc.y"
1598- { yyval.ptr = KTraderParse_newID( yyvsp[0].name ); ;}
1599+ { (yyval.ptr) = KTraderParse_newID( (yyvsp[0].name) ); ;}
1600 break;
388da7ab 1601
56e2d959
AM
1602 case 31:
1603 #line 105 "yacc.y"
1604- { yyval.ptr = KTraderParse_newNUM( yyvsp[0].vali ); ;}
1605+ { (yyval.ptr) = KTraderParse_newNUM( (yyvsp[0].vali) ); ;}
1606 break;
388da7ab 1607
56e2d959
AM
1608 case 32:
1609 #line 106 "yacc.y"
1610- { yyval.ptr = KTraderParse_newFLOAT( yyvsp[0].vald ); ;}
1611+ { (yyval.ptr) = KTraderParse_newFLOAT( (yyvsp[0].vald) ); ;}
1612 break;
388da7ab 1613
56e2d959
AM
1614 case 33:
1615 #line 107 "yacc.y"
1616- { yyval.ptr = KTraderParse_newSTRING( yyvsp[0].name ); ;}
1617+ { (yyval.ptr) = KTraderParse_newSTRING( (yyvsp[0].name) ); ;}
1618 break;
388da7ab 1619
56e2d959
AM
1620 case 34:
1621 #line 108 "yacc.y"
1622- { yyval.ptr = KTraderParse_newBOOL( yyvsp[0].valb ); ;}
1623+ { (yyval.ptr) = KTraderParse_newBOOL( (yyvsp[0].valb) ); ;}
1624 break;
e96bff9a 1625
56e2d959
AM
1626 case 35:
1627 #line 109 "yacc.y"
1628- { yyval.ptr = KTraderParse_newMAX2( yyvsp[0].name ); ;}
1629+ { (yyval.ptr) = KTraderParse_newMAX2( (yyvsp[0].name) ); ;}
1630 break;
e96bff9a 1631
56e2d959
AM
1632 case 36:
1633 #line 110 "yacc.y"
1634- { yyval.ptr = KTraderParse_newMIN2( yyvsp[0].name ); ;}
1635+ { (yyval.ptr) = KTraderParse_newMIN2( (yyvsp[0].name) ); ;}
1636 break;
1637
1638
1639 }
1640
1641-/* Line 999 of yacc.c. */
1642-#line 1248 "yacc.tab.c"
1643+/* Line 1037 of yacc.c. */
1644+#line 1281 "yacc.tab.c"
1645 \f
1646 yyvsp -= yylen;
1647 yyssp -= yylen;
1648@@ -1286,18 +1318,33 @@
1649 {
1650 YYSIZE_T yysize = 0;
1651 int yytype = YYTRANSLATE (yychar);
1652+ const char* yyprefix;
1653 char *yymsg;
1654- int yyx, yycount;
1655+ int yyx;
1656
1657- yycount = 0;
1658 /* Start YYX at -YYN if negative to avoid negative indexes in
1659 YYCHECK. */
1660- for (yyx = yyn < 0 ? -yyn : 0;
1661- yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
1662+ int yyxbegin = yyn < 0 ? -yyn : 0;
1663+
1664+ /* Stay within bounds of both yycheck and yytname. */
1665+ int yychecklim = YYLAST - yyn;
1666+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1667+ int yycount = 0;
1668+
1669+ yyprefix = ", expecting ";
1670+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1671 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1672- yysize += yystrlen (yytname[yyx]) + 15, yycount++;
1673- yysize += yystrlen ("syntax error, unexpected ") + 1;
1674- yysize += yystrlen (yytname[yytype]);
1675+ {
1676+ yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
1677+ yycount += 1;
1678+ if (yycount == 5)
1679+ {
1680+ yysize = 0;
1681+ break;
1682+ }
1683+ }
1684+ yysize += (sizeof ("syntax error, unexpected ")
1685+ + yystrlen (yytname[yytype]));
1686 yymsg = (char *) YYSTACK_ALLOC (yysize);
1687 if (yymsg != 0)
1688 {
1689@@ -1306,16 +1353,13 @@
1690
1691 if (yycount < 5)
1692 {
1693- yycount = 0;
1694- for (yyx = yyn < 0 ? -yyn : 0;
1695- yyx < (int) (sizeof (yytname) / sizeof (char *));
1696- yyx++)
1697+ yyprefix = ", expecting ";
1698+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1699 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1700 {
1701- const char *yyq = ! yycount ? ", expecting " : " or ";
1702- yyp = yystpcpy (yyp, yyq);
1703+ yyp = yystpcpy (yyp, yyprefix);
1704 yyp = yystpcpy (yyp, yytname[yyx]);
1705- yycount++;
1706+ yyprefix = " or ";
1707 }
1708 }
1709 yyerror (yymsg);
1710@@ -1333,38 +1377,57 @@
1711
1712 if (yyerrstatus == 3)
1713 {
1714- /* If just tried and failed to reuse lookahead token after an
1715+ /* If just tried and failed to reuse look-ahead token after an
1716 error, discard it. */
1717
1718- /* Return failure if at end of input. */
1719- if (yychar == YYEOF)
1720+ if (yychar <= YYEOF)
1721 {
1722- /* Pop the error token. */
1723- YYPOPSTACK;
1724- /* Pop the rest of the stack. */
1725- while (yyss < yyssp)
1726- {
1727- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
1728- yydestruct (yystos[*yyssp], yyvsp);
1729- YYPOPSTACK;
1730- }
1731- YYABORT;
1732+ /* If at end of input, pop the error token,
1733+ then the rest of the stack, then return failure. */
1734+ if (yychar == YYEOF)
1735+ for (;;)
1736+ {
1737+
1738+ YYPOPSTACK;
1739+ if (yyssp == yyss)
1740+ YYABORT;
1741+ yydestruct ("Error: popping",
1742+ yystos[*yyssp], yyvsp);
1743+ }
1744 }
1745-
1746- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
1747- yydestruct (yytoken, &yylval);
1748- yychar = YYEMPTY;
1749-
1750+ else
1751+ {
1752+ yydestruct ("Error: discarding", yytoken, &yylval);
1753+ yychar = YYEMPTY;
1754+ }
1755 }
1756
1757- /* Else will try to reuse lookahead token after shifting the error
1758+ /* Else will try to reuse look-ahead token after shifting the error
1759 token. */
1760 goto yyerrlab1;
1761
1762
1763-/*----------------------------------------------------.
1764-| yyerrlab1 -- error raised explicitly by an action. |
1765-`----------------------------------------------------*/
1766+/*---------------------------------------------------.
1767+| yyerrorlab -- error raised explicitly by YYERROR. |
1768+`---------------------------------------------------*/
1769+yyerrorlab:
1770+
1771+#ifdef __GNUC__
1772+ /* Pacify GCC when the user code never invokes YYERROR and the label
1773+ yyerrorlab therefore never appears in user code. */
1774+ if (0)
1775+ goto yyerrorlab;
1776+#endif
e96bff9a 1777+
56e2d959
AM
1778+yyvsp -= yylen;
1779+ yyssp -= yylen;
1780+ yystate = *yyssp;
1781+ goto yyerrlab1;
1782+
1783+
1784+/*-------------------------------------------------------------.
1785+| yyerrlab1 -- common code for both syntax error and YYERROR. |
1786+`-------------------------------------------------------------*/
1787 yyerrlab1:
1788 yyerrstatus = 3; /* Each real token shifted decrements this. */
388da7ab 1789
56e2d959
AM
1790@@ -1386,22 +1449,22 @@
1791 if (yyssp == yyss)
1792 YYABORT;
388da7ab 1793
56e2d959
AM
1794- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
1795- yydestruct (yystos[yystate], yyvsp);
1796- yyvsp--;
1797- yystate = *--yyssp;
388da7ab 1798
56e2d959
AM
1799+ yydestruct ("Error: popping", yystos[yystate], yyvsp);
1800+ YYPOPSTACK;
1801+ yystate = *yyssp;
1802 YY_STACK_PRINT (yyss, yyssp);
1803 }
388da7ab 1804
56e2d959
AM
1805 if (yyn == YYFINAL)
1806 YYACCEPT;
388da7ab 1807
56e2d959
AM
1808- YYDPRINTF ((stderr, "Shifting error token, "));
1809-
1810 *++yyvsp = yylval;
388da7ab 1811
388da7ab 1812
56e2d959
AM
1813+ /* Shift the error token. */
1814+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
1815+
1816 yystate = yyn;
1817 goto yynewstate;
388da7ab 1818
56e2d959
AM
1819@@ -1417,6 +1480,9 @@
1820 | yyabortlab -- YYABORT comes here. |
1821 `-----------------------------------*/
1822 yyabortlab:
1823+ yydestruct ("Error: discarding lookahead",
1824+ yytoken, &yylval);
1825+ yychar = YYEMPTY;
1826 yyresult = 1;
1827 goto yyreturn;
388da7ab 1828
56e2d959 1829@@ -1439,12 +1505,12 @@
388da7ab
AM
1830 }
1831
388da7ab 1832
56e2d959
AM
1833-#line 56 "yacc.y"
1834+#line 115 "yacc.y"
1835
388da7ab 1836
56e2d959
AM
1837 void yyerror ( const char *s ) /* Called by yyparse on error */
1838 {
1839- printf ("ERROR: %s\n", s);
1840+ KTraderParse_error( s );
388da7ab 1841 }
388da7ab 1842
56e2d959
AM
1843 void KTraderParse_mainParse( const char *_code )
1844Index: kio/tests/kdirwatchunittest.cpp
549beba1 1845===================================================================
56e2d959
AM
1846--- kio/tests/kdirwatchunittest.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
1847+++ kio/tests/kdirwatchunittest.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
1848@@ -88,6 +88,17 @@
1849 m_lastSignal == alert);
388da7ab
AM
1850 }
1851
56e2d959 1852+void KDirWatchTest::remove_file (const QString& file)
388da7ab 1853+{
56e2d959 1854+ ::unlink (QFile::encodeName(file));
388da7ab
AM
1855+}
1856+
56e2d959 1857+void KDirWatchTest::touch_file (const QString& file)
388da7ab 1858+{
56e2d959
AM
1859+ QFile f(file);
1860+ f.open(IO_WriteOnly);
388da7ab
AM
1861+}
1862+
56e2d959
AM
1863 KUNITTEST_MODULE ( kunittest_kdirwatch, "KDirWatchTest" )
1864 KUNITTEST_MODULE_REGISTER_TESTER (KDirWatchTest)
1865
1866@@ -112,6 +123,10 @@
1867 VERIFY_NOTHING();
1868 dir->mkdir ("does");
1869 VERIFY_DIRTY (m_workingDir);
1870+ touch_file (m_workingDir + "/file");
1871+ VERIFY_DIRTY (m_workingDir + "/file");
1872+ VERIFY_NOTHING ();
1873+ remove_file (m_workingDir + "/file");
1874 d->addDir (m_workingDir + "/does/not/exist");
1875 d->removeDir (m_workingDir);
1876 VERIFY_NOTHING();
1877Index: kio/tests/kdirwatchunittest.h
e96bff9a 1878===================================================================
56e2d959
AM
1879--- kio/tests/kdirwatchunittest.h (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
1880+++ kio/tests/kdirwatchunittest.h (.../branches/KDE/3.5/kdelibs) (revision 526003)
1881@@ -54,6 +54,9 @@
1882 /* verify that deleted got emitted */
1883 void VERIFY_DELETED (const QString&);
1884
1885+ void touch_file (const QString& file);
1886+ void remove_file (const QString& file);
1887+
1888 QString m_lastSignal;
1889 QString m_workingDir;
1890 KDirWatch* d;
1891Index: kabc/plugins/file/resourcefile.cpp
1892===================================================================
1893--- kabc/plugins/file/resourcefile.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
1894+++ kabc/plugins/file/resourcefile.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
1895@@ -2,6 +2,7 @@
1896 This file is part of libkabc.
1897
1898 Copyright (c) 2001,2003 Cornelius Schumacher <schumacher@kde.org>
1899+ Copyright (c) 2006 Tom Abers <tomalbers@kde.nl>
1900
1901 This library is free software; you can redistribute it and/or
1902 modify it under the terms of the GNU Library General Public
1903@@ -37,6 +38,9 @@
1904 #include <ksavefile.h>
1905 #include <kstandarddirs.h>
1906 #include <ktempfile.h>
1907+#include <kurl.h>
1908+#include <jobclasses.h>
1909+#include <kio/netaccess.h>
1910
1911 #include "formatfactory.h"
1912 #include "resourcefileconfig.h"
1913@@ -189,9 +193,31 @@
1914
1915 if ( file.size() == 0 ) {
1916 file.close();
1917+ kdDebug() << "File size is zero. Evaluating backups" << endl;
1918+ for (int i=0; i!=20; i++)
1919+ {
1920+ QFile backup( mFileName + "__" + QString::number(i) );
1921+ kdDebug() << "Evaluating" << backup.name() << " size: " << backup.size() << endl;
1922+ if ( backup.size() != 0 )
1923+ {
1924+ kdDebug() << "Restoring backup " << i << endl;
1925+ KURL src, dest;
1926+ src.setPath( mFileName + "__" + QString::number(i) );
1927+ dest.setPath( mFileName );
1928+
1929+ KIO::DeleteJob* job = KIO::del( dest, false, false );
1930+ KIO::NetAccess::synchronousRun( job, 0);
1931+
1932+ KIO::CopyJob* job2 = KIO::copy( src, dest, false );
1933+ KIO::NetAccess::synchronousRun( job2, 0);
1934+
1935+ backup.close();
1936+ return true;
1937+ }
1938+ backup.close();
1939+ }
1940 return true;
1941 }
1942-
1943 bool ok = mFormat->checkFormat( &file );
1944 file.close();
1945
1946@@ -307,8 +333,28 @@
1947 return false;
1948 }
1949
1950- // create backup file
1951- QString extension = "_" + QString::number( QDate::currentDate().dayOfWeek() );
1952+ // Only do the logrotate dance when the __0 file is not 0 bytes.
1953+ QFile file( mFileName + "__0" );
1954+ if ( file.size() != 0 ) {
1955+ KURL last;
1956+ last.setPath( mFileName + "__20" );
1957+ kdDebug() << "deleting " << last << endl;
1958+ KIO::DeleteJob* job = KIO::del( last, false, false );
1959+ KIO::NetAccess::synchronousRun( job, 0);
1960+
1961+ for (int i=19; i>=0; i--)
1962+ {
1963+ KURL src, dest;
1964+ src.setPath( mFileName + "__" + QString::number(i) );
1965+ dest.setPath( mFileName + "__" + QString::number(i+1) );
1966+ kdDebug() << "moving " << src << " -> " << dest << endl;
1967+ KIO::SimpleJob* job = KIO::rename( src, dest, false );
1968+ KIO::NetAccess::synchronousRun( job, 0);
1969+ }
1970+ } else
1971+ kdDebug() << "Not starting logrotate __0 is 0 bytes." << endl;
1972+
1973+ QString extension = "__0";
1974 (void) KSaveFile::backupFile( mFileName, QString::null /*directory*/,
1975 extension );
1976
1977Index: kabc/Makefile.am
1978===================================================================
1979--- kabc/Makefile.am (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
1980+++ kabc/Makefile.am (.../branches/KDE/3.5/kdelibs) (revision 526003)
1981@@ -2,7 +2,7 @@
1982
1983 # Make sure $(all_includes) remains last!
1984 INCLUDES = -I$(top_builddir)/kabc -I$(top_srcdir)/kabc -I$(top_srcdir)/kab \
1985- -I$(srcdir)/vcardparser/ -I$(srcdir)/vcard/include \
1986+ -I$(srcdir)/vcard/include -I$(srcdir)/vcardparser/ \
1987 -I$(srcdir)/vcard/include/generated \
1988 -I$(srcdir)/vcardparser $(all_includes)
1989
1990Index: kwallet/backend/sha1.cc
1991===================================================================
1992--- kwallet/backend/sha1.cc (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
1993+++ kwallet/backend/sha1.cc (.../branches/KDE/3.5/kdelibs) (revision 526003)
1994@@ -23,6 +23,9 @@
1995 #ifdef HAVE_SYS_TYPES_H
1996 #include <sys/types.h>
1997 #endif
1998+#ifdef HAVE_STDINT_H
1999+#include <stdint.h> /* For uintXX_t on OSX */
2000+#endif
2001 #ifdef HAVE_SYS_BITYPES_H
2002 #include <sys/bitypes.h> /* For uintXX_t on Tru64 */
2003 #endif
2004Index: kdesu/su.cpp
e96bff9a 2005===================================================================
56e2d959
AM
2006--- kdesu/su.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2007+++ kdesu/su.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
2008@@ -75,6 +75,11 @@
2009
2010 QCStringList args;
2011
2012+#ifdef Q_OS_DARWIN
2013+ args += "-c";
2014+ args += "staff";
2015+#endif
2016+
2017 if ((m_Scheduler != SchedNormal) || (m_Priority > 50))
2018 args += "root";
2019 else
2020@@ -82,7 +87,9 @@
2021
2022 args += "-c";
2023 args += QCString(__KDE_BINDIR) + "/kdesu_stub";
2024+#ifndef Q_OS_DARWIN
2025 args += "-";
2026+#endif
2027
2028 QCString command = __PATH_SU;
2029 if (::access(__PATH_SU, X_OK) != 0)
2030Index: kdecore/kmountpoint.cpp
e96bff9a 2031===================================================================
56e2d959
AM
2032--- kdecore/kmountpoint.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2033+++ kdecore/kmountpoint.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
2034@@ -226,7 +226,11 @@
388da7ab 2035
56e2d959
AM
2036 #ifdef HAVE_GETMNTINFO
2037
2038+#ifdef HAVE_STATFS
2039 struct statfs *mounted;
2040+#elif defined(HAVE_STATVFS)
2041+ struct statvfs *mounted;
2042+#endif
2043
2044 int num_fs = getmntinfo(&mounted, MNT_NOWAIT);
2045
2046Index: kdecore/eventsrc
518a05fa 2047===================================================================
56e2d959
AM
2048--- kdecore/eventsrc (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2049+++ kdecore/eventsrc (.../branches/KDE/3.5/kdelibs) (revision 526003)
2050@@ -619,7 +619,7 @@
2051 Name[fi]=Ei voitu avata tiedostoa
2052 Name[fo]=Kann ikki opna fíla
2053 Name[fr]=Impossible d'ouvrir un fichier
2054-Name[fy]=Kin it triem net iepenje
2055+Name[fy]=Kin de triem net iepenje
2056 Name[ga]=Ní Féidir an Comhad a Oscailt
2057 Name[gl]=Non se pode abrir a arquivo
2058 Name[he]=אין אפשרות לפתוח קובץ
2059Index: kdecore/kprocess.cpp
518a05fa 2060===================================================================
56e2d959
AM
2061--- kdecore/kprocess.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2062+++ kdecore/kprocess.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
2063@@ -355,8 +355,6 @@
2064 if (pipe(fd))
2065 fd[0] = fd[1] = -1; // Pipe failed.. continue
388da7ab 2066
56e2d959
AM
2067- QApplication::flushX();
2068-
2069 // we don't use vfork() because
2070 // - it has unclear semantics and is not standardized
2071 // - we do way too much magic in the child
2072@@ -768,7 +766,7 @@
2073 d->shell = shell;
2074 else
2075 // #ifdef NON_FREE // ... as they ship non-POSIX /bin/sh
2076-#if !defined(__linux__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__GNU__)
2077+#if !defined(__linux__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__GNU__) && !defined(__DragonFly__)
2078 // Solaris POSIX ...
2079 if (!access( "/usr/xpg4/bin/sh", X_OK ))
2080 d->shell = "/usr/xpg4/bin/sh";
2081Index: kdecore/all_languages.desktop
2082===================================================================
2083--- kdecore/all_languages.desktop (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2084+++ kdecore/all_languages.desktop (.../branches/KDE/3.5/kdelibs) (revision 526003)
2085@@ -2895,6 +2895,7 @@
2086 Name[tr]=Galik
2087 Name[tt]=Galça
2088 Name[uk]=Гальська
2089+Name[uz]=Галикча
2090 Name[wa]=Gayel
2091 Name[zh_CN]=盖尔语
2092 Name[zh_HK]=蓋爾語
2093@@ -8444,6 +8445,7 @@
2094 Name[sv]=Latinsk serbiska
2095 Name[tg]=Сербӣ (Лотинӣ)
2096 Name[uk]=Сербська (латинь)
2097+Name[uz]=Сербча (Лотин)
2098 Name[zh_CN]=塞尔维亚语(拉丁)
2099 [ss]
2100 Name=Swati
2101@@ -10303,6 +10305,7 @@
2102 Name[sv]=Kinesiska (Hong Kong)
2103 Name[tg]=Хитоӣ (Гонконг)
2104 Name[uk]=Китайська (Гонконг)
2105+Name[uz]=Хитойча (Гонгконг)
2106 Name[zh_CN]=繁体中文(香港)
2107 [zh_TW]
2108 Name=Chinese Traditional
2109Index: kdecore/kapplication.cpp
2110===================================================================
2111--- kdecore/kapplication.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2112+++ kdecore/kapplication.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
2113@@ -960,14 +960,13 @@
2114 static int my_system (const char *command) {
2115 int pid, status;
2116
2117- QApplication::flushX();
2118 pid = fork();
2119 if (pid == -1)
2120 return -1;
2121 if (pid == 0) {
2122 const char* shell = "/bin/sh";
2123 execl(shell, shell, "-c", command, (void *)0);
2124- ::exit(127);
2125+ ::_exit(127);
2126 }
2127 do {
2128 if (waitpid(pid, &status, 0) == -1) {
2129Index: kdecore/kpty.cpp
2130===================================================================
2131--- kdecore/kpty.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2132+++ kdecore/kpty.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
2133@@ -95,7 +95,7 @@
2134 # endif
2135 #endif
388da7ab 2136
56e2d959
AM
2137-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
2138+#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__) || defined (__DragonFly__)
2139 # define _tcgetattr(fd, ttmode) ioctl(fd, TIOCGETA, (char *)ttmode)
2140 #else
2141 # if defined(_HPUX_SOURCE) || defined(__Lynx__) || defined (__CYGWIN__)
2142@@ -105,7 +105,7 @@
2143 # endif
2144 #endif
388da7ab 2145
56e2d959
AM
2146-#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__)
2147+#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__bsdi__) || defined(__APPLE__) || defined (__DragonFly__)
2148 # define _tcsetattr(fd, ttmode) ioctl(fd, TIOCSETA, (char *)ttmode)
2149 #else
2150 # if defined(_HPUX_SOURCE) || defined(__CYGWIN__)
2151Index: khtml/khtml_part.cpp
518a05fa 2152===================================================================
56e2d959
AM
2153--- khtml/khtml_part.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2154+++ khtml/khtml_part.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
2155@@ -1595,7 +1595,6 @@
388da7ab 2156
56e2d959
AM
2157 d->m_pageServices = d->m_job->queryMetaData("PageServices");
2158 d->m_pageReferrer = d->m_job->queryMetaData("referrer");
2159-
2160 d->m_bSecurityInQuestion = false;
2161 d->m_ssl_in_use = (d->m_job->queryMetaData("ssl_in_use") == "TRUE");
2162
2163@@ -1638,6 +1637,7 @@
2164 if ( !qData.isEmpty() && !d->m_haveEncoding ) // only use information if the user didn't override the settings
2165 d->m_encoding = qData;
2166
2167+
2168 // Support for http-refresh
2169 qData = d->m_job->queryMetaData("http-refresh");
2170 if( !qData.isEmpty())
2171@@ -1651,6 +1651,11 @@
2172 d->m_doc->setBaseURL(KURL( d->m_doc->completeURL(baseURL) ));
2173 */
2174
2175+ // Support for Content-Language
2176+ QString language = d->m_job->queryMetaData("content-language");
2177+ if (!language.isEmpty())
2178+ d->m_doc->setContentLanguage(language);
2179+
2180 if ( !m_url.isLocalFile() ) {
2181 // Support for http last-modified
2182 d->m_lastModified = d->m_job->queryMetaData("modified");
2183@@ -3966,10 +3971,10 @@
2184 return true;
2185 }
388da7ab 2186
56e2d959
AM
2187- //If we're asked to open up an anchor in the current URL, in current window,
2188- //merely gotoanchor, and do not reload the new page. Note that this does
2189+ //If we're asked to open up an anchor in the current URL, in current window,
2190+ //merely gotoanchor, and do not reload the new page. Note that this does
2191 //not apply if the URL is the same page, but without a ref
2192- if (cURL.hasRef() && (!hasTarget || target == "_self"))
2193+ if (cURL.hasRef() && (!hasTarget || target == "_self"))
2194 {
2195 KURL curUrl = this->url();
2196 if (urlcmp(cURL.url(), curUrl.url(),
2197@@ -3977,7 +3982,7 @@
2198 true)) // don't care if the ref changes!
2199 {
2200 m_url = cURL;
2201- emit d->m_extension->openURLNotify();
2202+ emit d->m_extension->openURLNotify();
2203 if ( !gotoAnchor( m_url.encodedHtmlRef()) )
2204 gotoAnchor( m_url.htmlRef() );
2205 emit d->m_extension->setLocationBarURL( m_url.prettyURL() );
2206@@ -5956,9 +5961,9 @@
2207 if (n->isText()) {
2208 khtml::RenderText* const textRenderer = static_cast<khtml::RenderText *>(n);
2209 const khtml::InlineTextBoxArray &runs = textRenderer->inlineTextBoxes();
2210- const unsigned lim = runs.count();
2211+ const unsigned lim = runs.count();
2212 for (unsigned i = 0; i != lim; ++i) {
2213- if (runs[i]->m_y == y) {
2214+ if (runs[i]->m_y == y && textRenderer->element()) {
2215 startNode = textRenderer->element();
2216 startOffset = runs[i]->m_start;
2217 return true;
2218@@ -5999,7 +6004,7 @@
2219 khtml::RenderText* const textRenderer = static_cast<khtml::RenderText *>(n);
2220 const khtml::InlineTextBoxArray &runs = textRenderer->inlineTextBoxes();
2221 for (int i = (int)runs.count()-1; i >= 0; --i) {
2222- if (runs[i]->m_y == y) {
2223+ if (runs[i]->m_y == y && textRenderer->element()) {
2224 endNode = textRenderer->element();
2225 endOffset = runs[i]->m_start + runs[i]->m_len;
2226 return true;
2227Index: khtml/html/htmltokenizer.cpp
2228===================================================================
2229--- khtml/html/htmltokenizer.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2230+++ khtml/html/htmltokenizer.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
2231@@ -7,7 +7,8 @@
2232 (C) 1999 Lars Knoll (knoll@kde.org)
2233 (C) 1999 Antti Koivisto (koivisto@kde.org)
2234 (C) 2001-2003 Dirk Mueller (mueller@kde.org)
2235- (C) 2002 Apple Computer, Inc.
2236+ (C) 2004 Apple Computer, Inc.
2237+ (C) 2006 Germain Garand (germain@ebooksfrance.org)
2238
2239 This library is free software; you can redistribute it and/or
2240 modify it under the terms of the GNU Library General Public
2241@@ -90,38 +91,36 @@
2242 #define fixUpChar(x) \
2243 switch ((x).unicode()) \
2244 { \
2245- /* ALL of these should be changed to Unicode SOON */ \
2246 case 0x80: (x) = 0x20ac; break; \
2247- case 0x82: (x) = ','; break; \
2248+ case 0x82: (x) = 0x201a; break; \
2249 case 0x83: (x) = 0x0192; break; \
2250- case 0x84: (x) = '"'; break; \
2251+ case 0x84: (x) = 0x201e; break; \
2252 case 0x85: (x) = 0x2026; break; \
2253 case 0x86: (x) = 0x2020; break; \
2254 case 0x87: (x) = 0x2021; break; \
2255 case 0x88: (x) = 0x02C6; break; \
2256 case 0x89: (x) = 0x2030; break; \
2257 case 0x8A: (x) = 0x0160; break; \
2258- case 0x8b: (x) = '<'; break; \
2259+ case 0x8b: (x) = 0x2039; break; \
2260 case 0x8C: (x) = 0x0152; break; \
2261 case 0x8E: (x) = 0x017D; break; \
2262- case 0x91: (x) = '\''; break; \
2263- case 0x92: (x) = '\''; break; \
2264- case 0x93: (x) = '"'; break; \
2265- case 0x94: (x) = '"'; break; \
2266- case 0x95: (x) = '*'; break; \
2267- case 0x96: (x) = '-'; break; \
2268- case 0x97: (x) = '-'; break; \
2269- case 0x98: (x) = '~'; break; \
2270+ case 0x91: (x) = 0x2018; break; \
2271+ case 0x92: (x) = 0x2019; break; \
2272+ case 0x93: (x) = 0x201C; break; \
2273+ case 0x94: (x) = 0X201D; break; \
2274+ case 0x95: (x) = 0x2022; break; \
2275+ case 0x96: (x) = 0x2013; break; \
2276+ case 0x97: (x) = 0x2014; break; \
2277+ case 0x98: (x) = 0x02DC; break; \
2278 case 0x99: (x) = 0x2122; break; \
2279 case 0x9A: (x) = 0x0161; break; \
2280- case 0x9b: (x) = '>'; break; \
2281+ case 0x9b: (x) = 0x203A; break; \
2282 case 0x9C: (x) = 0x0153; break; \
2283 case 0x9E: (x) = 0x017E; break; \
2284 case 0x9F: (x) = 0x0178; break; \
2285 default: break; \
2286 }
2287 #endif
2288-
2289 // ----------------------------------------------------------------------------
2290
2291 HTMLTokenizer::HTMLTokenizer(DOM::DocumentPtr *_doc, KHTMLView *_view)
2292@@ -387,27 +386,30 @@
2293 currToken.tid = ID_SCRIPT + ID_CLOSE_TAG;
2294 processToken();
2295
2296- TokenizerString prependingSrc;
2297+ // Scripts following a frameset element should not be executed or even loaded in the case of extern scripts.
2298+ bool followingFrameset = (parser->doc()->body() && parser->doc()->body()->id() == ID_FRAMESET);
2299+ bool deferredScript = false;
2300
2301- if ( !parser->skipMode() ) {
2302+ if ( !parser->skipMode() && !followingFrameset) {
2303 CachedScript* cs = 0;
2304
2305 // forget what we just got, load from src url instead
2306 if ( !currentScriptSrc.isEmpty() &&
2307- (cs = parser->doc()->docLoader()->requestScript(currentScriptSrc, scriptSrcCharset) ))
2308+ (cs = parser->doc()->docLoader()->requestScript(currentScriptSrc, scriptSrcCharset) )) {
2309 cachedScript.enqueue(cs);
2310+ }
388da7ab 2311
56e2d959
AM
2312 if (cs) {
2313- pendingSrc.prepend(src);
2314+ pendingQueue.push(src);
2315+ uint scriptCount = cachedScript.count();
2316 setSrc(TokenizerString());
2317 scriptCodeSize = scriptCodeResync = 0;
2318 cs->ref(this);
2319+ if (cachedScript.count() == scriptCount)
2320+ deferredScript = true;
2321 }
2322 else if (currentScriptSrc.isEmpty() && view && javascript ) {
2323- if ( !m_executingScript )
2324- pendingSrc.prepend(src);
2325- else
2326- prependingSrc = src;
2327+ pendingQueue.push(src);
2328 setSrc(TokenizerString());
2329 scriptCodeSize = scriptCodeResync = 0;
2330 scriptExecution( exScript, QString::null, tagStartLineno /*scriptStartLineno*/ );
2331@@ -417,12 +419,17 @@
2332 script = false;
2333 scriptCodeSize = scriptCodeResync = 0;
2334
2335+ if (parser->skipMode() || followingFrameset)
2336+ return;
2337+
2338 if ( !m_executingScript && cachedScript.isEmpty() ) {
2339- // kdDebug( 6036 ) << "adding pending Output to parsed string" << endl;
2340- src.append(pendingSrc);
2341- pendingSrc.clear();
2342- } else if ( !prependingSrc.isEmpty() )
2343- write( prependingSrc, false );
2344+ src.append(pendingQueue.pop());
2345+ } else if ( cachedScript.isEmpty() ) {
2346+ write( pendingQueue.pop(), false );
2347+ } else if ( !deferredScript && pendingQueue.count() > 1) {
2348+ TokenizerString t = pendingQueue.pop();
2349+ pendingQueue.top().prepend( t );
2350+ }
2351 }
2352
2353 void HTMLTokenizer::scriptExecution( const QString& str, const QString& scriptURL,
2354@@ -1294,10 +1301,14 @@
2355 if ( !buffer )
2356 return;
2357
2358- if ( ( m_executingScript && appendData ) ||
2359- ( !m_executingScript && cachedScript.count() ) ) {
2360+ if ( ( m_executingScript && appendData ) || cachedScript.count() ) {
2361 // don't parse; we will do this later
2362- pendingSrc.append(str);
2363+ if (pendingQueue.isEmpty())
2364+ pendingQueue.push(str);
2365+ else if (appendData)
2366+ pendingQueue.bottom().append(str);
2367+ else
2368+ pendingQueue.top().append(str);
2369 return;
388da7ab
AM
2370 }
2371
56e2d959
AM
2372@@ -1705,9 +1716,9 @@
2373 assert(!cachedScript.isEmpty());
2374 bool done = false;
2375 while (!done && cachedScript.head()->isLoaded()) {
2376-#ifdef TOKEN_DEBUG
388da7ab 2377+
56e2d959
AM
2378 kdDebug( 6036 ) << "Finished loading an external script" << endl;
2379-#endif
e96bff9a 2380+
56e2d959
AM
2381 CachedScript* cs = cachedScript.dequeue();
2382 DOMString scriptSource = cs->script();
2383 #ifdef TOKEN_DEBUG
2384@@ -1725,12 +1736,16 @@
2385 done = cachedScript.isEmpty();
2386
2387 // 'script' is true when we are called synchronously from
2388- // parseScript(). In that case parseScript() will take care
2389+ // scriptHandler(). In that case scriptHandler() will take care
2390 // of 'scriptOutput'.
2391 if ( !script ) {
2392- TokenizerString rest = pendingSrc;
2393- pendingSrc.clear();
2394- write(rest, false);
2395+ if (pendingQueue.count() > 1) {
2396+ TokenizerString t = pendingQueue.pop();
2397+ pendingQueue.top().prepend( t );
2398+ }
2399+ if (done) {
2400+ write(pendingQueue.pop(), false);
2401+ }
2402 // we might be deleted at this point, do not
2403 // access any members.
2404 }
2405Index: khtml/html/html_formimpl.cpp
2406===================================================================
2407--- khtml/html/html_formimpl.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2408+++ khtml/html/html_formimpl.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
2409@@ -630,7 +630,9 @@
2410 // otherwise we might have a potential security problem
2411 // by saving passwords under wrong lookup key.
2412
2413- getDocument()->view()->part()->saveToWallet(key, m_walletMap);
2414+ if (view->part()) {
2415+ view->part()->saveToWallet(key, m_walletMap);
2416+ }
2417 } else if ( savePassword == KDialogBase::No ) {
2418 view->addNonPasswordStorableSite(formUrl.host());
2419 }
2420Index: khtml/html/htmltokenizer.h
2421===================================================================
2422--- khtml/html/htmltokenizer.h (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2423+++ khtml/html/htmltokenizer.h (.../branches/KDE/3.5/kdelibs) (revision 526003)
2424@@ -317,7 +317,7 @@
2425 QString scriptSrcCharset;
2426 bool javascript;
2427 // the HTML code we will parse after the external script we are waiting for has loaded
2428- TokenizerString pendingSrc;
2429+ TokenizerQueue pendingQueue;
2430 // true if we are executing a script while parsing a document. This causes the parsing of
2431 // the output of the script to be postponed until after the script has finished executing
2432 int m_executingScript;
2433Index: khtml/kjserrordlg.ui
2434===================================================================
2435--- khtml/kjserrordlg.ui (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2436+++ khtml/kjserrordlg.ui (.../branches/KDE/3.5/kdelibs) (revision 526003)
2437@@ -86,7 +86,7 @@
2438 <enum>RichText</enum>
2439 </property>
2440 </widget>
2441- <widget class="KActiveLabel" row="0" column="0" rowspan="1" colspan="3">
2442+ <widget class="KSqueezedTextLabel" row="0" column="0" rowspan="1" colspan="3">
2443 <property name="name">
2444 <cstring>_url</cstring>
2445 </property>
2446@@ -117,7 +117,7 @@
2447 </tabstops>
2448 <includes>
2449 <include location="global" impldecl="in declaration">kdialog.h</include>
2450- <include location="global" impldecl="in declaration">kactivelabel.h</include>
2451+ <include location="global" impldecl="in declaration">ksqueezedtextlabel.h</include>
2452 </includes>
2453 <slots>
2454 <slot>init()</slot>
2455Index: khtml/rendering/render_object.cpp
2456===================================================================
2457--- khtml/rendering/render_object.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2458+++ khtml/rendering/render_object.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
2459@@ -2109,19 +2109,21 @@
2460 n = n->previousSibling();
2461 }
2462 if (sibling->isReset())
2463+ {
2464 if (last != sibling)
2465 sibling->insertAfter(i, last);
2466 else
2467 sibling->insertAfter(i, 0);
2468- else
2469+ }
2470+ else if (last->parent())
2471 last->parent()->insertAfter(i, last);
2472 }
2473- else {
2474+ else if (parent()) {
2475 // Nothing found among siblings, let our parent search
2476 last = parent()->getCounter(counter, false);
2477 if (last->isReset())
2478 last->insertAfter(i, 0);
2479- else
2480+ else if (last->parent())
2481 last->parent()->insertAfter(i, last);
2482 }
2483 }
2484Index: khtml/rendering/render_text.cpp
2485===================================================================
2486--- khtml/rendering/render_text.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2487+++ khtml/rendering/render_text.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
2488@@ -307,12 +307,12 @@
2489 }
2490 if ( _x > _tx + m_x + m_width ) {
2491 // to the right
2492- return m_reversed ? SelectionPointBeforeInLine : SelectionPointAfterInLine;
2493+ return SelectionPointAfterInLine;
2494 }
2495
2496 // The Y matches, check if we're on the left
2497 if ( _x < _tx + m_x ) {
2498- return m_reversed ? SelectionPointAfterInLine : SelectionPointBeforeInLine;
2499+ return SelectionPointBeforeInLine;
388da7ab 2500 }
549beba1 2501
56e2d959
AM
2502 // consider spacing for justified text
2503Index: khtml/rendering/render_box.cpp
2504===================================================================
2505--- khtml/rendering/render_box.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2506+++ khtml/rendering/render_box.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
2507@@ -687,16 +687,12 @@
2508 Q_ASSERT(p);
2509 while( p->isInline() && !p->isReplaced() )
2510 p = p->parent();
2511- int off = 0;
2512- if (!p->hasOverflowClip());
2513- off = p->negativeOverflowWidth();
2514+ int off = p->hasOverflowClip() ? 0 : p->negativeOverflowWidth();
2515 p->repaintRectangle( -ow - off, -ow, p->effectiveWidth()+ow*2, p->effectiveHeight()+ow*2, immediate);
2516 }
2517 else
388da7ab 2518 {
56e2d959
AM
2519- int off = 0;
2520- if (!hasOverflowClip());
2521- off = negativeOverflowWidth();
2522+ int off = hasOverflowClip() ? 0 : negativeOverflowWidth();
2523 repaintRectangle( -ow - off, -ow, effectiveWidth()+ow*2, effectiveHeight()+ow*2, immediate);
388da7ab 2524 }
56e2d959
AM
2525 }
2526Index: khtml/rendering/render_block.cpp
2527===================================================================
2528--- khtml/rendering/render_block.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2529+++ khtml/rendering/render_block.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
2530@@ -176,6 +176,11 @@
2531 firstLetter->setIsAnonymous( true );
2532 firstLetterContainer->addChild(firstLetter, firstLetterContainer->firstChild());
2533
2534+ // if this object is the result of a :begin, then the text may have not been
2535+ // generated yet if it is a counter
2536+ if (textObj->recalcMinMax())
2537+ textObj->recalcMinMaxWidths();
2538+
2539 // The original string is going to be either a generated content string or a DOM node's
2540 // string. We want the original string before it got transformed in case first-letter has
2541 // no text-transform or a different text-transform applied to it.
2542@@ -187,11 +192,13 @@
2543 oldText->ref();
2544 unsigned int length = 0;
2545 while ( length < oldText->l &&
2546- ( (oldText->s+length)->isSpace() || (oldText->s+length)->isPunct() ) )
2547+ ( (oldText->s+length)->isSpace() || (oldText->s+length)->isPunct()) )
2548 length++;
2549 if ( length < oldText->l &&
2550 !( (oldText->s+length)->isSpace() || (oldText->s+length)->isPunct() ))
2551 length++;
2552+ while ( length < oldText->l && (oldText->s+length)->isMark() )
2553+ length++;
2554 RenderTextFragment* remainingText =
2555 new (renderArena()) RenderTextFragment(textObj->node(), oldText, length, oldText->l-length);
2556 remainingText->setIsAnonymous( textObj->isAnonymous() );
2557@@ -2244,8 +2251,10 @@
2558
2559 int offset = m_y;
2560 if (parentHasFloats)
2561+ {
2562 addOverHangingFloats( static_cast<RenderBlock *>( parent() ),
2563 parent()->borderLeft() + parent()->paddingLeft(), offset, false );
2564+ }
388da7ab 2565
56e2d959
AM
2566 int xoffset = 0;
2567 if (prev) {
2568@@ -2275,10 +2284,24 @@
2569 // Prevent floats from being added to the canvas by the root element, e.g., <html>.
2570 if ( !flow->m_floatingObjects || (child && flow->isRoot()) )
2571 return;
2572+
2573+ // if I am clear of my floats, don't add them
2574+ // the CSS spec also mentions that child floats
2575+ // are not cleared.
2576+ if (!child && style()->clear() == CBOTH)
2577+ {
2578+ return;
2579+ }
2580
2581 QPtrListIterator<FloatingObject> it(*flow->m_floatingObjects);
2582 FloatingObject *r;
2583 for ( ; (r = it.current()); ++it ) {
2584+
2585+ if (!child && r->type == FloatingObject::FloatLeft && style()->clear() == CLEFT )
2586+ continue;
2587+ if (!child && r->type == FloatingObject::FloatRight && style()->clear() == CRIGHT )
2588+ continue;
2589+
2590 if ( ( !child && r->endY > offset ) ||
2591 ( child && flow->yPos() + r->endY > height() ) ) {
2592 if (child && !r->crossedLayer) {
2593Index: khtml/ChangeLog
2594===================================================================
2595--- khtml/ChangeLog (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2596+++ khtml/ChangeLog (.../branches/KDE/3.5/kdelibs) (revision 526003)
2597@@ -1,3 +1,12 @@
2598+2006-03-25 Germain Garand <germain@ebooksfrance.org>
2599+
2600+ Scope: fix handling of nested/external scripts in the tokenizer (#91701)
2601+
2602+ * misc/stringit.h (TokenizerQueue): a LIFO stack of TokenizerStrings
2603+ * html/htmltokenizer.{h,cpp} (scriptHandler/write/notifyFinished): use a TokenizerQueue to store
2604+ postponed fragments while executing/loading scripts.
2605+ (fixUpChar): unrelated - fill in missing unicode replacements.
2606+
2607 2006-03-20 Dirk Mueller <mueller@kde.org>
2608
2609 * misc/loader.cpp: fix pixmap leak in tiled_pixmap()
2610@@ -2,20 +11,27 @@
2611
2612+2006-03-20 Allan Sandfeld Jensen <kde@carewolf.com>
2613+
2614+ Improve the CSS :lang() selector to match clarified specification
2615+
2616+ * khtml_part.cpp: parse HTTP content-language
2617+ * xml/dom_docimpl.cpp: parse HTTP-EQUIV content-language
2618+ * css/cssstyleselector.cpp: match :lang() against parents and ultimately the document
2619+
2620 2006-03-07 Germain Garand <germain@ebooksfrance.org>
388da7ab 2621
56e2d959 2622 Scope: relayout/repaint/widget masks fixes. Refine stacking context exploration. Optimise.
388da7ab 2623
56e2d959
AM
2624- * khtmlview.cpp (reset/timerEvent): remove obsolete code checking validity of visible widgets list.
2625- (drawContents): use widget geometry rather than the RenderWidget's rect (fixes widget borders not being updated)
2626+ * khtmlview.cpp (drawContents): use widget geometry rather than the RenderWidget's rect (fixes widget borders not being updated)
2627 Check if widget is in the dirty rect before doing any work.
388da7ab 2628
56e2d959
AM
2629 * rendering/render_block.cpp (layoutBlockChildren): I meant !child->isPositioned() here, not isPositioned(). No need to
2630- dirty positioned children as this is handled by the containing block chain through layoutPositionedObjects
2631+ dirty positioned children as this is handled by the containing block chain through layoutPositionedObjects
2632 (layoutPositionedObjects): always relayout fixed objects.
388da7ab 2633
56e2d959
AM
2634 * rendering/render_canvas.cpp (layout): check canvas dimensions and call layoutBlock directly with relayoutChildren boolean.
2635-
2636- * rendering/render_layer.{h,cpp} (paintedRegion): constrain our shape to the visibleRect. Use convertToLayerCoords to get a correct
2637- visibleFlowRegion (updateWidgetMasks): don't forget to update the mask if it reverts to none at all.
388da7ab 2638
56e2d959
AM
2639- * rendering/render_object.{h,cpp} (containingBlock): for relpos inlines, return the nearest block (skipping to next containingBlock gives
2640+ * rendering/render_layer.{h,cpp} (paintedRegion): constrain our shape to the visibleRect. Use convertToLayerCoords to get a correct
2641+ visibleFlowRegion (updateWidgetMasks): don't forget to update the mask if it reverts to none at all.
2642+
2643+ * rendering/render_object.{h,cpp} (containingBlock): for relpos inlines, return the nearest block (skipping to next containingBlock gives
2644 stalled layout flags problems - #121653). (updateWidgetMasks): mask the content box, not the border box.
2645@@ -31,7 +47,7 @@
2646 * link not accessable with negative text-indent (#96275)
2647 * Wrong :hover effect with negative text-indent (#90510)
2648 * text not selectable if it has a negative text-indent
2649-
388da7ab 2650+
56e2d959
AM
2651 2006-03-05 Charles Samuels <charles@kde.org>
2652 * javascript timeouts that cross a midnight boundary shall not occur early
388da7ab 2653
56e2d959 2654@@ -39,7 +55,7 @@
388da7ab 2655
56e2d959 2656 get iframes, objects and some other overlaid widgets to obey their stacking context (#31121)
388da7ab 2657
56e2d959
AM
2658- * khtmlview.cpp: mask widgets more precisely (i.e. allow layers to paint over overlaid widgets,
2659+ * khtmlview.cpp: mask widgets more precisely (i.e. allow layers to paint over overlaid widgets,
2660 when they ought to).
388da7ab 2661
56e2d959
AM
2662 * rendering/render_canvas.{cpp,h}: update widget masks after pos child layout/positioning;
2663@@ -49,7 +65,7 @@
2664 childs. We'll apply that mask later to widgets that are under our aegis.
388da7ab 2665
56e2d959
AM
2666 * rendering/render_object.{cpp,h} (visibleFlowRegion): helper for calculation of broad region we want to mask in flows.
2667- (updateWidgetMasks): walk our children looking for widgets suitable to masking. Apply our enclosingLayer's mask,
2668+ (updateWidgetMasks): walk our children looking for widgets suitable to masking. Apply our enclosingLayer's mask,
2669 transformis transformandi.
388da7ab 2670
56e2d959
AM
2671 * rendering/render_replaced.cpp: overlaid widgets must advertise their existence to the enclosing layer.
2672@@ -64,22 +80,22 @@
2673 * css/css_ruleimpl.cpp (selectorText): handle of multiple, comma-separated selectors
388da7ab 2674
56e2d959
AM
2675 2006-02-28 Germain Garand <germain@ebooksfrance.org>
2676-
2677+
2678 Common-case style selection optimisation inspired from WebCore.
e96bff9a 2679
56e2d959
AM
2680 * css/css_base.cpp/.h: add 'Class' to possible matching modes
2681 * css/cssstyleselector.cpp: treat 'Class' extra, not anymore as an ordinary List.
2682- * css/parser.cpp/y: use 'Class' matching mode
2683+ * css/parser.cpp/y: use 'Class' matching mode
2684 * html/html_elementimpl.cpp: when parsing ATTR_CLASS, set a boolean to remember if it is or not a class list.
2685 * xml/dom_elementimpl.{cpp,h}: add m_hasClassList boolean + setter/getter
e96bff9a 2686
56e2d959 2687 2006-02-28 Germain Garand <germain@ebooksfrance.org>
e96bff9a 2688
56e2d959
AM
2689 * rendering/render_object.cpp (dirtyFormattingContext): be more efficient with inlineflow objects.
2690- * rendering/render_block.cpp (layoutBlockChildren): be more efficient with regard to positioned objects relayout.
2691- Merge WC margin-collapse regression fix (WC/#3508).
2692+ * rendering/render_block.cpp (layoutBlockChildren): be more efficient with regard to positioned objects relayout.
2693+ Merge WC margin-collapse regression fix (WC/#3508).
2694 (layoutPositionedObjects) Objects with staticX() need a relayout too.
2695- * rendering/render_canvas.cpp (layout): no need to relayout positioned objects here. This would mark entire branches of the tree
2696+ * rendering/render_canvas.cpp (layout): no need to relayout positioned objects here. This would mark entire branches of the tree
2697 as needing a layout, thus stalling update requests in those branches (#116626)
e96bff9a 2698
56e2d959
AM
2699 2006-01-14 Allan Sandfeld Jensen <kde@carewolf.com>
2700Index: khtml/css/cssstyleselector.h
2701===================================================================
2702--- khtml/css/cssstyleselector.h (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2703+++ khtml/css/cssstyleselector.h (.../branches/KDE/3.5/kdelibs) (revision 526003)
2704@@ -126,7 +126,7 @@
2705 KDE_EXPORT static void clear();
2706 static void reparseConfiguration();
388da7ab 2707
56e2d959
AM
2708- static void loadDefaultStyle(const KHTMLSettings *s = 0);
2709+ static void loadDefaultStyle(const KHTMLSettings *s, DOM::DocumentImpl *doc);
2710
2711 RenderStyle *styleForElement(DOM::ElementImpl *e);
2712
2713@@ -184,7 +184,7 @@
2714 public:
2715
2716 private:
2717- void init(const KHTMLSettings* settings);
2718+ void init(const KHTMLSettings* settings, DOM::DocumentImpl* doc);
2719
2720 void mapBackgroundAttachment(BackgroundLayer* layer, DOM::CSSValueImpl* value);
2721 void mapBackgroundImage(BackgroundLayer* layer, DOM::CSSValueImpl* value);
2722Index: khtml/css/cssstyleselector.cpp
2723===================================================================
2724--- khtml/css/cssstyleselector.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2725+++ khtml/css/cssstyleselector.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
2726@@ -191,7 +191,7 @@
388da7ab 2727 {
56e2d959 2728 KHTMLView* view = doc->view();
388da7ab 2729
56e2d959
AM
2730- init(view ? view->part()->settings() : 0);
2731+ init(view ? view->part()->settings() : 0, doc);
2732
2733 strictParsing = _strictParsing;
2734 m_medium = view ? view->mediaType() : QString("all");
2735@@ -249,7 +249,7 @@
2736
2737 CSSStyleSelector::CSSStyleSelector( CSSStyleSheetImpl *sheet )
388da7ab 2738 {
56e2d959
AM
2739- init(0L);
2740+ init(0L, 0L);
2741
2742 KHTMLView *view = sheet->doc()->view();
2743 m_medium = view ? view->mediaType() : "screen";
2744@@ -258,7 +258,7 @@
2745 authorStyle->append( sheet, m_medium );
388da7ab
AM
2746 }
2747
56e2d959
AM
2748-void CSSStyleSelector::init(const KHTMLSettings* _settings)
2749+void CSSStyleSelector::init(const KHTMLSettings* _settings, DocumentImpl* doc)
388da7ab 2750 {
56e2d959
AM
2751 element = 0;
2752 settings = _settings;
2753@@ -267,7 +267,7 @@
2754 pseudoProps = (CSSOrderedProperty **)malloc(128*sizeof(CSSOrderedProperty *));
2755 propsToApplySize = 128;
2756 pseudoPropsSize = 128;
2757- if(!s_defaultStyle) loadDefaultStyle(settings);
2758+ if(!s_defaultStyle) loadDefaultStyle(settings, doc);
2759
2760 defaultStyle = s_defaultStyle;
2761 defaultPrintStyle = s_defaultPrintStyle;
2762@@ -291,7 +291,7 @@
2763 authorStyle->append( sheet, m_medium );
388da7ab 2764 }
e96bff9a 2765
56e2d959
AM
2766-void CSSStyleSelector::loadDefaultStyle(const KHTMLSettings *s)
2767+void CSSStyleSelector::loadDefaultStyle(const KHTMLSettings *s, DocumentImpl *doc)
388da7ab 2768 {
56e2d959 2769 if(s_defaultStyle) return;
388da7ab 2770
56e2d959
AM
2771@@ -310,7 +310,7 @@
2772 style += s->settingsToCSS();
2773 DOMString str(style);
549beba1 2774
56e2d959
AM
2775- s_defaultSheet = new DOM::CSSStyleSheetImpl((DOM::CSSStyleSheetImpl * ) 0);
2776+ s_defaultSheet = new DOM::CSSStyleSheetImpl(doc);
2777 s_defaultSheet->parseString( str );
549beba1 2778
56e2d959
AM
2779 // Collect only strict-mode rules.
2780@@ -333,7 +333,7 @@
2781 QString style = QString::fromLatin1( file.data() );
2782 DOMString str(style);
2783
2784- s_quirksSheet = new DOM::CSSStyleSheetImpl((DOM::CSSStyleSheetImpl * ) 0);
2785+ s_quirksSheet = new DOM::CSSStyleSheetImpl(doc);
2786 s_quirksSheet->parseString( str );
2787
2788 // Collect only quirks-mode rules.
2789@@ -1076,7 +1076,7 @@
2790 return false;
2791 return true;
2792 }
2793- // no break
2794+ // no break
2795 case CSSSelector::List:
2796 {
2797 if (sel->match != CSSSelector::Class) {
2798@@ -1408,7 +1408,20 @@
2799 break;
2800 case CSSSelector::PseudoLang: {
2801 DOMString value = e->getAttribute(ATTR_LANG);
2802- if (value.isNull()) return false;
2803+ // The LANG attribute is inherited like a property
2804+ NodeImpl *n = e->parent();;
2805+ while (n && value.isEmpty()) {
2806+ if (n->isElementNode()) {
2807+ // ### check xml:lang attribute in XML and XHTML documents
2808+ value = static_cast<ElementImpl*>(n)->getAttribute(ATTR_LANG);
2809+ } else
2810+ if (n->isDocumentNode()) {
2811+ value = static_cast<DocumentImpl*>(n)->contentLanguage();
2812+ }
2813+ n = n->parent();
2814+ }
2815+ if (value.isEmpty()) return false;
388da7ab 2816+
56e2d959
AM
2817 QString langAttr = value.string();
2818 QString langSel = sel->string_arg.string();
2819
2820Index: khtml/css/css_stylesheetimpl.cpp
2821===================================================================
2822--- khtml/css/css_stylesheetimpl.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2823+++ khtml/css/css_stylesheetimpl.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
2824@@ -216,10 +216,13 @@
2825
2826 m_namespaces = new CSSNamespace(prefix, uri, m_namespaces);
2827
2828- if (prefix.isEmpty())
2829+ if (prefix.isEmpty()) {
2830+ Q_ASSERT(m_doc != 0);
388da7ab 2831+
56e2d959
AM
2832 // Set the default namespace on the parser so that selectors that omit namespace info will
2833 // be able to pick it up easily.
2834 p->defaultNamespace = m_doc->getId(NodeImpl::NamespaceId, uri.implementation(), false, false, &exceptioncode);
388da7ab 2835+ }
56e2d959 2836 }
388da7ab 2837
56e2d959
AM
2838 void CSSStyleSheetImpl::determineNamespace(Q_UINT32& id, const DOM::DOMString& prefix)
2839@@ -236,9 +239,12 @@
2840 else {
2841 int exceptioncode = 0;
2842 CSSNamespace* ns = m_namespaces->namespaceForPrefix(prefix);
2843- if (ns)
2844+ if (ns) {
2845+ Q_ASSERT(m_doc != 0);
2846+
2847 // Look up the id for this namespace URI.
2848 id = makeId(m_doc->getId(NodeImpl::NamespaceId, ns->uri().implementation(), false, false, &exceptioncode), localNamePart(id));
2849+ }
2850 }
2851 }
2852
2853Index: khtml/misc/stringit.h
e96bff9a 2854===================================================================
56e2d959
AM
2855--- khtml/misc/stringit.h (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2856+++ khtml/misc/stringit.h (.../branches/KDE/3.5/kdelibs) (revision 526003)
2857@@ -113,6 +113,11 @@
2858 TokenizerString() : m_currentChar(0), m_lines(0), m_composite(false) {}
2859 TokenizerString(const QChar *str, int length) : m_currentString(str, length), m_currentChar(m_currentString.m_current), m_lines(0), m_composite(false) {}
2860 TokenizerString(const QString &str) : m_currentString(str), m_currentChar(m_currentString.m_current), m_lines(0), m_composite(false) {}
2861+ TokenizerString(const TokenizerString &o) : m_pushedChar1(o.m_pushedChar1), m_pushedChar2(o.m_pushedChar2),
2862+ m_currentString(o.m_currentString), m_substrings(o.m_substrings),
2863+ m_lines(o.m_lines), m_composite(o.m_composite) {
2864+ m_currentChar = m_pushedChar1.isNull() ? m_currentString.m_current : &m_pushedChar1;
2865+ }
e96bff9a 2866
56e2d959 2867 void clear();
388da7ab 2868
56e2d959
AM
2869@@ -173,6 +178,25 @@
2870
2871 };
549beba1 2872
388da7ab 2873+
56e2d959
AM
2874+class TokenizerQueue : public QValueList<TokenizerString>
2875+{
388da7ab 2876+
388da7ab 2877+public:
56e2d959
AM
2878+ TokenizerQueue() {}
2879+ ~TokenizerQueue() {}
2880+ void push( const TokenizerString &t ) { prepend(t); }
2881+ TokenizerString pop() {
2882+ if (isEmpty())
2883+ return TokenizerString();
2884+ TokenizerString t(first());
2885+ remove( begin() );
2886+ return t;
2887+ }
2888+ TokenizerString& top() { return first(); }
2889+ TokenizerString& bottom() { return last(); }
388da7ab 2890+};
388da7ab 2891+
56e2d959 2892 }
388da7ab 2893
56e2d959
AM
2894 #endif
2895Index: khtml/khtmlview.h
388da7ab 2896===================================================================
56e2d959
AM
2897--- khtml/khtmlview.h (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2898+++ khtml/khtmlview.h (.../branches/KDE/3.5/kdelibs) (revision 526003)
2899@@ -171,6 +171,10 @@
549beba1 2900
549beba1 2901
56e2d959
AM
2902 signals:
2903+ /**
2904+ * This signal is used for internal layouting. Don't use it to check if rendering finished.
2905+ * Use @ref KHTMLPart completed() signal instead.
2906+ */
2907 void finishedLayout();
2908 void cleared();
2909 void zoomView( int );
2910Index: khtml/xml/dom2_eventsimpl.cpp
2911===================================================================
2912--- khtml/xml/dom2_eventsimpl.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2913+++ khtml/xml/dom2_eventsimpl.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
2914@@ -499,14 +499,14 @@
2915 }
549beba1 2916
56e2d959
AM
2917 L toLeft(R r) {
2918- typename QMap<R,L>::iterator i = m_rToL.find(r);
2919+ QMapIterator<R,L> i( m_rToL.find(r) );
2920 if (i != m_rToL.end())
2921 return *i;
2922 return L();
2923 }
549beba1 2924
56e2d959
AM
2925 R toRight(L l) {
2926- typename QMap<L,R>::iterator i = m_lToR.find(l);
2927+ QMapIterator<L,R> i = m_lToR.find(l);
2928 if (i != m_lToR.end())
2929 return *i;
2930 return R();
2931@@ -775,7 +775,7 @@
2932 if (keyIdentifierArg.length() == 1) {
2933 //Likely to be normal unicode id, unless it's one of the few
2934 //special values.
2935- unsigned short code = keyIdentifierArg.unicode()[0].unicode();
2936+ unsigned short code = keyIdentifierArg.unicode()[0];
2937 if (code > 0x20 && code != 0x7F)
2938 keyVal = code;
2939 }
2940@@ -789,7 +789,7 @@
2941 modifiersList.string().stripWhiteSpace().simplifyWhiteSpace());
388da7ab 2942
56e2d959
AM
2943 unsigned modifiers = 0;
2944- for (QStringList::iterator i = mods.begin(); i != mods.end(); ++i)
2945+ for (QStringList::Iterator i = mods.begin(); i != mods.end(); ++i)
2946 if (unsigned mask = keyModifiersToCode()->toRight((*i).latin1()))
2947 modifiers |= mask;
e96bff9a 2948
56e2d959
AM
2949Index: khtml/xml/dom_docimpl.cpp
2950===================================================================
2951--- khtml/xml/dom_docimpl.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2952+++ khtml/xml/dom_docimpl.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
2953@@ -173,7 +173,7 @@
2954 if (doc->doctype() && dtype)
2955 doc->doctype()->copyFrom(*dtype);
549beba1 2956
56e2d959
AM
2957- // the document must be created empty if all parameters are null
2958+ // the document must be created empty if all parameters are null
2959 // (or empty for qName/nsURI as a tolerance) - see DOM 3 Core.
2960 if (dtype || !qualifiedName.isEmpty() || !namespaceURI.isEmpty()) {
2961 ElementImpl *element = doc->createElementNS(namespaceURI,qualifiedName);
2962@@ -610,7 +610,7 @@
388da7ab 2963
56e2d959 2964 ElementMappingCache::ItemInfo* info = m_getElementByIdCache.get(stringKey);
e96bff9a 2965
56e2d959
AM
2966- if (!info)
2967+ if (!info)
2968 return 0;
a07378f5 2969
56e2d959
AM
2970 //See if cache has an unambiguous answer.
2971@@ -1656,6 +1656,9 @@
2972 m_preferredStylesheetSet = content;
2973 updateStyleSelector();
388da7ab 2974 }
56e2d959
AM
2975+ else if (strcasecmp(equiv, "content-language") == 0) {
2976+ m_contentLanguage = content.string();
388da7ab 2977+ }
56e2d959 2978 }
84bbb013 2979
56e2d959 2980 bool DocumentImpl::prepareMouseEvent( bool readonly, int _x, int _y, MouseEvent *ev )
388da7ab
AM
2981Index: khtml/xml/dom_docimpl.h
2982===================================================================
56e2d959
AM
2983--- khtml/xml/dom_docimpl.h (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
2984+++ khtml/xml/dom_docimpl.h (.../branches/KDE/3.5/kdelibs) (revision 526003)
2985@@ -530,6 +530,9 @@
2986 return m_getElementByIdCache;
2987 }
518a05fa 2988
56e2d959
AM
2989+ QString contentLanguage() const { return m_contentLanguage; }
2990+ void setContentLanguage(const QString& cl) { m_contentLanguage = cl; }
2991+
2992 signals:
2993 void finishedParsing();
2994
2995@@ -551,6 +554,8 @@
2996 QString m_printSheet;
2997 QStringList m_availableSheets;
2998
2999+ QString m_contentLanguage;
3000+
3001 // Track the number of currently loading top-level stylesheets. Sheets
3002 // loaded using the @import directive are not included in this count.
3003 // We use this count of pending sheets to detect when we can begin attaching
3004Index: pics/hicolor/index.theme
3005===================================================================
3006--- pics/hicolor/index.theme (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
3007+++ pics/hicolor/index.theme (.../branches/KDE/3.5/kdelibs) (revision 526003)
3008@@ -100,6 +100,7 @@
3009 Comment[uk]=Основна тема піктограм
3010 Comment[zh_CN]=默认图标主题
3011 Comment[zh_HK]=後備高彩圖示主題
3012+Inherits=kdeclassic,crystalsvg
3013 DisplayDepth=32
3014 Example=exec
3015 LinkOverlay=link
3016@@ -115,7 +116,7 @@
3017 SmallSizes=16
3018 PanelDefault=32
3019 PanelSizes=16,22,32,48
3020-Hidden=true
3021+Hidden=false
3022 Directories=192x192/apps,128x128/actions,128x128/apps,128x128/devices,128x128/filesystems,128x128/mimetypes,96x96/actions,96x96/apps,96x96/devices,96x96/filesystems,96x96/mimetypes,72x72/apps,64x64/actions,64x64/apps,64x64/devices,64x64/filesystems,64x64/mimetypes,48x48/actions,48x48/apps,48x48/devices,48x48/filesystems,48x48/mimetypes,36x36/apps,32x32/actions,32x32/apps,32x32/devices,32x32/filesystems,32x32/mimetypes,24x24/apps,22x22/actions,22x22/apps,22x22/devices,22x22/filesystems,22x22/mimetypes,16x16/actions,16x16/apps,16x16/devices,16x16/filesystems,16x16/mimetypes,scalable/actions,scalable/apps,scalable/devices,scalable/filesystems,scalable/mimetypes,16x16/stock/chart,16x16/stock/code,16x16/stock/data,16x16/stock/document,16x16/stock/form,16x16/stock/generic,16x16/stock/image,16x16/stock/io,16x16/stock/media,16x16/stock/navigation,16x16/stock/net,16x16/stock/object,16x16/stock/table,16x16/stock/text,24x24/stock/chart,24x24/stock/code,24x24/stock/data,24x24/stock/document,24x24/stock/form,24x24/stock/generic,24x24/stock/image,24x24/stock/io,24x24/stock/media,24x24/stock/navigation,24x24/stock/net,24x24/stock/object,24x24/stock/table,24x24/stock/text,32x32/stock/chart,32x32/stock/code,32x32/stock/data,32x32/stock/document,32x32/stock/form,32x32/stock/generic,32x32/stock/image,32x32/stock/io,32x32/stock/media,32x32/stock/navigation,32x32/stock/net,32x32/stock/object,32x32/stock/table,32x32/stock/text,36x36/stock/chart,36x36/stock/code,36x36/stock/data,36x36/stock/document,36x36/stock/form,36x36/stock/generic,36x36/stock/image,36x36/stock/io,36x36/stock/media,36x36/stock/navigation,36x36/stock/net,36x36/stock/object,36x36/stock/table,36x36/stock/text,48x48/stock/chart,48x48/stock/code,48x48/stock/data,48x48/stock/document,48x48/stock/form,48x48/stock/generic,48x48/stock/image,48x48/stock/io,48x48/stock/media,48x48/stock/navigation,48x48/stock/net,48x48/stock/object,48x48/stock/table,48x48/stock/text
3023
3024 [16x16/actions]
3025Index: pics/crystalsvg/cr16-action-tab_new_bg.png
e96bff9a 3026===================================================================
56e2d959
AM
3027Cannot display: file marked as a binary type.
3028svn:mime-type = application/octet-stream
3029
3030Property changes on: pics/crystalsvg/cr16-action-tab_new_bg.png
3031___________________________________________________________________
3032Name: svn:mime-type
3033 + application/octet-stream
3034
3035Index: pics/crystalsvg/cr16-action-tab_remove.png
61c08fac 3036===================================================================
56e2d959
AM
3037Cannot display: file marked as a binary type.
3038svn:mime-type = image/png
3039Index: pics/crystalsvg/cr16-action-tab_remove_other.png
61c08fac 3040===================================================================
56e2d959
AM
3041Cannot display: file marked as a binary type.
3042svn:mime-type = application/octet-stream
3043
3044Property changes on: pics/crystalsvg/cr16-action-tab_remove_other.png
3045___________________________________________________________________
3046Name: svn:mime-type
3047 + application/octet-stream
3048
3049Index: pics/crystalsvg/cr16-action-tab_new.png
388da7ab 3050===================================================================
56e2d959
AM
3051Cannot display: file marked as a binary type.
3052svn:mime-type = image/png
3053Index: kdoctools/customization/da/lang.entities
e96bff9a 3054===================================================================
56e2d959
AM
3055--- kdoctools/customization/da/lang.entities (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
3056+++ kdoctools/customization/da/lang.entities (.../branches/KDE/3.5/kdelibs) (revision 526003)
388da7ab
AM
3057@@ -12,6 +12,8 @@
3058 <!-- Licence links -->
56e2d959 3059 <!ENTITY underGPL PUBLIC "-//KDE//DOCUMENT GPL Licence Declaration//DA"
388da7ab 3060 "entities/underGPL.docbook" ><!-- level: para -->
56e2d959
AM
3061+<!ENTITY underLGPL PUBLIC "-//KDE//DOCUMENT LGPL Licence Declaration//DA"
3062+ "entities/underLGPL.docbook" ><!-- level: para -->
3063 <!ENTITY underFDL PUBLIC "-//KDE//DOCUMENT FDL Licence Declaration//DA"
388da7ab 3064 "entities/underFDL.docbook" ><!-- level: para -->
56e2d959
AM
3065 <!ENTITY underBSDLicense PUBLIC "-//KDE//DOCUMENT BSD Licence Declaration//DA"
3066Index: kdoctools/customization/da/catalog
3067===================================================================
3068--- kdoctools/customization/da/catalog (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
3069+++ kdoctools/customization/da/catalog (.../branches/KDE/3.5/kdelibs) (revision 526003)
3070@@ -16,6 +16,8 @@
3071 "common/fdl-translated"
3072 PUBLIC "-//KDE//DOCUMENT GPL Licence Declaration//DA"
3073 "entities/underGPL.docbook"
3074+PUBLIC "-//KDE//DOCUMENT LGPL Licence Declaration//DA"
3075+ "entities/underLGPL.docbook"
3076 PUBLIC "-//KDE//DOCUMENT FDL Licence Declaration//DA"
3077 "entities/underFDL.docbook"
3078 PUBLIC "-//KDE//DOCUMENT BSD Licence Declaration//DA"
3079Index: kdoctools/customization/ca/user.entities
3080===================================================================
3081--- kdoctools/customization/ca/user.entities (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
3082+++ kdoctools/customization/ca/user.entities (.../branches/KDE/3.5/kdelibs) (revision 526003)
3083@@ -29,8 +29,17 @@
3084 <!ENTITY kmenu "Menú <guimenu>K</guimenu>">
3085 <!ENTITY BER "botó <mousebutton>esquerra</mousebutton> del ratolí"><!-- English: &LMB; -->
3086 <!ENTITY BMR "botó <mousebutton>mig</mousebutton> del ratolí"><!-- English: &MMB; -->
3087-<!ENTITY SO "sistema operatiu"><!-- English: &OS; -->
3088+<!ENTITY SO "sistema operatiu"><!-- English: &OS; -->
3089 <!ENTITY BDR "botó <mousebutton>dret</mousebutton> del ratolí"><!-- English: &RMB; -->
3090 <!ENTITY Maj "<keycap>Majús.</keycap>"><!-- English: &Shift; -->
3091 <!ENTITY safatasistema "<application>safata del sistema</application>"><!-- English: &systemtray; -->
3092 <!ENTITY Tab "<keycap>Tabulador</keycap>">
3093+
3094+<!-- ROLES OF TRANSLATORS -->
3095+<!ENTITY traductor.Antoni.Bella '<othercredit role="translator"><firstname>Antoni</firstname><surname>Bella</surname><affiliation><address><email>bella5@teleline.es</email></address></affiliation><contrib>Traductor</contrib></othercredit>'>
3096+<!ENTITY revisor.Antoni.Bella '<othercredit role="reviewer"><firstname>Antoni</firstname><surname>Bella</surname><affiliation><address><email>bella5@teleline.es</email></address></affiliation><contrib>Revisor</contrib></othercredit>'>
3097+
3098+<!-- CREDITS FOR TRANSLATORS -->
3099+<!-- Seguir el següent format '<para>Traductor/Revisor de la documentació: &credits.Nom.Cognom;</para>' -->
3100+<!ENTITY credits.Antoni.Bella 'Antoni Bella <email>bella5@teleline.es</email>'>
3101+
3102Index: kdoctools/customization/it/entities/underLGPL.docbook
3103===================================================================
3104--- kdoctools/customization/it/entities/underLGPL.docbook (.../tags/KDE/3.5.2/kdelibs) (revision 0)
3105+++ kdoctools/customization/it/entities/underLGPL.docbook (.../branches/KDE/3.5/kdelibs) (revision 526003)
3106@@ -0,0 +1,2 @@
3107+<para>Questo programma è concesso in licenza sotto i termini della <ulink
3108+url="common/gpl-license.html">GNU Lesser General Public License</ulink>.</para>
3109\ No newline at end of file
3110Index: kdoctools/customization/it/lang.entities
3111===================================================================
3112--- kdoctools/customization/it/lang.entities (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
3113+++ kdoctools/customization/it/lang.entities (.../branches/KDE/3.5/kdelibs) (revision 526003)
3114@@ -12,6 +12,8 @@
3115 <!-- Licence links -->
3116 <!ENTITY underGPL PUBLIC "-//KDE//DOCUMENT GPL Licence Declaration//IT"
3117 "entities/underGPL.docbook" ><!-- level: para -->
3118+<!ENTITY underLGPL PUBLIC "-//KDE//DOCUMENT LGPL Licence Declaration//IT"
3119+ "entities/underLGPL.docbook" ><!-- level: para -->
3120 <!ENTITY underFDL PUBLIC "-//KDE//DOCUMENT FDL Licence Declaration//IT"
3121 "entities/underFDL.docbook" ><!-- level: para -->
3122 <!ENTITY underBSDLicense PUBLIC "-//KDE//DOCUMENT BSD Licence Declaration//IT"
3123Index: kdoctools/customization/it/catalog
3124===================================================================
3125--- kdoctools/customization/it/catalog (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
3126+++ kdoctools/customization/it/catalog (.../branches/KDE/3.5/kdelibs) (revision 526003)
3127@@ -16,6 +16,8 @@
3128 "common/fdl-translated"
3129 PUBLIC "-//KDE//DOCUMENT GPL Licence Declaration//IT"
3130 "entities/underGPL.docbook"
3131+PUBLIC "-//KDE//DOCUMENT LGPL Licence Declaration//IT"
3132+ "entities/underLGPL.docbook"
3133 PUBLIC "-//KDE//DOCUMENT FDL Licence Declaration//IT"
3134 "entities/underFDL.docbook"
3135 PUBLIC "-//KDE//DOCUMENT BSD Licence Declaration//IT"
388da7ab
AM
3136Index: kded/khostname.cpp
3137===================================================================
56e2d959
AM
3138--- kded/khostname.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
3139+++ kded/khostname.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
3140@@ -155,7 +155,11 @@
3141 continue;
3142
3143 QCString newNetId = newName+netId.mid(i);
3144+ QCString oldNetId = netId.left(i);
3145
3146+ if(oldNetId != oldName)
3147+ continue;
3148+
3149 cmd = "xauth remove "+KProcess::quote(netId);
3150 system(QFile::encodeName(cmd));
3151 cmd = "xauth add ";
3152Index: kdeprint/filters/enscript.desktop
3153===================================================================
3154--- kdeprint/filters/enscript.desktop (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
3155+++ kdeprint/filters/enscript.desktop (.../branches/KDE/3.5/kdelibs) (revision 526003)
3156@@ -23,7 +23,7 @@
3157 Comment[bn]=enscript টেক্সট ফিল্টার
3158 Comment[br]=Sil skrid Enscript
3159 Comment[bs]=Enscript tekst filter
3160-Comment[ca]=Filtre de texts enscript
3161+Comment[ca]=Filtre de text enscript
3162 Comment[cs]=Textový filtr Enscript
3163 Comment[cy]=Hidl Testun Enscript
3164 Comment[da]=Enscript-tekstfilter
3165Index: kdeprint/ext/ext.print
3166===================================================================
3167--- kdeprint/ext/ext.print (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
3168+++ kdeprint/ext/ext.print (.../branches/KDE/3.5/kdelibs) (revision 526003)
3169@@ -6,7 +6,7 @@
3170 Comment[az]=Xarici Proqram Vasitəsilə Çap Et (ümumi)
3171 Comment[bn]=বহিঃস্থ প্রোগ্রামের (generic) সাহায্যে ছাপানো হোক
3172 Comment[bs]=Štampajte pomoću eksternog programa (generic)
3173-Comment[ca]=Imprimeix mitjançant un programa extern (genèric)
3174+Comment[ca]=Impressió mitjançant un programa extern (genèric)
3175 Comment[cs]=Tisk pomocí externího programu (obecné)
3176 Comment[cy]=Argraffu drwy Raglen Allanol (cyffredinol)
3177 Comment[da]=Udskriv gennem et eksternt program (generisk)
3178Index: configure.in.in
3179===================================================================
3180--- configure.in.in (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
3181+++ configure.in.in (.../branches/KDE/3.5/kdelibs) (revision 526003)
3182@@ -162,7 +162,7 @@
3183 AC_CHECK_MKSTEMPS
3184 AC_CHECK_MKSTEMP
3185 AC_CHECK_MKDTEMP
3186-AC_CHECK_FUNCS(strtoll socket seteuid setegid strfmon stpcpy gettimeofday readdir_r setpriority)
3187+AC_CHECK_FUNCS(strtoll socket seteuid setegid strfmon stpcpy gettimeofday readdir_r setpriority statvfs statfs)
3188
3189 AH_BOTTOM([
3190 /* provide a definition for a 32 bit entity, usable as a typedef, possibly
3191@@ -306,7 +306,10 @@
3192 CXXFLAGS="$CXXFLAGS $USE_RTTI"
3193 fi
388da7ab 3194
56e2d959
AM
3195-rgb_file="$x_libraries/X11/rgb.txt"
3196+AC_ARG_WITH([rgbfile],
3197+ AC_HELP_STRING([--with-rgbfile=path], [Define custom path for rgb.txt. (default: \$(x11libdir)/X11/rgb.txt)]),
3198+ [rgb_file=$withval], [rgb_file="$x_libraries/X11/rgb.txt"])
388da7ab 3199+
56e2d959
AM
3200 AC_DEFINE_UNQUOTED(X11_RGBFILE, "$rgb_file", [where rgb.txt is in])
3201
3202 AC_MSG_CHECKING([for Compiler version])
3203Index: kdeui/kprogress.cpp
84bbb013 3204===================================================================
56e2d959
AM
3205--- kdeui/kprogress.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
3206+++ kdeui/kprogress.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
3207@@ -216,7 +216,6 @@
3208
3209 show();
3210 kapp->processEvents();
3211- mShown = true;
e96bff9a 3212 }
518a05fa 3213
56e2d959
AM
3214 void KProgressDialog::slotCancel()
3215@@ -394,6 +393,13 @@
3216 }
e96bff9a 3217 }
e96bff9a 3218
56e2d959 3219+void KProgressDialog::show()
388da7ab 3220+{
56e2d959
AM
3221+ KDialogBase::show();
3222+ mShown = true;
388da7ab
AM
3223+}
3224+
56e2d959
AM
3225+
3226 void KProgress::virtual_hook( int, void* )
388da7ab 3227 { /*BASE::virtual_hook( id, data );*/ }
e96bff9a 3228
56e2d959 3229Index: kdeui/kmessagebox.cpp
388da7ab 3230===================================================================
56e2d959
AM
3231--- kdeui/kmessagebox.cpp (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
3232+++ kdeui/kmessagebox.cpp (.../branches/KDE/3.5/kdelibs) (revision 526003)
3233@@ -82,7 +82,7 @@
3234 break;
3235 }
3236
3237- QPixmap ret = KApplication::kApplication()->iconLoader()->loadIcon(icon_name, KIcon::NoGroup, KIcon::SizeMedium, KIcon::DefaultState, 0, true);
3238+ QPixmap ret = KGlobal::iconLoader()->loadIcon(icon_name, KIcon::NoGroup, KIcon::SizeMedium, KIcon::DefaultState, 0, true);
3239
3240 if (ret.isNull())
3241 return QMessageBox::standardIcon(icon);
3242Index: kdeui/kprogress.h
e96bff9a 3243===================================================================
56e2d959
AM
3244--- kdeui/kprogress.h (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
3245+++ kdeui/kprogress.h (.../branches/KDE/3.5/kdelibs) (revision 526003)
3246@@ -361,6 +361,11 @@
3247 */
3248 int minimumDuration() const;
3249
3250+ /**
3251+ * Reimplemented for internal reasons, the API is not affected.
3252+ */
3253+ virtual void show();
3254+
3255 protected slots:
3256 void slotAutoShow();
3257 void slotAutoActions(int percentage);
3258Index: libkmid/sndcard.h
3259===================================================================
3260--- libkmid/sndcard.h (.../tags/KDE/3.5.2/kdelibs) (revision 526003)
3261+++ libkmid/sndcard.h (.../branches/KDE/3.5/kdelibs) (revision 526003)
3262@@ -31,9 +31,12 @@
3263
3264 #ifdef HAVE_SYS_SOUNDCARD_H
3265 #include <sys/soundcard.h>
3266- #define HAVE_OSS_SUPPORT
3267 #elif defined(HAVE_MACHINE_SOUNDCARD_H)
3268 #include <machine/soundcard.h>
3269+#endif
549beba1 3270+
56e2d959
AM
3271+/* Check for OSS MIDI API */
3272+#if defined(SNDCTL_SEQ_NRSYNTHS) && defined(CTL_MAIN_VOLUME)
3273 #define HAVE_OSS_SUPPORT
3274 #else
3275 #undef HAVE_OSS_SUPPORT
a07378f5
AM
3276
3277Property changes on: .
3278___________________________________________________________________
3279Name: svn:externals
84bbb013 3280 + admin https://svn.kde.org/home/kde/branches/KDE/3.5/kde-common/admin
a07378f5
AM
3281
3282
This page took 1.933738 seconds and 4 git commands to generate.