## Guile scripting

### Tutorials

- Scripting a gnetlist backend in scheme (John Doty)
- See also the Scheme Backend API section of the gnetlist User Guide

### libgeda C library reference

libgeda defines a number of low-level functions in C for configuring its behaviour and manipulating features such as the component and subcircuit libraries.

#### Types

- attribute
- object
- page

#### Variables

Basic configuration (defined by libgeda, read-only)

- path-sep
- geda-rc-path
- geda-data-path

Object type identifiers (defined by libgeda, read-only)

- OBJ_LINE
- OBJ_BOX
- OBJ_PICTURE
- OBJ_CIRCLE
- OBJ_NET
- OBJ_BUS
- OBJ_COMPLEX
- OBJ_TEXT
- OBJ_PIN
- OBJ_ARC
- OBJ_ROUTE
- OBJ_THRU_HOLE
- OBJ_PLACEHOLDER

#### Functions

Component library:

- component-library
- component-library-command
- component-library-funcs
- component-library-search
- reset-component-library

Subcircuit library:

- source-library
- source-library-search
- reset-source-library

Libgeda behaviour configuration (write-only):

- always-promote-attributes
- attribute-promotion
- bitmap-directory
- bus-ripper-symname
- font-directory
- keep-invisible
- map-font-character-to-file
- postscript-prolog
- promote-invisible
- scheme-directory
- untitled-name
- world-size

Smob type manipulators:

- get-attribute-name-value
- get-attribute-bounds
- get-attribute-angle
- calcule-new-attrib-bounds
- get-object-attributes
- get-attrib-value-by-attrib-name
- get-object-type
- get-line-width
- get-page-filename

### libgeda geda.scm

geda.scm, installed with libgeda, provides several useful functions for doing simple manipulation of paths and files, as well as loading rc files from gafrc.d directories.

#### Functions

- build-path
- regular-file?
- directory?
- has-suffix?
- load-scheme-dir