Compare commits
62 Commits
medley-230
...
medley-231
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
328d3f53cd | ||
|
|
5b90251210 | ||
|
|
713f2388c7 | ||
|
|
f49729cbd3 | ||
|
|
bdf03e08a1 | ||
|
|
b19cfd5bbb | ||
|
|
e2d8c9e5ad | ||
|
|
2ea1321d81 | ||
|
|
9054814ef7 | ||
|
|
84dead86af | ||
|
|
5e83d63567 | ||
|
|
bcfeda62e1 | ||
|
|
45513f563b | ||
|
|
db084c6281 | ||
|
|
6c53acaca8 | ||
|
|
fbb5a8f6f5 | ||
|
|
cb8eab788a | ||
|
|
50dc0a9269 | ||
|
|
9273cffce2 | ||
|
|
df8c5a52f1 | ||
|
|
a219ea03e5 | ||
|
|
2072deb6ae | ||
|
|
f6c91ee11c | ||
|
|
adc27d9684 | ||
|
|
d92aa6395a | ||
|
|
f1833861cc | ||
|
|
270fee89e3 | ||
|
|
cba04e168c | ||
|
|
1e847ec274 | ||
|
|
f765676ec4 | ||
|
|
17c72a1f2f | ||
|
|
995c6de04e | ||
|
|
877c6fbf17 | ||
|
|
97b19f1b96 | ||
|
|
948b0e09d1 | ||
|
|
de4e5f5ca4 | ||
|
|
af912247b3 | ||
|
|
ebb5c739ea | ||
|
|
1bed018db8 | ||
|
|
8a8e6fa4dc | ||
|
|
bf2e34841b | ||
|
|
9ed6448591 | ||
|
|
445de6745d | ||
|
|
68ed78a9f9 | ||
|
|
1ae08139c9 | ||
|
|
bb4e230df4 | ||
|
|
02665ca91b | ||
|
|
b819e18c64 | ||
|
|
781709e4e1 | ||
|
|
b772b8383c | ||
|
|
9b4c4a3bf7 | ||
|
|
51d554c67e | ||
|
|
ca39ccf27b | ||
|
|
e1cd9260b4 | ||
|
|
b0aa518a41 | ||
|
|
9e0bfabc52 | ||
|
|
ebff4f7268 | ||
|
|
c281728c65 | ||
|
|
c4554894b3 | ||
|
|
58196b4011 | ||
|
|
f6a9b88b34 | ||
|
|
bad19ab45f |
12
.github/workflows/Dockerfile_medley
vendored
@@ -7,7 +7,7 @@
|
||||
#
|
||||
# ******************************************************************************
|
||||
|
||||
FROM ubuntu:22.10
|
||||
FROM ubuntu:22.04
|
||||
ARG TARGETPLATFORM
|
||||
|
||||
# Handle ARGs, ENV variables, and LABELs
|
||||
@@ -31,6 +31,12 @@ ENV LANG=C.UTF-8
|
||||
# Copy over the release deb files
|
||||
ADD ./*.deb /tmp
|
||||
|
||||
# Get tzdata setup ahead of time
|
||||
RUN apt-get update; \
|
||||
ln -fs /usr/share/zoneinfo/America/Los_Angeles /etc/localtime; \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata; \
|
||||
dpkg-reconfigure --frontend noninteractive tzdata
|
||||
|
||||
# Install Medley/Maiko and add tightvnc server and xclip to the image
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y apt-utils \
|
||||
@@ -51,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)
|
||||
|
||||
30
.github/workflows/buildDocker.yml
vendored
@@ -20,7 +20,7 @@ name: 'Build/Push Docker Image'
|
||||
# Run this workflow on ...
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
inputs:
|
||||
draft:
|
||||
description: "Mark this as a draft release"
|
||||
type: choice
|
||||
@@ -33,7 +33,7 @@ on:
|
||||
options:
|
||||
- 'false'
|
||||
- 'true'
|
||||
|
||||
|
||||
workflow_call:
|
||||
outputs:
|
||||
successful:
|
||||
@@ -59,7 +59,7 @@ on:
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
@@ -86,7 +86,7 @@ jobs:
|
||||
echo "draft=${{ inputs.draft }}" >> $GITHUB_OUTPUT;
|
||||
echo "force=${{ inputs.force }}" >> $GITHUB_OUTPUT;
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
######################################################################################
|
||||
@@ -100,7 +100,7 @@ jobs:
|
||||
outputs:
|
||||
release_not_built: ${{ steps.check.outputs.release_not_built }}
|
||||
|
||||
steps:
|
||||
steps:
|
||||
# Checkout the actions for this repo owner
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v3
|
||||
@@ -110,7 +110,7 @@ jobs:
|
||||
- run: mv ./Actions_${{ github.sha }}/actions ../actions && rm -rf ./Actions_${{ github.sha }}
|
||||
|
||||
# Check if build already run for this commit
|
||||
- name: Build already completed?
|
||||
- name: Build already completed?
|
||||
id: check
|
||||
continue-on-error: true
|
||||
uses: ./../actions/check-sentry-action
|
||||
@@ -131,12 +131,12 @@ jobs:
|
||||
if: |
|
||||
needs.sentry.outputs.release_not_built == 'true'
|
||||
|| needs.inputs.outputs.force == 'true'
|
||||
|
||||
|
||||
steps:
|
||||
# Checkout latest commit
|
||||
- name: Checkout Medley
|
||||
uses: actions/checkout@v3
|
||||
|
||||
|
||||
# Find latest release (draft or normal)
|
||||
# and download its assets
|
||||
- name: Download linux debs from latest (draft) release
|
||||
@@ -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
|
||||
@@ -176,10 +178,10 @@ jobs:
|
||||
docker_namespace="$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')"
|
||||
docker_image="${docker_namespace}/${repo_name}"
|
||||
if [ "${{ needs.inputs.outputs.draft }}" = "false" ];
|
||||
then
|
||||
then
|
||||
docker_tags="${docker_image}:latest,${docker_image}:${MEDLEY_RELEASE#*-}_${MAIKO_RELEASE#*-}"
|
||||
platforms="linux/amd64,linux/arm64"
|
||||
else
|
||||
else
|
||||
docker_tags="${docker_image}:draft"
|
||||
platforms="linux/amd64"
|
||||
fi
|
||||
@@ -242,7 +244,7 @@ jobs:
|
||||
|
||||
needs: [inputs, sentry, build_and-push]
|
||||
|
||||
steps:
|
||||
steps:
|
||||
# Checkout the actions for this repo owner
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v3
|
||||
@@ -257,10 +259,10 @@ jobs:
|
||||
uses: ./../actions/set-sentry-action
|
||||
with:
|
||||
tag: "docker"
|
||||
|
||||
|
||||
- name: Output
|
||||
id: output
|
||||
run: |
|
||||
echo "build_successful='true'" >> ${GITHUB_OUTPUT}
|
||||
|
||||
|
||||
######################################################################################
|
||||
|
||||
416
.github/workflows/buildLoadup.yml
vendored
@@ -60,7 +60,7 @@ defaults:
|
||||
|
||||
jobs:
|
||||
|
||||
######################################################################################
|
||||
# JOB: inputs #######################################################################
|
||||
|
||||
# Regularize the inputs so they can be referenced the same way whether they are
|
||||
# the result of a workflow_dispatch or a workflow_call
|
||||
@@ -85,8 +85,7 @@ jobs:
|
||||
fi
|
||||
|
||||
|
||||
|
||||
######################################################################################
|
||||
# JOB: sentry #######################################################################
|
||||
|
||||
# Use sentry-action to determine if this release has already been built
|
||||
# based on the latest commit to the repo
|
||||
@@ -114,11 +113,11 @@ jobs:
|
||||
with:
|
||||
tag: "loadup"
|
||||
|
||||
######################################################################################
|
||||
|
||||
# JOB: loadup #######################################################################
|
||||
|
||||
#
|
||||
# Do the loadup
|
||||
# Do the loadup and push to release on github
|
||||
#
|
||||
|
||||
loadup:
|
||||
@@ -130,6 +129,9 @@ jobs:
|
||||
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 }}
|
||||
|
||||
needs: [inputs, sentry]
|
||||
if: |
|
||||
@@ -154,24 +156,36 @@ 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
|
||||
- name: Get Maiko Release Information
|
||||
# Find latest release (draft or normal)
|
||||
- name: Get maiko release information
|
||||
id: maiko
|
||||
uses: abatilo/release-info-action@v1.3.2
|
||||
with:
|
||||
owner: ${{ github.repository_owner }}
|
||||
repo: maiko
|
||||
|
||||
run: |
|
||||
tag=""
|
||||
if [ "${{ needs.inputs.outputs.draft }}" = "true" ];
|
||||
then
|
||||
gh release list --repo ${{ github.repository_owner }}/maiko | grep Draft >/tmp/releases-$$
|
||||
if [ $? -eq 0 ];
|
||||
then
|
||||
tag=$(head -n 1 /tmp/releases-$$ | awk '{ print $3 }')
|
||||
fi
|
||||
fi
|
||||
if [ -z "${tag}" ];
|
||||
then
|
||||
tag=$(gh release list --repo ${{ github.repository_owner }}/maiko | grep Latest | head -n 1 | awk '{ print $3 }')
|
||||
fi
|
||||
echo "maiko_tag=${tag}" >> ${GITHUB_OUTPUT}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.MAIKO_TOKEN }}
|
||||
# Setup environment variables & establish job outputs
|
||||
- name: Setup Environment Variables
|
||||
run: |
|
||||
echo "build_time=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> ${GITHUB_OUTPUT}
|
||||
echo "TARBALL_DIR=installers/deb/tmp/tarballs" >>${GITHUB_ENV}
|
||||
echo "DEBS_DIR=installers/deb/debs" >>${GITHUB_ENV}
|
||||
echo "TARS_DIR=installers/deb/tars" >>${GITHUB_ENV}
|
||||
echo "TARBALL_DIR=/tmp/tarballs" >>${GITHUB_ENV}
|
||||
echo "MEDLEY_RELEASE_TAG=${RELEASE_TAG}" >>${GITHUB_ENV}
|
||||
echo "MAIKO_RELEASE_TAG=${{ steps.maiko.outputs.latest_tag }}" >>${GITHUB_ENV}
|
||||
echo "MAIKO_RELEASE_TAG=${{ steps.maiko.outputs.maiko_tag }}" >>${GITHUB_ENV}
|
||||
echo "ARTIFACTS_FILENAME_TEMPLATE=medley-full-@@PLATFORM@@-@@ARCH@@-@@MEDLEY.RELEASE@@_@@MAIKO.RELEASE@@" >>${GITHUB_ENV}
|
||||
- name: More Environment Variables
|
||||
run: |
|
||||
echo "MEDLEY_SHORT_RELEASE_TAG=${MEDLEY_RELEASE_TAG#medley-}" >>${GITHUB_ENV}
|
||||
@@ -182,27 +196,26 @@ jobs:
|
||||
- name: Establish job outputs
|
||||
id: job_outputs
|
||||
run: |
|
||||
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 "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
|
||||
- name: Create work dirs
|
||||
run: mkdir -p ${TARBALL_DIR}
|
||||
|
||||
# Download Maiko Release Assets
|
||||
# Download Maiko Release Assets and untar it
|
||||
- name: Download Release Assets
|
||||
uses: robinraju/release-downloader@v1.6
|
||||
with:
|
||||
repository: ${{ github.repository_owner }}/maiko
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
latest: true
|
||||
out-file-path: ${{ env.TARBALL_DIR }}
|
||||
fileName: "${{ env.MAIKO_RELEASE_TAG }}-linux.*.tgz"
|
||||
|
||||
- name: Untar Maiko Release for use in loadup
|
||||
run: |
|
||||
tar -xzf "${TARBALL_DIR}/${{ env.MAIKO_RELEASE_TAG }}-linux.x86_64.tgz"
|
||||
gh release download ${MAIKO_RELEASE_TAG} \
|
||||
-D ${TARBALL_DIR} \
|
||||
--repo ${{ github.repository_owner }}/maiko \
|
||||
-p '*.tgz'
|
||||
tar -xzf "${TARBALL_DIR}/${MAIKO_RELEASE_TAG}-linux.x86_64.tgz"
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.MAIKO_TOKEN }}
|
||||
|
||||
# Checkout Notecards and tar it in the tarballsdir
|
||||
- name: Checkout Notecards
|
||||
@@ -210,11 +223,11 @@ jobs:
|
||||
with:
|
||||
repository: ${{ github.repository_owner }}/notecards
|
||||
path: ./notecards
|
||||
- run: mv ./notecards ../notecards
|
||||
- name: Tar notecards into tarball dir
|
||||
run: |
|
||||
cd ..
|
||||
tar cfz medley/${TARBALL_DIR}/notecards.tgz notecards
|
||||
mv ./notecards ../notecards
|
||||
cd ../notecards
|
||||
git archive --format=tgz --output="${TARBALL_DIR}/notecards.tgz" --prefix=notecards/ main
|
||||
|
||||
# Install vnc
|
||||
- name: Install vnc
|
||||
@@ -224,7 +237,6 @@ jobs:
|
||||
run: |
|
||||
Xvnc -geometry 1280x720 :0 &
|
||||
export DISPLAY=":0"
|
||||
PATH="$PWD/maiko:$PATH"
|
||||
scripts/loadup-all.sh -apps
|
||||
scripts/loadup-db.sh
|
||||
|
||||
@@ -233,15 +245,6 @@ jobs:
|
||||
scripts/release-make-tars.sh "${MEDLEY_RELEASE_TAG}"
|
||||
mv releases/"${MEDLEY_SHORT_RELEASE_TAG}"/*.tgz "${TARBALL_DIR}"
|
||||
|
||||
# Build the deb files as well as the tgz files
|
||||
- name: Build .deb files for 3 architectures
|
||||
id: debs
|
||||
run: |
|
||||
cd installers/deb
|
||||
debs_filename_base=$(./build_deb.sh)
|
||||
echo "DEBS_FILENAME_BASE=${debs_filename_base}" >> $GITHUB_ENV;
|
||||
echo "DEBS_FILENAME_BASE=${debs_filename_base}" >> $GITHUB_OUTPUT;
|
||||
|
||||
# Push the release up to github releases
|
||||
- name: Delete existing release with same tag (if any)
|
||||
uses: cb80/delrel@latest
|
||||
@@ -250,29 +253,37 @@ jobs:
|
||||
continue-on-error: true
|
||||
|
||||
- name: Push the release
|
||||
id: push_release
|
||||
id: push
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
allowUpdates: true
|
||||
artifacts:
|
||||
# ${{ env.TARBALL_DIR }}/notecards.tgz,
|
||||
${{ env.TARBALL_DIR }}/${{ env.MEDLEY_RELEASE_TAG }}-loadups.tgz,
|
||||
${{ env.TARBALL_DIR }}/${{ env.MEDLEY_RELEASE_TAG }}-runtime.tgz,
|
||||
${{ env.DEBS_DIR }}/*.deb,
|
||||
${{ env.TARS_DIR }}/*.tgz
|
||||
${{ env.TARBALL_DIR }}/${{ env.MEDLEY_RELEASE_TAG }}-runtime.tgz
|
||||
tag: ${{ env.MEDLEY_RELEASE_TAG }}
|
||||
draft: ${{ needs.inputs.outputs.draft }}
|
||||
prerelease: false
|
||||
generateReleaseNotes: true
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# Save the tarball directory for subsequent jobs
|
||||
- name: Save tarballs
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: tarballs
|
||||
path: ${{ env.TARBALL_DIR }}
|
||||
if-no-files-found: error
|
||||
|
||||
|
||||
# JOB: linux_installer ##############################################################
|
||||
|
||||
#
|
||||
# Create the Windows installer, push it up to the release on github and
|
||||
# update the downloads page on OIO
|
||||
# Create the linux installers (.deb and .tgz) and push to release on github
|
||||
#
|
||||
windows_installer:
|
||||
linux_installer:
|
||||
|
||||
runs-on: windows-latest
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: [inputs, sentry, loadup]
|
||||
if: |
|
||||
@@ -280,6 +291,157 @@ jobs:
|
||||
|| needs.inputs.outputs.force == 'true'
|
||||
|
||||
steps:
|
||||
|
||||
# Checkout latest commit
|
||||
- name: Checkout Medley
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Environment variables
|
||||
- name: Environment variables
|
||||
run: |
|
||||
echo "DEBS_DIR=installers/deb/debs" >>${GITHUB_ENV}
|
||||
echo "TARS_DIR=installers/deb/tars" >>${GITHUB_ENV}
|
||||
echo "TARBALL_DIR=installers/deb/tmp/tarballs" >>${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 taball dir
|
||||
- run: mkdir -p ${TARBALL_DIR}
|
||||
|
||||
# Get the tarballs
|
||||
- name: Get tarballs
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: tarballs
|
||||
path: ${{ env.TARBALL_DIR }}
|
||||
|
||||
# Build the deb files as well as the tgz files
|
||||
- name: Build .deb files for 3 architectures
|
||||
id: debs
|
||||
run: |
|
||||
cd installers/deb
|
||||
./build_deb.sh
|
||||
|
||||
# Push the debs and tgz up to github releases
|
||||
- name: Push the release
|
||||
id: push_release
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
allowUpdates: true
|
||||
artifacts:
|
||||
${{ env.DEBS_DIR }}/*.deb,
|
||||
${{ env.TARS_DIR }}/*.tgz
|
||||
tag: ${{ env.MEDLEY_RELEASE_TAG }}
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
omitBodyDuringUpdate: true
|
||||
omitDraftDuringUpdate: true
|
||||
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 ##############################################################
|
||||
|
||||
#
|
||||
# Create the macos installers (.dmg and .zip) and push to release on github
|
||||
#
|
||||
macos_installer:
|
||||
|
||||
runs-on: macos-12
|
||||
|
||||
needs: [inputs, sentry, loadup]
|
||||
if: |
|
||||
needs.sentry.outputs.release_not_built == 'true'
|
||||
|| needs.inputs.outputs.force == 'true'
|
||||
# if: false
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
steps:
|
||||
|
||||
# Checkout latest commit
|
||||
- name: Checkout Medley
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Environment variables
|
||||
- name: Environment variables
|
||||
run: |
|
||||
MACOS_DIR=installers/macos
|
||||
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 "ARTIFACTS_FILENAME_TEMPLATE=${{ needs.loadup.outputs.artifacts_filename_template }}" >>${GITHUB_ENV}
|
||||
|
||||
# Create tarball dir
|
||||
- run: mkdir -p ${TARBALL_DIR}
|
||||
|
||||
# Get the tarballs
|
||||
- name: Get tarballs
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: tarballs
|
||||
path: ${{ env.TARBALL_DIR }}
|
||||
|
||||
# Build the .dmg and .zip files
|
||||
- name: Build .dmg & .zip files
|
||||
id: dmg-zip
|
||||
run: |
|
||||
cd ${MACOS_DIR}
|
||||
./build_artifacts.sh
|
||||
|
||||
# Push the .dmg and .zip up to github releases
|
||||
- name: Push the release
|
||||
id: push_release
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
allowUpdates: true
|
||||
artifacts:
|
||||
# 2023-07-20 not yet building dmg -- ${{ env.ARTIFACTS_DIR }}/*.dmg,
|
||||
${{ env.ARTIFACTS_DIR }}/*.zip
|
||||
tag: ${{ env.MEDLEY_RELEASE_TAG }}
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
omitBodyDuringUpdate: true
|
||||
omitDraftDuringUpdate: true
|
||||
omitNameDuringUpdate: true
|
||||
omitPrereleaseDuringUpdate: true
|
||||
|
||||
|
||||
|
||||
# JOB: cygwin_installer #############################################################
|
||||
|
||||
#
|
||||
# Create the Windows installer, push it up to the release on github and
|
||||
# update the downloads page on OIO
|
||||
#
|
||||
cygwin_installer:
|
||||
|
||||
runs-on: windows-2022
|
||||
|
||||
needs: [inputs, sentry, loadup, linux_installer]
|
||||
if: |
|
||||
needs.sentry.outputs.release_not_built == 'true'
|
||||
|| needs.inputs.outputs.force == 'true'
|
||||
|
||||
outputs:
|
||||
cygwin_installer: ${{ steps.compile_iss.outputs.CYGWIN_INSTALLER }}
|
||||
|
||||
steps:
|
||||
|
||||
# Checkout latest commit
|
||||
- name: Checkout Medley
|
||||
uses: actions/checkout@v3
|
||||
@@ -294,24 +456,59 @@ jobs:
|
||||
echo "MEDLEY_RELEASE_TAG=$mrt" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
|
||||
$msrt="${{ needs.loadup.outputs.medley_short_release_tag }}"
|
||||
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
|
||||
|
||||
# Download vnc viewer
|
||||
- name: Download vncviewer
|
||||
# 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: |
|
||||
$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)
|
||||
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://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
|
||||
$filename="medley-install_${env:COMBINED_RELEASE_TAG}_x64.exe"
|
||||
echo "INSTALLER_FILENAME=$filename" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
|
||||
$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
|
||||
@@ -319,7 +516,7 @@ jobs:
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
allowUpdates: true
|
||||
artifacts: installers/win/${{ env.INSTALLER_FILENAME }}
|
||||
artifacts: installers/cygwin/${{ env.CYGWIN_INSTALLER }}
|
||||
tag: ${{ env.MEDLEY_RELEASE_TAG }}
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
omitBodyDuringUpdate: true
|
||||
@@ -327,18 +524,65 @@ jobs:
|
||||
omitNameDuringUpdate: true
|
||||
omitPrereleaseDuringUpdate: true
|
||||
|
||||
# Install the OpenSSH Client
|
||||
- name: Install the OpenSSH Client
|
||||
shell: powershell
|
||||
|
||||
# JOB: downloads_page ################################################################
|
||||
|
||||
#
|
||||
# Update the downloads page on OIO
|
||||
#
|
||||
|
||||
downloads_page:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: [inputs, sentry, loadup, linux_installer, macos_installer, cygwin_installer]
|
||||
if: |
|
||||
needs.sentry.outputs.release_not_built == 'true'
|
||||
|| needs.inputs.outputs.force == 'true'
|
||||
|
||||
steps:
|
||||
|
||||
# Environment variables
|
||||
- name: Environment Varibales (from other jobs)
|
||||
run: |
|
||||
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
|
||||
crt="${{ needs.loadup.outputs.combined_release_tag }}"
|
||||
echo "COMBINED_RELEASE_TAG=${crt}" >>${GITHUB_ENV}
|
||||
mrt="${{ needs.loadup.outputs.medley_release_tag }}"
|
||||
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
|
||||
uses: actions/checkout@v3
|
||||
|
||||
|
||||
# Upload a dummy file to release
|
||||
# Needed since download url of the release changes on every update
|
||||
# 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 placeholder.txt to release
|
||||
id: pushph
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
allowUpdates: true
|
||||
artifacts: placeholder.txt
|
||||
tag: ${{ env.MEDLEY_RELEASE_TAG }}
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
omitBodyDuringUpdate: true
|
||||
omitDraftDuringUpdate: true
|
||||
omitNameDuringUpdate: true
|
||||
omitPrereleaseDuringUpdate: true
|
||||
|
||||
# Update the downloads page and the man page on OIO
|
||||
- name: Update the downloads page and the man page to the OIO static page host
|
||||
shell: bash
|
||||
run: |
|
||||
# Figure out filenames
|
||||
download_url="${{ steps.push.outputs.html_url }}"
|
||||
download_url="${{ steps.pushph.outputs.html_url }}"
|
||||
download_url="${download_url/\/tag\//\/download\/}"
|
||||
local_template="installers/downloads_page/medley_downloads.html"
|
||||
local_filename="medley_downloads.html"
|
||||
@@ -356,9 +600,9 @@ jobs:
|
||||
# Fill in downloads page template
|
||||
sed \
|
||||
-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/@@@DEBS.FILENAME.BASE@@@/${DEBS_FILENAME_BASE}/g" \
|
||||
-e "s/@@@WINDOWS.INSTALLER.FILENAME@@@/${INSTALLER_FILENAME}/g" \
|
||||
-e "s~@@@CYGWIN.INSTALLER@@@~${CYGWIN_INSTALLER}~g" \
|
||||
< "${local_template}" > "${local_filename}"
|
||||
# Create sftp instruction file
|
||||
echo "-rm ${remote_filepath}.oldold" > batch
|
||||
@@ -373,9 +617,15 @@ 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 #####################################################################
|
||||
|
||||
# Use set-sentry-action to determine set the sentry that says this release has
|
||||
# been successfully built
|
||||
@@ -387,9 +637,16 @@ jobs:
|
||||
outputs:
|
||||
build_successful: ${{ steps.output.outputs.build_successful }}
|
||||
|
||||
needs: [inputs, sentry, loadup, windows_installer]
|
||||
needs: [inputs, sentry, loadup, downloads_page]
|
||||
|
||||
steps:
|
||||
# Delete the tarballs artifact
|
||||
- name: Delete tarballs artifact
|
||||
uses: geekyeggo/delete-artifact@v2
|
||||
with:
|
||||
name: tarballs
|
||||
failOnError: false
|
||||
|
||||
# Checkout the actions for this repo owner
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v3
|
||||
@@ -411,21 +668,4 @@ jobs:
|
||||
echo "build_successful='true'" >> $GITHUB_OUTPUT
|
||||
|
||||
######################################################################################
|
||||
|
||||
|
||||
|
||||
# - name: Download the Windows installer created in windows job
|
||||
# uses: actions/download-artifact@v3
|
||||
# with:
|
||||
# name: windows_installer
|
||||
# path: installers/win
|
||||
|
||||
# - name: Rename the Windows installer w/ version tag
|
||||
# run: |
|
||||
# maiko_release_tag="${{ steps.maiko.outputs.latest_tag }}"
|
||||
# combined_release_tag="${MEDLEY_RELEASE_TAG#medley-}_${maiko_release_tag#maiko-}"
|
||||
# windows_installer_filename="medley_install_${combined_release_tag}_x64.exe"
|
||||
# cd installers/win
|
||||
# mv medley_install_vXXXVERSIONXXX_x64.exe "${windows_installer_filename}"
|
||||
# echo "WINDOWS_INSTALLER_FILENAME=${windows_installer_filename}" >>${GITHUB_ENV}
|
||||
|
||||
######################################################################################
|
||||
|
||||
8
.github/workflows/buildReleaseInclDocker.yml
vendored
@@ -84,6 +84,7 @@ jobs:
|
||||
echo "force=false" >> $GITHUB_OUTPUT;
|
||||
fi
|
||||
|
||||
|
||||
######################################################################################
|
||||
|
||||
|
||||
@@ -94,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
|
||||
|
||||
|
||||
######################################################################################
|
||||
@@ -107,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
|
||||
|
||||
######################################################################################
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
6
installers/cygwin/.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
medley*.exe
|
||||
medley*.tgz
|
||||
maiko*.tgz
|
||||
setup-x86_64.exe
|
||||
medley.bat
|
||||
|
||||
BIN
installers/cygwin/Medley.ico
Normal file
|
After Width: | Height: | Size: 155 KiB |
165
installers/cygwin/editpath/EditPath.iss
Normal 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;
|
||||
118
installers/cygwin/editpath/EditPath.md
Normal 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.
|
||||
3
installers/cygwin/editpath/README.TXT
Normal file
@@ -0,0 +1,3 @@
|
||||
Editpath installed here is extracted from Release 1.04 from https://github.com/Bill-Stewart/PathMgr.
|
||||
|
||||
|
||||
BIN
installers/cygwin/editpath/i386/EditPath.exe
Normal file
BIN
installers/cygwin/editpath/x86_64/EditPath.exe
Normal file
128
installers/cygwin/makeflix.iss
Normal 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;
|
||||
85
installers/cygwin/medley.iss
Normal 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
|
||||
|
||||
BIN
installers/cygwin/medley_logo.bmp
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
installers/cygwin/medley_logo.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
installers/cygwin/medley_logo_small.bmp
Normal file
|
After Width: | Height: | Size: 13 KiB |
@@ -11,15 +11,6 @@
|
||||
###############################################################################
|
||||
# set -x
|
||||
|
||||
# mess with file desscriptors so we get only one line on stdout
|
||||
# so we can communicate only what we want back to any githib runner
|
||||
# stash fd 1 in fd 3
|
||||
exec 3>&1
|
||||
# make fd 1 (stdout) be the same as stdout
|
||||
# so none of the std output from this file will be captured by
|
||||
# $() but it will still be written out to the tty (via stderr)
|
||||
exec 1>&2
|
||||
|
||||
tarball_dir=tmp/tarballs
|
||||
|
||||
# Make sure we are in the right directory
|
||||
@@ -32,6 +23,13 @@ then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# template for artifacts file names should be passed down in the ENV variable: ARTIFACTS_FILENAME_TEMPLATE
|
||||
if [ -z "${ARTIFACTS_FILENAME_TEMPLATE}" ];
|
||||
then
|
||||
ARTIFACTS_FILENAME_TEMPLATE="medley-full-@@PLATFORM@@-@@ARCH@@-@@MEDLEY.RELEASE@@_@@MAIKO.RELEASE@@"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# If running as a github action or -t arg, then skip downloading the tarballs
|
||||
if ! [[ -n "${GITHUB_WORKSPACE}" || "$1" = "-t" ]];
|
||||
@@ -69,7 +67,6 @@ fi
|
||||
pushd ${tarball_dir} >/dev/null 2>/dev/null
|
||||
medley_release=$(echo medley-*-loadups.tgz | sed "s/medley-\(.*\)-loadups.tgz/\1/")
|
||||
maiko_release=$(echo maiko-*-linux.x86_64.tgz | sed "s/maiko-\(.*\)-linux.x86_64.tgz/\1/")
|
||||
debs_filename_base="medley-full-${medley_release}_${maiko_release}"
|
||||
popd >/dev/null 2>/dev/null
|
||||
|
||||
|
||||
@@ -136,7 +133,7 @@ do
|
||||
#
|
||||
# Create tar file for this arch
|
||||
#
|
||||
filename="${debs_filename_base}-${wslp}-${arch}"
|
||||
filename="$(echo ${ARTIFACTS_FILENAME_TEMPLATE} | sed -e "s#@@PLATFORM@@#${wslp}#" -e "s#@@ARCH@@#${arch}#" -e "s#@@MEDLEY.RELEASE@@#${medley_release}#" -e "s#@@MAIKO.RELEASE@@#${maiko_release}#" )"
|
||||
mkdir -p tars
|
||||
echo "Creating tar file tars/${filename}.tgz"
|
||||
tar -C ${il_dir} -czf tars/${filename}.tgz .
|
||||
@@ -151,8 +148,5 @@ do
|
||||
done
|
||||
done
|
||||
|
||||
# send just one line back to github $() construct
|
||||
# do this by restoring fd 1 to what it was orginally
|
||||
exec 1>&3
|
||||
echo "${debs_filename_base}"
|
||||
|
||||
################################################################################################################
|
||||
################################################################################################################
|
||||
|
||||
@@ -10,36 +10,46 @@
|
||||
<ul>
|
||||
<li><h4>Standard Linux</h4>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-x86_64.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86_64 machines</a></p>
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-linux-x86_64-@@@COMBINED.RELEASE.TAG@@@.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86_64 machines</a></p>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-aarch64.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines</a></p>
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-linux-aarch64-@@@COMBINED.RELEASE.TAG@@@.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines</a></p>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-armv7l.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines</a></p></li>
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-linux-armv7l-@@@COMBINED.RELEASE.TAG@@@.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines</a></p></li>
|
||||
<li><h4>Windows System for Linux</h4>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-wsl-x86_64.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86.64 machines</a></p>
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-wsl-x86_64-@@@COMBINED.RELEASE.TAG@@@.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86.64 machines</a></p>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-wsl-aarch64.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines</a></p></li>
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-wsl-aarch64-@@@COMBINED.RELEASE.TAG@@@.deb">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines</a></p></li>
|
||||
</ul></li>
|
||||
<li><h3>Local Installations (for any Linux distro)</h3>
|
||||
|
||||
<ul>
|
||||
<li><h4>Standard Linux</h4>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-x86_64.tgz">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86_64 machines</a></p>
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-linux-x86_64-@@@COMBINED.RELEASE.TAG@@@.tgz">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86_64 machines</a></p>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-aarch64.tgz">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines</a></p>
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-linux-aarch64-@@@COMBINED.RELEASE.TAG@@@.tgz">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines</a></p>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-armv7l.tgz">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines</a></p></li>
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-linux-armv7l-@@@COMBINED.RELEASE.TAG@@@.tgz">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines</a></p></li>
|
||||
<li><h4>Windows System for Linux</h4>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-wsl-x86_64.tgz">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86_64 machines</a></p>
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-wsl-x86_64-@@@COMBINED.RELEASE.TAG@@@.tgz">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86_64 machines</a></p>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-wsl-aarch64.tgz">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines</a></p></li>
|
||||
<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 (Medley runs in a Docker container)</h2>
|
||||
<li><h2>WINDOWS 10/11 (Single install based on cygwin - Docker install deprecated)</h2>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/@@@WINDOWS.INSTALLER.FILENAME@@@">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for Windows x64 machines</a></p></li>
|
||||
<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>
|
||||
<li><h3>DMG Installer</h3>
|
||||
|
||||
<p>Not available</p></li>
|
||||
<li><h3>ZIP Installer</h3>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/medley-full-macos-universal-@@@COMBINED.RELEASE.TAG@@@.zip">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@</a></p></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
|
||||
@@ -6,40 +6,44 @@
|
||||
|
||||
* #### Standard Linux
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\_64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-x86\_64.deb)
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\_64 machines](@@@DOWNLOAD_URL@@@/medley-full-linux-x86\_64-@@@COMBINED.RELEASE.TAG@@@.deb)
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-aarch64.deb)
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/medley-full-linux-aarch64-@@@COMBINED.RELEASE.TAG@@@.deb)
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-armv7l.deb)
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines](@@@DOWNLOAD_URL@@@/medley-full-linux-armv7l-@@@COMBINED.RELEASE.TAG@@@.deb)
|
||||
|
||||
* #### Windows System for Linux
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\.64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-wsl-x86\_64.deb)
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\.64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl-x86\_64-@@@COMBINED.RELEASE.TAG@@@.deb)
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-wsl-aarch64.deb)
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl-aarch64-@@@COMBINED.RELEASE.TAG@@@.deb)
|
||||
|
||||
* ### Local Installations (for any Linux distro)
|
||||
|
||||
* #### Standard Linux
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\_64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-x86\_64.tgz)
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\_64 machines](@@@DOWNLOAD_URL@@@/medley-full-linux-x86\_64-@@@COMBINED.RELEASE.TAG@@@.tgz)
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-aarch64.tgz)
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/medley-full-linux-aarch64-@@@COMBINED.RELEASE.TAG@@@.tgz)
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-armv7l.tgz)
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines](@@@DOWNLOAD_URL@@@/medley-full-linux-armv7l-@@@COMBINED.RELEASE.TAG@@@.tgz)
|
||||
|
||||
* #### Windows System for Linux
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\_64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-wsl-x86\_64.tgz)
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for x86\_64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl-x86\_64-@@@COMBINED.RELEASE.TAG@@@.tgz)
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-wsl-aarch64.tgz)
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARM64 machines](@@@DOWNLOAD_URL@@@/medley-full-wsl-aarch64-@@@COMBINED.RELEASE.TAG@@@.tgz)
|
||||
|
||||
* ## WINDOWS 10/11 (Medley runs in a Docker container)
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for Windows x64 machines](@@@DOWNLOAD_URL@@@/@@@WINDOWS.INSTALLER.FILENAME@@@)
|
||||
* ## 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
|
||||
|
||||
Not available
|
||||
|
||||
* ### ZIP Installer
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@](@@@DOWNLOAD_URL@@@/medley-full-macos-universal-@@@COMBINED.RELEASE.TAG@@@.zip)
|
||||
|
||||
7
installers/macos/.gitignore
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
tmp
|
||||
devtmp
|
||||
pkg/*.pkg
|
||||
artifacts
|
||||
|
||||
|
||||
|
||||
33
installers/macos/app/Info.plist
Normal file
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>medley/medley</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>Medley Interlisp, Copyright 2023 Interlisp.org</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Medley.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.interlisp.Medley</string>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
</array>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>3.51</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>--VERSION_TAG--</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>Medley</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>--VERSION_TAG--</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright 2023 Interlisp.org</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>11.0</string>
|
||||
</dict>
|
||||
</plist>
|
||||
1
installers/macos/app/PkgInfo
Normal file
@@ -0,0 +1 @@
|
||||
APPLMedley
|
||||
170
installers/macos/build_app.sh
Executable file
@@ -0,0 +1,170 @@
|
||||
#!/bin/bash
|
||||
###############################################################################
|
||||
#
|
||||
# build_app.sh: build app bundle for installing Medley Interlisp on MacOS
|
||||
#
|
||||
# 2023-02-23 Frank Halasz
|
||||
#
|
||||
# Copyright 2023 by Interlisp.org
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
APPNAME=Medley
|
||||
|
||||
# 2023-07-19 Temorary selector to allow us to create .zip asset before app/dmg work is finished
|
||||
INCLUDE_APP="no" # "yes" or "no"
|
||||
|
||||
# Make sure we are in the right directory
|
||||
if [ ! -f ./app/Info.plist ];
|
||||
then
|
||||
echo "Can't find ./app/Info.plist file."
|
||||
echo "Incorrect cwd?"
|
||||
echo "Should be in medley/installers/macos"
|
||||
echo "Exiting"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# template for artifacts file names should be passed down in the ENV variable: ARTIFACTS_FILENAME_TEMPLATE
|
||||
if [ -z "${ARTIFACTS_FILENAME_TEMPLATE}" ];
|
||||
then
|
||||
ARTIFACTS_FILENAME_TEMPLATE="medley-full-@@PLATFORM@@-@@ARCH@@-@@MEDLEY.RELEASE@@_@@MAIKO.RELEASE@@"
|
||||
fi
|
||||
|
||||
#
|
||||
# Setup directories
|
||||
#
|
||||
CWD=$(pwd)
|
||||
RESULTS_DIR=${CWD}/artifacts
|
||||
APPBUNDLE=${RESULTS_DIR}/${APPNAME}.app
|
||||
APPBUNDLECONTENTS=${APPBUNDLE}/Contents
|
||||
APPBUNDLEEXE=${APPBUNDLECONTENTS}/MacOS
|
||||
APPBUNDLERESOURCES=${APPBUNDLECONTENTS}/Resources
|
||||
APPBUNDLEICON=${APPBUNDLECONTENTS}/Resources
|
||||
tmp_dir=${CWD}/tmp
|
||||
tarball_dir=${tmp_dir}/tarballs
|
||||
|
||||
# If running as a github action or -t arg, then skip downloading the tarballs
|
||||
if ! [[ -n "${GITHUB_WORKSPACE}" || "$1" = "-t" ]];
|
||||
then
|
||||
# First, make sure gh is available and we are logged in to github
|
||||
if [ -z "$(which gh)" ];
|
||||
then
|
||||
echo "Can't find gh"
|
||||
echo "Exiting."
|
||||
exit 2
|
||||
fi
|
||||
gh auth status 2>&1 | grep --quiet --no-messages "Logged in to github.com"
|
||||
if [ $? -ne 0 ];
|
||||
then
|
||||
echo "Not logged into github."
|
||||
echo "Exiting."
|
||||
exit 3
|
||||
fi
|
||||
# then clear out the ./tmp directory
|
||||
rm -rf ${tmp_dir}
|
||||
mkdir -p ${tmp_dir}
|
||||
# then download the maiko and medley tarballs
|
||||
mkdir -p ${tarball_dir}
|
||||
echo "Fetching maiko and medley release tarballs"
|
||||
TAG=$(gh release list --repo interlisp/maiko | head -n 1 | awk "{print \$1 }")
|
||||
gh release download ${TAG} \
|
||||
--repo interlisp/maiko \
|
||||
--dir ${tarball_dir} \
|
||||
--pattern "*darwin*.tgz"
|
||||
TAG=$(gh release list --repo interlisp/medley | head -n 1 | awk "{print \$1 }")
|
||||
gh release download ${TAG} \
|
||||
--repo interlisp/medley \
|
||||
--dir ${tarball_dir} \
|
||||
--pattern "*-loadups.tgz" \
|
||||
--pattern "*-runtime.tgz"
|
||||
gh repo clone interlisp/notecards notecards -- --depth 1
|
||||
(cd notecards; git archive --format=tgz --output=../notecards.tgz --prefix=notecards/ main)
|
||||
mv notecards.tgz ${tarball_dir}
|
||||
rm -rf notecards
|
||||
fi
|
||||
|
||||
# Figure out release tags from tarball names
|
||||
pushd ${tarball_dir} >/dev/null 2>/dev/null
|
||||
medley_release=$(echo medley-*-loadups.tgz | sed "s/medley-\(.*\)-loadups.tgz/\1/")
|
||||
maiko_release=$(echo maiko-*-darwin.x86_64.tgz | sed "s/maiko-\(.*\)-darwin.x86_64.tgz/\1/")
|
||||
popd >/dev/null 2>/dev/null
|
||||
|
||||
if [ "${INCLUDE_APP}" = "yes" ]; then
|
||||
#
|
||||
# Create bundle dirs
|
||||
#
|
||||
rm -rf ${RESULTS_DIR}
|
||||
mkdir -p ${RESULTS_DIR}
|
||||
rm -rf ${APPBUNDLE}
|
||||
mkdir -p ${APPBUNDLE}
|
||||
mkdir ${APPBUNDLE}/Contents
|
||||
mkdir ${APPBUNDLE}/Contents/MacOS
|
||||
mkdir ${APPBUNDLE}/Contents/Resources
|
||||
#
|
||||
# Create icons and put in bundle
|
||||
#
|
||||
iconset_dir=${tmp_dir}/${APPNAME}.iconset
|
||||
rm -rf ${iconset_dir}
|
||||
mkdir -p ${iconset_dir}
|
||||
image_dir=${CWD}/images
|
||||
sips -z 16 16 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_16x16.png >/dev/null 2>&1
|
||||
sips -z 32 32 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_16x16@2x.png >/dev/null 2>&1
|
||||
sips -z 32 32 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_32x32.png >/dev/null 2>&1
|
||||
sips -z 64 64 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_32x32@2x.png >/dev/null 2>&1
|
||||
sips -z 128 128 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_128x128.png >/dev/null 2>&1
|
||||
sips -z 256 256 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_128x128@2x.png >/dev/null 2>&1
|
||||
sips -z 256 256 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_256x256.png >/dev/null 2>&1
|
||||
sips -z 512 512 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_256x256@2x.png >/dev/null 2>&1
|
||||
sips -z 512 512 ${image_dir}/App_icon1024.png --out ${iconset_dir}/icon_512x512.png >/dev/null 2>&1
|
||||
cp ${image_dir}/App_icon1024.png ${iconset_dir}/icon_512x512@2x.png
|
||||
iconutil -c icns -o ${tmp_dir}/${APPNAME}.icns ${iconset_dir}
|
||||
cp ${tmp_dir}/${APPNAME}.icns ${APPBUNDLEICON}/
|
||||
rm -r ${iconset_dir}
|
||||
rm ${tmp_dir}/${APPNAME}.icns
|
||||
#
|
||||
# Update and copy in "control" files
|
||||
#
|
||||
sed -e "s/--VERSION_TAG--/${medley_release}.${maiko_release}.0/g" \
|
||||
< app/Info.plist \
|
||||
> ${APPBUNDLECONTENTS}/Info.plist
|
||||
cp app/PkgInfo ${APPBUNDLECONTENTS}/
|
||||
fi #INCLUDE_APP
|
||||
|
||||
#
|
||||
# Untar the maiko and medley releases into the bundle
|
||||
#
|
||||
il_dir=${APPBUNDLE}/Contents/MacOS
|
||||
mkdir -p ${il_dir}
|
||||
tar -x -z -C ${il_dir} \
|
||||
-f "${tarball_dir}/maiko-${maiko_release}-darwin.universal.tgz"
|
||||
tar -x -z -C ${il_dir} \
|
||||
-f "${tarball_dir}/medley-${medley_release}-runtime.tgz"
|
||||
tar -x -z -C ${il_dir} \
|
||||
-f "${tarball_dir}/medley-${medley_release}-loadups.tgz"
|
||||
tar -x -z -C ${il_dir} \
|
||||
-f "${tarball_dir}/notecards.tgz"
|
||||
#
|
||||
# Handle run_medley needing separate directories for each arch
|
||||
#
|
||||
pushd ${il_dir}/maiko >/dev/null 2>&1
|
||||
ln -s darwin.universal darwin.aarch64
|
||||
ln -s darwin.universal darwin.x86_64
|
||||
popd >/dev/null 2>&1
|
||||
#
|
||||
# Add file icon to medley.command
|
||||
#
|
||||
if [ -z "$(which fileicon)" ];
|
||||
then
|
||||
brew install fileicon
|
||||
fi
|
||||
fileicon set ${il_dir}/medley/scripts/medley/medley.command ${image_dir}/Command_icon128.png
|
||||
#
|
||||
# Also create the zip file of il_dir for distribution
|
||||
#
|
||||
pushd ${il_dir} >/dev/null 2>&1
|
||||
filename="$(echo ${ARTIFACTS_FILENAME_TEMPLATE} | sed -e "s#@@PLATFORM@@#macos#" -e "s#@@ARCH@@#universal#" -e "s#@@MEDLEY.RELEASE@@#${medley_release}#" -e "s#@@MAIKO.RELEASE@@#${maiko_release}#" )"
|
||||
zip -r -6 -y -q ${RESULTS_DIR}/${filename}.zip .
|
||||
popd >/dev/null 2>&1
|
||||
|
||||
######################################################################################################
|
||||
######################################################################################################
|
||||
66
installers/macos/build_artifacts.sh
Executable file
@@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
###############################################################################
|
||||
#
|
||||
# build_artifacts.sh: build the artifacts for installing Medley Interlisp on
|
||||
# MacOS. Basically just calls build_app.sh and build_dmg.sh.
|
||||
# based on Medley.app built by build_app.sh
|
||||
#
|
||||
# 2023-03-03 Frank Halasz
|
||||
#
|
||||
# Copyright 2023 by Interlisp.org
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
#
|
||||
# Figure out what directory this script is being executed from
|
||||
#
|
||||
get_abs_filename() {
|
||||
# $1 : relative filename
|
||||
echo "$(cd "$(dirname "$1")" && pwd)/$(basename "$1")"
|
||||
}
|
||||
|
||||
get_script_dir() {
|
||||
|
||||
# call this with ${BASH_SOURCE[0]:-$0} as its (only) parameter
|
||||
|
||||
# set -x
|
||||
|
||||
local SCRIPT_PATH="$( get_abs_filename "$1" )";
|
||||
|
||||
pushd . > '/dev/null';
|
||||
|
||||
while [ -h "$SCRIPT_PATH" ];
|
||||
do
|
||||
cd "$( dirname -- "$SCRIPT_PATH"; )";
|
||||
SCRIPT_PATH="$( readlink -f -- "$SCRIPT_PATH"; )";
|
||||
done
|
||||
|
||||
cd "$( dirname -- "$SCRIPT_PATH"; )" > '/dev/null';
|
||||
SCRIPT_PATH="$( pwd; )";
|
||||
|
||||
popd > '/dev/null';
|
||||
|
||||
# set +x
|
||||
|
||||
echo "${SCRIPT_PATH}"
|
||||
}
|
||||
|
||||
SCRIPTDIR=$(get_script_dir "${BASH_SOURCE[0]:-$0}")
|
||||
|
||||
#
|
||||
# cd to the dir we are executing from and call
|
||||
# build_app.sh and the build_dmg.sh
|
||||
#
|
||||
cd ${SCRIPTDIR}
|
||||
t=""
|
||||
c=""
|
||||
if [[ "$1" = "-t" || "$2" = "-t" ]]; then t="-t"; fi
|
||||
if [[ "$1" = "-c" || "$2" = "-c" ]]; then c="-c"; fi
|
||||
./build_app.sh "${t}" 2>&1
|
||||
# 2023-07-20 Not building dmg as yet, just using this to build zip file
|
||||
# while we finish work around dmg
|
||||
# ./build_dmg.sh "${c}"
|
||||
|
||||
|
||||
|
||||
###############################################################################
|
||||
185
installers/macos/build_dmg.sh
Executable file
@@ -0,0 +1,185 @@
|
||||
#!/bin/bash
|
||||
###############################################################################
|
||||
#
|
||||
# build_dmg.sh: build dmg for installing Medley Interlisp on MacOS
|
||||
# based on Medley.app built by build_app.sh
|
||||
#
|
||||
# 2023-03-03 Frank Halasz
|
||||
#
|
||||
# Copyright 2023 by Interlisp.org
|
||||
#
|
||||
# Based on code found at:
|
||||
# http://stackoverflow.com/questions/96882/how-do-i-create-a-nice-looking-dmg-for-mac-os-x-using-command-line-tools
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
#set -o verbose #echo onset +o verbose #echo off
|
||||
|
||||
# template for artifacts file names should be passed down in the ENV variable: ARTIFACTS_FILENAME_TEMPLATE
|
||||
if [ -z "${ARTIFACTS_FILENAME_TEMPLATE}" ];
|
||||
then
|
||||
ARTIFACTS_FILENAME_TEMPLATE="medley-full-@@PLATFORM@@-@@ARCH@@-@@MEDLEY.RELEASE@@_@@MAIKO.RELEASE@@"
|
||||
fi
|
||||
|
||||
#
|
||||
# Set Parameters
|
||||
#
|
||||
APP_NAME="Medley.app"
|
||||
VOL_NAME="Medley_Install"
|
||||
BG_NAME=Install_Message.png
|
||||
WIN_WIDTH=700
|
||||
WIN_HEIGHT=850
|
||||
|
||||
#
|
||||
# Set pathnames
|
||||
#
|
||||
CWD=$(pwd)
|
||||
TMP_DIR=${CWD}/tmp
|
||||
RESULTS_DIR=${CWD}/artifacts
|
||||
APP_PATH=${RESULTS_DIR}/${APP_NAME}
|
||||
DMG_PATH=${RESULTS_DIR}/${VOL_NAME}
|
||||
SRC_DIR=${TMP_DIR}/dmg_src
|
||||
IMAGES_DIR=${CWD}/images
|
||||
SCRIPTS_DIR=${CWD}/scripts
|
||||
|
||||
#
|
||||
# Make sure we are in the right directory
|
||||
#
|
||||
if [ ! -e ${APP_PATH} ];
|
||||
then
|
||||
echo "Can't find the app: ${APP_NAME}."
|
||||
echo "Incorrect cwd? Should be in medley/installers/macos."
|
||||
echo "Or build_app.sh not yet run?"
|
||||
echo "Exiting"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#
|
||||
# Copy over files from build app etc to dmg proto-directory
|
||||
#
|
||||
if [ ! "$1" = "-c" ]
|
||||
then
|
||||
#
|
||||
# Cleanup anything leftover from last run
|
||||
#
|
||||
rm -rf ${SRC_DIR}
|
||||
mkdir -p ${SRC_DIR}
|
||||
|
||||
#
|
||||
# Assemble source directory for DMG
|
||||
#
|
||||
#ditto ${APP_PATH} ${SRC_DIR}/${APP_NAME}
|
||||
mv ${APP_PATH} ${SRC_DIR}/${APP_NAME}
|
||||
SetFile -a B ${SRC_DIR}/${APP_NAME}
|
||||
ditto ${SCRIPTS_DIR}/medley_add2path ${SRC_DIR}/medley_add2path
|
||||
ditto ${IMAGES_DIR}/${BG_NAME} ${SRC_DIR}/.background/${BG_NAME}
|
||||
fi
|
||||
|
||||
#
|
||||
# Create initial dmg image
|
||||
#
|
||||
if [ -e "/Volumes/${VOL_NAME}" ];
|
||||
then
|
||||
hdiutil detach /Volumes/${VOL_NAME}
|
||||
fi
|
||||
rm -f ${DMG_PATH}.temp.dmg
|
||||
hdiutil create -srcfolder ${SRC_DIR} -volname ${VOL_NAME} -fs HFS+ \
|
||||
-fsargs "-c c=64,a=16,e=16" -format UDRW ${DMG_PATH}.temp.dmg
|
||||
device=$(\
|
||||
hdiutil attach -readwrite -noverify -noautoopen "${DMG_PATH}".temp.dmg \
|
||||
| egrep '^/dev/' | sed 1q | awk '{print $1}' \
|
||||
)
|
||||
|
||||
#
|
||||
# cd to the new dmg
|
||||
#
|
||||
pushd /Volumes/${VOL_NAME} >/dev/null 2>&1
|
||||
|
||||
#
|
||||
# Add symbolic link for medley script and icon for addpath
|
||||
#
|
||||
ln -s Medley.app/Contents/MacOS/medley/scripts/medley/medley.command medley
|
||||
if [ -z "$(which fileicon)" ];
|
||||
then
|
||||
brew install fileicon
|
||||
fi
|
||||
fileicon set medley_add2path ${IMAGES_DIR}/A2P_icon128.png
|
||||
|
||||
#
|
||||
# Dress up the appearance using Applescript
|
||||
#
|
||||
ROW1=375
|
||||
ROW2=650
|
||||
COL1=139
|
||||
COL2=350
|
||||
COL3=561
|
||||
osascript <<EOT
|
||||
tell application "Finder"
|
||||
tell disk "${VOL_NAME}"
|
||||
open
|
||||
set current view of container window to icon view
|
||||
set toolbar visible of container window to false
|
||||
set statusbar visible of container window to false
|
||||
set old_bounds to bounds of container window
|
||||
set l to item 1 of old_bounds
|
||||
set t to item 2 of old_bounds
|
||||
set r to l + ${WIN_WIDTH}
|
||||
set b to t + ${WIN_HEIGHT}
|
||||
set the bounds of container window to {l, t, r, b}
|
||||
set theViewOptions to the icon view options of container window
|
||||
set arrangement of theViewOptions to snap to grid
|
||||
set icon size of theViewOptions to 128
|
||||
set background picture of theViewOptions to file ".background:${BG_NAME}"
|
||||
set appHome to path to applications folder from system domain
|
||||
make new alias file at container window to appHome with properties {name:"Applications"}
|
||||
set appHome to path to applications folder from user domain
|
||||
make new alias file at container window to appHome with properties {name:"My Applications"}
|
||||
set appHome to path to home folder from user domain
|
||||
make new alias file at container window to appHome with properties {name:"My Home Folder"}
|
||||
delay 1
|
||||
set position of item "${APP_NAME}" of container window to {${COL1}, ${ROW1}}
|
||||
set position of item "medley" of container window to {${COL2}, ${ROW1}}
|
||||
set position of item "medley_add2path" of container window to {${COL3}, ${ROW1}}
|
||||
set position of item "Applications" of container window to {${COL1}, ${ROW2}}
|
||||
set position of item "My Applications" of container window to {${COL2}, ${ROW2}}
|
||||
set position of item "My Home Folder" of container window to {${COL3}, ${ROW2}}
|
||||
close
|
||||
end tell
|
||||
end tell
|
||||
EOT
|
||||
|
||||
#
|
||||
# Add icon to dmg
|
||||
#
|
||||
fileicon set /Volumes/${VOL_NAME} ${IMAGES_DIR}/Install_icon128.png
|
||||
|
||||
#
|
||||
# return to original dir
|
||||
#
|
||||
popd >/dev/null 2>&1
|
||||
|
||||
#
|
||||
# Detach the tmp dmg and convert it to final (compressed, ro) dmg
|
||||
#
|
||||
hdiutil detach ${device}
|
||||
sync
|
||||
rm -f ${DMG_PATH}.dmg
|
||||
hdiutil convert "${DMG_PATH}".temp.dmg -format UDZO -imagekey zlib-level=6 -o ${DMG_PATH}.dmg
|
||||
rm -rf "${DMG_PATH}".temp.dmg
|
||||
|
||||
#
|
||||
# Extract version info from app Info.plist & rename dmg using version
|
||||
#
|
||||
sed_script='{/CFBundleVersion/!d;N;s/^.*<string>\(.*\)<\/string>/\1/;s/.0$//;s/\./_/;p;}'
|
||||
version=$(sed -ne "${sed_script}" ${SRC_DIR}/${APP_NAME}/Contents/Info.plist)
|
||||
DMG_NAME="$(echo ${ARTIFACTS_FILENAME_TEMPLATE} | sed -e 's#@@PLATFORM@@#macos#' -e 's#@@ARCH@@#$universal#' -e 's#@@MEDLEY.RELEASE@@_@@MAIKO.RELEASE@@#${version}#' )"
|
||||
mv ${DMG_PATH}.dmg ${RESULTS_DIR}/${DMG_NAME}.dmg
|
||||
|
||||
#
|
||||
# Done
|
||||
#
|
||||
echo "DMG build completed."
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
|
||||
209
installers/macos/images/A2P_icon.svg
Normal file
@@ -0,0 +1,209 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
width="2000"
|
||||
height="2000"
|
||||
viewBox="0 0 2000 2000"
|
||||
version="1.1"
|
||||
id="svg2704"
|
||||
sodipodi:docname="A2P_icon.svg"
|
||||
inkscape:version="1.2 (dc2aeda, 2022-05-15)"
|
||||
inkscape:export-filename="A2P_icon128.png"
|
||||
inkscape:export-xdpi="6.1440001"
|
||||
inkscape:export-ydpi="6.1440001"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<g
|
||||
id="g1126"
|
||||
transform="translate(-23.756927,163.29152)">
|
||||
<text
|
||||
x="597.27948"
|
||||
y="997.78094"
|
||||
font-family="'Times New Roman', Times, serif"
|
||||
font-weight="bold"
|
||||
font-size="420px"
|
||||
id="text2702"
|
||||
style="font-weight:bold;font-size:420px;font-family:'Times New Roman', Times, serif"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:420px;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
|
||||
id="tspan25093">Medley</tspan></text>
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="1066.795"
|
||||
y="218.396"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2674"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="865.021"
|
||||
y="89.851997"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2676"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="629.06"
|
||||
y="50.366001"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2678"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="396.42899"
|
||||
y="106.215"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2680"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="204.11301"
|
||||
y="248.522"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2682"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="82.689003"
|
||||
y="454.659"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2684"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="51.462002"
|
||||
y="691.854"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2686"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="115.396"
|
||||
y="922.39398"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2688"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="264.327"
|
||||
y="1109.627"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2690"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="474.577"
|
||||
y="1223.783"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2692"
|
||||
transform="translate(147.4565)" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:italic;font-size:766.666px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Italic';fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:7.8"
|
||||
x="1003.8107"
|
||||
y="1163.4888"
|
||||
id="text288"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan286"
|
||||
x="1003.8107"
|
||||
y="1163.4888" /></text>
|
||||
<text
|
||||
x="946.01031"
|
||||
y="1500.8351"
|
||||
font-family="'Times New Roman', Times, serif"
|
||||
font-weight="bold"
|
||||
font-size="420px"
|
||||
id="text292"
|
||||
style="font-weight:bold;font-size:420px;font-family:'Times New Roman', Times, serif"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:233.333px;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
|
||||
id="tspan290">add2path</tspan></text>
|
||||
</g>
|
||||
<defs
|
||||
id="defs2708">
|
||||
<rect
|
||||
x="1144.3981"
|
||||
y="797.67157"
|
||||
width="915.91937"
|
||||
height="555.16339"
|
||||
id="rect44588" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="namedview2706"
|
||||
pagecolor="#f5e6c4"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.49895222"
|
||||
inkscape:cx="864.81227"
|
||||
inkscape:cy="918.92566"
|
||||
inkscape:window-width="1752"
|
||||
inkscape:window-height="1205"
|
||||
inkscape:window-x="1508"
|
||||
inkscape:window-y="107"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg2704"
|
||||
fit-margin-top="100"
|
||||
fit-margin-left="100"
|
||||
fit-margin-right="100"
|
||||
fit-margin-bottom="100"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<symbol
|
||||
id="window-icon"
|
||||
viewBox="0 0 372 300"
|
||||
transform="translate(-98.918502,49.633999)">
|
||||
<rect
|
||||
x="10"
|
||||
y="10"
|
||||
width="352"
|
||||
height="280"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:20"
|
||||
id="rect2665" />
|
||||
<line
|
||||
x1="10"
|
||||
y1="30"
|
||||
x2="362"
|
||||
y2="30"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:20"
|
||||
id="line2667" />
|
||||
</symbol>
|
||||
<circle
|
||||
cx="551.08148"
|
||||
cy="699.63397"
|
||||
r="20"
|
||||
style="display:none;fill:#ffffff;stroke:#ff0000;stroke-width:5"
|
||||
id="circle2696" />
|
||||
<circle
|
||||
cx="551.08148"
|
||||
cy="699.63397"
|
||||
r="600"
|
||||
style="display:none;fill:none;stroke:#0000ff;stroke-width:5"
|
||||
id="circle2698" />
|
||||
<rect
|
||||
x="-98.918503"
|
||||
y="49.633999"
|
||||
width="2922"
|
||||
height="1600"
|
||||
style="display:none;fill:none;stroke:#00ff00;stroke-width:10"
|
||||
id="rect2700" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text44586"
|
||||
style="font-size:40px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, ';white-space:pre;shape-inside:url(#rect44588);display:inline"
|
||||
transform="translate(-98.918502,49.633999)" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.1 KiB |
BIN
installers/macos/images/A2P_icon128.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
installers/macos/images/A2P_icon256.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
209
installers/macos/images/App_icon.svg
Normal file
@@ -0,0 +1,209 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
width="2000"
|
||||
height="2000"
|
||||
viewBox="0 0 2000 2000"
|
||||
version="1.1"
|
||||
id="svg2704"
|
||||
sodipodi:docname="App_icon.svg"
|
||||
inkscape:version="1.2 (dc2aeda, 2022-05-15)"
|
||||
inkscape:export-filename="App_icon512.png"
|
||||
inkscape:export-xdpi="24.576"
|
||||
inkscape:export-ydpi="24.576"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<g
|
||||
id="g1126"
|
||||
transform="translate(-23.756927,163.29152)">
|
||||
<text
|
||||
x="597.27948"
|
||||
y="997.78094"
|
||||
font-family="'Times New Roman', Times, serif"
|
||||
font-weight="bold"
|
||||
font-size="420px"
|
||||
id="text2702"
|
||||
style="font-weight:bold;font-size:420px;font-family:'Times New Roman', Times, serif"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:420px;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
|
||||
id="tspan25093">Medley</tspan></text>
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="1066.795"
|
||||
y="218.396"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2674"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="865.021"
|
||||
y="89.851997"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2676"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="629.06"
|
||||
y="50.366001"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2678"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="396.42899"
|
||||
y="106.215"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2680"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="204.11301"
|
||||
y="248.522"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2682"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="82.689003"
|
||||
y="454.659"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2684"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="51.462002"
|
||||
y="691.854"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2686"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="115.396"
|
||||
y="922.39398"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2688"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="264.327"
|
||||
y="1109.627"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2690"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="474.577"
|
||||
y="1223.783"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2692"
|
||||
transform="translate(147.4565)" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:italic;font-size:766.666px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Italic';fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:7.8"
|
||||
x="1003.8107"
|
||||
y="1163.4888"
|
||||
id="text288"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan286"
|
||||
x="1003.8107"
|
||||
y="1163.4888" /></text>
|
||||
<text
|
||||
x="1263.5646"
|
||||
y="1466.0958"
|
||||
font-family="'Times New Roman', Times, serif"
|
||||
font-weight="bold"
|
||||
font-size="420px"
|
||||
id="text292"
|
||||
style="font-weight:bold;font-size:420px;font-family:'Times New Roman', Times, serif"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:233.333px;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
|
||||
id="tspan290">app</tspan></text>
|
||||
</g>
|
||||
<defs
|
||||
id="defs2708">
|
||||
<rect
|
||||
x="1144.3981"
|
||||
y="797.67157"
|
||||
width="915.91937"
|
||||
height="555.16339"
|
||||
id="rect44588" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="namedview2706"
|
||||
pagecolor="#f5eddc"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.49895222"
|
||||
inkscape:cx="760.59387"
|
||||
inkscape:cy="1017.1315"
|
||||
inkscape:window-width="2286"
|
||||
inkscape:window-height="1205"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="53"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g1126"
|
||||
fit-margin-top="100"
|
||||
fit-margin-left="100"
|
||||
fit-margin-right="100"
|
||||
fit-margin-bottom="100"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<symbol
|
||||
id="window-icon"
|
||||
viewBox="0 0 372 300"
|
||||
transform="translate(-98.918502,49.633999)">
|
||||
<rect
|
||||
x="10"
|
||||
y="10"
|
||||
width="352"
|
||||
height="280"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:20"
|
||||
id="rect2665" />
|
||||
<line
|
||||
x1="10"
|
||||
y1="30"
|
||||
x2="362"
|
||||
y2="30"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:20"
|
||||
id="line2667" />
|
||||
</symbol>
|
||||
<circle
|
||||
cx="551.08148"
|
||||
cy="699.63397"
|
||||
r="20"
|
||||
style="display:none;fill:#ffffff;stroke:#ff0000;stroke-width:5"
|
||||
id="circle2696" />
|
||||
<circle
|
||||
cx="551.08148"
|
||||
cy="699.63397"
|
||||
r="600"
|
||||
style="display:none;fill:none;stroke:#0000ff;stroke-width:5"
|
||||
id="circle2698" />
|
||||
<rect
|
||||
x="-98.918503"
|
||||
y="49.633999"
|
||||
width="2922"
|
||||
height="1600"
|
||||
style="display:none;fill:none;stroke:#00ff00;stroke-width:10"
|
||||
id="rect2700" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text44586"
|
||||
style="font-size:40px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, ';white-space:pre;shape-inside:url(#rect44588);display:inline"
|
||||
transform="translate(-98.918502,49.633999)" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.1 KiB |
BIN
installers/macos/images/App_icon1024.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
installers/macos/images/App_icon512.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
209
installers/macos/images/Command_icon.svg
Normal file
@@ -0,0 +1,209 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
width="2000"
|
||||
height="2000"
|
||||
viewBox="0 0 2000 2000"
|
||||
version="1.1"
|
||||
id="svg2704"
|
||||
sodipodi:docname="Command_icon.svg"
|
||||
inkscape:version="1.2 (dc2aeda, 2022-05-15)"
|
||||
inkscape:export-filename="Command_icon256.png"
|
||||
inkscape:export-xdpi="12.288"
|
||||
inkscape:export-ydpi="12.288"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<g
|
||||
id="g1126"
|
||||
transform="translate(-23.756927,163.29152)">
|
||||
<text
|
||||
x="597.27948"
|
||||
y="997.78094"
|
||||
font-family="'Times New Roman', Times, serif"
|
||||
font-weight="bold"
|
||||
font-size="420px"
|
||||
id="text2702"
|
||||
style="font-weight:bold;font-size:420px;font-family:'Times New Roman', Times, serif"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:420px;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
|
||||
id="tspan25093">Medley</tspan></text>
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="1066.795"
|
||||
y="218.396"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2674"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="865.021"
|
||||
y="89.851997"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2676"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="629.06"
|
||||
y="50.366001"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2678"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="396.42899"
|
||||
y="106.215"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2680"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="204.11301"
|
||||
y="248.522"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2682"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="82.689003"
|
||||
y="454.659"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2684"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="51.462002"
|
||||
y="691.854"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2686"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="115.396"
|
||||
y="922.39398"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2688"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="264.327"
|
||||
y="1109.627"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2690"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="474.577"
|
||||
y="1223.783"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2692"
|
||||
transform="translate(147.4565)" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:italic;font-size:766.666px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Italic';fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:7.8"
|
||||
x="1003.8107"
|
||||
y="1163.4888"
|
||||
id="text288"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan286"
|
||||
x="1003.8107"
|
||||
y="1163.4888" /></text>
|
||||
<text
|
||||
x="936.01031"
|
||||
y="1500.8351"
|
||||
font-family="'Times New Roman', Times, serif"
|
||||
font-weight="bold"
|
||||
font-size="420px"
|
||||
id="text292"
|
||||
style="font-weight:bold;font-size:420px;font-family:'Times New Roman', Times, serif"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:233.333px;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
|
||||
id="tspan290">command</tspan></text>
|
||||
</g>
|
||||
<defs
|
||||
id="defs2708">
|
||||
<rect
|
||||
x="1144.3981"
|
||||
y="797.67157"
|
||||
width="915.91937"
|
||||
height="555.16339"
|
||||
id="rect44588" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="namedview2706"
|
||||
pagecolor="#f5ebd3"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.49895222"
|
||||
inkscape:cx="1195.5053"
|
||||
inkscape:cy="916.92146"
|
||||
inkscape:window-width="1752"
|
||||
inkscape:window-height="1205"
|
||||
inkscape:window-x="1099"
|
||||
inkscape:window-y="119"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g1126"
|
||||
fit-margin-top="100"
|
||||
fit-margin-left="100"
|
||||
fit-margin-right="100"
|
||||
fit-margin-bottom="100"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<symbol
|
||||
id="window-icon"
|
||||
viewBox="0 0 372 300"
|
||||
transform="translate(-98.918502,49.633999)">
|
||||
<rect
|
||||
x="10"
|
||||
y="10"
|
||||
width="352"
|
||||
height="280"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:20"
|
||||
id="rect2665" />
|
||||
<line
|
||||
x1="10"
|
||||
y1="30"
|
||||
x2="362"
|
||||
y2="30"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:20"
|
||||
id="line2667" />
|
||||
</symbol>
|
||||
<circle
|
||||
cx="551.08148"
|
||||
cy="699.63397"
|
||||
r="20"
|
||||
style="display:none;fill:#ffffff;stroke:#ff0000;stroke-width:5"
|
||||
id="circle2696" />
|
||||
<circle
|
||||
cx="551.08148"
|
||||
cy="699.63397"
|
||||
r="600"
|
||||
style="display:none;fill:none;stroke:#0000ff;stroke-width:5"
|
||||
id="circle2698" />
|
||||
<rect
|
||||
x="-98.918503"
|
||||
y="49.633999"
|
||||
width="2922"
|
||||
height="1600"
|
||||
style="display:none;fill:none;stroke:#00ff00;stroke-width:10"
|
||||
id="rect2700" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text44586"
|
||||
style="font-size:40px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, ';white-space:pre;shape-inside:url(#rect44588);display:inline"
|
||||
transform="translate(-98.918502,49.633999)" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.1 KiB |
BIN
installers/macos/images/Command_icon128.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
installers/macos/images/Command_icon256.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
installers/macos/images/Install_Message.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
1556
installers/macos/images/Install_Message.svg
Normal file
|
After Width: | Height: | Size: 144 KiB |
209
installers/macos/images/Install_icon.svg
Normal file
@@ -0,0 +1,209 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
width="2000"
|
||||
height="2000"
|
||||
viewBox="0 0 2000 2000"
|
||||
version="1.1"
|
||||
id="svg2704"
|
||||
sodipodi:docname="Install_icon.svg"
|
||||
inkscape:version="1.2 (dc2aeda, 2022-05-15)"
|
||||
inkscape:export-filename="Install_icon256.png"
|
||||
inkscape:export-xdpi="6.1440001"
|
||||
inkscape:export-ydpi="6.1440001"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<g
|
||||
id="g1126"
|
||||
transform="translate(-23.756927,163.29152)">
|
||||
<text
|
||||
x="597.27948"
|
||||
y="997.78094"
|
||||
font-family="'Times New Roman', Times, serif"
|
||||
font-weight="bold"
|
||||
font-size="420px"
|
||||
id="text2702"
|
||||
style="font-weight:bold;font-size:420px;font-family:'Times New Roman', Times, serif"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:420px;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
|
||||
id="tspan25093">Medley</tspan></text>
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="1066.795"
|
||||
y="218.396"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2674"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="865.021"
|
||||
y="89.851997"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2676"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="629.06"
|
||||
y="50.366001"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2678"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="396.42899"
|
||||
y="106.215"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2680"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="204.11301"
|
||||
y="248.522"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2682"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="82.689003"
|
||||
y="454.659"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2684"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="51.462002"
|
||||
y="691.854"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2686"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="115.396"
|
||||
y="922.39398"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2688"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="264.327"
|
||||
y="1109.627"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2690"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="474.577"
|
||||
y="1223.783"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2692"
|
||||
transform="translate(147.4565)" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:italic;font-size:766.666px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Italic';fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:7.8"
|
||||
x="1003.8107"
|
||||
y="1163.4888"
|
||||
id="text288"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan286"
|
||||
x="1003.8107"
|
||||
y="1163.4888" /></text>
|
||||
<text
|
||||
x="970.08179"
|
||||
y="1540.9191"
|
||||
font-family="'Times New Roman', Times, serif"
|
||||
font-weight="bold"
|
||||
font-size="420px"
|
||||
id="text292"
|
||||
style="font-weight:bold;font-size:366.667px;font-family:'Times New Roman', Times, serif"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:366.667px;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
|
||||
id="tspan290">install</tspan></text>
|
||||
</g>
|
||||
<defs
|
||||
id="defs2708">
|
||||
<rect
|
||||
x="1144.3981"
|
||||
y="797.67157"
|
||||
width="915.91937"
|
||||
height="555.16339"
|
||||
id="rect44588" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="namedview2706"
|
||||
pagecolor="#f5ebd3"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.49895222"
|
||||
inkscape:cx="1199.5137"
|
||||
inkscape:cy="920.92986"
|
||||
inkscape:window-width="1752"
|
||||
inkscape:window-height="1205"
|
||||
inkscape:window-x="1099"
|
||||
inkscape:window-y="63"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g1126"
|
||||
fit-margin-top="100"
|
||||
fit-margin-left="100"
|
||||
fit-margin-right="100"
|
||||
fit-margin-bottom="100"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<symbol
|
||||
id="window-icon"
|
||||
viewBox="0 0 372 300"
|
||||
transform="translate(-98.918502,49.633999)">
|
||||
<rect
|
||||
x="10"
|
||||
y="10"
|
||||
width="352"
|
||||
height="280"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:20"
|
||||
id="rect2665" />
|
||||
<line
|
||||
x1="10"
|
||||
y1="30"
|
||||
x2="362"
|
||||
y2="30"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:20"
|
||||
id="line2667" />
|
||||
</symbol>
|
||||
<circle
|
||||
cx="551.08148"
|
||||
cy="699.63397"
|
||||
r="20"
|
||||
style="display:none;fill:#ffffff;stroke:#ff0000;stroke-width:5"
|
||||
id="circle2696" />
|
||||
<circle
|
||||
cx="551.08148"
|
||||
cy="699.63397"
|
||||
r="600"
|
||||
style="display:none;fill:none;stroke:#0000ff;stroke-width:5"
|
||||
id="circle2698" />
|
||||
<rect
|
||||
x="-98.918503"
|
||||
y="49.633999"
|
||||
width="2922"
|
||||
height="1600"
|
||||
style="display:none;fill:none;stroke:#00ff00;stroke-width:10"
|
||||
id="rect2700" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text44586"
|
||||
style="font-size:40px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, ';white-space:pre;shape-inside:url(#rect44588);display:inline"
|
||||
transform="translate(-98.918502,49.633999)" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.1 KiB |
BIN
installers/macos/images/Install_icon128.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
installers/macos/images/Install_icon256.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
installers/macos/images/MedleyIcon.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
199
installers/macos/images/MedleyIcon.svg
Normal file
@@ -0,0 +1,199 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
width="2000"
|
||||
height="2000"
|
||||
viewBox="0 0 2000 2000"
|
||||
version="1.1"
|
||||
id="svg2704"
|
||||
sodipodi:docname="MedleyIcon.svg"
|
||||
inkscape:version="1.2 (dc2aeda, 2022-05-15)"
|
||||
inkscape:export-filename="C:\Users\Frank\Dev\il\logos\MedleyIcon256.png"
|
||||
inkscape:export-xdpi="12.287999"
|
||||
inkscape:export-ydpi="12.287999"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<g
|
||||
id="g1126"
|
||||
transform="translate(-23.756927,163.29152)">
|
||||
<text
|
||||
x="597.27948"
|
||||
y="997.78094"
|
||||
font-family="'Times New Roman', Times, serif"
|
||||
font-weight="bold"
|
||||
font-size="420px"
|
||||
id="text2702"
|
||||
style="font-weight:bold;font-size:420px;font-family:'Times New Roman', Times, serif"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:420px;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
|
||||
id="tspan25093">Medley</tspan></text>
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="1066.795"
|
||||
y="218.396"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2674"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="865.021"
|
||||
y="89.851997"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2676"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="629.06"
|
||||
y="50.366001"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2678"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="396.42899"
|
||||
y="106.215"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2680"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="204.11301"
|
||||
y="248.522"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2682"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="82.689003"
|
||||
y="454.659"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2684"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="51.462002"
|
||||
y="691.854"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2686"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="115.396"
|
||||
y="922.39398"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2688"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="264.327"
|
||||
y="1109.627"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2690"
|
||||
transform="translate(147.4565)" />
|
||||
<use
|
||||
xlink:href="#window-icon"
|
||||
x="474.577"
|
||||
y="1223.783"
|
||||
width="372"
|
||||
height="300"
|
||||
id="use2692"
|
||||
transform="translate(147.4565)" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:italic;font-size:766.666px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Italic';fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:7.8"
|
||||
x="1003.8107"
|
||||
y="1163.4888"
|
||||
id="text288"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan286"
|
||||
x="1003.8107"
|
||||
y="1163.4888" /></text>
|
||||
</g>
|
||||
<defs
|
||||
id="defs2708">
|
||||
<rect
|
||||
x="1144.3981"
|
||||
y="797.67157"
|
||||
width="915.91937"
|
||||
height="555.16339"
|
||||
id="rect44588" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="namedview2706"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.49895222"
|
||||
inkscape:cx="1302.7299"
|
||||
inkscape:cy="918.92566"
|
||||
inkscape:window-width="1752"
|
||||
inkscape:window-height="1205"
|
||||
inkscape:window-x="172"
|
||||
inkscape:window-y="96"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g1126"
|
||||
fit-margin-top="100"
|
||||
fit-margin-left="100"
|
||||
fit-margin-right="100"
|
||||
fit-margin-bottom="100"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<symbol
|
||||
id="window-icon"
|
||||
viewBox="0 0 372 300"
|
||||
transform="translate(-98.918502,49.633999)">
|
||||
<rect
|
||||
x="10"
|
||||
y="10"
|
||||
width="352"
|
||||
height="280"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:20"
|
||||
id="rect2665" />
|
||||
<line
|
||||
x1="10"
|
||||
y1="30"
|
||||
x2="362"
|
||||
y2="30"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:20"
|
||||
id="line2667" />
|
||||
</symbol>
|
||||
<circle
|
||||
cx="551.08148"
|
||||
cy="699.63397"
|
||||
r="20"
|
||||
style="display:none;fill:#ffffff;stroke:#ff0000;stroke-width:5"
|
||||
id="circle2696" />
|
||||
<circle
|
||||
cx="551.08148"
|
||||
cy="699.63397"
|
||||
r="600"
|
||||
style="display:none;fill:none;stroke:#0000ff;stroke-width:5"
|
||||
id="circle2698" />
|
||||
<rect
|
||||
x="-98.918503"
|
||||
y="49.633999"
|
||||
width="2922"
|
||||
height="1600"
|
||||
style="display:none;fill:none;stroke:#00ff00;stroke-width:10"
|
||||
id="rect2700" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text44586"
|
||||
style="font-size:40px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, ';white-space:pre;shape-inside:url(#rect44588)"
|
||||
transform="translate(-98.918502,49.633999)" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.5 KiB |
BIN
installers/macos/images/MedleyIcon128.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
installers/macos/images/MedleyIcon256.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
29
installers/macos/pkg/Distribution.xml
Normal file
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<installer-gui-script minSpecVersion="1">
|
||||
<pkg-ref id="org.interlisp.Medley"/>
|
||||
<options customize="always" require-scripts="false" hostArchitectures="x86_64,arm64" />
|
||||
<domains enable_anywhere="false" enable_currentUserHome="true" enable_localSystem="false" />
|
||||
<choices-outline>
|
||||
<line choice="default">
|
||||
<line choice="org.interlisp.Medley" />
|
||||
</line>
|
||||
<line choice="Location" />
|
||||
</choices-outline>
|
||||
<choice id="default" visible="false" />
|
||||
<choice id="org.interlisp.Medley"
|
||||
description="D Install for all Users?"
|
||||
title="T Install for all users?"
|
||||
customLocation="tests"
|
||||
>
|
||||
<pkg-ref id="org.interlisp.Medley"/>
|
||||
</choice>
|
||||
<choice id="Location"
|
||||
description="D Install for all Users?"
|
||||
title="T Install for all users?"
|
||||
customLocation="tests"
|
||||
>
|
||||
<pkg-ref id="org.interlisp.Medley"/>
|
||||
</choice>
|
||||
<pkg-ref id="org.interlisp.Medley" version="01.01.01" onConclusion="none">Medley-base.pkg</pkg-ref>
|
||||
</installer-gui-script>
|
||||
|
||||
43
installers/macos/scripts/medley_add2path
Executable file
@@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
|
||||
# functions to discover what directory this script is being executed from
|
||||
get_abs_filename() {
|
||||
# $1 : relative filename
|
||||
echo "$(cd "$(dirname "$1")" && pwd)/$(basename "$1")"
|
||||
}
|
||||
|
||||
get_script_dir() {
|
||||
|
||||
# call this with ${BASH_SOURCE[0]:-$0} as its (only) parameter
|
||||
|
||||
# set -x
|
||||
|
||||
local SCRIPT_PATH="$( get_abs_filename "$1" )";
|
||||
|
||||
pushd . > '/dev/null';
|
||||
|
||||
while [ -h "$SCRIPT_PATH" ];
|
||||
do
|
||||
cd "$( dirname -- "$SCRIPT_PATH"; )";
|
||||
SCRIPT_PATH="$( readlink -f -- "$SCRIPT_PATH"; )";
|
||||
done
|
||||
|
||||
cd "$( dirname -- "$SCRIPT_PATH"; )" > '/dev/null';
|
||||
SCRIPT_PATH="$( pwd; )";
|
||||
|
||||
popd > '/dev/null';
|
||||
|
||||
# set +x
|
||||
|
||||
echo "${SCRIPT_PATH}"
|
||||
}
|
||||
|
||||
SCRIPTDIR=$(get_script_dir "${BASH_SOURCE[0]:-$0}")
|
||||
|
||||
touch ~/.profile
|
||||
cat >> ~/.profile <<EOF
|
||||
PATH=\${PATH}:${SCRIPTDIR}
|
||||
EOF
|
||||
rm ${SCRIPTDIR}/medley_add2path.command
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -34,7 +34,7 @@ SolidCompression=yes
|
||||
; 64-bit Program Files directory and the 64-bit view of the registry.
|
||||
ArchitecturesInstallIn64BitMode=x64
|
||||
OutputDir="."
|
||||
OutputBaseFilename="medley-install_{#version}_{#x86_or_x64}"
|
||||
OutputBaseFilename="medley-full-{#version}-windows-{#x86_or_x64}"
|
||||
SetupIconFile="Medley.ico"
|
||||
DisableWelcomePage=no
|
||||
MissingRunOnceIdsWarning=no
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
@@ -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))
|
||||
@@ -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))
|
||||
276
library/PDFSTREAM
Normal 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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
625
library/virtualkeyboards/DANDELIONKEYBOARDS
Normal 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
|
||||
624
library/virtualkeyboards/DORADOKEYBOARDS
Normal 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
|
||||
631
library/virtualkeyboards/DOVEKEYBOARDS
Normal 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
|
||||
@@ -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
|
||||
BIN
library/virtualkeyboards/KEYBOARDEDITOR.LCOM
Normal 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
|
||||
BIN
library/virtualkeyboards/VIRTUALKEYBOARDS.LCOM
Normal file
BIN
library/virtualkeyboards/XKEYBOARDS
Normal 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
@@ -1,12 +1,12 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED " 3-Oct-2022 12:03:37"
|
||||
{DSK}<users>kaplan>local>medley3.5>working-medley>lispusers>COMPAREDIRECTORIES.;252 128695
|
||||
(FILECREATED "29-Sep-2023 17:25:57" {WMEDLEY}<lispusers>COMPAREDIRECTORIES.;257 130870
|
||||
|
||||
:CHANGES-TO (FNS CDFILES)
|
||||
:EDIT-BY rmk
|
||||
|
||||
:PREVIOUS-DATE "14-Aug-2022 12:13:45"
|
||||
{DSK}<users>kaplan>local>medley3.5>working-medley>lispusers>COMPAREDIRECTORIES.;250)
|
||||
:CHANGES-TO (FNS COMPAREDIRECTORIES COMPAREDIRECTORIES.INFOS)
|
||||
|
||||
:PREVIOUS-DATE "28-Sep-2023 23:20:57" {WMEDLEY}<lispusers>COMPAREDIRECTORIES.;256)
|
||||
|
||||
|
||||
(* ; "
|
||||
@@ -16,7 +16,7 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
(PRETTYCOMPRINT COMPAREDIRECTORIESCOMS)
|
||||
|
||||
(RPAQQ COMPAREDIRECTORIESCOMS
|
||||
(
|
||||
[
|
||||
(* ;; "Compare the contents of two directories.")
|
||||
|
||||
(FNS COMPAREDIRECTORIES COMPAREDIRECTORIES.INFOS COMPAREDIRECTORIES.CANDIDATES
|
||||
@@ -25,7 +25,7 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
(FNS CDFILES CDFILES.MATCH CDFILES.PATS)
|
||||
(FNS CDPRINT CDPRINT.HEADER CDPRINT.LINE CDPRINT.MAXWIDTHS CDPRINT.COLHEADERS CDPRINT.COLUMNS
|
||||
CDTEDIT)
|
||||
(FNS CDMAP CDENTRY CDSUBSET CDMERGE CDMERGE.COMMON)
|
||||
(FNS CDMAP CDENTRY CDSUBSET CDMERGE CDMERGE.COMMON CD.SORT)
|
||||
(FNS BINCOMP EOLTYPE EOLTYPE.SHOW)
|
||||
(RECORDS CDMAXNCHARS CDVALUE CDENTRY CDINFO)
|
||||
|
||||
@@ -56,7 +56,8 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
CDBROWSER-COPY CDBROWSER-DELETE-FILE CD-SWAPDIRS)
|
||||
(VARS CDTABLEBROWSER.MENUITEMS)
|
||||
(FILES (SYSLOAD)
|
||||
COMPARESOURCES COMPARETEXT))))
|
||||
COMPARESOURCES COMPARETEXT)
|
||||
(P (MOVD? 'NILL 'TEDIT.FILEDATE])
|
||||
|
||||
|
||||
|
||||
@@ -66,7 +67,9 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
|
||||
(COMPAREDIRECTORIES
|
||||
[LAMBDA (DIR1 DIR2 SELECT INCLUDEDFILES EXCLUDEDFILES USEDIRECTORYDATE OUTPUTFILE ALLVERSIONS
|
||||
FIXDIRECTORYDATES) (* ; "Edited 29-Mar-2022 11:50 by rmk")
|
||||
FIXDIRECTORYDATES) (* ; "Edited 29-Sep-2023 17:25 by rmk")
|
||||
(* ; "Edited 5-Apr-2023 10:12 by rmk")
|
||||
(* ; "Edited 29-Mar-2022 11:50 by rmk")
|
||||
(* ; "Edited 23-Feb-2022 21:10 by rmk")
|
||||
(* ; "Edited 4-Jan-2022 12:09 by rmk")
|
||||
(* ; "Edited 31-Oct-2021 11:01 by rmk:")
|
||||
@@ -120,7 +123,7 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
(CDPRINT.HEADER DIR1 DIR2 SELECT DATE T)
|
||||
(PRINTOUT T " ... ")
|
||||
(SETQ INFOS1 (COMPAREDIRECTORIES.INFOS DIR1 INCLUDEDFILES EXCLUDEDFILES ALLVERSIONS DEPTH1
|
||||
USEDIRECTORYDATE))
|
||||
USEDIRECTORYDATE (MEMB 'AUTHOR SELECT)))
|
||||
(SETQ INFOS2 (COMPAREDIRECTORIES.INFOS DIR2 INCLUDEDFILES EXCLUDEDFILES ALLVERSIONS DEPTH2
|
||||
USEDIRECTORYDATE))
|
||||
|
||||
@@ -138,7 +141,7 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
|
||||
(SETQ CDENTRIES (SORT (CDENTRIES.SELECT (COMPAREDIRECTORIES.CANDIDATES INFOS1 INFOS2)
|
||||
SELECT)
|
||||
T))
|
||||
(FUNCTION CD.SORT)))
|
||||
(PRINTOUT T (LENGTH CDENTRIES)
|
||||
" entries" T)
|
||||
(REPLACE CDENTRIES OF CDVALUE WITH CDENTRIES)
|
||||
@@ -148,7 +151,9 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
(RETURN (CDPRINT CDVALUE OUTPUTFILE NIL (MEMB 'AUTHOR SELECT])
|
||||
|
||||
(COMPAREDIRECTORIES.INFOS
|
||||
[LAMBDA (DIR INCLUDEDFILES EXCLUDEDFILES ALLVERSIONS DEPTH USEDIRECTORYDATE)
|
||||
[LAMBDA (DIR INCLUDEDFILES EXCLUDEDFILES ALLVERSIONS DEPTH USEDIRECTORYDATE INCLUDEAUTHOR)
|
||||
|
||||
(* ;; "Edited 29-Sep-2023 17:25 by rmk")
|
||||
|
||||
(* ;; "Edited 22-May-2022 14:17 by rmk")
|
||||
|
||||
@@ -176,7 +181,7 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
ELSE (SETFILEINFO STREAM 'CREATIONDATE LDATE)
|
||||
LDATE)))
|
||||
LENGTH _ (GETFILEINFO STREAM 'LENGTH)
|
||||
AUTHOR _ (GETFILEINFO STREAM 'AUTHOR)
|
||||
AUTHOR _ (AND INCLUDEAUTHOR (GETFILEINFO STREAM 'AUTHOR))
|
||||
TYPE _ TYPE
|
||||
EOL _ (EOLTYPE STREAM)))
|
||||
(CLOSEF? STREAM))
|
||||
@@ -322,7 +327,8 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
CDE])
|
||||
|
||||
(COMPAREDIRECTORIES.INFOS.TYPE
|
||||
[LAMBDA (FILE) (* ; "Edited 22-May-2022 14:27 by rmk")
|
||||
[LAMBDA (FILE) (* ; "Edited 28-Sep-2023 23:09 by rmk")
|
||||
(* ; "Edited 22-May-2022 14:27 by rmk")
|
||||
(* ; "Edited 25-Apr-2022 09:02 by rmk")
|
||||
(* ; "Edited 4-Jan-2022 13:10 by rmk")
|
||||
(* ; "Edited 12-Dec-2021 22:50 by rmk")
|
||||
@@ -330,9 +336,11 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
(CL:MULTIPLE-VALUE-SETQ (TYPE DATE)
|
||||
(LISPFILETYPE FILE))
|
||||
(CL:UNLESS TYPE
|
||||
(SETQ TYPE (IF (PRINTFILETYPE FILE)
|
||||
ELSEIF (MEMB (FILENAMEFIELD FILE 'EXTENSION)
|
||||
'(TXT TEXT SH MD C))
|
||||
(SETQ TYPE (IF (SETQ DATE (TEDIT.FILEDATE FILE))
|
||||
THEN 'TEDIT
|
||||
ELSEIF (PRINTFILETYPE FILE)
|
||||
ELSE (MEMB (FILENAMEFIELD FILE 'EXTENSION)
|
||||
'(TXT TEXT SH MD C))
|
||||
THEN 'TEXT
|
||||
ELSE 'OTHER)))
|
||||
(CL:VALUES TYPE DATE])
|
||||
@@ -388,7 +396,8 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
(DEFINEQ
|
||||
|
||||
(CDFILES
|
||||
[LAMBDA (DIR INCLUDEDFILES EXCLUDEDFILES ALLVERSIONS DEPTH)(* ; "Edited 3-Oct-2022 12:03 by rmk")
|
||||
[LAMBDA (DIR INCLUDEDFILES EXCLUDEDFILES ALLVERSIONS DEPTH)(* ; "Edited 17-Jun-2023 23:04 by rmk")
|
||||
(* ; "Edited 3-Oct-2022 12:03 by rmk")
|
||||
(* ; "Edited 25-Apr-2022 08:42 by rmk")
|
||||
(* ; "Edited 5-Mar-2022 15:05 by rmk")
|
||||
(* ; "Edited 16-Oct-2020 13:42 by rmk:")
|
||||
@@ -457,7 +466,7 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
|
||||
(* ;; "We enumerate all the files, checking to see that")
|
||||
|
||||
(FOR FULLNAME NAME EXT SUBDIR UNPACK THISDEPTH (STARTPOS _ (ADD1 (NCHARS DIR)))
|
||||
(FOR FULLNAME NAME EXT SUBDIR UNPACK THISDEPTH (STARTPOS _ (IPLUS 2 (NCHARS DIR)))
|
||||
IN (DIRECTORY ENUMPAT `(DEPTH ,DEPTH COLLECT)
|
||||
NIL
|
||||
(CL:IF ALLVERSIONS
|
||||
@@ -509,7 +518,8 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
(ILEQ THISDEPTH (CADDDR P])
|
||||
|
||||
(CDFILES.PATS
|
||||
[LAMBDA (PATTERNS) (* ; "Edited 23-Dec-2021 17:02 by rmk")
|
||||
[LAMBDA (PATTERNS) (* ; "Edited 17-Jun-2023 23:36 by rmk")
|
||||
(* ; "Edited 23-Dec-2021 17:02 by rmk")
|
||||
|
||||
(* ;; "Returns (NAME EXT SUBDIR DEPTH) items where NAME or EXT may be the wildcard *, SD is the subdirectory (if any) and DEPTH is the number of / or > in the subdirectory")
|
||||
|
||||
@@ -519,38 +529,47 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
|
||||
(* * NIL 1)
|
||||
)
|
||||
ELSE (FOR P N E SD D UNPACK INSIDE PATTERNS
|
||||
JOIN (SETQ UNPACK (UNPACKFILENAME P))
|
||||
(SETQ SD (LISTGET UNPACK 'SUBDIRECTORY))
|
||||
ELSE (FOR P N E SD DEPTH UNPACK INSIDE PATTERNS
|
||||
JOIN (SETQ UNPACK (UNPACKFILENAME.STRING P)) (* ;
|
||||
"String so we can tell the difference between x and x.")
|
||||
[SETQ SD (MKATOM (LISTGET UNPACK 'SUBDIRECTORY]
|
||||
|
||||
(* ;; "Count the subdirectory depth")
|
||||
|
||||
[SETQ D (IF (EQ SD '*)
|
||||
THEN MAX.SMALLP
|
||||
ELSE (FOR I (CNT _ 1) FROM 1 DO (SELCHARQ (NTHCHARCODE SD I)
|
||||
((/ >)
|
||||
(ADD CNT 1))
|
||||
(NIL (RETURN CNT))
|
||||
NIL]
|
||||
[SETQ DEPTH (IF (EQ SD '*)
|
||||
THEN MAX.SMALLP
|
||||
ELSE (FOR I (CNT _ 1) FROM 1 DO (SELCHARQ (NTHCHARCODE SD I)
|
||||
((/ >)
|
||||
(ADD CNT 1))
|
||||
(NIL (RETURN CNT))
|
||||
NIL]
|
||||
(SETQ N (LISTGET UNPACK 'NAME))
|
||||
(SETQ N (if (NULL N)
|
||||
then '*
|
||||
elseif (NEQ 0 (NCHARS N))
|
||||
then (MKATOM N)))
|
||||
(SETQ E (LISTGET UNPACK 'EXTENSION))
|
||||
(IF [OR (AND (STRING.EQUAL N 'COM)
|
||||
(SETQ E (if (NULL E)
|
||||
then '*
|
||||
elseif (NEQ 0 (NCHARS E))
|
||||
then (MKATOM E)))
|
||||
(if [OR (AND (STRING.EQUAL N 'COM)
|
||||
(NULL E))
|
||||
(AND (STRING.EQUAL E 'COM)
|
||||
(MEMB N ' (* NIL)]
|
||||
THEN (FOR CE IN *COMPILED-EXTENSIONS* COLLECT (LIST '* CE SD D))
|
||||
THEN (FOR CE IN *COMPILED-EXTENSIONS* COLLECT (LIST '* CE SD DEPTH))
|
||||
ELSE (CONS (IF N
|
||||
THEN (LIST N E SD D)
|
||||
THEN (LIST N E SD DEPTH)
|
||||
ELSEIF E
|
||||
THEN
|
||||
|
||||
(* ;; "This is the case .XXX, which presumably identifies a dotted file. If this is supposed to be all files with extension XXX, it shoud be specified as *.XXX, the case above. So we move .E into the N field.")
|
||||
|
||||
(LIST (PACK* '%. E)
|
||||
NIL SD D)
|
||||
NIL SD DEPTH)
|
||||
ELSE `
|
||||
|
||||
(* * (\, SD) (\, D))
|
||||
(* * (\, SD) (\, DEPTH))
|
||||
])
|
||||
)
|
||||
(DEFINEQ
|
||||
@@ -881,7 +900,8 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
WHEN (APPLY* FN CDE) COLLECT CDE])
|
||||
|
||||
(CDMERGE
|
||||
[LAMBDA (CDVALUES) (* ; "Edited 24-Jan-2022 17:01 by rmk")
|
||||
[LAMBDA (CDVALUES) (* ; "Edited 5-Apr-2023 10:10 by rmk")
|
||||
(* ; "Edited 24-Jan-2022 17:01 by rmk")
|
||||
|
||||
(* ;; "This merges a collection of CDVALUES on different directories into a single CDVALUE with the union of the CDENTRIES, provided that they have the same selection criteria. The merged directories will be the minimal common prefix of all of the entries on each side, and the residual of the directory will be packed onto all the names.")
|
||||
|
||||
@@ -919,8 +939,8 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
"Merge the CDENTRIES with matchnames pulled back so that subdirectories show up")
|
||||
|
||||
(SETQ MERGEDENTRIES
|
||||
(SORT [FOR CDV NC1 _ (ADD1 (NCHARS DIR1))
|
||||
NC2 _ (ADD1 (NCHARS DIR2)) IN (CDR CDS)
|
||||
(SORT [FOR CDV (NC1 _ (ADD1 (NCHARS DIR1)))
|
||||
(NC2 _ (ADD1 (NCHARS DIR2))) IN (CDR CDS)
|
||||
JOIN (FOR CDE IN (FETCH CDENTRIES OF CDV)
|
||||
COLLECT (CREATE CDENTRY
|
||||
USING CDE MATCHNAME _
|
||||
@@ -933,7 +953,7 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
OF (FETCH INFO2
|
||||
OF CDE))
|
||||
NC2]
|
||||
T))
|
||||
(FUNCTION CD.SORT)))
|
||||
(CD.UPDATEWIDTHS (CREATE CDVALUE
|
||||
CDDIR1 _ DIR1
|
||||
CDDIR2 _ DIR2
|
||||
@@ -962,6 +982,19 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
(L-CASECODE CY] DO (RETURN (CL:IF (EQ I 1)
|
||||
""
|
||||
(SUBSTRING DIRX 1 LASTDIRPOS))])
|
||||
|
||||
(CD.SORT
|
||||
[LAMBDA (ENTRY1 ENTRY2) (* ; "Edited 5-Apr-2023 10:15 by rmk")
|
||||
|
||||
(* ;; "Groups same file with different extensions together. FOO and FOO.LCOM together, even if FOO-FUM exists (hyphen comes before period).")
|
||||
|
||||
(LET ((M1 (FETCH MATCHNAME OF ENTRY1))
|
||||
(M2 (FETCH MATCHNAME OF ENTRY2))
|
||||
ORDER)
|
||||
(CL:IF [EQ 'EQUAL (SETQ ORDER (ALPHORDER (PACKFILENAME 'EXTENSION NIL 'BODY M1)
|
||||
(PACKFILENAME 'EXTENSION NIL 'BODY M2]
|
||||
(ALPHORDER M1 M2)
|
||||
ORDER)])
|
||||
)
|
||||
(DEFINEQ
|
||||
|
||||
@@ -2154,28 +2187,30 @@ Copyright (c) 1985-1988, 1990, 1994, 1998, 2018, 2020-2021 by Venue & Xerox Corp
|
||||
|
||||
(FILESLOAD (SYSLOAD)
|
||||
COMPARESOURCES COMPARETEXT)
|
||||
|
||||
(MOVD? 'NILL 'TEDIT.FILEDATE)
|
||||
(PUTPROPS COMPAREDIRECTORIES COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1987 1988 1990 1994 1998
|
||||
2018 2020 2021))
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (2624 22181 (COMPAREDIRECTORIES 2634 . 7467) (COMPAREDIRECTORIES.INFOS 7469 . 10343) (
|
||||
COMPAREDIRECTORIES.CANDIDATES 10345 . 13730) (CDENTRIES.SELECT 13732 . 18507) (
|
||||
COMPAREDIRECTORIES.INFOS.TYPE 18509 . 19415) (MATCHNAME 19417 . 20097) (CD.INSURECDVALUE 20099 . 21713
|
||||
) (CD.UPDATEWIDTHS 21715 . 22179)) (22182 32000 (CDFILES 22192 . 28094) (CDFILES.MATCH 28096 . 29721)
|
||||
(CDFILES.PATS 29723 . 31998)) (32001 49822 (CDPRINT 32011 . 34528) (CDPRINT.HEADER 34530 . 35427) (
|
||||
CDPRINT.LINE 35429 . 38661) (CDPRINT.MAXWIDTHS 38663 . 42778) (CDPRINT.COLHEADERS 42780 . 44065) (
|
||||
CDPRINT.COLUMNS 44067 . 49187) (CDTEDIT 49189 . 49820)) (49823 58192 (CDMAP 49833 . 51265) (CDENTRY
|
||||
51267 . 51576) (CDSUBSET 51578 . 53017) (CDMERGE 53019 . 56873) (CDMERGE.COMMON 56875 . 58190)) (58193
|
||||
65731 (BINCOMP 58203 . 62492) (EOLTYPE 62494 . 65056) (EOLTYPE.SHOW 65058 . 65729)) (66259 78786 (
|
||||
FIND-UNCOMPILED-FILES 66269 . 69912) (FIND-UNSOURCED-FILES 69914 . 72298) (FIND-SOURCE-FILES 72300 .
|
||||
74038) (FIND-COMPILED-FILES 74040 . 75917) (FIND-UNLOADED-FILES 75919 . 76772) (FIND-LOADED-FILES
|
||||
76774 . 77202) (FIND-MULTICOMPILED-FILES 77204 . 78784)) (78787 87218 (CREATED-AS 78797 . 83594) (
|
||||
SOURCE-FOR-COMPILED-P 83596 . 86523) (COMPILE-SOURCE-DATE-DIFF 86525 . 87216)) (87219 97525 (
|
||||
FIX-DIRECTORY-DATES 87229 . 90222) (FIX-EQUIV-DATES 90224 . 91749) (COPY-COMPARED-FILES 91751 . 93572)
|
||||
(COPY-MISSING-FILES 93574 . 95731) (COMPILED-ON-SAME-SOURCE 95733 . 97523)) (97719 105557 (CDBROWSER
|
||||
97729 . 101656) (CDBROWSER.STRINGS 101658 . 105555)) (105719 107455 (CD.TABLEITEM 105729 . 105949) (
|
||||
CD.TABLEITEM.PRINTFN 105951 . 106150) (CD.TABLEITEM.COPYFN 106152 . 107210) (
|
||||
CDTABLEBROWSER.HEADING.REPAINTFN 107212 . 107453)) (107456 128111 (CDTABLEBROWSER.WHENSELECTEDFN
|
||||
107466 . 107934) (CD.COMMANDSELECTEDFN 107936 . 113037) (CD-MENUFN 113039 . 117350) (CD-COMPARE-FILES
|
||||
117352 . 120704) (CDBROWSER-COPY 120706 . 124375) (CDBROWSER-DELETE-FILE 124377 . 127590) (CD-SWAPDIRS
|
||||
127592 . 128109)))))
|
||||
(FILEMAP (NIL (2651 22769 (COMPAREDIRECTORIES 2661 . 7751) (COMPAREDIRECTORIES.INFOS 7753 . 10711) (
|
||||
COMPAREDIRECTORIES.CANDIDATES 10713 . 14098) (CDENTRIES.SELECT 14100 . 18875) (
|
||||
COMPAREDIRECTORIES.INFOS.TYPE 18877 . 20003) (MATCHNAME 20005 . 20685) (CD.INSURECDVALUE 20687 . 22301
|
||||
) (CD.UPDATEWIDTHS 22303 . 22767)) (22770 33392 (CDFILES 22780 . 28794) (CDFILES.MATCH 28796 . 30421)
|
||||
(CDFILES.PATS 30423 . 33390)) (33393 51214 (CDPRINT 33403 . 35920) (CDPRINT.HEADER 35922 . 36819) (
|
||||
CDPRINT.LINE 36821 . 40053) (CDPRINT.MAXWIDTHS 40055 . 44170) (CDPRINT.COLHEADERS 44172 . 45457) (
|
||||
CDPRINT.COLUMNS 45459 . 50579) (CDTEDIT 50581 . 51212)) (51215 60336 (CDMAP 51225 . 52657) (CDENTRY
|
||||
52659 . 52968) (CDSUBSET 52970 . 54409) (CDMERGE 54411 . 58395) (CDMERGE.COMMON 58397 . 59712) (
|
||||
CD.SORT 59714 . 60334)) (60337 67875 (BINCOMP 60347 . 64636) (EOLTYPE 64638 . 67200) (EOLTYPE.SHOW
|
||||
67202 . 67873)) (68403 80930 (FIND-UNCOMPILED-FILES 68413 . 72056) (FIND-UNSOURCED-FILES 72058 . 74442
|
||||
) (FIND-SOURCE-FILES 74444 . 76182) (FIND-COMPILED-FILES 76184 . 78061) (FIND-UNLOADED-FILES 78063 .
|
||||
78916) (FIND-LOADED-FILES 78918 . 79346) (FIND-MULTICOMPILED-FILES 79348 . 80928)) (80931 89362 (
|
||||
CREATED-AS 80941 . 85738) (SOURCE-FOR-COMPILED-P 85740 . 88667) (COMPILE-SOURCE-DATE-DIFF 88669 .
|
||||
89360)) (89363 99669 (FIX-DIRECTORY-DATES 89373 . 92366) (FIX-EQUIV-DATES 92368 . 93893) (
|
||||
COPY-COMPARED-FILES 93895 . 95716) (COPY-MISSING-FILES 95718 . 97875) (COMPILED-ON-SAME-SOURCE 97877
|
||||
. 99667)) (99863 107701 (CDBROWSER 99873 . 103800) (CDBROWSER.STRINGS 103802 . 107699)) (107863
|
||||
109599 (CD.TABLEITEM 107873 . 108093) (CD.TABLEITEM.PRINTFN 108095 . 108294) (CD.TABLEITEM.COPYFN
|
||||
108296 . 109354) (CDTABLEBROWSER.HEADING.REPAINTFN 109356 . 109597)) (109600 130255 (
|
||||
CDTABLEBROWSER.WHENSELECTEDFN 109610 . 110078) (CD.COMMANDSELECTEDFN 110080 . 115181) (CD-MENUFN
|
||||
115183 . 119494) (CD-COMPARE-FILES 119496 . 122848) (CDBROWSER-COPY 122850 . 126519) (
|
||||
CDBROWSER-DELETE-FILE 126521 . 129734) (CD-SWAPDIRS 129736 . 130253)))))
|
||||
STOP
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED "22-May-2022 18:46:01"
|
||||
{DSK}<users>kaplan>local>medley3.5>working-medley>lispusers>COMPARESOURCES.;128 39655
|
||||
(FILECREATED "17-Jun-2023 15:22:40" {WMEDLEY}<lispusers>COMPARESOURCES.;131 39663
|
||||
|
||||
:CHANGES-TO (FNS COMPARESOURCES CSBROWSER \CS.EXAMINE)
|
||||
(VARS COMPARESOURCESCOMS)
|
||||
:EDIT-BY rmk
|
||||
|
||||
:PREVIOUS-DATE "12-May-2022 10:17:13"
|
||||
{DSK}<users>kaplan>local>medley3.5>working-medley>lispusers>COMPARESOURCES.;123)
|
||||
:CHANGES-TO (FNS CSBROWSER \CS.COMPARE.MASTERS)
|
||||
|
||||
:PREVIOUS-DATE "22-May-2022 18:46:01" {WMEDLEY}<lispusers>COMPARESOURCES.;128)
|
||||
|
||||
|
||||
(* ; "
|
||||
@@ -141,25 +140,26 @@ Copyright (c) 1985-1988, 2018, 2020-2021 by Xerox Corporation.
|
||||
'SAME])
|
||||
|
||||
(\CS.COMPARE.MASTERS
|
||||
[LAMBDA (BODYX BODYY DW?) (* ; "Edited 25-Feb-2022 18:02 by rmk")
|
||||
[LAMBDA (BODY1 BODY2 DW?) (* ; "Edited 17-Jun-2023 15:19 by rmk")
|
||||
(* ; "Edited 25-Feb-2022 18:02 by rmk")
|
||||
(* ; "Edited 18-Jan-2022 22:00 by rmk")
|
||||
(* ; "Edited 19-Dec-2021 21:05 by rmk")
|
||||
(* ; "Edited 5-Sep-2020 19:01 by rmk:")
|
||||
(* ; "Edited 15-Apr-88 14:41 by bvm")
|
||||
(DECLARE (USEDFREE DIFFERENCES COMPARESTREAM))
|
||||
(LET (YTHING XTHING PRED DIFS TMP)
|
||||
(SETQ BODYX (CL:REMOVE-IF (FUNCTION EDITDATE?)
|
||||
BODYX)) (* ;
|
||||
(LET (THING2 THING1 PRED DIFS TMP)
|
||||
(SETQ BODY1 (CL:REMOVE-IF (FUNCTION EDITDATE?)
|
||||
BODY1)) (* ;
|
||||
"We don't care about editdate comments")
|
||||
(SETQ BODYY (CL:REMOVE-IF (FUNCTION EDITDATE?)
|
||||
BODYY))
|
||||
(SETQ BODYX (\CS.FIXFNS BODYX))
|
||||
(SETQ BODYY (\CS.FIXFNS BODYY))
|
||||
(CL:WHEN (AND (SETQ XTHING (ASSOC 'DEFINE-FILE-INFO BODYX))
|
||||
(SETQ YTHING (ASSOC 'DEFINE-FILE-INFO BODYY))
|
||||
(\CS.COMPARE.DEFINE-FILE-INFO XTHING YTHING))
|
||||
(SETQ BODYX (REMOVE XTHING BODYX))
|
||||
(SETQ BODYY (REMOVE YTHING BODYY)))
|
||||
(SETQ BODY2 (CL:REMOVE-IF (FUNCTION EDITDATE?)
|
||||
BODY2))
|
||||
(SETQ BODY1 (\CS.FIXFNS BODY1))
|
||||
(SETQ BODY2 (\CS.FIXFNS BODY2))
|
||||
(CL:WHEN (AND (SETQ THING1 (ASSOC 'DEFINE-FILE-INFO BODY1))
|
||||
(SETQ THING2 (ASSOC 'DEFINE-FILE-INFO BODY2))
|
||||
(\CS.COMPARE.DEFINE-FILE-INFO THING1 THING2))
|
||||
(SETQ BODY1 (REMOVE THING1 BODY1))
|
||||
(SETQ BODY2 (REMOVE THING2 BODY2)))
|
||||
|
||||
(* ;; "These are for commonlispy definers")
|
||||
|
||||
@@ -168,18 +168,18 @@ Copyright (c) 1985-1988, 2018, 2020-2021 by Xerox Corporation.
|
||||
do
|
||||
(* ;; "handle definer based things")
|
||||
|
||||
(for DEFFER in DEFFERS WHEN [AND (SETQ XTHING (for X in BODYX collect X
|
||||
(for DEFFER in DEFFERS WHEN [AND (SETQ THING1 (for X in BODY1 collect X
|
||||
when (EQ (CAR X)
|
||||
DEFFER)))
|
||||
(SETQ YTHING (for X in BODYY collect X
|
||||
(SETQ THING2 (for X in BODY2 collect X
|
||||
when (EQ (CAR X)
|
||||
DEFFER]
|
||||
do
|
||||
(* ;; "Take out all of the THINGS we are about to do. ")
|
||||
|
||||
(SETQ BODYX (CL:SET-DIFFERENCE BODYX XTHING :TEST (FUNCTION EQUALALL)))
|
||||
(SETQ BODYY (CL:SET-DIFFERENCE BODYY YTHING :TEST (FUNCTION EQUALALL)))
|
||||
(CL:WHEN (SETQ DIFS (\CS.COMPARE.TYPES XTHING YTHING
|
||||
(SETQ BODY1 (CL:SET-DIFFERENCE BODY1 THING1 :TEST (FUNCTION EQUALALL)))
|
||||
(SETQ BODY2 (CL:SET-DIFFERENCE BODY2 THING2 :TEST (FUNCTION EQUALALL)))
|
||||
(CL:WHEN (SETQ DIFS (\CS.COMPARE.TYPES THING1 THING2
|
||||
(CONCAT (OR (CL:DOCUMENTATION TYPE 'DEFINE-TYPES)
|
||||
TYPE)
|
||||
" defined by " DEFFER)
|
||||
@@ -194,11 +194,11 @@ Copyright (c) 1985-1988, 2018, 2020-2021 by Xerox Corporation.
|
||||
(* ;; "These are for other filepkage types, as registered in COMPARESOURCETYPES")
|
||||
|
||||
[for TYPE in COMPARESOURCETYPES EACHTIME (SETQ PRED (fetch (CSTYPE PREDFN) of TYPE))
|
||||
WHEN [AND (SETQ XTHING (for X in BODYX collect X when (CL:FUNCALL PRED X)))
|
||||
(SETQ YTHING (for X in BODYY collect X when (CL:FUNCALL PRED X]
|
||||
do (SETQ BODYX (CL:SET-DIFFERENCE BODYX XTHING :TEST (FUNCTION EQUALALL)))
|
||||
(SETQ BODYY (CL:SET-DIFFERENCE BODYY YTHING :TEST (FUNCTION EQUALALL)))
|
||||
(CL:WHEN [SETQ DIFS (\CS.COMPARE.TYPES XTHING YTHING (OR (fetch (CSTYPE TITLE)
|
||||
WHEN [AND (SETQ THING1 (for X in BODY1 collect X when (CL:FUNCALL PRED X)))
|
||||
(SETQ THING2 (for X in BODY2 collect X when (CL:FUNCALL PRED X]
|
||||
do (SETQ BODY1 (CL:SET-DIFFERENCE BODY1 THING1 :TEST (FUNCTION EQUALALL)))
|
||||
(SETQ BODY2 (CL:SET-DIFFERENCE BODY2 THING2 :TEST (FUNCTION EQUALALL)))
|
||||
(CL:WHEN [SETQ DIFS (\CS.COMPARE.TYPES THING1 THING2 (OR (fetch (CSTYPE TITLE)
|
||||
of TYPE)
|
||||
(MKSTRING (fetch (CSTYPE
|
||||
FPKGTYPE)
|
||||
@@ -211,23 +211,23 @@ Copyright (c) 1985-1988, 2018, 2020-2021 by Xerox Corporation.
|
||||
((SETQ TMP (ASSOC TYPE DIFFERENCES))
|
||||
(NCONC TMP DIFS))
|
||||
(T (push DIFFERENCES (CONS TYPE DIFS])]
|
||||
(SETQ BODYY (CL:SET-DIFFERENCE BODYY (PROG1 BODYX
|
||||
(SETQ BODYX (CL:SET-DIFFERENCE
|
||||
BODYX BODYY :TEST
|
||||
(SETQ BODY2 (CL:SET-DIFFERENCE BODY2 (PROG1 BODY1
|
||||
(SETQ BODY1 (CL:SET-DIFFERENCE
|
||||
BODY1 BODY2 :TEST
|
||||
(FUNCTION EQUALALL))))
|
||||
:TEST
|
||||
(FUNCTION EQUALALL)))
|
||||
(COND
|
||||
((OR BODYX BODYY)
|
||||
((OR BODY1 BODY2)
|
||||
(printout CONTEXTSTREAM T "---Expressions:" T)
|
||||
(LET ((COMMENTX 0)
|
||||
(COMMENTY 0)) (* ; "Remove comments")
|
||||
[SETQ BODYX (for X in BODYX collect X unless (COND
|
||||
[SETQ BODY1 (for X in BODY1 collect X unless (COND
|
||||
((EQ (CAR X)
|
||||
COMMENTFLG)
|
||||
(add COMMENTX 1)
|
||||
T]
|
||||
[SETQ BODYY (for Y in BODYY collect Y unless (COND
|
||||
[SETQ BODY2 (for Y in BODY2 collect Y unless (COND
|
||||
((EQ (CAR Y)
|
||||
COMMENTFLG)
|
||||
(add COMMENTY 1)
|
||||
@@ -238,14 +238,14 @@ Copyright (c) 1985-1988, 2018, 2020-2021 by Xerox Corporation.
|
||||
(printout CONTEXTSTREAM .I1 COMMENTX " comments -> " .I1 COMMENTY " comments."
|
||||
T T)))
|
||||
[COND
|
||||
[BODYX (COND
|
||||
(BODYY (COMPARELISTS BODYX BODYY COMPARESTREAM)
|
||||
(\CS.EXAMINE BODYX BODYY NIL 'Expression))
|
||||
[BODY1 (COND
|
||||
(BODY2 (COMPARELISTS BODY1 BODY2 COMPARESTREAM)
|
||||
(\CS.EXAMINE BODY1 BODY2 NIL 'Expression))
|
||||
(T (printout COMPARESTREAM "These are not on File 2:" T)
|
||||
(FOR X IN BODYX DO (LVLPRINT X COMPARESTREAM 2 3)
|
||||
(FOR X IN BODY1 DO (LVLPRINT X COMPARESTREAM 2 3)
|
||||
(\CS.EXAMINE X NIL T NIL 'Expression]
|
||||
(BODYY (printout COMPARESTREAM "These are not on File 1:" T)
|
||||
(FOR Y IN BODYY DO (LVLPRINT Y COMPARESTREAM 2 3)
|
||||
(BODY2 (printout COMPARESTREAM "These are not on File 1:" T)
|
||||
(FOR Y IN BODY2 DO (LVLPRINT Y COMPARESTREAM 2 3)
|
||||
(\CS.EXAMINE NIL Y T NIL 'Expression]
|
||||
(OR (ASSOC 'Other DIFFERENCES)
|
||||
(push DIFFERENCES (LIST 'Other '--])
|
||||
@@ -622,7 +622,9 @@ Copyright (c) 1985-1988, 2018, 2020-2021 by Xerox Corporation.
|
||||
(DEFINEQ
|
||||
|
||||
(CSBROWSER
|
||||
[LAMBDA (FILEX FILEY DW? LABEL1 LABEL2 REGION IGNORECOMMENTS TITLE)
|
||||
[LAMBDA (FILE1 FILE2 DW? LABEL1 LABEL2 REGION IGNORECOMMENTS TITLE)
|
||||
|
||||
(* ;; "Edited 17-Jun-2023 15:21 by rmk")
|
||||
|
||||
(* ;; "Edited 22-May-2022 18:42 by rmk")
|
||||
|
||||
@@ -637,28 +639,29 @@ Copyright (c) 1985-1988, 2018, 2020-2021 by Xerox Corporation.
|
||||
(* ;; "Don't use the INFILEP value, because that might screw with capitalization that the caller prefers. If the file can be found that way, then lower functions will find it.")
|
||||
|
||||
(DECLARE (SPECVARS LABEL1 LABEL2))
|
||||
(SETQ FILEX (OR (STREAMP FILEX)
|
||||
(INFILEP FILEX)
|
||||
(FINDFILE FILEX NIL DIRECTORIES)
|
||||
(ERROR "FILE NOT FOUND" FILEX)))
|
||||
(SETQ FILEY (OR (STREAMP FILEY)
|
||||
(INFILEP FILEY)
|
||||
(FINDFILE FILEY NIL DIRECTORIES)
|
||||
(ERROR "FILE NOT FOUND" FILEY)))
|
||||
(CL:UNLESS (LISPSOURCEFILEP FILEX)
|
||||
(ERROR FILEX " is not a Medley source file"))
|
||||
(CL:UNLESS (LISPSOURCEFILEP FILEY)
|
||||
(ERROR FILEX " is not a Medley source file"))
|
||||
(SETQ FILE1 (OR (STREAMP FILE1)
|
||||
(INFILEP FILE1)
|
||||
(FINDFILE FILE1 NIL DIRECTORIES)
|
||||
(ERROR "FILE NOT FOUND" FILE1)))
|
||||
(SETQ FILE2 (OR (STREAMP FILE2)
|
||||
(INFILEP FILE2)
|
||||
(FINDFILE FILE2 NIL DIRECTORIES)
|
||||
(ERROR "FILE NOT FOUND" FILE2)))
|
||||
(CL:UNLESS (LISPSOURCEFILEP FILE1)
|
||||
(ERROR FILE1 " is not a Medley source file"))
|
||||
(CL:UNLESS LABEL1
|
||||
(SETQ LABEL1 (PACKFILENAME 'HOST NIL 'DIRECTORY NIL 'BODY FILE1)))
|
||||
(CL:UNLESS LABEL2
|
||||
(SETQ LABEL2 (PACKFILENAME 'HOST NIL 'DIRECTORY NIL 'BODY FILE2)))
|
||||
(CL:UNLESS (LISPSOURCEFILEP FILE2)
|
||||
(ERROR FILE1 " is not a Medley source file"))
|
||||
(CL:UNLESS TITLE
|
||||
[SETQ TITLE (CONCAT "COMPARESOURCES of " (OR LABEL1 (PACKFILENAME 'HOST NIL 'DIRECTORY NIL
|
||||
'BODY FILEX))
|
||||
" and "
|
||||
(OR LABEL2 (PACKFILENAME 'HOST NIL 'DIRECTORY NIL 'BODY FILEY])
|
||||
(SETQ TITLE (CONCAT "COMPARESOURCES of " LABEL1 " and " LABEL2)))
|
||||
(LET [(WINDOW (OBJ.CREATEW 'VERTICAL REGION TITLE NIL T (FONTPROP DEFAULTFONT 'HEIGHT]
|
||||
(WINDOWPROP WINDOW 'UNDERSCONTRUCTION T)
|
||||
(GETPROMPTWINDOW WINDOW T)
|
||||
(WINDOWPROP WINDOW 'UNDERSCONTRUCTION NIL)
|
||||
(COMPARESOURCES FILEX FILEY '(T 2WINDOWS)
|
||||
(COMPARESOURCES FILE1 FILE2 '(T 2WINDOWS)
|
||||
DW? WINDOW IGNORECOMMENTS LABEL1 LABEL2)
|
||||
(OPENW WINDOW)
|
||||
WINDOW])
|
||||
@@ -679,16 +682,16 @@ Copyright (c) 1985-1988, 2018, 2020-2021 by Xerox Corporation.
|
||||
)
|
||||
(PUTPROPS COMPARESOURCES COPYRIGHT ("Xerox Corporation" 1985 1986 1987 1988 2018 2020 2021))
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (1864 25616 (COMPARESOURCES 1874 . 8001) (\CS.COMPARE.MASTERS 8003 . 15415) (
|
||||
\CS.COMPARE.TYPES 15417 . 18683) (\CS.EXAMINE 18685 . 21863) (\CS.FIXFNS 21865 . 23367) (
|
||||
\CS.SORT.DECLARES 23369 . 23712) (\CS.SORT.DECLARE1 23714 . 25134) (\CS.FILTER.GARBAGE 25136 . 25614))
|
||||
(25617 30153 (\CS.ISFNFORM 25627 . 25895) (\CS.COMPARE.FNS 25897 . 26139) (\CS.FNSID 26141 . 26285) (
|
||||
\CS.ISVARFORM 26287 . 26392) (\CS.COMPARE.VARS 26394 . 27056) (\CS.ISMACROFORM 27058 . 27196) (
|
||||
\CS.ISRECFORM 27198 . 27526) (\CS.REC.NAME 27528 . 27847) (\CS.ISCOURIERFORM 27849 . 27949) (
|
||||
\CS.ISTEMPLATEFORM 27951 . 28049) (\CS.COMPARE.TEMPLATES 28051 . 28416) (\CS.ISPROPFORM 28418 . 28573)
|
||||
(\CS.PROP.NAME 28575 . 28720) (\CS.COMPARE.PROPS 28722 . 28879) (\CS.ISADDVARFORM 28881 . 28974) (
|
||||
\CS.COMPARE.ADDVARS 28976 . 29141) (\CS.ISFPKGCOMFORM 29143 . 29350) (\CS.COMPARE.FPKGCOMS 29352 .
|
||||
29559) (\CS.COMPARE.DEFINE-FILE-INFO 29561 . 30151)) (30154 36218 (CSOBJ.CREATE 30164 . 30577) (
|
||||
CSOBJ.DISPLAYFN 30579 . 31332) (CSOBJ.IMAGEBOXFN 31334 . 33495) (CSOBJ.BUTTONEVENTINFN 33497 . 35968)
|
||||
(CSOBJ.COPYBUTTONEVENTINFN 35970 . 36216)) (37099 39228 (CSBROWSER 37109 . 39226)))))
|
||||
(FILEMAP (NIL (1751 25612 (COMPARESOURCES 1761 . 7888) (\CS.COMPARE.MASTERS 7890 . 15411) (
|
||||
\CS.COMPARE.TYPES 15413 . 18679) (\CS.EXAMINE 18681 . 21859) (\CS.FIXFNS 21861 . 23363) (
|
||||
\CS.SORT.DECLARES 23365 . 23708) (\CS.SORT.DECLARE1 23710 . 25130) (\CS.FILTER.GARBAGE 25132 . 25610))
|
||||
(25613 30149 (\CS.ISFNFORM 25623 . 25891) (\CS.COMPARE.FNS 25893 . 26135) (\CS.FNSID 26137 . 26281) (
|
||||
\CS.ISVARFORM 26283 . 26388) (\CS.COMPARE.VARS 26390 . 27052) (\CS.ISMACROFORM 27054 . 27192) (
|
||||
\CS.ISRECFORM 27194 . 27522) (\CS.REC.NAME 27524 . 27843) (\CS.ISCOURIERFORM 27845 . 27945) (
|
||||
\CS.ISTEMPLATEFORM 27947 . 28045) (\CS.COMPARE.TEMPLATES 28047 . 28412) (\CS.ISPROPFORM 28414 . 28569)
|
||||
(\CS.PROP.NAME 28571 . 28716) (\CS.COMPARE.PROPS 28718 . 28875) (\CS.ISADDVARFORM 28877 . 28970) (
|
||||
\CS.COMPARE.ADDVARS 28972 . 29137) (\CS.ISFPKGCOMFORM 29139 . 29346) (\CS.COMPARE.FPKGCOMS 29348 .
|
||||
29555) (\CS.COMPARE.DEFINE-FILE-INFO 29557 . 30147)) (30150 36214 (CSOBJ.CREATE 30160 . 30573) (
|
||||
CSOBJ.DISPLAYFN 30575 . 31328) (CSOBJ.IMAGEBOXFN 31330 . 33491) (CSOBJ.BUTTONEVENTINFN 33493 . 35964)
|
||||
(CSOBJ.COPYBUTTONEVENTINFN 35966 . 36212)) (37095 39236 (CSBROWSER 37105 . 39234)))))
|
||||
STOP
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED " 9-Jul-2022 11:05:08"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>working-medley>lispusers>EXAMINEDEFS.;40 12957
|
||||
(FILECREATED "13-Oct-2023 11:18:04" {WMEDLEY}<lispusers>EXAMINEDEFS.;48 14244
|
||||
|
||||
:CHANGES-TO (FNS EXAMINEDEFS)
|
||||
:EDIT-BY rmk
|
||||
|
||||
:PREVIOUS-DATE "24-Jun-2022 18:52:03"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>working-medley>lispusers>EXAMINEDEFS.;39)
|
||||
:CHANGES-TO (FNS EXAMINEDEFS TEDITDEF)
|
||||
|
||||
:PREVIOUS-DATE "19-Jul-2023 13:59:26" {WMEDLEY}<lispusers>EXAMINEDEFS.;44)
|
||||
|
||||
|
||||
(PRETTYCOMPRINT EXAMINEDEFSCOMS)
|
||||
@@ -19,49 +19,66 @@
|
||||
(DEFINEQ
|
||||
|
||||
(EXAMINEDEFS
|
||||
[LAMBDA (NAME TYPE SOURCE1 SOURCE2 TITLE1 TITLE2 REGION) (* ; "Edited 9-Jul-2022 11:04 by rmk")
|
||||
(* ; "Edited 24-Jun-2022 18:51 by rmk")
|
||||
(* ; "Edited 23-Jun-2022 17:58 by rmk")
|
||||
(* ; "Edited 25-Feb-2022 15:01 by rmk")
|
||||
[LAMBDA (NAME TYPE SOURCE1 SOURCE2 TITLE1 TITLE2 REGION) (* ; "Edited 13-Oct-2023 11:11 by rmk")
|
||||
(* ; "Edited 18-May-2023 22:35 by rmk")
|
||||
(* ; "Edited 21-Apr-2023 14:42 by rmk")
|
||||
|
||||
(* ;; "This provides for side-by-side examination of separate but presumably related expressions. The (LISTP) expressions can be provided directly as SOURCE1 and SOURCE2 or, if NAME is given the copies of the definitions of NAME as TYPE on the two sources are examined.")
|
||||
(* ;; "This provides for side-by-side examination of separate but presumably related expressions. The (LISTP) expressions can be provided directly as the definitions SOURCE1 and SOURCE2 or, if NAME is given the copies of the definitions of NAME as TYPE on the two sources are examined. If both SOURCE1 and SOURCE2 are NIL, then SOURCE1 is the existing file defintions, NIL is the existing in-memory definition")
|
||||
|
||||
(* ;; "")
|
||||
|
||||
(* ;; "Examination is in side-by-side attached SEDIT windows if SEDIT is the EDITMODE. You can use SEDIT operations to zoom in on the location of any changes, deleting common stuff for example. But you are always working on a copy, so that changes are safe and ephemeral. This is an examination, not an edit.")
|
||||
|
||||
(CL:UNLESS NAME
|
||||
(CL:UNLESS (LISTP SOURCE1)
|
||||
(ERROR SOURCE1 " cannot be examined"))
|
||||
(CL:UNLESS (LISTP SOURCE2)
|
||||
(ERROR SOURCE2 " cannot be examined")))
|
||||
(CL:UNLESS TYPE
|
||||
(SETQ TYPE 'FNS))
|
||||
(if NAME
|
||||
then (CL:UNLESS [OR SOURCE1 SOURCE2 (SETQ SOURCE2 (CAR (WHEREIS NAME
|
||||
(OR TYPE '(FNS FUNCTIONS))
|
||||
T]
|
||||
(ERROR (CONCAT "Can't find " NAME " definitions to examine")))
|
||||
else (CL:UNLESS (LISTP SOURCE1)
|
||||
(ERROR SOURCE1 " cannot be examined"))
|
||||
(CL:UNLESS (LISTP SOURCE2)
|
||||
(ERROR SOURCE2 " cannot be examined")))
|
||||
|
||||
(* ;; "TITLE1 and TITLE2 are optional strings that will be used to construct the titles of the SEDIT windows. We would like to know where GETDEF got the definition so we can use that, but there isn't an interface that provides that information (extended WHEREIS?)")
|
||||
|
||||
(LET (DEF1 DEF2)
|
||||
(SETQ DEF1 (IF (LISTP SOURCE1)
|
||||
THEN
|
||||
(* ;; "Copy to simulate READONLY")
|
||||
(* ;; "")
|
||||
|
||||
(SETQ DEF1 (COPY SOURCE1))
|
||||
ELSEIF (GETDEF NAME TYPE SOURCE1)
|
||||
ELSE (ERROR NAME " not found on " SOURCE1)))
|
||||
(SETQ DEF2 (IF (LISTP SOURCE2)
|
||||
THEN (COPY SOURCE2)
|
||||
ELSEIF (GETDEF NAME TYPE SOURCE2)
|
||||
ELSE (ERROR NAME " not found on " SOURCE2)))
|
||||
(* ;; "If SOURCE1 and SOURCE2 are both NIL, SOURCE1 defaults to the current (in memory) definition, SOURCE2 defaults to the definition on the current file.")
|
||||
|
||||
(LET (DEF1 DEF2)
|
||||
(if (SETQ DEF1 (LISTP SOURCE1))
|
||||
elseif TYPE
|
||||
then (NEQ (SETQ DEF1 (GETDEF NAME TYPE SOURCE1 'NOERROR))
|
||||
(FILEPKGTYPE TYPE 'NULLDEF))
|
||||
elseif (NEQ (SETQ DEF1 (GETDEF NAME (SETQ TYPE 'FNS)
|
||||
SOURCE1
|
||||
'NOERROR))
|
||||
(FILEPKGTYPE TYPE 'NULLDEF))
|
||||
elseif (NEQ (SETQ DEF1 (GETDEF NAME (SETQ TYPE 'FUNCTIONS)
|
||||
SOURCE1
|
||||
'NOERROR))
|
||||
(FILEPKGTYPE TYPE 'NULLDEF))
|
||||
else (ERROR NAME (CONCAT "not found on " SOURCE1)))
|
||||
(if (SETQ DEF2 (LISTP SOURCE2))
|
||||
elseif (NEQ (SETQ DEF2 (GETDEF NAME TYPE SOURCE2 'NOERROR))
|
||||
(FILEPKGTYPE TYPE 'NULLDEF))
|
||||
else (ERROR NAME (CONCAT "not found on " SOURCE2)))
|
||||
(CL:UNLESS TITLE1
|
||||
(SETQ TITLE1 (CL:IF (AND SOURCE1 (ILEQ (COUNT SOURCE1)
|
||||
5))
|
||||
SOURCE1
|
||||
"File 1")))
|
||||
(SETQ TITLE1 (OR (AND (OR (LISTP SOURCE1)
|
||||
(NULL SOURCE1))
|
||||
'Current)
|
||||
(AND (MEMB (U-CASE SOURCE1)
|
||||
'(PROP SAVED))
|
||||
'Saved)
|
||||
(FINDFILE SOURCE1)
|
||||
SOURCE1)))
|
||||
(CL:UNLESS TITLE2
|
||||
(SETQ TITLE2 (CL:IF (AND SOURCE2 (ILEQ (COUNT SOURCE2)
|
||||
5))
|
||||
SOURCE2
|
||||
"File 2")))
|
||||
(SETQ TITLE2 (OR (AND (OR (LISTP SOURCE2)
|
||||
(NULL SOURCE2))
|
||||
'Current)
|
||||
(AND (MEMB (U-CASE SOURCE2)
|
||||
'(PROP SAVED))
|
||||
'Saved)
|
||||
(FINDFILE SOURCE2)
|
||||
SOURCE2)))
|
||||
(SELECTQ (EDITMODE)
|
||||
(SEDIT:SEDIT
|
||||
(* ;;
|
||||
@@ -80,7 +97,9 @@
|
||||
"Crude suggestions for height, width, position. Suggest shorter window for smaller structures")
|
||||
|
||||
(SELECTQ EXAMINEWITH
|
||||
(SEDIT (CL:UNLESS (REGIONP REGION)
|
||||
(SEDIT (SETQ DEF1 (COPY DEF1)) (* ; "Copy to simulate read-only")
|
||||
(SETQ DEF2 (COPY DEF2))
|
||||
(CL:UNLESS (REGIONP REGION)
|
||||
(SETQ REGION (GETREGION)))
|
||||
[LET (R1 R2 HALFWIDTH W1 W2)
|
||||
(SETQ HALFWIDTH (IQUOTIENT (FETCH (REGION WIDTH)
|
||||
@@ -139,15 +158,14 @@
|
||||
(CONCAT "Compare sources of " NAME
|
||||
" as " TYPE)
|
||||
TEXTWIDTH TEXTHEIGHT))
|
||||
(WINDOWPROP CTWINDOW 'EXAMINEDEFS
|
||||
(LIST NAME TYPE SOURCE1 SOURCE2 TITLE1
|
||||
TITLE2)))])
|
||||
(WINDOWPROP CTWINDOW 'EXAMINEDEFS KEY))])
|
||||
(SHOULDNT)))
|
||||
(PROGN (EDITE DEF1)
|
||||
(EDITE DEF2])
|
||||
|
||||
(EXAMINEFILES
|
||||
[LAMBDA (FILE1 FILE2 TITLE1 TITLE2 REGION) (* ; "Edited 1-Feb-2022 23:15 by rmk")
|
||||
[LAMBDA (FILE1 FILE2 TITLE1 TITLE2 REGION) (* ; "Edited 19-Jul-2023 13:48 by rmk")
|
||||
(* ; "Edited 1-Feb-2022 23:15 by rmk")
|
||||
(* ; "Edited 25-Jan-2022 10:08 by rmk")
|
||||
(* ; "Edited 2-Jan-2022 23:15 by rmk")
|
||||
(* ; "Edited 30-Dec-2021 21:49 by rmk")
|
||||
@@ -156,23 +174,26 @@
|
||||
|
||||
(CL:UNLESS REGION
|
||||
(SETQ REGION (GETREGION)))
|
||||
(LIST (AND FILE1 (TEDIT-SEE FILE1 (RELCREATEREGION `(,REGION 0.5 -1)
|
||||
REGION
|
||||
'RIGHT
|
||||
'TOP
|
||||
`(,REGION 0.5)
|
||||
(FETCH (REGION TOP) OF REGION))
|
||||
NIL TITLE1))
|
||||
(AND FILE2 (TEDIT-SEE FILE2 (RELCREATEREGION `(,REGION 0.5 1)
|
||||
REGION
|
||||
'LEFT
|
||||
'TOP
|
||||
`(,REGION 0.5)
|
||||
(FETCH (REGION TOP) OF REGION))
|
||||
NIL TITLE2])
|
||||
(LIST (AND (INFILEP FILE1)
|
||||
(TEDIT-SEE FILE1 (RELCREATEREGION `(,REGION 0.5 -1)
|
||||
REGION
|
||||
'RIGHT
|
||||
'TOP
|
||||
`(,REGION 0.5)
|
||||
(FETCH (REGION TOP) OF REGION))
|
||||
NIL TITLE1))
|
||||
(AND (INFILEP FILE2)
|
||||
(TEDIT-SEE FILE2 (RELCREATEREGION `(,REGION 0.5 1)
|
||||
REGION
|
||||
'LEFT
|
||||
'TOP
|
||||
`(,REGION 0.5)
|
||||
(FETCH (REGION TOP) OF REGION))
|
||||
NIL TITLE2])
|
||||
|
||||
(TEDITDEF
|
||||
[LAMBDA (NAME DEF TYPE READERENVIRONMENT WIDTH) (* ; "Edited 23-Jun-2022 17:27 by rmk")
|
||||
[LAMBDA (NAME DEF TYPE READERENVIRONMENT WIDTH) (* ; "Edited 13-Oct-2023 00:23 by rmk")
|
||||
(* ; "Edited 23-Jun-2022 17:27 by rmk")
|
||||
(* ; "Edited 28-Jan-2022 23:36 by rmk")
|
||||
(* ; "Edited 12-Jan-2022 17:27 by rmk")
|
||||
(LET ((TSTREAM (OPENTEXTSTREAM)))
|
||||
@@ -182,11 +203,14 @@
|
||||
TSTREAM))
|
||||
TSTREAM))
|
||||
(SELECTQ (CAR DEF)
|
||||
([LAMBDA NLAMBDA OPENLAMBDA]
|
||||
(PRINTOUT TSTREAM .FONT BOLDFONT .P2 NAME T .FONT DEFAULTFONT 2)
|
||||
(PRINTDEF DEF 2 T NIL NIL TSTREAM))
|
||||
(DEFINEQ (SETQ DEF (CADR DEF))
|
||||
(PRINTOUT TSTREAM .FONT BOLDFONT .P2 NAME T .FONT DEFAULTFONT 2)
|
||||
(PRINTDEF (CADR DEF)
|
||||
2 T NIL NIL TSTREAM))
|
||||
((DEFMACRO DEFUN) (* ; "Has args after name")
|
||||
((DEFMACRO DEFUN DEFMACRO CL:DEFUN) (* ; "Has args after name")
|
||||
(PRINTOUT TSTREAM "(" .P2 (CAR DEF)
|
||||
" " .FONT BOLDFONT .P2 (CADR DEF)
|
||||
.FONT DEFAULTFONT " " .P2 (CADDR DEF)
|
||||
@@ -216,6 +240,6 @@
|
||||
(FILESLOAD (SYSLOAD)
|
||||
COMPARETEXT)
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (671 12815 (EXAMINEDEFS 681 . 9537) (EXAMINEFILES 9539 . 10934) (TEDITDEF 10936 . 12813)
|
||||
))))
|
||||
(FILEMAP (NIL (618 14102 (EXAMINEDEFS 628 . 10448) (EXAMINEFILES 10450 . 11932) (TEDITDEF 11934 .
|
||||
14100)))))
|
||||
STOP
|
||||
|
||||
359
lispusers/GITFNS
@@ -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
|
||||
|
||||
@@ -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.
|
||||
| ||||