1
0
mirror of https://github.com/gryf/wmaker.git synced 2026-02-07 00:35:53 +01:00

This update includes the 0.20.3pre3 code

This commit is contained in:
dan
1998-11-23 11:32:19 +00:00
parent 59eb947539
commit 9007a6575d
88 changed files with 4862 additions and 4026 deletions

View File

@@ -5,7 +5,7 @@ pkgdatadir = $(datadir)/@PACKAGE@
bin_PROGRAMS = wxcopy wxpaste wdwrite getstyle setstyle seticons geticonset wmsetbg
bin_SCRIPTS = wmaker.inst wm-oldmenu2new
bin_SCRIPTS = wmaker.inst wm-oldmenu2new wsetfont
EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new
@@ -52,7 +52,7 @@ wmsetbg_SOURCES = wmsetbg.c
CLEANFILES = wmaker.inst
wmaker.inst: $(srcdir)/wmaker.inst.in $(srcdir)/Makefile
wmaker.inst: $(srcdir)/wmaker.inst.in ./Makefile
-rm -f wmaker.inst
sed -e "s:#pkgdatadir#:$(pkgdatadir):" \
-e "s/#version#/$(VERSION)/" \

View File

@@ -94,7 +94,7 @@ pkgdatadir = $(datadir)/@PACKAGE@
bin_PROGRAMS = wxcopy wxpaste wdwrite getstyle setstyle seticons geticonset wmsetbg
bin_SCRIPTS = wmaker.inst wm-oldmenu2new
bin_SCRIPTS = wmaker.inst wm-oldmenu2new wsetfont
EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new
@@ -397,7 +397,7 @@ clean-generic maintainer-clean-generic clean mostlyclean distclean \
maintainer-clean
wmaker.inst: $(srcdir)/wmaker.inst.in $(srcdir)/Makefile
wmaker.inst: $(srcdir)/wmaker.inst.in ./Makefile
-rm -f wmaker.inst
sed -e "s:#pkgdatadir#:$(pkgdatadir):" \
-e "s/#version#/$(VERSION)/" \

View File

@@ -30,3 +30,5 @@ wmsetbg- set the workspace background into a image and make it persist between
wdwrite- write data into the defaults database (configuration files).
wsetfont- set locale the fonts needed for a specific locale for Window Maker

View File

