Sync-to-go: update copyright for 2015
[s-roff.git] / src / lib-roff / lf.cpp
blob0a8ccb9c1ff884e148ce2e075e0c4b61c2b17157
1 /*@
2 * Copyright (c) 2014 - 2015 Steffen (Daode) Nurpmeso <sdaoden@users.sf.net>.
4 * Copyright (C) 1989 - 1992, 2004 Free Software Foundation, Inc.
5 * Written by James Clark (jjc@jclark.com)
7 * This is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License as published by the Free
9 * Software Foundation; either version 2, or (at your option) any later
10 * version.
12 * This is distributed in the hope that it will be useful, but WITHOUT ANY
13 * WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 * for more details.
17 * You should have received a copy of the GNU General Public License along
18 * with groff; see the file COPYING. If not, write to the Free Software
19 * Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA.
22 #include "config.h"
23 #include "lib.h"
25 #include <ctype.h>
27 #include "cset.h"
28 #include "stringclass.h"
30 extern void change_filename(const char *); // FIXME
31 extern void change_lineno(int);
33 int interpret_lf_args(const char *p)
35 while (*p == ' ')
36 p++;
37 if (!csdigit(*p))
38 return 0;
39 int ln = 0;
40 do {
41 ln *= 10;
42 ln += *p++ - '0';
43 } while (csdigit(*p));
44 if (*p != ' ' && *p != '\n' && *p != '\0')
45 return 0;
46 while (*p == ' ')
47 p++;
48 if (*p == '\0' || *p == '\n') {
49 change_lineno(ln);
50 return 1;
52 const char *q;
53 for (q = p;
54 *q != '\0' && *q != ' ' && *q != '\n' && *q != '\\';
55 q++)
57 string tem(p, q - p);
58 while (*q == ' ')
59 q++;
60 if (*q != '\n' && *q != '\0')
61 return 0;
62 tem += '\0';
63 change_filename(tem.contents());
64 change_lineno(ln);
65 return 1;
68 // s-it2-mode