version 1.13, 2005/07/21 11:29:16 |
version 1.16, 2017/03/18 01:17:44 |
|
|
/* $OpenXM: OpenXM/src/util/oxgentexi.c,v 1.12 2005/07/03 08:27:38 ohara Exp $ */ |
/* $OpenXM: OpenXM/src/util/oxgentexi.c,v 1.15 2013/08/31 08:16:02 ohara Exp $ */ |
|
|
#include <stdio.h> |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdlib.h> |
|
|
char *changelog; |
char *changelog; |
char *examplev[VMAX]; |
char *examplev[VMAX]; |
char *exampleDescv[VMAX]; |
char *exampleDescv[VMAX]; |
|
char *options; |
int examplec; |
int examplec; |
int refc; |
int refc; |
char *refv[VMAX]; |
char *refv[VMAX]; |
Line 32 struct item *getItem(void); |
|
Line 33 struct item *getItem(void); |
|
char *str(char *key); |
char *str(char *key); |
char *str2(char *key,int size); |
char *str2(char *key,int size); |
int cmpItem(struct item *it,struct item *it2); |
int cmpItem(struct item *it,struct item *it2); |
|
void printItem(struct item *it); |
|
void shell(struct item *v[],int n); |
|
void printMenu(FILE *fp, struct item **it, int n); |
|
void printBye(); |
|
void printTitlePage(char *title, char *author,char *infoName); |
|
void printItem(struct item *it); |
|
void printTexi(FILE *fp, struct item *it); |
|
void printTexi_common(FILE *fp,struct item *it); |
|
void printTexi0(FILE *fp, struct item *it); |
|
void printTexi1(FILE *fp, struct item *it); |
|
void outputExample(FILE *fp,char *s); |
|
void outputOfExample(char *com); |
|
|
char *S; |
char *S; |
int Ssize = 256; |
int Ssize = 256; |
Line 47 char *Author = NULL; |
|
Line 60 char *Author = NULL; |
|
char *InfoName = NULL; |
char *InfoName = NULL; |
int NoSorting = 0; |
int NoSorting = 0; |
|
|
|
int |
main(int argc,char *argv[]) { |
main(int argc,char *argv[]) { |
char *t; |
char *t; |
int p,c,n,i; |
int c,n,i; |
struct item *tt; |
struct item *tt; |
struct item *items[ITEMMAX]; |
struct item *items[ITEMMAX]; |
|
|
Line 143 main(int argc,char *argv[]) { |
|
Line 157 main(int argc,char *argv[]) { |
|
exit(0); |
exit(0); |
} |
} |
|
|
|
int |
genInclude(char *name) { |
genInclude(char *name) { |
char fname[4098]; |
char fname[4098]; |
FILE *fp; |
FILE *fp; |
Line 162 genInclude(char *name) { |
|
Line 177 genInclude(char *name) { |
|
return 0; |
return 0; |
} |
} |
|
|
|
int |
cmpItem(struct item *it,struct item *it2) { |
cmpItem(struct item *it,struct item *it2) { |
return strcmp(it->sortKey,it2->sortKey); |
return strcmp(it->sortKey,it2->sortKey); |
} |
} |
Line 172 struct item * newItem(){ |
|
Line 188 struct item * newItem(){ |
|
fprintf(stderr,"newItem: No more memory.\n"); |
fprintf(stderr,"newItem: No more memory.\n"); |
exit(20); |
exit(20); |
} |
} |
a->argc = 0; a->optc = 0; a->refc=0; a->examplec = 0; |
memset(a, 0, sizeof(struct item)); |
a->type=0; |
|
a->category = a->category2 = a->name = a->shortDescription |
|
= a->description = a->author = a->algorithm = a->sortKey = NULL; |
|
return a; |
return a; |
} |
} |
|
|
|
int |
nextToken(char *key,int n) { |
nextToken(char *key,int n) { |
static int pos = 0; |
static int pos = 0; |
int i = 0; |
int i = 0; |
Line 216 nextToken(char *key,int n) { |
|
Line 230 nextToken(char *key,int n) { |
|
return pos; |
return pos; |
} |
} |
|
|
|
void |
printItem(struct item *it) { |
printItem(struct item *it) { |
int i; |
int i; |
if (it == NULL) return; |
if (it == NULL) return; |
Line 241 printItem(struct item *it) { |
|
Line 256 printItem(struct item *it) { |
|
printf("exampleDescv[%d]=%s\n",i,it->exampleDescv[i]); |
printf("exampleDescv[%d]=%s\n",i,it->exampleDescv[i]); |
if (it->changelog != NULL) |
if (it->changelog != NULL) |
printf("changelog=%s\n",it->changelog); |
printf("changelog=%s\n",it->changelog); |
|
if (it->options != NULL) |
|
printf("options=%s\n",it->options); |
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 274 char *str2(char *key,int size) { |
|
Line 291 char *str2(char *key,int size) { |
|
return s; |
return s; |
} |
} |
char *getCategory(char *key) { |
char *getCategory(char *key) { |
int i,n; |
int i; |
char *s; |
char *s; |
s = str(key); |
s = str(key); |
for (i=0; i<strlen(s); i++) { |
for (i=0; i<strlen(s); i++) { |
Line 286 char *getCategory(char *key) { |
|
Line 303 char *getCategory(char *key) { |
|
return s; |
return s; |
} |
} |
char *getCategory2(char *key) { |
char *getCategory2(char *key) { |
int i,n; |
int i; |
char *s; |
char *s; |
int count; |
int count=0; |
s = str(key); |
s = str(key); |
for (i=0; i<strlen(s); i++) { |
for (i=0; i<strlen(s); i++) { |
if ((s[i] == '_') || (s[i] == '.')) count++; |
if ((s[i] == '_') || (s[i] == '.')) count++; |
Line 383 struct item *getItem() { |
|
Line 400 struct item *getItem() { |
|
strcmp(key,"changelog:") == 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 || |
|
strcmp(key,"options:") ==0 || |
|
strcmp(key,"Options:") ==0 || |
|
strcmp(key,"Example:") ==0 |
|
) { |
pp = p; |
pp = p; |
strcpy(key2,key); |
strcpy(key2,key); |
do { |
do { |
Line 398 struct item *getItem() { |
|
Line 419 struct item *getItem() { |
|
if (strcmp(key2,"description:") == 0) { |
if (strcmp(key2,"description:") == 0) { |
it->description = str2(&(S[pp]),pOld-pp); |
it->description = str2(&(S[pp]),pOld-pp); |
} |
} |
if (strcmp(key2,"example:") == 0) { |
if ((strcmp(key2,"example:") == 0) || (strcmp(key2,"Example:") == 0)) { |
it->examplev[examplec++] = str2(&(S[pp]),pOld-pp); |
it->examplev[examplec++] = str2(&(S[pp]),pOld-pp); |
it->exampleDescv[examplec-1] = ""; |
it->exampleDescv[examplec-1] = ""; |
it->examplec = examplec; |
it->examplec = examplec; |
Line 423 struct item *getItem() { |
|
Line 444 struct item *getItem() { |
|
if (strcmp(key2,"changelog:") == 0) { |
if (strcmp(key2,"changelog:") == 0) { |
it->changelog = str2(&(S[pp]),pOld-pp); |
it->changelog = str2(&(S[pp]),pOld-pp); |
} |
} |
|
if ((strcmp(key2,"options:") == 0) || (strcmp(key2,"Options:")==0)) { |
|
it->options = 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 450 struct item *getItem() { |
|
Line 474 struct item *getItem() { |
|
return it; |
return it; |
} |
} |
|
|
|
void |
shell(struct item *v[],int n) { |
shell(struct item *v[],int n) { |
int gap,i,j; |
int gap,i,j; |
struct item *temp; |
struct item *temp; |
Line 465 shell(struct item *v[],int n) { |
|
Line 490 shell(struct item *v[],int n) { |
|
} |
} |
} |
} |
|
|
|
void |
printMenu(FILE *fp, struct item **it, int n) { |
printMenu(FILE *fp, struct item **it, int n) { |
int i,m; |
int i,m; |
|
|
Line 479 printMenu(FILE *fp, struct item **it, int n) { |
|
Line 505 printMenu(FILE *fp, struct item **it, int n) { |
|
} |
} |
} |
} |
|
|
|
void |
printTexi(FILE *fp, struct item *it) { |
printTexi(FILE *fp, struct item *it) { |
int i; |
if (it->type == 1) printTexi1(fp,it); |
if (it->type == 1) return printTexi1(fp,it); |
else printTexi0(fp,it); |
else return printTexi0(fp,it); |
return; |
} |
} |
|
|
|
void |
printTexi_common(FILE *fp,struct item *it) { |
printTexi_common(FILE *fp,struct item *it) { |
int i; |
int i; |
if ((it->shortDescription != NULL) || (it->refc >0) |
if ((it->shortDescription != NULL) || (it->refc >0) |
Line 529 printTexi_common(FILE *fp,struct item *it) { |
|
Line 557 printTexi_common(FILE *fp,struct item *it) { |
|
fprintf(fp,"\n\nChange Log:\n@quotation\n"); |
fprintf(fp,"\n\nChange Log:\n@quotation\n"); |
fprintf(fp,"%s\n@end quotation\n",it->changelog); |
fprintf(fp,"%s\n@end quotation\n",it->changelog); |
} |
} |
|
if (it->options != NULL) { |
|
fprintf(fp,"\nOptinal variabes:"); |
|
fprintf(fp,"%s\n\n",it->options); |
|
} |
if (it->refc > 0) { |
if (it->refc > 0) { |
fprintf(fp,"\n\nReferences:\n@quotation\n"); |
fprintf(fp,"\n\nReferences:\n@quotation\n"); |
for (i=0; i <it->refc; i++) { |
for (i=0; i <it->refc; i++) { |
Line 540 printTexi_common(FILE *fp,struct item *it) { |
|
Line 572 printTexi_common(FILE *fp,struct item *it) { |
|
fprintf(fp,"\n"); |
fprintf(fp,"\n"); |
} |
} |
|
|
|
void |
printTexi0(FILE *fp, struct item *it) { |
printTexi0(FILE *fp, struct item *it) { |
int i; |
int i; |
|
|
Line 613 printTexi0(FILE *fp, struct item *it) { |
|
Line 646 printTexi0(FILE *fp, struct item *it) { |
|
printTexi_common(fp,it); |
printTexi_common(fp,it); |
} |
} |
|
|
|
void |
printTexi1(FILE *fp, struct item *it) { |
printTexi1(FILE *fp, struct item *it) { |
int i; |
int i; |
/* For it->type == 1 */ |
/* For it->type == 1 */ |
Line 640 printTexi1(FILE *fp, struct item *it) { |
|
Line 674 printTexi1(FILE *fp, struct item *it) { |
|
printTexi_common(fp,it); |
printTexi_common(fp,it); |
} |
} |
|
|
|
void |
outputExample(FILE *fp,char *s) { |
outputExample(FILE *fp,char *s) { |
int i; |
int i; |
/* Remove unnecessary spaces at the tail. */ |
/* Remove unnecessary spaces at the tail. */ |
Line 664 outputExample(FILE *fp,char *s) { |
|
Line 699 outputExample(FILE *fp,char *s) { |
|
} |
} |
} |
} |
|
|
|
void |
outputOfExample(char *com) { |
outputOfExample(char *com) { |
FILE *fp2; |
FILE *fp2; |
int c; |
int c; |
Line 691 outputOfExample(char *com) { |
|
Line 727 outputOfExample(char *com) { |
|
putchar('\n'); |
putchar('\n'); |
} |
} |
|
|
|
void |
printTitlePage(char *title, char *author,char *infoName) { |
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"); |
Line 714 printTitlePage(char *title, char *author,char *infoNam |
|
Line 751 printTitlePage(char *title, char *author,char *infoNam |
|
printf("@node Top,, (dir), (dir)\n\n"); |
printf("@node Top,, (dir), (dir)\n\n"); |
} |
} |
|
|
|
void |
printBye() { |
printBye() { |
printf("@node Index,,, Top\n"); |
printf("@node Index,,, Top\n"); |
printf("@unnumbered Index\n"); |
printf("@unnumbered Index\n"); |