@@ -1,203 +1,212 @@
#!/bin/sh
#
# wm-oldmenu2new: script to convert from old-style WindowMaker
# menu file to the new PropertyList style of the WMRootMenu.
#
# Note: ex in all the Linux systems I've used is badly
# broken, except for nex. perl can be relied on however.
# Re-written to use perl.
#
# Local dependencies:
# None.
#
# Authors: Luke Kendall, Toby J Sargeant
#
# Copyright waived; no warranty provided.
#
GLW=GNUstep/Library/WindowMaker
GD=GNUstep/Defaults
WLW=$HOME/$GLW
WD=$HOME/$GD
MYNAME=`basename $0`
USAGE="usage: $MYNAME [menu-file-specifier]
E.g. $MYNAME menu.pt
or $MYNAME pt
the default menu if no arguments are given is the English one, 'menu'."
#
# Process arguments - work out which language menu we're converting.
# I am *assuming* that foreign language locales have the .lang suffix
# attached to the WMRootMenu name. I hope that's right!
#
OLD_MENU=menu
NEW_MENU=WMRootMenu
if [ $# = 1 ]
then
if [ -s "$WLW/menu.$1" ]
then
OLD_MENU="menu.$1"
NEW_MENU="WMRootMenu.$1"
elif [ -s "$WLW/$1" ]
then
OLD_MENU="$1"
x=`expr "$1" : "menu\.\(.*\)"`
[ "x$x" != "x" ] && NEW_MENU="WMRootMenu.$x"
else
echo "$MYNAME: $WLW/$1 does not exist" >&2
exit 1
fi
elif [ $# != 0 ]
then
echo "$USAGE" >&2
exit 1
fi
#
# For working out what cc is installed
#
which1()
{
oldpath=$PATH
PATH=/bin:/usr/bin:/usr/local/bin
IFS=":"
for j in $oldpath
do
test -x $j/$1 && test ! -d $j/$1 && echo $j/$1 && return 0
done
IFS=" "
return 1
}
#
# Expand macros if necessary.
# Create a temp copy of the menu file to edit to turn into the new.
#
T=/tmp/wmmenu$$
echo "Converting $GLW/$OLD_MENU --> $GD/$NEW_MENU"
cd $WLW || exit 1
if [ ! -s "$OLD_MENU" ]
then
echo "$MYNAME: $WLW/$OLD_MENU does not exist" >&2
exit 1
fi
#
# Always pre-process, to join lines split with \, and to strip comments.
# Not to mention the main purpose, include & process wmmacros if used.
#
set -e
CC=`which1 cc`
[ "x$CC" = "x" ] && CC=`which1 gcc`
[ "x$CC" = "x" ] && "$MYNAME: no cc, gcc found - can't preprocess" >&2 && exit 1
cp $OLD_MENU $T-c
#
# Given the set -e, the exit 1 shouldn't be needed. But it is, on my NeXT!
#
$CC -E -I. $T-c > $T+c || exit 1
sed '/^#/d;/^[ ]*$/d' $T+c > $T
rm $T-c $T+c
set +e
#
# This is the interesting bit. Edit the old style menu and
# convert into new style property-list menu.
#
perl - $T <<-'EOF' > $T-p
$v=chr(22);
for (<>) {
push @foo,$_;
}
for (@foo) {
s/\s*$//;
s/^(\s*)"*(Workspaces*)"*\s\s*(WORKSPACE_MENU)/\1(\2, \3),/;
s/^(\s*)("[^"]*")\s+MENU/\1($v\n\1\2,/;
push @foo2,split "\n";
}
@foo=();
for (@foo2) {
s/^(\s*)"([^"]*)"\s\s*END/\1),/;
s/^(\s*)"([^"]*)"\s\s*EXEC\s\s*(.*)$/\1($v\n\1"\2",$v\n\1EXEC,$v\n\1"\3"$v\n\1),/;
push @foo,split "\n";
}
@foo2=();
for (@foo) {
s/^(\s*)"([^"]*)"\s\s*OPEN_MENU\s\s*(.*)$/\1($v\n\1"\2",$v\n\1OPEN_MENU,$v\n\1"\3"$v\n\1),/;
push @foo2,split "\n";
}
@foo=();
for (@foo2) {
s/^(\s*)([^ ]*)\s\s*MENU/\1($v\n\1"\2",/;
push @foo,split "\n";
}
@foo2=();
for (@foo) {
s/^(\s*)([^ ]*)\s\s*END/\1),/;
s/^(\s*)([^ ]*)\s\s*EXEC\s\s*(.*)$/\1($v\n\1"\2",$v\n\1EXEC,$v\n\1"\3"$v\n\1),/;
push @foo2,split "\n";
}
@foo=();
for (@foo2) {
s/^(\s*)([^ ]*)\s\s*OPEN_MENU\s\s*(.*)$/\1($v\n\1"\2",$v\n\1OPEN_MENU,$v\n\1"\3"$v\n\1),/;
push @foo,split "\n";
}
@foo2=();
for (@foo) {
s/ WITH / QQQjjQQQ /;
s/^(\s*)"([^"]*)"\s\s*([A-Z_][A-Z_]*)$/\1("\2", \3),/;
s/^(\s*)"([^"]*)"\s+([A-Z_][A-Z_]*)\s\s*(.*)$/\1("\2", \3, \4),/;
s/"(.*".*)"/JJJqqJJJ\1JJJqqJJJ/;
/JJJqqJJJ/ && s/"/\\"/g;
s/JJJqqJJJ/"/g;
s/ QQQjjQQQ / WITH /;
print "$_\n";
}
EOF
mv $T-p $T
#
# Now strip off spurious commas from lines like:
# ),
# )
# since comma is a property separator, not terminator. Sigh.
# Also correct for another problem - Linux ex's require the CTRL-V
# above; a real vi/ex doesn't; so we have to strip out any spurious
# CTRL-V characters if we're using a real ex:
#
sed 's///g' $T | awk '
{
if (last_line != null)
{
if ((last_line ~ /,$/) && ($0 ~ /^[ ]*\)/))
print substr(last_line, 0, length(last_line)-1)
else
print last_line
}
last_line = $0
}
END {
if (last_line != null)
{
if (last_line ~ /,$/)
print substr(last_line, 0, length(last_line)-1)
else
print last_line
}
}
' > $WD/$NEW_MENU.new || exit 1
rm $T
#
# Now install it.
#
cd $WD
if [ -s $NEW_MENU ]
then
echo "Preserving $NEW_MENU as $NEW_MENU.sav in $WD"
mv $NEW_MENU $NEW_MENU.sav
fi
mv $NEW_MENU.new $NEW_MENU && echo "Created new $WD/$NEW_MENU"
#!/bin/sh
#
# wm-oldmenu2new: script to convert from old-style WindowMaker
# menu file to the new PropertyList style of the WMRootMenu.
#
# Note: ex in all the Linux systems I've used is badly
# broken, except for nex. perl can be relied on however.
# Re-written to use perl.
#
# Local dependencies:
# None.
#
# Authors: Luke Kendall, Toby J Sargeant
#
# Copyright waived; no warranty provided.
#
GLW=GNUstep/Library/WindowMaker
GD=GNUstep/Defaults
WLW=$HOME/$GLW
WD=$HOME/$GD
MYNAME=`basename $0`
USAGE="usage: $MYNAME [menu-file-specifier]
E.g. $MYNAME menu.pt
or $MYNAME pt
The default menu if no arguments are given is the English one, 'menu'."
#
# Process arguments - work out which language menu we're converting.
# Note that foreign language locales do *not* have the .lang suffix
# attached to the WMRootMenu name.
#
OLD_MENU=menu
NEW_MENU=WMRootMenu
if [ $# = 1 ]
then
if [ -s "$WLW/menu.$1" ]
then
OLD_MENU="menu.$1"
NEW_MENU="WMRootMenu"
elif [ -s "$WLW/$1" ]
then
OLD_MENU="$1"
x=`expr "$1" : "menu\.\(.*\)"`
[ "x$x" != "x" ] && NEW_MENU="WMRootMenu"
else
echo "$MYNAME: $WLW/$1 does not exist" >&2
exit 1
fi
elif [ $# != 0 ]
then
echo "$USAGE" >&2
exit 1
fi
#
# For working out what cc is installed
#
which1()
{
oldpath=$PATH
PATH=/bin:/usr/bin:/usr/local/bin
IFS=":"
for j in $oldpath
do
test -x $j/$1 && test ! -d $j/$1 && echo $j/$1 && return 0
done
IFS=" "
return 1
}
#
# Expand macros if necessary.
# Create a temp copy of the menu file to edit to turn into the new.
#
T=/tmp/wmmenu$$
echo "Converting $GLW/$OLD_MENU --> $GD/$NEW_MENU"
cd $WLW || exit 1
if [ ! -s "$OLD_MENU" ]
then
echo "$MYNAME: $WLW/$OLD_MENU does not exist" >&2
exit 1
fi
#
# Always pre-process, to join lines split with \, and to strip comments.
# Not to mention the main purpose, include & process wmmacros if used.
#
set -e
CC=`which1 cc`
[ "x$CC" = "x" ] && CC=`which1 gcc`
[ "x$CC" = "x" ] && "$MYNAME: no cc, gcc found - can't preprocess" >&2 && exit 1
#
# Use the "parse as if it's C option" if cc is gcc, because
# newer versions apparently get confused. Apparently gcc -E does
# not simply run the preprocessor (that's sad).
#
strings "$CC" | grep -l gcc > /dev/null && GCC_FLAGS="-x c"
cp $OLD_MENU $T-c
#
# Given the set -e, the exit 1 shouldn't be needed. But it is, on my NeXT!
#
$CC -E -I. $GCC_FLAGS $T-c > $T+c || exit 1
sed '/^#/d;/^[ ]*$/d' $T+c > $T
rm $T-c $T+c
set +e
#
# This is the interesting bit. Edit the old style menu and
# convert into new style property-list menu.
#
perl - $T <<-'EOF' > $T-p
$v=chr(22);
for (<>) {
push @foo,$_;
}
for (@foo) {
s/\s*$//;
s/^(\s*)"*(Workspaces*)"*\s\s*(WORKSPACE_MENU)/\1(\2, \3),/;
s/^(\s*)("[^"]*")\s+MENU/\1($v\n\1\2,/;
push @foo2,split "\n";
}
@foo=();
for (@foo2) {
s/^(\s*)"([^"]*)"\s\s*END/\1),/;
s/^(\s*)"([^"]*)"\s\s*EXEC\s\s*(.*)$/\1($v\n\1"\2",$v\n\1EXEC,$v\n\1"\3"$v\n\1),/;
push @foo,split "\n";
}
@foo2=();
for (@foo) {
s/^(\s*)"([^"]*)"\s\s*OPEN_MENU\s\s*(.*)$/\1($v\n\1"\2",$v\n\1OPEN_MENU,$v\n\1"\3"$v\n\1),/;
push @foo2,split "\n";
}
@foo=();
for (@foo2) {
s/^(\s*)([^ ]*)\s\s*MENU/\1($v\n\1"\2",/;
push @foo,split "\n";
}
@foo2=();
for (@foo) {
s/^(\s*)([^ ]*)\s\s*END/\1),/;
s/^(\s*)([^ ]*)\s\s*EXEC\s\s*(.*)$/\1($v\n\1"\2",$v\n\1EXEC,$v\n\1"\3"$v\n\1),/;
push @foo2,split "\n";
}
@foo=();
for (@foo2) {
s/^(\s*)([^
]*)\s\s*OPEN_MENU\s\s*(.*)$/\1($v\n\1"\2",$v\n\1OPEN_MENU,$v\n\1"\3"$v\n\1),/;
push @foo,split "\n";
}
@foo2=();
for (@foo) {
s/ WITH / QQQjjQQQ /;
s/^(\s*)"([^"]*)"\s\s*([A-Z_][A-Z_]*)$/\1("\2", \3),/;
s/^(\s*)"([^"]*)"\s+([A-Z_][A-Z_]*)\s\s*(.*)$/\1("\2", \3, \4),/;
s/"(.*".*)"/JJJqqJJJ\1JJJqqJJJ/;
/JJJqqJJJ/ && s/"/\\"/g;
s/JJJqqJJJ/"/g;
s/ QQQjjQQQ / WITH /;
print "$_\n";
}
EOF
mv $T-p $T
#
# Now strip off spurious commas from lines like:
# ),
# )
# since comma is a property separator, not terminator. Sigh.
# Also correct for another problem - Linux ex's require the CTRL-V
# above; a real vi/ex doesn't; so we have to strip out any spurious
# CTRL-V characters if we're using a real ex:
#
sed 's///g' $T | awk '
{
if (last_line != null)
{
if ((last_line ~ /,$/) && ($0 ~ /^[ ]*\)/))
print substr(last_line, 0, length(last_line)-1)
else
print last_line
}
last_line = $0
}
END {
if (last_line != null)
{
if (last_line ~ /,$/)
print substr(last_line, 0, length(last_line)-1)
else
print last_line
}
}
' > $WD/$NEW_MENU.new || exit 1
rm $T
#
# Now install it.
#
cd $WD
if [ -s $NEW_MENU ]
then
echo "Preserving $NEW_MENU as $NEW_MENU.sav in $WD"
mv $NEW_MENU $NEW_MENU.sav
fi
mv $NEW_MENU.new $NEW_MENU && echo "Created new $WD/$NEW_MENU"

