forked from len0rd/rockbox
Huw Smith's fix for saving memo function.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3926 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
7f67717b00
commit
a9fded1605
1 changed files with 25 additions and 48 deletions
|
@ -6,7 +6,7 @@
|
||||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||||
* \/ \/ \/ \/ \/
|
* \/ \/ \/ \/ \/
|
||||||
* $Id$
|
* $Id$
|
||||||
* (based upon 1.1 by calpefrosch) www.HuwSy.ukhackers.net
|
* (based upon 1.1 by calpefrosch) updated by www.HuwSy.ukhackers.net
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002
|
* Copyright (C) 2002
|
||||||
*
|
*
|
||||||
|
@ -307,12 +307,13 @@ static bool save_memo(int changed, bool new_mod, struct shown *shown)
|
||||||
int i;
|
int i;
|
||||||
char temp[MAX_CHAR_MEMO_LEN + 1];
|
char temp[MAX_CHAR_MEMO_LEN + 1];
|
||||||
rb->lseek(fp, 0, SEEK_SET);
|
rb->lseek(fp, 0, SEEK_SET);
|
||||||
if ( (memos[changed].file_pointer_start == 0) &&
|
for (i = 0; i < memos[changed].file_pointer_start; i++)
|
||||||
(memos[changed].file_pointer_end == 0) && (new_mod) )
|
{
|
||||||
|
rb->read(fp, temp, 1);
|
||||||
|
rb->write(fq,temp,1);
|
||||||
|
}
|
||||||
|
if (new_mod)
|
||||||
{
|
{
|
||||||
rb->close(fp);
|
|
||||||
rb->close(fq);
|
|
||||||
fq = rb->open("/.rockbox/.memo",O_RDONLY | O_CREAT | O_APPEND);
|
|
||||||
rb->snprintf(temp, 2, "%02d", memos[changed].day);
|
rb->snprintf(temp, 2, "%02d", memos[changed].day);
|
||||||
rb->write(fq,temp,2);
|
rb->write(fq,temp,2);
|
||||||
rb->snprintf(temp, 2, "%02d", memos[changed].month);
|
rb->snprintf(temp, 2, "%02d", memos[changed].month);
|
||||||
|
@ -323,51 +324,27 @@ static bool save_memo(int changed, bool new_mod, struct shown *shown)
|
||||||
rb->write(fq,temp,1);
|
rb->write(fq,temp,1);
|
||||||
rb->snprintf(temp, 1, "%01d", memos[changed].type);
|
rb->snprintf(temp, 1, "%01d", memos[changed].type);
|
||||||
rb->write(fq,temp,1);
|
rb->write(fq,temp,1);
|
||||||
rb->snprintf(temp, rb->strlen(memos[changed].message)+1, "%s\n",
|
rb->snprintf(temp, rb->strlen(memos[changed].message)+1,
|
||||||
memos[changed].message);
|
"%s\n", memos[changed].message);
|
||||||
rb->write(fq,temp,rb->strlen(temp));
|
rb->write(fq,temp, rb->strlen(temp));
|
||||||
}
|
}
|
||||||
else
|
rb->lseek(fp, memos[changed].file_pointer_end, SEEK_SET);
|
||||||
|
for (i = memos[changed].file_pointer_end;
|
||||||
|
i < rb->filesize(fp); i++)
|
||||||
{
|
{
|
||||||
for (i = 0; i < memos[changed].file_pointer_start; i++)
|
rb->read(fp, temp, 1);
|
||||||
{
|
rb->write(fq,temp,1);
|
||||||
rb->read(fp, temp, 1);
|
|
||||||
rb->write(fq,temp,1);
|
|
||||||
}
|
|
||||||
if (new_mod)
|
|
||||||
{
|
|
||||||
rb->snprintf(temp, 2, "%02d", memos[changed].day);
|
|
||||||
rb->write(fq,temp,2);
|
|
||||||
rb->snprintf(temp, 2, "%02d", memos[changed].month);
|
|
||||||
rb->write(fq,temp,2);
|
|
||||||
rb->snprintf(temp, 4, "%04d", memos[changed].year);
|
|
||||||
rb->write(fq,temp,4);
|
|
||||||
rb->snprintf(temp, 1, "%01d", memos[changed].wday);
|
|
||||||
rb->write(fq,temp,1);
|
|
||||||
rb->snprintf(temp, 1, "%01d", memos[changed].type);
|
|
||||||
rb->write(fq,temp,1);
|
|
||||||
rb->snprintf(temp, rb->strlen(memos[changed].message)+1,
|
|
||||||
"%s\n", memos[changed].message);
|
|
||||||
rb->write(fq,temp, rb->strlen(temp));
|
|
||||||
}
|
|
||||||
rb->lseek(fp, memos[changed].file_pointer_end, SEEK_SET);
|
|
||||||
for (i = memos[changed].file_pointer_end;
|
|
||||||
i < rb->filesize(fp); i++)
|
|
||||||
{
|
|
||||||
rb->read(fp, temp, 1);
|
|
||||||
rb->write(fq,temp,1);
|
|
||||||
}
|
|
||||||
rb->close(fp);
|
|
||||||
fp = rb->open("/.rockbox/.memo",O_WRONLY | O_CREAT | O_TRUNC);
|
|
||||||
rb->lseek(fp, 0, SEEK_SET);
|
|
||||||
rb->lseek(fq, 0, SEEK_SET);
|
|
||||||
for (i = 0; i < rb->filesize(fq); i++)
|
|
||||||
{
|
|
||||||
rb->read(fq, temp, 1);
|
|
||||||
rb->write(fp,temp,1);
|
|
||||||
}
|
|
||||||
rb->close(fp);
|
|
||||||
}
|
}
|
||||||
|
rb->close(fp);
|
||||||
|
fp = rb->open("/.rockbox/.memo",O_WRONLY | O_CREAT | O_TRUNC);
|
||||||
|
rb->lseek(fp, 0, SEEK_SET);
|
||||||
|
rb->lseek(fq, 0, SEEK_SET);
|
||||||
|
for (i = 0; i < rb->filesize(fq); i++)
|
||||||
|
{
|
||||||
|
rb->read(fq, temp, 1);
|
||||||
|
rb->write(fp,temp,1);
|
||||||
|
}
|
||||||
|
rb->close(fp);
|
||||||
rb->close(fq);
|
rb->close(fq);
|
||||||
rb->remove("/.rockbox/~temp");
|
rb->remove("/.rockbox/~temp");
|
||||||
load_memo(shown);
|
load_memo(shown);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue