Logo Search packages:      
Sourcecode: makejvf version File versions  Download package

main.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

FILE *vfp,*afp=NULL;
char *atfmname,*vtfmname,*afmname,*vfname,*kanatfm;
int kanatume=-1,chotai=0,baseshift=0,minute=0;

FILE *vfopen();

main(argc,argv)
int argc;
char **argv;
{
      int i,j;

      if (argc < 3) {
            usage();
            exit(0);
      }

      argv++;

      for (;**argv=='-';argv++) {
            switch ((*argv)[1]) {
            case 'k':
                  if ((*argv)[2]!='\0') {
                        kanatume = atoi(&(*argv)[2]);
                  }
                  else {
                        kanatume = atoi(*(++argv));
                  }
                  break;
            case 'K':
                  if ((*argv)[2]!='\0') {
                        kanatfm = strdup(&(*argv)[2]);
                  }
                  else {
                        kanatfm = strdup(*(++argv));
                  }
                  break;
            case 'C':
                  chotai=1;
                  break;
            case 'a':
                  if ((*argv)[2]!='\0') {
                        afmname = strdup(&(*argv)[2]);
                  }
                  else {
                        afmname = strdup(*(++argv));
                  }
                  if ((afp = fopen(afmname,"r"))==NULL) {
                        fprintf(stderr,"no AFM file, %s.\n",afmname);
                        exit(-1);
                  }
                  break;
            case 'b':
                  if ((*argv)[2]!='\0') {
                        baseshift = atoi(&(*argv)[2]);
                  }
                  else {
                        baseshift = atoi(*(++argv));
                  }
                  break;
            case 'm':
                  minute=1;
                  break;
            default:
                  usage();
                  exit(0);
            }
      }

      if (kanatume>=0 && !afp) {
            fprintf(stderr,"No AFM file for kanatume.\n");
            exit(-1);
      }

      atfmname = malloc(strlen(*argv)+4);
      strcpy(atfmname,*argv);

      vfname = malloc(strlen(*argv)+4);
      strcpy(vfname,*argv);
      for (i = strlen(vfname)-1 ; i >= 0 ; i--) {
            if (vfname[i] == '/') {
                  vfname = &vfname[i+1];
                  break;
            }
      }
      if (!strcmp(&vfname[strlen(vfname)-4],".tfm")) {
            vfname[strlen(vfname)-4] = '\0';
      }
      strcat(vfname,".vf");

      argv++;

      vtfmname = strdup(*argv);
      if (!strcmp(&vtfmname[strlen(vtfmname)-4],".tfm")) {
            vtfmname[strlen(vtfmname)-4] = '\0';
      }

      tfmget(atfmname);

      maketfm(vtfmname);

      if (kanatfm) {
            if (!strcmp(&kanatfm[strlen(kanatfm)-4],".tfm")) {
                  kanatfm[strlen(kanatfm)-4] = '\0';
            }
            maketfm(kanatfm);
      }

      vfp = vfopen(vfname);

      for (i=0;i<94;i++)
            for (j=0;j<94;j++)
                  writevf((0x21+i)*256+(0x21+j),vfp);

      vfclose(vfp);

      exit(0);
}

usage()
{
      fprintf(stderr,"MAKEJVF ver.1.1a -- make Japanese VF file.\n");
      fprintf(stderr,"%% makejvf [<options>] <TFMfile> <PSfontTFM>\n");
      fprintf(stderr,"options:\n");
      fprintf(stderr,"-C           長体モード\n");
      fprintf(stderr,"-K <TFMfile> 非漢字部用に作成するPSフォントTFM名\n");
      fprintf(stderr,"-b <数値>    ベースライン補正\n");
      fprintf(stderr,"             文字の高さを1000として整数で指定\n");
      fprintf(stderr,"             プラスで文字が下がり、マイナスで文字が上がる\n");
      fprintf(stderr,"-m           縦書き時にクオート(’”)の代わりにミニュート(′″)を使用\n");
      fprintf(stderr,"-a <AFMfile> AFMファイル名(かな詰め時に使用)\n");
      fprintf(stderr,"-k <数値>    かな詰めマージン指定\n");
      fprintf(stderr,"             文字幅を1000として整数で指定。-aオプションと共に使用\n");
}

Generated by  Doxygen 1.6.0   Back to index