View File

@@ -12,13 +12,15 @@ VERSION="#version#"
BINDIR="#bindir#"
make_dir() {
make_dir $1
chmod +rw $1
}
make_script() {
ISCRIPT=$1
cat << EOF >> $ISCRIPT
#!/bin/sh
# Window Maker default X session startup script
PATH="\$PATH:$BINDIR"
@@ -79,7 +81,7 @@ if test "x$GNUSTEP_USER_ROOT" = "x"; then
GSDIR=$USERDIR/GNUstep
if [ ! -d $GSDIR ]; then
echo "Creating $GSDIR user directory"
mkdir $GSDIR
make_dir $GSDIR
fi
else
GSDIR=$GNUSTEP_USER_ROOT
@@ -93,11 +95,11 @@ fi
if [ ! -d "$GSDIR/.AppInfo" ]; then
mkdir $GSDIR/.AppInfo
make_dir $GSDIR/.AppInfo
fi
if [ ! -d "$GSDIR/Defaults" ]; then
mkdir $GSDIR/Defaults
make_dir $GSDIR/Defaults
fi
echo "Copying defaults database..."
@@ -126,23 +128,23 @@ done
if [ ! -d "$GSDIR/Library/Icons/" ]; then
echo "Creating icon library directory $GSDIR/Library/Icons"
if [ ! -d $GSDIR/Library ]; then
mkdir $GSDIR/Library
make_dir $GSDIR/Library
fi
mkdir $GSDIR/Library/Icons
make_dir $GSDIR/Library/Icons
fi
if [ ! -d "$GSDIR/Library/WindowMaker/" ]; then
echo "Creating WindowMaker data library directory $GSDIR/Library/WindowMaker"
if [ ! -d $GSDIR/Library ]; then
mkdir $GSDIR/Library
make_dir $GSDIR/Library
fi
mkdir $GSDIR/Library/WindowMaker
make_dir $GSDIR/Library/WindowMaker
fi
if [ ! -d "$GSDIR/Library/WindowMaker/Styles" ]; then
echo "Creating style library $GSDIR/Library/WindowMaker/Styles"
mkdir $GSDIR/Library/WindowMaker/Styles
make_dir $GSDIR/Library/WindowMaker/Styles
else
echo "Styles directory already exists. Skipping..."
fi
@@ -150,7 +152,7 @@ fi
if [ ! -d "$GSDIR/Library/WindowMaker/Themes" ]; then
echo "Creating theme library $GSDIR/Library/WindowMaker/Themes"
mkdir $GSDIR/Library/WindowMaker/Themes
make_dir $GSDIR/Library/WindowMaker/Themes
else
echo "Themes directory already exists. Skipping..."
fi
@@ -158,7 +160,7 @@ fi
if [ ! -d "$GSDIR/Library/WindowMaker/Backgrounds" ]; then
echo "Creating bg image library $GSDIR/Library/WindowMaker/Backgrounds"
mkdir $GSDIR/Library/WindowMaker/Backgrounds
make_dir $GSDIR/Library/WindowMaker/Backgrounds
else
echo "Default Backgrounds directory already exists. Skipping..."
fi
@@ -166,7 +168,7 @@ fi
if [ ! -d "$GSDIR/Library/WindowMaker/IconSets" ]; then
echo "Creating icon setup library $GSDIR/Library/WindowMaker/IconSets"
mkdir $GSDIR/Library/WindowMaker/IconSets
make_dir $GSDIR/Library/WindowMaker/IconSets
else
echo "Default IconSets directory already exists. Skipping..."
fi
@@ -174,7 +176,7 @@ fi
if [ ! -d "$GSDIR/Library/WindowMaker/Pixmaps" ]; then
echo "Creating pixmap library $GSDIR/Library/WindowMaker/Pixmaps"
mkdir $GSDIR/Library/WindowMaker/Pixmaps
make_dir $GSDIR/Library/WindowMaker/Pixmaps
else
echo "Default Pixmaps directory already exists. Skipping..."
fi
@@ -182,7 +184,7 @@ fi
if [ ! -d "$GSDIR/Library/WindowMaker/Sounds" ]; then
echo "Creating sound library $GSDIR/Library/WindowMaker/Sounds"
mkdir $GSDIR/Library/WindowMaker/Sounds
make_dir $GSDIR/Library/WindowMaker/Sounds
else
echo "Default Sounds directory already exists. Skipping..."
fi
@@ -190,7 +192,7 @@ fi
if [ ! -d "$GSDIR/Library/WindowMaker/SoundSets" ]; then
echo "Creating sound set library $GSDIR/Library/WindowMaker/SoundSets"
mkdir $GSDIR/Library/WindowMaker/SoundSets
make_dir $GSDIR/Library/WindowMaker/SoundSets
else
echo "Default SoundSets directory already exists. Skipping..."
fi

View File

@@ -224,7 +224,7 @@ main(int argc, char **argv)
if (buf == NULL) {
status = 1;
} else {
if (write(STDIN_FILENO, buf, l) == -1)
if (write(STDOUT_FILENO, buf, l) == -1)
status = errno;
else
status = 0;