% Copyright 1986 Michael Urban
% Everyone is granted permission to copy, modify and redistribute
% this file, provided that a currently-dated copy of this
% copyright notice is included in the copy.
% License is granted to produce fonts based on the information
% in this file, provided that such fonts are redistributed
% without charge to any third party.

% SCCS ID @(#)accents.mf        1.1   10/1/86

def centerpt=
        (w-((w-leadgap)/2), xht+3.2thin)
enddef;
        
beginchar (18, shortwidth, cap#, 0); "The grave accent";
        begingroup;
        save x,y;
        pickup elvishpen;
        z0 = centerpt;
        top y1=h; %z1-z0=whatever*(dir tilt);
        lft x1 = leadgap;
        draw z0--z1;
        endgroup;
endchar;
        
beginchar (19, shortwidth, cap#, 0); "The acute accent";
        begingroup;
        save x,y;
        pickup elvishpen;
        z0 = centerpt;
        top y1=h; %z1-z0=whatever*(dir tilt);
        rt x1 = w;
        draw z0--z1;
        endgroup;
endchar;

beginchar (20, shortwidth, cap#, 0); "The check accent";
        begingroup;
        save x,y;
        pickup elvishpen;
        z0 = centerpt;
        top y1=h;
        rt x1 = w;
        top y2=h;
        lft x2 = leadgap;
        draw z2--z0--z1;
        endgroup;
endchar;

beginchar (21, shortwidth, cap#, 0); "The scoop accent";
        begingroup;
        save x,y;
        pickup elvishpen;
        z0 = centerpt;
        top y1=h;
        rt x1 = w;
        top y2=h;
        lft x2 = leadgap;
        draw z2..z0..z1;
        endgroup;
endchar;

beginchar ("^", shortwidth, cap#, 0); "The character ^";
        begingroup;
        save x,y;
        pickup elvishpen;
        x0 = w-((w-leadgap)/2);
        y0 = xht;
        rt x1 = w;
        y1 = xht+3.2thin;
        y2= y1;
        lft x2 = leadgap;
        draw z2--z0--z1;
        endgroup;
endchar;

beginchar ("}", shortwidth, cap#, 0); "The double acute accent";
        begingroup;
        save x,y;
        pickup elvishpen;
        z0 = centerpt;
        top y1=h; %z1-z0=whatever*(dir tilt);
        rt x1 = w;
        draw z0--z1;
        draw ((z0--z1) shifted (2.5*thin*right));
        endgroup;
endchar;


beginchar ("_", shortwidth, cap#, 0); "The dot-above accent (i)";
        begingroup;
        save x,y;
        pickup pensquare scaled thick rotated 45;
        z0 = centerpt;
        drawdot z0;
        endgroup;
endchar;

beginchar (127, shortwidth, cap#, 0); "The umlaut accent (double i)";
        begingroup;
        save x, y;
        pickup pensquare scaled thick rotated 45;
        z0 = centerpt;
        z1 = z0 + thick*left;
        z2 = z0 + thick*right;
        drawdot z1; drawdot z2;
        endgroup;
endchar;

beginchar ("`", shortwidth, cap#, 0); "The character `";
        begingroup;
        save x,y, rightcurl;
        path rightcurl;
        pickup elvishpen;
        z0 = centerpt;
        top y1=h; x1 = .7[x0, w];
        rt x2=w; y2 = .7[y0, h];
        x3 = .8[x0,w]; y1-y2 = y2-y3;
        rightcurl = (z0..tension 2.0..z1{right}..z2..z3);
        draw rightcurl;
        endgroup;
endchar;

beginchar ("\\", shortwidth, cap#, 0); "left quote";
        begingroup;
        save x,y, rightcurl;
        path rightcurl;
        pickup elvishpen;
        z0 = centerpt;
        top y1=h; x1 = .7[x0, w];
        rt x2=w; y2 = .7[y0, h];
        x3 = .8[x0,w]; y1-y2 = y2-y3;
        rightcurl = (z0..tension 2.0..z1{right}..z2..z3);
        draw rightcurl;
        draw (rightcurl shifted (3*thin,0));
        endgroup;
endchar;

beginchar ("'", shortwidth, cap#, 0); "The character '";
        begingroup;
        save x,y;
        pickup elvishpen;
        z0 = centerpt;
        lft x1 = 1/3[leadgap, x0]; top y1 = 3/4[y0,h];
        top y2 = h; x2 = x0;
        y3 = y1; x3-x0 = x0-x1;
        draw z1..z2{right}..z0{down};
        endgroup;
endchar;

beginchar (oct"042", shortwidth, cap#, 0); "The right quote";
        begingroup;
        save x,y, leftcurl;
        path leftcurl;
        pickup elvishpen;
        z0 = centerpt;
        lft x1 = 1/3[leadgap, x0]; top y1 = 3/4[y0,h];
        top y2 = h; x2 = x0;
        y3 = y1; x3-x0 = x0-x1;
        leftcurl =  (z1..z2{right}..z0{down});
        draw leftcurl;
        draw leftcurl shifted ((x1-x0)*right);
        endgroup;
endchar;

beginchar (22, shortwidth, .5[xht#,cap#], 0); "Short top bar";
        begingroup;
        save x,y;
        pickup elvishpen;
        lft x0 = leadgap; rt x1 = w;
        y0=y1=h;
        draw z0--z1;
        endgroup;
endchar;
