Compare commits
26 Commits
medley-250
...
medley-250
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d6253dbffd | ||
|
|
ba4250d8fe | ||
|
|
654a925074 | ||
|
|
357406e7d8 | ||
|
|
72032afdde | ||
|
|
87fafe901e | ||
|
|
7f3a3d1f81 | ||
|
|
30af8ea5cb | ||
|
|
d26e29f0d0 | ||
|
|
c5dd583468 | ||
|
|
356fd62478 | ||
|
|
60195c4f31 | ||
|
|
499e3ab77a | ||
|
|
145d240346 | ||
|
|
a398d40630 | ||
|
|
90326613d1 | ||
|
|
96945e63e3 | ||
|
|
e686790bc1 | ||
|
|
e09feb7b6a | ||
|
|
5534e85a12 | ||
|
|
38f417907a | ||
|
|
04d98d232f | ||
|
|
9dc408c81a | ||
|
|
330c5a01a7 | ||
|
|
2499b3546e | ||
|
|
7ad65469b1 |
7
.github/workflows/doHCFILES.yml
vendored
7
.github/workflows/doHCFILES.yml
vendored
@@ -52,6 +52,12 @@ jobs:
|
||||
- name: Checkout Medley repo
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Checkout maiko
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: ${{ github.repository_owner }}/maiko
|
||||
path: ./maiko
|
||||
|
||||
- name: Checkout notecards
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
@@ -79,6 +85,7 @@ jobs:
|
||||
--repo ${{ github.repository_owner }}/maiko \
|
||||
--pattern '*-linux.x86_64.tgz'
|
||||
tar -xzf /tmp/maiko.tgz
|
||||
touch ./maiko/linux.x86_64/.skip
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.MU_TOKEN }}
|
||||
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
(DEFINE-FILE-INFO PACKAGE (PROGN (DEFPACKAGE "CLOS-BROWSER" (USE "CLOS") (EXPORT "CLOS-ICON"
|
||||
"CLOS-BROWSER" "ADD-BROWSER-METHOD" "BROWSE-CLASS")) (CLFIND-PACKAGE "USER")) READTABLE "XCL" BASE
|
||||
10)
|
||||
(DEFINE-FILE-INFO PACKAGE (PROGN (DEFPACKAGE "CLOS-BROWSER" (USE "CLOS" "LISP") (EXPORT "CLOS-ICON"
|
||||
"CLOS-BROWSER" "ADD-BROWSER-METHOD" "BROWSE-CLASS")) (CLFIND-PACKAGE "USER")) READTABLE "XCL" BASE
|
||||
10)
|
||||
|
||||
(IL:FILECREATED " 5-Dec-2023 12:07:41" IL:{CLOS}NEW-CLOS-BROWSER.\;3 91622
|
||||
(IL:FILECREATED "28-Apr-2025 18:32:38"
|
||||
IL:|{DSK}<Users>arunwelch>DOCUMENTS>MEDLEY-WORKSPACE>RELEASE>NEW-CLOS-BROWSER.;4| 91934
|
||||
|
||||
:EDIT-BY "mth"
|
||||
:EDIT-BY "akw"
|
||||
|
||||
:CHANGES-TO (IL:PROPS (IL:NEW-CLOS-BROWSER IL:MAKEFILE-ENVIRONMENT))
|
||||
|
||||
:PREVIOUS-DATE " 5-Dec-2023 00:58:05" IL:{CLOS}NEW-CLOS-BROWSER.\;2)
|
||||
:PREVIOUS-DATE "26-Apr-2025 17:16:46"
|
||||
IL:|{DSK}<Users>arunwelch>DOCUMENTS>MEDLEY-WORKSPACE>RELEASE>NEW-CLOS-BROWSER.;3|)
|
||||
|
||||
|
||||
; Copyright (c) 1991, 2020, 2023 by Venue.
|
||||
|
||||
(IL:PRETTYCOMPRINT IL:NEW-CLOS-BROWSERCOMS)
|
||||
|
||||
(IL:RPAQQ IL:NEW-CLOS-BROWSERCOMS
|
||||
@@ -275,7 +275,7 @@
|
||||
|
||||
(IL:PUTPROPS IL:NEW-CLOS-BROWSER IL:MAKEFILE-ENVIRONMENT (:PACKAGE (PROGN (XCL:DEFPACKAGE
|
||||
"CLOS-BROWSER"
|
||||
(:USE "CLOS")
|
||||
(:USE "CLOS" "LISP")
|
||||
(:EXPORT "CLOS-ICON"
|
||||
"CLOS-BROWSER"
|
||||
"ADD-BROWSER-METHOD"
|
||||
@@ -1159,9 +1159,14 @@ Below this line operates on individual slots and methods."
|
||||
(DOCUMENTATION (SLOT-VALUE CLOS-BROWSER::SELF 'CLOS-BROWSER::CLASS)))
|
||||
|
||||
(DEFMETHOD CLOS-BROWSER::PRINT-CLASS ((CLOS-BROWSER::SELF CLOS-BROWSER::CLOS-BROWSER-NODE))
|
||||
(PPRINT (IL:GETDEF (SLOT-VALUE (SLOT-VALUE CLOS-BROWSER::SELF `CLOS-BROWSER::CLASS)
|
||||
'CLOS::NAME)
|
||||
'CLOS-BROWSER::CLASSES)))
|
||||
(IF (IL:HASDEF (SLOT-VALUE (SLOT-VALUE CLOS-BROWSER::SELF 'CLOS-BROWSER::CLASS)
|
||||
'CLOS::NAME)
|
||||
'CLOS-BROWSER::CLASSES)
|
||||
(PPRINT (IL:GETDEF (SLOT-VALUE (SLOT-VALUE CLOS-BROWSER::SELF `CLOS-BROWSER::CLASS)
|
||||
'CLOS::NAME)
|
||||
'CLOS-BROWSER::CLASSES))
|
||||
(IL:PROMPTPRINT "No Printable Definition for the class " (SLOT-VALUE CLOS-BROWSER::SELF
|
||||
'WEB::NAME))))
|
||||
|
||||
(DEFMETHOD CLOS-BROWSER::SPECIALIZE-CLASS ((CLOS-BROWSER::NODE CLOS-BROWSER::CLOS-BROWSER-NODE)
|
||||
&OPTIONAL CLOS-BROWSER::FORM CLOS-BROWSER::NEW-CLASS-NAME)
|
||||
@@ -1211,7 +1216,8 @@ Below this line operates on individual slots and methods."
|
||||
(RETURN))))))
|
||||
(IL:SETCURSOR CLOS-BROWSER::ORIGINALCURSOR))))))
|
||||
|
||||
(DEFUN CLOS-BROWSER::LYRIC-COMPLETE-SPECIALIZE (IGNORE STRUCTURE)
|
||||
(DEFUN CLOS-BROWSER::LYRIC-COMPLETE-SPECIALIZE (IGNORE STRUCTURE)
|
||||
(IL:* IL:\; "Edited 26-Apr-2025 14:31 by arunwelch")
|
||||
(LET ((CLOS-BROWSER::ORIGINALCURSOR (IL:CURSOR)))
|
||||
(UNWIND-PROTECT
|
||||
(PROGN (IL:SETCURSOR IL:WAITINGCURSOR)
|
||||
@@ -1224,8 +1230,7 @@ Below this line operates on individual slots and methods."
|
||||
(IL:* IL:|;;| "check for bug")
|
||||
|
||||
(WHEN (SYMBOLP CLOS-BROWSER::SUB-CLASS)
|
||||
(SETQ CLOS-BROWSER::SUB-CLASS (CLOS::SYMBOL-CLASS CLOS-BROWSER::SUB-CLASS
|
||||
)))
|
||||
(SETQ CLOS-BROWSER::SUB-CLASS (FIND-CLASS CLOS-BROWSER::SUB-CLASS)))
|
||||
(DOLIST (CLOS-BROWSER::BROWSER (SLOT-VALUE CLOS-BROWSER:CLOS-ICON
|
||||
'CLOS-BROWSER::CLASS-BROWSERS))
|
||||
(DOLIST (CLOS-BROWSER::SUPER-CLASS (SLOT-VALUE CLOS-BROWSER::SUB-CLASS
|
||||
@@ -1387,14 +1392,12 @@ Below this line operates on individual slots and methods."
|
||||
(0 (FORMAT T "Unspecialized methods cannot be copied. ~A" (CLOS::FULL-METHOD-NAME
|
||||
CLOS-BROWSER::METHOD NIL)))
|
||||
(1 (SETQ CLOS-BROWSER::FROM-CLASS (CAR CLOS-BROWSER::NON-T-CLASSES)))
|
||||
(OTHERWISE (SETQ CLOS-BROWSER::FROM-CLASS (CLOS::SYMBOL-CLASS
|
||||
(IL:PROMPTFORWORD (FORMAT NIL
|
||||
(OTHERWISE (SETQ CLOS-BROWSER::FROM-CLASS (FIND-CLASS (IL:PROMPTFORWORD
|
||||
(FORMAT NIL
|
||||
"Which class in ~A do you wish to move from?"
|
||||
(
|
||||
CLOS::FULL-METHOD-NAME
|
||||
|
||||
CLOS-BROWSER::METHOD
|
||||
NIL))))))))
|
||||
(CLOS::FULL-METHOD-NAME
|
||||
CLOS-BROWSER::METHOD
|
||||
NIL))))))))
|
||||
|
||||
(IL:* IL:|;;| "should contain from-class. If it is not the same, abort.")
|
||||
|
||||
@@ -1465,7 +1468,7 @@ Below this line operates on individual slots and methods."
|
||||
"fix bug in the inconsistent way CLOS objects store T class specializers and do method lookup.")
|
||||
|
||||
(WHEN (EQ CLOS-BROWSER::CLASS T)
|
||||
(SETQ CLOS-BROWSER::CLASS (CLOS::SYMBOL-CLASS T)))
|
||||
(SETQ CLOS-BROWSER::CLASS (FIND-CLASS T)))
|
||||
(LET ((CLOS-BROWSER::NODE (CLOS-BROWSER::BROWSER-CONTAINS-P
|
||||
CLOS-BROWSER::CLASS CLOS-BROWSER::BROWSER)))
|
||||
(WHEN CLOS-BROWSER::NODE
|
||||
@@ -1582,7 +1585,8 @@ Below this line operates on individual slots and methods."
|
||||
(IL:|if| PACKAGE
|
||||
IL:|then| (IN-PACKAGE PACKAGE))))
|
||||
|
||||
(DEFUN CLOS-BROWSER::CLASSES-IN-PACKAGE (PACKAGE &OPTIONAL CLOS-BROWSER::MAP-ON-PACKAGE)
|
||||
(DEFUN CLOS-BROWSER::CLASSES-IN-PACKAGE (PACKAGE &OPTIONAL CLOS-BROWSER::MAP-ON-PACKAGE)
|
||||
(IL:* IL:\; "Edited 26-Apr-2025 14:25 by arunwelch")
|
||||
"Retrieves a list of all the classes for a given package. When map-on-package is t this can be very slow."
|
||||
|
||||
(IL:* IL:|;;| "The maphash is always fast, whereas for some strange reason map-on-package varys among packages greatly.")
|
||||
@@ -1594,7 +1598,7 @@ Below this line operates on individual slots and methods."
|
||||
(DO-SYMBOLS (CLOS-BROWSER::SYM PACKAGE)
|
||||
(IF (AND (EQ (SYMBOL-PACKAGE CLOS-BROWSER::SYM)
|
||||
PACKAGE)
|
||||
(CLOS::SYMBOL-CLASS CLOS-BROWSER::SYM T))
|
||||
(FIND-CLASS CLOS-BROWSER::SYM T))
|
||||
(PUSH CLOS-BROWSER::SYM CLOS-BROWSER::CLASSES)))
|
||||
(MAPHASH #'(LAMBDA (CLOS-BROWSER::KEY CLOS-BROWSER::VAL)
|
||||
(IF (EQ (SYMBOL-PACKAGE CLOS-BROWSER::KEY)
|
||||
@@ -1623,17 +1627,16 @@ Below this line operates on individual slots and methods."
|
||||
IL:|BackgroundMenuCommands|)
|
||||
|
||||
(SETQ IL:|BackgroundMenu| NIL)
|
||||
(IL:PUTPROPS IL:NEW-CLOS-BROWSER IL:COPYRIGHT ("Venue" 1991 2020 2023))
|
||||
(IL:DECLARE\: IL:DONTCOPY
|
||||
(IL:FILEMAP (NIL (11770 13440 (CLOS-BROWSER:BROWSE-CLASS 11770 . 13440)) (13442 14785 (
|
||||
CLOS-BROWSER::COLLECT-FAMILY 13442 . 14785)) (14787 16819 (CLOS-BROWSER::MAKE-NODES 14787 . 16819)) (
|
||||
16821 17496 (CLOS-BROWSER::CLOS-BROWSER-CLOSE-FN 16821 . 17496)) (17498 18430 (CLOS-BROWSER::BROWSER-CONTAINS-P
|
||||
17498 . 18430)) (42263 42587 (CLOS-BROWSER::EDIT 42263 . 42587)) (42589 48183 (
|
||||
CLOS-BROWSER::MAKE-METHOD-MENU-ITEMS 42589 . 48183)) (48185 49663 (CLOS-BROWSER::MAKE-TOP-LEVEL-METHOD-MENU-ITEMS
|
||||
48185 . 49663)) (49665 50955 (CLOS-BROWSER::MAKE-MULTI-METHOD-SUB-MENU 49665 . 50955)) (64981 65598 (
|
||||
CLOS-BROWSER::COMPLETE-ADD-METHOD 64981 . 65598)) (65600 67812 (CLOS-BROWSER::COMPLETE-SPECIALIZE
|
||||
65600 . 67812)) (67814 69482 (CLOS-BROWSER::LYRIC-COMPLETE-SPECIALIZE 67814 . 69482)) (69484 69649 (
|
||||
CLOS-BROWSER::THIS-CLASS-NODE-P 69484 . 69649)) (69651 69753 (CLOS::CLASS-DIRECT-METHODS 69651 . 69753
|
||||
)) (86457 87472 (CLOS-BROWSER::REPLACE-SPECIALIZERS 86457 . 87472)) (87783 89367 (CLOS-BROWSER::IN-SELECT-PACKAGE
|
||||
87783 . 89367)) (89369 90516 (CLOS-BROWSER::CLASSES-IN-PACKAGE 89369 . 90516)))))
|
||||
(IL:FILEMAP (NIL (11846 13516 (CLOS-BROWSER:BROWSE-CLASS 11846 . 13516)) (13518 14861 (
|
||||
CLOS-BROWSER::COLLECT-FAMILY 13518 . 14861)) (14863 16895 (CLOS-BROWSER::MAKE-NODES 14863 . 16895)) (
|
||||
16897 17572 (CLOS-BROWSER::CLOS-BROWSER-CLOSE-FN 16897 . 17572)) (17574 18506 (CLOS-BROWSER::BROWSER-CONTAINS-P
|
||||
17574 . 18506)) (42339 42663 (CLOS-BROWSER::EDIT 42339 . 42663)) (42665 48259 (
|
||||
CLOS-BROWSER::MAKE-METHOD-MENU-ITEMS 42665 . 48259)) (48261 49739 (CLOS-BROWSER::MAKE-TOP-LEVEL-METHOD-MENU-ITEMS
|
||||
48261 . 49739)) (49741 51031 (CLOS-BROWSER::MAKE-MULTI-METHOD-SUB-MENU 49741 . 51031)) (65408 66025 (
|
||||
CLOS-BROWSER::COMPLETE-ADD-METHOD 65408 . 66025)) (66027 68239 (CLOS-BROWSER::COMPLETE-SPECIALIZE
|
||||
66027 . 68239)) (68241 69946 (CLOS-BROWSER::LYRIC-COMPLETE-SPECIALIZE 68241 . 69946)) (69948 70113 (
|
||||
CLOS-BROWSER::THIS-CLASS-NODE-P 69948 . 70113)) (70115 70217 (CLOS::CLASS-DIRECT-METHODS 70115 . 70217
|
||||
)) (86738 87753 (CLOS-BROWSER::REPLACE-SPECIALIZERS 86738 . 87753)) (88064 89648 (CLOS-BROWSER::IN-SELECT-PACKAGE
|
||||
88064 . 89648)) (89650 90900 (CLOS-BROWSER::CLASSES-IN-PACKAGE 89650 . 90900)))))
|
||||
IL:STOP
|
||||
|
||||
Binary file not shown.
@@ -284,6 +284,15 @@ environment variable LDEREPEATCM.</p>
|
||||
<p>On Windows/Cygwin installations, <em>FILE</em> is specified in the
|
||||
Medley file system, not the host Windows file system.</p>
|
||||
</dd>
|
||||
<dt>-am, –automation</dt>
|
||||
<dd>
|
||||
<p>Useful only when using –vnc (and always on WSL1). When calling medley
|
||||
as part of an automation script, often Medley will run for a very short
|
||||
time (< a couple of seconds). This can cause issues with medley code
|
||||
that detects Xvnc server failures. Setting this flag notifies Medley
|
||||
that very short Medley sessions are possible and the Xvnc error
|
||||
detection needs to be adjusted accordingly.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<h2>Other Options</h2>
|
||||
<dl>
|
||||
|
||||
@@ -386,6 +386,15 @@ environment variable LDEREPEATCM.
|
||||
On Windows/Cygwin installations, \f[I]FILE\f[R] is specified in the
|
||||
Medley file system, not the host Windows file system.
|
||||
.RE
|
||||
.TP
|
||||
-am, \[en]automation
|
||||
Useful only when using \[en]vnc (and always on WSL1).
|
||||
When calling medley as part of an automation script, often Medley will
|
||||
run for a very short time (< a couple of seconds).
|
||||
This can cause issues with medley code that detects Xvnc server
|
||||
failures.
|
||||
Setting this flag notifies Medley that very short Medley sessions are
|
||||
possible and the Xvnc error detection needs to be adjusted accordingly.
|
||||
.SS Other Options
|
||||
.PP
|
||||
\
|
||||
|
||||
Binary file not shown.
@@ -216,7 +216,7 @@ specified in the Medley file system, not the host Windows file system.
|
||||
If the given value is "-", Medley will start up without using REM.CM file.
|
||||
|
||||
There is no default Medley REM.CM file.
|
||||
|
||||
|
||||
On Windows/Cygwin installations, *FILE* is
|
||||
specified in the Medley file system, not the host Windows file system.
|
||||
|
||||
@@ -254,10 +254,15 @@ for the parameter will be reset to the default value - which in the case of *Hos
|
||||
|
||||
-cc \[*FILE* | -], \-\-repeat \[*FILE* | -]
|
||||
: Run Medley once. And then as long as *FILE* exists and is greater then zero length, repeatedly run Medley using *FILE* as the REM.CM file that Medley reads and executes at startup. Each run of Medley can change the contents of *FILE* to effect the subsequent run of Medley. To end the cycle, Medley needs to delete *FILE*. WIthin Medley, *FILE* can be found as the value of the environment variable LDEREPEATCM.
|
||||
|
||||
|
||||
On Windows/Cygwin installations, *FILE* is
|
||||
specified in the Medley file system, not the host Windows file system.
|
||||
|
||||
-am, --automation
|
||||
: Useful only when using --vnc (and always on WSL1). When calling medley as part of an automation script, often Medley
|
||||
will run for a very short time (< a couple of seconds). This can cause issues with medley code that detects Xvnc server failures.
|
||||
Setting this flag notifies Medley that very short Medley sessions are possible and the Xvnc error detection needs to be adjusted accordingly.
|
||||
|
||||
|
||||
Other Options
|
||||
-------------
|
||||
|
||||
@@ -71,14 +71,17 @@ popd >/dev/null 2>/dev/null
|
||||
|
||||
|
||||
# For linux and wsl create packages for each arch
|
||||
for wslp in linux wsl
|
||||
for wslp in linux wsl2 wsl1
|
||||
do
|
||||
# For each arch create a deb file
|
||||
for arch_base in x86_64^amd64 armv7l^armhf aarch64^arm64
|
||||
do
|
||||
if [[ ${wslp} = wsl && ${arch_base} = armv7l^armhf ]];
|
||||
if [ "${arch_base}" = armv7l^armhf ]
|
||||
then
|
||||
continue
|
||||
if [ "${wslp}" = wsl1 ] || [ "${wslp}" = wsl2 ]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
arch=${arch_base%^*}
|
||||
debian_arch=${arch_base#*^}
|
||||
@@ -99,8 +102,14 @@ do
|
||||
MEDLEYDIR=${il_dir#${pkg_dir}}/medley
|
||||
# Maiko and Medley files to il_dir (/usr/local/interlisp)
|
||||
mkdir -p ${il_dir}
|
||||
tar -x -z -C ${il_dir} \
|
||||
-f "${tarball_dir}/maiko-${maiko_release}-linux.${arch}.tgz"
|
||||
if [ "${wslp}" = wsl1 ]
|
||||
then
|
||||
tar -x -z -C ${il_dir} \
|
||||
-f "${tarball_dir}/maiko-${maiko_release}-wsl1.${arch}.tgz"
|
||||
else
|
||||
tar -x -z -C ${il_dir} \
|
||||
-f "${tarball_dir}/maiko-${maiko_release}-linux.${arch}.tgz"
|
||||
fi
|
||||
tar -x -z -C ${il_dir} \
|
||||
-f "${tarball_dir}/medley-${medley_release}-runtime.tgz"
|
||||
tar -x -z -C ${il_dir} \
|
||||
@@ -117,14 +126,17 @@ do
|
||||
sed -e "s>--MEDLEYDIR-->${MEDLEYDIR}>g" <postrm >${pkg_dir}/DEBIAN/postrm
|
||||
chmod +x ${pkg_dir}/DEBIAN/postrm
|
||||
# For wsl scripts, include the vncviewer.exe
|
||||
if [[ ${wslp} = wsl && ${arch} = x86_64 ]];
|
||||
if [ "${wslp}" = wsl1 ] || [ "${wslp}" = wsl2 ]
|
||||
then
|
||||
pushd ./tmp >/dev/null
|
||||
rm -rf vncviewer64-1.12.0.exe
|
||||
wget -q https://sourceforge.net/projects/tigervnc/files/stable/1.12.0/vncviewer64-1.12.0.exe
|
||||
popd >/dev/null
|
||||
mkdir -p ${il_dir}/wsl
|
||||
cp -p tmp/vncviewer64-1.12.0.exe ${il_dir}/wsl/vncviewer64-1.12.0.exe
|
||||
if [ "${arch}" = x86_64 ]
|
||||
then
|
||||
pushd ./tmp >/dev/null
|
||||
rm -rf vncviewer64-1.12.0.exe
|
||||
wget -q https://sourceforge.net/projects/tigervnc/files/stable/1.12.0/vncviewer64-1.12.0.exe
|
||||
popd >/dev/null
|
||||
mkdir -p ${il_dir}/wsl
|
||||
cp -p tmp/vncviewer64-1.12.0.exe ${il_dir}/wsl/vncviewer64-1.12.0.exe
|
||||
fi
|
||||
fi
|
||||
#
|
||||
# Make sure all files are owned by root
|
||||
|
||||
9
installers/deb/control-wsl2
Normal file
9
installers/deb/control-wsl2
Normal file
@@ -0,0 +1,9 @@
|
||||
Package: medley-interlisp
|
||||
Version: 1.0.0
|
||||
Release: --RELEASE--
|
||||
Maintainer: info@interlisp.org
|
||||
Description: Medley Interlisp for Linux
|
||||
Homepage: https://github.com/interlisp/medley
|
||||
Architecture: --ARCH--
|
||||
Depends: wslu ( >= 4.1 ) | wslu ( << 4.0 ), tigervnc-standalone-server, tigervnc-xorg-extension
|
||||
|
||||
@@ -15,11 +15,16 @@
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-linux-aarch64-@@@COMBINED.RELEASE.TAG@@@.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines</a></p>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-linux-armv7l-@@@COMBINED.RELEASE.TAG@@@.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines</a></p></li>
|
||||
<li><h4>Windows System for Linux</h4>
|
||||
<li><h4>Windows System for Linux v1</h4>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-wsl-x86_64-@@@COMBINED.RELEASE.TAG@@@.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86.64 machines</a></p>
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-wsl1-x86_64-@@@COMBINED.RELEASE.TAG@@@.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86.64 machines</a></p>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-wsl-aarch64-@@@COMBINED.RELEASE.TAG@@@.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines</a></p></li>
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-wsl1-aarch64-@@@COMBINED.RELEASE.TAG@@@.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines</a></p></li>
|
||||
<li><h4>Windows System for Linux v2</h4>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-wsl2-x86_64-@@@COMBINED.RELEASE.TAG@@@.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86.64 machines</a></p>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-wsl2-aarch64-@@@COMBINED.RELEASE.TAG@@@.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines</a></p></li>
|
||||
</ul></li>
|
||||
<li><h3>Local Installations (for any Linux distro)</h3>
|
||||
|
||||
@@ -31,11 +36,16 @@
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-linux-aarch64-@@@COMBINED.RELEASE.TAG@@@.tgz">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines</a></p>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-linux-armv7l-@@@COMBINED.RELEASE.TAG@@@.tgz">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines</a></p></li>
|
||||
<li><h4>Windows System for Linux</h4>
|
||||
<li><h4>Windows System for Linux v1</h4>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-wsl-x86_64-@@@COMBINED.RELEASE.TAG@@@.tgz">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86_64 machines</a></p>
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-wsl1-x86_64-@@@COMBINED.RELEASE.TAG@@@.tgz">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86_64 machines</a></p>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-wsl-aarch64-@@@COMBINED.RELEASE.TAG@@@.tgz">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines</a></p></li>
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-wsl1-aarch64-@@@COMBINED.RELEASE.TAG@@@.tgz">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines</a></p></li>
|
||||
<li><h4>Windows System for Linux v2</h4>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-wsl2-x86_64-@@@COMBINED.RELEASE.TAG@@@.tgz">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86_64 machines</a></p>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-wsl2-aarch64-@@@COMBINED.RELEASE.TAG@@@.tgz">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines</a></p></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li><h2>WINDOWS 10/11 (Single install based on cygwin - Docker install deprecated)</h2>
|
||||
|
||||
@@ -12,11 +12,17 @@
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines](@@@DOWNLOAD_URL@@@/medley-full-linux-armv7l-@@@COMBINED.RELEASE.TAG@@@.deb)
|
||||
|
||||
* #### Windows System for Linux
|
||||
* #### Windows System for Linux v1
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\.64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl-x86\_64-@@@COMBINED.RELEASE.TAG@@@.deb)
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\.64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl1-x86\_64-@@@COMBINED.RELEASE.TAG@@@.deb)
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl-aarch64-@@@COMBINED.RELEASE.TAG@@@.deb)
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl1-aarch64-@@@COMBINED.RELEASE.TAG@@@.deb)
|
||||
|
||||
* #### Windows System for Linux v2
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\.64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl2-x86\_64-@@@COMBINED.RELEASE.TAG@@@.deb)
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl2-aarch64-@@@COMBINED.RELEASE.TAG@@@.deb)
|
||||
|
||||
* ### Local Installations (for any Linux distro)
|
||||
|
||||
@@ -28,11 +34,17 @@
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines](@@@DOWNLOAD_URL@@@/medley-full-linux-armv7l-@@@COMBINED.RELEASE.TAG@@@.tgz)
|
||||
|
||||
* #### Windows System for Linux
|
||||
* #### Windows System for Linux v1
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\_64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl-x86\_64-@@@COMBINED.RELEASE.TAG@@@.tgz)
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\_64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl1-x86\_64-@@@COMBINED.RELEASE.TAG@@@.tgz)
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl-aarch64-@@@COMBINED.RELEASE.TAG@@@.tgz)
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl1-aarch64-@@@COMBINED.RELEASE.TAG@@@.tgz)
|
||||
|
||||
* #### Windows System for Linux v2
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\_64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl2-x86\_64-@@@COMBINED.RELEASE.TAG@@@.tgz)
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl2-aarch64-@@@COMBINED.RELEASE.TAG@@@.tgz)
|
||||
|
||||
* ## WINDOWS 10/11 (Single install based on cygwin - Docker install deprecated)
|
||||
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED "28-Mar-2025 08:53:43" {DSK}<home>larry>il>medley>internal>MEDLEY-UTILS.;2 30243
|
||||
(FILECREATED "16-May-2025 15:37:36" {DSK}<home>frank>il>qmedley>internal>MEDLEY-UTILS.;8 31221
|
||||
|
||||
:EDIT-BY "lmm"
|
||||
:CHANGES-TO (FNS MAKE-INDEX-HTMLS)
|
||||
|
||||
:CHANGES-TO (FNS MAKE-FULLER-DB)
|
||||
|
||||
:PREVIOUS-DATE "14-Jul-2024 12:51:12" {DSK}<home>larry>il>medley>internal>MEDLEY-UTILS.;1)
|
||||
:PREVIOUS-DATE "16-May-2025 13:51:08" {DSK}<home>frank>il>qmedley>internal>MEDLEY-UTILS.;7)
|
||||
|
||||
|
||||
(PRETTYCOMPRINT MEDLEY-UTILSCOMS)
|
||||
@@ -128,79 +126,89 @@
|
||||
"Welcome to Fuller sysout"])
|
||||
|
||||
(MAKE-INDEX-HTMLS
|
||||
[LAMBDA (BASE TOP LEVEL) (* ; "Edited 29-Apr-2024 14:18 by lmm")
|
||||
[LAMBDA (BASE TOP LEVEL ROOT.NAME) (* ; "Edited 29-Apr-2024 14:18 by lmm")
|
||||
(* ; "Edited 26-Apr-2024 16:15 by lmm")
|
||||
(* ; "Edited 20-Apr-2024 12:34 by lmm")
|
||||
(* ; "Edited 13-Apr-2024 21:18 by lmm")
|
||||
[OR BASE (SETQ BASE (PSEUDOFILENAME (MEDLEYDIR]
|
||||
(* ; "Edited 13-Apr-2024 21:18 by lmm")
|
||||
(* ; " Edited 16-May-2025 13:17 by fgh")
|
||||
[OR BASE (SETQ BASE (TRUEFILENAME (MEDLEYDIR]
|
||||
(OR (DIRECTORYNAMEP BASE)
|
||||
(ERROR BASE "not a directory name"))
|
||||
(OR (AND (NUMBERP LEVEL)
|
||||
(IGREATERP LEVEL 0))
|
||||
(SETQ LEVEL 1))
|
||||
(LET* ((SUBDIRS NIL)
|
||||
(DEST (PACKFILENAME 'NAME "index" 'EXTENSION "html" 'VERSION NIL 'BODY BASE))
|
||||
(PSEUDOHOST (EQ (NTHCHAR BASE (CL:1- 0))
|
||||
'}))
|
||||
SLASHED SHORTNAME)
|
||||
(CL:WITH-OPEN-FILE
|
||||
(S DEST :DIRECTION :OUTPUT :IF-EXISTS :NEW-VERSION :IF-DOES-NOT-EXIST :CREATE)
|
||||
(CL:FORMAT S "<HTML>~%%<HEAD>~%%")
|
||||
(CL:FORMAT S "<TITLE>Index page for ~a</TITLE>~%%" (SETQ SLASHED (SLASHIT BASE)))
|
||||
(CL:FORMAT S "<SCRIPT>~%%")
|
||||
(CL:FORMAT S " function up_onclick(){~%%")
|
||||
(CL:FORMAT S " var newLoc = location.href.replace(/\/index.html$/i, %"%");~%%")
|
||||
(CL:FORMAT S " location = newLoc.replace(/\/[^\/]+\/?$/, %"%");~%%")
|
||||
(CL:FORMAT S " }~%%")
|
||||
(CL:FORMAT S "</SCRIPT>~%%")
|
||||
(CL:FORMAT S "</HEAD>~%%")
|
||||
(CL:FORMAT S "<BODY><H1>Index page for ~a</H1>~%%" SLASHED)
|
||||
(CL:UNLESS (EQ LEVEL 1)
|
||||
(CL:FORMAT S
|
||||
(OR ROOT.NAME (SETQ ROOT.NAME 'MEDLEY))
|
||||
(RESETLST
|
||||
(if (EQ LEVEL 1)
|
||||
then (RESETSAVE (PSEUDOHOSTS T))
|
||||
(PSEUDOHOST ROOT.NAME BASE))
|
||||
(SETQ BASE (PSEUDOFILENAME BASE))
|
||||
[LET*
|
||||
((SUBDIRS NIL)
|
||||
(DEST (PACKFILENAME 'NAME "index" 'EXTENSION "html" 'VERSION NIL 'BODY BASE))
|
||||
(PSEUDOHOST (EQ (NTHCHAR BASE (CL:1- 0))
|
||||
'}))
|
||||
SLASHED SHORTNAME)
|
||||
(CL:WITH-OPEN-FILE
|
||||
(S DEST :DIRECTION :OUTPUT :IF-EXISTS :NEW-VERSION :IF-DOES-NOT-EXIST :CREATE)
|
||||
(CL:FORMAT S "<HTML>~%%<HEAD>~%%")
|
||||
(CL:FORMAT S "<TITLE>Index page for ~a</TITLE>~%%" (SETQ SLASHED (SLASHIT BASE)))
|
||||
(CL:FORMAT S "<SCRIPT>~%%")
|
||||
(CL:FORMAT S " function up_onclick(){~%%")
|
||||
(CL:FORMAT S " var newLoc = location.href.replace(/\/index.html$/i, %"%");~%%")
|
||||
(CL:FORMAT S " location = newLoc.replace(/\/[^\/]+\/?$/, %"%");~%%")
|
||||
(CL:FORMAT S " }~%%")
|
||||
(CL:FORMAT S "</SCRIPT>~%%")
|
||||
(CL:FORMAT S "</HEAD>~%%")
|
||||
(CL:FORMAT S "<BODY><H1>Index page for ~a</H1>~%%" SLASHED)
|
||||
(CL:UNLESS (EQ LEVEL 1)
|
||||
(CL:FORMAT S
|
||||
"<DIV>~%%<BUTTON TYPE=%"BUTTON%" ONCLICK=%"up_onclick()%">Go up one level</BUTTON>~%%</DIV>~%%"
|
||||
))
|
||||
(CL:FORMAT S "<P>This is an index of the files just to link them in.~%%<UL>~%%")
|
||||
(FOR FULLNAME IN (DIRECTORY (CONCAT BASE "*.*;"))
|
||||
DO (IF (EQ (NTHCHAR FULLNAME -1)
|
||||
'>)
|
||||
THEN
|
||||
(* ;; "A directory")
|
||||
))
|
||||
(CL:FORMAT S "<P>This is an index of the files just to link them in.~%%<UL>~%%")
|
||||
(for FULLNAME in (DIRECTORY (CONCAT BASE "*.*;"))
|
||||
do (if (EQ (NTHCHAR FULLNAME -1)
|
||||
'>)
|
||||
then
|
||||
(* ;; "A directory")
|
||||
|
||||
(IF (NOT (DIRECTORYNAMEP FULLNAME))
|
||||
THEN (HELP "NOT DIRNAME"))
|
||||
(SETQ SHORTNAME (MKATOM (SUBSTRING FULLNAME
|
||||
(+ (NCHARS BASE)
|
||||
(IF PSEUDOHOST
|
||||
THEN 2
|
||||
ELSE 1))
|
||||
-2)))
|
||||
(CL:UNLESS (OR (MEMB SHORTNAME '(.git))
|
||||
(STRPOS ".git" FULLNAME)
|
||||
(INFILEP (CONCAT FULLNAME ".skip")))
|
||||
(if (NOT (DIRECTORYNAMEP FULLNAME))
|
||||
then (HELP (CONCAT "NOT DIRNAME " FULLNAME)))
|
||||
(SETQ SHORTNAME (MKATOM (SUBSTRING FULLNAME
|
||||
(+ (NCHARS BASE)
|
||||
(if PSEUDOHOST
|
||||
then 2
|
||||
else 1))
|
||||
-2)))
|
||||
(CL:UNLESS (OR (MEMB SHORTNAME '(.git))
|
||||
(MEMB SHORTNAME '(.GIT))
|
||||
[AND (STRPOS ".git" (L-CASE FULLNAME))
|
||||
(NOT (STRPOS ".github" (L-CASE FULLNAME]
|
||||
(INFILEP (CONCAT FULLNAME ".skip")))
|
||||
|
||||
(* ;; ".skip in the directory itself -- don't index any of it")
|
||||
(* ;; ".skip in the directory itself -- don't index any of it")
|
||||
|
||||
(SETQ SUBDIRS (NCONC1 SUBDIRS FULLNAME))
|
||||
(CL:FORMAT S "<LI><A HREF=%"~a/%">~a/</A></LI>~%%" SHORTNAME SHORTNAME))
|
||||
ELSEIF (MEMB [SETQ SHORTNAME (MKATOM (SUBSTRING FULLNAME (ADD1 (NCHARS BASE))
|
||||
(SUB1 (OR (STRPOS ".;" FULLNAME)
|
||||
(STRPOS ";" FULLNAME)
|
||||
(HELP
|
||||
"No ; in non-directory"
|
||||
]
|
||||
'(index.html .skip))
|
||||
THEN
|
||||
(* ;; "dont index the index")
|
||||
(SETQ SUBDIRS (NCONC1 SUBDIRS FULLNAME))
|
||||
(CL:FORMAT S "<LI><A HREF=%"~a/%">~a/</A></LI>~%%" SHORTNAME SHORTNAME))
|
||||
elseif (MEMB [SETQ SHORTNAME (MKATOM (SUBSTRING FULLNAME (ADD1 (NCHARS BASE))
|
||||
(SUB1 (OR (STRPOS ".;" FULLNAME)
|
||||
(STRPOS ";" FULLNAME)
|
||||
(HELP (CONCAT
|
||||
"No ; in non-directory "
|
||||
FULLNAME]
|
||||
'(index.html .skip))
|
||||
then
|
||||
(* ;; "dont index the index")
|
||||
|
||||
ELSEIF (MEMB (FILENAMEFIELD SHORTNAME 'EXTENSION)
|
||||
'(IMPTR SKIP skip imptr))
|
||||
THEN
|
||||
(* ;; " don't enuerate ANY.SKIP ANY.IMPTR etc")
|
||||
elseif (MEMB (FILENAMEFIELD SHORTNAME 'EXTENSION)
|
||||
'(IMPTR SKIP skip imptr))
|
||||
then
|
||||
(* ;; " don't enuerate ANY.SKIP ANY.IMPTR etc")
|
||||
|
||||
ELSE (CL:FORMAT S "<LI><A HREF=%"~a%">~a</A></LI>~%%" SHORTNAME SHORTNAME)))
|
||||
(CL:FORMAT S "</UL></BODY></HTML>~%%"))
|
||||
(NCONC SUBDIRS (FOR D IN SUBDIRS join (MAKE-INDEX-HTMLS D (OR TOP BASE)
|
||||
(ADD1 LEVEL])
|
||||
else (CL:FORMAT S "<LI><A HREF=%"~a%">~a</A></LI>~%%" SHORTNAME SHORTNAME)))
|
||||
(CL:FORMAT S "</UL></BODY></HTML>~%%"))
|
||||
(NCONC SUBDIRS (for D in SUBDIRS join (MAKE-INDEX-HTMLS D (OR TOP BASE)
|
||||
(ADD1 LEVEL])])
|
||||
|
||||
(MEDLEY-FIX-LINKS
|
||||
[LAMBDA (UNIXPATH) (* ; "Edited 18-Jan-2021 12:01 by larry")
|
||||
@@ -293,11 +301,11 @@
|
||||
(PHASES (OR SUBSETS '(TEDIT PRETTY INDEX HRULE]
|
||||
(FILESLOAD PDFSTREAM SKETCH)
|
||||
(FONTSET 'STANDARD)
|
||||
(WHILE DIRLIST
|
||||
DO
|
||||
(SETQ BASE (POP DIRLIST))
|
||||
(FOR SRCPATH IN (DIRECTORY (CONCAT BASE "*.*;"))
|
||||
DO (PROG* [(SRC (UNPACKFILENAME SRCPATH))
|
||||
(while DIRLIST
|
||||
do
|
||||
(SETQ BASE (pop DIRLIST))
|
||||
(for SRCPATH in (DIRECTORY (CONCAT BASE "*.*;"))
|
||||
do (PROG* [(SRC (UNPACKFILENAME SRCPATH))
|
||||
[EXT (U-CASE (LISTGET SRC 'EXTENSION]
|
||||
(DIR (LISTGET SRC 'DIRECTORY))
|
||||
FRDY LDGP DEST (NOV (PACKFILENAME `(VERSION NIL ,@SRC]
|
||||
@@ -330,13 +338,13 @@
|
||||
(CL:WHEN (INFILEP (CONCAT DEST ".skip"))
|
||||
(PRINTOUT T "Explicit .skip " DEST T)
|
||||
(RETURN))
|
||||
(IF (MEMB 'TEDIT PHASES)
|
||||
THEN (CL:WHEN [OR (MEMB EXT '(TEDIT TED SKETCH BRAVO))
|
||||
(if (MEMB 'TEDIT PHASES)
|
||||
then (CL:WHEN [OR (MEMB EXT '(TEDIT TED SKETCH BRAVO))
|
||||
(CAR (NLSETQ (TEDIT.FORMATTEDFILEP SRCPATH]
|
||||
(IF (EQ REDO 'TEST)
|
||||
THEN (CL:FORMAT T "Testing open ~a..." SRCPATH)
|
||||
(if (EQ REDO 'TEST)
|
||||
then (CL:FORMAT T "Testing open ~a..." SRCPATH)
|
||||
(CLOSEF? (OPENTEXTSTREAM SRCPATH))
|
||||
ELSE (OR [NLSETQ (CL:WITH-OPEN-STREAM (S (OPENTEXTSTREAM SRCPATH)
|
||||
else (OR [NLSETQ (CL:WITH-OPEN-STREAM (S (OPENTEXTSTREAM SRCPATH)
|
||||
)
|
||||
(TEDIT.FORMAT.HARDCOPY S DEST T NIL NIL
|
||||
NIL 'PDF]
|
||||
@@ -353,79 +361,89 @@
|
||||
(PRINTOUT T "DONE" T))])
|
||||
|
||||
(MAKE-INDEX-HTMLS
|
||||
[LAMBDA (BASE TOP LEVEL) (* ; "Edited 29-Apr-2024 14:18 by lmm")
|
||||
[LAMBDA (BASE TOP LEVEL ROOT.NAME) (* ; "Edited 29-Apr-2024 14:18 by lmm")
|
||||
(* ; "Edited 26-Apr-2024 16:15 by lmm")
|
||||
(* ; "Edited 20-Apr-2024 12:34 by lmm")
|
||||
(* ; "Edited 13-Apr-2024 21:18 by lmm")
|
||||
[OR BASE (SETQ BASE (PSEUDOFILENAME (MEDLEYDIR]
|
||||
(* ; "Edited 13-Apr-2024 21:18 by lmm")
|
||||
(* ; " Edited 16-May-2025 13:17 by fgh")
|
||||
[OR BASE (SETQ BASE (TRUEFILENAME (MEDLEYDIR]
|
||||
(OR (DIRECTORYNAMEP BASE)
|
||||
(ERROR BASE "not a directory name"))
|
||||
(OR (AND (NUMBERP LEVEL)
|
||||
(IGREATERP LEVEL 0))
|
||||
(SETQ LEVEL 1))
|
||||
(LET* ((SUBDIRS NIL)
|
||||
(DEST (PACKFILENAME 'NAME "index" 'EXTENSION "html" 'VERSION NIL 'BODY BASE))
|
||||
(PSEUDOHOST (EQ (NTHCHAR BASE (CL:1- 0))
|
||||
'}))
|
||||
SLASHED SHORTNAME)
|
||||
(CL:WITH-OPEN-FILE
|
||||
(S DEST :DIRECTION :OUTPUT :IF-EXISTS :NEW-VERSION :IF-DOES-NOT-EXIST :CREATE)
|
||||
(CL:FORMAT S "<HTML>~%%<HEAD>~%%")
|
||||
(CL:FORMAT S "<TITLE>Index page for ~a</TITLE>~%%" (SETQ SLASHED (SLASHIT BASE)))
|
||||
(CL:FORMAT S "<SCRIPT>~%%")
|
||||
(CL:FORMAT S " function up_onclick(){~%%")
|
||||
(CL:FORMAT S " var newLoc = location.href.replace(/\/index.html$/i, %"%");~%%")
|
||||
(CL:FORMAT S " location = newLoc.replace(/\/[^\/]+\/?$/, %"%");~%%")
|
||||
(CL:FORMAT S " }~%%")
|
||||
(CL:FORMAT S "</SCRIPT>~%%")
|
||||
(CL:FORMAT S "</HEAD>~%%")
|
||||
(CL:FORMAT S "<BODY><H1>Index page for ~a</H1>~%%" SLASHED)
|
||||
(CL:UNLESS (EQ LEVEL 1)
|
||||
(CL:FORMAT S
|
||||
(OR ROOT.NAME (SETQ ROOT.NAME 'MEDLEY))
|
||||
(RESETLST
|
||||
(if (EQ LEVEL 1)
|
||||
then (RESETSAVE (PSEUDOHOSTS T))
|
||||
(PSEUDOHOST ROOT.NAME BASE))
|
||||
(SETQ BASE (PSEUDOFILENAME BASE))
|
||||
[LET*
|
||||
((SUBDIRS NIL)
|
||||
(DEST (PACKFILENAME 'NAME "index" 'EXTENSION "html" 'VERSION NIL 'BODY BASE))
|
||||
(PSEUDOHOST (EQ (NTHCHAR BASE (CL:1- 0))
|
||||
'}))
|
||||
SLASHED SHORTNAME)
|
||||
(CL:WITH-OPEN-FILE
|
||||
(S DEST :DIRECTION :OUTPUT :IF-EXISTS :NEW-VERSION :IF-DOES-NOT-EXIST :CREATE)
|
||||
(CL:FORMAT S "<HTML>~%%<HEAD>~%%")
|
||||
(CL:FORMAT S "<TITLE>Index page for ~a</TITLE>~%%" (SETQ SLASHED (SLASHIT BASE)))
|
||||
(CL:FORMAT S "<SCRIPT>~%%")
|
||||
(CL:FORMAT S " function up_onclick(){~%%")
|
||||
(CL:FORMAT S " var newLoc = location.href.replace(/\/index.html$/i, %"%");~%%")
|
||||
(CL:FORMAT S " location = newLoc.replace(/\/[^\/]+\/?$/, %"%");~%%")
|
||||
(CL:FORMAT S " }~%%")
|
||||
(CL:FORMAT S "</SCRIPT>~%%")
|
||||
(CL:FORMAT S "</HEAD>~%%")
|
||||
(CL:FORMAT S "<BODY><H1>Index page for ~a</H1>~%%" SLASHED)
|
||||
(CL:UNLESS (EQ LEVEL 1)
|
||||
(CL:FORMAT S
|
||||
"<DIV>~%%<BUTTON TYPE=%"BUTTON%" ONCLICK=%"up_onclick()%">Go up one level</BUTTON>~%%</DIV>~%%"
|
||||
))
|
||||
(CL:FORMAT S "<P>This is an index of the files just to link them in.~%%<UL>~%%")
|
||||
(FOR FULLNAME IN (DIRECTORY (CONCAT BASE "*.*;"))
|
||||
DO (IF (EQ (NTHCHAR FULLNAME -1)
|
||||
'>)
|
||||
THEN
|
||||
(* ;; "A directory")
|
||||
))
|
||||
(CL:FORMAT S "<P>This is an index of the files just to link them in.~%%<UL>~%%")
|
||||
(for FULLNAME in (DIRECTORY (CONCAT BASE "*.*;"))
|
||||
do (if (EQ (NTHCHAR FULLNAME -1)
|
||||
'>)
|
||||
then
|
||||
(* ;; "A directory")
|
||||
|
||||
(IF (NOT (DIRECTORYNAMEP FULLNAME))
|
||||
THEN (HELP "NOT DIRNAME"))
|
||||
(SETQ SHORTNAME (MKATOM (SUBSTRING FULLNAME
|
||||
(+ (NCHARS BASE)
|
||||
(IF PSEUDOHOST
|
||||
THEN 2
|
||||
ELSE 1))
|
||||
-2)))
|
||||
(CL:UNLESS (OR (MEMB SHORTNAME '(.git))
|
||||
(STRPOS ".git" FULLNAME)
|
||||
(INFILEP (CONCAT FULLNAME ".skip")))
|
||||
(if (NOT (DIRECTORYNAMEP FULLNAME))
|
||||
then (HELP (CONCAT "NOT DIRNAME " FULLNAME)))
|
||||
(SETQ SHORTNAME (MKATOM (SUBSTRING FULLNAME
|
||||
(+ (NCHARS BASE)
|
||||
(if PSEUDOHOST
|
||||
then 2
|
||||
else 1))
|
||||
-2)))
|
||||
(CL:UNLESS (OR (MEMB SHORTNAME '(.git))
|
||||
(MEMB SHORTNAME '(.GIT))
|
||||
[AND (STRPOS ".git" (L-CASE FULLNAME))
|
||||
(NOT (STRPOS ".github" (L-CASE FULLNAME]
|
||||
(INFILEP (CONCAT FULLNAME ".skip")))
|
||||
|
||||
(* ;; ".skip in the directory itself -- don't index any of it")
|
||||
(* ;; ".skip in the directory itself -- don't index any of it")
|
||||
|
||||
(SETQ SUBDIRS (NCONC1 SUBDIRS FULLNAME))
|
||||
(CL:FORMAT S "<LI><A HREF=%"~a/%">~a/</A></LI>~%%" SHORTNAME SHORTNAME))
|
||||
ELSEIF (MEMB [SETQ SHORTNAME (MKATOM (SUBSTRING FULLNAME (ADD1 (NCHARS BASE))
|
||||
(SUB1 (OR (STRPOS ".;" FULLNAME)
|
||||
(STRPOS ";" FULLNAME)
|
||||
(HELP
|
||||
"No ; in non-directory"
|
||||
]
|
||||
'(index.html .skip))
|
||||
THEN
|
||||
(* ;; "dont index the index")
|
||||
(SETQ SUBDIRS (NCONC1 SUBDIRS FULLNAME))
|
||||
(CL:FORMAT S "<LI><A HREF=%"~a/%">~a/</A></LI>~%%" SHORTNAME SHORTNAME))
|
||||
elseif (MEMB [SETQ SHORTNAME (MKATOM (SUBSTRING FULLNAME (ADD1 (NCHARS BASE))
|
||||
(SUB1 (OR (STRPOS ".;" FULLNAME)
|
||||
(STRPOS ";" FULLNAME)
|
||||
(HELP (CONCAT
|
||||
"No ; in non-directory "
|
||||
FULLNAME]
|
||||
'(index.html .skip))
|
||||
then
|
||||
(* ;; "dont index the index")
|
||||
|
||||
ELSEIF (MEMB (FILENAMEFIELD SHORTNAME 'EXTENSION)
|
||||
'(IMPTR SKIP skip imptr))
|
||||
THEN
|
||||
(* ;; " don't enuerate ANY.SKIP ANY.IMPTR etc")
|
||||
elseif (MEMB (FILENAMEFIELD SHORTNAME 'EXTENSION)
|
||||
'(IMPTR SKIP skip imptr))
|
||||
then
|
||||
(* ;; " don't enuerate ANY.SKIP ANY.IMPTR etc")
|
||||
|
||||
ELSE (CL:FORMAT S "<LI><A HREF=%"~a%">~a</A></LI>~%%" SHORTNAME SHORTNAME)))
|
||||
(CL:FORMAT S "</UL></BODY></HTML>~%%"))
|
||||
(NCONC SUBDIRS (FOR D IN SUBDIRS join (MAKE-INDEX-HTMLS D (OR TOP BASE)
|
||||
(ADD1 LEVEL])
|
||||
else (CL:FORMAT S "<LI><A HREF=%"~a%">~a</A></LI>~%%" SHORTNAME SHORTNAME)))
|
||||
(CL:FORMAT S "</UL></BODY></HTML>~%%"))
|
||||
(NCONC SUBDIRS (for D in SUBDIRS join (MAKE-INDEX-HTMLS D (OR TOP BASE)
|
||||
(ADD1 LEVEL])])
|
||||
)
|
||||
|
||||
(PUTPROPS MEDLEY-UTILS FILETYPE :COMPILE-FILE)
|
||||
@@ -532,9 +550,9 @@
|
||||
(ADDTOVAR LAMA )
|
||||
)
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (1104 12495 (GATHER-INFO 1114 . 6496) (MAKE-FULLER-DB 6498 . 7407) (MAKE-INDEX-HTMLS
|
||||
7409 . 11864) (MEDLEY-FIX-LINKS 11866 . 12259) (MEDLEY-FIX-DATES 12261 . 12493)) (13674 16462 (
|
||||
MAKE-EXPORTS-ALL 13684 . 14743) (MAKE-WHEREIS-HASH 14745 . 15934) (MAKE-WHEREIS-LOOPS 15936 . 16460))
|
||||
(16463 25195 (HCFILES 16473 . 20736) (MAKE-INDEX-HTMLS 20738 . 25193)) (25445 30057 (RECOMPILE-ONE
|
||||
25455 . 27352) (RECMPL 27354 . 27957) (COMPILE-SETUP 27959 . 28583) (REMAKEFILES 28585 . 30055)))))
|
||||
(FILEMAP (NIL (1086 12975 (GATHER-INFO 1096 . 6478) (MAKE-FULLER-DB 6480 . 7389) (MAKE-INDEX-HTMLS
|
||||
7391 . 12344) (MEDLEY-FIX-LINKS 12346 . 12739) (MEDLEY-FIX-DATES 12741 . 12973)) (14154 16942 (
|
||||
MAKE-EXPORTS-ALL 14164 . 15223) (MAKE-WHEREIS-HASH 15225 . 16414) (MAKE-WHEREIS-LOOPS 16416 . 16940))
|
||||
(16943 26173 (HCFILES 16953 . 21216) (MAKE-INDEX-HTMLS 21218 . 26171)) (26423 31035 (RECOMPILE-ONE
|
||||
26433 . 28330) (RECMPL 28332 . 28935) (COMPILE-SETUP 28937 . 29561) (REMAKEFILES 29563 . 31033)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
@@ -1,19 +1,5 @@
|
||||
.\" Automatically generated by Pandoc 3.1.3
|
||||
.\" Automatically generated by Pandoc 2.9.2.1
|
||||
.\"
|
||||
.\" Define V font for inline verbatim, using C font in formats
|
||||
.\" that render this, and otherwise B font.
|
||||
.ie "\f[CB]x\f[]"x" \{\
|
||||
. ftr V B
|
||||
. ftr VI BI
|
||||
. ftr VB B
|
||||
. ftr VBI BI
|
||||
.\}
|
||||
.el \{\
|
||||
. ftr V CR
|
||||
. ftr VI CI
|
||||
. ftr VB CB
|
||||
. ftr VBI CBI
|
||||
.\}
|
||||
.ad l
|
||||
.TH "loadup" "1" "" "" "Run the Medley loadup procedure"
|
||||
.nh
|
||||
@@ -22,8 +8,7 @@
|
||||
\f[B]loadup\f[R] \[em] runs a loadup procedure for Medley Interlisp
|
||||
.SH SYNOPSIS
|
||||
.PP
|
||||
\f[B]<MEDLEYDIR>/scripts/loadup\f[R] [ options \&...
|
||||
]
|
||||
\f[B]<MEDLEYDIR>/scripts/loadup\f[R] [ options \&... ]
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
Runs all or part of the \f[B]loadup\f[R] procedure for Medley Interlisp.
|
||||
@@ -103,14 +88,16 @@ The target files are copied from this work directory to the loadups
|
||||
directory if the loadup is successful.
|
||||
Each stage of the loadup also creates a dribble file containing the
|
||||
terminal output from within the Medley environment.
|
||||
These dribble files are not copied to the loadups directory, but remain
|
||||
available in the work directory after the loadup completes.
|
||||
These dribble files are also copied to the loadups directory, but also
|
||||
remain available in the work directory after the loadup completes.
|
||||
.PP
|
||||
Only one instance (per <MEDLEIDIR>) of loadup can be run at a time.
|
||||
(The lock file is in the work directory and is named
|
||||
\f[B]\f[BI]lock\f[B]\f[R].
|
||||
It can be removed in case of an uncontrolled failure of the loadup
|
||||
procedure.)
|
||||
There is lock file to prevent simultaneous loadups in the work directory
|
||||
(named \f[B]\f[BI]lock\f[B]\f[R]) that can be manually removed.
|
||||
The lock can also be automatically overridden (see the \[en]override
|
||||
flag below).
|
||||
Alternatively, if a lock is encountered at run time, the user will be
|
||||
asked to choose whether to override or simply exit the loadup.
|
||||
.PP
|
||||
Note: \f[B]MEDLEYDIR\f[R] is an environment variable set by the loadup
|
||||
script.
|
||||
@@ -253,6 +240,12 @@ Synonym for \[lq]\[en]target apps\[rq]
|
||||
\f[B]-a-, --apps-, -apps-, -5-\f[R]
|
||||
Synonym for \[lq]\[en]target apps\[rq]
|
||||
.TP
|
||||
\f[B]-ov, --override, -override\f[R]
|
||||
Automatically override the lock that prevents two loadups from running
|
||||
simultaneously.
|
||||
If this flag is not set and an active lock is encountered, the user will
|
||||
be asked to choose whether to override or exit.
|
||||
.TP
|
||||
\f[B]-nc, --nocopy, -nocopy\f[R]
|
||||
Run the specified loadups, but do not copy results into loadups
|
||||
directory.
|
||||
@@ -265,13 +258,20 @@ all versioned (\f[I].\[ti][0-9]\f[R]\[ti]) files.
|
||||
Before running loadups (if any), thin the loadups directory by deleting
|
||||
all versioned (\f[I].\[ti][0-9]\f[R]\[ti]) files.
|
||||
.TP
|
||||
\f[B]-d DIR --maikodir DIR, -maikodir DIR\f[R]
|
||||
\f[B]-d DIR, --maikodir DIR, -maikodir DIR\f[R]
|
||||
Use DIR as the directory from which to execute lde (Miko) when running
|
||||
Medley in the loadup process.
|
||||
If this flag is not present, the value of the environment variable
|
||||
MAIKODIR will be used instead.
|
||||
And if MAIKODIR does not exist, then the default Maiko directory search
|
||||
within Medley will be used.
|
||||
.TP
|
||||
\f[B]-v, --vnc, -vnc\f[R]
|
||||
Relevant to Linux (including WSLv1 and WSLv2) platforms only.
|
||||
Use Xvnc for the Medley display during this loadup.
|
||||
By default, the Medley display will use X Windows.
|
||||
This flag is most useful on Windows System for Linux v1, where Xvnc is
|
||||
commonly used in running Medley in the absence of an Xwindows server.
|
||||
.SH DEFAULTS
|
||||
.PP
|
||||
The defaults for the Options context-dependent and somewhat complicated
|
||||
|
||||
Binary file not shown.
@@ -48,10 +48,10 @@ The two independent stages that can be run if the first 4 sequential stages comp
|
||||
>+ **DB:**: creates the *fuller.database* file. Fuller.database is a Mastercope database created by analyzing all of the source code included in full.sysout. (Stage 4) Fuller.database is copied into the loadups directory.
|
||||
|
||||
|
||||
Loadup does all of its work in a work directory (\<MEDLEYDIR>loadups/build). The target files are copied from this work directory to the loadups directory if the loadup is successful. Each stage of the loadup also creates a dribble file containing the terminal output from within the Medley environment. These dribble files are not copied to the loadups directory, but remain available in the work directory after the loadup completes.
|
||||
Loadup does all of its work in a work directory (\<MEDLEYDIR>loadups/build). The target files are copied from this work directory to the loadups directory if the loadup is successful. Each stage of the loadup also creates a dribble file containing the terminal output from within the Medley environment. These dribble files are also copied to the loadups directory, but also remain available in the work directory after the loadup completes.
|
||||
|
||||
|
||||
Only one instance (per \<MEDLEIDIR>) of loadup can be run at a time. (The lock file is in the work directory and is named ***lock***. It can be removed in case of an uncontrolled failure of the loadup procedure.)
|
||||
Only one instance (per \<MEDLEIDIR>) of loadup can be run at a time. There is lock file to prevent simultaneous loadups in the work directory (named ***lock***) that can be manually removed. The lock can also be automatically overridden (see the --override flag below). Alternatively, if a lock is encountered at run time, the user will be asked to choose whether to override or simply exit the loadup.
|
||||
|
||||
Note: **MEDLEYDIR** is an environment variable set by the loadup script. It is set to the top level directory of the Medley installation that contains the specific loadup script that
|
||||
is invoked after all symbolic links are resolved. In the standard global installation this will
|
||||
@@ -120,6 +120,9 @@ OPTIONS
|
||||
**-a-, \-\-apps-, -apps-, -5-**
|
||||
: Synonym for "--target apps"
|
||||
|
||||
**-ov, \-\-override, -override**
|
||||
: Automatically override the lock that prevents two loadups from running simultaneously. If this flag is not set and an active lock is encountered, the user will be asked to choose whether to override or exit.
|
||||
|
||||
**-nc, \-\-nocopy, -nocopy**
|
||||
: Run the specified loadups, but do not copy results into loadups directory.
|
||||
|
||||
@@ -129,9 +132,15 @@ OPTIONS
|
||||
**-tl, \-\-thinl, -thinl**
|
||||
: Before running loadups (if any), thin the loadups directory by deleting all versioned (*.~[0-9]*~) files.
|
||||
|
||||
**-d DIR \-\-maikodir DIR, -maikodir DIR**
|
||||
**-d DIR, \-\-maikodir DIR, -maikodir DIR**
|
||||
: Use DIR as the directory from which to execute lde (Miko) when running Medley in the loadup process. If this flag is not present, the value of the environment variable MAIKODIR will be used instead. And if MAIKODIR does not exist, then the default Maiko directory search within Medley will be used.
|
||||
|
||||
**-v, \-\-vnc, -vnc**
|
||||
: Relevant to Linux (including WSLv1 and WSLv2) platforms only. Use Xvnc for the Medley display during this loadup.
|
||||
By default, the Medley display will use X Windows.
|
||||
This flag is most useful on Windows System for Linux v1, where Xvnc is commonly used in
|
||||
running Medley in the absence of an Xwindows server.
|
||||
|
||||
DEFAULTS
|
||||
====
|
||||
The defaults for the Options context-dependent and somewhat complicated due to the goal of maintaining compatibility with legacy loadup scripts. All of the following defaults rules hold independent of the --maikodir (-d) option.
|
||||
|
||||
@@ -1,269 +1,159 @@
|
||||
<h1>NAME</h1>
|
||||
<p><strong>loadup</strong> — runs a loadup procedure for Medley
|
||||
Interlisp</p>
|
||||
<p><strong>loadup</strong> — runs a loadup procedure for Medley Interlisp</p>
|
||||
<h1>SYNOPSIS</h1>
|
||||
<p><strong><MEDLEYDIR>/scripts/loadup</strong> [ options ... ]</p>
|
||||
<h1>DESCRIPTION</h1>
|
||||
<p>Runs all or part of the <strong>loadup</strong> procedure for Medley
|
||||
Interlisp. The loadup procedure is used to create the standard sysout
|
||||
files from which you can start a Medley session as well as other
|
||||
standard files that are useful in running Medley. After cloning Medley
|
||||
from GitHub or after making significant changes to the Medley source,
|
||||
you need to run the loadup procedure to (re)create these standard
|
||||
files.</p>
|
||||
<p>The complete loadup procedure happens in 5 sequential stages with
|
||||
each stage depending on successful completion of the previous stage.
|
||||
There are two other non-sequential stages (Aux and DB), which depend
|
||||
only on the completion of Stage 4 (full.sysout).</p>
|
||||
<p>You need not run all 5 stages, depending on what sysout files you
|
||||
need to create for your work. The target files created in each stage are
|
||||
copied into a loadups directory (<MEDLEYDIR>/loadups). The
|
||||
<em>medley</em> run script and other Medley tools look for these files
|
||||
in the loadups directory.</p>
|
||||
<p>Runs all or part of the <strong>loadup</strong> procedure for Medley Interlisp. The loadup procedure is used to create the standard sysout files from which you can start a Medley session as well as other standard files that are useful in running Medley. After cloning Medley from GitHub or after making significant changes to the Medley source, you need to run the loadup procedure to (re)create these standard files.</p>
|
||||
<p>The complete loadup procedure happens in 5 sequential stages with each stage depending on successful completion of the previous stage. There are two other non-sequential stages (Aux and DB), which depend only on the completion of Stage 4 (full.sysout).</p>
|
||||
<p>You need not run all 5 stages, depending on what sysout files you need to create for your work. The target files created in each stage are copied into a loadups directory (<MEDLEYDIR>/loadups). The <em>medley</em> run script and other Medley tools look for these files in the loadups directory.</p>
|
||||
<p>The 5 sequential stages and their main products are:</p>
|
||||
<blockquote>
|
||||
<ol type="1">
|
||||
<li><p><strong>Init:</strong> create an <em>init.dlinit</em> sysout
|
||||
file. This init.dlinit file is used internally for Stage 2 and is not
|
||||
copied into the loadups directory.</p></li>
|
||||
<li><p><strong>Init:</strong> create an <em>init.dlinit</em> sysout file. This init.dlinit file is used internally for Stage 2 and is not copied into the loadups directory.</p></li>
|
||||
</ol>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<ol start="2" type="1">
|
||||
<li><p><strong>Mid:</strong> create an <em>init-mid.sysout</em>. This
|
||||
init-mid.sysout is used only internally for Stage 3 and is not copied
|
||||
into the loadups directory.</p></li>
|
||||
<li><p><strong>Mid:</strong> create an <em>init-mid.sysout</em>. This init-mid.sysout is used only internally for Stage 3 and is not copied into the loadups directory.</p></li>
|
||||
</ol>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<ol start="3" type="1">
|
||||
<li><p><strong>Lisp:</strong> create <em>lisp.sysout</em>. Lisp.sysout
|
||||
has a minimal set of Medley’s functionality loaded and can be used as
|
||||
the basis for running a stripped-down Medley session. Lisp.sysout is
|
||||
copied into the loadups directory.</p></li>
|
||||
<li><p><strong>Lisp:</strong> create <em>lisp.sysout</em>. Lisp.sysout has a minimal set of Medley’s functionality loaded and can be used as the basis for running a stripped-down Medley session. Lisp.sysout is copied into the loadups directory.</p></li>
|
||||
</ol>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<ol start="4" type="1">
|
||||
<li><p><strong>Full:</strong> create <em>full.sysout</em>. Full.sysout
|
||||
has all of the “standard” set of Medley functionality loaded and is the
|
||||
primary sysout used for running Medley sessions. Full.sysout is copied
|
||||
into the loadups directory.</p></li>
|
||||
<li><p><strong>Full:</strong> create <em>full.sysout</em>. Full.sysout has all of the “standard” set of Medley functionality loaded and is the primary sysout used for running Medley sessions. Full.sysout is copied into the loadups directory.</p></li>
|
||||
</ol>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<ol start="5" type="1">
|
||||
<li><p><strong>Apps:</strong>: create <em>apps.sysout</em>. Apps.sysout
|
||||
includes everything in full.sysout plus the Medley applications Buttons,
|
||||
CLOS, Rooms, and Notecards.</p></li>
|
||||
<li><p><strong>Apps:</strong>: create <em>apps.sysout</em>. Apps.sysout includes everything in full.sysout plus the Medley applications Buttons, CLOS, Rooms, and Notecards.</p></li>
|
||||
</ol>
|
||||
</blockquote>
|
||||
<p>The two independent stages that can be run if the first 4 sequential
|
||||
stages complete successfully are:</p>
|
||||
<p>The two independent stages that can be run if the first 4 sequential stages complete successfully are:</p>
|
||||
<blockquote>
|
||||
<ul>
|
||||
<li><p><strong>Aux:</strong>: create the <em>whereis.hash</em> and
|
||||
<em>exports.all</em> files. These are databases that are commonly used
|
||||
when working on Medley source code. They are copied into the loadups
|
||||
directory.</p></li>
|
||||
<li><p><strong>DB:</strong>: creates the <em>fuller.database</em> file.
|
||||
Fuller.database is a Mastercope database created by analyzing all of the
|
||||
source code included in full.sysout. (Stage 4) Fuller.database is copied
|
||||
into the loadups directory.</p></li>
|
||||
<li><p><strong>Aux:</strong>: create the <em>whereis.hash</em> and <em>exports.all</em> files. These are databases that are commonly used when working on Medley source code. They are copied into the loadups directory.</p></li>
|
||||
<li><p><strong>DB:</strong>: creates the <em>fuller.database</em> file. Fuller.database is a Mastercope database created by analyzing all of the source code included in full.sysout. (Stage 4) Fuller.database is copied into the loadups directory.</p></li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<p>Loadup does all of its work in a work directory
|
||||
(<MEDLEYDIR>loadups/build). The target files are copied from this
|
||||
work directory to the loadups directory if the loadup is successful.
|
||||
Each stage of the loadup also creates a dribble file containing the
|
||||
terminal output from within the Medley environment. These dribble files
|
||||
are not copied to the loadups directory, but remain available in the
|
||||
work directory after the loadup completes.</p>
|
||||
<p>Only one instance (per <MEDLEIDIR>) of loadup can be run at a
|
||||
time. (The lock file is in the work directory and is named
|
||||
<strong><em>lock</em></strong>. It can be removed in case of an
|
||||
uncontrolled failure of the loadup procedure.)</p>
|
||||
<p>Note: <strong>MEDLEYDIR</strong> is an environment variable set by
|
||||
the loadup script. It is set to the top level directory of the Medley
|
||||
installation that contains the specific loadup script that is invoked
|
||||
after all symbolic links are resolved. In the standard global
|
||||
installation this will be /usr/local/interlisp/medley. But Medley can be
|
||||
installed in multiple places on any given machine and hence MEDLEYDIR is
|
||||
computed on each invocation of loadup.</p>
|
||||
<p>Loadup does all of its work in a work directory (<MEDLEYDIR>loadups/build). The target files are copied from this work directory to the loadups directory if the loadup is successful. Each stage of the loadup also creates a dribble file containing the terminal output from within the Medley environment. These dribble files are also copied to the loadups directory, but also remain available in the work directory after the loadup completes.</p>
|
||||
<p>Only one instance (per <MEDLEIDIR>) of loadup can be run at a time. There is lock file to prevent simultaneous loadups in the work directory (named <strong><em>lock</em></strong>) that can be manually removed. The lock can also be automatically overridden (see the –override flag below). Alternatively, if a lock is encountered at run time, the user will be asked to choose whether to override or simply exit the loadup.</p>
|
||||
<p>Note: <strong>MEDLEYDIR</strong> is an environment variable set by the loadup script. It is set to the top level directory of the Medley installation that contains the specific loadup script that is invoked after all symbolic links are resolved. In the standard global installation this will be /usr/local/interlisp/medley. But Medley can be installed in multiple places on any given machine and hence MEDLEYDIR is computed on each invocation of loadup.</p>
|
||||
<h1>OPTIONS</h1>
|
||||
<dl>
|
||||
<dt><strong>-z, --man, -man</strong></dt>
|
||||
<dd>
|
||||
<p>Print this manual page on the screen.</p>
|
||||
<dd><p>Print this manual page on the screen.</p>
|
||||
</dd>
|
||||
<dt><strong>-t STAGE, --target STAGE, -target STAGE</strong></dt>
|
||||
<dd>
|
||||
<p>Run the sequential loadup procedure until the STAGE is complete,
|
||||
starting from the files created by the previously run STAGE specified in
|
||||
the –start option.</p>
|
||||
<dd><p>Run the sequential loadup procedure until the STAGE is complete, starting from the files created by the previously run STAGE specified in the –start option.</p>
|
||||
<p>STAGE can be one of the following:</p>
|
||||
<blockquote>
|
||||
<p>i, init, 1: Run the loadup sequence through Stage 1 (init.dlinit).
|
||||
Init.dlinit is <em>not</em> copied into the loadups directory.</p>
|
||||
<p>i, init, 1: Run the loadup sequence through Stage 1 (init.dlinit). Init.dlinit is <em>not</em> copied into the loadups directory.</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>m, mid, 2: Run the loadup sequence through Stage 2 (init-mid.sysout).
|
||||
Init-mid.sysout is <em>not</em> copied into the loadups directory.</p>
|
||||
<p>m, mid, 2: Run the loadup sequence through Stage 2 (init-mid.sysout). Init-mid.sysout is <em>not</em> copied into the loadups directory.</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>l, lisp, 3: Run the loadup sequence through Stage 3 (lisp.sysout).
|
||||
Lisp.sysout is copied into the loadups directory.</p>
|
||||
<p>l, lisp, 3: Run the loadup sequence through Stage 3 (lisp.sysout). Lisp.sysout is copied into the loadups directory.</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>f, full, 4: Run the loadup sequence through Stage 4 (full.sysout).
|
||||
Full.sysout is copied into the loadups directory.</p>
|
||||
<p>f, full, 4: Run the loadup sequence through Stage 4 (full.sysout). Full.sysout is copied into the loadups directory.</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>a, apps, 5: Run the loadup sequence through Stage 5 (apps.sysout).
|
||||
Also run the Aux stage as if –aux option had been specified. Apps.sysout
|
||||
and the Aux files are copied into the loadups directory.</p>
|
||||
<p>a, apps, 5: Run the loadup sequence through Stage 5 (apps.sysout). Also run the Aux stage as if –aux option had been specified. Apps.sysout and the Aux files are copied into the loadups directory.</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>a-, apps-, 5-: Run the loadup sequence through Stage 5 (apps.sysout).
|
||||
The Aux stage is not run unless otherwise specified. Apps.sysout is
|
||||
copied into the loadups directory. Also run the Aux stage as if –aux
|
||||
option had been specified.</p>
|
||||
<p>a-, apps-, 5-: Run the loadup sequence through Stage 5 (apps.sysout). The Aux stage is not run unless otherwise specified. Apps.sysout is copied into the loadups directory. Also run the Aux stage as if –aux option had been specified.</p>
|
||||
</blockquote>
|
||||
</dd>
|
||||
<dt><strong>-s STAGE --start STAGE, -start STAGE</strong></dt>
|
||||
<dd>
|
||||
<p>Start the loadup process using the files previously created by STAGE.
|
||||
These files are looked for first in the loadups directory or, if not
|
||||
found there, in the work directory. It is an error if the files created
|
||||
by STAGE cannot be found.</p>
|
||||
<dd><p>Start the loadup process using the files previously created by STAGE. These files are looked for first in the loadups directory or, if not found there, in the work directory. It is an error if the files created by STAGE cannot be found.</p>
|
||||
<p>STAGE can be one of the following:</p>
|
||||
<blockquote>
|
||||
<p>s, scratch, 0 : Start the loadup process from the beginning. This is
|
||||
the default.</p>
|
||||
<p>s, scratch, 0 : Start the loadup process from the beginning. This is the default.</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>i, init, 1 : Start the loadup process using the files created by
|
||||
Stage 1 (init.dlinit).</p>
|
||||
<p>i, init, 1 : Start the loadup process using the files created by Stage 1 (init.dlinit).</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>m, mid, 2 : Start the loadup process using the files created by Stage
|
||||
2 (init-mid.sysout).</p>
|
||||
<p>m, mid, 2 : Start the loadup process using the files created by Stage 2 (init-mid.sysout).</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>l, lisp, 3 : Start the loadup process using the files created by
|
||||
Stage 3 (lisp.sysout)</p>
|
||||
<p>l, lisp, 3 : Start the loadup process using the files created by Stage 3 (lisp.sysout)</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>f, full, 4 : Start the loadup process using the files created by
|
||||
Stage 4 (full.sysout).</p>
|
||||
<p>f, full, 4 : Start the loadup process using the files created by Stage 4 (full.sysout).</p>
|
||||
</blockquote>
|
||||
</dd>
|
||||
<dt><strong>-x, --aux, -aux</strong></dt>
|
||||
<dd>
|
||||
<p>Run the Aux loadup stage, creating the <em>whereis.hash</em> and
|
||||
<em>exports.all</em> files. If loadup completes successfully, these
|
||||
files are copied into loadups.</p>
|
||||
<dd><p>Run the Aux loadup stage, creating the <em>whereis.hash</em> and <em>exports.all</em> files. If loadup completes successfully, these files are copied into loadups.</p>
|
||||
</dd>
|
||||
<dt><strong>-b, --db, -db</strong></dt>
|
||||
<dd>
|
||||
<p>Run the DB loadup stage, creating the <em>fuller.database</em> file.
|
||||
If this stage complete successfully, these files are copied into
|
||||
loadups.</p>
|
||||
<dd><p>Run the DB loadup stage, creating the <em>fuller.database</em> file. If this stage complete successfully, these files are copied into loadups.</p>
|
||||
</dd>
|
||||
<dt><strong>-i, --init, -init, -1</strong></dt>
|
||||
<dd>
|
||||
<p>Synonym for “–target init”</p>
|
||||
<dd><p>Synonym for “–target init”</p>
|
||||
</dd>
|
||||
<dt><strong>-m, --mid, -mid, -2</strong></dt>
|
||||
<dd>
|
||||
<p>Synonym for “–target mid”</p>
|
||||
<dd><p>Synonym for “–target mid”</p>
|
||||
</dd>
|
||||
<dt><strong>-l, --lisp, -lisp, -3</strong></dt>
|
||||
<dd>
|
||||
<p>Synonym for “–target lisp”</p>
|
||||
<dd><p>Synonym for “–target lisp”</p>
|
||||
</dd>
|
||||
<dt><strong>-f, --full. -full, -4</strong></dt>
|
||||
<dd>
|
||||
<p>Synonym for “–target full”</p>
|
||||
<dd><p>Synonym for “–target full”</p>
|
||||
</dd>
|
||||
<dt><strong>-a, --apps, -apps, -5</strong></dt>
|
||||
<dd>
|
||||
<p>Synonym for “–target apps”</p>
|
||||
<dd><p>Synonym for “–target apps”</p>
|
||||
</dd>
|
||||
<dt><strong>-a-, --apps-, -apps-, -5-</strong></dt>
|
||||
<dd>
|
||||
<p>Synonym for “–target apps”</p>
|
||||
<dd><p>Synonym for “–target apps”</p>
|
||||
</dd>
|
||||
<dt><strong>-ov, --override, -override</strong></dt>
|
||||
<dd><p>Automatically override the lock that prevents two loadups from running simultaneously. If this flag is not set and an active lock is encountered, the user will be asked to choose whether to override or exit.</p>
|
||||
</dd>
|
||||
<dt><strong>-nc, --nocopy, -nocopy</strong></dt>
|
||||
<dd>
|
||||
<p>Run the specified loadups, but do not copy results into loadups
|
||||
directory.</p>
|
||||
<dd><p>Run the specified loadups, but do not copy results into loadups directory.</p>
|
||||
</dd>
|
||||
<dt><strong>-tw, --thinw, -thinw</strong></dt>
|
||||
<dd>
|
||||
<p>Before running loadups (if any), thin the working directory by
|
||||
deleting all versioned (<em>.~[0-9]</em>~) files.</p>
|
||||
<dd><p>Before running loadups (if any), thin the working directory by deleting all versioned (<em>.~[0-9]</em>~) files.</p>
|
||||
</dd>
|
||||
<dt><strong>-tl, --thinl, -thinl</strong></dt>
|
||||
<dd>
|
||||
<p>Before running loadups (if any), thin the loadups directory by
|
||||
deleting all versioned (<em>.~[0-9]</em>~) files.</p>
|
||||
<dd><p>Before running loadups (if any), thin the loadups directory by deleting all versioned (<em>.~[0-9]</em>~) files.</p>
|
||||
</dd>
|
||||
<dt><strong>-d DIR --maikodir DIR, -maikodir DIR</strong></dt>
|
||||
<dd>
|
||||
<p>Use DIR as the directory from which to execute lde (Miko) when
|
||||
running Medley in the loadup process. If this flag is not present, the
|
||||
value of the environment variable MAIKODIR will be used instead. And if
|
||||
MAIKODIR does not exist, then the default Maiko directory search within
|
||||
Medley will be used.</p>
|
||||
<dt><strong>-d DIR, --maikodir DIR, -maikodir DIR</strong></dt>
|
||||
<dd><p>Use DIR as the directory from which to execute lde (Miko) when running Medley in the loadup process. If this flag is not present, the value of the environment variable MAIKODIR will be used instead. And if MAIKODIR does not exist, then the default Maiko directory search within Medley will be used.</p>
|
||||
</dd>
|
||||
<dt><strong>-v, --vnc, -vnc</strong></dt>
|
||||
<dd><p>Relevant to Linux (including WSLv1 and WSLv2) platforms only. Use Xvnc for the Medley display during this loadup. By default, the Medley display will use X Windows. This flag is most useful on Windows System for Linux v1, where Xvnc is commonly used in running Medley in the absence of an Xwindows server.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<h1>DEFAULTS</h1>
|
||||
<p>The defaults for the Options context-dependent and somewhat
|
||||
complicated due to the goal of maintaining compatibility with legacy
|
||||
loadup scripts. All of the following defaults rules hold independent of
|
||||
the –maikodir (-d) option.</p>
|
||||
<p>The defaults for the Options context-dependent and somewhat complicated due to the goal of maintaining compatibility with legacy loadup scripts. All of the following defaults rules hold independent of the –maikodir (-d) option.</p>
|
||||
<ol type="1">
|
||||
<li><p>If none of –target, –start, –aux, and –db are specified,
|
||||
then:</p>
|
||||
<p>1A. If neither –thinw nor –thinl are specified, the options default
|
||||
to:</p>
|
||||
<li><p>If none of –target, –start, –aux, and –db are specified, then:</p>
|
||||
<p>1A. If neither –thinw nor –thinl are specified, the options default to:</p>
|
||||
<blockquote>
|
||||
<p><strong>–target full –start 0 –aux</strong></p>
|
||||
</blockquote>
|
||||
<p>1B. If either –thinw or –thinl are specified, no loadups are
|
||||
run.</p></li>
|
||||
<li><p>If neither –start nor –target are specified but either -aux or
|
||||
-db or both are, then –start defaults to <em>full</em> and –target is
|
||||
irrelevant.</p></li>
|
||||
<li><p>If –start is specified and –target is not, then –target defaults
|
||||
to <em>full</em></p></li>
|
||||
<li><p>If –target is specified and –start is not, then –start defaults
|
||||
to <em>0</em></p></li>
|
||||
<p>1B. If either –thinw or –thinl are specified, no loadups are run.</p></li>
|
||||
<li><p>If neither –start nor –target are specified but either -aux or -db or both are, then –start defaults to <em>full</em> and –target is irrelevant.</p></li>
|
||||
<li><p>If –start is specified and –target is not, then –target defaults to <em>full</em></p></li>
|
||||
<li><p>If –target is specified and –start is not, then –start defaults to <em>0</em></p></li>
|
||||
</ol>
|
||||
<h1>EXAMPLES</h1>
|
||||
<p><strong>./loadup -full -s lisp</strong> : run loadup thru Stage 4
|
||||
(full.sysout) starting from existing Stage 3 outputs (lisp.sysout).</p>
|
||||
<p><strong>./loadup --target full --start lisp</strong> : run loadup
|
||||
thru Stage 4 (full.sysout) starting from existing Stage 3 outputs
|
||||
(lisp.sysout).</p>
|
||||
<p><strong>./loadup -5 –aux</strong> : run loadup from the beginning
|
||||
thru Stage 5 (apps.sysout) then run the Aux “stage” to create
|
||||
<em>whereis.hash</em> and <em>exports.all</em></p>
|
||||
<p><strong>./loadup -db</strong> : just run the DB “stage” starting from
|
||||
an existing full.sysout; do not run any of the sequential stages.</p>
|
||||
<p><strong>./loadup –maikodir ~/il/newmaiko</strong> : run loadup
|
||||
sequence from beginning to full plus the loadup Aux stage, while using
|
||||
<em>~/il/newmaiko</em> as the location for the lde executables when
|
||||
running Medley.</p>
|
||||
<p><strong>./loadup -full</strong> : run loadup sequence from beginning
|
||||
thru full</p>
|
||||
<p><strong>./loadup -apps</strong> : run loadup sequence from beginning
|
||||
thru app. Also run the Aux stage loadup.</p>
|
||||
<p><strong>./loadup -apps-</strong> : run loadup sequence from beginning
|
||||
thru app. Do not run the Aux stage loadup.</p>
|
||||
<p><strong>./loadup -full -s lisp</strong> : run loadup thru Stage 4 (full.sysout) starting from existing Stage 3 outputs (lisp.sysout).</p>
|
||||
<p><strong>./loadup --target full --start lisp</strong> : run loadup thru Stage 4 (full.sysout) starting from existing Stage 3 outputs (lisp.sysout).</p>
|
||||
<p><strong>./loadup -5 –aux</strong> : run loadup from the beginning thru Stage 5 (apps.sysout) then run the Aux “stage” to create <em>whereis.hash</em> and <em>exports.all</em></p>
|
||||
<p><strong>./loadup -db</strong> : just run the DB “stage” starting from an existing full.sysout; do not run any of the sequential stages.</p>
|
||||
<p><strong>./loadup –maikodir ~/il/newmaiko</strong> : run loadup sequence from beginning to full plus the loadup Aux stage, while using <em>~/il/newmaiko</em> as the location for the lde executables when running Medley.</p>
|
||||
<p><strong>./loadup -full</strong> : run loadup sequence from beginning thru full</p>
|
||||
<p><strong>./loadup -apps</strong> : run loadup sequence from beginning thru app. Also run the Aux stage loadup.</p>
|
||||
<p><strong>./loadup -apps-</strong> : run loadup sequence from beginning thru app. Do not run the Aux stage loadup.</p>
|
||||
<h1>BUGS</h1>
|
||||
<p>See GitHub Issues:
|
||||
<https://github.com/Interlisp/medley/issues></p>
|
||||
<p>See GitHub Issues: <https://github.com/Interlisp/medley/issues></p>
|
||||
<h1>COPYRIGHT</h1>
|
||||
<p>Copyright(c) 2025 by Interlisp.org</p>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED "23-Feb-2025 12:18:57" {WMEDLEY}<library>PDFSTREAM.;62 14729
|
||||
(FILECREATED " 5-Jun-2025 08:42:11" {WMEDLEY}<library>PDFSTREAM.;64 14885
|
||||
|
||||
:EDIT-BY rmk
|
||||
|
||||
:CHANGES-TO (FNS OPEN-PDF-STREAM)
|
||||
|
||||
:PREVIOUS-DATE "25-Dec-2024 14:26:23" {WMEDLEY}<library>PDFSTREAM.;60)
|
||||
:PREVIOUS-DATE "23-Feb-2025 12:18:57" {WMEDLEY}<library>PDFSTREAM.;62)
|
||||
|
||||
|
||||
(PRETTYCOMPRINT PDFSTREAMCOMS)
|
||||
@@ -153,7 +153,8 @@
|
||||
(DEFINEQ
|
||||
|
||||
(OPEN-PDF-STREAM
|
||||
[LAMBDA (FILE OPTIONS) (* ; "Edited 23-Feb-2025 12:18 by rmk")
|
||||
[LAMBDA (FILE OPTIONS) (* ; "Edited 5-Jun-2025 08:41 by rmk")
|
||||
(* ; "Edited 23-Feb-2025 12:18 by rmk")
|
||||
(* ; "Edited 23-Sep-2023 15:38 by rmk")
|
||||
(* ; "Edited 22-Sep-2023 11:04 by rmk")
|
||||
(* ; "Edited 24-Jun-2023 14:49 by rmk")
|
||||
@@ -165,8 +166,6 @@
|
||||
(* ;;
|
||||
"Simplest thing for now is to just add an extra field at the end of the \POSTSCRIPTDATA record.")
|
||||
|
||||
(* ;; "")
|
||||
|
||||
(if [AND NIL (EQ 'LPT (FILENAMEFIELD FILE 'HOST]
|
||||
then
|
||||
(* ;; "If FILE is on the LPT device, we could just ssume that it can be printed directly, no point in converting. But then we would alo have to lie and give it a PDF extension so it thinks that we are heading to a PDF printer.")
|
||||
@@ -178,8 +177,9 @@
|
||||
(* ;; "Device NULL used by TMAX, maybe others, to get page number for table of contents, index. Nothing to convert")
|
||||
|
||||
(OPENPOSTSCRIPTSTREAM FILE OPTIONS)
|
||||
elseif (SETQ FILE (OR (AND (NEQ FILE T)
|
||||
(OUTFILEP FILE))
|
||||
elseif (SETQ FILE (OR [AND (NEQ FILE T)
|
||||
(OR (OUTFILEP FILE)
|
||||
(OPENSTREAM FILE 'OUTPUT]
|
||||
(ERROR "PDF target file not found" FILE)))
|
||||
then (CL:UNLESS (ASSOC (PDFCONVERTER)
|
||||
PDF-CONVERTER-TEMPLATES)
|
||||
@@ -293,7 +293,7 @@
|
||||
)
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (3263 5877 (PDFFILEP 3273 . 4187) (PDF.HARDCOPYW 4189 . 4787) (PDF.TEXT 4789 . 5506) (
|
||||
PDF.TEDIT 5508 . 5875)) (6317 13806 (OPEN-PDF-STREAM 6327 . 8892) (CLOSE-PDF-STREAM 8894 . 10181) (
|
||||
PS-TO-PDF 10183 . 13804)) (13807 14371 (SEE-PDF 13817 . 14369)) (14422 14706 (PDFCONVERTER 14432 .
|
||||
14704)))))
|
||||
PDF.TEDIT 5508 . 5875)) (6317 13962 (OPEN-PDF-STREAM 6327 . 9048) (CLOSE-PDF-STREAM 9050 . 10337) (
|
||||
PS-TO-PDF 10339 . 13960)) (13963 14527 (SEE-PDF 13973 . 14525)) (14578 14862 (PDFCONVERTER 14588 .
|
||||
14860)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
@@ -1,29 +1,15 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED "28-Apr-2025 00:17:24" {DSK}<home>matt>Interlisp>medley>library>POSTSCRIPTSTREAM.;14 257549
|
||||
(FILECREATED " 5-Jun-2025 16:12:21" {DSK}<home>matt>Interlisp>medley>library>POSTSCRIPTSTREAM.;5 258146
|
||||
|
||||
:EDIT-BY "mth"
|
||||
|
||||
:CHANGES-TO (FNS \DRAWLINE.PSC POSTSCRIPT.PUTRGBCOLOR \PSC.COLOR.TO.RGB \BLTSHADE.PSC
|
||||
\DRAWARC.PSC \DRAWCIRCLE.PSC \DRAWCURVE.PSC \DRAWELLIPSE.PSC \DRAWPOLYGON.PSC
|
||||
\FILLCIRCLE.PSC \FILLPOLYGON.PSC POSTSCRIPT.COLORSTRING POSTSCRIPT.OUTSTR
|
||||
\DSPCOLOR.PSC POSTSCRIPT.PUTCOLOR \DRAWPOINT.PSC \POSTSCRIPT.CHANGECHARSET
|
||||
POSTSCRIPT.HARDCOPYW POSTSCRIPT.CLOSESTRING POSTSCRIPT.ENDPAGE
|
||||
POSTSCRIPT.PUTCOMMAND POSTSCRIPT.SET-FAKE-LANDSCAPE POSTSCRIPT.SHOWACCUM
|
||||
POSTSCRIPT.STARTPAGE \POSTSCRIPTTAB \PS.BOUTFIXP \PS.SCALEHACK
|
||||
\SCALEDBITBLT.PSC \SETPOS.PSC \SETXFORM.PSC \STRINGWIDTH.PSC \SWITCHFONTS.PSC
|
||||
\TERPRI.PSC \CHARWIDTH.PSC \DSPBOTTOMMARGIN.PSC \DSPCLIPPINGREGION.PSC
|
||||
\DSPFONT.PSC \DSPLEFTMARGIN.PSC \DSPLINEFEED.PSC \DSPPUSHSTATE.PSC
|
||||
\DSPPOPSTATE.PSC \DSPRESET.PSC \DSPRIGHTMARGIN.PSC \DSPROTATE.PSC
|
||||
\DSPSCALE.PSC \DSPSCALE2.PSC \DSPSPACEFACTOR.PSC \DSPTOPMARGIN.PSC
|
||||
\DSPTRANSLATE.PSC \DSPXPOSITION.PSC \DSPYPOSITION.PSC \FIXLINELENGTH.PSC
|
||||
\MOVETO.PSC \POSTSCRIPT.OUTCHARFN \POSTSCRIPT.PRINTSLUG
|
||||
\POSTSCRIPT.SPECIALOUTCHARFN \UPDATE.PSC \POSTSCRIPT.ACCENTFN
|
||||
\POSTSCRIPT.ACCENTPAIR OPENPOSTSCRIPTSTREAM)
|
||||
(VARS POSTSCRIPTSTREAMCOMS)
|
||||
(RECORDS \POSTSCRIPTDATA)
|
||||
:CHANGES-TO (FNS \BLTSHADE.PSC \PSC.COLOR.TO.RGB \DRAWLINE.PSC \DRAWARC.PSC POSTSCRIPTSEND
|
||||
\TERPRI.PSC POSTSCRIPT.PUTCOMMAND POSTSCRIPT.PUTRGBCOLOR \DSPCOLOR.PSC
|
||||
\DRAWCIRCLE.PSC \DRAWELLIPSE.PSC \DRAWPOINT.PSC \DRAWPOLYGON.PSC
|
||||
\FILLCIRCLE.PSC \FILLPOLYGON.PSC POSTSCRIPT.TEDIT \BITBLT.PSC)
|
||||
|
||||
:PREVIOUS-DATE "10-Dec-2024 15:16:36"
|
||||
:PREVIOUS-DATE "28-Apr-2025 00:17:24"
|
||||
{DSK}<home>matt>Interlisp>medley>library>POSTSCRIPTSTREAM.;1)
|
||||
|
||||
|
||||
@@ -502,47 +488,71 @@
|
||||
(\POSTSCRIPT.NSHASH *POSTSCRIPT-NS-TRANSLATIONS*])
|
||||
|
||||
(POSTSCRIPT.PUTRGBCOLOR
|
||||
[LAMBDA (STREAM COLOR EOL?) (* ; "Edited 28-Apr-2025 00:02 by mth")
|
||||
[LAMBDA (STREAM COLOR EOL?) (* ; "Edited 5-Jun-2025 14:06 by mth")
|
||||
(* ; "Edited 28-Apr-2025 00:02 by mth")
|
||||
(* ; "Edited 26-Apr-2025 17:16 by mth")
|
||||
(AND COLOR (CL:MULTIPLE-VALUE-BIND (RGB GRAY COLORSTR)
|
||||
(\PSC.COLOR.TO.RGB COLOR)
|
||||
(POSTSCRIPT.PUTCOMMAND STREAM COLORSTR (OR (AND GRAY " setgray ")
|
||||
" setrgbcolor ")
|
||||
(AND EOL? :EOL])
|
||||
(\PSC.COLOR.TO.RGB COLOR (fetch (\POSTSCRIPTDATA POSTSCRIPTCOLOR)
|
||||
of (fetch IMAGEDATA of STREAM)))
|
||||
(CL:WHEN RGB (* ; "A valid color designation")
|
||||
(POSTSCRIPT.PUTCOMMAND STREAM COLORSTR (OR (AND GRAY " setgray ")
|
||||
" setrgbcolor ")
|
||||
(AND EOL? :EOL)))
|
||||
|
||||
(* ;; "Return the RGB color")
|
||||
|
||||
RGB])
|
||||
|
||||
(\PSC.COLOR.TO.RGB
|
||||
[LAMBDA (COLOR NOERRORFLG?) (* ; "Edited 28-Apr-2025 00:10 by mth")
|
||||
(* ; "Edited 26-Apr-2025 17:06 by mth")
|
||||
[LAMBDA (COLOR DEFAULTRGB NOERRORFLG?) (* ; "Edited 5-Jun-2025 16:03 by mth")
|
||||
(* ; "Edited 31-May-2025 17:20 by mth")
|
||||
(* ; "Edited 28-Apr-2025 00:10 by mth")
|
||||
(LET (RGB STR)
|
||||
(COND
|
||||
[(AND (FLOATP COLOR)
|
||||
(<= 0.0 COLOR 1.0)
|
||||
(SETQ RGB (FIX (FTIMES COLOR 255)))
|
||||
(SETQ RGB (LIST RGB RGB RGB))
|
||||
(SETQ STR (CL:FORMAT NIL "~F "]
|
||||
[(SETQ RGB (ENSURE.RGB COLOR NOERRORFLG?))
|
||||
(SETQ STR (IF (AND (EQ (CAR RGB)
|
||||
(CADR RGB))
|
||||
(EQ (CAR RGB)
|
||||
(CADDR RGB)))
|
||||
THEN
|
||||
(* ;; "They're all equal, this is gray.")
|
||||
((OR (EQ COLOR 0)
|
||||
(EQ COLOR 1)
|
||||
(AND (FLOATP COLOR)
|
||||
(<= 0.0 COLOR 1.0)))
|
||||
|
||||
(CL:FORMAT NIL "~F " (SETQ COLOR (FQUOTIENT (CAR RGB)
|
||||
255.0)))
|
||||
ELSE (SETQ COLOR NIL) (* ; "Means NOT gray")
|
||||
(CL:FORMAT NIL "~D ~D ~D " (CAR RGB)
|
||||
(CADR RGB)
|
||||
(CADDR RGB]
|
||||
(* ;; "The SMALLP values 0 and 1 can be checked with EQ")
|
||||
|
||||
(SETQ RGB (FIX (FTIMES COLOR 255)))
|
||||
(SETQ STR (CL:FORMAT NIL "~F " RGB))
|
||||
(SETQ RGB (LIST RGB RGB RGB)))
|
||||
([OR (NULL COLOR)
|
||||
(AND (FIXP COLOR)
|
||||
(<= 2 COLOR (CONSTANT (MAXIMUMCOLOR 24]
|
||||
|
||||
(* ;; "Ignore any other FIXP that could be a COLORNUMBER")
|
||||
|
||||
(* ;;
|
||||
"or an RGB encoded as a single FIXP. Just use the DEFAULTRGB which MUST be a valid RGB!")
|
||||
|
||||
(SETQ RGB DEFAULTRGB))
|
||||
((SETQ RGB (ENSURE.RGB COLOR NOERRORFLG?)))
|
||||
(T
|
||||
(* ;; " Shouldn't ever get here.")
|
||||
|
||||
(* ;; " ENSURE.RGB above handled the color name or number, RGB, and HLS cases.")
|
||||
(* ;; " ENSURE.RGB above handled the color name, RGB, and HLS cases.")
|
||||
|
||||
(* ;; "Depending on NOERRORFLG?, it will give the error for anything else invalid")
|
||||
|
||||
NIL))
|
||||
(CL:VALUES RGB COLOR STR])
|
||||
(CL:WHEN RGB
|
||||
[SETQ STR (OR STR (IF (AND (EQ (CAR RGB)
|
||||
(CADR RGB))
|
||||
(EQ (CAR RGB)
|
||||
(CADDR RGB)))
|
||||
THEN
|
||||
(* ;; "They're all equal, this is gray.")
|
||||
|
||||
(CL:FORMAT NIL "~F " (SETQ COLOR (FQUOTIENT (CAR RGB)
|
||||
255.0)))
|
||||
ELSE (SETQ COLOR NIL) (* ; "Means NOT gray")
|
||||
(CL:FORMAT NIL "~D ~D ~D " (CAR RGB)
|
||||
(CADR RGB)
|
||||
(CADDR RGB])
|
||||
(CL:VALUES RGB COLOR STR (NOT (EQUAL RGB DEFAULTRGB])
|
||||
)
|
||||
|
||||
(ADDTOVAR DEFAULTFILETYPELIST (PS . BINARY)
|
||||
@@ -1380,7 +1390,7 @@
|
||||
(FULLNAME STREAM])
|
||||
|
||||
(POSTSCRIPT.TEDIT
|
||||
[LAMBDA (FILE PFILE) (* ; "Edited 18-Sep-91 18:16 by jds")
|
||||
[LAMBDA (FILE PFILE) (* ; "Edited 18-Sep-91 18:16 by jds")
|
||||
|
||||
(* ;; "Make a PS file from a TEdit document. If FILE is a string, make it into a symbol for the file-name. If it's a STREAM, use that stream.")
|
||||
|
||||
@@ -2193,12 +2203,13 @@
|
||||
[LAMBDA (SOURCEBITMAP SOURCELEFT SOURCEBOTTOM STREAM DESTINATIONLEFT DESTINATIONBOTTOM WIDTH HEIGHT
|
||||
SOURCETYPE OPERATION TEXTURE CLIPPINGREGION CLIPPEDSOURCELEFT CLIPPEDSOURCEBOTTOM)
|
||||
(* ; "Edited 7-Apr-89 19:53 by TAL")
|
||||
(\SCALEDBITBLT.PSC SOURCEBITMAP SOURCELEFT SOURCEBOTTOM STREAM DESTINATIONLEFT
|
||||
DESTINATIONBOTTOM WIDTH HEIGHT SOURCETYPE OPERATION TEXTURE CLIPPINGREGION
|
||||
CLIPPEDSOURCELEFT CLIPPEDSOURCEBOTTOM 1])
|
||||
(\SCALEDBITBLT.PSC SOURCEBITMAP SOURCELEFT SOURCEBOTTOM STREAM DESTINATIONLEFT DESTINATIONBOTTOM
|
||||
WIDTH HEIGHT SOURCETYPE OPERATION TEXTURE CLIPPINGREGION CLIPPEDSOURCELEFT
|
||||
CLIPPEDSOURCEBOTTOM 1])
|
||||
|
||||
(\BLTSHADE.PSC
|
||||
[LAMBDA (TEXTURE STREAM DESTINATIONLEFT DESTINATIONBOTTOM WIDTH HEIGHT OPERATION CLIPPINGREGION)
|
||||
(* ; "Edited 5-Jun-2025 16:11 by mth")
|
||||
(* ; "Edited 28-Apr-2025 00:05 by mth")
|
||||
(* ;
|
||||
"Edited 20-Nov-92 15:12 by sybalsky:mv:envos")
|
||||
@@ -2237,7 +2248,8 @@
|
||||
(SETQ TEXTUREBM (BITMAPCREATE TEXTUREWIDTH TEXTUREWIDTH 1))
|
||||
(BITBLT TEXTURE 0 0 TEXTUREBM 0 0 TEXTUREWIDTH TEXTUREWIDTH 'INPUT 'REPLACE))
|
||||
(T (CL:MULTIPLE-VALUE-BIND (COLOR GRAY COLORSTR)
|
||||
(\PSC.COLOR.TO.RGB (OR TEXTURE (\DSPCOLOR.PSC STREAM NIL)))
|
||||
(\PSC.COLOR.TO.RGB TEXTURE (fetch (\POSTSCRIPTDATA POSTSCRIPTCOLOR)
|
||||
of IMAGEDATA))
|
||||
|
||||
(* ;; "Default to the current stream color")
|
||||
|
||||
@@ -2506,46 +2518,50 @@
|
||||
(\MOVETO.PSC STREAM CENTERX CENTERY])
|
||||
|
||||
(\DRAWLINE.PSC
|
||||
[LAMBDA (STREAM X1 Y1 X2 Y2 WIDTH OPERATION COLOR DASHING) (* ; "Edited 28-Apr-2025 00:11 by mth")
|
||||
[LAMBDA (STREAM X1 Y1 X2 Y2 WIDTH OPERATION COLOR DASHING) (* ; "Edited 5-Jun-2025 14:19 by mth")
|
||||
(* ; "Edited 28-Apr-2025 00:11 by mth")
|
||||
(* ;
|
||||
"Edited 20-Nov-92 15:12 by sybalsky:mv:envos")
|
||||
|
||||
(* ;; "DRAWLINE method for postscript streams.")
|
||||
|
||||
(LET ((IMAGEDATA (fetch (STREAM IMAGEDATA) of STREAM)))
|
||||
[COND
|
||||
((NOT (NUMBERP WIDTH))
|
||||
(CL:WHEN (LESSP X2 X1)
|
||||
|
||||
(* ;; "The WIDTH = NIL should have been handled before here, but just in case!")
|
||||
(* ;; "For Syntelligence, make all lines move from left to right, to defeat a bug in SPARCPrinter PS decoder.")
|
||||
|
||||
(SETQ WIDTH (fetch (\POSTSCRIPTDATA POSTSCRIPTSCALE) of IMAGEDATA]
|
||||
[COND
|
||||
((NOT (ZEROP WIDTH))
|
||||
(CL:MULTIPLE-VALUE-BIND (RGB GRAY COLORSTR)
|
||||
(\PSC.COLOR.TO.RGB COLOR T)
|
||||
(COND
|
||||
((LESSP X2 X1)
|
||||
(CL:PSETQ X1 X2 X2 X1 Y1 Y2 Y2 Y1))
|
||||
(LET* ((IMAGEDATA (fetch (STREAM IMAGEDATA) of STREAM))
|
||||
(CURRENTCOLOR (fetch (\POSTSCRIPTDATA POSTSCRIPTCOLOR) of IMAGEDATA)))
|
||||
[COND
|
||||
((NOT (NUMBERP WIDTH))
|
||||
|
||||
(* ;; "For Syntelligence, make all lines move from left to right, to defeat a bug in SPARCPrinter PS decoder.")
|
||||
(* ;; "The WIDTH = NIL should have been handled before here, but just in case!")
|
||||
|
||||
(\DRAWLINE.PSC STREAM X2 Y2 X1 Y1 WIDTH OPERATION COLOR DASHING))
|
||||
((NOT (OR COLOR (LISTP DASHING))) (* ; "Simple case, no dash or color")
|
||||
(POSTSCRIPT.PUTCOMMAND STREAM X2 " " Y2 " " X1 " " Y1 " " WIDTH " L" :EOL))
|
||||
(T (POSTSCRIPT.PUTCOMMAND STREAM X2 " " Y2 " " X1 " " Y1 " " WIDTH " ")
|
||||
(POSTSCRIPT.PUTCOMMAND STREAM COLORSTR " [")
|
||||
(POSTSCRIPT.PUTCOMMAND STREAM)
|
||||
(for D in (LISTP DASHING) do
|
||||
(* ;;
|
||||
(SETQ WIDTH (fetch (\POSTSCRIPTDATA POSTSCRIPTSCALE) of IMAGEDATA]
|
||||
[COND
|
||||
((NOT (ZEROP WIDTH))
|
||||
(CL:MULTIPLE-VALUE-BIND (RGB GRAY COLORSTR DIFFERENT)
|
||||
(\PSC.COLOR.TO.RGB COLOR CURRENTCOLOR T)
|
||||
(COND
|
||||
((NOT (OR DIFFERENT (LISTP DASHING)))(* ;
|
||||
"Simple case, no dash or color change")
|
||||
(POSTSCRIPT.PUTCOMMAND STREAM X2 " " Y2 " " X1 " " Y1 " " WIDTH " L" :EOL))
|
||||
(T (POSTSCRIPT.PUTCOMMAND STREAM X2 " " Y2 " " X1 " " Y1 " " WIDTH " ")
|
||||
(POSTSCRIPT.PUTCOMMAND STREAM COLORSTR " [")
|
||||
(POSTSCRIPT.PUTCOMMAND STREAM)
|
||||
(for D in (LISTP DASHING) do
|
||||
(* ;;
|
||||
"Interlisp DASHING is in terms of BRUSH units, so multiply by the brush size.")
|
||||
|
||||
(POSTSCRIPT.PUTCOMMAND STREAM (TIMES D WIDTH)
|
||||
" "))
|
||||
(POSTSCRIPT.PUTCOMMAND STREAM "]" (OR (AND GRAY " L1G")
|
||||
" L1")
|
||||
:EOL]
|
||||
(replace (\POSTSCRIPTDATA POSTSCRIPTX) of IMAGEDATA with X2)
|
||||
(freplace (\POSTSCRIPTDATA POSTSCRIPTY) of IMAGEDATA with Y2)
|
||||
(freplace (\POSTSCRIPTDATA POSTSCRIPTMOVEFLG) of IMAGEDATA with NIL])
|
||||
(POSTSCRIPT.PUTCOMMAND STREAM
|
||||
(TIMES D WIDTH)
|
||||
" "))
|
||||
(POSTSCRIPT.PUTCOMMAND STREAM "]" (OR (AND GRAY " L1G")
|
||||
" L1")
|
||||
:EOL]
|
||||
(replace (\POSTSCRIPTDATA POSTSCRIPTX) of IMAGEDATA with X2)
|
||||
(freplace (\POSTSCRIPTDATA POSTSCRIPTY) of IMAGEDATA with Y2)
|
||||
(freplace (\POSTSCRIPTDATA POSTSCRIPTMOVEFLG) of IMAGEDATA with NIL])
|
||||
|
||||
(\DRAWPOINT.PSC
|
||||
[LAMBDA (STREAM X Y BRUSH OPERATION) (* ; "Edited 30-Mar-90 17:53 by Matt Heffron")
|
||||
@@ -2648,7 +2664,8 @@
|
||||
OLDCLIP])
|
||||
|
||||
(\DSPCOLOR.PSC
|
||||
[LAMBDA (STREAM COLOR) (* ; "Edited 26-Apr-2025 17:03 by mth")
|
||||
[LAMBDA (STREAM COLOR) (* ; "Edited 4-Jun-2025 23:51 by mth")
|
||||
(* ; "Edited 26-Apr-2025 17:03 by mth")
|
||||
(* ; "Edited 14-Jan-93 17:14 by jds")
|
||||
|
||||
(* ;; " Code below adapted from 7-Oct-1989 version by DJVB")
|
||||
@@ -2657,12 +2674,10 @@
|
||||
" All postscript printers accept color RGB info, though most just pick a gray based on values")
|
||||
|
||||
(LET* ((PSDATA (fetch IMAGEDATA of STREAM))
|
||||
(CURRENT (fetch (\POSTSCRIPTDATA POSTSCRIPTCOLOR) of PSDATA))
|
||||
RGB)
|
||||
(CURRENT (fetch (\POSTSCRIPTDATA POSTSCRIPTCOLOR) of PSDATA)))
|
||||
(if COLOR
|
||||
then (SETQ RGB (\PSC.COLOR.TO.RGB COLOR))
|
||||
(replace (\POSTSCRIPTDATA POSTSCRIPTCOLOR) of PSDATA with RGB)
|
||||
(POSTSCRIPT.PUTRGBCOLOR STREAM RGB))
|
||||
then (replace (\POSTSCRIPTDATA POSTSCRIPTCOLOR) of PSDATA with (POSTSCRIPT.PUTRGBCOLOR
|
||||
STREAM COLOR)))
|
||||
CURRENT])
|
||||
|
||||
(\DSPFONT.PSC
|
||||
@@ -4302,21 +4317,13 @@
|
||||
(DEFINEQ
|
||||
|
||||
(POSTSCRIPTSEND
|
||||
[LAMBDA (HOST FILE PRINTOPTIONS) (* ; "Edited 20-Nov-95 11:29 by ")
|
||||
(* ; "Edited 20-Nov-95 11:26 by ")
|
||||
|
||||
[LAMBDA (HOST FILE PRINTOPTIONS) (* ; "Edited 20-Nov-95 11:29 by ")
|
||||
|
||||
(* ; "Edited 20-Nov-95 11:26 by ")
|
||||
|
||||
|
||||
|
||||
(* ;; "This is the send function for generic POSTSCRIPT printers. It branches on the architecture-specific function. The theory is that the send method is really a property of the operating system, not a property of specific postscript printers. These functions are contained in separate library files (or defined by user).")
|
||||
|
||||
|
||||
(* ;; "This is the send function for generic POSTSCRIPT printers. It branches on the architecture-specific function. The theory is that the send method is really a property of the operating system, not a property of specific postscript printers. These functions are contained in separate library files (or defined by user).")
|
||||
|
||||
(SELECTQ (MKATOM (UNIX-GETPARM "ARCH"))
|
||||
|
||||
(dos (DOSPRINT HOST FILE PRINTOPTIONS))
|
||||
|
||||
(UnixPrint HOST FILE PRINTOPTIONS])
|
||||
)
|
||||
|
||||
@@ -4394,38 +4401,38 @@
|
||||
(ADDTOVAR LAMA POSTSCRIPT.PUTCOMMAND)
|
||||
)
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (23920 33221 (POSTSCRIPT.INIT 23930 . 31022) (POSTSCRIPT.PUTRGBCOLOR 31024 . 31600) (
|
||||
\PSC.COLOR.TO.RGB 31602 . 33219)) (34207 68991 (PSCFONT.READFONT 34217 . 36125) (PSCFONT.SPELLFILE
|
||||
36127 . 36705) (PSCFONT.COERCEFILE 36707 . 38279) (PSCFONTFROMCACHE.SPELLFILE 38281 . 39266) (
|
||||
PSCFONTFROMCACHE.COERCEFILE 39268 . 40920) (PSCFONT.WRITEFONT 40922 . 41937) (READ-AFM-FILE 41939 .
|
||||
47810) (CONVERT-AFM-FILES 47812 . 49024) (POSTSCRIPT.GETFONTID 49026 . 50421) (POSTSCRIPT.FONTCREATE
|
||||
50423 . 62822) (\POSTSCRIPT.SPECIALFONT.SCALEDWIDTHS 62824 . 65221) (POSTSCRIPT.FONTSAVAILABLE 65223
|
||||
. 68989)) (69546 78831 (OPENPOSTSCRIPTSTREAM 69556 . 78497) (CLOSEPOSTSCRIPTSTREAM 78499 . 78829)) (
|
||||
78876 84926 (POSTSCRIPT.HARDCOPYW 78886 . 81993) (POSTSCRIPT.TEDIT 81995 . 82475) (POSTSCRIPT.TEXT
|
||||
82477 . 82768) (POSTSCRIPTFILEP 82770 . 83877) (MAKEEPSFILE 83879 . 84924)) (84927 128501 (
|
||||
POSTSCRIPT.BITMAPSCALE 84937 . 87393) (POSTSCRIPT.CLOSESTRING 87395 . 87948) (POSTSCRIPT.ENDPAGE 87950
|
||||
. 88841) (POSTSCRIPT.OUTSTR 88843 . 90060) (POSTSCRIPT.PUTBITMAPBYTES 90062 . 98533) (
|
||||
POSTSCRIPT.PUTCOMMAND 98535 . 99524) (POSTSCRIPT.SET-FAKE-LANDSCAPE 99526 . 104046) (
|
||||
POSTSCRIPT.SHOWACCUM 104048 . 106203) (POSTSCRIPT.STARTPAGE 106205 . 108737) (\POSTSCRIPTTAB 108739 .
|
||||
109536) (\PS.BOUTFIXP 109538 . 110818) (\PS.SCALEHACK 110820 . 113463) (\PS.SCALEREGION 113465 .
|
||||
114025) (\SCALEDBITBLT.PSC 114027 . 118337) (\SETPOS.PSC 118339 . 118820) (\SETXFORM.PSC 118822 .
|
||||
121406) (\STRINGWIDTH.PSC 121408 . 121881) (\SWITCHFONTS.PSC 121883 . 127375) (\TERPRI.PSC 127377 .
|
||||
128499)) (128536 182026 (\BITBLT.PSC 128546 . 129099) (\BLTSHADE.PSC 129101 . 133566) (\CHARWIDTH.PSC
|
||||
133568 . 134075) (\CREATECHARSET.PSC 134077 . 135775) (\DRAWARC.PSC 135777 . 138155) (\DRAWCIRCLE.PSC
|
||||
138157 . 140408) (\DRAWCURVE.PSC 140410 . 144254) (\DRAWELLIPSE.PSC 144256 . 146620) (\DRAWLINE.PSC
|
||||
146622 . 149058) (\DRAWPOINT.PSC 149060 . 149636) (\DRAWPOLYGON.PSC 149638 . 152767) (
|
||||
\DSPBOTTOMMARGIN.PSC 152769 . 153456) (\DSPCLIPPINGREGION.PSC 153458 . 154833) (\DSPCOLOR.PSC 154835
|
||||
. 155675) (\DSPFONT.PSC 155677 . 159196) (\DSPLEFTMARGIN.PSC 159198 . 159884) (\DSPLINEFEED.PSC
|
||||
159886 . 160476) (\DSPPUSHSTATE.PSC 160478 . 161938) (\DSPPOPSTATE.PSC 161940 . 165425) (\DSPRESET.PSC
|
||||
165427 . 166092) (\DSPRIGHTMARGIN.PSC 166094 . 166783) (\DSPROTATE.PSC 166785 . 167784) (
|
||||
\DSPSCALE.PSC 167786 . 168738) (\DSPSCALE2.PSC 168740 . 169580) (\DSPSPACEFACTOR.PSC 169582 . 170503)
|
||||
(\DSPTOPMARGIN.PSC 170505 . 171076) (\DSPTRANSLATE.PSC 171078 . 173109) (\DSPXPOSITION.PSC 173111 .
|
||||
173675) (\DSPYPOSITION.PSC 173677 . 174268) (\FILLCIRCLE.PSC 174270 . 176495) (\FILLPOLYGON.PSC 176497
|
||||
. 179734) (\FIXLINELENGTH.PSC 179736 . 181055) (\MOVETO.PSC 181057 . 181827) (\NEWPAGE.PSC 181829 .
|
||||
182024)) (182082 204105 (\POSTSCRIPT.CHANGECHARSET 182092 . 182829) (\POSTSCRIPT.OUTCHARFN 182831 .
|
||||
194959) (\POSTSCRIPT.PRINTSLUG 194961 . 196685) (\POSTSCRIPT.SPECIALOUTCHARFN 196687 . 199038) (
|
||||
\UPDATE.PSC 199040 . 200286) (\POSTSCRIPT.ACCENTFN 200288 . 201230) (\POSTSCRIPT.ACCENTPAIR 201232 .
|
||||
204103)) (204203 205848 (\PSC.SPACEDISP 204213 . 204492) (\PSC.SPACEWID 204494 . 205113) (\PSC.SYMBOLS
|
||||
205115 . 205846)) (205957 208948 (\POSTSCRIPT.NSHASH 205967 . 208946)) (253722 254436 (POSTSCRIPTSEND
|
||||
253732 . 254434)))))
|
||||
(FILEMAP (NIL (22736 33232 (POSTSCRIPT.INIT 22746 . 29838) (POSTSCRIPT.PUTRGBCOLOR 29840 . 30862) (
|
||||
\PSC.COLOR.TO.RGB 30864 . 33230)) (34218 69002 (PSCFONT.READFONT 34228 . 36136) (PSCFONT.SPELLFILE
|
||||
36138 . 36716) (PSCFONT.COERCEFILE 36718 . 38290) (PSCFONTFROMCACHE.SPELLFILE 38292 . 39277) (
|
||||
PSCFONTFROMCACHE.COERCEFILE 39279 . 40931) (PSCFONT.WRITEFONT 40933 . 41948) (READ-AFM-FILE 41950 .
|
||||
47821) (CONVERT-AFM-FILES 47823 . 49035) (POSTSCRIPT.GETFONTID 49037 . 50432) (POSTSCRIPT.FONTCREATE
|
||||
50434 . 62833) (\POSTSCRIPT.SPECIALFONT.SCALEDWIDTHS 62835 . 65232) (POSTSCRIPT.FONTSAVAILABLE 65234
|
||||
. 69000)) (69557 78842 (OPENPOSTSCRIPTSTREAM 69567 . 78508) (CLOSEPOSTSCRIPTSTREAM 78510 . 78840)) (
|
||||
78887 84941 (POSTSCRIPT.HARDCOPYW 78897 . 82004) (POSTSCRIPT.TEDIT 82006 . 82490) (POSTSCRIPT.TEXT
|
||||
82492 . 82783) (POSTSCRIPTFILEP 82785 . 83892) (MAKEEPSFILE 83894 . 84939)) (84942 128516 (
|
||||
POSTSCRIPT.BITMAPSCALE 84952 . 87408) (POSTSCRIPT.CLOSESTRING 87410 . 87963) (POSTSCRIPT.ENDPAGE 87965
|
||||
. 88856) (POSTSCRIPT.OUTSTR 88858 . 90075) (POSTSCRIPT.PUTBITMAPBYTES 90077 . 98548) (
|
||||
POSTSCRIPT.PUTCOMMAND 98550 . 99539) (POSTSCRIPT.SET-FAKE-LANDSCAPE 99541 . 104061) (
|
||||
POSTSCRIPT.SHOWACCUM 104063 . 106218) (POSTSCRIPT.STARTPAGE 106220 . 108752) (\POSTSCRIPTTAB 108754 .
|
||||
109551) (\PS.BOUTFIXP 109553 . 110833) (\PS.SCALEHACK 110835 . 113478) (\PS.SCALEREGION 113480 .
|
||||
114040) (\SCALEDBITBLT.PSC 114042 . 118352) (\SETPOS.PSC 118354 . 118835) (\SETXFORM.PSC 118837 .
|
||||
121421) (\STRINGWIDTH.PSC 121423 . 121896) (\SWITCHFONTS.PSC 121898 . 127390) (\TERPRI.PSC 127392 .
|
||||
128514)) (128551 182631 (\BITBLT.PSC 128561 . 129113) (\BLTSHADE.PSC 129115 . 133776) (\CHARWIDTH.PSC
|
||||
133778 . 134285) (\CREATECHARSET.PSC 134287 . 135985) (\DRAWARC.PSC 135987 . 138365) (\DRAWCIRCLE.PSC
|
||||
138367 . 140618) (\DRAWCURVE.PSC 140620 . 144464) (\DRAWELLIPSE.PSC 144466 . 146830) (\DRAWLINE.PSC
|
||||
146832 . 149572) (\DRAWPOINT.PSC 149574 . 150150) (\DRAWPOLYGON.PSC 150152 . 153281) (
|
||||
\DSPBOTTOMMARGIN.PSC 153283 . 153970) (\DSPCLIPPINGREGION.PSC 153972 . 155347) (\DSPCOLOR.PSC 155349
|
||||
. 156280) (\DSPFONT.PSC 156282 . 159801) (\DSPLEFTMARGIN.PSC 159803 . 160489) (\DSPLINEFEED.PSC
|
||||
160491 . 161081) (\DSPPUSHSTATE.PSC 161083 . 162543) (\DSPPOPSTATE.PSC 162545 . 166030) (\DSPRESET.PSC
|
||||
166032 . 166697) (\DSPRIGHTMARGIN.PSC 166699 . 167388) (\DSPROTATE.PSC 167390 . 168389) (
|
||||
\DSPSCALE.PSC 168391 . 169343) (\DSPSCALE2.PSC 169345 . 170185) (\DSPSPACEFACTOR.PSC 170187 . 171108)
|
||||
(\DSPTOPMARGIN.PSC 171110 . 171681) (\DSPTRANSLATE.PSC 171683 . 173714) (\DSPXPOSITION.PSC 173716 .
|
||||
174280) (\DSPYPOSITION.PSC 174282 . 174873) (\FILLCIRCLE.PSC 174875 . 177100) (\FILLPOLYGON.PSC 177102
|
||||
. 180339) (\FIXLINELENGTH.PSC 180341 . 181660) (\MOVETO.PSC 181662 . 182432) (\NEWPAGE.PSC 182434 .
|
||||
182629)) (182687 204710 (\POSTSCRIPT.CHANGECHARSET 182697 . 183434) (\POSTSCRIPT.OUTCHARFN 183436 .
|
||||
195564) (\POSTSCRIPT.PRINTSLUG 195566 . 197290) (\POSTSCRIPT.SPECIALOUTCHARFN 197292 . 199643) (
|
||||
\UPDATE.PSC 199645 . 200891) (\POSTSCRIPT.ACCENTFN 200893 . 201835) (\POSTSCRIPT.ACCENTPAIR 201837 .
|
||||
204708)) (204808 206453 (\PSC.SPACEDISP 204818 . 205097) (\PSC.SPACEWID 205099 . 205718) (\PSC.SYMBOLS
|
||||
205720 . 206451)) (206562 209553 (\POSTSCRIPT.NSHASH 206572 . 209551)) (254327 255033 (POSTSCRIPTSEND
|
||||
254337 . 255031)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
@@ -12,7 +12,7 @@ POSTSCRIPTSTREAM
|
||||
|
||||
By: Matt Heffron (then: mheffron@orion.cf.uci.edu, now: heffron@alumni.caltech.edu)
|
||||
INTRODUCTION
|
||||
The PostScript package defines a set of imageops for printers which understand the PostScript page description language by Adobe. At Beckman we have successfully used TEdit, Sketch, LISTFILES, and HARDCOPYW to an Apple LaserWriter and an AST TurboLaser PS. The PostScript imagestream driver installs itself when it is loaded. All symbols in the PostScript driver are located in the INTERLISP: package.
|
||||
The PostScriptStream package defines a set of imageops for printers which understand the PostScriptÔ page description language by Adobe. At Beckman we have successfully used TEdit, Sketch, LISTFILES, and HARDCOPYW to an Apple LaserWriter and an AST TurboLaser PS. The PostScriptStream imagestream driver installs itself when it is loaded. All symbols in the PostScriptStream driver are located in the INTERLISP: package.
|
||||
VARIABLES
|
||||
POSTSCRIPT.FONT.ALIST [InitVariable]
|
||||
POSTSCRIPT.FONT.ALIST is an ALIST mapping Xerox Lisp font names into the root names of PostScript font files. It is also used for font family coercions. The default value should be acceptable for any of the fonts which are built into the Apple Laserwriter.
|
||||
@@ -36,40 +36,39 @@ HINT
|
||||
Setting POSTSCRIPT.BITMAP.SCALE to 0.96, instead of 1, will give cleaner BITMAP images on a 300 dpi printer. (This corrects for the 72 ppi imagestream vs. the 75 dpi printer, using 4x4 device dots per bitmap pixel.) Also, values of 0.24, 0.48 and 0.72, instead of 0.25, 0.5 and 0.75, will also give cleaner images for reduced size output. In general, use integer multiples of 0.24 for a 300 dpi printer.
|
||||
POSTSCRIPT.TEXTURE.SCALE [InitVariable]
|
||||
POSTSCRIPT.TEXTURE.SCALE specifies an independent scale for the display of bitmap textures. The value represents the number of device space units per texture unit (bitmap bit). The default value is 4, which represents each bit of the texture as a 4x4 block, so that textures are approximately the same resolution as on the screen (for 300 dpi output devices, such as the Apple Laserwriter).
|
||||
The PostScript package extends the allowed representations of a texture, beyond 16-bit FIXP and 16x16 bitmap, to ANY square bitmap. (If the bitmap is not square, its longer edge is truncated from the top or right to make it square.) Use this feature with caution, as large bitmap textures, or sizes other than multiples of 16 bits square, require large amounts of storage in the PostScript interpreter (in the printer controller), and can cause limitcheck errors when actually printing.
|
||||
Anywhere that a texture or color can be used on an imagestream or in the specification of a BRUSH, you can instead give either: a COLOR name, an RGB triple, an HLS triple, or a FLOATP between 0.0 and 1.0 (inclusive) to represent a PostScript halftone gray shade. (For the name, RGB or HLS values, see the file COLOR.TEDIT in the library directory.) (For the single FLOATP value, it will be converted to the corresponding RGB form. 0.0 is black and 1.0 is white. Specifically, the value sets the brightness of the shade.) All forms of the value you specify will be checked for validity. E.g. you can pass 0.33 as the color to DRAWLINE to get a dark gray line. This will be converted to the RGB triple (84 84 84).
|
||||
The PostScriptStream package extends the allowed representations of a texture, beyond 16-bit FIXP and 16x16 bitmap, to ANY square bitmap. (If the bitmap is not square, its longer edge is truncated from the top or right to make it square.) Use this feature with caution, as large bitmap textures, or sizes other than multiples of 16 bits square, require large amounts of storage in the PostScript interpreter (in the printer controller), and can cause limitcheck errors when actually printing.
|
||||
Anywhere that a texture or color can be used on an imagestream or in the specification of a BRUSH, you can instead give either: NIL, a COLOR name, an RGB triple, an HLS triple, a SMALLP 0 or 1, or a FLOATP between 0.0 and 1.0 (inclusive). The value NIL means to use the current DSPCOLOR. For the COLOR name, RGB or HLS values, see the file COLOR.TEDIT in the library directory for descriptions of those. Any integer value other than 0 or 1 will be ignored and the current DSPCOLOR will be used. The single SMALLP or FLOATP value cases represent a PostScript gray shade. 0.0 is black and 1.0 is white. Specifically, the value sets the brightness of the shade. E.g. you can pass 0.33 as the color to DRAWLINE to get a dark gray line. This will be converted to the RGB triple (84 84 84). All forms of the value you specify will be checked for validity.
|
||||
POSTSCRIPT.IMAGESIZEFACTOR [InitVariable]
|
||||
POSTSCRIPT.IMAGESIZEFACTOR specifies an independent factor to change the overall size of the printed image. This re-sizing affects the entire printed output (specifically, it superimposes its effects upon those of POSTSCRIPT.BITMAP.SCALE and POSTSCRIPT.TEXTURE.SCALE). Values greater than 1 enlarge the printed image, and values less than 1 reduce it. An invalid POSTSCRIPT.IMAGESIZEFACTOR (i.e. not a positive, non-zero number) will use a value of 1. The BITMAPSCALE function for the POSTSCRIPT printer type does NOT consider the POSTSCRIPT.IMAGESIZEFACTOR when determining the scale factor for a bitmap.
|
||||
MISCELLANEOUS
|
||||
The SCALE of a PostScript imagestream is 100. This is to allow enough resolution in the width information for fonts to enable TEdit to correctly fill and justify text.
|
||||
The first time any PostScript imagestream is created (even if only to hardcopy a bitmap or window) the DEFAULTFONT is instantiated (unless a FONTS option was given to the OPENIMAGESTREAM, in which case the initial font for the imagestream will be set to that font, or to the CAR if a list).
|
||||
The PostScript imagestream method for FILLPOLYGON uses the global variable FILL.WRULE as the default value for the WINDINGNUMBER argument. (This is the same variable which is used by the DISPLAY imagestream method for FILLPOLYGON.)
|
||||
The PostScript imagestream method for OPENIMAGESTREAM (and, therefore, SEND.FILE.TO.PRINTER), supports an IMAGESIZEFACTOR option to change the size of the printed image. The IMAGESIZEFACTOR re-sizing is combined with the POSTSCRIPT.IMAGESIZEFACTOR to produce an overall re-sizing of the printed image. A HEADING option is also supported to give a running header on each page of output. The value of the HEADING option is printed at the top left of the page, followed by "Page " and the appropriate page number. They are printed in the DEFAULTFONT (unless a FONTS option was given to the OPENIMAGESTREAM, in which case it will be that font, or to the CAR if a list).
|
||||
The PostScript package is contained in the files: POSTSCRIPTSTREAM.LCOM & PS-SEND.LCOM, with the source in the files: POSTSCRIPTSTREAM & PS-SEND. The module PS-SEND.LCOM is required and will be loaded automatically when POSTSCRIPTSTREAM.LCOM is loaded. It contains the function which is called by SEND.FILE.TO.PRINTER to actually transmit the file to the printer. It is, by its nature, quite site specific, so it is in a separate file to make modifying it for any site relatively simple. System record declarations required to compile POSTSCRIPTSTREAM can be found in EXPORTS.ALL.
|
||||
The SCALE of a PostScriptStream imagestream is 100. This is to allow enough resolution in the width information for fonts to enable TEdit to correctly fill and justify text.
|
||||
The first time any PostScriptStream imagestream is created (even if only to hardcopy a bitmap or window) the DEFAULTFONT is instantiated (unless a FONTS option was given to the OPENIMAGESTREAM, in which case the initial font for the imagestream will be set to that font, or to the CAR if a list).
|
||||
The PostScriptStream imagestream method for FILLPOLYGON uses the global variable FILL.WRULE as the default value for the WINDINGNUMBER argument. (This is the same variable which is used by the DISPLAY imagestream method for FILLPOLYGON.)
|
||||
The PostScriptStream imagestream method for OPENIMAGESTREAM (and, therefore, SEND.FILE.TO.PRINTER), supports an IMAGESIZEFACTOR option to change the size of the printed image. The IMAGESIZEFACTOR re-sizing is combined with the POSTSCRIPT.IMAGESIZEFACTOR to produce an overall re-sizing of the printed image. A HEADING option is also supported to give a running header on each page of output. The value of the HEADING option is printed at the top left of the page, followed by "Page " and the appropriate page number. They are printed in the DEFAULTFONT (unless a FONTS option was given to the OPENIMAGESTREAM, in which case it will be that font, or to the CAR if a list).
|
||||
I'm pretty sure that the output generated by the PostScript imageops fully conforms to the Adobe Systems Document Structuring Conventions, Version 2.0, January 31, 1987.
|
||||
Including Other PostScript Operations
|
||||
If you wish to insert your own specific PostScript operations into a PostScript imagestream, you can do so with the following functions:
|
||||
If you wish to insert your own specific PostScript operations into a PostScriptStream imagestream, you can do so with the following functions:
|
||||
(POSTSCRIPT.OUTSTR STREAM STRING) [Function]
|
||||
POSTSCRIPT.OUTSTR outputs a string or value to the imagestream. STREAM must be an open PostScript imagestream. STRING is the value to output (STRINGP and LITATOM are most efficient, but any value can be output (its PRIN1 pname is used)).
|
||||
POSTSCRIPT.OUTSTR outputs a string or value to the imagestream. STREAM must be an open PostScriptStream imagestream. STRING is the value to output (STRINGP and LITATOM are most efficient, but any value can be output (its PRIN1 pname is used)).
|
||||
(POSTSCRIPT.PUTCOMMAND STREAM STRING1 ... STRINGn) [NoSpread Function]
|
||||
POSTSCRIPT.PUTCOMMAND is more general for sequences of commands and values. It calls POSTSCRIPT.OUTSTR repeatedly to output each of the STRINGi arguments to STREAM.
|
||||
(\POSTSCRIPT.OUTCHARFN STREAM CHAR) [Function]
|
||||
\POSTSCRIPT.OUTCHARFN is used to output the characters forming the text of a PostScript string (e.g. the argument to a show or charpath operator). STREAM is the open PostScript imagestream to output to, and CHAR is the CHARCODE of the character to output. The / (slash), ( and ) (parenthesis) characters will be quoted with /, and characters with ASCII values less than 32 (space) or greater than 126 (tilde) will be output as /nnn (in octal). \POSTSCRIPT.OUTCHARFN will output the ( character to open the string, if necessary. Use POSTSCRIPT.CLOSESTRING (below) to close the string.
|
||||
\POSTSCRIPT.OUTCHARFN is used to output the characters forming the text of a PostScript string (e.g. the argument to a show or charpath operator). STREAM is the open PostScriptStream imagestream destination for output, and CHAR is the CHARCODE of the character to output. The / (slash), ( and ) (parenthesis) characters will be quoted with /, and characters with ASCII values less than 32 (space) or greater than 126 (tilde) will be output as /nnn (in octal). \POSTSCRIPT.OUTCHARFN will output the ( character to open the string, if necessary. Use POSTSCRIPT.CLOSESTRING (below) to close the string.
|
||||
(POSTSCRIPT.CLOSESTRING STREAM) [Function]
|
||||
POSTSCRIPT.CLOSESTRING closes a PostScript string (e.g. the argument to a show or charpath operator). STREAM is the open PostScript imagestream. It is important to use POSTSCRIPT.CLOSESTRING to output the ) character to close the string, because it also clears the stream state flag that indicates that a string is in progress (otherwise, the next POSTSCRIPT.PUTCOMMAND would output the commands to close the string and show it).
|
||||
POSTSCRIPT.CLOSESTRING closes a PostScript string (e.g. the argument to a show or charpath operator). STREAM is the open PostScriptStream imagestream. It is important to use POSTSCRIPT.CLOSESTRING to output the ) character to close the string, because it also clears the stream state flag that indicates that a string is in progress (otherwise, the next POSTSCRIPT.PUTCOMMAND would output the commands to close the string and show it).
|
||||
Warning
|
||||
Do not attempt to create a PostScript font larger than about 600 points, as much of Interlisp's font information is stored in SMALLP integers, and too large a font would overflow the font's height, or the width for any of the wider characters. (I know that 600 points is a ridiculously large limit (about 8.3 inches), but I thought I'd better mention it, or someone might try it!)
|
||||
Changes from the Initial Medley Release
|
||||
This second Medley release of the PostScript imagestream driver includes some performance enhancements when writing bitmaps to the output, some SUN-specific code (from Will Snow of envos), implementation of the SCALEDBITBLT, DSPROTATE, and DSPTRANSLATE operations, and a lot of performance enhancements (many thanks to Tom Lipkis of Savoir).
|
||||
This second Medley release of the PostScriptStream imagestream driver includes some performance enhancements when writing bitmaps to the output, some SUN-specific code (from Will Snow of envos), implementation of the SCALEDBITBLT, DSPROTATE, and DSPTRANSLATE operations, and a lot of performance enhancements (many thanks to Tom Lipkis of Savoir).
|
||||
Changes from the Lyric Release
|
||||
The Medley release of this PostScript imagestream driver changed the default value of POSTSCRIPT.TEXTFILE.LANDSCAPE from T to NIL. It also added the support for the HEADING option.
|
||||
The Medley release of this PostScriptStream imagestream driver changed the default value of POSTSCRIPT.TEXTFILE.LANDSCAPE from T to NIL. It also added the support for the HEADING option.
|
||||
Known Problems/Limitations
|
||||
The output generated for a PostScript imagestream is rather brute force. It isn't particularly careful to generate the smallest output file for a given sequence of operations. Specifically, it often generates extra end-of-lines between PostScript operator sequences (this has no effect on the printed output, only on the file size).
|
||||
The output generated for a PostScriptStream imagestream is rather brute force. It isn't particularly careful to generate the smallest output file for a given sequence of operations. Specifically, it often generates extra end-of-lines between PostScript operator sequences (this has no effect on the printed output, only on the file size).
|
||||
Using BITMAPs or Functions as BRUSH arguments to the curve drawing functions is not supported, nor is using a non-ROUND BRUSH with DRAWCIRCLE or DRAWELLIPSE.
|
||||
The implementation of DSPROTATE accepts ROTATION argument values of 0 and 90 (any non-NIL, non-zero value is converted to 90). A value of 0 converts the page orientation to Portrait, and 90 converts the page orientation to Landscape. These conversions perform the translations necessary to keep the clipping region on the page. (This may or may not be the right thing to do, but since DSPROTATE is undocumented in what it should do, this is what the PostScript driver does).
|
||||
There is no support for NS character sets other than 0, and there is no translation of the character code values from NS encoding to PostScript encoding.
|
||||
The implementation of DSPROTATE accepts ROTATION argument values of 0 and 90 (any non-NIL, non-zero value is converted to 90). A value of 0 converts the page orientation to Portrait, and 90 converts the page orientation to Landscape. These conversions perform the translations necessary to keep the clipping region on the page. (This may or may not be the right thing to do, but since DSPROTATE is undocumented in what it should do, this is what the PostScriptStream driver does).
|
||||
There is spotty support for NS character sets other than 0, and there is no additional translation of the character code values from NS encoding to PostScript encoding.
|
||||
There is minimal support for color.
|
||||
\POSTSCRIPT.OUTCHARFN is pretty wimpy in its handling of TAB characters. It just moves to the next multiple of (eight times the average character width of the current font) from the current left margin.
|
||||
\POSTSCRIPT.OUTCHARFN is pretty wimpy in its handling of TAB characters. It just moves to the next multiple of (eight times the average character width of the current font) from the current left margin. (TEdit does the right thing when generating hardcopy using PostScriptStream.)
|
||||
I haven't yet documented how to build the .PSCFONT files from .AFM files for new fonts that become available. | ||||