ftp.nice.ch/pub/next/unix/music/cmn.sd.tar.gz#/clispcmn.c

This is clispcmn.c in view mode; [Download] [Up]

/* support for format statements -- called from cmn0.lisp */

#include <stdio.h>

static FILE *fp;

int OpenCMNFile (char *fileName)
{
  fp = fopen(fileName,"w");
  if (fp == NULL) 
    {
      printf("Cannot open %s.\n",fileName);
      fflush(stdout);
      return 1;
    }
return 0;
}

CloseCMNFile (int useless) /* small Clisp FFI bug */
{
  if (fp != NULL) fclose(fp);
  fp = NULL;
}


PrintCMNFile (char *arr)
{
    fprintf(fp,"%s\n",arr);
}

LinetoCMNFile (float arg0, float arg1)
{
    fprintf(fp," %.2f %.2f lineto\n",arg0,arg1);
}

RLinetoCMNFile (float arg0, float arg1)
{
    fprintf(fp," %.2f %.2f rlineto\n",arg0,arg1);
}

MovetoCMNFile (float arg0, float arg1)
{
    fprintf(fp," %.2f %.2f moveto\n",arg0,arg1);
}

RMovetoCMNFile (float arg0, float arg1)
{
    if (arg1 == 8388608.0) arg1 = 0.0; /* small Clisp FFI bug */
    fprintf(fp," %.2f %.2f rmoveto\n",arg0,arg1);
}

CurvetoCMNFile (float arg0, float arg1, float arg2, float arg3, float arg4, float arg5)
{
    fprintf(fp," %.2f %.2f %.2f %.2f %.2f %.2f curveto\n",arg0,arg1,arg2,arg3,arg4,arg5);
}

FillinCMNFile (float arg0, float arg1, float arg2, float arg3, char *cmd)
{
  fprintf(fp," %.2f %.2f %.2f %.2f %s\n",arg0,arg1,arg2,arg3,cmd);
}

GlyphCMNFile (int glf)
{
  fprintf(fp," (\\%d) show\n",glf);
}

FontGlyphCMNFile (char *font, int size, int glf)
{
  fprintf(fp," gsave /%s findfont %d scalefont setfont (\\%d) show grestore\n",font,size,glf);
}

FontTextCMNFile (char *font, int size, char *str)
{
  fprintf(fp," gsave /%s findfont %d scalefont setfont (%s) show grestore\n",font,size,str);
}

StemCMNFile (float arg0, float arg1, float arg2, float arg3)
{
  fprintf(fp," %.2f setlinewidth %.2f %.2f moveto %.2f %.2f lineto stroke 0 setlinewidth\n",arg3,arg0,arg1,arg0,arg2);
}

VerticalLineCMNFile (float arg0, float arg1, float arg2)
{
  fprintf(fp," %.2f %.2f moveto %.2f %.2f lineto\n",arg0,arg1,arg0,arg2);
}

HorizontalLineCMNFile (float arg0, float arg1, float arg2)
{
  fprintf(fp," %.2f %.2f moveto %.2f %.2f lineto\n",arg0,arg1,arg2,arg1);
}

SlantedLineCMNFile (float arg0, float arg1, float arg2, float arg3, float arg4)
{
  fprintf(fp," %.2f %.2f moveto %.2f %.2f lineto %.2f %.2f lineto %.2f %.2f lineto closepath fill\n",
	   arg0,arg1,arg0,arg1+arg4,arg2,arg3+arg4,arg2,arg3);
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.