1
0
mirror of synced 2026-03-04 10:45:28 +00:00

Merge branch 'master' into Remake-CMLARITH-filemap

Signed-off-by: Matt Heffron <mattheffron475@gmail.com>
This commit is contained in:
Matt Heffron
2023-10-29 22:38:03 -07:00
committed by GitHub
116 changed files with 6356 additions and 3113 deletions

View File

@@ -57,8 +57,8 @@ RUN apt-get update \
echo "x86_64"; \
fi \
) \
&& deb="medley-full-${MEDLEY_RELEASE#medley-}" \
&& deb=${deb}_${MAIKO_RELEASE#maiko-}-linux-${p}.deb \
&& deb="medley-full-linux-${p}-${MEDLEY_RELEASE#medley-}" \
&& deb=${deb}_${MAIKO_RELEASE#maiko-}.deb \
&& apt-get install -y /tmp/${deb} \
&& chown --recursive root:root /usr/local/interlisp \
&& (if [ -n "$(which unminimize)" ]; then (yes | unminimize); fi)

View File

@@ -160,7 +160,7 @@ jobs:
- name: Get info about Miako and Medley releases
id: release_info
run: |
regex="^[^0-9]*\([^_]*\)_\([^-]*-[^-]*\)-\([^-]*\)-\([^.]*\).*\$"
regex="^medley-full-[^-]*-[^-]*-\([^_]*\)_\(.*\).deb\$"
ls -1 release_debs | head -n 1 > debname.tmp
medley_release="medley-$(sed -e "s/${regex}/\1/" debname.tmp)"
maiko_release="maiko-$(sed -e "s/${regex}/\2/" debname.tmp)"
@@ -168,6 +168,8 @@ jobs:
echo "MEDLEY_RELEASE=${medley_release}" >> ${GITHUB_ENV}
echo "MAIKO_RELEASE=${maiko_release}" >> ${GITHUB_ENV}
# regex="^[^0-9]*\([^_]*\)_\([^-]*-[^-]*\)-\([^-]*\)-\([^.]*\).*\$"
# Set repo env variables
- name: Set repo/docker env variables
id: repo_env

View File

@@ -128,6 +128,8 @@ jobs:
combined_release_tag: ${{ steps.job_outputs.outputs.COMBINED_RELEASE_TAG }}
medley_release_tag: ${{ steps.job_outputs.outputs.MEDLEY_RELEASE_TAG }}
medley_short_release_tag: ${{ steps.job_outputs.outputs.MEDLEY_SHORT_RELEASE_TAG }}
debs_filename_base: ${{ steps.debs.outputs.DEBS_FILENAME_BASE }}
maiko_release_tag: ${{ steps.job_outputs.outputs.MAIKO_RELEASE_TAG }}
artifacts_filename_template: ${{ steps.job_outputs.outputs.ARTIFACTS_FILENAME_TEMPLATE }}
release_url: ${{ steps.push.outputs.html_url }}
@@ -154,7 +156,7 @@ jobs:
id: tag
uses: ./../actions/release-tag-action
# Get Maiko release information, retrieves the name of the latest
# Get Maiko release information, retrieves the name of the latest (draft)
# release. Used to download the correct Maiko release
# Find latest release (draft or normal)
- name: Get maiko release information
@@ -176,7 +178,6 @@ jobs:
echo "maiko_tag=${tag}" >> ${GITHUB_OUTPUT}
env:
GITHUB_TOKEN: ${{ secrets.MAIKO_TOKEN }}
# Setup environment variables & establish job outputs
- name: Setup Environment Variables
run: |
@@ -198,6 +199,7 @@ jobs:
echo "COMBINED_RELEASE_TAG=${COMBINED_RELEASE_TAG}" >> ${GITHUB_OUTPUT}
echo "MEDLEY_RELEASE_TAG=${MEDLEY_RELEASE_TAG}" >> ${GITHUB_OUTPUT}
echo "MEDLEY_SHORT_RELEASE_TAG=${MEDLEY_SHORT_RELEASE_TAG}" >> ${GITHUB_OUTPUT}
echo "MAIKO_RELEASE_TAG=${MAIKO_RELEASE_TAG}" >> $GITHUB_OUTPUT;
echo "ARTIFACTS_FILENAME_TEMPLATE=${ARTIFACTS_FILENAME_TEMPLATE}" >> ${GITHUB_OUTPUT}
# Setup some needed dirs in workspace
@@ -337,6 +339,17 @@ jobs:
omitNameDuringUpdate: true
omitPrereleaseDuringUpdate: true
- name: Rename medley tar for the x86_64 platform
run: |
cd ${{ env.TARS_DIR }}
mv medley-full-linux-x86_64-*.tgz medley.tgz
- name: Save medley tar for use in cygwin installers
uses: actions/upload-artifact@v3
with:
name: medley-tar
path: |
${{ env.TARS_DIR }}/medley.tgz
# JOB: macos_installer ##############################################################
@@ -371,8 +384,7 @@ jobs:
echo "MACOS_DIR=${MACOS_DIR}" >>${GITHUB_ENV}
echo "ARTIFACTS_DIR=${MACOS_DIR}/artifacts" >>${GITHUB_ENV}
echo "TARBALL_DIR=${MACOS_DIR}/tmp/tarballs" >>${GITHUB_ENV}
echo "MEDLEY_RELEASE_TAG=${{ needs.loadup.outputs.medley_release_tag }}" \
>>${GITHUB_ENV}
echo "MEDLEY_RELEASE_TAG=${{ needs.loadup.outputs.medley_release_tag }}" >>${GITHUB_ENV}
echo "ARTIFACTS_FILENAME_TEMPLATE=${{ needs.loadup.outputs.artifacts_filename_template }}" >>${GITHUB_ENV}
# Create tarball dir
@@ -410,23 +422,23 @@ jobs:
# JOB: windows_installer #############################################################
# JOB: cygwin_installer #############################################################
#
# Create the Windows installer, push it up to the release on github and
# update the downloads page on OIO
#
windows_installer:
cygwin_installer:
runs-on: windows-latest
runs-on: windows-2022
needs: [inputs, sentry, loadup]
needs: [inputs, sentry, loadup, linux_installer]
if: |
needs.sentry.outputs.release_not_built == 'true'
|| needs.inputs.outputs.force == 'true'
outputs:
windows_installer_filename: ${{ steps.jobout.outputs.INSTALLER_FILENAME }}
cygwin_installer: ${{ steps.compile_iss.outputs.CYGWIN_INSTALLER }}
steps:
@@ -446,21 +458,57 @@ jobs:
echo "MEDLEY_SHORT_RELEASE_TAG=$msrt" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
$aft="${{ needs.loadup.outputs.artifacts_filename_template }}"
echo "ARTIFACTS_FILENAME_TEMPLATE=$aft" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
$debs="${{ needs.loadup.outputs.debs_filename_base }}"
echo "DEBS_FILENAME_BASE=$debs" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
# Retrieve medley tars from artifact store
- name: Retrieve medley tar
uses: actions/download-artifact@v3
with:
name: medley-tar
path: installers/cygwin/
# Download maiko cygwin build
- name: Retrieve maiko cygwin build
shell: powershell
env:
GH_TOKEN: ${{ secrets.MAIKO_TOKEN }}
run: |
gh release download ${{ needs.loadup.outputs.maiko_release_tag }} --repo interlisp/maiko --pattern ${{ needs.loadup.outputs.maiko_release_tag }}-cygwin.x86_64.tgz --output installers\cygwin\maiko-cygwin.x86_64.tgz
# Download cygwin installer to be included by medley.iss
- name: Download cygwin installer
id: cygwin
shell: powershell
run: |
wget https://cygwin.com/setup-x86_64.exe -OutFile installers\cygwin\setup-x86_64.exe
# Download vnc viewer
- name: Download vncviewer
shell: powershell
run: |
$url = "https://online.interlisp.org/downloads/vncviewer64-1.12.0.exe"
$output = "installers\win\vncviewer64-1.12.0.exe"
(New-Object System.Net.WebClient).DownloadFile($url, $output)
#- name: Download vncviewer
# shell: powershell
# run: |
# $url = "https://sourceforge.net/projects/tigervnc/files/stable/1.12.0/vncviewer64-1.12.0.exe"
# $output = "installers\win\vncviewer64-1.12.0.exe"
# (New-Object System.Net.WebClient).DownloadFile($url, $output)
# Run iscc.exe to compile the installer
- name: Compile medley.iss
#- name: Compile medley.iss
# shell: powershell
# run: |
# iscc installers\win\medley.iss
# $filename="medley-install_${env:COMBINED_RELEASE_TAG}_x64.exe"
# echo "INSTALLER_FILENAME=$filename" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
# Run iscc.exe to compile the installer
- name: Compile cygwin_medley.iss
id: compile_iss
shell: powershell
run: |
iscc installers\win\medley.iss
$Env:CYGWIN_INSTALLER_BASE="medley-full-cygwin-x86_64-${env:COMBINED_RELEASE_TAG}"
$CYGWIN_INSTALLER="${Env:CYGWIN_INSTALLER_BASE}.exe"
echo "CYGWIN_INSTALLER=$CYGWIN_INSTALLER" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
echo "CYGWIN_INSTALLER=$CYGWIN_INSTALLER" | Out-File -FilePath $Env:GITHUB_OUTPUT -Encoding utf8 -Append
iscc installers\cygwin\medley.iss
# Upload windows installer to release
- name: Upload windows installer to release
@@ -468,7 +516,7 @@ jobs:
uses: ncipollo/release-action@v1
with:
allowUpdates: true
artifacts: installers/win/medley-*.exe
artifacts: installers/cygwin/${{ env.CYGWIN_INSTALLER }}
tag: ${{ env.MEDLEY_RELEASE_TAG }}
token: ${{ secrets.GITHUB_TOKEN }}
omitBodyDuringUpdate: true
@@ -487,7 +535,7 @@ jobs:
runs-on: ubuntu-latest
needs: [inputs, sentry, loadup, linux_installer, macos_installer, windows_installer]
needs: [inputs, sentry, loadup, linux_installer, macos_installer, cygwin_installer]
if: |
needs.sentry.outputs.release_not_built == 'true'
|| needs.inputs.outputs.force == 'true'
@@ -503,6 +551,8 @@ jobs:
echo "MEDLEY_RELEASE_TAG=${mrt}" >>${GITHUB_ENV}
msrt="${{ needs.loadup.outputs.medley_short_release_tag }}"
echo "MEDLEY_SHORT_RELEASE_TAG=${msrt}" >>${GITHUB_ENV}
cyginst="${{ needs.cygwin_installer.outputs.cygwin_installer }}"
echo "CYGWIN_INSTALLER=${cyginst}" >>${GITHUB_ENV}
# Checkout latest commit
- name: Checkout Medley
@@ -514,7 +564,7 @@ jobs:
# So this will be the final update before creating downloads page
# and we can use its url for the page
- run: echo "placeholder" >placeholder.txt
- name: Upload windows installer to release
- name: Upload windows placeholder.txt to release
id: pushph
uses: ncipollo/release-action@v1
with:
@@ -552,6 +602,7 @@ jobs:
-e "s/@@@MEDLEY.SHORT.RELEASE.TAG@@@/${MEDLEY_SHORT_RELEASE_TAG}/g" \
-e "s/@@@COMBINED.RELEASE.TAG@@@/${COMBINED_RELEASE_TAG}/g" \
-e "s~@@@DOWNLOAD_URL@@@~${download_url}~g" \
-e "s~@@@CYGWIN.INSTALLER@@@~${CYGWIN_INSTALLER}~g" \
< "${local_template}" > "${local_filename}"
# Create sftp instruction file
echo "-rm ${remote_filepath}.oldold" > batch
@@ -566,6 +617,12 @@ jobs:
env:
SSH_KEY: ${{ secrets.OIO_SSH_KEY }}
# Remove placeholder.txt
- name: Remove placeholder.txt
run: |
gh release delete-asset ${{ env.MEDLEY_RELEASE_TAG }} placeholder.txt --yes
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# JOB: complete #####################################################################

View File

@@ -95,8 +95,7 @@ jobs:
with:
draft: ${{ needs.inputs.outputs.draft }}
force: ${{ needs.inputs.outputs.force }}
secrets:
OIO_SSH_KEY: ${{ secrets.OIO_SSH_KEY }}
secrets: inherit
######################################################################################
@@ -108,9 +107,7 @@ jobs:
with:
draft: ${{ needs.inputs.outputs.draft }}
force: ${{ needs.inputs.outputs.force }}
secrets:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
secrets: inherit
######################################################################################

View File

@@ -1,12 +1,11 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "19-Jan-2023 12:44:20" {DSK}<home>frank>il>medley>gmedley>greetfiles>APPS-INIT.;9 21022
(FILECREATED "16-Jun-2023 17:20:09" {DSK}<home>frank>il>medley>gmedley>greetfiles>APPS-INIT.;11 21130
:CHANGES-TO (VARS APPS-INITCOMS)
(FNS Apps.DoInit)
:CHANGES-TO (FNS Apps.DoInit)
:PREVIOUS-DATE "19-Jan-2023 11:57:40" {DSK}<home>frank>il>medley>gmedley>greetfiles>APPS-INIT.;8
)
:PREVIOUS-DATE "19-Jan-2023 12:44:20"
{DSK}<home>frank>il>medley>gmedley>greetfiles>APPS-INIT.;10)
(PRETTYCOMPRINT APPS-INITCOMS)
@@ -170,7 +169,11 @@
(* ;; " create the Documentation and ROOMS, Notecards Activation Buttons, if needed")
(Apps.CreateButtons T])
(Apps.CreateButtons T)
(* ;; " Make sure Notecards doesn't try to load its HASH file in NC.PostGreet")
(SETTOPVAL '\NC.SourceAccessFlg NIL])
(Apps.CreateButtons
[LAMBDA (DoDocsToo) (* ; "Edited 13-Dec-2022 12:51 by frank")
@@ -373,8 +376,8 @@
(BKSYSBUF " ")
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1146 20888 (Apps.InitNotecards 1156 . 5018) (Apps.DoInit 5020 . 8119) (
Apps.CreateButtons 8121 . 16945) (Apps.CreateLabel 16947 . 17757) (Apps.ActivateCLOS 17759 . 19108) (
Apps.ActivateRooms 19110 . 19961) (Apps.ShowDoc 19963 . 20112) (XCL-USER::EXEC_INTERLISP 20114 . 20886
(FILEMAP (NIL (1109 20996 (Apps.InitNotecards 1119 . 4981) (Apps.DoInit 4983 . 8227) (
Apps.CreateButtons 8229 . 17053) (Apps.CreateLabel 17055 . 17865) (Apps.ActivateCLOS 17867 . 19216) (
Apps.ActivateRooms 19218 . 20069) (Apps.ShowDoc 20071 . 20220) (XCL-USER::EXEC_INTERLISP 20222 . 20994
)))))
STOP

Binary file not shown.

6
installers/cygwin/.gitignore vendored Normal file
View File

@@ -0,0 +1,6 @@
medley*.exe
medley*.tgz
maiko*.tgz
setup-x86_64.exe
medley.bat

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

View File

@@ -0,0 +1,165 @@
; Copyright (C) 2021-2023 by Bill Stewart (bstewart at iname.com)
;
; This program is free software; you can redistribute it and/or modify it under
; the terms of the GNU Lesser General Public License as published by the Free
; Software Foundation; either version 3 of the License, or (at your option) any
; later version.
;
; This program is distributed in the hope that it will be useful, but WITHOUT
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
; FOR A PARTICULAR PURPOSE. See the GNU General Lesser Public License for more
; details.
;
; You should have received a copy of the GNU Lesser General Public License
; along with this program. If not, see https://www.gnu.org/licenses/.
; Sample Inno Setup (https://www.jrsoftware.org/isinfo.php) script
; demonstrating use of PathMgr.dll.
;
; This script uses PathMgr.dll in the following ways:
; * Copies PathMgr.dll to the target machine (required for uninstall)
; * Defines a task in [Tasks] that should modify the Path
; * Imports the AddDirToPath() DLL function at setup time
; * Imports the RemoveDirFromPath() DLL function at uninstall time
; * Stores task state as custom setting using RegisterPreviousData()
; * Retrieves task state custom setting during setup and uninstall initialize
; * At post install, adds app dir to Path if task selected
; * At uninstall, removes dir from Path if custom setting present
; * Unloads and deletes DLL and removes app dir at uninstall deinitialize
#if Ver < EncodeVer(6,0,0,0)
#error This script requires Inno Setup 6 or later
#endif
[Setup]
AppId={{A17D2D05-C729-4F2A-9CC7-E04906C5A842}
AppName=EditPath
AppVersion=4.0.4.0
UsePreviousAppDir=false
DefaultDirName={autopf}\EditPath
Uninstallable=true
OutputDir=.
OutputBaseFilename=EditPath_Setup
ArchitecturesInstallIn64BitMode=x64
PrivilegesRequired=none
PrivilegesRequiredOverridesAllowed=dialog
[Files]
; Install PathMgr.dll for use with both setup and uninstall; use
; uninsneveruninstall flag because DeinitializeSetup() will delete after
; unloading the DLL; install the 32-bit version of PathMgr.dll because both
; setup and uninstall executables are 32-bit
Source: "i386\PathMgr.dll"; DestDir: "{app}"; Flags: uninsneveruninstall
; Other files to install on target system
Source: "i386\EditPath.exe"; DestDir: "{app}"; Check: not Is64BitInstallMode()
Source: "x86_64\EditPath.exe"; DestDir: "{app}"; Check: Is64BitInstallMode()
Source: "EditPath.md"; DestDir: "{app}"
[Tasks]
Name: modifypath; Description: "&Add to Path"
[Code]
const
MODIFY_PATH_TASK_NAME = 'modifypath'; // Specify name of task
var
PathIsModified: Boolean; // Cache task selection from previous installs
ApplicationUninstalled: Boolean; // Has application been uninstalled?
// Import AddDirToPath() at setup time ('files:' prefix)
function DLLAddDirToPath(DirName: string; PathType, AddType: DWORD): DWORD;
external 'AddDirToPath@files:PathMgr.dll stdcall setuponly';
// Import RemoveDirFromPath() at uninstall time ('{app}\' prefix)
function DLLRemoveDirFromPath(DirName: string; PathType: DWORD): DWORD;
external 'RemoveDirFromPath@{app}\PathMgr.dll stdcall uninstallonly';
// Wrapper for AddDirToPath() DLL function
function AddDirToPath(const DirName: string): DWORD;
var
PathType, AddType: DWORD;
begin
// PathType = 0 - use system Path
// PathType = 1 - use user Path
// AddType = 0 - add to end of Path
// AddType = 1 - add to beginning of Path
if IsAdminInstallMode() then
PathType := 0
else
PathType := 1;
AddType := 0;
result := DLLAddDirToPath(DirName, PathType, AddType);
end;
// Wrapper for RemoveDirFromPath() DLL function
function RemoveDirFromPath(const DirName: string): DWORD;
var
PathType: DWORD;
begin
// PathType = 0 - use system Path
// PathType = 1 - use user Path
if IsAdminInstallMode() then
PathType := 0
else
PathType := 1;
result := DLLRemoveDirFromPath(DirName, PathType);
end;
procedure RegisterPreviousData(PreviousDataKey: Integer);
begin
// Store previous or current task selection as custom user setting
if PathIsModified or WizardIsTaskSelected(MODIFY_PATH_TASK_NAME) then
SetPreviousData(PreviousDataKey, MODIFY_PATH_TASK_NAME, 'true');
end;
function InitializeSetup(): Boolean;
begin
result := true;
// Was task selected during a previous install?
PathIsModified := GetPreviousData(MODIFY_PATH_TASK_NAME, '') = 'true';
end;
function InitializeUninstall(): Boolean;
begin
result := true;
// Was task selected during a previous install?
PathIsModified := GetPreviousData(MODIFY_PATH_TASK_NAME, '') = 'true';
ApplicationUninstalled := false;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
// Add app directory to Path at post-install step if task selected
if PathIsModified or WizardIsTaskSelected(MODIFY_PATH_TASK_NAME) then
AddDirToPath(ExpandConstant('{app}'));
end;
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usUninstall then
begin
// Remove app directory from path during uninstall if task was selected;
// use variable because we can't use WizardIsTaskSelected() at uninstall
if PathIsModified then
RemoveDirFromPath(ExpandConstant('{app}'));
end
else if CurUninstallStep = usPostUninstall then
begin
ApplicationUninstalled := true;
end;
end;
procedure DeinitializeUninstall();
begin
if ApplicationUninstalled then
begin
// Unload and delete PathMgr.dll and remove app dir when uninstalling
UnloadDLL(ExpandConstant('{app}\PathMgr.dll'));
DeleteFile(ExpandConstant('{app}\PathMgr.dll'));
RemoveDir(ExpandConstant('{app}'));
end;
end;

View File

@@ -0,0 +1,118 @@
# EditPath
EditPath is a Windows console (text-based, command-line) program for managing the system Path and user Path.
# Author
Bill Stewart - bstewart at iname dot com
# License
EditPath.exe is covered by the GNU Lesser Public License (LPGL). See the file `LICENSE` for details.
# Download
https://github.com/Bill-Stewart/PathMgr/releases/
# Background
The system Path is found in the following location in the Windows registry:
Root: `HKEY_LOCAL_MACHINE`
Subkey: `SYSTEM\CurrentControlSet\Control\Session Manager\Environment`
Value name: `Path`
The current user Path is found in the following location in the registry:
Root: `HKEY_CURRENT_USER`
Subkey: `Environment`
Value name: `Path`
In both cases, the `Path` value is (or should be) the registry type `REG_EXPAND_SZ`, which means that it is a string that can contain values surrounded by `%` characters that Windows will automatically expand to environment variable values. (For example, `%SystemRoot%` will be expanded to `C:\Windows` on most systems.)
The `Path` value contains a `;`-delimited list of directory names that the system should search for executables, library files, scripts, etc. Windows appends the content of the current user Path to the system Path and expands the environment variable references. The resulting string is set as the `Path` environment variable for processes.
EditPath provides a command-line interface for managing the `Path` value in the system location (in `HKEY_LOCAL_MACHINE`) and the current user location (in `HKEY_CURRENT_USER`).
# Usage
The following describes the command-line usage for the program. Parameters are case-sensitive.
**EditPath** [_options_] _type_ _action_
You must specify only one of the following _type_ parameters:
| _type_ | Abbreviation | Description
| ------- | ------------ | -----------
| **--system** | **-s** | Specifies the system Path
| **--user** | **-u** | Specifies the user Path
You must specify only one of the following _action_ parameters:
| _action_ | Abbreviation | Description
| -------- | ------------ | -----------
| **--list** | **-l** | Lists directories in Path
| **--test "**_dirname_**"** | **-t "**_dirname_**"** | Tests if directory exists in Path
| **--add "**_dirname_**"** | **-a "**_dirname_**"** | Adds directory to Path
| **--remove "**_dirname_**"** | **-r "**_dirname_**"** | Removes directory from Path
The following parameters are optional:
| _options_ | Abbreviation | Description
| --------- | ------------ | -----------
| **--quiet** | **-q** | Suppresses result messages
| **--expand** | **-x** | Expands environment variables (**--list** only)
| **--beginning** | **-b** | Adds to beginning of Path (**--add** only)
# Exit Codes
The following table lists typical exit codes when not using **--test** (**-t**).
| Exit Code | Description
| --------- | -----------
| 0 | No errors
| 2 | The Path value is not present in the registry
| 3 | The specified directory does not exist in the Path
| 5 | Access is denied
| 87 | Incorrect parameter(s)
| 183 | The specified directory already exists in the Path
The following table lists typical exit codes when using **--test** (**-t**).
| Exit Code | Description
| --------- | -----------
| 1 | The specified directory exists in the unexpanded Path
| 2 | The specified directory exists in the expanded Path
| 3 | The specified directory does not exist in the Path
# Remarks
* Anything on the command line after **--test**, **--add**, or **--remove** is considered to be the argument for the parameter. To avoid ambiguity, specify the _action_ parameter last on the command line.
* Uexpanded vs. expanded refers to whether the environment variable references (i.e., names between `%` characters) are expanded after retrieving the Path value from the registry. For example, `%SystemRoot%` is unexpanded but `C:\Windows` is expanded.
* The **--add** (**-a**) parameter checks whether the specified directory exists in both the unexpanded and expanded copies of the Path before adding the directory. For example, if the environment variable `TESTAPP` is set to `C:\TestApp` and `%TESTAPP%` is in the Path, specifying `--add C:\TestApp` will return exit code 183 (i.e., the directory already exists in the Path) because `%TESTAPP%` expands to `C:\TestApp`.
* The **--remove** (**-r**) parameter does not expand environment variable references. For example, if the environment variable `TESTAPP` is set to `C:\TestApp` and `%TESTAPP%` is in the Path, specifying `--remove "C:\TestApp"` will return exit code 3 (i.e., the directory does not exist in the Path) because **--remove** does not expand `%TESTAPP%` to `C:\TestApp`. For the command to succeed, you would have to specify `--remove "%TESTAPP%"` instead.
* The program will exit with error code 87 if a parameter (or an argument to a parameter) is missing or not valid, if mutually exclusive parameters are specified, etc.
* The program will exit with error code 5 if the current user does not have permission to update the Path value in the registry (for example, if you try to update the system Path using a standard user account or an unelevated administrator account).
# Examples
1. `EditPath --expand --system --list`
This command outputs the directories in the system Path, with environment variables expanded. You can also write this command as `EditPath -x -s -l`.
2. `EditPath --user --add "%LOCALAPPDATA%\Programs\MyApp"`
Adds the specified directory name to the user Path.
3. `EditPath -s -r "C:\Program Files\MyApp\bin"`
Removes the specified directory from the system Path.
4. `EditPath -s --test "C:\Program Files (x86)\MyApp\bin"`
Returns an exit code of 3 if the specified directory is not in the system Path, 1 if the specified directory is in the unexpanded copy of the system Path, or 2 if the specified directory is in the expanded copy of the system Path.

View File

@@ -0,0 +1,3 @@
Editpath installed here is extracted from Release 1.04 from https://github.com/Bill-Stewart/PathMgr.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,128 @@
; -- makeflix.iss --
; fgh 2016-08-19
#define x86_or_x64 "x86"
#define version "1.0.1"
#if x86_or_x64 == "x86"
#define exe_dir "Win32"
#else
#define exe_dir "x64"
#endif
[Setup]
ArchitecturesAllowed={#x86_or_x64}
AppName=Makeflix
AppVersion={#version}
AppPublisher=Lellan, Inc.
AppPublisherURL=http://www.lellan.com/
AppCopyright=Copyright (C) 2012-2017 Lellan, Inc.
DefaultDirName={pf}\Lellan\Makeflix
DefaultGroupName=Lellan
UninstallDisplayIcon={app}\makeflix.exe
Compression=lzma2
SolidCompression=yes
; "ArchitecturesInstallIn64BitMode=x64" requests that the install be
; done in "64-bit mode" on x64, meaning it should use the native
; 64-bit Program Files directory and the 64-bit view of the registry.
ArchitecturesInstallIn64BitMode=x64
; Source Dir is lellan/toolchain/makeflix/windows
SourceDir="..\"
OutputDir="deploy"
OutputBaseFilename="makeflix_v{#version}_{#x86_or_x64}"
SetupIconFile="..\images\Lellan_Logo_20130221.ico"
LicenseFile="..\deploy\EULA.rtf"
DisableWelcomePage=no
[Files]
Source: "makeflix\{#exe_dir}\Release\makeflix.exe"; DestDir: "{app}"; DestName: "makeflix.exe"; Flags: ignoreversion
Source: "deploy\DLLs\{#x86_or_x64}\Qt5Core.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "deploy\DLLs\{#x86_or_x64}\Qt5Gui.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "deploy\DLLs\{#x86_or_x64}\Qt5Widgets.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "deploy\DLLs\{#x86_or_x64}\Qt5Network.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "deploy\DLLs\{#x86_or_x64}\platforms\qwindows.dll"; DestDir: "{app}\platforms"; Flags: ignoreversion
Source: "deploy\gstreamer\{#x86_or_x64}\*"; DestDir: "{app}\gstreamer"; Flags: recursesubdirs ignoreversion
Source: "deploy\vc_redist\vc_redist.{#x86_or_x64}.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall
Source: "deploy\bonjour\Bonjour.{#x86_or_x64}.msi"; DestDir: "{tmp}" ; Flags: deleteafterinstall
Source: "..\deploy\Makeflix_Open_Source_Libraries.pdf"; DestDir: "{app}"
[Icons]
Name: "{group}\Makeflix"; Filename: "{app}\makeflix.exe"
Name: "{group}\Uninstall Makeflix"; Filename: "{uninstallexe}"
[Run]
#define VCmsg "Installing Microsoft Visual C++ Redistributable ..."
Filename: "{tmp}\vc_redist{#x86_or_x64}.exe"; StatusMsg: "{#VCmsg}"; Check: not VCinstalled
#define BonjourMsg "Installing Apple Bonjour support ..."
Filename: "msiexec"; Parameters: "/i {tmp}\Bonjour.{#x86_or_x64}.msi"; StatusMsg: "{#BonjourMsg}"; Check: not BonjourInstalled
[Registry]
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\makeflix.exe"; ValueType: string; ValueName: "(Default)"; ValueData: "{app}\makeflix.exe"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\makeflix.exe"; ValueType: string; ValueName: "Path"; ValueData: "{app}\gstreamer\bin"; Flags: uninsdeletekey
[Code]
function VCinstalled: Boolean;
// By Michael Weiner <mailto:spam@cogit.net>
// Function for Inno Setup Compiler
// 13 November 2015
// Modified by Frank G Halasz to handle WOW case
// 23 August 2016
// Returns True if Microsoft Visual C++ Redistributable is installed, otherwise False.
// The programmer may set the year of redistributable to find; see below.
var
names: TArrayOfString;
i: Integer;
dName, key, year, platfm: String;
begin
// Year of redistributable to find; leave null to find installation for any year.
year := '2015';
Result := False;
if Is64BitInstallMode then
begin
platfm := 'x64';
key := 'Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall';
end
else if not IsWin64 then
begin
platfm := 'x86';
key := 'Software\Microsoft\Windows\CurrentVersion\Uninstall';
end
else
begin
platfm := 'x86';
key := 'Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall';
end;
// Get an array of all of the uninstall subkey names.
if RegGetSubkeyNames(HKEY_LOCAL_MACHINE, key, names) then
// Uninstall subkey names were found.
begin
i := 0
while ((i < GetArrayLength(names)) and (Result = False)) do
// The loop will end as soon as one instance of a Visual C++ redistributable is found.
begin
// For each uninstall subkey, look for a DisplayName value.
// If not found, then the subkey name will be used instead.
if not RegQueryStringValue(HKEY_LOCAL_MACHINE, key + '\' + names[i], 'DisplayName', dName) then
dName := names[i];
// See if the value contains both of the strings below.
Result := (Pos(Trim('Visual C++ ' + year),dName) * Pos('Redistributable',dName) * Pos(platfm, dName) <> 0)
i := i + 1;
end;
end;
end;
function BonjourInstalled: Boolean;
// Returns True if Apple Bonjour is installed, otherwise False.
// Ignores date/version of Bonjour.
begin
Result := False;
// If this key exists, then
// bonjour services must already be installed
if RegKeyExists(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Services\Bonjour Service') then
// Uninstall subkey names were found.
begin
Result := True;
end;
end;

View File

@@ -0,0 +1,85 @@
;###############################################################################
;#
;# medley.iss - Inno Setup compiler script for creating a Windows
;# installer for cygwin and Medley on cygwin
;#
;# 2023-06-03 Frank Halasz
;#
;# Copyright 2023 Interlisp.org
;#
;###############################################################################
#define x86_or_x64 "x64"
#if GetEnv('COMBINED_RELEASE_TAG') != ""
#define VERSION=GetEnv('COMBINED_RELEASE_TAG')
#else
#define VERSION="local"
#endif
#if GetEnv('CYGWIN_INSTALLER_BASE') != ""
#define OUTFILE=GetEnv('CYGWIN_INSTALLER_BASE')
#else
#define OUTFILE="medley-full-cygwin-x86_64-local"
#endif
[Setup]
PrivilegesRequired=lowest
ArchitecturesAllowed={#x86_or_x64}
AppName=Medley
AppVersion={#version}
AppPublisher=Interlisp.org
AppPublisherURL=https://interlisp.org/
AppCopyright=Copyright (C) 2023 Interlisp.org
DefaultDirName={%USERPROFILE}\il
DefaultGroupName=Medley
Compression=lzma2
SolidCompression=yes
; "ArchitecturesInstallIn64BitMode=x64" requests that the install be
; done in "64-bit mode" on x64, meaning it should use the native
; 64-bit Program Files directory and the 64-bit view of the registry.
ArchitecturesInstallIn64BitMode=x64
OutputDir="."
OutputBaseFilename={#OUTFILE}
SetupIconFile="Medley.ico"
DisableWelcomePage=no
MissingRunOnceIdsWarning=no
DisableProgramGroupPage=yes
WizardImageFile=medley_logo.bmp
WizardSmallImageFile=medley_logo_small.bmp
WizardImageStretch=no
UninstallDisplayIcon="{app}\Medley.ico"
UninstallFilesDir={app}\uninstall
UsePreviousAppDir=no
[Dirs]
Name: "{app}\install"; Permissions: everyone-full
Name: "{app}\uninstall"; Permissions: everyone-full
Name: "{app}\cygwin"; Permissions: everyone-full
[Files]
Source: "setup-x86_64.exe"; DestDir: "{app}\cygwin"; DestName: "setup-x86_64.exe"; Flags: ignoreversion
Source: "maiko-cygwin.x86_64.tgz"; DestDir: "{app}\install"; DestName: "maiko-cygwin.x86_64.tgz"; Flags: ignoreversion
Source: "medley.tgz"; DestDir: "{app}\install"; DestName: "medley.tgz"; Flags: ignoreversion
Source: "..\win\editpath\x86_64\EditPath.exe"; DestDir: "{app}\uninstall"; DestName: "EditPath.exe"; Flags: ignoreversion
Source: "Medley.ico"; DestDir: "{app}"; DestName: "Medley.ico"; Flags: ignoreversion
[Icons]
Name: "{group}\Medley\Uninstall_Medley"; Filename: "{uninstallexe}"
; Name: "{group}\Medley\Medley"; Filename: "powershell"; Parameters: "-NoExit -File {app}\medley.ps1 --help"; IconFilename: "{app}\Medley.ico"
[Run]
Filename: "{app}\cygwin\setup-x86_64.exe"; Parameters: "--quiet-mode --no-admin --wait --no-shortcuts --no-write-registry --verbose --root {app} --site http://www.gtlib.gatech.edu/pub/cygwin/ --only-site --local-package-dir {app}\cygwin --packages nano,xdg-utils"; StatusMsg: "Installing Cygwin ..."
Filename: "{app}\bin\bash"; Parameters: "-login -c 'sed -i -e s/^none/#none/ /etc/fstab && echo none / cygdrive binary,posix=0,user 0 0 >>/etc/fstab'"; Flags: runhidden
Filename: "tar"; Parameters: "-x -z -C {app} -f {app}\install\medley.tgz"; Flags: runhidden; StatusMsg: "Installing Medley ..."
Filename: "powershell"; Parameters: "remove-item -force -recurse {app}\maiko"; Flags: runhidden; StatusMsg: "Installing Maiko ..."
Filename: "tar"; Parameters: "-x -z -C {app} -f {app}\install\maiko-cygwin.x86_64.tgz"; Flags: runhidden; StatusMsg: "Installing Maiko ..."
; Recreate medley symbolic links (lost in tars)
Filename: "{app}\bin\bash"; Parameters: "-login -c 'cd /medley/scripts/medley && ln -s medley.command medley.sh && cd ../.. && ln -s /medley/scripts/medley/medley.sh medley'"; Flags: runhidden
; Create medley.bat
Filename: "powershell"; Parameters: "write-output \""{app}\bin\bash -login -c '/medley/scripts/medley/medley.sh %*'\"" | out-file medley.bat -Encoding ascii"; WorkingDir: "{app}"; Flags: runhidden; StatusMsg: "Creating medley.bat ..."
Filename: "{app}\uninstall\EditPath.exe"; Parameters: "--user --add {app}"; Flags: runhidden; StatusMsg: "Adding to PATH ..."
Filename: "powershell"; Parameters: "remove-item -recurse -force {app}\install"; Flags: runhidden; StatusMsg: "Cleaning up ..."
[UninstallRun]
Filename: "{app}\uninstall\EditPath.exe"; Parameters: "--user --remove {app}"; Flags: runhidden

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -38,6 +38,9 @@
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-wsl-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>
<p><a href="@@@DOWNLOAD_URL@@@/@@@CYGWIN.INSTALLER@@@">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for Windows x64 machines</a></p></li>
<li><h2>macOS 11 (Big Sur) and later - for both Intel and Apple Silicon</h2>
<ul>
@@ -48,8 +51,5 @@
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-macos-universal-@@@COMBINED.RELEASE.TAG@@@.zip">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@</a></p></li>
</ul></li>
<li><h2>WINDOWS 10/11 (Medley running within Cygwin)</h2>
<p>Not available</p></li>
</ul></li>
</ul>

View File

@@ -34,6 +34,10 @@
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl-aarch64-@@@COMBINED.RELEASE.TAG@@@.tgz)
* ## WINDOWS 10/11 (Single install based on cygwin - Docker install deprecated)
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for Windows x64 machines](@@@DOWNLOAD_URL@@@/@@@CYGWIN.INSTALLER@@@)
* ## macOS 11 (Big Sur) and later - for both Intel and Apple Silicon
* ### DMG Installer
@@ -43,12 +47,3 @@
* ### ZIP Installer
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@](@@@DOWNLOAD_URL@@@/medley-full-macos-universal-@@@COMBINED.RELEASE.TAG@@@.zip)
* ## WINDOWS 10/11 (Medley running within Cygwin)
Not available

View File

@@ -1,165 +1,165 @@
; Copyright (C) 2021-2023 by Bill Stewart (bstewart at iname.com)
;
; This program is free software; you can redistribute it and/or modify it under
; the terms of the GNU Lesser General Public License as published by the Free
; Software Foundation; either version 3 of the License, or (at your option) any
; later version.
;
; This program is distributed in the hope that it will be useful, but WITHOUT
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
; FOR A PARTICULAR PURPOSE. See the GNU General Lesser Public License for more
; details.
;
; You should have received a copy of the GNU Lesser General Public License
; along with this program. If not, see https://www.gnu.org/licenses/.
; Sample Inno Setup (https://www.jrsoftware.org/isinfo.php) script
; demonstrating use of PathMgr.dll.
;
; This script uses PathMgr.dll in the following ways:
; * Copies PathMgr.dll to the target machine (required for uninstall)
; * Defines a task in [Tasks] that should modify the Path
; * Imports the AddDirToPath() DLL function at setup time
; * Imports the RemoveDirFromPath() DLL function at uninstall time
; * Stores task state as custom setting using RegisterPreviousData()
; * Retrieves task state custom setting during setup and uninstall initialize
; * At post install, adds app dir to Path if task selected
; * At uninstall, removes dir from Path if custom setting present
; * Unloads and deletes DLL and removes app dir at uninstall deinitialize
#if Ver < EncodeVer(6,0,0,0)
#error This script requires Inno Setup 6 or later
#endif
[Setup]
AppId={{A17D2D05-C729-4F2A-9CC7-E04906C5A842}
AppName=EditPath
AppVersion=4.0.4.0
UsePreviousAppDir=false
DefaultDirName={autopf}\EditPath
Uninstallable=true
OutputDir=.
OutputBaseFilename=EditPath_Setup
ArchitecturesInstallIn64BitMode=x64
PrivilegesRequired=none
PrivilegesRequiredOverridesAllowed=dialog
[Files]
; Install PathMgr.dll for use with both setup and uninstall; use
; uninsneveruninstall flag because DeinitializeSetup() will delete after
; unloading the DLL; install the 32-bit version of PathMgr.dll because both
; setup and uninstall executables are 32-bit
Source: "i386\PathMgr.dll"; DestDir: "{app}"; Flags: uninsneveruninstall
; Other files to install on target system
Source: "i386\EditPath.exe"; DestDir: "{app}"; Check: not Is64BitInstallMode()
Source: "x86_64\EditPath.exe"; DestDir: "{app}"; Check: Is64BitInstallMode()
Source: "EditPath.md"; DestDir: "{app}"
[Tasks]
Name: modifypath; Description: "&Add to Path"
[Code]
const
MODIFY_PATH_TASK_NAME = 'modifypath'; // Specify name of task
var
PathIsModified: Boolean; // Cache task selection from previous installs
ApplicationUninstalled: Boolean; // Has application been uninstalled?
// Import AddDirToPath() at setup time ('files:' prefix)
function DLLAddDirToPath(DirName: string; PathType, AddType: DWORD): DWORD;
external 'AddDirToPath@files:PathMgr.dll stdcall setuponly';
// Import RemoveDirFromPath() at uninstall time ('{app}\' prefix)
function DLLRemoveDirFromPath(DirName: string; PathType: DWORD): DWORD;
external 'RemoveDirFromPath@{app}\PathMgr.dll stdcall uninstallonly';
// Wrapper for AddDirToPath() DLL function
function AddDirToPath(const DirName: string): DWORD;
var
PathType, AddType: DWORD;
begin
// PathType = 0 - use system Path
// PathType = 1 - use user Path
// AddType = 0 - add to end of Path
// AddType = 1 - add to beginning of Path
if IsAdminInstallMode() then
PathType := 0
else
PathType := 1;
AddType := 0;
result := DLLAddDirToPath(DirName, PathType, AddType);
end;
// Wrapper for RemoveDirFromPath() DLL function
function RemoveDirFromPath(const DirName: string): DWORD;
var
PathType: DWORD;
begin
// PathType = 0 - use system Path
// PathType = 1 - use user Path
if IsAdminInstallMode() then
PathType := 0
else
PathType := 1;
result := DLLRemoveDirFromPath(DirName, PathType);
end;
procedure RegisterPreviousData(PreviousDataKey: Integer);
begin
// Store previous or current task selection as custom user setting
if PathIsModified or WizardIsTaskSelected(MODIFY_PATH_TASK_NAME) then
SetPreviousData(PreviousDataKey, MODIFY_PATH_TASK_NAME, 'true');
end;
function InitializeSetup(): Boolean;
begin
result := true;
// Was task selected during a previous install?
PathIsModified := GetPreviousData(MODIFY_PATH_TASK_NAME, '') = 'true';
end;
function InitializeUninstall(): Boolean;
begin
result := true;
// Was task selected during a previous install?
PathIsModified := GetPreviousData(MODIFY_PATH_TASK_NAME, '') = 'true';
ApplicationUninstalled := false;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
// Add app directory to Path at post-install step if task selected
if PathIsModified or WizardIsTaskSelected(MODIFY_PATH_TASK_NAME) then
AddDirToPath(ExpandConstant('{app}'));
end;
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usUninstall then
begin
// Remove app directory from path during uninstall if task was selected;
// use variable because we can't use WizardIsTaskSelected() at uninstall
if PathIsModified then
RemoveDirFromPath(ExpandConstant('{app}'));
end
else if CurUninstallStep = usPostUninstall then
begin
ApplicationUninstalled := true;
end;
end;
procedure DeinitializeUninstall();
begin
if ApplicationUninstalled then
begin
// Unload and delete PathMgr.dll and remove app dir when uninstalling
UnloadDLL(ExpandConstant('{app}\PathMgr.dll'));
DeleteFile(ExpandConstant('{app}\PathMgr.dll'));
RemoveDir(ExpandConstant('{app}'));
end;
end;
; Copyright (C) 2021-2023 by Bill Stewart (bstewart at iname.com)
;
; This program is free software; you can redistribute it and/or modify it under
; the terms of the GNU Lesser General Public License as published by the Free
; Software Foundation; either version 3 of the License, or (at your option) any
; later version.
;
; This program is distributed in the hope that it will be useful, but WITHOUT
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
; FOR A PARTICULAR PURPOSE. See the GNU General Lesser Public License for more
; details.
;
; You should have received a copy of the GNU Lesser General Public License
; along with this program. If not, see https://www.gnu.org/licenses/.
; Sample Inno Setup (https://www.jrsoftware.org/isinfo.php) script
; demonstrating use of PathMgr.dll.
;
; This script uses PathMgr.dll in the following ways:
; * Copies PathMgr.dll to the target machine (required for uninstall)
; * Defines a task in [Tasks] that should modify the Path
; * Imports the AddDirToPath() DLL function at setup time
; * Imports the RemoveDirFromPath() DLL function at uninstall time
; * Stores task state as custom setting using RegisterPreviousData()
; * Retrieves task state custom setting during setup and uninstall initialize
; * At post install, adds app dir to Path if task selected
; * At uninstall, removes dir from Path if custom setting present
; * Unloads and deletes DLL and removes app dir at uninstall deinitialize
#if Ver < EncodeVer(6,0,0,0)
#error This script requires Inno Setup 6 or later
#endif
[Setup]
AppId={{A17D2D05-C729-4F2A-9CC7-E04906C5A842}
AppName=EditPath
AppVersion=4.0.4.0
UsePreviousAppDir=false
DefaultDirName={autopf}\EditPath
Uninstallable=true
OutputDir=.
OutputBaseFilename=EditPath_Setup
ArchitecturesInstallIn64BitMode=x64
PrivilegesRequired=none
PrivilegesRequiredOverridesAllowed=dialog
[Files]
; Install PathMgr.dll for use with both setup and uninstall; use
; uninsneveruninstall flag because DeinitializeSetup() will delete after
; unloading the DLL; install the 32-bit version of PathMgr.dll because both
; setup and uninstall executables are 32-bit
Source: "i386\PathMgr.dll"; DestDir: "{app}"; Flags: uninsneveruninstall
; Other files to install on target system
Source: "i386\EditPath.exe"; DestDir: "{app}"; Check: not Is64BitInstallMode()
Source: "x86_64\EditPath.exe"; DestDir: "{app}"; Check: Is64BitInstallMode()
Source: "EditPath.md"; DestDir: "{app}"
[Tasks]
Name: modifypath; Description: "&Add to Path"
[Code]
const
MODIFY_PATH_TASK_NAME = 'modifypath'; // Specify name of task
var
PathIsModified: Boolean; // Cache task selection from previous installs
ApplicationUninstalled: Boolean; // Has application been uninstalled?
// Import AddDirToPath() at setup time ('files:' prefix)
function DLLAddDirToPath(DirName: string; PathType, AddType: DWORD): DWORD;
external 'AddDirToPath@files:PathMgr.dll stdcall setuponly';
// Import RemoveDirFromPath() at uninstall time ('{app}\' prefix)
function DLLRemoveDirFromPath(DirName: string; PathType: DWORD): DWORD;
external 'RemoveDirFromPath@{app}\PathMgr.dll stdcall uninstallonly';
// Wrapper for AddDirToPath() DLL function
function AddDirToPath(const DirName: string): DWORD;
var
PathType, AddType: DWORD;
begin
// PathType = 0 - use system Path
// PathType = 1 - use user Path
// AddType = 0 - add to end of Path
// AddType = 1 - add to beginning of Path
if IsAdminInstallMode() then
PathType := 0
else
PathType := 1;
AddType := 0;
result := DLLAddDirToPath(DirName, PathType, AddType);
end;
// Wrapper for RemoveDirFromPath() DLL function
function RemoveDirFromPath(const DirName: string): DWORD;
var
PathType: DWORD;
begin
// PathType = 0 - use system Path
// PathType = 1 - use user Path
if IsAdminInstallMode() then
PathType := 0
else
PathType := 1;
result := DLLRemoveDirFromPath(DirName, PathType);
end;
procedure RegisterPreviousData(PreviousDataKey: Integer);
begin
// Store previous or current task selection as custom user setting
if PathIsModified or WizardIsTaskSelected(MODIFY_PATH_TASK_NAME) then
SetPreviousData(PreviousDataKey, MODIFY_PATH_TASK_NAME, 'true');
end;
function InitializeSetup(): Boolean;
begin
result := true;
// Was task selected during a previous install?
PathIsModified := GetPreviousData(MODIFY_PATH_TASK_NAME, '') = 'true';
end;
function InitializeUninstall(): Boolean;
begin
result := true;
// Was task selected during a previous install?
PathIsModified := GetPreviousData(MODIFY_PATH_TASK_NAME, '') = 'true';
ApplicationUninstalled := false;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
// Add app directory to Path at post-install step if task selected
if PathIsModified or WizardIsTaskSelected(MODIFY_PATH_TASK_NAME) then
AddDirToPath(ExpandConstant('{app}'));
end;
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usUninstall then
begin
// Remove app directory from path during uninstall if task was selected;
// use variable because we can't use WizardIsTaskSelected() at uninstall
if PathIsModified then
RemoveDirFromPath(ExpandConstant('{app}'));
end
else if CurUninstallStep = usPostUninstall then
begin
ApplicationUninstalled := true;
end;
end;
procedure DeinitializeUninstall();
begin
if ApplicationUninstalled then
begin
// Unload and delete PathMgr.dll and remove app dir when uninstalling
UnloadDLL(ExpandConstant('{app}\PathMgr.dll'));
DeleteFile(ExpandConstant('{app}\PathMgr.dll'));
RemoveDir(ExpandConstant('{app}'));
end;
end;

View File

@@ -1,118 +1,118 @@
# EditPath
EditPath is a Windows console (text-based, command-line) program for managing the system Path and user Path.
# Author
Bill Stewart - bstewart at iname dot com
# License
EditPath.exe is covered by the GNU Lesser Public License (LPGL). See the file `LICENSE` for details.
# Download
https://github.com/Bill-Stewart/PathMgr/releases/
# Background
The system Path is found in the following location in the Windows registry:
Root: `HKEY_LOCAL_MACHINE`
Subkey: `SYSTEM\CurrentControlSet\Control\Session Manager\Environment`
Value name: `Path`
The current user Path is found in the following location in the registry:
Root: `HKEY_CURRENT_USER`
Subkey: `Environment`
Value name: `Path`
In both cases, the `Path` value is (or should be) the registry type `REG_EXPAND_SZ`, which means that it is a string that can contain values surrounded by `%` characters that Windows will automatically expand to environment variable values. (For example, `%SystemRoot%` will be expanded to `C:\Windows` on most systems.)
The `Path` value contains a `;`-delimited list of directory names that the system should search for executables, library files, scripts, etc. Windows appends the content of the current user Path to the system Path and expands the environment variable references. The resulting string is set as the `Path` environment variable for processes.
EditPath provides a command-line interface for managing the `Path` value in the system location (in `HKEY_LOCAL_MACHINE`) and the current user location (in `HKEY_CURRENT_USER`).
# Usage
The following describes the command-line usage for the program. Parameters are case-sensitive.
**EditPath** [_options_] _type_ _action_
You must specify only one of the following _type_ parameters:
| _type_ | Abbreviation | Description
| ------- | ------------ | -----------
| **--system** | **-s** | Specifies the system Path
| **--user** | **-u** | Specifies the user Path
You must specify only one of the following _action_ parameters:
| _action_ | Abbreviation | Description
| -------- | ------------ | -----------
| **--list** | **-l** | Lists directories in Path
| **--test "**_dirname_**"** | **-t "**_dirname_**"** | Tests if directory exists in Path
| **--add "**_dirname_**"** | **-a "**_dirname_**"** | Adds directory to Path
| **--remove "**_dirname_**"** | **-r "**_dirname_**"** | Removes directory from Path
The following parameters are optional:
| _options_ | Abbreviation | Description
| --------- | ------------ | -----------
| **--quiet** | **-q** | Suppresses result messages
| **--expand** | **-x** | Expands environment variables (**--list** only)
| **--beginning** | **-b** | Adds to beginning of Path (**--add** only)
# Exit Codes
The following table lists typical exit codes when not using **--test** (**-t**).
| Exit Code | Description
| --------- | -----------
| 0 | No errors
| 2 | The Path value is not present in the registry
| 3 | The specified directory does not exist in the Path
| 5 | Access is denied
| 87 | Incorrect parameter(s)
| 183 | The specified directory already exists in the Path
The following table lists typical exit codes when using **--test** (**-t**).
| Exit Code | Description
| --------- | -----------
| 1 | The specified directory exists in the unexpanded Path
| 2 | The specified directory exists in the expanded Path
| 3 | The specified directory does not exist in the Path
# Remarks
* Anything on the command line after **--test**, **--add**, or **--remove** is considered to be the argument for the parameter. To avoid ambiguity, specify the _action_ parameter last on the command line.
* Uexpanded vs. expanded refers to whether the environment variable references (i.e., names between `%` characters) are expanded after retrieving the Path value from the registry. For example, `%SystemRoot%` is unexpanded but `C:\Windows` is expanded.
* The **--add** (**-a**) parameter checks whether the specified directory exists in both the unexpanded and expanded copies of the Path before adding the directory. For example, if the environment variable `TESTAPP` is set to `C:\TestApp` and `%TESTAPP%` is in the Path, specifying `--add C:\TestApp` will return exit code 183 (i.e., the directory already exists in the Path) because `%TESTAPP%` expands to `C:\TestApp`.
* The **--remove** (**-r**) parameter does not expand environment variable references. For example, if the environment variable `TESTAPP` is set to `C:\TestApp` and `%TESTAPP%` is in the Path, specifying `--remove "C:\TestApp"` will return exit code 3 (i.e., the directory does not exist in the Path) because **--remove** does not expand `%TESTAPP%` to `C:\TestApp`. For the command to succeed, you would have to specify `--remove "%TESTAPP%"` instead.
* The program will exit with error code 87 if a parameter (or an argument to a parameter) is missing or not valid, if mutually exclusive parameters are specified, etc.
* The program will exit with error code 5 if the current user does not have permission to update the Path value in the registry (for example, if you try to update the system Path using a standard user account or an unelevated administrator account).
# Examples
1. `EditPath --expand --system --list`
This command outputs the directories in the system Path, with environment variables expanded. You can also write this command as `EditPath -x -s -l`.
2. `EditPath --user --add "%LOCALAPPDATA%\Programs\MyApp"`
Adds the specified directory name to the user Path.
3. `EditPath -s -r "C:\Program Files\MyApp\bin"`
Removes the specified directory from the system Path.
4. `EditPath -s --test "C:\Program Files (x86)\MyApp\bin"`
Returns an exit code of 3 if the specified directory is not in the system Path, 1 if the specified directory is in the unexpanded copy of the system Path, or 2 if the specified directory is in the expanded copy of the system Path.
# EditPath
EditPath is a Windows console (text-based, command-line) program for managing the system Path and user Path.
# Author
Bill Stewart - bstewart at iname dot com
# License
EditPath.exe is covered by the GNU Lesser Public License (LPGL). See the file `LICENSE` for details.
# Download
https://github.com/Bill-Stewart/PathMgr/releases/
# Background
The system Path is found in the following location in the Windows registry:
Root: `HKEY_LOCAL_MACHINE`
Subkey: `SYSTEM\CurrentControlSet\Control\Session Manager\Environment`
Value name: `Path`
The current user Path is found in the following location in the registry:
Root: `HKEY_CURRENT_USER`
Subkey: `Environment`
Value name: `Path`
In both cases, the `Path` value is (or should be) the registry type `REG_EXPAND_SZ`, which means that it is a string that can contain values surrounded by `%` characters that Windows will automatically expand to environment variable values. (For example, `%SystemRoot%` will be expanded to `C:\Windows` on most systems.)
The `Path` value contains a `;`-delimited list of directory names that the system should search for executables, library files, scripts, etc. Windows appends the content of the current user Path to the system Path and expands the environment variable references. The resulting string is set as the `Path` environment variable for processes.
EditPath provides a command-line interface for managing the `Path` value in the system location (in `HKEY_LOCAL_MACHINE`) and the current user location (in `HKEY_CURRENT_USER`).
# Usage
The following describes the command-line usage for the program. Parameters are case-sensitive.
**EditPath** [_options_] _type_ _action_
You must specify only one of the following _type_ parameters:
| _type_ | Abbreviation | Description
| ------- | ------------ | -----------
| **--system** | **-s** | Specifies the system Path
| **--user** | **-u** | Specifies the user Path
You must specify only one of the following _action_ parameters:
| _action_ | Abbreviation | Description
| -------- | ------------ | -----------
| **--list** | **-l** | Lists directories in Path
| **--test "**_dirname_**"** | **-t "**_dirname_**"** | Tests if directory exists in Path
| **--add "**_dirname_**"** | **-a "**_dirname_**"** | Adds directory to Path
| **--remove "**_dirname_**"** | **-r "**_dirname_**"** | Removes directory from Path
The following parameters are optional:
| _options_ | Abbreviation | Description
| --------- | ------------ | -----------
| **--quiet** | **-q** | Suppresses result messages
| **--expand** | **-x** | Expands environment variables (**--list** only)
| **--beginning** | **-b** | Adds to beginning of Path (**--add** only)
# Exit Codes
The following table lists typical exit codes when not using **--test** (**-t**).
| Exit Code | Description
| --------- | -----------
| 0 | No errors
| 2 | The Path value is not present in the registry
| 3 | The specified directory does not exist in the Path
| 5 | Access is denied
| 87 | Incorrect parameter(s)
| 183 | The specified directory already exists in the Path
The following table lists typical exit codes when using **--test** (**-t**).
| Exit Code | Description
| --------- | -----------
| 1 | The specified directory exists in the unexpanded Path
| 2 | The specified directory exists in the expanded Path
| 3 | The specified directory does not exist in the Path
# Remarks
* Anything on the command line after **--test**, **--add**, or **--remove** is considered to be the argument for the parameter. To avoid ambiguity, specify the _action_ parameter last on the command line.
* Uexpanded vs. expanded refers to whether the environment variable references (i.e., names between `%` characters) are expanded after retrieving the Path value from the registry. For example, `%SystemRoot%` is unexpanded but `C:\Windows` is expanded.
* The **--add** (**-a**) parameter checks whether the specified directory exists in both the unexpanded and expanded copies of the Path before adding the directory. For example, if the environment variable `TESTAPP` is set to `C:\TestApp` and `%TESTAPP%` is in the Path, specifying `--add C:\TestApp` will return exit code 183 (i.e., the directory already exists in the Path) because `%TESTAPP%` expands to `C:\TestApp`.
* The **--remove** (**-r**) parameter does not expand environment variable references. For example, if the environment variable `TESTAPP` is set to `C:\TestApp` and `%TESTAPP%` is in the Path, specifying `--remove "C:\TestApp"` will return exit code 3 (i.e., the directory does not exist in the Path) because **--remove** does not expand `%TESTAPP%` to `C:\TestApp`. For the command to succeed, you would have to specify `--remove "%TESTAPP%"` instead.
* The program will exit with error code 87 if a parameter (or an argument to a parameter) is missing or not valid, if mutually exclusive parameters are specified, etc.
* The program will exit with error code 5 if the current user does not have permission to update the Path value in the registry (for example, if you try to update the system Path using a standard user account or an unelevated administrator account).
# Examples
1. `EditPath --expand --system --list`
This command outputs the directories in the system Path, with environment variables expanded. You can also write this command as `EditPath -x -s -l`.
2. `EditPath --user --add "%LOCALAPPDATA%\Programs\MyApp"`
Adds the specified directory name to the user Path.
3. `EditPath -s -r "C:\Program Files\MyApp\bin"`
Removes the specified directory from the system Path.
4. `EditPath -s --test "C:\Program Files (x86)\MyApp\bin"`
Returns an exit code of 3 if the specified directory is not in the system Path, 1 if the specified directory is in the unexpanded copy of the system Path, or 2 if the specified directory is in the expanded copy of the system Path.

View File

@@ -1,15 +1,13 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10)
(FILECREATED " 9-Jul-2022 09:41:26" 
|{DSK}<Users>kaplan>Local>medley3.5>working-medley>library>BIGBITMAPS.;12| 108851
(FILECREATED "31-Jul-2023 13:39:50" |{WMEDLEY}<library>BIGBITMAPS.;13| 109376
:EDIT-BY |rmk|
:CHANGES-TO (VARS BIGBITMAPSCOMS)
(FNS \\GENERIC.DSPCREATE.DESTINATION.BITMAP?.BIGBM \\GENERIC.DSPCREATE.BIGBM
\\DSPCREATE.BIGBM)
(MACROS |\\SFInvert|)
(FNS BIGBITMAPEQUAL)
:PREVIOUS-DATE "26-Oct-2021 14:51:38"
|{DSK}<users>kaplan>local>medley3.5>working-medley>library>BIGBITMAPS.;6|)
:PREVIOUS-DATE " 9-Jul-2022 09:41:26" |{WMEDLEY}<library>BIGBITMAPS.;12|)
; Copyright (c) 1991, 1993-1994 by Venue.
@@ -24,8 +22,8 @@
(MACROS |GetNewFragment|)
(MACROS |\\SFInvert|))
(INITRECORDS BIGBM)
(FNS BIGBITMAPP BITBLT.BIGBM BITMAPCREATE.BIGBM BITMAPCREATE BITMAPCOPY BLTSHADE.BIGBM BITBLT
\\ORG.BITBLT \\BLTSHADE.DISPLAY \\RESHOWBORDER1)
(FNS BIGBITMAPP BITBLT.BIGBM BITMAPCREATE.BIGBM BITMAPCREATE BITMAPCOPY BIGBITMAPEQUAL
BLTSHADE.BIGBM BITBLT \\ORG.BITBLT \\BLTSHADE.DISPLAY \\RESHOWBORDER1)
(FNS \\DRAWCIRCLE.BIGBM \\FILLCIRCLE.BIGBM \\DRAWELLIPSE.BIGBM \\DRAWCURVE.BIGBM
\\DRAWLINE.BIGBM.DASH \\DRAWLINE.BIGBM.NODASH)
(FNS \\GENERIC.DSPCREATE.DESTINATION.BITMAP?.BIGBM)
@@ -353,6 +351,20 @@
0 0 NIL NIL 'INPUT 'REPLACE 0)
(RETURN NEWBITMAP))))
(BIGBITMAPEQUAL
(LAMBDA (BM1 BM2) (* \; "Edited 31-Jul-2023 13:08 by rmk")
(* |;;| "Fields may not be SMALLP")
(AND (|type?| BIGBM |of| BM1)
(|type?| BIGBM |of| BM2)
(IEQP (|ffetch| (BIGBM BIGBMWIDTH) |of| BM1)
(|ffetch| (BIGBM BIGBMWIDTH) |of| BM2))
(IEQP (|ffetch| (BIGBM BIGBMHEIGHT) |of| BM1)
(|ffetch| (BIGBM BIGBMHEIGHT) |of| BM2))
(|for| B1 |in| (|ffetch| (BIGBM BIGBMLIST) |of| BM1) |as| B2
|in| (|ffetch| (BIGBM BIGBMLIST) |of| BM2) |always| (EQUALBITMAPP B1 B2)))))
(BLTSHADE.BIGBM
(LAMBDA (TEXTURE DESTINATION DESTLEFT DESTBOTTOM WIDTH HEIGHT OPERATION CLIPPINGREGION)
(* \; "Edited 17-Oct-89 19:01 by takeshi")
@@ -1699,15 +1711,15 @@
)
(PUTPROPS BIGBITMAPS COPYRIGHT ("Venue" 1991 1993 1994))
(DECLARE\: DONTCOPY
(FILEMAP (NIL (3546 48244 (BIGBITMAPP 3556 . 3702) (BITBLT.BIGBM 3704 . 14527) (BITMAPCREATE.BIGBM
14529 . 15871) (BITMAPCREATE 15873 . 17475) (BITMAPCOPY 17477 . 18012) (BLTSHADE.BIGBM 18014 . 21150)
(BITBLT 21152 . 22800) (\\ORG.BITBLT 22802 . 34371) (\\BLTSHADE.DISPLAY 34373 . 43611) (
\\RESHOWBORDER1 43613 . 48242)) (48245 71523 (\\DRAWCIRCLE.BIGBM 48255 . 51618) (\\FILLCIRCLE.BIGBM
51620 . 55666) (\\DRAWELLIPSE.BIGBM 55668 . 60188) (\\DRAWCURVE.BIGBM 60190 . 64040) (
\\DRAWLINE.BIGBM.DASH 64042 . 68401) (\\DRAWLINE.BIGBM.NODASH 68403 . 71521)) (71524 71893 (
\\GENERIC.DSPCREATE.DESTINATION.BITMAP?.BIGBM 71534 . 71891)) (72025 85168 (DSPDESTINATION 72035 .
75933) (|\\SFFixY| 75935 . 81657) (|\\SFFixDestination| 81659 . 82842) (|\\SFFixClippingRegion| 82844
. 85166)) (85169 93255 (\\SW2BM 85179 . 90203) (BITMAPHEIGHT 90205 . 90703) (BITMAPWIDTH 90705 .
91197) (|\\SFFixFont| 91199 . 92171) (BITSPERPIXEL 92173 . 93253)) (93256 108609 (COLORIZEBITMAP 93266
. 96076) (\\BWTOCOLORBLT 96078 . 102671) (UNCOLORIZEBITMAP 102673 . 108607)))))
(FILEMAP (NIL (3364 48769 (BIGBITMAPP 3374 . 3520) (BITBLT.BIGBM 3522 . 14345) (BITMAPCREATE.BIGBM
14347 . 15689) (BITMAPCREATE 15691 . 17293) (BITMAPCOPY 17295 . 17830) (BIGBITMAPEQUAL 17832 . 18537)
(BLTSHADE.BIGBM 18539 . 21675) (BITBLT 21677 . 23325) (\\ORG.BITBLT 23327 . 34896) (\\BLTSHADE.DISPLAY
34898 . 44136) (\\RESHOWBORDER1 44138 . 48767)) (48770 72048 (\\DRAWCIRCLE.BIGBM 48780 . 52143) (
\\FILLCIRCLE.BIGBM 52145 . 56191) (\\DRAWELLIPSE.BIGBM 56193 . 60713) (\\DRAWCURVE.BIGBM 60715 . 64565
) (\\DRAWLINE.BIGBM.DASH 64567 . 68926) (\\DRAWLINE.BIGBM.NODASH 68928 . 72046)) (72049 72418 (
\\GENERIC.DSPCREATE.DESTINATION.BITMAP?.BIGBM 72059 . 72416)) (72550 85693 (DSPDESTINATION 72560 .
76458) (|\\SFFixY| 76460 . 82182) (|\\SFFixDestination| 82184 . 83367) (|\\SFFixClippingRegion| 83369
. 85691)) (85694 93780 (\\SW2BM 85704 . 90728) (BITMAPHEIGHT 90730 . 91228) (BITMAPWIDTH 91230 .
91722) (|\\SFFixFont| 91724 . 92696) (BITSPERPIXEL 92698 . 93778)) (93781 109134 (COLORIZEBITMAP 93791
. 96601) (\\BWTOCOLORBLT 96603 . 103196) (UNCOLORIZEBITMAP 103198 . 109132)))))
STOP

Binary file not shown.

View File

@@ -1,171 +0,0 @@
((EUROPEAN ((100 (53 197 NOLOCKSHIFT)) (101 (52 196 NOLOCKSHIFT)) (102 (54 198 NOLOCKSHIFT)) (103 (
61887 61759 LOCKSHIFT)) (104 (55 199 NOLOCKSHIFT)) (105 (61888 61760 LOCKSHIFT)) (106 (61872 61744
LOCKSHIFT)) (107 (61860 61732 LOCKSHIFT)) (108 (48 126 NOLOCKSHIFT)) (109 (61892 61764 LOCKSHIFT)) (
110 (203 207 NOLOCKSHIFT)) (111 (61919 61791 LOCKSHIFT)) (112 (47 191 NOLOCKSHIFT)) (115 (8 8
NOLOCKSHIFT) . IGNORE) (116 (51 195 NOLOCKSHIFT)) (117 (50 194 NOLOCKSHIFT)) (118 (61873 61745
LOCKSHIFT)) (119 (61858 61730 LOCKSHIFT)) (120 (61874 61746 LOCKSHIFT)) (121 (61859 61731 LOCKSHIFT))
(122 (57 202 NOLOCKSHIFT)) (123 (61886 61758 LOCKSHIFT)) (124 (61864 61736 LOCKSHIFT)) (125 (61903
61775 LOCKSHIFT)) (126 (61908 61780 LOCKSHIFT)) (127 (241 225 LOCKSHIFT)) (128 (187 170 LOCKSHIFT)) (
129 (249 233 LOCKSHIFT)) (132 (49 193 NOLOCKSHIFT)) (133 (92 124 NOLOCKSHIFT) . IGNORE) (134 (9 9
NOLOCKSHIFT) . IGNORE) (135 (61905 61777 LOCKSHIFT)) (137 (61869 61741 LOCKSHIFT)) (138 (61877 61749
LOCKSHIFT)) (139 (61906 61778 LOCKSHIFT)) (140 (251 90 LOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP) (142 (
250 234 LOCKSHIFT)) (143 (59 58 LOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) . IGNORE) (145 (171 186 LOCKSHIFT
)) (148 (61904 61776 LOCKSHIFT)) (149 (61920 61792 LOCKSHIFT)) (150 (61921 61793 LOCKSHIFT)) (151 (
61857 61729 LOCKSHIFT)) (152 (61863 61735 LOCKSHIFT)) (153 (56 200 NOLOCKSHIFT)) (154 (61900 61772
LOCKSHIFT)) (155 (239 77 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (
246 230 LOCKSHIFT)) (159 (207 176 NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DANDELION) (logic ((100 (
53 37 NOLOCKSHIFT)) (101 (52 164 NOLOCKSHIFT)) (102 (54 126 NOLOCKSHIFT)) (103 (61258 61260
NOLOCKSHIFT)) (104 (55 38 NOLOCKSHIFT)) (105 (61292 61293 NOLOCKSHIFT)) (106 (61271 61270 NOLOCKSHIFT)
) (107 (61284 61285 NOLOCKSHIFT)) (108 (48 41 NOLOCKSHIFT)) (109 (61307 61306 NOLOCKSHIFT)) (110 (45
177 NOLOCKSHIFT)) (111 (61269 61268 LOCKSHIFT)) (112 (172 174 NOLOCKSHIFT)) (115 (8 8 NOLOCKSHIFT) .
IGNORE) (116 (51 35 NOLOCKSHIFT)) (117 (50 64 NOLOCKSHIFT)) (118 (61240 61241 NOLOCKSHIFT)) (119 (
61234 61235 NOLOCKSHIFT)) (120 (61266 61262 NOLOCKSHIFT)) (121 (61365 61365 NOLOCKSHIFT)) (122 (57 40
NOLOCKSHIFT)) (123 (61275 61274 NOLOCKSHIFT)) (124 (61300 61299 NOLOCKSHIFT)) (125 (61273 61272
NOLOCKSHIFT)) (126 (61282 61283 NOLOCKSHIFT)) (127 (61256 61257 NOLOCKSHIFT)) (128 (61356 61356
NOLOCKSHIFT)) (129 (93 125 NOLOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (61250 61251 NOLOCKSHIFT)) (137 (61298 61297 NOLOCKSHIFT)) (138
(61305 61303 NOLOCKSHIFT)) (139 (61265 61264 NOLOCKSHIFT)) (140 (61364 61364 NOLOCKSHIFT)) (141
1SHIFTDOWN . 1SHIFTUP) (142 (61281 233 NOLOCKSHIFT)) (143 (61351 61351 NOLOCKSHIFT)) (144 (13 13
NOLOCKSHIFT) . IGNORE) (145 (61357 61357 NOLOCKSHIFT)) (148 (61279 61278 NOLOCKSHIFT)) (149 (61239
61238 NOLOCKSHIFT)) (150 (61290 61290 NOLOCKSHIFT)) (151 (61263 61261 NOLOCKSHIFT)) (152 (61295 61295
NOLOCKSHIFT)) (153 (56 42 NOLOCKSHIFT)) (154 (61252 61253 NOLOCKSHIFT)) (155 (61254 61255 NOLOCKSHIFT)
) (156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (91 123 NOLOCKSHIFT)) (159 (61 43
NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DANDELION) (MATH ((100 (53 37 NOLOCKSHIFT)) (101 (52 36
NOLOCKSHIFT)) (102 (54 126 NOLOCKSHIFT)) (103 (61284 61285 LOCKSHIFT)) (104 (55 38 NOLOCKSHIFT)) (105
(100 68 LOCKSHIFT)) (106 (174 61245 NOLOCKSHIFT)) (107 (61369 61363 NOLOCKSHIFT)) (108 (48 41
NOLOCKSHIFT)) (109 (61254 61255 NOLOCKSHIFT)) (110 (45 45 NOLOCKSHIFT)) (111 (173 61246 LOCKSHIFT)) (
112 (47 61300 NOLOCKSHIFT)) (115 (8 8 NOLOCKSHIFT) . IGNORE) (116 (51 35 NOLOCKSHIFT)) (117 (50 64
NOLOCKSHIFT)) (118 (61282 61283 LOCKSHIFT)) (119 (61287 61286 NOLOCKSHIFT)) (120 (61301 61302
NOLOCKSHIFT)) (121 (61351 65 LOCKSHIFT)) (122 (57 40 NOLOCKSHIFT)) (123 (175 61247 LOCKSHIFT)) (124 (
180 184 LOCKSHIFT)) (125 (172 61244 LOCKSHIFT)) (126 (61256 61257 LOCKSHIFT)) (127 (44 61250
NOLOCKSHIFT)) (128 (61298 61253 NOLOCKSHIFT)) (129 (93 61265 NOLOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (
133 (92 124 NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (102 70 LOCKSHIFT)) (137 (
61356 61362 LOCKSHIFT)) (138 (61254 61291 NOLOCKSHIFT)) (139 (98 61360 NOLOCKSHIFT)) (140 (61309 177
LOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP) (142 (46 61251 NOLOCKSHIFT)) (143 (61299 61252 NOLOCKSHIFT)) (
144 (13 13 NOLOCKSHIFT) . IGNORE) (145 (95 94 NOLOCKSHIFT)) (148 (61358 82 LOCKSHIFT)) (149 (61296
61266 NOLOCKSHIFT)) (150 (61305 61303 NOLOCKSHIFT)) (151 (61308 61267 LOCKSHIFT)) (152 (61288 72
LOCKSHIFT)) (153 (56 42 NOLOCKSHIFT)) (154 (61357 61361 NOLOCKSHIFT)) (155 (61292 61293 LOCKSHIFT)) (
156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (91 61264 NOLOCKSHIFT)) (159 (61 43
NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DANDELION) (OFFICE ((100 (61397 61381 NOLOCKSHIFT)) (101 (
61396 61380 NOLOCKSHIFT)) (102 (61398 61382 NOLOCKSHIFT)) (103 (8557 8554 NOLOCKSHIFT)) (104 (61399
61383 NOLOCKSHIFT)) (105 (61232 8743 NOLOCKSHIFT)) (106 (61346 8571 NOLOCKSHIFT)) (107 (188 86
NOLOCKSHIFT)) (108 (61402 61386 NOLOCKSHIFT)) (109 (210 8738 NOLOCKSHIFT)) (110 (61437 61438
NOLOCKSHIFT)) (111 (163 8558 NOLOCKSHIFT)) (112 (61248 63 NOLOCKSHIFT)) (115 (8 8 NOLOCKSHIFT) .
IGNORE) (116 (61395 61379 NOLOCKSHIFT)) (117 (61394 61378 NOLOCKSHIFT)) (118 (185 8553 NOLOCKSHIFT)) (
119 (176 8546 NOLOCKSHIFT)) (120 (167 8744 NOLOCKSHIFT)) (121 (97 8745 NOLOCKSHIFT)) (122 (61401 61385
NOLOCKSHIFT)) (123 (162 8570 NOLOCKSHIFT)) (124 (61437 88 NOLOCKSHIFT)) (125 (111 8569 NOLOCKSHIFT))
(126 (61289 8737 NOLOCKSHIFT)) (127 (44 60 NOLOCKSHIFT)) (128 (39 34 NOLOCKSHIFT)) (129 (93 125
NOLOCKSHIFT)) (132 (61393 61377 NOLOCKSHIFT)) (133 (92 124 NOLOCKSHIFT) . IGNORE) (134 (9 9
NOLOCKSHIFT) . IGNORE) (135 (61233 8742 NOLOCKSHIFT)) (137 (61438 67 NOLOCKSHIFT)) (138 (8739 74
NOLOCKSHIFT)) (139 (190 61436 NOLOCKSHIFT)) (140 (189 90 NOLOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP) (
142 (61249 62 NOLOCKSHIFT)) (143 (61352 58 NOLOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) . IGNORE) (145 (95
61280 NOLOCKSHIFT)) (148 (212 8574 NOLOCKSHIFT)) (149 (61354 8573 NOLOCKSHIFT)) (150 (61286 8741
NOLOCKSHIFT)) (151 (165 8572 NOLOCKSHIFT)) (152 (61368 8740 NOLOCKSHIFT)) (153 (61400 61384
NOLOCKSHIFT)) (154 (173 175 NOLOCKSHIFT)) (155 (172 174 NOLOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32
32 NOLOCKSHIFT) . IGNORE) (158 (91 123 NOLOCKSHIFT)) (159 (61406 61368 NOLOCKSHIFT)) (160 2SHIFTDOWN
. 2SHIFTUP)) DANDELION) (DVORAK ((100 (49 42 NOLOCKSHIFT)) (101 (51 41 NOLOCKSHIFT)) (102 (57 37
NOLOCKSHIFT)) (103 (46 62 NOLOCKSHIFT)) (104 (48 38 NOLOCKSHIFT)) (105 (101 69 LOCKSHIFT)) (106 (103
71 LOCKSHIFT)) (107 (107 75 LOCKSHIFT)) (108 (54 45 NOLOCKSHIFT)) (109 (116 84 LOCKSHIFT)) (110 (56 95
NOLOCKSHIFT)) (111 (108 76 LOCKSHIFT)) (112 (122 90 LOCKSHIFT)) (115 (8 8 NOLOCKSHIFT) . IGNORE) (116
(53 40 NOLOCKSHIFT)) (117 (55 35 NOLOCKSHIFT)) (118 (44 60 NOLOCKSHIFT)) (119 (63 47 NOLOCKSHIFT)) (
120 (111 79 LOCKSHIFT)) (121 (97 65 LOCKSHIFT)) (122 (52 164 NOLOCKSHIFT)) (123 (99 67 LOCKSHIFT)) (
124 (113 81 LOCKSHIFT)) (125 (114 82 LOCKSHIFT)) (126 (110 78 LOCKSHIFT)) (127 (119 87 LOCKSHIFT)) (
128 (44 186 NOLOCKSHIFT)) (129 (93 125 NOLOCKSHIFT)) (132 (33 64 NOLOCKSHIFT)) (133 (92 124
NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (117 85 LOCKSHIFT)) (137 (106 74
LOCKSHIFT)) (138 (104 72 LOCKSHIFT)) (139 (120 88 LOCKSHIFT)) (140 (59 58 NOLOCKSHIFT)) (141
1SHIFTDOWN . 1SHIFTUP) (142 (118 86 LOCKSHIFT)) (143 (115 83 LOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) .
IGNORE) (145 (169 170 NOLOCKSHIFT)) (148 (112 80 LOCKSHIFT)) (149 (121 89 LOCKSHIFT)) (150 (105 73
LOCKSHIFT)) (151 (102 70 LOCKSHIFT)) (152 (100 68 LOCKSHIFT)) (153 (50 162 NOLOCKSHIFT)) (154 (98 66
LOCKSHIFT)) (155 (109 77 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (
91 123 NOLOCKSHIFT)) (159 (61 43 NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DANDELION) (GREEK ((100 (
53 37 NOLOCKSHIFT)) (101 (52 36 NOLOCKSHIFT)) (102 (54 126 NOLOCKSHIFT)) (103 (9830 69 LOCKSHIFT)) (
104 (55 38 NOLOCKSHIFT)) (105 (9829 9797 LOCKSHIFT)) (106 (9849 9817 LOCKSHIFT)) (107 (115 9814
LOCKSHIFT)) (108 (48 41 NOLOCKSHIFT)) (109 (9837 9805 LOCKSHIFT)) (110 (45 45 NOLOCKSHIFT)) (111 (9843
9811 LOCKSHIFT)) (112 (47 63 NOLOCKSHIFT)) (115 (8 8 NOLOCKSHIFT) . IGNORE) (116 (51 35 NOLOCKSHIFT))
(117 (50 64 NOLOCKSHIFT)) (118 (9853 9821 LOCKSHIFT)) (119 (9835 9803 LOCKSHIFT)) (120 (9846 9814
LOCKSHIFT)) (121 (9825 9793 LOCKSHIFT)) (122 (57 40 NOLOCKSHIFT)) (123 (9836 9804 LOCKSHIFT)) (124 (
9851 9819 LOCKSHIFT)) (125 (9842 9810 LOCKSHIFT)) (126 (9838 9806 LOCKSHIFT)) (127 (44 60 NOLOCKSHIFT)
) (128 (39 34 NOLOCKSHIFT)) (129 (93 125 NOLOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (133 (92 124
NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (9850 9818 LOCKSHIFT)) (137 (9841 9809
LOCKSHIFT)) (138 (106 74 LOCKSHIFT)) (139 (9826 66 LOCKSHIFT)) (140 (9833 9801 LOCKSHIFT)) (141
1SHIFTDOWN . 1SHIFTUP) (142 (46 62 NOLOCKSHIFT)) (143 (59 58 NOLOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) .
IGNORE) (145 (95 94 NOLOCKSHIFT)) (148 (9845 9813 LOCKSHIFT)) (149 (9848 9816 LOCKSHIFT)) (150 (9828
9796 LOCKSHIFT)) (151 (9852 9820 LOCKSHIFT)) (152 (9834 9802 LOCKSHIFT)) (153 (56 42 NOLOCKSHIFT)) (
154 (9840 9808 LOCKSHIFT)) (155 (9839 9807 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT
) . IGNORE) (158 (91 123 NOLOCKSHIFT)) (159 (61 43 NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP))
DANDELION) (ITALIAN ((100 (53 61903 NOLOCKSHIFT)) (101 (52 61886 NOLOCKSHIFT)) (102 (54 61919
NOLOCKSHIFT)) (103 (101 69 LOCKSHIFT)) (104 (55 38 NOLOCKSHIFT)) (105 (100 68 LOCKSHIFT)) (106 (117 85
LOCKSHIFT)) (107 (118 86 LOCKSHIFT)) (108 (48 41 NOLOCKSHIFT)) (109 (107 75 LOCKSHIFT)) (110 (45 45
NOLOCKSHIFT)) (111 (112 80 LOCKSHIFT)) (112 (204 63 NOLOCKSHIFT)) (115 (8 8 NOLOCKSHIFT) . IGNORE) (
116 (51 61872 NOLOCKSHIFT)) (117 (50 61858 NOLOCKSHIFT)) (118 (119 87 LOCKSHIFT)) (119 (113 81
LOCKSHIFT)) (120 (115 83 LOCKSHIFT)) (121 (97 65 LOCKSHIFT)) (122 (57 40 NOLOCKSHIFT)) (123 (105 73
LOCKSHIFT)) (124 (120 88 LOCKSHIFT)) (125 (111 79 LOCKSHIFT)) (126 (108 76 LOCKSHIFT)) (127 (44 171
NOLOCKSHIFT)) (128 (39 186 NOLOCKSHIFT)) (129 (93 125 NOLOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (133 (92
124 NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (102 70 LOCKSHIFT)) (137 (99 67
LOCKSHIFT)) (138 (106 74 LOCKSHIFT)) (139 (98 66 LOCKSHIFT)) (140 (122 90 LOCKSHIFT)) (141 1SHIFTDOWN
. 1SHIFTUP) (142 (46 187 NOLOCKSHIFT)) (143 (59 58 NOLOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) . IGNORE) (
145 (95 170 NOLOCKSHIFT)) (148 (114 82 LOCKSHIFT)) (149 (116 84 LOCKSHIFT)) (150 (103 71 LOCKSHIFT)) (
151 (121 89 LOCKSHIFT)) (152 (104 72 LOCKSHIFT)) (153 (56 42 NOLOCKSHIFT)) (154 (110 78 LOCKSHIFT)) (
155 (109 77 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (91 123
NOLOCKSHIFT)) (159 (61 43 NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DANDELION) (SPANISH ((100 (53
61904 NOLOCKSHIFT)) (101 (52 61887 NOLOCKSHIFT)) (102 (54 61920 NOLOCKSHIFT)) (103 (101 69 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT)) (105 (100 68 LOCKSHIFT)) (106 (117 85 LOCKSHIFT)) (107 (118 86 LOCKSHIFT))
(108 (48 41 NOLOCKSHIFT)) (109 (107 75 LOCKSHIFT)) (110 (45 45 NOLOCKSHIFT)) (111 (112 80 LOCKSHIFT))
(112 (204 63 NOLOCKSHIFT)) (115 (8 8 NOLOCKSHIFT) . IGNORE) (116 (51 61873 NOLOCKSHIFT)) (117 (50
61858 NOLOCKSHIFT)) (118 (119 87 LOCKSHIFT)) (119 (113 81 LOCKSHIFT)) (120 (115 83 LOCKSHIFT)) (121 (
97 65 LOCKSHIFT)) (122 (57 40 NOLOCKSHIFT)) (123 (105 73 LOCKSHIFT)) (124 (120 88 LOCKSHIFT)) (125 (
111 79 LOCKSHIFT)) (126 (108 76 LOCKSHIFT)) (127 (44 171 NOLOCKSHIFT)) (128 (59 58 NOLOCKSHIFT)) (129
(203 187 NOLOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (133 (92 124 NOLOCKSHIFT) . IGNORE) (134 (9 9
NOLOCKSHIFT) . IGNORE) (135 (102 70 LOCKSHIFT)) (137 (99 67 LOCKSHIFT)) (138 (106 74 LOCKSHIFT)) (139
(98 66 LOCKSHIFT)) (140 (122 90 LOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP) (142 (46 187 NOLOCKSHIFT)) (
143 (61900 61772 LOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) . IGNORE) (145 (161 191 NOLOCKSHIFT)) (148 (114
82 LOCKSHIFT)) (149 (116 84 LOCKSHIFT)) (150 (103 71 LOCKSHIFT)) (151 (121 89 LOCKSHIFT)) (152 (104 72
LOCKSHIFT)) (153 (56 61925 NOLOCKSHIFT)) (154 (110 78 LOCKSHIFT)) (155 (109 77 LOCKSHIFT)) (156
LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (44 171 NOLOCKSHIFT)) (159 (61 43
NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DANDELION) (FRENCH ((100 (53 61905 NOLOCKSHIFT)) (101 (52
61888 NOLOCKSHIFT)) (102 (54 61921 NOLOCKSHIFT)) (103 (101 69 LOCKSHIFT)) (104 (55 38 NOLOCKSHIFT)) (
105 (100 68 LOCKSHIFT)) (106 (117 85 LOCKSHIFT)) (107 (118 86 LOCKSHIFT)) (108 (48 41 NOLOCKSHIFT)) (
109 (107 75 LOCKSHIFT)) (110 (45 45 NOLOCKSHIFT)) (111 (112 80 LOCKSHIFT)) (112 (204 63 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE) (116 (51 61874 NOLOCKSHIFT)) (117 (50 61859 NOLOCKSHIFT)) (118 (119
87 LOCKSHIFT)) (119 (113 81 LOCKSHIFT)) (120 (115 83 LOCKSHIFT)) (121 (97 65 LOCKSHIFT)) (122 (57 40
NOLOCKSHIFT)) (123 (105 73 LOCKSHIFT)) (124 (120 88 LOCKSHIFT)) (125 (111 79 LOCKSHIFT)) (126 (108 76
LOCKSHIFT)) (127 (44 171 NOLOCKSHIFT)) (128 (39 61857 NOLOCKSHIFT)) (129 (61872 61892 LOCKSHIFT)) (132
(49 33 NOLOCKSHIFT)) (133 (92 124 NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (102
70 LOCKSHIFT)) (137 (99 67 LOCKSHIFT)) (138 (106 74 LOCKSHIFT)) (139 (98 66 LOCKSHIFT)) (140 (122 90
LOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP) (142 (46 187 NOLOCKSHIFT)) (143 (59 58 NOLOCKSHIFT)) (144 (13
13 NOLOCKSHIFT) . IGNORE) (145 (61869 61741 LOCKSHIFT)) (148 (114 82 LOCKSHIFT)) (149 (116 84
LOCKSHIFT)) (150 (103 71 LOCKSHIFT)) (151 (121 89 LOCKSHIFT)) (152 (104 72 LOCKSHIFT)) (153 (56 61919
NOLOCKSHIFT)) (154 (110 78 LOCKSHIFT)) (155 (109 77 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32
NOLOCKSHIFT) . IGNORE) (158 (61873 61877 LOCKSHIFT)) (159 (61 43 NOLOCKSHIFT)) (160 2SHIFTDOWN .
2SHIFTUP)) DANDELION) (GERMAN ((100 (53 37 NOLOCKSHIFT)) (101 (52 36 NOLOCKSHIFT)) (102 (54 126
NOLOCKSHIFT)) (103 (101 69 LOCKSHIFT)) (104 (55 38 NOLOCKSHIFT)) (105 (100 68 LOCKSHIFT)) (106 (117 85
LOCKSHIFT)) (107 (118 86 LOCKSHIFT)) (108 (48 41 NOLOCKSHIFT)) (109 (107 75 LOCKSHIFT)) (110 (45 45
NOLOCKSHIFT)) (111 (112 80 LOCKSHIFT)) (112 (251 63 NOLOCKSHIFT)) (115 (8 8 NOLOCKSHIFT) . IGNORE) (
116 (51 35 NOLOCKSHIFT)) (117 (50 64 NOLOCKSHIFT)) (118 (119 87 LOCKSHIFT)) (119 (113 81 LOCKSHIFT)) (
120 (115 83 LOCKSHIFT)) (121 (97 65 LOCKSHIFT)) (122 (57 40 NOLOCKSHIFT)) (123 (105 73 LOCKSHIFT)) (
124 (120 88 LOCKSHIFT)) (125 (111 79 LOCKSHIFT)) (126 (108 76 LOCKSHIFT)) (127 (44 60 NOLOCKSHIFT)) (
128 (39 34 NOLOCKSHIFT)) (129 (61863 61735 LOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (133 (92 124
NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (102 70 LOCKSHIFT)) (137 (99 67 LOCKSHIFT
)) (138 (106 74 LOCKSHIFT)) (139 (98 66 LOCKSHIFT)) (140 (122 90 LOCKSHIFT)) (141 1SHIFTDOWN .
1SHIFTUP) (142 (46 62 NOLOCKSHIFT)) (143 (59 58 NOLOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) . IGNORE) (145
(95 94 NOLOCKSHIFT)) (148 (114 82 LOCKSHIFT)) (149 (116 84 LOCKSHIFT)) (150 (103 71 LOCKSHIFT)) (151 (
121 89 LOCKSHIFT)) (152 (104 72 LOCKSHIFT)) (153 (56 42 NOLOCKSHIFT)) (154 (110 78 LOCKSHIFT)) (155 (
109 77 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (61908 61780
LOCKSHIFT)) (159 (61925 61797 LOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DANDELION) (STANDARD-RUSSIAN ((
100 (34 52 NOLOCKSHIFT)) (101 (47 51 NOLOCKSHIFT)) (102 (58 53 NOLOCKSHIFT)) (103 (10085 10037
LOCKSHIFT)) (104 (44 54 NOLOCKSHIFT)) (105 (10067 10019 LOCKSHIFT)) (106 (10068 10020 LOCKSHIFT)) (107
(10078 10030 LOCKSHIFT)) (108 (63 57 NOLOCKSHIFT)) (109 (10077 10029 LOCKSHIFT)) (110 (37 48
NOLOCKSHIFT)) (111 (10073 10025 LOCKSHIFT)) (112 (10071 10023 LOCKSHIFT)) (115 (8 8 NOLOCKSHIFT) .
IGNORE) (116 (45 50 NOLOCKSHIFT)) (117 (61352 49 NOLOCKSHIFT)) (118 (10088 10040 LOCKSHIFT)) (119 (
10075 10027 LOCKSHIFT)) (120 (10093 10045 LOCKSHIFT)) (121 (10086 10038 LOCKSHIFT)) (122 (95 56
NOLOCKSHIFT)) (123 (10090 10042 LOCKSHIFT)) (124 (10089 10041 LOCKSHIFT)) (125 (10091 10043 LOCKSHIFT)
) (126 (10069 10021 LOCKSHIFT)) (127 (10066 10018 LOCKSHIFT)) (128 (10095 10047 LOCKSHIFT)) (129 (
10092 10044 LOCKSHIFT)) (132 (167 43 NOLOCKSHIFT)) (133 (92 124 NOLOCKSHIFT) . IGNORE) (134 (9 9
NOLOCKSHIFT) . IGNORE) (135 (10065 10017 LOCKSHIFT)) (137 (10083 10035 LOCKSHIFT)) (138 (10080 10032
LOCKSHIFT)) (139 (10074 10026 LOCKSHIFT)) (140 (10097 10049 LOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP) (
142 (10096 10048 LOCKSHIFT)) (143 (10072 10024 LOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) . IGNORE) (145 (41
40 NOLOCKSHIFT)) (148 (10076 10028 LOCKSHIFT)) (149 (10070 10022 LOCKSHIFT)) (150 (10081 10033
LOCKSHIFT)) (151 (10079 10031 LOCKSHIFT)) (152 (10082 10034 LOCKSHIFT)) (153 (46 55 NOLOCKSHIFT)) (154
(10084 10036 LOCKSHIFT)) (155 (10094 10046 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32
NOLOCKSHIFT) . IGNORE) (158 (10087 10039 LOCKSHIFT)) (159 (33 61 NOLOCKSHIFT)) (160 2SHIFTDOWN .
2SHIFTUP)) DANDELION))

View File

@@ -1,171 +0,0 @@
((EUROPEAN ((100 (53 197 NOLOCKSHIFT)) (101 (52 196 NOLOCKSHIFT)) (102 (54 198 NOLOCKSHIFT)) (103 (
61887 61759 LOCKSHIFT)) (104 (55 199 NOLOCKSHIFT)) (105 (61888 61760 LOCKSHIFT)) (106 (61872 61744
LOCKSHIFT)) (107 (61860 61732 LOCKSHIFT)) (108 (48 126 NOLOCKSHIFT)) (109 (61892 61764 LOCKSHIFT)) (
110 (203 207 NOLOCKSHIFT)) (111 (61919 61791 LOCKSHIFT)) (112 (47 191 NOLOCKSHIFT)) (115 (1 1
NOLOCKSHIFT) . IGNORE) (116 (51 195 NOLOCKSHIFT)) (117 (50 194 NOLOCKSHIFT)) (118 (61873 61745
LOCKSHIFT)) (119 (61858 61730 LOCKSHIFT)) (120 (61874 61746 LOCKSHIFT)) (121 (61859 61731 LOCKSHIFT))
(122 (57 202 NOLOCKSHIFT)) (123 (61886 61758 LOCKSHIFT)) (124 (61864 61736 LOCKSHIFT)) (125 (61903
61775 LOCKSHIFT)) (126 (61908 61780 LOCKSHIFT)) (127 (241 225 LOCKSHIFT)) (128 (187 170 LOCKSHIFT)) (
129 (249 233 LOCKSHIFT)) (132 (49 193 NOLOCKSHIFT)) (133 (92 124 NOLOCKSHIFT) . IGNORE) (134 (9 9
NOLOCKSHIFT) . IGNORE) (135 (61905 61777 LOCKSHIFT)) (137 (61869 61741 LOCKSHIFT)) (138 (61877 61749
LOCKSHIFT)) (139 (61906 61778 LOCKSHIFT)) (140 (251 90 LOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP) (142 (
250 234 LOCKSHIFT)) (143 (59 58 LOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) . IGNORE) (145 (171 186 LOCKSHIFT
)) (148 (61904 61776 LOCKSHIFT)) (149 (61920 61792 LOCKSHIFT)) (150 (61921 61793 LOCKSHIFT)) (151 (
61857 61729 LOCKSHIFT)) (152 (61863 61735 LOCKSHIFT)) (153 (56 200 NOLOCKSHIFT)) (154 (61900 61772
LOCKSHIFT)) (155 (239 77 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (
246 230 LOCKSHIFT)) (159 (207 176 NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DORADO) (logic ((100 (
53 37 NOLOCKSHIFT)) (101 (52 164 NOLOCKSHIFT)) (102 (54 126 NOLOCKSHIFT)) (103 (61258 61260
NOLOCKSHIFT)) (104 (55 38 NOLOCKSHIFT)) (105 (61292 61293 NOLOCKSHIFT)) (106 (61271 61270 NOLOCKSHIFT)
) (107 (61284 61285 NOLOCKSHIFT)) (108 (48 41 NOLOCKSHIFT)) (109 (61307 61306 NOLOCKSHIFT)) (110 (45
177 NOLOCKSHIFT)) (111 (61269 61268 LOCKSHIFT)) (112 (172 174 NOLOCKSHIFT)) (115 (1 1 NOLOCKSHIFT) .
IGNORE) (116 (51 35 NOLOCKSHIFT)) (117 (50 64 NOLOCKSHIFT)) (118 (61240 61241 NOLOCKSHIFT)) (119 (
61234 61235 NOLOCKSHIFT)) (120 (61266 61262 NOLOCKSHIFT)) (121 (61365 61365 NOLOCKSHIFT)) (122 (57 40
NOLOCKSHIFT)) (123 (61275 61274 NOLOCKSHIFT)) (124 (61300 61299 NOLOCKSHIFT)) (125 (61273 61272
NOLOCKSHIFT)) (126 (61282 61283 NOLOCKSHIFT)) (127 (61256 61257 NOLOCKSHIFT)) (128 (61356 61356
NOLOCKSHIFT)) (129 (93 125 NOLOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (61250 61251 NOLOCKSHIFT)) (137 (61298 61297 NOLOCKSHIFT)) (138
(61305 61303 NOLOCKSHIFT)) (139 (61265 61264 NOLOCKSHIFT)) (140 (61364 61364 NOLOCKSHIFT)) (141
1SHIFTDOWN . 1SHIFTUP) (142 (61281 233 NOLOCKSHIFT)) (143 (61351 61351 NOLOCKSHIFT)) (144 (13 13
NOLOCKSHIFT) . IGNORE) (145 (61357 61357 NOLOCKSHIFT)) (148 (61279 61278 NOLOCKSHIFT)) (149 (61239
61238 NOLOCKSHIFT)) (150 (61290 61290 NOLOCKSHIFT)) (151 (61263 61261 NOLOCKSHIFT)) (152 (61295 61295
NOLOCKSHIFT)) (153 (56 42 NOLOCKSHIFT)) (154 (61252 61253 NOLOCKSHIFT)) (155 (61254 61255 NOLOCKSHIFT)
) (156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (91 123 NOLOCKSHIFT)) (159 (61 43
NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DORADO) (MATH ((100 (53 37 NOLOCKSHIFT)) (101 (52 36
NOLOCKSHIFT)) (102 (54 126 NOLOCKSHIFT)) (103 (61284 61285 LOCKSHIFT)) (104 (55 38 NOLOCKSHIFT)) (105
(100 68 LOCKSHIFT)) (106 (174 61245 NOLOCKSHIFT)) (107 (61369 61363 NOLOCKSHIFT)) (108 (48 41
NOLOCKSHIFT)) (109 (61254 61255 NOLOCKSHIFT)) (110 (45 45 NOLOCKSHIFT)) (111 (173 61246 LOCKSHIFT)) (
112 (47 61300 NOLOCKSHIFT)) (115 (1 1 NOLOCKSHIFT) . IGNORE) (116 (51 35 NOLOCKSHIFT)) (117 (50 64
NOLOCKSHIFT)) (118 (61282 61283 LOCKSHIFT)) (119 (61287 61286 NOLOCKSHIFT)) (120 (61301 61302
NOLOCKSHIFT)) (121 (61351 65 LOCKSHIFT)) (122 (57 40 NOLOCKSHIFT)) (123 (175 61247 LOCKSHIFT)) (124 (
180 184 LOCKSHIFT)) (125 (172 61244 LOCKSHIFT)) (126 (61256 61257 LOCKSHIFT)) (127 (44 61250
NOLOCKSHIFT)) (128 (61298 61253 NOLOCKSHIFT)) (129 (93 61265 NOLOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (
133 (92 124 NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (102 70 LOCKSHIFT)) (137 (
61356 61362 LOCKSHIFT)) (138 (61254 61291 NOLOCKSHIFT)) (139 (98 61360 NOLOCKSHIFT)) (140 (61309 177
LOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP) (142 (46 61251 NOLOCKSHIFT)) (143 (61299 61252 NOLOCKSHIFT)) (
144 (13 13 NOLOCKSHIFT) . IGNORE) (145 (95 94 NOLOCKSHIFT)) (148 (61358 82 LOCKSHIFT)) (149 (61296
61266 NOLOCKSHIFT)) (150 (61305 61303 NOLOCKSHIFT)) (151 (61308 61267 LOCKSHIFT)) (152 (61288 72
LOCKSHIFT)) (153 (56 42 NOLOCKSHIFT)) (154 (61357 61361 NOLOCKSHIFT)) (155 (61292 61293 LOCKSHIFT)) (
156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (91 61264 NOLOCKSHIFT)) (159 (61 43
NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DORADO) (OFFICE ((100 (61397 61381 NOLOCKSHIFT)) (101 (
61396 61380 NOLOCKSHIFT)) (102 (61398 61382 NOLOCKSHIFT)) (103 (8557 8554 NOLOCKSHIFT)) (104 (61399
61383 NOLOCKSHIFT)) (105 (61232 8743 NOLOCKSHIFT)) (106 (61346 8571 NOLOCKSHIFT)) (107 (188 86
NOLOCKSHIFT)) (108 (61402 61386 NOLOCKSHIFT)) (109 (210 8738 NOLOCKSHIFT)) (110 (61437 61438
NOLOCKSHIFT)) (111 (163 8558 NOLOCKSHIFT)) (112 (61248 63 NOLOCKSHIFT)) (115 (1 1 NOLOCKSHIFT) .
IGNORE) (116 (61395 61379 NOLOCKSHIFT)) (117 (61394 61378 NOLOCKSHIFT)) (118 (185 8553 NOLOCKSHIFT)) (
119 (176 8546 NOLOCKSHIFT)) (120 (167 8744 NOLOCKSHIFT)) (121 (97 8745 NOLOCKSHIFT)) (122 (61401 61385
NOLOCKSHIFT)) (123 (162 8570 NOLOCKSHIFT)) (124 (61437 88 NOLOCKSHIFT)) (125 (111 8569 NOLOCKSHIFT))
(126 (61289 8737 NOLOCKSHIFT)) (127 (44 60 NOLOCKSHIFT)) (128 (39 34 NOLOCKSHIFT)) (129 (93 125
NOLOCKSHIFT)) (132 (61393 61377 NOLOCKSHIFT)) (133 (92 124 NOLOCKSHIFT) . IGNORE) (134 (9 9
NOLOCKSHIFT) . IGNORE) (135 (61233 8742 NOLOCKSHIFT)) (137 (61438 67 NOLOCKSHIFT)) (138 (8739 74
NOLOCKSHIFT)) (139 (190 61436 NOLOCKSHIFT)) (140 (189 90 NOLOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP) (
142 (61249 62 NOLOCKSHIFT)) (143 (61352 58 NOLOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) . IGNORE) (145 (95
61280 NOLOCKSHIFT)) (148 (212 8574 NOLOCKSHIFT)) (149 (61354 8573 NOLOCKSHIFT)) (150 (61286 8741
NOLOCKSHIFT)) (151 (165 8572 NOLOCKSHIFT)) (152 (61368 8740 NOLOCKSHIFT)) (153 (61400 61384
NOLOCKSHIFT)) (154 (173 175 NOLOCKSHIFT)) (155 (172 174 NOLOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32
32 NOLOCKSHIFT) . IGNORE) (158 (91 123 NOLOCKSHIFT)) (159 (61406 61368 NOLOCKSHIFT)) (160 2SHIFTDOWN
. 2SHIFTUP)) DORADO) (DVORAK ((100 (49 42 NOLOCKSHIFT)) (101 (51 41 NOLOCKSHIFT)) (102 (57 37
NOLOCKSHIFT)) (103 (46 62 NOLOCKSHIFT)) (104 (48 38 NOLOCKSHIFT)) (105 (101 69 LOCKSHIFT)) (106 (103
71 LOCKSHIFT)) (107 (107 75 LOCKSHIFT)) (108 (54 45 NOLOCKSHIFT)) (109 (116 84 LOCKSHIFT)) (110 (56 95
NOLOCKSHIFT)) (111 (108 76 LOCKSHIFT)) (112 (122 90 LOCKSHIFT)) (115 (1 1 NOLOCKSHIFT) . IGNORE) (116
(53 40 NOLOCKSHIFT)) (117 (55 35 NOLOCKSHIFT)) (118 (44 60 NOLOCKSHIFT)) (119 (63 47 NOLOCKSHIFT)) (
120 (111 79 LOCKSHIFT)) (121 (97 65 LOCKSHIFT)) (122 (52 164 NOLOCKSHIFT)) (123 (99 67 LOCKSHIFT)) (
124 (113 81 LOCKSHIFT)) (125 (114 82 LOCKSHIFT)) (126 (110 78 LOCKSHIFT)) (127 (119 87 LOCKSHIFT)) (
128 (44 186 NOLOCKSHIFT)) (129 (93 125 NOLOCKSHIFT)) (132 (33 64 NOLOCKSHIFT)) (133 (92 124
NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (117 85 LOCKSHIFT)) (137 (106 74
LOCKSHIFT)) (138 (104 72 LOCKSHIFT)) (139 (120 88 LOCKSHIFT)) (140 (59 58 NOLOCKSHIFT)) (141
1SHIFTDOWN . 1SHIFTUP) (142 (118 86 LOCKSHIFT)) (143 (115 83 LOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) .
IGNORE) (145 (169 170 NOLOCKSHIFT)) (148 (112 80 LOCKSHIFT)) (149 (121 89 LOCKSHIFT)) (150 (105 73
LOCKSHIFT)) (151 (102 70 LOCKSHIFT)) (152 (100 68 LOCKSHIFT)) (153 (50 162 NOLOCKSHIFT)) (154 (98 66
LOCKSHIFT)) (155 (109 77 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (
91 123 NOLOCKSHIFT)) (159 (61 43 NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DORADO) (GREEK ((100 (
53 37 NOLOCKSHIFT)) (101 (52 36 NOLOCKSHIFT)) (102 (54 126 NOLOCKSHIFT)) (103 (9830 69 LOCKSHIFT)) (
104 (55 38 NOLOCKSHIFT)) (105 (9829 9797 LOCKSHIFT)) (106 (9849 9817 LOCKSHIFT)) (107 (115 9814
LOCKSHIFT)) (108 (48 41 NOLOCKSHIFT)) (109 (9837 9805 LOCKSHIFT)) (110 (45 45 NOLOCKSHIFT)) (111 (9843
9811 LOCKSHIFT)) (112 (47 63 NOLOCKSHIFT)) (115 (1 1 NOLOCKSHIFT) . IGNORE) (116 (51 35 NOLOCKSHIFT))
(117 (50 64 NOLOCKSHIFT)) (118 (9853 9821 LOCKSHIFT)) (119 (9835 9803 LOCKSHIFT)) (120 (9846 9814
LOCKSHIFT)) (121 (9825 9793 LOCKSHIFT)) (122 (57 40 NOLOCKSHIFT)) (123 (9836 9804 LOCKSHIFT)) (124 (
9851 9819 LOCKSHIFT)) (125 (9842 9810 LOCKSHIFT)) (126 (9838 9806 LOCKSHIFT)) (127 (44 60 NOLOCKSHIFT)
) (128 (39 34 NOLOCKSHIFT)) (129 (93 125 NOLOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (133 (92 124
NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (9850 9818 LOCKSHIFT)) (137 (9841 9809
LOCKSHIFT)) (138 (106 74 LOCKSHIFT)) (139 (9826 66 LOCKSHIFT)) (140 (9833 9801 LOCKSHIFT)) (141
1SHIFTDOWN . 1SHIFTUP) (142 (46 62 NOLOCKSHIFT)) (143 (59 58 NOLOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) .
IGNORE) (145 (95 94 NOLOCKSHIFT)) (148 (9845 9813 LOCKSHIFT)) (149 (9848 9816 LOCKSHIFT)) (150 (9828
9796 LOCKSHIFT)) (151 (9852 9820 LOCKSHIFT)) (152 (9834 9802 LOCKSHIFT)) (153 (56 42 NOLOCKSHIFT)) (
154 (9840 9808 LOCKSHIFT)) (155 (9839 9807 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT
) . IGNORE) (158 (91 123 NOLOCKSHIFT)) (159 (61 43 NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP))
DORADO) (ITALIAN ((100 (53 61903 NOLOCKSHIFT)) (101 (52 61886 NOLOCKSHIFT)) (102 (54 61919
NOLOCKSHIFT)) (103 (101 69 LOCKSHIFT)) (104 (55 38 NOLOCKSHIFT)) (105 (100 68 LOCKSHIFT)) (106 (117 85
LOCKSHIFT)) (107 (118 86 LOCKSHIFT)) (108 (48 41 NOLOCKSHIFT)) (109 (107 75 LOCKSHIFT)) (110 (45 45
NOLOCKSHIFT)) (111 (112 80 LOCKSHIFT)) (112 (204 63 NOLOCKSHIFT)) (115 (1 1 NOLOCKSHIFT) . IGNORE) (
116 (51 61872 NOLOCKSHIFT)) (117 (50 61858 NOLOCKSHIFT)) (118 (119 87 LOCKSHIFT)) (119 (113 81
LOCKSHIFT)) (120 (115 83 LOCKSHIFT)) (121 (97 65 LOCKSHIFT)) (122 (57 40 NOLOCKSHIFT)) (123 (105 73
LOCKSHIFT)) (124 (120 88 LOCKSHIFT)) (125 (111 79 LOCKSHIFT)) (126 (108 76 LOCKSHIFT)) (127 (44 171
NOLOCKSHIFT)) (128 (39 186 NOLOCKSHIFT)) (129 (93 125 NOLOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (133 (92
124 NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (102 70 LOCKSHIFT)) (137 (99 67
LOCKSHIFT)) (138 (106 74 LOCKSHIFT)) (139 (98 66 LOCKSHIFT)) (140 (122 90 LOCKSHIFT)) (141 1SHIFTDOWN
. 1SHIFTUP) (142 (46 187 NOLOCKSHIFT)) (143 (59 58 NOLOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) . IGNORE) (
145 (95 170 NOLOCKSHIFT)) (148 (114 82 LOCKSHIFT)) (149 (116 84 LOCKSHIFT)) (150 (103 71 LOCKSHIFT)) (
151 (121 89 LOCKSHIFT)) (152 (104 72 LOCKSHIFT)) (153 (56 42 NOLOCKSHIFT)) (154 (110 78 LOCKSHIFT)) (
155 (109 77 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (91 123
NOLOCKSHIFT)) (159 (61 43 NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DORADO) (SPANISH ((100 (53
61904 NOLOCKSHIFT)) (101 (52 61887 NOLOCKSHIFT)) (102 (54 61920 NOLOCKSHIFT)) (103 (101 69 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT)) (105 (100 68 LOCKSHIFT)) (106 (117 85 LOCKSHIFT)) (107 (118 86 LOCKSHIFT))
(108 (48 41 NOLOCKSHIFT)) (109 (107 75 LOCKSHIFT)) (110 (45 45 NOLOCKSHIFT)) (111 (112 80 LOCKSHIFT))
(112 (204 63 NOLOCKSHIFT)) (115 (1 1 NOLOCKSHIFT) . IGNORE) (116 (51 61873 NOLOCKSHIFT)) (117 (50
61858 NOLOCKSHIFT)) (118 (119 87 LOCKSHIFT)) (119 (113 81 LOCKSHIFT)) (120 (115 83 LOCKSHIFT)) (121 (
97 65 LOCKSHIFT)) (122 (57 40 NOLOCKSHIFT)) (123 (105 73 LOCKSHIFT)) (124 (120 88 LOCKSHIFT)) (125 (
111 79 LOCKSHIFT)) (126 (108 76 LOCKSHIFT)) (127 (44 171 NOLOCKSHIFT)) (128 (59 58 NOLOCKSHIFT)) (129
(203 187 NOLOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (133 (92 124 NOLOCKSHIFT) . IGNORE) (134 (9 9
NOLOCKSHIFT) . IGNORE) (135 (102 70 LOCKSHIFT)) (137 (99 67 LOCKSHIFT)) (138 (106 74 LOCKSHIFT)) (139
(98 66 LOCKSHIFT)) (140 (122 90 LOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP) (142 (46 187 NOLOCKSHIFT)) (
143 (61900 61772 LOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) . IGNORE) (145 (161 191 NOLOCKSHIFT)) (148 (114
82 LOCKSHIFT)) (149 (116 84 LOCKSHIFT)) (150 (103 71 LOCKSHIFT)) (151 (121 89 LOCKSHIFT)) (152 (104 72
LOCKSHIFT)) (153 (56 61925 NOLOCKSHIFT)) (154 (110 78 LOCKSHIFT)) (155 (109 77 LOCKSHIFT)) (156
LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (44 171 NOLOCKSHIFT)) (159 (61 43
NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DORADO) (FRENCH ((100 (53 61905 NOLOCKSHIFT)) (101 (52
61888 NOLOCKSHIFT)) (102 (54 61921 NOLOCKSHIFT)) (103 (101 69 LOCKSHIFT)) (104 (55 38 NOLOCKSHIFT)) (
105 (100 68 LOCKSHIFT)) (106 (117 85 LOCKSHIFT)) (107 (118 86 LOCKSHIFT)) (108 (48 41 NOLOCKSHIFT)) (
109 (107 75 LOCKSHIFT)) (110 (45 45 NOLOCKSHIFT)) (111 (112 80 LOCKSHIFT)) (112 (204 63 NOLOCKSHIFT))
(115 (1 1 NOLOCKSHIFT) . IGNORE) (116 (51 61874 NOLOCKSHIFT)) (117 (50 61859 NOLOCKSHIFT)) (118 (119
87 LOCKSHIFT)) (119 (113 81 LOCKSHIFT)) (120 (115 83 LOCKSHIFT)) (121 (97 65 LOCKSHIFT)) (122 (57 40
NOLOCKSHIFT)) (123 (105 73 LOCKSHIFT)) (124 (120 88 LOCKSHIFT)) (125 (111 79 LOCKSHIFT)) (126 (108 76
LOCKSHIFT)) (127 (44 171 NOLOCKSHIFT)) (128 (39 61857 NOLOCKSHIFT)) (129 (61872 61892 LOCKSHIFT)) (132
(49 33 NOLOCKSHIFT)) (133 (92 124 NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (102
70 LOCKSHIFT)) (137 (99 67 LOCKSHIFT)) (138 (106 74 LOCKSHIFT)) (139 (98 66 LOCKSHIFT)) (140 (122 90
LOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP) (142 (46 187 NOLOCKSHIFT)) (143 (59 58 NOLOCKSHIFT)) (144 (13
13 NOLOCKSHIFT) . IGNORE) (145 (61869 61741 LOCKSHIFT)) (148 (114 82 LOCKSHIFT)) (149 (116 84
LOCKSHIFT)) (150 (103 71 LOCKSHIFT)) (151 (121 89 LOCKSHIFT)) (152 (104 72 LOCKSHIFT)) (153 (56 61919
NOLOCKSHIFT)) (154 (110 78 LOCKSHIFT)) (155 (109 77 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32
NOLOCKSHIFT) . IGNORE) (158 (61873 61877 LOCKSHIFT)) (159 (61 43 NOLOCKSHIFT)) (160 2SHIFTDOWN .
2SHIFTUP)) DORADO) (GERMAN ((100 (53 37 NOLOCKSHIFT)) (101 (52 36 NOLOCKSHIFT)) (102 (54 126
NOLOCKSHIFT)) (103 (101 69 LOCKSHIFT)) (104 (55 38 NOLOCKSHIFT)) (105 (100 68 LOCKSHIFT)) (106 (117 85
LOCKSHIFT)) (107 (118 86 LOCKSHIFT)) (108 (48 41 NOLOCKSHIFT)) (109 (107 75 LOCKSHIFT)) (110 (45 45
NOLOCKSHIFT)) (111 (112 80 LOCKSHIFT)) (112 (251 63 NOLOCKSHIFT)) (115 (1 1 NOLOCKSHIFT) . IGNORE) (
116 (51 35 NOLOCKSHIFT)) (117 (50 64 NOLOCKSHIFT)) (118 (119 87 LOCKSHIFT)) (119 (113 81 LOCKSHIFT)) (
120 (115 83 LOCKSHIFT)) (121 (97 65 LOCKSHIFT)) (122 (57 40 NOLOCKSHIFT)) (123 (105 73 LOCKSHIFT)) (
124 (120 88 LOCKSHIFT)) (125 (111 79 LOCKSHIFT)) (126 (108 76 LOCKSHIFT)) (127 (44 60 NOLOCKSHIFT)) (
128 (39 34 NOLOCKSHIFT)) (129 (61863 61735 LOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (133 (92 124
NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (102 70 LOCKSHIFT)) (137 (99 67 LOCKSHIFT
)) (138 (106 74 LOCKSHIFT)) (139 (98 66 LOCKSHIFT)) (140 (122 90 LOCKSHIFT)) (141 1SHIFTDOWN .
1SHIFTUP) (142 (46 62 NOLOCKSHIFT)) (143 (59 58 NOLOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) . IGNORE) (145
(95 94 NOLOCKSHIFT)) (148 (114 82 LOCKSHIFT)) (149 (116 84 LOCKSHIFT)) (150 (103 71 LOCKSHIFT)) (151 (
121 89 LOCKSHIFT)) (152 (104 72 LOCKSHIFT)) (153 (56 42 NOLOCKSHIFT)) (154 (110 78 LOCKSHIFT)) (155 (
109 77 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (61908 61780
LOCKSHIFT)) (159 (61925 61797 LOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DORADO) (STANDARD-RUSSIAN ((
100 (34 52 NOLOCKSHIFT)) (101 (47 51 NOLOCKSHIFT)) (102 (58 53 NOLOCKSHIFT)) (103 (10085 10037
LOCKSHIFT)) (104 (44 54 NOLOCKSHIFT)) (105 (10067 10019 LOCKSHIFT)) (106 (10068 10020 LOCKSHIFT)) (107
(10078 10030 LOCKSHIFT)) (108 (63 57 NOLOCKSHIFT)) (109 (10077 10029 LOCKSHIFT)) (110 (37 48
NOLOCKSHIFT)) (111 (10073 10025 LOCKSHIFT)) (112 (10071 10023 LOCKSHIFT)) (115 (1 1 NOLOCKSHIFT) .
IGNORE) (116 (45 50 NOLOCKSHIFT)) (117 (61352 49 NOLOCKSHIFT)) (118 (10088 10040 LOCKSHIFT)) (119 (
10075 10027 LOCKSHIFT)) (120 (10093 10045 LOCKSHIFT)) (121 (10086 10038 LOCKSHIFT)) (122 (95 56
NOLOCKSHIFT)) (123 (10090 10042 LOCKSHIFT)) (124 (10089 10041 LOCKSHIFT)) (125 (10091 10043 LOCKSHIFT)
) (126 (10069 10021 LOCKSHIFT)) (127 (10066 10018 LOCKSHIFT)) (128 (10095 10047 LOCKSHIFT)) (129 (
10092 10044 LOCKSHIFT)) (132 (167 43 NOLOCKSHIFT)) (133 (92 124 NOLOCKSHIFT) . IGNORE) (134 (9 9
NOLOCKSHIFT) . IGNORE) (135 (10065 10017 LOCKSHIFT)) (137 (10083 10035 LOCKSHIFT)) (138 (10080 10032
LOCKSHIFT)) (139 (10074 10026 LOCKSHIFT)) (140 (10097 10049 LOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP) (
142 (10096 10048 LOCKSHIFT)) (143 (10072 10024 LOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) . IGNORE) (145 (41
40 NOLOCKSHIFT)) (148 (10076 10028 LOCKSHIFT)) (149 (10070 10022 LOCKSHIFT)) (150 (10081 10033
LOCKSHIFT)) (151 (10079 10031 LOCKSHIFT)) (152 (10082 10034 LOCKSHIFT)) (153 (46 55 NOLOCKSHIFT)) (154
(10084 10036 LOCKSHIFT)) (155 (10094 10046 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32
NOLOCKSHIFT) . IGNORE) (158 (10087 10039 LOCKSHIFT)) (159 (33 61 NOLOCKSHIFT)) (160 2SHIFTDOWN .
2SHIFTUP)) DORADO))

View File

@@ -1,171 +0,0 @@
((EUROPEAN ((100 (53 197 NOLOCKSHIFT)) (101 (52 196 NOLOCKSHIFT)) (102 (54 198 NOLOCKSHIFT)) (103 (
61887 61759 LOCKSHIFT)) (104 (55 199 NOLOCKSHIFT)) (105 (61888 61760 LOCKSHIFT)) (106 (61872 61744
LOCKSHIFT)) (107 (61860 61732 LOCKSHIFT)) (108 (48 126 NOLOCKSHIFT)) (109 (61892 61764 LOCKSHIFT)) (
110 (203 207 NOLOCKSHIFT)) (111 (61919 61791 LOCKSHIFT)) (112 (47 191 NOLOCKSHIFT)) (115 (8 8
NOLOCKSHIFT) . IGNORE) (116 (51 195 NOLOCKSHIFT)) (117 (50 194 NOLOCKSHIFT)) (118 (61873 61745
LOCKSHIFT)) (119 (61858 61730 LOCKSHIFT)) (120 (61874 61746 LOCKSHIFT)) (121 (61859 61731 LOCKSHIFT))
(122 (57 202 NOLOCKSHIFT)) (123 (61886 61758 LOCKSHIFT)) (124 (61864 61736 LOCKSHIFT)) (125 (61903
61775 LOCKSHIFT)) (126 (61908 61780 LOCKSHIFT)) (127 (241 225 LOCKSHIFT)) (171 (187 170 LOCKSHIFT)) (
129 (249 233 LOCKSHIFT)) (132 (49 193 NOLOCKSHIFT)) (165 (27 27 NOLOCKSHIFT) . IGNORE) (134 (9 9
NOLOCKSHIFT) . IGNORE) (135 (61905 61777 LOCKSHIFT)) (137 (61869 61741 LOCKSHIFT)) (138 (61877 61749
LOCKSHIFT)) (139 (61906 61778 LOCKSHIFT)) (140 (251 90 LOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP) (142 (
250 234 LOCKSHIFT)) (143 (59 58 LOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) . IGNORE) (208 (171 186 LOCKSHIFT
)) (148 (61904 61776 LOCKSHIFT)) (149 (61920 61792 LOCKSHIFT)) (150 (61921 61793 LOCKSHIFT)) (151 (
61857 61729 LOCKSHIFT)) (152 (61863 61735 LOCKSHIFT)) (153 (56 200 NOLOCKSHIFT)) (154 (61900 61772
LOCKSHIFT)) (155 (239 77 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (
246 230 LOCKSHIFT)) (159 (207 176 NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DOVE) (logic ((100 (53 37
NOLOCKSHIFT)) (101 (52 164 NOLOCKSHIFT)) (102 (54 126 NOLOCKSHIFT)) (103 (61258 61260 NOLOCKSHIFT)) (
104 (55 38 NOLOCKSHIFT)) (105 (61292 61293 NOLOCKSHIFT)) (106 (61271 61270 NOLOCKSHIFT)) (107 (61284
61285 NOLOCKSHIFT)) (108 (48 41 NOLOCKSHIFT)) (109 (61307 61306 NOLOCKSHIFT)) (110 (45 177 NOLOCKSHIFT
)) (111 (61269 61268 LOCKSHIFT)) (112 (172 174 NOLOCKSHIFT)) (115 (8 8 NOLOCKSHIFT) . IGNORE) (116 (51
35 NOLOCKSHIFT)) (117 (50 64 NOLOCKSHIFT)) (118 (61240 61241 NOLOCKSHIFT)) (119 (61234 61235
NOLOCKSHIFT)) (120 (61266 61262 NOLOCKSHIFT)) (121 (61365 61365 NOLOCKSHIFT)) (122 (57 40 NOLOCKSHIFT)
) (123 (61275 61274 NOLOCKSHIFT)) (124 (61300 61299 NOLOCKSHIFT)) (125 (61273 61272 NOLOCKSHIFT)) (126
(61282 61283 NOLOCKSHIFT)) (127 (61256 61257 NOLOCKSHIFT)) (171 (61356 61356 NOLOCKSHIFT)) (129 (93
125 NOLOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (165 (27 27 NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT)
. IGNORE) (135 (61250 61251 NOLOCKSHIFT)) (137 (61298 61297 NOLOCKSHIFT)) (138 (61305 61303
NOLOCKSHIFT)) (139 (61265 61264 NOLOCKSHIFT)) (140 (61364 61364 NOLOCKSHIFT)) (141 1SHIFTDOWN .
1SHIFTUP) (142 (61281 233 NOLOCKSHIFT)) (143 (61351 61351 NOLOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) .
IGNORE) (208 (61357 61357 NOLOCKSHIFT)) (148 (61279 61278 NOLOCKSHIFT)) (149 (61239 61238 NOLOCKSHIFT)
) (150 (61290 61290 NOLOCKSHIFT)) (151 (61263 61261 NOLOCKSHIFT)) (152 (61295 61295 NOLOCKSHIFT)) (153
(56 42 NOLOCKSHIFT)) (154 (61252 61253 NOLOCKSHIFT)) (155 (61254 61255 NOLOCKSHIFT)) (156 LOCKDOWN .
LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (91 123 NOLOCKSHIFT)) (159 (61 43 NOLOCKSHIFT)) (160
2SHIFTDOWN . 2SHIFTUP)) DOVE) (MATH ((100 (53 37 NOLOCKSHIFT)) (101 (52 36 NOLOCKSHIFT)) (102 (54 126
NOLOCKSHIFT)) (103 (61284 61285 LOCKSHIFT)) (104 (55 38 NOLOCKSHIFT)) (105 (100 68 LOCKSHIFT)) (106 (
174 61245 NOLOCKSHIFT)) (107 (61369 61363 NOLOCKSHIFT)) (108 (48 41 NOLOCKSHIFT)) (109 (61254 61255
NOLOCKSHIFT)) (110 (45 45 NOLOCKSHIFT)) (111 (173 61246 LOCKSHIFT)) (112 (47 61300 NOLOCKSHIFT)) (115
(8 8 NOLOCKSHIFT) . IGNORE) (116 (51 35 NOLOCKSHIFT)) (117 (50 64 NOLOCKSHIFT)) (118 (61282 61283
LOCKSHIFT)) (119 (61287 61286 NOLOCKSHIFT)) (120 (61301 61302 NOLOCKSHIFT)) (121 (61351 65 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT)) (123 (175 61247 LOCKSHIFT)) (124 (180 184 LOCKSHIFT)) (125 (172 61244
LOCKSHIFT)) (126 (61256 61257 LOCKSHIFT)) (127 (44 61250 NOLOCKSHIFT)) (171 (61298 61253 NOLOCKSHIFT))
(129 (93 61265 NOLOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (165 (27 27 NOLOCKSHIFT) . IGNORE) (134 (9 9
NOLOCKSHIFT) . IGNORE) (135 (102 70 LOCKSHIFT)) (137 (61356 61362 LOCKSHIFT)) (138 (61254 61291
NOLOCKSHIFT)) (139 (98 61360 NOLOCKSHIFT)) (140 (61309 177 LOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP) (
142 (46 61251 NOLOCKSHIFT)) (143 (61299 61252 NOLOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) . IGNORE) (208 (
95 94 NOLOCKSHIFT)) (148 (61358 82 LOCKSHIFT)) (149 (61296 61266 NOLOCKSHIFT)) (150 (61305 61303
NOLOCKSHIFT)) (151 (61308 61267 LOCKSHIFT)) (152 (61288 72 LOCKSHIFT)) (153 (56 42 NOLOCKSHIFT)) (154
(61357 61361 NOLOCKSHIFT)) (155 (61292 61293 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32
NOLOCKSHIFT) . IGNORE) (158 (91 61264 NOLOCKSHIFT)) (159 (61 43 NOLOCKSHIFT)) (160 2SHIFTDOWN .
2SHIFTUP)) DOVE) (OFFICE ((100 (61397 61381 NOLOCKSHIFT)) (101 (61396 61380 NOLOCKSHIFT)) (102 (61398
61382 NOLOCKSHIFT)) (103 (8557 8554 NOLOCKSHIFT)) (104 (61399 61383 NOLOCKSHIFT)) (105 (61232 8743
NOLOCKSHIFT)) (106 (61346 8571 NOLOCKSHIFT)) (107 (188 86 NOLOCKSHIFT)) (108 (61402 61386 NOLOCKSHIFT)
) (109 (210 8738 NOLOCKSHIFT)) (110 (61437 61438 NOLOCKSHIFT)) (111 (163 8558 NOLOCKSHIFT)) (112 (
61248 63 NOLOCKSHIFT)) (115 (8 8 NOLOCKSHIFT) . IGNORE) (116 (61395 61379 NOLOCKSHIFT)) (117 (61394
61378 NOLOCKSHIFT)) (118 (185 8553 NOLOCKSHIFT)) (119 (176 8546 NOLOCKSHIFT)) (120 (167 8744
NOLOCKSHIFT)) (121 (97 8745 NOLOCKSHIFT)) (122 (61401 61385 NOLOCKSHIFT)) (123 (162 8570 NOLOCKSHIFT))
(124 (61437 88 NOLOCKSHIFT)) (125 (111 8569 NOLOCKSHIFT)) (126 (61289 8737 NOLOCKSHIFT)) (127 (44 60
NOLOCKSHIFT)) (171 (39 34 NOLOCKSHIFT)) (129 (93 125 NOLOCKSHIFT)) (132 (61393 61377 NOLOCKSHIFT)) (
165 (27 27 NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (61233 8742 NOLOCKSHIFT)) (137
(61438 67 NOLOCKSHIFT)) (138 (8739 74 NOLOCKSHIFT)) (139 (190 61436 NOLOCKSHIFT)) (140 (189 90
NOLOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP) (142 (61249 62 NOLOCKSHIFT)) (143 (61352 58 NOLOCKSHIFT)) (
144 (13 13 NOLOCKSHIFT) . IGNORE) (208 (95 61280 NOLOCKSHIFT)) (148 (212 8574 NOLOCKSHIFT)) (149 (
61354 8573 NOLOCKSHIFT)) (150 (61286 8741 NOLOCKSHIFT)) (151 (165 8572 NOLOCKSHIFT)) (152 (61368 8740
NOLOCKSHIFT)) (153 (61400 61384 NOLOCKSHIFT)) (154 (173 175 NOLOCKSHIFT)) (155 (172 174 NOLOCKSHIFT))
(156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (91 123 NOLOCKSHIFT)) (159 (61406
61368 NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DOVE) (DVORAK ((100 (49 42 NOLOCKSHIFT)) (101 (51 41
NOLOCKSHIFT)) (102 (57 37 NOLOCKSHIFT)) (103 (46 62 NOLOCKSHIFT)) (104 (48 38 NOLOCKSHIFT)) (105 (101
69 LOCKSHIFT)) (106 (103 71 LOCKSHIFT)) (107 (107 75 LOCKSHIFT)) (108 (54 45 NOLOCKSHIFT)) (109 (116
84 LOCKSHIFT)) (110 (56 95 NOLOCKSHIFT)) (111 (108 76 LOCKSHIFT)) (112 (122 90 LOCKSHIFT)) (115 (8 8
NOLOCKSHIFT) . IGNORE) (116 (53 40 NOLOCKSHIFT)) (117 (55 35 NOLOCKSHIFT)) (118 (44 60 NOLOCKSHIFT)) (
119 (63 47 NOLOCKSHIFT)) (120 (111 79 LOCKSHIFT)) (121 (97 65 LOCKSHIFT)) (122 (52 164 NOLOCKSHIFT)) (
123 (99 67 LOCKSHIFT)) (124 (113 81 LOCKSHIFT)) (125 (114 82 LOCKSHIFT)) (126 (110 78 LOCKSHIFT)) (127
(119 87 LOCKSHIFT)) (171 (44 186 NOLOCKSHIFT)) (129 (93 125 NOLOCKSHIFT)) (132 (33 64 NOLOCKSHIFT)) (
165 (27 27 NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (117 85 LOCKSHIFT)) (137 (106
74 LOCKSHIFT)) (138 (104 72 LOCKSHIFT)) (139 (120 88 LOCKSHIFT)) (140 (59 58 NOLOCKSHIFT)) (141
1SHIFTDOWN . 1SHIFTUP) (142 (118 86 LOCKSHIFT)) (143 (115 83 LOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) .
IGNORE) (208 (169 170 NOLOCKSHIFT)) (148 (112 80 LOCKSHIFT)) (149 (121 89 LOCKSHIFT)) (150 (105 73
LOCKSHIFT)) (151 (102 70 LOCKSHIFT)) (152 (100 68 LOCKSHIFT)) (153 (50 162 NOLOCKSHIFT)) (154 (98 66
LOCKSHIFT)) (155 (109 77 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (
91 123 NOLOCKSHIFT)) (159 (61 43 NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DOVE) (GREEK ((100 (53 37
NOLOCKSHIFT)) (101 (52 36 NOLOCKSHIFT)) (102 (54 126 NOLOCKSHIFT)) (103 (9830 69 LOCKSHIFT)) (104 (55
38 NOLOCKSHIFT)) (105 (9829 9797 LOCKSHIFT)) (106 (9849 9817 LOCKSHIFT)) (107 (115 9814 LOCKSHIFT)) (
108 (48 41 NOLOCKSHIFT)) (109 (9837 9805 LOCKSHIFT)) (110 (45 45 NOLOCKSHIFT)) (111 (9843 9811
LOCKSHIFT)) (112 (47 63 NOLOCKSHIFT)) (115 (8 8 NOLOCKSHIFT) . IGNORE) (116 (51 35 NOLOCKSHIFT)) (117
(50 64 NOLOCKSHIFT)) (118 (9853 9821 LOCKSHIFT)) (119 (9835 9803 LOCKSHIFT)) (120 (9846 9814 LOCKSHIFT
)) (121 (9825 9793 LOCKSHIFT)) (122 (57 40 NOLOCKSHIFT)) (123 (9836 9804 LOCKSHIFT)) (124 (9851 9819
LOCKSHIFT)) (125 (9842 9810 LOCKSHIFT)) (126 (9838 9806 LOCKSHIFT)) (127 (44 60 NOLOCKSHIFT)) (171 (39
34 NOLOCKSHIFT)) (129 (93 125 NOLOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (165 (27 27 NOLOCKSHIFT) .
IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (9850 9818 LOCKSHIFT)) (137 (9841 9809 LOCKSHIFT)) (138
(106 74 LOCKSHIFT)) (139 (9826 66 LOCKSHIFT)) (140 (9833 9801 LOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 62 NOLOCKSHIFT)) (143 (59 58 NOLOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) . IGNORE) (208 (95 94
NOLOCKSHIFT)) (148 (9845 9813 LOCKSHIFT)) (149 (9848 9816 LOCKSHIFT)) (150 (9828 9796 LOCKSHIFT)) (151
(9852 9820 LOCKSHIFT)) (152 (9834 9802 LOCKSHIFT)) (153 (56 42 NOLOCKSHIFT)) (154 (9840 9808
LOCKSHIFT)) (155 (9839 9807 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (
158 (91 123 NOLOCKSHIFT)) (159 (61 43 NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DOVE) (ITALIAN ((171
(39 34 NOLOCKSHIFT)) (100 (53 61903 NOLOCKSHIFT)) (101 (52 61886 NOLOCKSHIFT)) (102 (54 61919
NOLOCKSHIFT)) (103 (101 69 LOCKSHIFT)) (104 (55 38 NOLOCKSHIFT)) (105 (100 68 LOCKSHIFT)) (106 (117 85
LOCKSHIFT)) (107 (118 86 LOCKSHIFT)) (108 (48 41 NOLOCKSHIFT)) (109 (107 75 LOCKSHIFT)) (110 (45 45
NOLOCKSHIFT)) (111 (112 80 LOCKSHIFT)) (112 (95 63 NOLOCKSHIFT)) (115 (8 8 NOLOCKSHIFT) . IGNORE) (116
(51 61872 NOLOCKSHIFT)) (117 (50 61857 NOLOCKSHIFT)) (118 (119 87 LOCKSHIFT)) (119 (113 81 LOCKSHIFT)
) (120 (115 83 LOCKSHIFT)) (121 (97 65 LOCKSHIFT)) (122 (57 40 NOLOCKSHIFT)) (123 (105 73 LOCKSHIFT))
(124 (120 88 LOCKSHIFT)) (125 (111 79 LOCKSHIFT)) (126 (108 76 LOCKSHIFT)) (127 (44 171 NOLOCKSHIFT))
(171 (39 186 NOLOCKSHIFT)) (129 (93 125 NOLOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (165 (27 27
NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (102 70 LOCKSHIFT)) (137 (99 67 LOCKSHIFT
)) (138 (106 74 LOCKSHIFT)) (139 (98 66 LOCKSHIFT)) (140 (122 90 LOCKSHIFT)) (141 1SHIFTDOWN .
1SHIFTUP) (142 (46 187 NOLOCKSHIFT)) (143 (59 58 NOLOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) . IGNORE) (208
(95 170 NOLOCKSHIFT)) (148 (114 82 LOCKSHIFT)) (149 (116 84 LOCKSHIFT)) (150 (103 71 LOCKSHIFT)) (151
(121 89 LOCKSHIFT)) (152 (104 72 LOCKSHIFT)) (153 (56 42 NOLOCKSHIFT)) (154 (110 78 LOCKSHIFT)) (155
(109 77 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (91 123
NOLOCKSHIFT)) (159 (61 43 NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DOVE) (SPANISH ((208 (161 191
NOLOCKSHIFT)) (171 (59 58 NOLOCKSHIFT)) (100 (53 61904 NOLOCKSHIFT)) (101 (52 61887 NOLOCKSHIFT)) (102
(54 61920 NOLOCKSHIFT)) (103 (101 69 LOCKSHIFT)) (104 (55 38 NOLOCKSHIFT)) (105 (100 68 LOCKSHIFT)) (
106 (117 85 LOCKSHIFT)) (107 (118 86 LOCKSHIFT)) (108 (48 41 NOLOCKSHIFT)) (109 (107 75 LOCKSHIFT)) (
110 (45 45 NOLOCKSHIFT)) (111 (112 80 LOCKSHIFT)) (112 (95 63 NOLOCKSHIFT)) (115 (8 8 NOLOCKSHIFT) .
IGNORE) (116 (51 61873 NOLOCKSHIFT)) (117 (50 61858 NOLOCKSHIFT)) (118 (119 87 LOCKSHIFT)) (119 (113
81 LOCKSHIFT)) (120 (115 83 LOCKSHIFT)) (121 (97 65 LOCKSHIFT)) (122 (57 40 NOLOCKSHIFT)) (123 (105 73
LOCKSHIFT)) (124 (120 88 LOCKSHIFT)) (125 (111 79 LOCKSHIFT)) (126 (108 76 LOCKSHIFT)) (127 (44 171
NOLOCKSHIFT)) (171 (59 58 NOLOCKSHIFT)) (129 (185 186 NOLOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (165 (27
27 NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (102 70 LOCKSHIFT)) (137 (99 67
LOCKSHIFT)) (138 (106 74 LOCKSHIFT)) (139 (98 66 LOCKSHIFT)) (140 (122 90 LOCKSHIFT)) (141 1SHIFTDOWN
. 1SHIFTUP) (142 (46 187 NOLOCKSHIFT)) (143 (61900 61772 LOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) .
IGNORE) (208 (161 191 NOLOCKSHIFT)) (148 (114 82 LOCKSHIFT)) (149 (116 84 LOCKSHIFT)) (150 (103 71
LOCKSHIFT)) (151 (121 89 LOCKSHIFT)) (152 (104 72 LOCKSHIFT)) (153 (56 61925 NOLOCKSHIFT)) (154 (110
78 LOCKSHIFT)) (155 (109 77 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (
158 (169 170 NOLOCKSHIFT)) (159 (61 43 NOLOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DOVE) (FRENCH ((208
(61869 61741 NOLOCKSHIFT)) (171 (39 61857 NOLOCKSHIFT)) (100 (53 61905 NOLOCKSHIFT)) (101 (52 61888
NOLOCKSHIFT)) (102 (54 61921 NOLOCKSHIFT)) (103 (101 69 LOCKSHIFT)) (104 (55 38 NOLOCKSHIFT)) (105 (
100 68 LOCKSHIFT)) (106 (117 85 LOCKSHIFT)) (107 (118 86 LOCKSHIFT)) (108 (48 41 NOLOCKSHIFT)) (109 (
107 75 LOCKSHIFT)) (110 (45 45 NOLOCKSHIFT)) (111 (112 80 LOCKSHIFT)) (112 (95 63 NOLOCKSHIFT)) (115 (
1 1 NOLOCKSHIFT) . IGNORE) (116 (51 61874 NOLOCKSHIFT)) (117 (50 61859 NOLOCKSHIFT)) (118 (119 87
LOCKSHIFT)) (119 (113 81 LOCKSHIFT)) (120 (115 83 LOCKSHIFT)) (121 (97 65 LOCKSHIFT)) (122 (57 40
NOLOCKSHIFT)) (123 (105 73 LOCKSHIFT)) (124 (120 88 LOCKSHIFT)) (125 (111 79 LOCKSHIFT)) (126 (108 76
LOCKSHIFT)) (127 (44 171 NOLOCKSHIFT)) (171 (39 61857 NOLOCKSHIFT)) (129 (61872 61892 LOCKSHIFT)) (132
(49 33 NOLOCKSHIFT)) (165 (27 27 NOLOCKSHIFT) . IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (102 70
LOCKSHIFT)) (137 (99 67 LOCKSHIFT)) (138 (106 74 LOCKSHIFT)) (139 (98 66 LOCKSHIFT)) (140 (122 90
LOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP) (142 (46 187 NOLOCKSHIFT)) (143 (59 58 NOLOCKSHIFT)) (144 (13
13 NOLOCKSHIFT) . IGNORE) (208 (61869 61741 LOCKSHIFT)) (148 (114 82 LOCKSHIFT)) (149 (116 84
LOCKSHIFT)) (150 (103 71 LOCKSHIFT)) (151 (121 89 LOCKSHIFT)) (152 (104 72 LOCKSHIFT)) (153 (56 61919
NOLOCKSHIFT)) (154 (110 78 LOCKSHIFT)) (155 (109 77 LOCKSHIFT)) (156 LOCKDOWN . LOCKUP) (157 (32 32
NOLOCKSHIFT) . IGNORE) (158 (61873 61877 LOCKSHIFT)) (159 (61 43 NOLOCKSHIFT)) (160 2SHIFTDOWN .
2SHIFTUP)) DOVE) (GERMAN ((100 (53 37 NOLOCKSHIFT)) (101 (52 36 NOLOCKSHIFT)) (102 (54 126 NOLOCKSHIFT
)) (103 (101 69 LOCKSHIFT)) (104 (55 38 NOLOCKSHIFT)) (105 (100 68 LOCKSHIFT)) (106 (117 85 LOCKSHIFT)
) (107 (118 86 LOCKSHIFT)) (108 (48 41 NOLOCKSHIFT)) (109 (107 75 LOCKSHIFT)) (110 (45 45 NOLOCKSHIFT)
) (111 (112 80 LOCKSHIFT)) (112 (251 63 NOLOCKSHIFT)) (115 (8 8 NOLOCKSHIFT) . IGNORE) (116 (51 35
NOLOCKSHIFT)) (117 (50 64 NOLOCKSHIFT)) (118 (119 87 LOCKSHIFT)) (119 (113 81 LOCKSHIFT)) (120 (115 83
LOCKSHIFT)) (121 (97 65 LOCKSHIFT)) (122 (57 40 NOLOCKSHIFT)) (123 (105 73 LOCKSHIFT)) (124 (120 88
LOCKSHIFT)) (125 (111 79 LOCKSHIFT)) (126 (108 76 LOCKSHIFT)) (127 (44 60 NOLOCKSHIFT)) (171 (39 34
NOLOCKSHIFT)) (129 (61863 61735 LOCKSHIFT)) (132 (49 33 NOLOCKSHIFT)) (165 (27 27 NOLOCKSHIFT) .
IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (102 70 LOCKSHIFT)) (137 (99 67 LOCKSHIFT)) (138 (106 74
LOCKSHIFT)) (139 (98 66 LOCKSHIFT)) (140 (122 90 LOCKSHIFT)) (141 1SHIFTDOWN . 1SHIFTUP) (142 (46 62
NOLOCKSHIFT)) (143 (59 58 NOLOCKSHIFT)) (144 (13 13 NOLOCKSHIFT) . IGNORE) (208 (95 94 NOLOCKSHIFT)) (
148 (114 82 LOCKSHIFT)) (149 (116 84 LOCKSHIFT)) (150 (103 71 LOCKSHIFT)) (151 (121 89 LOCKSHIFT)) (
152 (104 72 LOCKSHIFT)) (153 (56 42 NOLOCKSHIFT)) (154 (110 78 LOCKSHIFT)) (155 (109 77 LOCKSHIFT)) (
156 LOCKDOWN . LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (61908 61780 LOCKSHIFT)) (159 (61925
61797 LOCKSHIFT)) (160 2SHIFTDOWN . 2SHIFTUP)) DOVE) (STANDARD-RUSSIAN ((208 (41 40 NOLOCKSHIFT)) (171
(10073 10025 NOLOCKSHIFT)) (100 (34 52 NOLOCKSHIFT)) (101 (47 51 NOLOCKSHIFT)) (102 (58 53
NOLOCKSHIFT)) (103 (10085 10037 LOCKSHIFT)) (104 (44 54 NOLOCKSHIFT)) (105 (10067 10019 LOCKSHIFT)) (
106 (10068 10020 LOCKSHIFT)) (107 (10078 10030 LOCKSHIFT)) (108 (63 57 NOLOCKSHIFT)) (109 (10077 10029
LOCKSHIFT)) (110 (37 48 NOLOCKSHIFT)) (111 (10073 10025 LOCKSHIFT)) (112 (10071 10023 LOCKSHIFT)) (
115 (8 8 NOLOCKSHIFT) . IGNORE) (116 (45 50 NOLOCKSHIFT)) (117 (61352 49 NOLOCKSHIFT)) (118 (10088
10040 LOCKSHIFT)) (119 (10075 10027 LOCKSHIFT)) (120 (10093 10045 LOCKSHIFT)) (121 (10086 10038
LOCKSHIFT)) (122 (95 56 NOLOCKSHIFT)) (123 (10090 10042 LOCKSHIFT)) (124 (10089 10041 LOCKSHIFT)) (125
(10091 10043 LOCKSHIFT)) (126 (10069 10021 LOCKSHIFT)) (127 (10066 10018 LOCKSHIFT)) (171 (10095
10047 LOCKSHIFT)) (129 (10092 10044 LOCKSHIFT)) (132 (167 43 NOLOCKSHIFT)) (165 (27 27 NOLOCKSHIFT) .
IGNORE) (134 (9 9 NOLOCKSHIFT) . IGNORE) (135 (10065 10017 LOCKSHIFT)) (137 (10083 10035 LOCKSHIFT)) (
138 (10080 10032 LOCKSHIFT)) (139 (10074 10026 LOCKSHIFT)) (140 (10097 10049 LOCKSHIFT)) (141
1SHIFTDOWN . 1SHIFTUP) (142 (10096 10048 LOCKSHIFT)) (143 (10072 10024 LOCKSHIFT)) (144 (13 13
NOLOCKSHIFT) . IGNORE) (208 (41 40 NOLOCKSHIFT)) (148 (10076 10028 LOCKSHIFT)) (149 (10070 10022
LOCKSHIFT)) (150 (10081 10033 LOCKSHIFT)) (151 (10079 10031 LOCKSHIFT)) (152 (10082 10034 LOCKSHIFT))
(153 (46 55 NOLOCKSHIFT)) (154 (10084 10036 LOCKSHIFT)) (155 (10094 10046 LOCKSHIFT)) (156 LOCKDOWN .
LOCKUP) (157 (32 32 NOLOCKSHIFT) . IGNORE) (158 (10087 10039 LOCKSHIFT)) (159 (33 61 NOLOCKSHIFT)) (
160 2SHIFTDOWN . 2SHIFTUP)) DOVE))

Binary file not shown.

Binary file not shown.

276
library/PDFSTREAM Normal file
View File

@@ -0,0 +1,276 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 1-Oct-2023 20:53:05" {WMEDLEY}<library>PDFSTREAM.;54 13917
:EDIT-BY rmk
:CHANGES-TO (FNS SEE-PDF)
:PREVIOUS-DATE " 1-Oct-2023 15:29:33" {WMEDLEY}<library>PDFSTREAM.;53)
(PRETTYCOMPRINT PDFSTREAMCOMS)
(RPAQQ PDFSTREAMCOMS
((FILES (SYSLOAD)
POSTSCRIPTSTREAM)
[COMS (* ; "Hook into hardcopy interface")
[ADDVARS [PRINTERTYPES ((PDF)
(CANPRINT (PDF))
(STATUS TRUE)
(PROPERTIES NILL)
(SEND POSTSCRIPTSEND)
(BITMAPSCALE POSTSCRIPT.BITMAPSCALE)
(BITMAPFILE (PDF.HARDCOPYW FILE BITMAP SCALEFACTOR REGION
ROTATION TITLE]
[PRINTFILETYPES (PDF (TEST PDFFILEP)
(EXTENSION (PDF))
(CONVERSION (TEXT PDF.TEXT TEDIT PDF.TEDIT]
(IMAGESTREAMTYPES (PDF (OPENSTREAM OPEN-PDF-STREAM)
(FONTCREATE POSTSCRIPT.FONTCREATE)
(FONTSAVAILABLE POSTSCRIPT.FONTSAVAILABLE)
(CREATECHARSET \CREATECHARSET.PSC]
(VARS (DEFAULTPRINTERTYPE 'PDF))
(FNS PDFFILEP PDF.HARDCOPYW PDF.TEXT PDF.TEDIT)
(P (FONTPROFILE.ADDDEVICE 'PDF 'POSTSCRIPT]
(* ;; "")
(* ;; "Implementation of PDF streams")
(INITVARS (PDFCONVERTER 'ps2pdf))
(* ; "Mac with ghostscript?")
(ALISTS (PDF-CONVERTER-TEMPLATES ps2pdf pstopdf))
(GLOBALVARS PDFCONVERTER PDF-CONVERTER-TEMPLATES)
(FNS OPEN-PDF-STREAM CLOSE-PDF-STREAM PS-TO-PDF)
(FNS SEE-PDF)))
(FILESLOAD (SYSLOAD)
POSTSCRIPTSTREAM)
(* ; "Hook into hardcopy interface")
(ADDTOVAR PRINTERTYPES ((PDF)
(CANPRINT (PDF))
(STATUS TRUE)
(PROPERTIES NILL)
(SEND POSTSCRIPTSEND)
(BITMAPSCALE POSTSCRIPT.BITMAPSCALE)
(BITMAPFILE (PDF.HARDCOPYW FILE BITMAP SCALEFACTOR REGION ROTATION TITLE))))
(ADDTOVAR PRINTFILETYPES (PDF (TEST PDFFILEP)
(EXTENSION (PDF))
(CONVERSION (TEXT PDF.TEXT TEDIT PDF.TEDIT))))
(ADDTOVAR IMAGESTREAMTYPES (PDF (OPENSTREAM OPEN-PDF-STREAM)
(FONTCREATE POSTSCRIPT.FONTCREATE)
(FONTSAVAILABLE POSTSCRIPT.FONTSAVAILABLE)
(CREATECHARSET \CREATECHARSET.PSC)))
(RPAQQ DEFAULTPRINTERTYPE PDF)
(DEFINEQ
(PDFFILEP
[LAMBDA (FILE) (* ; "Edited 23-Jun-2023 14:43 by rmk")
(* ; "Edited 5-Mar-93 21:40 by rmk:")
(* ; "Edited 14-Jan-93 10:56 by jds")
(OR (CL:MEMBER (UNPACKFILENAME.STRING FILE 'EXTENSION)
'("PDF")
:TEST
(FUNCTION STRING-EQUAL))
(CL:WHEN (STREAMP FILE)
(SETFILEPTR FILE 0)
(PROG1 (AND (EQ (BIN FILE)
(CHARCODE %%))
(EQ (BIN FILE)
(CHARCODE P))
(EQ (BIN FILE)
(CHARCODE D))
(EQ (BIN FILE)
(CHARCODE F)))
(SETFILEPTR FILE 0)))])
(PDF.HARDCOPYW
[LAMBDA (PDFFILE BITMAP SCALEFACTOR REGION Landscape? TITLE)
(* ; "Edited 24-Jul-2023 10:37 by rmk")
(* ; "Edited 23-Jun-2023 13:28 by rmk")
(* ; "Edited 6-Mar-2023 22:43 by rmk")
(LET ((PSTTMP (PACKFILENAME 'EXTENSION 'TMPPS 'BODY PDFFILE)))
(PS-TO-PDF (POSTSCRIPT.HARDCOPYW PSTTMP BITMAP SCALEFACTOR REGION Landscape? TITLE)
PDFFILE])
(PDF.TEXT
[LAMBDA (FILE PDFFILE FONTS HEADING TABS) (* ; "Edited 1-Oct-2023 15:24 by rmk")
(* ; "Edited 23-Jun-2023 13:23 by rmk")
(* ; "Edited 7-Mar-2023 08:39 by rmk")
(TEXTTOIMAGEFILE FILE PDFFILE 'PDF FONTS HEADING TABS `(REGION ,POSTSCRIPT.DEFAULT.PAGEREGION
ROTATION ,(NOT (NOT
POSTSCRIPT.TEXTFILE.LANDSCAPE
])
(PDF.TEDIT
[LAMBDA (FILE PDFFILE) (* ; "Edited 23-Jun-2023 13:22 by rmk")
(* ; "Edited 7-Mar-2023 08:39 by rmk")
(LET ((TSTREAM (OPENTEXTSTREAM FILE)))
(TEDIT.FORMAT.HARDCOPY FILE PDFFILE T NIL NIL NIL 'PDF)
(CLOSEF TSTREAM])
)
(FONTPROFILE.ADDDEVICE 'PDF 'POSTSCRIPT)
(* ;; "")
(* ;; "Implementation of PDF streams")
(RPAQ? PDFCONVERTER 'ps2pdf)
(* ; "Mac with ghostscript?")
(ADDTOVAR PDF-CONVERTER-TEMPLATES (ps2pdf " " PSFILE " " PDFFILE " 2> " ERRORFILE)
(pstopdf " " PSFILE " -o " PDFFILE " 2> " ERRORFILE))
(DECLARE%: DOEVAL@COMPILE DONTCOPY
(GLOBALVARS PDFCONVERTER PDF-CONVERTER-TEMPLATES)
)
(DEFINEQ
(OPEN-PDF-STREAM
[LAMBDA (FILE OPTIONS) (* ; "Edited 23-Sep-2023 15:38 by rmk")
(* ; "Edited 22-Sep-2023 11:04 by rmk")
(* ; "Edited 24-Jun-2023 14:49 by rmk")
(* ;; "Open a temporary PS file, but set it up so that at closing it gets converted to PDF using an operating-system utility (if available), and then gets renamed to the original intended filename.")
(* ;; "We have to stash the original filename someplace. We could put it in the tmp filename and then parse it out, but then we would have to worry about how unix filenames might parse against our {, }, etc. ")
(* ;;
 "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.")
(OPENPOSTSCRIPTSTREAM FILE OPTIONS)
else (CL:UNLESS (OR (ASSOC (OR PDFCONVERTER (MKATOM (UNIX-GETENV "MEDLEY-PDFCONVERTER")))
PDF-CONVERTER-TEMPLATES))
(ERROR "POSTSCRIPT-to-PDF converter is not specified"))
(SETQ FILE (OR (AND (NEQ FILE T)
(OUTFILEP FILE))
(ERROR "PDF target file not found" FILE)))
(LET ((PSSTREAM (OPENPOSTSCRIPTSTREAM (CONCAT "{UNIX}/tmp/medley-pdf-" (IDATE)
"-"
(RAND)
".ps")
OPTIONS)))
(STREAMPROP PSSTREAM 'AFTERCLOSE (CONS (FUNCTION CLOSE-PDF-STREAM)))
(STREAMPROP PSSTREAM 'PDFTARGETINFO FILE)
PSSTREAM])
(CLOSE-PDF-STREAM
[LAMBDA (PSSTREAM) (* ; "Edited 22-Sep-2023 11:18 by rmk")
(* ; "Edited 24-Jul-2023 10:37 by rmk")
(* ; "Edited 17-Jul-2023 22:32 by rmk")
(* ; "Edited 24-Jun-2023 13:57 by rmk")
(* ;; "PSSTREAM is a postscript (maybe in tmp) rendition of what is intended to end up as a pdf. If we are going directly to a printer, we can probably just pass it along without worrying about conversion. In fact, in that case we probably should not have bothered even setting up the PDF stream.")
(* ;; "But for a file we execute the PDFCONVERTER as a shell command to make a pdf, and then we rename it to the intended filename")
(STREAMPROP PSSTREAM 'AFTERCLOSE NIL) (* ;
 "Maybe just remove only CLOSE-PDF-STREAMfrom the list?")
(LET ((TARGETINFO (STREAMPROP PSSTREAM 'PDFTARGETINFO NIL)))
(CL:IF TARGETINFO
(RENAMEFILE (PS-TO-PDF PSSTREAM)
TARGETINFO)
PSSTREAM)])
(PS-TO-PDF
[LAMBDA (PSFILE PDFFILE DONTDELETE) (* ; "Edited 1-Oct-2023 15:18 by rmk")
(* ; "Edited 23-Sep-2023 22:54 by rmk")
(* ; "Edited 23-Jul-2023 22:30 by rmk")
(* ; "Edited 24-Jun-2023 15:01 by rmk")
(* ; "Edited 16-Jul-2022 13:06 by rmk")
(* ; "Edited 8-Jul-2022 10:20 by rmk")
(* ; "Edited 7-May-2022 22:40 by rmk")
(* ; "Edited 7-Oct-2021 11:15 by rmk:")
(* ;; "PSFILE is the name of a closed PS file on a DSK/UNIX device. This function uses the PDFCONVERTER utility to convert that to a parallel pdf file, which is then renamed to PDFFILE. ")
(* ;; "DONTDELETE is just for debugging, keeps the /tmp/ files")
(SETQ PSFILE (FULLNAME (TRUEFILENAME PSFILE)))
(CL:UNLESS (INFILEP PSFILE)
(ERROR "NO PS FILE TO CONVERT"))
(SETQ PDFFILE (if PDFFILE
then (TRUEFILENAME PDFFILE)
else (PACKFILENAME 'EXTENSION 'pdf 'BODY PSFILE)))
(LET ((ERRORFILE (PACKFILENAME 'EXTENSION 'error 'BODY PSFILE))
COMPLETIONCODE)
(* ;; "PROCESS-COMMAND is currently from GITFNS. Not sure whether ShellCommand in UNIXUTILS is appropriate.")
(* ;;
 "We have to map the filenames down to Unix conventions: (not pseudohost or host, slashes, etc.")
[SETQ COMPLETIONCODE (PROCESS-COMMAND (CONCATLIST (SUBLIS
`((PSFILE \, (SLASHIT (TRUEFILENAME
PSFILE)
NIL T))
(PDFFILE \, (SLASHIT (TRUEFILENAME
PDFFILE)
NIL T))
(ERRORFILE \, (SLASHIT (TRUEFILENAME
ERRORFILE)
NIL T)))
(ASSOC (OR PDFCONVERTER
(MKATOM (UNIX-GETENV
"MEDLEY-PDFCONVERTER"
)))
PDF-CONVERTER-TEMPLATES]
(* ;; "Now use Medley names")
(CLOSEF? PSFILE)
(CL:UNLESS DONTDELETE (DELFILE PSFILE))
(CLOSEF? ERRORFILE)
(CL:WHEN (INFILEP ERRORFILE)
(CL:WHEN (IGREATERP (PROG1 (GETFILEINFO ERRORFILE 'LENGTH)
(CL:UNLESS DONTDELETE (DELFILE ERRORFILE)))
0)
(ERROR "Cannot create PDF file for " PDFFILE)))
(CL:WHEN (IGREATERP COMPLETIONCODE 0)
(ERROR "Cannot create PDF file for " PDFFILE))
PDFFILE])
)
(DEFINEQ
(SEE-PDF
[LAMBDA (PDFFILE) (* ; "Edited 1-Oct-2023 20:47 by rmk")
(* ; "Edited 26-Sep-2023 16:52 by rmk")
(* ;; "Good for Mac, not sure about Windows etc.")
(ShellCommand (CONCAT "open -a Preview " (UNIX-FILE-NAME (PACKFILENAME 'BODY PDFFILE 'EXTENSION
'PDF)
'INPUT])
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (3078 5692 (PDFFILEP 3088 . 4002) (PDF.HARDCOPYW 4004 . 4602) (PDF.TEXT 4604 . 5321) (
PDF.TEDIT 5323 . 5690)) (6136 13355 (OPEN-PDF-STREAM 6146 . 8324) (CLOSE-PDF-STREAM 8326 . 9613) (
PS-TO-PDF 9615 . 13353)) (13356 13894 (SEE-PDF 13366 . 13892)))))
STOP

BIN
library/PDFSTREAM.LCOM Normal file

Binary file not shown.

View File

@@ -1,28 +1,40 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "18-Jan-2023 20:36:10" {DSK}<home>frank>il>medley>gmedley>library>UNIXUTILS.;7 5091
(FILECREATED " 8-Oct-2023 15:06:52" {DSK}<home>frank>il>medley>gmedley>library>UNIXUTILS.;15 14696
:CHANGES-TO (FNS ShellBrowser ShellBrowse ShellOpen)
:CHANGES-TO (FNS ShellOpen UNIX-FILE-NAME ShellBrowser ShellBrowse ShellOpener)
(VARS UNIXUTILSCOMS)
(FUNCTIONS ShellWhich)
:PREVIOUS-DATE "18-Jan-2023 13:22:28" {DSK}<home>frank>il>medley>gmedley>greetfiles>UNIXUTILS.;1
:PREVIOUS-DATE " 8-Oct-2023 02:35:47" {DSK}<home>frank>il>medley>gmedley>library>UNIXUTILS.;14
)
(PRETTYCOMPRINT UNIXUTILSCOMS)
(RPAQQ UNIXUTILSCOMS ((GLOBALVARS ShellBrowser)
(INITVARS (ShellBrowser))
(FUNCTIONS ShellCommand ShellWhich)
(FNS ShellBrowser ShellBrowse)))
(RPAQQ UNIXUTILSCOMS
((DECLARE%: EVAL@COMPILE DONTCOPY (* ; "For PROCESS-COMMAND")
(FILES (FROM LOADUPS)
EXPORTS.ALL))
(GLOBALVARS ShellBrowser ShellOpener)
(INITVARS (ShellBrowser)
(ShellOpener))
(FUNCTIONS ShellCommand ShellWhich)
(FNS ShellBrowser ShellBrowse ShellOpener ShellOpen PROCESS-COMMAND SLASHIT UNIX-FILE-NAME)
(PROPS (UNIXUTILS FILETYPE))))
(DECLARE%: EVAL@COMPILE DONTCOPY
(FILESLOAD (FROM LOADUPS)
EXPORTS.ALL)
)
(DECLARE%: DOEVAL@COMPILE DONTCOPY
(GLOBALVARS ShellBrowser)
(GLOBALVARS ShellBrowser ShellOpener)
)
(RPAQ? ShellBrowser )
(RPAQ? ShellOpener )
(CL:DEFUN ShellCommand (Cmd &OPTIONAL (Output T))
(CL:WITH-OPEN-STREAM (s (CREATE-PROCESS-STREAM Cmd))
(CL:TAGBODY [SETFILEINFO s 'ENDOFSTREAMOP #'(CL:LAMBDA (s)
@@ -34,62 +46,56 @@
(CL:DEFUN ShellWhich (Cmd) (* ; "Edited 18-Jan-2023 13:19 by FGH")
[CL:WITH-OPEN-STREAM (S (OPENSTREAM '{NODIRCORE} 'BOTH))
(ShellCommand (CONCAT "which " Cmd)
(ShellCommand (CONCAT "command -v " Cmd)
S)
(COND
((EQ (GETEOFPTR S)
0)
NIL)
(T (SETFILEPTR S 0)
(MKSTRING (READ S])
(RSTRING S])
(DEFINEQ
(ShellBrowser
[LAMBDA NIL (* ; "Edited 18-Jan-2023 20:30 by FGH")
(OR ShellBrowser (SETQ ShellBrowser (LET (CMDPATH)
(if (STRPOS "darwin" (OR (UNIX-GETENV "OSTYPE")
(UNIX-GETENV "PATH")))
then
(* ;; " MacOS")
"open"
elseif (SETQ CMDPATH (ShellWhich "wslview"))
then
(* ;; "windows with WSL")
(* ;; "Figure out the browser to use for the ShellOpen/ShellBrowse functions. ")
CMDPATH
elseif (SETQ CMDPATH (ShellWhich "xdg-open"))
then
(* ;; "Linux systems with xdg-utils installed ")
(* ;; " Ordinarily, this would be the same as the generic ShellOpener.")
CMDPATH
elseif (SETQ CMDPATH (ShellWhich "git"))
then
(* ;; " Systems with git installed")
(* ;; " But if a generic ShellOpener is not found, then there are some additional")
(CONCAT CMDPATH " web--browse")
(* ; "")
elseif (SETQ CMDPATH (ShellWhich "lynx"))
then
(* ;; " Systems with lynx installed")
(* ;; " possibilities that will work for http/https URLs. If one of these exists return it.")
(LET (CMDPATH2)
(if (SETQ CMDPATH2 (ShellWhich "xterm"))
then (CONCAT CMDPATH2 " -e " CMDPATH)
else (LIST CMDPATH)))
else
(* ;;
 " Out of ideas - just return a dummy function")
(OR ShellBrowser (SETQ ShellBrowser
(if (NOT (STREQUAL (ShellOpener)
"true"))
then ShellOpener
else (LET (CMDPATH)
(if (SETQ CMDPATH (ShellWhich "git"))
then
(* ;; " Systems with git installed")
"true"])
CMDPATH
elseif (SETQ CMDPATH (ShellWhich "lynx"))
then
(* ;; " Systems with lynx installed")
(LET (CMDPATH2)
(if (SETQ CMDPATH2 (ShellWhich "xterm"))
then (CONCAT CMDPATH2 " -e " CMDPATH)
else (LIST CMDPATH)))
else
(* ;; " Out of ideas - just return a dummy function")
"true"])
(ShellBrowse
[LAMBDA (URL) (* ; "Edited 18-Jan-2023 20:32 by FGH")
(* ;; " Open the web page specified by URL using an external browser via shell call")
(* ;;
 " URL must start with http:// or https:// (case ireelevant) or this function will just return NIL.")
(* ;; " URL must start with http:// or https:// or file:/// (case ireelevant) or this function will just return NIL.")
(* ;; " Returns T otherwise.")
@@ -97,17 +103,189 @@
(if (OR (EQ (STRPOS "http://" (L-CASE URL))
1)
(EQ (STRPOS "https://" (L-CASE URL))
1)
(EQ (STRPOS "file:///" (L-CASE URL))
1))
then (ShellOpen URL)
else NIL])
(ShellOpener
[LAMBDA NIL
(* ;; "Find an %"opener%" that will open files (and URLs) using the appropriate/default app on this machine")
(OR ShellOpener (SETQ ShellOpener (LET (CMDPATH)
(if (SETQ CMDPATH (ShellWhich "wslview"))
then
(* ;; "windows with WSL")
CMDPATH
elseif (SETQ CMDPATH (ShellWhich "cygstart"))
then
(* ;; "windows with cygwin")
CMDPATH
elseif (SETQ CMDPATH (ShellWhich "xdg-open"))
then
(* ;; "Linux systems with xdg-utils installed ")
CMDPATH
elseif (SETQ CMDPATH (ShellWhich "open"))
then
(* ;; " MacOS open")
CMDPATH
else
(* ;;
 " Out of ideas - just return a dummy function")
"true"])
(ShellOpen
[LAMBDA (FilenameOrURL)
(* ;; "Open the file or URL using the generic %"opener%" for this machine via a shell call.")
(* ;; " If FilenameOrURL starts with %"http://%" or %"https://%" or %"file:///%", then we use (ShellBrowser) as")
(* ;; " the %"opener%" (which includes some browsers on a machine without a generic opener).")
(* ;;
 " Otherwise FilenameOrURL is assumed to be a filename and will be opened using (ShellOpener).")
(* ;; " Returns T is all goes well; returns an error string if all does not go well")
(SETQ FilenameOrURL (MKSTRING FilenameOrURL))
(if (OR (EQ (STRPOS "http://" (L-CASE FilenameOrURL))
1)
(EQ (STRPOS "https://" (L-CASE FilenameOrURL))
1)
(EQ (STRPOS "file://" (L-CASE FilenameOrURL))
1))
then (LET ((BROWSER (ShellBrowser)))
(if (LISTP BROWSER)
then (CHAT 'SHELL NIL (CONCAT (CAR BROWSER)
" '" URL "'"))
else (ShellCommand (CONCAT BROWSER " '" URL "'"
" >>/tmp/ShellBrowser-warnings-$$.txt")))
T)
else NIL])
(if (NOT (STREQUAL BROWSER "true"))
then (if (LISTP BROWSER)
then (CHAT 'SHELL NIL (CONCAT (CAR BROWSER)
" '" FilenameOrURL "'"))
else (ShellCommand (CONCAT BROWSER " '" FilenameOrURL "'"
" >>/tmp/ShellBrowser-warnings-$$.txt"))
T)
else (CONCAT "Unable to find a browser to open: " FilenameOrURL)))
else
(LET ((OPENER (ShellOpener))
(UNIXFILE (UNIX-FILE-NAME FilenameOrURL 'INPUT T)))
(if (NOT UNIXFILE)
then (CONCAT "File not found: " FilenameOrURL)
elseif (NOT (STREQUAL OPENER "true"))
then (CL:WITH-OPEN-STREAM
(SHELLSTREAM (OPENSTREAM (CONCAT "{CORE}SHELLOUT" (RAND))
'BOTH))
(ShellCommand (CONCAT OPENER " '" UNIXFILE "'"
" >>/tmp/ShellOpener-warnings-$$.txt")
SHELLSTREAM)
(if (EQ (GETFILEPTR SHELLSTREAM)
0)
then T
else (LET* ((OUTSTRING (ALLOCSTRING (GETFILEPTR SHELLSTREAM)
" ")))
(CL:WITH-OPEN-STREAM (STRINGSTREAM (OPENSTRINGSTREAM OUTSTRING
'OUTPUT))
(SETFILEPTR SHELLSTREAM 0)
(CL:TAGBODY [SETFILEINFO SHELLSTREAM 'ENDOFSTREAMOP
#'(CL:LAMBDA (s)
(GO OUT]
(CL:LOOP (PRINTCCODE (READCCODE SHELLSTREAM)
STRINGSTREAM))
OUT))
OUTSTRING)))
else (CONCAT "Unable to find a file opener to open: " FilenameOrURL])
(PROCESS-COMMAND
[LAMBDA (CMD) (* ; "Edited 17-Jul-2022 08:17 by rmk")
(* ;; "This sets up an asynchronous process and waits until it returns with an exit code. Typically 0 means success.")
(CL:WITH-OPEN-STREAM (PS (CREATE-PROCESS-STREAM CMD))
(BIND CODE WHILE (EQ T (SETQ CODE (OR (SUBRCALL UNIX-HANDLECOMM 7 (fetch (STREAM F1)
of PS))
0))) DO (BLOCK) FINALLY (RETURN CODE])
(SLASHIT
[LAMBDA (X LCASEDIRS NOHOST) (* ; "Edited 23-Sep-2023 15:27 by rmk")
(* ;; "It would also be nice to use the generic unpackfilename/packfilename tools. But packfilename sticks in brackets again, and sticks a dot on when removing the version.")
(* ;; "Perhaps this should be a per file-device operation that maps device names into the local file system.")
(* ;; "This is a first approximation to a utility that converts a filename X on a host whose files physically reside in the local Unix file system into the strings that shell commands can use to reference that file. For now, this just involves replacing directory brackets with /, removing the host, and perhaps lower-casing the directory. It probably should be extended to deal with version number translation, for now it just keeps the ; version. ")
(LET [LASTDIRPOS SLASHED (DIRPOS (ADD1 (OR (STRPOS "}" X)
0]
[SETQ SLASHED (CONCATCODES (FOR I C FROM DIRPOS WHILE (SETQ C (NTHCHARCODE X I))
COLLECT (SELCHARQ C
((< >)
(SETQ LASTDIRPOS I)
(CHARCODE /))
(/ (SETQ LASTDIRPOS I)
C)
C]
(CL:WHEN (AND LCASEDIRS LASTDIRPOS)
(SETQ LASTDIRPOS (ADD1 (IDIFFERENCE LASTDIRPOS DIRPOS)))
(SETQ SLASHED (CONCAT (L-CASE (SUBSTRING SLASHED 1 LASTDIRPOS))
(OR (SUBSTRING SLASHED (ADD1 LASTDIRPOS))
""))))
(CL:IF (OR (EQ DIRPOS 1)
NOHOST)
SLASHED
(CONCAT (SUBSTRING X 1 (SUB1 DIRPOS))
SLASHED))])
(UNIX-FILE-NAME
[LAMBDA (FILE ACCESS COPY) (* ; "Edited 1-Oct-2023 20:52 by rmk")
(* ;; "Tries to return the string that would reference FILE in a Unix shell, for the use of PROCESS-COMMAND and ShellCommand. If VERSION is 1, it assumes that the Unix file is doesn't have the Medley version convention. If FILE does not have a corresponding Unix name, COPY is non-NIL, and ACCESS is INPUT, FILE will be copied to a unix tmp file (with COPY in its name) and that name will be returned.")
(CL:WHEN (\GETSTREAM FILE ACCESS T)
(SETQ FILE (OR (FULLNAME FILE)
FILE))) (* ; "Might catch NODIRCORE")
(CL:WHEN FILE
(SETQ FILE (TRUEFILENAME FILE))
(CL:UNLESS (STREAMP FILE)
[SETQ FILE (\GETFILENAME FILE (SELECTQ ACCESS
(OUTPUT 'NEW)
(INPUT 'OLD)
(NIL (SETQ ACCESS 'INPUT)
'OLD)
(\ILLEGAL.ARG ACCESS])
[SELECTQ (FILENAMEFIELD FILE 'HOST)
(UNIX [SUBSTRING FILE (ADD1 (CONSTANT (NCHARS "{UNIX}"])
(DSK (LET [(VERSION (FILENAMEFIELD FILE 'VERSION]
(SETQ FILE (SLASHIT (PACKFILENAME 'HOST NIL 'VERSION NIL 'BODY FILE)))
(CL:IF (AND VERSION (IGREATERP VERSION 1))
(CONCAT FILE (CL:IF (FILENAMEFIELD FILE 'EXTENSION)
"."
"")
"~" VERSION "~")
FILE)))
(CL:WHEN (AND COPY (EQ ACCESS 'INPUT)
FILE)
(RESETLST
(CL:WHEN (\GETSTREAM FILE 'INPUT T) (* ; "Hope is randaccess")
[RESETSAVE (GETFILEPTR FILE)
`(PROGN (SETFILEPTR ,FILE OLDVALUE])
(COPYFILE FILE (CONCAT "{UNIX}/tmp/medley-" (L-CASE COPY)
"-"
(IDATE)
"-"
(RAND)
(CL:IF (FILENAMEFIELD FILE 'EXTENSION)
(CONCAT "." (FILENAMEFIELD FILE 'EXTENSION))
"")))))])])
)
(PUTPROPS UNIXUTILS FILETYPE CL:COMPILE-FILE)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (764 1137 (ShellCommand 764 . 1137)) (1139 1538 (ShellWhich 1139 . 1538)) (1539 5068 (
ShellBrowser 1549 . 4072) (ShellBrowse 4074 . 5066)))))
(FILEMAP (NIL (1144 1517 (ShellCommand 1144 . 1517)) (1519 1916 (ShellWhich 1519 . 1916)) (1917 14618
(ShellBrowser 1927 . 3675) (ShellBrowse 3677 . 4362) (ShellOpener 4364 . 6052) (ShellOpen 6054 . 9357)
(PROCESS-COMMAND 9359 . 9972) (SLASHIT 9974 . 12016) (UNIX-FILE-NAME 12018 . 14616)))))
STOP

Binary file not shown.

Binary file not shown.

View File

@@ -1,10 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "14-Jul-2022 16:55:53" 
{DSK}<users>kaplan>local>medley3.5>working-medley>library>tedit>TEDIT-WINDOW.;1 180402
(FILECREATED "20-Oct-2023 21:46:58" {MEDLEY}<library>tedit>TEDIT-WINDOW.;7 180689
:PREVIOUS-DATE "14-Jul-2022 11:08:01"
{DSK}<users>kaplan>local>medley3.5>working-medley>library>newtedit>TEDIT-WINDOW.;2)
:EDIT-BY rmk
:CHANGES-TO (FNS TEDIT.DEACTIVATE.WINDOW)
:PREVIOUS-DATE "14-Jul-2022 16:55:53" {MEDLEY}<library>tedit>TEDIT-WINDOW.;5)
(PRETTYCOMPRINT TEDIT-WINDOWCOMS)
@@ -1631,113 +1633,114 @@
(DEFINEQ
(TEDIT.DEACTIVATE.WINDOW
[LAMBDA (W FORCEFLG DISCONNECTONLYFLG) (* ; "Edited 16-Oct-2021 18:51 by rmk:")
[LAMBDA (W FORCEFLG DISCONNECTONLYFLG) (* ; "Edited 20-Oct-2023 21:46 by rmk")
(* ; "Edited 16-Oct-2021 18:51 by rmk:")
(* ;; "Deactivate the various button fns for this window")
(PROG [(TEXTOBJ (WINDOWPROP W 'TEXTOBJ] (* ;
 "Can't be a call to TEXTOBJ, since window may NOT have a textobj on it.")
(replace (TEXTOBJ EDITFINISHEDFLG) of TEXTOBJ with T)
[COND
((AND TEXTOBJ (fetch (TEXTOBJ EDITOPACTIVE) of TEXTOBJ))
(* ;; "If something is going on, DON'T CLOSE THE WINDOW")
(TEDIT.PROMPTPRINT TEXTOBJ "Not closed; edit operation in progress" T)
(RETURN 'DON'T))
((AND TEXTOBJ (PROCESSP (WINDOWPROP W 'PROCESS))
(NOT (fetch (TEXTOBJ EDITFINISHEDFLG) of TEXTOBJ))
(NOT (fetch (TEXTOBJ TXTREADONLY) of TEXTOBJ))
(NOT FORCEFLG)) (* ;
 "This is an un-quit TEdit window. Try to QUIT out of TEdit.")
(COND
((\TEDIT.QUIT W T))
(T
(* ;; "Always return DON'T: If we didn't quit, we don't want to close the window; if we did quit, the window is closed already, and will be reopened to reclose it.")
(RETURN 'DON'T]
(COND
([AND TEXTOBJ (OR FORCEFLG (fetch (TEXTOBJ EDITFINISHEDFLG) of TEXTOBJ)
(fetch (TEXTOBJ TXTREADONLY) of TEXTOBJ)
(NOT (PROCESSP (WINDOWPROP W 'PROCESS]
(* ;
 "Only do this if it's a TEdit window, and has been QUIT out of.")
(CL:WHEN TEXTOBJ
(replace (TEXTOBJ EDITFINISHEDFLG) of TEXTOBJ with T)
[COND
((AND (fetch (TEXTOBJ PROMPTWINDOW) of TEXTOBJ)
(OPENWP (fetch (TEXTOBJ PROMPTWINDOW) of TEXTOBJ)))
(CLEARW (fetch (TEXTOBJ PROMPTWINDOW) of TEXTOBJ]
(\SHOWSEL (fetch (TEXTOBJ SEL) of TEXTOBJ)
NIL NIL) (* ;
 "Before the window is closed, make SURE that the caret is down, or the window will reappear.")
((fetch (TEXTOBJ EDITOPACTIVE) of TEXTOBJ)
(* ;; "If something is going on, DON'T CLOSE THE WINDOW")
(TEDIT.PROMPTPRINT TEXTOBJ "Not closed; edit operation in progress" T)
(RETURN 'DON'T))
((AND (PROCESSP (WINDOWPROP W 'PROCESS))
(NOT (fetch (TEXTOBJ EDITFINISHEDFLG) of TEXTOBJ))
(NOT (fetch (TEXTOBJ TXTREADONLY) of TEXTOBJ))
(NOT FORCEFLG)) (* ;
 "This is an un-quit TEdit window. Try to QUIT out of TEdit.")
(COND
((\TEDIT.QUIT W T))
(T
(* ;; "Always return DON'T: If we didn't quit, we don't want to close the window; if we did quit, the window is closed already, and will be reopened to reclose it.")
(RETURN 'DON'T]
(COND
((AND (\TEDIT.WINDOW.TITLE TEXTOBJ)
(OPENWP (fetch (TEXTOBJ PROMPTWINDOW) of TEXTOBJ))
(OPENWP W)
(EQ W (CAR (fetch (TEXTOBJ \WINDOW) of TEXTOBJ)))
(NOT DISCONNECTONLYFLG))
(\TEDIT.WINDOW.TITLE TEXTOBJ "Edit Window [Inactive]")
([OR FORCEFLG (fetch (TEXTOBJ EDITFINISHEDFLG) of TEXTOBJ)
(fetch (TEXTOBJ TXTREADONLY) of TEXTOBJ)
(NOT (PROCESSP (WINDOWPROP W 'PROCESS] (* ;
 "Only do this if it's a TEdit window, and has been QUIT out of.")
[COND
((AND (fetch (TEXTOBJ PROMPTWINDOW) of TEXTOBJ)
(OPENWP (fetch (TEXTOBJ PROMPTWINDOW) of TEXTOBJ)))
(CLEARW (fetch (TEXTOBJ PROMPTWINDOW) of TEXTOBJ]
(\SHOWSEL (fetch (TEXTOBJ SEL) of TEXTOBJ)
NIL NIL) (* ;
 "Before the window is closed, make SURE that the caret is down, or the window will reappear.")
(COND
((AND (\TEDIT.WINDOW.TITLE TEXTOBJ)
(OPENWP (fetch (TEXTOBJ PROMPTWINDOW) of TEXTOBJ))
(OPENWP W)
(EQ W (CAR (fetch (TEXTOBJ \WINDOW) of TEXTOBJ)))
(NOT DISCONNECTONLYFLG))
(\TEDIT.WINDOW.TITLE TEXTOBJ "Edit Window [Inactive]")
(* ;
 "Reset the window's title to a known 'inactive' value")
))
[COND
((NOT DISCONNECTONLYFLG)
(for PANE in (REVERSE (CDR (fetch (TEXTOBJ \WINDOW) of TEXTOBJ)))
do
(* ;; "Run thru any split-off sub-panes, and reattach them, so we get a whole window back before the end of the world.")
))
[COND
((NOT DISCONNECTONLYFLG)
(for PANE in (REVERSE (CDR (fetch (TEXTOBJ \WINDOW) of TEXTOBJ)))
do
(* ;; "Run thru any split-off sub-panes, and reattach them, so we get a whole window back before the end of the world.")
(\TEDIT.UNSPLITW PANE))
(replace (TEXTOBJ \WINDOW) of TEXTOBJ with NIL)
(COND
((type? STREAM (fetch (TEXTOBJ TXTFILE) of TEXTOBJ))
(\TEDIT.UNSPLITW PANE))
(replace (TEXTOBJ \WINDOW) of TEXTOBJ with NIL)
(COND
((type? STREAM (fetch (TEXTOBJ TXTFILE) of TEXTOBJ))
(* ;
 "Close the file that this window was open on.")
(COND
((NOT (WINDOWPROP W 'TEDIT-CLOSING-FILE T))
(CLOSEF? (fetch (TEXTOBJ TXTFILE) of TEXTOBJ))
(WINDOWPROP W 'TEDIT-CLOSING-FILE NIL]
(WINDOWPROP W 'TEXTOBJ NIL) (* ;
(COND
((NOT (WINDOWPROP W 'TEDIT-CLOSING-FILE T))
(CLOSEF? (fetch (TEXTOBJ TXTFILE) of TEXTOBJ))
(WINDOWPROP W 'TEDIT-CLOSING-FILE NIL]
(WINDOWPROP W 'TEXTOBJ NIL) (* ;
 "Detach the edit data structures from the window")
(WINDOWPROP W 'TEXTSTREAM NIL)
(WINDOWPROP W 'LINES NIL)
(WINDOWPROP W 'THISLINE NIL)
(WINDOWPROP W 'PROCESS.EXITFN NIL)
(WINDOWPROP W 'PROCESS.IDLEFN NIL)
(WINDOWPROP W 'CURSOROUTFN NIL)
(WINDOWPROP W 'CURSORMOVEDFN NIL)
(WINDOWPROP W 'BUTTONEVENTFN 'TOTOPW) (* ; "And the button functions")
(WINDOWPROP W 'RIGHTBUTTONFN 'DOWINDOWCOM)
(WINDOWDELPROP W 'CLOSEFN 'TEDIT.DEACTIVATE.WINDOW)
(WINDOWPROP W 'SCROLLFN NIL)
(WINDOWDELPROP W 'RESHAPEFN '\EDITRESHAPEFN)
(AND (NOT DISCONNECTONLYFLG)
(WINDOWPROP W 'PROCESS)
(\TEDIT.INTERRUPT.SETUP (WINDOWPROP W 'PROCESS)
T)) (* ;
(WINDOWPROP W 'TEXTSTREAM NIL)
(WINDOWPROP W 'LINES NIL)
(WINDOWPROP W 'THISLINE NIL)
(WINDOWPROP W 'PROCESS.EXITFN NIL)
(WINDOWPROP W 'PROCESS.IDLEFN NIL)
(WINDOWPROP W 'CURSOROUTFN NIL)
(WINDOWPROP W 'CURSORMOVEDFN NIL)
(WINDOWPROP W 'BUTTONEVENTFN 'TOTOPW) (* ; "And the button functions")
(WINDOWPROP W 'RIGHTBUTTONFN 'DOWINDOWCOM)
(WINDOWDELPROP W 'CLOSEFN 'TEDIT.DEACTIVATE.WINDOW)
(WINDOWPROP W 'SCROLLFN NIL)
(WINDOWDELPROP W 'RESHAPEFN '\EDITRESHAPEFN)
(AND (NOT DISCONNECTONLYFLG)
(WINDOWPROP W 'PROCESS)
(\TEDIT.INTERRUPT.SETUP (WINDOWPROP W 'PROCESS)
T)) (* ;
 "Make sure any disarmed interrupts are restored.")
(for MENUW in (ATTACHEDWINDOWS W) when (AND (WINDOWPROP MENUW 'TEDITMENU)
(WINDOWPROP MENUW 'TEXTOBJ))
do (* ;
(for MENUW in (ATTACHEDWINDOWS W) when (AND (WINDOWPROP MENUW 'TEDITMENU)
(WINDOWPROP MENUW 'TEXTOBJ))
do (* ;
 "Detach all the TEDITMENU windows that belong to this window.")
(replace (TEXTOBJ EDITFINISHEDFLG) of (TEXTOBJ MENUW) with T)
(replace (TEXTOBJ EDITFINISHEDFLG) of (TEXTOBJ MENUW) with T)
(* ; "Mark it finished")
(WINDOWPROP MENUW 'TEDITMENU NIL) (* ;
(WINDOWPROP MENUW 'TEDITMENU NIL) (* ;
 "And mark it no longer a menu window")
(GIVE.TTY.PROCESS MENUW) (* ;
(GIVE.TTY.PROCESS MENUW) (* ;
 "Then give it a chance to kill itself off")
(DISMISS 300))
(COND
((NOT DISCONNECTONLYFLG)
(GIVE.TTY.PROCESS W)
(DISMISS 300)))
[replace (TEXTOBJ \WINDOW) of TEXTOBJ with (COND
((LISTP (fetch (TEXTOBJ \WINDOW)
of TEXTOBJ))
(DISMISS 300))
(COND
((NOT DISCONNECTONLYFLG)
(GIVE.TTY.PROCESS W)
(DISMISS 300)))
[replace (TEXTOBJ \WINDOW) of TEXTOBJ with (COND
((LISTP (fetch (TEXTOBJ \WINDOW)
of TEXTOBJ))
(* ; "It's a list; remove this window")
(DREMOVE W (fetch (TEXTOBJ \WINDOW)
of TEXTOBJ]
(DREMOVE W (fetch (TEXTOBJ \WINDOW)
of TEXTOBJ]
(* ;
 "Disconnect the window from the edit data structures as well.")
])
)))])
(\TEDIT.REPAINTFN
[LAMBDA (W) (* ; "Edited 30-May-91 23:34 by jds")
@@ -2726,25 +2729,25 @@
(RPAQ? TEDIT.TITLED.ICON.TEMPLATE (CONS TEDITICON (CONS TEDITMASK (CONS TEDIT.ICON.TITLE.REGION NIL))
))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (7116 90052 (TEDIT.CREATEW 7126 . 9899) (\TEDIT.CREATEW.FROM.REGION 9901 . 10881) (
TEDIT.CURSORMOVEDFN 10883 . 20782) (TEDIT.CURSOROUTFN 20784 . 21327) (TEDIT.WINDOW.SETUP 21329 . 23154
) (TEDIT.MINIMAL.WINDOW.SETUP 23156 . 30934) (\TEDIT.ACTIVE.WINDOWP 30936 . 31929) (
\TEDIT.BUTTONEVENTFN 31931 . 55639) (\TEDIT.WINDOW.OPS 55641 . 58853) (\TEDIT.EXPANDFN 58855 . 59418)
(\TEDIT.MAINW 59420 . 60717) (\TEDIT.PRIMARYW 60719 . 61880) (\TEDIT.COPYINSERTFN 61882 . 62678) (
\TEDIT.NEWREGIONFN 62680 . 65196) (\TEDIT.SET.WINDOW.EXTENT 65198 . 70741) (\TEDIT.SHRINK.ICONCREATE
70743 . 72944) (\TEDIT.SHRINKFN 72946 . 73505) (\TEDIT.SPLITW 73507 . 78972) (\TEDIT.UNSPLITW 78974 .
83830) (\TEDIT.WINDOW.SETUP 83832 . 89655) (\SAFE.FIRST 89657 . 90050)) (91382 92293 (TEDITWINDOWP
91392 . 92291)) (92330 95120 (TEDIT.GETINPUT 92340 . 94400) (\TEDIT.MAKEFILENAME 94402 . 95118)) (
95169 101597 (TEDIT.PROMPTPRINT 95179 . 98114) (TEDIT.PROMPTFLASH 98116 . 100025) (
\TEDIT.PROMPT.PAGEFULLFN 100027 . 101595)) (101832 105804 (TEXTSTREAM.TITLE 101842 . 102467) (
\TEDIT.ORIGINAL.WINDOW.TITLE 102469 . 104391) (\TEDIT.WINDOW.TITLE 104393 . 105047) (
\TEXTSTREAM.FILENAME 105049 . 105802)) (105847 147324 (TEDIT.DEACTIVATE.WINDOW 105857 . 112821) (
\TEDIT.REPAINTFN 112823 . 115671) (\TEDIT.RESHAPEFN 115673 . 120517) (\TEDIT.SCROLLFN 120519 . 147322)
) (147366 149497 (\TEDIT.PROCIDLEFN 147376 . 148671) (\TEDIT.PROCENTRYFN 148673 . 149118) (
\TEDIT.PROCEXITFN 149120 . 149495)) (149576 160542 (\EDIT.DOWNCARET 149586 . 150255) (\EDIT.FLIPCARET
150257 . 151776) (TEDIT.FLASHCARET 151778 . 153059) (\EDIT.UPCARET 153061 . 153486) (
TEDIT.NORMALIZECARET 153488 . 159185) (\SETCARET 159187 . 160115) (\TEDIT.CARET 160117 . 160540)) (
160576 174370 (TEDIT.ADD.MENUITEM 160586 . 162877) (TEDIT.DEFAULT.MENUFN 162879 . 171849) (
TEDIT.REMOVE.MENUITEM 171851 . 172848) (\TEDIT.CREATEMENU 172850 . 173287) (\TEDIT.MENU.WHENHELDFN
173289 . 174055) (\TEDIT.MENU.WHENSELECTEDFN 174057 . 174368)))))
(FILEMAP (NIL (7098 90034 (TEDIT.CREATEW 7108 . 9881) (\TEDIT.CREATEW.FROM.REGION 9883 . 10863) (
TEDIT.CURSORMOVEDFN 10865 . 20764) (TEDIT.CURSOROUTFN 20766 . 21309) (TEDIT.WINDOW.SETUP 21311 . 23136
) (TEDIT.MINIMAL.WINDOW.SETUP 23138 . 30916) (\TEDIT.ACTIVE.WINDOWP 30918 . 31911) (
\TEDIT.BUTTONEVENTFN 31913 . 55621) (\TEDIT.WINDOW.OPS 55623 . 58835) (\TEDIT.EXPANDFN 58837 . 59400)
(\TEDIT.MAINW 59402 . 60699) (\TEDIT.PRIMARYW 60701 . 61862) (\TEDIT.COPYINSERTFN 61864 . 62660) (
\TEDIT.NEWREGIONFN 62662 . 65178) (\TEDIT.SET.WINDOW.EXTENT 65180 . 70723) (\TEDIT.SHRINK.ICONCREATE
70725 . 72926) (\TEDIT.SHRINKFN 72928 . 73487) (\TEDIT.SPLITW 73489 . 78954) (\TEDIT.UNSPLITW 78956 .
83812) (\TEDIT.WINDOW.SETUP 83814 . 89637) (\SAFE.FIRST 89639 . 90032)) (91364 92275 (TEDITWINDOWP
91374 . 92273)) (92312 95102 (TEDIT.GETINPUT 92322 . 94382) (\TEDIT.MAKEFILENAME 94384 . 95100)) (
95151 101579 (TEDIT.PROMPTPRINT 95161 . 98096) (TEDIT.PROMPTFLASH 98098 . 100007) (
\TEDIT.PROMPT.PAGEFULLFN 100009 . 101577)) (101814 105786 (TEXTSTREAM.TITLE 101824 . 102449) (
\TEDIT.ORIGINAL.WINDOW.TITLE 102451 . 104373) (\TEDIT.WINDOW.TITLE 104375 . 105029) (
\TEXTSTREAM.FILENAME 105031 . 105784)) (105829 147611 (TEDIT.DEACTIVATE.WINDOW 105839 . 113108) (
\TEDIT.REPAINTFN 113110 . 115958) (\TEDIT.RESHAPEFN 115960 . 120804) (\TEDIT.SCROLLFN 120806 . 147609)
) (147653 149784 (\TEDIT.PROCIDLEFN 147663 . 148958) (\TEDIT.PROCENTRYFN 148960 . 149405) (
\TEDIT.PROCEXITFN 149407 . 149782)) (149863 160829 (\EDIT.DOWNCARET 149873 . 150542) (\EDIT.FLIPCARET
150544 . 152063) (TEDIT.FLASHCARET 152065 . 153346) (\EDIT.UPCARET 153348 . 153773) (
TEDIT.NORMALIZECARET 153775 . 159472) (\SETCARET 159474 . 160402) (\TEDIT.CARET 160404 . 160827)) (
160863 174657 (TEDIT.ADD.MENUITEM 160873 . 163164) (TEDIT.DEFAULT.MENUFN 163166 . 172136) (
TEDIT.REMOVE.MENUITEM 172138 . 173135) (\TEDIT.CREATEMENU 173137 . 173574) (\TEDIT.MENU.WHENHELDFN
173576 . 174342) (\TEDIT.MENU.WHENSELECTEDFN 174344 . 174655)))))
STOP

Binary file not shown.

View File

@@ -0,0 +1,625 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 6-Jul-2023 08:52:09" {WMEDLEY}<library>virtualkeyboards>DANDELIONKEYBOARDS.;3 33795
:EDIT-BY rmk
:CHANGES-TO (VARS DANDELIONKEYBOARDSCOMS)
:PREVIOUS-DATE " 4-Jul-2023 23:18:05" {WMEDLEY}<library>virtualkeyboards>DANDELIONKEYBOARDS.;2
)
(PRETTYCOMPRINT DANDELIONKEYBOARDSCOMS)
(RPAQQ DANDELIONKEYBOARDSCOMS ((ALISTS (VKBD.LOADED-KEYBOARDS DANDELION))))
(ADDTOVAR VKBD.LOADED-KEYBOARDS
(DANDELION (EUROPEAN ((100 (53 197 NOLOCKSHIFT))
(101 (52 196 NOLOCKSHIFT))
(102 (54 198 NOLOCKSHIFT))
(103 (61887 61759 LOCKSHIFT))
(104 (55 199 NOLOCKSHIFT))
(105 (61888 61760 LOCKSHIFT))
(106 (61872 61744 LOCKSHIFT))
(107 (61860 61732 LOCKSHIFT))
(108 (48 126 NOLOCKSHIFT))
(109 (61892 61764 LOCKSHIFT))
(110 (203 207 NOLOCKSHIFT))
(111 (61919 61791 LOCKSHIFT))
(112 (47 191 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (51 195 NOLOCKSHIFT))
(117 (50 194 NOLOCKSHIFT))
(118 (61873 61745 LOCKSHIFT))
(119 (61858 61730 LOCKSHIFT))
(120 (61874 61746 LOCKSHIFT))
(121 (61859 61731 LOCKSHIFT))
(122 (57 202 NOLOCKSHIFT))
(123 (61886 61758 LOCKSHIFT))
(124 (61864 61736 LOCKSHIFT))
(125 (61903 61775 LOCKSHIFT))
(126 (61908 61780 LOCKSHIFT))
(127 (241 225 LOCKSHIFT))
(128 (187 170 LOCKSHIFT))
(129 (249 233 LOCKSHIFT))
(132 (49 193 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (61905 61777 LOCKSHIFT))
(137 (61869 61741 LOCKSHIFT))
(138 (61877 61749 LOCKSHIFT))
(139 (61906 61778 LOCKSHIFT))
(140 (251 90 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (250 234 LOCKSHIFT))
(143 (59 58 LOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (171 186 LOCKSHIFT))
(148 (61904 61776 LOCKSHIFT))
(149 (61920 61792 LOCKSHIFT))
(150 (61921 61793 LOCKSHIFT))
(151 (61857 61729 LOCKSHIFT))
(152 (61863 61735 LOCKSHIFT))
(153 (56 200 NOLOCKSHIFT))
(154 (61900 61772 LOCKSHIFT))
(155 (239 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (246 230 LOCKSHIFT))
(159 (207 176 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DANDELION)
(logic ((100 (53 37 NOLOCKSHIFT))
(101 (52 164 NOLOCKSHIFT))
(102 (54 126 NOLOCKSHIFT))
(103 (61258 61260 NOLOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (61292 61293 NOLOCKSHIFT))
(106 (61271 61270 NOLOCKSHIFT))
(107 (61284 61285 NOLOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (61307 61306 NOLOCKSHIFT))
(110 (45 177 NOLOCKSHIFT))
(111 (61269 61268 LOCKSHIFT))
(112 (172 174 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (51 35 NOLOCKSHIFT))
(117 (50 64 NOLOCKSHIFT))
(118 (61240 61241 NOLOCKSHIFT))
(119 (61234 61235 NOLOCKSHIFT))
(120 (61266 61262 NOLOCKSHIFT))
(121 (61365 61365 NOLOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (61275 61274 NOLOCKSHIFT))
(124 (61300 61299 NOLOCKSHIFT))
(125 (61273 61272 NOLOCKSHIFT))
(126 (61282 61283 NOLOCKSHIFT))
(127 (61256 61257 NOLOCKSHIFT))
(128 (61356 61356 NOLOCKSHIFT))
(129 (93 125 NOLOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (61250 61251 NOLOCKSHIFT))
(137 (61298 61297 NOLOCKSHIFT))
(138 (61305 61303 NOLOCKSHIFT))
(139 (61265 61264 NOLOCKSHIFT))
(140 (61364 61364 NOLOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (61281 233 NOLOCKSHIFT))
(143 (61351 61351 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (61357 61357 NOLOCKSHIFT))
(148 (61279 61278 NOLOCKSHIFT))
(149 (61239 61238 NOLOCKSHIFT))
(150 (61290 61290 NOLOCKSHIFT))
(151 (61263 61261 NOLOCKSHIFT))
(152 (61295 61295 NOLOCKSHIFT))
(153 (56 42 NOLOCKSHIFT))
(154 (61252 61253 NOLOCKSHIFT))
(155 (61254 61255 NOLOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 123 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DANDELION)
(MATH ((100 (53 37 NOLOCKSHIFT))
(101 (52 36 NOLOCKSHIFT))
(102 (54 126 NOLOCKSHIFT))
(103 (61284 61285 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (100 68 LOCKSHIFT))
(106 (174 61245 NOLOCKSHIFT))
(107 (61369 61363 NOLOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (61254 61255 NOLOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (173 61246 LOCKSHIFT))
(112 (47 61300 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (51 35 NOLOCKSHIFT))
(117 (50 64 NOLOCKSHIFT))
(118 (61282 61283 LOCKSHIFT))
(119 (61287 61286 NOLOCKSHIFT))
(120 (61301 61302 NOLOCKSHIFT))
(121 (61351 65 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (175 61247 LOCKSHIFT))
(124 (180 184 LOCKSHIFT))
(125 (172 61244 LOCKSHIFT))
(126 (61256 61257 LOCKSHIFT))
(127 (44 61250 NOLOCKSHIFT))
(128 (61298 61253 NOLOCKSHIFT))
(129 (93 61265 NOLOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (102 70 LOCKSHIFT))
(137 (61356 61362 LOCKSHIFT))
(138 (61254 61291 NOLOCKSHIFT))
(139 (98 61360 NOLOCKSHIFT))
(140 (61309 177 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 61251 NOLOCKSHIFT))
(143 (61299 61252 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (95 94 NOLOCKSHIFT))
(148 (61358 82 LOCKSHIFT))
(149 (61296 61266 NOLOCKSHIFT))
(150 (61305 61303 NOLOCKSHIFT))
(151 (61308 61267 LOCKSHIFT))
(152 (61288 72 LOCKSHIFT))
(153 (56 42 NOLOCKSHIFT))
(154 (61357 61361 NOLOCKSHIFT))
(155 (61292 61293 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 61264 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DANDELION)
(OFFICE ((100 (61397 61381 NOLOCKSHIFT))
(101 (61396 61380 NOLOCKSHIFT))
(102 (61398 61382 NOLOCKSHIFT))
(103 (8557 8554 NOLOCKSHIFT))
(104 (61399 61383 NOLOCKSHIFT))
(105 (61232 8743 NOLOCKSHIFT))
(106 (61346 8571 NOLOCKSHIFT))
(107 (188 86 NOLOCKSHIFT))
(108 (61402 61386 NOLOCKSHIFT))
(109 (210 8738 NOLOCKSHIFT))
(110 (61437 61438 NOLOCKSHIFT))
(111 (163 8558 NOLOCKSHIFT))
(112 (61248 63 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (61395 61379 NOLOCKSHIFT))
(117 (61394 61378 NOLOCKSHIFT))
(118 (185 8553 NOLOCKSHIFT))
(119 (176 8546 NOLOCKSHIFT))
(120 (167 8744 NOLOCKSHIFT))
(121 (97 8745 NOLOCKSHIFT))
(122 (61401 61385 NOLOCKSHIFT))
(123 (162 8570 NOLOCKSHIFT))
(124 (61437 88 NOLOCKSHIFT))
(125 (111 8569 NOLOCKSHIFT))
(126 (61289 8737 NOLOCKSHIFT))
(127 (44 60 NOLOCKSHIFT))
(128 (39 34 NOLOCKSHIFT))
(129 (93 125 NOLOCKSHIFT))
(132 (61393 61377 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (61233 8742 NOLOCKSHIFT))
(137 (61438 67 NOLOCKSHIFT))
(138 (8739 74 NOLOCKSHIFT))
(139 (190 61436 NOLOCKSHIFT))
(140 (189 90 NOLOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (61249 62 NOLOCKSHIFT))
(143 (61352 58 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (95 61280 NOLOCKSHIFT))
(148 (212 8574 NOLOCKSHIFT))
(149 (61354 8573 NOLOCKSHIFT))
(150 (61286 8741 NOLOCKSHIFT))
(151 (165 8572 NOLOCKSHIFT))
(152 (61368 8740 NOLOCKSHIFT))
(153 (61400 61384 NOLOCKSHIFT))
(154 (173 175 NOLOCKSHIFT))
(155 (172 174 NOLOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 123 NOLOCKSHIFT))
(159 (61406 61368 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DANDELION)
(DVORAK ((100 (49 42 NOLOCKSHIFT))
(101 (51 41 NOLOCKSHIFT))
(102 (57 37 NOLOCKSHIFT))
(103 (46 62 NOLOCKSHIFT))
(104 (48 38 NOLOCKSHIFT))
(105 (101 69 LOCKSHIFT))
(106 (103 71 LOCKSHIFT))
(107 (107 75 LOCKSHIFT))
(108 (54 45 NOLOCKSHIFT))
(109 (116 84 LOCKSHIFT))
(110 (56 95 NOLOCKSHIFT))
(111 (108 76 LOCKSHIFT))
(112 (122 90 LOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (53 40 NOLOCKSHIFT))
(117 (55 35 NOLOCKSHIFT))
(118 (44 60 NOLOCKSHIFT))
(119 (63 47 NOLOCKSHIFT))
(120 (111 79 LOCKSHIFT))
(121 (97 65 LOCKSHIFT))
(122 (52 164 NOLOCKSHIFT))
(123 (99 67 LOCKSHIFT))
(124 (113 81 LOCKSHIFT))
(125 (114 82 LOCKSHIFT))
(126 (110 78 LOCKSHIFT))
(127 (119 87 LOCKSHIFT))
(128 (44 186 NOLOCKSHIFT))
(129 (93 125 NOLOCKSHIFT))
(132 (33 64 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (117 85 LOCKSHIFT))
(137 (106 74 LOCKSHIFT))
(138 (104 72 LOCKSHIFT))
(139 (120 88 LOCKSHIFT))
(140 (59 58 NOLOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (118 86 LOCKSHIFT))
(143 (115 83 LOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (169 170 NOLOCKSHIFT))
(148 (112 80 LOCKSHIFT))
(149 (121 89 LOCKSHIFT))
(150 (105 73 LOCKSHIFT))
(151 (102 70 LOCKSHIFT))
(152 (100 68 LOCKSHIFT))
(153 (50 162 NOLOCKSHIFT))
(154 (98 66 LOCKSHIFT))
(155 (109 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 123 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DANDELION)
(GREEK ((100 (53 37 NOLOCKSHIFT))
(101 (52 36 NOLOCKSHIFT))
(102 (54 126 NOLOCKSHIFT))
(103 (9830 69 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (9829 9797 LOCKSHIFT))
(106 (9849 9817 LOCKSHIFT))
(107 (115 9814 LOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (9837 9805 LOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (9843 9811 LOCKSHIFT))
(112 (47 63 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (51 35 NOLOCKSHIFT))
(117 (50 64 NOLOCKSHIFT))
(118 (9853 9821 LOCKSHIFT))
(119 (9835 9803 LOCKSHIFT))
(120 (9846 9814 LOCKSHIFT))
(121 (9825 9793 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (9836 9804 LOCKSHIFT))
(124 (9851 9819 LOCKSHIFT))
(125 (9842 9810 LOCKSHIFT))
(126 (9838 9806 LOCKSHIFT))
(127 (44 60 NOLOCKSHIFT))
(128 (39 34 NOLOCKSHIFT))
(129 (93 125 NOLOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (9850 9818 LOCKSHIFT))
(137 (9841 9809 LOCKSHIFT))
(138 (106 74 LOCKSHIFT))
(139 (9826 66 LOCKSHIFT))
(140 (9833 9801 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 62 NOLOCKSHIFT))
(143 (59 58 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (95 94 NOLOCKSHIFT))
(148 (9845 9813 LOCKSHIFT))
(149 (9848 9816 LOCKSHIFT))
(150 (9828 9796 LOCKSHIFT))
(151 (9852 9820 LOCKSHIFT))
(152 (9834 9802 LOCKSHIFT))
(153 (56 42 NOLOCKSHIFT))
(154 (9840 9808 LOCKSHIFT))
(155 (9839 9807 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 123 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DANDELION)
(ITALIAN ((100 (53 61903 NOLOCKSHIFT))
(101 (52 61886 NOLOCKSHIFT))
(102 (54 61919 NOLOCKSHIFT))
(103 (101 69 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (100 68 LOCKSHIFT))
(106 (117 85 LOCKSHIFT))
(107 (118 86 LOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (107 75 LOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (112 80 LOCKSHIFT))
(112 (204 63 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (51 61872 NOLOCKSHIFT))
(117 (50 61858 NOLOCKSHIFT))
(118 (119 87 LOCKSHIFT))
(119 (113 81 LOCKSHIFT))
(120 (115 83 LOCKSHIFT))
(121 (97 65 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (105 73 LOCKSHIFT))
(124 (120 88 LOCKSHIFT))
(125 (111 79 LOCKSHIFT))
(126 (108 76 LOCKSHIFT))
(127 (44 171 NOLOCKSHIFT))
(128 (39 186 NOLOCKSHIFT))
(129 (93 125 NOLOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (102 70 LOCKSHIFT))
(137 (99 67 LOCKSHIFT))
(138 (106 74 LOCKSHIFT))
(139 (98 66 LOCKSHIFT))
(140 (122 90 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 187 NOLOCKSHIFT))
(143 (59 58 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (95 170 NOLOCKSHIFT))
(148 (114 82 LOCKSHIFT))
(149 (116 84 LOCKSHIFT))
(150 (103 71 LOCKSHIFT))
(151 (121 89 LOCKSHIFT))
(152 (104 72 LOCKSHIFT))
(153 (56 42 NOLOCKSHIFT))
(154 (110 78 LOCKSHIFT))
(155 (109 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 123 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DANDELION)
(SPANISH ((100 (53 61904 NOLOCKSHIFT))
(101 (52 61887 NOLOCKSHIFT))
(102 (54 61920 NOLOCKSHIFT))
(103 (101 69 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (100 68 LOCKSHIFT))
(106 (117 85 LOCKSHIFT))
(107 (118 86 LOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (107 75 LOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (112 80 LOCKSHIFT))
(112 (204 63 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (51 61873 NOLOCKSHIFT))
(117 (50 61858 NOLOCKSHIFT))
(118 (119 87 LOCKSHIFT))
(119 (113 81 LOCKSHIFT))
(120 (115 83 LOCKSHIFT))
(121 (97 65 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (105 73 LOCKSHIFT))
(124 (120 88 LOCKSHIFT))
(125 (111 79 LOCKSHIFT))
(126 (108 76 LOCKSHIFT))
(127 (44 171 NOLOCKSHIFT))
(128 (59 58 NOLOCKSHIFT))
(129 (203 187 NOLOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (102 70 LOCKSHIFT))
(137 (99 67 LOCKSHIFT))
(138 (106 74 LOCKSHIFT))
(139 (98 66 LOCKSHIFT))
(140 (122 90 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 187 NOLOCKSHIFT))
(143 (61900 61772 LOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (161 191 NOLOCKSHIFT))
(148 (114 82 LOCKSHIFT))
(149 (116 84 LOCKSHIFT))
(150 (103 71 LOCKSHIFT))
(151 (121 89 LOCKSHIFT))
(152 (104 72 LOCKSHIFT))
(153 (56 61925 NOLOCKSHIFT))
(154 (110 78 LOCKSHIFT))
(155 (109 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (44 171 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DANDELION)
(FRENCH ((100 (53 61905 NOLOCKSHIFT))
(101 (52 61888 NOLOCKSHIFT))
(102 (54 61921 NOLOCKSHIFT))
(103 (101 69 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (100 68 LOCKSHIFT))
(106 (117 85 LOCKSHIFT))
(107 (118 86 LOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (107 75 LOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (112 80 LOCKSHIFT))
(112 (204 63 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (51 61874 NOLOCKSHIFT))
(117 (50 61859 NOLOCKSHIFT))
(118 (119 87 LOCKSHIFT))
(119 (113 81 LOCKSHIFT))
(120 (115 83 LOCKSHIFT))
(121 (97 65 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (105 73 LOCKSHIFT))
(124 (120 88 LOCKSHIFT))
(125 (111 79 LOCKSHIFT))
(126 (108 76 LOCKSHIFT))
(127 (44 171 NOLOCKSHIFT))
(128 (39 61857 NOLOCKSHIFT))
(129 (61872 61892 LOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (102 70 LOCKSHIFT))
(137 (99 67 LOCKSHIFT))
(138 (106 74 LOCKSHIFT))
(139 (98 66 LOCKSHIFT))
(140 (122 90 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 187 NOLOCKSHIFT))
(143 (59 58 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (61869 61741 LOCKSHIFT))
(148 (114 82 LOCKSHIFT))
(149 (116 84 LOCKSHIFT))
(150 (103 71 LOCKSHIFT))
(151 (121 89 LOCKSHIFT))
(152 (104 72 LOCKSHIFT))
(153 (56 61919 NOLOCKSHIFT))
(154 (110 78 LOCKSHIFT))
(155 (109 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (61873 61877 LOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DANDELION)
(GERMAN ((100 (53 37 NOLOCKSHIFT))
(101 (52 36 NOLOCKSHIFT))
(102 (54 126 NOLOCKSHIFT))
(103 (101 69 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (100 68 LOCKSHIFT))
(106 (117 85 LOCKSHIFT))
(107 (118 86 LOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (107 75 LOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (112 80 LOCKSHIFT))
(112 (251 63 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (51 35 NOLOCKSHIFT))
(117 (50 64 NOLOCKSHIFT))
(118 (119 87 LOCKSHIFT))
(119 (113 81 LOCKSHIFT))
(120 (115 83 LOCKSHIFT))
(121 (97 65 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (105 73 LOCKSHIFT))
(124 (120 88 LOCKSHIFT))
(125 (111 79 LOCKSHIFT))
(126 (108 76 LOCKSHIFT))
(127 (44 60 NOLOCKSHIFT))
(128 (39 34 NOLOCKSHIFT))
(129 (61863 61735 LOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (102 70 LOCKSHIFT))
(137 (99 67 LOCKSHIFT))
(138 (106 74 LOCKSHIFT))
(139 (98 66 LOCKSHIFT))
(140 (122 90 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 62 NOLOCKSHIFT))
(143 (59 58 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (95 94 NOLOCKSHIFT))
(148 (114 82 LOCKSHIFT))
(149 (116 84 LOCKSHIFT))
(150 (103 71 LOCKSHIFT))
(151 (121 89 LOCKSHIFT))
(152 (104 72 LOCKSHIFT))
(153 (56 42 NOLOCKSHIFT))
(154 (110 78 LOCKSHIFT))
(155 (109 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (61908 61780 LOCKSHIFT))
(159 (61925 61797 LOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DANDELION)
(STANDARD-RUSSIAN ((100 (34 52 NOLOCKSHIFT))
(101 (47 51 NOLOCKSHIFT))
(102 (58 53 NOLOCKSHIFT))
(103 (10085 10037 LOCKSHIFT))
(104 (44 54 NOLOCKSHIFT))
(105 (10067 10019 LOCKSHIFT))
(106 (10068 10020 LOCKSHIFT))
(107 (10078 10030 LOCKSHIFT))
(108 (63 57 NOLOCKSHIFT))
(109 (10077 10029 LOCKSHIFT))
(110 (37 48 NOLOCKSHIFT))
(111 (10073 10025 LOCKSHIFT))
(112 (10071 10023 LOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (45 50 NOLOCKSHIFT))
(117 (61352 49 NOLOCKSHIFT))
(118 (10088 10040 LOCKSHIFT))
(119 (10075 10027 LOCKSHIFT))
(120 (10093 10045 LOCKSHIFT))
(121 (10086 10038 LOCKSHIFT))
(122 (95 56 NOLOCKSHIFT))
(123 (10090 10042 LOCKSHIFT))
(124 (10089 10041 LOCKSHIFT))
(125 (10091 10043 LOCKSHIFT))
(126 (10069 10021 LOCKSHIFT))
(127 (10066 10018 LOCKSHIFT))
(128 (10095 10047 LOCKSHIFT))
(129 (10092 10044 LOCKSHIFT))
(132 (167 43 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (10065 10017 LOCKSHIFT))
(137 (10083 10035 LOCKSHIFT))
(138 (10080 10032 LOCKSHIFT))
(139 (10074 10026 LOCKSHIFT))
(140 (10097 10049 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (10096 10048 LOCKSHIFT))
(143 (10072 10024 LOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (41 40 NOLOCKSHIFT))
(148 (10076 10028 LOCKSHIFT))
(149 (10070 10022 LOCKSHIFT))
(150 (10081 10033 LOCKSHIFT))
(151 (10079 10031 LOCKSHIFT))
(152 (10082 10034 LOCKSHIFT))
(153 (46 55 NOLOCKSHIFT))
(154 (10084 10036 LOCKSHIFT))
(155 (10094 10046 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (10087 10039 LOCKSHIFT))
(159 (33 61 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DANDELION)))
(DECLARE%: DONTCOPY
(FILEMAP (NIL)))
STOP

View File

@@ -0,0 +1,624 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 6-Jul-2023 08:52:15" {WMEDLEY}<library>virtualkeyboards>DORADOKEYBOARDS.;4 33578
:EDIT-BY rmk
:CHANGES-TO (VARS DORADOKEYBOARDSCOMS)
:PREVIOUS-DATE " 4-Jul-2023 23:15:23" {WMEDLEY}<library>virtualkeyboards>DORADOKEYBOARDS.;2)
(PRETTYCOMPRINT DORADOKEYBOARDSCOMS)
(RPAQQ DORADOKEYBOARDSCOMS ((ALISTS (VKBD.LOADED-KEYBOARDS DORADO))))
(ADDTOVAR VKBD.LOADED-KEYBOARDS
(DORADO (EUROPEAN ((100 (53 197 NOLOCKSHIFT))
(101 (52 196 NOLOCKSHIFT))
(102 (54 198 NOLOCKSHIFT))
(103 (61887 61759 LOCKSHIFT))
(104 (55 199 NOLOCKSHIFT))
(105 (61888 61760 LOCKSHIFT))
(106 (61872 61744 LOCKSHIFT))
(107 (61860 61732 LOCKSHIFT))
(108 (48 126 NOLOCKSHIFT))
(109 (61892 61764 LOCKSHIFT))
(110 (203 207 NOLOCKSHIFT))
(111 (61919 61791 LOCKSHIFT))
(112 (47 191 NOLOCKSHIFT))
(115 (1 1 NOLOCKSHIFT) . IGNORE)
(116 (51 195 NOLOCKSHIFT))
(117 (50 194 NOLOCKSHIFT))
(118 (61873 61745 LOCKSHIFT))
(119 (61858 61730 LOCKSHIFT))
(120 (61874 61746 LOCKSHIFT))
(121 (61859 61731 LOCKSHIFT))
(122 (57 202 NOLOCKSHIFT))
(123 (61886 61758 LOCKSHIFT))
(124 (61864 61736 LOCKSHIFT))
(125 (61903 61775 LOCKSHIFT))
(126 (61908 61780 LOCKSHIFT))
(127 (241 225 LOCKSHIFT))
(128 (187 170 LOCKSHIFT))
(129 (249 233 LOCKSHIFT))
(132 (49 193 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (61905 61777 LOCKSHIFT))
(137 (61869 61741 LOCKSHIFT))
(138 (61877 61749 LOCKSHIFT))
(139 (61906 61778 LOCKSHIFT))
(140 (251 90 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (250 234 LOCKSHIFT))
(143 (59 58 LOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (171 186 LOCKSHIFT))
(148 (61904 61776 LOCKSHIFT))
(149 (61920 61792 LOCKSHIFT))
(150 (61921 61793 LOCKSHIFT))
(151 (61857 61729 LOCKSHIFT))
(152 (61863 61735 LOCKSHIFT))
(153 (56 200 NOLOCKSHIFT))
(154 (61900 61772 LOCKSHIFT))
(155 (239 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (246 230 LOCKSHIFT))
(159 (207 176 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DORADO)
(logic ((100 (53 37 NOLOCKSHIFT))
(101 (52 164 NOLOCKSHIFT))
(102 (54 126 NOLOCKSHIFT))
(103 (61258 61260 NOLOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (61292 61293 NOLOCKSHIFT))
(106 (61271 61270 NOLOCKSHIFT))
(107 (61284 61285 NOLOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (61307 61306 NOLOCKSHIFT))
(110 (45 177 NOLOCKSHIFT))
(111 (61269 61268 LOCKSHIFT))
(112 (172 174 NOLOCKSHIFT))
(115 (1 1 NOLOCKSHIFT) . IGNORE)
(116 (51 35 NOLOCKSHIFT))
(117 (50 64 NOLOCKSHIFT))
(118 (61240 61241 NOLOCKSHIFT))
(119 (61234 61235 NOLOCKSHIFT))
(120 (61266 61262 NOLOCKSHIFT))
(121 (61365 61365 NOLOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (61275 61274 NOLOCKSHIFT))
(124 (61300 61299 NOLOCKSHIFT))
(125 (61273 61272 NOLOCKSHIFT))
(126 (61282 61283 NOLOCKSHIFT))
(127 (61256 61257 NOLOCKSHIFT))
(128 (61356 61356 NOLOCKSHIFT))
(129 (93 125 NOLOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (61250 61251 NOLOCKSHIFT))
(137 (61298 61297 NOLOCKSHIFT))
(138 (61305 61303 NOLOCKSHIFT))
(139 (61265 61264 NOLOCKSHIFT))
(140 (61364 61364 NOLOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (61281 233 NOLOCKSHIFT))
(143 (61351 61351 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (61357 61357 NOLOCKSHIFT))
(148 (61279 61278 NOLOCKSHIFT))
(149 (61239 61238 NOLOCKSHIFT))
(150 (61290 61290 NOLOCKSHIFT))
(151 (61263 61261 NOLOCKSHIFT))
(152 (61295 61295 NOLOCKSHIFT))
(153 (56 42 NOLOCKSHIFT))
(154 (61252 61253 NOLOCKSHIFT))
(155 (61254 61255 NOLOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 123 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DORADO)
(MATH ((100 (53 37 NOLOCKSHIFT))
(101 (52 36 NOLOCKSHIFT))
(102 (54 126 NOLOCKSHIFT))
(103 (61284 61285 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (100 68 LOCKSHIFT))
(106 (174 61245 NOLOCKSHIFT))
(107 (61369 61363 NOLOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (61254 61255 NOLOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (173 61246 LOCKSHIFT))
(112 (47 61300 NOLOCKSHIFT))
(115 (1 1 NOLOCKSHIFT) . IGNORE)
(116 (51 35 NOLOCKSHIFT))
(117 (50 64 NOLOCKSHIFT))
(118 (61282 61283 LOCKSHIFT))
(119 (61287 61286 NOLOCKSHIFT))
(120 (61301 61302 NOLOCKSHIFT))
(121 (61351 65 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (175 61247 LOCKSHIFT))
(124 (180 184 LOCKSHIFT))
(125 (172 61244 LOCKSHIFT))
(126 (61256 61257 LOCKSHIFT))
(127 (44 61250 NOLOCKSHIFT))
(128 (61298 61253 NOLOCKSHIFT))
(129 (93 61265 NOLOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (102 70 LOCKSHIFT))
(137 (61356 61362 LOCKSHIFT))
(138 (61254 61291 NOLOCKSHIFT))
(139 (98 61360 NOLOCKSHIFT))
(140 (61309 177 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 61251 NOLOCKSHIFT))
(143 (61299 61252 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (95 94 NOLOCKSHIFT))
(148 (61358 82 LOCKSHIFT))
(149 (61296 61266 NOLOCKSHIFT))
(150 (61305 61303 NOLOCKSHIFT))
(151 (61308 61267 LOCKSHIFT))
(152 (61288 72 LOCKSHIFT))
(153 (56 42 NOLOCKSHIFT))
(154 (61357 61361 NOLOCKSHIFT))
(155 (61292 61293 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 61264 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DORADO)
(OFFICE ((100 (61397 61381 NOLOCKSHIFT))
(101 (61396 61380 NOLOCKSHIFT))
(102 (61398 61382 NOLOCKSHIFT))
(103 (8557 8554 NOLOCKSHIFT))
(104 (61399 61383 NOLOCKSHIFT))
(105 (61232 8743 NOLOCKSHIFT))
(106 (61346 8571 NOLOCKSHIFT))
(107 (188 86 NOLOCKSHIFT))
(108 (61402 61386 NOLOCKSHIFT))
(109 (210 8738 NOLOCKSHIFT))
(110 (61437 61438 NOLOCKSHIFT))
(111 (163 8558 NOLOCKSHIFT))
(112 (61248 63 NOLOCKSHIFT))
(115 (1 1 NOLOCKSHIFT) . IGNORE)
(116 (61395 61379 NOLOCKSHIFT))
(117 (61394 61378 NOLOCKSHIFT))
(118 (185 8553 NOLOCKSHIFT))
(119 (176 8546 NOLOCKSHIFT))
(120 (167 8744 NOLOCKSHIFT))
(121 (97 8745 NOLOCKSHIFT))
(122 (61401 61385 NOLOCKSHIFT))
(123 (162 8570 NOLOCKSHIFT))
(124 (61437 88 NOLOCKSHIFT))
(125 (111 8569 NOLOCKSHIFT))
(126 (61289 8737 NOLOCKSHIFT))
(127 (44 60 NOLOCKSHIFT))
(128 (39 34 NOLOCKSHIFT))
(129 (93 125 NOLOCKSHIFT))
(132 (61393 61377 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (61233 8742 NOLOCKSHIFT))
(137 (61438 67 NOLOCKSHIFT))
(138 (8739 74 NOLOCKSHIFT))
(139 (190 61436 NOLOCKSHIFT))
(140 (189 90 NOLOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (61249 62 NOLOCKSHIFT))
(143 (61352 58 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (95 61280 NOLOCKSHIFT))
(148 (212 8574 NOLOCKSHIFT))
(149 (61354 8573 NOLOCKSHIFT))
(150 (61286 8741 NOLOCKSHIFT))
(151 (165 8572 NOLOCKSHIFT))
(152 (61368 8740 NOLOCKSHIFT))
(153 (61400 61384 NOLOCKSHIFT))
(154 (173 175 NOLOCKSHIFT))
(155 (172 174 NOLOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 123 NOLOCKSHIFT))
(159 (61406 61368 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DORADO)
(DVORAK ((100 (49 42 NOLOCKSHIFT))
(101 (51 41 NOLOCKSHIFT))
(102 (57 37 NOLOCKSHIFT))
(103 (46 62 NOLOCKSHIFT))
(104 (48 38 NOLOCKSHIFT))
(105 (101 69 LOCKSHIFT))
(106 (103 71 LOCKSHIFT))
(107 (107 75 LOCKSHIFT))
(108 (54 45 NOLOCKSHIFT))
(109 (116 84 LOCKSHIFT))
(110 (56 95 NOLOCKSHIFT))
(111 (108 76 LOCKSHIFT))
(112 (122 90 LOCKSHIFT))
(115 (1 1 NOLOCKSHIFT) . IGNORE)
(116 (53 40 NOLOCKSHIFT))
(117 (55 35 NOLOCKSHIFT))
(118 (44 60 NOLOCKSHIFT))
(119 (63 47 NOLOCKSHIFT))
(120 (111 79 LOCKSHIFT))
(121 (97 65 LOCKSHIFT))
(122 (52 164 NOLOCKSHIFT))
(123 (99 67 LOCKSHIFT))
(124 (113 81 LOCKSHIFT))
(125 (114 82 LOCKSHIFT))
(126 (110 78 LOCKSHIFT))
(127 (119 87 LOCKSHIFT))
(128 (44 186 NOLOCKSHIFT))
(129 (93 125 NOLOCKSHIFT))
(132 (33 64 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (117 85 LOCKSHIFT))
(137 (106 74 LOCKSHIFT))
(138 (104 72 LOCKSHIFT))
(139 (120 88 LOCKSHIFT))
(140 (59 58 NOLOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (118 86 LOCKSHIFT))
(143 (115 83 LOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (169 170 NOLOCKSHIFT))
(148 (112 80 LOCKSHIFT))
(149 (121 89 LOCKSHIFT))
(150 (105 73 LOCKSHIFT))
(151 (102 70 LOCKSHIFT))
(152 (100 68 LOCKSHIFT))
(153 (50 162 NOLOCKSHIFT))
(154 (98 66 LOCKSHIFT))
(155 (109 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 123 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DORADO)
(GREEK ((100 (53 37 NOLOCKSHIFT))
(101 (52 36 NOLOCKSHIFT))
(102 (54 126 NOLOCKSHIFT))
(103 (9830 69 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (9829 9797 LOCKSHIFT))
(106 (9849 9817 LOCKSHIFT))
(107 (115 9814 LOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (9837 9805 LOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (9843 9811 LOCKSHIFT))
(112 (47 63 NOLOCKSHIFT))
(115 (1 1 NOLOCKSHIFT) . IGNORE)
(116 (51 35 NOLOCKSHIFT))
(117 (50 64 NOLOCKSHIFT))
(118 (9853 9821 LOCKSHIFT))
(119 (9835 9803 LOCKSHIFT))
(120 (9846 9814 LOCKSHIFT))
(121 (9825 9793 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (9836 9804 LOCKSHIFT))
(124 (9851 9819 LOCKSHIFT))
(125 (9842 9810 LOCKSHIFT))
(126 (9838 9806 LOCKSHIFT))
(127 (44 60 NOLOCKSHIFT))
(128 (39 34 NOLOCKSHIFT))
(129 (93 125 NOLOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (9850 9818 LOCKSHIFT))
(137 (9841 9809 LOCKSHIFT))
(138 (106 74 LOCKSHIFT))
(139 (9826 66 LOCKSHIFT))
(140 (9833 9801 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 62 NOLOCKSHIFT))
(143 (59 58 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (95 94 NOLOCKSHIFT))
(148 (9845 9813 LOCKSHIFT))
(149 (9848 9816 LOCKSHIFT))
(150 (9828 9796 LOCKSHIFT))
(151 (9852 9820 LOCKSHIFT))
(152 (9834 9802 LOCKSHIFT))
(153 (56 42 NOLOCKSHIFT))
(154 (9840 9808 LOCKSHIFT))
(155 (9839 9807 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 123 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DORADO)
(ITALIAN ((100 (53 61903 NOLOCKSHIFT))
(101 (52 61886 NOLOCKSHIFT))
(102 (54 61919 NOLOCKSHIFT))
(103 (101 69 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (100 68 LOCKSHIFT))
(106 (117 85 LOCKSHIFT))
(107 (118 86 LOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (107 75 LOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (112 80 LOCKSHIFT))
(112 (204 63 NOLOCKSHIFT))
(115 (1 1 NOLOCKSHIFT) . IGNORE)
(116 (51 61872 NOLOCKSHIFT))
(117 (50 61858 NOLOCKSHIFT))
(118 (119 87 LOCKSHIFT))
(119 (113 81 LOCKSHIFT))
(120 (115 83 LOCKSHIFT))
(121 (97 65 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (105 73 LOCKSHIFT))
(124 (120 88 LOCKSHIFT))
(125 (111 79 LOCKSHIFT))
(126 (108 76 LOCKSHIFT))
(127 (44 171 NOLOCKSHIFT))
(128 (39 186 NOLOCKSHIFT))
(129 (93 125 NOLOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (102 70 LOCKSHIFT))
(137 (99 67 LOCKSHIFT))
(138 (106 74 LOCKSHIFT))
(139 (98 66 LOCKSHIFT))
(140 (122 90 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 187 NOLOCKSHIFT))
(143 (59 58 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (95 170 NOLOCKSHIFT))
(148 (114 82 LOCKSHIFT))
(149 (116 84 LOCKSHIFT))
(150 (103 71 LOCKSHIFT))
(151 (121 89 LOCKSHIFT))
(152 (104 72 LOCKSHIFT))
(153 (56 42 NOLOCKSHIFT))
(154 (110 78 LOCKSHIFT))
(155 (109 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 123 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DORADO)
(SPANISH ((100 (53 61904 NOLOCKSHIFT))
(101 (52 61887 NOLOCKSHIFT))
(102 (54 61920 NOLOCKSHIFT))
(103 (101 69 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (100 68 LOCKSHIFT))
(106 (117 85 LOCKSHIFT))
(107 (118 86 LOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (107 75 LOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (112 80 LOCKSHIFT))
(112 (204 63 NOLOCKSHIFT))
(115 (1 1 NOLOCKSHIFT) . IGNORE)
(116 (51 61873 NOLOCKSHIFT))
(117 (50 61858 NOLOCKSHIFT))
(118 (119 87 LOCKSHIFT))
(119 (113 81 LOCKSHIFT))
(120 (115 83 LOCKSHIFT))
(121 (97 65 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (105 73 LOCKSHIFT))
(124 (120 88 LOCKSHIFT))
(125 (111 79 LOCKSHIFT))
(126 (108 76 LOCKSHIFT))
(127 (44 171 NOLOCKSHIFT))
(128 (59 58 NOLOCKSHIFT))
(129 (203 187 NOLOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (102 70 LOCKSHIFT))
(137 (99 67 LOCKSHIFT))
(138 (106 74 LOCKSHIFT))
(139 (98 66 LOCKSHIFT))
(140 (122 90 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 187 NOLOCKSHIFT))
(143 (61900 61772 LOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (161 191 NOLOCKSHIFT))
(148 (114 82 LOCKSHIFT))
(149 (116 84 LOCKSHIFT))
(150 (103 71 LOCKSHIFT))
(151 (121 89 LOCKSHIFT))
(152 (104 72 LOCKSHIFT))
(153 (56 61925 NOLOCKSHIFT))
(154 (110 78 LOCKSHIFT))
(155 (109 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (44 171 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DORADO)
(FRENCH ((100 (53 61905 NOLOCKSHIFT))
(101 (52 61888 NOLOCKSHIFT))
(102 (54 61921 NOLOCKSHIFT))
(103 (101 69 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (100 68 LOCKSHIFT))
(106 (117 85 LOCKSHIFT))
(107 (118 86 LOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (107 75 LOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (112 80 LOCKSHIFT))
(112 (204 63 NOLOCKSHIFT))
(115 (1 1 NOLOCKSHIFT) . IGNORE)
(116 (51 61874 NOLOCKSHIFT))
(117 (50 61859 NOLOCKSHIFT))
(118 (119 87 LOCKSHIFT))
(119 (113 81 LOCKSHIFT))
(120 (115 83 LOCKSHIFT))
(121 (97 65 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (105 73 LOCKSHIFT))
(124 (120 88 LOCKSHIFT))
(125 (111 79 LOCKSHIFT))
(126 (108 76 LOCKSHIFT))
(127 (44 171 NOLOCKSHIFT))
(128 (39 61857 NOLOCKSHIFT))
(129 (61872 61892 LOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (102 70 LOCKSHIFT))
(137 (99 67 LOCKSHIFT))
(138 (106 74 LOCKSHIFT))
(139 (98 66 LOCKSHIFT))
(140 (122 90 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 187 NOLOCKSHIFT))
(143 (59 58 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (61869 61741 LOCKSHIFT))
(148 (114 82 LOCKSHIFT))
(149 (116 84 LOCKSHIFT))
(150 (103 71 LOCKSHIFT))
(151 (121 89 LOCKSHIFT))
(152 (104 72 LOCKSHIFT))
(153 (56 61919 NOLOCKSHIFT))
(154 (110 78 LOCKSHIFT))
(155 (109 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (61873 61877 LOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DORADO)
(GERMAN ((100 (53 37 NOLOCKSHIFT))
(101 (52 36 NOLOCKSHIFT))
(102 (54 126 NOLOCKSHIFT))
(103 (101 69 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (100 68 LOCKSHIFT))
(106 (117 85 LOCKSHIFT))
(107 (118 86 LOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (107 75 LOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (112 80 LOCKSHIFT))
(112 (251 63 NOLOCKSHIFT))
(115 (1 1 NOLOCKSHIFT) . IGNORE)
(116 (51 35 NOLOCKSHIFT))
(117 (50 64 NOLOCKSHIFT))
(118 (119 87 LOCKSHIFT))
(119 (113 81 LOCKSHIFT))
(120 (115 83 LOCKSHIFT))
(121 (97 65 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (105 73 LOCKSHIFT))
(124 (120 88 LOCKSHIFT))
(125 (111 79 LOCKSHIFT))
(126 (108 76 LOCKSHIFT))
(127 (44 60 NOLOCKSHIFT))
(128 (39 34 NOLOCKSHIFT))
(129 (61863 61735 LOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (102 70 LOCKSHIFT))
(137 (99 67 LOCKSHIFT))
(138 (106 74 LOCKSHIFT))
(139 (98 66 LOCKSHIFT))
(140 (122 90 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 62 NOLOCKSHIFT))
(143 (59 58 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (95 94 NOLOCKSHIFT))
(148 (114 82 LOCKSHIFT))
(149 (116 84 LOCKSHIFT))
(150 (103 71 LOCKSHIFT))
(151 (121 89 LOCKSHIFT))
(152 (104 72 LOCKSHIFT))
(153 (56 42 NOLOCKSHIFT))
(154 (110 78 LOCKSHIFT))
(155 (109 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (61908 61780 LOCKSHIFT))
(159 (61925 61797 LOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DORADO)
(STANDARD-RUSSIAN ((100 (34 52 NOLOCKSHIFT))
(101 (47 51 NOLOCKSHIFT))
(102 (58 53 NOLOCKSHIFT))
(103 (10085 10037 LOCKSHIFT))
(104 (44 54 NOLOCKSHIFT))
(105 (10067 10019 LOCKSHIFT))
(106 (10068 10020 LOCKSHIFT))
(107 (10078 10030 LOCKSHIFT))
(108 (63 57 NOLOCKSHIFT))
(109 (10077 10029 LOCKSHIFT))
(110 (37 48 NOLOCKSHIFT))
(111 (10073 10025 LOCKSHIFT))
(112 (10071 10023 LOCKSHIFT))
(115 (1 1 NOLOCKSHIFT) . IGNORE)
(116 (45 50 NOLOCKSHIFT))
(117 (61352 49 NOLOCKSHIFT))
(118 (10088 10040 LOCKSHIFT))
(119 (10075 10027 LOCKSHIFT))
(120 (10093 10045 LOCKSHIFT))
(121 (10086 10038 LOCKSHIFT))
(122 (95 56 NOLOCKSHIFT))
(123 (10090 10042 LOCKSHIFT))
(124 (10089 10041 LOCKSHIFT))
(125 (10091 10043 LOCKSHIFT))
(126 (10069 10021 LOCKSHIFT))
(127 (10066 10018 LOCKSHIFT))
(128 (10095 10047 LOCKSHIFT))
(129 (10092 10044 LOCKSHIFT))
(132 (167 43 NOLOCKSHIFT))
(133 (92 124 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (10065 10017 LOCKSHIFT))
(137 (10083 10035 LOCKSHIFT))
(138 (10080 10032 LOCKSHIFT))
(139 (10074 10026 LOCKSHIFT))
(140 (10097 10049 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (10096 10048 LOCKSHIFT))
(143 (10072 10024 LOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(145 (41 40 NOLOCKSHIFT))
(148 (10076 10028 LOCKSHIFT))
(149 (10070 10022 LOCKSHIFT))
(150 (10081 10033 LOCKSHIFT))
(151 (10079 10031 LOCKSHIFT))
(152 (10082 10034 LOCKSHIFT))
(153 (46 55 NOLOCKSHIFT))
(154 (10084 10036 LOCKSHIFT))
(155 (10094 10046 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (10087 10039 LOCKSHIFT))
(159 (33 61 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DORADO)))
(DECLARE%: DONTCOPY
(FILEMAP (NIL)))
STOP

View File

@@ -0,0 +1,631 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 6-Jul-2023 08:52:04" {WMEDLEY}<library>virtualkeyboards>DOVEKEYBOARDS.;3 33268
:EDIT-BY rmk
:CHANGES-TO (VARS DOVEKEYBOARDSCOMS)
:PREVIOUS-DATE " 4-Jul-2023 23:19:33" {WMEDLEY}<library>virtualkeyboards>DOVEKEYBOARDS.;2)
(PRETTYCOMPRINT DOVEKEYBOARDSCOMS)
(RPAQQ DOVEKEYBOARDSCOMS ((ALISTS (VKBD.LOADED-KEYBOARDS DOVE))))
(ADDTOVAR VKBD.LOADED-KEYBOARDS
(DOVE (EUROPEAN ((100 (53 197 NOLOCKSHIFT))
(101 (52 196 NOLOCKSHIFT))
(102 (54 198 NOLOCKSHIFT))
(103 (61887 61759 LOCKSHIFT))
(104 (55 199 NOLOCKSHIFT))
(105 (61888 61760 LOCKSHIFT))
(106 (61872 61744 LOCKSHIFT))
(107 (61860 61732 LOCKSHIFT))
(108 (48 126 NOLOCKSHIFT))
(109 (61892 61764 LOCKSHIFT))
(110 (203 207 NOLOCKSHIFT))
(111 (61919 61791 LOCKSHIFT))
(112 (47 191 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (51 195 NOLOCKSHIFT))
(117 (50 194 NOLOCKSHIFT))
(118 (61873 61745 LOCKSHIFT))
(119 (61858 61730 LOCKSHIFT))
(120 (61874 61746 LOCKSHIFT))
(121 (61859 61731 LOCKSHIFT))
(122 (57 202 NOLOCKSHIFT))
(123 (61886 61758 LOCKSHIFT))
(124 (61864 61736 LOCKSHIFT))
(125 (61903 61775 LOCKSHIFT))
(126 (61908 61780 LOCKSHIFT))
(127 (241 225 LOCKSHIFT))
(171 (187 170 LOCKSHIFT))
(129 (249 233 LOCKSHIFT))
(132 (49 193 NOLOCKSHIFT))
(165 (27 27 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (61905 61777 LOCKSHIFT))
(137 (61869 61741 LOCKSHIFT))
(138 (61877 61749 LOCKSHIFT))
(139 (61906 61778 LOCKSHIFT))
(140 (251 90 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (250 234 LOCKSHIFT))
(143 (59 58 LOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(208 (171 186 LOCKSHIFT))
(148 (61904 61776 LOCKSHIFT))
(149 (61920 61792 LOCKSHIFT))
(150 (61921 61793 LOCKSHIFT))
(151 (61857 61729 LOCKSHIFT))
(152 (61863 61735 LOCKSHIFT))
(153 (56 200 NOLOCKSHIFT))
(154 (61900 61772 LOCKSHIFT))
(155 (239 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (246 230 LOCKSHIFT))
(159 (207 176 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DOVE)
(logic ((100 (53 37 NOLOCKSHIFT))
(101 (52 164 NOLOCKSHIFT))
(102 (54 126 NOLOCKSHIFT))
(103 (61258 61260 NOLOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (61292 61293 NOLOCKSHIFT))
(106 (61271 61270 NOLOCKSHIFT))
(107 (61284 61285 NOLOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (61307 61306 NOLOCKSHIFT))
(110 (45 177 NOLOCKSHIFT))
(111 (61269 61268 LOCKSHIFT))
(112 (172 174 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (51 35 NOLOCKSHIFT))
(117 (50 64 NOLOCKSHIFT))
(118 (61240 61241 NOLOCKSHIFT))
(119 (61234 61235 NOLOCKSHIFT))
(120 (61266 61262 NOLOCKSHIFT))
(121 (61365 61365 NOLOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (61275 61274 NOLOCKSHIFT))
(124 (61300 61299 NOLOCKSHIFT))
(125 (61273 61272 NOLOCKSHIFT))
(126 (61282 61283 NOLOCKSHIFT))
(127 (61256 61257 NOLOCKSHIFT))
(171 (61356 61356 NOLOCKSHIFT))
(129 (93 125 NOLOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(165 (27 27 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (61250 61251 NOLOCKSHIFT))
(137 (61298 61297 NOLOCKSHIFT))
(138 (61305 61303 NOLOCKSHIFT))
(139 (61265 61264 NOLOCKSHIFT))
(140 (61364 61364 NOLOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (61281 233 NOLOCKSHIFT))
(143 (61351 61351 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(208 (61357 61357 NOLOCKSHIFT))
(148 (61279 61278 NOLOCKSHIFT))
(149 (61239 61238 NOLOCKSHIFT))
(150 (61290 61290 NOLOCKSHIFT))
(151 (61263 61261 NOLOCKSHIFT))
(152 (61295 61295 NOLOCKSHIFT))
(153 (56 42 NOLOCKSHIFT))
(154 (61252 61253 NOLOCKSHIFT))
(155 (61254 61255 NOLOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 123 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DOVE)
(MATH ((100 (53 37 NOLOCKSHIFT))
(101 (52 36 NOLOCKSHIFT))
(102 (54 126 NOLOCKSHIFT))
(103 (61284 61285 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (100 68 LOCKSHIFT))
(106 (174 61245 NOLOCKSHIFT))
(107 (61369 61363 NOLOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (61254 61255 NOLOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (173 61246 LOCKSHIFT))
(112 (47 61300 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (51 35 NOLOCKSHIFT))
(117 (50 64 NOLOCKSHIFT))
(118 (61282 61283 LOCKSHIFT))
(119 (61287 61286 NOLOCKSHIFT))
(120 (61301 61302 NOLOCKSHIFT))
(121 (61351 65 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (175 61247 LOCKSHIFT))
(124 (180 184 LOCKSHIFT))
(125 (172 61244 LOCKSHIFT))
(126 (61256 61257 LOCKSHIFT))
(127 (44 61250 NOLOCKSHIFT))
(171 (61298 61253 NOLOCKSHIFT))
(129 (93 61265 NOLOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(165 (27 27 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (102 70 LOCKSHIFT))
(137 (61356 61362 LOCKSHIFT))
(138 (61254 61291 NOLOCKSHIFT))
(139 (98 61360 NOLOCKSHIFT))
(140 (61309 177 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 61251 NOLOCKSHIFT))
(143 (61299 61252 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(208 (95 94 NOLOCKSHIFT))
(148 (61358 82 LOCKSHIFT))
(149 (61296 61266 NOLOCKSHIFT))
(150 (61305 61303 NOLOCKSHIFT))
(151 (61308 61267 LOCKSHIFT))
(152 (61288 72 LOCKSHIFT))
(153 (56 42 NOLOCKSHIFT))
(154 (61357 61361 NOLOCKSHIFT))
(155 (61292 61293 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 61264 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DOVE)
(OFFICE ((100 (61397 61381 NOLOCKSHIFT))
(101 (61396 61380 NOLOCKSHIFT))
(102 (61398 61382 NOLOCKSHIFT))
(103 (8557 8554 NOLOCKSHIFT))
(104 (61399 61383 NOLOCKSHIFT))
(105 (61232 8743 NOLOCKSHIFT))
(106 (61346 8571 NOLOCKSHIFT))
(107 (188 86 NOLOCKSHIFT))
(108 (61402 61386 NOLOCKSHIFT))
(109 (210 8738 NOLOCKSHIFT))
(110 (61437 61438 NOLOCKSHIFT))
(111 (163 8558 NOLOCKSHIFT))
(112 (61248 63 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (61395 61379 NOLOCKSHIFT))
(117 (61394 61378 NOLOCKSHIFT))
(118 (185 8553 NOLOCKSHIFT))
(119 (176 8546 NOLOCKSHIFT))
(120 (167 8744 NOLOCKSHIFT))
(121 (97 8745 NOLOCKSHIFT))
(122 (61401 61385 NOLOCKSHIFT))
(123 (162 8570 NOLOCKSHIFT))
(124 (61437 88 NOLOCKSHIFT))
(125 (111 8569 NOLOCKSHIFT))
(126 (61289 8737 NOLOCKSHIFT))
(127 (44 60 NOLOCKSHIFT))
(171 (39 34 NOLOCKSHIFT))
(129 (93 125 NOLOCKSHIFT))
(132 (61393 61377 NOLOCKSHIFT))
(165 (27 27 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (61233 8742 NOLOCKSHIFT))
(137 (61438 67 NOLOCKSHIFT))
(138 (8739 74 NOLOCKSHIFT))
(139 (190 61436 NOLOCKSHIFT))
(140 (189 90 NOLOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (61249 62 NOLOCKSHIFT))
(143 (61352 58 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(208 (95 61280 NOLOCKSHIFT))
(148 (212 8574 NOLOCKSHIFT))
(149 (61354 8573 NOLOCKSHIFT))
(150 (61286 8741 NOLOCKSHIFT))
(151 (165 8572 NOLOCKSHIFT))
(152 (61368 8740 NOLOCKSHIFT))
(153 (61400 61384 NOLOCKSHIFT))
(154 (173 175 NOLOCKSHIFT))
(155 (172 174 NOLOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 123 NOLOCKSHIFT))
(159 (61406 61368 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DOVE)
(DVORAK ((100 (49 42 NOLOCKSHIFT))
(101 (51 41 NOLOCKSHIFT))
(102 (57 37 NOLOCKSHIFT))
(103 (46 62 NOLOCKSHIFT))
(104 (48 38 NOLOCKSHIFT))
(105 (101 69 LOCKSHIFT))
(106 (103 71 LOCKSHIFT))
(107 (107 75 LOCKSHIFT))
(108 (54 45 NOLOCKSHIFT))
(109 (116 84 LOCKSHIFT))
(110 (56 95 NOLOCKSHIFT))
(111 (108 76 LOCKSHIFT))
(112 (122 90 LOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (53 40 NOLOCKSHIFT))
(117 (55 35 NOLOCKSHIFT))
(118 (44 60 NOLOCKSHIFT))
(119 (63 47 NOLOCKSHIFT))
(120 (111 79 LOCKSHIFT))
(121 (97 65 LOCKSHIFT))
(122 (52 164 NOLOCKSHIFT))
(123 (99 67 LOCKSHIFT))
(124 (113 81 LOCKSHIFT))
(125 (114 82 LOCKSHIFT))
(126 (110 78 LOCKSHIFT))
(127 (119 87 LOCKSHIFT))
(171 (44 186 NOLOCKSHIFT))
(129 (93 125 NOLOCKSHIFT))
(132 (33 64 NOLOCKSHIFT))
(165 (27 27 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (117 85 LOCKSHIFT))
(137 (106 74 LOCKSHIFT))
(138 (104 72 LOCKSHIFT))
(139 (120 88 LOCKSHIFT))
(140 (59 58 NOLOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (118 86 LOCKSHIFT))
(143 (115 83 LOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(208 (169 170 NOLOCKSHIFT))
(148 (112 80 LOCKSHIFT))
(149 (121 89 LOCKSHIFT))
(150 (105 73 LOCKSHIFT))
(151 (102 70 LOCKSHIFT))
(152 (100 68 LOCKSHIFT))
(153 (50 162 NOLOCKSHIFT))
(154 (98 66 LOCKSHIFT))
(155 (109 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 123 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DOVE)
(GREEK ((100 (53 37 NOLOCKSHIFT))
(101 (52 36 NOLOCKSHIFT))
(102 (54 126 NOLOCKSHIFT))
(103 (9830 69 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (9829 9797 LOCKSHIFT))
(106 (9849 9817 LOCKSHIFT))
(107 (115 9814 LOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (9837 9805 LOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (9843 9811 LOCKSHIFT))
(112 (47 63 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (51 35 NOLOCKSHIFT))
(117 (50 64 NOLOCKSHIFT))
(118 (9853 9821 LOCKSHIFT))
(119 (9835 9803 LOCKSHIFT))
(120 (9846 9814 LOCKSHIFT))
(121 (9825 9793 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (9836 9804 LOCKSHIFT))
(124 (9851 9819 LOCKSHIFT))
(125 (9842 9810 LOCKSHIFT))
(126 (9838 9806 LOCKSHIFT))
(127 (44 60 NOLOCKSHIFT))
(171 (39 34 NOLOCKSHIFT))
(129 (93 125 NOLOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(165 (27 27 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (9850 9818 LOCKSHIFT))
(137 (9841 9809 LOCKSHIFT))
(138 (106 74 LOCKSHIFT))
(139 (9826 66 LOCKSHIFT))
(140 (9833 9801 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 62 NOLOCKSHIFT))
(143 (59 58 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(208 (95 94 NOLOCKSHIFT))
(148 (9845 9813 LOCKSHIFT))
(149 (9848 9816 LOCKSHIFT))
(150 (9828 9796 LOCKSHIFT))
(151 (9852 9820 LOCKSHIFT))
(152 (9834 9802 LOCKSHIFT))
(153 (56 42 NOLOCKSHIFT))
(154 (9840 9808 LOCKSHIFT))
(155 (9839 9807 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 123 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DOVE)
(ITALIAN ((171 (39 34 NOLOCKSHIFT))
(100 (53 61903 NOLOCKSHIFT))
(101 (52 61886 NOLOCKSHIFT))
(102 (54 61919 NOLOCKSHIFT))
(103 (101 69 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (100 68 LOCKSHIFT))
(106 (117 85 LOCKSHIFT))
(107 (118 86 LOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (107 75 LOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (112 80 LOCKSHIFT))
(112 (95 63 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (51 61872 NOLOCKSHIFT))
(117 (50 61857 NOLOCKSHIFT))
(118 (119 87 LOCKSHIFT))
(119 (113 81 LOCKSHIFT))
(120 (115 83 LOCKSHIFT))
(121 (97 65 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (105 73 LOCKSHIFT))
(124 (120 88 LOCKSHIFT))
(125 (111 79 LOCKSHIFT))
(126 (108 76 LOCKSHIFT))
(127 (44 171 NOLOCKSHIFT))
(171 (39 186 NOLOCKSHIFT))
(129 (93 125 NOLOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(165 (27 27 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (102 70 LOCKSHIFT))
(137 (99 67 LOCKSHIFT))
(138 (106 74 LOCKSHIFT))
(139 (98 66 LOCKSHIFT))
(140 (122 90 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 187 NOLOCKSHIFT))
(143 (59 58 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(208 (95 170 NOLOCKSHIFT))
(148 (114 82 LOCKSHIFT))
(149 (116 84 LOCKSHIFT))
(150 (103 71 LOCKSHIFT))
(151 (121 89 LOCKSHIFT))
(152 (104 72 LOCKSHIFT))
(153 (56 42 NOLOCKSHIFT))
(154 (110 78 LOCKSHIFT))
(155 (109 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (91 123 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DOVE)
(SPANISH ((208 (161 191 NOLOCKSHIFT))
(171 (59 58 NOLOCKSHIFT))
(100 (53 61904 NOLOCKSHIFT))
(101 (52 61887 NOLOCKSHIFT))
(102 (54 61920 NOLOCKSHIFT))
(103 (101 69 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (100 68 LOCKSHIFT))
(106 (117 85 LOCKSHIFT))
(107 (118 86 LOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (107 75 LOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (112 80 LOCKSHIFT))
(112 (95 63 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (51 61873 NOLOCKSHIFT))
(117 (50 61858 NOLOCKSHIFT))
(118 (119 87 LOCKSHIFT))
(119 (113 81 LOCKSHIFT))
(120 (115 83 LOCKSHIFT))
(121 (97 65 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (105 73 LOCKSHIFT))
(124 (120 88 LOCKSHIFT))
(125 (111 79 LOCKSHIFT))
(126 (108 76 LOCKSHIFT))
(127 (44 171 NOLOCKSHIFT))
(171 (59 58 NOLOCKSHIFT))
(129 (185 186 NOLOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(165 (27 27 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (102 70 LOCKSHIFT))
(137 (99 67 LOCKSHIFT))
(138 (106 74 LOCKSHIFT))
(139 (98 66 LOCKSHIFT))
(140 (122 90 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 187 NOLOCKSHIFT))
(143 (61900 61772 LOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(208 (161 191 NOLOCKSHIFT))
(148 (114 82 LOCKSHIFT))
(149 (116 84 LOCKSHIFT))
(150 (103 71 LOCKSHIFT))
(151 (121 89 LOCKSHIFT))
(152 (104 72 LOCKSHIFT))
(153 (56 61925 NOLOCKSHIFT))
(154 (110 78 LOCKSHIFT))
(155 (109 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (169 170 NOLOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DOVE)
(FRENCH ((208 (61869 61741 NOLOCKSHIFT))
(171 (39 61857 NOLOCKSHIFT))
(100 (53 61905 NOLOCKSHIFT))
(101 (52 61888 NOLOCKSHIFT))
(102 (54 61921 NOLOCKSHIFT))
(103 (101 69 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (100 68 LOCKSHIFT))
(106 (117 85 LOCKSHIFT))
(107 (118 86 LOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (107 75 LOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (112 80 LOCKSHIFT))
(112 (95 63 NOLOCKSHIFT))
(115 (1 1 NOLOCKSHIFT) . IGNORE)
(116 (51 61874 NOLOCKSHIFT))
(117 (50 61859 NOLOCKSHIFT))
(118 (119 87 LOCKSHIFT))
(119 (113 81 LOCKSHIFT))
(120 (115 83 LOCKSHIFT))
(121 (97 65 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (105 73 LOCKSHIFT))
(124 (120 88 LOCKSHIFT))
(125 (111 79 LOCKSHIFT))
(126 (108 76 LOCKSHIFT))
(127 (44 171 NOLOCKSHIFT))
(171 (39 61857 NOLOCKSHIFT))
(129 (61872 61892 LOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(165 (27 27 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (102 70 LOCKSHIFT))
(137 (99 67 LOCKSHIFT))
(138 (106 74 LOCKSHIFT))
(139 (98 66 LOCKSHIFT))
(140 (122 90 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 187 NOLOCKSHIFT))
(143 (59 58 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(208 (61869 61741 LOCKSHIFT))
(148 (114 82 LOCKSHIFT))
(149 (116 84 LOCKSHIFT))
(150 (103 71 LOCKSHIFT))
(151 (121 89 LOCKSHIFT))
(152 (104 72 LOCKSHIFT))
(153 (56 61919 NOLOCKSHIFT))
(154 (110 78 LOCKSHIFT))
(155 (109 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (61873 61877 LOCKSHIFT))
(159 (61 43 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DOVE)
(GERMAN ((100 (53 37 NOLOCKSHIFT))
(101 (52 36 NOLOCKSHIFT))
(102 (54 126 NOLOCKSHIFT))
(103 (101 69 LOCKSHIFT))
(104 (55 38 NOLOCKSHIFT))
(105 (100 68 LOCKSHIFT))
(106 (117 85 LOCKSHIFT))
(107 (118 86 LOCKSHIFT))
(108 (48 41 NOLOCKSHIFT))
(109 (107 75 LOCKSHIFT))
(110 (45 45 NOLOCKSHIFT))
(111 (112 80 LOCKSHIFT))
(112 (251 63 NOLOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (51 35 NOLOCKSHIFT))
(117 (50 64 NOLOCKSHIFT))
(118 (119 87 LOCKSHIFT))
(119 (113 81 LOCKSHIFT))
(120 (115 83 LOCKSHIFT))
(121 (97 65 LOCKSHIFT))
(122 (57 40 NOLOCKSHIFT))
(123 (105 73 LOCKSHIFT))
(124 (120 88 LOCKSHIFT))
(125 (111 79 LOCKSHIFT))
(126 (108 76 LOCKSHIFT))
(127 (44 60 NOLOCKSHIFT))
(171 (39 34 NOLOCKSHIFT))
(129 (61863 61735 LOCKSHIFT))
(132 (49 33 NOLOCKSHIFT))
(165 (27 27 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (102 70 LOCKSHIFT))
(137 (99 67 LOCKSHIFT))
(138 (106 74 LOCKSHIFT))
(139 (98 66 LOCKSHIFT))
(140 (122 90 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (46 62 NOLOCKSHIFT))
(143 (59 58 NOLOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(208 (95 94 NOLOCKSHIFT))
(148 (114 82 LOCKSHIFT))
(149 (116 84 LOCKSHIFT))
(150 (103 71 LOCKSHIFT))
(151 (121 89 LOCKSHIFT))
(152 (104 72 LOCKSHIFT))
(153 (56 42 NOLOCKSHIFT))
(154 (110 78 LOCKSHIFT))
(155 (109 77 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (61908 61780 LOCKSHIFT))
(159 (61925 61797 LOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DOVE)
(STANDARD-RUSSIAN ((208 (41 40 NOLOCKSHIFT))
(171 (10073 10025 NOLOCKSHIFT))
(100 (34 52 NOLOCKSHIFT))
(101 (47 51 NOLOCKSHIFT))
(102 (58 53 NOLOCKSHIFT))
(103 (10085 10037 LOCKSHIFT))
(104 (44 54 NOLOCKSHIFT))
(105 (10067 10019 LOCKSHIFT))
(106 (10068 10020 LOCKSHIFT))
(107 (10078 10030 LOCKSHIFT))
(108 (63 57 NOLOCKSHIFT))
(109 (10077 10029 LOCKSHIFT))
(110 (37 48 NOLOCKSHIFT))
(111 (10073 10025 LOCKSHIFT))
(112 (10071 10023 LOCKSHIFT))
(115 (8 8 NOLOCKSHIFT) . IGNORE)
(116 (45 50 NOLOCKSHIFT))
(117 (61352 49 NOLOCKSHIFT))
(118 (10088 10040 LOCKSHIFT))
(119 (10075 10027 LOCKSHIFT))
(120 (10093 10045 LOCKSHIFT))
(121 (10086 10038 LOCKSHIFT))
(122 (95 56 NOLOCKSHIFT))
(123 (10090 10042 LOCKSHIFT))
(124 (10089 10041 LOCKSHIFT))
(125 (10091 10043 LOCKSHIFT))
(126 (10069 10021 LOCKSHIFT))
(127 (10066 10018 LOCKSHIFT))
(171 (10095 10047 LOCKSHIFT))
(129 (10092 10044 LOCKSHIFT))
(132 (167 43 NOLOCKSHIFT))
(165 (27 27 NOLOCKSHIFT) . IGNORE)
(134 (9 9 NOLOCKSHIFT) . IGNORE)
(135 (10065 10017 LOCKSHIFT))
(137 (10083 10035 LOCKSHIFT))
(138 (10080 10032 LOCKSHIFT))
(139 (10074 10026 LOCKSHIFT))
(140 (10097 10049 LOCKSHIFT))
(141 1SHIFTDOWN . 1SHIFTUP)
(142 (10096 10048 LOCKSHIFT))
(143 (10072 10024 LOCKSHIFT))
(144 (13 13 NOLOCKSHIFT) . IGNORE)
(208 (41 40 NOLOCKSHIFT))
(148 (10076 10028 LOCKSHIFT))
(149 (10070 10022 LOCKSHIFT))
(150 (10081 10033 LOCKSHIFT))
(151 (10079 10031 LOCKSHIFT))
(152 (10082 10034 LOCKSHIFT))
(153 (46 55 NOLOCKSHIFT))
(154 (10084 10036 LOCKSHIFT))
(155 (10094 10046 LOCKSHIFT))
(156 LOCKDOWN . LOCKUP)
(157 (32 32 NOLOCKSHIFT) . IGNORE)
(158 (10087 10039 LOCKSHIFT))
(159 (33 61 NOLOCKSHIFT))
(160 2SHIFTDOWN . 2SHIFTUP))
DOVE)))
(DECLARE%: DONTCOPY
(FILEMAP (NIL)))
STOP

View File

@@ -1,13 +1,16 @@
(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")
(FILECREATED "25-May-95 14:32:35" {DSK}<project>medley2.0>library>KEYBOARDEDITOR.;4 51139
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
changes to%: (FNS EDITKEYBOARD VKBD.EDIT.CREATE-DISPLAY)
(FILECREATED " 6-Jul-2023 16:23:12" {WMEDLEY}<library>KEYBOARDEDITOR.;3 50717
previous date%: "25-May-95 11:35:16" {DSK}<project>medley2.0>library>KEYBOARDEDITOR.;2)
:EDIT-BY rmk
:CHANGES-TO (FNS VKBD.EDIT.CREATE-CHARACTERS-MENU)
:PREVIOUS-DATE "25-May-95 14:32:35" {WMEDLEY}<library>KEYBOARDEDITOR.;1)
(* ; "
Copyright (c) 1985, 1987, 1990, 1995 by Venue & Xerox Corporation. All rights reserved.
Copyright (c) 1985, 1987, 1990, 1995 by Venue & Xerox Corporation.
")
(PRETTYCOMPRINT KEYBOARDEDITORCOMS)
@@ -15,14 +18,14 @@ Copyright (c) 1985, 1987, 1990, 1995 by Venue & Xerox Corporation. All rights r
(RPAQQ KEYBOARDEDITORCOMS
((FILES VIRTUALKEYBOARDS)
(COMS
(* ;; "Editor for Configurations -- the description of the physical key layout, which keys are assignable, etc.")
(* ;; "Editor for Configurations -- the description of the physical key layout, which keys are assignable, etc.")
(FNS EDITCONFIGURATION VKBD.CONF.CHANGE-KEY-VALUE VKBD.CONF.DISPLAY-FIELD-VALUE
VKBD.CONF.DISPLAY-INFO-KEYBOARD VKBD.CONF.DISPLAY-KEY-INFO
VKBD.CONF.EDIT-DEFAULT-ASSIGNMENTS VKBD.CONF.ICONFN VKBD.CONF.PARSE-CONFIGURATION)
(BITMAPS VKBD.CONF.ICON))
(* ;; "EEditor for keyboard layouts per se:")
(* ;; "EEditor for keyboard layouts per se:")
(FNS EDITKEYBOARD VKBD.EDIT.ADD-SUBITEM-TO-BACKGROUND-MENU VKBD.EDIT.CREATE-COMMAND-MENU
VKBD.EDIT.CREATE-NON-CHAR-ASSIGMENTS-MENU VKBD.EDIT-KEYBOARD-COMMAND
@@ -459,7 +462,8 @@ Copyright (c) 1985, 1987, 1990, 1995 by Venue & Xerox Corporation. All rights r
ITEMWIDTH _ 29])
(VKBD.EDIT.CREATE-CHARACTERS-MENU
[LAMBDA (CHAR-SET-NUMBER FONT) (* sm "15-Aug-85 12:15")
[LAMBDA (CHAR-SET-NUMBER FONT) (* ; "Edited 6-Jul-2023 16:23 by rmk")
(* sm "15-Aug-85 12:15")
(PROG (EXISTING-MENU-INFO NEW-MENU)
[SETQ EXISTING-MENU-INFO (for CHARSET-FONT-MENU in VKBD.EDIT.CASH-MENUES
thereis (AND (EQP (CAR CHARSET-FONT-MENU)
@@ -468,21 +472,17 @@ Copyright (c) 1985, 1987, 1990, 1995 by Venue & Xerox Corporation. All rights r
FONT]
(if EXISTING-MENU-INFO
then (RETURN (CADDR EXISTING-MENU-INFO)))
(PRINTOUT PROMPTWINDOW T "Wait. Bitmaps for character set " (OCTALSTRING CHAR-SET-NUMBER)
" are being retrieved. ")
(PRINTOUT PROMPTWINDOW T "Retrieving bitmaps for character set " (OCTALSTRING
CHAR-SET-NUMBER))
(SETQ NEW-MENU (create MENU
ITEMS _ (for I from 0 to 255 bind CODE bind ROTATED-I
collect (PROGN (SETQ ROTATED-I (SUB1 (
 VKBD.EDIT.ROTATED-NUMBER
(ADD1 I)
16 16)))
(LIST (GETCHARBITMAP (SETQ CODE
(VKBD.PARSE-CHAR-CODE
(LIST
CHAR-SET-NUMBER
ROTATED-I)))
FONT)
CODE)))
collect (SETQ ROTATED-I (SUB1 (VKBD.EDIT.ROTATED-NUMBER
(ADD1 I)
16 16)))
(SETQ CODE (LOGOR (LLSH CHAR-SET-NUMBER 8)
I))
(LIST (GETCHARBITMAP CODE FONT)
CODE))
MENUCOLUMNS _ 16
CENTERFLG _ T
ITEMHEIGHT _ 25
@@ -717,16 +717,16 @@ Copyright (c) 1985, 1987, 1990, 1995 by Venue & Xerox Corporation. All rights r
("Accented Characters" 241)))
(RPAQQ VKBD.EDIT.MENU-ITEMS (("CharSet" VKBD.EDIT.SWITCH-CHAR-SET-COMMAND "Pops up a menu of all possible character set number. Selecting one will switch the displayed character set."
)
("Stop" VKBD.EDIT.STOP-COMMAND
)
("Stop" VKBD.EDIT.STOP-COMMAND
"Exit from the keyboard editor. Returns the new keyboard, but does not modify the original one."
)
("Quit" VKBD.EDIT.QUIT-COMMAND
)
("Quit" VKBD.EDIT.QUIT-COMMAND
"Exit from the keyboard editor. Modifies the roriginal keyboard and returns it ."
)
("Define" VKBD.EDIT.DEFINE-COMMAND
)
("Define" VKBD.EDIT.DEFINE-COMMAND
"Adds the edited keyboard in its current state to the set of known keyboards."
)))
)))
(RPAQQ VKBD.EDIT.NON-CHAR-ASSIGNMENTS (SHIFT CTRL META LOCK LOCKDOWN LOCKUP EVENT))
@@ -744,27 +744,26 @@ Copyright (c) 1985, 1987, 1990, 1995 by Venue & Xerox Corporation. All rights r
VKBD.EDIT.MASK)
)
(VKBD.EDIT.ADD-SUBITEM-TO-BACKGROUND-MENU (LIST "Edit" '(ADD.PROCESS '(
 VKBD.EDIT-KEYBOARD-COMMAND
T))
"Calls the keyboard editor. Will prompt for name for the new keyboard, and will use the default keyboard as the initial keyboard"
VKBD.EDIT.BACKGROUND-MENU-SUBITEMS)
(VKBD.EDIT.ADD-SUBITEM-TO-BACKGROUND-MENU (LIST "Edit" '(ADD.PROCESS '(VKBD.EDIT-KEYBOARD-COMMAND
T))
"Calls the keyboard editor. Will prompt for name for the new keyboard, and will use the default keyboard as the initial keyboard"
VKBD.EDIT.BACKGROUND-MENU-SUBITEMS)
"Keyboard")
(PUTPROPS KEYBOARDEDITOR COPYRIGHT ("Venue & Xerox Corporation" 1985 1987 1990 1995))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (3451 17311 (EDITCONFIGURATION 3461 . 3784) (VKBD.CONF.CHANGE-KEY-VALUE 3786 . 8411) (
VKBD.CONF.DISPLAY-FIELD-VALUE 8413 . 10186) (VKBD.CONF.DISPLAY-INFO-KEYBOARD 10188 . 12135) (
VKBD.CONF.DISPLAY-KEY-INFO 12137 . 12894) (VKBD.CONF.EDIT-DEFAULT-ASSIGNMENTS 12896 . 14277) (
VKBD.CONF.ICONFN 14279 . 15020) (VKBD.CONF.PARSE-CONFIGURATION 15022 . 17309)) (19637 42746 (
EDITKEYBOARD 19647 . 21947) (VKBD.EDIT.ADD-SUBITEM-TO-BACKGROUND-MENU 21949 . 22875) (
VKBD.EDIT.CREATE-COMMAND-MENU 22877 . 23227) (VKBD.EDIT.CREATE-NON-CHAR-ASSIGMENTS-MENU 23229 . 23692)
(VKBD.EDIT-KEYBOARD-COMMAND 23694 . 25067) (VKBD.EDIT.ASSIGN-CHARACTER 25069 . 27743) (
VKBD.EDIT.ASSIGN-NON-CHARACTER 27745 . 28363) (VKBD.EDIT.CREATE-CHARACTER-SETS-MENU 28365 . 29404) (
VKBD.EDIT.CREATE-CHARACTERS-MENU 29406 . 31987) (VKBD.EDIT.CREATE-DISPLAY 31989 . 35222) (
VKBD.EDIT.DEFINE-COMMAND 35224 . 35626) (VKBD.EDIT.DO-MENU-COMMAND 35628 . 35838) (VKBD.EDIT.ICONFN
35840 . 36489) (VKBD.EDIT.INVERT-IF-LOCKED 36491 . 36924) (VKBD.EDIT.KEYBOARD-REPAINTFN 36926 . 37496)
(VKBD.EDIT.LARGE-WINDOW-REPAINTFN 37498 . 38093) (VKBD.EDIT.MAKE-CURRENT-KEY 38095 . 40147) (
VKBD.EDIT.QUIT-COMMAND 40149 . 40502) (VKBD.EDIT.STOP-COMMAND 40504 . 40730) (
VKBD.EDIT.SWITCH-CHAR-SET-COMMAND 40732 . 41658) (VKBD.EDIT.SWITCH-CHARACTER-SET 41660 . 42443) (
VKBD.EDIT.ROTATED-NUMBER 42445 . 42744)))))
(FILEMAP (NIL (3425 17285 (EDITCONFIGURATION 3435 . 3758) (VKBD.CONF.CHANGE-KEY-VALUE 3760 . 8385) (
VKBD.CONF.DISPLAY-FIELD-VALUE 8387 . 10160) (VKBD.CONF.DISPLAY-INFO-KEYBOARD 10162 . 12109) (
VKBD.CONF.DISPLAY-KEY-INFO 12111 . 12868) (VKBD.CONF.EDIT-DEFAULT-ASSIGNMENTS 12870 . 14251) (
VKBD.CONF.ICONFN 14253 . 14994) (VKBD.CONF.PARSE-CONFIGURATION 14996 . 17283)) (19611 42442 (
EDITKEYBOARD 19621 . 21921) (VKBD.EDIT.ADD-SUBITEM-TO-BACKGROUND-MENU 21923 . 22849) (
VKBD.EDIT.CREATE-COMMAND-MENU 22851 . 23201) (VKBD.EDIT.CREATE-NON-CHAR-ASSIGMENTS-MENU 23203 . 23666)
(VKBD.EDIT-KEYBOARD-COMMAND 23668 . 25041) (VKBD.EDIT.ASSIGN-CHARACTER 25043 . 27717) (
VKBD.EDIT.ASSIGN-NON-CHARACTER 27719 . 28337) (VKBD.EDIT.CREATE-CHARACTER-SETS-MENU 28339 . 29378) (
VKBD.EDIT.CREATE-CHARACTERS-MENU 29380 . 31683) (VKBD.EDIT.CREATE-DISPLAY 31685 . 34918) (
VKBD.EDIT.DEFINE-COMMAND 34920 . 35322) (VKBD.EDIT.DO-MENU-COMMAND 35324 . 35534) (VKBD.EDIT.ICONFN
35536 . 36185) (VKBD.EDIT.INVERT-IF-LOCKED 36187 . 36620) (VKBD.EDIT.KEYBOARD-REPAINTFN 36622 . 37192)
(VKBD.EDIT.LARGE-WINDOW-REPAINTFN 37194 . 37789) (VKBD.EDIT.MAKE-CURRENT-KEY 37791 . 39843) (
VKBD.EDIT.QUIT-COMMAND 39845 . 40198) (VKBD.EDIT.STOP-COMMAND 40200 . 40426) (
VKBD.EDIT.SWITCH-CHAR-SET-COMMAND 40428 . 41354) (VKBD.EDIT.SWITCH-CHARACTER-SET 41356 . 42139) (
VKBD.EDIT.ROTATED-NUMBER 42141 . 42440)))))
STOP

Binary file not shown.

View File

@@ -1,17 +1,17 @@
(DEFINE-FILE-INFO PACKAGE "IL" READTABLE "XCL" BASE 10)
(FILECREATED "22-Dec-2018 22:58:47" 
|{DSK}<Users>kaplan>Local>medley3.5>lispcore>library>VIRTUALKEYBOARDS.;10| 141793
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10)
|changes| |to:| (VARS VIRTUALKEYBOARDSCOMS VKBD.BACKGROUND-MENU-SUBITEMS
VKBD.NON-CHAR-ASSIGNMENTS-LABELS VKBD.WINDOW-MENU-SUBITEMS VKBD.ICON
VKBD.MASK MODEACTIONS)
(RECORDS KEYBOARDCONFIGURATION VIRTUALKEYBOARD)
(FILECREATED " 6-Jul-2023 15:55:10" |{WMEDLEY}<library>VIRTUALKEYBOARDS>VIRTUALKEYBOARDS.;16| 140655
|previous| |date:| "22-Dec-2018 22:52:44"
|{DSK}<Users>kaplan>Local>medley3.5>lispcore>library>VIRTUALKEYBOARDS.;9|)
:EDIT-BY |rmk|
:CHANGES-TO (VARS VIRTUALKEYBOARDSCOMS)
(FNS VKBD.INIT VKBD.LOAD-KEYBOARD-FILE METASHIFT)
:PREVIOUS-DATE "28-Jun-2023 11:52:23" |{WMEDLEY}<library>virtualkeyboards>VIRTUALKEYBOARDS.;9|
)
; Copyright (c) 1985, 1986, 1987, 1988, 1990, 1992, 1993, 1995, 1996, 2017, 2018 by Venue & Xerox Corporation. All rights reserved.
; Copyright (c) 1985-1988, 1990, 1992-1993, 1995-1996, 2017-2018 by Venue & Xerox Corporation.
(PRETTYCOMPRINT VIRTUALKEYBOARDSCOMS)
@@ -50,7 +50,8 @@
UNDERLINE NOTUNDERLINE SUBSCRIPT SUPERSCRIPT SMALLER LARGER MARGINS NOTMARGINS
LOOKS NOTLOOKS F11 NOTF11 F12 NOTF12))
(RECORDS KEYBOARDCONFIGURATION VIRTUALKEYBOARD)
(INITVARS (VKBD.KNOWN-KEYBOARDS NIL))
(INITVARS (VKBD.LOADED-KEYBOARDS NIL)
(VKBD.KNOWN-KEYBOARDS NIL))
(FILES (SOURCE)
KEYBOARDCONFIGS)
(VARS VKBD.BACKGROUND-MENU-SUBITEMS VKBD.NON-CHAR-ASSIGNMENTS-LABELS
@@ -60,6 +61,7 @@
VKBD.KNOWN-KEYBOARDS VKBD.NON-CHAR-ASSIGNMENTS-LABELS VKBD.ICON VKBD.MASK
CURRENTKEYBOARDCONFIG VKBD.CONFIGURATIONS VKBD.COMMONCODELABELS VKBD.COMMONKEYLABELS
VKBD.COMMONDEFAULTASSIGNMENT)
(INITVARS (CURRENTKEYBOARDCONFIG NIL))
(COMS (DECLARE\: FIRST (P (MOVD? '\\KEYBOARDEVENTFN '\\OLDKEYBOARDEVENTFN)))
(INITVARS (\\ORIGINALDEFAULTKEYACTION))
(FNS VKBD.\\KEYBOARDEVENTFN VKBD.RESETKEYACTIONTABLES)
@@ -75,11 +77,12 @@
'DEFAULT)))
(FNS FIXKEYBOARD FIXKEYBOARDCONFIG FIXKEYASSIGNMENTS)
(DECLARE\: DONTEVAL@LOAD DOCOPY (P (VKBD.INIT)))
(COMS (FNS METASHIFT)
(* \;
 "Call new definition if the old one had been called")
(P (AND (MEMB (MACHINETYPE)
'(MAIKO DORADO))
(COMS (P (MOVD? 'METASHIFT 'OLDMETASHIFT))
(FNS METASHIFT)
(* \;
 "Call new definition if the old one had been called")
(P (AND (MEMB (KEYBOARDTYPE)
'(X DORADO))
(EQUAL (KEYACTION 'BLANK-BOTTOM)
'(METADOWN . METAUP))
(METASHIFT T))))
@@ -217,61 +220,34 @@
'DEFAULT)))))))
(VKBD.CREATE-KEYACTION-TABLE
(LAMBDA (NEW-KEYBOARD OLDTABLE) (* \; "Edited 29-Feb-96 12:32 by rmk")
(LAMBDA (NEW-KEYBOARD OLDTABLE) (* \; "Edited 28-Jun-2023 11:52 by rmk")
(* \; "Edited 29-Feb-96 12:32 by rmk")
(PROG (KEYBOARDNAME FOUND KEYACTION-TABLE CONFIG)
(CL:UNLESS (COND
((AND (ATOM NEW-KEYBOARD)
(SETQ FOUND (FINDVIRTUALKEYBOARD NEW-KEYBOARD)))
(SETQ NEW-KEYBOARD FOUND))
((MEMB NEW-KEYBOARD VKBD.KNOWN-KEYBOARDS)))
(* |;;| "Use FOUND to preserve NEW-KEYBOARD for error")
(* |;;| "Use FOUND to preserve NEW-KEYBOARD for error")
(ERROR "INVALID KEYBOARD" NEW-KEYBOARD))
(SETQ KEYBOARDNAME (FETCH (VIRTUALKEYBOARD KEYBOARDNAME) OF NEW-KEYBOARD))
(COND
(OLDTABLE (SETQ KEYACTION-TABLE (RESETKEYACTION OLDTABLE)))
((SETQ KEYACTION-TABLE (GETPROP KEYBOARDNAME 'KEYACTIONTABLE))
(RETURN KEYACTION-TABLE))
(T (SETQ KEYACTION-TABLE (KEYACTIONTABLE))))
(SETQ NEW-KEYBOARD (VKBD.COMPLETE-KEYBOARD NEW-KEYBOARD))
(SETQ CONFIG (VKBD.GET-CONFIGURATION (FETCH (VIRTUALKEYBOARD KEYBOARDCONFIGURATION)
OF NEW-KEYBOARD)))
(FOR KEY-ASSIGNMENT IN (FETCH (VIRTUALKEYBOARD COMPLETEKEYASSIGNMENTS)
OF NEW-KEYBOARD) DO (OLDKEYACTION (CAR
KEY-ASSIGNMENT
)
(CDR KEY-ASSIGNMENT)
KEYACTION-TABLE))
OF NEW-KEYBOARD)))
(FOR KEY-ASSIGNMENT IN (FETCH (VIRTUALKEYBOARD COMPLETEKEYASSIGNMENTS) OF NEW-KEYBOARD)
DO (CL:UNLESS (MEMB (CAR KEY-ASSIGNMENT)
'(31 86))
(OLDKEYACTION (CAR KEY-ASSIGNMENT)
(CDR KEY-ASSIGNMENT)
KEYACTION-TABLE)))
(PUTPROP KEYBOARDNAME 'KEYACTIONTABLE KEYACTION-TABLE)
(RETURN KEYACTION-TABLE))))
(vkbd.windowmenufn
@@ -414,7 +390,9 @@
(setq |BackgroundMenu| nil)))
(VKBD.INIT
(LAMBDA NIL (* \; "Edited 14-Jun-2017 14:22 by kaplan")
(LAMBDA NIL (* \; "Edited 6-Jul-2023 15:14 by rmk")
(* \; "Edited 28-Jun-2023 10:40 by rmk")
(* \; "Edited 14-Jun-2017 14:22 by kaplan")
(* \; "Edited 16-Jun-92 11:14 by kaplan")
(* |;;| "Reads virtual keyboard file for current type (or default type), if it can be found. Keyboards that don't match current keyboard can be displayed but not installed (via PROCESS.KEYBOARD)")
@@ -423,35 +401,22 @@
(SETQ \\ORIGINALDEFAULTKEYACTION (KEYACTIONTABLE \\DEFAULTKEYACTION)))
(SETQ VKBD.COMMONCODELABELS (FOR X IN VKBD.COMMONCHARLABELS
COLLECT (IF (LISTP X)
THEN (IF (SMALLP (CAR X))
THEN X
ELSE (LIST (CHARCODE.DECODE
(CAR X))
(CADR X)))
ELSE (LIST (CHARCODE.DECODE X)
X))))
THEN (IF (SMALLP (CAR X))
THEN X
ELSE (LIST (CHARCODE.DECODE (CAR X))
(CADR X)))
ELSE (LIST (CHARCODE.DECODE X)
X))))
(VKBD.ADD-ITEM-TO-BACKGROUND-MENU "Keyboard" ''(SWITCHKEYBOARDS T NIL)
"Displays a menu for switching keyboards" VKBD.BACKGROUND-MENU-SUBITEMS)
(VKBD.WINDOWMENUINIT)
(LET (FILE (KT (KEYBOARDTYPE)))
(LET ((KT (KEYBOARDTYPE)))
(SETQ CURRENTKEYBOARDCONFIG (VKBD.GET-CONFIGURATION KT))
(COND
((SETQ FILE (COND
((AND KT (FINDFILE (PACK* KT "KEYBOARDS")
T)))
(T (FINDFILE (PACK* DEFAULTVIRTUALKEYBOARDTYPE "KEYBOARDS")
T))))
(VKBD.LOAD-KEYBOARD-FILE FILE)
(CL:WHEN (VKBD.LOAD-KEYBOARD-FILE KT)
(* |;;| "Loading a keyboard file may change our notion of KEYBOARDTYPE, because of new coercion paths. The default keyboard will be added for the new type")
(VKBD.ADD-DEFAULT-KEYBOARD))
(T
(* |;;| "Special printing here to avoid file-not-found error in case where user calls VKBD.LOAD-KEYBOARD-FILE directly")
(PROMPTPRINT "Note: virtual keyboard file for type " (OR (KEYBOARDTYPE)
DEFAULTVIRTUALKEYBOARDTYPE)
" keyboards not found"))))))
(VKBD.ADD-DEFAULT-KEYBOARD)))))
(VKBD.CREATE-DEFAULT-KEYBOARD
@@ -474,9 +439,10 @@
OF CONFIGURATION)))))
(VKBD.ADD-DEFAULT-KEYBOARD
(LAMBDA (KEYBOARDTYPE) (* \; "Edited 23-May-95 17:04 by rmk:")
(LAMBDA (KEYBOARDTYPE) (* \; "Edited 28-Jun-2023 10:45 by rmk")
(* \; "Edited 23-May-95 17:04 by rmk:")
(* |;;;| "It is useful practice to be able to switch back to the original key assignments. Thus the program is adding one special keyboard with the name DEFAULT which is the current keyboardtype's default keyboard.")
(* |;;;| "It is useful practice to be able to switch back to the original key assignments. Thus the program is adding one special keyboard with the name DEFAULT which is the current keyboardtype's default keyboard.")
(SETQ KEYBOARDTYPE (OR KEYBOARDTYPE (KEYBOARDTYPE)))
(BIND DEFAULT WHILE (SETQ DEFAULT (FINDVIRTUALKEYBOARD 'DEFAULT KEYBOARDTYPE))
@@ -504,114 +470,55 @@
THEN (VKBD.LOAD-KEYBOARD-FILE F REDEFINE? DELETE-FIRST? T)))))
(VKBD.LOAD-KEYBOARD-FILE
(LAMBDA (KEYBOARDTYPE REDEFINE? DELETE-CURRENT-DEFINITIONS?)
(* \; "Edited 6-Jul-2023 15:11 by rmk")
(* \; "Edited 4-Jul-2023 23:22 by rmk")
(CL:UNLESS KEYBOARDTYPE (SETQ KEYBOARDTYPE DEFAULTVIRTUALKEYBOARDTYPE))
(LAMBDA (FILENAME REDEFINE? DELETE-CURRENT-DEFINITIONS? PROMPTPRINT)
(* |;;| "Returns T if keyboards of type KEYBOARDTYPE found. Prints prompt warning and returns NIL if not found.")
(* \; "Edited 4-Mar-96 10:53 by rmk")
(* |;;| "Note: Can't switch to READFILE, since it uses OLD-INTERLISP readtable which doesn't honor vertical bars around numeric atoms.")
(LET (FILE (VKBDDIRS (CONS (MEDLEYDIR "library/virtualkeyboards/")
LISPUSERSDIRECTORIES))
(NEWKEYBOARDS (CDR (ASSOC KEYBOARDTYPE VKBD.LOADED-KEYBOARDS))))
(CL:UNLESS NEWKEYBOARDS
(* |;;| "If keyboards of type KEYBOARDTYPE have not previously been loaded, we look for a file <KEYBOARDTYPE>KEYBOARDS (e.g. XKEYBOARDS, SDLKEYBOARDS), defaulting to the directory that VIRTUALKEYBOARDS is coming from. It is assumed that that file will add the desired keyboards to VKBD.LOADED-KEYBOARDS,")
(* |;;| "Note: Can't switch to READFILE, since it uses OLD-INTERLISP readtable which doesn't honor vertical bars around numeric atoms.")
(CL:WHEN (SETQ FILE (FINDFILE (PACK* KEYBOARDTYPE "KEYBOARDS")
T VKBDDIRS))
(LOAD FILE T)
(SETQ NEWKEYBOARDS (CDR (ASSOC KEYBOARDTYPE VKBD.LOADED-KEYBOARDS)))))
(|if| NEWKEYBOARDS
|then| (COND
(DELETE-CURRENT-DEFINITIONS? (SETQ VKBD.KNOWN-KEYBOARDS NEWKEYBOARDS)
(VKBD.ADD-DEFAULT-KEYBOARD))
(T (FOR NEWKEYBOARD KN KC IN NEWKEYBOARDS
DO
(* |;;|
 "To make sure that COMPLETEDASSIGNMENTS cell (or any other new cells) exist--backward compatibility")
(SETQ NEWKEYBOARD (CREATE VIRTUALKEYBOARD USING NEWKEYBOARD))
(SETQ KN (FETCH KEYBOARDNAME OF NEWKEYBOARD))
(SETQ KC (FETCH KEYBOARDCONFIGURATION OF NEWKEYBOARD))
(FOR TAIL OLDKEYBOARD ON VKBD.KNOWN-KEYBOARDS
WHEN (AND (EQ KN (FETCH KEYBOARDNAME OF (SETQ OLDKEYBOARD
(CAR TAIL))))
(EQ KC (FETCH KEYBOARDCONFIGURATION OF OLDKEYBOARD)))
DO
(* |;;| "If REDEFINE?, then replace one with same name and configuration. Otherwise, keep the old one instead of installing the new one.")
(LET ((NEWKEYBOARDS (CL:WITH-OPEN-FILE (STREAM FILENAME :DIRECTION :INPUT)
(BIND KB DATE (*PACKAGE* _ *INTERLISP-PACKAGE*)
(RDTBL _ (FIND-READTABLE "INTERLISP"))
FIRST (SETQ DATE (READ STREAM RDTBL))
(CL:UNLESS (LISTP DATE)
(CL:WHEN (STRINGP DATE)
(SETQ DATE (CONCAT "Keyboards from " (FULLNAME STREAM
)
" [" DATE "]"))
(IF PROMPTPRINT
THEN (PROMPTPRINT DATE)
ELSE (PRINTOUT T DATE T)))
(SETQ DATE NIL)) WHILE (SKIPSEPRCODES STREAM RDTBL)
UNTIL (EQ 'STOP (SETQ KB (READ STREAM RDTBL))) COLLECT
KB
FINALLY (CL:WHEN DATE
(* |;;|
 "Was a LISTP date, must have been a keyboard")
(PUSH DATE $$VAL))))))
(COND
(DELETE-CURRENT-DEFINITIONS? (SETQ VKBD.KNOWN-KEYBOARDS NEWKEYBOARDS)
(VKBD.ADD-DEFAULT-KEYBOARD))
(T (FOR NEWKEYBOARD KN KC IN NEWKEYBOARDS
DO
(* |;;|
"To make sure that COMPLETEDASSIGNMENTS cell (or any other new cells) exist--backward compatibility")
(SETQ NEWKEYBOARD (CREATE VIRTUALKEYBOARD USING NEWKEYBOARD))
(SETQ KN (FETCH KEYBOARDNAME OF NEWKEYBOARD))
(SETQ KC (FETCH KEYBOARDCONFIGURATION OF NEWKEYBOARD))
(FOR TAIL OLDKEYBOARD ON VKBD.KNOWN-KEYBOARDS
WHEN (AND (EQ KN (FETCH KEYBOARDNAME OF (SETQ OLDKEYBOARD
(CAR TAIL))))
(EQ KC (FETCH KEYBOARDCONFIGURATION OF OLDKEYBOARD))
) DO
(* |;;| "If REDEFINE?, then replace one with same name and configuration. Otherwise, keep the old one instead of installing the new one.")
(COND
(REDEFINE? (RPLACA TAIL NEWKEYBOARD))
(T (RETURN))) FINALLY (SETQ
VKBD.KNOWN-KEYBOARDS
(NCONC1
VKBD.KNOWN-KEYBOARDS
NEWKEYBOARD))))
)))))
(COND
(REDEFINE? (RPLACA TAIL NEWKEYBOARD))
(T (RETURN))) FINALLY (SETQ VKBD.KNOWN-KEYBOARDS
(NCONC1 VKBD.KNOWN-KEYBOARDS
NEWKEYBOARD))))))
T
|else| (PROMPTPRINT "Note: Can't find virtual keyboard file for " KEYBOARDTYPE
" keyboards")
NIL))))
(vkbd.store-file-command
(lambda (f) (* \; "Edited 15-Dec-87 16:31 by Snow")
@@ -2412,29 +2319,29 @@
(NOTF12 621))
(DECLARE\: EVAL@COMPILE
(RECORD KEYBOARDCONFIGURATION (CONFIGURATIONNAME KBCDUMMY1 KEYREGIONS KBCDUMMY2 DEFAULTASSIGNMENT
KEYNAMESMAPPING KEYBOARDTYPE KEYLABELS KEYLABELSFONT
BACKGROUNDSHADE KEYBOARDDISPLAYFONT CHARLABELS)
(RECORD KEYBOARDCONFIGURATION (CONFIGURATIONNAME KBCDUMMY1 KEYREGIONS KBCDUMMY2 DEFAULTASSIGNMENT
KEYNAMESMAPPING KEYBOARDTYPE KEYLABELS KEYLABELSFONT
BACKGROUNDSHADE KEYBOARDDISPLAYFONT CHARLABELS)
(* |;;| "Dummy fields so length test still works")
(* |;;| "Dummy fields so length test still works")
(TYPE? (EQLENGTH DATUM (CONSTANT (LENGTH (RECORDFIELDNAMES
'
KEYBOARDCONFIGURATION
)))))
KEYBOARDTYPE _ (KEYBOARDTYPE)
KEYLABELSFONT _ DEFAULTKEYBOARDLABELSFONT BACKGROUNDSHADE _ 23130
KEYBOARDDISPLAYFONT _ DEFAULTKEYBOARDDISPLAYFONT)
(TYPE? (EQLENGTH DATUM (CONSTANT (LENGTH (RECORDFIELDNAMES
'KEYBOARDCONFIGURATION)
))))
KEYBOARDTYPE _ (KEYBOARDTYPE)
KEYLABELSFONT _ DEFAULTKEYBOARDLABELSFONT BACKGROUNDSHADE _ 23130
KEYBOARDDISPLAYFONT _ DEFAULTKEYBOARDDISPLAYFONT)
(RECORD VIRTUALKEYBOARD (KEYBOARDNAME KEYASSIGNMENTS KEYBOARDCONFIGURATION KEYBOARDDISPLAYFONT)
(HASHLINK VIRTUALKEYBOARD (COMPLETEKEYASSIGNMENTS VKBDHASHARRAY 20)))
(HASHLINK VIRTUALKEYBOARD (COMPLETEKEYASSIGNMENTS VKBDHASHARRAY 20)))
)
(DECLARE\: EVAL@COMPILE (GLOBALVARS VKBDHASHARRAY))
(SETUPHASHARRAY 'VKBDHASHARRAY 20)
(RPAQ? VKBD.LOADED-KEYBOARDS NIL)
(RPAQ? VKBD.KNOWN-KEYBOARDS NIL)
(FILESLOAD (SOURCE)
@@ -2485,11 +2392,11 @@
)))))
(RPAQQ VKBD.NON-CHAR-ASSIGNMENTS-LABELS ((SHIFT SHIFT)
(CTRL CTRL)
(META META)
(LOCK LOCK)
(LOCKUP LOCKUP)
(LOCKDOWN LOCKDOWN)))
(CTRL CTRL)
(META META)
(LOCK LOCK)
(LOCKUP LOCKUP)
(LOCKDOWN LOCKDOWN)))
(RPAQQ VKBD.WINDOW-MENU-SUBITEMS
(SUBITEMS ("Switch keyboard" (FUNCTION (LAMBDA (W)
@@ -2549,6 +2456,8 @@
VKBD.NON-CHAR-ASSIGNMENTS-LABELS VKBD.ICON VKBD.MASK CURRENTKEYBOARDCONFIG VKBD.CONFIGURATIONS
VKBD.COMMONCODELABELS VKBD.COMMONKEYLABELS VKBD.COMMONDEFAULTASSIGNMENT)
)
(RPAQ? CURRENTKEYBOARDCONFIG NIL)
(DECLARE\: FIRST
(MOVD? '\\KEYBOARDEVENTFN '\\OLDKEYBOARDEVENTFN)
@@ -2858,18 +2767,18 @@
(RPAQ? MODEKEYS )
(RPAQQ MODEACTIONS (EVENT CTRLUP CTRLDOWN 1SHIFTUP 1SHIFTDOWN 2SHIFTUP 2SHIFTDOWN LOCKUP LOCKDOWN
LOCKTOGGLE METAUP METADOWN FONTUP FONTDOWN FONTTOGGLE USERMODE1UP
USERMODE1DOWN USERMODE1TOGGLE USERMODE2UP USERMODE2DOWN USERMODE2TOGGLE
USERMODE3UP USERMODE3DOWN USERMODE3TOGGLE))
(RPAQQ MODEACTIONS (EVENT CTRLUP CTRLDOWN 1SHIFTUP 1SHIFTDOWN 2SHIFTUP 2SHIFTDOWN LOCKUP LOCKDOWN
LOCKTOGGLE METAUP METADOWN FONTUP FONTDOWN FONTTOGGLE USERMODE1UP
USERMODE1DOWN USERMODE1TOGGLE USERMODE2UP USERMODE2DOWN USERMODE2TOGGLE
USERMODE3UP USERMODE3DOWN USERMODE3TOGGLE))
(DECLARE\: DOEVAL@COMPILE DONTCOPY
(GLOBALVARS MODEKEYS MODEACTIONS)
)
(ADDTOVAR BREAKRESETFORMS ((LAMBDA (K)
(PROCESS.KEYBOARD NIL K))
'DEFAULT))
(PROCESS.KEYBOARD NIL K))
'DEFAULT))
(DEFINEQ
(FIXKEYBOARD
@@ -3390,12 +3299,15 @@
(VKBD.INIT)
)
(MOVD? 'METASHIFT 'OLDMETASHIFT)
(DEFINEQ
(METASHIFT
(LAMBDA FLG (* \; "Edited 16-Jun-92 08:44 by rmk:")
(LAMBDA FLG (* \; "Edited 6-Jul-2023 09:21 by rmk")
(* \; "Edited 16-Jun-92 08:44 by rmk:")
(* |;;| "Sets interpretation of swat key to first arg, where T means meta-shift, NIL means original setting. Returns previous setting. This differs from LLKEY version in that it changes the \\DORADOKEYACTIONS and \\DEFAULTKEYACTION table to insure that the metashift remains in effect across keyboard switches.")
(* |;;| "Sets interpretation of swat key to first arg, where T means meta-shift, NIL means original setting. Returns previous setting. This differs from LLKEY version in that it changes the \\DORADOKEYACTIONS and \\DEFAULTKEYACTION table to insure that the metashift remains in effect across keyboard switches.")
(PROG* ((METASTATUS '(METADOWN . METAUP))
(ARGUMENT (AND (IGREATERP FLG 0)
@@ -3408,19 +3320,19 @@
OLDSETTING)
(SETQ OLDSETTING (KEYACTION 'BLANK-BOTTOM ARGUMENT))
(* |;;|
 "Update \\doradokeyactions table so we don't lose the change when we repalce the keyaction table.")
(* |;;|
 "Update \\doradokeyactions table so we don't lose the change when we repalce the keyaction table.")
(AND (EQ (MACHINETYPE)
'DORADO)
(COND
(ARGUMENT (PUTASSOC 'BLANK-BOTTOM ARGUMENT \\DORADOKEYACTIONS)
(KEYACTION 'BLANK-BOTTOM ARGUMENT \\DEFAULTKEYACTION))
(T (SETQ \\DORADOKEYACTIONS (|for| X |in| \\DORADOKEYACTIONS
|join| (AND (NEQ (CAR X)
'BLANK-BOTTOM)
(LIST X))))
(KEYACTION 'BLANK-BOTTOM NIL \\DEFAULTKEYACTION))))
(CL:WHEN (EQ (KEYBOARDTYPE)
'DORADO)
(COND
(ARGUMENT (PUTASSOC 'BLANK-BOTTOM ARGUMENT \\DORADOKEYACTIONS)
(KEYACTION 'BLANK-BOTTOM ARGUMENT \\DEFAULTKEYACTION))
(T (SETQ \\DORADOKEYACTIONS (|for| X |in| \\DORADOKEYACTIONS
|join| (AND (NEQ (CAR X)
'BLANK-BOTTOM)
(LIST X))))
(KEYACTION 'BLANK-BOTTOM NIL \\DEFAULTKEYACTION))))
(RETURN (COND
((EQUAL OLDSETTING METASTATUS)
T)
@@ -3432,8 +3344,8 @@
(* \; "Call new definition if the old one had been called")
(AND (MEMB (MACHINETYPE)
'(MAIKO DORADO))
(AND (MEMB (KEYBOARDTYPE)
'(X DORADO))
(EQUAL (KEYACTION 'BLANK-BOTTOM)
'(METADOWN . METAUP))
(METASHIFT T))
@@ -3450,38 +3362,38 @@
(PUTPROPS VIRTUALKEYBOARDS COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1987 1988 1990 1992 1993
1995 1996 2017 2018))
(DECLARE\: DONTCOPY
(FILEMAP (NIL (5486 14142 (FINDVIRTUALKEYBOARD 5496 . 8650) (PROCESS.KEYBOARD 8652 . 11328) (
VKBD.CREATE-KEYACTION-TABLE 11330 . 13246) (VKBD.WINDOWMENUFN 13248 . 13515) (VKBD.WINDOWMENUINIT
13517 . 14140)) (14143 19504 (LOADKEYBOARDDISPLAYFONTS 14153 . 19502)) (19613 20837 (DEFINEKEYBOARD
19623 . 20835)) (20838 25256 (VKBD.ADD-ITEM-TO-BACKGROUND-MENU 20848 . 21256) (VKBD.INIT 21258 . 23796
) (VKBD.CREATE-DEFAULT-KEYBOARD 23798 . 24390) (VKBD.ADD-DEFAULT-KEYBOARD 24392 . 25254)) (25257 31597
(VKBD.LOAD-FILE-COMMAND 25267 . 25721) (VKBD.LOAD-KEYBOARD-FILE 25723 . 29558) (
VKBD.STORE-FILE-COMMAND 29560 . 29901) (VKBD.STORE-KEYBOARD-FILE 29903 . 31595)) (31598 40899 (
SWITCHKEYBOARDS 31608 . 33086) (VKBD.POP-MENU-AND-SWITCH-KEYBOARDS 33088 . 33458) (
VKBD.POP-UP-KEYBOARDS-MENU 33460 . 34842) (VKBD.GET-CONFIGURATION 34844 . 35762) (
VKBD.SUBCONFIGURATION 35764 . 40897)) (40900 81185 (VKBD.BUTTONEVENTFN 40910 . 43817) (
VKBD.CENTER-BITMAP-IN-REGION 43819 . 45343) (VKBD.CLEAR-KEY-DISPLAY 45345 . 47476) (
VKBD.CREATE-KEYBOARD-BITMAP 47478 . 49522) (VKBD.CREATE-KEYBOARD-DISPLAY 49524 . 52653) (
VKBD.CURSORMOVEDFN 52655 . 54559) (VKBD.DISPLAY-CHARACTER 54561 . 56519) (VKBD.DISPLAY-EMPTY-KEY-CAP
56521 . 67059) (VKBD.DISPLAY-KEY 67061 . 70268) (VKBD.DISPLAY-KEY-CHARACTERS 70270 . 71463) (
VKBD.DRAW-KEY-CAPS 71465 . 73653) (VKBD.ERASE-FRAME 73655 . 73978) (VKBD.EXTEND-REGION 73980 . 74569)
(VKBD.GET-KEY-AND-REGIONS-OF-CURSOR-POSITION 74571 . 75186) (VKBD.GET-KEY-REGIONS 75188 . 75444) (
VKBD.INVERT-KEY 75446 . 75736) (VKBD.INVERT-REGION 75738 . 76429) (VKBD.KEYBOARD-WINDOW-REPAINTFN
76431 . 78388) (VKBD.LOWER-HALF-REGION 78390 . 78790) (VKBD.POSITION-IS-IN-KEY-REGION 78792 . 79076) (
VKBD.REMOVE-KEYBOARD-COMMAND 79078 . 79535) (VKBD.UNION-REGIONS 79537 . 80682) (VKBD.UPPER-HALF-REGION
80684 . 81183)) (81186 100744 (VKBD.KEY-ASSOC 81196 . 81696) (VKBD.CHAR-ASSIGNMENTP 81698 . 81862) (
VKBD.COMPLETE-KEYBOARD 81864 . 84523) (VKBD.CTRL-ASSIGNMENTP 84525 . 84768) (VKBD.EVENT-ASSIGNMENTP
84770 . 85010) (VKBD.META-ASSIGNMENTP 85012 . 85255) (VKBD.FRAME-KEY 85257 . 87134) (
VKBD.GET-CURRENT-KEY-ASSIGNMENT 87136 . 87505) (VKBD.GET-NON-CHAR-LABEL 87507 . 88162) (VKBD.ICONFN
88164 . 88900) (VKBD.INVERT-LOCK-KEYS 88902 . 89580) (VKBD.INVERT-SHIFT-KEYS 89582 . 90264) (
VKBD.TRANSLATE-KEY-ID 90266 . 90945) (VKBD.KEY-ID-TO-KEY-NAMES 90947 . 91433) (
VKBD.KEYBOARD-IS-KEYBOARDTYPE-KEYBOARD 91435 . 92033) (VKBD.LOCK-ASSIGNMENTP 92035 . 92482) (
VKBD.LOCK-KEYP 92484 . 92802) (VKBD.LOCK/NOLOCK 92804 . 92963) (VKBD.LOCKDOWN-ASSIGNMENTP 92965 .
93259) (VKBD.LOCKUP-ASSIGNMENTP 93261 . 93551) (VKBD.PARSE-CHAR-CODE 93553 . 94052) (
VKBD.PARSE-KEY-ASSIGNMENT 94054 . 97510) (VKBD.RESET-KEYBOARD-WINDOW 97512 . 98105) (
VKBD.SEND-CHARACTER 98107 . 99616) (VKBD.SHIFT-ASSIGNMENTP 99618 . 100012) (VKBD.SHIFTED-CHAR 100014
. 100172) (VKBD.UNDEFINE-KEYBOARD 100174 . 100581) (VKBD.UNSHIFTED-CHAR 100583 . 100742)) (113812
116258 (VKBD.\\KEYBOARDEVENTFN 113822 . 115025) (VKBD.RESETKEYACTIONTABLES 115027 . 116256)) (116364
122515 (NEWKEYACTION 116374 . 122513)) (123170 139358 (FIXKEYBOARD 123180 . 124300) (FIXKEYBOARDCONFIG
124302 . 131526) (FIXKEYASSIGNMENTS 131528 . 139356)) (139411 141267 (METASHIFT 139421 . 141265)))))
(FILEMAP (NIL (5390 13914 (FINDVIRTUALKEYBOARD 5400 . 8554) (PROCESS.KEYBOARD 8556 . 11232) (
VKBD.CREATE-KEYACTION-TABLE 11234 . 13018) (VKBD.WINDOWMENUFN 13020 . 13287) (VKBD.WINDOWMENUINIT
13289 . 13912)) (13915 19276 (LOADKEYBOARDDISPLAYFONTS 13925 . 19274)) (19385 20609 (DEFINEKEYBOARD
19395 . 20607)) (20610 24555 (VKBD.ADD-ITEM-TO-BACKGROUND-MENU 20620 . 21028) (VKBD.INIT 21030 . 22982
) (VKBD.CREATE-DEFAULT-KEYBOARD 22984 . 23576) (VKBD.ADD-DEFAULT-KEYBOARD 23578 . 24553)) (24556 30484
(VKBD.LOAD-FILE-COMMAND 24566 . 25020) (VKBD.LOAD-KEYBOARD-FILE 25022 . 28445) (
VKBD.STORE-FILE-COMMAND 28447 . 28788) (VKBD.STORE-KEYBOARD-FILE 28790 . 30482)) (30485 39786 (
SWITCHKEYBOARDS 30495 . 31973) (VKBD.POP-MENU-AND-SWITCH-KEYBOARDS 31975 . 32345) (
VKBD.POP-UP-KEYBOARDS-MENU 32347 . 33729) (VKBD.GET-CONFIGURATION 33731 . 34649) (
VKBD.SUBCONFIGURATION 34651 . 39784)) (39787 80072 (VKBD.BUTTONEVENTFN 39797 . 42704) (
VKBD.CENTER-BITMAP-IN-REGION 42706 . 44230) (VKBD.CLEAR-KEY-DISPLAY 44232 . 46363) (
VKBD.CREATE-KEYBOARD-BITMAP 46365 . 48409) (VKBD.CREATE-KEYBOARD-DISPLAY 48411 . 51540) (
VKBD.CURSORMOVEDFN 51542 . 53446) (VKBD.DISPLAY-CHARACTER 53448 . 55406) (VKBD.DISPLAY-EMPTY-KEY-CAP
55408 . 65946) (VKBD.DISPLAY-KEY 65948 . 69155) (VKBD.DISPLAY-KEY-CHARACTERS 69157 . 70350) (
VKBD.DRAW-KEY-CAPS 70352 . 72540) (VKBD.ERASE-FRAME 72542 . 72865) (VKBD.EXTEND-REGION 72867 . 73456)
(VKBD.GET-KEY-AND-REGIONS-OF-CURSOR-POSITION 73458 . 74073) (VKBD.GET-KEY-REGIONS 74075 . 74331) (
VKBD.INVERT-KEY 74333 . 74623) (VKBD.INVERT-REGION 74625 . 75316) (VKBD.KEYBOARD-WINDOW-REPAINTFN
75318 . 77275) (VKBD.LOWER-HALF-REGION 77277 . 77677) (VKBD.POSITION-IS-IN-KEY-REGION 77679 . 77963) (
VKBD.REMOVE-KEYBOARD-COMMAND 77965 . 78422) (VKBD.UNION-REGIONS 78424 . 79569) (VKBD.UPPER-HALF-REGION
79571 . 80070)) (80073 99631 (VKBD.KEY-ASSOC 80083 . 80583) (VKBD.CHAR-ASSIGNMENTP 80585 . 80749) (
VKBD.COMPLETE-KEYBOARD 80751 . 83410) (VKBD.CTRL-ASSIGNMENTP 83412 . 83655) (VKBD.EVENT-ASSIGNMENTP
83657 . 83897) (VKBD.META-ASSIGNMENTP 83899 . 84142) (VKBD.FRAME-KEY 84144 . 86021) (
VKBD.GET-CURRENT-KEY-ASSIGNMENT 86023 . 86392) (VKBD.GET-NON-CHAR-LABEL 86394 . 87049) (VKBD.ICONFN
87051 . 87787) (VKBD.INVERT-LOCK-KEYS 87789 . 88467) (VKBD.INVERT-SHIFT-KEYS 88469 . 89151) (
VKBD.TRANSLATE-KEY-ID 89153 . 89832) (VKBD.KEY-ID-TO-KEY-NAMES 89834 . 90320) (
VKBD.KEYBOARD-IS-KEYBOARDTYPE-KEYBOARD 90322 . 90920) (VKBD.LOCK-ASSIGNMENTP 90922 . 91369) (
VKBD.LOCK-KEYP 91371 . 91689) (VKBD.LOCK/NOLOCK 91691 . 91850) (VKBD.LOCKDOWN-ASSIGNMENTP 91852 .
92146) (VKBD.LOCKUP-ASSIGNMENTP 92148 . 92438) (VKBD.PARSE-CHAR-CODE 92440 . 92939) (
VKBD.PARSE-KEY-ASSIGNMENT 92941 . 96397) (VKBD.RESET-KEYBOARD-WINDOW 96399 . 96992) (
VKBD.SEND-CHARACTER 96994 . 98503) (VKBD.SHIFT-ASSIGNMENTP 98505 . 98899) (VKBD.SHIFTED-CHAR 98901 .
99059) (VKBD.UNDEFINE-KEYBOARD 99061 . 99468) (VKBD.UNSHIFTED-CHAR 99470 . 99629)) (112553 114999 (
VKBD.\\KEYBOARDEVENTFN 112563 . 113766) (VKBD.RESETKEYACTIONTABLES 113768 . 114997)) (115105 121256 (
NEWKEYACTION 115115 . 121254)) (121893 138081 (FIXKEYBOARD 121903 . 123023) (FIXKEYBOARDCONFIG 123025
. 130249) (FIXKEYASSIGNMENTS 130251 . 138079)) (138168 140132 (METASHIFT 138178 . 140130)))))
STOP

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,27 +1,26 @@
(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")
(FILECREATED "11-Dec-87 14:48:16" {DSK}<XAVIER>COMMON-MAKE.;5 15290
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
changes to%: (VARS COMMON-MAKECOMS)
(FNS COMMON-FILE-COMMAND COMMON-MAKEFILE)
(PROPS (COMMON-MAKE MAKEFILE-ENVIRONMENT))
(FILECREATED "13-Oct-2023 16:40:48" {LU}COMMON-MAKE.;2 14315
previous date%: "11-Dec-87 12:53:46" {DSK}<XAVIER>COMMON-MAKE.;1)
:EDIT-BY "mth"
:CHANGES-TO (VARS COMMON-MAKECOMS)
:PREVIOUS-DATE "11-Dec-87 14:48:16" {LU}COMMON-MAKE.;1)
(* "
Copyright (c) 1987 by Unisys Corp.. All rights reserved.
")
(PRETTYCOMPRINT COMMON-MAKECOMS)
(RPAQQ COMMON-MAKECOMS ((* FUNCTIONS TO HANDLE WRITING STANDARD COMMONLISP SOURCE FILES)
(RPAQQ COMMON-MAKECOMS [
(* ;; "FUNCTIONS TO HANDLE WRITING STANDARD COMMONLISP SOURCE FILES")
(FNS COMMON-FILE-COMMAND COMMON-MAKEFILE)
(PROP MAKEFILE-ENVIRONMENT COMMON-MAKE)
(EDITHIST COMMON-MAKE)))
(DECLARE%: DONTCOPY (ALISTS (EDITHISTALIST COMMON-MAKE])
(* FUNCTIONS TO HANDLE WRITING STANDARD COMMONLISP SOURCE FILES)
(* ;; "FUNCTIONS TO HANDLE WRITING STANDARD COMMONLISP SOURCE FILES")
(DEFINEQ
@@ -227,30 +226,20 @@ Copyright (c) 1987 by Unisys Corp.. All rights reserved.
(CLOSEF *STANDARD-OUTPUT*])
)
(PUTPROPS COMMON-MAKE MAKEFILE-ENVIRONMENT (:READTABLE "INTERLISP" :PACKAGE "INTERLISP"))
(PUTPROPS COMMON-MAKE MAKEFILE-ENVIRONMENT (:READTABLE "INTERLISP" :PACKAGE "INTERLISP"))
(DECLARE%: DONTCOPY
(ADDTOVAR EDITHISTALIST (COMMON-MAKE ("11-Dec-87 12:54:22" DJVB {DSK}<XAVIER>COMMON-MAKE.;1
(COMMON-FILE-COMMAND COMMON-MAKEFILE))
("11-Dec-87 13:35:35" DJVB {DSK}<XAVIER>COMMON-MAKE.;2 (
COMMON-FILE-COMMAND
COMMON-MAKEFILE
)
(GETTING DETAILS RIGHT))
("11-Dec-87 13:40:48" DJVB {DSK}<XAVIER>COMMON-MAKE.;3 (
COMMON-FILE-COMMAND
))
("11-Dec-87 14:09:04" DJVB {DSK}<XAVIER>COMMON-MAKE.;4 (
COMMON-FILE-COMMAND
))
("11-Dec-87 14:48:44" DJVB {DSK}<XAVIER>COMMON-MAKE.;5 (
COMMON-FILE-COMMAND
)
(FIXED FILE COMMENTS AND CL:DEFVAR ET AL))))
(ADDTOVAR EDITHISTALIST
(COMMON-MAKE ("11-Dec-87 12:54:22" DJVB {DSK}<XAVIER>COMMON-MAKE.;1 (COMMON-FILE-COMMAND
COMMON-MAKEFILE))
("11-Dec-87 13:35:35" DJVB {DSK}<XAVIER>COMMON-MAKE.;2 (COMMON-FILE-COMMAND
COMMON-MAKEFILE)
(GETTING DETAILS RIGHT))
("11-Dec-87 13:40:48" DJVB {DSK}<XAVIER>COMMON-MAKE.;3 (COMMON-FILE-COMMAND))
("11-Dec-87 14:09:04" DJVB {DSK}<XAVIER>COMMON-MAKE.;4 (COMMON-FILE-COMMAND))
("11-Dec-87 14:48:44" DJVB {DSK}<XAVIER>COMMON-MAKE.;5 (COMMON-FILE-COMMAND)
(FIXED FILE COMMENTS AND CL:DEFVAR ET AL))))
)
(PUTPROPS COMMON-MAKE COPYRIGHT ("Unisys Corp." 1987))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (829 13460 (COMMON-FILE-COMMAND 839 . 9055) (COMMON-MAKEFILE 9057 . 13458)))))
(FILEMAP (NIL (722 13353 (COMMON-FILE-COMMAND 732 . 8948) (COMMON-MAKEFILE 8950 . 13351)))))
STOP
ÿ

BIN
lispusers/COMMON-MAKE.LCOM Normal file

Binary file not shown.

View File

@@ -1,10 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "30-Mar-2023 09:08:48" {WMEDLEY}<lispusers>GITFNS.;469 119763
(FILECREATED " 1-Oct-2023 19:33:26" {WMEDLEY}<lispusers>GITFNS.;489 124166
:EDIT-BY rmk
:CHANGES-TO (FNS GIT-MAKE-PROJECT)
:PREVIOUS-DATE "11-Mar-2023 23:12:35" {WMEDLEY}<lispusers>GITFNS.;468)
:PREVIOUS-DATE " 1-Oct-2023 19:27:42" {WMEDLEY}<lispusers>GITFNS.;488)
(PRETTYCOMPRINT GITFNSCOMS)
@@ -14,7 +16,7 @@
(* ;; "Set up")
(FILES (SYSLOAD FROM LISPUSERS)
COMPAREDIRECTORIES COMPARESOURCES COMPARETEXT PSEUDOHOSTS)
COMPAREDIRECTORIES COMPARESOURCES COMPARETEXT PSEUDOHOSTS UNIXUTILS)
(* ;; "")
@@ -47,6 +49,7 @@
(INITVARS (GIT-MERGE-COMPARES T)
(GIT-CDBROWSER-SEPARATE-DIRECTIONS T))
(COMMANDS gwc bbc prc cob b? cdg cdw)
(FNS PRC-COMMAND)
(* ;; "")
@@ -65,7 +68,7 @@
(FNS GIT-COMMIT GIT-PUSH GIT-PULL GIT-APPROVAL GIT-GET-FILE GIT-FILE-EXISTS?
GIT-REMOTE-UPDATE GIT-REMOTE-ADD GIT-FILE-DATE GIT-FILE-HISTORY GIT-PRINT-FILE-HISTORY
GIT-FETCH)
GIT-FETCH GIT-PR-BRANCHES)
(* ;; "Differences")
@@ -77,8 +80,8 @@
(* ;; "Branches")
(FNS GIT-BRANCH-NUM GIT-CHECKOUT GIT-WHICH-BRANCH GIT-MAKE-BRANCH GIT-BRANCHES
GIT-BRANCH-EXISTS? GIT-PICK-BRANCH GIT-PRC-MENU GIT-PULL-REQUESTS GIT-SHORT-BRANCH-NAME
GIT-LONG-NAME)
GIT-BRANCH-EXISTS? GIT-PICK-BRANCH GIT-BRANCH-MENU GIT-PULL-REQUESTS
GIT-SHORT-BRANCH-NAME GIT-LONG-NAME GIT-PRC-BRANCHES)
(* ;; "My branches")
@@ -98,7 +101,7 @@
(FNS GIT-GET-DIFFERENT-FILES GIT-BRANCHES-COMPARE-DIRECTORIES GIT-WORKING-COMPARE-DIRECTORIES
GIT-COMPARE-WORKTREE GITCDOBJBUTTONFN GIT-CD-LABELFN GIT-CD-MENUFN
GIT-WORKING-COMPARE-FILES GIT-BRANCHES-COMPARE-FILES)
GIT-WORKING-COMPARE-FILES GIT-BRANCHES-COMPARE-FILES GIT-PR-COMPARE)
(INITVARS (FROMGITN 0))
(* ;; "")
@@ -106,8 +109,8 @@
(* ;; "Utilities")
(FNS CDGITDIR GIT-COMMAND GITORIGIN GIT-INITIALS GIT-COMMAND-TO-FILE PROCESS-COMMAND
GIT-RESULT-TO-LINES STRIPLOCAL)
(FNS CDGITDIR GIT-COMMAND GITORIGIN GIT-INITIALS GIT-COMMAND-TO-FILE GIT-RESULT-TO-LINES
STRIPLOCAL)
(PROPS (GITFNS FILETYPE))))
@@ -116,7 +119,7 @@
(FILESLOAD (SYSLOAD FROM LISPUSERS)
COMPAREDIRECTORIES COMPARESOURCES COMPARETEXT PSEUDOHOSTS)
COMPAREDIRECTORIES COMPARESOURCES COMPARETEXT PSEUDOHOSTS UNIXUTILS)
@@ -130,15 +133,15 @@
(DEFINEQ
(GIT-CLONEP
[LAMBDA (HOST/DIR NOERROR CHECKANCESTORS) (* ; "Edited 12-May-2022 11:44 by rmk")
[LAMBDA (HOST/DIR NOERROR CHECKANCESTORS) (* ; "Edited 1-Oct-2023 18:09 by rmk")
(* ; "Edited 12-May-2022 11:44 by rmk")
(* ; "Edited 8-May-2022 16:24 by rmk")
(* ;; "If CHECKANCESTORS, looks back up the directory chain to see if perhaps the .git is somewhere higher up.")
(IF [AND HOST/DIR (LET ((D (SLASHIT (TRUEFILENAME (PACKFILENAME.STRING 'BODY HOST/DIR
(IF [AND HOST/DIR (LET [(D (SLASHIT (TRUEFILENAME (PACKFILENAME.STRING 'BODY HOST/DIR
'HOST
'DSK))
T)))
'DSK]
(IF (DIRECTORYNAMEP (CONCAT D "/.git/"))
THEN D
ELSEIF (AND CHECKANCESTORS (FIND-ANCESTOR-DIRECTORY
@@ -164,6 +167,7 @@
(GIT-MAKE-PROJECT
[LAMBDA (PROJECTNAME CLONEPATH WORKINGPATH EXCLUSIONS DEFAULTSUBDIRS)
(* ; "Edited 1-Oct-2023 19:33 by rmk")
(* ; "Edited 30-Mar-2023 09:06 by rmk")
(* ; "Edited 5-Feb-2023 12:43 by rmk")
(* ; "Edited 1-Feb-2023 16:55 by rmk")
@@ -205,7 +209,7 @@
(GIT-CLONEP (MEDLEYDIR (L-CASE PROJECTNAME)
NIL NIL T)
T)
(GIT-CLONEP (MEDLEYDIR (CONCAT "../" PROJECTNAME)
(GIT-CLONEP (MEDLEYDIR (CONCAT "../" (L-CASE PROJECTNAME))
NIL NIL T)
T)
(GIT-CLONEP (DIRECTORYNAME (CONCAT MEDLEYDIR "../git-" (L-CASE
@@ -216,12 +220,11 @@
(ERROR (CONCAT "Can't find a clone directory for " PROJECTNAME))
(PRINTOUT T "Note: Can't find a clone directory for "
PROJECTNAME T)))
elseif (GIT-CLONEP (SLASHIT (PACKFILENAME 'HOST 'DSK 'DIRECTORY
elseif (GIT-CLONEP [SLASHIT (PACKFILENAME 'HOST 'DSK 'DIRECTORY
(UNPACKFILENAME.STRING (TRUEFILENAME
CLONEPATH)
'DIRECTORY
'RETURN))
T)
'RETURN]
T T)
else (ERROR (CONCAT "Can't find the clone directory " CLONEPATH " for "
PROJECTNAME]
@@ -262,7 +265,7 @@
(DIRECTORYNAME (TRUEFILENAME WORKINGPATH)
T)))
[SETQ WORKINGPATH (if WP
then (UNSLASHIT WP T)
then (UNSLASHIT WP)
elseif WORKINGPATH
then (ERROR (CONCAT "Can't find the working directory "
(AND (EQ WORKINGPATH T)
@@ -314,7 +317,8 @@
PROJECT))])
(GIT-PUT-PROJECT-FIELD
[LAMBDA (PROJECT FIELD NEWVALUE) (* ; "Edited 11-Mar-2023 23:00 by rmk")
[LAMBDA (PROJECT FIELD NEWVALUE) (* ; "Edited 10-Jun-2023 21:48 by rmk")
(* ; "Edited 11-Mar-2023 23:00 by rmk")
(* ; "Edited 7-Jul-2022 11:25 by rmk")
(* ; "Edited 13-May-2022 10:40 by rmk")
(* ; "Edited 9-May-2022 20:02 by rmk")
@@ -322,24 +326,17 @@
(* ;; "Replaces the value of a project field with NEWVALUE. The project record is DONTCOPY, to avoid potential name conflicts, so this provides a functional interface. One use: augment EXCLUSIONS with a list of temporary debug and testing files that you don't want to see in the various file listings")
(CL:WHEN (SETQ PROJECT (IF (TYPE? GIT-PROJECT PROJECT)
THEN PROJECT
ELSEIF (CDR (ASSOC (OR (U-CASE PROJECT)
GIT-DEFAULT-PROJECT)
GIT-PROJECTS))
ELSEIF NOERROR
THEN NIL
ELSE (ERROR "NOT A GIT-PROJECT" PROJECT)))
(SELECTQ FIELD
(PROJECTNAME (REPLACE PROJECTNAME OF PROJECT WITH NEWVALUE))
(WHOST (REPLACE WHOST OF PROJECT WITH NEWVALUE))
(GITHOST (REPLACE GITHOST OF PROJECT WITH NEWVALUE))
(EXCLUSIONS (REPLACE EXCLUSIONS OF PROJECT WITH NEWVALUE))
(DEFAULTSUBDIRS
(REPLACE DEFAULTSUBDIRS OF PROJECT WITH NEWVALUE))
(CLONEPATH (REPLACE CLONEPATH OF PROJECT WITH NEWVALUE))
(MAINBRANCH (REPLACE MAINBRANCH OF PROJECT WITH NEWVALUE))
PROJECT))])
(SETQ PROJECT (GIT-GET-PROJECT PROJECT))
(SELECTQ FIELD
(PROJECTNAME (REPLACE PROJECTNAME OF PROJECT WITH NEWVALUE))
(WHOST (REPLACE WHOST OF PROJECT WITH NEWVALUE))
(GITHOST (REPLACE GITHOST OF PROJECT WITH NEWVALUE))
(EXCLUSIONS (REPLACE EXCLUSIONS OF PROJECT WITH NEWVALUE))
(DEFAULTSUBDIRS
(REPLACE DEFAULTSUBDIRS OF PROJECT WITH NEWVALUE))
(CLONEPATH (REPLACE CLONEPATH OF PROJECT WITH NEWVALUE))
(MAINBRANCH (REPLACE MAINBRANCH OF PROJECT WITH NEWVALUE))
PROJECT])
(GIT-PROJECT-PATH
[LAMBDA (PROJECTNAME PROJECTPATH) (* ; "Edited 8-May-2022 15:10 by rmk")
@@ -478,29 +475,7 @@
(* ;; "Compares REMOTEBRANCH against the main orign branch, for pull-request assessment")
(LET ((RB REMOTEBRANCH)
(DR DRAFTS)
(PRS))
(IF PROJECT
THEN (SETQ PROJECT (GIT-GET-PROJECT PROJECT))
ELSEIF (GIT-GET-PROJECT RB NIL T)
THEN (SETQ PROJECT RB)
(SETQ RB NIL)
ELSEIF (GIT-GET-PROJECT DRAFTS NIL T)
THEN (SETQ PROJECT DRAFTS)
(SETQ DRFTS NIL))
(CL:WHEN (MEMB (U-CASE RB)
'(DRAFT DRAFTS))
(SETQ RB NIL)
(SETQ DR T))
(GIT-FETCH PROJECT)
(SETQ PRS (GIT-PULL-REQUESTS T DR PROJECT))
(IF PRS
THEN (CL:WHEN (OR RB (SETQ RB (GIT-PICK-BRANCH (GIT-PRC-MENU DR PROJECT PRS)
"Pull requests")))
(GIT-BRANCHES-COMPARE-DIRECTORIES (GIT-MAINBRANCH PROJECT)
RB NIL PROJECT))
ELSE "No open pull requests")))
(PRC-COMMAND REMOTEBRANCH DRAFTS PROJECT))
(DEFCOMMAND cob (BRANCH NEXTTITLESTRING PROJECT)
@@ -553,6 +528,46 @@
(SLASHIT (/CNDIR (CONCAT (GIT-GET-PROJECT PROJECT 'WHOST)
(OR SUBDIR "")))
T))
(DEFINEQ
(PRC-COMMAND
[LAMBDA (REMOTEBRANCH DRAFTS PROJECT) (* ; "Edited 28-Jul-2023 09:03 by rmk")
(LET (PRS PRMENU)
(IF PROJECT
THEN (SETQ PROJECT (GIT-GET-PROJECT PROJECT))
ELSEIF (GIT-GET-PROJECT REMOTEBRANCH NIL T)
THEN (SETQ PROJECT REMOTEBRANCH)
(SETQ REMOTEBRANCH NIL)
ELSEIF (GIT-GET-PROJECT DRAFTS NIL T)
THEN (SETQ PROJECT DRAFTS)
(SETQ DRAFTS NIL))
(CL:WHEN (MEMB (U-CASE REMOTEBRANCH)
'(DRAFT DRAFTS))
(SETQ REMOTEBRANCH NIL)
(SETQ DRAFTS T))
(GIT-FETCH PROJECT)
(SETQ PRS (GIT-PULL-REQUESTS T DRAFTS PROJECT))
(CL:WHEN (AND REMOTEBRANCH (NEQ REMOTEBRANCH 'PinMenu))
(for PR in PRS when (OR (STRPOS REMOTEBRANCH (fetch PRDESCRIPTION of PR)
NIL NIL NIL NIL FILEDIRCASEARRAY)
(STRPOS REMOTEBRANCH (fetch PRNAME of PR)
NIL NIL NIL NIL FILEDIRCASEARRAY)) collect PR
finally (CL:WHEN $$VAL (SETQ PRS $$VAL))
(SETQ REMOTEBRANCH NIL)))
(IF PRS
THEN (CL:UNLESS REMOTEBRANCH
(SETQ PRS (GIT-PRC-BRANCHES DRAFTS PROJECT PRS))
(SETQ PRMENU (GIT-BRANCH-MENU PRS (CONCAT (LENGTH PRS)
" pull requests")
NIL))
(SETQ REMOTEBRANCH (MENU PRMENU)))
(if (EQ 'PinMenu REMOTEBRANCH)
then (ADDMENU (GIT-BRANCH-MENU PRS (CONCAT (LENGTH PRS)
" pull requests")))
elseif REMOTEBRANCH
then (GIT-PR-COMPARE REMOTEBRANCH PROJECT))
ELSE "No open pull requests"])
)
@@ -1004,6 +1019,35 @@
(GIT-FETCH
[LAMBDA (PROJECT) (* ; "Edited 8-Jul-2022 10:32 by rmk")
(GIT-COMMAND "git fetch" T NIL PROJECT])
(GIT-PR-BRANCHES
[LAMBDA (DRAFT PROJECT PRS) (* ; "Edited 8-Aug-2022 18:15 by rmk")
(* ; "Edited 4-Aug-2022 18:55 by rmk")
(* ; "Edited 9-Jul-2022 19:01 by rmk")
(* ; "Edited 16-May-2022 19:44 by rmk")
(CL:UNLESS PRS
(SETQ PRS (GIT-PULL-REQUESTS T DRAFT PROJECT)))
(CL:WHEN PRS
(LET ((RELATIONS (GIT-BRANCH-RELATIONS (FOR PR IN PRS COLLECT (GITORIGIN (CADDR PR)))
NIL T PROJECT)))
(SORT [FOR PR REL LABEL PRNAME (SUPERSETS _ (CAR RELATIONS))
(EQUALS _ (CADR RELATIONS)) IN PRS
COLLECT (SETQ PRNAME (fetch PRNAME of PR))
(SETQ LABEL (CONCAT "#" (fetch (PULLREQUEST PRNUMBER) of PR)
" "
(IF [SETQ REL (CAR (CDR (SASSOC PRNAME SUPERSETS]
THEN (CONCAT PRNAME " > " REL)
ELSEIF [SETQ REL (CAR (CDR (SASSOC PRNAME EQUALS]
THEN (CONCAT PRNAME " = " REL)
ELSE PRNAME)))
(LIST (CL:IF (EQ 'DRAFT (FETCH PRSTATUS OF PR))
(CONCAT LABEL " (draft)")
LABEL)
(GITORIGIN PRNAME)
(CONCAT " " (FETCH PRDESCRIPTION OF PR)
" #"
(FETCH PRNUMBER OF PR]
T)))])
)
@@ -1321,41 +1365,24 @@
THEN (ERROR "Unknown branch" BRANCH])
(GIT-PICK-BRANCH
[LAMBDA (BRANCHES TITLE) (* ; "Edited 18-May-2022 13:44 by rmk")
(CL:WHEN (MKLIST BRANCHES)
(MENU (CREATE MENU
TITLE _ (OR TITLE 'Branches)
ITEMS _ BRANCHES
MENUFONT _ DEFAULTFONT)))])
[LAMBDA (BRANCHES TITLE) (* ; "Edited 6-Jul-2023 22:31 by rmk")
(* ; "Edited 30-Jun-2023 16:58 by rmk")
(* ; "Edited 18-May-2022 13:44 by rmk")
(MENU (GIT-BRANCH-MENU BRANCHES (OR TITLE (CONCAT (LENGTH BRANCHES)
" branches"])
(GIT-PRC-MENU
[LAMBDA (DRAFT PROJECT PRS) (* ; "Edited 8-Aug-2022 18:15 by rmk")
(* ; "Edited 4-Aug-2022 18:55 by rmk")
(* ; "Edited 9-Jul-2022 19:01 by rmk")
(* ; "Edited 16-May-2022 19:44 by rmk")
(CL:UNLESS PRS
(SETQ PRS (GIT-PULL-REQUESTS T DRAFT PROJECT)))
(CL:WHEN PRS
(LET ((RELATIONS (GIT-BRANCH-RELATIONS (FOR PR IN PRS COLLECT (GITORIGIN (CADDR PR)))
NIL T PROJECT)))
(SORT [FOR PR REL LABEL PRNAME (SUPERSETS _ (CAR RELATIONS))
(EQUALS _ (CADR RELATIONS)) IN PRS
COLLECT (SETQ PRNAME (fetch PRNAME of PR))
(SETQ LABEL (CONCAT "#" (fetch (PULLREQUEST PRNUMBER) of PR)
" "
(IF [SETQ REL (CAR (CDR (SASSOC PRNAME SUPERSETS]
THEN (CONCAT PRNAME " > " REL)
ELSEIF [SETQ REL (CAR (CDR (SASSOC PRNAME EQUALS]
THEN (CONCAT PRNAME " = " REL)
ELSE PRNAME)))
(LIST (CL:IF (EQ 'DRAFT (FETCH PRSTATUS OF PR))
(CONCAT LABEL " (draft)")
LABEL)
(GITORIGIN PRNAME)
(CONCAT " " (FETCH PRDESCRIPTION OF PR)
" #"
(FETCH PRNUMBER OF PR]
T)))])
(GIT-BRANCH-MENU
[LAMBDA (BRANCHES TITLE PIN?) (* ; "Edited 6-Jul-2023 22:31 by rmk")
(* ; "Edited 30-Jun-2023 16:58 by rmk")
(* ; "Edited 18-May-2022 13:44 by rmk")
(CL:WHEN (SETQ BRANCHES (MKLIST BRANCHES))
(CL:WHEN PIN?
[SETQ BRANCHES (APPEND BRANCHES '((" Pin menu" 'PinMenu])
(CREATE MENU
TITLE _ (OR TITLE (CONCAT (LENGTH BRANCHES)
" branches"))
ITEMS _ BRANCHES
MENUFONT _ DEFAULTFONT))])
(GIT-PULL-REQUESTS
[LAMBDA (ALLINFO INCLUDEDRAFTS PROJECT) (* ; "Edited 8-Aug-2022 13:12 by rmk")
@@ -1402,6 +1429,35 @@
(* ;; "Allows short-hand reference to branch: rmk40 will return rmk40--xyz")
(FIND B IN (GIT-BRANCHES WHERE PROJECT EXCLUDEMERGED) SUCHTHAT (STRPOS BRANCH B])
(GIT-PRC-BRANCHES
[LAMBDA (DRAFT PROJECT PRS) (* ; "Edited 8-Aug-2022 18:15 by rmk")
(* ; "Edited 4-Aug-2022 18:55 by rmk")
(* ; "Edited 9-Jul-2022 19:01 by rmk")
(* ; "Edited 16-May-2022 19:44 by rmk")
(CL:UNLESS PRS
(SETQ PRS (GIT-PULL-REQUESTS T DRAFT PROJECT)))
(CL:WHEN PRS
(LET ((RELATIONS (GIT-BRANCH-RELATIONS (FOR PR IN PRS COLLECT (GITORIGIN (CADDR PR)))
NIL T PROJECT)))
(SORT [FOR PR REL LABEL PRNAME (SUPERSETS _ (CAR RELATIONS))
(EQUALS _ (CADR RELATIONS)) IN PRS
COLLECT (SETQ PRNAME (fetch PRNAME of PR))
(SETQ LABEL (CONCAT "#" (fetch (PULLREQUEST PRNUMBER) of PR)
" "
(IF [SETQ REL (CAR (CDR (SASSOC PRNAME SUPERSETS]
THEN (CONCAT PRNAME " > " REL)
ELSEIF [SETQ REL (CAR (CDR (SASSOC PRNAME EQUALS]
THEN (CONCAT PRNAME " = " REL)
ELSE PRNAME)))
(LIST (CL:IF (EQ 'DRAFT (FETCH PRSTATUS OF PR))
(CONCAT LABEL " (draft)")
LABEL)
(GITORIGIN PRNAME)
(CONCAT " " (FETCH PRDESCRIPTION OF PR)
" #"
(FETCH PRNUMBER OF PR]
T)))])
)
@@ -1664,7 +1720,9 @@
(LIST DIR1 DIR2 MAPPINGS))])
(GIT-BRANCHES-COMPARE-DIRECTORIES
[LAMBDA (BRANCH1 BRANCH2 LOCAL PROJECT) (* ; "Edited 12-Sep-2022 14:41 by rmk")
[LAMBDA (BRANCH1 BRANCH2 LOCAL PROJECT) (* ; "Edited 26-Sep-2023 22:40 by rmk")
(* ; "Edited 10-Jun-2023 17:28 by rmk")
(* ; "Edited 12-Sep-2022 14:41 by rmk")
(* ; "Edited 20-Jul-2022 21:18 by rmk")
(* ; "Edited 22-May-2022 22:47 by rmk")
(* ; "Edited 9-May-2022 15:14 by rmk")
@@ -1683,10 +1741,11 @@
(SETQ MAPPINGS (CADDR DIRS))
(IF DIRS
THEN (TERPRI T)
(SETQ CDVALUE (COMPAREDIRECTORIES (CAR DIRS)
[SETQ CDVALUE (COMPAREDIRECTORIES (CAR DIRS)
(CADR DIRS)
'(> < ~= -* *-)
'*>*.*))
'*>*.*
(GIT-GET-PROJECT PROJECT 'EXCLUSIONS]
(* ;; "We know that both sides come from Unix/unversioned, even if they have been copied into versioned FROMGIT, so we make a pass to remove the misleading versions.")
@@ -1733,10 +1792,9 @@
(TERPRI T)
(IF (FETCH (CDVALUE CDENTRIES) OF CDVALUE)
THEN (SETQ LAST-BRANCH-CDVALUE CDVALUE)
(CDBROWSER CDVALUE (CONCAT "Comparing " (L-CASE (FETCH PROJECTNAME
OF PROJECT)
T)
" " SHORT1 " and " SHORT2 " "
(CDBROWSER CDVALUE (CONCAT (L-CASE (FETCH PROJECTNAME OF PROJECT)
T)
" " SHORT1 " vs " SHORT2 " "
(LENGTH (FETCH (CDVALUE CDENTRIES) OF CDVALUE))
" files")
(LIST SHORT1 SHORT2)
@@ -1754,6 +1812,12 @@
(GIT-WORKING-COMPARE-DIRECTORIES
[LAMBDA (SUBDIRS SELECT EXCLUDEDFILES FIXDIRECTORYDATES UPDATE PROJECT)
(* ;; "Edited 26-Sep-2023 22:41 by rmk")
(* ;; "Edited 17-Jun-2023 22:54 by rmk")
(* ;; "Edited 10-Jun-2023 21:32 by rmk")
(* ;; "Edited 20-Jul-2022 21:18 by rmk")
(* ;; "Edited 25-Jun-2022 21:37 by rmk")
@@ -1793,7 +1857,13 @@
(GITSUBDIR SUBDIR T PROJECT)
(OR SELECT '(> < ~= -* *-))
NIL
(FETCH EXCLUSIONS OF PROJECT)
(for E DPOS in (GIT-GET-PROJECT PROJECT 'EXCLUSIONS)
collect (SETQ DPOS (STRPOS SUBDIR (FILENAMEFIELD E
'DIRECTORY)
1 NIL T T FILEDIRCASEARRAY))
(CL:IF DPOS
(SUBSTRING E (ADD1 DPOS))
E))
NIL NIL NIL FIXDIRECTORYDATES))
[FOR CDE IN (FETCH CDENTRIES OF CDVAL)
DO (CL:WHEN (FETCH INFO1 OF CDE)
@@ -1812,9 +1882,8 @@
(SETQ $$VAL (CDMERGE $$VAL))
[SETQ SUBDIRS (CONCATLIST (FOR SUBDIR IN SUBDIRS COLLECT (CONCAT SUBDIR " "])
[FOR CDVAL TITLE IN $$VAL AS SUBDIR INSIDE SUBDIRS
DO (SETQ TITLE (CONCAT "Comparing " WPROJ " and " BRANCH2 " " SUBDIR
" " (LENGTH (fetch (CDVALUE CDENTRIES)
of CDVAL))
DO (SETQ TITLE (CONCAT WPROJ " vs. " BRANCH2 " " SUBDIR " "
(LENGTH (fetch (CDVALUE CDENTRIES) of CDVAL))
" files"))
[CDBROWSER CDVAL TITLE `(,WPROJ ,BRANCH2)
`(BRANCH1 ,WPROJ BRANCH2 ,BRANCH2 SUBDIR ,SUBDIR LABELFN
@@ -2067,6 +2136,11 @@
" " FILE)
(CONCAT (GIT-SHORT-BRANCH-NAME BRANCH2)
" " FILE])
(GIT-PR-COMPARE
[LAMBDA (RB PROJECT) (* ; "Edited 6-Jul-2023 22:22 by rmk")
(GIT-BRANCHES-COMPARE-DIRECTORIES (GIT-MAINBRANCH PROJECT)
RB NIL PROJECT])
)
(RPAQ? FROMGITN 0)
@@ -2083,11 +2157,13 @@
(DEFINEQ
(CDGITDIR
[LAMBDA (PROJECT) (* ; "Edited 8-Jul-2022 10:34 by rmk")
[LAMBDA (PROJECT) (* ; "Edited 23-Sep-2023 13:01 by rmk")
(* ; "Edited 8-Jul-2022 10:34 by rmk")
(* ; "Edited 7-Jul-2022 09:36 by rmk")
(* ; "Edited 7-May-2022 22:41 by rmk")
(* ; "Edited 2-Nov-2021 21:12 by rmk:")
(CONCAT "cd " [SLASHIT (STRIPHOST (TRUEFILENAME (FETCH GITHOST OF PROJECT]
(CONCAT "cd " (SLASHIT (TRUEFILENAME (FETCH GITHOST OF PROJECT))
NIL T)
" && "])
(GIT-COMMAND
@@ -2198,16 +2274,6 @@
(ERROR (CONCAT "Command failed: " CMD)))
NIL])
(PROCESS-COMMAND
[LAMBDA (CMD) (* ; "Edited 17-Jul-2022 08:17 by rmk")
(* ;; "This sets up an asynchronous process and waits until it returns with an exit code. Typically 0 means success.")
(CL:WITH-OPEN-STREAM (PS (CREATE-PROCESS-STREAM CMD))
(BIND CODE WHILE (EQ T (SETQ CODE (OR (SUBRCALL UNIX-HANDLECOMM 7 (fetch (STREAM F1)
of PS))
0))) DO (BLOCK) FINALLY (RETURN CODE])
(GIT-RESULT-TO-LINES
[LAMBDA (FILE ALL) (* ; "Edited 16-Jul-2022 22:21 by rmk")
@@ -2234,32 +2300,33 @@
(PUTPROPS GITFNS FILETYPE :TCOMPL)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (3979 20805 (GIT-CLONEP 3989 . 5252) (GIT-INIT 5254 . 5884) (GIT-MAKE-PROJECT 5886 .
13487) (GIT-GET-PROJECT 13489 . 15414) (GIT-PUT-PROJECT-FIELD 15416 . 17433) (GIT-PROJECT-PATH 17435
. 18479) (FIND-ANCESTOR-DIRECTORY 18481 . 18830) (GIT-FIND-CLONE 18832 . 19913) (GIT-MAINBRANCH 19915
. 20310) (GIT-MAINBRANCH? 20312 . 20803)) (27232 30020 (ALLSUBDIRS 27242 . 28528) (MEDLEYSUBDIRS
28530 . 29223) (GITSUBDIRS 29225 . 30018)) (30021 34811 (TOGIT 30031 . 31437) (FROMGIT 31439 . 32420)
(GIT-DELETE-FILE 32422 . 33268) (MYMEDLEY-DELETE-FILES 33270 . 34809)) (34812 37815 (MYMEDLEYSUBDIR
34822 . 35278) (GITSUBDIR 35280 . 35723) (STRIPDIR 35725 . 36096) (STRIPHOST 36098 . 36338) (STRIPNAME
36340 . 37093) (STRIPWHERE 37095 . 37813)) (37816 39718 (GFILE4MFILE 37826 . 38189) (MFILE4GFILE
38191 . 38760) (GIT-REPO-FILENAME 38762 . 39716)) (39767 49589 (GIT-COMMIT 39777 . 40603) (GIT-PUSH
40605 . 41249) (GIT-PULL 41251 . 41863) (GIT-APPROVAL 41865 . 42214) (GIT-GET-FILE 42216 . 44181) (
GIT-FILE-EXISTS? 44183 . 44457) (GIT-REMOTE-UPDATE 44459 . 45183) (GIT-REMOTE-ADD 45185 . 45492) (
GIT-FILE-DATE 45494 . 46425) (GIT-FILE-HISTORY 46427 . 48361) (GIT-PRINT-FILE-HISTORY 48363 . 49413) (
GIT-FETCH 49415 . 49587)) (49619 60212 (GIT-BRANCH-DIFF 49629 . 55969) (GIT-COMMIT-DIFFS 55971 . 56524
) (GIT-BRANCH-RELATIONS 56526 . 60210)) (60257 72489 (GIT-BRANCH-NUM 60267 . 60840) (GIT-CHECKOUT
60842 . 61901) (GIT-WHICH-BRANCH 61903 . 62201) (GIT-MAKE-BRANCH 62203 . 64416) (GIT-BRANCHES 64418 .
66686) (GIT-BRANCH-EXISTS? 66688 . 67392) (GIT-PICK-BRANCH 67394 . 67722) (GIT-PRC-MENU 67724 . 69727)
(GIT-PULL-REQUESTS 69729 . 71875) (GIT-SHORT-BRANCH-NAME 71877 . 72168) (GIT-LONG-NAME 72170 . 72487)
) (72519 75854 (GIT-MY-CURRENT-BRANCH 72529 . 72899) (GIT-MY-BRANCHP 72901 . 73406) (
GIT-MY-NEXT-BRANCH 73408 . 73902) (GIT-MY-BRANCHES 73904 . 75852)) (75900 79852 (GIT-ADD-WORKTREE
75910 . 77394) (GIT-REMOVE-WORKTREE 77396 . 78326) (GIT-LIST-WORKTREES 78328 . 79132) (WORKTREEDIR
79134 . 79850)) (79900 111109 (GIT-GET-DIFFERENT-FILES 79910 . 86334) (
GIT-BRANCHES-COMPARE-DIRECTORIES 86336 . 92493) (GIT-WORKING-COMPARE-DIRECTORIES 92495 . 97321) (
GIT-COMPARE-WORKTREE 97323 . 101301) (GITCDOBJBUTTONFN 101303 . 105793) (GIT-CD-LABELFN 105795 .
106877) (GIT-CD-MENUFN 106879 . 109319) (GIT-WORKING-COMPARE-FILES 109321 . 109941) (
GIT-BRANCHES-COMPARE-FILES 109943 . 111107)) (111179 119696 (CDGITDIR 111189 . 111749) (GIT-COMMAND
111751 . 113309) (GITORIGIN 113311 . 114008) (GIT-INITIALS 114010 . 114314) (GIT-COMMAND-TO-FILE
114316 . 117805) (PROCESS-COMMAND 117807 . 118420) (GIT-RESULT-TO-LINES 118422 . 119029) (STRIPLOCAL
119031 . 119694)))))
(FILEMAP (NIL (4081 20660 (GIT-CLONEP 4091 . 5419) (GIT-INIT 5421 . 6051) (GIT-MAKE-PROJECT 6053 .
13718) (GIT-GET-PROJECT 13720 . 15645) (GIT-PUT-PROJECT-FIELD 15647 . 17288) (GIT-PROJECT-PATH 17290
. 18334) (FIND-ANCESTOR-DIRECTORY 18336 . 18685) (GIT-FIND-CLONE 18687 . 19768) (GIT-MAINBRANCH 19770
. 20165) (GIT-MAINBRANCH? 20167 . 20658)) (26068 28195 (PRC-COMMAND 26078 . 28193)) (28251 31039 (
ALLSUBDIRS 28261 . 29547) (MEDLEYSUBDIRS 29549 . 30242) (GITSUBDIRS 30244 . 31037)) (31040 35830 (
TOGIT 31050 . 32456) (FROMGIT 32458 . 33439) (GIT-DELETE-FILE 33441 . 34287) (MYMEDLEY-DELETE-FILES
34289 . 35828)) (35831 38834 (MYMEDLEYSUBDIR 35841 . 36297) (GITSUBDIR 36299 . 36742) (STRIPDIR 36744
. 37115) (STRIPHOST 37117 . 37357) (STRIPNAME 37359 . 38112) (STRIPWHERE 38114 . 38832)) (38835 40737
(GFILE4MFILE 38845 . 39208) (MFILE4GFILE 39210 . 39779) (GIT-REPO-FILENAME 39781 . 40735)) (40786
52616 (GIT-COMMIT 40796 . 41622) (GIT-PUSH 41624 . 42268) (GIT-PULL 42270 . 42882) (GIT-APPROVAL 42884
. 43233) (GIT-GET-FILE 43235 . 45200) (GIT-FILE-EXISTS? 45202 . 45476) (GIT-REMOTE-UPDATE 45478 .
46202) (GIT-REMOTE-ADD 46204 . 46511) (GIT-FILE-DATE 46513 . 47444) (GIT-FILE-HISTORY 47446 . 49380) (
GIT-PRINT-FILE-HISTORY 49382 . 50432) (GIT-FETCH 50434 . 50606) (GIT-PR-BRANCHES 50608 . 52614)) (
52646 63239 (GIT-BRANCH-DIFF 52656 . 58996) (GIT-COMMIT-DIFFS 58998 . 59551) (GIT-BRANCH-RELATIONS
59553 . 63237)) (63284 76387 (GIT-BRANCH-NUM 63294 . 63867) (GIT-CHECKOUT 63869 . 64928) (
GIT-WHICH-BRANCH 64930 . 65228) (GIT-MAKE-BRANCH 65230 . 67443) (GIT-BRANCHES 67445 . 69713) (
GIT-BRANCH-EXISTS? 69715 . 70419) (GIT-PICK-BRANCH 70421 . 70911) (GIT-BRANCH-MENU 70913 . 71616) (
GIT-PULL-REQUESTS 71618 . 73764) (GIT-SHORT-BRANCH-NAME 73766 . 74057) (GIT-LONG-NAME 74059 . 74376) (
GIT-PRC-BRANCHES 74378 . 76385)) (76417 79752 (GIT-MY-CURRENT-BRANCH 76427 . 76797) (GIT-MY-BRANCHP
76799 . 77304) (GIT-MY-NEXT-BRANCH 77306 . 77800) (GIT-MY-BRANCHES 77802 . 79750)) (79798 83750 (
GIT-ADD-WORKTREE 79808 . 81292) (GIT-REMOVE-WORKTREE 81294 . 82224) (GIT-LIST-WORKTREES 82226 . 83030)
(WORKTREEDIR 83032 . 83748)) (83798 116000 (GIT-GET-DIFFERENT-FILES 83808 . 90232) (
GIT-BRANCHES-COMPARE-DIRECTORIES 90234 . 96585) (GIT-WORKING-COMPARE-DIRECTORIES 96587 . 101983) (
GIT-COMPARE-WORKTREE 101985 . 105963) (GITCDOBJBUTTONFN 105965 . 110455) (GIT-CD-LABELFN 110457 .
111539) (GIT-CD-MENUFN 111541 . 113981) (GIT-WORKING-COMPARE-FILES 113983 . 114603) (
GIT-BRANCHES-COMPARE-FILES 114605 . 115769) (GIT-PR-COMPARE 115771 . 115998)) (116070 124099 (CDGITDIR
116080 . 116767) (GIT-COMMAND 116769 . 118327) (GITORIGIN 118329 . 119026) (GIT-INITIALS 119028 .
119332) (GIT-COMMAND-TO-FILE 119334 . 122823) (GIT-RESULT-TO-LINES 122825 . 123432) (STRIPLOCAL 123434
. 124097)))))
STOP

Binary file not shown.

View File

@@ -15,7 +15,7 @@ where
CLONEPATH specifies the local path to the clone
e.g. {dsk}<users>...>git-medley
WORKINGPATH is optionally the local path to a corresponding Medley-residential working directory (e.g. {dsk}<users>...>working-medley>)
When the project has a working path:
When the project has a WORKINGPATH:
EXCLUSIONS is a list of files and directories to be excluded from comparisons (including what its .gitignore specifies)
DEFAULTSUBDIRS is a list of subdirectories to be use in working-path comparisons when directories are not otherwise specified.
For convenience, if CLONEPATH is NIL or T (and not a path), then a sequence of probes based on PROJECTNAME attempts to find a clone directory (with a .git subdirectory):
@@ -76,73 +76,13 @@ In addition to the commands for comparing and viewing files, the menu for this b
If the master/main branch is the current branch then the menu has no commands to change the clone directory. The browser will show those files that have been updated from a recent merge, and they can individually be copied from the git branch to realign the two source trees with incremented Medley version numbers. If the comparison is with a different branch, say the user's current staging branch, copying files from the working Medley to the git clone or deleting git files will set git up for future commits.
Note that the menu item for deleting Medley files will cause all versions to be removed, not just the latest one, to avoid the possibility that an earlier one is revealed. Deletion for Medley files is also accomplished by renaming to a {Wprojectname}<deleted> subdirectory so that they can be recovered if a deletion is in error. Files in the git-clone are removed from the file system immediately, since git provides its own recovery mechanism for those files.
GITFNS does not (yet?) include functions for commits, pushes, or merge for updating the remote repository. Those have to be done outside of Medley through the usual github interfaces, as guided by the information provided by the comparisons.
(LIST ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC) STARTINGPAGE# 1) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC)) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC)) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))))).È.È4 ÈÈ4 ÈÈ4ÈÈ4ÈÈ4ÈÈ4ÈÈ4È È4ÈÈ.È.ŠŠ8.ŠŠ8JÈÈ PAGEHEADING RUNNINGHEADTERMINAL
MODERN
TIMESROMAN$TERMINALMODERN
MODERN MODERN
MODERN
 HRULE.GETFNMODERN
  HRULE.GETFNMODERN
  HRULE.GETFNMODERN
   HRULE.GETFNMODERN   HRULE.GETFNMODERN  
1

R
Íé

;
¹@,

 "  &  \ 
X
 p  6 ,
 
)
 
) 
+      5     
@ &  
I 7
 o
 E .
8 > I


Y  

$
; 
}
(
) 9
!
0
4  c
 
5  vB 
1OLJ
''

œ
)2
+
 

    Z !  œ
5H

5
5
>$N ! M
§A
@
4

@Ô
â   k 6.  R   < 9  
'
Y" ( ? F 
<00>

ìË
ò1Sýzº
(LIST ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC) STARTINGPAGE# 1) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC)) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC)) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL)))))1$4È$È4È $È1È$4 È$È4 È$È4È$È4È$È4È$È4È$È1È$1ŠŠ8$1ŠŠ8$JÈ$È PAGEHEADING RUNNINGHEAD1È$ TERMINAL_Q(DEFAULTFONT 1 (TERMINAL 12) (TERMINAL 8) (TERMINAL 8) (POSTSCRIPT (TERMINAL 8))) MODERN
TERMINAL
MODERNMODERN
MODERN 
TIMESROMAN$MODERN
 HRULE.GETFN  HRULE.GETFN  HRULE.GETFN   HRULE.GETFN  HRULE.GETFN 1R Íé;¹@
, "  &  \ 
X
 p 6 , ) ) +      5     @ &  I 7  o E .8 > I Y  $; }() 9!04  c  5  vB 1OLJ''œ)2+     Z !  œ5H 55>$N ! M §A@4
@Ôâ   k 6.  R   < 9  'Y"(? F <00>ìËò1Rþzº

View File

@@ -1,16 +1,15 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "15-Sep-2022 23:39:36" {DSK}<home>matt>medley>LISPUSERS>MANAGER.;2 111145
(FILECREATED "13-Oct-2023 16:41:52" {LU}MANAGER.;3 112648
:EDIT-BY "mth"
:CHANGES-TO (FNS Manager.DO.COMMAND)
(VARS MANAGERCOMS MANAGER-FILE-OPERATIONS-COMMANDS)
:PREVIOUS-DATE "10-Feb-2022 22:17:51" {DSK}<home>matt>medley>LISPUSERS>MANAGER.;1)
:PREVIOUS-DATE "10-Oct-2023 11:27:25" {LU}MANAGER.;1)
(* ; "
Copyright (c) 1986-1987, 1900, 2022 by Xerox Corporation.
")
(PRETTYCOMPRINT MANAGERCOMS)
(RPAQQ MANAGERCOMS
@@ -52,11 +51,12 @@ Copyright (c) 1986-1987, 1900, 2022 by Xerox Corporation.
(* ;; "")
(SPECVARS Manager.ACTIVEFLG MANAGER-CASES MANAGER-ADDTOFILES?)
(GLOBALVARS LAMBDAFONT DEFAULTFONT MENUFONT BOLDMENUFONT MANAGER-WINDOWS LOADBFLG SAVEDBFLG
(GLOBALVARS LAMBDAFONT DEFAULTFONT MENUFONT BOLDMENUFONT MANAGER-WINDOWS LOADDBFLG SAVEDBFLG
MANAGER-ITEM-OPERATION-COMMANDS MANAGER-ITEM-FILE-RELATION-COMMANDS
MANAGER-FILE-OPERATIONS-COMMANDS MANAGER-FILE-FILE-RELATION-COMMANDS
MANAGER-MAIN-MENU-ITEMS MANAGER-ACTIVITY-WINDOW-TITLE BackgroundMenuCommands
BackgroundMenu)
MANAGER-MAIN-MENU-ITEMS MANAGER-ACTIVITY-WINDOW-TITLE MANAGER-MAIN-WINDOW
MANAGER-MAIN-ICONW Manager.WINDOW-ANCHOR MANAGER.BM MANAGER.BM.MASK
BackgroundMenuCommands BackgroundMenu)
(VARS *UNMANAGED-TYPES* MANAGER-ACTIVITY-WINDOW-TITLE (MANAGER-CASES)
(MANAGER-ADDTOFILES?)
MANAGER-FILE-FILE-RELATION-COMMANDS MANAGER-FILE-OPERATIONS-COMMANDS
@@ -64,28 +64,33 @@ Copyright (c) 1986-1987, 1900, 2022 by Xerox Corporation.
MANAGER-MAIN-MENU-ITEMS MANAGER.BM MANAGER.BM.MASK)
(INITVARS (Manager.ACTIVEFLG NIL)
(Manager.SORTFILELSTFLG T)
(Manager.WINDOW-ANCHOR 'ANCHOR-BL)
(Manager.MENUROWS 20)
(Manager.DATASPACE NIL)
(MANAGER-WINDOWS NIL)
(MANAGER-MAIN-WINDOW NIL)
(MANAGER-MAIN-ICONW (ICONW MANAGER.BM MANAGER.BM.MASK
(create POSITION XCOORD _ 0 YCOORD _ 0)
T))
(MANAGER-OPEN-WINDOWS NIL)
(MANAGER-FILE-MENU NIL)
(MANAGER-FILELST-MENU NIL)
(MANAGER-FILE-OPERATIONS-MENU NIL)
(MANAGER-FILE-FILE-RELATION-MENU NIL)
(MANAGER-MARKED-SHADE BOLDMENUFONT))
(FILES FILEBROWSER)
(* ; "for SEE command")
(FILES DATABASEFNS FILEBROWSER (FROM LISPUSERS)
COMMON-MAKE)
(* ; "FILEBROWSER for SEE command")
(FNS MANAGER MANAGER.RESET Manager.ADDADV Manager.ADDTOFILES? Manager.ALTERMARKING
Manager.DO.COMMAND Manager.HIGHLIGHT Manager.PROMPT Manager.WINDOW
Manager.insurefilehighlights Manager.CHANGED? Manager.CHECKFILE Manager.COLLECTCOMS
Manager.COMS.WSF Manager.COMSOPEN Manager.COMSUPDATE Manager.HIGHLIGHTED
Manager.INSUREHIGHLIGHTS Manager.FILECHANGES Manager.FILELSTCHANGED?
Manager.ANCHORED-SET-POSITION Manager.DO.COMMAND Manager.HIGHLIGHT Manager.PROMPT
Manager.WINDOW Manager.insurefilehighlights Manager.CHANGED? Manager.CHECKFILE
Manager.COLLECTCOMS Manager.COMS.WSF Manager.COMSOPEN Manager.COMSUPDATE
Manager.HIGHLIGHTED Manager.INSUREHIGHLIGHTS Manager.FILECHANGES Manager.FILELSTCHANGED?
Manager.FILESUBTYPES Manager.GET.ENVIRONMENT Manager.GETFILE Manager.INTITLE?
Manager.MAIN.WSF Manager.MAINCLOSE Manager.MAINMENUITEMS Manager.MAINOPEN
Manager.MAINUPDATE Manager.MAKEFILE.ADV Manager.MENUCOLUMNS Manager.MENUHASITEM
Manager.MENUITEMS Manager.REMOVE.DUPLICATE.ADVICE Manager.RESETSUBITEMS
Manager.SORT.COMS Manager.SORTBYCOLUMN)
Manager.SET-ANCHOR Manager.SORT.COMS Manager.SORTBYCOLUMN)
(ADVISE ADDFILE ADDTOFILES? MAKEFILE MARKASCHANGED UNMARKASCHANGED UPDATEFILES ADDTOCOMS
DELFROMCOMS \ADDTOFILEBLOCK/ADDNEWCOM LOAD LOADFNS (MARKASCHANGED :IN
DEFAULT.EDITDEFA0001))
@@ -181,10 +186,11 @@ Copyright (c) 1986-1987, 1900, 2022 by Xerox Corporation.
)
(DECLARE%: DOEVAL@COMPILE DONTCOPY
(GLOBALVARS LAMBDAFONT DEFAULTFONT MENUFONT BOLDMENUFONT MANAGER-WINDOWS LOADBFLG SAVEDBFLG
(GLOBALVARS LAMBDAFONT DEFAULTFONT MENUFONT BOLDMENUFONT MANAGER-WINDOWS LOADDBFLG SAVEDBFLG
MANAGER-ITEM-OPERATION-COMMANDS MANAGER-ITEM-FILE-RELATION-COMMANDS
MANAGER-FILE-OPERATIONS-COMMANDS MANAGER-FILE-FILE-RELATION-COMMANDS MANAGER-MAIN-MENU-ITEMS
MANAGER-ACTIVITY-WINDOW-TITLE BackgroundMenuCommands BackgroundMenu)
MANAGER-ACTIVITY-WINDOW-TITLE MANAGER-MAIN-WINDOW MANAGER-MAIN-ICONW Manager.WINDOW-ANCHOR
MANAGER.BM MANAGER.BM.MASK BackgroundMenuCommands BackgroundMenu)
)
(RPAQQ *UNMANAGED-TYPES* (EXPRESSIONS FILES FIELDS FILEVARS-ARE-NOW-OK))
@@ -368,6 +374,12 @@ Will load DataBaseFNS if necessary" (SUBITEMS ("All" 'DB
("Edit FILELST" 'EDIT
"Edit the variable which lists the files noticed by the file package")))
("Advice" 'SHOWADVICE "Display the list of advised or traced fns and functions.")
("Set Window Anchor" 'ANCHOR-BL
"Set the anchor corner for window growth to Bottom Left (default)"
(SUBITEMS (" Top Left " 'ANCHOR-TL "Set the anchor corner to Top Left")
(" Top Right " 'ANCHOR-TR "Set the anchor corner to Top Right")
(" Bottom Left " 'ANCHOR-BL "Set the anchor corner to Bottom Left")
(" Bottom Right " 'ANCHOR-BR "Set the anchor corner to Bottom Right")))
("Quit" 'QUIT "Shut down all manager windows" (SUBITEMS ("Quit" 'QUIT
"Shut down all manager windows"
)
@@ -385,6 +397,8 @@ Will load DataBaseFNS if necessary" (SUBITEMS ("All" 'DB
(RPAQ? Manager.SORTFILELSTFLG T)
(RPAQ? Manager.WINDOW-ANCHOR 'ANCHOR-BL)
(RPAQ? Manager.MENUROWS 20)
(RPAQ? Manager.DATASPACE NIL)
@@ -393,6 +407,9 @@ Will load DataBaseFNS if necessary" (SUBITEMS ("All" 'DB
(RPAQ? MANAGER-MAIN-WINDOW NIL)
(RPAQ? MANAGER-MAIN-ICONW (ICONW MANAGER.BM MANAGER.BM.MASK (create POSITION XCOORD _ 0 YCOORD _ 0)
T))
(RPAQ? MANAGER-OPEN-WINDOWS NIL)
(RPAQ? MANAGER-FILE-MENU NIL)
@@ -405,11 +422,12 @@ Will load DataBaseFNS if necessary" (SUBITEMS ("All" 'DB
(RPAQ? MANAGER-MARKED-SHADE BOLDMENUFONT)
(FILESLOAD FILEBROWSER)
(FILESLOAD DATABASEFNS FILEBROWSER (FROM LISPUSERS)
COMMON-MAKE)
(* ; "for SEE command")
(* ; "FILEBROWSER for SEE command")
(DEFINEQ
@@ -522,11 +540,30 @@ Will load DataBaseFNS if necessary" (SUBITEMS ("All" 'DB
(Manager.HIGHLIGHT ITEM MENU MARKING?))) finally (Manager.MAINUPDATE
UPDATEFILES])
(Manager.ANCHORED-SET-POSITION
[LAMBDA (IW IH) (* ; "Edited 10-Oct-2023 11:22 by mth")
(LET (WREGION XPOS YPOS TEMP)
(SETQ WREGION (WINDOWPROP MANAGER-MAIN-WINDOW 'REGION))
(SETQ YPOS (fetch (REGION BOTTOM) of WREGION))
(if (FMEMB Manager.WINDOW-ANCHOR '(ANCHOR-TL ANCHOR-TR))
then (SETQ YPOS (- (+ YPOS (fetch (REGION HEIGHT) of WREGION))
IH)))
(SETQ TEMP (+ YPOS IH))
(if (>= TEMP SCREENHEIGHT)
then (SETQ YPOS (- SCREENHEIGHT 1)))
(SETQ XPOS (fetch (REGION LEFT) of WREGION))
(if (FMEMB Manager.WINDOW-ANCHOR '(ANCHOR-TR ANCHOR-BR))
then (SETQ XPOS (- (+ XPOS (fetch (REGION WIDTH) of WREGION))
IW)))
(SETQ TEMP (+ XPOS IW))
(if (>= TEMP SCREENWIDTH)
then (SETQ XPOS (- SCREENWIDTH 1)))
(create POSITION
XCOORD _ XPOS
YCOORD _ YPOS])
(Manager.DO.COMMAND
[LAMBDA (COMMAND ITEM COMSTYPE FILE MENU) (* ; "Edited 15-Sep-2022 23:35 by Matt Heffron")
(* ; "Edited 15-Sep-2022 23:32 by Matt Heffron")
(* ; "Edited 15-Sep-2022 23:19 by Matt Heffron")
(* ; "Edited 18-Nov-87 14:30 by raf")
[LAMBDA (COMMAND ITEM COMSTYPE FILE MENU) (* ; "Edited 13-Oct-2023 16:28 by mth")
(if (EQ COMSTYPE 'FILEVARS)
then (SETQ COMSTYPE 'VARS) (* ; "The Manager currently does unnatural things with the FILEVARS type, this is a hack to compensate for it. E.g., editing a FILEVARS = editing the VARS, etc.")
)
@@ -719,15 +756,22 @@ Will load DataBaseFNS if necessary" (SUBITEMS ("All" 'DB
(Manager.HIGHLIGHT FILE MENU)))
else (* ; "single item")
(UNMARKASCHANGED ITEM COMSTYPE)))
(SEE (FB.FASTSEE.ONEFILE
NIL FILE (LET [(W (CREATEW NIL (CONCAT "Seeing " FILE
"..."]
(DSPSCROLL 'ON W)
(WINDOWPROP W 'PAGEFULLFN
'FB.SEEFULLFN)
(TTYDISPLAYSTREAM W)
W)))
(TEDIT-SEE (TEDIT-SEE FILE))
(SEE (LET ((FULLNAME (OR (CDAR (GETPROP FILE 'FILEDATES))
FILE)))
(* ;;
 "I'm assuming that the CAR of the FILEDATES list is the most recent...")
(FB.FASTSEE.ONEFILE
NIL FULLNAME
(LET [(W (CREATEW NIL (CONCAT "Seeing " FULLNAME
"..."]
(DSPSCROLL 'ON W)
(WINDOWPROP W 'PAGEFULLFN 'FB.SEEFULLFN)
(TTYDISPLAYSTREAM W)
W))))
(TEDIT-SEE (TEDIT-SEE (OR (CDAR (GETPROP FILE 'FILEDATES))
FILE)))
(LOAD
(printout T .FONT LAMBDAFONT "Loading file " FILE "."
.FONT DEFAULTFONT T)
@@ -748,18 +792,20 @@ Will load DataBaseFNS if necessary" (SUBITEMS ("All" 'DB
then NIL
else (LIST COMMAND]
(printout T .FONT DEFAULTFONT T)))
(COMMON-MAKEFILE
(FILESLOAD 'COMMON-MAKEFILE)
(if FILE
then (printout T .FONT LAMBDAFONT
"Writing CommonLisp source into " FILE
".LSP" .FONT DEFAULTFONT T)
(PRINT (USER::COMMON-MAKEFILE FILE)
T)
else (CL:FORMAT T
(COMMON-MAKEFILE (if FILE
then (printout T .FONT LAMBDAFONT
"Writing CommonLisp source into "
FILE ".LSP" .FONT
DEFAULTFONT T)
(PRINT (COMMON-MAKEFILE FILE)
T)
else (CL:FORMAT T
"~&CommonLispify must be selected separately for each file"
)))
)))
((LIST HARDCOPY) (LISTFILES1 FILE))
((ANCHOR-TL ANCHOR-TR ANCHOR-BL ANCHOR-BR) (
 Manager.SET-ANCHOR
COMMAND))
(CLEANUP
(printout T .FONT LAMBDAFONT "Cleanup..." .FONT
DEFAULTFONT T)
@@ -821,68 +867,42 @@ Will load DataBaseFNS if necessary" (SUBITEMS ("All" 'DB
(* ;; "DATABASEFNS stuff")
(DB
(FILESLOAD 'DATABASEFNS)
(CL:FORMAT T
(DB (CL:FORMAT T
"~&Global DataBaseFNS Flags:~%%SAVEDBFLG = ~a, LOADDBFLG = ~a"
SAVEDBFLG LOADBFLG))
SAVEDBFLG LOADDBFLG))
(DBFILE
(FILESLOAD 'DATABASEFNS)
(CL:FORMAT T "~&The DATABASE prop for ~a is: ~a" FILE
(GETPROP FILE 'DATABASE))
(CL:FORMAT T
"~&Global DataBaseFNS Flags:~%%SAVEDBFLG = ~a, LOADDBFLG = ~a"
SAVEDBFLG LOADBFLG))
SAVEDBFLG LOADDBFLG))
(DBON
(FILESLOAD 'DATABASEFNS)
(SETQ LOADBFLG 'ON)
(SETQ LOADDBFLG 'ON)
(SETQ SAVEDBFLG 'ON))
(DBOFF
(FILESLOAD 'DATABASEFNS)
(SETQ LOADBFLG 'OFF)
(SETQ SAVEDBFLG 'OFF))
(SETQ LOADDBFLG 'NO)
(SETQ SAVEDBFLG 'NO))
(DBASK
(FILESLOAD 'DATABASEFNS)
(SETQ LOADBFLG 'ASK)
(SETQ LOADDBFLG 'ASK)
(SETQ SAVEDBFLG 'ASK))
(DBLOADON
(FILESLOAD 'DATABASEFNS)
(SETQ LOADBFLG 'ON))
(DBSAVEON
(FILESLOAD 'DATABASEFNS)
(SETQ SAVEDBFLG 'ON))
(DBLOADOFF
(FILESLOAD 'DATABASEFNS)
(SETQ LOADBFLG 'OFF))
(DBSAVEOFF
(FILESLOAD 'DATABASEFNS)
(SETQ SAVEDBFLG 'OFF))
(DBLOADASK
(FILESLOAD 'DATABASEFNS)
(SETQ LOADBFLG 'ASK))
(DBSAVEASK
(FILESLOAD 'DATABASEFNS)
(SETQ SAVEDBFLG 'ASK))
(DBFILEON
(FILESLOAD 'DATABASEFNS)
(PUTPROP FILE 'DATABASE 'ON))
(DBFILEOFF
(FILESLOAD 'DATABASEFNS)
(PUTPROP FILE 'DATABASE 'OFF))
(DBFILEASK
(FILESLOAD 'DATABASEFNS)
(PUTPROP FILE 'DATABASE 'ASK))
(DBLOADON (SETQ LOADDBFLG 'YES))
(DBSAVEON (SETQ SAVEDBFLG 'YES))
(DBLOADOFF (SETQ LOADDBFLG 'NO))
(DBSAVEOFF (SETQ SAVEDBFLG 'NO))
(DBLOADASK (SETQ LOADDBFLG 'ASK))
(DBSAVEASK (SETQ SAVEDBFLG 'ASK))
(DBFILEON (PUTPROP FILE 'DATABASE 'YES))
(DBFILEOFF (PUTPROP FILE 'DATABASE 'NO))
(DBFILEASK (PUTPROP FILE 'DATABASE 'ASK))
(DUMPDB
(printout T .FONT LAMBDAFONT
"Dumping the Masterscope Database for file " FILE
.FONT DEFAULTFONT T)
(FILESLOAD 'DATABASEFNS)
(DUMPDB FILE))
(LOADDB
(printout T .FONT LAMBDAFONT
"Loading the Masterscope Database for file " FILE
.FONT DEFAULTFONT T)
(FILESLOAD 'DATABASEFNS)
(LOADDB FILE))
(COMPILE
(printout T .FONT LAMBDAFONT "Compiling..." .FONT
@@ -1372,7 +1392,7 @@ Will load DataBaseFNS if necessary" (SUBITEMS ("All" 'DB
FILE])
(Manager.MAINOPEN
[LAMBDA (POSITION) (* ; "Edited 17-Aug-87 13:59 by raf")
[LAMBDA (POSITION) (* ; "Edited 10-Oct-2023 11:23 by mth")
(* ;;; "Builds the manager main (FILELST) menu at the indicated position.")
@@ -1387,31 +1407,30 @@ Will load DataBaseFNS if necessary" (SUBITEMS ("All" 'DB
(ADDMENU MANAGER-FILE-MENU
(SETQ MANAGER-MAIN-WINDOW
(CREATEW (with POSITION
(with MENU MANAGER-FILE-MENU (SETQ IW (MIN (WIDTHIFWINDOW IMAGEWIDTH)
SCREENWIDTH))
(CREATEW (with POSITION (with MENU MANAGER-FILE-MENU (SETQ IW (MIN (WIDTHIFWINDOW
IMAGEWIDTH)
SCREENWIDTH))
(* ;
 "width of file menu. Actually unlikely to be wider than screenwidth (!)")
(SETQ IH (MIN (HEIGHTIFWINDOW IMAGEHEIGHT T)
SCREENHEIGHT))
(SETQ IH (MIN (HEIGHTIFWINDOW IMAGEHEIGHT T)
SCREENHEIGHT))
(* ;
 "height of window; could possibly be higher than screen if lots of files")
(if (POSITIONP POSITION)
then (* ;
(if (POSITIONP POSITION)
then (* ;
 "gave an initial position for the manager file menu")
POSITION
elseif (WINDOWP MANAGER-MAIN-WINDOW)
then (* ;
POSITION
elseif (WINDOWP MANAGER-MAIN-WINDOW)
then (* ;
 "if there was a window, put the new one in the same place (and close the old one)")
(PROG1 (with REGION (WINDOWPROP MANAGER-MAIN-WINDOW
'REGION)
(create POSITION
XCOORD _ LEFT
YCOORD _ BOTTOM))
(CLOSEW MANAGER-MAIN-WINDOW))
else (* ;
(PROG1 (Manager.ANCHORED-SET-POSITION IW IH)
(* ;; "(with REGION (WINDOWPROP MANAGER-MAIN-WINDOW (QUOTE REGION)) (create POSITION XCOORD _ LEFT YCOORD _ BOTTOM))")
(CLOSEW MANAGER-MAIN-WINDOW))
else (* ;
 "let user say where to put the menu")
(GETBOXPOSITION IW IH)))
(GETBOXPOSITION IW IH)))
(create REGION
LEFT _ XCOORD
WIDTH _ IW
@@ -1434,17 +1453,18 @@ Will load DataBaseFNS if necessary" (SUBITEMS ("All" 'DB
(* ;; "Shrink to the manager icon, and remember to update when the expanding")
[WINDOWPROP MANAGER-MAIN-WINDOW 'ICONFN (FUNCTION (LAMBDA (WIN OICON)
(LET ((IW (if (NULL OICON)
then (ICONW MANAGER.BM
MANAGER.BM.MASK
)
else OICON)))
[WINDOWPROP IW 'EXPANDFN
(FUNCTION (LAMBDA NIL
(
 Manager.MAINUPDATE
NIL]
IW]
(SETQ MANAGER-MAIN-ICONW
(if (NULL OICON)
then (OR MANAGER-MAIN-ICONW
(ICONW MANAGER.BM
MANAGER.BM.MASK))
else OICON))
[WINDOWPROP MANAGER-MAIN-ICONW
'EXPANDFN
(FUNCTION (LAMBDA NIL
(Manager.MAINUPDATE
NIL]
MANAGER-MAIN-ICONW]
(SETQ Manager.ACTIVEFLG T)
(Manager.MAINUPDATE T])
@@ -1545,6 +1565,12 @@ Will load DataBaseFNS if necessary" (SUBITEMS ("All" 'DB
(CONCAT "Creates a " TYPE
" submenu for the file " FILE])
(Manager.SET-ANCHOR
[LAMBDA (NEWANCHOR) (* ; "Edited 10-Oct-2023 11:24 by mth")
(if (AND (FMEMB NEWANCHOR '(ANCHOR-TL ANCHOR-TR ANCHOR-BL ANCHOR-BR))
(NEQ Manager.WINDOW-ANCHOR NEWANCHOR))
then (SETQ Manager.WINDOW-ANCHOR NEWANCHOR])
(Manager.SORT.COMS
[LAMBDA (A B) (* ; "Edited 18-Nov-87 15:12 by raf")
@@ -1746,20 +1772,21 @@ Will load DataBaseFNS if necessary" (SUBITEMS ("All" 'DB
(ADDTOVAR LAMA )
)
(PUTPROPS MANAGER COPYRIGHT ("Xerox Corporation" 1986 1987 1900 2022))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (24415 101274 (MANAGER 24425 . 25224) (MANAGER.RESET 25226 . 26740) (Manager.ADDADV
26742 . 28095) (Manager.ADDTOFILES? 28097 . 28375) (Manager.ALTERMARKING 28377 . 29987) (
Manager.DO.COMMAND 29989 . 61755) (Manager.HIGHLIGHT 61757 . 62054) (Manager.PROMPT 62056 . 62369) (
Manager.WINDOW 62371 . 63004) (Manager.insurefilehighlights 63006 . 64077) (Manager.CHANGED? 64079 .
64628) (Manager.CHECKFILE 64630 . 65729) (Manager.COLLECTCOMS 65731 . 67169) (Manager.COMS.WSF 67171
. 69841) (Manager.COMSOPEN 69843 . 74581) (Manager.COMSUPDATE 74583 . 75675) (Manager.HIGHLIGHTED
75677 . 75983) (Manager.INSUREHIGHLIGHTS 75985 . 76543) (Manager.FILECHANGES 76545 . 76844) (
Manager.FILELSTCHANGED? 76846 . 77174) (Manager.FILESUBTYPES 77176 . 77814) (Manager.GET.ENVIRONMENT
77816 . 80354) (Manager.GETFILE 80356 . 82670) (Manager.INTITLE? 82672 . 83350) (Manager.MAIN.WSF
83352 . 85996) (Manager.MAINCLOSE 85998 . 87108) (Manager.MAINMENUITEMS 87110 . 88187) (
Manager.MAINOPEN 88189 . 93565) (Manager.MAINUPDATE 93567 . 94203) (Manager.MAKEFILE.ADV 94205 . 95241
) (Manager.MENUCOLUMNS 95243 . 96047) (Manager.MENUHASITEM 96049 . 96406) (Manager.MENUITEMS 96408 .
96653) (Manager.REMOVE.DUPLICATE.ADVICE 96655 . 98261) (Manager.RESETSUBITEMS 98263 . 99500) (
Manager.SORT.COMS 99502 . 100034) (Manager.SORTBYCOLUMN 100036 . 101272)))))
(FILEMAP (NIL (25676 102848 (MANAGER 25686 . 26485) (MANAGER.RESET 26487 . 28001) (Manager.ADDADV
28003 . 29356) (Manager.ADDTOFILES? 29358 . 29636) (Manager.ALTERMARKING 29638 . 31248) (
Manager.ANCHORED-SET-POSITION 31250 . 32353) (Manager.DO.COMMAND 32355 . 62991) (Manager.HIGHLIGHT
62993 . 63290) (Manager.PROMPT 63292 . 63605) (Manager.WINDOW 63607 . 64240) (
Manager.insurefilehighlights 64242 . 65313) (Manager.CHANGED? 65315 . 65864) (Manager.CHECKFILE 65866
. 66965) (Manager.COLLECTCOMS 66967 . 68405) (Manager.COMS.WSF 68407 . 71077) (Manager.COMSOPEN 71079
. 75817) (Manager.COMSUPDATE 75819 . 76911) (Manager.HIGHLIGHTED 76913 . 77219) (
Manager.INSUREHIGHLIGHTS 77221 . 77779) (Manager.FILECHANGES 77781 . 78080) (Manager.FILELSTCHANGED?
78082 . 78410) (Manager.FILESUBTYPES 78412 . 79050) (Manager.GET.ENVIRONMENT 79052 . 81590) (
Manager.GETFILE 81592 . 83906) (Manager.INTITLE? 83908 . 84586) (Manager.MAIN.WSF 84588 . 87232) (
Manager.MAINCLOSE 87234 . 88344) (Manager.MAINMENUITEMS 88346 . 89423) (Manager.MAINOPEN 89425 . 94818
) (Manager.MAINUPDATE 94820 . 95456) (Manager.MAKEFILE.ADV 95458 . 96494) (Manager.MENUCOLUMNS 96496
. 97300) (Manager.MENUHASITEM 97302 . 97659) (Manager.MENUITEMS 97661 . 97906) (
Manager.REMOVE.DUPLICATE.ADVICE 97908 . 99514) (Manager.RESETSUBITEMS 99516 . 100753) (
Manager.SET-ANCHOR 100755 . 101074) (Manager.SORT.COMS 101076 . 101608) (Manager.SORTBYCOLUMN 101610
. 102846)))))
STOP

Binary file not shown.

Binary file not shown.

View File

@@ -1,14 +1,13 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "19-Jul-2023 09:17:48" {WMEDLEY}<lispusers>PSEUDOHOSTS.;153 27674
(FILECREATED "22-Sep-2023 15:29:50" {WMEDLEY}<lispusers>PSEUDOHOSTS.;158 26638
:EDIT-BY rmk
:CHANGES-TO (RECORDS PHDEVICE PHGENFILESTATE TARGETDEVICE)
(MACROS PSEUDOHOST.NAME PSEUDOHOST.TARGETVAL)
:CHANGES-TO (FNS PSEUDOHOST SLASHIT CONTRACT.PH)
(VARS PSEUDOHOSTSCOMS)
:PREVIOUS-DATE "18-Jul-2023 13:12:35" {WMEDLEY}<lispusers>PSEUDOHOSTS.;152)
:PREVIOUS-DATE "26-Jul-2023 12:34:37" {WMEDLEY}<lispusers>PSEUDOHOSTS.;155)
(PRETTYCOMPRINT PSEUDOHOSTSCOMS)
@@ -21,7 +20,7 @@
(* ;; "Internals")
(FNS EXPAND.PH CONTRACT.PH SLASHIT UNSLASHIT GETHOSTINFO.PH)
(FNS EXPAND.PH CONTRACT.PH UNSLASHIT GETHOSTINFO.PH)
(FNS OPENFILE.PH GETFILENAME.PH DIRECTORYNAMEP.PH CLOSEFILE.PH REOPENFILE.PH DELETEFILE.PH
OPENP.PH UNREGISTERFILE.PH REGISTERFILE.PH GENERATEFILES.PH GETFILEINFO.PH
SETFILEINFO.PH NEXTFILEFN.PH FILEINFOFN.PH RENAMEFILE.PH)
@@ -42,6 +41,8 @@
(PSEUDOHOST
[LAMBDA (HOST PREFIX)
(* ;; "Edited 22-Sep-2023 15:29 by rmk")
(* ;; "Edited 25-Jun-2022 17:00 by rmk")
(* ;; "Edited 24-Feb-2022 23:56 by rmk: Expand prefix so that it is rooted in a real host and not a previously defined pseudohost.")
@@ -81,7 +82,7 @@
(SELECTQ TARGETHOST
((DSK CORE)
(SETQ PREFIX (UNSLASHIT PREFIX)))
(UNIX (SETQ PREFIX (SLASHIT PREFIX)))
(UNIX (SETQ PREFIX (SLASHIT PREFIX)))
NIL)
(SETQ TARGETDEVICE (OR (\GETDEVICEFROMHOSTNAME TARGETHOST)
(ERROR "UNKNOWN TARGET HOST" TARGETHOST)))
@@ -153,26 +154,32 @@
(FETCH (FDEV DEVICENAME) OF (FETCH (PHDEVICE TARGETDEV) OF (\GETDEVICEFROMNAME HOST))))])
(TRUEFILENAME
[LAMBDA (FILE) (* ; "Edited 26-Jan-2022 23:33 by rmk")
[LAMBDA (FILE) (* ; "Edited 26-Jul-2023 07:53 by rmk")
(* ; "Edited 26-Jan-2022 23:33 by rmk")
(* ; "Edited 25-Jan-2022 08:47 by rmk")
(LET (FILENAME DEVICE)
(IF (STREAMP FILE)
THEN (SETQ FILENAME (FETCH (STREAM FULLFILENAME) OF FILE))
(SETQ DEVICE (FETCH (STREAM DEVICE) OF FILE))
ELSE (SETQ FILENAME (\ADD.CONNECTED.DIR FILE))
(SETQ DEVICE (\GETDEVICEFROMNAME FILENAME)))
(CL:IF (TYPE? PHDEVICE DEVICE)
(EXPAND.PH FILENAME DEVICE)
FILENAME)])
(if (LISTP FILE)
then (for F in FILE collect (TRUEFILENAME F))
else (LET (FILENAME DEVICE)
(IF (STREAMP FILE)
THEN (SETQ FILENAME (FETCH (STREAM FULLFILENAME) OF FILE))
(SETQ DEVICE (FETCH (STREAM DEVICE) OF FILE))
ELSE (SETQ FILENAME (\ADD.CONNECTED.DIR FILE))
(SETQ DEVICE (\GETDEVICEFROMNAME FILENAME)))
(CL:IF (TYPE? PHDEVICE DEVICE)
(EXPAND.PH FILENAME DEVICE)
FILENAME)])
(PSEUDOFILENAME
[LAMBDA (FILE) (* ; "Edited 29-Jan-2022 23:08 by rmk")
[LAMBDA (FILE) (* ; "Edited 26-Jul-2023 12:34 by rmk")
(* ; "Edited 29-Jan-2022 23:08 by rmk")
(* ; "Edited 28-Jan-2022 09:06 by rmk")
(FOR D PN (FILENAME _ (IF (STREAMP FILE)
THEN (FETCH (STREAM FULLFILENAME) OF FILE)
ELSE (\ADD.CONNECTED.DIR FILE))) IN \FILEDEVICES
WHEN (TYPE? PHDEVICE D) UNLESS (EQ FILENAME (SETQ PN (CONTRACT.PH FILENAME D)))
DO (RETURN PN) FINALLY (RETURN FILENAME])
(if (LISTP FILE)
then (for F in FILE collect (PSEUDOFILENAME F))
else (FOR D PN (FILENAME _ (IF (STREAMP FILE)
THEN (FETCH (STREAM FULLFILENAME) OF FILE)
ELSE (\ADD.CONNECTED.DIR FILE))) IN \FILEDEVICES
WHEN (TYPE? PHDEVICE D) UNLESS (EQ FILENAME (SETQ PN (CONTRACT.PH FILENAME D)))
DO (RETURN PN) FINALLY (RETURN FILENAME])
)
@@ -209,6 +216,8 @@
(CONTRACT.PH
[LAMBDA (NAME PHDEV)
(* ;; "Edited 22-Sep-2023 14:30 by rmk")
(* ;; "Edited 30-Jan-2022 00:20 by rmk: the smallest pseudoname for NAME. If the NAME was constructed by expanding, then")
(* ;; "Finds the smallest pseudoname for NAME. The PHDEV is used only to find its targetdev, that's where we scan for matching prefixes. This is so we can find the lowest matching pseudohost in the target's prefix map. If the hosts are defined as {DSK}...{H1}...{H2}, DSK knows the prefixes that lead to H1 and H2, picks the longest matching prefix and replaces it by the corresponding host.")
@@ -234,7 +243,7 @@
(SETQ CONNECTOR (CADDR PM))
[SETQ SUFFIX (CONCAT CONNECTOR (IF (EQ CONNECTOR '/)
THEN (SLASHIT SUFFIX)
THEN (SLASHIT SUFFIX)
ELSE (UNSLASHIT SUFFIX])
(RETURN (PACK* '{ (CADR PM)
"}"
@@ -244,31 +253,6 @@
(RETURN NAME)))])
(SLASHIT
[LAMBDA (X LCASEDIRS) (* ; "Edited 26-Jan-2022 15:08 by rmk")
(* ; "Edited 3-Jan-2022 11:44 by rmk")
(* ; "Edited 22-Dec-2021 20:18 by rmk")
(* ; "Edited 2-Nov-2021 22:54 by rmk:")
(LET [LASTDIRPOS SLASHED (DIRPOS (ADD1 (OR (STRPOS "}" X)
0]
[SETQ SLASHED (CONCATCODES (FOR I C FROM DIRPOS WHILE (SETQ C (NTHCHARCODE X I))
COLLECT (SELCHARQ C
((< >)
(SETQ LASTDIRPOS I)
(CHARCODE /))
(/ (SETQ LASTDIRPOS I)
C)
C]
(CL:WHEN (AND LCASEDIRS LASTDIRPOS)
(SETQ LASTDIRPOS (ADD1 (IDIFFERENCE LASTDIRPOS DIRPOS)))
(SETQ SLASHED (CONCAT (L-CASE (SUBSTRING SLASHED 1 LASTDIRPOS))
(OR (SUBSTRING SLASHED (ADD1 LASTDIRPOS))
""))))
(CL:IF (EQ DIRPOS 1)
SLASHED
(CONCAT (SUBSTRING X 1 (SUB1 DIRPOS))
SLASHED))])
(UNSLASHIT
[LAMBDA (X LCASEDIRS) (* ; "Edited 26-Jan-2022 15:09 by rmk")
(* ; "Edited 22-Dec-2021 20:18 by rmk")
@@ -527,13 +511,12 @@
EXPORTS.ALL)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1397 9433 (PSEUDOHOST 1407 . 6966) (PSEUDOHOSTP 6968 . 7481) (PSEUDOHOSTS 7483 . 7844)
(TARGETHOST 7846 . 8120) (TRUEFILENAME 8122 . 8809) (PSEUDOFILENAME 8811 . 9431)) (9461 17000 (
EXPAND.PH 9471 . 10724) (CONTRACT.PH 10726 . 13391) (SLASHIT 13393 . 14961) (UNSLASHIT 14963 . 16709)
(GETHOSTINFO.PH 16711 . 16998)) (17001 25021 (OPENFILE.PH 17011 . 18084) (GETFILENAME.PH 18086 . 18375
) (DIRECTORYNAMEP.PH 18377 . 19001) (CLOSEFILE.PH 19003 . 19470) (REOPENFILE.PH 19472 . 20037) (
DELETEFILE.PH 20039 . 20323) (OPENP.PH 20325 . 20620) (UNREGISTERFILE.PH 20622 . 21164) (
REGISTERFILE.PH 21166 . 21700) (GENERATEFILES.PH 21702 . 22746) (GETFILEINFO.PH 22748 . 23050) (
SETFILEINFO.PH 23052 . 23251) (NEXTFILEFN.PH 23253 . 23799) (FILEINFOFN.PH 23801 . 24076) (
RENAMEFILE.PH 24078 . 25019)))))
(FILEMAP (NIL (1315 9921 (PSEUDOHOST 1325 . 6930) (PSEUDOHOSTP 6932 . 7445) (PSEUDOHOSTS 7447 . 7808)
(TARGETHOST 7810 . 8084) (TRUEFILENAME 8086 . 9048) (PSEUDOFILENAME 9050 . 9919)) (9949 15964 (
EXPAND.PH 9959 . 11212) (CONTRACT.PH 11214 . 13925) (UNSLASHIT 13927 . 15673) (GETHOSTINFO.PH 15675 .
15962)) (15965 23985 (OPENFILE.PH 15975 . 17048) (GETFILENAME.PH 17050 . 17339) (DIRECTORYNAMEP.PH
17341 . 17965) (CLOSEFILE.PH 17967 . 18434) (REOPENFILE.PH 18436 . 19001) (DELETEFILE.PH 19003 . 19287
) (OPENP.PH 19289 . 19584) (UNREGISTERFILE.PH 19586 . 20128) (REGISTERFILE.PH 20130 . 20664) (
GENERATEFILES.PH 20666 . 21710) (GETFILEINFO.PH 21712 . 22014) (SETFILEINFO.PH 22016 . 22215) (
NEXTFILEFN.PH 22217 . 22763) (FILEINFOFN.PH 22765 . 23040) (RENAMEFILE.PH 23042 . 23983)))))
STOP

Binary file not shown.

View File

@@ -1,23 +1,40 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "28-Apr-88 17:04:57" {ERINYES}<LISPUSERS>MEDLEY>READAIS.;1 48154
changes to%: (FNS AISBLT AISBLT1TO1 24BITCOLORTO8BITMAP AISBLT8TO4MODUL AISBLT8TOLESSFSA AISBLT8TO4TRUNC AISBLT8TO8 AISBLT4TO4 AISBLT8TO4LESSFSA AISBLT8TO1FSA AISBLT8TO1TRUNC CLOSEST.COLOR GRAPHAISHISTOGRAM AISHISTOGRAM SMOOTHEDFILTER SLOW.COLOR.DISTANCE FAST.COLOR.DISTANCE INSUREAISFILE SHOWCOLORAIS SHOWCOLORAIS1 WRITEAIS WRITEAIS1 \GETBASENYBBLE \PUTBASENYBBLE)
(VARS READAISCOMS)
(FILECREATED "24-Sep-2023 14:35:09" {WMEDLEY}<lispusers>READAIS.;2 63146
previous date%: "27-Apr-88 12:12:58" {QV}<BRIGGS>LISP>MEDLEY>READAIS.;2)
:EDIT-BY rmk
:CHANGES-TO (FNS AISHISTOGRAM)
:PREVIOUS-DATE "28-Apr-88 17:04:57" {WMEDLEY}<lispusers>READAIS.;1)
(* "
Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988 by Xerox Corporation. All rights reserved.
(* ; "
Copyright (c) 1982-1988 by Xerox Corporation.
")
(PRETTYCOMPRINT READAISCOMS)
(RPAQQ READAISCOMS ((DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (NYBBLESPERWORD 4))) (* ;; "fixed INSUREAISFILE, AISBLT, AISBLT8TO8. nhb 27-Apr-88 01:58:56") (FNS 24BITCOLORTO8BITMAP AISBLT AISBLT1TO1 AISBLT8TO4MODUL AISBLT8TOLESSFSA AISBLT8TO4TRUNC AISBLT8TO8 AISBLT4TO4 AISBLT8TO4LESSFSA AISBLT8TO1FSA AISBLT8TO1TRUNC CLOSEST.COLOR GRAPHAISHISTOGRAM AISHISTOGRAM SMOOTHEDFILTER SLOW.COLOR.DISTANCE FAST.COLOR.DISTANCE INSUREAISFILE SHOWCOLORAIS SHOWCOLORAIS1 WRITEAIS WRITEAIS1 \GETBASENYBBLE \PUTBASENYBBLE) (MACROS .GET.4BIT.AND.SPREAD.ERR. .GET.1BIT.AND.SPREAD.ERR. .GET.NBIT.AND.SPREAD.ERR. .GET.LEFTMOST.4BIT .GET.LEFTMOST.BIT. .GET.BESTCOLOR.AND.SPREAD.ERR. .4BIT.MODULATE.INTENSITY.VALUE. .MODULATE.INTENSITY.VALUE. SQUARE) (P (MOVD? (QUOTE FAST.COLOR.DISTANCE) (QUOTE COLOR.DISTANCE))) (VARS AISDIRECTORIES) (GLOBALVARS AISDIRECTORIES)))
(RPAQQ READAISCOMS
((DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (NYBBLESPERWORD 4)))
(* ;; "fixed INSUREAISFILE, AISBLT, AISBLT8TO8. nhb 27-Apr-88 01:58:56")
(FNS 24BITCOLORTO8BITMAP AISBLT AISBLT1TO1 AISBLT8TO4MODUL AISBLT8TOLESSFSA AISBLT8TO4TRUNC
AISBLT8TO8 AISBLT4TO4 AISBLT8TO4LESSFSA AISBLT8TO1FSA AISBLT8TO1TRUNC CLOSEST.COLOR
GRAPHAISHISTOGRAM AISHISTOGRAM SMOOTHEDFILTER SLOW.COLOR.DISTANCE FAST.COLOR.DISTANCE
INSUREAISFILE SHOWCOLORAIS SHOWCOLORAIS1 WRITEAIS WRITEAIS1 \GETBASENYBBLE
\PUTBASENYBBLE)
(MACROS .GET.4BIT.AND.SPREAD.ERR. .GET.1BIT.AND.SPREAD.ERR. .GET.NBIT.AND.SPREAD.ERR.
.GET.LEFTMOST.4BIT .GET.LEFTMOST.BIT. .GET.BESTCOLOR.AND.SPREAD.ERR.
.4BIT.MODULATE.INTENSITY.VALUE. .MODULATE.INTENSITY.VALUE. SQUARE)
(P (MOVD? 'FAST.COLOR.DISTANCE 'COLOR.DISTANCE))
(VARS AISDIRECTORIES)
(GLOBALVARS AISDIRECTORIES)))
(DECLARE%: EVAL@COMPILE DONTCOPY
(DECLARE%: EVAL@COMPILE
(RPAQQ NYBBLESPERWORD 4)
(RPAQQ NYBBLESPERWORD 4)
(CONSTANTS (NYBBLESPERWORD 4))
@@ -83,8 +100,59 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988 by Xerox Corporation. Al
)
(AISHISTOGRAM
(LAMBDA (FILE REGION) (* kbr%: "13-Jul-85 19:28") (* returns an array that have the number of pixels in FILE that have each intensity.) (PROG (STREAM DATABEG AISHISTOGRAM TMP BITSPERSAMPLE SFILEWIDTH SFILEHEIGHT SFILEBYTESPERLINE LEFT BOTTOM RIGHT TOP WIDTH HEIGHT BEG END) (COND ((OR (SETQ STREAM (FINDFILE FILE NIL AISDIRECTORIES)) (SETQ STREAM FILE)) (SETQ STREAM (GETSTREAM (OPENFILE STREAM (QUOTE INPUT)) (QUOTE INPUT))))) (SETQ TMP (INSUREAISFILE STREAM)) (SETQ BITSPERSAMPLE (CAR TMP)) (SETQ SFILEWIDTH (CADR TMP)) (SETQ SFILEHEIGHT (CADDR TMP)) (SETQ SFILEBYTESPERLINE (LLSH (CADDDR TMP) 1)) (SETQ DATABEG (GETFILEPTR STREAM)) (SETQ AISHISTOGRAM (ARRAY (EXPT 2 BITSPERSAMPLE) NIL 0 0)) (COND (REGION (SETQ LEFT (IMAX (IMIN (fetch (REGION LEFT) of REGION) (SUB1 SFILEWIDTH)) 0)) (SETQ RIGHT (IMAX (IMIN SFILEWIDTH (fetch (REGION PRIGHT) of REGION)) 0)) (COND ((IGEQ LEFT RIGHT) (RETURN AISHISTOGRAM)) (T (SETQ WIDTH (IDIFFERENCE RIGHT LEFT)))) (SETQ BOTTOM (IMIN (fetch (REGION BOTTOM) of REGION) (SUB1 SFILEHEIGHT))) (SETQ TOP (IMIN SFILEHEIGHT (fetch (REGION PTOP) of REGION))) (COND ((IGREATERP BOTTOM TOP) (RETURN AISHISTOGRAM))) (SETQ BEG (IPLUS DATABEG (IPLUS (ITIMES SFILEBYTESPERLINE (IDIFFERENCE SFILEHEIGHT TOP)) LEFT))) (SETQ END (IPLUS DATABEG (IPLUS (ITIMES SFILEBYTESPERLINE (IDIFFERENCE SFILEHEIGHT BOTTOM)) LEFT))) (for LINE from BEG to END by SFILEBYTESPERLINE do (\SETFILEPTR STREAM LINE) (for BIT from 1 to WIDTH do (SETA AISHISTOGRAM (SETQ TMP (\BIN STREAM)) (ADD1 (ELT AISHISTOGRAM TMP)))))) (T (for LINE from 1 to SFILEHEIGHT do (for BIT from 1 to SFILEBYTESPERLINE do (SETA AISHISTOGRAM (SETQ TMP (\BIN STREAM)) (ADD1 (ELT AISHISTOGRAM TMP))))))) (CLOSEF STREAM) (RETURN AISHISTOGRAM)))
)
[LAMBDA (FILE REGION) (* ; "Edited 24-Sep-2023 14:34 by rmk")
(* kbr%: "13-Jul-85 19:28")
(* ;
 "returns an array that have the number of pixels in FILE that have each intensity.")
(PROG (STREAM DATABEG AISHISTOGRAM TMP BITSPERSAMPLE SFILEWIDTH SFILEHEIGHT SFILEBYTESPERLINE
LEFT BOTTOM RIGHT TOP WIDTH HEIGHT BEG END)
[COND
((OR (SETQ STREAM (FINDFILE FILE NIL AISDIRECTORIES))
(SETQ STREAM FILE))
(SETQ STREAM (OPENSTREAM STREAM 'INPUT]
(SETQ TMP (INSUREAISFILE STREAM))
(SETQ BITSPERSAMPLE (CAR TMP))
(SETQ SFILEWIDTH (CADR TMP))
(SETQ SFILEHEIGHT (CADDR TMP))
(SETQ SFILEBYTESPERLINE (LLSH (CADDDR TMP)
1))
(SETQ DATABEG (GETFILEPTR STREAM))
(SETQ AISHISTOGRAM (ARRAY (EXPT 2 BITSPERSAMPLE)
NIL 0 0))
[COND
[REGION (SETQ LEFT (IMAX (IMIN (fetch (REGION LEFT) of REGION)
(SUB1 SFILEWIDTH))
0))
(SETQ RIGHT (IMAX (IMIN SFILEWIDTH (fetch (REGION PRIGHT) of REGION))
0))
[COND
((IGEQ LEFT RIGHT)
(RETURN AISHISTOGRAM))
(T (SETQ WIDTH (IDIFFERENCE RIGHT LEFT]
(SETQ BOTTOM (IMIN (fetch (REGION BOTTOM) of REGION)
(SUB1 SFILEHEIGHT)))
(SETQ TOP (IMIN SFILEHEIGHT (fetch (REGION PTOP) of REGION)))
(COND
((IGREATERP BOTTOM TOP)
(RETURN AISHISTOGRAM)))
(SETQ BEG (IPLUS DATABEG (IPLUS (ITIMES SFILEBYTESPERLINE (IDIFFERENCE
SFILEHEIGHT TOP)
)
LEFT)))
(SETQ END (IPLUS DATABEG (IPLUS (ITIMES SFILEBYTESPERLINE (IDIFFERENCE
SFILEHEIGHT
BOTTOM))
LEFT)))
(for LINE from BEG to END by SFILEBYTESPERLINE
do (\SETFILEPTR STREAM LINE)
(for BIT from 1 to WIDTH do (SETA AISHISTOGRAM (SETQ TMP (\BIN STREAM))
(ADD1 (ELT AISHISTOGRAM TMP]
(T (for LINE from 1 to SFILEHEIGHT
do (for BIT from 1 to SFILEBYTESPERLINE
do (SETA AISHISTOGRAM (SETQ TMP (\BIN STREAM))
(ADD1 (ELT AISHISTOGRAM TMP]
(CLOSEF STREAM)
(RETURN AISHISTOGRAM])
(SMOOTHEDFILTER
(LAMBDA (HISTOGRAM) (* kbr%: "13-Jul-85 15:05") (* returns a 256 to 256 mapping array that maximally distributes the intensity values by looking at the histogram array HISTOGRAM) (PROG (ARSIZE SMOOTHARRAY TOTALPOINTS POINTSLESS FILEINTENSITY NEWINTENSITY POINTSPAST BUCKETSIZE NTOMOVE NPTS) (SETQ ARSIZE (ARRAYSIZE HISTOGRAM)) (SETQ POINTSLESS 0) (SETQ NEWINTENSITY 0) (SETQ POINTSPAST 0) (SETQ SMOOTHARRAY (ARRAY ARSIZE NIL 0 0)) (SETQ TOTALPOINTS (for I from 0 to (SUB1 ARSIZE) sum (ELT HISTOGRAM I))) (SETQ BUCKETSIZE (IQUOTIENT TOTALPOINTS 256)) (for I from 0 to (SUB1 ARSIZE) do (SETQ NPTS (ELT HISTOGRAM I)) (SETQ POINTSLESS (IPLUS POINTSLESS NPTS)) (COND ((IGREATERP POINTSLESS BUCKETSIZE) (SETQ NTOMOVE (IQUOTIENT POINTSLESS BUCKETSIZE)) (SETA SMOOTHARRAY I (IPLUS NEWINTENSITY (IQUOTIENT NTOMOVE 2))) (SETQ NEWINTENSITY (COND ((IGREATERP NEWINTENSITY 255) 255) (T (IPLUS NEWINTENSITY NTOMOVE)))) (SETQ POINTSLESS (IDIFFERENCE POINTSLESS (ITIMES NTOMOVE BUCKETSIZE)))) (T (SETA SMOOTHARRAY I NEWINTENSITY)))) (RETURN SMOOTHARRAY)))
@@ -128,41 +196,308 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988 by Xerox Corporation. Al
)
(DECLARE%: EVAL@COMPILE
(PUTPROPS .GET.4BIT.AND.SPREAD.ERR. MACRO ((STREAM) (PROGN (* returns the 4 most significant bits taking into account the error and spreads the error into the appropriate places.) (SETQ BYTE (IPLUS (\BIN STREAM) THISPIXELERROR)) (PROG1 (COND ((IGREATERP BYTE 255) (* overflow case) 15) (T (LRSH BYTE 4))) (SETQ ERR (LOGAND BYTE 15)) (* put |3/8| of error into next pixel, |3/8| to one below and |1/8| to one below and to the right.) (* calculate |1/4| of error.) (SETQ ERR (LRSH ERR 2)) (* |3/8| of error to next pixel plus error from previous line) (SETQ THISPIXELERROR (IPLUS (\GETBASE ERRTABLEPTR 1) (IPLUS ERR (LRSH ERR 1)))) (* |1/8| of error to next one down to right.) (\PUTBASE ERRTABLEPTR 1 (LRSH ERR 1)) (* |3/8| to one below) (\PUTBASE ERRTABLEPTR 0 (IPLUS (\GETBASE ERRTABLEPTR 0) (IPLUS ERR (LRSH ERR 1)))) (SETQ ERRTABLEPTR (\ADDBASE ERRTABLEPTR 1))))))
(PUTPROPS .GET.4BIT.AND.SPREAD.ERR. MACRO [(STREAM)
(PROGN
(PUTPROPS .GET.1BIT.AND.SPREAD.ERR. MACRO ((STREAM) (PROGN (* returns the most significant bit taking into account the error and spreads the error into the appropriate places.) (SETQ BYTE (IPLUS (\BIN STREAM) THISPIXELERROR)) (PROG1 (SETQ VAL (COND ((IGREATERP BYTE 255) (* overflow case) 0) ((IGREATERP 0 BYTE) (* overflow case) 1) (T (LOGXOR (LRSH BYTE 7) 1)))) (SETQ ERR (IDIFFERENCE BYTE (\GETBASE INTENSITYBASE VAL))) (* put |3/8| of error into next pixel, |3/8| to one below and |1/4| to one below and to the right.) (* calculate |1/4| of error.) (SETQ ERR (IDIFFERENCE (LRSH (IPLUS 256 ERR) 2) 64)) (* |3/8| of error to next pixel plus error from previous line) (SETQ THREEEIGHTSERR (IPLUS ERR (IDIFFERENCE (LRSH (IPLUS 256 ERR) 1) 128))) (SETQ THISPIXELERROR (IPLUS (\GETBASEPTR ERRTABLEPTR 2) THREEEIGHTSERR)) (* |1/4| of error to next one down to right.) (\PUTBASEPTR ERRTABLEPTR 2 ERR) (* |3/8| to one below) (\PUTBASEPTR ERRTABLEPTR 0 (IPLUS (\GETBASEPTR ERRTABLEPTR 0) THREEEIGHTSERR)) (SETQ ERRTABLEPTR (\ADDBASE ERRTABLEPTR 2))))))
(* returns the 4 most significant bits taking into account the error and spreads
 the error into the appropriate places.)
(PUTPROPS .GET.NBIT.AND.SPREAD.ERR. MACRO ((STREAM) (PROGN (* returns the NBITS most significant bits taking into account the error and spreads the error into the appropriate places.) (SETQ BYTE (IPLUS (IDIFFERENCE 255 (\BIN STREAM)) THISPIXELERROR)) (PROG1 (SETQ VAL (COND ((IGREATERP BYTE 255) (* overflow case) MAXVALUE) ((IGREATERP 0 BYTE) 0) (T (LRSH BYTE DELBITS)))) (* put |3/8| of error into next pixel, |3/8| to one below and |1/8| to one below and to the right.) (SETQ ERR (IDIFFERENCE BYTE (\GETBASE INTENSITYBASE VAL))) (* calculate |1/4| of error.) (SETQ ERR (IDIFFERENCE (LRSH (IPLUS 256 ERR) 2) 64)) (* |3/8| of error to next pixel plus error from previous line) (SETQ THREEEIGHTSERR (IPLUS ERR (IDIFFERENCE (LRSH (IPLUS 256 ERR) 1) 128))) (SETQ THISPIXELERROR (IPLUS (\GETBASEPTR ERRTABLEPTR 2) THREEEIGHTSERR)) (* |1/8| of error to next one down to right.) (\PUTBASEPTR ERRTABLEPTR 2 ERR) (* |3/8| to one below) (\PUTBASEPTR ERRTABLEPTR 0 (IPLUS (\GETBASEPTR ERRTABLEPTR 0) THREEEIGHTSERR)) (SETQ ERRTABLEPTR (\ADDBASE ERRTABLEPTR 2))))))
(SETQ BYTE (IPLUS (\BIN STREAM)
THISPIXELERROR))
(PROG1 (COND
((IGREATERP BYTE 255)
(* overflow case)
15)
(T (LRSH BYTE 4)))
(SETQ ERR (LOGAND BYTE 15))
(PUTPROPS .GET.LEFTMOST.4BIT MACRO ((STREAM) (* returns the 4 most significant bits) (LRSH (\BIN STREAM) 4)))
(* put |3/8| of error into next pixel, |3/8| to one below and |1/8| to one below
 and to the right.)
(* calculate |1/4| of error.)
(SETQ ERR (LRSH ERR 2))
(* |3/8| of error to next pixel plus
 error from previous line)
[SETQ THISPIXELERROR
(IPLUS (\GETBASE ERRTABLEPTR 1)
(IPLUS ERR (LRSH ERR 1]
(* |1/8| of error to next one down to
 right.)
(\PUTBASE ERRTABLEPTR 1 (LRSH ERR 1))
(* |3/8| to one below)
[\PUTBASE ERRTABLEPTR 0
(IPLUS (\GETBASE ERRTABLEPTR 0)
(IPLUS ERR (LRSH ERR 1]
(SETQ ERRTABLEPTR (\ADDBASE ERRTABLEPTR 1)))])
(PUTPROPS .GET.LEFTMOST.BIT. MACRO ((STREAM) (* returns the most significant bit from an 8 bit sample. It also inverts the sign of the bit since 1 is black and 0 white. NIL) (COND ((IGREATERP (COND (FILTERARRAY (ELT FILTERARRAY (\BIN STREAM))) (T (\BIN STREAM))) 127) 0) (T 1))))
(PUTPROPS .GET.1BIT.AND.SPREAD.ERR. MACRO [(STREAM)
(PROGN
(PUTPROPS .GET.BESTCOLOR.AND.SPREAD.ERR. MACRO (NIL (PROGN (* returns the best matching color bits taking into account the error and spreads the error into the appropriate places.) (SETQ COLOR (CLOSEST.COLOR COLORMAP (SETQ REDBYTE (IPLUS (\BIN REDSTREAM) THISPIXELREDERROR)) (SETQ GREENBYTE (IPLUS (\BIN GREENSTREAM) THISPIXELGREENERROR)) (SETQ BLUEBYTE (IPLUS (\BIN BLUESTREAM) THISPIXELBLUEERROR)))) (SETQ RGB (ELT COLORMAP COLOR)) (PROGN (SETQ ERR (IDIFFERENCE (fetch (RGB RED) of RGB) REDBYTE)) (COND ((IGREATERP ERR -1) (* put |3/8| of error into next pixel, |3/8| to one below and |1/8| to one below and to the right.) (* calculate |1/4| of error.) (SETQ ERR (LRSH ERR 2)) (* |3/8| of error to next pixel plus error from previous line) (SETQ THISPIXELREDERROR (IPLUS (\GETBASEPTR REDERRTABLEPTR 2) (IPLUS ERR (LRSH ERR 1)))) (* |1/8| of error to next one down to right.) (\PUTBASEPTR REDERRTABLEPTR 2 (LRSH ERR 1)) (* |3/8| to one below) (\PUTBASEPTR REDERRTABLEPTR 0 (IPLUS (\GETBASEPTR REDERRTABLEPTR 0) (IPLUS ERR (LRSH ERR 1))))) (T (* error is negative, do things differently.) (* calculate |1/4| of error.) (SETQ ERR (LRSH (IMINUS ERR) 2)) (* |3/8| of error to next pixel plus error from previous line) (SETQ THISPIXELREDERROR (IDIFFERENCE (\GETBASEPTR REDERRTABLEPTR 2) (IPLUS ERR (LRSH ERR 1)))) (* |1/8| of error to next one down to right.) (\PUTBASEPTR REDERRTABLEPTR 2 (IMINUS (LRSH ERR 1))) (* |3/8| to one below) (\PUTBASEPTR REDERRTABLEPTR 0 (IDIFFERENCE (\GETBASEPTR REDERRTABLEPTR 0) (IPLUS ERR (LRSH ERR 1)))))) (SETQ REDERRTABLEPTR (\ADDBASE REDERRTABLEPTR 2))) (PROGN (SETQ ERR (IDIFFERENCE (fetch (RGB GREEN) of RGB) GREENBYTE)) (COND ((IGREATERP ERR -1) (* put |3/8| of error into next pixel, |3/8| to one below and |1/8| to one below and to the right.) (* calculate |1/4| of error.) (SETQ ERR (LRSH ERR 2)) (* |3/8| of error to next pixel plus error from previous line) (SETQ THISPIXELGREENERROR (IPLUS (\GETBASEPTR GREENERRTABLEPTR 2) (IPLUS ERR (LRSH ERR 1)))) (* |1/8| of error to next one down to right.) (\PUTBASEPTR GREENERRTABLEPTR 2 (LRSH ERR 1)) (* |3/8| to one below) (\PUTBASEPTR GREENERRTABLEPTR 0 (IPLUS (\GETBASEPTR GREENERRTABLEPTR 0) (IPLUS ERR (LRSH ERR 1))))) (T (* error is negative, do things differently.) (* calculate |1/4| of error.) (SETQ ERR (LRSH (IMINUS ERR) 2)) (* |3/8| of error to next pixel plus error from previous line) (SETQ THISPIXELGREENERROR (IDIFFERENCE (\GETBASEPTR GREENERRTABLEPTR 2) (IPLUS ERR (LRSH ERR 1)))) (* |1/8| of error to next one down to right.) (\PUTBASEPTR GREENERRTABLEPTR 2 (IMINUS (LRSH ERR 1))) (* |3/8| to one below) (\PUTBASEPTR GREENERRTABLEPTR 0 (IDIFFERENCE (\GETBASEPTR GREENERRTABLEPTR 0) (IPLUS ERR (LRSH ERR 1)))))) (SETQ GREENERRTABLEPTR (\ADDBASE GREENERRTABLEPTR 2))) (PROGN (SETQ ERR (IDIFFERENCE (fetch (RGB BLUE) of RGB) BLUEBYTE)) (COND ((IGREATERP ERR -1) (* put |3/8| of error into next pixel, |3/8| to one below and |1/8| to one below and to the right.) (* calculate |1/4| of error.) (SETQ ERR (LRSH ERR 2)) (* |3/8| of error to next pixel plus error from previous line) (SETQ THISPIXELBLUEERROR (IPLUS (\GETBASEPTR BLUEERRTABLEPTR 2) (IPLUS ERR (LRSH ERR 1)))) (* |1/8| of error to next one down to right.) (\PUTBASEPTR BLUEERRTABLEPTR 2 (LRSH ERR 1)) (* |3/8| to one below) (\PUTBASEPTR BLUEERRTABLEPTR 0 (IPLUS (\GETBASEPTR BLUEERRTABLEPTR 0) (IPLUS ERR (LRSH ERR 1))))) (T (* error is negative, do things differently.) (* calculate |1/4| of error.) (SETQ ERR (LRSH (IMINUS ERR) 2)) (* |3/8| of error to next pixel plus error from previous line) (SETQ THISPIXELBLUEERROR (IDIFFERENCE (\GETBASEPTR BLUEERRTABLEPTR 2) (IPLUS ERR (LRSH ERR 1)))) (* |1/8| of error to next one down to right.) (\PUTBASEPTR BLUEERRTABLEPTR 2 (IMINUS (LRSH ERR 1))) (* |3/8| to one below) (\PUTBASEPTR BLUEERRTABLEPTR 0 (IDIFFERENCE (\GETBASEPTR BLUEERRTABLEPTR 0) (IPLUS ERR (LRSH ERR 1)))))) (SETQ BLUEERRTABLEPTR (\ADDBASE BLUEERRTABLEPTR 2))) COLOR)))
(* returns the most significant bit taking into account the error and spreads the
 error into the appropriate places.)
(PUTPROPS .4BIT.MODULATE.INTENSITY.VALUE. MACRO ((STREAM) (LOGAND (IMIN 255 (IMAX (IPLUS (\BIN STREAM) (RAND MODMIN MODMAX)) 0)) 240)))
(SETQ BYTE (IPLUS (\BIN STREAM)
THISPIXELERROR))
(PROG1 [SETQ VAL (COND
((IGREATERP BYTE 255)
(* overflow case)
0)
((IGREATERP 0 BYTE)
(* overflow case)
1)
(T (LOGXOR (LRSH BYTE 7)
1]
(SETQ ERR (IDIFFERENCE BYTE (\GETBASE
INTENSITYBASE
VAL)))
(PUTPROPS .MODULATE.INTENSITY.VALUE. MACRO ((STREAM) (IMIN 255 (IMAX (IPLUS (\BIN STREAM) (RAND MODMIN MODMAX)) 0))))
(* put |3/8| of error into next pixel, |3/8| to one below and |1/4| to one below
 and to the right.)
(* calculate |1/4| of error.)
(SETQ ERR (IDIFFERENCE (LRSH (IPLUS 256 ERR)
2)
64))
(* |3/8| of error to next pixel plus
 error from previous line)
(SETQ THREEEIGHTSERR
(IPLUS ERR (IDIFFERENCE (LRSH (IPLUS 256 ERR)
1)
128)))
(SETQ THISPIXELERROR (IPLUS (\GETBASEPTR
ERRTABLEPTR
2)
THREEEIGHTSERR))
(* |1/4| of error to next one down to
 right.)
(\PUTBASEPTR ERRTABLEPTR 2 ERR)
(* |3/8| to one below)
(\PUTBASEPTR ERRTABLEPTR 0
(IPLUS (\GETBASEPTR ERRTABLEPTR 0)
THREEEIGHTSERR))
(SETQ ERRTABLEPTR (\ADDBASE ERRTABLEPTR 2)))])
(PUTPROPS SQUARE MACRO (LAMBDA (X) (* coded this way because negative arith is not is microcode for ITIMES) (COND ((IGREATERP X -1) (ITIMES X X)) (T (ITIMES (SETQ X (IMINUS X)) X)))))
(PUTPROPS .GET.NBIT.AND.SPREAD.ERR. MACRO [(STREAM)
(PROGN
(* returns the NBITS most significant bits taking into account the error and
 spreads the error into the appropriate places.)
(SETQ BYTE (IPLUS (IDIFFERENCE 255 (\BIN STREAM))
THISPIXELERROR))
(PROG1 [SETQ VAL (COND
((IGREATERP BYTE 255)
(* overflow case)
MAXVALUE)
((IGREATERP 0 BYTE)
0)
(T (LRSH BYTE DELBITS]
(* put |3/8| of error into next pixel, |3/8| to one below and |1/8| to one below
 and to the right.)
(SETQ ERR (IDIFFERENCE BYTE (\GETBASE
INTENSITYBASE
VAL)))
(* calculate |1/4| of error.)
(SETQ ERR (IDIFFERENCE (LRSH (IPLUS 256 ERR)
2)
64))
(* |3/8| of error to next pixel plus
 error from previous line)
(SETQ THREEEIGHTSERR
(IPLUS ERR (IDIFFERENCE (LRSH (IPLUS 256 ERR)
1)
128)))
(SETQ THISPIXELERROR (IPLUS (\GETBASEPTR
ERRTABLEPTR
2)
THREEEIGHTSERR))
(* |1/8| of error to next one down to
 right.)
(\PUTBASEPTR ERRTABLEPTR 2 ERR)
(* |3/8| to one below)
(\PUTBASEPTR ERRTABLEPTR 0
(IPLUS (\GETBASEPTR ERRTABLEPTR 0)
THREEEIGHTSERR))
(SETQ ERRTABLEPTR (\ADDBASE ERRTABLEPTR 2)))])
(PUTPROPS .GET.LEFTMOST.4BIT MACRO ((STREAM) (* returns the 4 most significant bits)
(LRSH (\BIN STREAM)
4)))
(PUTPROPS .GET.LEFTMOST.BIT. MACRO ((STREAM)
(* returns the most significant bit from an 8 bit sample.
 It also inverts the sign of the bit since 1 is black and 0 white.
 NIL)
(COND
((IGREATERP (COND
(FILTERARRAY (ELT FILTERARRAY (\BIN STREAM)))
(T (\BIN STREAM)))
127)
0)
(T 1))))
(PUTPROPS .GET.BESTCOLOR.AND.SPREAD.ERR. MACRO
(NIL (PROGN
(* returns the best matching color bits taking into account the error and spreads
 the error into the appropriate places.)
[SETQ COLOR (CLOSEST.COLOR COLORMAP (SETQ REDBYTE (IPLUS (\BIN REDSTREAM)
THISPIXELREDERROR))
(SETQ GREENBYTE (IPLUS (\BIN GREENSTREAM)
THISPIXELGREENERROR))
(SETQ BLUEBYTE (IPLUS (\BIN BLUESTREAM)
THISPIXELBLUEERROR]
(SETQ RGB (ELT COLORMAP COLOR))
(PROGN (SETQ ERR (IDIFFERENCE (fetch (RGB RED) of RGB)
REDBYTE))
[COND
[(IGREATERP ERR -1)
(* put |3/8| of error into next pixel, |3/8| to one below and |1/8| to one below
 and to the right.)
(* calculate |1/4| of error.)
(SETQ ERR (LRSH ERR 2)) (* |3/8| of error to next pixel plus
 error from previous line)
[SETQ THISPIXELREDERROR (IPLUS (\GETBASEPTR REDERRTABLEPTR 2)
(IPLUS ERR (LRSH ERR 1]
(* |1/8| of error to next one down to
 right.)
(\PUTBASEPTR REDERRTABLEPTR 2 (LRSH ERR 1))
(* |3/8| to one below)
(\PUTBASEPTR REDERRTABLEPTR 0 (IPLUS (\GETBASEPTR REDERRTABLEPTR 0)
(IPLUS ERR (LRSH ERR 1]
(T (* error is negative, do things
 differently.)
(* calculate |1/4| of error.)
(SETQ ERR (LRSH (IMINUS ERR)
2)) (* |3/8| of error to next pixel plus
 error from previous line)
[SETQ THISPIXELREDERROR (IDIFFERENCE (\GETBASEPTR REDERRTABLEPTR 2
)
(IPLUS ERR (LRSH ERR 1]
(* |1/8| of error to next one down to
 right.)
(\PUTBASEPTR REDERRTABLEPTR 2 (IMINUS (LRSH ERR 1)))
(* |3/8| to one below)
(\PUTBASEPTR REDERRTABLEPTR 0 (IDIFFERENCE (\GETBASEPTR
REDERRTABLEPTR 0
)
(IPLUS ERR (LRSH ERR 1]
(SETQ REDERRTABLEPTR (\ADDBASE REDERRTABLEPTR 2)))
(PROGN (SETQ ERR (IDIFFERENCE (fetch (RGB GREEN) of RGB)
GREENBYTE))
[COND
[(IGREATERP ERR -1)
(* put |3/8| of error into next pixel, |3/8| to one below and |1/8| to one below
 and to the right.)
(* calculate |1/4| of error.)
(SETQ ERR (LRSH ERR 2)) (* |3/8| of error to next pixel plus
 error from previous line)
[SETQ THISPIXELGREENERROR (IPLUS (\GETBASEPTR GREENERRTABLEPTR 2)
(IPLUS ERR (LRSH ERR 1]
(* |1/8| of error to next one down to
 right.)
(\PUTBASEPTR GREENERRTABLEPTR 2 (LRSH ERR 1))
(* |3/8| to one below)
(\PUTBASEPTR GREENERRTABLEPTR 0 (IPLUS (\GETBASEPTR GREENERRTABLEPTR
0)
(IPLUS ERR (LRSH ERR 1]
(T (* error is negative, do things
 differently.)
(* calculate |1/4| of error.)
(SETQ ERR (LRSH (IMINUS ERR)
2)) (* |3/8| of error to next pixel plus
 error from previous line)
[SETQ THISPIXELGREENERROR (IDIFFERENCE (\GETBASEPTR
GREENERRTABLEPTR 2)
(IPLUS ERR (LRSH ERR 1]
(* |1/8| of error to next one down to
 right.)
(\PUTBASEPTR GREENERRTABLEPTR 2 (IMINUS (LRSH ERR 1)))
(* |3/8| to one below)
(\PUTBASEPTR GREENERRTABLEPTR 0 (IDIFFERENCE (\GETBASEPTR
GREENERRTABLEPTR
0)
(IPLUS ERR (LRSH ERR 1]
(SETQ GREENERRTABLEPTR (\ADDBASE GREENERRTABLEPTR 2)))
(PROGN (SETQ ERR (IDIFFERENCE (fetch (RGB BLUE) of RGB)
BLUEBYTE))
[COND
[(IGREATERP ERR -1)
(* put |3/8| of error into next pixel, |3/8| to one below and |1/8| to one below
 and to the right.)
(* calculate |1/4| of error.)
(SETQ ERR (LRSH ERR 2)) (* |3/8| of error to next pixel plus
 error from previous line)
[SETQ THISPIXELBLUEERROR (IPLUS (\GETBASEPTR BLUEERRTABLEPTR 2)
(IPLUS ERR (LRSH ERR 1]
(* |1/8| of error to next one down to
 right.)
(\PUTBASEPTR BLUEERRTABLEPTR 2 (LRSH ERR 1))
(* |3/8| to one below)
(\PUTBASEPTR BLUEERRTABLEPTR 0 (IPLUS (\GETBASEPTR BLUEERRTABLEPTR 0
)
(IPLUS ERR (LRSH ERR 1]
(T (* error is negative, do things
 differently.)
(* calculate |1/4| of error.)
(SETQ ERR (LRSH (IMINUS ERR)
2)) (* |3/8| of error to next pixel plus
 error from previous line)
[SETQ THISPIXELBLUEERROR (IDIFFERENCE (\GETBASEPTR BLUEERRTABLEPTR
2)
(IPLUS ERR (LRSH ERR 1]
(* |1/8| of error to next one down to
 right.)
(\PUTBASEPTR BLUEERRTABLEPTR 2 (IMINUS (LRSH ERR 1)))
(* |3/8| to one below)
(\PUTBASEPTR BLUEERRTABLEPTR 0 (IDIFFERENCE (\GETBASEPTR
BLUEERRTABLEPTR
0)
(IPLUS ERR (LRSH ERR 1]
(SETQ BLUEERRTABLEPTR (\ADDBASE BLUEERRTABLEPTR 2)))
COLOR)))
(PUTPROPS .4BIT.MODULATE.INTENSITY.VALUE. MACRO ((STREAM)
(LOGAND (IMIN 255 (IMAX (IPLUS (\BIN STREAM)
(RAND MODMIN MODMAX))
0))
240)))
(PUTPROPS .MODULATE.INTENSITY.VALUE. MACRO ((STREAM)
(IMIN 255 (IMAX (IPLUS (\BIN STREAM)
(RAND MODMIN MODMAX))
0))))
(PUTPROPS SQUARE MACRO [LAMBDA (X) (* coded this way because negative
 arith is not is microcode for ITIMES)
(COND
((IGREATERP X -1)
(ITIMES X X))
(T (ITIMES (SETQ X (IMINUS X))
X])
)
(MOVD? (QUOTE FAST.COLOR.DISTANCE) (QUOTE COLOR.DISTANCE))
(MOVD? 'FAST.COLOR.DISTANCE 'COLOR.DISTANCE)
(RPAQQ AISDIRECTORIES (T {CORE} {DSK} {CYAN}<AIS>))
(RPAQQ AISDIRECTORIES (T {CORE} {DSK} {CYAN}<AIS>))
(DECLARE%: DOEVAL@COMPILE DONTCOPY
(GLOBALVARS AISDIRECTORIES)
)
(PUTPROPS READAIS COPYRIGHT ("Xerox Corporation" 1982 1983 1984 1985 1986 1987 1988))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1827 40089 (24BITCOLORTO8BITMAP 1837 . 3843) (AISBLT 3845 . 10524) (AISBLT1TO1 10526 .
11817) (AISBLT8TO4MODUL 11819 . 13524) (AISBLT8TOLESSFSA 13526 . 15610) (AISBLT8TO4TRUNC 15612 . 16848
) (AISBLT8TO8 16850 . 19104) (AISBLT4TO4 19106 . 21591) (AISBLT8TO4LESSFSA 21593 . 23620) (
AISBLT8TO1FSA 23622 . 26181) (AISBLT8TO1TRUNC 26183 . 27872) (CLOSEST.COLOR 27874 . 28236) (
GRAPHAISHISTOGRAM 28238 . 28847) (AISHISTOGRAM 28849 . 30585) (SMOOTHEDFILTER 30587 . 31648) (
SLOW.COLOR.DISTANCE 31650 . 31948) (FAST.COLOR.DISTANCE 31950 . 32242) (INSUREAISFILE 32244 . 33441) (
SHOWCOLORAIS 33443 . 35628) (SHOWCOLORAIS1 35630 . 37166) (WRITEAIS 37168 . 39031) (WRITEAIS1 39033 .
39353) (\GETBASENYBBLE 39355 . 39642) (\PUTBASENYBBLE 39644 . 40087)))))
(FILEMAP (NIL (1582 41465 (24BITCOLORTO8BITMAP 1592 . 3598) (AISBLT 3600 . 10279) (AISBLT1TO1 10281 .
11572) (AISBLT8TO4MODUL 11574 . 13279) (AISBLT8TOLESSFSA 13281 . 15365) (AISBLT8TO4TRUNC 15367 . 16603
) (AISBLT8TO8 16605 . 18859) (AISBLT4TO4 18861 . 21346) (AISBLT8TO4LESSFSA 21348 . 23375) (
AISBLT8TO1FSA 23377 . 25936) (AISBLT8TO1TRUNC 25938 . 27627) (CLOSEST.COLOR 27629 . 27991) (
GRAPHAISHISTOGRAM 27993 . 28602) (AISHISTOGRAM 28604 . 31961) (SMOOTHEDFILTER 31963 . 33024) (
SLOW.COLOR.DISTANCE 33026 . 33324) (FAST.COLOR.DISTANCE 33326 . 33618) (INSUREAISFILE 33620 . 34817) (
SHOWCOLORAIS 34819 . 37004) (SHOWCOLORAIS1 37006 . 38542) (WRITEAIS 38544 . 40407) (WRITEAIS1 40409 .
40729) (\GETBASENYBBLE 40731 . 41018) (\PUTBASENYBBLE 41020 . 41463)))))
STOP

Binary file not shown.

View File

@@ -1,11 +1,12 @@
(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")
(FILECREATED "22-Jun-2021 10:52:34" 
{DSK}<Users>kaplan>Local>medley3.5>git-medley>lispusers>READINTERPRESS.;4 10412
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
changes to%: (FNS PRINTSEQUENCE)
(FILECREATED "24-Sep-2023 13:52:48" {WMEDLEY}<lispusers>READINTERPRESS.;6 11350
previous date%: "22-Jun-2021 10:35:30"
{DSK}<Users>kaplan>Local>medley3.5>git-medley>lispusers>READINTERPRESS.;3)
:EDIT-BY rmk
:CHANGES-TO (FNS SHOWFILE)
:PREVIOUS-DATE "22-Jun-2021 10:52:34" {WMEDLEY}<lispusers>READINTERPRESS.;4)
(* ; "
@@ -122,8 +123,53 @@ Copyright (c) 1983-1986, 1988, 2021 by Xerox Corporation.
)
(SHOWFILE
(LAMBDA (IPFILE OUTPUTFILE MAXZEROLINES) (* rmk%: "16-Jun-84 15:29") (OR MAXZEROLINES (SETQ MAXZEROLINES 5)) (RESETLST (PROG (STREAM) (RESETSAVE (SETQ STREAM (OPENFILE IPFILE (QUOTE INPUT))) (QUOTE (PROGN (CLOSEF? OLDVALUE)))) (SETQ STREAM (GETSTREAM STREAM)) (* Don't do an OPENSTREAM until (OPENP stream) is NIL if stream is closed.) (RESETSAVE (OUTPUT)) (RESETSAVE (SETQ OUTPUTFILE (OPENFILE OUTPUTFILE (QUOTE OUTPUT))) (QUOTE (PROGN (CLOSEF? OLDVALUE) (AND RESETSTATE (DELFILE OLDVALUE))))) (OUTPUT OUTPUTFILE) (printout NIL .FONT DEFAULTFONT (OPENP STREAM (QUOTE INPUT)) T T) (for I B1 B2 B3 B4 B5 B6 B7 B8 (NZEROLINES _ 0) from 1 by 8 until (\EOFP STREAM) do (printout NIL |.I5| I %,,) (SETQ B1 (SHOWBYTE STREAM)) (SETQ B2 (SHOWBYTE STREAM)) (SETQ B3 (SHOWBYTE STREAM)) (SETQ B4 (SHOWBYTE STREAM)) (printout NIL %,,) (SETQ B5 (SHOWBYTE STREAM)) (SETQ B6 (SHOWBYTE STREAM)) (SETQ B7 (SHOWBYTE STREAM)) (SETQ B8 (SHOWBYTE STREAM)) (TAB 23) (COND (B1 (printout NIL |.I4| B1))) (COND (B2 (printout NIL |.I4| B2))) (COND (B3 (printout NIL |.I4| B3))) (COND (B4 (printout NIL |.I4| B4))) (printout NIL %,,) (COND (B5 (printout NIL |.I4| B5))) (COND (B6 (printout NIL |.I4| B6))) (COND (B7 (printout NIL |.I4| B7))) (COND (B8 (printout NIL |.I4| B8 T)))) (RETURN (LIST (CLOSEF IPFILE) (CLOSEF OUTPUTFILE))))))
)
[LAMBDA (IPFILE OUTPUTFILE MAXZEROLINES) (* ; "Edited 24-Sep-2023 13:52 by rmk")
(* rmk%: "16-Jun-84 15:29")
(OR MAXZEROLINES (SETQ MAXZEROLINES 5))
(RESETLST
[PROG (STREAM)
[RESETSAVE (SETQ STREAM (OPENSTREAM IPFILE 'INPUT))
'(PROGN (CLOSEF? OLDVALUE] (* Don't do an OPENSTREAM until
 (OPENP stream) is NIL if stream is
 closed.)
(RESETSAVE (OUTPUT))
[RESETSAVE (SETQ OUTPUTFILE (OPENSTREAM OUTPUTFILE 'OUTPUT))
'(PROGN (CLOSEF? OLDVALUE)
(AND RESETSTATE (DELFILE OLDVALUE]
(OUTPUT OUTPUTFILE)
(printout NIL .FONT DEFAULTFONT (OPENP STREAM 'INPUT)
T T)
[for I B1 B2 B3 B4 B5 B6 B7 B8 (NZEROLINES _ 0) from 1 by 8 until (\EOFP STREAM)
do (printout NIL .I5 I %,,)
(SETQ B1 (SHOWBYTE STREAM))
(SETQ B2 (SHOWBYTE STREAM))
(SETQ B3 (SHOWBYTE STREAM))
(SETQ B4 (SHOWBYTE STREAM))
(printout NIL %,,)
(SETQ B5 (SHOWBYTE STREAM))
(SETQ B6 (SHOWBYTE STREAM))
(SETQ B7 (SHOWBYTE STREAM))
(SETQ B8 (SHOWBYTE STREAM))
(TAB 23)
(COND
(B1 (printout NIL .I4 B1)))
(COND
(B2 (printout NIL .I4 B2)))
(COND
(B3 (printout NIL .I4 B3)))
(COND
(B4 (printout NIL .I4 B4)))
(printout NIL %,,)
(COND
(B5 (printout NIL .I4 B5)))
(COND
(B6 (printout NIL .I4 B6)))
(COND
(B7 (printout NIL .I4 B7)))
(COND
(B8 (printout NIL .I4 B8 T]
(RETURN (LIST (CLOSEF IPFILE)
(CLOSEF OUTPUTFILE])])
(SHOWBYTE
(LAMBDA (STREAM) (* rmk%: "13-JUL-82 18:01") (PROG ((BYTE (COND ((NOT (\EOFP STREAM)) (\BIN STREAM))))) (COND (BYTE (PRIN1 (COND ((AND (IGEQ BYTE (CHARCODE SPACE)) (ILESSP BYTE (CHARCODE DEL)) (NEQ BYTE 96)) (CHARACTER BYTE)) (T (QUOTE %.)))))) (RETURN BYTE)))
@@ -132,14 +178,14 @@ Copyright (c) 1983-1986, 1988, 2021 by Xerox Corporation.
(DECLARE%: EVAL@COMPILE
(PUTPROPS BIN.RIP MACRO [ARGS (LET ((ISTREAM (CAR ARGS))
(OSTREAM (CADR ARGS)))
`(LET [(C (BIN ,ISTREAM]
(COND
((IGREATERP (POSITION ,OSTREAM)
15)
(printout ,OSTREAM 5 "|" 8)))
(printout ,OSTREAM .I3 C " ")
C])
(OSTREAM (CADR ARGS)))
`(LET [(C (BIN ,ISTREAM]
(COND
((IGREATERP (POSITION ,OSTREAM)
15)
(printout ,OSTREAM 5 "|" 8)))
(printout ,OSTREAM .I3 C " ")
C])
)
(DECLARE%: EVAL@COMPILE DONTCOPY
@@ -156,8 +202,9 @@ Copyright (c) 1983-1986, 1988, 2021 by Xerox Corporation.
)
(PUTPROPS READINTERPRESS COPYRIGHT ("Xerox Corporation" 1983 1984 1985 1986 1988 2021))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1210 1896 (PRINTMASTER 1220 . 1894)) (1897 9430 (OPCODE 1907 . 2032) (TOKEN 2034 . 2606
) (FINDNONPRIMNAME 2608 . 2713) (FINDOPNAME 2715 . 2972) (SHORTINT 2974 . 3167) (TOKENFORMAT 3169 .
3411) (FINDSEQUENCETYPE 3413 . 3617) (PRINTTOKEN 3619 . 4570) (PRINTSEQUENCE 4572 . 7449) (
SEARCHIPLIST 7451 . 7583) (READINT.IP 7585 . 7824) (SHOWFILE 7826 . 9150) (SHOWBYTE 9152 . 9428)))))
(FILEMAP (NIL (1158 1844 (PRINTMASTER 1168 . 1842)) (1845 10432 (OPCODE 1855 . 1980) (TOKEN 1982 .
2554) (FINDNONPRIMNAME 2556 . 2661) (FINDOPNAME 2663 . 2920) (SHORTINT 2922 . 3115) (TOKENFORMAT 3117
. 3359) (FINDSEQUENCETYPE 3361 . 3565) (PRINTTOKEN 3567 . 4518) (PRINTSEQUENCE 4520 . 7397) (
SEARCHIPLIST 7399 . 7531) (READINT.IP 7533 . 7772) (SHOWFILE 7774 . 10152) (SHOWBYTE 10154 . 10430))))
)
STOP

Binary file not shown.

View File

@@ -1,12 +1,10 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "27-Feb-2022 08:48:09" 
{DSK}<Users>kaplan>Local>medley3.5>my-medley>lispusers>REGIONMANAGER.;116 37561
(FILECREATED "10-Oct-2023 22:19:05" {WMEDLEY}<lispusers>REGIONMANAGER.;129 40525
:CHANGES-TO (FNS \RELCREATEREGION.REF \RELCREATEREGION.SIZE)
:EDIT-BY rmk
:PREVIOUS-DATE "28-Jan-2022 23:52:21"
{DSK}<Users>kaplan>Local>medley3.5>my-medley>lispusers>REGIONMANAGER.;113)
:PREVIOUS-DATE "10-Oct-2023 22:17:47" {MEDLEY}<lispusers>REGIONMANAGER.;9)
(PRETTYCOMPRINT REGIONMANAGERCOMS)
@@ -15,12 +13,12 @@
[
(* ;; "Typed regions")
[COMS (FNS SET-TYPED-REGIONS)
[COMS (FNS SET-TYPED-REGIONS GRAB-TYPED-REGION REGISTER-TYPED-REGION REGION-TYPE)
(FNS RM-CREATEW RM-CLOSEW RM-GETREGION CLOSE-TYPED-W)
(INITVARS (TYPED-REGIONS))
(GLOBALVARS TYPED-REGIONS)
(DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS TYPED-REGION REGION-SOURCE))
(INITRECORDS TYPED-REGION REGION-SOURCE)
(DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS TYPED-REGION))
(INITRECORDS TYPED-REGION)
(P (MOVD? 'CREATEW 'CREATEW.ORIG)
(MOVD? 'CLOSEW 'CLOSEW.ORIG)
(MOVD? 'GETREGION 'GETREGION.ORIG)
@@ -86,120 +84,170 @@
REGIONS
(NCONC REGIONS (CDR PREV)))]
else (push TYPED-REGIONS (CONS TYPE REGIONS])
(GRAB-TYPED-REGION
[LAMBDA (REGION-TYPE MINWIDTH MINHEIGHT) (* ; "Edited 10-Oct-2023 13:41 by rmk")
(* ; "Edited 14-Sep-2023 07:30 by rmk")
(* ;; "Returns a REGIONTYPE region that satisfies MINWIDTH and MINHEIGHT, if specified")
(for R in (CDR (ASSOC REGION-TYPE TYPED-REGIONS)) unless (fetch REGION-INUSE of R)
when [AND (OR (NULL MINWIDTH)
(ILEQ MINWIDTH (fetch WIDTH of R)))
(OR (NULL MINHEIGHT)
(ILEQ MINHEIGHT (fetch HEIGHT of R] do
(* ;; "We don't mark it as inuse here, leave that gets done by INSTALL-TYPED-REGION when ownership is given to a window. The only downside is that the region could be reallocated before that happens, and 2 window would come up in the same place.")
(RETURN R])
(REGISTER-TYPED-REGION
[LAMBDA (REGION REGION-TYPE WINDOW) (* ; "Edited 10-Oct-2023 13:30 by rmk")
(* ; "Edited 29-Sep-2023 13:33 by rmk")
(* ; "Edited 14-Sep-2023 10:03 by rmk")
(* ;; "REGION was passed as the REGION argument to the original CREATEW. If that was NIL, CREATEW created its own region, but it didn't do it through GETREGION (=RM.GETREGION) so it hasn't been registered according to the specified type. We set up the arrangements here. ")
(CL:WHEN REGION-TYPE
(CL:UNLESS REGION
(SETQ REGION (WINDOWREGION WINDOW)))
(LET [(TREGIONLIST (OR (ASSOC REGION-TYPE TYPED-REGIONS)
(CAR (PUSH TYPED-REGIONS (CONS REGION-TYPE]
(CL:UNLESS (MEMB REGION (CDR TREGIONLIST))
(NCONC1 TREGIONLIST REGION))
(replace REGION-INUSE of REGION with T)
(* ;; "We keep the original separate from the window's region WINDOWPROP so that RM-CLOSEW can update if the user reshapes.")
(WINDOWPROP WINDOW 'TYPED-REGION (CONS REGION-TYPE REGION))
REGION))])
(REGION-TYPE
[LAMBDA (X TYPE) (* ; "Edited 10-Oct-2023 14:30 by rmk")
(* ; "Edited 16-Sep-2023 08:41 by rmk")
(* ;;
 "Value is the type of X if it is a region of type TYPE or a region of any type if TYPE is NIL.")
(CL:WHEN (REGIONP X)
[if TYPE
then (CL:WHEN (MEMB X (CDR (ASSOC TYPE TYPED-REGIONS)))
TYPE)
else (CAR (find TYPELIST in TYPED-REGIONS suchthat (MEMB X TYPELIST])])
)
(DEFINEQ
(RM-CREATEW
[LAMBDA (REGION TITLE BORDERSIZE NOOPENFLG PROPS) (* ; "Edited 1-Jan-2022 23:12 by rmk")
[LAMBDA (REGION TITLE BORDERSIZE NOOPENFLG PROPS) (* ; "Edited 24-Sep-2023 20:38 by rmk")
(* ; "Edited 14-Sep-2023 22:23 by rmk")
(* ; "Edited 1-Jan-2022 23:12 by rmk")
(* ; "Edited 29-Dec-2021 19:25 by rmk")
(* ;; "Generic CREATEW function for managed regions. If REGIONTYPE is specified (as REGION or in PROPS), then we try to find a previous region for that type that is currently unused, create one if needed.")
(* ;; "Generic CREATEW function for managed regions. If REGION-TYPE is specified (as REGION or in PROPS), then we try to find a previous region for that type that is currently unused, create one if needed.")
(* ;; "We have to bracket the original window creation because the we have to mark that the window uses that region, to put it back in the pool when the window is closed.")
(LET (WINDOW REGIONTYPE TYPEDREGION TYPELIST)
[SETQ REGIONTYPE (if (AND REGION (LITATOM REGION))
then (PROG1 REGION (SETQ REGION NIL))
else (LISTGET PROPS 'REGION-TYPE]
(SETQ TYPELIST (ASSOC REGIONTYPE TYPED-REGIONS))
(LET [WINDOW (REGION-TYPE (if (AND (LITATOM REGION)
REGION)
then (PROG1 REGION (SETQ REGION NIL))
else (LISTGET PROPS 'REGION-TYPE]
(* ;; "We have REGIONTYPE, but maybe also a region that already has a source. Maybe we should make sure that the source is of that type?")
(* ;; "We have REGION-TYPE, but maybe also a region that already has a source. Maybe we should make sure that the source is of that type?")
(* ;; "Note: REGION can also be a screenregion, that falls through.")
(IF (REGIONP REGION)
THEN (SETQ TYPEDREGION (FETCH REGION-SOURCE OF REGION))
ELSEIF TYPELIST
THEN
(* ;;
 "If we don't find an unused region, CREATEW will create one in the ordinary way. We type it below.")
[SETQ TYPEDREGION (FIND R FOUND in (CDR TYPELIST)
SUCHTHAT (NOT (fetch REGION-INUSE of R]
(SETQ REGION TYPEDREGION))
(CL:WHEN REGION-TYPE
(SETQ REGION (GRAB-TYPED-REGION REGION-TYPE)))
(SETQ WINDOW (CREATEW.ORIG REGION TITLE BORDERSIZE NOOPENFLG PROPS))
(* ;; "CREATEW doesn't call the user-entry GETREGION, so we have to trap and install its return region here.")
(CL:WHEN (AND TYPELIST (NULL TYPEDREGION)) (* ;
 "If not, we don't record this even if typed.")
(SETQ TYPEDREGION (OR (FETCH REGION-SOURCE OF (SETQ REGION (WINDOWREGION WINDOW)))
(COPY REGION)))
(NCONC1 TYPELIST TYPEDREGION))
(CL:WHEN TYPEDREGION
(replace REGION-INUSE of TYPEDREGION with T)
(WINDOWPROP WINDOW 'TYPED-REGION TYPEDREGION)
(WINDOWPROP WINDOW 'REGION-TYPE REGIONTYPE))
(CL:WHEN REGION-TYPE (REGISTER-TYPED-REGION REGION REGION-TYPE WINDOW))
WINDOW])
(RM-CLOSEW
[LAMBDA (WINDOW) (* ; "Edited 29-Dec-2021 15:44 by rmk")
(* ; "Edited 28-Dec-2021 11:02 by rmk")
(* ; "Edited 27-Nov-2021 10:00 by rmk:")
(* ; "Edited 26-Oct-2021 21:54 by rmk:")
(* ;
 "Edited 25-Apr-94 10:08 by sybalsky")
(* ; "")
[LAMBDA (WINDOW) (* ; "Edited 10-Oct-2023 22:11 by rmk")
(* ;;
 "Makes the window's typed region available for reuse, if the window is marked with a TYPEDREGION.")
(* ;; "It's possible that the window exists and can be reopened after it has been closed. The glitch in that case is that we may have decided to make the window's region available to another window, and if this window is opened again it will come on top of that other one (if it hasn't moved). Oh well.")
(LET [(TYPEDREGION (WINDOWPROP WINDOW 'TYPED-REGION]
(CL:WHEN (AND (CLOSEW.ORIG WINDOW)
TYPEDREGION)
(REPLACE REGION-INUSE OF TYPEDREGION WITH NIL)
(WINDOWPROP WINDOW 'TYPED-REGION NIL)
T)])
(* ;; "This replaces the particular typed-region in TYPED-REGIONS with the region that the window ended up with, perhaps after the user reshaped it. But (WINDOWPROP WINDOW 'REGION) doesn't include the prompt window, if it's there, and (WINDOWREGION WINDOW) would union in all of the attached windows (menus etc.) This code assumes that the promptwindow was taken out of the original region (lots of funky code does that), so it unions it back in to the REGION property to reconstruct the original typed-region. The alternative would be to have the windows region copy the original grabbed region and restore only that. But then we would be ignoring any reshaping adjustments.")
(LET* [CLOSEVAL (TYPEDREGION (WINDOWPROP WINDOW 'TYPED-REGION))
(REGIONTYPE (CAR TYPEDREGION))
(TREGION (CDR TYPEDREGION))
[PWINDOW (WINDOWP (CAR (MKLIST (WINDOWPROP WINDOW 'PROMPTWINDOW]
[WREGION (CL:IF PWINDOW
(UNIONREGIONS (WINDOWPROP WINDOW 'REGION)
(WINDOWPROP PWINDOW 'REGION))
(WINDOWPROP WINDOW 'REGION))]
(TREGIONLIST (AND REGIONTYPE (OR (ASSOC REGIONTYPE TYPED-REGIONS)
(CAR (PUSH TYPED-REGIONS (CONS REGIONTYPE]
(CL:WHEN (AND (SETQ CLOSEVAL (CLOSEW.ORIG WINDOW))
TYPEDREGION)
(CL:UNLESS (EQUAL TREGION WREGION)
(* ;; "The user reshaped the window after the region was taken from TYPED-REGIONS. Assume that the new shape is what should be offered when this is recycled. Important to keep the same structure")
(with REGION TREGION (SETQ LEFT (fetch (REGION LEFT) of WREGION))
(SETQ BOTTOM (fetch (REGION BOTTOM) of WREGION))
(SETQ WIDTH (fetch (REGION WIDTH) of WREGION))
(SETQ HEIGHT (fetch (REGION HEIGHT) of WREGION))))
(* ;; "Move TREGION to the front so most recently closed will be recycled first")
(CL:WHEN TREGIONLIST
(change (CDR TREGIONLIST)
(CONS TREGION (DREMOVE TREGION DATUM))))
(replace REGION-INUSE of TREGION with NIL)
(WINDOWPROP WINDOW 'TYPED-REGION NIL))
CLOSEVAL])
(RM-GETREGION
[LAMBDA (MINWIDTH MINHEIGHT INITREGION NEWREGIONFN NEWREGIONFNARG INITCORNERS)
[LAMBDA (MINWIDTH MINHEIGHT INITREGION NEWREGIONFN NEWREGIONFNARG INITCORNERS)
(* ; "Edited 10-Oct-2023 12:39 by rmk")
(* ; "Edited 14-Sep-2023 07:50 by rmk")
(* ; "Edited 1-Jan-2022 21:49 by rmk")
(* ;; "If INITREGION is a type atom and a region of that type is available, then use it as the INITREGION. Otherwise, add a copy of the new region to the available list, and assert that the new region has the copy as its source.")
(* ;; "If INITREGION is a type atom:")
(* ;; "We don't know what will happen to the new region, but if it ends up as a region for CREATEW, the source information enables us to mark its source as inuse.")
(* ;; " If a region of that type is available, then a (copy) is returned.")
(* ;; "This allows for the possibility that the application is actually asking the user for a constellation region that will be shrunk in anticipation of future satellite attachments. A future retrieval will return the original size and position, and it will then presumably be shrunk in the same way.")
(* ;; " Otherwise, the user is asked for a new region, that is added to the type list, and again a copy is returned.")
(LET (REGION (TYPELIST (ASSOC (CL:WHEN (AND INITREGION (LITATOM INITREGION))
INITREGION)
TYPED-REGIONS)))
(FOR R in (CDR TYPELIST) UNLESS (fetch REGION-INUSE of R)
WHEN [AND (OR (NULL MINWIDTH)
(ILEQ MINWIDTH (FETCH WIDTH OF R)))
(OR (NULL MINHEIGHT)
(ILEQ MINHEIGHT (FETCH HEIGHT OF R]
DO
(* ;; "Copy so the caller can update the region without affecting the recyclable source, but remember what it is based on. We don't mark it as used here, maybe a window won't be built around it and it will fade away. However, there is the risk that another GETREGION will find the same source before it is given to a window, in which case 2 windows might open up in the same place.")
(* ;; "We return a copy because we don't know what will happen to this region, whether it will be changed by future operations (e.g. by a constellation operation). A future retrieval will return the original size and position, and it will then presumably be shrunk in the same way.")
(SETQ REGION (COPY R))
(REPLACE REGION-SOURCE OF REGION WITH R)
(RETURN))
(* ;; "If we found a good one, we're done. Otherwise, run the normal code, but save the new region if it is typed.")
(* ;; " If INITREGION is not a typeatom, it is passed through to the original GETREGION, and the new region will not be managed.")
(LET (REGION TYPELIST (REGION-TYPE (AND (LITATOM INITREGION)
INITREGION)))
(SETQ REGION (GRAB-TYPED-REGION REGION-TYPE MINWIDTH MINHEIGHT))
(CL:UNLESS REGION
(SETQ REGION (GETREGION.ORIG MINWIDTH MINHEIGHT INITREGION NEWREGIONFN NEWREGIONFNARG
INITCORNERS))
(CL:WHEN TYPELIST
(* ;;
 "The new region is based on a typed region. The saved source is a copy of what we return.")
(* ;; "If we found a good one, INITREGIONS must have been a type, and we're done. Otherwise, run the normal code, but save the new region as a new instance if its typed.")
(NCONC1 TYPELIST (REPLACE REGION-SOURCE OF REGION WITH (COPY REGION)))))
(SETQ REGION (GETREGION.ORIG MINWIDTH MINHEIGHT (CL:IF REGION-TYPE
NIL
INITREGION)
NEWREGIONFN NEWREGIONFNARG INITCORNERS))
(CL:WHEN REGION-TYPE
(* ;; "A new typed region to add to the list . ")
(NCONC1 [OR (ASSOC REGION-TYPE TYPED-REGIONS)
(CAR (PUSH TYPED-REGIONS (CONS REGION-TYPE]
REGION)))
REGION])
(CLOSE-TYPED-W
[LAMBDA (TYPE) (* ; "Edited 29-Dec-2021 15:58 by rmk")
(* ; "Edited 27-Nov-2021 11:50 by rmk:")
[LAMBDA (TYPE) (* ; "Edited 14-Sep-2023 07:39 by rmk")
(* ; "Edited 29-Dec-2021 15:58 by rmk")
(* ; "Edited 27-Nov-2021 11:50 by rmk:")
(* ;; "Closes all windows of REGIONTYPE inside TYPE")
(* ;; "Closes all windows whose regions are of type TYPE")
(CL:WHEN TYPE
(for W R in (OPENWINDOWS) when (AND (SETQ WT (WINDOWPROP W 'REGION-TYPE))
(EQMEMB WT TYPE)) do (CLOSEW W)))])
(for W R in (OPENWINDOWS) eachtime [SETQ WT (CAR (WINDOWPROP W 'TYPED-REGION]
when (AND WT (EQMEMB WT TYPE)) do (CLOSEW W)))])
)
(RPAQ? TYPED-REGIONS )
@@ -211,27 +259,17 @@
(DECLARE%: EVAL@COMPILE
(HASHLINK TYPED-REGION (REGION-INUSE REGION-INUSE-HASH))
(HASHLINK REGION-SOURCE (REGION-SOURCE REGION-SOURCE-HASH))
)
(DECLARE%: EVAL@COMPILE (GLOBALVARS REGION-INUSE-HASH))
(SETUPHASHARRAY 'REGION-INUSE-HASH NIL)
(DECLARE%: EVAL@COMPILE (GLOBALVARS REGION-SOURCE-HASH))
(SETUPHASHARRAY 'REGION-SOURCE-HASH NIL)
)
(DECLARE%: EVAL@COMPILE (GLOBALVARS REGION-INUSE-HASH))
(SETUPHASHARRAY 'REGION-INUSE-HASH NIL)
(DECLARE%: EVAL@COMPILE (GLOBALVARS REGION-SOURCE-HASH))
(SETUPHASHARRAY 'REGION-SOURCE-HASH NIL)
(MOVD? 'CREATEW 'CREATEW.ORIG)
(MOVD? 'CLOSEW 'CLOSEW.ORIG)
@@ -683,10 +721,11 @@
)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1672 3859 (SET-TYPED-REGIONS 1682 . 3857)) (3860 10861 (RM-CREATEW 3870 . 6377) (
RM-CLOSEW 6379 . 7780) (RM-GETREGION 7782 . 10368) (CLOSE-TYPED-W 10370 . 10859)) (11777 19256 (
RELCREATEREGION 11787 . 16410) (RELGETREGION 16412 . 19019) (RELCREATEPOSITION 19021 . 19254)) (19257
26061 (\RELCREATEREGION.REF 19267 . 23018) (\RELCREATEREGION.SIZE 23020 . 26059)) (26114 35456 (
RM-ATTACHWINDOW 26124 . 35454)) (35457 37191 (CLOSEWITH 35467 . 35994) (CLOSEWITH.DOIT 35996 . 36276)
(MOVEWITH 36278 . 36801) (MOVEWITH.DOIT 36803 . 37189)))))
(FILEMAP (NIL (1573 6691 (SET-TYPED-REGIONS 1583 . 3758) (GRAB-TYPED-REGION 3760 . 4786) (
REGISTER-TYPED-REGION 4788 . 6085) (REGION-TYPE 6087 . 6689)) (6692 14098 (RM-CREATEW 6702 . 8325) (
RM-CLOSEW 8327 . 11345) (RM-GETREGION 11347 . 13496) (CLOSE-TYPED-W 13498 . 14096)) (14741 22220 (
RELCREATEREGION 14751 . 19374) (RELGETREGION 19376 . 21983) (RELCREATEPOSITION 21985 . 22218)) (22221
29025 (\RELCREATEREGION.REF 22231 . 25982) (\RELCREATEREGION.SIZE 25984 . 29023)) (29078 38420 (
RM-ATTACHWINDOW 29088 . 38418)) (38421 40155 (CLOSEWITH 38431 . 38958) (CLOSEWITH.DOIT 38960 . 39240)
(MOVEWITH 39242 . 39765) (MOVEWITH.DOIT 39767 . 40153)))))
STOP

Binary file not shown.

View File

@@ -3,7 +3,7 @@ Medley REGIONMANAGER 2
1
REGIONMANAGER 1
4
By Ron Kaplan This document created in December 2021.
By Ron Kaplan This document created in December 2021, last edited September 2023.
Medley comes equipped with a core set of functions for specifying regions and creating the windows that occupy those regions on the screen. But it can be disruptive if not irritating to have to draw out a new ghost region for every invocation of a particular application. Thus the common applications (e.g. TEDIT, SEDIT, DINFO...) implement particular strategies to reduce the number of times that a user has to sweep out a new region. They instead default to regions that were allocated for earlier invocations that are no longer active. TEDIT for example recycles the region of a session that was recently shut down, SEDIT allocates from a list of previous regions, DINFO always uses the same region, but FILEBROWSER always prompts for a new one. Applications that do recycle their regions tend to do so indiscrimately, without regard to the current arrangement of other windows on the screen or the role that those windows may play in higher-level applications.
The REGIONMANAGER package provides simple extensions to the core region and window functions. These are aimed at giving users and application implementors more flexible and systematic control over the specification and reuse of screen regions. It introduces three new notions:
A "typed region" allows the regions of particular applications to be specified, classified, and recycled according to their types.
@@ -13,15 +13,21 @@ REGIONMANAGER is innocuous in that explicit user action is required to change th
Typed regions
REGIONMANAGER adds overlay veneers to the core CREATEW, CLOSEW, and GETREGION functions to make it easier to predict and control how different applications arrange their windows on the screen without always needing to respond to a ghost-region prompt.
The REGION/INITREGION arguments may now be region-type atoms in addition to either NIL or particular regions as CREATEW and GETREGION otherwise allow. The type-atom will resolve to a region drawn from a predefined pool of regions associated with that type, if the pool has at least one that is not currently allocated to another window. If the pool has no available regions, then the pool will be enlarged with a region that the user produces from a normal ghost-region prompt, and the type-atom will then resolve to the newly installed region.
A typed-region is marked as "inuse" and therefore unavailable when CREATEW assigns it to a window, and the extended CLOSEW marks it as again available when the window is closed.
A typed-region is marked as "inuse" and therefore unavailable when CREATEW assigns it to a window, and the extended CLOSEW marks it as again available when the window is closed. The region of the most recently closed window will be offered the next time a region of its type is requested.
An example of how an application can take advantage of this facility is the TEDIT-PF-SEE package. This provides lightweight alternatives to the PF and SEE commands that print their output to scrollable read-only Tedit windows, specifying PF-TEDIT and SEE-TEDIT as their region types. The user can predefine a preference-ordered sequence of recyclable regions that bring up multiple output windows in a predictable tiled arrangement, without region-prompting for each invocation.
The global variable TYPED-REGIONS is an alist that maintains the relationship between atomic type-names and the list of regions that belong to each type. The list is ordered according to preferences set by the user, and a type-atom is always resolved to the first unused region in its list. If the user is asked to sweep out a new region, that region is added at the end, as the least preferable. The function SET-TYPED-REGIONS is provided to add or replace TYPED-REGION entries.
(SET-TYPED-REGIONS TYPELISTS REPLACE) [Function]
TYPELISTS is an alist of the form
((type1 . regions1)(type2 . regions2)...)
where each regioni is a possibly empty list of regions. For convenience, if TYPELISTS is just a literal type-atom, it is interpreted as ((type)), and if it is a list (type . regions) begining with an atom, it is interpreted as ((type . regions). The new regions replace preexisting regions if REPLACE, otherwise they are added at the front.
where each regionsi is a possibly empty list of regions. For convenience, if TYPELISTS is just a literal type-atom, it is interpreted as ((type)), and if it is a list (type . regions) begining with an atom, it is interpreted as ((type . regions). The new regions replace preexisting regions if REPLACE, otherwise they are added at the front.
Typically, a call to SET-TYPED-REGIONS would be placed in a user's INIT file to set up the preference order for the regions that the user wants to participate in this reallocation scheme. If an application uses a type that is not on TYPED-REGIONS, then that type-atom is treated as NIL and always gives rise to the normal ghost-region prompting. Thus a user will observe no change in system behavior if TYPED-REGIONS is left with its initial value NIL. A type that is added with an empty region list (as opposed to not being on the list at all) will allow new regions to accumulate for recycling.
The function REGION-TYPE returns NIL if X is not a typed-region or not a region of type TYPE.
(REGION-TYPE X TYPE) [Function]
In most scenarios the interpretation of a typed region specification is handled automatically by the extended CREATEW and GETREGION functions. Sometimes it may be useful to perform to for the regions dimensions to be entered into other calculations before it is installed in a window. The function GRAB-TYPED-REGION recycles an existing REGION-TYPE window if one meets the optional minimum width and height requirements, otherwise a new region is returned.
(GRAB-TYPED-REGION REGION-TYPE MINWIDTH MINHEIGHT) [Function]
A type can be assigned to an untyped region and installed in a window by the function REGISTER-TYPED-REGION. That region will then be recycled when the window is closed.
(REGISTER-TYPED-REGION REGION REGION-TYPE WINDOW) [Function]
If REGION is NIL, the (presumably) untyped region of WINDOW will be registered. An entry in TYPED-REGIONS will be created for REGION-TYPE if it is not already present.
Relative regions
Two functions are provided to make it easy to create regions relative and oriented with respect to a specified reference point. These may be useful for constructing an application that includes a constellation of windows arranged in a particular relative way.
(RELCREATEREGION WIDTH HEIGHT CORNERX CORNERY REFX REFY ONSCREEN) [Function]
@@ -48,7 +54,7 @@ Applications are often set up as a constellation of windows, a central or primar
Each of these applications is constructed by anticipating the subregions that the satellite windows will occupy after they are attached, decreasing the constellation region by their estimated (using WIDTHIFWINDOW HEIGHTIFWINDOW) or actual sizes, and then using remainder as the region for the central window.
An alternative approach is to construct the central window first, giving it the entire constellation region, and then to have ATTACHWINDOW reshape that window to accomodate the satellite windows as they are attached in sequence. This leads to the same final configuration, but there is no need for separate calculations to pre-adjust the region of the central window.
REGIONMANAGER provides an overlay veneer for ATTACHWINDOW that implements this strategy. If the new argument TAKEFROMCENTRAL is true, then the region of the WINDOWTOATTACH will be substracted from the region of the existing central window according to the EDGE parameter of the attachment.
(ATTACHWINDOW WINDOWTOATTACH MAINWINDOW EDGE POSITIONONEDGE WINDOWCOMACTION TAKEFROMCENTRAL) [Function]
(ATTACHWINDOW WINDOWTOATTACH MAINWINDOW EDGE POSITIONONEDGE WINDOWCOMACTION TAKEFROMCENTRAL) [Function]
This behavior is also triggered if the UNDERCONSTRUCTION property of the central window is true. Thus, a constellation can be set up by creating all of the satellites and the central window, marking the central window as under construction, and then doing the sequence of attachments. The property can be reset to NIL when the construction is complete, so the central window does not shrink if other other attachments (e.g. expanded menus) by later user actions.
A somewhat weaker form of a constellation is a collection of windows that are not attached around a central window but stand in a parent-child relationship at least with respect to closing and moving. A parent windows spawns children that respond independently to ordinary window commands (move, shape, close). But the children close when the parent closes, and the children move when the parent moves so that they continue to appear in the same relative positions. These primitives allow the construction of a tree of windows that are dependent in this way.
@@ -62,19 +68,14 @@ Establishes a link between the PARENT window and any number of CHILDREN windows
If NEWPOS is the new position of PARENT, moves each of the move-children so that they stand in the same relation to PARENT after it moves as before.
(LIST ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC) STARTINGPAGE# 1) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC)) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC)) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))))) 4È$È4È$È4È$È4È$È4È$È1 $È$1 È$4È$È1È$1ŠŠ8$1ŠŠ8$JÈ$È PAGEHEADING RUNNINGHEADTERMINALÿüTERMINALÿü
TIMESROMAN$TERMINALMODERN MODERN
   HRULE.GETFNMODERN
   HRULE.GETFNMODERN
  HRULE.GETFNMODERN


 HRULE.GETFNMODERN   HRULE.GETFNMODERN   (È}/ ¯[ <01>Ch<00>T Û Á%  

; 3o) MA  &MmJS-f=
3E
"

0: /3
t2C ƒ "O=
 , l¬ 9¤Ç S~ æ- 4!U'2 µ " (  M.U}zº
(LIST ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC) STARTINGPAGE# 1) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC)) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC)) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))))) 1$4È$È4È$È1 $È$1 È$4È$È4È$È4È$È4È$È1È$1ŠŠ8$1ŠŠ8$JÈ$È PAGEHEADING RUNNINGHEADMODERN
rd(DEFAULTFONT 1 (TERMINAL 12) (TERMINAL 8) (TERMINAL 8) (PDF (TERMINAL 8)) (POSTSCRIPT (TERMINAL 8))) TERMINALMODERN TERMINALÿüTERMINALÿü
TIMESROMAN$  HRULE.GETFN   HRULE.GETFN  HRULE.GETFN   HRULE.GETFN  HRULE.GETFN
DÈ   }/ ¯[ <01>C×<00>T Û Á1 

; 3o)Ä ž     4 n © o2 V@1 %!  A  &MmJS-f=
3E
"

l /3
t2C ƒ "O=  , l¬)9¤Ç S~ æ- 4!Uh'2&µ$"&( )MDATE:fï1¶˜

View File

@@ -1,18 +1,48 @@
(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")
(FILECREATED "10-Apr-89 18:56:29" {ERINYES}<LISPUSERS>MEDLEY>SHOWTIME.;1 24672
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
changes to%: (FNS SHOWTIME.READ.LISPBM)
(FILECREATED "24-Sep-2023 14:29:56" {WMEDLEY}<lispusers>SHOWTIME.;2 26541
previous date%: "13-May-88 16:31:25" {POOH/N}<POOH>LISP>MEDLEY>LISPUSERS>SHOWTIME;1)
:EDIT-BY rmk
:CHANGES-TO (VARS SHOWTIMECOMS SHOWTIME.ICON SHOWTIME.MASK)
(FNS INFORES SHOWTIME.READ.PRESS)
:PREVIOUS-DATE "10-Apr-89 18:56:29" {WMEDLEY}<lispusers>SHOWTIME.;1)
(* "
Copyright (c) 1986, 1987, 1988, 1989 by Xerox Corporation. All rights reserved.
(* ; "
Copyright (c) 1986-1989 by Xerox Corporation.
")
(PRETTYCOMPRINT SHOWTIMECOMS)
(RPAQQ SHOWTIMECOMS ((* ;;; "Mitch Gaarnat and (Mike?) Gocek wrote the original versions of these fns in 1985. They were later modified added to by T. Bigham in 1986 and 1987. Ron Fischer at Xerox AI Systems made a quick pass to convert the file to run in Medley XAIE.") (FNS GET.SHOWTIME.MENU MAKEBRUSH MAKEBRUSH.HEADER&BITMAP INFORES READ.RES SHOWTIME SHOWTIME.BUTTONEVENTFN SHOWTIME.GET.NAME SHOWTIME.ICONFN SHOWTIME.LOAD.BITMAP SHOWTIME.LOAD.BRUSH SHOWTIME.LOAD.DIF.FILE SHOWTIME.LOAD.RES.FILE SHOWTIME.MAKE.RES SHOWTIME.MAKE.RES.HEADER SHOWTIME.MAKE.RES.TAIL SHOWTIME.READ.BRUSH SHOWTIME.READ.LISPBM SHOWTIME.READ.PRESS SHOWTIME.READ.RES SHOWTIME.RES.CHECK&MASSAGE SHOWTIME.RESHAPE.WINDOW SHOWTIME.SAVE.BITMAP SHOWTIME.SAVE.LISPBM SHOWTIME.SCALE.BITMAP SHOWTIME.ADD.FORMAT SHOWTIME.SETUP.WINDOWPROPS SHOWTIME.SHOW.BITMAP SHOWTIME.WRITEBM) (VARS SHOWTIME.ICON SHOWTIME.MASK (SHOWTIME.LOAD.SUBITEMS) (SHOWTIME.SAVE.SUBITEMS) (SHOWTIME.MENU) (SHOWTIMETITLEREGION (QUOTE (7 7 56 29))) (SHOWTIME.DEFAULT.FORMAT (QUOTE LISP)) (BackgroundMenu) (SHOWTIME.FORMAT.FNS (QUOTE (SHOWTIME.FORMAT.FNS (RES READ.RES SHOWTIME.MAKE.RES) (LISP SHOWTIME.READ.LISPBM SHOWTIME.SAVE.LISPBM) (DIF SHOWTIME.LOAD.DIF.FILE NIL) (BRUSH SHOWTIME.LOAD.BRUSH MAKEBRUSH) (PRESS READPRESS PRESSBITMAP))))) (APPENDVARS (BackgroundMenuCommands (Showtime (QUOTE (SHOWTIME)) "Opens a showtime window for use."))) (FILES BITMAPFNS SCALEBITMAP READBRUSH) (P (SHOWTIME.ADD.FORMAT))))
(RPAQQ SHOWTIMECOMS
(
(* ;;; "Mitch Gaarnat and (Mike?) Gocek wrote the original versions of these fns in 1985. They were later modified added to by T. Bigham in 1986 and 1987. Ron Fischer at Xerox AI Systems made a quick pass to convert the file to run in Medley XAIE.")
(FNS GET.SHOWTIME.MENU MAKEBRUSH MAKEBRUSH.HEADER&BITMAP INFORES READ.RES SHOWTIME
SHOWTIME.BUTTONEVENTFN SHOWTIME.GET.NAME SHOWTIME.ICONFN SHOWTIME.LOAD.BITMAP
SHOWTIME.LOAD.BRUSH SHOWTIME.LOAD.DIF.FILE SHOWTIME.LOAD.RES.FILE SHOWTIME.MAKE.RES
SHOWTIME.MAKE.RES.HEADER SHOWTIME.MAKE.RES.TAIL SHOWTIME.READ.BRUSH SHOWTIME.READ.LISPBM
SHOWTIME.READ.PRESS SHOWTIME.READ.RES SHOWTIME.RES.CHECK&MASSAGE SHOWTIME.RESHAPE.WINDOW
SHOWTIME.SAVE.BITMAP SHOWTIME.SAVE.LISPBM SHOWTIME.SCALE.BITMAP SHOWTIME.ADD.FORMAT
SHOWTIME.SETUP.WINDOWPROPS SHOWTIME.SHOW.BITMAP SHOWTIME.WRITEBM)
[VARS SHOWTIME.ICON SHOWTIME.MASK (SHOWTIME.LOAD.SUBITEMS)
(SHOWTIME.SAVE.SUBITEMS)
(SHOWTIME.MENU)
(SHOWTIMETITLEREGION '(7 7 56 29))
(SHOWTIME.DEFAULT.FORMAT 'LISP)
(BackgroundMenu)
(SHOWTIME.FORMAT.FNS '(SHOWTIME.FORMAT.FNS (RES READ.RES SHOWTIME.MAKE.RES)
(LISP SHOWTIME.READ.LISPBM SHOWTIME.SAVE.LISPBM)
(DIF SHOWTIME.LOAD.DIF.FILE NIL)
(BRUSH SHOWTIME.LOAD.BRUSH MAKEBRUSH)
(PRESS READPRESS PRESSBITMAP]
(APPENDVARS (BackgroundMenuCommands (Showtime '(SHOWTIME)
"Opens a showtime window for use.")))
(FILES BITMAPFNS SCALEBITMAP READBRUSH)
(P (SHOWTIME.ADD.FORMAT))))
@@ -35,8 +65,35 @@ Copyright (c) 1986, 1987, 1988, 1989 by Xerox Corporation. All rights reserved.
)
(INFORES
(LAMBDA (FILE) (* ; "Edited 13-May-88 16:01 by raf") (LET (STREAM PATTERN WIDTH HEIGHT HI.X LO.X HI.Y LO.Y REAL.X REAL.Y (Header (QUOTE Interpress/Xerox/2.1/RasterEncoding/1.0% ))) (* ; "Return the width, height, bits per pixel and address of the first data byte as a list.") (SETQ STREAM (GETSTREAM (OPENFILE FILE (QUOTE INPUT)) (QUOTE INPUT))) (if (EQ Header (PACK (for X from 1 to 40 collect (CHARACTER (\BIN STREAM))))) then (* ; "bypass BEGIN 254/720000 DUP 2 MAKEVEC") (until (EQUAL (NTH (REVERSE PATTERN) (IDIFFERENCE (LENGTH PATTERN) 4)) (QUOTE (181 15 162 161 27))) do (SETQ PATTERN (push PATTERN (\BIN STREAM)))) (SETQ HI.X (\BIN STREAM)) (SETQ LO.X (\BIN STREAM)) (SETQ HI.Y (\BIN STREAM)) (SETQ LO.Y (\BIN STREAM)) (SETQ REAL.X (IDIFFERENCE (PLUS (LSH HI.X 8) LO.X) 4000)) (SETQ REAL.Y (IDIFFERENCE (PLUS (LSH HI.Y 8) LO.Y) 4000)) (LIST REAL.X REAL.Y STREAM) else (CLOSEF STREAM) NIL)))
)
[LAMBDA (FILE) (* ; "Edited 24-Sep-2023 14:28 by rmk")
(* ; "Edited 13-May-88 16:01 by raf")
(LET (STREAM PATTERN WIDTH HEIGHT HI.X LO.X HI.Y LO.Y REAL.X REAL.Y (Header
'
Interpress/Xerox/2.1/RasterEncoding/1.0%
))
(* ;
 "Return the width, height, bits per pixel and address of the first data byte as a list.")
(SETQ STREAM (OPENSTREAM FILE 'INPUT))
(if [EQ Header (PACK (for X from 1 to 40 collect (CHARACTER (\BIN STREAM]
then (* ;
 "bypass BEGIN 254/720000 DUP 2 MAKEVEC")
[until (EQUAL (NTH (REVERSE PATTERN)
(IDIFFERENCE (LENGTH PATTERN)
4))
'(181 15 162 161 27)) do (SETQ PATTERN (push PATTERN (\BIN STREAM]
(SETQ HI.X (\BIN STREAM))
(SETQ LO.X (\BIN STREAM))
(SETQ HI.Y (\BIN STREAM))
(SETQ LO.Y (\BIN STREAM))
(SETQ REAL.X (IDIFFERENCE (PLUS (LSH HI.X 8)
LO.X)
4000))
(SETQ REAL.Y (IDIFFERENCE (PLUS (LSH HI.Y 8)
LO.Y)
4000))
(LIST REAL.X REAL.Y STREAM)
else (CLOSEF STREAM)
NIL])
(READ.RES
(LAMBDA (FILE) (* ; "Edited 13-May-88 16:02 by raf") (LET (STREAM A B BITMAP BASE WORDS Attributes WIDTH HEIGHT) (if (SETQ FILE (FULLNAME FILE)) then (* ; "If the file exists, check to see if it's RES format.") (if (SETQ Attributes (INFORES FILE)) then (SETQ WIDTH (CAR Attributes)) (SETQ HEIGHT (CADR Attributes)) (SETQ STREAM (CADDR Attributes)) (SETQ BITMAP (BITMAPCREATE WIDTH HEIGHT 1)) (SETQ BASE (fetch (BITMAP BITMAPBASE) of BITMAP)) (* ; "RESINFO leaves the file open at byte 62.0 Image data begins at byte 95") (for X from 63 to 94 do (\BIN STREAM)) (for X from 1 to (IQUOTIENT (ITIMES WIDTH HEIGHT) 16) do (SETQ A (\BIN STREAM)) (SETQ B (\BIN STREAM)) (\PUTBASE BASE 0 (LOGOR (LLSH A 8) B)) (SETQ BASE (\ADDBASE BASE 1)) (ZEROP (LOGAND X 1023))) (CLOSEF STREAM) BITMAP else (printout PROMPTWINDOW T FILE "isn't an RES file")) else (printout PROMPTWINDOW T "Can't find " FILE) NIL)))
@@ -93,7 +150,9 @@ Copyright (c) 1986, 1987, 1988, 1989 by Xerox Corporation. All rights reserved.
)
(SHOWTIME.READ.PRESS
(LAMBDA (FILENAME) (* TBigham "30-Dec-86 11:59") (READPRESS (OPENFILE FILENAME (QUOTE INPUT)))))
[LAMBDA (FILENAME) (* ; "Edited 24-Sep-2023 14:29 by rmk")
(* TBigham "30-Dec-86 11:59")
(READPRESS FILENAME])
(SHOWTIME.READ.RES
(LAMBDA (FILENAME) (* TBigham "30-Dec-86 12:03") (* load an RES image and makes it into a lisp bitmap) (DECLARE (GLOBALVARS WAITINGCURSOR)) (LET (BITMAP) (RESETLST (RESETSAVE (CURSOR WAITINGCURSOR)) (SETQ BITMAP (READ.RES FILENAME)))))
@@ -136,41 +195,48 @@ Copyright (c) 1986, 1987, 1988, 1989 by Xerox Corporation. All rights reserved.
)
)
(RPAQQ SHOWTIME.ICON #*(80 84)@C@@@@@@@@@@@@@@@@@@@CO@@@@@@@@@@@@@@@@@@COO@@@@@@@@@@@@@@@@@CMOO@@@@@@@@@@@@@@@@GLAOO@@@@@@@@@@@@@@@GL@AOO@@@@@@@@@@@@@@GN@@OOO@@@@@@@@@@@@@GN@@OOOO@@@@@@@@@@@@ON@@GOMOO@@@@@@@@@@@ON@@GOLAOO@@@@@@@@@@OO@@GOL@AOO@@@@@@@@@OO@@GON@@OOO@@@@@@@AOO@@CON@@OOOO@@@@@@AOO@@CON@@GOMOO@@@@@AOOH@CON@@GOLAOO@@@@AOOH@COO@@GOL@AOO@@@AOOH@AOO@@GON@@OOO@@@AOO@AOO@@CON@@OOOO@@@AOOAOO@@CON@@OOMOO@@@AOOOOH@CON@@GOLAO@@@@AOOOH@COO@@GOL@C@@@@@AOOH@AOO@@GON@C@@@@@@AOO@AOO@@GON@G@@@@@@@AOOAOO@@CON@F@@@@@@@@AOOOOH@CON@F@@@@@@@@@AOOOH@COO@F@@@@@@@@@@AOOH@COO@N@@@@@@@@@@@AOO@AOO@L@@@@@@@@@@@@AOOAOO@L@@@@@@@@@@@@@AOOOOHL@@@@@@@@@@@@@@AOOOIL@@@@@@@@@@@@@@@AOOIH@@@@@@@@@@@@@@@@AOIH@@@@@@@@@@@@@@@@@AOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOHGALF@LGLD@DDOND@GHOGKKNMOFONMKFNGLNOGHOGOKNMOFNNOKNNCHNOOHOGOKNMOFFLOKNNKJNOOHOHGH@MOGFMOKNNIBN@OHOOKKNMOGFMOKNNMFNOOHOOKKNMOG@AOKNNLFNOOHOGKKNMOGKKOKNNNNNOGHOHGALF@OKKOALDGLD@GHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOH)
(RPAQQ SHOWTIME.MASK #*(80 84)@C@@@@@@@@@@@@@@@@@@@CO@@@@@@@@@@@@@@@@@@COO@@@@@@@@@@@@@@@@@COOO@@@@@@@@@@@@@@@@GOOOO@@@@@@@@@@@@@@@GOOOOO@@@@@@@@@@@@@@GOOOOOO@@@@@@@@@@@@@GOOOOOOO@@@@@@@@@@@@OOOOOOOOO@@@@@@@@@@@OOOOOOOOOO@@@@@@@@@@OOOOOOOOOOO@@@@@@@@@OOOOOOOOOOOO@@@@@@@AOOOOOOOOOOOOO@@@@@@AOOOOOOOOOOOOOO@@@@@AOOOOOOOOOOOOOOO@@@@AOOOOOOOOOOOOOOOO@@@AOOOOOOOOOOOOOOOOO@@@AOOOOOOOOOOOOOOOOO@@@AOOOOOOOOOOOOOOOOO@@@AOOOOOOOOOOOOOOOO@@@@AOOOOOOOOOOOOOOO@@@@@AOOOOOOOOOOOOOO@@@@@@AOOOOOOOOOOOOO@@@@@@@AOOOOOOOOOOON@@@@@@@@AOOOOOOOOOON@@@@@@@@@AOOOOOOOOON@@@@@@@@@@AOOOOOOOON@@@@@@@@@@@AOOOOOOOL@@@@@@@@@@@@AOOOOOOL@@@@@@@@@@@@@AOOOOOL@@@@@@@@@@@@@@AOOOOL@@@@@@@@@@@@@@@AOOOH@@@@@@@@@@@@@@@@AOOH@@@@@@@@@@@@@@@@@AOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOH)
(RPAQQ SHOWTIME.LOAD.SUBITEMS NIL)
(RPAQQ SHOWTIME.SAVE.SUBITEMS NIL)
(RPAQQ SHOWTIME.MENU NIL)
(RPAQQ SHOWTIMETITLEREGION (7 7 56 29))
(RPAQQ SHOWTIME.DEFAULT.FORMAT LISP)
(RPAQQ BackgroundMenu NIL)
(RPAQQ SHOWTIME.FORMAT.FNS (SHOWTIME.FORMAT.FNS (RES READ.RES SHOWTIME.MAKE.RES) (LISP SHOWTIME.READ.LISPBM SHOWTIME.SAVE.LISPBM) (DIF SHOWTIME.LOAD.DIF.FILE NIL) (BRUSH SHOWTIME.LOAD.BRUSH MAKEBRUSH) (PRESS READPRESS PRESSBITMAP)))
(APPENDTOVAR BackgroundMenuCommands (Showtime (QUOTE (SHOWTIME)) "Opens a showtime window for use.")
(RPAQQ SHOWTIME.ICON #*(80 84)@C@@@@@@@@@@@@@@@@@@@CO@@@@@@@@@@@@@@@@@@COO@@@@@@@@@@@@@@@@@CMOO@@@@@@@@@@@@@@@@GLAOO@@@@@@@@@@@@@@@GL@AOO@@@@@@@@@@@@@@GN@@OOO@@@@@@@@@@@@@GN@@OOOO@@@@@@@@@@@@ON@@GOMOO@@@@@@@@@@@ON@@GOLAOO@@@@@@@@@@OO@@GOL@AOO@@@@@@@@@OO@@GON@@OOO@@@@@@@AOO@@CON@@OOOO@@@@@@AOO@@CON@@GOMOO@@@@@AOOH@CON@@GOLAOO@@@@AOOH@COO@@GOL@AOO@@@AOOH@AOO@@GON@@OOO@@@AOO@AOO@@CON@@OOOO@@@AOOAOO@@CON@@OOMOO@@@AOOOOH@CON@@GOLAO@@@@AOOOH@COO@@GOL@C@@@@@AOOH@AOO@@GON@C@@@@@@AOO@AOO@@GON@G@@@@@@@AOOAOO@@CON@F@@@@@@@@AOOOOH@CON@F@@@@@@@@@AOOOH@COO@F@@@@@@@@@@AOOH@COO@N@@@@@@@@@@@AOO@AOO@L@@@@@@@@@@@@AOOAOO@L@@@@@@@@@@@@@AOOOOHL@@@@@@@@@@@@@@AOOOIL@@@@@@@@@@@@@@@AOOIH@@@@@@@@@@@@@@@@AOIH@@@@@@@@@@@@@@@@@AOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOHGALF@LGLD@DDOND@GHOGKKNMOFONMKFNGLNOGHOGOKNMOFNNOKNNCHNOOHOGOKNMOFFLOKNNKJNOOHOHGH@MOGFMOKNNIBN@OHOOKKNMOGFMOKNNMFNOOHOOKKNMOG@AOKNNLFNOOHOGKKNMOGKKOKNNNNNOGHOHGALF@OKKOALDGLD@GHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@AHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOH
)
(RPAQQ SHOWTIME.MASK #*(80 84)@C@@@@@@@@@@@@@@@@@@@CO@@@@@@@@@@@@@@@@@@COO@@@@@@@@@@@@@@@@@COOO@@@@@@@@@@@@@@@@GOOOO@@@@@@@@@@@@@@@GOOOOO@@@@@@@@@@@@@@GOOOOOO@@@@@@@@@@@@@GOOOOOOO@@@@@@@@@@@@OOOOOOOOO@@@@@@@@@@@OOOOOOOOOO@@@@@@@@@@OOOOOOOOOOO@@@@@@@@@OOOOOOOOOOOO@@@@@@@AOOOOOOOOOOOOO@@@@@@AOOOOOOOOOOOOOO@@@@@AOOOOOOOOOOOOOOO@@@@AOOOOOOOOOOOOOOOO@@@AOOOOOOOOOOOOOOOOO@@@AOOOOOOOOOOOOOOOOO@@@AOOOOOOOOOOOOOOOOO@@@AOOOOOOOOOOOOOOOO@@@@AOOOOOOOOOOOOOOO@@@@@AOOOOOOOOOOOOOO@@@@@@AOOOOOOOOOOOOO@@@@@@@AOOOOOOOOOOON@@@@@@@@AOOOOOOOOOON@@@@@@@@@AOOOOOOOOON@@@@@@@@@@AOOOOOOOON@@@@@@@@@@@AOOOOOOOL@@@@@@@@@@@@AOOOOOOL@@@@@@@@@@@@@AOOOOOL@@@@@@@@@@@@@@AOOOOL@@@@@@@@@@@@@@@AOOOH@@@@@@@@@@@@@@@@AOOH@@@@@@@@@@@@@@@@@AOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOH
)
(RPAQQ SHOWTIME.LOAD.SUBITEMS NIL)
(RPAQQ SHOWTIME.SAVE.SUBITEMS NIL)
(RPAQQ SHOWTIME.MENU NIL)
(RPAQQ SHOWTIMETITLEREGION (7 7 56 29))
(RPAQQ SHOWTIME.DEFAULT.FORMAT LISP)
(RPAQQ BackgroundMenu NIL)
(RPAQQ SHOWTIME.FORMAT.FNS (SHOWTIME.FORMAT.FNS (RES READ.RES SHOWTIME.MAKE.RES)
(LISP SHOWTIME.READ.LISPBM SHOWTIME.SAVE.LISPBM)
(DIF SHOWTIME.LOAD.DIF.FILE NIL)
(BRUSH SHOWTIME.LOAD.BRUSH MAKEBRUSH)
(PRESS READPRESS PRESSBITMAP)))
(APPENDTOVAR BackgroundMenuCommands (Showtime '(SHOWTIME)
"Opens a showtime window for use."))
(FILESLOAD BITMAPFNS SCALEBITMAP READBRUSH)
(SHOWTIME.ADD.FORMAT)
(SHOWTIME.ADD.FORMAT)
(PUTPROPS SHOWTIME COPYRIGHT ("Xerox Corporation" 1986 1987 1988 1989))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (2126 20535 (GET.SHOWTIME.MENU 2136 . 2931) (MAKEBRUSH 2933 . 3123) (
MAKEBRUSH.HEADER&BITMAP 3125 . 3863) (INFORES 3865 . 4778) (READ.RES 4780 . 5689) (SHOWTIME 5691 .
6711) (SHOWTIME.BUTTONEVENTFN 6713 . 8306) (SHOWTIME.GET.NAME 8308 . 9067) (SHOWTIME.ICONFN 9069 .
9407) (SHOWTIME.LOAD.BITMAP 9409 . 10592) (SHOWTIME.LOAD.BRUSH 10594 . 10692) (SHOWTIME.LOAD.DIF.FILE
10694 . 11765) (SHOWTIME.LOAD.RES.FILE 11767 . 12032) (SHOWTIME.MAKE.RES 12034 . 12411) (
SHOWTIME.MAKE.RES.HEADER 12413 . 14913) (SHOWTIME.MAKE.RES.TAIL 14915 . 15214) (SHOWTIME.READ.BRUSH
15216 . 15322) (SHOWTIME.READ.LISPBM 15324 . 15541) (SHOWTIME.READ.PRESS 15543 . 15664) (
SHOWTIME.READ.RES 15666 . 15926) (SHOWTIME.RES.CHECK&MASSAGE 15928 . 16392) (SHOWTIME.RESHAPE.WINDOW
16394 . 16681) (SHOWTIME.SAVE.BITMAP 16683 . 17478) (SHOWTIME.SAVE.LISPBM 17480 . 17703) (
SHOWTIME.SCALE.BITMAP 17705 . 18394) (SHOWTIME.ADD.FORMAT 18396 . 19125) (SHOWTIME.SETUP.WINDOWPROPS
19127 . 19376) (SHOWTIME.SHOW.BITMAP 19378 . 19835) (SHOWTIME.WRITEBM 19837 . 20533)))))
(FILEMAP (NIL (2589 22191 (GET.SHOWTIME.MENU 2599 . 3394) (MAKEBRUSH 3396 . 3586) (
MAKEBRUSH.HEADER&BITMAP 3588 . 4326) (INFORES 4328 . 6301) (READ.RES 6303 . 7212) (SHOWTIME 7214 .
8234) (SHOWTIME.BUTTONEVENTFN 8236 . 9829) (SHOWTIME.GET.NAME 9831 . 10590) (SHOWTIME.ICONFN 10592 .
10930) (SHOWTIME.LOAD.BITMAP 10932 . 12115) (SHOWTIME.LOAD.BRUSH 12117 . 12215) (
SHOWTIME.LOAD.DIF.FILE 12217 . 13288) (SHOWTIME.LOAD.RES.FILE 13290 . 13555) (SHOWTIME.MAKE.RES 13557
. 13934) (SHOWTIME.MAKE.RES.HEADER 13936 . 16436) (SHOWTIME.MAKE.RES.TAIL 16438 . 16737) (
SHOWTIME.READ.BRUSH 16739 . 16845) (SHOWTIME.READ.LISPBM 16847 . 17064) (SHOWTIME.READ.PRESS 17066 .
17320) (SHOWTIME.READ.RES 17322 . 17582) (SHOWTIME.RES.CHECK&MASSAGE 17584 . 18048) (
SHOWTIME.RESHAPE.WINDOW 18050 . 18337) (SHOWTIME.SAVE.BITMAP 18339 . 19134) (SHOWTIME.SAVE.LISPBM
19136 . 19359) (SHOWTIME.SCALE.BITMAP 19361 . 20050) (SHOWTIME.ADD.FORMAT 20052 . 20781) (
SHOWTIME.SETUP.WINDOWPROPS 20783 . 21032) (SHOWTIME.SHOW.BITMAP 21034 . 21491) (SHOWTIME.WRITEBM 21493
. 22189)))))
STOP

Binary file not shown.

View File

@@ -1,25 +1,30 @@
(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")
(FILECREATED "29-Jul-87 08:47:18" {PHYLUM}<LISPUSERS>LYRIC>UNDIGESTIFY.;2 16839
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
changes to%: (FNS INSTALL-UNDIGESTIFY)
(FILECREATED "24-Sep-2023 14:26:57" {WMEDLEY}<lispusers>UNDIGESTIFY.;3 17040
previous date%: "16-May-86 10:55:33" {PHYLUM}<LISPUSERS>LYRIC>UNDIGESTIFY.;1)
:EDIT-BY rmk
:CHANGES-TO (VARS UNDIGESTIFYCOMS)
(FNS OPEN-SPACE-IN-FILE)
:PREVIOUS-DATE "29-Jul-87 08:47:18" {WMEDLEY}<lispusers>UNDIGESTIFY.;1)
(* "
Copyright (c) 1986, 1987 by Xerox Corporation. All rights reserved.
(* ; "
Copyright (c) 1986-1987 by Xerox Corporation.
")
(PRETTYCOMPRINT UNDIGESTIFYCOMS)
(RPAQQ UNDIGESTIFYCOMS ((INITVARS *DELETE-DIGEST-FLAG* *MOVE-TO-FIRST-DIGEST-MESSAGE-FLAG*
*DONT-UPDATE-HEADERS-FLAG* SEPARATOR1 SEPARATOR2)
(FNS INSTALL-UNDIGESTIFY LAFITE-DISPLAY LAFITE-TRUNCATE-FILE
LAFITE-UNDIGESTIFY MOVE-TO-EOL OPEN-SPACE-IN-FILE
PARSE-AND-MAYBE-MERGE-HEADER SKIP-EOLS BACKUP-PTR
TEDIT.FIND.NOT.CASELESS)
(DECLARE%: EVAL@COMPILE DONTCOPY (FILES {ERIS}<LAFITE>SOURCES>LAFITEDECLS))
(P (INSTALL-UNDIGESTIFY))))
(RPAQQ UNDIGESTIFYCOMS
((INITVARS *DELETE-DIGEST-FLAG* *MOVE-TO-FIRST-DIGEST-MESSAGE-FLAG* *DONT-UPDATE-HEADERS-FLAG*
SEPARATOR1 SEPARATOR2)
(FNS INSTALL-UNDIGESTIFY LAFITE-DISPLAY LAFITE-TRUNCATE-FILE LAFITE-UNDIGESTIFY MOVE-TO-EOL
OPEN-SPACE-IN-FILE PARSE-AND-MAYBE-MERGE-HEADER SKIP-EOLS BACKUP-PTR
TEDIT.FIND.NOT.CASELESS)
(DECLARE%: EVAL@COMPILE DONTCOPY (FILES (FROM library/LAFITE)
LAFITEDECLS))
(P (INSTALL-UNDIGESTIFY))))
(RPAQ? *DELETE-DIGEST-FLAG* NIL)
@@ -249,12 +254,16 @@ Copyright (c) 1986, 1987 by Xerox Corporation. All rights reserved.
(GETFILEPTR TEXTSTREAM])
(OPEN-SPACE-IN-FILE
[LAMBDA (FILE POSITION NCHARS) (* SCB%: "25-Mar-86 12:52")
(* Open a space in file starting at POSITION for length NCHARS by sliding the
 rest of the file down.)
[LAMBDA (FILE POSITION NCHARS) (* ; "Edited 24-Sep-2023 14:25 by rmk")
(* SCB%: "25-Mar-86 12:52")
(LET [(TEMP (OPENFILE '{NODIRCORE} 'BOTH]
(* ;;
 "Open a space in file starting at POSITION for length NCHARS by sliding the rest of the file down.")
(* Open a space in file starting at POSITION for length NCHARS by sliding the
 rest of the file down.)
(LET [(TEMP (OPENSTREAM '{NODIRCORE} 'BOTH]
(COPYBYTES FILE TEMP POSITION (GETEOFPTR FILE))
(SETFILEPTR FILE (IPLUS POSITION NCHARS))
(SETFILEPTR TEMP 0)
@@ -302,13 +311,16 @@ Copyright (c) 1986, 1987 by Xerox Corporation. All rights reserved.
(TEDIT.FIND TEXTOBJ TARGETSTRING START# END# WILDCARDS?])
)
(DECLARE%: EVAL@COMPILE DONTCOPY
(FILESLOAD {ERIS}<LAFITE>SOURCES>LAFITEDECLS)
(FILESLOAD (FROM library/LAFITE)
LAFITEDECLS)
)
(INSTALL-UNDIGESTIFY)
(INSTALL-UNDIGESTIFY)
(PUTPROPS UNDIGESTIFY COPYRIGHT ("Xerox Corporation" 1986 1987))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1217 16647 (INSTALL-UNDIGESTIFY 1227 . 3240) (LAFITE-DISPLAY 3242 . 3541) (
LAFITE-TRUNCATE-FILE 3543 . 3954) (LAFITE-UNDIGESTIFY 3956 . 13612) (MOVE-TO-EOL 13614 . 14074) (
OPEN-SPACE-IN-FILE 14076 . 14578) (PARSE-AND-MAYBE-MERGE-HEADER 14580 . 15800) (SKIP-EOLS 15802 .
16113) (BACKUP-PTR 16115 . 16277) (TEDIT.FIND.NOT.CASELESS 16279 . 16645)))))
(FILEMAP (NIL (1183 16831 (INSTALL-UNDIGESTIFY 1193 . 3206) (LAFITE-DISPLAY 3208 . 3507) (
LAFITE-TRUNCATE-FILE 3509 . 3920) (LAFITE-UNDIGESTIFY 3922 . 13578) (MOVE-TO-EOL 13580 . 14040) (
OPEN-SPACE-IN-FILE 14042 . 14762) (PARSE-AND-MAYBE-MERGE-HEADER 14764 . 15984) (SKIP-EOLS 15986 .
16297) (BACKUP-PTR 16299 . 16461) (TEDIT.FIND.NOT.CASELESS 16463 . 16829)))))
STOP

Binary file not shown.

View File

@@ -1,137 +1,139 @@
(FILECREATED " 3-Jun-86 14:13:59" {ERIS}<LISPCORE>LIBRARY>BITMAPFNS.;6 6278
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
changes to: (MACROS RPCHK)
(FNS READPRESS)
(FILECREATED "24-Sep-2023 13:54:45" {WMEDLEY}<lispusers>bitmapfns.;2 5976
previous date: " 2-Jun-86 22:35:15" {ERIS}<LISPCORE>LIBRARY>BITMAPFNS.;5)
:EDIT-BY rmk
:CHANGES-TO (FNS READPRESS)
:PREVIOUS-DATE " 3-Jun-86 14:13:59" {WMEDLEY}<lispusers>bitmapfns.;1)
(* Copyright (c) 1983, 1984, 1985, 1986 by Xerox Corporation. All rights reserved.)
(* ; "
Copyright (c) 1983-1986 by Xerox Corporation.
")
(PRETTYCOMPRINT BITMAPFNSCOMS)
(RPAQQ BITMAPFNSCOMS ((FNS READBINARYBITMAP WRITEBINARYBITMAP WRITEBM WRITEBMLST READBMLST READBM
READPRESS WINDOWBM)
(DECLARE: DONTCOPY (MACROS RPCHK))))
(DECLARE%: DONTCOPY (MACROS RPCHK))))
(DEFINEQ
(READBINARYBITMAP
[LAMBDA (WIDTH HEIGHT FILE) (* lmm " 4-JAN-83 00:19")
(* reads a bitmap from the output file.)
(PROG ((BM (BITMAPCREATE WIDTH HEIGHT)))
(\BINS (GETSTREAM FILE (QUOTE INPUT))
(fetch BITMAPBASE of BM)
0
(ITIMES (fetch BITMAPRASTERWIDTH of BM)
(fetch BITMAPHEIGHT of BM)
2))
(RETURN BM])
[LAMBDA (WIDTH HEIGHT FILE) (* lmm " 4-JAN-83 00:19")
(* reads a bitmap from the output
 file.)
(PROG ((BM (BITMAPCREATE WIDTH HEIGHT)))
(\BINS (GETSTREAM FILE 'INPUT)
(fetch BITMAPBASE of BM)
0
(ITIMES (fetch BITMAPRASTERWIDTH of BM)
(fetch BITMAPHEIGHT of BM)
2))
(RETURN BM])
(WRITEBINARYBITMAP
[LAMBDA (BITMAP FILE) (* JWogulis "26-Dec-84 15:06")
(\BOUTS FILE [ffetch BITMAPBASE of (SETQ BITMAP (\DTEST BITMAP (QUOTE BITMAP]
0
(ITIMES (ffetch BITMAPHEIGHT of BITMAP)
(ffetch BITMAPRASTERWIDTH of BITMAP)
BYTESPERWORD])
[LAMBDA (BITMAP FILE) (* JWogulis "26-Dec-84 15:06")
(\BOUTS FILE [ffetch BITMAPBASE of (SETQ BITMAP (\DTEST BITMAP 'BITMAP]
0
(ITIMES (ffetch BITMAPHEIGHT of BITMAP)
(ffetch BITMAPRASTERWIDTH of BITMAP)
BYTESPERWORD])
(WRITEBM
[LAMBDA (FILE BITMAP) (* lmm " 6-Jun-85 16:46")
[BOUT16 FILE (ffetch BITMAPWIDTH of (SETQ BITMAP (\DTEST BITMAP (QUOTE BITMAP]
(BOUT16 FILE (ffetch BITMAPHEIGHT of BITMAP))
[LAMBDA (FILE BITMAP) (* lmm " 6-Jun-85 16:46")
[BOUT16 FILE (ffetch BITMAPWIDTH of (SETQ BITMAP (\DTEST BITMAP 'BITMAP]
(BOUT16 FILE (ffetch BITMAPHEIGHT of BITMAP))
(WRITEBINARYBITMAP BITMAP FILE])
(WRITEBMLST
[LAMBDA (FILE LST) (* JWogulis "26-Dec-84 15:06")
(PROG [(F (OPENSTREAM FILE (QUOTE OUTPUT)
(QUOTE NEW]
[LAMBDA (FILE LST) (* JWogulis "26-Dec-84 15:06")
(PROG [(F (OPENSTREAM FILE 'OUTPUT 'NEW]
(for I in LST do (WRITEBM F I))
(CLOSEF F])
(CLOSEF F])
(READBMLST
[LAMBDA (FILE) (* JWogulis "26-Dec-84 15:08")
(bind (F _(OPENSTREAM FILE (QUOTE INPUT)
(QUOTE OLD)))
until (EOFP F) collect (READBM F) finally (CLOSEF F])
[LAMBDA (FILE) (* JWogulis "26-Dec-84 15:08")
(bind (F _ (OPENSTREAM FILE 'INPUT 'OLD)) until (EOFP F) collect (READBM F)
finally (CLOSEF F])
(READBM
[LAMBDA (FILE) (* lmm " 6-Jun-85 16:46")
(READBINARYBITMAP (BIN16 FILE)
(BIN16 FILE)
FILE])
[LAMBDA (FILE) (* lmm " 6-Jun-85 16:46")
(READBINARYBITMAP (BIN16 FILE)
(BIN16 FILE)
FILE])
(READPRESS
[LAMBDA (FILENAME) (* lmm " 2-Jun-86 22:34")
(RESETLST (PROG (WW HT MICAWIDTH MICAHEIGHT BITMAP TOTCOUNT (OFD (GETSTREAM (OPENFILE
FILENAME
(QUOTE INPUT)
(QUOTE OLD))
(QUOTE INPUT)))
X WIDTH)
(RESETSAVE NIL (LIST (QUOTE CLOSEF)
OFD))
(RPCHK 256) (* Edotcode)
(SETQ WW (IQUOTIENT (BIN16 OFD)
16)) (* Width)
(SETQ HT (BIN16 OFD)) (* Height)
(until (SELECTC (SETQ X (BIN16 OFD))
((IPLUS 512 3)
(* Edotmode and 3)
(RPCHK 2) (* Edotsize)
(SETQ MICAWIDTH (BIN16 OFD))
(SETQ MICAHEIGHT (BIN16 OFD))
NIL)
(1 (* Edotwindow)
(BIN16 OFD)
(SETQ WIDTH (BIN16 OFD))
(RPCHK 0)
(RPCHK HT)
NIL)
(3 T)
(GO ERROR)))
[\BINS OFD (fetch BITMAPBASE of (SETQ BITMAP (BITMAPCREATE (ITIMES WW 16)
HT)))
0
(ITIMES 2 (SETQ TOTCOUNT (ITIMES HT WW]
(RPCHK 0) (* Entity list terminator)
[COND
(NIL (* more checks, not necessary)
(PROGN (RPCHK (IPLUS 65280 238)) (* Nop, setx)
(RPCHK 0)
(RPCHK (IPLUS 65280 239)) (* Nop, sety)
(RPCHK 0)
(RPCHK (IPLUS 65280 252)) (* Nop, show dots)
(RPCHK 0]
(RETURN BITMAP)
ERROR
(ERROR "Sorry, unrecognized PRESS file format. READPRESS isn't very general."])
[LAMBDA (FILENAME) (* ; "Edited 24-Sep-2023 13:54 by rmk")
(* lmm " 2-Jun-86 22:34")
(RESETLST
(PROG (WW HT MICAWIDTH MICAHEIGHT BITMAP TOTCOUNT (OFD (OPENSTREAM FILENAME 'INPUT
'OLD))
X WIDTH)
(RESETSAVE NIL (LIST 'CLOSEF OFD))
(RPCHK 256) (* Edotcode)
(SETQ WW (IQUOTIENT (BIN16 OFD)
16)) (* Width)
(SETQ HT (BIN16 OFD)) (* Height)
(until (SELECTC (SETQ X (BIN16 OFD))
((IPLUS 512 3) (* Edotmode and 3)
(RPCHK 2) (* Edotsize)
(SETQ MICAWIDTH (BIN16 OFD))
(SETQ MICAHEIGHT (BIN16 OFD))
NIL)
(1 (* Edotwindow)
(BIN16 OFD)
(SETQ WIDTH (BIN16 OFD))
(RPCHK 0)
(RPCHK HT)
NIL)
(3 T)
(GO ERROR)))
[\BINS OFD (fetch BITMAPBASE of (SETQ BITMAP (BITMAPCREATE (ITIMES WW 16)
HT)))
0
(ITIMES 2 (SETQ TOTCOUNT (ITIMES HT WW]
(RPCHK 0) (* Entity list terminator)
[COND
(NIL (* more checks, not necessary)
(PROGN (RPCHK (IPLUS 65280 238)) (* Nop, setx)
(RPCHK 0)
(RPCHK (IPLUS 65280 239)) (* Nop, sety)
(RPCHK 0)
(RPCHK (IPLUS 65280 252)) (* Nop, show dots)
(RPCHK 0]
(RETURN BITMAP)
ERROR
(ERROR "Sorry, unrecognized PRESS file format. READPRESS isn't very general.")))])
(WINDOWBM
[LAMBDA (BITMAP POSITION) (* JWogulis "26-Dec-84 15:37")
(IF (AND POSITION (NOT (POSITIONP POSITION)))
THEN (ERROR "NOT A POSITION" POSITION))
[IF (NOT POSITION)
THEN (SETQ POSITION (GETBOXPOSITION (IPLUS 8 (BITMAPWIDTH BITMAP))
(IPLUS 8 (BITMAPHEIGHT BITMAP]
(PROG ((WIND (CREATEW (LIST (CAR POSITION)
(CDR POSITION)
(IPLUS 8 (BITMAPWIDTH BITMAP))
(IPLUS 8 (BITMAPHEIGHT BITMAP)))
NIL 4)))
(BITBLT BITMAP 0 0 WIND)
(RETURN WIND])
[LAMBDA (BITMAP POSITION) (* JWogulis "26-Dec-84 15:37")
(IF (AND POSITION (NOT (POSITIONP POSITION)))
THEN (ERROR "NOT A POSITION" POSITION))
[IF (NOT POSITION)
THEN (SETQ POSITION (GETBOXPOSITION (IPLUS 8 (BITMAPWIDTH BITMAP))
(IPLUS 8 (BITMAPHEIGHT BITMAP]
(PROG ((WIND (CREATEW (LIST (CAR POSITION)
(CDR POSITION)
(IPLUS 8 (BITMAPWIDTH BITMAP))
(IPLUS 8 (BITMAPHEIGHT BITMAP)))
NIL 4)))
(BITBLT BITMAP 0 0 WIND)
(RETURN WIND])
)
(DECLARE: DONTCOPY
(DECLARE: EVAL@COMPILE
[PUTPROPS RPCHK MACRO ((N)
(DECLARE%: DONTCOPY
(DECLARE%: EVAL@COMPILE
(PUTPROPS RPCHK MACRO ((N)
(OR (EQ (BIN16 OFD)
N)
(GO ERROR]
(GO ERROR))))
)
)
(PUTPROPS BITMAPFNS COPYRIGHT ("Xerox Corporation" 1983 1984 1985 1986))
(DECLARE: DONTCOPY
(FILEMAP (NIL (564 5993 (READBINARYBITMAP 574 . 1075) (WRITEBINARYBITMAP 1077 . 1437) (WRITEBM 1439 .
1752) (WRITEBMLST 1754 . 2028) (READBMLST 2030 . 2305) (READBM 2307 . 2492) (READPRESS 2494 . 5342) (
WINDOWBM 5344 . 5991)))))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (589 5676 (READBINARYBITMAP 599 . 1213) (WRITEBINARYBITMAP 1215 . 1585) (WRITEBM 1587 .
1874) (WRITEBMLST 1876 . 2112) (READBMLST 2114 . 2351) (READBM 2353 . 2536) (READPRESS 2538 . 4970) (
WINDOWBM 4972 . 5674)))))
STOP

1
obsolete/tcp/TCP Normal file

File diff suppressed because one or more lines are too long

1
obsolete/tcp/TCPCHAT Normal file

File diff suppressed because one or more lines are too long

1
obsolete/tcp/TCPCONFIG Normal file

File diff suppressed because one or more lines are too long

1
obsolete/tcp/TCPDEBUG Normal file

File diff suppressed because one or more lines are too long

1
obsolete/tcp/TCPDOMAIN Normal file

File diff suppressed because one or more lines are too long

1
obsolete/tcp/TCPEXPORTS Normal file

File diff suppressed because one or more lines are too long

1
obsolete/tcp/TCPFTP Normal file

File diff suppressed because one or more lines are too long

1
obsolete/tcp/TCPFTPSRV Normal file

File diff suppressed because one or more lines are too long

1
obsolete/tcp/TCPHTE Normal file

File diff suppressed because one or more lines are too long

1
obsolete/tcp/TCPLLAR Normal file

File diff suppressed because one or more lines are too long

1
obsolete/tcp/TCPLLICMP Normal file

File diff suppressed because one or more lines are too long

1
obsolete/tcp/TCPLLIP Normal file

File diff suppressed because one or more lines are too long

1
obsolete/tcp/TCPNAMES Normal file

File diff suppressed because one or more lines are too long

212
obsolete/tcp/TCPOPS Normal file
View File

@@ -0,0 +1,212 @@
(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "INTERLISP")
(FILECREATED "22-May-90 10:55:20" |{DSK}/home/neptune/jds/TCPOPS.;17| 14660
|changes| |to:| (FNS TCP-ACCEPT TCP-LISTEN UDP-RECV)
|previous| |date:| " 3-May-90 11:40:39" |{DSK}/home/neptune/jds/TCPOPS.;16|)
; Copyright (c) 1989, 1990 by Savoir, Inc.. All rights reserved.
(PRETTYCOMPRINT TCPOPSCOMS)
(RPAQQ TCPOPSCOMS ((FILES CHARDEVICE) (ADDVARS (\\INITSUBRS (TCP 144))) (COMS (* |;;| "TCP Streams") (FNS \\TCP-DEV-INIT \\TCP-OPENFILE \\TCP-FORCEOUTPUT \\TCP-GETNEXTBUFFER \\TCP-EOFP \\TCP-CLOSEFILE \\TCP-EVENTFN \\TCP.BUFFERED.BOUTS) (P (\\TCP-DEV-INIT))) (COMS (* |;;| "User-level TCP operations") (FNS TCP OPENTCPSTREAM TCP-ACCEPT TCP-LISTEN TCP-CLOSE) (FNS UDP-LISTEN UDP-SEND UDP-RECV) (FNS GETHOSTFROMNAME GETHOSTFROMADDR GETHOSTFROMSOCKET GETHOSTNAME)) (DECLARE\: EVAL@LOAD DONTCOPY (COMS (* |;;| "Debugging functions &c") (VARS (BUFFER (\\ALLOCBLOCK 100))) (FNS TCPRECV TCPSEND SEEBUFFER FOON)))))
(FILESLOAD CHARDEVICE)
(ADDTOVAR \\INITSUBRS (TCP 144))
(* |;;| "TCP Streams")
(DEFINEQ
(\\TCP-DEV-INIT
(LAMBDA NIL (* \; "Edited 20-Feb-90 12:51 by jds") (* |;;| "Initialization for buffered Unix-character-oriented device (e.g. for TCP streams on SUN)") (SETQ \\TCP-FDEV (|create| FDEV DEVICENAME _ "TCP" FDBINABLE _ T FDBOUTABLE _ T BUFFERED _ T BIN _ (FUNCTION \\BUFFERED.BIN) BOUT _ (FUNCTION \\BUFFCHAR-OTHER-BOUT) OPENFILE _ (FUNCTION \\BUFFCHAR-DEV-OPENFILE) EVENTFN _ (FUNCTION \\CHAR-DEV-EVENTFN) REOPENFILE _ (FUNCTION \\BUFFCHAR-DEV-OPENFILE) CLOSEFILE _ (FUNCTION \\TCP-CLOSEFILE) FORCEOUTPUT _ (FUNCTION \\TCP-FORCEOUTPUT) EOFP _ (FUNCTION \\TCP-EOFP) BLOCKIN _ (FUNCTION \\BUFFERED.BINS) BLOCKOUT _ (FUNCTION \\TCP.BUFFERED.BOUTS) READP _ (FUNCTION \\GENERIC.READP) PEEKBIN _ (FUNCTION \\BUFFERED.PEEKBIN) GETNEXTBUFFER _ (FUNCTION \\TCP-GETNEXTBUFFER))) (\\DEFINEDEVICE (QUOTE TCP) \\TCP-FDEV))
)
(\\TCP-OPENFILE
(LAMBDA (NAME ACCESS RECOG OTHERINFO FDEV) (* \; "Edited 7-Mar-90 10:11 by jds") (LET ((UNIX-NAME (SUBSTRING NAME (ADD1 (STRPOS "}" NAME)))) (ERRNO (CREATECELL \\FIXP)) IODESCRIPTOR ACCESS-VALUE STREAM OTHER-STREAM) (SETQ STREAM (|create| STREAM BINABLE _ T BOUTABLE _ NIL DEVICE _ FDEV FULLFILENAME _ NAME USERCLOSEABLE _ T USERVISIBLE _ T EOLCONVENTION _ LF.EOLC)) (SELECTQ ACCESS (INPUT (|replace| (STREAM STRMBINFN) |of| STREAM |with| (FUNCTION \\BUFFERED.BIN)) (SETQ ACCESS-VALUE 0)) (OUTPUT (|replace| (STREAM STRMBOUTFN) |of| STREAM |with| (FUNCTION \\BUFFCHAR-OTHER-BOUT)) (REPLACE F2 OF STREAM WITH (SETQ OTHER-STREAM (|create| STREAM BINABLE _ NIL BOUTABLE _ NIL DEVICE _ FDEV FULLFILENAME _ NAME STRMBOUTFN _ (FUNCTION \\BUFFERED.BOUT) USERCLOSEABLE _ T USERVISIBLE _ T EOLCONVENTION _ LF.EOLC))) (SETQ ACCESS-VALUE 1)) (BOTH (|replace| (STREAM STRMBINFN) |of| STREAM |with| (FUNCTION \\BUFFERED.BIN)) (|replace| (STREAM STRMBOUTFN) |of| STREAM |with| (FUNCTION \\BUFFCHAR-OTHER-BOUT)) (REPLACE F2 OF STREAM WITH (SETQ OTHER-STREAM (|create| STREAM BINABLE _ NIL BOUTABLE _ NIL DEVICE _ FDEV FULLFILENAME _ NAME STRMBOUTFN _ (FUNCTION \\BUFFERED.BOUT) USERCLOSEABLE _ T USERVISIBLE _ T EOLCONVENTION _ LF.EOLC))) (SETQ ACCESS-VALUE 2)) (APPEND (\\ILLEGAL.ARG ACCESS)) (\\ILLEGAL.ARG ACCESS)) (COND ((SETQ IODESCRIPTOR (SUBRCALL CHAR-OPENFILE UNIX-NAME ACCESS-VALUE ERRNO)) (* |;;| "Open happened, so put things together.") (|replace| (STREAM F1) |of| STREAM |with| IODESCRIPTOR) (COND (OTHER-STREAM (|replace| (STREAM F1) |of| OTHER-STREAM |with| IODESCRIPTOR)))) (T (\\CHAR-ERROR ERRNO NAME))) STREAM))
)
(\\TCP-FORCEOUTPUT
(LAMBDA (STREAM WAIT) (* \; "Edited 15-Dec-89 16:09 by jds")
(* |;;;| "Generic buffer refiller for Buffered character streams (e.g. TCP streams on Sun, or the Lisp side of a shell CHAT, eventually)")
(PROG (ERRCODE (OTHER-STREAM (|fetch| F2 |of| STREAM))
(ERRNO (\\CREATECELL \\FIXP))
BUFFER)
(COND
((NULL (|fetch| CPPTR |of| OTHER-STREAM))
(* |;;| "No buffer allocated yet; create one.")
(REPLACE CPPTR OF OTHER-STREAM WITH (NCREATE 'VMEMPAGEP))
(REPLACE CBUFSIZE OF OTHER-STREAM WITH 512)
(REPLACE CBUFMAXSIZE OF OTHER-STREAM WITH 512)
(REPLACE COFFSET OF OTHER-STREAM WITH 0)
T)
((ZEROP (|fetch| COFFSET |of| OTHER-STREAM))
T)
((SETQ ERRCODE (\\CHAR-BOUTS OTHER-STREAM (|fetch| CPPTR |of| OTHER-STREAM)
0
(|fetch| COFFSET |of| OTHER-STREAM)
NIL))
(* |;;| "WRITE HAPPENED.")
(|replace| CBUFSIZE |of| OTHER-STREAM |with| 512)
(|replace| CBUFMAXSIZE |of| OTHER-STREAM |with| 512)
(|replace| COFFSET |of| OTHER-STREAM |with| 0)
T)))))
(\\TCP-GETNEXTBUFFER
(LAMBDA (STREAM WHATFOR NOERRORFLG EOF-TEST) (* \; "Edited 20-Feb-90 12:43 by jds") (* |;;;| "Generic buffer refiller for Buffered character streams (e.g. TCP streams on Sun, or the Lisp side of a shell CHAT, eventually).") (PROG (ERRCODE (ERRNO (\\CREATECELL \\FIXP)) BUFFER) READ-LOOP (RETURN (SELECTQ WHATFOR (READ (* |;;| "READING; GET A FRESH BUFFER FULL OF UN-READ CHARACTERS.") (SETQ BUFFER (OR (FETCH (STREAM CPPTR) OF STREAM) (NCREATE (QUOTE VMEMPAGEP)))) (|replace| CPPTR |of| STREAM |with| BUFFER) (COND ((ZEROP (SETQ ERRCODE (TCP 6 (|fetch| (STREAM F1) |of| STREAM) BUFFER 512))) (AND (NULL NOERRORFLG) (\\EOF.ACTION STREAM)) NIL) ((EQ ERRCODE T) (AND EOF-TEST (RETURN T)) (BLOCK) (GO READ-LOOP)) (ERRCODE (* |;;| "Read succeeded, and ERRCODE has # of chars read.") (|replace| CPPTR |of| STREAM |with| BUFFER) (|replace| COFFSET |of| STREAM |with| 0) (|replace| CBUFSIZE |of| STREAM |with| ERRCODE) (|replace| CBUFMAXSIZE |of| STREAM |with| ERRCODE) T) ((NULL NOERRORFLG) (\\CHAR-ERROR ERRNO STREAM)))) (WRITE (COND ((NULL (FETCH CPPTR OF STREAM)) (* |;;| "No buffer allocated yet; create one.") (REPLACE CPPTR OF STREAM WITH (NCREATE (QUOTE VMEMPAGEP))) (REPLACE CBUFSIZE OF STREAM WITH 512) (REPLACE CBUFMAXSIZE OF STREAM WITH 512) (REPLACE COFFSET OF STREAM WITH 0) T) ((ZEROP (FETCH COFFSET OF STREAM)) T) ((SETQ ERRCODE (\\CHAR-BOUTS STREAM (FETCH CPPTR OF STREAM) 0 (FETCH COFFSET OF STREAM) NOERRORFLG)) (* |;;| "WRITE HAPPENED.") (REPLACE CBUFSIZE OF STREAM WITH 512) (REPLACE CBUFMAXSIZE OF STREAM WITH 512) (REPLACE COFFSET OF STREAM WITH 0) T))) (SHOULDNT)))))
)
(\\TCP-EOFP
(LAMBDA (STREAM) (* \; "Edited 20-Feb-90 12:42 by jds") (* |;;| "T if there will be no more data on the stream") (AND (OR (NOT (|fetch| (STREAM CPPTR) |of| STREAM)) (IEQP (FETCH (STREAM COFFSET) OF STREAM) (FETCH (STREAM CBUFSIZE) OF STREAM))) (NOT (\\TCP-GETNEXTBUFFER STREAM (QUOTE READ) T T))))
)
(\\TCP-CLOSEFILE
(LAMBDA (STREAM) (* \; "Edited 18-Dec-89 11:17 by jds")
(* |;;| "Close a TCP connection or listening-socket cleanly.")
(TCP 3 (|fetch| (STREAM F1) |of| STREAM))
STREAM))
(\\TCP-EVENTFN
(LAMBDA (FDEV EVENT) (* \; "Edited 30-Jan-90 13:56 by jds")
(SELECTQ EVENT
((BEFORELOGOUT BEFORESYSOUT BEFOREMAKESYS BEFORESAVEVM)
(* |;;|
 "Clean up existing connections, and remember any LISTENS in progress")
)
((AFTERLOGOUT AFTERSYSOUT AFTERMAKESYS AFTERSAVEVM)
(* |;;|
"Try to reopen streams that had been open, and re-establish any LISTENs in progress when we exited.")
)
NIL)))
(\\TCP.BUFFERED.BOUTS
(LAMBDA (STREAM SBASE OFFSET NBYTES) (\\BUFFERED.BOUTS (FETCH F2 OF STREAM) SBASE OFFSET NBYTES)))
)
(\\TCP-DEV-INIT)
(* |;;| "User-level TCP operations")
(DEFINEQ
(TCP
(LAMBDA (A B C D E F G H I J K L M) (* \; "Edited 4-Apr-90 17:29 by jds") (* |;;| "Generic TCP-operation hider function. Hides the fact of TCP ops being SUBRCALLs.") (* |;;| "Returns whatever result the TCP operation returns.") (SUBRCALL TCP A B C D E F G H I J K L M))
)
(OPENTCPSTREAM
(LAMBDA (HOST PORT) (* \; "Edited 3-May-90 11:38 by jds") (LET ((ERRNO (CREATECELL \\FIXP)) IODESCRIPTOR ACCESS-VALUE STREAM OTHER-STREAM) (SETQ STREAM (|create| STREAM BINABLE _ T BOUTABLE _ T DEVICE _ \\TCP-FDEV FULLFILENAME _ HOST USERCLOSEABLE _ T USERVISIBLE _ T EOLCONVENTION _ LF.EOLC)) (|replace| (STREAM ACCESS) |of| STREAM |with| (QUOTE BOTH)) (|replace| (STREAM STRMBINFN) |of| STREAM |with| (FUNCTION \\BUFFERED.BIN)) (|replace| (STREAM STRMBOUTFN) |of| STREAM |with| (FUNCTION \\BUFFCHAR-OTHER-BOUT)) (|replace| F2 |of| STREAM |with| (SETQ OTHER-STREAM (|create| STREAM BINABLE _ T BOUTABLE _ T DEVICE _ \\TCP-FDEV FULLFILENAME _ HOST STRMBOUTFN _ (FUNCTION \\BUFFERED.BOUT) USERCLOSEABLE _ NIL USERVISIBLE _ NIL EOLCONVENTION _ LF.EOLC))) (COND ((SETQ IODESCRIPTOR (TCP 4 HOST PORT)) (* |;;| "Open happened, so put things together.") (|replace| (STREAM F1) |of| STREAM |with| IODESCRIPTOR) (|replace| (STREAM F1) |of| OTHER-STREAM |with| IODESCRIPTOR)) (T (\\CHAR-ERROR ERRNO HOST))) STREAM))
)
(TCP-ACCEPT
(LAMBDA (WAITING-SOCKET) (* \; "Edited 22-May-90 10:18 by jhb") (LET ((ERRNO (CREATECELL \\FIXP)) IODESCRIPTOR ACCESS-VALUE STREAM OTHER-STREAM SOCKET) (|while| (OR (NOT SOCKET) (< SOCKET 0)) |do| (BLOCK) (SETQ SOCKET (TCP 8 WAITING-SOCKET))) (PRINTOUT *TRACE-OUTPUT* "SOCKET ACCEPTED " SOCKET T) (SETQ STREAM (|create| STREAM BINABLE _ T BOUTABLE _ T DEVICE _ \\TCP-FDEV FULLFILENAME _ (GETHOSTFROMSOCKET SOCKET) USERCLOSEABLE _ T USERVISIBLE _ T EOLCONVENTION _ LF.EOLC)) (|replace| (STREAM ACCESS) |of| STREAM |with| (QUOTE BOTH)) (|replace| (STREAM STRMBINFN) |of| STREAM |with| (FUNCTION \\BUFFERED.BIN)) (|replace| (STREAM STRMBOUTFN) |of| STREAM |with| (FUNCTION \\BUFFCHAR-OTHER-BOUT)) (|replace| F2 |of| STREAM |with| (SETQ OTHER-STREAM (|create| STREAM BINABLE _ T BOUTABLE _ T DEVICE _ \\TCP-FDEV FULLFILENAME _ HOST STRMBOUTFN _ (FUNCTION \\BUFFERED.BOUT) USERCLOSEABLE _ NIL USERVISIBLE _ NIL EOLCONVENTION _ LF.EOLC))) (COND (SOCKET (* |;;| "Open happened, so put things together.") (|replace| (STREAM F1) |of| STREAM |with| SOCKET) (|replace| (STREAM F1) |of| OTHER-STREAM |with| SOCKET)) (T (\\CHAR-ERROR ERRNO HOST))) STREAM))
)
(TCP-LISTEN
(LAMBDA (SOCKET-NUMBER ACCEPT-FUNCTION ACCEPT-DATA) (* \; "Edited 22-May-90 10:54 by jhb") (LET ((SOCKET (TCP 7 SOCKET-NUMBER))) (SETQ \\MAIKO.IO-INTERRUPT-VECTOR (CONS (LIST (LLSH 1 SOCKET) ACCEPT-FUNCTION SOCKET ACCEPT-DATA) \\MAIKO.IO-INTERRUPT-VECTOR)) SOCKET))
)
(TCP-CLOSE
(LAMBDA (DESCRIPTOR-NUMBER) (* \; "Edited 4-Apr-90 14:51 by jds") (LET ((ACCEPTOR (ASSOC (LLSH 1 DESCRIPTOR-NUMBER) \\MAIKO.IO-INTERRUPT-VECTOR))) (TCP 3 DESCRIPTOR-NUMBER) (* \; "Close the TCP connection") (DREMOVE ACCEPTOR \\MAIKO.IO-INTERRUPT-VECTOR) (* \; "REmove any acceptor.") DESCRIPTOR-NUMBER))
)
)
(DEFINEQ
(UDP-LISTEN
(LAMBDA (SOCKET-NUMBER ACCEPT-FUNCTION ACCEPT-INFO) (* \; "Edited 4-Apr-90 15:49 by jds") (* |;;| "Listen on a particular UDP socket for incoming packet traffic. Also has the effect of opening the socket for outgoing traffic.") (LET ((SOCKET (TCP 128 SOCKET-NUMBER))) (SETQ \\MAIKO.IO-INTERRUPT-VECTOR (CONS (LIST (LLSH 1 SOCKET) ACCEPT-FUNCTION SOCKET ACCEPT-INFO) \\MAIKO.IO-INTERRUPT-VECTOR)) SOCKET))
)
(UDP-SEND
(LAMBDA (SOCKET BUFFER LEN ADDR PORT) (TCP 130 SOCKET ADDR PORT BUFFER LEN)))
(UDP-RECV
(LAMBDA (SOCKET) (* \; "Edited 3-May-90 11:40 by jds") (* |;;| "Xall recvfrom() to get an incoming packet on a UDP socket.") (* |;;| "Returns 4 results:") (* |;;| " The 1500-byte buffer containing the packet") (* |;;| " The length of the incoming packet") (* |;;| " The address of the guy who sent it") (* |;;| " The port to answer him on (or where he sent it from)") (LET ((BUFFER (NCREATE (QUOTE VMEMPAGEP))) LEN (ADDR (\\CREATECELL \\FIXP)) (PORT (\\CREATECELL \\FIXP))) (SETQ LEN (TCP 131 SOCKET BUFFER 512 ADDR PORT)) (CL:VALUES BUFFER LEN ADDR PORT)))
)
)
(DEFINEQ
(GETHOSTFROMNAME
(LAMBDA (NAME) (* \; "Edited 1-Feb-90 11:26 by jds")
(* |;;|
 "Given a host name, return the IP address for that host. If the host isn't found, return NIL.")
(TCP 0 NAME)))
(GETHOSTFROMADDR
(LAMBDA (ADDR) (* \; "Edited 6-Apr-90 20:23 by jds") (* |;;| "Given a host's IP address, return the string name of the host, or NIL if it can't be found.") (LET* ((BUF (\\ALLOCBLOCK 100 NIL)) (LEN (TCP 66 ADDR BUF))) (COND ((ZEROP LEN) NIL) (T (\\GETBASESTRING BUF 0 LEN)))))
)
(GETHOSTFROMSOCKET
(LAMBDA (SOCKET) (* \; "Edited 1-Feb-90 11:30 by jds")
(* |;;| "Given the socket FD of a TCP connection, return the NAME of the remote host, or NIL if it can't be found.")
(LET* ((BUF (\\ALLOCBLOCK 100 NIL))
(LEN (TCP 65 SOCKET BUF)))
(COND
((ZEROP LEN)
NIL)
(T (CONCATLIST (FOR I FROM 0 TO (SUB1 LEN) COLLECT (\\GETBASEBYTE BUF I)
)))))))
(GETHOSTNAME
(LAMBDA NIL (* \; "Edited 6-Apr-90 20:25 by jds") (* |;;| "Given a host's IP address, return the string name of the host, or NIL if it can't be found.") (LET* ((BUF (\\ALLOCBLOCK 100 NIL)) (LEN (TCP 67 BUF))) (COND ((ZEROP LEN) NIL) (T (\\GETBASESTRING BUF 0 LEN)))))
)
)
(DECLARE\: EVAL@LOAD DONTCOPY
(* |;;| "Debugging functions &c")
(RPAQ BUFFER (\\ALLOCBLOCK 100))
(DEFINEQ
(TCPRECV
(LAMBDA (PORT)
(LET ((LEN (TCP 6 PORT BUFFER 100)))
(|for| I |from| 0 |to| (SUB1 LEN) |do| (PRIN1 (CHARACTER (\\GETBASEBYTE
BUFFER I))))
(TERPRI))))
(TCPSEND
(LAMBDA (PORT BASE LEN) (* \; "Edited 15-Dec-89 15:13 by jds")
(TCP 5 PORT BASE OFFSET LEN)))
(SEEBUFFER
(LAMBDA (BUF) (|for| I |from| 0 |to| 11 |do| (PRIN1 (CHARACTER (\\GETBASEBYTE BUF I))))))
(FOON
(LAMBDA (INFO) (* \; "Edited 4-Apr-90 17:35 by jds") (LET ((RES (CL:MULTIPLE-VALUE-LIST (UDP-RECV (CADDR INFO))))) (AND (CADR RES) (SETQ RESULT RES))))
)
)
)
(PUTPROPS TCPOPS COPYRIGHT ("Savoir, Inc." 1989 1990))
(DECLARE\: DONTCOPY
(FILEMAP (NIL (1081 8055 (\\TCP-DEV-INIT 1091 . 1918) (\\TCP-OPENFILE 1920 . 3557) (\\TCP-FORCEOUTPUT
3559 . 5060) (\\TCP-GETNEXTBUFFER 5062 . 6672) (\\TCP-EOFP 6674 . 6989) (\\TCP-CLOSEFILE 6991 . 7259)
(\\TCP-EVENTFN 7261 . 7927) (\\TCP.BUFFERED.BOUTS 7929 . 8053)) (8119 11214 (TCP 8129 . 8411) (
OPENTCPSTREAM 8413 . 9441) (TCP-ACCEPT 9443 . 10604) (TCP-LISTEN 10606 . 10889) (TCP-CLOSE 10891 .
11212)) (11215 12328 (UDP-LISTEN 11225 . 11649) (UDP-SEND 11651 . 11742) (UDP-RECV 11744 . 12326)) (
12329 13743 (GETHOSTFROMNAME 12339 . 12608) (GETHOSTFROMADDR 12610 . 12909) (GETHOSTFROMSOCKET 12911
. 13452) (GETHOSTNAME 13454 . 13741)) (13851 14580 (TCPRECV 13861 . 14149) (TCPSEND 14151 . 14306) (
SEEBUFFER 14308 . 14412) (FOON 14414 . 14578)))))
STOP

1
obsolete/tcp/TCPTFTP Normal file

File diff suppressed because one or more lines are too long

1
obsolete/tcp/TCPUDP Normal file

File diff suppressed because one or more lines are too long

View File

@@ -113,7 +113,9 @@ while [ "$#" -ne 0 ]; do
shift
;;
-title)
title="$2"
if [ -n "$2" ] ; then
title="$2"
fi
shift
;;
-vmem | --vmem | -vmfile)

View File

@@ -22,6 +22,10 @@ fi
./scripts/cpv "${LOADUP_WORKDIR}"/lisp.dribble "${LOADUP_OUTDIR}" | sed -e "s#${MEDLEYDIR}/##g"
./scripts/cpv "${LOADUP_WORKDIR}"/full.dribble "${LOADUP_OUTDIR}" | sed -e "s#${MEDLEYDIR}/##g"
./scripts/cpv "${LOADUP_WORKDIR}"/whereis.dribble "${LOADUP_OUTDIR}" | sed -e "s#${MEDLEYDIR}/##g"
if [ "${1}" = "-apps" ]; then
./scripts/cpv "${LOADUP_WORKDIR}"/apps.dribble "${LOADUP_OUTDIR}" | sed -e "s#${MEDLEYDIR}/##g"
fi
./scripts/cpv "${LOADUP_WORKDIR}"/RDSYS library | sed -e "s#${MEDLEYDIR}/##g"
./scripts/cpv "${LOADUP_WORKDIR}"/RDSYS.LCOM library | sed -e "s#${MEDLEYDIR}/##g"

24
scripts/copy-full.sh Executable file
View File

@@ -0,0 +1,24 @@
#!/bin/sh
if [ ! -x run-medley ] ; then
echo run from MEDLEYDIR
exit 1
fi
. scripts/loadup-setup.sh
echo ">>>>> START ${script_name}"
./scripts/cpv "${LOADUP_WORKDIR}"/full.sysout "${LOADUP_OUTDIR}" | sed -e "s#${MEDLEYDIR}/##g"
./scripts/cpv "${LOADUP_WORKDIR}"/lisp.sysout "${LOADUP_OUTDIR}" | sed -e "s#${MEDLEYDIR}/##g"
./scripts/cpv "${LOADUP_WORKDIR}"/init.dribble "${LOADUP_OUTDIR}" | sed -e "s#${MEDLEYDIR}/##g"
./scripts/cpv "${LOADUP_WORKDIR}"/lisp.dribble "${LOADUP_OUTDIR}" | sed -e "s#${MEDLEYDIR}/##g"
./scripts/cpv "${LOADUP_WORKDIR}"/full.dribble "${LOADUP_OUTDIR}" | sed -e "s#${MEDLEYDIR}/##g"
./scripts/cpv "${LOADUP_WORKDIR}"/RDSYS library | sed -e "s#${MEDLEYDIR}/##g"
./scripts/cpv "${LOADUP_WORKDIR}"/RDSYS.LCOM library | sed -e "s#${MEDLEYDIR}/##g"
echo "<<<<< END ${script_name}"
echo ""
exit 0

View File

@@ -28,8 +28,9 @@ cat >"${cmfile}" <<"EOF"
(PROGN
(IL:MEDLEY-INIT-VARS 'IL:GREET)
(IL:LOAD (IL:CONCAT (QUOTE {DSK}) (IL:UNIX-GETENV(QUOTE NOTECARDSDIR))(QUOTE |/system/NOTECARDS.LCOM|)) 'IL:SYSLOAD)
(IL:DRIBBLE (IL:CONCAT (QUOTE {DSK})(IL:UNIX-GETENV(QUOTE LOADUP_WORKDIR))(IL:L-CASE (QUOTE /apps.dribble))))
(IL:LOAD (IL:CONCAT (QUOTE {DSK}) (IL:UNIX-GETENV(QUOTE ROOMSDIR))(QUOTE /ROOMS)) 'IL:SYSLOAD)
(IL:LOAD (IL:CONCAT (QUOTE {DSK}) (IL:UNIX-GETENV(QUOTE NOTECARDSDIR))(QUOTE |/system/NOTECARDS.LCOM|)) 'IL:SYSLOAD)
(IL:LOAD (IL:CONCAT (QUOTE {DSK}) (IL:UNIX-GETENV(QUOTE CLOSDIR))(QUOTE /DEFSYS.DFASL)) 'IL:SYSLOAD)
(IL:LOAD (IL:CONCAT (QUOTE {DSK}) (IL:UNIX-GETENV(QUOTE MEDLEYDIR))(QUOTE |lispusers/BUTTONS.LCOM|)) 'IL:SYSLOAD)
(IL:LOAD
@@ -43,6 +44,7 @@ SHH
(IL:ENDLOADUP)
(CLOS::LOAD-CLOS)
(IL:|Apps.LOADUP|)
(IL:DRIBBLE)
(IL:MAKESYS
(IL:CONCAT (QUOTE {DSK})(IL:UNIX-GETENV(QUOTE LOADUP_WORKDIR))(IL:L-CASE (QUOTE /apps.sysout)))
:APPS)

View File

@@ -10,5 +10,14 @@ fi
./scripts/loadup-init.sh && \
./scripts/loadup-mid-from-init.sh && \
./scripts/loadup-lisp-from-mid.sh && \
./scripts/loadup-full-from-lisp.sh
./scripts/loadup-full-from-lisp.sh && \
./scripts/copy-full.sh
if [ $? -eq 0 ];
then
echo "+++++ loadup-full.sh: SUCCESS +++++"
else
echo "----- loadup-full.sh: FAILURE -----"
fi

View File

@@ -1,3 +1,3 @@
@echo off
powershell medley.ps1 %*
@echo off
powershell medley.ps1 %*

View File

@@ -57,8 +57,7 @@ export MEDLEYDIR=$(cd ${SCRIPTDIR}; cd ../..; pwd)
IL_DIR=$(cd ${MEDLEYDIR}; cd ..; pwd)
export LOGINDIR=${HOME}/il
# Are we running under Docker or if not under WSL
# or under Darwin?
# Are we running under Docker or WSL or Darwin or Cygwin?
#
docker=false
wsl=false
@@ -70,7 +69,8 @@ then
elif [ -n "${MEDLEY_DOCKER_BUILD_DATE}" ];
then
docker='true'
else
elif [ $(uname -s | head --bytes 6) != "CYGWIN" ];
then
wsl_ver=0
# WSL2
grep --ignore-case --quiet wsl /proc/sys/kernel/osrelease
@@ -93,8 +93,6 @@ else
echo "Exiting"
exit 23
fi
else
wsl='false'
fi
fi
fi
@@ -141,7 +139,7 @@ mkdir -p ${LOGINDIR}/vmem
if [[ ( ${darwin} = true ) || (( ${wsl} = false || ${use_vnc} = false ) && ${docker} = false) ]];
then
# If not using vnc, just call run-medley
${MEDLEYDIR}/run-medley -id "${run_id}" ${geometry} ${screensize} ${run_args[@]}
${MEDLEYDIR}/run-medley -id "${run_id}" -title "${title}" ${geometry} ${screensize} ${run_args[@]}
else
# do the vnc thing on wsl or docker
source ${SCRIPTDIR}/medley_vnc.sh

View File

@@ -28,6 +28,7 @@ run_id="default"
screensize=""
sysout_flag=false
sysout_arg=""
title="Medley Interlisp"
use_vnc=false
windows=false
@@ -112,7 +113,7 @@ do
;;
-t | --title)
check_for_dash_or_end "$1" "$2"
run_args+=(-title $2)
if [ -n "$2" ]; then title="$2"; fi
shift
;;
-v | --vnc)

View File

@@ -97,7 +97,7 @@ check_file_readable() {
check_dir_writeable_or_creatable() {
local msg_core="\"$2\" given as the value of the \"$1\" flag"
if [[ -e "$%2" ]];
if [[ -e "$2" ]];
then
if [[ ! -d "$2" ]];
then

View File

@@ -164,6 +164,7 @@
-SecurityTypes None \
-NeverShared \
-DisconnectClients=0 \
-desktop "${title}" \
--MaxDisconnectionTime=10 \
>> ${LOG} 2>&1 &

View File

@@ -1,13 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "11-May-2023 21:39:25" {DSK}<cygdrive>c>Users>Larry>home>il>MEDLEY>SOURCES>ADIR.;2 65907
(FILECREATED "14-Sep-2023 23:20:17" {WMEDLEY}<sources>ADIR.;30 67297
:EDIT-BY "lmm"
:EDIT-BY rmk
:CHANGES-TO (FNS OPENFILE)
:CHANGES-TO (FNS \COPYSYS)
:PREVIOUS-DATE "31-Oct-2022 23:50:03"
{DSK}<cygdrive>c>Users>Larry>home>il>MEDLEY>SOURCES>ADIR.;1)
:PREVIOUS-DATE "14-Sep-2023 22:56:19" {WMEDLEY}<sources>ADIR.;29)
(PRETTYCOMPRINT ADIRCOMS)
@@ -79,16 +78,18 @@
(\GETFILENAME X RECOG])
(INFILE
[LAMBDA (FILE) (* rmk%: " 3-OCT-79 14:23")
(INPUT (OPENFILE FILE 'INPUT 'OLD])
[LAMBDA (FILE) (* ; "Edited 14-Sep-2023 22:40 by rmk")
(* rmk%: " 3-OCT-79 14:23")
(INPUT (OPENSTREAM FILE 'INPUT 'OLD])
(INFILEP
[LAMBDA (FILE) (* rmk%: " 9-OCT-79 22:39")
(\GETFILENAME FILE 'OLD])
(IOFILE
[LAMBDA (FILE) (* rmk%: " 5-SEP-81 13:54")
(OPENFILE FILE 'BOTH 'OLD])
[LAMBDA (FILE) (* ; "Edited 14-Sep-2023 22:56 by rmk")
(* rmk%: " 5-SEP-81 13:54")
(OPENSTREAM FILE 'BOTH 'OLD])
(OPENFILE
[LAMBDA (FILE ACCESS RECOG PARAMETERS OPTIONAL) (* ; "Edited 11-May-2023 21:05 by lmm")
@@ -167,8 +168,9 @@
(RETURN STREAM])
(OUTFILE
[LAMBDA (FILE) (* rmk%: " 3-OCT-79 14:24")
(OUTPUT (OPENFILE FILE 'OUTPUT 'NEW])
[LAMBDA (FILE) (* ; "Edited 13-Sep-2023 17:59 by rmk")
(* rmk%: " 3-OCT-79 14:24")
(OUTPUT (OPENSTREAM FILE 'OUTPUT 'NEW])
(OUTFILEP
[LAMBDA (FILE) (* rmk%: " 9-OCT-79 22:39")
@@ -195,50 +197,69 @@
(fetch (IFPAGE NActivePages) of \InterfacePage])
(\COPYSYS
[LAMBDA (FILE SYSNAME DONTSAVE) (* ; "Edited 31-Oct-2022 23:49 by rmk")
[LAMBDA (FILE SYSNAME DONTSAVE) (* ; "Edited 14-Sep-2023 23:19 by rmk")
(* ; "Edited 3-Jul-2023 19:21 by rmk")
(* ; "Edited 1-Jul-2023 12:34 by rmk")
(* ; "Edited 29-Jun-2023 11:41 by rmk")
(* ; "Edited 31-Oct-2022 23:49 by rmk")
(* ; "Edited 16-Mar-2021 19:46 by larry")
(PROG (FULLNAME VAL TFILE THOST)
(PROG (TEMPNAME VAL TARGETFILE TARGETHOST PSEUDOHOSTP)
RETRY
(SETQ FILE (PACKFILENAME.STRING 'BODY FILE 'BODY "WORK.SYSOUT" 'BODY \CONNECTED.DIRECTORY))
(SETQ TFILE (TRUEFILENAME FILE))
[SELECTQ [SETQ THOST (U-CASE (FILENAMEFIELD TFILE 'HOST]
(DSK [SETQ FULLNAME (PACKFILENAME.STRING 'HOST THOST 'NAME 'tmp 'EXTENSION 'SYSOUT
(* ;; "RMK: Get the full target name, including version in particular for DSK, at the outset so we know what the RENAMEFILE will do and we can return that value.")
(* ;; "We try to make the temp file on the same device, so that the RENAMEFILE (hopefully) won't do a copy. ")
(* ;; "The reason for all this fooling around is because \FLUSHVM doesn't like version numbers.")
(* ;; "")
(* ;; "Perhaps we should also check the value of RENAMEFILE to make sure it succeeded?")
(SETQ FILE (OUTFILEP (PACKFILENAME.STRING 'BODY FILE 'BODY "WORK.SYSOUT" 'BODY
\CONNECTED.DIRECTORY)))
(SETQ PSEUDOHOSTP (PSEUDOHOSTP FILE)) (* ;
 "In order to return the expected name at the end.")
(SETQ TARGETFILE (TRUEFILENAME FILE))
[SELECTQ [SETQ TARGETHOST (U-CASE (FILENAMEFIELD TARGETFILE 'HOST]
(DSK [SETQ TEMPNAME (PACKFILENAME.STRING 'HOST TARGETHOST 'NAME 'tmp 'EXTENSION
'SYSOUT
'BODY
(\UFS.RECOGNIZE.FILE TFILE 'NON (\GETDEVICEFROMNAME THOST]
(SETQ VAL (\FLUSHVM FULLNAME))
(SETQ FULLNAME (RENAMEFILE FULLNAME FILE)))
(UNIX [SETQ FULLNAME (CONCAT "{" THOST "}" (\UFS.RECOGNIZE.FILE TFILE 'NON (
\GETDEVICEFROMNAME
THOST]
(\UFS.RECOGNIZE.FILE TARGETFILE 'NON (\GETDEVICEFROMNAME
TARGETHOST]
(SETQ VAL (\FLUSHVM TEMPNAME)))
(UNIX [SETQ TEMPNAME (CONCAT "{" TARGETHOST "}" (\UFS.RECOGNIZE.FILE TARGETFILE
'NON
(\GETDEVICEFROMNAME TARGETHOST]
(* ; "\DOFLUSHVM ")
(SETQ VAL (\FLUSHVM FULLNAME))
(SETQ FULLNAME (RENAMEFILE FULLNAME FILE)))
(SETQ VAL (\FLUSHVM TEMPNAME)))
(PROGN (SETQ VAL (\FLUSHVM))
(LET ((UNIXVAR (UNIX-GETENV "LDEDESTSYSOUT")))
(LET ((LDEDEST (UNIX-GETENV "LDEDESTSYSOUT")))
(* ;
 "\FLSUVM saves image to Unix enviroment var or lisp.virtualmem")
(SETQ FULLNAME (COPYFILE (COND
(UNIXVAR (CONCAT "{DSK}" UNIXVAR))
 "\FLUSHVM saves image to Unix enviroment var or lisp.virtualmem. LDEDEST is assumed to be DSK??")
(SETQ TEMPNAME (COPYFILE (COND
(LDEDEST (CONCAT "{DSK}" LDEDEST))
(T "{DSK}~/lisp.virtualmem"))
FILE
TARGETFILE
'((TYPE BINARY]
(COND
((NULL VAL)
(* ;; "First clause of OR is T when resuming this vmem; second is starting the sysout. Unless \COPYSYS1 itself does a \FLUSHVM, the second never returns T, yes? NIL is normal return (continuing in same image), <fixp> is error return")
(* ; "Continuing in the current image")
((NULL VAL) (* ; "Continuing in the current image")
(CL:WHEN TARGETFILE (RENAMEFILE TEMPNAME TARGETFILE))
(\DAYTIME0 \LASTUSERACTION)
(RETURN FULLNAME))
(RETURN (CL:IF PSEUDOHOSTP
(PSEUDOFILENAME TARGETFILE)
TARGETFILE)))
((AND (SMALLP VAL)
(IGREATERP 0 VAL)) (* ;
 "Error occurred while making sysout.")
(LISPERROR (IMINUS VAL)
FULLNAME)
TEMPNAME)
(GO RETRY))
(T (* ; "Starting sysout")
(T (* ; "Restarting sysout")
(\CLEARSYSBUF T) (* ; "Get rid of any spurious typeahead")
(\RESETKEYBOARD) (* ; "Enable keyhandler")
(RETURN (LIST FULLNAME])
(RETURN (LIST (OR FILE TEMPNAME])
(\FLUSHVM
[LAMBDA (MAIKO.SYSOUTFILE) (* ; "Edited 16-Mar-2021 10:59 by larry")
@@ -1229,14 +1250,14 @@
(ADDTOVAR LAMA PACKFILENAME.STRING PACKFILENAME)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (3175 14373 (DELFILE 3185 . 3346) (FULLNAME 3348 . 3715) (INFILE 3717 . 3865) (INFILEP
3867 . 4002) (IOFILE 4004 . 4144) (OPENFILE 4146 . 4449) (OPENSTREAM 4451 . 8791) (OUTFILE 8793 . 8944
) (OUTFILEP 8946 . 9082) (RENAMEFILE 9084 . 9390) (SIMPLE.FINDFILE 9392 . 9802) (VMEMSIZE 9804 . 9971)
(\COPYSYS 9973 . 13092) (\FLUSHVM 13094 . 14166) (\LOGOUT0 14168 . 14371)) (14831 36736 (
UNPACKFILENAME.STRING 14841 . 34115) (\UPF.DIRECTORY 34117 . 36734)) (38264 40936 (UNPACKFILENAME
38274 . 38460) (LASTCHPOS 38462 . 39156) (FILENAMEFIELD 39158 . 39643) (FILENAMEFIELD.STRING 39645 .
40224) (PACKFILENAME 40226 . 40569) (PACKFILENAME.STRING 40571 . 40934)) (55406 56319 (
FILEDIRCASEARRAY 55416 . 56317)) (56486 63666 (LOGOUT 56496 . 57413) (MAKESYS 57415 . 59044) (SYSOUT
59046 . 60598) (SAVEVM 60600 . 61400) (HERALD 61402 . 61562) (INTERPRET.REM.CM 61564 . 63289) (
\USEREVENT 63291 . 63664)) (63848 65575 (USERNAME 63858 . 64814) (SETUSERNAME 64816 . 65573)))))
(FILEMAP (NIL (3106 15763 (DELFILE 3116 . 3277) (FULLNAME 3279 . 3646) (INFILE 3648 . 3907) (INFILEP
3909 . 4044) (IOFILE 4046 . 4297) (OPENFILE 4299 . 4602) (OPENSTREAM 4604 . 8944) (OUTFILE 8946 . 9208
) (OUTFILEP 9210 . 9346) (RENAMEFILE 9348 . 9654) (SIMPLE.FINDFILE 9656 . 10066) (VMEMSIZE 10068 .
10235) (\COPYSYS 10237 . 14482) (\FLUSHVM 14484 . 15556) (\LOGOUT0 15558 . 15761)) (16221 38126 (
UNPACKFILENAME.STRING 16231 . 35505) (\UPF.DIRECTORY 35507 . 38124)) (39654 42326 (UNPACKFILENAME
39664 . 39850) (LASTCHPOS 39852 . 40546) (FILENAMEFIELD 40548 . 41033) (FILENAMEFIELD.STRING 41035 .
41614) (PACKFILENAME 41616 . 41959) (PACKFILENAME.STRING 41961 . 42324)) (56796 57709 (
FILEDIRCASEARRAY 56806 . 57707)) (57876 65056 (LOGOUT 57886 . 58803) (MAKESYS 58805 . 60434) (SYSOUT
60436 . 61988) (SAVEVM 61990 . 62790) (HERALD 62792 . 62952) (INTERPRET.REM.CM 62954 . 64679) (
\USEREVENT 64681 . 65054)) (65238 66965 (USERNAME 65248 . 66204) (SETUSERNAME 66206 . 66963)))))
STOP

Binary file not shown.

View File

@@ -1,20 +1,48 @@
(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")
(FILECREATED " 2-Jul-90 20:24:02" |{PELE:MV:ENVOS}<LISPCORE>SOURCES>CMLCOMPILE.;7| 21037
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
changes to%: (FNS COMPILE-FILE-EXPRESSION FAKE-COMPILE-FILE COMPILE-FILE-SCAN-FIRST)
(FILECREATED "24-Sep-2023 14:11:25" {WMEDLEY}<sources>CMLCOMPILE.;2 22597
previous date%: "30-Jun-90 18:55:12" |{PELE:MV:ENVOS}<LISPCORE>SOURCES>CMLCOMPILE.;6|)
:EDIT-BY rmk
:CHANGES-TO (FNS COMPILE-IN-CORE)
:PREVIOUS-DATE " 2-Jul-90 20:24:02" {WMEDLEY}<sources>CMLCOMPILE.;1)
(* ; "
Copyright (c) 1985, 1986, 1987, 1990 by Venue & Xerox Corporation. All rights reserved.
Copyright (c) 1985-1987, 1990 by Venue & Xerox Corporation.
")
(PRETTYCOMPRINT CMLCOMPILECOMS)
(RPAQQ CMLCOMPILECOMS ((COMS (FUNCTIONS CL:DISASSEMBLE) (FNS FAKE-COMPILE-FILE INTERLISP-FORMAT-P INTERLISP-NLAMBDA-FUNCTION-P COMPILE-FILE-EXPRESSION COMPILE-FILE-WALK-FUNCTION ARGTYPE.STATE COMPILE.CHECK.ARGTYPE COMPILE.FILE.DEFINEQ COMPILE-FILE-SETF-SYMBOL-FUNCTION COMPILE-FILE-EX/IMPORT COMPILE.FILE.APPLY COMPILE.FILE.RESET COMPILE-IN-CORE) (FNS COMPILE-FILE-SCAN-FIRST) (* ; "This function is support for AR#11185") (VARS ARGTYPE.VARS) (PROP COMPILE-FILE-EXPRESSION DEFINEQ * SETF-SYMBOL-FUNCTION PRETTYCOMPRINT) (FUNCTIONS COMPILE-FILE-DECLARE%:)) (COMS (FNS NEWDEFC) (DECLARE%: DONTEVAL@LOAD DOCOPY (P (MOVD (QUOTE NEWDEFC) (QUOTE DEFC))))) (PROP FILETYPE CMLCOMPILE) (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML) (LAMA FAKE-COMPILE-FILE)))))
(RPAQQ CMLCOMPILECOMS
[(COMS (FUNCTIONS CL:DISASSEMBLE)
(FNS FAKE-COMPILE-FILE INTERLISP-FORMAT-P INTERLISP-NLAMBDA-FUNCTION-P
COMPILE-FILE-EXPRESSION COMPILE-FILE-WALK-FUNCTION ARGTYPE.STATE
COMPILE.CHECK.ARGTYPE COMPILE.FILE.DEFINEQ COMPILE-FILE-SETF-SYMBOL-FUNCTION
COMPILE-FILE-EX/IMPORT COMPILE.FILE.APPLY COMPILE.FILE.RESET COMPILE-IN-CORE)
(FNS COMPILE-FILE-SCAN-FIRST)
(* ;
 "This function is support for AR#11185")
(VARS ARGTYPE.VARS)
(PROP COMPILE-FILE-EXPRESSION DEFINEQ * SETF-SYMBOL-FUNCTION PRETTYCOMPRINT)
(FUNCTIONS COMPILE-FILE-DECLARE%:))
[COMS (FNS NEWDEFC)
(DECLARE%: DONTEVAL@LOAD DOCOPY (P (MOVD 'NEWDEFC 'DEFC]
(PROP FILETYPE CMLCOMPILE)
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA)
(NLAML)
(LAMA FAKE-COMPILE-FILE])
(CL:DEFUN CL:DISASSEMBLE (NAME-OR-COMPILED-FUNCTION &KEY LEVEL-P (RADIX 8) (OUTPUT *STANDARD-OUTPUT*) FIRST-BYTE MARKED-PC) (PRINTCODE (if (CCODEP NAME-OR-COMPILED-FUNCTION) then NAME-OR-COMPILED-FUNCTION else (CL:COMPILE NIL (if (CL:SYMBOLP NAME-OR-COMPILED-FUNCTION) then (CL:SYMBOL-FUNCTION NAME-OR-COMPILED-FUNCTION) else NAME-OR-COMPILED-FUNCTION))) LEVEL-P RADIX OUTPUT FIRST-BYTE MARKED-PC))
(CL:DEFUN CL:DISASSEMBLE (NAME-OR-COMPILED-FUNCTION &KEY LEVEL-P (RADIX 8)
(OUTPUT *STANDARD-OUTPUT*)
FIRST-BYTE MARKED-PC)
(PRINTCODE (if (CCODEP NAME-OR-COMPILED-FUNCTION)
then NAME-OR-COMPILED-FUNCTION
else (CL:COMPILE NIL (if (CL:SYMBOLP NAME-OR-COMPILED-FUNCTION)
then (CL:SYMBOL-FUNCTION NAME-OR-COMPILED-FUNCTION)
else NAME-OR-COMPILED-FUNCTION)))
LEVEL-P RADIX OUTPUT FIRST-BYTE MARKED-PC))
(DEFINEQ
(FAKE-COMPILE-FILE
@@ -132,18 +160,24 @@ Copyright (c) 1985, 1986, 1987, 1990 by Venue & Xerox Corporation. All rights r
(COMPILE-IN-CORE
[LAMBDA (fn-name fn-expr fn-type NOSAVE)
(DECLARE (SPECVARS LCFIL LAPFLG STRF SVFLG LSTFIL SPECVARS LOCALVARS DONT-TRANSFER-PUTD))
(* ; "Edited 24-Sep-2023 14:11 by rmk")
(* lmm " 2-Jun-86 22:04")
(* ;; "in-core compiling for functions and forms, without the interview. if X is a list, we assume that we are being called merely to display the lap and machine code. the form is compiled as the definition of FOO but the compiled CODE is thrown away. --- if X is a litatom, then saving, redefining, and printing is controlled by the flags.")
(* in-core compiling for functions and forms, without the interview.
 if X is a list, we assume that we are being called merely to display the lap
 and machine code. the form is compiled as the definition of FOO but the
 compiled :CODE is thrown away. -
 if X is a litatom, then saving, redefining, and printing is controlled by the
 flags.)
 if X is a list, we assume that we are being called merely to display the lap and
 machine code. the form is compiled as the definition of FOO but the compiled
 :CODE is thrown away. -
 if X is a litatom, then saving, redefining, and printing is controlled by the
 flags.)
(LET ((NOREDEFINE NIL)
(PRINTLAP NIL)
(DONT-TRANSFER-PUTD T))
(* ;; "RMK: Is it really worth saving NULLFILE from one invocation to the next?")
(RESETVARS [(NLAMA NLAMA)
(NLAML NLAML)
(LAMS LAMS)
@@ -155,10 +189,9 @@ Copyright (c) 1985, 1986, 1987, 1990 by Venue & Xerox Corporation. All rights r
(STREAMP NULLFILE)
(OPENP NULLFILE))
NULLFILE)
(T (SETQ NULLFILE (OPENFILE '{NULL} 'OUTPUT]
(RETURN (RESETLST (* RESETLST to provide reset context
 for macros under COMPILE1 as
 generated e.g. by DECL.)
(T (SETQ NULLFILE (OPENSTREAM '{NULL} 'OUTPUT]
(RETURN (RESETLST (* ;
 "RESETLST to provide reset context for macros under COMPILE1 as generated e.g. by DECL.")
[PROG ((LCFIL)
[LAPFLG (AND PRINTLAP (COND
(BYTECOMPFLG T)
@@ -186,17 +219,46 @@ Copyright (c) 1985, 1986, 1987, 1990 by Venue & Xerox Corporation. All rights r
(* ; "This function is support for AR#11185")
(RPAQQ ARGTYPE.VARS ((1 NLAML "NLAMBDA spread") (2 LAMA "LAMBDA nospread") (0 LAMS "LAMBDA spread") (3 NLAMA "NLAMBDA no-spread")))
(RPAQQ ARGTYPE.VARS ((1 NLAML "NLAMBDA spread")
(2 LAMA "LAMBDA nospread")
(0 LAMS "LAMBDA spread")
(3 NLAMA "NLAMBDA no-spread")))
(PUTPROPS DEFINEQ COMPILE-FILE-EXPRESSION COMPILE.FILE.DEFINEQ)
(PUTPROPS DEFINEQ COMPILE-FILE-EXPRESSION COMPILE.FILE.DEFINEQ)
(PUTPROPS * COMPILE-FILE-EXPRESSION NILL)
(PUTPROPS * COMPILE-FILE-EXPRESSION NILL)
(PUTPROPS SETF-SYMBOL-FUNCTION COMPILE-FILE-EXPRESSION COMPILE-FILE-SETF-SYMBOL-FUNCTION)
(PUTPROPS SETF-SYMBOL-FUNCTION COMPILE-FILE-EXPRESSION COMPILE-FILE-SETF-SYMBOL-FUNCTION)
(PUTPROPS PRETTYCOMPRINT COMPILE-FILE-EXPRESSION NILL)
(PUTPROPS PRETTYCOMPRINT COMPILE-FILE-EXPRESSION NILL)
(CL:DEFUN COMPILE-FILE-DECLARE%: (FORM COMPILED.FILE EVAL@COMPILE DOCOPY DEFER) (CL:DO ((TAIL (CDR FORM) (CDR TAIL))) ((CL:ENDP TAIL)) (CL:IF (CL:SYMBOLP (CAR TAIL)) (CASE (CAR TAIL) ((EVAL@LOAD DOEVAL@LOAD DONTEVAL@LOAD) NIL) ((EVAL@LOADWHEN) (CL:POP TAIL)) ((EVAL@COMPILE DOEVAL@COMPILE) (SETQ EVAL@COMPILE T)) ((DONTEVAL@COMPILE) (SETQ EVAL@COMPILE NIL)) ((EVAL@COMPILEWHEN) (SETQ EVAL@COMPILE (EVAL (CAR (SETQ TAIL (CDR TAIL)))))) ((COPY DOCOPY) (SETQ DOCOPY T)) ((DONTCOPY) (SETQ DOCOPY NIL)) ((COPYWHEN) (SETQ DOCOPY (EVAL (CAR (SETQ TAIL (CDR TAIL)))))) ((FIRST)) ((NOTFIRST COMPILERVARS)) (CL:OTHERWISE (CL:FORMAT COUTFILE "Warning: Ignoring unrecognized DECLARE: tag: ~S~%%" (CAR TAIL)))) (COND ((EQ (QUOTE DECLARE%:) (CAR (CAR TAIL))) (COMPILE-FILE-DECLARE%: (CAR TAIL) COMPILED.FILE EVAL@COMPILE DOCOPY DEFER)) (T (CL:WHEN EVAL@COMPILE (EVAL (CAR TAIL))) (CL:WHEN DOCOPY (COMPILE-FILE-EXPRESSION (CAR TAIL) COMPILED.FILE EVAL@COMPILE DEFER)))))))
(CL:DEFUN COMPILE-FILE-DECLARE%: (FORM COMPILED.FILE EVAL@COMPILE DOCOPY DEFER)
(CL:DO ((TAIL (CDR FORM)
(CDR TAIL)))
((CL:ENDP TAIL))
(CL:IF (CL:SYMBOLP (CAR TAIL))
(CASE (CAR TAIL)
((EVAL@LOAD DOEVAL@LOAD DONTEVAL@LOAD) NIL)
((EVAL@LOADWHEN) (CL:POP TAIL))
((EVAL@COMPILE DOEVAL@COMPILE) (SETQ EVAL@COMPILE T))
((DONTEVAL@COMPILE) (SETQ EVAL@COMPILE NIL))
((EVAL@COMPILEWHEN) [SETQ EVAL@COMPILE (EVAL (CAR (SETQ TAIL (CDR TAIL])
((COPY DOCOPY) (SETQ DOCOPY T))
((DONTCOPY) (SETQ DOCOPY NIL))
((COPYWHEN) [SETQ DOCOPY (EVAL (CAR (SETQ TAIL (CDR TAIL])
((FIRST) )
((NOTFIRST COMPILERVARS) )
(CL:OTHERWISE (CL:FORMAT COUTFILE "Warning: Ignoring unrecognized DECLARE: tag: ~S~%%"
(CAR TAIL))))
[COND
((EQ 'DECLARE%: (CAR (CAR TAIL)))
(COMPILE-FILE-DECLARE%: (CAR TAIL)
COMPILED.FILE EVAL@COMPILE DOCOPY DEFER))
(T (CL:WHEN EVAL@COMPILE
(EVAL (CAR TAIL)))
(CL:WHEN DOCOPY
(COMPILE-FILE-EXPRESSION (CAR TAIL)
COMPILED.FILE EVAL@COMPILE DEFER))])))
(DEFINEQ
(NEWDEFC
@@ -228,25 +290,26 @@ Copyright (c) 1985, 1986, 1987, 1990 by Venue & Xerox Corporation. All rights r
)
(DECLARE%: DONTEVAL@LOAD DOCOPY
(MOVD (QUOTE NEWDEFC) (QUOTE DEFC))
(MOVD 'NEWDEFC 'DEFC)
)
(PUTPROPS CMLCOMPILE FILETYPE CL:COMPILE-FILE)
(PUTPROPS CMLCOMPILE FILETYPE CL:COMPILE-FILE)
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS
(ADDTOVAR NLAMA)
(ADDTOVAR NLAMA )
(ADDTOVAR NLAML)
(ADDTOVAR NLAML )
(ADDTOVAR LAMA FAKE-COMPILE-FILE)
(ADDTOVAR LAMA FAKE-COMPILE-FILE)
)
(PUTPROPS CMLCOMPILE COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1987 1990))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1675 16480 (FAKE-COMPILE-FILE 1685 . 5121) (INTERLISP-FORMAT-P 5123 . 5341) (
INTERLISP-NLAMBDA-FUNCTION-P 5343 . 5577) (COMPILE-FILE-EXPRESSION 5579 . 8929) (
COMPILE-FILE-WALK-FUNCTION 8931 . 9178) (ARGTYPE.STATE 9180 . 9340) (COMPILE.CHECK.ARGTYPE 9342 .
11334) (COMPILE.FILE.DEFINEQ 11336 . 11829) (COMPILE-FILE-SETF-SYMBOL-FUNCTION 11831 . 12425) (
COMPILE-FILE-EX/IMPORT 12427 . 12755) (COMPILE.FILE.APPLY 12757 . 13017) (COMPILE.FILE.RESET 13019 .
13880) (COMPILE-IN-CORE 13882 . 16478)) (16481 18210 (COMPILE-FILE-SCAN-FIRST 16491 . 18208)) (19612
20676 (NEWDEFC 19622 . 20674)))))
(FILEMAP (NIL (1636 2253 (CL:DISASSEMBLE 1636 . 2253)) (2254 17523 (FAKE-COMPILE-FILE 2264 . 5700) (
INTERLISP-FORMAT-P 5702 . 5920) (INTERLISP-NLAMBDA-FUNCTION-P 5922 . 6156) (COMPILE-FILE-EXPRESSION
6158 . 9508) (COMPILE-FILE-WALK-FUNCTION 9510 . 9757) (ARGTYPE.STATE 9759 . 9919) (
COMPILE.CHECK.ARGTYPE 9921 . 11913) (COMPILE.FILE.DEFINEQ 11915 . 12408) (
COMPILE-FILE-SETF-SYMBOL-FUNCTION 12410 . 13004) (COMPILE-FILE-EX/IMPORT 13006 . 13334) (
COMPILE.FILE.APPLY 13336 . 13596) (COMPILE.FILE.RESET 13598 . 14459) (COMPILE-IN-CORE 14461 . 17521))
(17524 19253 (COMPILE-FILE-SCAN-FIRST 17534 . 19251)) (19796 21163 (COMPILE-FILE-DECLARE%: 19796 .
21163)) (21164 22228 (NEWDEFC 21174 . 22226)))))
STOP

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More