From: Emden R. Gansner Date: Fri, 31 Oct 2014 17:47:08 +0000 (-0400) Subject: Fix missing LEFT_RIGHT case in drawing cell borders; X-Git-Tag: TRAVIS_CI_BUILD_EXPERIMENTAL~144 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=94e5fc254cb66cb1cdab327556c4745e11ce352b;p=graphviz Fix missing LEFT_RIGHT case in drawing cell borders; add regression test for borders --- diff --git a/lib/common/htmltable.c b/lib/common/htmltable.c index 3a1b31312..fddc93f79 100644 --- a/lib/common/htmltable.c +++ b/lib/common/htmltable.c @@ -314,6 +314,8 @@ static void doBorder(GVJ_t * job, htmldata_t * dp, boxf b) break; case BORDER_LEFT|BORDER_RIGHT : AF[0] = AF[4]; + gvrender_polyline(job, AF, 2); + gvrender_polyline(job, AF+2, 2); break; } } else { diff --git a/rtest/graphs/sides.gv b/rtest/graphs/sides.gv new file mode 100644 index 000000000..ef5e631e6 --- /dev/null +++ b/rtest/graphs/sides.gv @@ -0,0 +1,19 @@ +graph { + abc [shape=none, label = < + + + + + + + + + + + + + + +
bottom
right
top
left
bottomright
righttop
topleft
leftbottom
bottomrighttop
righttopleft
topleftbottom
leftbottomright
topbottom
leftright
> ] +} + diff --git a/rtest/nshare/sides_dot.ps b/rtest/nshare/sides_dot.ps new file mode 100644 index 000000000..ace54b482 --- /dev/null +++ b/rtest/nshare/sides_dot.ps @@ -0,0 +1,358 @@ +%!PS-Adobe-3.0 +%%Creator: graphviz version 2.39.0 (20141024.1718) +%%Title: %3 +%%Pages: (atend) +%%BoundingBox: (atend) +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval +EncodingVector 45 /hyphen put + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset graphviz 0 0 +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + scale +} bind def + +% styles +/solid { [] 0 setdash } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def +/tapered { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw text fitted to its expected width +/alignedtext { % width text + /text exch def + /width exch def + gsave + width 0 gt { + [] 0 setdash + text stringwidth pop width exch sub text length div 0 text ashow + } if + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def +/showpage { } def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/layerlen layercolorseq length def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer 1 sub layerlen mod get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource +%%EndProlog +%%BeginSetup +14 default-font-family set_font +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +setupLatin1 +%%Page: 1 1 +%%PageBoundingBox: 36 36 173 498 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 137 462 boxprim clip newpath +1 1 set_scale 0 rotate 40 40 translate +% abc +gsave +1 setlinewidth +solid +0 0 0 nodecolor +newpath 19.5 418 moveto +110.5 418 lineto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +45 424.8 moveto 40 (bottom) alignedtext +1 setlinewidth +solid +0 0 0 nodecolor +newpath 110.5 387 moveto +110.5 408 lineto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +51.5 393.8 moveto 27 (right) alignedtext +1 setlinewidth +solid +0 0 0 nodecolor +newpath 110.5 377 moveto +19.5 377 lineto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +56 362.8 moveto 18 (top) alignedtext +1 setlinewidth +solid +0 0 0 nodecolor +newpath 19.5 346 moveto +19.5 325 lineto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +55.5 331.8 moveto 19 (left) alignedtext +1 setlinewidth +solid +0 0 0 nodecolor +newpath 19.5 294 moveto +110.5 294 lineto +110.5 315 lineto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +31.5 300.8 moveto 67 (bottomright) alignedtext +1 setlinewidth +solid +0 0 0 nodecolor +newpath 110.5 263 moveto +110.5 284 lineto +19.5 284 lineto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +42.5 269.8 moveto 45 (righttop) alignedtext +1 setlinewidth +solid +0 0 0 nodecolor +newpath 110.5 253 moveto +19.5 253 lineto +19.5 232 lineto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +46.5 238.8 moveto 37 (topleft) alignedtext +1 setlinewidth +solid +0 0 0 nodecolor +newpath 19.5 222 moveto +19.5 201 lineto +110.5 201 lineto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +35.5 207.8 moveto 59 (leftbottom) alignedtext +1 setlinewidth +solid +0 0 0 nodecolor +newpath 19.5 170 moveto +110.5 170 lineto +110.5 191 lineto +19.5 191 lineto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +22.5 176.8 moveto 85 (bottomrighttop) alignedtext +1 setlinewidth +solid +0 0 0 nodecolor +newpath 110.5 139 moveto +110.5 160 lineto +19.5 160 lineto +19.5 139 lineto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +33.5 145.8 moveto 63 (righttopleft) alignedtext +1 setlinewidth +solid +0 0 0 nodecolor +newpath 110.5 129 moveto +19.5 129 lineto +19.5 108 lineto +110.5 108 lineto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +26.5 114.8 moveto 77 (topleftbottom) alignedtext +1 setlinewidth +solid +0 0 0 nodecolor +newpath 19.5 98 moveto +19.5 77 lineto +110.5 77 lineto +110.5 98 lineto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +22.5 83.8 moveto 85 (leftbottomright) alignedtext +1 setlinewidth +solid +0 0 0 nodecolor +newpath 19.5 46 moveto +110.5 46 lineto +stroke +1 setlinewidth +solid +0 0 0 nodecolor +newpath 110.5 67 moveto +19.5 67 lineto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +36 52.8 moveto 58 (topbottom) alignedtext +1 setlinewidth +solid +0 0 0 nodecolor +newpath 19.5 36 moveto +19.5 15 lineto +stroke +1 setlinewidth +solid +0 0 0 nodecolor +newpath 110.5 15 moveto +110.5 36 lineto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +42 21.8 moveto 46 (leftright) alignedtext +1 setlinewidth +solid +0 0 0 nodecolor +newpath 8 4 moveto +8 450 lineto +121 450 lineto +121 4 lineto +closepath stroke +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +%%BoundingBox: 36 36 173 498 +end +restore +%%EOF diff --git a/rtest/tests.txt b/rtest/tests.txt index ffa6e2663..8215d59cb 100644 --- a/rtest/tests.txt +++ b/rtest/tests.txt @@ -344,3 +344,8 @@ xlabels = dot png neato png + +sides += +dot ps +