Package: gnokii Version: 0.6.30+dfsg-1 Usertags: goto-cc The following beautiful piece of code is found in lines 3972-3991 of common/phones/nk6510.c:
/* 6510 needs to seek the first free pos to inhabit with next note */ error = NK6510_FirstCalendarFreePos(data, state); if (error != GN_ERR_NONE) if (error == GN_ERR_NOTSUPPORTED) { /* * GN_ERR_NOTSUPPORTED most likely means 0xf0 frame. Experience shows that * with high probability we have series40 3rd+ Ed phone. */ error = NK6510_WriteCalendarNote2(data, state); if (error == GN_ERR_NONE) { dprintf("Misconfiguration in the phone table detected.\nPlease report to gnokii ml (gnokii-us...@nongnu.org).\n"); dprintf("Model %s (%s) is series40 3rd+ Edition.\n", DRVINSTANCE(state)->pm->product_name, DRVINSTANCE(state)->pm->model); DRVINSTANCE(state)->pm->flags |= PM_DEFAULT_S40_3RD; } return error; } return error; /* Location */ req[4] = calnote->location >> 8; req[5] = calnote->location & 0xff; The part commented with "/* Location */", however, is dead code: the "return error" is *not* guarded by any of the if statements above, even though indentation suggests so. Thus NK6510_WriteCalendarNote always returns in line 3987, even if error was GN_ERR_NONE! Thus the proper task of NK6510_WriteCalendarNote is never ever completed. Best, Michael
pgpSGkVSUYwpc.pgp
Description: PGP signature