summaryrefslogtreecommitdiff
authoralwin <alwin>2004-08-01 14:13:14 (UTC)
committer alwin <alwin>2004-08-01 14:13:14 (UTC)
commit67e2e98457418bc491efd2d4567f851e77a0441a (patch) (unidiff)
tree44a579f9ee06ec5a703825c1738d3e1a6155a282
parent4fbd0218b71432444214cf124c45e3d03185324f (diff)
downloadopie-67e2e98457418bc491efd2d4567f851e77a0441a.zip
opie-67e2e98457418bc491efd2d4567f851e77a0441a.tar.gz
opie-67e2e98457418bc491efd2d4567f851e77a0441a.tar.bz2
fixed a crasher when configfile isn't writeable
empty labels will replaced by filename
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/keyz-cfg/cfgfile.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/noncore/apps/keyz-cfg/cfgfile.cpp b/noncore/apps/keyz-cfg/cfgfile.cpp
index 81d1ee1..be7150e 100644
--- a/noncore/apps/keyz-cfg/cfgfile.cpp
+++ b/noncore/apps/keyz-cfg/cfgfile.cpp
@@ -125,40 +125,45 @@ bool CfgParser::load(QString file, CfgFile& cfg) {
125 cfg.setAutorepeatDelay(ardelay); 125 cfg.setAutorepeatDelay(ardelay);
126 } 126 }
127 127
128 if (arperiod != -1) { 128 if (arperiod != -1) {
129 cfg.setAutorepeatPeriod(arperiod); 129 cfg.setAutorepeatPeriod(arperiod);
130 } 130 }
131 131
132 return true; 132 return true;
133} 133}
134 134
135bool CfgParser::save(QString file, CfgFile& cfg) { 135bool CfgParser::save(QString file, CfgFile& cfg) {
136 FILE* f = fopen((const char*) file.local8Bit(), "w"); 136 FILE* f = fopen((const char*) file.local8Bit(), "w");
137 if (!f) {
138 oerr << "Could not write config file!" << oendl;
139 return false;
140 }
137 141
138 fprintf(f, "<keymap autorepeat-delay=\"%d\" autorepeat-period=\"%d\" " 142 fprintf(f, "<keymap autorepeat-delay=\"%d\" autorepeat-period=\"%d\" "
139 "author=\"keyzcfg\">\n", cfg.getAutorepeatDelay(), 143 "author=\"keyzcfg\">\n", cfg.getAutorepeatDelay(),
140 cfg.getAutorepeatPeriod()); 144 cfg.getAutorepeatPeriod());
141 145
142 QList<CfgEntry>& entries = cfg.getEntries(); 146 QList<CfgEntry>& entries = cfg.getEntries();
143 int n; 147 int n;
144 148
145 for(n=0; n < (int) entries.count(); n++) { 149 for(n=0; n < (int) entries.count(); n++) {
146 CfgEntry* entry = entries.at(n); 150 CfgEntry* entry = entries.at(n);
147 QString l = entry->getLabel(); 151 QString l = entry->getLabel();
148 if (!l.isEmpty()) { 152 if (l.isEmpty()) {
153 l = entry->getFile();
154 }
149 fprintf(f, "\t<label name=\"%s\" state=\"km%d:*\"/>\n", 155 fprintf(f, "\t<label name=\"%s\" state=\"km%d:*\"/>\n",
150 (const char*) l.utf8(), n); 156 (const char*) l.utf8(), n);
151 } 157 }
152 }
153 158
154 for(n=0; n < (int) entries.count(); n++) { 159 for(n=0; n < (int) entries.count(); n++) {
155 CfgEntry* entry = entries.at(n); 160 CfgEntry* entry = entries.at(n);
156 fprintf(f, "\t<include file=\"%s\" prefix=\"km%d\"/>\n", 161 fprintf(f, "\t<include file=\"%s\" prefix=\"km%d\"/>\n",
157 (const char*) entry->getFile().utf8(), n); 162 (const char*) entry->getFile().utf8(), n);
158 } 163 }
159 164
160 int k = n-1; 165 int k = n-1;
161 char* states[] = { "LShift", "LShift-Caps", "LShift-Num", 166 char* states[] = { "LShift", "LShift-Caps", "LShift-Num",
162 "LShift-Num-Caps", 0}; 167 "LShift-Num-Caps", 0};
163 168
164 for(n=0; n < (int) entries.count(); n++) { 169 for(n=0; n < (int) entries.count(); n++) {