[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [changeset] Adapted munge-texi to expand @seealso commands to texinf
From: |
Thorsten Meyer |
Subject: |
Re: [changeset] Adapted munge-texi to expand @seealso commands to texinfo references, tex error |
Date: |
Sun, 26 Oct 2008 12:02:54 +0100 |
User-agent: |
Mozilla-Thunderbird 2.0.0.16 (X11/20080724) |
Thorsten Meyer wrote:
> Hi,
>
> the attached changeset adapts munge-texi to expand @seealso commands to
> texinfo references (@address@hidden, ...}) in the documentation.
oops, I forgot the attachement.
Here it is.
regards
Thorsten
# HG changeset patch
# User Thorsten Meyer <address@hidden>
# Date 1225015856 -3600
# Node ID 480e07987aa8612f33be5d07798c7e568cfcee56
# Parent 2c1ba965b486994c619a508e0fb7c12df473a739
Adapted munge-texi to expand @seealso commands to texinfo references
diff -r 2c1ba965b486 -r 480e07987aa8 doc/ChangeLog
--- a/doc/ChangeLog Thu Oct 23 16:01:06 2008 -0400
+++ b/doc/ChangeLog Sun Oct 26 11:10:56 2008 +0100
@@ -1,3 +1,7 @@
+2008-10-25 Thorsten Meyer <address@hidden>
+ * interpreter/munge-texi.cc: adapted to expand @seealso{}
+ commands to texinfo references.
+
2008-10-22 David Bateman <address@hidden>
* interprter/plot.txi: Add documentation for error bar series.
diff -r 2c1ba965b486 -r 480e07987aa8 doc/interpreter/munge-texi.cc
--- a/doc/interpreter/munge-texi.cc Thu Oct 23 16:01:06 2008 -0400
+++ b/doc/interpreter/munge-texi.cc Sun Oct 26 11:10:56 2008 +0100
@@ -70,8 +70,80 @@
int c;
while ((c = is.get ()) != EOF && c != doc_delim)
- doc += (char) c;
+ {
+ // expand @seealso commands to texinfo references
+ if (c == '@')
+ {
+ char buf[16]; // buffer for text processing
+ int i = 0;
+ buf[i++] = (char) c;
+
+ if (( buf[i++] = (char) is.get ()) == 's'
+ && (buf[i++] = (char) is.get ()) == 'e'
+ && (buf[i++] = (char) is.get ()) == 'e'
+ && (buf[i++] = (char) is.get ()) == 'a'
+ && (buf[i++] = (char) is.get ()) == 'l'
+ && (buf[i++] = (char) is.get ()) == 's'
+ && (buf[i++] = (char) is.get ()) == 'o'
+ && (buf[i++] = (char) is.get ()) == '{')
+ {
+ doc += "@seealso{";
+
+ bool first = true;
+
+ // process @seealso parameters
+ while ((c = is.get ()) != EOF
+ && c != doc_delim
+ && c != '}')
+ {
+ // ignore whitespace and delimiters
+ while ( c == ' '
+ || c == '\t'
+ || c == '\r'
+ || c == '\n'
+ || c == ',')
+ {
+ c = is.get ();
+ }
+
+ // test for end of @seealso
+ if (c == '}')
+ break;
+
+ // get function name
+ std::string function_name;
+ do
+ function_name += (char) c;
+ while ((c = is.get ()) != EOF
+ && c != doc_delim
+ && c != ' '
+ && c != '\t'
+ && c != '\r'
+ && c != '\n'
+ && c != ','
+ && c != '}');
+ if (first)
+ first = false;
+ else
+ doc += ", ";
+ doc += "@ref{doc-" + function_name + ",," + function_name +
"}";
+ // test for end of @seealso
+ if (c == '}')
+ break;
+ }
+ if (c == '}')
+ doc += (char) c;
+ }
+ else
+ {
+ for (int j = 0; j < i; j++)
+ doc += buf[j];
+ }
+ }
+ else
+ doc += (char) c;
+ }
return doc;
}
@@ -149,9 +221,9 @@
char buf[16];
int i = 0;
- buf[i++] = c;
+ buf[i++] = (char) c;
- if ((buf[i++] = (char) is.get ()) == 'D'
+ if (( buf[i++] = (char) is.get ()) == 'D'
&& (buf[i++] = (char) is.get ()) == 'O'
&& (buf[i++] = (char) is.get ()) == 'C'
&& (buf[i++] = (char) is.get ()) == 'S'