fix internationalization bug. these patches are already submitted to
the author and will be synced in next release. Submitted by: Takeshi MUTOH <tmutoh@mx10.freecom.ne.jp> Approved by: maintainer
This commit is contained in:
parent
f543893faf
commit
01c3a17556
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=39121
@ -8,7 +8,7 @@
|
||||
|
||||
PORTNAME= jpilot
|
||||
PORTVERSION= 0.99
|
||||
PORTREVISION?= 1
|
||||
PORTREVISION?= 2
|
||||
CATEGORIES+= palm comms
|
||||
MASTER_SITES= http://jpilot.org/
|
||||
|
||||
|
97
palm/jpilot/files/patch-address.c
Normal file
97
palm/jpilot/files/patch-address.c
Normal file
@ -0,0 +1,97 @@
|
||||
Index: address.c
|
||||
diff -u address.c:1.1.1.1 address.c:1.1.1.1.4.3
|
||||
--- address.c:1.1.1.1 Sun Feb 4 12:58:54 2001
|
||||
+++ address.c Sat Feb 17 20:37:52 2001
|
||||
@@ -31,10 +31,6 @@
|
||||
#include "libplugin.h"
|
||||
#include "password.h"
|
||||
|
||||
-#include "japanese.h"
|
||||
-#include "cp1250.h"
|
||||
-#include "russian.h"
|
||||
-
|
||||
#define ADDRESS_EOF 7
|
||||
|
||||
static int glob_sort_by_company;
|
||||
@@ -224,8 +220,16 @@
|
||||
unsigned int *unique_id)
|
||||
{
|
||||
char record[65536];
|
||||
- int rec_len;
|
||||
+ int rec_len,i;
|
||||
buf_rec br;
|
||||
+ long char_set;
|
||||
+
|
||||
+ get_pref(PREF_CHAR_SET, &char_set, NULL);
|
||||
+ if (char_set != CHAR_SET_ENGLISH) {
|
||||
+ for (i = 0; i < 19; i++) {
|
||||
+ if (a->entry[i]) charset_j2p(a->entry[i], strlen(a->entry[i])+1, char_set);
|
||||
+ }
|
||||
+ }
|
||||
|
||||
rec_len = pack_Address(a, record, 65535);
|
||||
if (!rec_len) {
|
||||
@@ -275,36 +279,22 @@
|
||||
return -1;
|
||||
}
|
||||
|
||||
- get_pref(PREF_CHAR_SET, &char_set, NULL);
|
||||
- if (char_set==CHAR_SET_JAPANESE ||
|
||||
- char_set==CHAR_SET_1250 ||
|
||||
- char_set==CHAR_SET_1251 ||
|
||||
- char_set==CHAR_SET_1251_B
|
||||
- ) {
|
||||
+ get_pref(PREF_CHAR_SET, &char_set, NULL);
|
||||
+ if (char_set != CHAR_SET_ENGLISH) {
|
||||
/* Convert to character set */
|
||||
- {
|
||||
int i;
|
||||
for (i = 0; i < 16; i++)
|
||||
if (ai->category.name[i][0] != '\0') {
|
||||
- if (char_set==CHAR_SET_JAPANESE) Sjis2Euc(ai->category.name[i], 16);
|
||||
- if (char_set==CHAR_SET_1250) Win2Lat(ai->category.name[i], 16);
|
||||
- if (char_set==CHAR_SET_1251) win1251_to_koi8(ai->category.name[i], 16);
|
||||
+ charset_p2j(ai->category.name[i], 16, char_set);
|
||||
}
|
||||
for (i = 0; i < 19 + 3; i++)
|
||||
if (ai->labels[i][0] != '\0') {
|
||||
- if (char_set==CHAR_SET_JAPANESE) Sjis2Euc(ai->labels[i], 16);
|
||||
- if (char_set==CHAR_SET_1250) Win2Lat(ai->labels[i], 16);
|
||||
- if (char_set==CHAR_SET_1251) win1251_to_koi8(ai->labels[i], 16);
|
||||
- if (char_set==CHAR_SET_1251_B) koi8_to_win1251(ai->labels[i], 16);
|
||||
+ charset_p2j(ai->labels[i],16, char_set);
|
||||
}
|
||||
for (i = 0; i < 8; i++)
|
||||
if (ai->phoneLabels[i][0] != '\0') {
|
||||
- if (char_set==CHAR_SET_JAPANESE) Sjis2Euc(ai->phoneLabels[i], 16);
|
||||
- if (char_set==CHAR_SET_1250) Win2Lat(ai->phoneLabels[i], 16);
|
||||
- if (char_set==CHAR_SET_1251) win1251_to_koi8(ai->phoneLabels[i], 16);
|
||||
- if (char_set==CHAR_SET_1251_B) koi8_to_win1251(ai->phoneLabels[i], 16);
|
||||
+ charset_p2j(ai->phoneLabels[i],16, char_set);
|
||||
}
|
||||
- }
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -386,17 +376,11 @@
|
||||
}
|
||||
|
||||
get_pref(PREF_CHAR_SET, &char_set, NULL);
|
||||
- if (char_set==CHAR_SET_JAPANESE ||
|
||||
- char_set==CHAR_SET_1250 ||
|
||||
- char_set==CHAR_SET_1251 ||
|
||||
- char_set==CHAR_SET_1251_B
|
||||
- ) {
|
||||
- int i;
|
||||
+ if (char_set != CHAR_SET_ENGLISH) {
|
||||
for (i = 0; i < 19; i++) {
|
||||
- if (char_set==CHAR_SET_JAPANESE) Sjis2Euc(a.entry[i], 65536);
|
||||
- if (char_set==CHAR_SET_1250) Win2Lat(a.entry[i], 65536);
|
||||
- if (char_set==CHAR_SET_1251) win1251_to_koi8(a.entry[i], 65536);
|
||||
- if (char_set==CHAR_SET_1251_B) koi8_to_win1251(a.entry[i], 65536);
|
||||
+ if ((a.entry[i] != NULL) && (a.entry[i][0] != '\0')) {
|
||||
+ charset_p2j(a.entry[i], strlen(a.entry[i])+1, char_set);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
120
palm/jpilot/files/patch-datebook.c
Normal file
120
palm/jpilot/files/patch-datebook.c
Normal file
@ -0,0 +1,120 @@
|
||||
Index: datebook.c
|
||||
diff -u datebook.c:1.1.1.1 datebook.c:1.1.1.1.4.5
|
||||
--- datebook.c:1.1.1.1 Sun Feb 4 12:58:54 2001
|
||||
+++ datebook.c Sat Feb 17 21:51:55 2001
|
||||
@@ -37,10 +37,6 @@
|
||||
#include "libplugin.h"
|
||||
#include "password.h"
|
||||
|
||||
-#include "japanese.h"
|
||||
-#include "cp1250.h"
|
||||
-#include "russian.h"
|
||||
-
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
@@ -205,6 +201,13 @@
|
||||
char record[65536];
|
||||
int rec_len;
|
||||
buf_rec br;
|
||||
+ long char_set;
|
||||
+
|
||||
+ get_pref(PREF_CHAR_SET, &char_set, NULL);
|
||||
+ if (char_set != CHAR_SET_ENGLISH) {
|
||||
+ if (a->description) charset_j2p(a->description, strlen(a->description)+1, char_set);
|
||||
+ if (a->note) charset_j2p(a->note, strlen(a->note)+1, char_set);
|
||||
+ }
|
||||
|
||||
rec_len = pack_Appointment(a, record, 65535);
|
||||
if (!rec_len) {
|
||||
@@ -212,7 +215,7 @@
|
||||
jpilot_logf(LOG_WARN, "pack_Appointment %s\n", _("error"));
|
||||
return -1;
|
||||
}
|
||||
- br.rt=rt;
|
||||
+ br.rt=rt;
|
||||
br.attrib = attrib;
|
||||
br.buf = record;
|
||||
br.size = rec_len;
|
||||
@@ -535,9 +538,10 @@
|
||||
|
||||
int get_datebook_app_info(struct AppointmentAppInfo *ai)
|
||||
{
|
||||
- int num;
|
||||
+ int num,i;
|
||||
unsigned int rec_size;
|
||||
unsigned char *buf;
|
||||
+ long char_set;
|
||||
|
||||
bzero(ai, sizeof(*ai));
|
||||
|
||||
@@ -550,6 +554,12 @@
|
||||
jpilot_logf(LOG_WARN, _("Error reading"), "DatebookDB.pdb");
|
||||
return -1;
|
||||
}
|
||||
+ get_pref(PREF_CHAR_SET, &char_set, NULL);
|
||||
+ if (char_set != CHAR_SET_ENGLISH) {
|
||||
+ for (i = 0; i < 16; i++) {
|
||||
+ if (ai->category.name[i][0] != '\0') charset_p2j(ai->category.name[i], 16, char_set);
|
||||
+ }
|
||||
+ }
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -688,14 +698,14 @@
|
||||
AppointmentList *temp_a_list;
|
||||
long keep_modified, keep_deleted;
|
||||
int keep_priv;
|
||||
- long char_set;
|
||||
buf_rec *br;
|
||||
#ifdef USE_DB3
|
||||
long use_db3_tags;
|
||||
time_t ltime;
|
||||
struct tm *today;
|
||||
#endif
|
||||
-
|
||||
+ long char_set;
|
||||
+
|
||||
#ifdef USE_DB3
|
||||
time(<ime);
|
||||
today = localtime(<ime);
|
||||
@@ -763,22 +773,8 @@
|
||||
}
|
||||
|
||||
get_pref(PREF_CHAR_SET, &char_set, NULL);
|
||||
- if (char_set==CHAR_SET_JAPANESE) {
|
||||
- Sjis2Euc(a.description, 65536);
|
||||
- Sjis2Euc(a.note, 65536);
|
||||
- }
|
||||
- if (char_set==CHAR_SET_1250) {
|
||||
- Win2Lat(a.description, 65536);
|
||||
- Win2Lat(a.note, 65536);
|
||||
- }
|
||||
- if (char_set==CHAR_SET_1251) {
|
||||
- win1251_to_koi8(a.description, 65536);
|
||||
- win1251_to_koi8(a.note, 65536);
|
||||
- }
|
||||
- if (char_set==CHAR_SET_1251_B) {
|
||||
- koi8_to_win1251(a.description, 65536);
|
||||
- koi8_to_win1251(a.note, 65536);
|
||||
- }
|
||||
+ if (a.description) charset_p2j(a.description, strlen(a.description)+1, char_set);
|
||||
+ if (a.note) charset_p2j(a.note, strlen(a.note)+1, char_set);
|
||||
|
||||
temp_a_list = malloc(sizeof(AppointmentList));
|
||||
if (!temp_a_list) {
|
||||
@@ -793,6 +789,8 @@
|
||||
temp_a_list->next = *appointment_list;
|
||||
*appointment_list = temp_a_list;
|
||||
recs_returned++;
|
||||
+
|
||||
+
|
||||
}
|
||||
|
||||
jp_free_DB_records(&records);
|
||||
@@ -803,3 +801,5 @@
|
||||
|
||||
return recs_returned;
|
||||
}
|
||||
+
|
||||
+
|
47
palm/jpilot/files/patch-datebook_gui.c
Normal file
47
palm/jpilot/files/patch-datebook_gui.c
Normal file
@ -0,0 +1,47 @@
|
||||
Index: datebook_gui.c
|
||||
diff -u datebook_gui.c:1.1.1.1 datebook_gui.c:1.1.1.1.4.4
|
||||
--- datebook_gui.c:1.1.1.1 Sun Feb 4 12:58:54 2001
|
||||
+++ datebook_gui.c Sat Feb 17 21:48:47 2001
|
||||
@@ -224,7 +224,6 @@
|
||||
|
||||
void cb_date_cats(GtkWidget *widget, gpointer data)
|
||||
{
|
||||
- unsigned char *buf;
|
||||
int size;
|
||||
struct AppointmentAppInfo ai;
|
||||
int i;
|
||||
@@ -241,13 +240,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
- get_app_info("DatebookDB", &buf, &size);
|
||||
- jpilot_logf(LOG_DEBUG, "Got datebook app info, size = %d", size);
|
||||
- if (size<1) {
|
||||
- return;
|
||||
- }
|
||||
- unpack_AppointmentAppInfo(&ai, buf, size);
|
||||
- free(buf);
|
||||
+ get_datebook_app_info(&ai);
|
||||
|
||||
window_date_cats = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||
|
||||
@@ -268,10 +261,8 @@
|
||||
gtk_table_set_col_spacings(GTK_TABLE(table),0);
|
||||
gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
|
||||
|
||||
- get_pref(PREF_CHAR_SET, &char_set, NULL);
|
||||
for (i=0, bit=1; i<16; i++, bit <<= 1) {
|
||||
if (ai.category.name[i][0]) {
|
||||
- if (char_set == CHAR_SET_JAPANESE) Sjis2Euc(ai.category.name[i], 65536);
|
||||
toggle_button[i]=gtk_toggle_button_new_with_label
|
||||
(ai.category.name[i]);
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle_button[i]),
|
||||
@@ -945,7 +936,7 @@
|
||||
if (a->note) {
|
||||
jpilot_logf(LOG_DEBUG, "text2=[%s]\n",a->note);
|
||||
}
|
||||
-
|
||||
+
|
||||
/* We won't allow a repeat frequency of less than 1 */
|
||||
if ((page != PAGE_NONE) && (a->repeatFrequency < 1)) {
|
||||
jpilot_logf(LOG_WARN,
|
157
palm/jpilot/files/patch-japanese.c
Normal file
157
palm/jpilot/files/patch-japanese.c
Normal file
@ -0,0 +1,157 @@
|
||||
Index: japanese.c
|
||||
diff -u japanese.c:1.1.1.1 japanese.c:1.1.1.1.4.3
|
||||
--- japanese.c:1.1.1.1 Sun Feb 4 12:58:54 2001
|
||||
+++ japanese.c Sat Feb 17 21:19:41 2001
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
-
|
||||
+
|
||||
/* In utils.c, also a prototype in utils.h */
|
||||
void multibyte_safe_strncpy(char *dst, char *src, size_t max_len);
|
||||
|
||||
@@ -23,7 +23,14 @@
|
||||
#define isEuc(c) \
|
||||
(0xa0 < ((unsigned char) (c)) && ((unsigned char) (c)) < 0xff)
|
||||
|
||||
+/* convert SJIS char to EUC char
|
||||
+
|
||||
+ this does not support Machine dependent codes.
|
||||
+ args: hi: first byte of sjis char.
|
||||
+ lo: second byte of sjis char.
|
||||
+ return: euc char in 16bit value.
|
||||
|
||||
+ */
|
||||
static unsigned int SjisToEuc(unsigned char hi, unsigned char lo)
|
||||
{
|
||||
if (lo >= 0x9f)
|
||||
@@ -32,8 +39,12 @@
|
||||
return ((hi * 2 - (hi >= 0xe0 ? 0xe1 : 0x61)) << 8) |
|
||||
(lo + (lo >= 0x7f ? 0x60 : 0x61));
|
||||
}
|
||||
-
|
||||
|
||||
+/*
|
||||
+ args: source char pointer, destination source pointer, a length of srting
|
||||
+ Length include null termination.
|
||||
+ return the pointer of nul termination code.
|
||||
+ */
|
||||
unsigned char *Sjis2EucCpy(unsigned char *dest, unsigned char *src, int max_len)
|
||||
{
|
||||
unsigned char *p, *q;
|
||||
@@ -43,8 +54,8 @@
|
||||
|
||||
p = src;
|
||||
q = dest;
|
||||
- while ((*p) && (n < max_len-1)) {
|
||||
- if (isSjis1stByte(*p)) {
|
||||
+ while ((*p) && (n < max_len-2)) {
|
||||
+ if (isSjis1stByte(*p)) {
|
||||
hi = *p++;
|
||||
lo = *p++;
|
||||
w = SjisToEuc(hi, lo);
|
||||
@@ -58,27 +69,48 @@
|
||||
} else if ((*p) & 0x80) { /* irregular japanese char */
|
||||
p++; /* ??abort and return NULL?? */
|
||||
/* discard it */
|
||||
- } else {
|
||||
+ } else {
|
||||
*q++ = *p++;
|
||||
n++;
|
||||
}
|
||||
}
|
||||
- *q = '\0';
|
||||
- return dest;
|
||||
+ if ((*p) && !(*p & 0x80) && (n < max_len-1)) {
|
||||
+ *q++ = *p++;
|
||||
+ *q = '\0';
|
||||
+ } else {
|
||||
+ *q = '\0';
|
||||
+ }
|
||||
+ return q;
|
||||
}
|
||||
|
||||
+/*
|
||||
+ convert strings from Sjis to EUC.
|
||||
+ max_len includes null termiantion.
|
||||
+ size of buf must be more than max_len.
|
||||
+
|
||||
+*/
|
||||
+
|
||||
void Sjis2Euc(unsigned char *buf, int max_len)
|
||||
{
|
||||
unsigned char *dst;
|
||||
|
||||
if (buf == NULL) return;
|
||||
- if ((dst = (unsigned char *)malloc(max_len*2)) != NULL) {
|
||||
- if (Sjis2EucCpy(dst, buf, max_len*2) != NULL)
|
||||
+ if ((dst = (unsigned char *)malloc(max_len)) != NULL) {
|
||||
+ /* assign buffer for destination. */
|
||||
+ if (Sjis2EucCpy(dst, buf, max_len) != NULL) {
|
||||
multibyte_safe_strncpy(buf, dst, max_len);
|
||||
+ buf[max_len-1] = '\0'; /* i am a paranoire B-) */
|
||||
+ }
|
||||
free(dst);
|
||||
- }
|
||||
+ }
|
||||
}
|
||||
|
||||
+/*
|
||||
+ Convert one char from euc to sjis.
|
||||
+ args: hi: first byte of euc code.
|
||||
+ lo: second byte of euc code.
|
||||
+ return: 16bit value of sjis char code.
|
||||
+ */
|
||||
static unsigned int EucToSjis(unsigned char hi, unsigned char lo)
|
||||
{
|
||||
if (hi & 1)
|
||||
@@ -88,6 +120,11 @@
|
||||
return ((hi / 2 + (hi < 0xdf ? 0x30 : 0x70)) << 8) | (lo - 2);
|
||||
}
|
||||
|
||||
+/*
|
||||
+ Convert string from euc to sjis with coping to another buffer.
|
||||
+ Theoritically, strlen(EUC) >= strlen(SJIS),
|
||||
+ then it is ok that dest == src.
|
||||
+ */
|
||||
unsigned char *Euc2SjisCpy(unsigned char *dest, unsigned char *src, int max_len)
|
||||
{
|
||||
unsigned char *p, *q;
|
||||
@@ -97,7 +134,7 @@
|
||||
|
||||
p = src;
|
||||
q = dest;
|
||||
- while ((*p) && (n < max_len-1)) {
|
||||
+ while ((*p) && (n < max_len-2)) {
|
||||
if (isEucKana(*p)) { /* euc kana(2byte) -> sjis(1byte) */
|
||||
p++;
|
||||
*q++ = *p++;
|
||||
@@ -113,13 +150,25 @@
|
||||
*q++ = *p++;
|
||||
n++;
|
||||
}
|
||||
+ }
|
||||
+ if ((*p) && !(*p & 0x80) && n < max_len-1) {
|
||||
+ *q++ = *p++;
|
||||
+ *q = '\0';
|
||||
+ } else {
|
||||
+ *q = '\0';
|
||||
}
|
||||
- *q = '\0';
|
||||
return dest;
|
||||
}
|
||||
+/*
|
||||
+ convert euc to sjis.
|
||||
+ size of buf must be more than man_len.
|
||||
+ it simply call Euc2SjisCpy().
|
||||
+ this function exists for symmetry.
|
||||
+ */
|
||||
|
||||
void Euc2Sjis(unsigned char *buf, int max_len)
|
||||
{
|
||||
if (buf == NULL) return;
|
||||
- Euc2SjisCpy(buf, buf, max_len);
|
||||
+ if (max_len <= 0) return;
|
||||
+ (void *)Euc2SjisCpy(buf, buf, max_len);
|
||||
}
|
86
palm/jpilot/files/patch-memo.c
Normal file
86
palm/jpilot/files/patch-memo.c
Normal file
@ -0,0 +1,86 @@
|
||||
Index: memo.c
|
||||
diff -u memo.c:1.1.1.1 memo.c:1.1.1.1.4.4
|
||||
--- memo.c:1.1.1.1 Sun Feb 4 12:58:54 2001
|
||||
+++ memo.c Sat Feb 17 21:47:54 2001
|
||||
@@ -32,10 +32,6 @@
|
||||
#include "libplugin.h"
|
||||
#include "password.h"
|
||||
|
||||
-#include "japanese.h"
|
||||
-#include "cp1250.h"
|
||||
-#include "russian.h"
|
||||
-
|
||||
#define MEMO_EOF 7
|
||||
|
||||
int memo_compare(const void *v1, const void *v2)
|
||||
@@ -133,6 +129,12 @@
|
||||
char record[65536];
|
||||
int rec_len;
|
||||
buf_rec br;
|
||||
+ long char_set;
|
||||
+
|
||||
+ get_pref(PREF_CHAR_SET, &char_set, NULL);
|
||||
+ if (char_set != CHAR_SET_ENGLISH) {
|
||||
+ if (memo->text) charset_j2p(memo->text, strlen(memo->text)+1, char_set);
|
||||
+ }
|
||||
|
||||
rec_len = pack_Memo(memo, record, 65535);
|
||||
if (!rec_len) {
|
||||
@@ -165,7 +167,7 @@
|
||||
|
||||
int get_memo_app_info(struct MemoAppInfo *ai)
|
||||
{
|
||||
- int num;
|
||||
+ int num,i;
|
||||
unsigned int rec_size;
|
||||
unsigned char *buf;
|
||||
long char_set;
|
||||
@@ -183,18 +185,12 @@
|
||||
}
|
||||
|
||||
get_pref(PREF_CHAR_SET, &char_set, NULL);
|
||||
- if (char_set==CHAR_SET_JAPANESE ||
|
||||
- char_set==CHAR_SET_1250 ||
|
||||
- char_set==CHAR_SET_1251 ||
|
||||
- char_set==CHAR_SET_1251_B) {
|
||||
- int i;
|
||||
- for (i = 0; i < 16; i++)
|
||||
- if (ai->category.name[i][0] != '\0') {
|
||||
- if (char_set==CHAR_SET_JAPANESE) Sjis2Euc(ai->category.name[i], 16);
|
||||
- if (char_set==CHAR_SET_1250) Win2Lat(ai->category.name[i], 16);
|
||||
- if (char_set==CHAR_SET_1251) win1251_to_koi8(ai->category.name[i], 16);
|
||||
- if (char_set==CHAR_SET_1251_B) koi8_to_win1251(ai->category.name[i], 16);
|
||||
- }
|
||||
+ if (char_set != CHAR_SET_ENGLISH) {
|
||||
+ for (i = 0; i < 16; i++) {
|
||||
+ if (ai->category.name[i][0] != '\0') {
|
||||
+ charset_p2j(ai->category.name[i], 16, char_set);
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -218,8 +214,8 @@
|
||||
MemoList *temp_memo_list;
|
||||
long keep_modified, keep_deleted;
|
||||
int keep_priv;
|
||||
- long char_set;
|
||||
buf_rec *br;
|
||||
+ long char_set;
|
||||
|
||||
jpilot_logf(LOG_DEBUG, "get_memos2()\n");
|
||||
if (modified==2) {
|
||||
@@ -274,12 +270,8 @@
|
||||
if ( ((br->attrib & 0x0F) != category) && category != CATEGORY_ALL) {
|
||||
continue;
|
||||
}
|
||||
-
|
||||
get_pref(PREF_CHAR_SET, &char_set, NULL);
|
||||
- if (char_set==CHAR_SET_JAPANESE) Sjis2Euc(memo.text, 65536);
|
||||
- if (char_set==CHAR_SET_1250) Win2Lat(memo.text, 65536);
|
||||
- if (char_set==CHAR_SET_1251) win1251_to_koi8(memo.text, 65536);
|
||||
- if (char_set==CHAR_SET_1251_B) koi8_to_win1251(memo.text, 65536);
|
||||
+ if (memo.text) charset_p2j(memo.text, strlen(memo.text)+1, char_set);
|
||||
|
||||
temp_memo_list = malloc(sizeof(MemoList));
|
||||
if (!temp_memo_list) {
|
155
palm/jpilot/files/patch-sync.c
Normal file
155
palm/jpilot/files/patch-sync.c
Normal file
@ -0,0 +1,155 @@
|
||||
Index: sync.c
|
||||
diff -u sync.c:1.1.1.1 sync.c:1.1.1.1.4.1
|
||||
--- sync.c:1.1.1.1 Sun Feb 4 12:58:55 2001
|
||||
+++ sync.c Sat Feb 17 17:07:51 2001
|
||||
@@ -105,10 +105,6 @@
|
||||
|
||||
int pdb_file_delete_record_by_id(char *DB_name, pi_uid_t uid_in);
|
||||
|
||||
-
|
||||
-void recode_packed_record(char *DB_name, void *record, int rec_len, long char_seet);
|
||||
-
|
||||
-
|
||||
void sig_handler(int sig)
|
||||
{
|
||||
jpilot_logf(LOG_DEBUG, "caught signal SIGCHLD\n");
|
||||
@@ -624,10 +620,8 @@
|
||||
return 0;
|
||||
}
|
||||
get_pref(PREF_CHAR_SET, &char_set, NULL);
|
||||
- if (char_set == CHAR_SET_JAPANESE) Euc2Sjis(buf, 1023);
|
||||
- if (char_set == CHAR_SET_1250) Lat2Win(buf, 1023);
|
||||
- if (char_set == CHAR_SET_1251) koi8_to_win1251(buf, 1023);
|
||||
- if (char_set == CHAR_SET_1251_B) win1251_to_koi8(buf, 1023);
|
||||
+ charset_j2p(buf,1023,char_set);
|
||||
+
|
||||
dlp_AddSyncLogEntry(sd, buf);
|
||||
dlp_AddSyncLogEntry(sd, "\n\r");
|
||||
|
||||
@@ -751,15 +745,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
- get_pref(PREF_CHAR_SET, &char_set, NULL);
|
||||
- if (char_set==CHAR_SET_JAPANESE ||
|
||||
- char_set==CHAR_SET_1250 ||
|
||||
- char_set==CHAR_SET_1251 ||
|
||||
- char_set==CHAR_SET_1251_B
|
||||
- ) {
|
||||
- recode_packed_record(DB_name, record, rec_len, char_set);
|
||||
- }
|
||||
-
|
||||
ret = dlp_WriteRecord(sd, db, header.attrib & dlpRecAttrSecret,
|
||||
0, header.attrib & 0x0F,
|
||||
record, rec_len, &new_id);
|
||||
@@ -1469,61 +1454,6 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
-void recode_packed_record(char *DB_name, void *record, int rec_len, long char_set)
|
||||
-{
|
||||
- /*todo move this to before the record is written out?*/
|
||||
- /* Convert to SJIS Japanese Kanji code (Palm use this code) */
|
||||
- /* or convert to different encoding */
|
||||
- /*Write the record to the Palm Pilot */
|
||||
- if (!strcmp(DB_name, "DatebookDB")) {
|
||||
- struct Appointment a;
|
||||
- unpack_Appointment(&a, record, rec_len);
|
||||
- if (char_set == CHAR_SET_JAPANESE) Euc2Sjis(a.description, 65536);
|
||||
- if (char_set == CHAR_SET_1250) Lat2Win(a.description, 65536);
|
||||
- if (char_set == CHAR_SET_1251) koi8_to_win1251(a.description, 65536);
|
||||
- if (char_set == CHAR_SET_1251_B) win1251_to_koi8(a.description, 65536);
|
||||
- if (char_set == CHAR_SET_JAPANESE) Euc2Sjis(a.note, 65536);
|
||||
- if (char_set == CHAR_SET_1250) Lat2Win(a.note, 65536);
|
||||
- if (char_set == CHAR_SET_1251) koi8_to_win1251(a.note, 65536);
|
||||
- if (char_set == CHAR_SET_1251_B) win1251_to_koi8(a.note, 65536);
|
||||
- rec_len = pack_Appointment(&a, record, 65535);
|
||||
- }
|
||||
- if (!strcmp(DB_name, "AddressDB")) {
|
||||
- struct Address a;
|
||||
- int i;
|
||||
- unpack_Address(&a, record, rec_len);
|
||||
- for (i = 0; i < 19; i++) {
|
||||
- if (char_set == CHAR_SET_JAPANESE) Euc2Sjis(a.entry[i], 65536);
|
||||
- if (char_set == CHAR_SET_1250) Lat2Win(a.entry[i], 65536);
|
||||
- if (char_set == CHAR_SET_1251) koi8_to_win1251(a.entry[i], 65536);
|
||||
- if (char_set == CHAR_SET_1251_B) win1251_to_koi8(a.entry[i], 65536);
|
||||
- }
|
||||
- rec_len = pack_Address(&a, record, 65535);
|
||||
- }
|
||||
- if (!strcmp(DB_name, "ToDoDB")) {
|
||||
- struct ToDo t;
|
||||
- unpack_ToDo(&t, record, rec_len);
|
||||
- if (char_set == CHAR_SET_JAPANESE) Euc2Sjis(t.description, 65536);
|
||||
- if (char_set == CHAR_SET_1250) Lat2Win(t.description, 65536);
|
||||
- if (char_set == CHAR_SET_1251) koi8_to_win1251(t.description, 65536);
|
||||
- if (char_set == CHAR_SET_1251_B) win1251_to_koi8(t.description, 65536);
|
||||
- if (char_set == CHAR_SET_JAPANESE) Euc2Sjis(t.note, 65536);
|
||||
- if (char_set == CHAR_SET_1250) Lat2Win(t.note, 65536);
|
||||
- if (char_set == CHAR_SET_1251) koi8_to_win1251(t.note, 65536);
|
||||
- if (char_set == CHAR_SET_1251_B) win1251_to_koi8(t.note, 65536);
|
||||
- rec_len = pack_ToDo(&t, record, 65535);
|
||||
- }
|
||||
- if (!strcmp(DB_name, "MemoDB")) {
|
||||
- struct Memo m;
|
||||
- unpack_Memo(&m, record, rec_len);
|
||||
- if (char_set == CHAR_SET_JAPANESE) Euc2Sjis(m.text, 65536);
|
||||
- if (char_set == CHAR_SET_1250) Lat2Win(m.text, 65536);
|
||||
- if (char_set == CHAR_SET_1251) koi8_to_win1251(m.text, 65536);
|
||||
- if (char_set == CHAR_SET_1251_B) win1251_to_koi8(m.text, 65536);
|
||||
- rec_len = pack_Memo(&m, record, 65535);
|
||||
- }
|
||||
-}
|
||||
-
|
||||
int fast_sync_local_recs(char *DB_name, int sd, int db)
|
||||
{
|
||||
unsigned long new_id;
|
||||
@@ -1541,7 +1471,6 @@
|
||||
char error_log_message_d[256];
|
||||
char delete_log_message[256];
|
||||
int index, size, attr, category;
|
||||
- long char_set;
|
||||
|
||||
jpilot_logf(LOG_DEBUG, "fast_sync_local_recs\n");
|
||||
|
||||
@@ -1599,14 +1528,6 @@
|
||||
if (ferror(pc_in)) {
|
||||
break;
|
||||
}
|
||||
- }
|
||||
- get_pref(PREF_CHAR_SET, &char_set, NULL);
|
||||
- if (char_set==CHAR_SET_JAPANESE ||
|
||||
- char_set==CHAR_SET_1250 ||
|
||||
- char_set==CHAR_SET_1251 ||
|
||||
- char_set==CHAR_SET_1251_B
|
||||
- ) {
|
||||
- recode_packed_record(DB_name, record, rec_len, char_set);
|
||||
}
|
||||
|
||||
jpilot_logf(LOG_DEBUG, "Writing PC record to palm\n");
|
||||
Index: todo.c
|
||||
diff -u todo.c:1.1.1.1 todo.c:1.1.1.1.4.3
|
||||
--- todo.c:1.1.1.1 Sun Feb 4 12:58:55 2001
|
||||
+++ todo.c Sat Feb 17 20:37:52 2001
|
||||
@@ -31,10 +31,6 @@
|
||||
#include "libplugin.h"
|
||||
#include "password.h"
|
||||
|
||||
-#include "japanese.h"
|
||||
-#include "cp1250.h"
|
||||
-#include "russian.h"
|
||||
-
|
||||
#define TODO_EOF 7
|
||||
|
||||
static struct ToDoAppInfo *glob_Ptodo_app_info;
|
||||
@@ -241,6 +237,13 @@
|
||||
char record[65536];
|
||||
int rec_len;
|
||||
buf_rec br;
|
||||
+ long char_set;
|
||||
+
|
||||
+ get_pref(PREF_CHAR_SET, &char_set, NULL);
|
||||
+ if (char_set != CHAR_SET_ENGLISH) {
|
||||
+ if (todo->description) charset_j2p(todo->description, strlen(todo->description)+1, char_set);
|
||||
+ if (todo->note) charset_j2p(todo->note, strlen(todo->note)+1, char_set);
|
||||
+ }
|
21
palm/jpilot/files/patch-todo_gui.c
Normal file
21
palm/jpilot/files/patch-todo_gui.c
Normal file
@ -0,0 +1,21 @@
|
||||
Index: todo_gui.c
|
||||
diff -u todo_gui.c:1.1.1.1 todo_gui.c:1.1.1.1.4.1
|
||||
--- todo_gui.c:1.1.1.1 Sun Feb 4 12:58:55 2001
|
||||
+++ todo_gui.c Sat Feb 17 17:07:51 2001
|
||||
@@ -426,12 +426,16 @@
|
||||
/*it will show it though. I allow it. */
|
||||
new_todo->description = gtk_editable_get_chars
|
||||
(GTK_EDITABLE(todo_text), 0, -1);
|
||||
+/* charset_j2p(new_todo->description, 65536); */
|
||||
new_todo->note = gtk_editable_get_chars
|
||||
(GTK_EDITABLE(todo_text_note), 0, -1);
|
||||
if (new_todo->note[0]=='\0') {
|
||||
free(new_todo->note);
|
||||
new_todo->note=NULL;
|
||||
}
|
||||
+/* else {
|
||||
+ charset_j2p(new_todo->note, 65536);
|
||||
+ }*/
|
||||
|
||||
for (i=0; i<NUM_TODO_CAT_ITEMS; i++) {
|
||||
if (GTK_IS_WIDGET(todo_cat_menu_item2[i])) {
|
70
palm/jpilot/files/patch-utils.c
Normal file
70
palm/jpilot/files/patch-utils.c
Normal file
@ -0,0 +1,70 @@
|
||||
Index: utils.c
|
||||
diff -u utils.c:1.1.1.1 utils.c:1.1.1.1.4.1
|
||||
--- utils.c:1.1.1.1 Sun Feb 4 12:58:55 2001
|
||||
+++ utils.c Sat Feb 17 17:07:51 2001
|
||||
@@ -40,6 +40,9 @@
|
||||
#include "plugins.h"
|
||||
#include "libplugin.h"
|
||||
|
||||
+#include "japanese.h"
|
||||
+#include "cp1250.h"
|
||||
+#include "russian.h"
|
||||
|
||||
#include <pi-source.h>
|
||||
#include <pi-socket.h>
|
||||
@@ -1981,7 +1984,7 @@
|
||||
char *p, *q;
|
||||
int n = 0;
|
||||
p = src; q = dst;
|
||||
- while ((*p) && n < (max_len-1)) {
|
||||
+ while ((*p) && n < (max_len-2)) {
|
||||
if ((*p) & 0x80) {
|
||||
*q++ = *p++;
|
||||
n++;
|
||||
@@ -1994,11 +1997,10 @@
|
||||
n++;
|
||||
}
|
||||
}
|
||||
- if ((*p & 0x80 ) && (n < max_len)) {
|
||||
- *q = *p;
|
||||
- } else {
|
||||
- *q = '\0';
|
||||
- }
|
||||
+ if (!(*p & 0x80 ) && (n < max_len-1))
|
||||
+ *q++ = *p++;
|
||||
+
|
||||
+ *q = '\0';
|
||||
} else {
|
||||
strncpy(dst, src, max_len);
|
||||
}
|
||||
@@ -2022,7 +2024,7 @@
|
||||
int n = 0;
|
||||
|
||||
p = (char *)src; q = dst;
|
||||
- while ((*p) && (n < (len -1))) {
|
||||
+ while ((*p) && (n < (len -2))) {
|
||||
if ((*p) & 0x80) {
|
||||
*q++ = *p++;
|
||||
n++;
|
||||
@@ -2033,15 +2035,15 @@
|
||||
} else {
|
||||
*q++ = *p++;
|
||||
n++;
|
||||
+ if (*(p-1) == (char)(c & 0xff)) return q;
|
||||
}
|
||||
- if (*(p-1) == (char)(c & 0xff)) return q;
|
||||
- }
|
||||
- if ((*p & 0x80) && (n < len)) {
|
||||
- *q = *p;
|
||||
- } else {
|
||||
- *q = '\0';
|
||||
}
|
||||
+ if (!(*p & 0x80) && (n < len-1))
|
||||
+ *q++ = *p++;
|
||||
+
|
||||
+ *q = '\0';
|
||||
return NULL;
|
||||
} else
|
||||
return memccpy(dst, src, c, len);
|
||||
}
|
||||
+
|
23
palm/jpilot/files/patch-utils.h
Normal file
23
palm/jpilot/files/patch-utils.h
Normal file
@ -0,0 +1,23 @@
|
||||
Index: utils.h
|
||||
diff -u utils.h:1.1.1.1 utils.h:1.1.1.1.4.3
|
||||
--- utils.h:1.1.1.1 Sun Feb 4 12:58:55 2001
|
||||
+++ utils.h Sat Feb 17 21:56:24 2001
|
||||
@@ -303,3 +303,18 @@
|
||||
|
||||
void multibyte_safe_strncpy(char *dst, char *src, size_t max_len);
|
||||
char *multibyte_safe_memccpy(char *dst, const char *src, int c, size_t len);
|
||||
+
|
||||
+/*************************************
|
||||
+ * convert char code
|
||||
+ *************************************/
|
||||
+#define charset_j2p(buf, max_len, char_set) {\
|
||||
+ if (char_set == CHAR_SET_JAPANESE) Euc2Sjis(buf, max_len);\
|
||||
+ if (char_set == CHAR_SET_1250) Lat2Win(buf,max_len);\
|
||||
+ if (char_set == CHAR_SET_1251) koi8_to_win1251(buf, max_len);\
|
||||
+ if (char_set == CHAR_SET_1251_B) win1251_to_koi8(buf, max_len);}
|
||||
+#define charset_p2j(buf, max_len, char_set) {\
|
||||
+ if (char_set == CHAR_SET_JAPANESE) Sjis2Euc(buf, max_len);\
|
||||
+ if (char_set == CHAR_SET_1250) Win2Lat(buf,max_len);\
|
||||
+ if (char_set == CHAR_SET_1251) win1251_to_koi8(buf, max_len);\
|
||||
+ if (char_set == CHAR_SET_1251_B) koi8_to_win1251(buf, max_len);}
|
||||
+
|
Loading…
Reference in New Issue
Block a user