turns out theres a little more to it, at least then i first thought.
i wrote a couple short test scripts, heres what came back, using openedge 10.0b gui -
Code:
message length( "~n" ) asc( "~n" ) view-as alert-box.
returns length 1 and chr(10)
Code:
define var pBuffer as memptr no-undo.
define var str as char no-undo.
define var i as int no-undo.
/* create test file */
output to test.prn /*** binary no-convert */ .
put unformatted "~n".
/* put skip(1). */
output close.
/* read test file */
set-size( pBuffer ) = 1000.
input from test.prn binary no-convert.
import pBuffer.
str = get-string( pBuffer, 1 ).
input close.
set-size( pBuffer ) = 0.
/* display file content */
repeat i = 1 to length( str ):
display i asc( substr( str, i, 1 ) ).
end. /* repeat */
returns chr(13) and chr(10), and just chr(10) with binary no-convert, i got back the same results using put skip(1).
so, looks like chr(10) is converted to chr(13) and chr(10) when not outputing in binary mode, in windows.
oh, anyways absolutely use skip, or down frame *if you can* inserting "~n" is more of a hack.