version 1.5, 2005/04/06 05:08:11 |
version 1.12, 2005/07/03 08:27:38 |
|
|
/* $OpenXM: OpenXM/src/util/oxgentexi.c,v 1.4 2005/04/05 13:12:06 takayama Exp $ */ |
/* $OpenXM: OpenXM/src/util/oxgentexi.c,v 1.11 2005/06/15 02:38:01 takayama Exp $ */ |
|
|
#include <stdio.h> |
#include <stdio.h> |
|
#include <stdlib.h> |
|
#include <string.h> |
int Debug = 0; |
int Debug = 0; |
#define VMAX 20 |
#define VMAX 20 |
#define LIMIT 65536 |
#define LIMIT 65536 |
|
|
char *shortDescription; |
char *shortDescription; |
char *description; |
char *description; |
char *algorithm; |
char *algorithm; |
|
char *changelog; |
char *examplev[VMAX]; |
char *examplev[VMAX]; |
char *exampleDescv[VMAX]; |
char *exampleDescv[VMAX]; |
int examplec; |
int examplec; |
Line 41 int GenExample = 0; |
|
Line 44 int GenExample = 0; |
|
int DebugItem = 0; |
int DebugItem = 0; |
char *Title = NULL; |
char *Title = NULL; |
char *Author = NULL; |
char *Author = NULL; |
|
char *InfoName = NULL; |
int NoSorting = 0; |
int NoSorting = 0; |
|
|
main(int argc,char *argv[]) { |
main(int argc,char *argv[]) { |
Line 71 main(int argc,char *argv[]) { |
|
Line 75 main(int argc,char *argv[]) { |
|
DebugItem = 1; |
DebugItem = 1; |
}else if (strcmp(argv[i],"--title") == 0) { |
}else if (strcmp(argv[i],"--title") == 0) { |
i++; Title = str(argv[i]); |
i++; Title = str(argv[i]); |
|
}else if (strcmp(argv[i],"--infoName") == 0) { |
|
i++; InfoName = str(argv[i]); |
}else if (strcmp(argv[i],"--author") == 0) { |
}else if (strcmp(argv[i],"--author") == 0) { |
i++; Author = str(argv[i]); |
i++; Author = str(argv[i]); |
}else if (strcmp(argv[i],"--noSorting") == 0) { |
}else if (strcmp(argv[i],"--noSorting") == 0) { |
Line 125 main(int argc,char *argv[]) { |
|
Line 131 main(int argc,char *argv[]) { |
|
exit(0); |
exit(0); |
} |
} |
|
|
if (Title) printTitlePage(Title,Author); |
if (Title) printTitlePage(Title,Author,InfoName); |
|
|
printMenu(stdout,items,n); |
printMenu(stdout,items,n); |
|
|
Line 233 printItem(struct item *it) { |
|
Line 239 printItem(struct item *it) { |
|
printf("examplev[%d]=%s\n",i,it->examplev[i]); |
printf("examplev[%d]=%s\n",i,it->examplev[i]); |
for (i=0; i <it->examplec; i++) |
for (i=0; i <it->examplec; i++) |
printf("exampleDescv[%d]=%s\n",i,it->exampleDescv[i]); |
printf("exampleDescv[%d]=%s\n",i,it->exampleDescv[i]); |
|
if (it->changelog != NULL) |
|
printf("changelog=%s\n",it->changelog); |
for (i=0; i<it->refc; i++) |
for (i=0; i<it->refc; i++) |
printf(" refv[%d]=%s\n",i,it->refv[i]); |
printf(" refv[%d]=%s\n",i,it->refv[i]); |
if (it->author != NULL) |
if (it->author != NULL) |
Line 300 struct item *getItem() { |
|
Line 308 struct item *getItem() { |
|
int pp,pOld; |
int pp,pOld; |
int argc; |
int argc; |
int examplec = 0; |
int examplec = 0; |
|
int i; |
it = newItem(); |
it = newItem(); |
do { |
do { |
p = nextToken(key,LIMIT); |
p = nextToken(key,LIMIT); |
Line 371 struct item *getItem() { |
|
Line 380 struct item *getItem() { |
|
if (strcmp(key,"description:") == 0 || |
if (strcmp(key,"description:") == 0 || |
strcmp(key,"algorithm:") == 0 || |
strcmp(key,"algorithm:") == 0 || |
strcmp(key,"author:") == 0 || |
strcmp(key,"author:") == 0 || |
|
strcmp(key,"changelog:") == 0 || |
strcmp(key,"sortKey:") == 0 || |
strcmp(key,"sortKey:") == 0 || |
strcmp(key,"example:") == 0 || |
strcmp(key,"example:") == 0 || |
strcmp(key,"example_description:") ==0 ) { |
strcmp(key,"example_description:") ==0 ) { |
Line 410 struct item *getItem() { |
|
Line 420 struct item *getItem() { |
|
if (strcmp(key2,"algorithm:") == 0) { |
if (strcmp(key2,"algorithm:") == 0) { |
it->algorithm = str2(&(S[pp]),pOld-pp); |
it->algorithm = str2(&(S[pp]),pOld-pp); |
} |
} |
|
if (strcmp(key2,"changelog:") == 0) { |
|
it->changelog = str2(&(S[pp]),pOld-pp); |
|
} |
}else if (strcmp(key,"ref:") == 0) { |
}else if (strcmp(key,"ref:") == 0) { |
argc = 0; |
argc = 0; |
while ((pp=nextToken(key,LIMIT)) >= 0) { |
while ((pp=nextToken(key,LIMIT)) >= 0) { |
Line 425 struct item *getItem() { |
|
Line 438 struct item *getItem() { |
|
} |
} |
} |
} |
}else{ |
}else{ |
fprintf(stderr,"Warning: unknown keyword << %s >> at %s. Ignored.\n",key, it->name); |
fprintf(stderr,"Error: unknown keyword << %s >> at %s.\n",key, it->name); |
|
fprintf(stderr," The error occurs around "); |
|
for (i=pp ; i < p; i++) fputc(S[i],stderr); |
|
fprintf(stderr,"\n\n"); |
|
exit(1); |
p = nextToken(key,LIMIT); |
p = nextToken(key,LIMIT); |
} |
} |
}while (p >= 0); |
}while (p >= 0); |
Line 470 printTexi(FILE *fp, struct item *it) { |
|
Line 487 printTexi(FILE *fp, struct item *it) { |
|
|
|
printTexi_common(FILE *fp,struct item *it) { |
printTexi_common(FILE *fp,struct item *it) { |
int i; |
int i; |
if (it->description != NULL) { |
if ((it->shortDescription != NULL) || (it->refc >0) |
fprintf(fp,"%s\n\n",it->description); |
|| (it->examplec > 0)) { |
|
if (it->description != NULL) { |
|
fprintf(fp,"\nDescription:\n"); |
|
fprintf(fp,"@quotation\n%s\n@end quotation\n\n",it->description); |
|
} |
|
}else { |
|
if (it->description != NULL) { |
|
fprintf(fp,"%s\n\n",it->description); |
|
} |
} |
} |
|
|
if (it->algorithm != NULL) { |
if (it->algorithm != NULL) { |
fprintf(fp,"\n\n@noindent\nAlgorithm: \n"); |
fprintf(fp,"\n\n@noindent\nAlgorithm: \n@quotation\n"); |
fprintf(fp,"%s\n\n",it->algorithm); |
fprintf(fp,"%s\n@end quotation\n",it->algorithm); |
} |
} |
|
|
if (it->examplec > 0) { |
if (it->examplec > 0) { |
Line 500 printTexi_common(FILE *fp,struct item *it) { |
|
Line 525 printTexi_common(FILE *fp,struct item *it) { |
|
if (it->author != NULL) { |
if (it->author != NULL) { |
fprintf(fp,"Author : %s\n\n",it->author); |
fprintf(fp,"Author : %s\n\n",it->author); |
} |
} |
|
if (it->changelog != NULL) { |
|
fprintf(fp,"\n\nChange Log:\n@quotation\n"); |
|
fprintf(fp,"%s\n@end quotation\n",it->changelog); |
|
} |
if (it->refc > 0) { |
if (it->refc > 0) { |
fprintf(fp,"@table @t\n"); |
fprintf(fp,"\n\nReferences:\n@quotation\n"); |
fprintf(fp,"@item References\n"); |
|
for (i=0; i <it->refc; i++) { |
for (i=0; i <it->refc; i++) { |
fprintf(fp,"@code{%s} ",it->refv[i]); |
fprintf(fp," @code{%s} ",it->refv[i]); |
if (i != it->refc-1) fprintf(fp,", "); |
if (i != it->refc-1) fprintf(fp,", \n"); |
} |
} |
fprintf(fp,"\n@end table\n"); |
fprintf(fp,"\n@end quotation\n"); |
} |
} |
fprintf(fp,"\n"); |
fprintf(fp,"\n"); |
} |
} |
Line 623 outputExample(FILE *fp,char *s) { |
|
Line 651 outputExample(FILE *fp,char *s) { |
|
fprintf(fp,":"); i += 5; |
fprintf(fp,":"); i += 5; |
}else fprintf(fp,"@@"); |
}else fprintf(fp,"@@"); |
}else{ |
}else{ |
fputc(s[i],fp); |
if (s[i] == '{') {fprintf(fp,"%s","@{"); } |
|
else if (s[i] == '}') {fprintf(fp,"%s","@}");} |
|
else fputc(s[i],fp); |
} |
} |
} |
} |
} |
} |
Line 655 outputOfExample(char *com) { |
|
Line 685 outputOfExample(char *com) { |
|
putchar('\n'); |
putchar('\n'); |
} |
} |
|
|
printTitlePage(char *title, char *author) { |
printTitlePage(char *title, char *author,char *infoName) { |
printf("\\input texinfo\n"); |
printf("\\input texinfo\n"); |
printf("@def@colon{:}\n\n"); |
printf("@def@colon{:}\n\n"); |
printf("@iftex\n"); |
printf("@iftex\n"); |
Line 665 printTitlePage(char *title, char *author) { |
|
Line 695 printTitlePage(char *title, char *author) { |
|
printf("@end iftex\n"); |
printf("@end iftex\n"); |
printf("@overfullrule=0pt\n"); |
printf("@overfullrule=0pt\n"); |
|
|
printf("@setfilename %s\n",Title); |
if (infoName != NULL) printf("@setfilename %s\n",infoName); |
|
else printf("@setfilename asir-contrib-infoName-is-not-set\n"); |
printf("@settitle %s\n",Title); |
printf("@settitle %s\n",Title); |
|
|
printf("@titlepage\n"); |
printf("@titlepage\n"); |
Line 678 printTitlePage(char *title, char *author) { |
|
Line 709 printTitlePage(char *title, char *author) { |
|
} |
} |
|
|
printBye() { |
printBye() { |
|
printf("@node Index,,, Top\n"); |
|
printf("@unnumbered Index\n"); |
|
printf("@printindex fn\n"); |
|
printf("@printindex cp\n"); |
|
printf("@iftex\n"); |
|
printf("@vfill @eject\n"); |
|
printf("@end iftex\n"); |
|
printf("@summarycontents\n"); |
|
printf("@contents\n"); |
printf("\n@bye\n"); |
printf("\n@bye\n"); |
} |
} |
/* Old file was OpenXM/src/asir-contrib/packages/doc/gentexi.c */ |
/* Old file was OpenXM/src/asir-contrib/packages/doc/gentexi.c */ |