1 | /* lb.h -- Line breaking
|
---|
2 | Copyright (c) 1993-1995 Eberhard Mattes
|
---|
3 |
|
---|
4 | This file is part of emxdoc.
|
---|
5 |
|
---|
6 | emxdoc is free software; you can redistribute it and/or modify it
|
---|
7 | under the terms of the GNU General Public License as published by
|
---|
8 | the Free Software Foundation; either version 2, or (at your option)
|
---|
9 | any later version.
|
---|
10 |
|
---|
11 | emxdoc is distributed in the hope that it will be useful,
|
---|
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
---|
14 | GNU General Public License for more details.
|
---|
15 |
|
---|
16 | You should have received a copy of the GNU General Public License
|
---|
17 | along with emxdoc; see the file COPYING. If not, write to
|
---|
18 | the Free Software Foundation, 59 Temple Place - Suite 330,
|
---|
19 | Boston, MA 02111-1307, USA. */
|
---|
20 |
|
---|
21 |
|
---|
22 | #define LB_NOMEM 1
|
---|
23 | #define LB_INVAL 2
|
---|
24 | #define LB_INTERN 3
|
---|
25 |
|
---|
26 | #define LBN_WORD 1
|
---|
27 | #define LBN_PRE 2
|
---|
28 | #define LBN_POST 3
|
---|
29 | #define LBN_GLUE 4
|
---|
30 | #define LBN_NEWLINE 5
|
---|
31 | #define LBN_END 6
|
---|
32 |
|
---|
33 | #define LB_INFINITY 10000
|
---|
34 | #define LB_SQRT_INFINITY 100
|
---|
35 |
|
---|
36 | #define LB_HYPHEN '*'
|
---|
37 |
|
---|
38 | struct lb;
|
---|
39 | struct lbh;
|
---|
40 |
|
---|
41 | struct lb_node
|
---|
42 | {
|
---|
43 | int type;
|
---|
44 | int value;
|
---|
45 | const char *word;
|
---|
46 | const void *info;
|
---|
47 | };
|
---|
48 |
|
---|
49 | int lb_init (struct lb **pp, int lmargin, int rmargin);
|
---|
50 | int lb_exit (struct lb **p);
|
---|
51 | int lb_first_lmargin (struct lb *p, int margin);
|
---|
52 | int lb_first_rmargin (struct lb *p, int margin);
|
---|
53 | int lb_penalty (struct lb *p, int penalty);
|
---|
54 | int lb_word (struct lb *p, int width, const char *word, const void *info);
|
---|
55 | int lb_discr (struct lb *p, int width_word, const char *word,
|
---|
56 | int width_pre, const char *pre, int width_post, const char *post,
|
---|
57 | const void *info);
|
---|
58 | int lb_hyphen (struct lb *p, int width, const void *info);
|
---|
59 | int lb_glue (struct lb *p, int width, const void *info);
|
---|
60 | int lb_format (struct lb *p);
|
---|
61 | int lb_next (struct lb *p, struct lb_node *dst);
|
---|
62 |
|
---|
63 | int lb_use_hyphenation (struct lb *p, const struct lbh *h);
|
---|
64 |
|
---|
65 | int lbh_init (struct lbh **pp);
|
---|
66 | int lbh_word (struct lbh *p, const char *s);
|
---|
67 | int lbh_exit (struct lbh **pp);
|
---|