Compare commits
122 Commits
medley-220
...
medley-230
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e4b6f69e8e | ||
|
|
52499052e8 | ||
|
|
b5f71670cb | ||
|
|
d21dfe1061 | ||
|
|
efae6d2911 | ||
|
|
2aae0e7bb6 | ||
|
|
02a6d7ad1b | ||
|
|
4826035054 | ||
|
|
6c6856efb9 | ||
|
|
871bbb735f | ||
|
|
08852f7b55 | ||
|
|
4362618ea0 | ||
|
|
1659c452b5 | ||
|
|
f5a8888aff | ||
|
|
4fed40bb85 | ||
|
|
3cca8c4940 | ||
|
|
d6a4b3bf88 | ||
|
|
b493d98aeb | ||
|
|
beb4a77195 | ||
|
|
d43846b4f4 | ||
|
|
28c673f296 | ||
|
|
e067e02dde | ||
|
|
1af56ddaa2 | ||
|
|
16dd66a016 | ||
|
|
81b74be043 | ||
|
|
f8a5d0fbe5 | ||
|
|
3e0ec62d27 | ||
|
|
654675661f | ||
|
|
3cb051ea7b | ||
|
|
8bb283e0c4 | ||
|
|
6fae5c14e9 | ||
|
|
c58ef4ee56 | ||
|
|
730fc5b678 | ||
|
|
8d54603329 | ||
|
|
21ceff5ad9 | ||
|
|
5a07e6c266 | ||
|
|
4a09d3a027 | ||
|
|
691563024b | ||
|
|
0f49e248d3 | ||
|
|
54782f5b21 | ||
|
|
d34522d769 | ||
|
|
c501dc82fb | ||
|
|
c256a8f411 | ||
|
|
69dbe43d87 | ||
|
|
989ec5b0b5 | ||
|
|
fb1d14dfeb | ||
|
|
6d86932d35 | ||
|
|
9ada6de6b9 | ||
|
|
12b5e90727 | ||
|
|
4b95a8b5d3 | ||
|
|
3fa571f798 | ||
|
|
10a598865f | ||
|
|
f2ef7cc8f6 | ||
|
|
0c9b539bc4 | ||
|
|
b53b6c4ba7 | ||
|
|
e5593ba0dc | ||
|
|
5fea4e6666 | ||
|
|
306af20e91 | ||
|
|
bb637c5b73 | ||
|
|
7eb12ee68b | ||
|
|
97cb04be46 | ||
|
|
62754015b0 | ||
|
|
9d09033cc4 | ||
|
|
d9c144d966 | ||
|
|
17dd03a358 | ||
|
|
382881a068 | ||
|
|
d0d952a10d | ||
|
|
d5d21397d4 | ||
|
|
7a4470ce8b | ||
|
|
32ff7b7649 | ||
|
|
096d860ac8 | ||
|
|
418b1df00d | ||
|
|
ba90344080 | ||
|
|
0eac6efb61 | ||
|
|
540aff091c | ||
|
|
3f244f6cd3 | ||
|
|
58557d383a | ||
|
|
882fbacf59 | ||
|
|
70ce516e0c | ||
|
|
fdb573c761 | ||
|
|
06368f95eb | ||
|
|
654ebc359c | ||
|
|
4e38802325 | ||
|
|
b43b63b287 | ||
|
|
016097e8bf | ||
|
|
99321e7951 | ||
|
|
8e4fc4ab74 | ||
|
|
c005cf86bf | ||
|
|
ecc2b22207 | ||
|
|
d0945f7a5f | ||
|
|
add65a9397 | ||
|
|
0474f924a4 | ||
|
|
a387094eab | ||
|
|
541a07e09b | ||
|
|
5ee5482dd2 | ||
|
|
095beef454 | ||
|
|
06a7356b00 | ||
|
|
147abac04c | ||
|
|
56a52af6b9 | ||
|
|
fad70d4947 | ||
|
|
f4c91ec419 | ||
|
|
f5e48847c9 | ||
|
|
b90bf65be9 | ||
|
|
d379bcc102 | ||
|
|
39a7512458 | ||
|
|
431d80fb3c | ||
|
|
78b76f6801 | ||
|
|
16517cdfc5 | ||
|
|
902d542121 | ||
|
|
c708f2ac55 | ||
|
|
43e6801341 | ||
|
|
27a6063ce9 | ||
|
|
cd6b64efa2 | ||
|
|
222da55f69 | ||
|
|
92f85c5957 | ||
|
|
6376579b1c | ||
|
|
5db76b4998 | ||
|
|
2b1d39b544 | ||
|
|
a23ce42726 | ||
|
|
3c26eeb964 | ||
|
|
e5961cde2c | ||
|
|
8441c257d5 |
9
.gitattributes
vendored
Normal file
9
.gitattributes
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
# Denote all files that are truly binary and should not be modified.
|
||||
*.tedit binary
|
||||
*.lcom binary
|
||||
*.sketch binary
|
||||
*.dfasl binary
|
||||
*.TEDIT binary
|
||||
*.LCOM binary
|
||||
*.SKETCH binary
|
||||
*.DFASL binary
|
||||
17
.github/ISSUE_TEMPLATE/documentation.md
vendored
Normal file
17
.github/ISSUE_TEMPLATE/documentation.md
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
name: Documentation problem
|
||||
about: Problems with this web site?
|
||||
title: ''
|
||||
labels: ''
|
||||
|
||||
---
|
||||
|
||||
**Errors happen. Please tell us the URL**
|
||||
|
||||
|
||||
**What does it say?**
|
||||
|
||||
|
||||
**What should it say?**
|
||||
|
||||
**Screen shot**
|
||||
32
.github/ISSUE_TEMPLATE/what_people_are_saying.yml
vendored
Normal file
32
.github/ISSUE_TEMPLATE/what_people_are_saying.yml
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
name: "New entry for **What People Are Saying**"
|
||||
description: "Suggest a new entry for the **What People are Saying** page"
|
||||
title: "What People are Saying suggestion"
|
||||
body:
|
||||
- type: dropdown
|
||||
id: contentType
|
||||
attributes:
|
||||
label: "What type of entry?"
|
||||
options:
|
||||
- Blog
|
||||
- Tweet
|
||||
- Email
|
||||
- Other
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: entryLink
|
||||
attributes:
|
||||
label: Link to entry
|
||||
description: "What is the link to the item we should add to the **What People are Saying** page?"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additionalInformation
|
||||
attributes:
|
||||
label: Additional information
|
||||
description: "Use this space to supply any addiitonal information on the suggested item."
|
||||
validations:
|
||||
required: false
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: "## Thank you for your suggestion!"
|
||||
78
.github/workflows/Dockerfile_medley
vendored
Normal file
78
.github/workflows/Dockerfile_medley
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
#*******************************************************************************
|
||||
#
|
||||
# Dockerfile to build Medley image from latest Maiko image
|
||||
# plus latest release tars from github
|
||||
#
|
||||
# Copyright 2022-2023 by Interlisp.org
|
||||
#
|
||||
# ******************************************************************************
|
||||
|
||||
FROM ubuntu:22.10
|
||||
ARG TARGETPLATFORM
|
||||
|
||||
# Handle ARGs, ENV variables, and LABELs
|
||||
ARG BUILD_DATE=unknown
|
||||
ARG MEDLEY_RELEASE=unknown
|
||||
ARG MAIKO_RELEASE=unknown
|
||||
ARG REPO_OWNER=Interlisp
|
||||
LABEL name="Medley"
|
||||
LABEL description="The Medley Interlisp environment"
|
||||
LABEL url="https://github.com/${REPO_OWNER}/medley"
|
||||
LABEL build-date=$BUILD_DATE
|
||||
LABEL medley_release=$MEDLEY_RELEASE
|
||||
LABEL maiko_release=$MAIKO_RELEASE
|
||||
|
||||
ENV MEDLEY_DOCKER_BUILD_DATE=$BUILD_DATE
|
||||
ENV MEDLEY_RELEASE=$MEDLEY_RELEASE
|
||||
ENV MAIKO_RELEASE=$MAIKO_RELEASE
|
||||
|
||||
ENV LANG=C.UTF-8
|
||||
|
||||
# Copy over the release deb files
|
||||
ADD ./*.deb /tmp
|
||||
|
||||
# Install Medley/Maiko and add tightvnc server and xclip to the image
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y apt-utils \
|
||||
&& apt-get install -y tigervnc-standalone-server \
|
||||
&& apt-get install -y xclip \
|
||||
&& apt-get install -y man-db \
|
||||
&& apt-get install -y nano \
|
||||
&& apt-get install -y sudo \
|
||||
&& p=$(echo "${TARGETPLATFORM}" | sed -e "s#linux/##") \
|
||||
&& p=$( \
|
||||
if [ "$p" = "amd64" ]; \
|
||||
then echo "x86_64"; \
|
||||
elif [ "$p" = "arm64" ]; \
|
||||
then echo "aarch64"; \
|
||||
elif [ "$p" = "arm/v7" ]; \
|
||||
then echo "armv7l"; \
|
||||
else \
|
||||
echo "x86_64"; \
|
||||
fi \
|
||||
) \
|
||||
&& deb="medley-full-${MEDLEY_RELEASE#medley-}" \
|
||||
&& deb=${deb}_${MAIKO_RELEASE#maiko-}-linux-${p}.deb \
|
||||
&& apt-get install -y /tmp/${deb} \
|
||||
&& chown --recursive root:root /usr/local/interlisp \
|
||||
&& (if [ -n "$(which unminimize)" ]; then (yes | unminimize); fi)
|
||||
|
||||
# "Finalize" image
|
||||
EXPOSE 5900
|
||||
RUN adduser --gecos "" medley \
|
||||
&& adduser --gecos "" ubuntu \
|
||||
&& adduser medley sudo \
|
||||
&& adduser ubuntu sudo \
|
||||
&& (echo 'medley:yeldem' | chpasswd ) \
|
||||
&& (echo 'ubuntu:utnubu' | chpasswd ) \
|
||||
&& echo "medley ALL=(ALL) NOPASSWD:ALL" >>/etc/sudoers \
|
||||
&& echo "ubuntu ALL=(ALL) NOPASSWD:ALL" >>/etc/sudoers \
|
||||
&& mkdir -p /home/medley/il \
|
||||
&& chown medley:medley /home/medley/il
|
||||
|
||||
ENV TERM=xterm
|
||||
USER medley
|
||||
WORKDIR /home/medley
|
||||
#ENTRYPOINT USER=medley Xvnc -SecurityTypes none -geometry 1280x720 :0 & DISPLAY=:0 medley --full -g 1280x720
|
||||
ENTRYPOINT /bin/bash
|
||||
|
||||
148
.github/workflows/buildDocker.yml
vendored
148
.github/workflows/buildDocker.yml
vendored
@@ -21,6 +21,12 @@ name: 'Build/Push Docker Image'
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
draft:
|
||||
description: "Mark this as a draft release"
|
||||
type: choice
|
||||
options:
|
||||
- 'false'
|
||||
- 'true'
|
||||
force:
|
||||
description: "Force build even if build already successfully completed for this commit"
|
||||
type: choice
|
||||
@@ -34,6 +40,11 @@ on:
|
||||
description: "'True' if medley docker build completed successully"
|
||||
value: ${{ jobs.complete.outputs.build_successful }}
|
||||
inputs:
|
||||
draft:
|
||||
description: "Mark this as a draft release"
|
||||
required: false
|
||||
type: string
|
||||
default: 'false'
|
||||
force:
|
||||
description: "Force build even if build already successfully completed for this commit"
|
||||
required: false
|
||||
@@ -60,13 +71,20 @@ jobs:
|
||||
inputs:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
force: ${{ steps.force.outputs.force }}
|
||||
draft: ${{ steps.one.outputs.draft }}
|
||||
force: ${{ steps.one.outputs.force }}
|
||||
steps:
|
||||
- id: force
|
||||
- id: one
|
||||
run: >
|
||||
if [ '${{ toJSON(inputs) }}' = 'null' ];
|
||||
then echo ::set-output name=force::'${{ github.event.inputs.force }}'; echo "workflow_dispatch";
|
||||
else echo ::set-output name=force::'${{ inputs.force }}'; echo "workflow_call";
|
||||
then
|
||||
echo "workflow_dispatch";
|
||||
echo "draft=${{ github.event.inputs.draft }}" >> $GITHUB_OUTPUT;
|
||||
echo "force=${{ github.event.inputs.force }}" >> $GITHUB_OUTPUT;
|
||||
else
|
||||
echo "workflow_call";
|
||||
echo "draft=${{ inputs.draft }}" >> $GITHUB_OUTPUT;
|
||||
echo "force=${{ inputs.force }}" >> $GITHUB_OUTPUT;
|
||||
fi
|
||||
|
||||
|
||||
@@ -85,7 +103,7 @@ jobs:
|
||||
steps:
|
||||
# Checkout the actions for this repo owner
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ github.repository_owner }}/.github
|
||||
path: ./Actions_${{ github.sha }}
|
||||
@@ -117,58 +135,61 @@ jobs:
|
||||
steps:
|
||||
# Checkout latest commit
|
||||
- name: Checkout Medley
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Find latest release (draft or normal)
|
||||
# and download its assets
|
||||
- name: Download linux debs from latest (draft) release
|
||||
run: |
|
||||
tag=""
|
||||
if [ "${{ needs.inputs.outputs.draft }}" = "true" ];
|
||||
then
|
||||
tag=$(gh release list | grep Draft | head -n 1 | awk '{ print $3 }')
|
||||
fi
|
||||
if [ -z "${tag}" ];
|
||||
then
|
||||
tag=$(gh release list | grep Latest | head -n 1 | awk '{ print $3 }')
|
||||
fi
|
||||
mkdir -p release_debs
|
||||
gh release download ${tag} -D release_debs -p '*-linux-*.deb'
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# Get Maiko and Medley release information from name of deb files
|
||||
# just downloaded from the Medley latest release
|
||||
- name: Get info about Miako and Medley releases
|
||||
id: release_info
|
||||
run: |
|
||||
regex="^[^0-9]*\([^_]*\)_\([^-]*-[^-]*\)-\([^-]*\)-\([^.]*\).*\$"
|
||||
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)"
|
||||
rm -f debname.tmp
|
||||
echo "MEDLEY_RELEASE=${medley_release}" >> ${GITHUB_ENV}
|
||||
echo "MAIKO_RELEASE=${maiko_release}" >> ${GITHUB_ENV}
|
||||
|
||||
# Set repo env variables
|
||||
- name: Set repo/docker env variables
|
||||
id: repo_env
|
||||
run: |
|
||||
REPO_NAME=${GITHUB_REPOSITORY#*/}
|
||||
echo "REPO_NAME=${REPO_NAME}" >> ${GITHUB_ENV}
|
||||
echo ::set-output name=repo_name::${REPO_NAME}
|
||||
DOCKER_NAMESPACE=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')
|
||||
echo "DOCKER_NAMESPACE=${DOCKER_NAMESPACE}" >> ${GITHUB_ENV}
|
||||
echo ::set-output name=docker_namespace::${DOCKER_NAMESPACE}
|
||||
|
||||
# Get tag of latest Medley release.
|
||||
- name: Get Medley Release Information
|
||||
id: release_info
|
||||
uses: abatilo/release-info-action@v1.3.0
|
||||
with:
|
||||
owner: ${{ github.repository_owner }}
|
||||
repo: medley
|
||||
|
||||
# Get asset tars from latest Medley release
|
||||
- name: Download Release Assets
|
||||
uses: robinraju/release-downloader@v1.2
|
||||
with:
|
||||
repository: ${{ github.repository_owner }}/medley
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
latest: true
|
||||
fileName: "*"
|
||||
out-file-path: "release_tars"
|
||||
|
||||
# Get Maiko release information about latest Maiko Docker Image
|
||||
- name: Get info from latest Maiko image
|
||||
id: maiko_setup
|
||||
run: |
|
||||
docker pull ${DOCKER_NAMESPACE}/maiko:latest
|
||||
MAIKO_RELEASE=$(docker run --entrypoint /bin/bash ${DOCKER_NAMESPACE}/maiko:latest -c "echo \${MAIKO_RELEASE}")
|
||||
echo "MAIKO_RELEASE=${MAIKO_RELEASE}" >> ${GITHUB_ENV}
|
||||
echo ::set-output name=maiko_release::${MAIKO_RELEASE}
|
||||
|
||||
# Setup environment variables
|
||||
- name: Setup Environment Variables
|
||||
id: setup_env
|
||||
run: |
|
||||
RELEASE_TAG=${{ steps.release_info.outputs.latest_tag }}
|
||||
DOCKER_IMAGE=${DOCKER_NAMESPACE}/${REPO_NAME}
|
||||
DOCKER_TAGS="${DOCKER_IMAGE}:latest,${DOCKER_IMAGE}:${RELEASE_TAG#*-}_${MAIKO_RELEASE#*-}"
|
||||
echo ::set-output name=docker_tags::${DOCKER_TAGS}
|
||||
echo ::set-output name=docker_image::${DOCKER_IMAGE}
|
||||
echo ::set-output name=build_time::$(date -u +'%Y-%m-%dT%H:%M:%SZ')
|
||||
echo ::set-output name=release_tag::${RELEASE_TAG}
|
||||
echo "release_tag=${RELEASE_TAG}" >> ${GITHUB_ENV}
|
||||
repo_name="${GITHUB_REPOSITORY#*/}"
|
||||
docker_namespace="$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')"
|
||||
docker_image="${docker_namespace}/${repo_name}"
|
||||
if [ "${{ needs.inputs.outputs.draft }}" = "false" ];
|
||||
then
|
||||
docker_tags="${docker_image}:latest,${docker_image}:${MEDLEY_RELEASE#*-}_${MAIKO_RELEASE#*-}"
|
||||
platforms="linux/amd64,linux/arm64"
|
||||
else
|
||||
docker_tags="${docker_image}:draft"
|
||||
platforms="linux/amd64"
|
||||
fi
|
||||
echo "REPO_NAME=${repo_name}" >> ${GITHUB_ENV}
|
||||
echo "DOCKER_NAMESPACE=${docker_namespace}" >> ${GITHUB_ENV}
|
||||
echo "DOCKER_IMAGE=${docker_image}" >> ${GITHUB_ENV}
|
||||
echo "DOCKER_TAGS=${docker_tags}" >> ${GITHUB_ENV}
|
||||
echo "BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> ${GITHUB_ENV}
|
||||
echo "PLATFORMS=${platforms}" >> ${GITHUB_ENV}
|
||||
#linux/amd64,linux/arm64,linux/arm/v7
|
||||
|
||||
# Setup the Docker Machine Emulation environment.
|
||||
- name: Set up QEMU
|
||||
@@ -183,7 +204,7 @@ jobs:
|
||||
|
||||
# Login into DockerHub - required to store the created image
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v1
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
@@ -192,21 +213,20 @@ jobs:
|
||||
# checked out and the release tars just downloaded.
|
||||
# Push the result to Docker Hub
|
||||
- name: Build Docker Image for Push to Docker Hub
|
||||
uses: docker/build-push-action@v2
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
builder: ${{ steps.buildx.outputs.name }}
|
||||
build-args: |
|
||||
BUILD_DATE=${{ steps.setup_env.outputs.build_time }}
|
||||
RELEASE_TAG=${{ steps.setup_env.outputs.release_tag }}
|
||||
MAIKO_RELEASE=${{ steps.setup_env.outputs.maiko_release }}
|
||||
DOCKER_NAMESPACE=${{ steps.repo_env.outputs.docker_namespace }}
|
||||
BUILD_DATE=${{ env.BUILD_DATE }}
|
||||
MEDLEY_RELEASE=${{ env.MEDLEY_RELEASE }}
|
||||
MAIKO_RELEASE=${{ env.MAIKO_RELEASE }}
|
||||
REPO_OWNER=${{ github.repository_owner }}
|
||||
context: ./release_tars
|
||||
file: ./Dockerfile
|
||||
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
||||
context: ./release_debs
|
||||
file: ./.github/workflows/Dockerfile_medley
|
||||
platforms: ${{ env.PLATFORMS }}
|
||||
# Push the result to DockerHub
|
||||
push: true
|
||||
tags: ${{ steps.setup_env.outputs.docker_tags }}
|
||||
tags: ${{ env.DOCKER_TAGS }}
|
||||
|
||||
######################################################################################
|
||||
|
||||
@@ -225,7 +245,7 @@ jobs:
|
||||
steps:
|
||||
# Checkout the actions for this repo owner
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ github.repository_owner }}/.github
|
||||
path: ./Actions_${{ github.sha }}
|
||||
@@ -241,6 +261,6 @@ jobs:
|
||||
- name: Output
|
||||
id: output
|
||||
run: |
|
||||
echo ::set-output name=build_successful::'true'
|
||||
echo "build_successful='true'" >> ${GITHUB_OUTPUT}
|
||||
|
||||
######################################################################################
|
||||
|
||||
333
.github/workflows/buildLoadup.yml
vendored
333
.github/workflows/buildLoadup.yml
vendored
@@ -1,4 +1,4 @@
|
||||
#re*******************************************************************************
|
||||
#*******************************************************************************
|
||||
# buidLoadup.yml
|
||||
#
|
||||
# Interlisp workflow to build Medley release and push it to github. This workflow
|
||||
@@ -10,7 +10,7 @@
|
||||
#
|
||||
# 2022-01-17 Frank Halasz based on an earlier version of buildLoadup for Medley.
|
||||
#
|
||||
# Copyright 2022 by Interlisp.org
|
||||
# Copyright 2022-2023 by Interlisp.org
|
||||
#
|
||||
# ******************************************************************************
|
||||
|
||||
@@ -20,6 +20,12 @@ name: Build/Push Medley Release
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
draft:
|
||||
description: "Mark this as a draft release"
|
||||
type: choice
|
||||
options:
|
||||
- 'false'
|
||||
- 'true'
|
||||
force:
|
||||
description: "Force build even if build already successfully completed for this commit"
|
||||
type: choice
|
||||
@@ -33,17 +39,25 @@ on:
|
||||
description: "'True' if medley build completed successully"
|
||||
value: ${{ jobs.complete.outputs.build_successful }}
|
||||
inputs:
|
||||
draft:
|
||||
description: "Mark this as a draft release"
|
||||
required: false
|
||||
type: string
|
||||
default: 'false'
|
||||
force:
|
||||
description: "Force build even if build already successfully completed for this commit"
|
||||
required: false
|
||||
type: string
|
||||
default: 'false'
|
||||
secrets:
|
||||
OIO_SSH_KEY:
|
||||
required: true
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
######################################################################################
|
||||
@@ -54,15 +68,22 @@ jobs:
|
||||
inputs:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
force: ${{ steps.force.outputs.force }}
|
||||
draft: ${{ steps.one.outputs.draft }}
|
||||
force: ${{ steps.one.outputs.force }}
|
||||
steps:
|
||||
- id: force
|
||||
- id: one
|
||||
run: >
|
||||
if [ '${{ toJSON(inputs) }}' = 'null' ];
|
||||
then echo ::set-output name=force::'${{ github.event.inputs.force }}'; echo "workflow_dispatch";
|
||||
else echo ::set-output name=force::'${{ inputs.force }}'; echo "workflow_call";
|
||||
then
|
||||
echo "workflow_dispatch";
|
||||
echo "draft=${{ github.event.inputs.draft }}" >> $GITHUB_OUTPUT;
|
||||
echo "force=${{ github.event.inputs.force }}" >> $GITHUB_OUTPUT;
|
||||
else
|
||||
echo "workflow_call";
|
||||
echo "draft=${{ inputs.draft }}" >> $GITHUB_OUTPUT;
|
||||
echo "force=${{ inputs.force }}" >> $GITHUB_OUTPUT;
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
######################################################################################
|
||||
@@ -76,17 +97,17 @@ 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@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ github.repository_owner }}/.github
|
||||
path: ./Actions_${{ github.sha }}
|
||||
- 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
|
||||
@@ -95,6 +116,8 @@ jobs:
|
||||
|
||||
######################################################################################
|
||||
|
||||
|
||||
#
|
||||
# Do the loadup
|
||||
#
|
||||
|
||||
@@ -102,15 +125,21 @@ jobs:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
combined_release_tag: ${{ steps.job_outputs.outputs.COMBINED_RELEASE_TAG }}
|
||||
medley_release_tag: ${{ steps.job_outputs.outputs.MEDLEY_RELEASE_TAG }}
|
||||
medley_short_release_tag: ${{ steps.job_outputs.outputs.MEDLEY_SHORT_RELEASE_TAG }}
|
||||
debs_filename_base: ${{ steps.debs.outputs.DEBS_FILENAME_BASE }}
|
||||
|
||||
needs: [inputs, sentry]
|
||||
if: |
|
||||
needs.sentry.outputs.release_not_built == 'true'
|
||||
|| needs.inputs.outputs.force == 'true'
|
||||
|
||||
|
||||
steps:
|
||||
# Checkout the actions for this repo owner
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ github.repository_owner }}/.github
|
||||
path: ./Actions_${{ github.sha }}
|
||||
@@ -118,118 +147,264 @@ jobs:
|
||||
|
||||
# Checkout latest commit
|
||||
- name: Checkout Medley
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Setup release tag
|
||||
- name: Setup Release Tag
|
||||
id: tag
|
||||
uses: ./../actions/release-tag-action
|
||||
|
||||
# Setup environment variables
|
||||
- name: Setup Environment Variables
|
||||
id: setup_env
|
||||
run: |
|
||||
echo ::set-output name=build_time::$(date -u +'%Y-%m-%dT%H:%M:%SZ')
|
||||
|
||||
# Get Maiko release information, retrieves the name of the latest
|
||||
# release. Used to download the correct Maiko release
|
||||
- name: Get Maiko Release Information
|
||||
id: latest_version
|
||||
uses: abatilo/release-info-action@v1.3.0
|
||||
id: maiko
|
||||
uses: abatilo/release-info-action@v1.3.2
|
||||
with:
|
||||
owner: ${{ github.repository_owner }}
|
||||
repo: maiko
|
||||
|
||||
|
||||
# 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 "MEDLEY_RELEASE_TAG=${RELEASE_TAG}" >>${GITHUB_ENV}
|
||||
echo "MAIKO_RELEASE_TAG=${{ steps.maiko.outputs.latest_tag }}" >>${GITHUB_ENV}
|
||||
- name: More Environment Variables
|
||||
run: |
|
||||
echo "MEDLEY_SHORT_RELEASE_TAG=${MEDLEY_RELEASE_TAG#medley-}" >>${GITHUB_ENV}
|
||||
echo "MAIKO_SHORT_RELEASE_TAG=${MAIKO_RELEASE_TAG#maiko-}" >>${GITHUB_ENV}
|
||||
- name: Even More Environment Variables
|
||||
run: |
|
||||
echo "COMBINED_RELEASE_TAG=${MEDLEY_SHORT_RELEASE_TAG}_${MAIKO_SHORT_RELEASE_TAG}" >>${GITHUB_ENV}
|
||||
- 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;
|
||||
|
||||
# Setup some needed dirs in workspace
|
||||
- name: Create work dirs
|
||||
run: mkdir -p ${TARBALL_DIR}
|
||||
|
||||
# Download Maiko Release Assets
|
||||
- name: Download Release Assets
|
||||
uses: robinraju/release-downloader@v1.2
|
||||
uses: robinraju/release-downloader@v1.6
|
||||
with:
|
||||
repository: ${{ github.repository_owner }}/maiko
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
latest: true
|
||||
fileName: "${{ steps.latest_version.outputs.latest_tag }}-linux.x86_64.tgz"
|
||||
out-file-path: ${{ env.TARBALL_DIR }}
|
||||
fileName: "${{ env.MAIKO_RELEASE_TAG }}-linux.*.tgz"
|
||||
|
||||
- name: Untar Maiko Release
|
||||
- name: Untar Maiko Release for use in loadup
|
||||
run: |
|
||||
tar -xvzf "${{ steps.latest_version.outputs.latest_tag }}-linux.x86_64.tgz"
|
||||
tar -xzf "${TARBALL_DIR}/${{ env.MAIKO_RELEASE_TAG }}-linux.x86_64.tgz"
|
||||
|
||||
# Checkout Notecards and tar it in the tarballsdir
|
||||
- name: Checkout Notecards
|
||||
uses: actions/checkout@v3
|
||||
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
|
||||
|
||||
# Install vnc
|
||||
- name: Install vnc
|
||||
run: sudo apt-get update && sudo apt-get install -y tightvncserver
|
||||
|
||||
- name: Build Loadout
|
||||
- name: Build Loadup sysouts and databases
|
||||
run: |
|
||||
Xvnc -geometry 1280x720 :0 &
|
||||
export DISPLAY=":0"
|
||||
PATH="$PWD/maiko:$PATH"
|
||||
scripts/loadup-all.sh
|
||||
PATH="$PWD/maiko:$PATH"
|
||||
scripts/loadup-all.sh -apps
|
||||
|
||||
- name: Build loadups release tar
|
||||
run: |
|
||||
cp -p tmp/full.sysout tmp/lisp.sysout tmp/whereis.hash loadups/
|
||||
cp -p tmp/exports.all library/
|
||||
cd ..
|
||||
tar cfz medley/tmp/${release_tag}-loadups.tgz \
|
||||
mkdir -p medley/${TARBALL_DIR}
|
||||
tar cfz medley/${TARBALL_DIR}/${MEDLEY_RELEASE_TAG}-loadups.tgz \
|
||||
medley/loadups/lisp.sysout \
|
||||
medley/loadups/full.sysout \
|
||||
medley/loadups/apps.sysout \
|
||||
medley/loadups/whereis.hash \
|
||||
medley/library/exports.all
|
||||
|
||||
env:
|
||||
release_tag: ${{ steps.tag.outputs.release_tag }}
|
||||
|
||||
- name: Build runtime release tar
|
||||
run: |
|
||||
cd ..
|
||||
tar cfz medley/tmp/${release_tag}-runtime.tgz \
|
||||
mkdir -p medley/${TARBALL_DIR}
|
||||
tar cfz medley/${TARBALL_DIR}/${MEDLEY_RELEASE_TAG}-runtime.tgz \
|
||||
--exclude "*~" --exclude "*#*" \
|
||||
--exclude exports.all \
|
||||
medley/clos \
|
||||
medley/docs/dinfo \
|
||||
medley/docs/man-page/medley.1.gz \
|
||||
medley/doctools \
|
||||
medley/greetfiles \
|
||||
medley/rooms \
|
||||
medley/medley \
|
||||
medley/run-medley \
|
||||
medley/scripts \
|
||||
medley/fonts/displayfonts \
|
||||
medley/fonts/altofonts \
|
||||
medley/fonts/adobe \
|
||||
medley/fonts/postscriptfonts \
|
||||
medley/fonts/ipfonts \
|
||||
medley/library \
|
||||
medley/lispusers \
|
||||
medley/sources \
|
||||
medley/internal
|
||||
env:
|
||||
release_tag: ${{ steps.tag.outputs.release_tag }}
|
||||
|
||||
|
||||
- name: "Create release"
|
||||
uses: "actions/github-script@v5"
|
||||
# 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
|
||||
with:
|
||||
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
script: |
|
||||
try {
|
||||
await github.rest.repos.createRelease({
|
||||
draft: false,
|
||||
generate_release_notes: true,
|
||||
name: process.env.release_tag,
|
||||
owner: context.repo.owner,
|
||||
prerelease: false,
|
||||
repo: context.repo.repo,
|
||||
tag_name: process.env.release_tag,
|
||||
});
|
||||
} catch (error) {
|
||||
core.setFailed(error.message);
|
||||
}
|
||||
env:
|
||||
release_tag: ${{ steps.tag.outputs.release_tag }}
|
||||
tag: ${{ env.MEDLEY_RELEASE_TAG }}
|
||||
continue-on-error: true
|
||||
|
||||
- name: "Upload release assets"
|
||||
uses: AButler/upload-release-assets@v2.0
|
||||
- name: Push the release
|
||||
id: push_release
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
files: 'tmp/${{ env.release_tag }}-loadups.tgz;tmp/${{ env.release_tag }}-runtime.tgz'
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
release-tag: ${{ env.release_tag }}
|
||||
allowUpdates: true
|
||||
artifacts:
|
||||
${{ 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
|
||||
tag: ${{ env.MEDLEY_RELEASE_TAG }}
|
||||
draft: ${{ needs.inputs.outputs.draft }}
|
||||
prerelease: false
|
||||
generateReleaseNotes: true
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
|
||||
#
|
||||
# Create the Windows installer, push it up to the release on github and
|
||||
# update the downloads page on OIO
|
||||
#
|
||||
windows_installer:
|
||||
|
||||
runs-on: windows-latest
|
||||
|
||||
needs: [inputs, sentry, loadup]
|
||||
if: |
|
||||
needs.sentry.outputs.release_not_built == 'true'
|
||||
|| needs.inputs.outputs.force == 'true'
|
||||
|
||||
steps:
|
||||
# Checkout latest commit
|
||||
- name: Checkout Medley
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Store the values output from loadup job as environment variables
|
||||
- name: Environment Variables
|
||||
shell: powershell
|
||||
run: |
|
||||
$crt="${{ needs.loadup.outputs.combined_release_tag }}"
|
||||
echo "COMBINED_RELEASE_TAG=$crt" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
|
||||
$mrt="${{ needs.loadup.outputs.medley_release_tag }}"
|
||||
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
|
||||
$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
|
||||
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
|
||||
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
|
||||
|
||||
# Upload windows installer to release
|
||||
- name: Upload windows installer to release
|
||||
id: push
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
allowUpdates: true
|
||||
artifacts: installers/win/${{ env.INSTALLER_FILENAME }}
|
||||
tag: ${{ env.MEDLEY_RELEASE_TAG }}
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
omitBodyDuringUpdate: true
|
||||
omitDraftDuringUpdate: true
|
||||
omitNameDuringUpdate: true
|
||||
omitPrereleaseDuringUpdate: true
|
||||
|
||||
# Install the OpenSSH Client
|
||||
- name: Install the OpenSSH Client
|
||||
shell: powershell
|
||||
run: |
|
||||
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
|
||||
|
||||
# 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="${download_url/\/tag\//\/download\/}"
|
||||
local_template="installers/downloads_page/medley_downloads.html"
|
||||
local_filename="medley_downloads.html"
|
||||
local_manpath="docs/man-page/man_medley.html"
|
||||
if [ "${{ needs.inputs.outputs.draft }}" = "true" ];
|
||||
then
|
||||
remote_filename="draft_downloads"
|
||||
remote_manname="man_draft.html"
|
||||
else
|
||||
remote_filename="${local_filename%.html}"
|
||||
remote_manname="man_medley.html"
|
||||
fi
|
||||
remote_filepath="/srv/oio/static/${remote_filename}"
|
||||
remote_manpath="/srv/oio/static/${remote_manname}"
|
||||
# Fill in downloads page template
|
||||
sed \
|
||||
-e "s/@@@MEDLEY.SHORT.RELEASE.TAG@@@/${MEDLEY_SHORT_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" \
|
||||
< "${local_template}" > "${local_filename}"
|
||||
# Create sftp instruction file
|
||||
echo "-rm ${remote_filepath}.oldold" > batch
|
||||
echo "-rename ${remote_filepath}.old ${remote_filepath}.oldold" >> batch
|
||||
echo "-rename ${remote_filepath}.html ${remote_filepath}.old" >> batch
|
||||
echo "-put ${local_filename} ${remote_filepath}.html" >> batch
|
||||
echo "-put ${local_manpath} ${remote_manpath}" >> batch
|
||||
# Do the sftp
|
||||
eval $(ssh-agent)
|
||||
ssh-add - <<< "${SSH_KEY}"
|
||||
sftp -o StrictHostKeyChecking=no -b batch ubuntu@online.interlisp.org
|
||||
env:
|
||||
release_tag: ${{ steps.tag.outputs.release_tag }}
|
||||
SSH_KEY: ${{ secrets.OIO_SSH_KEY }}
|
||||
|
||||
|
||||
|
||||
######################################################################################
|
||||
@@ -244,12 +419,12 @@ jobs:
|
||||
outputs:
|
||||
build_successful: ${{ steps.output.outputs.build_successful }}
|
||||
|
||||
needs: [inputs, sentry, loadup]
|
||||
needs: [inputs, sentry, loadup, windows_installer]
|
||||
|
||||
steps:
|
||||
steps:
|
||||
# Checkout the actions for this repo owner
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ github.repository_owner }}/.github
|
||||
path: ./Actions_${{ github.sha }}
|
||||
@@ -265,6 +440,24 @@ jobs:
|
||||
- name: Output
|
||||
id: output
|
||||
run: |
|
||||
echo ::set-output name=build_successful::'true'
|
||||
|
||||
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}
|
||||
|
||||
|
||||
89
.github/workflows/buildReleaseInclDocker.yml
vendored
89
.github/workflows/buildReleaseInclDocker.yml
vendored
@@ -18,19 +18,98 @@ name: "Build/Push Release & Docker"
|
||||
|
||||
# Run this workflow on ...
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 9 * * 1'
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
inputs:
|
||||
draft:
|
||||
description: "Mark this as a draft release"
|
||||
type: choice
|
||||
options:
|
||||
- 'false'
|
||||
- 'true'
|
||||
force:
|
||||
description: "Force build even if build already successfully completed for this commit"
|
||||
type: choice
|
||||
options:
|
||||
- 'false'
|
||||
- 'true'
|
||||
|
||||
workflow_call:
|
||||
outputs:
|
||||
successful:
|
||||
description: "'True' if medley build completed successully"
|
||||
value: ${{ jobs.complete.outputs.build_successful }}
|
||||
inputs:
|
||||
draft:
|
||||
description: "Mark this as a draft release"
|
||||
required: false
|
||||
type: string
|
||||
default: 'false'
|
||||
force:
|
||||
description: "Force build even if build already successfully completed for this commit"
|
||||
required: false
|
||||
type: string
|
||||
default: 'false'
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
|
||||
# Jobs that compose this workflow
|
||||
jobs:
|
||||
|
||||
|
||||
######################################################################################
|
||||
|
||||
# Regularize the inputs so they can be referenced the same way whether they are
|
||||
# the result of a workflow_dispatch or a workflow_call
|
||||
|
||||
inputs:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
draft: ${{ steps.one.outputs.draft }}
|
||||
force: ${{ steps.one.outputs.force }}
|
||||
steps:
|
||||
- id: one
|
||||
run: >
|
||||
if [ '${{ toJSON(inputs) }}' != 'null' ];
|
||||
then
|
||||
echo "draft=${{ inputs.draft }}" >> $GITHUB_OUTPUT;
|
||||
echo "force=${{ inputs.force }}" >> $GITHUB_OUTPUT;
|
||||
else
|
||||
echo "draft=false" >> $GITHUB_OUTPUT;
|
||||
echo "force=false" >> $GITHUB_OUTPUT;
|
||||
fi
|
||||
|
||||
######################################################################################
|
||||
|
||||
|
||||
# Build Loadup
|
||||
do_release:
|
||||
needs: inputs
|
||||
uses: ./.github/workflows/buildLoadup.yml
|
||||
|
||||
with:
|
||||
draft: ${{ needs.inputs.outputs.draft }}
|
||||
force: ${{ needs.inputs.outputs.force }}
|
||||
secrets:
|
||||
OIO_SSH_KEY: ${{ secrets.OIO_SSH_KEY }}
|
||||
|
||||
|
||||
######################################################################################
|
||||
|
||||
# Build Docker Image
|
||||
do_docker:
|
||||
needs: do_release
|
||||
needs: [inputs, do_release]
|
||||
uses: ./.github/workflows/buildDocker.yml
|
||||
with:
|
||||
draft: ${{ needs.inputs.outputs.draft }}
|
||||
force: ${{ needs.inputs.outputs.force }}
|
||||
secrets:
|
||||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
||||
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
||||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
||||
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
######################################################################################
|
||||
|
||||
|
||||
23
.github/workflows/testLogin.yml
vendored
23
.github/workflows/testLogin.yml
vendored
@@ -1,23 +0,0 @@
|
||||
name: 'Test Docker Login'
|
||||
|
||||
# Run this workflow on ...
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
login_test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- id: only_step
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
|
||||
7
.gitignore
vendored
7
.gitignore
vendored
@@ -10,6 +10,7 @@ loadups/lisp.sysout
|
||||
loadups/full.sysout
|
||||
loadups/*.dribble
|
||||
loadups/whereis.hash
|
||||
loadups/apps.sysout
|
||||
|
||||
# manual cross-reference files
|
||||
|
||||
@@ -36,3 +37,9 @@ core
|
||||
|
||||
# Mac OS detritus
|
||||
.DS_Store
|
||||
*.PS
|
||||
|
||||
# nano detritus
|
||||
*.swp
|
||||
*.save
|
||||
|
||||
|
||||
54
Dockerfile
54
Dockerfile
@@ -1,54 +0,0 @@
|
||||
#*******************************************************************************
|
||||
#
|
||||
# Dockerfile to build Medley image from latest Maiko image
|
||||
# plus latest release tars from github
|
||||
#
|
||||
# Copyright 2022 by Interlisp.org
|
||||
#
|
||||
# ******************************************************************************
|
||||
|
||||
ARG DOCKER_NAMESPACE=interlisp
|
||||
|
||||
FROM ${DOCKER_NAMESPACE}/maiko:latest
|
||||
|
||||
# Add tightvnc server and xclip to the image
|
||||
RUN apt-get update && apt-get install -y tightvncserver && apt-get install -y xclip
|
||||
|
||||
# Handle ARGs, ENV variables, and LABELs
|
||||
ARG BUILD_DATE=unknown
|
||||
ARG RELEASE_TAG=unknown
|
||||
ARG MAIKO_RELEASE=unknown
|
||||
ARG REPO_OWNER=Interlisp
|
||||
LABEL name="Medley"
|
||||
LABEL description="The Medley Interlisp environment"
|
||||
LABEL url="https://github.com/${REPO_OWNER}/medley"
|
||||
LABEL build-time=$BUILD_DATE
|
||||
LABEL release_tag=$RELEASE_TAG
|
||||
LABEL maiko_release=$MAIKO_RELEASE
|
||||
|
||||
ENV MEDLEY_BUILD_DATE=$BUILD_DATE
|
||||
ENV MEDLEY_RELEASE=$RELEASE_TAG
|
||||
|
||||
ARG INSTALL_LOCATION=/usr/local/interlisp
|
||||
ENV INSTALL_LOCATION=${INSTALL_LOCATION}
|
||||
|
||||
ARG DOCKER_NAMESPACE=interlisp
|
||||
ENV DOCKER_NAMESPACE=${DOCKER_NAMESPACE}
|
||||
|
||||
# Copy over the release tars
|
||||
RUN mkdir -p ${INSTALL_LOCATION}
|
||||
ADD ./*.tgz ${INSTALL_LOCATION}
|
||||
|
||||
# Create a run_medley script in /usr/local/bin
|
||||
RUN mkdir -p /usr/local/bin && \
|
||||
echo "#!/bin/bash" > /usr/local/bin/run-medley && \
|
||||
echo "cd ${INSTALL_LOCATION}" >> /usr/local/bin/run-medley && \
|
||||
echo './run-medley "$@"' >> /usr/local/bin/run-medley && \
|
||||
chmod ugo+x /usr/local/bin/run-medley
|
||||
|
||||
# "Finalize" image
|
||||
EXPOSE 5900
|
||||
RUN adduser --disabled-password --gecos "" medley
|
||||
USER medley
|
||||
WORKDIR /home/medley
|
||||
ENTRYPOINT USER=medley Xvnc -geometry 1280x720 :0 & DISPLAY=:0 ${INSTALL_LOCATION}/medley/run-medley -full -g 1280x720 -sc 1280x720
|
||||
@@ -105,8 +105,7 @@ dump of your system located in your home directory named
|
||||
specify a specific image to run, Medley restores that image so that
|
||||
you can continue right where you left off.
|
||||
|
||||
* [Using Medley Interlisp](https://github.com/Interlisp/medley/wiki/Using-Medley-Interlisp)
|
||||
|
||||
* [Using Medley Interlisp](https://interlisp.org/doc/info/Using.html)
|
||||
|
||||
## Naming conventions and directory structure
|
||||
|
||||
|
||||
BIN
docs/ReleaseNote/APPENDIXA-THEEXEC.TEDIT
Normal file
BIN
docs/ReleaseNote/APPENDIXA-THEEXEC.TEDIT
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/APPENDIXB-SEDIT.TEDIT
Normal file
BIN
docs/ReleaseNote/APPENDIXB-SEDIT.TEDIT
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/APPENDIXC-ICONW.TEDIT
Normal file
BIN
docs/ReleaseNote/APPENDIXC-ICONW.TEDIT
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/APPENDIXD-FREEMENU.TEDIT
Normal file
BIN
docs/ReleaseNote/APPENDIXD-FREEMENU.TEDIT
Normal file
Binary file not shown.
148
docs/ReleaseNote/APPENDIXE-ERRSYS.TEDIT
Normal file
148
docs/ReleaseNote/APPENDIXE-ERRSYS.TEDIT
Normal file
File diff suppressed because one or more lines are too long
BIN
docs/ReleaseNote/ENVOSCOVERSHEET.TEDIT
Normal file
BIN
docs/ReleaseNote/ENVOSCOVERSHEET.TEDIT
Normal file
Binary file not shown.
138
docs/ReleaseNote/Indexfinal.tedit
Normal file
138
docs/ReleaseNote/Indexfinal.tedit
Normal file
File diff suppressed because one or more lines are too long
BIN
docs/ReleaseNote/LOT.tedit
Normal file
BIN
docs/ReleaseNote/LOT.tedit
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/PREFACE.TEDIT
Normal file
BIN
docs/ReleaseNote/PREFACE.TEDIT
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/PRINTINGSPEC.TEDIT
Normal file
BIN
docs/ReleaseNote/PRINTINGSPEC.TEDIT
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/SEC1-INTRODUCTION.TEDIT
Normal file
BIN
docs/ReleaseNote/SEC1-INTRODUCTION.TEDIT
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/SEC2-NOTES-AND-CAUTIONS.TEDIT
Normal file
BIN
docs/ReleaseNote/SEC2-NOTES-AND-CAUTIONS.TEDIT
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/SEC3-IRMFEATURES-I.TEDIT
Normal file
BIN
docs/ReleaseNote/SEC3-IRMFEATURES-I.TEDIT
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/SEC3-IRMFEATURES-II.TEDIT
Normal file
BIN
docs/ReleaseNote/SEC3-IRMFEATURES-II.TEDIT
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/SEC3-IRMFEATURES-III.TEDIT
Normal file
BIN
docs/ReleaseNote/SEC3-IRMFEATURES-III.TEDIT
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/SEC4-IRMERRATA.TEDIT
Normal file
BIN
docs/ReleaseNote/SEC4-IRMERRATA.TEDIT
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/SEC5-LIBRARY-MODULES.TEDIT
Normal file
BIN
docs/ReleaseNote/SEC5-LIBRARY-MODULES.TEDIT
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/SEC6-USERS-GUIDES.TEDIT
Normal file
BIN
docs/ReleaseNote/SEC6-USERS-GUIDES.TEDIT
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/SEC7-CLIMPLMNTN.TEDIT
Normal file
BIN
docs/ReleaseNote/SEC7-CLIMPLMNTN.TEDIT
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/TABS2L.SKETCH
Normal file
BIN
docs/ReleaseNote/TABS2L.SKETCH
Normal file
Binary file not shown.
2
docs/ReleaseNote/TABSINFOP.SKETCH
Normal file
2
docs/ReleaseNote/TABSINFOP.SKETCH
Normal file
File diff suppressed because one or more lines are too long
BIN
docs/ReleaseNote/TABSLAYOUTL.SKETCH
Normal file
BIN
docs/ReleaseNote/TABSLAYOUTL.SKETCH
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/TABSPEC.TEDIT
Normal file
BIN
docs/ReleaseNote/TABSPEC.TEDIT
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/TOC.TEDIT
Normal file
BIN
docs/ReleaseNote/TOC.TEDIT
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/Tab-Replacements.tedit
Normal file
BIN
docs/ReleaseNote/Tab-Replacements.tedit
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/Titlepage.tedit
Normal file
BIN
docs/ReleaseNote/Titlepage.tedit
Normal file
Binary file not shown.
BIN
docs/ReleaseNote/bindercover.sketch
Normal file
BIN
docs/ReleaseNote/bindercover.sketch
Normal file
Binary file not shown.
146
docs/ReleaseNote/indexbase.tedit
Normal file
146
docs/ReleaseNote/indexbase.tedit
Normal file
File diff suppressed because one or more lines are too long
2
docs/man-page/man2html.sh
Executable file
2
docs/man-page/man2html.sh
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
pandoc --from man --to html < medley.1 > man_medley.html
|
||||
107
docs/man-page/man_medley.html
Normal file
107
docs/man-page/man_medley.html
Normal file
@@ -0,0 +1,107 @@
|
||||
<h1>NAME</h1>
|
||||
<p><strong>medley</strong> — starts up Medley Interlisp</p>
|
||||
<h1>SYNOPSIS</h1>
|
||||
<p><strong>medley</strong> [ flags ... ] [ <em>SYSOUT_FILE</em> ] [ -- <em>PASS_ON_ARGS</em> ]</p>
|
||||
<h1>DESCRIPTION</h1>
|
||||
<p>Starts Medley Interlisp in a window.</p>
|
||||
<h1>OPTIONS</h1>
|
||||
<p><strong>MEDLEYDIR</strong> is an environment variable set by Medley and used by many of the options described below. MEDLEYDIR is the top level directory of the Medley installation that contains the specific medley script that is invoked after all symbolic links are resolved. In the standard global installation this will be /usr/local/interlisp/medley. But Medley can be installed in multiple places on any given machine and hence MEDLEYDIR is computed on each invocation of medley.</p>
|
||||
<h2>Flags</h2>
|
||||
|
||||
<dl>
|
||||
<dt><strong>-h, --help</strong></dt>
|
||||
<dd><p>Prints out a brief summary of the flags and arguments to medley.</p>
|
||||
</dd>
|
||||
<dt><strong>-z, --man</strong></dt>
|
||||
<dd><p>Show the man page for medley</p>
|
||||
</dd>
|
||||
<dt><strong>-f, --full</strong></dt>
|
||||
<dd><p>Start Medley from the standard “full” sysout. full.sysout includes a complete Interlisp and CommonLisp environment with a standard set of development tools. It does not include any of the applications built using Medley. (See <em>SYSOUT_FILE</em> below for more information on starting sysouts.)</p>
|
||||
</dd>
|
||||
<dt><strong>-l, --lisp</strong></dt>
|
||||
<dd><p>Start Medley from the standard “lisp” sysout. lisp.sysout only includes the basic Interlisp and CommonLisp environment. (See <em>SYSOUT_FILE</em> below for more information on starting sysouts.)</p>
|
||||
</dd>
|
||||
<dt><strong>-a, --apps</strong></dt>
|
||||
<dd><p>Start Medley from the standard “apps” sysout. apps.sysout includes everything in full.sysout plus Medley applications including Notecards, Rooms and CLOS. It also includes pre-installed links to key Medley documentation. (See <em>SYSOUT_FILE</em> below for more information on starting sysouts.)</p>
|
||||
</dd>
|
||||
<dt><strong>-e, --interlisp (relevent only when --apps is specified)</strong></dt>
|
||||
<dd><p>Make the initial Exec window within Medley be an Interlisp Exec. Default is to start in an XCL Exec.</p>
|
||||
</dd>
|
||||
<dt><strong>-n, --noscroll</strong></dt>
|
||||
<dd><p>Ordinarily Medley displays scroll bars to enable the user to pan the Medley virtual display within the Medley window. This is true even when the entire virtual display fits within the window. Specifying --noscroll turns off the scroll bars. Note: If --noscroll is specified and the virtual screen is larger than the window, there will be no way to pan to the non-visible parts of the virtual display.</p>
|
||||
</dd>
|
||||
<dt><strong>-g <em>WxH</em>, --geometry <em>WxH</em></strong></dt>
|
||||
<dd><p>Sets the size of the X Window (or VNC window) that Medley runs in to be Width x Height. (Full X Windows geomtery specification with +X+Y is not currently supported). If --geometry is not specified but --screensize is, then the window size will be determined based on the --screensize values and the --noscroll flag. If neither --geometry nor --screensize is provided, then the window size is set to 1440x900 if --noscroll is set and 1462x922 if --noscroll is not set.</p>
|
||||
</dd>
|
||||
<dt><strong>-s <em>WxH</em>, --screensize <em>WxH</em></strong></dt>
|
||||
<dd><p>Sets the size of the virtual display as seen from Medley’s point of view. The Medley window is an unscaled viewport onto this virtual display. If --screensize is not specified but --geometry is, then the virtual display size will be set so that the entire virtual display fits into the given window geometry. If neither --screensize nor --geometry is provided, then the screen size is set to 1440x900.</p>
|
||||
</dd>
|
||||
<dt><strong>-t <em>STRING</em>, --title <em>STRING</em></strong></dt>
|
||||
<dd><p>Use STRING as title of Medley window. Ignored when when the --vnc flag is set or when running on Windows (Docker) installations.</p>
|
||||
</dd>
|
||||
<dt><strong>-d <em>:N</em>, --display <em>:N</em> ** <strong>Not</strong> applicable to Windows (Docker) installations **</strong></dt>
|
||||
<dd><p>Use X display :N. Defaults to the value of $DISPLAY. This flag is ignored when the --vnc flag is set as well as on Windows (Docker) installations.</p>
|
||||
</dd>
|
||||
<dt><strong>-v, --vnc ** <strong>Applicable</strong> only to WSL installations **</strong></dt>
|
||||
<dd><p>Use a VNC window running on the Windows side instead of an X window. The VNC window will folllow the Windows desktop scaling setting allowing for much more usable Medley on high resolution displays. On WSL, X windows do not scale well. This flag is always set for WSL1 installations.</p>
|
||||
</dd>
|
||||
<dt><strong>-i [<em>ID_STRING</em> | - | --], --id [<em>ID_STRING</em> | - | --]</strong></dt>
|
||||
<dd><p>Use ID_STRING as the id for this run of Medley, iunless ID_STRING is “-” or “--”. If ID_STRING is “-”, then use the basename of $MEDLEYDIR as the id. If ID_STRING is “--”, then use the basename of the parent directory of $MEDLEYDIR as the id. Only one instance of Medley with a given id can run at a time. The id is used to distinguish the virtual memory stores so that multiple instances of Medley can run simultaneously. Default id is “default”.</p>
|
||||
</dd>
|
||||
<dt><strong>-m <em>N</em>, --mem <em>N</em></strong></dt>
|
||||
<dd><p>Set Medley to run in <em>N</em> MB of virtual memory. Defaults to 256MB.</p>
|
||||
</dd>
|
||||
<dt><strong>-p <em>FILE</em>, --vmem <em>FILE</em></strong></dt>
|
||||
<dd><p>Use FILE as the Medley virtual memory (vmem) store. FILE must be writeable by the current user. Care must be taken not to use the same vmem FILE for two instances of Medley running simultaneously. The --id flag will not protect against vmem collisions when the --vmem flag is used. Default is to store the vmem in LOGINDIR/vmem/lisp_XXX.virtualmem, where XXX is the id of this Medley run (see --id flag above). See --logindir below for setting of LOGINDIR. On Windows (Docker) installations, <em>FILE</em> is specified in the Medley file system, not the host Windows file system.</p>
|
||||
</dd>
|
||||
<dt><strong>-r [<em>FILE</em> | -], --greet [<em>FILE</em> | -]</strong></dt>
|
||||
<dd><p>Use FILE as the Medley greetfile, unless FILE is “-” in which case Medley will start up without using a greetfile. The default Medley greetfile is $MEDLEYDIR/greetfiles/MEDLEYDIR-INIT, except when the --apps flag is used in which case it is $MEDLEYDIR/greetfiles/APPS-INIT. On Windows (Docker) installations, <em>FILE</em> is specified in the Medley file system, not the host Windows file system.</p>
|
||||
</dd>
|
||||
<dt><strong>-x [<em>DIR</em> | -], --logindir [<em>DIR</em> | -] ** <strong>On</strong> Linux and WSL installations **</strong></dt>
|
||||
<dd><p>Use DIR as LOGINDIR in Medley, unless DIR is “-”, in which case use $MEDLEYDIR/logindir. DIR (or $MEDLEYDIR/logindir) must be writeable by the current user. LOGINDIR defaults to $HOME/il. LOGINDIR is used by Medley as the working directory on start-up and where it loads any “personal” initialization file from.</p>
|
||||
</dd>
|
||||
<dt><strong>-x [<em>DIR</em> | -], --logindir [<em>DIR</em> | -] ** <strong>On</strong> Windows (Docker) installations **</strong></dt>
|
||||
<dd><p>Map DIR in the Windows host file system to /home/medley/il in the Medley file system (in the Docker container). LOGINDIR is always /home/medley/il from Medley’s standpoint. The “-” value is not valid in this case.</p>
|
||||
</dd>
|
||||
<dt><strong>-u, --update ** <strong>Windows</strong> (Docker) installations only **</strong></dt>
|
||||
<dd><p>Before running Medley, do a pull to retrieve the latest interlisp/medley docker image from Docker Hub.</p>
|
||||
</dd>
|
||||
<dt><strong>-b, --background ** <strong>Windows</strong> (Docker) installations only **</strong></dt>
|
||||
<dd><p>Run Medley in background rather than foreground.</p>
|
||||
</dd>
|
||||
<dt><strong>-p <em>PORT</em>, --port <em>PORT</em> ** <strong>Windows</strong> (Docker) installations only **</strong></dt>
|
||||
<dd><p>Use <em>PORT</em> as the port that VNC viewer uses to contact the VNC server within the Docker container. Default is 5900.</p>
|
||||
</dd>
|
||||
<dt><strong>-w [<em>DISTRO</em> | -], --wsl [<em>DISTRO</em> | -] ** <strong>Windows</strong> (Docker) installations only **</strong></dt>
|
||||
<dd><p>Run Medley in the context of the named WSL <em>DISTRO</em> instead of within Docker. If <em>DISTRO</em> is “-”, used the default WSL distro. Equivalent to typing “wsl -d <em>DISTRO</em> medley ...” into a Command or Powershell window.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<h2>Other Options</h2>
|
||||
|
||||
<dl>
|
||||
<dt><strong><em>SYSOUT_FILE</em></strong></dt>
|
||||
<dd><p>The pathname of the file to use as a sysout for Medley to start from. If SYSOUT_FILE is not provided and none of the flags (--apps, --full, --lisp) is used, then Medley will start from the saved virtual memory file from the previous session with the same ID_STRING as this run. If no such virtual memory file exists, then Medley will start from the standard full.sysout (equivalent to specifying the --full flag). On Windows (Docker) installations, <em>SYSOUT_FILE</em> is specified in the Medley file system, not the host Windows file system.</p>
|
||||
</dd>
|
||||
<dt><strong><em>PASS_ON_ARGS</em></strong></dt>
|
||||
<dd><p>All arguments after the “--” flag, are passed unaltered to lde via run-medley.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<h1>FILES</h1>
|
||||
<dl>
|
||||
<dt><strong>$HOME/il</strong></dt>
|
||||
<dd><p>Default Medley LOGINDIR</p>
|
||||
</dd>
|
||||
<dt><strong>$HOME/il/vmem/lisp.virtualmem</strong></dt>
|
||||
<dd><p>Default virtual memory file</p>
|
||||
</dd>
|
||||
<dt><strong>$HOME/il/INIT(.LCOM)</strong></dt>
|
||||
<dd><p>Default personal init file</p>
|
||||
</dd>
|
||||
<dt><strong>$MEDLEYDIR/greetfiles/MEDLEYDIR-INIT(.LCOM)</strong></dt>
|
||||
<dd><p>Default Medley greetfile</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<h1>BUGS</h1>
|
||||
<p>See GitHub Issues: <https://github.com/Interlisp/medley/issues></p>
|
||||
<h1>COPYRIGHT</h1>
|
||||
<p>Copyright(c) 2023 by Interlisp.org</p>
|
||||
3
docs/man-page/md2man.sh
Executable file
3
docs/man-page/md2man.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
pandoc medley.1.md -s -t man -o medley.1
|
||||
gzip --stdout medley.1 >medley.1.gz
|
||||
220
docs/man-page/medley.1
Normal file
220
docs/man-page/medley.1
Normal file
@@ -0,0 +1,220 @@
|
||||
.\" Automatically generated by Pandoc 2.5
|
||||
.\"
|
||||
.ad l
|
||||
.TH "MEDLEY" "1" "" "" "Start Medley Interlisp"
|
||||
.nh \" Turn off hyphenation by default.
|
||||
.SH NAME
|
||||
.PP
|
||||
\f[B]medley\f[R] \[em] starts up Medley Interlisp
|
||||
.SH SYNOPSIS
|
||||
.PP
|
||||
\f[B]medley\f[R] [ flags \&... ] [ \f[I]SYSOUT_FILE\f[R] ] [ \-\-
|
||||
\f[I]PASS_ON_ARGS\f[R] ]
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
Starts Medley Interlisp in a window.
|
||||
.SH OPTIONS
|
||||
.PP
|
||||
\f[B]MEDLEYDIR\f[R] is an environment variable set by Medley and used by
|
||||
many of the options described below.
|
||||
MEDLEYDIR is the top level directory of the Medley installation that
|
||||
contains the specific medley script that is invoked after all symbolic
|
||||
links are resolved.
|
||||
In the standard global installation this will be
|
||||
/usr/local/interlisp/medley.
|
||||
But Medley can be installed in multiple places on any given machine and
|
||||
hence MEDLEYDIR is computed on each invocation of medley.
|
||||
.SS Flags
|
||||
.PP
|
||||
\
|
||||
.TP
|
||||
.B \-h, \-\-help
|
||||
Prints out a brief summary of the flags and arguments to medley.
|
||||
.TP
|
||||
.B \-z, \-\-man
|
||||
Show the man page for medley
|
||||
.TP
|
||||
.B \-f, \-\-full
|
||||
Start Medley from the standard \[lq]full\[rq] sysout.
|
||||
full.sysout includes a complete Interlisp and CommonLisp environment
|
||||
with a standard set of development tools.
|
||||
It does not include any of the applications built using Medley.
|
||||
(See \f[I]SYSOUT_FILE\f[R] below for more information on starting
|
||||
sysouts.)
|
||||
.TP
|
||||
.B \-l, \-\-lisp
|
||||
Start Medley from the standard \[lq]lisp\[rq] sysout.
|
||||
lisp.sysout only includes the basic Interlisp and CommonLisp
|
||||
environment.
|
||||
(See \f[I]SYSOUT_FILE\f[R] below for more information on starting
|
||||
sysouts.)
|
||||
.TP
|
||||
.B \-a, \-\-apps
|
||||
Start Medley from the standard \[lq]apps\[rq] sysout.
|
||||
apps.sysout includes everything in full.sysout plus Medley applications
|
||||
including Notecards, Rooms and CLOS.
|
||||
It also includes pre\-installed links to key Medley documentation.
|
||||
(See \f[I]SYSOUT_FILE\f[R] below for more information on starting
|
||||
sysouts.)
|
||||
.TP
|
||||
.B \-e, \-\-interlisp (relevent only when \-\-apps is specified)
|
||||
Make the initial Exec window within Medley be an Interlisp Exec.
|
||||
Default is to start in an XCL Exec.
|
||||
.TP
|
||||
.B \-n, \-\-noscroll
|
||||
Ordinarily Medley displays scroll bars to enable the user to pan the
|
||||
Medley virtual display within the Medley window.
|
||||
This is true even when the entire virtual display fits within the
|
||||
window.
|
||||
Specifying \-\-noscroll turns off the scroll bars.
|
||||
Note: If \-\-noscroll is specified and the virtual screen is larger than
|
||||
the window, there will be no way to pan to the non\-visible parts of the
|
||||
virtual display.
|
||||
.TP
|
||||
.B \-g \f[I]WxH\f[R], \-\-geometry \f[I]WxH\f[R]
|
||||
Sets the size of the X Window (or VNC window) that Medley runs in to be
|
||||
Width x Height.
|
||||
(Full X Windows geomtery specification with +X+Y is not currently
|
||||
supported).
|
||||
If \-\-geometry is not specified but \-\-screensize is, then the window
|
||||
size will be determined based on the \-\-screensize values and the
|
||||
\-\-noscroll flag.
|
||||
If neither \-\-geometry nor \-\-screensize is provided, then the window
|
||||
size is set to 1440x900 if \-\-noscroll is set and 1462x922 if
|
||||
\-\-noscroll is not set.
|
||||
.TP
|
||||
.B \-s \f[I]WxH\f[R], \-\-screensize \f[I]WxH\f[R]
|
||||
Sets the size of the virtual display as seen from Medley\[cq]s point of
|
||||
view.
|
||||
The Medley window is an unscaled viewport onto this virtual display.
|
||||
If \-\-screensize is not specified but \-\-geometry is, then the virtual
|
||||
display size will be set so that the entire virtual display fits into
|
||||
the given window geometry.
|
||||
If neither \-\-screensize nor \-\-geometry is provided, then the screen
|
||||
size is set to 1440x900.
|
||||
.TP
|
||||
.B \-t \f[I]STRING\f[R], \-\-title \f[I]STRING\f[R]
|
||||
Use STRING as title of Medley window.
|
||||
Ignored when when the \-\-vnc flag is set or when running on Windows
|
||||
(Docker) installations.
|
||||
.TP
|
||||
.B \-d \f[I]:N\f[R], \-\-display \f[I]:N\f[R]\ \ \ \ ** \f[B]Not applicable to Windows (Docker) installations\f[R] **
|
||||
Use X display :N.
|
||||
Defaults to the value of $DISPLAY.
|
||||
This flag is ignored when the \-\-vnc flag is set as well as on Windows
|
||||
(Docker) installations.
|
||||
.TP
|
||||
.B \-v, \-\-vnc\ \ \ \ ** \f[B]Applicable only to WSL installations\f[R] **
|
||||
Use a VNC window running on the Windows side instead of an X window.
|
||||
The VNC window will folllow the Windows desktop scaling setting allowing
|
||||
for much more usable Medley on high resolution displays.
|
||||
On WSL, X windows do not scale well.
|
||||
This flag is always set for WSL1 installations.
|
||||
.TP
|
||||
.B \-i [\f[I]ID_STRING\f[R] | \- | \-\-], \-\-id [\f[I]ID_STRING\f[R] | \- | \-\-]
|
||||
Use ID_STRING as the id for this run of Medley, iunless ID_STRING is
|
||||
\[lq]\-\[rq] or \[lq]\-\-\[rq].
|
||||
If ID_STRING is \[lq]\-\[rq], then use the basename of $MEDLEYDIR as the
|
||||
id.
|
||||
If ID_STRING is \[lq]\-\-\[rq], then use the basename of the parent
|
||||
directory of $MEDLEYDIR as the id.
|
||||
Only one instance of Medley with a given id can run at a time.
|
||||
The id is used to distinguish the virtual memory stores so that multiple
|
||||
instances of Medley can run simultaneously.
|
||||
Default id is \[lq]default\[rq].
|
||||
.TP
|
||||
.B \-m \f[I]N\f[R], \-\-mem \f[I]N\f[R]
|
||||
Set Medley to run in \f[I]N\f[R] MB of virtual memory.
|
||||
Defaults to 256MB.
|
||||
.TP
|
||||
.B \-p \f[I]FILE\f[R], \-\-vmem \f[I]FILE\f[R]
|
||||
Use FILE as the Medley virtual memory (vmem) store.
|
||||
FILE must be writeable by the current user.
|
||||
Care must be taken not to use the same vmem FILE for two instances of
|
||||
Medley running simultaneously.
|
||||
The \-\-id flag will not protect against vmem collisions when the
|
||||
\-\-vmem flag is used.
|
||||
Default is to store the vmem in LOGINDIR/vmem/lisp_XXX.virtualmem, where
|
||||
XXX is the id of this Medley run (see \-\-id flag above).
|
||||
See \-\-logindir below for setting of LOGINDIR.
|
||||
On Windows (Docker) installations, \f[I]FILE\f[R] is specified in the
|
||||
Medley file system, not the host Windows file system.
|
||||
.TP
|
||||
.B \-r [\f[I]FILE\f[R] | \-], \-\-greet [\f[I]FILE\f[R] | \-]
|
||||
Use FILE as the Medley greetfile, unless FILE is \[lq]\-\[rq] in which
|
||||
case Medley will start up without using a greetfile.
|
||||
The default Medley greetfile is $MEDLEYDIR/greetfiles/MEDLEYDIR\-INIT,
|
||||
except when the \-\-apps flag is used in which case it is
|
||||
$MEDLEYDIR/greetfiles/APPS\-INIT.
|
||||
On Windows (Docker) installations, \f[I]FILE\f[R] is specified in the
|
||||
Medley file system, not the host Windows file system.
|
||||
.TP
|
||||
.B \-x [\f[I]DIR\f[R] | \-], \-\-logindir [\f[I]DIR\f[R] | \-]\ \ \ \ ** \f[B]On Linux and WSL installations\f[R] **
|
||||
Use DIR as LOGINDIR in Medley, unless DIR is \[lq]\-\[rq], in which case
|
||||
use $MEDLEYDIR/logindir.
|
||||
DIR (or $MEDLEYDIR/logindir) must be writeable by the current user.
|
||||
LOGINDIR defaults to $HOME/il.
|
||||
LOGINDIR is used by Medley as the working directory on start\-up and
|
||||
where it loads any \[lq]personal\[rq] initialization file from.
|
||||
.TP
|
||||
.B \-x [\f[I]DIR\f[R] | \-], \-\-logindir [\f[I]DIR\f[R] | \-]\ \ \ \ ** \f[B]On Windows (Docker) installations\f[R] **
|
||||
Map DIR in the Windows host file system to /home/medley/il in the Medley
|
||||
file system (in the Docker container).
|
||||
LOGINDIR is always /home/medley/il from Medley\[cq]s standpoint.
|
||||
The \[lq]\-\[rq] value is not valid in this case.
|
||||
.TP
|
||||
.B \-u, \-\-update\ \ \ \ ** \f[B]Windows (Docker) installations only\f[R] **
|
||||
Before running Medley, do a pull to retrieve the latest interlisp/medley
|
||||
docker image from Docker Hub.
|
||||
.TP
|
||||
.B \-b, \-\-background\ \ \ \ ** \f[B]Windows (Docker) installations only\f[R] **
|
||||
Run Medley in background rather than foreground.
|
||||
.TP
|
||||
.B \-p \f[I]PORT\f[R], \-\-port \f[I]PORT\f[R]\ \ \ \ ** \f[B]Windows (Docker) installations only\f[R] **
|
||||
Use \f[I]PORT\f[R] as the port that VNC viewer uses to contact the VNC
|
||||
server within the Docker container.
|
||||
Default is 5900.
|
||||
.TP
|
||||
.B \-w [\f[I]DISTRO\f[R] | \-], \-\-wsl [\f[I]DISTRO\f[R] | \-]\ \ \ \ ** \f[B]Windows (Docker) installations only\f[R] **
|
||||
Run Medley in the context of the named WSL \f[I]DISTRO\f[R] instead of
|
||||
within Docker.
|
||||
If \f[I]DISTRO\f[R] is \[lq]\-\[rq], used the default WSL distro.
|
||||
Equivalent to typing \[lq]wsl \-d \f[I]DISTRO\f[R] medley \&...\[rq]
|
||||
into a Command or Powershell window.
|
||||
.SS Other Options
|
||||
.PP
|
||||
\
|
||||
.TP
|
||||
.B \f[I]SYSOUT_FILE\f[R]
|
||||
The pathname of the file to use as a sysout for Medley to start from.
|
||||
If SYSOUT_FILE is not provided and none of the flags (\-\-apps,
|
||||
\-\-full, \-\-lisp) is used, then Medley will start from the saved
|
||||
virtual memory file from the previous session with the same ID_STRING as
|
||||
this run.
|
||||
If no such virtual memory file exists, then Medley will start from the
|
||||
standard full.sysout (equivalent to specifying the \-\-full flag).
|
||||
On Windows (Docker) installations, \f[I]SYSOUT_FILE\f[R] is specified in
|
||||
the Medley file system, not the host Windows file system.
|
||||
.TP
|
||||
.B \f[I]PASS_ON_ARGS\f[R]
|
||||
All arguments after the \[lq]\-\-\[rq] flag, are passed unaltered to lde
|
||||
via run\-medley.
|
||||
.SH FILES
|
||||
.TP
|
||||
.B $HOME/il
|
||||
Default Medley LOGINDIR
|
||||
.TP
|
||||
.B $HOME/il/vmem/lisp.virtualmem
|
||||
Default virtual memory file
|
||||
.TP
|
||||
.B $HOME/il/INIT(.LCOM)
|
||||
Default personal init file
|
||||
.TP
|
||||
.B $MEDLEYDIR/greetfiles/MEDLEYDIR\-INIT(.LCOM)
|
||||
Default Medley greetfile
|
||||
.SH BUGS
|
||||
.PP
|
||||
See GitHub Issues: <https://github.com/Interlisp/medley/issues>
|
||||
.SH COPYRIGHT
|
||||
.PP
|
||||
Copyright(c) 2023 by Interlisp.org
|
||||
BIN
docs/man-page/medley.1.gz
Normal file
BIN
docs/man-page/medley.1.gz
Normal file
Binary file not shown.
184
docs/man-page/medley.1.md
Normal file
184
docs/man-page/medley.1.md
Normal file
@@ -0,0 +1,184 @@
|
||||
% MEDLEY(1) | Start Medley Interlisp
|
||||
|
||||
---
|
||||
adjusting: l
|
||||
hyphenate: false
|
||||
---
|
||||
|
||||
NAME
|
||||
====
|
||||
|
||||
**medley** — starts up Medley Interlisp
|
||||
|
||||
SYNOPSIS
|
||||
========
|
||||
|
||||
| **medley** \[ flags ... ] \[ *SYSOUT_FILE* ] \[ \-\- *PASS_ON_ARGS* ]
|
||||
|
||||
DESCRIPTION
|
||||
===========
|
||||
|
||||
Starts Medley Interlisp in a window.
|
||||
|
||||
OPTIONS
|
||||
=======
|
||||
|
||||
**MEDLEYDIR** is an environment variable set by Medley and used by many of the options described below.
|
||||
MEDLEYDIR is the top level directory of the Medley installation that contains the specific medley script that
|
||||
is invoked after all symbolic links are resolved. In the standard global installation this will
|
||||
be /usr/local/interlisp/medley. But Medley can be installed in multiple places on any given machine and
|
||||
hence MEDLEYDIR is computed on each invocation of medley.
|
||||
|
||||
|
||||
Flags
|
||||
-----
|
||||
|
||||
|
||||
|
||||
-h, \-\-help
|
||||
: Prints out a brief summary of the flags and arguments to medley.
|
||||
|
||||
-z, \-\-man
|
||||
: Show the man page for medley
|
||||
|
||||
-f, \-\-full
|
||||
: Start Medley from the standard "full" sysout. full.sysout includes a complete Interlisp and CommonLisp environment
|
||||
with a standard set of development tools. It does not include any of the applications built using Medley.
|
||||
(See *SYSOUT_FILE* below for more information on starting sysouts.)
|
||||
|
||||
-l, \-\-lisp
|
||||
: Start Medley from the standard "lisp" sysout. lisp.sysout only includes the basic Interlisp and
|
||||
CommonLisp environment.
|
||||
(See *SYSOUT_FILE* below for more information on starting sysouts.)
|
||||
|
||||
-a, \-\-apps
|
||||
: Start Medley from the standard "apps" sysout. apps.sysout includes everything in full.sysout plus Medley
|
||||
applications including Notecards, Rooms and CLOS. It also includes pre-installed links to key Medley
|
||||
documentation.
|
||||
(See *SYSOUT_FILE* below for more information on starting sysouts.)
|
||||
|
||||
-e, \-\-interlisp (relevent only when \-\-apps is specified)
|
||||
: Make the initial Exec window within Medley be an Interlisp Exec. Default is to start in an XCL Exec.
|
||||
|
||||
-n, \-\-noscroll
|
||||
: Ordinarily Medley displays scroll bars to enable the user to pan the Medley virtual display within the
|
||||
Medley window. This is true even when the entire virtual display fits within the window. Specifying
|
||||
\-\-noscroll turns off the scroll bars. Note: If \-\-noscroll is specified and the virtual screen is larger
|
||||
than the window, there will be no way to pan to the non-visible parts of the virtual display.
|
||||
|
||||
-g *WxH*, \-\-geometry *WxH*
|
||||
: Sets the size of the X Window (or VNC window) that Medley runs in to be Width x Height. (Full X Windows
|
||||
geomtery specification with +X+Y is not currently supported). If \-\-geometry is not specified but \-\-screensize is,
|
||||
then the window size will be determined based on the \-\-screensize values and the \-\-noscroll flag. If neither
|
||||
\-\-geometry nor \-\-screensize is provided, then the window size is set to 1440x900 if \-\-noscroll is set and 1462x922
|
||||
if \-\-noscroll is not set.
|
||||
|
||||
-s *WxH*, \-\-screensize *WxH*
|
||||
: Sets the size of the virtual display as seen from Medley's point of view.
|
||||
The Medley window is an unscaled viewport onto this virtual display. If \-\-screensize is not specified but
|
||||
\-\-geometry is, then the virtual display size will be set so that the entire virtual display fits into the given
|
||||
window geometry. If neither \-\-screensize nor \-\-geometry is provided, then the screen size is set to 1440x900.
|
||||
|
||||
-t *STRING*, \-\-title *STRING*
|
||||
: Use STRING as title of Medley window. Ignored when when the \-\-vnc flag is set or when running on Windows (Docker)
|
||||
installations.
|
||||
|
||||
-d *:N*, \-\-display *:N* \*\* **Not applicable to Windows (Docker) installations** \*\*
|
||||
~ Use X display :N. Defaults to the value of $DISPLAY. This flag is ignored when the \-\-vnc flag is set as
|
||||
well as on Windows (Docker) installations.
|
||||
|
||||
-v, \-\-vnc \*\* **Applicable only to WSL installations** \*\*
|
||||
: Use a VNC window running on the Windows side instead of an X window.
|
||||
The VNC window will folllow the Windows desktop scaling setting allowing
|
||||
for much more usable Medley on high resolution displays. On WSL, X windows
|
||||
do not scale well. This flag is always set for WSL1 installations.
|
||||
|
||||
-i [*ID_STRING* | - | \-\-], \-\-id [*ID_STRING* | - | \-\-]
|
||||
: Use ID_STRING as the id for this run of Medley, iunless ID_STRING is "-" or "\-\-".
|
||||
If ID_STRING is "-", then use the basename of $MEDLEYDIR as the id.
|
||||
If ID_STRING is "\-\-", then use the basename of the parent directory of $MEDLEYDIR as the id.
|
||||
Only one instance of Medley with a given id can run at a time.
|
||||
The id is used to distinguish the virtual memory stores so that multiple
|
||||
instances of Medley can run simultaneously. Default id is "default".
|
||||
|
||||
-m *N*, \-\-mem *N*
|
||||
: Set Medley to run in *N* MB of virtual memory. Defaults to 256MB.
|
||||
|
||||
-p *FILE*, \-\-vmem *FILE*
|
||||
: Use FILE as the Medley virtual memory (vmem) store. FILE must be writeable by the current user.
|
||||
Care must be taken not to use the same vmem FILE for two instances of Medley running simultaneously.
|
||||
The \-\-id flag will not protect against vmem collisions when the \-\-vmem flag is used.
|
||||
Default is to store the vmem in LOGINDIR/vmem/lisp_XXX.virtualmem, where XXX is the id of this
|
||||
Medley run (see \-\-id flag above). See \-\-logindir below for setting of LOGINDIR. On Windows (Docker) installations, *FILE* is specified in the Medley file system, not the host Windows file system.
|
||||
|
||||
-r \[*FILE* | -], \-\-greet \[*FILE* | -]
|
||||
: Use FILE as the Medley greetfile, unless FILE is "-" in which case
|
||||
Medley will start up without using a greetfile. The default Medley greetfile
|
||||
is $MEDLEYDIR/greetfiles/MEDLEYDIR-INIT, except when the \-\-apps flag is used
|
||||
in which case it is $MEDLEYDIR/greetfiles/APPS-INIT. On Windows (Docker) installations, *FILE* is
|
||||
specified in the Medley file system, not the host Windows file system.
|
||||
|
||||
-x \[*DIR* | -], \-\-logindir \[*DIR* | -] \*\* **On Linux and WSL installations** \*\*
|
||||
: Use DIR as LOGINDIR in Medley, unless DIR is "-", in which case use
|
||||
\$MEDLEYDIR/logindir. DIR (or \$MEDLEYDIR/logindir) must be writeable by the current user.
|
||||
LOGINDIR defaults to \$HOME/il. LOGINDIR is used by Medley as the working directory on start-up
|
||||
and where it loads any "personal" initialization file from.
|
||||
|
||||
-x \[*DIR* | -], \-\-logindir \[*DIR* | -] \*\* **On Windows (Docker) installations** \*\*
|
||||
: Map DIR in the Windows host file system to /home/medley/il in the Medley
|
||||
file system (in the Docker container). LOGINDIR is always /home/medley/il from Medley's standpoint. The "-" value is not valid in this case.
|
||||
|
||||
-u, \-\-update \*\* **Windows (Docker) installations only** \*\*
|
||||
: Before running Medley, do a pull to retrieve the latest interlisp/medley docker image from Docker Hub.
|
||||
|
||||
-b, \-\-background \*\* **Windows (Docker) installations only** \*\*
|
||||
: Run Medley in background rather than foreground.
|
||||
|
||||
-p *PORT*, \-\-port *PORT* \*\* **Windows (Docker) installations only** \*\*
|
||||
: Use *PORT* as the port that VNC viewer uses to contact the VNC server within the Docker container. Default is 5900.
|
||||
|
||||
-w \[*DISTRO* | -], \-\-wsl \[*DISTRO* | -] \*\* **Windows (Docker) installations only** \*\*
|
||||
: Run Medley in the context of the named WSL *DISTRO* instead of within Docker. If *DISTRO* is "-", used the default WSL distro. Equivalent to typing "wsl -d *DISTRO* medley ..." into a Command or Powershell window.
|
||||
|
||||
|
||||
Other Options
|
||||
-------------
|
||||
|
||||
|
||||
*SYSOUT_FILE*
|
||||
: The pathname of the file to use as a sysout for Medley to start from. If SYSOUT_FILE is not
|
||||
provided and none of the flags (\-\-apps, \-\-full, \-\-lisp) is used, then Medley will start from
|
||||
the saved virtual memory file from the previous session with the same ID_STRING as this run.
|
||||
If no such virtual memory file exists, then Medley will start from the standard full.sysout
|
||||
(equivalent to specifying the \-\-full flag). On Windows (Docker) installations, *SYSOUT_FILE* is
|
||||
specified in the Medley file system, not the host Windows file system.
|
||||
|
||||
*PASS_ON_ARGS*
|
||||
: All arguments after the "\-\-" flag, are passed unaltered to lde via run-medley.
|
||||
|
||||
|
||||
FILES
|
||||
=====
|
||||
|
||||
\$HOME/il
|
||||
: Default Medley LOGINDIR
|
||||
|
||||
\$HOME/il/vmem/lisp.virtualmem
|
||||
: Default virtual memory file
|
||||
|
||||
\$HOME/il/INIT(.LCOM)
|
||||
: Default personal init file
|
||||
|
||||
\$MEDLEYDIR/greetfiles/MEDLEYDIR-INIT(.LCOM)
|
||||
: Default Medley greetfile
|
||||
|
||||
|
||||
BUGS
|
||||
====
|
||||
|
||||
See GitHub Issues: <https://github.com/Interlisp/medley/issues>
|
||||
|
||||
COPYRIGHT
|
||||
=========
|
||||
|
||||
Copyright(c) 2023 by Interlisp.org
|
||||
4
docs/man-page/publish.sh
Executable file
4
docs/man-page/publish.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
./md2man.sh
|
||||
./man2html.sh
|
||||
|
||||
2
docs/man-page/showmd.sh
Executable file
2
docs/man-page/showmd.sh
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
pandoc medley.1.md -s -t man | /usr/bin/man -l -
|
||||
@@ -1 +0,0 @@
|
||||
(CASE% SENSITIVITY NIL Case% sensitivity NIL ("2") 1)
|
||||
@@ -1 +0,0 @@
|
||||
(MENUS NIL Menus NIL ("3") 1)
|
||||
@@ -1 +0,0 @@
|
||||
(FILES NIL Files NIL ("4") 1 SUBNAME TYPES% OF SUBTEXT types% of)
|
||||
@@ -1 +0,0 @@
|
||||
(FILEBROWSER NIL FileBrowser NIL ("5") 1)
|
||||
@@ -1 +0,0 @@
|
||||
(WINDOWS NIL Windows NIL ("6") 1)
|
||||
@@ -1 +0,0 @@
|
||||
(FUNCTIONS NIL Functions NIL ("7") 1 SUBNAME DEFINING SUBTEXT defining)
|
||||
@@ -1 +0,0 @@
|
||||
(INIT% FILE NIL INIT% file NIL ("8") 1)
|
||||
@@ -1 +0,0 @@
|
||||
(DWLM NIL DWlM NIL ("9") 1)
|
||||
@@ -1 +0,0 @@
|
||||
(BREAK% PACKAGE NIL Break% Package NIL ("10") 1)
|
||||
@@ -1 +0,0 @@
|
||||
(CONTROL-D NIL Control-D NIL ("11") 1)
|
||||
@@ -1 +0,0 @@
|
||||
(WINDOWS NIL Windows NIL ("12") 1)
|
||||
@@ -1 +0,0 @@
|
||||
(MENUS NIL Menus NIL ("13") 1 SUBNAME DISPLAYING SUBTEXT displaying)
|
||||
@@ -1 +0,0 @@
|
||||
(BITMAP NIL Bitmap NIL ("14") 1)
|
||||
@@ -1 +0,0 @@
|
||||
(DISPLAYSTREAM NIL Displaystream NIL ("15") 1)
|
||||
@@ -1 +0,0 @@
|
||||
(FONTS NIL Fonts NIL ("16") 1)
|
||||
@@ -1 +0,0 @@
|
||||
(INSPECTOR NIL Inspector NIL ("17") 1)
|
||||
@@ -1 +0,0 @@
|
||||
(MASTERSCOPE NIL Masterscope NIL ("18") 1)
|
||||
@@ -1 +0,0 @@
|
||||
(SPY NIL NIL NIL ("19") 1)
|
||||
@@ -1 +0,0 @@
|
||||
(FREE% MENU NIL Free% Menu NIL ("20") 1)
|
||||
@@ -1,22 +0,0 @@
|
||||
(FREE% MENU NIL Free% Menu NIL ("20") 1)
|
||||
(FREE% MENUS NIL Free% Menus NIL ("20") 1 SUBNAME CREATING SUBTEXT creating)
|
||||
(FREE% MENUS NIL Free% Menus NIL ("20") 1 SUBNAME FORMATTING SUBTEXT formatting)
|
||||
(FREEMENU (Function) NIL NIL ("20") 1)
|
||||
(OPENW (Function) NIL NIL ("20") 1)
|
||||
(FREE% MENU NIL Free% Menu NIL ("20") 2 SUBNAME PROPERTIES SUBTEXT properties)
|
||||
(FREE% MENU NIL Free% Menu NIL ("20") 2 SUBNAME PROPERTIES SUBTEXT properties)
|
||||
(FREE% MENU NIL Free% Menu NIL ("20") 2 SUBNAME PROPERTIES SUBTEXT properties SUBSUBNAME TYPE)
|
||||
(FREE% MENU NIL Free% Menu NIL ("20") 2 SUBNAME PROPERTIES SUBTEXT properties SUBSUBNAME MESSAGE)
|
||||
(FREE% MENU NIL Free% Menu NIL ("20") 2 SUBNAME PROPERTIES SUBTEXT properties SUBSUBNAME ID)
|
||||
(FREE% MENU NIL Free% Menu NIL ("20") 2 SUBNAME PROPERTIES SUBTEXT properties SUBSUBNAME LINKS)
|
||||
(FREE% MENU NIL Free% Menu NIL ("20") 3 SUBNAME PROPERTIES SUBTEXT properties SUBSUBNAME SELECTEDFN)
|
||||
(FREE% MENU NIL Free% Menu NIL ("20") 3 SUBNAME TYPES SUBTEXT types)
|
||||
(FREE% MENU NIL Free% menu NIL ("20") 3 SUBNAME TYPES SUBTEXT types SUBSUBNAME MOMENTARY SUBSUBTEXT MOMENTARY)
|
||||
(FREE% MENU NIL Free% menu NIL ("20") 3 SUBNAME TYPES SUBTEXT types SUBSUBNAME TOGGLE SUBSUBTEXT TOGGLE)
|
||||
(FREE% MENU NIL Free% Menu NIL ("20") 3 SUBNAME TYPES SUBTEXT types SUBSUBNAME 3STATE SUBSUBTEXT 3STATE)
|
||||
(FREE% MENU NIL Free% Menu NIL ("20") 3 SUBNAME TYPES SUBTEXT types SUBSUBNAME 3STATE SUBSUBTEXT 3STATE)
|
||||
(FREE% MENU NIL Free% Menu NIL ("20") 3 SUBNAME TYPES SUBTEXT types SUBSUBNAME DISPLAY SUBSUBTEXT DISPLAY)
|
||||
(FREE% MENU NIL Free% Menu NIL ("20") 3 SUBNAME TYPES SUBTEXT types SUBSUBNAME NWAY SUBSUBTEXT NWAY)
|
||||
(FREE% MENU NIL Free% Menu NIL ("20") 4 SUBNAME TYPES SUBTEXT types SUBSUBNAME EDITSTART SUBSUBTEXT EDITSTART)
|
||||
(FREE% MENU NIL Free% Menu NIL ("20") 4 SUBNAME TYPES SUBTEXT types SUBSUBNAME EDIT SUBSUBTEXT EDIT)
|
||||
(FREE% MENU NIL Free% Menu NIL ("20") 4 SUBNAME TYPES SUBTEXT types SUBSUBNAME NUMBER SUBSUBTEXT NUMBER)
|
||||
@@ -1 +0,0 @@
|
||||
(LAYOUTSEXPR (Function) NIL NIL ("21") 2)
|
||||
@@ -1 +0,0 @@
|
||||
(VARIABLES NIL Variables NIL ("22") 1 SUBNAME NAMING SUBTEXT naming)
|
||||
@@ -1 +0,0 @@
|
||||
(INTERFACE NIL Interface NIL ("23") 1 SUBNAME BUILDING SUBTEXT building)
|
||||
@@ -1 +0,0 @@
|
||||
(DISPLAYFONTDIRECTORIES (Variable) NIL NIL ("24") 1)
|
||||
604
doctools/IMTEDIT
604
doctools/IMTEDIT
@@ -1,20 +1,21 @@
|
||||
(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")
|
||||
(FILECREATED " 8-Dec-91 15:41:54" {DSK}<users>sybalsky>PUBS>IMTEDIT.;2 116642
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
changes to%: (FNS TRANSLATE.DUMPOUT DUMP DUMP.HEADERS.FOOTERS DUMP.HRULE CHANGE.FONT
|
||||
IM.BOUT.IMAGEOBJ IM.TEDIT.DUMP.COMMANDS IM.TEDIT.DUMP.FOOTNOTES
|
||||
MAKE.IM.DOCUMENT PRINT.VRULES.ON.PAGE CREATE.FOLIO.OBJECT GET.FOLIO.STRING)
|
||||
(FILECREATED "20-Jul-2022 15:10:53"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>working-medley>doctools>IMTEDIT.;2 117347
|
||||
|
||||
previous date%: " 4-Aug-86 11:53:22" {DSK}<users>sybalsky>PUBS>IMTEDIT.;1)
|
||||
:CHANGES-TO (FNS MAKE.IM.DOCUMENT)
|
||||
|
||||
:PREVIOUS-DATE " 8-Dec-91 15:41:54"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>working-medley>doctools>IMTEDIT.;1)
|
||||
|
||||
|
||||
(* ; "
|
||||
Copyright (c) 1983, 1984, 1985, 1986, 1991 by Xerox Corporation. All rights reserved.
|
||||
Copyright (c) 1983-1986, 1991 by Xerox Corporation.
|
||||
")
|
||||
|
||||
(PRETTYCOMPRINT IMTEDITCOMS)
|
||||
|
||||
(RPAQQ IMTEDITCOMS
|
||||
(RPAQQ IMTEDITCOMS
|
||||
((FNS IM.TEDIT DUMP DUMP.HEADERS.FOOTERS DUMP.HRULE CHANGE.FONT IM.BOUT.IMAGEOBJ
|
||||
IM.TEDIT.DUMP.COMMANDS IM.TEDIT.DUMP.FOOTNOTES IM.TEDIT.DUMP.PARA INDEXX.PARSE.TYPE
|
||||
FORMAT.DEF FORMAT.LISPWORD MAKE.IM.DOCUMENT PRINT.NOTE SEND.INFO)
|
||||
@@ -493,26 +494,26 @@ Copyright (c) 1983, 1984, 1985, 1986, 1991 by Xerox Corporation. All rights res
|
||||
|
||||
(MAKE.IM.DOCUMENT
|
||||
[LAMBDA (FORM OUTFILE.FLG PAGE.LAYOUT OUTPUT.MESSAGE DEFAULT.PARALOOKS PTRFILENAME)
|
||||
(* ; "Edited 20-Jul-2022 15:10 by rmk")
|
||||
(* mjs " 4-Aug-86 10:52")
|
||||
|
||||
(* * this function creates an IM output file, in XPS-compatible format.
|
||||
If sets up all of the special variables needed by DUMP, evaluates FORM, and
|
||||
sets all of the para and font looks)
|
||||
If sets up all of the special variables needed by DUMP, evaluates FORM, and sets
|
||||
all of the para and font looks)
|
||||
|
||||
(* * If OUTFILE.FLG is NIL, the output file is just sent to the default
|
||||
printer. If OUTFILE.FLG is T, the outfile textstream is simply returned.
|
||||
If OUTFILE.FLG = anything else, it is taken as a file name to put the press
|
||||
file which is created <but not printed>.)
|
||||
(* * If OUTFILE.FLG is NIL, the output file is just sent to the default printer.
|
||||
If OUTFILE.FLG is T, the outfile textstream is simply returned.
|
||||
If OUTFILE.FLG = anything else, it is taken as a file name to put the press file
|
||||
which is created <but not printed>.)
|
||||
|
||||
(* * if PAGE.LAYOUT is non-NIL, it should be the compound page layout to be
|
||||
used.)
|
||||
(* * if PAGE.LAYOUT is non-NIL, it should be the compound page layout to be used.)
|
||||
|
||||
(* * if OUTPUT.MESSAGE is non-NIL, it is printed on the hardcopy output)
|
||||
|
||||
(* * PTRFILENAME is the name to be used if an index pointer file is generated
|
||||
during hardcopy <by printing index objects>)
|
||||
during hardcopy <by printing index objects>)
|
||||
|
||||
(PROG ((IM.OUTFILE (OPENTEXTSTREAM "" NIL NIL NIL (LIST 'IM.INDEX.PTRFILENAME PTRFILENAME)))
|
||||
(PROG ((IM.OUTFILE (OPENTEXTSTREAM NIL NIL NIL NIL (LIST 'IM.INDEX.PTRFILENAME PTRFILENAME)))
|
||||
(FONT.STACK (CONS))
|
||||
(IM.TEDIT.LAST.PARA.BEGIN 1)
|
||||
(IM.TEDIT.LAST.FONT.BEGIN 1)
|
||||
@@ -523,10 +524,10 @@ Copyright (c) 1983, 1984, 1985, 1986, 1991 by Xerox Corporation. All rights res
|
||||
(IM.TEDIT.FOOTNOTE.SAVES NIL)
|
||||
(IM.TEDIT.SUB.SUPER.BEGIN NIL)
|
||||
IM.CHARLOOKS IM.PARALOOKS)
|
||||
(DECLARE (SPECVARS IM.OUTFILE FONT.STACK IM.TEDIT.LAST.PARA.BEGIN
|
||||
IM.TEDIT.LAST.FONT.BEGIN IM.TEDIT.PARA.LOOKS IM.TEDIT.LAST.PARA.LOOKS
|
||||
IM.TEDIT.FONT IM.TEDIT.CR.FLG IM.TEDIT.FOOTNOTE.SAVES
|
||||
IM.TEDIT.SUB.SUPER.BEGIN IM.CHARLOOKS IM.PARALOOKS))
|
||||
(DECLARE (SPECVARS IM.OUTFILE FONT.STACK IM.TEDIT.LAST.PARA.BEGIN IM.TEDIT.LAST.FONT.BEGIN
|
||||
IM.TEDIT.PARA.LOOKS IM.TEDIT.LAST.PARA.LOOKS IM.TEDIT.FONT IM.TEDIT.CR.FLG
|
||||
IM.TEDIT.FOOTNOTE.SAVES IM.TEDIT.SUB.SUPER.BEGIN IM.CHARLOOKS IM.PARALOOKS)
|
||||
)
|
||||
(SETQ IM.VRULE.STATE.LIST NIL)
|
||||
(DUMP.HEADERS.FOOTERS " " " ")
|
||||
(DUMPOUT CR CR START.PARA PARALOOKS
|
||||
@@ -543,8 +544,8 @@ Copyright (c) 1983, 1984, 1985, 1986, 1991 by Xerox Corporation. All rights res
|
||||
(IM.EVEN.FLG
|
||||
|
||||
(* if you must quarantee that you have an even number of pages for two-sided
|
||||
copying, dump out a blank page no matter what --
|
||||
it can always be discarded)
|
||||
copying, dump out a blank page no matter what --
|
||||
it can always be discarded)
|
||||
|
||||
(DUMPOUT CR CR START.PARA PARALOOKS
|
||||
`(NEWPAGEBEFORE T QUAD LEFT 1STLEFTMARGIN 0 LEFTMARGIN 0 RIGHTMARGIN %,
|
||||
@@ -552,8 +553,8 @@ Copyright (c) 1983, 1984, 1985, 1986, 1991 by Xerox Corporation. All rights res
|
||||
IM.BLANKPAGE.SPECIALY)
|
||||
DUMP.CHARS "[This page intentionally left blank]" CR CR)))
|
||||
|
||||
(* after converting document, make sure that last para is formatted correctly
|
||||
by changing font, ending current para, and starting new para)
|
||||
(* after converting document, make sure that last para is formatted correctly by
|
||||
changing font, ending current para, and starting new para)
|
||||
|
||||
(DUMPOUT CR CR FONT NIL)
|
||||
(DUMP '(START.PARA))
|
||||
@@ -595,7 +596,7 @@ Copyright (c) 1983, 1984, 1985, 1986, 1991 by Xerox Corporation. All rights res
|
||||
IM.DRAFT.MESSAGE.BOTTOM.Y]
|
||||
|
||||
(* * dump default char and para looks for whole document --
|
||||
and looks that should be different should be specified in the fns)
|
||||
and looks that should be different should be specified in the fns)
|
||||
|
||||
(TEDIT.LOOKS IM.OUTFILE IM.TEXT.FONT 1 (GETFILEINFO IM.OUTFILE 'LENGTH))
|
||||
(TEDIT.PARALOOKS IM.OUTFILE
|
||||
@@ -608,26 +609,24 @@ Copyright (c) 1983, 1984, 1985, 1986, 1991 by Xerox Corporation. All rights res
|
||||
(GETFILEINFO IM.OUTFILE 'LENGTH))
|
||||
|
||||
(* must reverse list because the order of some char and paragraph looks is
|
||||
significant << earlier looks are overridden by later ones >>)
|
||||
significant << earlier looks are overridden by later ones >>)
|
||||
|
||||
(SETQ IM.CHARLOOKS (DREVERSE IM.CHARLOOKS))
|
||||
(SETQ IM.PARALOOKS (DREVERSE IM.PARALOOKS))
|
||||
[while IM.CHARLOOKS bind (LOOKS CH# LEN)
|
||||
do (BLOCK)
|
||||
(SETQ LEN (pop IM.CHARLOOKS))
|
||||
(SETQ CH# (ADD1 (pop IM.CHARLOOKS)))
|
||||
(SETQ LOOKS (pop IM.CHARLOOKS))
|
||||
(COND
|
||||
((IGREATERP LEN 0)
|
||||
(TEDIT.LOOKS IM.OUTFILE LOOKS CH# LEN]
|
||||
[while IM.PARALOOKS bind (LOOKS CH# LEN)
|
||||
do (BLOCK)
|
||||
(SETQ LEN (pop IM.PARALOOKS))
|
||||
(SETQ CH# (ADD1 (pop IM.PARALOOKS)))
|
||||
(SETQ LOOKS (pop IM.PARALOOKS))
|
||||
(COND
|
||||
((IGREATERP LEN 0)
|
||||
(TEDIT.PARALOOKS IM.OUTFILE LOOKS CH# LEN]
|
||||
[while IM.CHARLOOKS bind (LOOKS CH# LEN) do (BLOCK)
|
||||
(SETQ LEN (pop IM.CHARLOOKS))
|
||||
(SETQ CH# (ADD1 (pop IM.CHARLOOKS)))
|
||||
(SETQ LOOKS (pop IM.CHARLOOKS))
|
||||
(COND
|
||||
((IGREATERP LEN 0)
|
||||
(TEDIT.LOOKS IM.OUTFILE LOOKS CH# LEN]
|
||||
[while IM.PARALOOKS bind (LOOKS CH# LEN) do (BLOCK)
|
||||
(SETQ LEN (pop IM.PARALOOKS))
|
||||
(SETQ CH# (ADD1 (pop IM.PARALOOKS)))
|
||||
(SETQ LOOKS (pop IM.PARALOOKS))
|
||||
(COND
|
||||
((IGREATERP LEN 0)
|
||||
(TEDIT.PARALOOKS IM.OUTFILE LOOKS CH# LEN]
|
||||
(COND
|
||||
((NULL OUTFILE.FLG)
|
||||
(TEDIT.HARDCOPY IM.OUTFILE NIL NIL OUTPUT.MESSAGE)
|
||||
@@ -1648,7 +1647,7 @@ Copyright (c) 1983, 1984, 1985, 1986, 1991 by Xerox Corporation. All rights res
|
||||
(SAVE.DUMPOUT FONT LISP DUMP.CHARS (GET.ARG.SAV NAME])
|
||||
)
|
||||
|
||||
(RPAQQ TO.NAME.LIST
|
||||
(RPAQQ TO.NAME.LIST
|
||||
(ANONARG ARG ATOM BIGLISPCODE BRACKET BREAKCOM BULLET CHAPTER COMMENT CRSYMBOL DEF EDITCOM
|
||||
ELLIPSIS EMDASH ENDASH FIGURE FIGUREREF FILECOM FN FNDEF FOOT GE INCLUDE INDEX INDEXX
|
||||
IT LABELEDLIST LBRACKET LE LISP LISPCODE MAC MACDEF NE NOTE NUMBEREDLIST PACOM PAGEREF
|
||||
@@ -1656,409 +1655,409 @@ Copyright (c) 1983, 1984, 1985, 1986, 1991 by Xerox Corporation. All rights res
|
||||
UNNUMBEREDLIST VAR VARDEF))
|
||||
|
||||
(RPAQQ TO.SYNONYM.LIST ((CR CRSYMBOL)
|
||||
(EMPHASIZE IT)
|
||||
(FOOTNOTE FOOT)
|
||||
(ITALICS IT)
|
||||
(LITATOM ATOM)
|
||||
(UNLABELEDLIST UNNUMBEREDLIST)))
|
||||
(EMPHASIZE IT)
|
||||
(FOOTNOTE FOOT)
|
||||
(ITALICS IT)
|
||||
(LITATOM ATOM)
|
||||
(UNLABELEDLIST UNNUMBEREDLIST)))
|
||||
|
||||
(RPAQQ TO.NAME.LIST
|
||||
(RPAQQ TO.NAME.LIST
|
||||
(ANONARG ARG ATOM BIGLISPCODE BRACKET BREAKCOM BULLET CHAPTER COMMENT CRSYMBOL DEF EDITCOM
|
||||
ELLIPSIS EMDASH ENDASH FIGURE FIGUREREF FILECOM FN FNDEF FOOT GE INCLUDE INDEX INDEXX
|
||||
IT LABELEDLIST LBRACKET LE LISP LISPCODE MAC MACDEF NE NOTE NUMBEREDLIST PACOM PAGEREF
|
||||
PI PLUSMINUS PROP PROPDEF RBRACKET RM SECTIONREF SP SUB SUBSEC SUPER TABLE TAG TERM
|
||||
UNNUMBEREDLIST VAR VARDEF))
|
||||
|
||||
(PUTPROPS ANONARG TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
(PUTPROPS ANONARG TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
|
||||
(PUTPROPS ARG TO.PROG ARG#TOPROG)
|
||||
(PUTPROPS ARG TO.PROG ARG#TOPROG)
|
||||
|
||||
(PUTPROPS ATOM TO.PROG LISPWORD#TOPROG)
|
||||
(PUTPROPS ATOM TO.PROG LISPWORD#TOPROG)
|
||||
|
||||
(PUTPROPS BIGLISPCODE TO.PROG BIGLISPCODE#TOPROG)
|
||||
(PUTPROPS BIGLISPCODE TO.PROG BIGLISPCODE#TOPROG)
|
||||
|
||||
(PUTPROPS BRACKET TO.PROG BRACKET#TOPROG)
|
||||
(PUTPROPS BRACKET TO.PROG BRACKET#TOPROG)
|
||||
|
||||
(PUTPROPS BREAKCOM TO.PROG LISPWORD#TOPROG)
|
||||
(PUTPROPS BREAKCOM TO.PROG LISPWORD#TOPROG)
|
||||
|
||||
(PUTPROPS BULLET TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
(PUTPROPS BULLET TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
|
||||
(PUTPROPS CHAPTER TO.PROG CHAPTER#TOPROG)
|
||||
(PUTPROPS CHAPTER TO.PROG CHAPTER#TOPROG)
|
||||
|
||||
(PUTPROPS COMMENT TO.PROG COMMENT#TOPROG)
|
||||
(PUTPROPS COMMENT TO.PROG COMMENT#TOPROG)
|
||||
|
||||
(PUTPROPS CRSYMBOL TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
(PUTPROPS CRSYMBOL TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
|
||||
(PUTPROPS DEF TO.PROG DEF#TOPROG)
|
||||
(PUTPROPS DEF TO.PROG DEF#TOPROG)
|
||||
|
||||
(PUTPROPS EDITCOM TO.PROG LISPWORD#TOPROG)
|
||||
(PUTPROPS EDITCOM TO.PROG LISPWORD#TOPROG)
|
||||
|
||||
(PUTPROPS ELLIPSIS TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
(PUTPROPS ELLIPSIS TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
|
||||
(PUTPROPS EMDASH TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
(PUTPROPS EMDASH TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
|
||||
(PUTPROPS ENDASH TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
(PUTPROPS ENDASH TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
|
||||
(PUTPROPS FIGURE TO.PROG FIGURE#TOPROG)
|
||||
(PUTPROPS FIGURE TO.PROG FIGURE#TOPROG)
|
||||
|
||||
(PUTPROPS FIGUREREF TO.PROG REF#TOPROG)
|
||||
(PUTPROPS FIGUREREF TO.PROG REF#TOPROG)
|
||||
|
||||
(PUTPROPS FILECOM TO.PROG LISPWORD#TOPROG)
|
||||
(PUTPROPS FILECOM TO.PROG LISPWORD#TOPROG)
|
||||
|
||||
(PUTPROPS FN TO.PROG FN#TOPROG)
|
||||
(PUTPROPS FN TO.PROG FN#TOPROG)
|
||||
|
||||
(PUTPROPS FNDEF TO.PROG FNDEF#TOPROG)
|
||||
(PUTPROPS FNDEF TO.PROG FNDEF#TOPROG)
|
||||
|
||||
(PUTPROPS FOOT TO.PROG FOOT#TOPROG)
|
||||
(PUTPROPS FOOT TO.PROG FOOT#TOPROG)
|
||||
|
||||
(PUTPROPS GE TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
(PUTPROPS GE TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
|
||||
(PUTPROPS INCLUDE TO.PROG INCLUDE#TOPROG)
|
||||
(PUTPROPS INCLUDE TO.PROG INCLUDE#TOPROG)
|
||||
|
||||
(PUTPROPS INDEX TO.PROG INDEX#TOPROG)
|
||||
(PUTPROPS INDEX TO.PROG INDEX#TOPROG)
|
||||
|
||||
(PUTPROPS INDEXX TO.PROG INDEXX#TOPROG)
|
||||
(PUTPROPS INDEXX TO.PROG INDEXX#TOPROG)
|
||||
|
||||
(PUTPROPS IT TO.PROG IT#TOPROG)
|
||||
(PUTPROPS IT TO.PROG IT#TOPROG)
|
||||
|
||||
(PUTPROPS LABELEDLIST TO.PROG LIST#TOPROG)
|
||||
(PUTPROPS LABELEDLIST TO.PROG LIST#TOPROG)
|
||||
|
||||
(PUTPROPS LBRACKET TO.PROG LBRACKET#TOPROG)
|
||||
(PUTPROPS LBRACKET TO.PROG LBRACKET#TOPROG)
|
||||
|
||||
(PUTPROPS LE TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
(PUTPROPS LE TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
|
||||
(PUTPROPS LISP TO.PROG LISP#TOPROG)
|
||||
(PUTPROPS LISP TO.PROG LISP#TOPROG)
|
||||
|
||||
(PUTPROPS LISPCODE TO.PROG LISPCODE#TOPROG)
|
||||
(PUTPROPS LISPCODE TO.PROG LISPCODE#TOPROG)
|
||||
|
||||
(PUTPROPS MAC TO.PROG LISPWORD#TOPROG)
|
||||
(PUTPROPS MAC TO.PROG LISPWORD#TOPROG)
|
||||
|
||||
(PUTPROPS MACDEF TO.PROG MACDEF#TOPROG)
|
||||
(PUTPROPS MACDEF TO.PROG MACDEF#TOPROG)
|
||||
|
||||
(PUTPROPS NE TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
(PUTPROPS NE TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
|
||||
(PUTPROPS NOTE TO.PROG NOTE#TOPROG)
|
||||
(PUTPROPS NOTE TO.PROG NOTE#TOPROG)
|
||||
|
||||
(PUTPROPS NUMBEREDLIST TO.PROG LIST#TOPROG)
|
||||
(PUTPROPS NUMBEREDLIST TO.PROG LIST#TOPROG)
|
||||
|
||||
(PUTPROPS PACOM TO.PROG LISPWORD#TOPROG)
|
||||
(PUTPROPS PACOM TO.PROG LISPWORD#TOPROG)
|
||||
|
||||
(PUTPROPS PAGEREF TO.PROG REF#TOPROG)
|
||||
(PUTPROPS PAGEREF TO.PROG REF#TOPROG)
|
||||
|
||||
(PUTPROPS PI TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
(PUTPROPS PI TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
|
||||
(PUTPROPS PLUSMINUS TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
(PUTPROPS PLUSMINUS TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
|
||||
(PUTPROPS PROP TO.PROG LISPWORD#TOPROG)
|
||||
(PUTPROPS PROP TO.PROG LISPWORD#TOPROG)
|
||||
|
||||
(PUTPROPS PROPDEF TO.PROG PROPDEF#TOPROG)
|
||||
(PUTPROPS PROPDEF TO.PROG PROPDEF#TOPROG)
|
||||
|
||||
(PUTPROPS RBRACKET TO.PROG RBRACKET#TOPROG)
|
||||
(PUTPROPS RBRACKET TO.PROG RBRACKET#TOPROG)
|
||||
|
||||
(PUTPROPS RM TO.PROG RM#TOPROG)
|
||||
(PUTPROPS RM TO.PROG RM#TOPROG)
|
||||
|
||||
(PUTPROPS SECTIONREF TO.PROG REF#TOPROG)
|
||||
(PUTPROPS SECTIONREF TO.PROG REF#TOPROG)
|
||||
|
||||
(PUTPROPS SP TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
(PUTPROPS SP TO.PROG PRINT.SPECIAL.CHARS#TOPROG)
|
||||
|
||||
(PUTPROPS SUB TO.PROG SUB#TOPROG)
|
||||
(PUTPROPS SUB TO.PROG SUB#TOPROG)
|
||||
|
||||
(PUTPROPS SUBSEC TO.PROG SUBSEC#TOPROG)
|
||||
(PUTPROPS SUBSEC TO.PROG SUBSEC#TOPROG)
|
||||
|
||||
(PUTPROPS SUPER TO.PROG SUPER#TOPROG)
|
||||
(PUTPROPS SUPER TO.PROG SUPER#TOPROG)
|
||||
|
||||
(PUTPROPS TABLE TO.PROG TABLE#TOPROG)
|
||||
(PUTPROPS TABLE TO.PROG TABLE#TOPROG)
|
||||
|
||||
(PUTPROPS TAG TO.PROG TAG#TOPROG)
|
||||
(PUTPROPS TAG TO.PROG TAG#TOPROG)
|
||||
|
||||
(PUTPROPS TERM TO.PROG TERM#TOPROG)
|
||||
(PUTPROPS TERM TO.PROG TERM#TOPROG)
|
||||
|
||||
(PUTPROPS UNNUMBEREDLIST TO.PROG LIST#TOPROG)
|
||||
(PUTPROPS UNNUMBEREDLIST TO.PROG LIST#TOPROG)
|
||||
|
||||
(PUTPROPS VAR TO.PROG VAR#TOPROG)
|
||||
(PUTPROPS VAR TO.PROG VAR#TOPROG)
|
||||
|
||||
(PUTPROPS VARDEF TO.PROG VARDEF#TOPROG)
|
||||
(PUTPROPS VARDEF TO.PROG VARDEF#TOPROG)
|
||||
|
||||
(PUTPROPS CHAPTER TO.ARGS ((TITLE NUMBER)
|
||||
TEXT))
|
||||
|
||||
(PUTPROPS DEF TO.ARGS ((TYPE NAME PRINTNAME ARGS PARENS NOPARENS)
|
||||
(PUTPROPS CHAPTER TO.ARGS ((TITLE NUMBER)
|
||||
TEXT))
|
||||
|
||||
(PUTPROPS FIGURE TO.ARGS ((TAG)
|
||||
(TEXT)
|
||||
(CAPTION)))
|
||||
(PUTPROPS DEF TO.ARGS ((TYPE NAME PRINTNAME ARGS PARENS NOPARENS)
|
||||
TEXT))
|
||||
|
||||
(PUTPROPS FNDEF TO.ARGS (NAME (ARGS)
|
||||
(TYPE)
|
||||
TEXT))
|
||||
(PUTPROPS FIGURE TO.ARGS ((TAG)
|
||||
(TEXT)
|
||||
(CAPTION)))
|
||||
|
||||
(PUTPROPS INDEXX TO.ARGS ((TYPE NAME INFO TEXT SUBNAME SUBTYPE SUBTEXT SUBSUBNAME SUBSUBTYPE
|
||||
SUBSUBTEXT)))
|
||||
(PUTPROPS FNDEF TO.ARGS (NAME (ARGS)
|
||||
(TYPE)
|
||||
TEXT))
|
||||
|
||||
(PUTPROPS LABELEDLIST TO.ARGS ((LNAME NAME ITEM INDENT MAX UNINDENTED)))
|
||||
(PUTPROPS INDEXX TO.ARGS ((TYPE NAME INFO TEXT SUBNAME SUBTYPE SUBTEXT SUBSUBNAME SUBSUBTYPE
|
||||
SUBSUBTEXT)))
|
||||
|
||||
(PUTPROPS MACDEF TO.ARGS (NAME (ARGS)
|
||||
(TYPE)
|
||||
TEXT))
|
||||
(PUTPROPS LABELEDLIST TO.ARGS ((LNAME NAME ITEM INDENT MAX UNINDENTED)))
|
||||
|
||||
(PUTPROPS NUMBEREDLIST TO.ARGS ((ITEM)))
|
||||
(PUTPROPS MACDEF TO.ARGS (NAME (ARGS)
|
||||
(TYPE)
|
||||
TEXT))
|
||||
|
||||
(PUTPROPS PROPDEF TO.ARGS (NAME TEXT))
|
||||
(PUTPROPS NUMBEREDLIST TO.ARGS ((ITEM)))
|
||||
|
||||
(PUTPROPS SUBSEC TO.ARGS (TITLE TEXT))
|
||||
(PUTPROPS PROPDEF TO.ARGS (NAME TEXT))
|
||||
|
||||
(PUTPROPS TABLE TO.ARGS ((FIRST NEXT COLUMN UNDERLINE MULTIPAGE HSKIP VSKIP)))
|
||||
(PUTPROPS SUBSEC TO.ARGS (TITLE TEXT))
|
||||
|
||||
(PUTPROPS UNNUMBEREDLIST TO.ARGS ((ITEM)))
|
||||
(PUTPROPS TABLE TO.ARGS ((FIRST NEXT COLUMN UNDERLINE MULTIPAGE HSKIP VSKIP)))
|
||||
|
||||
(PUTPROPS VARDEF TO.ARGS (NAME TEXT))
|
||||
(PUTPROPS UNNUMBEREDLIST TO.ARGS ((ITEM)))
|
||||
|
||||
(PUTPROPS FNDEF TO.ARG.SYNONYMS (FNNAME NAME FNARGS ARGS FNTYPE TYPE))
|
||||
(PUTPROPS VARDEF TO.ARGS (NAME TEXT))
|
||||
|
||||
(PUTPROPS LABELEDLIST TO.ARG.SYNONYMS (LABEL NAME TEXT ITEM UNINDENT UNINDENTED UNLABELED
|
||||
UNINDENTED UNLABEL UNINDENTED))
|
||||
(PUTPROPS FNDEF TO.ARG.SYNONYMS (FNNAME NAME FNARGS ARGS FNTYPE TYPE))
|
||||
|
||||
(PUTPROPS NUMBEREDLIST TO.ARG.SYNONYMS (TEXT ITEM))
|
||||
(PUTPROPS LABELEDLIST TO.ARG.SYNONYMS (LABEL NAME TEXT ITEM UNINDENT UNINDENTED UNLABELED UNINDENTED
|
||||
UNLABEL UNINDENTED))
|
||||
|
||||
(PUTPROPS TABLE TO.ARG.SYNONYMS (COL COLUMN MULTI MULTIPAGE))
|
||||
(PUTPROPS NUMBEREDLIST TO.ARG.SYNONYMS (TEXT ITEM))
|
||||
|
||||
(PUTPROPS UNNUMBEREDLIST TO.ARG.SYNONYMS (TEXT ITEM))
|
||||
(PUTPROPS TABLE TO.ARG.SYNONYMS (COL COLUMN MULTI MULTIPAGE))
|
||||
|
||||
(PUTPROPS ANONARG TO.TYPE SIMPLE)
|
||||
(PUTPROPS UNNUMBEREDLIST TO.ARG.SYNONYMS (TEXT ITEM))
|
||||
|
||||
(PUTPROPS ARG TO.TYPE SIMPLE)
|
||||
(PUTPROPS ANONARG TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS ATOM TO.TYPE SIMPLE)
|
||||
(PUTPROPS ARG TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS BIGLISPCODE TO.TYPE NIL)
|
||||
(PUTPROPS ATOM TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS BRACKET TO.TYPE SIMPLE)
|
||||
(PUTPROPS BIGLISPCODE TO.TYPE NIL)
|
||||
|
||||
(PUTPROPS BREAKCOM TO.TYPE SIMPLE)
|
||||
(PUTPROPS BRACKET TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS BULLET TO.TYPE SIMPLE)
|
||||
(PUTPROPS BREAKCOM TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS CHAPTER TO.TYPE NIL)
|
||||
(PUTPROPS BULLET TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS COMMENT TO.TYPE SIMPLE)
|
||||
(PUTPROPS CHAPTER TO.TYPE NIL)
|
||||
|
||||
(PUTPROPS CRSYMBOL TO.TYPE SIMPLE)
|
||||
(PUTPROPS COMMENT TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS EDITCOM TO.TYPE SIMPLE)
|
||||
(PUTPROPS CRSYMBOL TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS ELLIPSIS TO.TYPE SIMPLE)
|
||||
(PUTPROPS EDITCOM TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS EMDASH TO.TYPE SIMPLE)
|
||||
(PUTPROPS ELLIPSIS TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS ENDASH TO.TYPE SIMPLE)
|
||||
(PUTPROPS EMDASH TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS FIGURE TO.TYPE NIL)
|
||||
(PUTPROPS ENDASH TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS FIGUREREF TO.TYPE SIMPLE)
|
||||
(PUTPROPS FIGURE TO.TYPE NIL)
|
||||
|
||||
(PUTPROPS FILECOM TO.TYPE SIMPLE)
|
||||
(PUTPROPS FIGUREREF TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS FN TO.TYPE SIMPLE)
|
||||
(PUTPROPS FILECOM TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS FNDEF TO.TYPE NIL)
|
||||
(PUTPROPS FN TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS FOOT TO.TYPE SIMPLE)
|
||||
(PUTPROPS FNDEF TO.TYPE NIL)
|
||||
|
||||
(PUTPROPS GE TO.TYPE SIMPLE)
|
||||
(PUTPROPS FOOT TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS INCLUDE TO.TYPE SIMPLE)
|
||||
(PUTPROPS GE TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS INDEX TO.TYPE SIMPLE)
|
||||
(PUTPROPS INCLUDE TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS INDEXX TO.TYPE SIMPLE)
|
||||
(PUTPROPS INDEX TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS IT TO.TYPE SIMPLE)
|
||||
(PUTPROPS INDEXX TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS LABELEDLIST TO.TYPE NIL)
|
||||
(PUTPROPS IT TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS LBRACKET TO.TYPE SIMPLE)
|
||||
(PUTPROPS LABELEDLIST TO.TYPE NIL)
|
||||
|
||||
(PUTPROPS LE TO.TYPE SIMPLE)
|
||||
(PUTPROPS LBRACKET TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS LISP TO.TYPE SIMPLE)
|
||||
(PUTPROPS LE TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS LISPCODE TO.TYPE NIL)
|
||||
(PUTPROPS LISP TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS MAC TO.TYPE SIMPLE)
|
||||
(PUTPROPS LISPCODE TO.TYPE NIL)
|
||||
|
||||
(PUTPROPS MACDEF TO.TYPE NIL)
|
||||
(PUTPROPS MAC TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS NE TO.TYPE SIMPLE)
|
||||
(PUTPROPS MACDEF TO.TYPE NIL)
|
||||
|
||||
(PUTPROPS NOTE TO.TYPE SIMPLE)
|
||||
(PUTPROPS NE TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS NUMBEREDLIST TO.TYPE NIL)
|
||||
(PUTPROPS NOTE TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS PACOM TO.TYPE SIMPLE)
|
||||
(PUTPROPS NUMBEREDLIST TO.TYPE NIL)
|
||||
|
||||
(PUTPROPS PAGEREF TO.TYPE SIMPLE)
|
||||
(PUTPROPS PACOM TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS PI TO.TYPE SIMPLE)
|
||||
(PUTPROPS PAGEREF TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS PLUSMINUS TO.TYPE SIMPLE)
|
||||
(PUTPROPS PI TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS PROP TO.TYPE SIMPLE)
|
||||
(PUTPROPS PLUSMINUS TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS PROPDEF TO.TYPE NIL)
|
||||
(PUTPROPS PROP TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS RBRACKET TO.TYPE SIMPLE)
|
||||
(PUTPROPS PROPDEF TO.TYPE NIL)
|
||||
|
||||
(PUTPROPS RM TO.TYPE SIMPLE)
|
||||
(PUTPROPS RBRACKET TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS SECTIONREF TO.TYPE SIMPLE)
|
||||
(PUTPROPS RM TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS SP TO.TYPE SIMPLE)
|
||||
(PUTPROPS SECTIONREF TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS SUB TO.TYPE SIMPLE)
|
||||
(PUTPROPS SP TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS SUBSEC TO.TYPE NIL)
|
||||
(PUTPROPS SUB TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS SUPER TO.TYPE SIMPLE)
|
||||
(PUTPROPS SUBSEC TO.TYPE NIL)
|
||||
|
||||
(PUTPROPS TABLE TO.TYPE NIL)
|
||||
(PUTPROPS SUPER TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS TAG TO.TYPE SIMPLE)
|
||||
(PUTPROPS TABLE TO.TYPE NIL)
|
||||
|
||||
(PUTPROPS TERM TO.TYPE SIMPLE)
|
||||
(PUTPROPS TAG TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS UNNUMBEREDLIST TO.TYPE NIL)
|
||||
(PUTPROPS TERM TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS VAR TO.TYPE SIMPLE)
|
||||
(PUTPROPS UNNUMBEREDLIST TO.TYPE NIL)
|
||||
|
||||
(PUTPROPS VARDEF TO.TYPE NIL)
|
||||
(PUTPROPS VAR TO.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS ANONARG TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS VARDEF TO.TYPE NIL)
|
||||
|
||||
(PUTPROPS ARG TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS ANONARG TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS ATOM TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS ARG TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS BIGLISPCODE TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS ATOM TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS BRACKET TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS BIGLISPCODE TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS BREAKCOM TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS BRACKET TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS BULLET TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS BREAKCOM TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS CHAPTER TO.ARG.TYPE (TITLE SIMPLE NUMBER CHARS))
|
||||
(PUTPROPS BULLET TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS COMMENT TO.ARG.TYPE NIL)
|
||||
(PUTPROPS CHAPTER TO.ARG.TYPE (TITLE SIMPLE NUMBER CHARS))
|
||||
|
||||
(PUTPROPS CRSYMBOL TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS COMMENT TO.ARG.TYPE NIL)
|
||||
|
||||
(PUTPROPS DEF TO.ARG.TYPE (TYPE CHARS NAME SIMPLE PRINTNAME SIMPLE PARENS CHARS NOPARENS CHARS))
|
||||
(PUTPROPS CRSYMBOL TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS EDITCOM TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS DEF TO.ARG.TYPE (TYPE CHARS NAME SIMPLE PRINTNAME SIMPLE PARENS CHARS NOPARENS CHARS))
|
||||
|
||||
(PUTPROPS ELLIPSIS TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS EDITCOM TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS EMDASH TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS ELLIPSIS TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS ENDASH TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS EMDASH TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS FIGURE TO.ARG.TYPE (TAG CHARS))
|
||||
(PUTPROPS ENDASH TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS FIGUREREF TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS FIGURE TO.ARG.TYPE (TAG CHARS))
|
||||
|
||||
(PUTPROPS FILECOM TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS FIGUREREF TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS FN TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS FILECOM TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS FNDEF TO.ARG.TYPE (NAME SIMPLE ARGS SIMPLE TYPE CHARS))
|
||||
(PUTPROPS FN TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS FOOT TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS FNDEF TO.ARG.TYPE (NAME SIMPLE ARGS SIMPLE TYPE CHARS))
|
||||
|
||||
(PUTPROPS GE TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS FOOT TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS INCLUDE TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS GE TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS INDEX TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS INCLUDE TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS INDEXX TO.ARG.TYPE
|
||||
(TYPE CHARS NAME CHARS INFO CHARS TEXT SIMPLE SUBNAME CHARS SUBTYPE CHARS SUBTEXT SIMPLE
|
||||
SUBSUBNAME CHARS SUBSUBTYPE CHARS SUBSUBTEXT SIMPLE))
|
||||
(PUTPROPS INDEX TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS IT TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS INDEXX TO.ARG.TYPE (TYPE CHARS NAME CHARS INFO CHARS TEXT SIMPLE SUBNAME CHARS SUBTYPE
|
||||
CHARS SUBTEXT SIMPLE SUBSUBNAME CHARS SUBSUBTYPE CHARS SUBSUBTEXT
|
||||
SIMPLE))
|
||||
|
||||
(PUTPROPS LABELEDLIST TO.ARG.TYPE (LNAME SIMPLE NAME SIMPLE INDENT CHARS MAX CHARS))
|
||||
(PUTPROPS IT TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS LBRACKET TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS LABELEDLIST TO.ARG.TYPE (LNAME SIMPLE NAME SIMPLE INDENT CHARS MAX CHARS))
|
||||
|
||||
(PUTPROPS LE TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS LBRACKET TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS LISP TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS LE TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS LISPCODE TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS LISP TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS MAC TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS LISPCODE TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS MACDEF TO.ARG.TYPE (NAME SIMPLE ARGS SIMPLE TYPE CHARS))
|
||||
(PUTPROPS MAC TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS NE TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS MACDEF TO.ARG.TYPE (NAME SIMPLE ARGS SIMPLE TYPE CHARS))
|
||||
|
||||
(PUTPROPS NOTE TO.ARG.TYPE NIL)
|
||||
(PUTPROPS NE TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS NUMBEREDLIST TO.ARG.TYPE NIL)
|
||||
(PUTPROPS NOTE TO.ARG.TYPE NIL)
|
||||
|
||||
(PUTPROPS PACOM TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS NUMBEREDLIST TO.ARG.TYPE NIL)
|
||||
|
||||
(PUTPROPS PAGEREF TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS PACOM TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS PI TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS PAGEREF TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS PLUSMINUS TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS PI TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS PROP TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS PLUSMINUS TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS PROPDEF TO.ARG.TYPE (NAME SIMPLE))
|
||||
(PUTPROPS PROP TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS RBRACKET TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS PROPDEF TO.ARG.TYPE (NAME SIMPLE))
|
||||
|
||||
(PUTPROPS RM TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS RBRACKET TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS SECTIONREF TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS RM TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS SP TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS SECTIONREF TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS SUB TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS SP TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS SUBSEC TO.ARG.TYPE (TITLE SIMPLE))
|
||||
(PUTPROPS SUB TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS SUPER TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS SUBSEC TO.ARG.TYPE (TITLE SIMPLE))
|
||||
|
||||
(PUTPROPS TABLE TO.ARG.TYPE (COLUMN CHARS UNDERLINE CHARS MULTIPAGE CHARS HSKIP CHARS VSKIP CHARS
|
||||
))
|
||||
(PUTPROPS SUPER TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS TAG TO.ARG.TYPE CHARS)
|
||||
(PUTPROPS TABLE TO.ARG.TYPE (COLUMN CHARS UNDERLINE CHARS MULTIPAGE CHARS HSKIP CHARS VSKIP CHARS))
|
||||
|
||||
(PUTPROPS TERM TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS TAG TO.ARG.TYPE CHARS)
|
||||
|
||||
(PUTPROPS UNNUMBEREDLIST TO.ARG.TYPE NIL)
|
||||
(PUTPROPS TERM TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(PUTPROPS VAR TO.ARG.TYPE SIMPLE)
|
||||
(PUTPROPS UNNUMBEREDLIST TO.ARG.TYPE NIL)
|
||||
|
||||
(PUTPROPS VARDEF TO.ARG.TYPE (NAME SIMPLE))
|
||||
(PUTPROPS VAR TO.ARG.TYPE SIMPLE)
|
||||
|
||||
(RPAQ? IM.TEDIT.FONT.DEFS '(NIL (FAMILY MODERN FACE MRR SIZE 10)
|
||||
FOOTNOTE
|
||||
(FAMILY MODERN FACE MRR SIZE 10)
|
||||
NOTE
|
||||
(FAMILY MODERN FACE MIR SIZE 8)
|
||||
BOLD
|
||||
(FAMILY MODERN FACE BRR SIZE 10)
|
||||
ITALIC
|
||||
(FAMILY MODERN FACE MIR SIZE 10)
|
||||
LISP
|
||||
(FAMILY MODERN FACE BRR SIZE 10)
|
||||
ARG
|
||||
(FAMILY MODERN FACE MIR SIZE 10)))
|
||||
(PUTPROPS VARDEF TO.ARG.TYPE (NAME SIMPLE))
|
||||
|
||||
(RPAQ? IM.TEDIT.FONT.DEFS
|
||||
'(NIL (FAMILY MODERN FACE MRR SIZE 10)
|
||||
FOOTNOTE
|
||||
(FAMILY MODERN FACE MRR SIZE 10)
|
||||
NOTE
|
||||
(FAMILY MODERN FACE MIR SIZE 8)
|
||||
BOLD
|
||||
(FAMILY MODERN FACE BRR SIZE 10)
|
||||
ITALIC
|
||||
(FAMILY MODERN FACE MIR SIZE 10)
|
||||
LISP
|
||||
(FAMILY MODERN FACE BRR SIZE 10)
|
||||
ARG
|
||||
(FAMILY MODERN FACE MIR SIZE 10)))
|
||||
|
||||
(RPAQ? IM.CHAPTER.TITLE.FONT '(FAMILY MODERN FACE BRR SIZE 18))
|
||||
|
||||
@@ -2076,10 +2075,10 @@ Copyright (c) 1983, 1984, 1985, 1986, 1991 by Xerox Corporation. All rights res
|
||||
|
||||
|
||||
|
||||
(* the following variables specify all of the lengths used for possitioning IM text, headers, etc.
|
||||
on the page. All of these are measured with respect to the page *margins* <the region on the page
|
||||
defined by the Tedit margin parameters> or with respect to the page *edges* <the edges of the physical
|
||||
page>.)
|
||||
(* the following variables specify all of the lengths used for possitioning IM text, headers, etc. on
|
||||
the page. All of these are measured with respect to the page *margins* <the region on the page defined
|
||||
by the Tedit margin parameters> or with respect to the page *edges* <the edges of the physical page>.
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -2091,16 +2090,16 @@ come out correctly on your printer.)
|
||||
|
||||
|
||||
|
||||
(* indentation of 1st line of definitian header, measured in points from left page margin. Also used
|
||||
for indentation of hrule under defn header.)
|
||||
(* indentation of 1st line of definitian header, measured in points from left page margin. Also used
|
||||
for indentation of hrule under defn header.)
|
||||
|
||||
|
||||
(RPAQ? IM.DEF.TITLE.1STLEFTMARGIN 75)
|
||||
|
||||
|
||||
|
||||
(* indentation of 2nd and other overflow lines of definition header, measured in points from left
|
||||
page margin.)
|
||||
(* indentation of 2nd and other overflow lines of definition header, measured in points from left page
|
||||
margin.)
|
||||
|
||||
|
||||
(RPAQ? IM.DEF.TITLE.LEFTMARGIN 204)
|
||||
@@ -2198,9 +2197,9 @@ measured in points from the bottom page margin. The Y-pos is always the normal t
|
||||
|
||||
|
||||
|
||||
(* Tedit tab setting used for subsection heading text. "(40 . LEFT)" determines the indentation of
|
||||
the title after the subsec number, measured in points from the left page margin. "18" is the tab used
|
||||
if the subsec number is wider than 40 pts.)
|
||||
(* Tedit tab setting used for subsection heading text. "(40 . LEFT)" determines the indentation of the
|
||||
title after the subsec number, measured in points from the left page margin. "18" is the tab used if
|
||||
the subsec number is wider than 40 pts.)
|
||||
|
||||
|
||||
(RPAQ? IM.SUBSEC.TITLE.TABS '(18 (40 . LEFT)))
|
||||
@@ -2223,12 +2222,12 @@ right-justifies the label on the left of the center space. "(204 . LEFT)" starts
|
||||
|
||||
|
||||
(RPAQ? IM.LABELED.LIST.TABS '(18 (186 . RIGHT)
|
||||
(204 . LEFT)))
|
||||
(204 . LEFT)))
|
||||
|
||||
|
||||
|
||||
(* left, right, top, and bottom margins of the "page region" %, measured in points from the four
|
||||
edges of the page.)
|
||||
(* left, right, top, and bottom margins of the "page region" %, measured in points from the four edges
|
||||
of the page.)
|
||||
|
||||
|
||||
(RPAQ? IM.PAGE.LEFTMARGIN 58)
|
||||
@@ -2249,9 +2248,9 @@ chapter title>, measured in points from the top page edge.)
|
||||
|
||||
|
||||
|
||||
(* top margin of the page region for the first page of the index, measured in points from the top
|
||||
page edge. Note that in the case of the index, because it uses two columns, the index title is
|
||||
implemented as a Tedit header, instead of as the first paragraph of the document.)
|
||||
(* top margin of the page region for the first page of the index, measured in points from the top page
|
||||
edge. Note that in the case of the index, because it uses two columns, the index title is implemented
|
||||
as a Tedit header, instead of as the first paragraph of the document.)
|
||||
|
||||
|
||||
(RPAQ? IM.INDEX.PAGE.FIRST.TOPMARGIN 144)
|
||||
@@ -2286,8 +2285,7 @@ implemented as a Tedit header, instead of as the first paragraph of the document
|
||||
|
||||
|
||||
|
||||
(* y-pos of lower-left corner of bottom draft message, measured in points from the bottom page edge.
|
||||
)
|
||||
(* y-pos of lower-left corner of bottom draft message, measured in points from the bottom page edge.)
|
||||
|
||||
|
||||
(RPAQ? IM.DRAFT.MESSAGE.BOTTOM.Y 5)
|
||||
@@ -2301,8 +2299,8 @@ implemented as a Tedit header, instead of as the first paragraph of the document
|
||||
|
||||
|
||||
|
||||
(* x-pos of lower-left corner of both top and bottom draft messages, measured in points from the
|
||||
left page edge.)
|
||||
(* x-pos of lower-left corner of both top and bottom draft messages, measured in points from the left
|
||||
page edge.)
|
||||
|
||||
|
||||
(RPAQ? IM.DRAFT.MESSAGE.X 200)
|
||||
@@ -2400,35 +2398,35 @@ left page edge.)
|
||||
)
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
[PUTPROPS IM.HOLD.FOOTNOTES MACRO (X `(PROG NIL
|
||||
(PUTPROPS IM.HOLD.FOOTNOTES MACRO [X `(PROG NIL
|
||||
(PUT.MY.PROP 'PASSFOOT T)
|
||||
%,@
|
||||
X (PUT.MY.PROP 'PASSFOOT NIL)
|
||||
(DUMPOUT CR CR DUMP.FOOTNOTES]
|
||||
(DUMPOUT CR CR DUMP.FOOTNOTES])
|
||||
|
||||
(PUTPROPS DUMPOUT MACRO (X (TRANSLATE.DUMPOUT X)))
|
||||
(PUTPROPS DUMPOUT MACRO (X (TRANSLATE.DUMPOUT X)))
|
||||
|
||||
(PUTPROPS SAVE.DUMPOUT MACRO (X (TRANSLATE.SAVE.DUMPOUT X)))
|
||||
(PUTPROPS SAVE.DUMPOUT MACRO (X (TRANSLATE.SAVE.DUMPOUT X)))
|
||||
)
|
||||
(PUTPROPS IMTEDIT COPYRIGHT ("Xerox Corporation" 1983 1984 1985 1986 1991))
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (10973 37992 (IM.TEDIT 10983 . 12664) (DUMP 12666 . 14961) (DUMP.HEADERS.FOOTERS 14963
|
||||
. 17329) (DUMP.HRULE 17331 . 18482) (CHANGE.FONT 18484 . 19678) (IM.BOUT.IMAGEOBJ 19680 . 20003) (
|
||||
IM.TEDIT.DUMP.COMMANDS 20005 . 23558) (IM.TEDIT.DUMP.FOOTNOTES 23560 . 24001) (IM.TEDIT.DUMP.PARA
|
||||
24003 . 24777) (INDEXX.PARSE.TYPE 24779 . 26074) (FORMAT.DEF 26076 . 28207) (FORMAT.LISPWORD 28209 .
|
||||
28360) (MAKE.IM.DOCUMENT 28362 . 36847) (PRINT.NOTE 36849 . 37063) (SEND.INFO 37065 . 37990)) (38101
|
||||
42119 (IM.VRULE.DISPLAYFN 38111 . 38435) (CREATE.VRULE.OBJECT 38437 . 40217) (PRINT.VRULES.ON.PAGE
|
||||
40219 . 42117)) (42277 47032 (IM.FOLIO.DISPLAYFN 42287 . 42965) (IM.FOLIO.SIZEFN 42967 . 43816) (
|
||||
CREATE.FOLIO.OBJECT 43818 . 45364) (GET.FOLIO.STRING 45366 . 47030)) (47164 93404 (ARG#TOPROG 47174 .
|
||||
47313) (BIGLISPCODE#TOPROG 47315 . 48551) (BRACKET#TOPROG 48553 . 48717) (CHAPTER#TOPROG 48719 . 51400
|
||||
) (COMMENT#TOPROG 51402 . 51954) (DEF#TOPROG 51956 . 55291) (FIGURE#TOPROG 55293 . 56637) (FN#TOPROG
|
||||
56639 . 57036) (FNDEF#TOPROG 57038 . 60930) (FOOT#TOPROG 60932 . 61473) (INCLUDE#TOPROG 61475 . 61790)
|
||||
(INDEX#TOPROG 61792 . 62882) (INDEXX#TOPROG 62884 . 64965) (IT#TOPROG 64967 . 65108) (LBRACKET#TOPROG
|
||||
65110 . 65264) (LISP#TOPROG 65266 . 65407) (LISPCODE#TOPROG 65409 . 66528) (LISPWORD#TOPROG 66530 .
|
||||
67270) (LIST#TOPROG 67272 . 71694) (MACDEF#TOPROG 71696 . 72874) (NOTE#TOPROG 72876 . 73556) (
|
||||
PRINT.SPECIAL.CHARS#TOPROG 73558 . 74535) (PROPDEF#TOPROG 74537 . 74814) (RBRACKET#TOPROG 74816 .
|
||||
74970) (REF#TOPROG 74972 . 82811) (RM#TOPROG 82813 . 82951) (SUB#TOPROG 82953 . 83101) (SUBSEC#TOPROG
|
||||
83103 . 87606) (SUPER#TOPROG 87608 . 87762) (TABLE#TOPROG 87764 . 91716) (TAG#TOPROG 91718 . 91985) (
|
||||
TERM#TOPROG 91987 . 92300) (VAR#TOPROG 92302 . 92705) (VARDEF#TOPROG 92707 . 93402)) (110656 116084 (
|
||||
TRANSLATE.DUMPOUT 110666 . 115683) (TRANSLATE.SAVE.DUMPOUT 115685 . 116082)))))
|
||||
(FILEMAP (NIL (10773 38278 (IM.TEDIT 10783 . 12464) (DUMP 12466 . 14761) (DUMP.HEADERS.FOOTERS 14763
|
||||
. 17129) (DUMP.HRULE 17131 . 18282) (CHANGE.FONT 18284 . 19478) (IM.BOUT.IMAGEOBJ 19480 . 19803) (
|
||||
IM.TEDIT.DUMP.COMMANDS 19805 . 23358) (IM.TEDIT.DUMP.FOOTNOTES 23360 . 23801) (IM.TEDIT.DUMP.PARA
|
||||
23803 . 24577) (INDEXX.PARSE.TYPE 24579 . 25874) (FORMAT.DEF 25876 . 28007) (FORMAT.LISPWORD 28009 .
|
||||
28160) (MAKE.IM.DOCUMENT 28162 . 37133) (PRINT.NOTE 37135 . 37349) (SEND.INFO 37351 . 38276)) (38387
|
||||
42405 (IM.VRULE.DISPLAYFN 38397 . 38721) (CREATE.VRULE.OBJECT 38723 . 40503) (PRINT.VRULES.ON.PAGE
|
||||
40505 . 42403)) (42563 47318 (IM.FOLIO.DISPLAYFN 42573 . 43251) (IM.FOLIO.SIZEFN 43253 . 44102) (
|
||||
CREATE.FOLIO.OBJECT 44104 . 45650) (GET.FOLIO.STRING 45652 . 47316)) (47450 93690 (ARG#TOPROG 47460 .
|
||||
47599) (BIGLISPCODE#TOPROG 47601 . 48837) (BRACKET#TOPROG 48839 . 49003) (CHAPTER#TOPROG 49005 . 51686
|
||||
) (COMMENT#TOPROG 51688 . 52240) (DEF#TOPROG 52242 . 55577) (FIGURE#TOPROG 55579 . 56923) (FN#TOPROG
|
||||
56925 . 57322) (FNDEF#TOPROG 57324 . 61216) (FOOT#TOPROG 61218 . 61759) (INCLUDE#TOPROG 61761 . 62076)
|
||||
(INDEX#TOPROG 62078 . 63168) (INDEXX#TOPROG 63170 . 65251) (IT#TOPROG 65253 . 65394) (LBRACKET#TOPROG
|
||||
65396 . 65550) (LISP#TOPROG 65552 . 65693) (LISPCODE#TOPROG 65695 . 66814) (LISPWORD#TOPROG 66816 .
|
||||
67556) (LIST#TOPROG 67558 . 71980) (MACDEF#TOPROG 71982 . 73160) (NOTE#TOPROG 73162 . 73842) (
|
||||
PRINT.SPECIAL.CHARS#TOPROG 73844 . 74821) (PROPDEF#TOPROG 74823 . 75100) (RBRACKET#TOPROG 75102 .
|
||||
75256) (REF#TOPROG 75258 . 83097) (RM#TOPROG 83099 . 83237) (SUB#TOPROG 83239 . 83387) (SUBSEC#TOPROG
|
||||
83389 . 87892) (SUPER#TOPROG 87894 . 88048) (TABLE#TOPROG 88050 . 92002) (TAG#TOPROG 92004 . 92271) (
|
||||
TERM#TOPROG 92273 . 92586) (VAR#TOPROG 92588 . 92991) (VARDEF#TOPROG 92993 . 93688)) (111336 116764 (
|
||||
TRANSLATE.DUMPOUT 111346 . 116363) (TRANSLATE.SAVE.DUMPOUT 116365 . 116762)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
BIN
fonts/displayfonts/c0/IBM-US14-MRR-C0.DISPLAYFONT
Normal file
BIN
fonts/displayfonts/c0/IBM-US14-MRR-C0.DISPLAYFONT
Normal file
Binary file not shown.
BIN
fonts/displayfonts/c0/IBM-US16-MRR-C0.DISPLAYFONT
Normal file
BIN
fonts/displayfonts/c0/IBM-US16-MRR-C0.DISPLAYFONT
Normal file
Binary file not shown.
BIN
fonts/displayfonts/c0/IBM14-MRR-C0.DISPLAYFONT
Normal file
BIN
fonts/displayfonts/c0/IBM14-MRR-C0.DISPLAYFONT
Normal file
Binary file not shown.
BIN
fonts/displayfonts/c0/IBM16-MRR-C0.DISPLAYFONT
Normal file
BIN
fonts/displayfonts/c0/IBM16-MRR-C0.DISPLAYFONT
Normal file
Binary file not shown.
BIN
fonts/displayfonts/c0/IBMREV14-MRR-C0.DISPLAYFONT
Normal file
BIN
fonts/displayfonts/c0/IBMREV14-MRR-C0.DISPLAYFONT
Normal file
Binary file not shown.
BIN
fonts/displayfonts/c0/IBMREV16-MRR-C0.DISPLAYFONT
Normal file
BIN
fonts/displayfonts/c0/IBMREV16-MRR-C0.DISPLAYFONT
Normal file
Binary file not shown.
380
greetfiles/APPS-INIT
Normal file
380
greetfiles/APPS-INIT
Normal file
@@ -0,0 +1,380 @@
|
||||
(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
|
||||
|
||||
:CHANGES-TO (VARS APPS-INITCOMS)
|
||||
(FNS Apps.DoInit)
|
||||
|
||||
:PREVIOUS-DATE "19-Jan-2023 11:57:40" {DSK}<home>frank>il>medley>gmedley>greetfiles>APPS-INIT.;8
|
||||
)
|
||||
|
||||
|
||||
(PRETTYCOMPRINT APPS-INITCOMS)
|
||||
|
||||
(RPAQQ APPS-INITCOMS
|
||||
[(FILES (SYSLOAD)
|
||||
MEDLEYDIR-INIT)
|
||||
(GLOBALVARS Apps.NotecardsActivated Apps.RoomsActivated)
|
||||
(INITVARS (Apps.NotecardsActivated NIL)
|
||||
(Apps.RoomsActivated NIL))
|
||||
(FNS Apps.InitNotecards Apps.DoInit Apps.CreateButtons Apps.CreateLabel Apps.ActivateCLOS
|
||||
Apps.ActivateRooms Apps.ShowDoc XCL-USER::EXEC_INTERLISP)
|
||||
(DECLARE%: DONTEVAL@LOAD DOCOPY (P (Apps.DoInit)))
|
||||
(DECLARE%: FIRST DONTEVAL@LOAD DOCOPY (P (BKSYSBUF " "])
|
||||
|
||||
(FILESLOAD (SYSLOAD)
|
||||
MEDLEYDIR-INIT)
|
||||
(DECLARE%: DOEVAL@COMPILE DONTCOPY
|
||||
|
||||
(GLOBALVARS Apps.NotecardsActivated Apps.RoomsActivated)
|
||||
)
|
||||
|
||||
(RPAQ? Apps.NotecardsActivated NIL)
|
||||
|
||||
(RPAQ? Apps.RoomsActivated NIL)
|
||||
(DEFINEQ
|
||||
|
||||
(Apps.InitNotecards
|
||||
[LAMBDA (DoNotRefreshButtons)
|
||||
(DECLARE (GLOBALVARS BackgroundMenuCommands BackgroundMenu))
|
||||
(* ; "Edited 19-Jan-2023 11:57 by FGH")
|
||||
(* ; "Edited 7-Dec-2022 11:14 by FGH")
|
||||
(* ; "Edited 12-Nov-2022 14:41 by FGH")
|
||||
(* ; "Edited 11-Sep-2022 01:09 by fgh")
|
||||
(* ; "Edited 7-Feb-2022 20:22 by tp7")
|
||||
(LET* [[SRCDIR (OR (UNIX-GETENV 'NOTEFILESSRC)
|
||||
(AND (UNIX-GETENV 'NC_INSTALLDIR)
|
||||
(CONCAT (UNIX-GETENV 'NC_INSTALLDIR)
|
||||
"/notefiles"))
|
||||
(LET ((SUBDIR "notecards/notefiles"))
|
||||
(for DIR in (LIST (CONCAT (MEDLEYDIR)
|
||||
SUBDIR)
|
||||
(CONCAT (MEDLEYDIR)
|
||||
"../" SUBDIR)
|
||||
(CONCAT (MEDLEYDIR)
|
||||
"../../" SUBDIR)) thereis (DIRECTORYNAME DIR]
|
||||
(DESTDIR (OR (UNIX-GETENV 'NOTEFILESDIR)
|
||||
(AND (UNIX-GETENV 'MEDLEY_USERDIR)
|
||||
(CONCAT (UNIX-GETENV 'MEDLEY_USERDIR)
|
||||
"/notefiles"))
|
||||
(CONCAT LOGINDIR "notefiles"]
|
||||
[if (AND (NOT (DIRECTORYNAME DESTDIR))
|
||||
(DIRECTORYNAME SRCDIR))
|
||||
then (for NF in (DIRECTORY (CONCAT SRCDIR "/*"))
|
||||
do (COPYFILE NF (PACKFILENAME 'HOST "DSK" 'DIRECTORY DESTDIR 'NAME
|
||||
(FILENAMEFIELD NF 'NAME)
|
||||
'EXTENSION
|
||||
(FILENAMEFIELD NF 'EXTENSION)
|
||||
'VERSION
|
||||
(FILENAMEFIELD NF 'VERSION]
|
||||
(LET* ((PW-REGION (WINDOWPROP PROMPTWINDOW 'REGION))
|
||||
(LEFT (IPLUS (fetch (REGION RIGHT) of PW-REGION)
|
||||
20))
|
||||
(BOTTOM (fetch (REGION BOTTOM) of PW-REGION)))
|
||||
(NC.BringUpNoteCardsIcon (create POSITION
|
||||
XCOORD _ LEFT
|
||||
YCOORD _ BOTTOM)))
|
||||
(NC.FileBrowserMenu NC.NoteCardsIconWindow (PACKFILENAME 'HOST "DSK" 'DIRECTORY DESTDIR
|
||||
'NAME "*" 'EXTENSION "notefile")
|
||||
(CREATEREGION 50 (IDIFFERENCE SCREENHEIGHT 700)
|
||||
550 220))
|
||||
(if (NULL (SASSOC 'NoteCards BackgroundMenuCommands))
|
||||
then (PROGN [SETQ BackgroundMenuCommands (APPEND BackgroundMenuCommands
|
||||
(LIST '(NoteCards (
|
||||
NC.BringUpNoteCardsIcon
|
||||
)
|
||||
|
||||
"Bring up the NoteCards control icon."
|
||||
]
|
||||
(SETQ BackgroundMenu NIL)))
|
||||
(SETQ Apps.NotecardsActivated T)
|
||||
(if (NOT DoNotRefreshButtons)
|
||||
then (Apps.CreateButtons])
|
||||
|
||||
(Apps.DoInit
|
||||
[LAMBDA NIL
|
||||
|
||||
(* ;; "Edited 19-Jan-2023 12:43 by FGH")
|
||||
|
||||
(* ;; "Edited 17-Jan-2023 23:23 by FGH")
|
||||
|
||||
(* ;; "Edited 7-Dec-2022 11:14 by FGH")
|
||||
|
||||
(* ;; "Edited 12-Nov-2022 13:57 by FGH")
|
||||
|
||||
(* ;; "Edited 12-Oct-2022 20:23 by fgh")
|
||||
|
||||
(* ;; "Edited 6-Sep-2022 17:22 by fgh")
|
||||
|
||||
(* ;; "Edited 4-Sep-2022 16:44 by larry")
|
||||
|
||||
(* ;; "Edited 18-Mar-2022 18:53 by fgh")
|
||||
|
||||
(* ;; "Edited 17-Dec-2021 22:05 by fgh")
|
||||
|
||||
(PROGN
|
||||
(* ;; " Adjust windows so that the exec window and the prompt window don't overlap")
|
||||
|
||||
[MAPC (OPENWINDOWS)
|
||||
(FUNCTION (LAMBDA (W)
|
||||
(COND
|
||||
((EQ (WINDOWPROP W 'BUTTONEVENTFN)
|
||||
'WHEN-WHO-LINE-SELECTED-FN)
|
||||
(MOVEW W (CAR (WINDOWPROP W 'REGION))
|
||||
(IDIFFERENCE SCREENHEIGHT 18)))
|
||||
((STREQUAL (WINDOWPROP W 'TITLE)
|
||||
"Prompt Window")
|
||||
(PROGN (MOVEW W (create POSITION
|
||||
XCOORD _ 50
|
||||
YCOORD _ (IDIFFERENCE SCREENHEIGHT 120)))
|
||||
(CLEARW W)))
|
||||
((STREQUAL (WINDOWPROP W 'TITLE)
|
||||
"Exec (XCL)")
|
||||
(PROGN (WINDOWPROP W 'TITLE "Exec (INTERLISP)")
|
||||
(MOVEW W (create POSITION
|
||||
XCOORD _ 50
|
||||
YCOORD _ (IDIFFERENCE SCREENHEIGHT 460]
|
||||
|
||||
(* ;; " Set up INITIALSLST based on information passed in from the Linux environment")
|
||||
|
||||
[SETQ INITIALSLST (LIST (LIST USERNAME (UNIX-GETENV 'MEDLEY_FIRSTNAME)
|
||||
(UNIX-GETENV 'MEDLEY_INITIALS]
|
||||
(LOAD '{DSK}/usr/local/interlisp/medley/lispusers/HELPSYS.LCOM T)
|
||||
|
||||
(* ;; "change to interlisp exec if required")
|
||||
|
||||
(COND
|
||||
((OR (STRING-EQUAL (UNIX-GETENV 'MEDLEY_EXEC)
|
||||
"inter")
|
||||
(STRING-EQUAL (UNIX-GETENV 'NCO)
|
||||
"true"))
|
||||
(BKSYSBUF "(EXEC_INTERLISP)")))
|
||||
|
||||
(* ;; "Always Activate CLOS")
|
||||
|
||||
(Apps.ActivateCLOS)
|
||||
|
||||
(* ;; " activate Notecards if requested")
|
||||
|
||||
(COND
|
||||
((STRING-EQUAL (UNIX-GETENV 'RUN_NOTECARDS)
|
||||
"true")
|
||||
(Apps.InitNotecards T)))
|
||||
|
||||
(* ;; " activate Rooms if requested")
|
||||
|
||||
(COND
|
||||
((STRING-EQUAL (UNIX-GETENV 'RUN_ROOMS)
|
||||
"true")
|
||||
(Apps.ActivateRooms T)))
|
||||
|
||||
(* ;; " create the Documentation and ROOMS, Notecards Activation Buttons, if needed")
|
||||
|
||||
(Apps.CreateButtons T])
|
||||
|
||||
(Apps.CreateButtons
|
||||
[LAMBDA (DoDocsToo) (* ; "Edited 13-Dec-2022 12:51 by frank")
|
||||
(* ; "Edited 7-Dec-2022 11:28 by FGH")
|
||||
(* ; "Edited 5-Dec-2022 17:31 by FGH")
|
||||
(* ; "Edited 12-Nov-2022 14:52 by FGH")
|
||||
|
||||
(* ;; " Create buttons for Documentation and to activate Rooms, Notecards ")
|
||||
|
||||
(* ;; "Note: due to bug in DELETE-BUTTON need to create Doc buttons last. This will make sure that the NoteCards/Rooms buttons get properl deleted when they are activated. But the Doc buttons will not necessariy get deleted properly (but then there is never a need for them to be deleted).")
|
||||
|
||||
(LET* ((FEATURES (LIST (LIST Apps.NotecardsActivated '(Apps.InitNotecards)
|
||||
"NOTECARDS")
|
||||
(LIST Apps.RoomsActivated '(Apps.ActivateRooms)
|
||||
"ROOMS")))
|
||||
(FEATURES-LABELS (for FEATURE in FEATURES collect (CADDR FEATURE)))
|
||||
(DOCS (LIST (LIST "https://interlisp.org/docs/medley/orientation/" "BASICS")
|
||||
(LIST "https://interlisp.org/documentation/Medley-Primer.pdf" "PRIMER")
|
||||
(LIST "https://interlisp.org/documentation/IRM.pdf" "MANUAL")
|
||||
(LIST "https://interlisp.org/documentation/notecards_user_guide_v1.2.pdf"
|
||||
"NOTECARDS")
|
||||
(LIST "https://interlisp.org/documentation/ROOMSTECHDESC.pdf" "ROOMS")))
|
||||
(DOCS-LABELS (for DOC in DOCS collect (CADR DOC)))
|
||||
(RIGHTMARGINISH 140)
|
||||
(SECTION1YPOS 225)
|
||||
(YPOSDELTA 55)
|
||||
(SECTION2YPOS (IPLUS SECTION1YPOS (ITIMES (IPLUS (LENGTH DOCS)
|
||||
1)
|
||||
YPOSDELTA)))
|
||||
(BUTTONY-FEATURES SECTION2YPOS)
|
||||
(BUTTONY-DOCS SECTION1YPOS)
|
||||
(FEATURES-REQUIREDP (OR (NOT Apps.RoomsActivated)
|
||||
(NOT Apps.NotecardsActivated)))
|
||||
(IWS NIL)
|
||||
(BUTTONS NIL))
|
||||
|
||||
(* ;; "First remove/re-create feature buttons")
|
||||
|
||||
(for W in (OPENWINDOWS) when (MEMBER (WINDOWPROP W 'ICONLABEL)
|
||||
(LIST "ACTIVATE" "FEATURES")) do (CLOSEW W))
|
||||
(for B in *ALL-BUTTONS* when (AND (EQ (WINDOWPROP B 'Apps.BUTTON)
|
||||
'FEATURE)
|
||||
(MEMBER (BUTTON-LABEL B)
|
||||
FEATURES-LABELS)) do (DELETE-BUTTON B))
|
||||
[if FEATURES-REQUIREDP
|
||||
then [SETQ IWS (LIST (Apps.CreateLabel "ACTIVATE" (IDIFFERENCE SCREENWIDTH
|
||||
(IDIFFERENCE RIGHTMARGINISH 50
|
||||
))
|
||||
(IDIFFERENCE SCREENHEIGHT (IDIFFERENCE SECTION2YPOS 20)))
|
||||
(Apps.CreateLabel "FEATURES" (IDIFFERENCE SCREENWIDTH
|
||||
(IDIFFERENCE RIGHTMARGINISH 50
|
||||
))
|
||||
(IDIFFERENCE SCREENHEIGHT SECTION2YPOS]
|
||||
(SETQ BUTTONS (for FEATURE in FEATURES
|
||||
collect (OR (CAR FEATURE)
|
||||
(LET (B)
|
||||
(SETQ BUTTONY-FEATURES (IPLUS BUTTONY-FEATURES
|
||||
YPOSDELTA))
|
||||
[SETQ B (CREATE-BUTTON (CADR FEATURE)
|
||||
(CADDR FEATURE)
|
||||
(create POSITION
|
||||
XCOORD _ (IDIFFERENCE
|
||||
SCREENWIDTH
|
||||
RIGHTMARGINISH)
|
||||
YCOORD _ (IDIFFERENCE
|
||||
SCREENHEIGHT
|
||||
BUTTONY-FEATURES
|
||||
]
|
||||
(WINDOWPROP B 'Apps.BUTTON 'FEATURE)
|
||||
B]
|
||||
|
||||
(* ;; "Then if needed, remove/recreate documentation buttons")
|
||||
|
||||
(if DoDocsToo
|
||||
then (for W in (OPENWINDOWS) when (MEMBER (WINDOWPROP W 'ICONLABEL)
|
||||
(LIST "DOCUMENTATION"))
|
||||
do (CLOSEW W))
|
||||
(for B in *ALL-BUTTONS* when (AND (EQ (WINDOWPROP B 'Apps.BUTTON)
|
||||
'DOC)
|
||||
(MEMBER (BUTTON-LABEL B)
|
||||
DOCS-LABELS)) do (DELETE-BUTTON B))
|
||||
(SETQ IWS (CONS (Apps.CreateLabel "DOCUMENTATION" (IDIFFERENCE SCREENWIDTH
|
||||
(IDIFFERENCE
|
||||
RIGHTMARGINISH 50)
|
||||
)
|
||||
(IDIFFERENCE SCREENHEIGHT SECTION1YPOS))
|
||||
IWS))
|
||||
(SETQ BUTTONS (APPEND (for DOC in DOCS
|
||||
collect (LET (B)
|
||||
(SETQ BUTTONY-DOCS (IPLUS BUTTONY-DOCS
|
||||
YPOSDELTA))
|
||||
[SETQ B (CREATE-BUTTON (LIST 'Apps.ShowDoc
|
||||
(CAR DOC))
|
||||
(CADR DOC)
|
||||
(create POSITION
|
||||
XCOORD _
|
||||
(IDIFFERENCE
|
||||
SCREENWIDTH
|
||||
RIGHTMARGINISH)
|
||||
YCOORD _
|
||||
(IDIFFERENCE
|
||||
SCREENHEIGHT
|
||||
BUTTONY-DOCS]
|
||||
(WINDOWPROP B 'Apps.BUTTON 'DOC)
|
||||
B))
|
||||
BUTTONS)))
|
||||
[for B in BUTTONS do (COND
|
||||
((WINDOWP B)
|
||||
(WINDOWPROP B 'RIGHTBUTTONFN 'NILL)
|
||||
(WINDOWPROP B 'BUTTONEVENTFN (FUNCTION (LAMBDA (BUTTON)
|
||||
(if (LASTMOUSESTATE
|
||||
(ONLY LEFT))
|
||||
then (EXECUTE-BUTTON
|
||||
BUTTON]
|
||||
[for IW in IWS do (COND
|
||||
((WINDOWP IW)
|
||||
(WINDOWPROP IW 'RIGHTBUTTONFN 'NILL]
|
||||
(for B in BUTTONS when (WINDOWP B) collect B])
|
||||
|
||||
(Apps.CreateLabel
|
||||
[LAMBDA (Text CenterX BottomY) (* ; "Edited 5-Dec-2022 16:49 by FGH")
|
||||
(LET* ((DS (DSPCREATE))
|
||||
(FONT (DSPFONT '(HELVETICA 18 BOLD)
|
||||
DS))
|
||||
(SR (STRINGREGION Text DS))
|
||||
(BMW (fetch (REGION WIDTH) of SR))
|
||||
(BMH (IPLUS (fetch (REGION HEIGHT) of SR)
|
||||
(fetch (REGION BOTTOM) of SR)))
|
||||
(BM (BITMAPCREATE BMW BMH))
|
||||
(POS (create POSITION
|
||||
XCOORD _ (IDIFFERENCE CenterX (IQUOTIENT BMW 2))
|
||||
YCOORD _ BottomY))
|
||||
IW)
|
||||
(DSPDESTINATION BM DS)
|
||||
(PRIN1 Text DS)
|
||||
(SETQ IW (ICONW BM BM POS))
|
||||
(WINDOWPROP IW 'ICONLABEL Text)
|
||||
IW])
|
||||
|
||||
(Apps.ActivateCLOS
|
||||
[LAMBDA NIL
|
||||
(DECLARE (GLOBALVARS BackgroundMenuCommands BackgroundMenu))
|
||||
(* ; "Edited 12-Nov-2022 14:41 by FGH")
|
||||
(if (NULL (SASSOC "CLOS Browse Class" BackgroundMenuCommands))
|
||||
then (PROGN [SETQ BackgroundMenuCommands
|
||||
(APPEND BackgroundMenuCommands
|
||||
(LIST '("CLOS Browse Class" (CLOS-BROWSER::BROWSE-CLASS)
|
||||
"Bring up a class browser."
|
||||
(SUBITEMS (|all in a package| (CLOS-BROWSER::BROWSE-CLASS
|
||||
(
|
||||
CLOS-BROWSER::CLASSES-IN-PACKAGE
|
||||
(
|
||||
CLOS-BROWSER::IN-SELECT-PACKAGE
|
||||
)))
|
||||
|
||||
"Select a package and browse all the classes defined in that package."
|
||||
]
|
||||
(SETQ BackgroundMenu NIL])
|
||||
|
||||
(Apps.ActivateRooms
|
||||
[LAMBDA (DoNotRefreshButtons)
|
||||
(DECLARE (GLOBALVARS BackgroundMenuCommands ROOMS:*SUITE-DIRECTORIES*))
|
||||
(* ; "Edited 7-Dec-2022 11:13 by FGH")
|
||||
(* ; "Edited 12-Nov-2022 14:56 by FGH")
|
||||
(if (NULL (SASSOC "Rooms" BackgroundMenuCommands))
|
||||
then (ROOMS:RESET))
|
||||
(SETQ ROOMS:*SUITE-DIRECTORIES* (CONS (CONCAT (UNIX-GETENV 'MEDLE_USERDIR)
|
||||
"/suites")
|
||||
ROOMS:*SUITE-DIRECTORIES*))
|
||||
(SETQ Apps.RoomsActivated T)
|
||||
(PROMPTPRINT "
|
||||
ROOMS functionality is now available via the Background Menu")
|
||||
(if (NOT DoNotRefreshButtons)
|
||||
then (Apps.CreateButtons])
|
||||
|
||||
(Apps.ShowDoc
|
||||
[LAMBDA (URL) (* ; "Edited 18-Jan-2023 20:26 by FGH")
|
||||
(ShellBrowse URL])
|
||||
|
||||
(XCL-USER::EXEC_INTERLISP
|
||||
[LAMBDA NIL (* ; "Edited 18-Mar-2022 18:53 by fgh")
|
||||
(PROGN [MAPC (OPENWINDOWS)
|
||||
(FUNCTION (LAMBDA (W)
|
||||
(COND
|
||||
((STREQUAL (WINDOWPROP W 'TITLE)
|
||||
"Exec (XCL)")
|
||||
(PROGN (WINDOWPROP W 'TITLE "Exec (INTERLISP)")
|
||||
(MOVEW W (create POSITION
|
||||
XCOORD _ 50
|
||||
YCOORD _ (IDIFFERENCE SCREENHEIGHT 460]
|
||||
(XCL:SET-DEFAULT-EXEC-TYPE 'INTERLISP)
|
||||
(XCL:SET-EXEC-TYPE 'INTERLISP])
|
||||
)
|
||||
(DECLARE%: DONTEVAL@LOAD DOCOPY
|
||||
|
||||
(Apps.DoInit)
|
||||
)
|
||||
(DECLARE%: FIRST DONTEVAL@LOAD DOCOPY
|
||||
|
||||
(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
|
||||
)))))
|
||||
STOP
|
||||
BIN
greetfiles/APPS-INIT.LCOM
Normal file
BIN
greetfiles/APPS-INIT.LCOM
Normal file
Binary file not shown.
@@ -1,10 +1,13 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED " 9-Mar-2022 11:50:44" {DSK}<home>larry>medley>greetfiles>MEDLEYDIR-INIT.;2 4690
|
||||
(FILECREATED "13-Apr-2023 09:44:06" {DSK}<home>larry>il>medley>greetfiles>MEDLEYDIR-INIT.;6 2925
|
||||
|
||||
:EDIT-BY "lmm"
|
||||
|
||||
:CHANGES-TO (VARS MEDLEYDIR-INITCOMS)
|
||||
|
||||
:PREVIOUS-DATE "28-Feb-2022 21:13:20" {DSK}<home>larry>medley>greetfiles>MEDLEYDIR-INIT.;1)
|
||||
:PREVIOUS-DATE "10-Apr-2023 11:58:07" {DSK}<home>larry>il>medley>greetfiles>MEDLEYDIR-INIT.;5
|
||||
)
|
||||
|
||||
|
||||
(PRETTYCOMPRINT MEDLEYDIR-INITCOMS)
|
||||
@@ -13,7 +16,7 @@
|
||||
([P (LOAD? (CONCAT (OR (UNIX-GETENV "MEDLEYDIR")
|
||||
"")
|
||||
"/sources/MEDLEYDIR.LCOM"))
|
||||
(MEDLEY-INIT-VARS)
|
||||
(MEDLEY-INIT-VARS 'GREET)
|
||||
(KEYACTION 'LOCK '(LOCKTOGGLE . IGNORE]
|
||||
(FILES BACKGROUND-YIELD)
|
||||
(VARS
|
||||
@@ -21,24 +24,25 @@
|
||||
|
||||
(DWIMWAIT 180)
|
||||
(HELPDEPTH 4)
|
||||
(HELPTIME 10)
|
||||
(HELPTIME 1)
|
||||
(FILING.ENUMERATION.DEPTH 1)
|
||||
[LOGINDIR (DIRECTORYNAME (OR (UNIX-GETENV "LOGINDIR")
|
||||
(UNIX-GETENV "HOME"]
|
||||
[USERGREETFILES `((,LOGINDIR "INIT" COM)
|
||||
(,LOGINDIR "INIT"]
|
||||
(COPYRIGHTFLG 'NEVER)
|
||||
(COPYRIGHTSRESERVED NIL)
|
||||
(AUTOBACKTRACEFLG 'ALWAYS)
|
||||
(MAXLEVEL 30000)
|
||||
(MAXLOOP 30000))
|
||||
(FNS INTERLISPMODE)
|
||||
(ALISTS (FONTDEFS LARGER))))
|
||||
(ALISTS (FONTDEFS))))
|
||||
|
||||
(LOAD? (CONCAT (OR (UNIX-GETENV "MEDLEYDIR")
|
||||
"")
|
||||
"/sources/MEDLEYDIR.LCOM"))
|
||||
|
||||
(MEDLEY-INIT-VARS)
|
||||
(MEDLEY-INIT-VARS 'GREET)
|
||||
|
||||
(KEYACTION 'LOCK '(LOCKTOGGLE . IGNORE))
|
||||
|
||||
@@ -48,7 +52,7 @@
|
||||
|
||||
(RPAQQ HELPDEPTH 4)
|
||||
|
||||
(RPAQQ HELPTIME 10)
|
||||
(RPAQQ HELPTIME 1)
|
||||
|
||||
(RPAQQ FILING.ENUMERATION.DEPTH 1)
|
||||
|
||||
@@ -58,6 +62,8 @@
|
||||
(RPAQ USERGREETFILES `((,LOGINDIR "INIT" COM)
|
||||
(,LOGINDIR "INIT")))
|
||||
|
||||
(RPAQQ COPYRIGHTFLG NEVER)
|
||||
|
||||
(RPAQQ COPYRIGHTSRESERVED NIL)
|
||||
|
||||
(RPAQQ AUTOBACKTRACEFLG ALWAYS)
|
||||
@@ -81,44 +87,7 @@
|
||||
:PACKAGE "INTERLISP"])
|
||||
)
|
||||
|
||||
(ADDTOVAR FONTDEFS
|
||||
[LARGER (FONTCHANGEFLG . ALL)
|
||||
(FILELINELENGTH . 102)
|
||||
(FONTPROFILE (DEFAULTFONT 1 (GACHA 12)
|
||||
(GACHA 10)
|
||||
(TERMINAL 10)
|
||||
(POSTSCRIPT (TERMINAL 10)))
|
||||
(ITALICFONT 1 (HELVETICA 12 MIR)
|
||||
(GACHA 10 MIR)
|
||||
(MODERN 10 MIR)
|
||||
(POSTSCRIPT (MODERN 10 MIR)))
|
||||
(BOLDFONT 2 (HELVETICA 12 BRR)
|
||||
(HELVETICA 10 BRR)
|
||||
(MODERN 10 BRR)
|
||||
(POSTSCRIPT (HELVETICA 12 BRR)))
|
||||
(LITTLEFONT 3 (HELVETICA 10)
|
||||
(HELVETICA 6 MIR)
|
||||
(MODERN 10 MIR)
|
||||
(POSTSCRIPT (MODERN 10 MIR)))
|
||||
(TINYFONT 6 (GACHA 10)
|
||||
(GACHA 6)
|
||||
(TERMINAL 6)
|
||||
(POSTSCRIPT (TERMINAL 6)))
|
||||
(BIGFONT 4 (HELVETICA 12 BRR)
|
||||
NIL
|
||||
(MODERN 12 BRR)
|
||||
(POSTSCRIPT (MODERN 12 BRR)))
|
||||
(MENUFONT 5 (HELVETICA 12)
|
||||
(HELVETICA 12)
|
||||
(POSTSCRIPT (HELVETICA 12)))
|
||||
(COMMENTFONT 6 (HELVETICA 12)
|
||||
(HELVETICA 10)
|
||||
(MODERN 10)
|
||||
(POSTSCRIPT (MODERN 10)))
|
||||
(TEXTFONT 7 (TIMESROMAN 12)
|
||||
NIL
|
||||
(CLASSIC 12)
|
||||
(POSTSCRIPT (CLASSIC 12])
|
||||
(ADDTOVAR FONTDEFS )
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (1949 2774 (INTERLISPMODE 1959 . 2772)))))
|
||||
(FILEMAP (NIL (2051 2876 (INTERLISPMODE 2061 . 2874)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
7
installers/deb/.gitignore
vendored
Normal file
7
installers/deb/.gitignore
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
/tmp
|
||||
*.deb
|
||||
*.swp
|
||||
*.save
|
||||
/tars
|
||||
/debs
|
||||
|
||||
1
installers/deb/build
Symbolic link
1
installers/deb/build
Symbolic link
@@ -0,0 +1 @@
|
||||
build_deb.sh
|
||||
158
installers/deb/build_deb.sh
Executable file
158
installers/deb/build_deb.sh
Executable file
@@ -0,0 +1,158 @@
|
||||
#!/bin/bash
|
||||
###############################################################################
|
||||
#
|
||||
# build_deb.sh: build .deb files for installing Medley Interlisp on Linux
|
||||
# and WSL
|
||||
#
|
||||
# 2023-01-10 Frank Halasz
|
||||
#
|
||||
# Copyright 2023 by Interlisp.org
|
||||
#
|
||||
###############################################################################
|
||||
# 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
|
||||
if [ ! -f ./control-linux ];
|
||||
then
|
||||
echo "Can't find ./control file."
|
||||
echo "Incorrect cwd?"
|
||||
echo "Should be in medley/installers/deb"
|
||||
echo "Exiting"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# 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
|
||||
mkdir ./tmp
|
||||
# then download the maiko and medley tarballs
|
||||
mkdir -p ${tarball_dir}
|
||||
echo "Fetching maiko and medley release tarballs"
|
||||
gh release download --repo interlisp/maiko --dir ${tarball_dir} --pattern "*.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 "*.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-*-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
|
||||
|
||||
|
||||
# For linux and wsl create packages for each arch
|
||||
for wslp in linux wsl
|
||||
do
|
||||
# For each arch create a deb file
|
||||
for arch_base in x86_64^amd64 armv7l^armhf aarch64^arm64
|
||||
do
|
||||
if [[ ${wslp} = wsl && ${arch_base} = armv7l^armhf ]];
|
||||
then
|
||||
continue
|
||||
fi
|
||||
arch=${arch_base%^*}
|
||||
debian_arch=${arch_base#*^}
|
||||
pkg_dir=tmp/pkg/${wslp}-${arch}
|
||||
#
|
||||
# Set up the pkg directories for this arch using the release tarballs
|
||||
#
|
||||
# Copy in the right control file, modifying as needed
|
||||
rm -rf ${pkg_dir}
|
||||
mkdir -p ${pkg_dir}
|
||||
mkdir -p ${pkg_dir}/DEBIAN
|
||||
sed \
|
||||
-e "s/--ARCH--/${debian_arch}/" \
|
||||
-e "s/--RELEASE--/${medley_release}_${maiko_release}/" \
|
||||
<control-${wslp} >${pkg_dir}/DEBIAN/control
|
||||
#
|
||||
il_dir=${pkg_dir}/usr/local/interlisp
|
||||
MEDLEYDIR=${il_dir#${pkg_dir}}/medley
|
||||
# Maiko and Medley files to il_dir (/usr/local/interlisp)
|
||||
mkdir -p ${il_dir}
|
||||
tar -x -z -C ${il_dir} \
|
||||
-f "${tarball_dir}/maiko-${maiko_release}-linux.${arch}.tgz"
|
||||
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"
|
||||
# Copy the medley man page into place
|
||||
man_dir="${pkg_dir}/usr/local/man/man1"
|
||||
mkdir -p "${man_dir}"
|
||||
cp -p "${il_dir}/medley/docs/man-page/medley.1.gz" "${man_dir}"
|
||||
# Configure postinst and postrm scripts and put in place in DEBIAN dir
|
||||
sed -e "s>--MEDLEYDIR-->${MEDLEYDIR}>g" <postinst >${pkg_dir}/DEBIAN/postinst
|
||||
chmod +x ${pkg_dir}/DEBIAN/postinst
|
||||
sed -e "s>--MEDLEYDIR-->${MEDLEYDIR}>g" <postrm >${pkg_dir}/DEBIAN/postrm
|
||||
chmod +x ${pkg_dir}/DEBIAN/postrm
|
||||
# For wsl scripts, include the vncviewer.exe
|
||||
if [[ ${wslp} = wsl && ${arch} = x86_64 ]];
|
||||
then
|
||||
pushd ./tmp >/dev/null
|
||||
rm -rf vncviewer64-1.12.0.exe
|
||||
wget -q https://sourceforge.net/projects/tigervnc/files/stable/1.12.0/vncviewer64-1.12.0.exe
|
||||
popd >/dev/null
|
||||
mkdir -p ${il_dir}/wsl
|
||||
cp -p tmp/vncviewer64-1.12.0.exe ${il_dir}/wsl/vncviewer64-1.12.0.exe
|
||||
fi
|
||||
#
|
||||
# Make sure all files are owned by root
|
||||
#
|
||||
sudo su <<< "chown --recursive root:root ${il_dir}"
|
||||
#
|
||||
# Create tar file for this arch
|
||||
#
|
||||
filename="${debs_filename_base}-${wslp}-${arch}"
|
||||
mkdir -p tars
|
||||
echo "Creating tar file tars/${filename}.tgz"
|
||||
tar -C ${il_dir} -czf tars/${filename}.tgz .
|
||||
#
|
||||
# Create the deb file for this arch
|
||||
#
|
||||
mkdir -p debs
|
||||
deb_filepath="debs/${filename}.deb"
|
||||
rm -rf "${deb_filepath}"
|
||||
dpkg-deb --build -Zxz "${pkg_dir}" "${deb_filepath}"
|
||||
#
|
||||
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}"
|
||||
|
||||
9
installers/deb/control-linux
Normal file
9
installers/deb/control-linux
Normal file
@@ -0,0 +1,9 @@
|
||||
Package: medley-interlisp
|
||||
Version: 1.0.1
|
||||
Release: --RELEASE--
|
||||
Maintainer: info@interlisp.org
|
||||
Description: Medley Interlisp for Linux
|
||||
Homepage: https://github.com/interlisp/medley
|
||||
Architecture: --ARCH--
|
||||
Depends: man-db, xdg-utils
|
||||
|
||||
9
installers/deb/control-wsl
Normal file
9
installers/deb/control-wsl
Normal file
@@ -0,0 +1,9 @@
|
||||
Package: medley-interlisp
|
||||
Version: 1.0.0
|
||||
Release: --RELEASE--
|
||||
Maintainer: info@interlisp.org
|
||||
Description: Medley Interlisp for Linux
|
||||
Homepage: https://github.com/interlisp/medley
|
||||
Architecture: --ARCH--
|
||||
Depends: wslu ( >= 4.1 ) | wslu ( << 4.0 ), tigervnc-standalone-server, tigervnc-xorg-extension
|
||||
|
||||
10
installers/deb/debian_wsl.txt
Normal file
10
installers/deb/debian_wsl.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
#
|
||||
sudo sed -i s/bullseye/bookworm/ /etc/apt/sources.list
|
||||
sudo apt update
|
||||
sudo apt full-upgrade -y
|
||||
#
|
||||
sudo apt install wget gnupg2 apt-transport-https
|
||||
wget -O - https://pkg.wslutiliti.es/public.key | sudo tee -a /etc/apt/trusted.gpg.d/wslu.asc
|
||||
echo "deb https://pkg.wslutiliti.es/debian bullseye main" | sudo tee -a /etc/apt/sources.list
|
||||
sudo apt update
|
||||
8
installers/deb/postinst
Normal file
8
installers/deb/postinst
Normal file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
# put linkto medley.sh into /usr/local/bin
|
||||
if [[ $1 = configure && ! -e /usr/local/bin/medley ]];
|
||||
then
|
||||
ln -s --MEDLEYDIR--/scripts/medley/medley.sh /usr/local/bin/medley
|
||||
fi
|
||||
# update the man database
|
||||
mandb
|
||||
9
installers/deb/postrm
Normal file
9
installers/deb/postrm
Normal file
@@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
if [[ $1 = remove || $1 = purge ]];
|
||||
then
|
||||
if [ "$(realpath /usr/local/bin/medley)" = "--MEDLEYDIR--/scripts/medley.sh" ];
|
||||
then
|
||||
rm -f /usr/local/bin/medley
|
||||
fi
|
||||
fi
|
||||
|
||||
3
installers/downloads_page/md2html.sh
Executable file
3
installers/downloads_page/md2html.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
markdown medley_downloads.md > medley_downloads.html
|
||||
|
||||
45
installers/downloads_page/medley_downloads.html
Normal file
45
installers/downloads_page/medley_downloads.html
Normal file
@@ -0,0 +1,45 @@
|
||||
<ul>
|
||||
<li><h1>MEDLEY DOWNLOADS</h1>
|
||||
|
||||
<ul>
|
||||
<li><h2>LINUX (including Windows System for Linux)</h2>
|
||||
|
||||
<ul>
|
||||
<li><h3>Standard Installations (for Debian-based distros)</h3>
|
||||
|
||||
<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@@@/@@@DEBS.FILENAME.BASE@@@-linux-aarch64.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>
|
||||
<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@@@/@@@DEBS.FILENAME.BASE@@@-wsl-aarch64.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@@@/@@@DEBS.FILENAME.BASE@@@-linux-aarch64.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>
|
||||
<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@@@/@@@DEBS.FILENAME.BASE@@@-wsl-aarch64.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>
|
||||
|
||||
<p><a href="@@@DOWNLOAD_URL@@@/@@@WINDOWS.INSTALLER.FILENAME@@@">Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for Windows x64 machines</a></p></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
45
installers/downloads_page/medley_downloads.md
Normal file
45
installers/downloads_page/medley_downloads.md
Normal file
@@ -0,0 +1,45 @@
|
||||
* # MEDLEY DOWNLOADS
|
||||
|
||||
* ## LINUX (including Windows System for Linux)
|
||||
|
||||
* ### Standard Installations (for Debian-based distros)
|
||||
|
||||
* #### 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 ARM64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-aarch64.deb)
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-armv7l.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 ARM64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-wsl-aarch64.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 ARM64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-aarch64.tgz)
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for ARMv7 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-linux-armv7l.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 ARM64 machines](@@@DOWNLOAD_URL@@@/@@@DEBS.FILENAME.BASE@@@-wsl-aarch64.tgz)
|
||||
|
||||
* ## WINDOWS 10/11 (Medley runs in a Docker container)
|
||||
|
||||
[Release @@@MEDLEY.SHORT.RELEASE.TAG@@@ for Windows x64 machines](@@@DOWNLOAD_URL@@@/@@@WINDOWS.INSTALLER.FILENAME@@@)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
3
installers/win/.gitignore
vendored
Normal file
3
installers/win/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
medley-install_*.exe
|
||||
vncviewer*.exe
|
||||
|
||||
BIN
installers/win/Medley.ico
Normal file
BIN
installers/win/Medley.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 155 KiB |
165
installers/win/editpath/EditPath.iss
Normal file
165
installers/win/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/win/editpath/EditPath.md
Normal file
118
installers/win/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/win/editpath/README.TXT
Normal file
3
installers/win/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/win/editpath/i386/EditPath.exe
Normal file
BIN
installers/win/editpath/i386/EditPath.exe
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user