libgnokii API changes
=====================

+ means addition
- means substraction
| means change
= means no change
o change description

v1.10 2004-XX-XX
	2004-06-17
	o new functions
		+API int gn_calnote2ical(FILE *f, gn_calnote *calnote)
		+API int gn_ical2calnote(FILE *f, gn_calnote *calnote, int id)
		+API int gn_todo2ical(FILE *f, gn_todo *ctodo)
		+API int gn_ical2todo(FILE *f, gn_todo *ctodo, int id)

	2004-06-09
	o new element in the enum
		|typedef enum {
		=...
		+	GN_ERR_SIMPROBLEM,
		+	GN_ERR_CODEREQUIRED,
		=...
		|} gn_error;

v1.9 2004-04-25
	2004-06-01
	o new function
		+API int gn_cfg_file_read(const char *filename)

	2004-05-09
	o new function
		+API int gn_cfg_read_default()

	2004-04-25
	o function name change
		-gn_file_phonebook_raw(...)
		+gn_file_phonebook_raw_parse(...)

v1.8 2004-02-23

	2004-02-19
	o new type
		+typedef enum {
		+...
		+} gn_log_target;

	o new variable
		+extern API gn_log_target gn_log_debug_mask;

	o new variable
		+extern API gn_log_target gn_log_rlpdebug_mask;

	o new variable
		+extern API gn_log_target gn_log_xdebug_mask;

	o new function
		+API void gn_log_debug(const char *fmt, ...);

	o new function
		+API void gn_log_rlpdebug(const char *fmt, ...);

	o new function
		+API void gn_log_xdebug(const char *fmt, ...);

	2004-02-17
	o new function
		+API gn_error gn_file_phonebook_raw(gn_phonebook_entry *entry, char *buffer);

	2004-02-16
	o new element in the enum
		|typedef enum {
		=...
		+	GN_CALNOTE_MONTHLY = 65534,
		=...
		|} gn_calnote_recurrence;

	2004-01-25
	o new element in the enum
		|typedef enum {
		=...
		+	GN_OP_DeletePhonebook,
		=...
		|} gn_operation;

v1.7 2004-01-19

	2004-01-16
	o new fields in the struct; change the struct fields' types
		= typedef struct {
		| 	unsigned int number;
		|	unsigned int location[GN_CALNOTE_MAX_NUMBER];
		+	unsigned int last;
		= } gn_calnote_list;

v1.6 2003-12-16

	2003-11-30

	o new function
		+API gn_error gn_call_check_active(struct gn_statemachine *state);

	o new type
		+typedef struct {
		+...
		+} gn_call_active;

	o new field in the struct
		|typedef struct {
		=...
		+	gn_call_active *call_active;
		=...

	o new field in the struct
		|typedef struct {
		=...
		+	GN_OP_GetActiveCalls
		=...
		|} gn_operation;

v1.5 2003-10-24

	o new type
		+typedef struct {
		+...
		+} gn_ringtone_info;

	o new type
		+typedef struct {
		+...
		+} gn_ringtone_list;

	o new field in the struct
		|typedef struct {
		=...
		+	GN_OP_GetRingtoneList
		=...
		|} gn_operation;

	o new field in the struct
		|typedef struct {
		=...
		+	GN_OP_DeleteRingtone
		=...
		|} gn_operation;

v1.4 2003-10-04

	o function enhancement
		+MIDI ringtone support in gn_file_ringtone_read

	o function enhancement
		+MIDI ringtone support in gn_file_ringtone_save

	o function enhancement
		+Nokia raw ringtone support in gn_file_ringtone_read

	o function enhancement
		+Nokia raw ringtone support in gn_file_ringtone_save
		
v1.3 2003-09-21

	2003-09-10

	o new function
		+API void gn_number_sanitize(char *, int);

	o new function
		+API void gn_phonebook_entry_sanitize(gn_phonebook_entry *);

v1.2 2003-09-07

	2003-09-07

	o new type
		+typedef enum {
		+...
		+} gn_profile_message_type;

	o new type
		+typedef enum {
		+...
		+} gn_profile_warning_type;

	o new type
		+typedef enum {
		+...
		+} gn_profile_vibration_type;

	o new type
		+typedef enum {
		+...
		+} gn_profile_callalert_type;

	o new type
		+typedef enum {
		+...
		+} gn_profile_keyvol_type;

	o new type
		+typedef enum {
		+...
		+} gn_profile_volume_type;

	2003-09-05

	o new function
		+API char *gn_memory_type2str(gn_memory_type);

	2003-09-03

	o new function
		+API int gn_phonebook2ldif(FILE *, gn_phonebook_entry *);

	o new function
		+API int gn_ldif2phonebook(FILE *, gn_phonebook_entry *);

v1.1 2003-08-18

	2003-08-18

	o change of the struct field type
		|typedef struct {
		=...
		-	unsigned char text[GN_SMS_MAX_LENGTH + 1];
		+	unsigned char text[10 * GN_SMS_MAX_LENGTH + 1];
		=...
		|} gn_sms_user_data;

	2003-06-18

	o new function
		+API void gn_ringtone_get_tone(const gn_ringtone *, int,
						int *, int *);

	o new type
		+typedef struct {
		+...
		+} gn_tone;

	o new field in the struct
		|typedef struct {
		=...
		+	gn_tone *tone;
		=...
		|} gn_data;

	o new field in the struct
		|typedef struct {
		=...
		+	GN_OP_PlayTone,
		=...
		|} gn_operation;

	2003-06-12

	o new fields in the struct
		|typedef struct {
		=...
		+	GN_OP_GetActiveProfile,
		+	GN_OP_SetActiveProfile,
		=...
		|} gn_operation;
 
	2003-04-28

	o change the struct definition
		| typedef struct
		-#if HAVE_BLUETOOTH
		|	uint8_t rfcomm_cn;
		-	bdaddr_t bt_address;
		-#endif
		+} gn_config;

	o change the struct field name
		|struct gn_statemachine {
		=...
		-	gn_error ResponseError[GN_SM_WAITINGFOR_MAX_NUMBER];
		+	gn_error response_error[GN_SM_WAITINGFOR_MAX_NUMBER];
		|};

v1.0 2003-04-07
