summaryrefslogtreecommitdiffabout
path: root/gammu/emb/common
Side-by-side diff
Diffstat (limited to 'gammu/emb/common') (more/less context) (ignore whitespace changes)
-rw-r--r--gammu/emb/common/service/gsmmisc.c4
-rw-r--r--gammu/emb/common/service/gsmpbk.c17
2 files changed, 11 insertions, 10 deletions
diff --git a/gammu/emb/common/service/gsmmisc.c b/gammu/emb/common/service/gsmmisc.c
index 6959a22..1c6ec8b 100644
--- a/gammu/emb/common/service/gsmmisc.c
+++ b/gammu/emb/common/service/gsmmisc.c
@@ -193,29 +193,29 @@ void ReadVCALDateTime(char *Buffer, GSM_DateTime *dt)
dt->Hour = atoi(hour);
dt->Minute = atoi(minute);
dt->Second = atoi(second);
/* FIXME */
dt->Timezone = 0;
}
void SaveVCALText(char *Buffer, int *Length, char *Text, char *Start)
{
char buffer[1000];
if (UnicodeLength(Text) != 0) {
- EncodeUTF8QuotedPrintable(buffer,Text);
+ EncodeUTF8(buffer,Text);
if (UnicodeLength(Text)==strlen(buffer)) {
*Length+=sprintf(Buffer+(*Length), "%s:%s%c%c",Start,DecodeUnicodeString(Text),13,10);
} else {
- *Length+=sprintf(Buffer+(*Length), "%s;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:%s%c%c",Start,buffer,13,10);
+ *Length+=sprintf(Buffer+(*Length), "%s:%s%c%c",Start,buffer,13,10);
}
}
}
bool ReadVCALText(char *Buffer, char *Start, char *Value)
{
unsigned char buff[200];
Value[0] = 0x00;
Value[1] = 0x00;
strcpy(buff,Start);
diff --git a/gammu/emb/common/service/gsmpbk.c b/gammu/emb/common/service/gsmpbk.c
index 05e5cb9..f7cf7d7 100644
--- a/gammu/emb/common/service/gsmpbk.c
+++ b/gammu/emb/common/service/gsmpbk.c
@@ -122,72 +122,73 @@ void GSM_EncodeVCARD(char *Buffer, int *Length, GSM_MemoryEntry *pbk, bool heade
}
for (i=0; i < pbk->EntriesNum; i++) {
if (i != Name) {
ignore = false;
switch(pbk->Entries[i].EntryType) {
case PBK_Text_Name :
case PBK_Date :
case PBK_Caller_Group :
ignore = true;
break;
case PBK_Number_General :
*Length+=sprintf(Buffer+(*Length),"TEL");
- if (Number == i) (*Length)+=sprintf(Buffer+(*Length),";PREF");
+ (*Length)+=sprintf(Buffer+(*Length),";PREF");
break;
case PBK_Number_Mobile :
*Length+=sprintf(Buffer+(*Length),"TEL");
- if (Number == i) (*Length)+=sprintf(Buffer+(*Length),";PREF");
+ //if (Number == i) (*Length)+=sprintf(Buffer+(*Length),";PREF");
*Length+=sprintf(Buffer+(*Length),";CELL");
break;
case PBK_Number_Work :
*Length+=sprintf(Buffer+(*Length),"TEL");
- if (Number == i) (*Length)+=sprintf(Buffer+(*Length),";PREF");
- *Length+=sprintf(Buffer+(*Length),";WORK;VOICE");
+ //if (Number == i) (*Length)+=sprintf(Buffer+(*Length),";PREF");
+ *Length+=sprintf(Buffer+(*Length),";WORK");
break;
case PBK_Number_Fax :
*Length+=sprintf(Buffer+(*Length),"TEL");
- if (Number == i) (*Length)+=sprintf(Buffer+(*Length),";PREF");
+ //if (Number == i) (*Length)+=sprintf(Buffer+(*Length),";PREF");
*Length+=sprintf(Buffer+(*Length),";FAX");
break;
case PBK_Number_Home :
*Length+=sprintf(Buffer+(*Length),"TEL");
- if (Number == i) (*Length)+=sprintf(Buffer+(*Length),";PREF");
- *Length+=sprintf(Buffer+(*Length),";HOME;VOICE");
+ //if (Number == i) (*Length)+=sprintf(Buffer+(*Length),";PREF");
+ *Length+=sprintf(Buffer+(*Length),";HOME");
break;
case PBK_Text_Note :
*Length+=sprintf(Buffer+(*Length),"NOTE");
break;
case PBK_Text_Postal :
/* Don't ask why. Nokia phones save postal address
* double - once like LABEL, second like ADR
*/
- SaveVCALText(Buffer, Length, pbk->Entries[i].Text, "LABEL");
+ //SaveVCALText(Buffer, Length, pbk->Entries[i].Text, "LABEL");
*Length+=sprintf(Buffer+(*Length),"ADR");
break;
case PBK_Text_Email :
case PBK_Text_Email2 :
*Length+=sprintf(Buffer+(*Length),"EMAIL");
break;
case PBK_Text_URL :
*Length+=sprintf(Buffer+(*Length),"URL");
break;
default :
ignore = true;
break;
}
if (!ignore) {
SaveVCALText(Buffer, Length, pbk->Entries[i].Text, "");
}
}
}
+ *Length+=sprintf(Buffer+(*Length), "X-KADDRESSBOOK-X-ExternalID:%d%c%c",pbk->Location,13,10);
if (header) *Length+=sprintf(Buffer+(*Length),"END:VCARD%c%c",13,10);
}
}
GSM_Error GSM_DecodeVCARD(unsigned char *Buffer, int *Pos, GSM_MemoryEntry *Pbk, GSM_VCardVersion Version)
{
unsigned char Line[2000],Buff[2000];
int Level = 0;
Buff[0] = 0;
Pbk->EntriesNum = 0;