EGNILGES@pucc.Princeton.EDU (Ed Nilges) (05/26/89)
Bug in HyperTalk? I'm gradually building a library of standard techniques expressed as functions in Hypertalk. This library includes nl2char and char2nl, two functions which respectively convert newlines to symbols (the function default of <nl> can be user-overridden) and symbols back to newlines. Thus: put "a" into line 1 of container put "b" into line 2 of container put nl2char(container) will yield "a<nl>b". "put nl2char(container,"/")" will yield "a/b", and "put char2nl(nl2char(container))" should yield the original string. However, a bug/feature of HyperTalk is making it difficult for these two functions to be truly inverse. Hypertalk won't append null lines to the end of a container: put "a" into container put "" into line 2 of container put number of lines of container will type 1...not 2 (try it; I've tested this uner 1.2.1 and 1.2.2) This entails that put number of lines of char2nl("a<nl>") will yield 1 in the message box, not 2, and worse nl2char(char2nl(...<nl>)) won't equal ...<nl> Any ideas? I'd observe at this point that improper handling of nulls can be a serious flaw in an interpretive language. Edward Nilges "If the universe were perfect, it wouldn't exist" - Yogi Berra