1" Test :hardcopy 2 3func Test_printoptions_parsing() 4 " Only test that this doesn't throw an error. 5 set printoptions=left:5in,right:10pt,top:8mm,bottom:2pc 6 set printoptions=left:2in,top:30pt,right:16mm,bottom:3pc 7 set printoptions=header:3,syntax:y,number:7,wrap:n 8 set printoptions=duplex:short,collate:n,jobsplit:y,portrait:n 9 set printoptions=paper:10x14 10 set printoptions=paper:A3 11 set printoptions=paper:A4 12 set printoptions=paper:A5 13 set printoptions=paper:B4 14 set printoptions=paper:B5 15 set printoptions=paper:executive 16 set printoptions=paper:folio 17 set printoptions=paper:ledger 18 set printoptions=paper:legal 19 set printoptions=paper:letter 20 set printoptions=paper:quarto 21 set printoptions=paper:statement 22 set printoptions=paper:tabloid 23 set printoptions=formfeed:y 24 set printoptions= 25 set printoptions& 26 27 call assert_fails('set printoptions=paper', 'E550:') 28 call assert_fails('set printoptions=shredder:on', 'E551:') 29 call assert_fails('set printoptions=left:no', 'E552:') 30endfunc 31 32func Test_printmbfont_parsing() 33 " Only test that this doesn't throw an error. 34 set printmbfont=r:WadaMin-Regular,b:WadaMin-Bold,i:WadaMin-Italic,o:WadaMin-Bold-Italic,c:yes,a:no 35 set printmbfont= 36 set printmbfont& 37endfunc 38 39func Test_printheader_parsing() 40 " Only test that this doesn't throw an error. 41 set printheader=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P 42 set printheader=%<%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %P 43 set printheader=%<%f%=\ [%1*%M%*%n%R%H]\ %-19(%3l,%02c%03V%)%O'%02b' 44 set printheader=...%r%{VarExists('b:gzflag','\ [GZ]')}%h... 45 set printheader= 46 set printheader& 47endfunc 48 49" Test that :hardcopy produces a non-empty file. 50" We don't check much of the contents. 51func Test_with_syntax() 52 if has('postscript') 53 edit test_hardcopy.vim 54 set printoptions=syntax:y 55 syn on 56 hardcopy > Xhardcopy 57 let lines = readfile('Xhardcopy') 58 call assert_true(len(lines) > 20) 59 call assert_true(lines[0] =~ 'PS-Adobe') 60 call delete('Xhardcopy') 61 set printoptions& 62 endif 63endfunc 64 65func Test_fname_with_spaces() 66 if !has('postscript') 67 return 68 endif 69 split t\ e\ s\ t.txt 70 call setline(1, ['just', 'some', 'text']) 71 hardcopy > %.ps 72 call assert_true(filereadable('t e s t.txt.ps')) 73 call delete('t e s t.txt.ps') 74 bwipe! 75endfunc 76 77func Test_illegal_byte() 78 if !has('postscript') || &enc != 'utf-8' 79 return 80 endif 81 new 82 " conversion of 0xff will fail, this used to cause a crash 83 call setline(1, "\xff") 84 hardcopy >Xpstest 85 86 bwipe! 87 call delete('Xpstest') 88endfunc 89 90