This file is indexed.

/usr/share/doc/rep-gtk/README.gtk-defs is in rep-gtk 1:0.90.8.2-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
-*-Indented-Text-*-

These notes describe the format of the .defs files

(import "DEFS-FILE")
(include "DEFS-FILE")


(define-enum ENUM-TYPEDEF-NAME
  (LISP-SYM CPP-MACRO)
  ...)


(define-flags FLAGS-TYPEDEF-NAME
  (LISP-SYM CPP-MACRO)
  ...)


(define-boxed BOXED-TYPEDEF-NAME
  ATTR ...)

where each ATTR is one of:

      (copy C-COPY-FUN)
      (free C-FREE-FUN)
      (size "C sizeof expression")
      (fields FIELD ...)

      where each FIELD is (TYPE-SYM NAME-SYM OPTIONS...)
      each OPTION may be `(setter t)' denoting that the field
      is settable. Also `(getter FUNCTION-NAME)' defining a custom
      method of retrieving the value


(define-object OBJECT-TYPEDEF-NAME (SUPER-CLASS-TYPEDEF)
  ATTR ...)

where each ATTR is one of:

      (fields FIELD ...)		[as above]


(define-func C-FUNC-NAME
  RETURN-VALUE [RET-OPTIONS...]
  (ARG ...)
  OPTIONS...)

where each ARG is (TYPE NAME-SYM [ARG-OPTIONS...)
and each OPTION may be one of:

  (scm-name ACTUAL-NAME-STRING)
  (protection ARG)			; gc protect callback for life of ARG
  (protection t)			; gc protect callback always
  (protection *result*)			; gc protect for life of RETURN-VALUE
  (undeferred t)			; no scm interrupt protection?
  (rest-arg t)				; last arg is &rest
  (gerror-arg t)				; last arg is GError arg
  
and each ARG-OPTION may be one of:

  (= "default expression")
  (null-ok)				; allow nil
  (protect-during)

and each RET-OPTION may be one of:

  (copy nil)				; unimplemented?


(options OPTION ...)

where each OPTION can be:

      (includes "#include expression")
      (init-func "name of C function")
      (other-inits "name of C function" ... )
      (extra-init-code "code string")
      (provide FEATURE)

the `provide' option generates the rep dl stub required to provide
FEATURE and call the init-func when loaded


GTK fundamental types seem to include:

	invalid, none, char, bool, int, uint, long, ulong, float,
	string, enum, flags, boxed, foreign, callback, args, pointer,
	signal, c-callback, object

static_string:
  a static string returned from a function

full_callback:
  a callback function used by the _full function variants (i.e.
  gtk_signal_connect_full). 

file-descriptor:
  an integer file descriptor

double:
  a double-precision float

SCM:
  a scheme object

(list TYPE [MODE]):
  a glib GList* (doubly-linked)

(slist TYPE [MODE]):
  a glib GSList* (singly-linked)

(cvec TYPE [MODE]):
  a counted-vector, stored in sgtk_cvec struct, in gtk_ function calls,
  it expands ``cvec.data, cvec.len''

(cvecr TYPE [MODE]):
  similar to cvec but expands ``cvec.len, cvec.data''

(fvec TYPE LEN [MODE]):
  similar to cvec but fixed length

(ret TYPE):
  similar to fvec but length is always one. used to mimic the C ``&foo''
  idiom of returning multiple values

(tvec TYPE [MODE]):
  zero-terminated vector

[ in the above, MODE is one of `in', `out' or `inout'. Defaults to `in' ]