% Macros to draw macron accents using accent-pointed chardefs
% map files and hacccm 

cmchar "Macron (bar) accent";
numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
beginchar(oct"026",9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
italcorr h#*slant-.75u#;
adjust_fit(0,0);
numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
pickup if serifs: crisp.nib else: fine.nib fi;
pos1(macron_breadth,90); pos2(macron_breadth,90);
top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
filldraw stroke z1e--z2e;  % bar
if monospace: currentpicture:=currentpicture shifted(0,1/2aspect_ratio*dot_size); fi
makeACCENT(MacronPic);
currentpicture:=nullpicture;
z1'=0.25[z1,z2]; z2'=0.75[z1,z2];
pos1'(macron_breadth,90); pos2'(macron_breadth,90);
filldraw stroke z1'e--z2'e;  % bar
if monospace: currentpicture:=currentpicture shifted(0,1/2aspect_ratio*dot_size); fi
makeACCENT(ShortMac);
endgroup;

extra_endchar:=
  " czu ap(MacronPic);  ah; oechar; ";
%extra_endchar:=
%  " czu whap(MacronPic,ShortMac,6.5u);  ah; oechar; ";
boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.

def cp = macron enddef;