author | ulf69 <ulf69> | 2004-09-24 22:21:25 (UTC) |
---|---|---|
committer | ulf69 <ulf69> | 2004-09-24 22:21:25 (UTC) |
commit | e695903cc49b33e63505b651b13d830e318fc29a (patch) (unidiff) | |
tree | fd210e2defbdcb3f3d9d739d0b00e6853705af29 | |
parent | a884dac6f756b3702a10ae97aa8782e4d2a84b20 (diff) | |
download | kdepimpi-e695903cc49b33e63505b651b13d830e318fc29a.zip kdepimpi-e695903cc49b33e63505b651b13d830e318fc29a.tar.gz kdepimpi-e695903cc49b33e63505b651b13d830e318fc29a.tar.bz2 |
fixed bug with QDomDocument handling, plus some GUI enhancements
-rw-r--r-- | pwmanager/pwmanager/pwmdocui.cpp | 8 | ||||
-rw-r--r-- | pwmanager/pwmanager/pwmexception.cpp | 7 | ||||
-rw-r--r-- | pwmanager/pwmanager/serializer.cpp | 12 |
3 files changed, 23 insertions, 4 deletions
diff --git a/pwmanager/pwmanager/pwmdocui.cpp b/pwmanager/pwmanager/pwmdocui.cpp index e42dd9d..5e675fc 100644 --- a/pwmanager/pwmanager/pwmdocui.cpp +++ b/pwmanager/pwmanager/pwmdocui.cpp | |||
@@ -395,63 +395,63 @@ bool PwMDocUi::openDocUi(PwMDoc *doc, | |||
395 | } | 395 | } |
396 | if (ret == e_fileFormat) { | 396 | if (ret == e_fileFormat) { |
397 | KMessageBox::error(getCurrentView(), | 397 | KMessageBox::error(getCurrentView(), |
398 | i18n | 398 | i18n |
399 | ("Sorry, this file has not been recognized " | 399 | ("Sorry, this file has not been recognized " |
400 | "as a PwM Password file.\n" | 400 | "as a PwM Password file.\n" |
401 | "Probably you have selected the wrong file."), | 401 | "Probably you have selected the wrong file."), |
402 | i18n | 402 | i18n |
403 | ("no PwM password-file")); | 403 | ("no PwM password-file")); |
404 | goto cancelOpen; | 404 | goto cancelOpen; |
405 | } | 405 | } |
406 | if (ret == e_fileCorrupt) { | 406 | if (ret == e_fileCorrupt) { |
407 | KMessageBox::error(getCurrentView(), | 407 | KMessageBox::error(getCurrentView(), |
408 | i18n | 408 | i18n |
409 | ("File corrupt!\n" | 409 | ("File corrupt!\n" |
410 | "Maybe the media, you stored this file on, " | 410 | "Maybe the media, you stored this file on, " |
411 | "had bad sectors?"), | 411 | "had bad sectors?"), |
412 | i18n | 412 | i18n |
413 | ("checksum error")); | 413 | ("checksum error")); |
414 | goto cancelOpen; | 414 | goto cancelOpen; |
415 | } | 415 | } |
416 | } | 416 | } |
417 | break; | 417 | break; |
418 | } | 418 | } |
419 | return true; | 419 | return true; |
420 | 420 | ||
421 | cancelOpen: | 421 | cancelOpen: |
422 | return false; | 422 | return false; |
423 | } | 423 | } |
424 | 424 | ||
425 | QString PwMDocUi::string_defaultCategory() | 425 | QString PwMDocUi::string_defaultCategory() |
426 | { | 426 | { |
427 | return i18n("Default"); | 427 | return i18n("Default"); |
428 | } | 428 | } |
429 | 429 | ||
430 | QString PwMDocUi::string_locked() | 430 | QString PwMDocUi::string_locked() |
431 | { | 431 | { |
432 | return i18n("<LOCKED>"); | 432 | return i18n("<LOCKED>"); |
433 | } | 433 | } |
434 | 434 | ||
435 | QString PwMDocUi::string_deepLockedShort() | 435 | QString PwMDocUi::string_deepLockedShort() |
436 | { | 436 | { |
437 | return i18n("DEEP-LOCKED"); | 437 | return i18n("DEEP-LOCKED"); |
438 | } | 438 | } |
439 | 439 | ||
440 | QString PwMDocUi::string_deepLockedLong() | 440 | QString PwMDocUi::string_deepLockedLong() |
441 | { | 441 | { |
442 | return i18n("This file is DEEP-LOCKED!\n" | 442 | return i18n("This file is DEEP-LOCKED!\n" |
443 | "That means all data has been encrypted " | 443 | "That means all data has been encrypted\n" |
444 | "and written out to the file. If you want " | 444 | "and written out to the file. If you want\n" |
445 | "to see the entries, please UNLOCK the file. " | 445 | "to see the entries, please UNLOCK the file.\n" |
446 | "While unlocking, you will be prompted for the " | 446 | "While unlocking, you will be prompted for the\n" |
447 | "master-password or the key-card."); | 447 | "master-password or the key-card."); |
448 | } | 448 | } |
449 | 449 | ||
450 | QString PwMDocUi::string_defaultTitle() | 450 | QString PwMDocUi::string_defaultTitle() |
451 | { | 451 | { |
452 | return i18n("Untitled"); | 452 | return i18n("Untitled"); |
453 | } | 453 | } |
454 | 454 | ||
455 | #ifndef PWM_EMBEDDED | 455 | #ifndef PWM_EMBEDDED |
456 | #include "pwmdocui.moc" | 456 | #include "pwmdocui.moc" |
457 | #endif | 457 | #endif |
diff --git a/pwmanager/pwmanager/pwmexception.cpp b/pwmanager/pwmanager/pwmexception.cpp index 4c00b04..c0dbb39 100644 --- a/pwmanager/pwmanager/pwmexception.cpp +++ b/pwmanager/pwmanager/pwmexception.cpp | |||
@@ -1,58 +1,65 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | * * | 2 | * * |
3 | * copyright (C) 2003, 2004 by Michael Buesch * | 3 | * copyright (C) 2003, 2004 by Michael Buesch * |
4 | * email: mbuesch@freenet.de * | 4 | * email: mbuesch@freenet.de * |
5 | * * | 5 | * * |
6 | * This program is free software; you can redistribute it and/or modify * | 6 | * This program is free software; you can redistribute it and/or modify * |
7 | * it under the terms of the GNU General Public License version 2 * | 7 | * it under the terms of the GNU General Public License version 2 * |
8 | * as published by the Free Software Foundation. * | 8 | * as published by the Free Software Foundation. * |
9 | * * | 9 | * * |
10 | ***************************************************************************/ | 10 | ***************************************************************************/ |
11 | 11 | ||
12 | /*************************************************************************** | 12 | /*************************************************************************** |
13 | * copyright (C) 2004 by Ulf Schenk | 13 | * copyright (C) 2004 by Ulf Schenk |
14 | * This file is originaly based on version 1.0.1 of pwmanager | 14 | * This file is originaly based on version 1.0.1 of pwmanager |
15 | * and was modified to run on embedded devices that run microkde | 15 | * and was modified to run on embedded devices that run microkde |
16 | * | 16 | * |
17 | * $Id$ | 17 | * $Id$ |
18 | **************************************************************************/ | 18 | **************************************************************************/ |
19 | 19 | ||
20 | 20 | ||
21 | #include "pwmexception.h" | 21 | #include "pwmexception.h" |
22 | 22 | ||
23 | #include <kmessagebox.h> | 23 | #include <kmessagebox.h> |
24 | 24 | ||
25 | 25 | ||
26 | void pwmFatal(const char *id, | 26 | void pwmFatal(const char *id, |
27 | const char *file, | 27 | const char *file, |
28 | int line) | 28 | int line) |
29 | { | 29 | { |
30 | cerr << PROG_NAME " " << id << " at " | 30 | cerr << PROG_NAME " " << id << " at " |
31 | << file << ":" << line | 31 | << file << ":" << line |
32 | << endl; | 32 | << endl; |
33 | } | 33 | } |
34 | 34 | ||
35 | void __printError(const string &msg) | 35 | void __printError(const string &msg) |
36 | { | 36 | { |
37 | QString __msg(PROG_NAME " generated a fatal fault:\n"); | 37 | QString __msg(PROG_NAME " generated a fatal fault:\n"); |
38 | __msg += msg.c_str(); | 38 | __msg += msg.c_str(); |
39 | cerr << "\n\n" << __msg.latin1() << endl; | 39 | cerr << "\n\n" << __msg.latin1() << endl; |
40 | KMessageBox::error(0, __msg, PROG_NAME " fatal ERROR!"); | 40 | KMessageBox::error(0, __msg, PROG_NAME " fatal ERROR!"); |
41 | } | 41 | } |
42 | 42 | ||
43 | void __printInfo(const string &msg) | 43 | void __printInfo(const string &msg) |
44 | { | 44 | { |
45 | cout << PROG_NAME " INFO: " << msg << endl; | 45 | cout << PROG_NAME " INFO: " << msg << endl; |
46 | #ifdef PWM_DEBUG | ||
47 | qDebug("%s INFO: %s", PROG_NAME, msg.c_str()) ; | ||
48 | #endif | ||
46 | } | 49 | } |
47 | 50 | ||
48 | void __printWarn(const string &msg) | 51 | void __printWarn(const string &msg) |
49 | { | 52 | { |
50 | cerr << PROG_NAME " WARNING: " << msg << endl; | 53 | cerr << PROG_NAME " WARNING: " << msg << endl; |
54 | #ifdef PWM_DEBUG | ||
55 | qDebug("%s WARNING: %s", PROG_NAME, msg.c_str()) ; | ||
56 | #endif | ||
51 | } | 57 | } |
52 | 58 | ||
53 | #ifdef PWM_DEBUG | 59 | #ifdef PWM_DEBUG |
54 | void __printDebug(const string &msg) | 60 | void __printDebug(const string &msg) |
55 | { | 61 | { |
56 | cout << PROG_NAME " DEBUG: " << msg << endl; | 62 | cout << PROG_NAME " DEBUG: " << msg << endl; |
63 | qDebug("%s DEBUG: %s", PROG_NAME, msg.c_str()) ; | ||
57 | } | 64 | } |
58 | #endif // PWM_DEBUG | 65 | #endif // PWM_DEBUG |
diff --git a/pwmanager/pwmanager/serializer.cpp b/pwmanager/pwmanager/serializer.cpp index 2810b48..fcdcec3 100644 --- a/pwmanager/pwmanager/serializer.cpp +++ b/pwmanager/pwmanager/serializer.cpp | |||
@@ -75,159 +75,171 @@ | |||
75 | #define ENTRY_PW_NEW "p" | 75 | #define ENTRY_PW_NEW "p" |
76 | #define ENTRY_COMMENT_NEW"c" | 76 | #define ENTRY_COMMENT_NEW"c" |
77 | #define ENTRY_URL_NEW "u" | 77 | #define ENTRY_URL_NEW "u" |
78 | #define ENTRY_LAUNCHER_NEW"l" | 78 | #define ENTRY_LAUNCHER_NEW"l" |
79 | #define ENTRY_LVP_NEW "v" | 79 | #define ENTRY_LVP_NEW "v" |
80 | #define ENTRY_BIN_NEW ENTRY_BIN_OLD | 80 | #define ENTRY_BIN_NEW ENTRY_BIN_OLD |
81 | #define ENTRY_META_NEW ENTRY_META_OLD | 81 | #define ENTRY_META_NEW ENTRY_META_OLD |
82 | 82 | ||
83 | #if USE_OLD_TAGS != 0 | 83 | #if USE_OLD_TAGS != 0 |
84 | # define ROOT_MAGIC_WR ROOT_MAGIC_OLD | 84 | # define ROOT_MAGIC_WR ROOT_MAGIC_OLD |
85 | # define VER_STR_WR VER_STR_OLD | 85 | # define VER_STR_WR VER_STR_OLD |
86 | # define COMPAT_VER_WR COMPAT_VER_OLD | 86 | # define COMPAT_VER_WR COMPAT_VER_OLD |
87 | # define CAT_ROOT_WR CAT_ROOT_OLD | 87 | # define CAT_ROOT_WR CAT_ROOT_OLD |
88 | # define CAT_PREFIX_WR CAT_PREFIX_OLD | 88 | # define CAT_PREFIX_WR CAT_PREFIX_OLD |
89 | # define CAT_NAME_WR CAT_NAME_OLD | 89 | # define CAT_NAME_WR CAT_NAME_OLD |
90 | # define ENTRY_PREFIX_WRENTRY_PREFIX_OLD | 90 | # define ENTRY_PREFIX_WRENTRY_PREFIX_OLD |
91 | # define ENTRY_DESC_WR ENTRY_DESC_OLD | 91 | # define ENTRY_DESC_WR ENTRY_DESC_OLD |
92 | # define ENTRY_NAME_WR ENTRY_NAME_OLD | 92 | # define ENTRY_NAME_WR ENTRY_NAME_OLD |
93 | # define ENTRY_PW_WR ENTRY_PW_OLD | 93 | # define ENTRY_PW_WR ENTRY_PW_OLD |
94 | # define ENTRY_COMMENT_WRENTRY_COMMENT_OLD | 94 | # define ENTRY_COMMENT_WRENTRY_COMMENT_OLD |
95 | # define ENTRY_URL_WR ENTRY_URL_OLD | 95 | # define ENTRY_URL_WR ENTRY_URL_OLD |
96 | # define ENTRY_LAUNCHER_WRENTRY_LAUNCHER_OLD | 96 | # define ENTRY_LAUNCHER_WRENTRY_LAUNCHER_OLD |
97 | # define ENTRY_LVP_WR ENTRY_LVP_OLD | 97 | # define ENTRY_LVP_WR ENTRY_LVP_OLD |
98 | # define ENTRY_BIN_WR ENTRY_BIN_OLD | 98 | # define ENTRY_BIN_WR ENTRY_BIN_OLD |
99 | # define ENTRY_META_WR ENTRY_META_OLD | 99 | # define ENTRY_META_WR ENTRY_META_OLD |
100 | #else | 100 | #else |
101 | # define ROOT_MAGIC_WR ROOT_MAGIC_NEW | 101 | # define ROOT_MAGIC_WR ROOT_MAGIC_NEW |
102 | # define VER_STR_WR VER_STR_NEW | 102 | # define VER_STR_WR VER_STR_NEW |
103 | # define COMPAT_VER_WR COMPAT_VER_NEW | 103 | # define COMPAT_VER_WR COMPAT_VER_NEW |
104 | # define CAT_ROOT_WR CAT_ROOT_NEW | 104 | # define CAT_ROOT_WR CAT_ROOT_NEW |
105 | # define CAT_PREFIX_WR CAT_PREFIX_NEW | 105 | # define CAT_PREFIX_WR CAT_PREFIX_NEW |
106 | # define CAT_NAME_WR CAT_NAME_NEW | 106 | # define CAT_NAME_WR CAT_NAME_NEW |
107 | # define ENTRY_PREFIX_WRENTRY_PREFIX_NEW | 107 | # define ENTRY_PREFIX_WRENTRY_PREFIX_NEW |
108 | # define ENTRY_DESC_WR ENTRY_DESC_NEW | 108 | # define ENTRY_DESC_WR ENTRY_DESC_NEW |
109 | # define ENTRY_NAME_WR ENTRY_NAME_NEW | 109 | # define ENTRY_NAME_WR ENTRY_NAME_NEW |
110 | # define ENTRY_PW_WR ENTRY_PW_NEW | 110 | # define ENTRY_PW_WR ENTRY_PW_NEW |
111 | # define ENTRY_COMMENT_WRENTRY_COMMENT_NEW | 111 | # define ENTRY_COMMENT_WRENTRY_COMMENT_NEW |
112 | # define ENTRY_URL_WR ENTRY_URL_NEW | 112 | # define ENTRY_URL_WR ENTRY_URL_NEW |
113 | # define ENTRY_LAUNCHER_WRENTRY_LAUNCHER_NEW | 113 | # define ENTRY_LAUNCHER_WRENTRY_LAUNCHER_NEW |
114 | # define ENTRY_LVP_WR ENTRY_LVP_NEW | 114 | # define ENTRY_LVP_WR ENTRY_LVP_NEW |
115 | # define ENTRY_BIN_WR ENTRY_BIN_NEW | 115 | # define ENTRY_BIN_WR ENTRY_BIN_NEW |
116 | # define ENTRY_META_WR ENTRY_META_NEW | 116 | # define ENTRY_META_WR ENTRY_META_NEW |
117 | #endif | 117 | #endif |
118 | 118 | ||
119 | 119 | ||
120 | Serializer::Serializer() | 120 | Serializer::Serializer() |
121 | { | 121 | { |
122 | defaultLockStat = true; | 122 | defaultLockStat = true; |
123 | //US BUG: I needed to specify a document name. Otherwise impl will not be created for serializing | ||
124 | #ifndef PWM_EMBEDDED | ||
123 | domDoc = new QDomDocument; | 125 | domDoc = new QDomDocument; |
126 | #else | ||
127 | domDoc = new QDomDocument("mydoc"); | ||
128 | #endif | ||
124 | } | 129 | } |
125 | 130 | ||
126 | Serializer::Serializer(const QCString &buffer) | 131 | Serializer::Serializer(const QCString &buffer) |
127 | { | 132 | { |
128 | defaultLockStat = true; | 133 | defaultLockStat = true; |
134 | //US BUG: I needed to specify a document name. Otherwise impl will not be created for serializing | ||
135 | #ifndef PWM_EMBEDDED | ||
129 | domDoc = new QDomDocument; | 136 | domDoc = new QDomDocument; |
137 | #else | ||
138 | domDoc = new QDomDocument("mydoc"); | ||
139 | #endif | ||
140 | |||
130 | if (!parseXml(buffer)) { | 141 | if (!parseXml(buffer)) { |
131 | delete domDoc; | 142 | delete domDoc; |
132 | #ifndef PWM_EMBEDDED | 143 | #ifndef PWM_EMBEDDED |
133 | throw PwMException(PwMException::EX_PARSE); | 144 | throw PwMException(PwMException::EX_PARSE); |
134 | #else | 145 | #else |
135 | qDebug("Serializer::Serializer : Parse Exception "); | 146 | qDebug("Serializer::Serializer : Parse Exception "); |
136 | #endif | 147 | #endif |
137 | } | 148 | } |
138 | } | 149 | } |
139 | 150 | ||
140 | Serializer::~Serializer() | 151 | Serializer::~Serializer() |
141 | { | 152 | { |
142 | delete_ifnot_null(domDoc); | 153 | delete_ifnot_null(domDoc); |
143 | } | 154 | } |
144 | 155 | ||
145 | void Serializer::clear() | 156 | void Serializer::clear() |
146 | { | 157 | { |
147 | delete_ifnot_null(domDoc); | 158 | delete_ifnot_null(domDoc); |
148 | domDoc = new QDomDocument; | 159 | domDoc = new QDomDocument; |
149 | } | 160 | } |
150 | 161 | ||
151 | bool Serializer::parseXml(const QCString &buffer) | 162 | bool Serializer::parseXml(const QCString &buffer) |
152 | { | 163 | { |
153 | PWM_ASSERT(domDoc); | 164 | PWM_ASSERT(domDoc); |
154 | #ifndef PWM_EMBEDDED | 165 | #ifndef PWM_EMBEDDED |
155 | if (!domDoc->setContent(buffer, true)) | 166 | if (!domDoc->setContent(buffer, true)) |
156 | return false; | 167 | return false; |
157 | #else | 168 | #else |
158 | if (!domDoc->setContent(buffer)) | 169 | if (!domDoc->setContent(buffer)) |
159 | return false; | 170 | return false; |
160 | #endif | 171 | #endif |
161 | if (!checkValid()) | 172 | if (!checkValid()) |
162 | return false; | 173 | return false; |
163 | return true; | 174 | return true; |
164 | } | 175 | } |
165 | 176 | ||
166 | QCString Serializer::getXml() | 177 | QCString Serializer::getXml() |
167 | { | 178 | { |
168 | PWM_ASSERT(domDoc); | 179 | PWM_ASSERT(domDoc); |
169 | 180 | ||
170 | #ifndef PWM_EMBEDDED | 181 | #ifndef PWM_EMBEDDED |
171 | #if defined(PWM_DEBUG) && SERIALIZER_DEBUG != 0 | 182 | #if defined(PWM_DEBUG) && SERIALIZER_DEBUG != 0 |
172 | QCString tmp(domDoc->toCString(8)); | 183 | QCString tmp(domDoc->toCString(8)); |
173 | printDebug("<BEGIN Serializer::getXml() dump>\n"); | 184 | printDebug("<BEGIN Serializer::getXml() dump>\n"); |
174 | cout << tmp << endl; | 185 | cout << tmp << endl; |
175 | printDebug("<END Serializer::getXml() dump>"); | 186 | printDebug("<END Serializer::getXml() dump>"); |
176 | #endif // DEBUG | 187 | #endif // DEBUG |
177 | 188 | ||
178 | QCString ret(domDoc->toCString(0)); | 189 | QCString ret(domDoc->toCString(0)); |
179 | ret.replace('\n', ""); | 190 | ret.replace('\n', ""); |
180 | return ret; | 191 | return ret; |
181 | #else | 192 | #else |
182 | 193 | ||
183 | #if defined(PWM_DEBUG) && SERIALIZER_DEBUG != 0 | 194 | #if defined(PWM_DEBUG) && SERIALIZER_DEBUG != 0 |
184 | QCString tmp(" " + domDoc->toCString()); | 195 | QCString tmp(" " + domDoc->toCString()); |
185 | printDebug("<BEGIN Serializer::getXml() dump>\n"); | 196 | printDebug("<BEGIN Serializer::getXml() dump>\n"); |
197 | qDebug(tmp); | ||
186 | cout << tmp << endl; | 198 | cout << tmp << endl; |
187 | printDebug("<END Serializer::getXml() dump>"); | 199 | printDebug("<END Serializer::getXml() dump>"); |
188 | #endif // DEBUG | 200 | #endif // DEBUG |
189 | 201 | ||
190 | QCString ret(domDoc->toCString()); | 202 | QCString ret(domDoc->toCString()); |
191 | ret.replace(QRegExp("\n"), ""); | 203 | ret.replace(QRegExp("\n"), ""); |
192 | return ret; | 204 | return ret; |
193 | 205 | ||
194 | #endif | 206 | #endif |
195 | } | 207 | } |
196 | 208 | ||
197 | bool Serializer::serialize(const vector<PwMCategoryItem> &dta) | 209 | bool Serializer::serialize(const vector<PwMCategoryItem> &dta) |
198 | { | 210 | { |
199 | PWM_ASSERT(domDoc); | 211 | PWM_ASSERT(domDoc); |
200 | QDomElement root(genNewRoot()); | 212 | QDomElement root(genNewRoot()); |
201 | QDomElement catNode(domDoc->createElement(CAT_ROOT_WR)); | 213 | QDomElement catNode(domDoc->createElement(CAT_ROOT_WR)); |
202 | root.appendChild(catNode); | 214 | root.appendChild(catNode); |
203 | if (!addCategories(&catNode, dta)) | 215 | if (!addCategories(&catNode, dta)) |
204 | return false; | 216 | return false; |
205 | return true; | 217 | return true; |
206 | } | 218 | } |
207 | 219 | ||
208 | bool Serializer::deSerialize(vector<PwMCategoryItem> *dta) | 220 | bool Serializer::deSerialize(vector<PwMCategoryItem> *dta) |
209 | { | 221 | { |
210 | PWM_ASSERT(domDoc); | 222 | PWM_ASSERT(domDoc); |
211 | PWM_ASSERT(dta); | 223 | PWM_ASSERT(dta); |
212 | QDomElement root(domDoc->documentElement()); | 224 | QDomElement root(domDoc->documentElement()); |
213 | QDomNode n; | 225 | QDomNode n; |
214 | 226 | ||
215 | dta->clear(); | 227 | dta->clear(); |
216 | for (n = root.firstChild(); !n.isNull(); n = n.nextSibling()) { | 228 | for (n = root.firstChild(); !n.isNull(); n = n.nextSibling()) { |
217 | // find <categories> ... </categories> | 229 | // find <categories> ... </categories> |
218 | // <c> ... </c> | 230 | // <c> ... </c> |
219 | if (n.nodeName() == CAT_ROOT_NEW || | 231 | if (n.nodeName() == CAT_ROOT_NEW || |
220 | n.nodeName() == CAT_ROOT_OLD) { | 232 | n.nodeName() == CAT_ROOT_OLD) { |
221 | if (!readCategories(n, dta)) { | 233 | if (!readCategories(n, dta)) { |
222 | return false; | 234 | return false; |
223 | } | 235 | } |
224 | 236 | ||
225 | /* NOTE: We can stop processing here, as we | 237 | /* NOTE: We can stop processing here, as we |
226 | * don't have more nodes in root, yet. | 238 | * don't have more nodes in root, yet. |
227 | */ | 239 | */ |
228 | return true; | 240 | return true; |
229 | } | 241 | } |
230 | } | 242 | } |
231 | return false; | 243 | return false; |
232 | } | 244 | } |
233 | 245 | ||