Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – planix.SVN – Blame – /os/branches/planix-v0/sys/src/cmd/gs/src/ccfont.h – Rev 2

Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/* Copyright (C) 1992, 1995, 1998, 1999 Aladdin Enterprises.  All rights reserved.
2
 
3
  This software is provided AS-IS with no warranty, either express or
4
  implied.
5
 
6
  This software is distributed under license and may not be copied,
7
  modified or distributed except as expressly authorized under the terms
8
  of the license contained in the file LICENSE in this distribution.
9
 
10
  For more information about licensing, please refer to
11
  http://www.ghostscript.com/licensing/. For information on
12
  commercial licensing, go to http://www.artifex.com/licensing/ or
13
  contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
  San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
*/
16
 
17
/* $Id: ccfont.h,v 1.5 2002/06/16 04:47:10 lpd Exp $ */
18
/* Header for fonts compiled into C. */
19
 
20
#ifndef ccfont_INCLUDED
21
#  define ccfont_INCLUDED
22
 
23
/* Include all the things a compiled font needs. */
24
#include "stdpre.h"
25
#include "gsmemory.h"
26
#include "iref.h"
27
#include "ivmspace.h"		/* for avm_foreign */
28
#include "store.h"
29
 
30
/* Define type-specific refs for initializing arrays. */
31
#define ref_(t) struct { struct tas_s tas; t value; }
32
#define boolean_v(b) { {t_boolean<<r_type_shift}, (ushort)(b) }
33
#define integer_v(i) { {t_integer<<r_type_shift}, (long)(i) }
34
#define null_v() { {t_null<<r_type_shift} }
35
#define real_v(v) { {t_real<<r_type_shift}, (float)(v) }
36
 
37
/* Define other initialization structures. */
38
typedef struct {
39
    byte encx, charx;
40
} charindex;
41
 
42
/*
43
 * We represent mostly-string arrays by byte strings.  Each element
44
 * starts with length bytes.  If the first length byte is not 255,
45
 * it and the following byte define a big-endian length of a string or name.
46
 * If the first two bytes are (255,255), this element is null.
47
 * Otherwise, the initial 255 is followed by a 2-byte big-endian length
48
 * of a string that must be scanned as a token.
49
 */
50
typedef const char *cfont_string_array;
51
 
52
/* Support routines in iccfont.c */
53
typedef struct {
54
    const charindex *enc_keys;	/* keys from encoding vectors */
55
    uint num_enc_keys;
56
    uint num_str_keys;
57
    uint extra_slots;		/* (need extra for fonts) */
58
    uint dict_attrs;		/* protection for dictionary */
59
    uint value_attrs;		/* protection for values */
60
    /* (only used for string dicts) */
61
} cfont_dict_keys;
62
 
63
/*
64
 * We pass a procedure vector to the font initialization routine
65
 * to avoid having externs, which compromise sharability.
66
 */
67
typedef struct cfont_procs_s {
68
    int (*ref_dict_create) (i_ctx_t *, ref *, const cfont_dict_keys *,
69
			    cfont_string_array, const ref *);
70
    int (*string_dict_create) (i_ctx_t *, ref *, const cfont_dict_keys *,
71
			       cfont_string_array, cfont_string_array);
72
    int (*num_dict_create) (i_ctx_t *, ref *, const cfont_dict_keys *,
73
			    cfont_string_array, const ref *, const char *);
74
    int (*name_array_create) (i_ctx_t *, ref *, cfont_string_array, int);
75
    int (*string_array_create) (i_ctx_t *, ref *, cfont_string_array,
76
				int /*size */ , uint /*protection */ );
77
    int (*scalar_array_create) (i_ctx_t *, ref *, const ref *,
78
				int /*size */ , uint /*protection */ );
79
    int (*name_create) (i_ctx_t *, ref *, const char *);
80
    int (*ref_from_string) (i_ctx_t *, ref *, const char *, uint);
81
} cfont_procs;
82
 
83
/*
84
 * In order to make it possible for third parties to compile fonts (into
85
 * a shared library, on systems that support such things), we define
86
 * a tiny procedural interface for getting access to the compiled font table.
87
 */
88
#define ccfont_proc(proc)\
89
  int proc(i_ctx_t *, const cfont_procs *, ref *)
90
typedef ccfont_proc((*ccfont_fproc));
91
 
92
/*
93
 * There should be some consts in the *** below, but a number of
94
 * C compilers don't handle const properly in such situations.
95
 */
96
extern int ccfont_fprocs(int *, const ccfont_fproc **);
97
 
98
#define ccfont_version 19	/* for checking against libraries */
99
 
100
#endif /* ccfont_INCLUDED */