Update of /cvsroot/scim/scim-bridge/common In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv10332/common Modified Files: Tag: plaintext scim-bridge-attribute.c scim-bridge-exception.c scim-bridge-exception.h scim-bridge-environment.c scim-bridge-message.h scim-bridge-debug.h scim-bridge-messenger.c scim-bridge-message.c scim-bridge-string.c scim-bridge-attribute.h Added Files: Tag: plaintext scim-bridge-path.h scim-bridge-display.h Removed Files: Tag: plaintext scim-bridge-list.c scim-bridge-list.h scim-bridge-environment.h scim-bridge-debug.c Log Message: --- NEW FILE: scim-bridge-display.h --- #ifndef SCIMBRIDGEDISPLAY_H_ #define SCIMBRIDGEDISPLAY_H_ #ifdef __cplusplus extern "C" { #endif const char *scim_bridge_display_get_name (); int scim_bridge_display_get_id (); int scim_bridge_display_get_screen_id (); #ifdef __cplusplus } #endif #endif /*SCIMBRIDGEDISPLAY_H_*/ Index: scim-bridge-attribute.c =================================================================== RCS file: /cvsroot/scim/scim-bridge/common/scim-bridge-attribute.c,v retrieving revision 1.2.2.1 retrieving revision 1.2.2.2 diff -C2 -d -r1.2.2.1 -r1.2.2.2 *** scim-bridge-attribute.c 20 May 2006 06:00:26 -0000 1.2.2.1 --- scim-bridge-attribute.c 30 May 2006 03:58:15 -0000 1.2.2.2 *************** *** 80,84 **** unsigned int scim_bridge_attribute_get_red (const ScimBridgeAttribute *attribute) { ! return ((unsigned int) (value && 0xFF0000)) >> 16; } --- 80,84 ---- unsigned int scim_bridge_attribute_get_red (const ScimBridgeAttribute *attribute) { ! return ((unsigned int) (attribute->value && 0xFF0000)) >> 16; } *************** *** 95,99 **** unsigned int scim_bridge_attribute_get_green (const ScimBridgeAttribute *attribute) { ! return ((unsigned int) (value && 0xFF0000)) >> 8; } --- 95,99 ---- unsigned int scim_bridge_attribute_get_green (const ScimBridgeAttribute *attribute) { ! return ((unsigned int) (attribute->value && 0xFF0000)) >> 8; } *************** *** 110,114 **** unsigned int scim_bridge_attribute_get_blue (const ScimBridgeAttribute *attribute) { ! return ((unsigned int) (value && 0xFF0000)) >> 0; } --- 110,114 ---- unsigned int scim_bridge_attribute_get_blue (const ScimBridgeAttribute *attribute) { ! return ((unsigned int) (attribute->value && 0xFF0000)) >> 0; } Index: scim-bridge-debug.h =================================================================== RCS file: /cvsroot/scim/scim-bridge/common/Attic/scim-bridge-debug.h,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** scim-bridge-debug.h 5 May 2006 13:36:11 -0000 1.1.2.1 --- scim-bridge-debug.h 30 May 2006 03:58:15 -0000 1.1.2.2 *************** *** 15,20 **** --- 15,29 ---- static const ScimBridgeDebugFlag SCIM_BRIDGE_DEBUG_SCIM = 1 << 4; + #ifdef __cplusplus + extern "C" + { + #endif + ScimBridgeDebugLevel scim_bridge_debug_get_level (); ScimBridgeDebugFlag scim_bridge_debug_get_flags (); + #ifdef __cplusplus + } + #endif + #endif /*SCIMBRIDGEDEBUG_H_*/ Index: scim-bridge-message.h =================================================================== RCS file: /cvsroot/scim/scim-bridge/common/scim-bridge-message.h,v retrieving revision 1.7.2.7 retrieving revision 1.7.2.8 diff -C2 -d -r1.7.2.7 -r1.7.2.8 *** scim-bridge-message.h 21 May 2006 05:35:46 -0000 1.7.2.7 --- scim-bridge-message.h 30 May 2006 03:58:15 -0000 1.7.2.8 *************** *** 21,24 **** --- 21,25 ---- static const char SCIM_BRIDGE_MESSAGE_FREE_IMCONTEXT[] = "free_imcontext"; static const char SCIM_BRIDGE_MESSAGE_RESET_IMCONTEXT[] = "reset_imcontext"; + static const char SCIM_BRIDGE_MESSAGE_IMCONTEXT_ALLOCATED[] = "imcontext_allocated"; static const char SCIM_BRIDGE_MESSAGE_FORWARD_KEYEVENT[] = "forward_keyevent"; *************** *** 47,53 **** static const char SCIM_BRIDGE_MESSAGE_COLOR[] = "color#"; ! static const char SCIM_BRIDGE_MESSAGE_UNDERLINE = "underline"; ! static const char SCIM_BRIDGE_MESSAGE_HIGHLIGHT = "highlight"; ! static const char SCIM_BRIDGE_MESSAGE_REVERSE = "reverse"; #ifdef __cplusplus --- 48,54 ---- static const char SCIM_BRIDGE_MESSAGE_COLOR[] = "color#"; ! static const char SCIM_BRIDGE_MESSAGE_UNDERLINE[] = "underline"; ! static const char SCIM_BRIDGE_MESSAGE_HIGHLIGHT[] = "highlight"; ! static const char SCIM_BRIDGE_MESSAGE_REVERSE[] = "reverse"; #ifdef __cplusplus *************** *** 57,68 **** /* Functions */ ! ScimBridgeMessage *scim_bridge_alloc_message (); void scim_bridge_free_message (ScimBridgeMessage *message); const char *scim_bridge_message_get_header (const ScimBridgeMessage *message); - void scim_bridge_message_set_header (ScimBridgeMessage *message, const char *header); size_t scim_bridge_message_get_argument_count (const ScimBridgeMessage *message); - void scim_bridge_message_set_argument_count (ScimBridgeMessage *message, size_t argument_count); const char *scim_bridge_message_get_argument (const ScimBridgeMessage *message, size_t index); --- 58,67 ---- /* Functions */ ! ScimBridgeMessage *scim_bridge_alloc_message (const char *header, size_t argument_count); void scim_bridge_free_message (ScimBridgeMessage *message); const char *scim_bridge_message_get_header (const ScimBridgeMessage *message); size_t scim_bridge_message_get_argument_count (const ScimBridgeMessage *message); const char *scim_bridge_message_get_argument (const ScimBridgeMessage *message, size_t index); Index: scim-bridge-attribute.h =================================================================== RCS file: /cvsroot/scim/scim-bridge/common/scim-bridge-attribute.h,v retrieving revision 1.3.2.1 retrieving revision 1.3.2.2 diff -C2 -d -r1.3.2.1 -r1.3.2.2 *** scim-bridge-attribute.h 20 May 2006 06:00:26 -0000 1.3.2.1 --- scim-bridge-attribute.h 30 May 2006 03:58:15 -0000 1.3.2.2 *************** *** 16,23 **** typedef struct _ScimBridgeAttribute ScimBridgeAttribute; ! static const ScimBridgeAttributeValue SCIM_BRIDGE_ATTRIBUTE_DECORATE_NONE; ! static const ScimBridgeAttributeValue SCIM_BRIDGE_ATTRIBUTE_DECORATE_UNDERLINE; ! static const ScimBridgeAttributeValue SCIM_BRIDGE_ATTRIBUTE_DECORATE_HIGHLIGHT; ! static const ScimBridgeAttributeValue SCIM_BRIDGE_ATTRIBUTE_DECORATE_REVERSE; #ifdef __cplusplus --- 16,23 ---- typedef struct _ScimBridgeAttribute ScimBridgeAttribute; ! const ScimBridgeAttributeValue SCIM_BRIDGE_ATTRIBUTE_DECORATE_NONE; ! const ScimBridgeAttributeValue SCIM_BRIDGE_ATTRIBUTE_DECORATE_UNDERLINE; ! const ScimBridgeAttributeValue SCIM_BRIDGE_ATTRIBUTE_DECORATE_HIGHLIGHT; ! const ScimBridgeAttributeValue SCIM_BRIDGE_ATTRIBUTE_DECORATE_REVERSE; #ifdef __cplusplus Index: scim-bridge-string.c =================================================================== RCS file: /cvsroot/scim/scim-bridge/common/scim-bridge-string.c,v retrieving revision 1.2.4.12 retrieving revision 1.2.4.13 diff -C2 -d -r1.2.4.12 -r1.2.4.13 *** scim-bridge-string.c 20 May 2006 16:07:47 -0000 1.2.4.12 --- scim-bridge-string.c 30 May 2006 03:58:15 -0000 1.2.4.13 *************** *** 15,20 **** if (str == NULL) { *wstr = NULL; ! scim_bridge_exception_set_message ("NULL pointer is given as the UTF8 string at scim_bridge_string_to_wstring"); ! scim_bridge_exception_set_code (NULL_POINTER_EXCEPTION); return RETVAL_FAILED; } --- 15,20 ---- if (str == NULL) { *wstr = NULL; ! scim_bridge_exception_occured (NULL_POINTER_EXCEPTION, "NULL pointer is given as the UTF8 string"); ! scim_bridge_exception_push_stack ("scim_bridge_string_to_wstring"); return RETVAL_FAILED; } *************** *** 77,82 **** if (str_index + 1 > str_length || ! ((b ^ 0x80) < 0x40)) { *wstr = NULL; ! scim_bridge_exception_set_message ("Invalid UTF8 string is given at scim_bridge_string_to_wstring"); ! scim_bridge_exception_set_code (INVALID_UTF8_EXCEPTION); return RETVAL_FAILED; } else { --- 77,82 ---- if (str_index + 1 > str_length || ! ((b ^ 0x80) < 0x40)) { *wstr = NULL; ! scim_bridge_exception_occured (INVALID_UTF8_EXCEPTION, "Invalid UTF8 string is given"); ! scim_bridge_exception_push_stack ("scim_bridge_string_to_wstring ()"); return RETVAL_FAILED; } else { *************** *** 91,96 **** && (a >= 0xe1 || b >= 0xa0))) { *wstr = NULL; ! scim_bridge_exception_set_message ("Invalid UTF8 string is given at scim_bridge_string_to_wstring"); ! scim_bridge_exception_set_code (INVALID_UTF8_EXCEPTION); return RETVAL_FAILED; } else { --- 91,96 ---- && (a >= 0xe1 || b >= 0xa0))) { *wstr = NULL; ! scim_bridge_exception_occured (INVALID_UTF8_EXCEPTION, "Invalid UTF8 string is given"); ! scim_bridge_exception_push_stack ("scim_bridge_string_to_wstring ()"); return RETVAL_FAILED; } else { *************** *** 106,111 **** && (d ^ 0x80) < 0x40 && (a >= 0xf1 || b >= 0x90))) { *wstr = NULL; ! scim_bridge_exception_set_message ("Invalid UTF8 string is given at scim_bridge_string_to_wstring"); ! scim_bridge_exception_set_code (INVALID_UTF8_EXCEPTION); return RETVAL_FAILED; } else { --- 106,111 ---- && (d ^ 0x80) < 0x40 && (a >= 0xf1 || b >= 0x90))) { *wstr = NULL; ! scim_bridge_exception_occured (INVALID_UTF8_EXCEPTION, "Invalid UTF8 string is given"); ! scim_bridge_exception_push_stack ("scim_bridge_string_to_wstring ()"); return RETVAL_FAILED; } else { *************** *** 123,128 **** && (a >= 0xf9 || b >= 0x88))) { *wstr = NULL; ! scim_bridge_exception_set_message ("Invalid UTF8 string is given at scim_bridge_string_to_wstring"); ! scim_bridge_exception_set_code (INVALID_UTF8_EXCEPTION); return RETVAL_FAILED; } else { --- 123,128 ---- && (a >= 0xf9 || b >= 0x88))) { *wstr = NULL; ! scim_bridge_exception_occured (INVALID_UTF8_EXCEPTION, "Invalid UTF8 string is given"); ! scim_bridge_exception_push_stack ("scim_bridge_string_to_wstring ()"); return RETVAL_FAILED; } else { *************** *** 141,146 **** && (f ^ 0x80) < 0x40 && (a >= 0xfd || b >= 0x84))) { *wstr = NULL; ! scim_bridge_exception_set_message ("Invalid UTF8 string is given at scim_bridge_string_to_wstring"); ! scim_bridge_exception_set_code (INVALID_UTF8_EXCEPTION); return RETVAL_FAILED; } else { --- 141,146 ---- && (f ^ 0x80) < 0x40 && (a >= 0xfd || b >= 0x84))) { *wstr = NULL; ! scim_bridge_exception_occured (INVALID_UTF8_EXCEPTION, "Invalid UTF8 string is given"); ! scim_bridge_exception_push_stack ("scim_bridge_string_to_wstring ()"); return RETVAL_FAILED; } else { *************** *** 155,160 **** default: *wstr = NULL; ! scim_bridge_exception_set_message ("Invalid UTF8 string is given at scim_bridge_string_to_wstring"); ! scim_bridge_exception_set_code (INVALID_UTF8_EXCEPTION); return RETVAL_FAILED; } --- 155,160 ---- default: *wstr = NULL; ! scim_bridge_exception_occured (INVALID_UTF8_EXCEPTION, "Invalid UTF8 string is given"); ! scim_bridge_exception_push_stack ("scim_bridge_string_to_wstring ()"); return RETVAL_FAILED; } *************** *** 174,179 **** if (wstr == NULL) { *str = NULL; ! scim_bridge_exception_set_message ("NULL pointer is given as the UCS6 string at scim_bridge_wstring_to_string"); ! scim_bridge_exception_set_code (NULL_POINTER_EXCEPTION); return RETVAL_FAILED; } --- 174,179 ---- if (wstr == NULL) { *str = NULL; ! scim_bridge_exception_occured (NULL_POINTER_EXCEPTION, "NULL pointer is given as the UCS6 string"); ! scim_bridge_exception_push_stack ("scim_bridge_wstring_to_string ()"); return RETVAL_FAILED; } *************** *** 208,213 **** if (wc_size_in_utf8 == 0) { *str = NULL; ! scim_bridge_exception_set_message ("Invalid wchar is given at scim_bridge_wstring_to_string: %lc", wc); ! scim_bridge_exception_set_code (INVALID_UCS6_EXCEPTION); return RETVAL_FAILED; } --- 208,213 ---- if (wc_size_in_utf8 == 0) { *str = NULL; ! scim_bridge_exception_occured (INVALID_UCS6_EXCEPTION, "Invalid wchar is given: %lc", wc); ! scim_bridge_exception_push_stack ("scim_bridge_wstring_to_string ()"); return RETVAL_FAILED; } *************** *** 243,248 **** if (wstr == NULL) { ! scim_bridge_exception_set_message ("NULL pointer is given as the UCS6 string at scim_bridge_wstring_get_length"); ! scim_bridge_exception_set_code (NULL_POINTER_EXCEPTION); return RETVAL_FAILED; } --- 243,248 ---- if (wstr == NULL) { ! scim_bridge_exception_occured (NULL_POINTER_EXCEPTION, "NULL pointer is given as the UCS6 string"); ! scim_bridge_exception_push_stack ("scim_bridge_wstring_get_length ()"); return RETVAL_FAILED; } *************** *** 260,265 **** if (str == NULL) { ! scim_bridge_exception_set_message ("NULL pointer is given as the UTF8 string at scim_bridge_string_get_length"); ! scim_bridge_exception_set_code (NULL_POINTER_EXCEPTION); return RETVAL_FAILED; } --- 260,265 ---- if (str == NULL) { ! scim_bridge_exception_occured (NULL_POINTER_EXCEPTION, "NULL pointer is given as the UTF8 string"); ! scim_bridge_exception_push_stack ("scim_bridge_string_get_length ()"); return RETVAL_FAILED; } *************** *** 274,279 **** if (str == NULL) { ! scim_bridge_exception_set_message ("NULL pointer is given as an string at scim_bridge_string_to_uint"); ! scim_bridge_exception_set_code (NULL_POINTER_EXCEPTION); return RETVAL_FAILED; } else { --- 274,279 ---- if (str == NULL) { ! scim_bridge_exception_occured (NULL_POINTER_EXCEPTION, "NULL pointer is given as a string"); ! scim_bridge_exception_push_stack ("scim_bridge_string_to_uint ()"); return RETVAL_FAILED; } else { *************** *** 315,320 **** break; default: ! scim_bridge_exception_set_message ("An invalid char is given at scim_bridge_string_to_uint: %c", str[i]); ! scim_bridge_exception_set_code (NUMBER_FORMAT_EXCEPTION); return RETVAL_FAILED; } --- 315,320 ---- break; default: ! scim_bridge_exception_occured (NUMBER_FORMAT_EXCEPTION, "An invalid char is given: %c", str[i]); ! scim_bridge_exception_push_stack ("scim_bridge_string_to_uint ()"); return RETVAL_FAILED; } *************** *** 322,327 **** value += digit; if (value > UINT_MAX) { ! scim_bridge_exception_set_message ("Over flow exception at scim_bridge_string_to_uint"); ! scim_bridge_exception_set_code (OVER_FLOW_EXCEPTION); return RETVAL_FAILED; } --- 322,327 ---- value += digit; if (value > UINT_MAX) { ! scim_bridge_exception_occured (OVER_FLOW_EXCEPTION, "Over flow exception"); ! scim_bridge_exception_push_stack ("scim_bridge_string_to_uint ()"); return RETVAL_FAILED; } *************** *** 339,344 **** if (str == NULL) { ! scim_bridge_exception_set_message ("NULL pointer is given as an string at scim_bridge_string_to_int"); ! scim_bridge_exception_set_code (NULL_POINTER_EXCEPTION); return RETVAL_FAILED; } else { --- 339,344 ---- if (str == NULL) { ! scim_bridge_exception_occured (NULL_POINTER_EXCEPTION, "NULL pointer is given as a string"); ! scim_bridge_exception_push_stack ("scim_bridge_string_to_int ()"); return RETVAL_FAILED; } else { *************** *** 354,359 **** negative = TRUE; } else { ! scim_bridge_exception_set_message ("An negative sign cannot be given at the middle of the number at scim_bridge_string_to_int: %s", str); ! scim_bridge_exception_set_code (NUMBER_FORMAT_EXCEPTION); return RETVAL_FAILED; } --- 354,359 ---- negative = TRUE; } else { ! scim_bridge_exception_occured (NUMBER_FORMAT_EXCEPTION, "negatives sign cannot be given at the middle of the number: %s", str); ! scim_bridge_exception_push_stack ("scim_bridge_string_to_int ()"); return RETVAL_FAILED; } *************** *** 389,394 **** break; default: ! scim_bridge_exception_set_message ("An invalid char is given at scim_bridge_string_to_int: %c", str[i]); ! scim_bridge_exception_set_code (NUMBER_FORMAT_EXCEPTION); return RETVAL_FAILED; } --- 389,394 ---- break; default: ! scim_bridge_exception_occured (NUMBER_FORMAT_EXCEPTION, "An invalid char is given: %c", str[i]); ! scim_bridge_exception_push_stack ("scim_bridge_string_to_int ()"); return RETVAL_FAILED; } *************** *** 397,408 **** if (!negative) { if (value > INT_MAX) { ! scim_bridge_exception_set_message ("Over flow exception at scim_bridge_string_to_int"); ! scim_bridge_exception_set_code (OVER_FLOW_EXCEPTION); return RETVAL_FAILED; } } else { if (-value < INT_MIN) { ! scim_bridge_exception_set_message ("Over flow exception at scim_bridge_string_to_int"); ! scim_bridge_exception_set_code (OVER_FLOW_EXCEPTION); return RETVAL_FAILED; } --- 397,408 ---- if (!negative) { if (value > INT_MAX) { ! scim_bridge_exception_occured (OVER_FLOW_EXCEPTION, "Over flow exception"); ! scim_bridge_exception_push_stack ("scim_bridge_string_to_uint ()"); return RETVAL_FAILED; } } else { if (-value < INT_MIN) { ! scim_bridge_exception_occured (OVER_FLOW_EXCEPTION, "Over flow exception"); ! scim_bridge_exception_push_stack ("scim_bridge_string_to_int ()"); return RETVAL_FAILED; } *************** *** 425,430 **** if (str == NULL) { ! scim_bridge_exception_set_message ("NULL pointer is given as an string at scim_bridge_string_to_boolean"); ! scim_bridge_exception_set_code (NULL_POINTER_EXCEPTION); return RETVAL_FAILED; } else { --- 425,430 ---- if (str == NULL) { ! scim_bridge_exception_occured (NULL_POINTER_EXCEPTION, "NULL pointer is given as a string"); ! scim_bridge_exception_push_stack ("scim_bridge_string_to_boolean ()"); return RETVAL_FAILED; } else { *************** *** 436,439 **** --- 436,441 ---- return RETVAL_SUCCEEDED; } else { + scim_bridge_exception_occured (NUMBER_FORMAT_EXCEPTION, "An invalid string is given: %s", str); + scim_bridge_exception_push_stack ("scim_bridge_string_to_boolean ()"); return RETVAL_FAILED; } Index: scim-bridge-message.c =================================================================== RCS file: /cvsroot/scim/scim-bridge/common/Attic/scim-bridge-message.c,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -C2 -d -r1.1.2.3 -r1.1.2.4 *** scim-bridge-message.c 21 May 2006 05:35:46 -0000 1.1.2.3 --- scim-bridge-message.c 30 May 2006 03:58:15 -0000 1.1.2.4 *************** *** 7,11 **** { char *header; - size_t header_capacity; char **arguments; --- 7,10 ---- *************** *** 17,29 **** /* Functions */ ! ScimBridgeMessage *scim_bridge_alloc_message () { ScimBridgeMessage *message = malloc (sizeof (ScimBridgeMessage)); ! message->header_capacity = 10; ! message->header = malloc (sizeof (char) * (message->header_capacity + 1)); ! message->header[0] = '\0'; ! ! message->argument_count = 0; message->argument_capacity = 3; message->arguments = malloc (sizeof (char*) * message->argument_capacity); --- 16,27 ---- /* Functions */ ! ScimBridgeMessage *scim_bridge_alloc_message (const char *header, size_t argument_count) { ScimBridgeMessage *message = malloc (sizeof (ScimBridgeMessage)); ! message->header = malloc (sizeof (char) * (strlen (header) + 1)); ! strcpy (message->header, header); ! ! message->argument_count = argument_count; message->argument_capacity = 3; message->arguments = malloc (sizeof (char*) * message->argument_capacity); *************** *** 59,74 **** - void scim_bridge_message_set_header (ScimBridgeMessage *message, const char *header) - { - const size_t header_length = strlen (header); - if (header_length >= message->header_capacity) { - message->header_capacity = header_length; - free (message->header); - message->header = malloc (sizeof (char) * (message->header_capacity + 1)); - } - strcpy (message->header, header); - } - - size_t scim_bridge_message_get_argument_count (const ScimBridgeMessage *message) { --- 57,60 ---- *************** *** 77,95 **** - void scim_bridge_message_set_argument_count (ScimBridgeMessage *message, size_t argument_count) - { - message->arguments = realloc (sizeof (char*) * argument_count); - message->argument_capacities = realloc (sizeof (size_t) * argument_count); - int i; - for (i = message->argument_count; i < argument_count; ++i) { - message->argument_capacities[i] = 10; - message->arguments[i] = malloc (sizeof (char) * (message->argument_capacities[i] + 1)); - message->arguments[i][0] = '\0'; - } - - message->argument_count = argument_count; - } - - const char *scim_bridge_message_get_argument (const ScimBridgeMessage *message, size_t index) { --- 63,66 ---- *************** *** 97,102 **** if (index >= message->argument_count) { ! scim_bridge_exception_set_message ("Out of bounds exception at scim_bridge_message_get_argument"); ! scim_bridge_exception_set_code (OUT_OF_BOUNDS_EXCEPTION); return NULL; } else { --- 68,73 ---- if (index >= message->argument_count) { ! scim_bridge_exception_occured (OUT_OF_BOUNDS_EXCEPTION, "Out of bounds exception"); ! scim_bridge_exception_push_stack ("scim_bridge_message_get_argument ()"); return NULL; } else { *************** *** 111,116 **** if (index >= message->argument_count) { ! scim_bridge_exception_set_message ("Out of bounds exception at scim_bridge_message_get_argument"); ! scim_bridge_exception_set_code (OUT_OF_BOUNDS_EXCEPTION); return RETVAL_FAILED; } else { --- 82,87 ---- if (index >= message->argument_count) { ! scim_bridge_exception_occured (OUT_OF_BOUNDS_EXCEPTION, "Out of bounds exception"); ! scim_bridge_exception_push_stack ("scim_bridge_message_set_argument ()"); return RETVAL_FAILED; } else { --- scim-bridge-debug.c DELETED --- --- scim-bridge-list.c DELETED --- --- scim-bridge-environment.h DELETED --- Index: scim-bridge-exception.h =================================================================== RCS file: /cvsroot/scim/scim-bridge/common/scim-bridge-exception.h,v retrieving revision 1.4.2.9 retrieving revision 1.4.2.10 diff -C2 -d -r1.4.2.9 -r1.4.2.10 *** scim-bridge-exception.h 27 May 2006 15:43:04 -0000 1.4.2.9 --- scim-bridge-exception.h 30 May 2006 03:58:15 -0000 1.4.2.10 *************** *** 6,19 **** typedef enum _ScimBridgeExceptionCode { ! INDEX_OUT_OF_BOUNDS_EXCEPTION, ! RANGE_OUT_OF_BOUNDS_EXCEPTION, NULL_POINTER_EXCEPTION, ILLEGAL_STATE_EXCEPTION, INVALID_ARGUMENT_EXCEPTION, IO_EXCEPTION, - OCCUPIED_EXCEPTION, NUMBER_FORMAT_EXCEPTION, NO_SUCH_ELEMENT_EXCEPTION, ! ESCAPE_EXCEPTION, UNKNOWN_VALUE_EXCEPTION, INVALID_UTF8_EXCEPTION, --- 6,17 ---- typedef enum _ScimBridgeExceptionCode { ! OUT_OF_BOUNDS_EXCEPTION, NULL_POINTER_EXCEPTION, ILLEGAL_STATE_EXCEPTION, INVALID_ARGUMENT_EXCEPTION, IO_EXCEPTION, NUMBER_FORMAT_EXCEPTION, NO_SUCH_ELEMENT_EXCEPTION, ! INVALID_ESCAPE_EXCEPTION, UNKNOWN_VALUE_EXCEPTION, INVALID_UTF8_EXCEPTION, *************** *** 21,25 **** NO_ENOUGH_BUFFER_EXCEPTION, OVER_FLOW_EXCEPTION, - NULL_POINTER_EXCEPTION, UNKNOWN_EXCEPTION, NO_EXCEPTION --- 19,22 ---- *************** *** 33,41 **** void scim_bridge_exception_clear (); ! const char *scim_bridge_exception_get_message (); ! void scim_bridge_exception_set_message (const char *message); ScimBridgeExceptionCode scim_bridge_exception_get_code (); - void scim_bridge_exception_set_code (ScimBridgeExceptionCode code); #ifdef __cplusplus --- 30,41 ---- void scim_bridge_exception_clear (); ! void scim_bridge_exception_occured (ScimBridgeExceptionCode code, const char *message, ...); ! void scim_bridge_exception_display (); ! ! void scim_bridge_exception_push_stack (const char *stack); ! const char *scim_bridge_exception_poll_stack (); + const char *scim_bridge_exception_get_message (); ScimBridgeExceptionCode scim_bridge_exception_get_code (); #ifdef __cplusplus --- NEW FILE: scim-bridge-path.h --- #ifndef SCIMBRIDGEPATH_H_ #define SCIMBRIDGEPATH_H_ #include "scim-bridge.h" #ifdef __cplusplus extern "C" { #endif const char *scim_bridge_path_get_socket (); const char *scim_bridge_path_get_lockfile (); #ifdef __cplusplus } #endif #endif /*SCIMBRIDGEPATH_H_*/ Index: scim-bridge-exception.c =================================================================== RCS file: /cvsroot/scim/scim-bridge/common/scim-bridge-exception.c,v retrieving revision 1.4.2.4 retrieving revision 1.4.2.5 diff -C2 -d -r1.4.2.4 -r1.4.2.5 *** scim-bridge-exception.c 16 May 2006 11:17:28 -0000 1.4.2.4 --- scim-bridge-exception.c 30 May 2006 03:58:15 -0000 1.4.2.5 *************** *** 1,4 **** --- 1,6 ---- #include <assert.h> #include <pthread.h> + #include <stdarg.h> + #include <stdio.h> #include <string.h> *************** *** 9,14 **** --- 11,23 ---- { ScimBridgeExceptionCode code; + char *message; size_t message_capacity; + + char **stacks; + size_t *stack_line_capacities; + size_t stack_capacity; + size_t stack_begin; + size_t stack_end; } ScimBridgeException; *************** *** 26,29 **** --- 35,49 ---- exception->message[0] = '\0'; + exception->stack_begin = 0; + exception->stack_end = 0; + exception->stack_capacity = 10; + exception->stacks = malloc (sizeof (char*) * exception->stack_capacity); + int i; + for (i = 0; i < exception->stack_capacity; ++i) { + exception->stack_line_capacities[i] = 25; + exception->stacks[i] = malloc (sizeof (char) * (exception->stack_line_capacities[i] + 1)); + exception->stacks[i][0] = '\0'; + } + return exception; } *************** *** 32,36 **** --- 52,63 ---- void do_free_exception (ScimBridgeException *exception) { + int i; + for (i = 0; i < exception->stack_capacity; ++i) { + free (exception->stacks[i]); + free (exception->stack_line_capacities[i]; + } free (exception->message); + free (exception->stacks); + free (exception->stack_capacities); free (exception); } *************** *** 39,45 **** ScimBridgeException *do_get_exception () { ! if (static_initializer == PTHREAD_ONCE_INIT) { ! pthread_once (&static_initializer, static_initialize); ! } ScimBridgeException *exception = (ScimBridgeException*) pthread_getspecific (exception_key); --- 66,70 ---- ScimBridgeException *do_get_exception () { ! pthread_once (&static_initializer, static_initialize); ScimBridgeException *exception = (ScimBridgeException*) pthread_getspecific (exception_key); *************** *** 72,111 **** exception->code = NO_EXCEPTION; exception->message[0] = '\0'; } ! const ScimBridgeString *scim_bridge_exception_get_message () { ScimBridgeException *exception = do_get_exception (); ! return exception->message; } ! void scim_bridge_exception_set_message (const char *message) { ScimBridgeException *exception = do_get_exception (); ! const size_t message_length = strlen (message); ! if (message_length > exception->message_length) { ! free (exception->message); ! exception->message_capacity = message_length; ! exception->message = malloc (sizeof (char) * (exception->message_capacity + 1)); } ! strcpy (exception->message, message); } ! ScimBridgeExceptionCode scim_bridge_exception_get_code () { ScimBridgeException *exception = do_get_exception (); ! return exception->code; } ! void ScimBridgeExceptionCode scim_bridge_exception_set_code (ScimBridgeExceptionCode code) { ! assert (code != NO_EXCEPTION); ScimBridgeException *exception = do_get_exception (); ! exception->code = code; } --- 97,239 ---- exception->code = NO_EXCEPTION; exception->message[0] = '\0'; + exception->stack_begin = 0; + exception->stack_end = 0; } ! void scim_bridge_exception_occured (const char *message, ScimBridgeExceptionCode code, ...) { + assert (code != NO_EXCEPTION); + ScimBridgeException *exception = do_get_exception (); ! ! exception->stack_begin = 0; ! exception->stack_end = 0; ! ! exception->code = code; ! ! va_list ap; ! va_start (ap, code); ! const size_t message_length = vsnprintf (NULL, 0, message, ap) - 1; ! va_end (ap); ! ! if (message_length > exception->message_length) { ! free (exception->message); ! exception->message_capacity = message_length; ! exception->message = malloc (sizeof (char) * (exception->message_capacity + 1)); ! } ! va_start (ap, code); ! vsnprintf (exception->message, exception->message_capacity, message, ap); ! va_end (ap); } ! void scim_bridge_exception_push_stack (const char *stack_line) { ScimBridgeException *exception = do_get_exception (); ! if (exception->stack_end >= exception->stack_capacity) { ! ++exception->stack_capacity; ! exception->stacks = realloc (exception->stacks, sizeof (const char**) * exception->stack_capacity); ! exception->stack_line_capacities = realloc (exception->stack_line_capacities, sizeof (size_t) * exception->stack_capacity); ! ! exception->stack_line_capacities[exception->stack_end] = 25; ! exception->stacks[exception->stack_end] = malloc (sizeof (char*) * (exception->stack_line_capacities[i] + 1)); } ! ! const size_t stack_line_length = strlen (stack_line); ! if (stack_line_length > exception->stack_line_capacities[exception->stack_end]) { ! exception->stack_line_capacities[exception->stack_end] = stack_line_length; ! free (exception->stacks[exception->stack_end]); ! exception->stacks[exception->stack_end] = malloc (sizeof (char*) * (exception->stack_line_capacities[i] + 1)); ! } ! strcpy (exception->stacks[exception->stack_end], stack_line); ! ++exception->stack_end; } ! const char *scim_bridge_exception_poll_stack () { ScimBridgeException *exception = do_get_exception (); ! ! if (stack_begin < stack_end) { ! const char *stack = exception->stacks[exception->stack_begin]; ! ++exception->stack_begin; ! return stack; ! } else { ! return NULL; ! } } ! const char *scim_bridge_exception_get_message () { ! ScimBridgeException *exception = do_get_exception (); ! return exception->message; ! } ! + ScimBridgeExceptionCode scim_bridge_exception_get_code () + { ScimBridgeException *exception = do_get_exception (); ! return exception->code; ! } ! ! void scim_bridge_exception_display () ! { ! ScimBridgeException *exception = do_get_exception (); ! ! switch (exception->code) { ! case OUT_OF_BOUNDS_EXCEPTION: ! scim_bridge_perror ("Out of bounds exception has been occured: "); ! break; ! case NULL_POINTER_EXCEPTION: ! scim_bridge_perror ("Null pointer exception has been occured: "); ! break; ! case ILLEGAL_STATE_EXCEPTION: ! scim_bridge_perror ("Illegal state exception has been occured: "); ! break; ! case INVALID_ARGUMENT_EXCEPTION: ! scim_bridge_perror ("Invalid argument exception has been occured: "); ! break; ! case IO_EXCEPTION: ! scim_bridge_perror ("IO exception has been occured: "); ! break; ! case NUMBER_FORMAT_EXCEPTION: ! scim_bridge_perror ("Number format exception has been occured: "); ! break; ! case NO_SUCH_ELEMENT_EXCEPTION: ! scim_bridge_perror ("No such element exception has been occured: "); ! break; ! case INVALID_ESCAPE_EXCEPTION: ! scim_bridge_perror ("Invalid escape element exception has been occured: "); ! break; ! case UNEXPECTED_VALUE_EXCEPTION: ! scim_bridge_perror ("Unexpected value element exception has been occured: "); ! break; ! case INVALID_UTF8_EXCEPTION: ! scim_bridge_perror ("Invalid utf8 exception has been occured: "); ! break; ! case INVALID_UCS6_EXCEPTION: ! scim_bridge_perror ("Invalid ucs6 exception has been occured: "); ! break; ! case NO_ENOUGH_BUFFER_EXCEPTION: ! scim_bridge_perror ("No enough buffer exception has been occured: "); ! break; ! case OVER_FLOW_EXCEPTION: ! scim_bridge_perror ("Overflow exception has been occured: "); ! break; ! case NO_EXCEPTION: ! break; ! case UNKNOWN_EXCEPTION: ! default: ! scim_bridge_perror ("Unknown exception has been occured: "); ! break; ! } ! scim_bridge_perrorln ("%s", exception->message); ! scim_bridge_perrorln ("stacktrace: "); ! int i; ! for (i = exception->stack_begin; i < exception->stack_end; ++i) { ! scim_bridge_perrorln (" at %s", exception->stacks[i]); ! } } Index: scim-bridge-environment.c =================================================================== RCS file: /cvsroot/scim/scim-bridge/common/scim-bridge-environment.c,v retrieving revision 1.11.2.2 retrieving revision 1.11.2.3 diff -C2 -d -r1.11.2.2 -r1.11.2.3 *** scim-bridge-environment.c 6 May 2006 07:12:36 -0000 1.11.2.2 --- scim-bridge-environment.c 30 May 2006 03:58:15 -0000 1.11.2.3 *************** *** 1,3 **** --- 1,4 ---- #include <alloca.h> + #include <pthread.h> #include <pwd.h> #include <stdio.h> *************** *** 8,13 **** #include <sys/types.h> ! #include "scim-bridge-environment.h" #include "scim-bridge-output.h" /* Private variables */ --- 9,16 ---- #include <sys/types.h> ! #include "scim-bridge-debug.h" ! #include "scim-bridge-display.h" #include "scim-bridge-output.h" + #include "scim-bridge-path.h" /* Private variables */ *************** *** 23,39 **** static char *display_name = NULL; ! /* Private function */ ! static void init_display_name () ! { ! if (display_name != NULL) return; ! const char *env_display = getenv ("DISPLAY"); ! const char *env_display_number = getenv (SCIM_BRIDGE_ENV_NAME_DISPLAY_NUMBER); ! const char *env_screen_number = getenv (SCIM_BRIDGE_ENV_NAME_SCREEN_NUMBER); ! if (env_display_number != NULL || env_screen_number != NULL) { ! display_number = atoi (env_display_number); ! screen_number = atoi (env_screen_number); ! } if ((display_number < 0 || screen_number < 0) && env_display != NULL) { --- 26,41 ---- static char *display_name = NULL; ! static char *lockfile_path = NULL; ! static char *socket_path = NULL; ! ! static ScimBridgeDebugLevel debug_level; ! static ScimBridgeDebugFlags debug_flags; ! static pthread_once_t static_initializer = PTHREAD_ONCE_INIT; ! /* Private function */ ! static void static_initialize () ! { ! display_name = getenv ("DISPLAY"); if ((display_number < 0 || screen_number < 0) && env_display != NULL) { *************** *** 82,228 **** } ! if (display_number < 0 || screen_number < 0) { ! scim_bridge_perrorln ("Cannot get the display"); ! abort (); ! } ! ! display_name = malloc (sizeof (char) * (1 + (display_number / 10) + 1 + 1 + (screen_number / 10) + 1 + 2)) + sizeof (char); ! sprintf (display_name, ":%d.%d", display_number, screen_number); ! } ! ! ! /* Implementations */ ! const char *scim_bridge_environment_get_lockfile_path () ! { ! static char *lockfile_path = NULL; ! ! if (lockfile_path == NULL) { ! init_display_name (); ! const uid_t uid = getuid (); ! const size_t str_len = strlen (LOCKFILE_DIR) + 1 + strlen (LOCKFILE_NAME) + 1 + ((size_t) (display_number / 10) + 1) + 1 + ((size_t) (screen_number / 10) + 1) + 1 + ((size_t) (uid / 10) + 1); ! lockfile_path = malloc (sizeof (char) * (str_len + 2)) + sizeof (char); sprintf (lockfile_path, "%s/%s-%d-%d-%d", LOCKFILE_DIR, LOCKFILE_NAME, display_number,screen_number, uid); ! } ! ! return lockfile_path; ! } ! ! ! const char *scim_bridge_environment_get_agent_to_client_socket_path () ! { ! static char *socket_path = NULL; ! ! if (socket_path == NULL) { ! init_display_name (); ! ! const uid_t uid = getuid (); ! const size_t str_len = strlen (SOCKET_DIR) + 1 + strlen (AGENT_TO_CLIENT_SOCKET_NAME) + 1 + ((size_t) (display_number / 10) + 1) + 1 + ((size_t) (screen_number / 10) + 1) + 1 + ((size_t) (uid / 10) + 1); ! socket_path = malloc (sizeof (char) * (str_len + 2)) + sizeof (char); ! sprintf (socket_path, "%s/%s-%d-%d-%d", SOCKET_DIR, AGENT_TO_CLIENT_SOCKET_NAME, display_number, screen_number, uid); } ! ! return socket_path; } ! const char *scim_bridge_environment_get_client_to_agent_socket_path () { ! static char *socket_path = NULL; ! ! if (socket_path == NULL) { ! init_display_name (); ! ! const uid_t uid = getuid (); ! const size_t str_len = strlen (SOCKET_DIR) + 1 + strlen (CLIENT_TO_AGENT_SOCKET_NAME) ! + 1 + ((size_t) (display_number / 10) + 1) + 1 + ((size_t) (screen_number / 10) + 1) + 1 + ((size_t) (uid / 10) + 1); - socket_path = malloc (sizeof (char) * (str_len + 2)) + sizeof (char); - sprintf (socket_path, "%s/%s-%d-%d-%d", SOCKET_DIR, CLIENT_TO_AGENT_SOCKET_NAME, display_number, screen_number, uid); - } return socket_path; } ! const char *scim_bridge_environment_get_display_name () { ! init_display_name (); return display_name; } ! unsigned int scim_bridge_environment_get_display_number () { ! init_display_name (); return display_number; } ! unsigned int scim_bridge_environment_get_screen_number () { ! init_display_name (); return screen_number; } ! ! ScimBridgeDebugLevel scim_bridge_environment_get_debug_level () { ! static ScimBridgeDebugLevel debug_level = -1; ! ! if (debug_level == -1) { ! const char *env_debug_level = getenv (SCIM_BRIDGE_ENV_NAME_DEBUG_LEVEL); ! if (env_debug_level != NULL) debug_level = atoi (env_debug_level); ! if (debug_level == -1) debug_level = 0; ! if (debug_level > 9) debug_level = 9; ! } ! return debug_level; } ! ! ScimBridgeDebugFlag scim_bridge_environment_get_debug_flags () { ! static ScimBridgeDebugFlag debug_flags; ! static int first_run = 1; ! ! if (first_run) { ! first_run = 0; ! const char *env_debug_flags = getenv (SCIM_BRIDGE_ENV_NAME_DEBUG_FLAGS); ! if (env_debug_flags == NULL) { ! debug_flags = SCIM_BRIDGE_DEBUG_NONE; ! return debug_flags; ! } ! ! char *flags_str = alloca (sizeof (char) * (strlen (env_debug_flags) + 1)); ! strcpy (flags_str, env_debug_flags); ! ! char *save_ptr; ! char *token = strtok_r (flags_str, " \t", &save_ptr); ! while (token != NULL) { ! if (strcasecmp (token, SCIM_BRIDGE_ENV_VALUE_DEBUG_FLAGS_NONE) == 0) { ! debug_flags = SCIM_BRIDGE_DEBUG_NONE; ! } else if (strcasecmp (token, SCIM_BRIDGE_ENV_VALUE_DEBUG_FLAGS_ALL) == 0) { ! debug_flags = SCIM_BRIDGE_DEBUG_ALL; ! } else if (strcasecmp (token, SCIM_BRIDGE_ENV_VALUE_DEBUG_FLAGS_MESSENGER) == 0) { ! debug_flags |= SCIM_BRIDGE_DEBUG_MESSENGER; ! } else if (strcasecmp (token, SCIM_BRIDGE_ENV_VALUE_DEBUG_FLAGS_IMCONTEXT) == 0) { ! debug_flags |= SCIM_BRIDGE_DEBUG_IMCONTEXT; ! } else if (strcasecmp (token, SCIM_BRIDGE_ENV_VALUE_DEBUG_FLAGS_CLIENT) == 0) { ! debug_flags |= SCIM_BRIDGE_DEBUG_CLIENT; ! } else if (strcasecmp (token, SCIM_BRIDGE_ENV_VALUE_DEBUG_FLAGS_AGENT) == 0) { ! debug_flags |= SCIM_BRIDGE_DEBUG_AGENT; ! } else if (strcasecmp (token, SCIM_BRIDGE_ENV_VALUE_DEBUG_FLAGS_SCIM) == 0) { ! debug_flags |= SCIM_BRIDGE_DEBUG_SCIM; ! } ! ! token = strtok_r (NULL, " \t", &save_ptr); ! } ! } ! return debug_flags; ! } --- 84,190 ---- } ! if (display_number < 0 || screen_number < 0) scim_bridge_perrorln ("Invalid environmental variable: DISPLAY = %s", env_display == NULL ? "NULL":env_display); ! ! ! if (display_name != NULL) { const uid_t uid = getuid (); ! const size_t lockfile_path_length = strlen (LOCKFILE_DIR) + 1 + strlen (LOCKFILE_NAME) + 1 + ((size_t) (display_number / 10) + 1) + 1 + ((size_t) (screen_number / 10) + 1) + 1 + ((size_t) (uid / 10) + 1); ! lockfile_path = malloc (sizeof (char) * (lockfile_path_length + 2)) + sizeof (char); sprintf (lockfile_path, "%s/%s-%d-%d-%d", LOCKFILE_DIR, LOCKFILE_NAME, display_number,screen_number, uid); ! ! const size_t socket_path_length = strlen (SOCKET_DIR) + 1 + strlen (SOCKET_NAME) + 1 + ((size_t) (display_number / 10) + 1) + 1 + ((size_t) (screen_number / 10) + 1) + 1 + ((size_t) (uid / 10) + 1); ! socket_path = malloc (sizeof (char) * (socket_path_length + 2)) + sizeof (char); ! sprintf (socket_path, "%s/%s-%d-%d-%d", SOCKET_DIR, SOCKET_NAME, display_number, screen_number, uid); ! } else { ! lockfile_path = NULL; ! socket_path = NULL; } ! ! unsigned int debug_level_uint; ! char *debug_level_str = getenv ("scim-bridge.debug.level"); ! if (debug_level_str == NULL || scim_bridge_string_to_uint (&debug_level_uint, debug_level_str)) { ! debug_level = 0; ! } else { ! debug_level = debug_level_uint; ! if (debug_level > 10) debug_level = 10; ! } ! free (debug_level_str); ! ! debug_flags = SCIM_BRIDGE_DEBUG_NONE; ! char *debug_flags_str = getenv ("scim-bridge.debug.flags"); ! char *p; ! char *token = NULL; ! do { ! token = strtok_r (debug_flags, " ", &p); ! if (token == NULL) { ! break; ! } else if (strncmp (token, "messenger") == 0) { ! debug_flags |= SCIM_BRIDGE_DEBUG_MESSENGER; ! } else if (strncmp (token, "agent") == 0) { ! debug_flags |= SCIM_BRIDGE_DEBUG_AGENT; ! } else if (strncmp (token, "imcontext") == 0) { ! debug_flags |= SCIM_BRIDGE_DEBUG_IMCONTEXT; ! } else if (strncmp (token, "client") == 0) { ! debug_flags |= SCIM_BRIDGE_DEBUG_CLIENT; ! } else if (strncmp (token, "scim") == 0) { ! debug_flags |= SCIM_BRIDGE_DEBUG_SCIM; ! } else if (strncmp (token, "all") == 0) { ! debug_flags = SCIM_BRIDGE_DEBUG_ALL; ! } else if (strncmp (token, "none") == 0) { ! debug_flags = SCIM_BRIDGE_DEBUG_NONE; ! } ! } while (token != NULL); ! free (debug_flags_str); } ! /* Implementations */ ! const char *scim_bridge_path_get_lockfile () { ! pthread_once (&static_initializer, &static_initialize); ! return lockfile_path; ! } + const char *scim_bridge_path_get_socket () + { + pthread_once (&static_initializer, &static_initialize); return socket_path; } ! const char *scim_bridge_display_get_name () { ! pthread_once (&static_initializer, &static_initialize); return display_name; } ! int scim_bridge_display_get_id () { ! pthread_once (&static_initializer, &static_initialize); return display_number; } ! int scim_bridge_display_get_screen_id () { ! pthread_once (&static_initializer, &static_initialize); return screen_number; } ! ScimBridgeDebugLevel scim_bridge_debug_get_level () { ! pthread_once (&static_initializer, &static_initialize); return debug_level; } ! ScimBridgeDebugFlag scim_bridge_debug_get_flags () { ! pthread_once (&static_initializer, &static_initialize); return debug_flags; ! } \ No newline at end of file --- scim-bridge-list.h DELETED --- Index: scim-bridge-messenger.c =================================================================== RCS file: /cvsroot/scim/scim-bridge/common/scim-bridge-messenger.c,v retrieving revision 1.14.2.8 retrieving revision 1.14.2.9 diff -C2 -d -r1.14.2.8 -r1.14.2.9 *** scim-bridge-messenger.c 28 May 2006 09:37:52 -0000 1.14.2.8 --- scim-bridge-messenger.c 30 May 2006 03:58:15 -0000 1.14.2.9 *************** *** 24,27 **** --- 24,28 ---- }; + /* Functions */ retval scim_bridge_messenger_send (ScimBridgeMessenger *messenger, const ScimBridgeMessage *message) *************** *** 60,70 **** case '\n': case '\\': - buffer[buffer_index] = '\\'; - buffer[buffer_index + 1] = str[j]; - buffer_index += 2; - break; case ' ': buffer[buffer_index] = '\\'; ! buffer[buffer_index + 1] = 's'; buffer_index += 2; break; --- 61,67 ---- case '\n': case '\\': case ' ': buffer[buffer_index] = '\\'; ! buffer[buffer_index + 1] = str[j]; buffer_index += 2; break; *************** *** 82,87 **** while (remain_size > 0) { if (messenger->socket < 0) { ! scim_bridge_exception_set_code (IO_EXCEPTION); ! scim_bridge_exception_set_message ("Invalid socket fd at scim_bridge_messenger_send"); free (buffer); --- 79,84 ---- while (remain_size > 0) { if (messenger->socket < 0) { ! scim_bridge_exception_occured (IO_EXCEPTION, "Invalid socket fd at scim_bridge_messenger_send"); ! scim_bridge_exception_push_stack ("scim_bridge_messenger_send ()"); free (buffer); *************** *** 92,97 **** if (writte_size <= 0) { ! scim_bridge_exception_set_code (IO_EXCEPTION); ! scim_bridge_exception_set_message ("IOException at scim_bridge_messenger_send: %s", errno != 0 ? strerror (errno):"unknown reason"); free (buffer); --- 89,94 ---- if (writte_size <= 0) { ! scim_bridge_exception_occured (IO_EXCEPTION, "IOException at scim_bridge_messenger_send: %s", errno != 0 ? strerror (errno):"unknown reason"); ! scim_bridge_exception_push_stack ("scim_bridge_messenger_send ()"); free (buffer); *************** *** 130,135 **** if (messenger->socket < 0) { ! scim_bridge_exception_set_code (IO_EXCEPTION); ! scim_bridge_exception_set_message ("Invalid socket fd at scim_bridge_messenger_receive"); scim_bridge_free_message (message); --- 127,132 ---- if (messenger->socket < 0) { ! scim_bridge_exception_occured (IO_EXCEPTION, "Invalid socket fd at scim_bridge_messenger_receive"); ! scim_bridge_exception_push_stack ("scim_bridge_messenger_receive ()"); scim_bridge_free_message (message); *************** *** 141,146 **** if (read_size <= 0) { ! scim_bridge_exception_set_code (IO_EXCEPTION); ! scim_bridge_exception_set_message ("IOException at scim_bridge_messenger_receive: %s", errno != 0 ? strerror (errno):"unknown reason"); scim_bridge_free_message (message); --- 138,143 ---- if (read_size <= 0) { ! scim_bridge_exception_occured (IO_EXCEPTION, "IOException at scim_bridge_messenger_receive: %s", errno != 0 ? strerror (errno):"unknown reason"); ! scim_bridge_exception_push_stack ("scim_bridge_messenger_receive ()"); scim_bridge_free_message (message); *************** *** 177,196 **** } } else { ! if (escaped) { ! if (c == 's') { ! buffer[buffer_index] = ' '; ! ++buffer_index; ! } else if (c = 'n') { ! buffer[buffer_index] = '\n'; ! ++buffer_index; ! } else { ! buffer[buffer_index] = c; ! ++buffer_index; ! } ! escaped = FALSE; ! } else { ! buffer[buffer_index] = c; ! ++buffer_index; ! } } --- 174,180 ---- } } else { ! buffer[buffer_index] = c; ! ++buffer_index; ! escaped = FALSE; } |