summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorHardeep Sidhu <dyp@pobox.com>2003-08-08 01:50:51 +0000
committerHardeep Sidhu <dyp@pobox.com>2003-08-08 01:50:51 +0000
commita9fded1605b19e3853ccc26ae75dbeebede2191f (patch)
tree42a0768dfdaae7016bf448533b4d0526048bc373 /apps/plugins
parent7f67717b00433b8fc1a7624a491c446d3c021bfe (diff)
downloadrockbox-a9fded1605b19e3853ccc26ae75dbeebede2191f.tar.gz
rockbox-a9fded1605b19e3853ccc26ae75dbeebede2191f.zip
Huw Smith's fix for saving memo function.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3926 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/calendar.c73
1 files changed, 25 insertions, 48 deletions
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c
index 233fc096d1..0247870f76 100644
--- a/apps/plugins/calendar.c
+++ b/apps/plugins/calendar.c
@@ -6,7 +6,7 @@
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ 6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/ 7 * \/ \/ \/ \/ \/
8 * $Id$ 8 * $Id$
9 * (based upon 1.1 by calpefrosch) www.HuwSy.ukhackers.net 9 * (based upon 1.1 by calpefrosch) updated by www.HuwSy.ukhackers.net
10 * 10 *
11 * Copyright (C) 2002 11 * Copyright (C) 2002
12 * 12 *
@@ -307,12 +307,13 @@ static bool save_memo(int changed, bool new_mod, struct shown *shown)
307 int i; 307 int i;
308 char temp[MAX_CHAR_MEMO_LEN + 1]; 308 char temp[MAX_CHAR_MEMO_LEN + 1];
309 rb->lseek(fp, 0, SEEK_SET); 309 rb->lseek(fp, 0, SEEK_SET);
310 if ( (memos[changed].file_pointer_start == 0) && 310 for (i = 0; i < memos[changed].file_pointer_start; i++)
311 (memos[changed].file_pointer_end == 0) && (new_mod) ) 311 {
312 rb->read(fp, temp, 1);
313 rb->write(fq,temp,1);
314 }
315 if (new_mod)
312 { 316 {
313 rb->close(fp);
314 rb->close(fq);
315 fq = rb->open("/.rockbox/.memo",O_RDONLY | O_CREAT | O_APPEND);
316 rb->snprintf(temp, 2, "%02d", memos[changed].day); 317 rb->snprintf(temp, 2, "%02d", memos[changed].day);
317 rb->write(fq,temp,2); 318 rb->write(fq,temp,2);
318 rb->snprintf(temp, 2, "%02d", memos[changed].month); 319 rb->snprintf(temp, 2, "%02d", memos[changed].month);
@@ -323,51 +324,27 @@ static bool save_memo(int changed, bool new_mod, struct shown *shown)
323 rb->write(fq,temp,1); 324 rb->write(fq,temp,1);
324 rb->snprintf(temp, 1, "%01d", memos[changed].type); 325 rb->snprintf(temp, 1, "%01d", memos[changed].type);
325 rb->write(fq,temp,1); 326 rb->write(fq,temp,1);
326 rb->snprintf(temp, rb->strlen(memos[changed].message)+1, "%s\n", 327 rb->snprintf(temp, rb->strlen(memos[changed].message)+1,
327 memos[changed].message); 328 "%s\n", memos[changed].message);
328 rb->write(fq,temp,rb->strlen(temp)); 329 rb->write(fq,temp, rb->strlen(temp));
329 } 330 }
330 else 331 rb->lseek(fp, memos[changed].file_pointer_end, SEEK_SET);
332 for (i = memos[changed].file_pointer_end;
333 i < rb->filesize(fp); i++)
331 { 334 {
332 for (i = 0; i < memos[changed].file_pointer_start; i++) 335 rb->read(fp, temp, 1);
333 { 336 rb->write(fq,temp,1);
334 rb->read(fp, temp, 1);
335 rb->write(fq,temp,1);
336 }
337 if (new_mod)
338 {
339 rb->snprintf(temp, 2, "%02d", memos[changed].day);
340 rb->write(fq,temp,2);
341 rb->snprintf(temp, 2, "%02d", memos[changed].month);
342 rb->write(fq,temp,2);
343 rb->snprintf(temp, 4, "%04d", memos[changed].year);
344 rb->write(fq,temp,4);
345 rb->snprintf(temp, 1, "%01d", memos[changed].wday);
346 rb->write(fq,temp,1);
347 rb->snprintf(temp, 1, "%01d", memos[changed].type);
348 rb->write(fq,temp,1);
349 rb->snprintf(temp, rb->strlen(memos[changed].message)+1,
350 "%s\n", memos[changed].message);
351 rb->write(fq,temp, rb->strlen(temp));
352 }
353 rb->lseek(fp, memos[changed].file_pointer_end, SEEK_SET);
354 for (i = memos[changed].file_pointer_end;
355 i < rb->filesize(fp); i++)
356 {
357 rb->read(fp, temp, 1);
358 rb->write(fq,temp,1);
359 }
360 rb->close(fp);
361 fp = rb->open("/.rockbox/.memo",O_WRONLY | O_CREAT | O_TRUNC);
362 rb->lseek(fp, 0, SEEK_SET);
363 rb->lseek(fq, 0, SEEK_SET);
364 for (i = 0; i < rb->filesize(fq); i++)
365 {
366 rb->read(fq, temp, 1);
367 rb->write(fp,temp,1);
368 }
369 rb->close(fp);
370 } 337 }
338 rb->close(fp);
339 fp = rb->open("/.rockbox/.memo",O_WRONLY | O_CREAT | O_TRUNC);
340 rb->lseek(fp, 0, SEEK_SET);
341 rb->lseek(fq, 0, SEEK_SET);
342 for (i = 0; i < rb->filesize(fq); i++)
343 {
344 rb->read(fq, temp, 1);
345 rb->write(fp,temp,1);
346 }
347 rb->close(fp);
371 rb->close(fq); 348 rb->close(fq);
372 rb->remove("/.rockbox/~temp"); 349 rb->remove("/.rockbox/~temp");
373 load_memo(shown); 350 load_memo(shown);