Mercurial > hg > octave-kai > gnulib-hg
annotate lib/linebuffer.h @ 2594:6b6374f18593
*** empty log message ***
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Fri, 16 Jun 2000 12:51:33 +0000 |
parents | 8cac4427bbda |
children | 5994c6f939c5 |
rev | line source |
---|---|
14 | 1 /* linebuffer.h -- declarations for reading arbitrarily long lines |
1867
8cac4427bbda
[struct linebuffer] (size): Declare to be of type size_t, not long.
Jim Meyering <jim@meyering.net>
parents:
1216
diff
changeset
|
2 Copyright (C) 1986, 1991, 1998, 1999 Free Software Foundation, Inc. |
14 | 3 |
4 This program is free software; you can redistribute it and/or modify | |
5 it under the terms of the GNU General Public License as published by | |
6 the Free Software Foundation; either version 2, or (at your option) | |
7 any later version. | |
8 | |
9 This program is distributed in the hope that it will be useful, | |
10 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 GNU General Public License for more details. | |
13 | |
14 You should have received a copy of the GNU General Public License | |
756 | 15 along with this program; if not, write to the Free Software Foundation, |
16 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
1216
cf3c93b52b9b
Make PARAMS-defining conditionals consistent.
Jim Meyering <jim@meyering.net>
parents:
756
diff
changeset
|
17 |
cf3c93b52b9b
Make PARAMS-defining conditionals consistent.
Jim Meyering <jim@meyering.net>
parents:
756
diff
changeset
|
18 #if !defined LINEBUFFER_H |
cf3c93b52b9b
Make PARAMS-defining conditionals consistent.
Jim Meyering <jim@meyering.net>
parents:
756
diff
changeset
|
19 # define LINEBUFFER_H |
cf3c93b52b9b
Make PARAMS-defining conditionals consistent.
Jim Meyering <jim@meyering.net>
parents:
756
diff
changeset
|
20 |
14 | 21 /* A `struct linebuffer' holds a line of text. */ |
22 | |
23 struct linebuffer | |
24 { | |
1867
8cac4427bbda
[struct linebuffer] (size): Declare to be of type size_t, not long.
Jim Meyering <jim@meyering.net>
parents:
1216
diff
changeset
|
25 size_t size; /* Allocated. */ |
8cac4427bbda
[struct linebuffer] (size): Declare to be of type size_t, not long.
Jim Meyering <jim@meyering.net>
parents:
1216
diff
changeset
|
26 size_t length; /* Used. */ |
14 | 27 char *buffer; |
28 }; | |
29 | |
1216
cf3c93b52b9b
Make PARAMS-defining conditionals consistent.
Jim Meyering <jim@meyering.net>
parents:
756
diff
changeset
|
30 # ifndef PARAMS |
cf3c93b52b9b
Make PARAMS-defining conditionals consistent.
Jim Meyering <jim@meyering.net>
parents:
756
diff
changeset
|
31 # if defined PROTOTYPES || (defined __STDC__ && __STDC__) |
cf3c93b52b9b
Make PARAMS-defining conditionals consistent.
Jim Meyering <jim@meyering.net>
parents:
756
diff
changeset
|
32 # define PARAMS(Args) Args |
cf3c93b52b9b
Make PARAMS-defining conditionals consistent.
Jim Meyering <jim@meyering.net>
parents:
756
diff
changeset
|
33 # else |
cf3c93b52b9b
Make PARAMS-defining conditionals consistent.
Jim Meyering <jim@meyering.net>
parents:
756
diff
changeset
|
34 # define PARAMS(Args) () |
cf3c93b52b9b
Make PARAMS-defining conditionals consistent.
Jim Meyering <jim@meyering.net>
parents:
756
diff
changeset
|
35 # endif |
cf3c93b52b9b
Make PARAMS-defining conditionals consistent.
Jim Meyering <jim@meyering.net>
parents:
756
diff
changeset
|
36 # endif |
349 | 37 |
14 | 38 /* Initialize linebuffer LINEBUFFER for use. */ |
742
cddc2692eef4
Define and use macro, PARAMS, not __P.
Jim Meyering <jim@meyering.net>
parents:
459
diff
changeset
|
39 void initbuffer PARAMS ((struct linebuffer *linebuffer)); |
14 | 40 |
41 /* Read an arbitrarily long line of text from STREAM into LINEBUFFER. | |
1867
8cac4427bbda
[struct linebuffer] (size): Declare to be of type size_t, not long.
Jim Meyering <jim@meyering.net>
parents:
1216
diff
changeset
|
42 Keep the newline; append a newline if it's the last line of a file |
8cac4427bbda
[struct linebuffer] (size): Declare to be of type size_t, not long.
Jim Meyering <jim@meyering.net>
parents:
1216
diff
changeset
|
43 that ends in a non-newline character. Do not null terminate. |
14 | 44 Return LINEBUFFER, except at end of file return 0. */ |
742
cddc2692eef4
Define and use macro, PARAMS, not __P.
Jim Meyering <jim@meyering.net>
parents:
459
diff
changeset
|
45 struct linebuffer *readline PARAMS ((struct linebuffer *linebuffer, |
cddc2692eef4
Define and use macro, PARAMS, not __P.
Jim Meyering <jim@meyering.net>
parents:
459
diff
changeset
|
46 FILE *stream)); |
14 | 47 |
48 /* Free linebuffer LINEBUFFER and its data, all allocated with malloc. */ | |
742
cddc2692eef4
Define and use macro, PARAMS, not __P.
Jim Meyering <jim@meyering.net>
parents:
459
diff
changeset
|
49 void freebuffer PARAMS ((struct linebuffer *)); |
1216
cf3c93b52b9b
Make PARAMS-defining conditionals consistent.
Jim Meyering <jim@meyering.net>
parents:
756
diff
changeset
|
50 |
cf3c93b52b9b
Make PARAMS-defining conditionals consistent.
Jim Meyering <jim@meyering.net>
parents:
756
diff
changeset
|
51 #endif /* LINEBUFFER_H */ |