* GITFNS: prc ignores PRs from other owners
The menu just includes Interlisp PR's. Fixing it to deal with other owners will take more work.
* JSON: JSON-GET takes a list of attributes
A convenience for accessing objects embedded in objects
* GITFNS: a minor cleanup
* Remove JSON-GET left over
* Put the git commands to install remotes in comments
So we don't have to rediscover them when we decide to fix prc to deal with this issue.
MANAGER called PF with function NAME in a variable. BUT PF is NLAMBDA so didn't eval its argument. Changed to use CL:APPLY*.
Moved the process function from a local LAMBDA in Manager.DO.COMMAND to a separate named function.
Tweaked prompt strings for the "CopyDef" and "Rename All" item menu commands.
So the full set of available PRs (with their draft/approved status) remains visible. You can poke from one to the other. May be useful when we go through the PRs in Monday meetings. (Still doesn't bother with a menu at all if there is only one PR to work on.)
On this first pass, the menu is placed (but not attached) just under the current exec window, on the hope that this keeps it out of the way of the windows that are created during the comparison.
Try it, let me know how this feels, whether this is an improvement over the previous pop-up.
* GITFNS gets prc information in JSON form
prc uses the simple JSON parser in the new lispusers file JSON to convert the json string into a lisp data structure. Maybe the commonlisp package YASON that Matt looked at would be more general, but perhaps also requires more understanding.
With this change, drafts should be marked with D, approves should be marked with A.
* Quote branch names in git commands -- attempt to fix issue #1691
---------
Co-authored-by: rmkaplan <ron.kaplan@post.harvard.edu>
This now builds in knowledge of which Titan and Terminal fonts actually exist, so it doesn't try to increase the size to a black hole. Still a hack, but there are so many MOVD's involved that it is really hard to see how to do it with a generic FIND-NEXT-LARGEST-FONT.
This includes some files in lispusers that are not in the Tedit core but had references to Tedit internal functions (TMAX, DOC-OBJECTS and some others) that have been renamed. (I hope to clean out those internal references, at some point.)
A few additional changes are here to track the changes that were recently made in the unrenamed master branch. Going forward, I want to make future changes in this branch.
Eventual plan is to introduce a Tedit package and do another systematic renaming of all \TEDIT.xxx functions to TEDIT::xxx, this is a first step.
This does not yet include a backward-compatibility mapping of oldnames to newnames, as was discussed in the technical meeting.
(Lots of changes in file because change from FAST-formatted to PRETTY-formatted file. Actually only 1 line of code changed.)
Second, cleaned up, attempt.
* GREP: avoids tedit-file formatting, font change chars in Lisp source files, adds TGREP
* Oops, TAB is not a fontchange character
* Updated documentation GREP.TEDIT
* Avoids EXPORTS.ALL by doing SYSREC1
* Don't change the outcharfn
* Make it work on Tedit files
* Print out the filename instead of the stream for Tedit files
* INSPECT: Sort datatype fields alphabetically, fixed a small bug
* INSPECT: Sort only DATATYPE records
* VIRTUALKEYBOARD: fix loadup
* Reorganizing VIRTUALKEYBOARDS as described in #1267
* KEYBOARDEDITOR: fixed one bug, still is out of step
* MEDLEYDIR: Pack DSK as the default HOST on the value of (UNIX-GETENV "MEDLEYDIR")
* Move KEYBOARDCONFIGS KEYBOARDEDIT to library/virtualkeyboards
This collects all files relevant to VIRTUALKEYBOARDS into the same subdirectory
* NEARESTCORNER must be onscreen (addresses #1294
Mouse jumps to the nearest onscreen corner of the ghost region
* EQUALALL tests equivalence of bitmaps and big bitmaps
* Oops, off by one
* INSPECT: had wrong test in deciding whether to sort or not
* Improve check for closed stream in \UFSCloseFile.
Check if the (STREAM ACCESS) bits are NIL, indicating a closed stream, and
if so do not attempt to close the file again
* COMPAREDIRECTORIES, COMPARESOURCES, COMPARETEXT, EXAMINEDEFS
Relatively minor cleanups, little or no functionality improvements
* Remove calls to OPENFILE
OPENFILE is a residual Interlisp function that returns a litatom instead of a stream. In almost all cases, this immediate causes an error that litatom files are no longer supported. I have found (FINDCALLERS) all the examples in lispusers/sources/library/ and replaced OPENFILE with OPENSTREAM (except for the calls from \PEEKPUP and \PEEKNS, that I didn't track down). There was a trivai call in COMPILE.FILECHECK in COMPILE, but that function is not called anywhere. So I removed it.
* ADIR: remove OPENFILE calls, also another stab at \COPYSYS
With respect to \COPYSYS, this replaces the draft PR #1263. This applies TRUEFILENAME at the start, but remembers whether it was in fact a pseudohost and restores that for the return value. So if you start in a pseudo world you end up there.
* Next version of TEDIT core files
* Update
* Update
* UPDATE
* UPDATE
* UPDATE: FORCE-END fix
* FILEIO: OPENSTREAM parameters default to STREAMPROP
also add LINELENGTH
* Expose useful subfunctions
* TEDITDORADOKEYS - compatibility with new declarations
* Update tedit-exports.all
* * removed from title when all changes are undone
* Delete old tedit fiels
* Add TEDIT.FILEDATE
* REGISTER-TYPED-REGION creates a new TYPED-REGIONS entry
If a window is closed whose region is of an as-yet-unknown type, a new entry will be added implicitly to TYPED-REGIONS to that that region and future regions of that type can be recycled.
* COMPAREDIRECTORIES: Get AUTHOR only if selected
This may provide a little speed up. But of more importance, almost all the array crashes I am seeing are underneath (GETFILEINFO xxx 'AUTHOR). The UFS implementation may be smashing array space, or maybe it is just detecting the corruption. For now, I'm eliminating this potential source of bad behavior.
* Hilighting and caret flashing in split windows
* A little more on window splitting caret/hilights
* Rename caret functions
* REGIONMANAGER: Compatibility with REGIONMANAGER PR
* EXAMINEDEFS: Better interpretation of TYPE NIL = (FNS FUNCTIONS) with better formatting
* Refining caret behavior, importing separate changes also in other PRs for compatibility
* Mostly dealing with highlighting and caret flashing in split windows
* FONTPROFILE: specvars declaration for cleanliness
* Prep for UTF8, a little performance tuning
* Meta EOL = non-paragraph linebreak
* Back-scrolling based on linebreak characters, not paragraph breaks, also eliminate obsolete code
* FIddling around with window titles (getting *'s when changed), dealing with titles not computed by Tedit
* Recompile DOC-OBJECTS because \DIRTY bit has changed
* COMPARETEXT: fixed to avoid EOF error if EOL gets confused
* CLIPBOARD (bug fix also a separate PR)
* \TEXTBOUT of EOL doesn't create a paragraph, though typing does
Otherwise, every line in a plaintext or lisp sourcefile is a separate paragraph, which adds unnecessary overhead.
* TEDIT-PCTREE: Move some straggling piece and btree functions to their proper home
* Change \TEDIT2 to \TEDIT1 as a way of recognizing a Tedit process
* Prepping for more speed up in SEEing of large source files
* Miscellaneous stability/maintenance/performance changes
Fixes the TEDIT.TITLEMENUFN problem, adds TEDIT.COLLECT.OBJECTS
* TEDIT-FILE : fix readers for obsolete Tedit file formats
* Cleanout misplaced pane/ files
* Fix for most of the lispusers/ hardcopy failures
They all had to do with the diacritic overbar in Env-os.
* Another diacritic glitch
* MODERNIZE: Fixed off by one bug in NEARESTCORNER
* Update tedit-exports.all
* The "HELP PURGE" problem, plus a little cleanup
* hide initial caret in menus
* TEDIT-LOOKS, TEDIT-PCTREE: prep for reducing FIXP's
* LLSYMBOL's FILEMAP was also incomplete
This update hopefully won't reveal any other problems
* Introduce NOTSPLITTABLE TEXTPROPERTY
If T, window-splitting cannot happen for this text stream. Hopefully removes need for Notecards advice on \TEDIT.SPLITW.
* PSEUDHOSTS and .TEDIT: Apply TRUEFILENAME on PREFIX, update documentation
Documentation addresses #1303 . Using TRUEFILENAME makes sure it always goes to a ground instance in e.g. (PSEUDOHOST 'MEDLEY '{MEDLEY}).
* Don't allow Put of readonly file
* Inverted selection (black) hilights in readonly texts
More visible than a little underline when there is no blinking cursor
* Remove redundant type-tests
The I.S.OPRs test the I.V. type for lines and pieces, so that field accesses can safely be fast inside the loops
* MULTIPLE-HARDCOPY: at least fix obvious issues with new Tedit
Also avoided FILELST as a bound variable. This needs work and maybe a little support from Tedit--it shouldn't be advising and unadvising a Tedit function.
* TEDIT-SELECTION: Fix hilighting glitch with READONLY texts
(Shift select should have its usual highlighting)
* TEDIT menus are not splittable
* TEDIT-FILE fixes imageobj bug in old Tedit formats
Revealed by running HCFILES
* Improve conversion of unformatted to formatted
Also cache HINTPC inside \CHTOPC
* Fix to pageregion problem in old versions
Also adds TEDIT.NCHARS
* Code cleanup after testing faster scrolling
* EXTERNALFORMAT: \CHECKECOLC macro confusedf ANY vs CR EOL convention
* Recompile callers of \CHECKEOLC macro
* EXTERNALFORMAT: \CHECKECOLC macro confusedf ANY vs CR EOL convention
* Recompile callers of \CHECKEOLC macro
* Mostly work on scrolling and HCFILE issues
* Trying to fix PSEUDHOSTS conficts
* PDFSTREAM
Backing up to fix merge problems
* update EXTERNALFORMAT to avoid conflicdt
* Mostly diacritic display and hardcopy
* Change DIRTY field to LDIRTY
* Added new user function TEDIT.FINDLOOKS
* WINDOWOBJ: READIMAGEOBJ doesn't ask for permission
If the image object is on a hyphenated file and it can find a nonhyphenated sister, it loads that. If that doesn't provide the getfn, it tries the original file.
* If ANY and no CR after LF, return EOL instead of CR
* Move charset management to externalformat (addresses #1454)
Removed IMCHARSET from IMAGEOPS declaration, added FORMATCHARSETFN to EXTERNALFORMAT, put XCCS charset handling in the XCCS externalformat.
* XCCS, fixed a glitch
* Fix EXTERNALFORMAT clash
* Mostly CHARENCODING
* TEDIT-PF-SEE: Use TEDIT.ATOMBOUND.READTABLE
Tedit word-selection → atom selection in source files
* For merging with new charset arrangement
* Mostly work on hardcopy-display
Also asks before it saves a plaintext file as a formatted file
* Changing to hardcopy display doesn't mark "dirty"
* Mostly Put and Get, reorganizing for UTF8, plus odds and ends
* Straggler: TMAX-XREF.LCOM
* Meta-EOL
* Fix and extend page-format updates
Original TEDIT.PAGEFORMAT was unsafe and less useful. Also did not update history for undoing.
* Use window's screen's height/width to test offscreen
* Write and read unbreakable character property
* Don't suggest put-name if TEMPLATE
* 2 point hilight if readonly
* Mostly proper treatment of invisible pieces and forward char-delete
* Forward word delete, better paragraph selection, cleanup, lisp source atom selection
* fix conflicts for merge
* fix incompatible merge
* Updates including UTF-8 plaintext files
Other continuing cleanups
* Continue edit after writing out UTF-8 plaintext
* TEDIT-FILE EOL stays EOL after putting to a different EOL convention
for continued editing.
* Update EXTERNALFORMAT from master
* Get rid of needless file change
* EOL processing
* Fix Lafite glitches
Including relaxing constraints on the order of pieces in Tedit files.
* Unsplit any existing panes before main window is reused
* TEDIT-FILE glitch
* Better TEDIT.FORMATTEDFILEP, more TEDIT.CONCAT
* Headings with concatenated Tedit files
* Adjust page headers and numbers
* Reshaping reestablishes the YBOT of PLINES
* Tighten up on binable, better error when binning on empty textstream
* TEDIT.PUT.STREAM, left click gives point selection
* TEDIT.PUT.STREAM
* Unhighlighting of menu buttons
related to point vs. single-character selection
* Better behavior when moving to foreign target
also some cleanup of the file-putting code
* More improvements to cursor tracking
* Single-char shift-selection (lost an edit)
* Try it again
* Suppress EOF error
* BIN instead of GETBASEBYTE, more cleanup of buttonevent and TEDIT.PUT
* Mostly work on process and menu configuration
* A little more careful in choosing the current selection (as opposed to prior search target) for find and substitutes
Use the selection if it is greater than a single character, otherwise the prior target. meta,G is available for clearly just repeating the prior target.
* Make the names of the Tedit menu process more distinctive
E.g. TEDIT-Charlooks instead of TEDIT#2. TEDIT and TEDIT#n stand out as the document processes.
* Logically correct undo of Move between different documents
The destination document keeps the delete event in the source, if it is still the most recent source event when the move is undone, the deletion is undone in the source. Otherwise, the deletion is ignored.
* Line spacing reflects offsets
* TEXTPROP returns length
* TEDIT-HISTORY: Redo of a move just does a new-location insert
* remove unwanted cpv from PR
* Removed the unecessary SPTEXTOBJ field in SELPIECES, move work on move-undo
* Fix hardcopy bug
* More work on the hardcopy interface
* TEDIT-FILE addresses put of empty stream (issue #1577)
---------
Co-authored-by: Nick Briggs <nicholas.h.briggs@gmail.com>
Co-authored-by: Larry Masinter <lmm@acm.org>
* DINFO was expecting to use a closed textstream without reopening
Not sure why it got closed. Also fixed some escaped backquote commas (not sure that was necessary, but...)
* Oops, dropped out the PROG1
* Start of a DEMO facility to run demos and part of automatied testing from inside Medley
Originally done for the BALISP 2023 talk. Possibly of use for building tests as well as demos.
* Mostly minor fixups (typos, formatting) to a few existing documentation files
Plus converting the Unicode documentation from TXT to formatted
* Update UNICODE.TEDIT
Previous version did not have page-looks (heading location etc.)
* UNICODE.TEDIT: write unbreakable charlook property
* Delete UNICODE.TEDIT
Master has a newer version, trying to eliminate conflict
* PSEUDHOSTS and .TEDIT: Apply TRUEFILENAME on PREFIX, update documentation
Documentation addresses #1303 . Using TRUEFILENAME makes sure it always goes to a ground instance in e.g. (PSEUDOHOST 'MEDLEY '{MEDLEY}).
* PSEUDOHOSTS.LCOM and .TEDIT
Appear to have gotten out of step
* Fixes some of the character mappings from Ascii fonts into NS, moves Math mappings into Interpress
The separate lispusers/MATHTONS is now obsolete.
* INTERPRESS: Add back empty ASCIITONSTRANSLATIONS
Turns out they were intended, not a mistake. But that was just a shorthand for saying MODERN, as a fall back. I made that explicit.
* NEARESTCORNER must be onscreen (addresses #1294
Mouse jumps to the nearest onscreen corner of the ghost region
* MODERNIZE: Fixed off by one bug in NEARESTCORNER
* COMPAREDIRECTORIES, COMPARESOURCES, COMPARETEXT, EXAMINEDEFS
Relatively minor cleanups, little or no functionality improvements
* COMPAREDIRECTORIES: Get AUTHOR only if selected
This may provide a little speed up. But of more importance, almost all the array crashes I am seeing are underneath (GETFILEINFO xxx 'AUTHOR). The UFS implementation may be smashing array space, or maybe it is just detecting the corruption. For now, I'm eliminating this potential source of bad behavior.
* EXAMINEDEFS: Better interpretation of TYPE NIL = (FNS FUNCTIONS) with better formatting
* COMPARETEXT: fixed to avoid EOF error if EOL gets confused
* Expose useful subfunctions
* REGISTER-TYPED-REGION creates a new TYPED-REGIONS entry
If a window is closed whose region is of an as-yet-unknown type, a new entry will be added implicitly to TYPED-REGIONS to that that region and future regions of that type can be recycled.
* If a window with a typed-region is reshaped and then closed, the typed-region is also reshaped for reuse
Also, the typed-region of a window is pushed on the front of the TYPED-REGIONS list when the window is closed, so the most recent region of that type will be used the next time. Recency seems more intuitive than primacy
* Remove calls to OPENFILE
OPENFILE is a residual Interlisp function that returns a litatom instead of a stream. In almost all cases, this immediate causes an error that litatom files are no longer supported. I have found (FINDCALLERS) all the examples in lispusers/sources/library/ and replaced OPENFILE with OPENSTREAM (except for the calls from \PEEKPUP and \PEEKNS, that I didn't track down). There was a trivai call in COMPILE.FILECHECK in COMPILE, but that function is not called anywhere. So I removed it.
* ADIR: remove OPENFILE calls, also another stab at \COPYSYS
With respect to \COPYSYS, this replaces the draft PR #1263. This applies TRUEFILENAME at the start, but remembers whether it was in fact a pseudohost and restores that for the return value. So if you start in a pseudo world you end up there.
---------
Co-authored-by: Larry Masinter <lmm@acm.org>
* File See operations use full path to loaded file.
Add Manager.WINDOW-ANCHOR to fix corner from which MANAGER-MAIN-WINDOW grows, and (attempt) to keep it on-screen.
* Improved handling of the ICONW for MANAGER-MAIN-WINDOW.
* Fix typo in MasterScope functions (multiple occurrences: LOADBFLG should be LOADDBFLG).
Changed to CL compiler by default (not need to go to submenu). This is my preference, so I should remove it before setting pull request.
* Manual cleanup of multiple "Edited" comments in 4 FNS.
Reverted: Changed to CL compiler by default (not need to go to submenu). (From commit f60c6362)
* Update MANAGER.TEDIT documentation file.
Fix error in previous commit. (Changes that I thought were there, were not.)
Cleanup COMMON-MAKE COMS so it can be handled by the file package, and add .LCOM file to the repo.
* PDFSTREAM: first implementation
Makes PS file, then applies separate utility (if available) to convert PS to PDF
* POSTSCRIPTSTREAM: Adds extra field to postscript data for PDFSTREAM filename
* HARDCOPY: fixes printer menu
* PDFSTREAM: define PDF fonts as POSTSCRIPT fonts
* PDFSTREAM: fix convert template
* PDFSTREAM: Fix logic around closing the postscript sub-stream
* PDF Stream: slight generalization
* PDFSTREAM uses AFTERCLOSE streamprop so doesn't require change to POSTSCRIPTSTREAM
* UNIXUTILS: moved PROCESS-COMMAND and SLASHIT from GITFNS and PSEUDOHOST resp.
PROCESS-COMMAND executes a command in process-stream, like ShellCommand, but returns a completion code and not what happens in the shell. SLASHIT is an approximation (doesn't deal with versions) of converting a Medley file name to its Unix equivalent, to use in commands
* GITFNS: PROCESS-COMMAND moved to UNIXUTILS, cleanups from previous (unexamined) PR
The other PR will be cleaned out
* PSEUDOHOSTS: Moved SLASHIT to UNIXUTILS, also includes minor change in previous (unexamined) PR, to be removed
* PDFSTREAM: wrapped FULLNAME around TRUEFILENAME
* Restore POSTSCRIPTSTREAM
* UNIXUTILS: Added UNIX-FILE-NAME
Produces a Unix filename corresponding to a Medley file name (slashes, version number). For use in ShellCommand an PROCESS-COMMAND.
* PDF-STREAM: added SEE-PDF
A little stub that (on a mac) does a shell command to open Preview on the Unix-named file corresponding to a medley name
(Also added back some key functions that got lost in a bad edit)
* Pick up master changes
---------
Co-authored-by: Larry Masinter <lmm@acm.org>
* SPY.POINTERS is always T (no 2-byte atoms)
* Set SPY to not record entries when in \BACKGROUND-YIELD or (conditionally) backgroudn process
* Use \IGNORE.BACKGROUND as global variable, initially T; clean up declarations
* changes used DECLARE%%: incorrectly, now fixed
* FILEWATCH: Shift select names, plus show PSEUDOFILENAMES
* FILEWATCH: Copied file is a string, not an atom
Modern systems tend to allow spaces and other funky characters in filenames. COPYINSERT doesn't automatically escape. But generally we are moving towards strings. (Shift-select from FILEBROWSER has the same problem)