development/bascat: Added (detokenizer for BBC BASIC programs)

Signed-off-by: bedlam <dave@slackbuilds.org>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
B. Watson 2023-05-08 18:24:58 +01:00 committed by Willy Sudiarto Raharjo
parent 5793f20488
commit 67a6accbaa
No known key found for this signature in database
GPG Key ID: 3F617144D7238786
7 changed files with 395 additions and 0 deletions

View File

@ -0,0 +1,7 @@
bascat (detokenizer for BBC BASIC programs)
bascat is a program that will convert BBC BASIC files to text, like
the LIST command does.
bascat reads tokenized BASIC files, not disk images. To extract a file
from a disk image, use dfsimage (also available on SlackBuild.org).

114
development/bascat/bascat.1 Normal file
View File

@ -0,0 +1,114 @@
.\" Man page generated from reStructuredText.
.
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BASCAT" 1 "2023-05-05" "1.2pre2" "SlackBuilds.org"
.SH NAME
bascat \- detokenizer for BBC Micro BASIC programs
.\" RST source for bascat(1) man page. Convert with:
.
.\" rst2man.py bascat.rst > bascat.1
.
.\" rst2man.py comes from the SBo development/docutils package.
.
.SH SYNOPSIS
.sp
\fBbascat\fP [\fI\-\-help\fP | \fI\-h\fP] [\fI\-\-version\fP | \fI\-v\fP] [\fI\-\-line\-numbers\fP | \fI\-n\fP] [\fI\-\-no\-line\-numbers\fP | \fI+n\fP] [\fI\-\-highlight\fP | \fI\-l\fP ] [\fI\-\-no\-highlight\fP | \fI+l\fP ] [\fI\-\-pager=PAGER\fP | \fI\-p PAGER\fP] [\fIfile\fP ...]
.SH DESCRIPTION
.sp
Types tokenized (SAVEd) BBC BASIC programs in a readable way.
.sp
With no \fIfile\fP arguments, \fBbascat\fP reads from standard input.
.sp
If standard output is a terminal, output will be piped through a
pager. The default is \fB$PAGER\fP from the environment, or \fBless\fP if
not set. Note that if standard output is not a terminal (e.g. if redirecting to
a file), no pager is used.
.sp
Options can be placed in the \fBBASCAT\fP environment variable, if you don\(aqt
like the standard settings.
.SH OPTIONS
.sp
Prefix long options with \fBno\-\fP to cancel them. Use \fB+\fP to cancel short options.
.INDENT 0.0
.TP
.B \-\-help\fP,\fB \-h
Display built\-in help message and exit.
.TP
.B \-\-version\fP,\fB \-h
Display version number and exit.
.TP
.B \-\-line\-numbers\fP,\fB \-n
Display line numbers for each line. This is enabled by default; use \fB+n\fP or
\fB\-\-no\-line\-numbers\fP to disable.
.TP
.B \-\-highlight\fP,\fB \-l
Attempts to highlight keywords. Whether this works properly or not depends on
the pager in use; \fBmore\fP(1), \fBless\fP(1), and \fBmost\fP(1) work correctly.
\fBlv\fP(1) will work if you have \fB\-c\fP in \fB~/.lv\fP or \fBLV\fP in the environment.
.TP
.BI \-\-pager\fB= pager\fR,\fB \ \-p \ pager
Sets pager to use, if standard output is a terminal. Overrides \fBPAGER\fP environment variable.
If you don\(aqt want a pager, use \fB\-p cat\fP\&.
.UNINDENT
.\" FILES
.
.\" =====
.
.\" ENVIRONMENT
.
.\" ===========
.
.\" EXIT STATUS
.
.\" ===========
.
.\" BUGS
.
.\" ====
.
.\" EXAMPLES
.
.\" ========
.
.SH COPYRIGHT
.sp
See the file /usr/doc/bascat\-1.2pre2/README for license information.
.SH AUTHORS
.sp
\fBbascat\fP was written by Matthew Wilcox and Mark Wooding.
.sp
This man page written for the SlackBuilds.org project
by B. Watson, and is licensed under the WTFPL.
.SH SEE ALSO
.sp
\fBdfsimage\fP(1)
.sp
The bascat homepage: \fI\%https://git.distorted.org.uk/~mdw/\fP
.\" Generated by docutils manpage writer.
.

View File

@ -0,0 +1,96 @@
#!/bin/bash
# Slackware build script for bascat
# Written by B. Watson (urchlay@slackware.uk)
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=bascat
VERSION=${VERSION:-1.2pre2+20121019_39f2290}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
fi
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
else
SLKCFLAGS="-O2"
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
\! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
# These 2 files came from another git repo by the same author.
cat $CWD/mdwopt.c > mdwopt.c
cat $CWD/mdwopt.h > mdwopt.h
# Set correct version number in the binary, use a less ancient pager.
# The --with-pager option is broken, or else I'd use that instead.
sed -i -e "s,AUTO_VERSION,$VERSION," \
-e '/PAGER/s,"more","less",' \
configure.ac
# Enable the -n/--line-numbers option by default. It's *completely stupid*
# to have this disabled by default.
sed -i '/^static int flags/s|;| = f_linenumbers;|' $PRGNAM.c
autoreconf -if
# The termcap stuff is supposed to be autodetected, but it fails. It's
# needed for the -l/--highlight option to work.
CFLAGS="$SLKCFLAGS -DHAVE_LIBTERMCAP" \
LIBS="-ltermcap" \
./configure \
--prefix=/usr \
--build=$ARCH-slackware-linux
make
make install-strip DESTDIR=$PKG
# Man page by SlackBuild author.
mkdir -p $PKG/usr/man/man1
gzip -9c < $CWD/$PRGNAM.1 > $PKG/usr/man/man1/$PRGNAM.1.gz
PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKGDOC
cp -a AUTHORS ChangeLog NEWS README $PKGDOC
cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE

View File

@ -0,0 +1,14 @@
PRGNAM="bascat"
VERSION="1.2pre2+20121019_39f2290"
HOMEPAGE="https://git.distorted.org.uk/~mdw/bascat"
DOWNLOAD="https://slackware.uk/~urchlay/src/bascat-1.2pre2+20121019_39f2290.tar.xz \
https://git.distorted.org.uk/~mdw/cfd/blob_plain/9419af788cb0a97690da8b3ee6c59f2665d36533:/mdwopt.c \
https://git.distorted.org.uk/~mdw/cfd/blob_plain/9419af788cb0a97690da8b3ee6c59f2665d36533:/mdwopt.h"
MD5SUM="a785092ec971679797d87474333906fb \
1beee96e71ff21c0349f09fbdee7c5dc \
42267e18170dbe0767f58964fb428e34"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="B. Watson"
EMAIL="urchlay@slackware.uk"

View File

@ -0,0 +1,98 @@
.. RST source for bascat(1) man page. Convert with:
.. rst2man.py bascat.rst > bascat.1
.. rst2man.py comes from the SBo development/docutils package.
.. |version| replace:: 1.2pre2
.. |date| date::
======
bascat
======
----------------------------------------
detokenizer for BBC Micro BASIC programs
----------------------------------------
:Manual section: 1
:Manual group: SlackBuilds.org
:Date: |date|
:Version: |version|
SYNOPSIS
========
**bascat** [*--help* | *-h*] [*--version* | *-v*] [*--line-numbers* | *-n*] [*--no-line-numbers* | *+n*] [*--highlight* | *-l* ] [*--no-highlight* | *+l* ] [*--pager=PAGER* | *-p PAGER*] [*file* ...]
DESCRIPTION
===========
Types tokenized (SAVEd) BBC BASIC programs in a readable way.
With no *file* arguments, **bascat** reads from standard input.
If standard output is a terminal, output will be piped through a
pager. The default is **$PAGER** from the environment, or **less** if
not set. Note that if standard output is not a terminal (e.g. if redirecting to
a file), no pager is used.
Options can be placed in the **BASCAT** environment variable, if you don't
like the standard settings.
OPTIONS
=======
Prefix long options with **no-** to cancel them. Use **+** to cancel short options.
--help, -h
Display built-in help message and exit.
--version, -h
Display version number and exit.
--line-numbers, -n
Display line numbers for each line. This is enabled by default; use **+n** or
**--no-line-numbers** to disable.
--highlight, -l
Attempts to highlight keywords. Whether this works properly or not depends on
the pager in use; **more**\(1), **less**\(1), and **most**\(1) work correctly.
**lv**\(1) will work if you have **-c** in **~/.lv** or **LV** in the environment.
--pager=pager, -p pager
Sets pager to use, if standard output is a terminal. Overrides **PAGER** environment variable.
If you don't want a pager, use **-p cat**.
.. FILES
.. =====
.. ENVIRONMENT
.. ===========
.. EXIT STATUS
.. ===========
.. BUGS
.. ====
.. EXAMPLES
.. ========
COPYRIGHT
=========
See the file /usr/doc/bascat-|version|/README for license information.
AUTHORS
=======
**bascat** was written by Matthew Wilcox and Mark Wooding.
This man page written for the SlackBuilds.org project
by B. Watson, and is licensed under the WTFPL.
SEE ALSO
========
**dfsimage**\(1)
The bascat homepage: https://git.distorted.org.uk/~mdw/

View File

@ -0,0 +1,47 @@
#!/bin/sh
# Create source tarball from repo
# Note that this script doesn't need to be run as root. It does need to
# be able to write to the current directory it's run from.
# Takes one optional argument, which is the commit or tag to create a
# tarball of. With no arg, HEAD is used.
PRGNAM=bascat
CLONE_URL=git://git.distorted.org.uk/~mdw/bascat
set -e
GITDIR=$( mktemp -dt $PRGNAM.git.XXXXXX )
rm -rf $GITDIR
git clone $CLONE_URL $GITDIR
CWD="$( pwd )"
cd $GITDIR
if [ "$1" != "" ]; then
git reset --hard "$1" || exit 1
fi
GIT_SHA=$( git rev-parse --short HEAD )
DATE=$( git log --date=format:%Y%m%d --format=%cd | head -1 )
VERTAG=$( git tag -l | tail -1 | sed 's,^v,,' )
VERSION=${VERTAG}+${DATE}_${GIT_SHA}
find . -name .git\* -print0 | xargs -0 rm -rf
find . -type f -exec chmod 644 {} \+
find . -type d -exec chmod 755 {} \+
cd "$CWD"
rm -rf $PRGNAM-$VERSION $PRGNAM-$VERSION.tar.xz
mv $GITDIR $PRGNAM-$VERSION
tar cvfJ $PRGNAM-$VERSION.tar.xz $PRGNAM-$VERSION
echo
echo "Created tarball: $PRGNAM-$VERSION.tar.xz"
echo "VERSION=$VERSION"

View File

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
bascat: bascat (detokenizer for BBC BASIC programs)
bascat:
bascat: bascat is a program that will convert BBC BASIC files to text, like
bascat: the LIST command does.
bascat:
bascat:
bascat:
bascat:
bascat:
bascat:
bascat: