summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/pmpostdir/pmp.ch
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/pmpostdir/pmp.ch')
-rw-r--r--Build/source/texk/web2c/pmpostdir/pmp.ch359
1 files changed, 0 insertions, 359 deletions
diff --git a/Build/source/texk/web2c/pmpostdir/pmp.ch b/Build/source/texk/web2c/pmpostdir/pmp.ch
deleted file mode 100644
index edab992e8ec..00000000000
--- a/Build/source/texk/web2c/pmpostdir/pmp.ch
+++ /dev/null
@@ -1,359 +0,0 @@
-% jMetaPost change file for MetaPost
-%
-% written by Michio Matsuyama <fwhw5892@mb.infoweb.ne.jp>
-% Hideyuki Suzuki <hideyuki@sat.t.u-tokyo.ac.jp>
-%
-% $Id: jmp.ch,v 1.42 2000/03/20 02:55:50 hideyuki Exp $
-
-%
-%
-% change file of mp.w for pMetaPost (CWEB version)
-% Akira Kakuto (translated the WEB version)
-%
-%
-
-@x
-@d default_banner "This is MetaPost, Version 2.00" /* printed when \MP\ starts */
-@y
-@z
-
-@x
-#define metapost_version "2.00"
-@y
-#ifdef UPMP
-#define P_UP "up"
-#define metapost_version "2.00-0.04-u1.27"
-#else
-#define P_UP "p"
-#define metapost_version "2.00-0.04"
-#endif
-#define default_banner "This is " P_UP "MetaPost, Version " metapost_version /* printed when \MP\ starts */
-@z
-
-@x
-# include <unistd.h> /* for access */
-#endif
-@y
-# include <unistd.h> /* for access */
-#endif
-#include <kpathsea/config.h>
-#include <kpathsea/kpathsea.h>
-#include <ptexenc/ptexenc.h>
-#include <errno.h>
-@z
-
-@x
-void mp_close_file (MP mp, void *f) {
- (void) mp;
- if (f != NULL)
- fclose ((FILE *) f);
-@y
-void mp_close_file (MP mp, void *f) {
- (void) mp;
-#ifdef WIN32
- if (f != NULL) {
- clear_infile_enc((FILE *)f);
- fclose ((FILE *) f);
- }
-#else
- if (f != NULL)
- fclose ((FILE *) f);
-#endif
-@z
-
-@x
-mp->buf_size = 200;
-@y
-{
- char *kpse_buf = kpse_var_value("buf_size");
- if(kpse_buf) {
- mp->buf_size = atoi(kpse_buf);
- free(kpse_buf);
- } else {
- mp->buf_size = 500000;
- }
-}
-@z
-
-@x
-static boolean mp_input_ln (MP mp, void *f) {
- /* inputs the next line or returns |false| */
- char *s;
- size_t size = 0;
- mp->last = mp->first; /* cf.\ Matthew 19\thinspace:\thinspace30 */
- s = (mp->read_ascii_file) (mp, f, &size);
- if (s == NULL)
- return false;
- if (size > 0) {
- mp->last = mp->first + size;
- if (mp->last >= mp->max_buf_stack) {
- mp->max_buf_stack = mp->last + 1;
- while (mp->max_buf_stack > mp->buf_size) {
- mp_reallocate_buffer (mp, (mp->buf_size + (mp->buf_size >> 2)));
- }
- }
- (void) memcpy ((mp->buffer + mp->first), s, size);
- }
- free (s);
- return true;
-}
-@y
-static boolean mp_input_ln (MP mp, void *f ) {
- int i = EOF;
- mp->last = input_line2((FILE *)f, mp->buffer, mp->first, mp->buf_size, &i);
- if (i == EOF && errno != EINTR && mp->last == mp->first)
- return false;
- if (i != EOF && i != '\n' && i != '\r') {
- fprintf (stderr, "! Unable to read an entire line---bufsize=%u.\n",
- (unsigned) mp->buf_size);
- fputs ("Please increase buf_size in texmf.cnf.\n", stderr);
- exit (1);
- }
- if (i == '\r') {
- while ((i = getc ((FILE *)f)) == EOF && errno == EINTR)
- ;
- if (i != '\n')
- ungetc (i, f);
- }
- return true;
-}
-@z
-
-@x
-wterm (mp->banner);
-@y
-wterm (mp->banner);
-wterm(" (");
-wterm(getencstring());
-wterm(")");
-@z
-
-@x
-} four_quarters;
-typedef union {
- integer sc;
- four_quarters qqqq;
-} font_data;
-@y
-} four_quarters;
-typedef struct {
- halfword RH, LH;
-} two_halves;
-typedef union {
- two_halves hh;
- integer sc;
- four_quarters qqqq;
-} font_data;
-@z
-
-%
-% tategaki support
-%
-% Suppose h==(0,height), d==(0,-depth) && w==(width,0) in horizontal string,
-% && h==(height,0), d==(-depth,0) && w==(0,-width) in vertical string.
-% Four vertices of the bounding box is h, d, h+w && d+w && those of the
-% transformed boundig box is Th, Td, T(h+w) && T(d+w), so that the values
-% of Th, Td && Tw are compared here.
-
-@x
-@ The height width and depth information stored in a text node determines a
-rectangle that needs to be transformed according to the transformation
-parameters stored in the text node.
-
-@y
-@ The height width and depth information stored in a text node determines a
-rectangle that needs to be transformed according to the transformation
-parameters stored in the text node.
-
-Boundig box depends on JFM font ID.
-
-@d yoko_jfm_id 11 /* `yoko-kumi' fonts */
-@d tate_jfm_id 9 /* `tate-kumi' fonts */
-@d font_jfm_p(A) (mp->font_id[(A)]!=0)
-
-@z
-
-@x
- mp_number x0a, y0a, x1a, y1a, arg1;
- mp_text_node p0 = (mp_text_node)p;
- new_number (x0a);
- new_number (x1a);
- new_number (y0a);
- new_number (y1a);
- new_number (arg1);
- number_clone (arg1, p0->depth);
- number_negate (arg1);
- take_scaled (x1a, p0->txx, p0->width);
- take_scaled (y0a, p0->txy, arg1);
- take_scaled (y1a, p0->txy, p0->height);
-@y
- mp_number x0a, y0a, x1a, y1a, arg1, arg2;
- mp_text_node p0 = (mp_text_node)p;
- new_number (x0a);
- new_number (x1a);
- new_number (y0a);
- new_number (y1a);
- new_number (arg1);
- new_number (arg2);
- number_clone (arg1, p0->depth);
- number_negate (arg1);
- number_clone (arg2, p0->width);
- number_negate (arg2);
- if ( mp->font_id[mp_font_n(p)]!=tate_jfm_id ) {
- take_scaled (x1a, p0->txx, p0->width);
- take_scaled (y0a, p0->txy, arg1);
- take_scaled (y1a, p0->txy, p0->height);
- } else {
- take_scaled (x1a, p0->txy, arg2);
- take_scaled (y0a, p0->txx, arg1);
- take_scaled (y1a, p0->txx, p0->height);
- }
-@z
-
-@x
- take_scaled (x1a, p0->tyx, p0->width);
- number_clone (arg1, p0->depth);
- number_negate (arg1);
- take_scaled (y0a, p0->tyy, arg1);
- take_scaled (y1a, p0->tyy, p0->height);
-@y
- if ( mp->font_id[mp_font_n(p)]!=tate_jfm_id ) {
- take_scaled (x1a, p0->tyx, p0->width);
- number_clone (arg1, p0->depth);
- number_negate (arg1);
- take_scaled (y0a, p0->tyy, arg1);
- take_scaled (y1a, p0->tyy, p0->height);
- } else {
- number_clone (arg1, p0->depth);
- number_negate (arg1);
- number_clone (arg2, p0->width);
- number_negate (arg2);
- take_scaled (x1a, p0->tyy, arg2);
- take_scaled (y0a, p0->tyx, arg1);
- take_scaled (y1a, p0->tyx, p0->height);
- }
-@z
-
-@x
- wlog (mp->banner);
-@y
- wlog (mp->banner);
- wlog (" (");
- wlog (getencstring());
- wlog (")");
-@z
-
-%
-% char type pointers
-@x
-eight_bits *font_bc;
-eight_bits *font_ec; /* first and last character code */
-@y
-eight_bits *font_bc;
-eight_bits *font_ec; /* first and last character code */
-halfword *font_nt;
-halfword *font_id;
-@z
-
-@x
-int *char_base; /* base address for |char_info| */
-@y
-int *char_base; /* base address for |char_info| */
-int *ctype_base;
-@z
-
-@x
-xfree (mp->char_base);
-@y
-xfree (mp->font_id);
-xfree (mp->font_nt);
-xfree (mp->char_base);
-xfree (mp->ctype_base);
-@z
-
-@x
- XREALLOC (mp->char_base, l, int);
-@y
- XREALLOC (mp->font_id, l, halfword);
- XREALLOC (mp->font_nt, l, halfword);
- XREALLOC (mp->char_base, l, int);
- XREALLOC (mp->ctype_base, l, int);
-@z
-
-
-@x
-mp->char_base[null_font] = 0;
-@y
-mp->font_id[null_font] = 0;
-mp->font_nt[null_font] = 0;
-mp->char_base[null_font] = 0;
-mp->ctype_base[null_font] = 0;
-@z
-
-@x
-@d char_mp_info(A,B) mp->font_info[mp->char_base[(A)]+(B)].qqqq
-@y
-@d char_mp_info(A,B) mp->font_info[mp->char_base[(A)]+(B)].qqqq
-@d ctype_char_end(A) (A)].hh.LH
-@d ctype_char(A) mp->font_info[mp->ctype_base[(A)]+ctype_char_end
-@d ctype_type_end(A) (A)].hh.RH
-@d ctype_type(A) mp->font_info[mp->ctype_base[(A)]+ctype_type_end
-@z
-
-%
-% lookup character type table
-@x
-void mp_set_text_box (MP mp, mp_text_node p) {
-@y
-@<Declare JFM function for text measuring@>;
-void mp_set_text_box (MP mp, mp_text_node p) {
-@z
-
-@x
- if ((*(mp_text_p (p)->str + k) < bc) || (*(mp_text_p (p)->str + k) > ec)) {
- mp_lost_warning (mp, f, *(mp_text_p (p)->str + k));
- } else {
- cc = char_mp_info (f, *(mp_text_p (p)->str + k));
-@y
- if ( ((*(mp_text_p (p)->str + k) < bc) || (*(mp_text_p (p)->str + k) > ec)) && (mp->font_id[f]==0) ) {
- mp_lost_warning (mp, f, *(mp_text_p (p)->str + k));
- } else {
- if (mp->font_id[f]!=0) {
-#ifdef UPMP
- integer cx; /* code for Japanese two byte character */
- if (multistrlen(mp_text_p (p)->str, kk, k)>1) {
- cx=fromBUFF(mp_text_p (p)->str, kk, k);
- k=k+multistrlen(mp_text_p (p)->str, kk, k)-1;
- } else {
- cx=*(mp_text_p (p)->str + k);
- }
- cc=char_mp_info(f,mp_lookup_ctype(mp, f, cx));
-#else
- cc=char_mp_info(f,mp_lookup_ctype(mp, f,fromBUFF(mp_text_p(p)->str,limit,k)));
- k++;
-#endif
- } else {
- cc = char_mp_info (f, *(mp_text_p (p)->str + k));
- }
-@z
-
-@x
-@* Debugging.
-@y
-@ @<Declare JFM function for text measuring@>=
-static int mp_lookup_ctype (MP mp,font_number f, integer c)
-{
- int l, u, r, ch;
- l=0; u=mp->font_nt[f]-1;
- while ( l<u ) {
- r=(l+u)/2;
- ch=ctype_char(f)(r);
- if ( ch==c ) {
- return ctype_type(f)(r);};
- if ( ch<c ) l=r+1;
- else u=r-1;
- };
- return 0;
-}
-@* Debugging.
-@z