Lines Matching defs:c_smob
133 command_smob *c_smob = (command_smob *) SCM_SMOB_DATA (self);
138 c_smob->name != NULL ? c_smob->name : "{unnamed}");
140 if (! cmdscm_is_valid (c_smob))
158 command_smob *c_smob = (command_smob *)
162 memset (c_smob, 0, sizeof (*c_smob));
163 c_smob->cmd_class = no_class;
164 c_smob->invoke = SCM_BOOL_F;
165 c_smob->complete = SCM_BOOL_F;
166 c_scm = scm_new_smob (command_smob_tag, (scm_t_bits) c_smob);
167 c_smob->containing_scm = c_scm;
168 gdbscm_init_gsmob (&c_smob->base);
173 /* Clear the COMMAND pointer in C_SMOB and unprotect the object from GC. */
176 cmdscm_release_command (command_smob *c_smob)
178 c_smob->command = NULL;
179 scm_gc_unprotect_object (c_smob->containing_scm);
218 command_smob *c_smob = (command_smob *) SCM_SMOB_DATA (c_scm);
220 return c_smob;
223 /* Return non-zero if command C_SMOB is valid. */
226 cmdscm_is_valid (command_smob *c_smob)
228 return c_smob->command != NULL;
238 command_smob *c_smob
241 if (!cmdscm_is_valid (c_smob))
247 return c_smob;
259 command_smob *c_smob
262 return scm_from_bool (cmdscm_is_valid (c_smob));
288 command_smob *c_smob = (command_smob *) context;
290 cmdscm_release_command (c_smob);
298 command_smob *c_smob/*obj*/ = (command_smob *) command->context ();
301 gdb_assert (c_smob != NULL);
311 result = gdbscm_safe_call_3 (c_smob->invoke, c_smob->containing_scm,
387 command_smob *c_smob/*obj*/ = (command_smob *) command->context ();
391 gdb_assert (c_smob != NULL);
392 gdb_assert (gdbscm_is_procedure (c_smob->complete));
404 = gdbscm_safe_call_3 (c_smob->complete, c_smob->containing_scm,
667 command_smob *c_smob;
722 c_smob = (command_smob *) SCM_SMOB_DATA (c_scm);
723 c_smob->name = name;
724 c_smob->is_prefix = is_prefix;
725 c_smob->cmd_class = command_class;
726 c_smob->doc = doc;
727 c_smob->invoke = invoke;
728 c_smob->complete = completer_class;
740 command_smob *c_smob
746 if (cmdscm_is_valid (c_smob))
749 cmd_name = gdbscm_parse_command_name (c_smob->name, FUNC_NAME, SCM_ARG1,
751 c_smob->cmd_name = gdbscm_gc_xstrdup (cmd_name);
757 if (c_smob->is_prefix)
761 int allow_unknown = gdbscm_is_true (c_smob->invoke);
763 cmd = add_prefix_cmd (c_smob->cmd_name, c_smob->cmd_class,
764 NULL, c_smob->doc, &c_smob->sub_list,
769 cmd = add_cmd (c_smob->cmd_name, c_smob->cmd_class,
770 c_smob->doc, cmd_list);
786 c_smob->command = cmd;
787 cmd->set_context (c_smob);
789 if (gdbscm_is_true (c_smob->complete))
792 scm_is_integer (c_smob->complete)
793 ? cmdscm_completers[scm_to_int (c_smob->complete)].completer
799 scm_gc_protect_object (c_smob->containing_scm);