{The S-lang C Library Reference}: SLclass_set_string_function

Next Previous Contents

## 42. SLclass_set_string_function

Synopsis

  Set a data type's string representation callback

Usage

  `int SLclass_set_string_function (cl, sfun)`

  > `

  >        SLang_Class_Type *cl
  >        char *(*sfun) (unsigned char, VOID_STAR);

  > `

Description

  The `SLclass_set_string_function` routine is used to define a callback function, `sfun`, that that will be used when a string representation of an object of the data type represented by `cl` is needed. `cl` must have already been obtained via a call to `SLclass_allocate_class`. When called, `sfun` will be passed two arguments: a unsigned char which represents the data type, and the address of the object for which a string represetation is required. The callback function must return a malloced string.

  Upon success, `SLclass_set_string_function` returns zero, or upon error it returns `-1`.

Example

  A callback function that handles both `SLANG_STRING_TYPE` and `SLANG_INT_TYPE` variables looks like:

  > `

  >          char *string_and_int_callback (unsigned char type, VOID_STAR addr)
  >          {
  >             char buf[64];

  >             switch (type)
  >               {
  >                  case SLANG_STRING_TYPE:
  >                    return SLmake_string (*(char **)addr);

  >                  case SLANG_INTEGER_TYPE:
  >                    sprintf (buf, "%d", *(int *)addr);
  >                    return SLmake_string (buf);
  >               }
  >             return NULL;
  >          }

  > `

Notes

  The default string callback simply returns the name of the data type.

See Also

  `SLclass_allocate_class, SLclass_register_class`

Next Previous Contents