This file is indexed.

/usr/include/g-wrap/guile-compatibility.h is in libgwrap-runtime-dev 1.9.13-2.

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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
/**********************************************************************
Copyright (C) 2002, 2006 Rob Browning
Copyright (C) 2003-2004 Andreas Rottmann
Copyright (C) 2005 Ludovic Courtès

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2.1, or (at
your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.
 
You should have received a copy of the GNU Lesser General Public
License along with this software; see the file COPYING.  If not, write
to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139,
USA.
**********************************************************************/

#ifndef __G_WRAP_COMPATIBILITY_H__
#define __G_WRAP_COMPATIBILITY_H__

#include <libguile.h>
  
#ifdef __cplusplus
extern "C" {
#endif

/* guile 1.3.4 compatibility */
#ifndef SCM_CHAR
#define SCM_CHAR(x) SCM_ICHR(x)
#endif

#ifndef SCM_MAKE_CHAR
#define SCM_MAKE_CHAR(x) SCM_MAKICHR(x)
#endif

/* Define this macro if Guile 1.7.x or better is in use. */
#if defined (SCM_MINOR_VERSION) && (SCM_MINOR_VERSION >= 7) && \
    defined (SCM_MAJOR_VERSION) && (SCM_MAJOR_VERSION >= 1)
#define SCM_VERSION_17X 1
#endif

/* Support for coding against Guile 1.7 */
#ifndef SCM_VERSION_17X

/* Equality.  */
#define scm_is_eq(_x, _y)           (SCM_EQ_P (_x, _y))
#define scm_is_null(_l)             (SCM_NULLP (_l))

/* Garbage collection.  */
void *  scm_malloc(size_t size);
void *  scm_realloc(void *mem, size_t size);

#define scm_gc_malloc(size, what) scm_must_malloc((size), (what))
void    scm_gc_free(void *mem, size_t size, const char *what);

/* Pairs */

#define scm_is_pair(x) SCM_CONSP(x)
#define scm_car(x) (SCM_CAR (x))
#define scm_cdr(x) (SCM_CDR (x))
#define scm_cadr(x) (SCM_CADR (x))
#define scm_cddr(x) (SCM_CDDR (x))

/* Strings.  */
#define scm_is_string(_str)                SCM_STRINGP (_str)
#define scm_c_string_length(_str)          (SCM_STRING_LENGTH (_str))
#define scm_from_locale_string(_str)       (scm_makfrom0str (_str))
SCM     scm_take_locale_string(char *_str);
char   *scm_to_locale_string (SCM str);
size_t  scm_to_locale_stringbuf (SCM str, char *buf, size_t buf_size);

#define GW_ACCESS_STRING(_c_ptr, _str)		\
  { (_c_ptr) = SCM_STRING_CHARS (_str); }


/* Symbols.  */
#define scm_is_symbol(_sym)                (SCM_SYMBOLP (_sym))
#define scm_from_locale_symbol(_sym)       (scm_str2symbol (_sym))
#define GW_ACCESS_SYMBOL(_c_ptr, _sym)		\
  { (_c_ptr) = SCM_SYMBOL_CHARS (_sym); }


/* Booleans.  */
#define scm_from_bool(_b)                (SCM_BOOL (_b))
#define scm_is_false(_b)                 (SCM_FALSEP (_b))
#define scm_is_true(_b)                  (SCM_NFALSEP (_b))

/* Numbers.  */
#ifndef SCM_I_MAKINUM
# define SCM_I_MAKINUM(_num)             (SCM_MAKINUM (_num))
#endif

#define scm_to_double(_num)				\
  (scm_num2double ((_num), 1, "gw:scm->double"))
#define scm_from_double(_num)            (scm_double2num ((double)(_num)))

#define scm_from_ushort(_num)            (scm_ushort2num (_num))
#define scm_to_ushort(_num)              (scm_num2ushort ((_num), 0, NULL))
#define scm_from_short(_num)             (scm_short2num (_num))
#define scm_to_short(_num)               (scm_num2short ((_num), 0, NULL))
#define scm_from_int(_num)               (scm_int2num (_num))
#define scm_to_int(_num)                 (scm_num2int ((_num), 0, NULL))
#define scm_from_uint(_num)              (scm_uint2num (_num))
#define scm_to_uint(_num)                (scm_num2uint ((_num), 0, NULL))
#define scm_from_long(_num)              (scm_long2num (_num))
#define scm_to_long(_num)                (scm_num2long ((_num), 0, NULL))
#define scm_from_ulong(_num)             (scm_ulong2num (_num))
#define scm_to_ulong(_num)               (scm_num2ulong ((_num), 0, NULL))
#define scm_from_long_long(_num)         (scm_long_long2num (_num))
#define scm_to_long_long(_num)           (scm_num2long_long ((_num), 0, NULL))
#define scm_from_ulong_long(_num)        (scm_ulong_long2num (_num))
#define scm_to_ulong_long(_num)          (scm_num2ulong_long ((_num), 0, NULL))

/* Vectors.  */
#define SCM_SIMPLE_VECTOR_SET(v, idx, val) (SCM_VELTS (v)[(idx)] = (val))
#define SCM_SIMPLE_VECTOR_REF(v, idx)      (SCM_VELTS (v)[(idx)])

/* Threads. */
void *scm_without_guile (void*(*func)(void*), void *data);


#else /* SCM_VERSION_17X */

/* Have C_PTR point to a local copy of STR.  */
#define GW_ACCESS_STRING(_c_ptr, _str)			\
  {							\
    size_t _s_str_len = scm_c_string_length (_str);	\
    (_c_ptr) = alloca (_s_str_len + 1);			\
    scm_to_locale_stringbuf (_str, _c_ptr, _s_str_len);	\
    (_c_ptr)[_s_str_len] = '\0';			\
  }

/* Have C_PTR point to a local copy of SYM.  */
#define GW_ACCESS_SYMBOL(_c_ptr, _sym)		\
  {						\
    SCM _s_str = scm_symbol_to_string (_sym);	\
    GW_ACCESS_STRING (_c_ptr, _s_str);		\
  }

#endif

#ifdef __cplusplus
}
#endif

#endif