二つの文字列を連結する手続き(PostScript)

スタックに詰まれた二つの文字列を連結する手続きです。

% stack : string string
/s2dict 1 dict def
/joinString {
    s2dict begin
    /str     exch def
    /strBase exch def
    /baseLen strBase length def
    /strLen  str     length def
    /newString baseLen strLen add string def  % 二つの文字列長を加算した長さのnull文字列を作ります
    newString 0 strBase putinterval           % 先頭から文字列をコピー
    newString baseLen str putinterval         % 残りに連結する文字列をコピー
    newString
    end
} def

(abcd) ==
(123)  ==
(abcd)    (123)      joinString ==

(本日は)   ==
(晴天なり) ==
(本日は)  (晴天なり) joinString ==

(Hello,) ==
(world!) ==
(Hello,)  (world!)   joinString ==

showpage
$ ps2pdf newLineSjis.ps
% (abcd) ==
(abcd)
% (123)  ==
(123)
% (abcd)    (123)      joinString ==
(abcd123)
% (本日は)   ==
(\226{\223\372\202\315)
% (晴天なり) ==
(\220\260\223V\202\310\202\350)
% (本日は)  (晴天なり) joinString ==
(\226{\223\372\202\315\220\260\223V\202\310\202\350)
% (Hello,) ==
(Hello,)
% (world!) ==
(world!)
% (Hello,)  (world!)   joinString ==
(Hello,world!)