-
-
Notifications
You must be signed in to change notification settings - Fork 29
Hardcopy to printer #2290
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hardcopy to printer #2290
Conversation
|
I tested on Linux Mint 22.1 Cinnamon and I still get the same error when printing from both TEdit and |
|
If you break ShellCommand and try
(COPYFILE 'GREP.TEDIT '{LPT})
do you still see a -P parameter in the CMD string ?
(When you pop out of the break, you will probably get an error on CLOSEF because the file is already closed. That's a different issue I will fix in COPYFILE.
… On Sep 12, 2025, at 1:36 AM, Paolo Amoroso ***@***.***> wrote:
pamoroso
left a comment
(Interlisp/medley#2290)
<#2290 (comment)>
I tested on Linux Mint 22.1 Cinnamon and I still get the same error when printing from both TEdit and COPYFILE.
—
Reply to this email directly, view it on GitHub <#2290 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AQSTUJKE363DHUO3X7V34HT3SKA2RAVCNFSM6AAAAACGJWQPUCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTEOBUGMYTIMRVGQ>.
You are receiving this because you authored the thread.
|
|
And, if you
(COPYFILE 'GREP.TEDIT '{LPT}foo)
you should see a -Pfoo parameter
… On Sep 12, 2025, at 8:17 AM, Ron Kaplan ***@***.***> wrote:
If you break ShellCommand and try
(COPYFILE 'GREP.TEDIT '{LPT})
do you still see a -P parameter in the CMD string ?
(When you pop out of the break, you will probably get an error on CLOSEF because the file is already closed. That's a different issue I will fix in COPYFILE.
> On Sep 12, 2025, at 1:36 AM, Paolo Amoroso ***@***.***> wrote:
>
>
> pamoroso
> left a comment
> (Interlisp/medley#2290)
> <#2290 (comment)>
> I tested on Linux Mint 22.1 Cinnamon and I still get the same error when printing from both TEdit and COPYFILE.
>
> —
> Reply to this email directly, view it on GitHub <#2290 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AQSTUJKE363DHUO3X7V34HT3SKA2RAVCNFSM6AAAAACGJWQPUCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTEOBUGMYTIMRVGQ>.
> You are receiving this because you authored the thread.
>
|
|
With the call |
|
Sorry, that's the first command, to convert the PS to PDF. Say OK to that, look at the command for the second call to ShellCommand, that should show the bogus printer.
… On Sep 12, 2025, at 9:01 AM, Paolo Amoroso ***@***.***> wrote:
pamoroso
left a comment
(Interlisp/medley#2290)
<#2290 (comment)>
With the call (COPYFILE 'BITMAPFNS.TEDIT '{LPT}foo) I get this command string:
7_: ?=
Cmd = "command -v ps2pdf"
&OPTIONAL
Output = #<IO Nodircore Stream/127,131000>
—
Reply to this email directly, view it on GitHub <#2290 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AQSTUJI5IBXFIRGDAWWW2U33SLU47AVCNFSM6AAAAACGJWQPUCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTEOBVHA2DQNBTGM>.
You are receiving this because you authored the thread.
|
|
Here's the command string for the second call: |
|
That looks reasonable. If you say OK, it should fail with a failure message about foo.
But if you copy it to {LPT} without the foo, it should print.
… On Sep 12, 2025, at 1:28 PM, Paolo Amoroso ***@***.***> wrote:
pamoroso
left a comment
(Interlisp/medley#2290)
<#2290 (comment)>
Here's the command string for the second call:
7_: ?=
Cmd = "lpr -Pfoo -JMedley\ Output -r -s /tmp/medleyprint.17876778821"
&OPTIONAL
Output = {WINDOW}#156,167570
—
Reply to this email directly, view it on GitHub <#2290 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AQSTUJM2524O6IX3UDLUJGT3SMUFPAVCNFSM6AAAAACGJWQPUCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTEOBWG4ZTOMJVHE>.
You are receiving this because you authored the thread.
|
|
Calling This is the backtrace: |
|
Ahh, I have DEFAULTPRINTINGHOST set to the empty string "" in my init. Try setting it before you do the COPYFILE.
Maybe that setting should be in the system greet file. (Or maybe the code should interpret NIL as whatever lpr can find)
… On Sep 12, 2025, at 1:41 PM, Paolo Amoroso ***@***.***> wrote:
pamoroso
left a comment
(Interlisp/medley#2290)
<#2290 (comment)>
Calling (COPYFILE 'BITMAPFNS.TEDIT '{LPT}) yields the error:
DEFAULTPRINTINGHOST and HOST are NIL; don't know where to print
{LPT1}.;1
Stream not open: {LPT1}.;1
This is the backtrace:
14_: BTV
MESS1
"DEFAULTPRINTINGHOST and HOST arg are NIL; don't know where to print "
MESS2 {LPT}.;1
NOBREAK NIL
ERROR
SI::*CLEANUP-FORMS* SI::RESETUNWIND
FULLFILE {LPT}.;1
STRM #<Input Stream on {LPT}.;1/146,37000>
FILETYPE TEDIT
PRINTERTYPE NIL
PFILE #<Input Stream on {LPT}.;1/146,37000>
SI::*UNWIND-PROTECT*
FILE #<Input Stream on {LPT}.;1/146,37000>
HOST NIL
PRINTOPTIONS (DELETE T HEADING T)
LISPXHIST ((&) (12 "" . "_ ") "<not yet evaluated>"
*HISTORY* (REDO 6) NIL)
SI::*RESETFORMS* ((& NIL))
RESETSTATE NIL
SEND.FILE.TO.PRINTER
STREAM #<Input Stream on {LPT}.;1/146,37000>
SDEV #<FDev LPT/172,15000>
PRINTOPTIONS NIL
PRINTERDEVICE.CLOSEFN
\CLOSEFILE
CLOSEF
SI::*CLEANUP-FORMS* SI::RESETUNWIND
SI::*UNWIND-PROTECT*
FROMFILE BITMAPFNS.TEDIT
TOFILE {LPT}
LISPXHIST ((&) (12 "" . "_ ") "<not yet evaluated>"
*HISTORY* (REDO 6) NIL)
SI::*RESETFORMS* ((&
#<Input Stream on {LPT}.;1/146,37000>) (&
#<Closed Stream on {DSK}<home>paolo>medley>medley>lispusers>BITMAPFNS.TEDIT;1/146,37200>))
RESETSTATE NIL
COPYFILE
*FORM* (COPYFILE (QUOTE BITMAPFNS.TEDIT) (QUOTE {LPT}
))
*ARGVAL* NIL
*TAIL* NIL
*FN* COPYFILE
\EVALFORM
FAULTEVAL
*FORM* (UNDOABLY (COPYFILE & &))
\EVALFORM
\INTERNAL NIL
EVAL
EVAL-INPUT
RETRYFLAG NIL
HELPCLOCK 10338
DO-EVENT
SI::*DUMMY-FOR-CATCH* T
SI::*CATCH-RETURN-FROM* (&)
LISPXHIST ((&) (12 "" . "_ ") "<not yet evaluated>"
*HISTORY* (REDO 6) NIL)
HELPCLOCK 0
XCL::EXECA0001A0002
*CURRENT-EVENT* ((&) (12 "" . "_ ")
"<not yet evaluated>" *HISTORY* (REDO 6) NIL)
SI::NLSETQ-VALUE NIL
*PROCEED-CASES* (&)
SI::*NLSETQFLAG* NIL
XCL::EXECA0001
\PROGV
XCL::TOP-LEVEL-P T
XCL::WINDOW {WINDOW}#156,167664
XCL::TITLE-SUPPLIED NIL
XCL::TITLE NIL
*THIS-EXEC-COMMANDS* (#<Hash-Table @ 166,33666>)
XCL::ENVIRONMENT NIL
XCL::PROMPT NIL
XCL::FN EVAL-INPUT
XCL::PROFILE INTERLISP
*EXEC-ID* ""
XCL::PROFILE-CACHE (XCL::*PROFILE-NAME* "IL"
XCL:*EVAL-FUNCTION* EVAL *PACKAGE* #<Package INTERLISP>
*READTABLE* #<ReadTable INTERLISP/174,54714>
XCL:*EXEC-PROMPT* "_ " --)
EXEC
\PROC.REPEATEDLYEVALQT
*FORM* (\PROC.REPEATEDLYEVALQT)
*ARGVAL* NIL
*TAIL* NIL
*FN* \PROC.REPEATEDLYEVALQT
\EVALFORM
%#FORM# (\PROC.REPEATEDLYEVALQT)
*CURRENT-PROCESS* #<Process EXEC/174,11204>
HELPFLAG BREAK!
\CURRENTDISPLAYLINE 0
\#DISPLAYLINES 20
\LINEBUF.OFD #<IO Linebuffer Stream/167,125600>
*READTABLE* #<ReadTable INTERLISP/174,54714>
\PRIMTERMTABLE {TERMTABLEP}#174,47740
\PRIMTERMSA {CHARTABLE}#174,50000
TtyDisplayStream #<Output Display Stream/174,55000>
SI::*RESETFORMS* NIL
\INTERRUPTABLE T
\TTYWINDOW NIL
READBUF NIL
\TERM.OFD #<Output Display Stream/167,123600>
*STANDARD-OUTPUT* #<Output Display Stream/167,123600>
*STANDARD-INPUT* #<IO Linebuffer Stream/167,125600>
\MAKE.PROCESS0
T
—
Reply to this email directly, view it on GitHub <#2290 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AQSTUJLVC27EYZPESG667N33SMVYHAVCNFSM6AAAAACGJWQPUCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTEOBWG43DKNZRHE>.
You are receiving this because you authored the thread.
|
|
What value should I set |
|
Set it to the empty string
… On Sep 12, 2025, at 2:40 PM, Paolo Amoroso ***@***.***> wrote:
pamoroso
left a comment
(Interlisp/medley#2290)
<#2290 (comment)>
What value should I set DEFAULTPRINTINGHOST to? "{LPT}"?
—
Reply to this email directly, view it on GitHub <#2290 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AQSTUJJVXTW7YJECBOXAT3D3SM4TDAVCNFSM6AAAAACGJWQPUCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTEOBWHEZDKNZRGY>.
You are receiving this because you authored the thread.
|
|
I set |
|
Hmm, try something else to see how broken it is.
With DEFAULTPRINTINGHOST set to NIL, click meta-P in when the mouse is in a Tedit window, choose send to printer. It should only give the "Other" option to choose.
If you then set it to "", it should also give a Default-printer option to choose in addition to the Other.
… On Sep 13, 2025, at 1:43 AM, Paolo Amoroso ***@***.***> wrote:
pamoroso
left a comment
(Interlisp/medley#2290)
<#2290 (comment)>
I set DEFAULTPRINTINGHOST to the empty string but I still get the no default destination error.
—
Reply to this email directly, view it on GitHub <#2290 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AQSTUJLJ3VG2TWDR2ZSF52T3SPKM3AVCNFSM6AAAAACGJWQPUCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTEOBXHAYTIMRZGI>.
You are receiving this because you authored the thread.
|
|
This was a problem reported earlier, separate from the DEFAULTPRINTINGHOST issue.
This is a symptom of what now appears to be a mistake I made when I slapped in the hack of created PDF streams by first making a postscript file but with a tricky close-function that gives the completed PS file to the shell, runs the local ps-to-pdf converter, and then renames the shell's output PDF file back to the specified name of the Lisp PDF file.
This works well when the pdf file on the Lisp side is really a named file. But doesn't work when the destination file is an unnamed stream on the Lisp side (e.g. a NODIRCORE, or equivalently a file on the {SCRATCH} device (which I just discovered)). There is nothing to rename back to. Copying to LPT uses such a scratch file and so does SEND.FILE.TO.PRINTER.
The better approach is to create the PDF file/stream with the postscript imageops, so that it acts like postscript with respect to all of the image operations but retains its own identity. At the close, run the ps-to-pdf on it (first copying it over to /tmp if it doesn't already reside in the Unix file system), and then COPYBYTES the generated pdf file back into the Lisp stream. I.e. use COPYBYTES at the stream level instead of RENAMEFILE at the name level.
… On Sep 12, 2025, at 9:01 AM, Paolo Amoroso ***@***.***> wrote:
pamoroso
left a comment
(Interlisp/medley#2290)
<#2290 (comment)>
With the call (COPYFILE 'BITMAPFNS.TEDIT '{LPT}foo) I get this command string:
7_: ?=
Cmd = "command -v ps2pdf"
&OPTIONAL
Output = #<IO Nodircore Stream/127,131000>
—
Reply to this email directly, view it on GitHub <#2290 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AQSTUJI5IBXFIRGDAWWW2U33SLU47AVCNFSM6AAAAACGJWQPUCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTEOBVHA2DQNBTGM>.
You are receiving this because you authored the thread.
|
|
Here is the information for completeness.
|
|
DEFAULTPRINTINGHOST can be a list of printer names, there is a list of printer types and properties, the unixprint code should be registering a name or names that can be used with the lpr -P option for named printers, or with the empty string it should leave off the -P to get the system default Unix printer. If things aren’t getting registered properly then things won’t work smoothly |
|
I updated to commit 5dc4ca2 and the issues described earlier still persist. |
|
@pamoroso, issues still concerning the DEFAULTPRINTINGHOST ? |
|
I forgot to mention |
|
A number of changes:
|
|
You mean it didn't come back to the exec? I.e., it was hanging somewhere inside the printing code?
… On Jan 19, 2026, at 11:57 AM, Paolo Amoroso ***@***.***> wrote:
pamoroso
left a comment
(Interlisp/medley#2290)
<#2290 (comment)>
With commit 5b73cf2 <5b73cf2> AND the printer name constrained as you advised Medley did send the printing job to the spooler, which eventually sent the job to the printer. But the Linux printer status warned that no suitable destination was found, then the Medley Exec no longer showed the prompt. Not even after the printer ejected the paper after printing, like in this case:
hardcopy.png (view on web) <https://github.com/user-attachments/assets/443562f1-80e2-4886-ad07-fbdeaaf9f3c6>
4_ (PUTPROP ***@***.*** 'PRINTERTYPE
'UNIX)
UNIX
5_ (COPYFILE "{UNIX}/tmp/BITMAPFNS.TEDIT"
***@***.***")
{UNIX}<tmp>medley-1798821155-677-lpt.
To regain the prompt I had to press Ctrl-D.
—
Reply to this email directly, view it on GitHub <#2290 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AQSTUJJNZP3UMX6PYSEVMH34HUZJ5AVCNFSM6AAAAACGJWQPUCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTONRZHEYTOOJQGY>.
You are receiving this because you were mentioned.
|
|
Yes, it didn't come back to the Exec, probably hanging somewhere inside the printing code. |
|
@nbriggs noted that (COPYFILE 'FOO.PDF '{LPT}VIEWER) was calling Textedit instead of Preview to view the file. Hopefully, this fixes that issue. More file-name screwing around. |
|
@pamoroso , on the issue that it doesn't seem to come back to the exec, can you (TRACE ShellCommand) to see whether it actually returns? |
No need to have special entries for POSTSCRIPT.TEXT and PDF.TEXT,
|
I updated to commit 31c4695 and tested with The print job completed successfully and the
|
|
That's weird. The PUTPROPS case makes me hopeful that this doesn't have anything to do with hardcopy.
But here is another unrelated question: How did you get your typein transcript (4_ (PUTPROP...)) into your comment?
It looks like the MCCS character codes are not being converted back to UTF-8. If you did it by producing a dribble file, then we have another external format question: should DRIBBLE produced UTF-8 files or leave them as MCCS?
… On Jan 20, 2026, at 3:22 AM, Paolo Amoroso ***@***.***> wrote:
pamoroso
left a comment
(Interlisp/medley#2290)
<#2290 (comment)>
I updated to commit 31c4695 <31c4695> and tested with ShellCommand traced and the same printer naming constraints.
The print job completed successfully and the COPYFILE call still didn't come back to the Exec, but it turns out all I needed to do to get back the prompt was to press ENTER. I got the same issue with the PUTPROP call as you can see in the dribble. This is weird as I immediately get back the prompt when evaluating any other expression at the Exec.
4_ (PUTPROP ***@***.*** 'PRINTERTYPE
'UNIX)
UNIX
5_
5_ (TRACE ShellCommand)
(ShellCommand)
6_ (COPYFILE "{UNIX}/tmp/BITMAPFNS.TEDIT"
***@***.***")
{UNIX}<tmp>medley-1798876826-787-lpt.
7_
7_
shellcommand.png (view on web) <https://github.com/user-attachments/assets/d56cc3f4-c6fa-4da7-a21d-cfb4b34602f8>
—
Reply to this email directly, view it on GitHub <#2290 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AQSTUJKUA3XMCEC23QMN47L4HYFWPAVCNFSM6AAAAACGJWQPUCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTONZSGM3TQNZTG4>.
You are receiving this because you were mentioned.
|
|
They look like underscores in the printer settings and in the Linux editor? And if you then paste into something else, like Word? When that string gets into Medley, can you look at the actual charcode for the not sign?
… On Jan 20, 2026, at 9:16 AM, Paolo Amoroso ***@***.***> wrote:
pamoroso
left a comment
(Interlisp/medley#2290)
<#2290 (comment)>
I generated the transcript with DRIBBLE and pasted the resulting file in the GitHub comment. The printer name includes those logical not ¬ symbols but I have no idea how they get there. To enter the printer name at the Medley Exec I do this:
copy to the clipboard the printer name from the printer settings tool on Linux
paste the printer name into a Linux editor where I complete the Lisp form by manually typing the rest
copy the completed expression from the Linux editor
paste the expression at the Medley Exec
In step 2 I also tried manually deleting the underbars from the printer name and typing them again.
Here is a dribble listing the PUTPROP expression fully typed by hand in Medley, including the printer name:
4_ (PUTPROP ***@***.*** 'PRINTERTYPE
'UNIX)
UNIX
dribble.png (view on web) <https://github.com/user-attachments/assets/2506574e-8325-4429-bdb3-211b71f938c1>
—
Reply to this email directly, view it on GitHub <#2290 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AQSTUJI3EN7RQCLBEP2SL4D4HZPFXAVCNFSM6AAAAACGJWQPUCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTONZUGAZTIOJWGA>.
You are receiving this because you were mentioned.
|
|
Why don't you paste the Linux printer string directly into an email and send it to me directly, without going through a github comment.
… On Jan 20, 2026, at 10:07 AM, Paolo Amoroso ***@***.***> wrote:
pamoroso
left a comment
(Interlisp/medley#2290)
<#2290 (comment)>
Yes, the symbols look like underscores in both the printer settings and in the Linux editor.
Here's a test. I copied the printer name from this Linux tool via right-click on the printer > Rename > Ctrl-C:
printers.png (view on web) <https://github.com/user-attachments/assets/aa1b7fd8-b438-4f77-ab0c-2e0a284c0fc4>
Then I pasted with Ctrl-V into LibreOffice Writer as I don't have Office:
libreoffice-writer.png (view on web) <https://github.com/user-attachments/assets/68555314-dd1e-4504-9870-e776ac661a6b>
From LibreOffice Writer I copied with Ctrl-C the first underbar and pasted it into a CHARCODE call at a Medley Exec:
charcode1.png (view on web) <https://github.com/user-attachments/assets/facc7005-4508-4f3c-b1ca-5f7075598054>
I also pasted a logical not symbol copied from one of my above comments:
charcode2.png (view on web) <https://github.com/user-attachments/assets/3c2e2801-80bf-4ce7-aed4-35ba66c5d0b9>
However, the logical not symbols show up only on GitHub and they appear nowehere on Medley in my printer tests.
—
Reply to this email directly, view it on GitHub <#2290 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AQSTUJLUJP7NBDWBHGYUKDL4HZVHBAVCNFSM6AAAAACGJWQPUCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTONZUGI2TONRUGM>.
You are receiving this because you were mentioned.
|
|
I sent you the printer name pasted into an email. |
|
Paolo and I did some more experiments, confirming that the character-code problem comes from the fact that the dribble file is MCCS by default. If the copy into a github comment is done from a Linux opening of that file, you will see bad characters. If the clipboard copy is done from a Tedit of the dribble file, it will be correct. |
|
Not just dribble files -- should files opened on the {UNIX} device be UTF-8 by default, while files opened on the {DSK} device remain MCCS? |
That's an intriguing question that does deserve its own issue, or discussion. The primary point of dribble files in the modern Medley era is to capture output for external consumption, don't you think? That argues for using a non-MCCS format, and UTF-8 is the obvious choice. |
|
Well, not necessarily for external consumption, for consumption inside Medley too. For example, I often look at the loadup dribbles (when I screw up the loadup).
Is there an eay way in github to extract this sequence of comments into a separate issue?
… On Jan 20, 2026, at 1:01 PM, Herb Jellinek ***@***.***> wrote:
hjellinek
left a comment
(Interlisp/medley#2290)
<#2290 (comment)>
Not just dribble files -- should files opened on the {UNIX} device be UTF-8 by default, while files opened on the {DSK} device remain MCCS? I think we should open a separate issue for this.
That's an intriguing question that does deserve its own issue, or discussion.
The primary point of dribble files in the modern Medley era is to capture output for external consumption, don't you think? That argues for using a non-MCCS format, and UTF-8 is the obvious choice.
—
Reply to this email directly, view it on GitHub <#2290 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AQSTUJOVX6PZWTXILJYRSJT4H2JTXAVCNFSM6AAAAACGJWQPUCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTONZUHEZTEMZQG4>.
You are receiving this because you were mentioned.
|
|
I don't think there's a way in GitHub to extract a sequence of comments into a separate issue. But a new issue can link to the first relevant comment of the encoding discussion which may be this one: or this: |
|
I updated to commit 778f652, still looking good. Are there Bravo files I can test? |
|
Minor update to UNIXPRINT so that the printername UNIX maps to the default printer of type UNIX. (Otherwise, PRINTERTYPES would have had the entry (NIL UNIX) instead of (UNIX UNIX), which seems uninformative) |
|
I tested commit d7691be and the change works as expected. |
pamoroso
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good after a lot of testing.







This addresses the issues described in #2289 .
-- The \CORE.DIRECTORYNAMEP in COREIO uses FILENAMEFIELD to extract the directory field for comparison
-- COPYCHARS in FILEIO assumes that ANY EOL convention on the source file matches whatever is specified for the destination, so COPYCHARS reverts to COPYBYTES. (ANY as the default on input was something that was introduced after another discussion some time ago #345 ).
-- HARDCOPY has had a lot of cleanup, including removing redundancy and unused code, eliminating special case for PRESS and INTERPRESS. The hardcopydisplaystream still needs a lot of clean up--not sure that it ever worked. Not sure it was ever documented.
I have tested COPYFILE to {LPT} of both Tedit files and PDF files, and also doing the Hardcopy to a printer directly from Tedit.