[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.6 and 1.14

version 1.6, 2005/04/06 09:26:29 version 1.14, 2005/08/15 16:28:59
Line 1 
Line 1 
 /*  $OpenXM: OpenXM/src/util/oxgentexi.c,v 1.5 2005/04/06 05:08:11 takayama Exp $ */  /*  $OpenXM: OpenXM/src/util/oxgentexi.c,v 1.13 2005/07/21 11:29:16 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
Line 16  struct item {
Line 18  struct item {
   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 166  struct item * newItem(){
Line 172  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;
 }  }
   
Line 233  printItem(struct item *it) {
Line 236  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 372  struct item *getItem() {
Line 377  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 411  struct item *getItem() {
Line 417  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 475  printTexi(FILE *fp, struct item *it) {
Line 484  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 505  printTexi_common(FILE *fp,struct item *it) {
Line 522  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 619  printTexi1(FILE *fp, struct item *it) {
Line 639  printTexi1(FILE *fp, struct item *it) {
   
 outputExample(FILE *fp,char *s) {  outputExample(FILE *fp,char *s) {
   int i;    int i;
     /* Remove unnecessary spaces at the tail. */
     for (i=strlen(s)-1; i>=0; i--) {
           if (s[i] == '\n') break;
           else if (s[i] <= ' ') {s[i] = 0;}
           else break;
     }
   for (i=0; s[i] != 0; i++) {    for (i=0; s[i] != 0; i++) {
         if (s[i] == '@') {          if (s[i] == '@') {
           if (s[i+1] == '{') {fprintf(fp,"%s","@{"); i += 1;}            if (s[i+1] == '{') {fprintf(fp,"%s","@{"); i += 1;}
Line 662  outputOfExample(char *com) {
Line 688  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 672  printTitlePage(char *title, char *author) {
Line 698  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 685  printTitlePage(char *title, char *author) {
Line 712  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 */

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.14

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