projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Nico Golde:
[apps/madmutt.git]
/
makedoc.c
diff --git
a/makedoc.c
b/makedoc.c
index
7ba1e74
..
cbbc427
100644
(file)
--- a/
makedoc.c
+++ b/
makedoc.c
@@
-59,6
+59,9
@@
extern int optind;
#define BUFFSIZE 2048
#define BUFFSIZE 2048
+static char lastvar[BUFFSIZE];
+static int sort_error = 0;
+
enum output_formats_t
{
F_CONF, F_MAN, F_SGML, F_NONE
enum output_formats_t
{
F_CONF, F_MAN, F_SGML, F_NONE
@@
-150,7
+153,9
@@
int main (int argc, char *argv[])
{
case F_CONF:
case F_MAN:
{
case F_CONF:
case F_MAN:
- case F_SGML: makedoc (f, stdout); break;
+ case F_SGML:
+ lastvar[0] = '\0';
+ makedoc (f, stdout); break;
default:
{
fprintf (stderr, "%s: No output format specified.\n",
default:
{
fprintf (stderr, "%s: No output format specified.\n",
@@
-165,6
+170,13
@@
int main (int argc, char *argv[])
exit (1);
}
exit (1);
}
+static void remember (const char* s)
+{
+ int l = strlen (s);
+ lastvar[0] = '\0';
+ strncpy (lastvar, s, strlen (s));
+ lastvar[l] = '\0';
+}
static void makedoc (FILE *in, FILE *out)
{
static void makedoc (FILE *in, FILE *out)
{
@@
-213,6
+225,8
@@
static void makedoc (FILE *in, FILE *out)
}
flush_doc (docstat, out);
fputs ("\n", out);
}
flush_doc (docstat, out);
fputs ("\n", out);
+ if (sort_error == 1)
+ fputs ("makedoc: warning: there're sorting errors in vars\n", stderr);
}
/* skip whitespace */
}
/* skip whitespace */
@@
-397,7
+411,14
@@
static void handle_confline (char *s, FILE *out)
/* xxx - put this into an actual state machine? */
/* variable name */
/* xxx - put this into an actual state machine? */
/* variable name */
- if (!(s = get_token (varname, sizeof (varname), s))) return;
+ if (!(s = get_token (varname, sizeof (varname), s)))
+ return;
+ else
+ {
+ if (lastvar[0] && strncmp (lastvar, varname, strlen (lastvar)) > 0)
+ sort_error = 1;
+ remember (varname);
+ }
/* comma */
if (!(s = get_token (buff, sizeof (buff), s))) return;
/* comma */
if (!(s = get_token (buff, sizeof (buff), s))) return;