[BACK]Return to oxgentexi.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / util

Diff for /OpenXM/src/util/oxgentexi.c between version 1.2 and 1.3

version 1.2, 2005/04/04 07:36:44 version 1.3, 2005/04/04 12:38:32
Line 1 
Line 1 
 /*  $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.2 2005/04/04 07:36:44 takayama Exp $ */
   
 #include <stdio.h>  #include <stdio.h>
 int Debug = 0;  int Debug = 0;
Line 39  char *Lang="en";
Line 39  char *Lang="en";
 int Include = 0;  int Include = 0;
 int GenExample = 0;  int GenExample = 0;
 int DebugItem = 0;  int DebugItem = 0;
   char *Title = NULL;
   char *Author = NULL;
   
 main(int argc,char *argv[]) {  main(int argc,char *argv[]) {
   char *t;    char *t;
Line 66  main(int argc,char *argv[]) {
Line 68  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 {      }else {
       fprintf(stderr,"Unknown option\n"); exit(1);        fprintf(stderr,"Unknown option\n"); exit(1);
     }      }
Line 113  main(int argc,char *argv[]) {
Line 119  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 312  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 357  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 478  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 511  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 585  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 603  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] == '{') fprintf(fp,"%s","@{");
           else if (s[i] == '}') fprintf(fp,"%s","@}");
           else if (s[i] == '@') fprintf(fp,"%s","@@");
           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 640  outputOfExample(char *com) {
   putchar('\n');    putchar('\n');
 }  }
   
   printTitlePage(char *title, char *author) {
     printf("\\input texinfo\n");
     printf("@def@pi{PI}\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 */

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>