version 1.2, 2005/04/04 07:36:44 |
version 1.4, 2005/04/05 13:12:06 |
|
|
/* $OpenXM: OpenXM/src/util/oxgentexi.c,v 1.1 2005/04/04 06:10:58 takayama Exp $ */ |
/* $OpenXM: OpenXM/src/util/oxgentexi.c,v 1.3 2005/04/04 12:38:32 takayama Exp $ */ |
|
|
#include <stdio.h> |
#include <stdio.h> |
int Debug = 0; |
int Debug = 0; |
|
|
int Include = 0; |
int Include = 0; |
int GenExample = 0; |
int GenExample = 0; |
int DebugItem = 0; |
int DebugItem = 0; |
|
char *Title = NULL; |
|
char *Author = NULL; |
|
int NoSorting = 0; |
|
|
main(int argc,char *argv[]) { |
main(int argc,char *argv[]) { |
char *t; |
char *t; |
Line 66 main(int argc,char *argv[]) { |
|
Line 69 main(int argc,char *argv[]) { |
|
Debug = 1; |
Debug = 1; |
}else if (strcmp(argv[i],"--debugItem") == 0) { |
}else if (strcmp(argv[i],"--debugItem") == 0) { |
DebugItem = 1; |
DebugItem = 1; |
|
}else if (strcmp(argv[i],"--title") == 0) { |
|
i++; Title = str(argv[i]); |
|
}else if (strcmp(argv[i],"--author") == 0) { |
|
i++; Author = str(argv[i]); |
|
}else if (strcmp(argv[i],"--noSorting") == 0) { |
|
NoSorting = 1; |
}else { |
}else { |
fprintf(stderr,"Unknown option\n"); exit(1); |
fprintf(stderr,"Unknown option\n"); exit(1); |
} |
} |
Line 102 main(int argc,char *argv[]) { |
|
Line 111 main(int argc,char *argv[]) { |
|
items[n++] = tt; |
items[n++] = tt; |
} |
} |
} |
} |
if (Debug) fprintf(stderr,"Sorting...\n"); |
|
shell(items,n); |
if (!NoSorting) { |
if (Debug) fprintf(stderr,"Done.\n"); |
if (Debug) fprintf(stderr,"Sorting...\n"); |
|
shell(items,n); |
|
if (Debug) fprintf(stderr,"Done.\n"); |
|
} |
|
|
if (DebugItem) { |
if (DebugItem) { |
for (i=0; i<n; i++) { |
for (i=0; i<n; i++) { |
Line 113 main(int argc,char *argv[]) { |
|
Line 125 main(int argc,char *argv[]) { |
|
exit(0); |
exit(0); |
} |
} |
|
|
|
if (Title) printTitlePage(Title,Author); |
|
|
printMenu(stdout,items,n); |
printMenu(stdout,items,n); |
|
|
for (i=0; i<n; i++) { |
for (i=0; i<n; i++) { |
printTexi(stdout,items[i]); |
printTexi(stdout,items[i]); |
} |
} |
|
|
|
if (Title) printBye(); |
exit(0); |
exit(0); |
} |
} |
|
|
Line 302 struct item *getItem() { |
|
Line 318 struct item *getItem() { |
|
if (strcmp(key,"(") != 0) { |
if (strcmp(key,"(") != 0) { |
pp = p+1; |
pp = p+1; |
it->type = 1; /* For non-functions */ |
it->type = 1; /* For non-functions */ |
|
goto LL ; |
}else{ |
}else{ |
it->type = 0; /* For functions */ |
it->type = 0; /* For functions */ |
argc = 0; |
argc = 0; |
Line 346 struct item *getItem() { |
|
Line 363 struct item *getItem() { |
|
}while (p >= 0); |
}while (p >= 0); |
it->shortDescription = str2(&(S[pp]),pOld-pp); |
it->shortDescription = str2(&(S[pp]),pOld-pp); |
|
|
|
LL: ; |
|
if (it->type == 1 ) {strcpy(key,"description:"); p++; } |
do { |
do { |
/* Get Description or Examples */ |
/* Get Description or Examples */ |
if (strcmp(key,"end:") == 0) break; |
if (strcmp(key,"end:") == 0) break; |
Line 466 printTexi_common(FILE *fp,struct item *it) { |
|
Line 484 printTexi_common(FILE *fp,struct item *it) { |
|
fprintf(fp,"Example %d:\n",i); |
fprintf(fp,"Example %d:\n",i); |
} |
} |
fprintf(fp,"@example\n"); |
fprintf(fp,"@example\n"); |
fprintf(fp,"%s\n",it->examplev[i]); |
outputExample(fp,it->examplev[i]); |
if (GenExample) { |
if (GenExample) { |
outputOfExample(it->examplev[i]); |
outputOfExample(it->examplev[i]); |
} |
} |
Line 499 printTexi0(FILE *fp, struct item *it) { |
|
Line 517 printTexi0(FILE *fp, struct item *it) { |
|
fprintf(fp,"@c item is NULL.\n"); |
fprintf(fp,"@c item is NULL.\n"); |
return ; |
return ; |
} |
} |
|
fprintf(fp,"@c sortKey: %s\n",it->sortKey); |
if (it->name == NULL) { |
if (it->name == NULL) { |
fprintf(fp,"@c item name is missing.\n"); |
fprintf(fp,"@c item name is missing.\n"); |
return ; |
return ; |
Line 572 printTexi1(FILE *fp, struct item *it) { |
|
Line 591 printTexi1(FILE *fp, struct item *it) { |
|
fprintf(fp,"@c item is NULL.\n"); |
fprintf(fp,"@c item is NULL.\n"); |
return ; |
return ; |
} |
} |
|
fprintf(fp,"@c sortKey: %s\n",it->sortKey); |
|
|
if (it->shortDescription != NULL) { |
if (it->shortDescription != NULL) { |
for (i=0; i<strlen(it->shortDescription); i++) { |
for (i=0; i<strlen(it->shortDescription); i++) { |
Line 589 printTexi1(FILE *fp, struct item *it) { |
|
Line 609 printTexi1(FILE *fp, struct item *it) { |
|
printTexi_common(fp,it); |
printTexi_common(fp,it); |
} |
} |
|
|
|
outputExample(FILE *fp,char *s) { |
|
int i; |
|
for (i=0; s[i] != 0; i++) { |
|
if (s[i] == '@') { |
|
if (s[i+1] == '{') {fprintf(fp,"%s","@{"); i += 1;} |
|
else if (s[i+1] == '}') {fprintf(fp,"%s","@}"); i += 1;} |
|
else if (s[i+1] == '@') {fprintf(fp,"%s","@@"); i += 1;} |
|
else if (strncmp(&(s[i+1]),"colon",5)==0) { |
|
fprintf(fp,":"); i += 5; |
|
}else fprintf(fp,"@@"); |
|
}else{ |
|
fputc(s[i],fp); |
|
} |
|
} |
|
} |
|
|
outputOfExample(char *com) { |
outputOfExample(char *com) { |
FILE *fp2; |
FILE *fp2; |
int c; |
int c; |
Line 616 outputOfExample(char *com) { |
|
Line 652 outputOfExample(char *com) { |
|
putchar('\n'); |
putchar('\n'); |
} |
} |
|
|
|
printTitlePage(char *title, char *author) { |
|
printf("\\input texinfo\n"); |
|
printf("@def@colon{:}\n\n"); |
|
printf("@iftex\n"); |
|
printf("@catcode`@#=6\n"); |
|
printf("@def@b#1{{@bf@gt #1}}\n"); |
|
printf("@catcode`@#=@other\n"); |
|
printf("@end iftex\n"); |
|
printf("@overfullrule=0pt\n"); |
|
|
|
printf("@setfilename %s\n",Title); |
|
printf("@settitle %s\n",Title); |
|
|
|
printf("@titlepage\n"); |
|
printf("@title %s\n",Title); |
|
printf("@subtitle Edition : auto generated by oxgentexi on @today{}\n"); |
|
if (author != NULL) printf("@author %s\n",author); |
|
printf("@end titlepage\n\n"); |
|
printf("@synindex vr fn\n"); |
|
printf("@node Top,, (dir), (dir)\n\n"); |
|
} |
|
|
|
printBye() { |
|
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 */ |