spif_bool_t spif_eterm_action_init(spif_eterm_action_t self) { spif_obj_init(SPIF_OBJ(self)); spif_obj_set_class(SPIF_OBJ(self), SPIF_CLASS_VAR(eterm_action)); self->type = ETERM_ACTION_NONE; self->modifiers = ETERM_MOD_NONE; self->button = ETERM_BUTTON_NONE; self->keysym = ETERM_KEYSYM_NONE; self->handler = (spif_eterm_action_handler_t) NULL; self->parameter = (spif_eterm_action_parameter_t) NULL; return TRUE; }
spif_bool_t spif_tok_init_from_fd(spif_tok_t self, int fd) { ASSERT_RVAL(!SPIF_TOK_ISNULL(self), FALSE); if (!spif_obj_init(SPIF_OBJ(self))) { return FALSE; } else if (!spif_obj_set_class(SPIF_OBJ(self), SPIF_CLASS_VAR(tok))) { return FALSE; } self->src = spif_str_new_from_fd(fd); self->quote = '\''; self->dquote = '\"'; self->escape = '\\'; self->tokens = (spif_list_t) NULL; self->sep = (spif_str_t) NULL; return ((SPIF_STR_ISNULL(self->src)) ? (FALSE) : (TRUE)); }
spif_bool_t spif_tok_init(spif_tok_t self) { ASSERT_RVAL(!SPIF_TOK_ISNULL(self), FALSE); if (!spif_obj_init(SPIF_OBJ(self))) { return FALSE; } else if (!spif_obj_set_class(SPIF_OBJ(self), SPIF_CLASS_VAR(tok))) { return FALSE; } self->src = (spif_str_t) NULL; self->quote = '\''; self->dquote = '\"'; self->escape = '\\'; self->tokens = (spif_list_t) NULL; self->sep = (spif_str_t) NULL; return TRUE; }
spif_bool_t spif_eterm_action_init_from_data(spif_eterm_action_t self, spif_eterm_action_type_t type, spif_ushort_t modifiers, spif_uchar_t button, KeySym keysym, spif_ptr_t param) { spif_obj_init(SPIF_OBJ(self)); spif_obj_set_class(SPIF_OBJ(self), SPIF_CLASS_VAR(eterm_action)); self->type = type; self->modifiers = modifiers; self->button = button; self->keysym = keysym; switch (type) { case ETERM_ACTION_STRING: self->handler = (spif_eterm_action_handler_t) action_handle_string; self->parameter = (spif_obj_t) spif_str_new_from_ptr(param); /*parse_escaped_string(self->parameter.string); */ break; case ETERM_ACTION_ECHO: self->handler = (spif_eterm_action_handler_t) action_handle_echo; self->parameter = (spif_obj_t) spif_str_new_from_ptr(param); /*parse_escaped_string(self->parameter.string); */ break; case ETERM_ACTION_SCRIPT: self->handler = (spif_eterm_action_handler_t) action_handle_script; self->parameter = (spif_obj_t) spif_str_new_from_ptr(param); break; case ETERM_ACTION_MENU: self->handler = (spif_eterm_action_handler_t) action_handle_menu; /*self->parameter.menu = (menu_t *) param; */ break; default: break; } D_ACTIONS(("Added action. modifiers == 0x%08x, button == %d, keysym == 0x%08x\n", self->modifiers, self->button, (unsigned) self->keysym)); return TRUE; }