% Macros to draw underscore 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
transform Tf; Tf=identity shifted(-.5w+slant*(-h-.25x_height),aspect_ratio*(-h-.25x_height));
savePicture(MacronPic);
endgroup;
extra_endchar:=
  " czdm ap(MacronPic);  ad; oechar; ";
boolean dotson; dotson=true; % don't omit dots on i, j, and possibly etc.

def cp =ubar enddef;