Download Latest Version elvis-2.2_0.tar.gz (1.4 MB)
Email in envelope

Get an email when there's a new version of elvis vi

Home
Name Modified Size InfoDownloads / Week
README.txt 2017-03-12 3.4 kB
elvis-2.2_0.tar.gz 2017-03-12 1.4 MB
Totals: 2 Items   1.4 MB 0
#!/bin/sh
 
# USE INSTRUCTIONS:
#   $ tar -xzf elvis-2.2_0.tar.gz
#   $ sh /pathto/REAME.txt
#   elvis may crash on some systems without this setting in sh environment
#   $ export TERMCAP=/etc/termcap
#   $ export ELVISGUI=termcap
#   other (old) programs (not elvis) crash without something like this:
#   $ export TERM=linux

# What is vi?  Elvis is a vi(1) (visual ed) vi text editor variant (vim is another variant). "vi" is short for "visual ed(1)" (the 1 means see manpage for ed in section 1 of unix manual pages). vi as a visual editor means typical keyboard editing with ed(1) accessible to do complex editing jobs.  (Elvis is by Steve Kirkendall in the 200's, a variant of vi(1) by Bill Joy that appeared in BSD, 1979)

# Elvis builds using autoconfig style build, however because it's a little
# older (also less hacked), the following would be done to build it on newer
# systems that "disobey older rules".

# the below is actually an excerpt from script 'build' found in

# https://sourceforge.net/projects/x-lfs-2010/files/build-0.1.11.tar.gz/download

# (however the below has addition for Apple Sierra OS that will be in 1.12)

dir="elvis-2.2_0"

case $dir in

elvis-2.2_0)

  opt="$opt --prefix=/usr/local "

  # this means if you don't have X11 libs installed, build without X11 support
  # add these opts when running configure
  ! [ -f xfree86.done ] && ! [ -f xorg-server.done ] && \
  opt="$opt --without-x --without-xft --without-gnome "

  # if you have X11 with "freetype 2" you need something like this for (linux?)
  # unsure i want x11 elvis or if i do to block ft, but easier to fix it
  #   unsure why last time around it didnt ask --with-x is newer likely

# this works only inside the "build script" mentioned above
#    however you need to know $y for your system, linux place assumed below
#    but doesn't matter if your not building X11 anyhow
#  y="`which_p_base "^freetype-2.4.4"`"
#  [ -d "$y" ]
#  # ignored
#  CFLAGS="$CFLAGS -I${y}/include/freetype2/"
#  CPPFLAGS="$CPPFLAGS -I${y}/include/freetype2/"
#  export CFLAGS CPPFLAGS

CFLAGS="$CFLAGS -I/usr/include/freetype2/"
CPPFLAGS="$CPPFLAGS -I/usr/include/freetype2/"
export CFLAGS CPPFLAGS

  cd "$dir/"

# sierra's headers don't match elvis's C definition, the new compiler rejects
[ c"`uname -s`" = c"Darwin" ] && [ ! -f need.c.old ] && {
cp need.c need.c.old
cat << EOF | ed || true
r need.c
/NEED_MEMMOVE/
-1
.a
#undef NEED_MEMMOVE
.
wq need.c
EOF
}

# isn't replaceable by stdio.h getline.  damn elvis wake up (old code)!
[ ! -f ref.c.old ] && {
cp ref.c ref.c.old
cat << EOF | ed || true
r ref.c
%s/getline/getline2/g
wq ref.c
EOF
}

# this lets any CFLAGS you set get into the Makefile as you'd hope
[ ! -f Makefile.in.old ] && {
cp Makefile.in Makefile.in.old
mv Makefile.in Makefile.in.tmp
cat Makefile.in.tmp | awk -v cf="$CFLAGS" '
/^CFLAGS=/{ print $0 " " cf ; next}{print} ' > Makefile.in
rm Makefile.in.tmp
}

  cd guix11/

# a naming conflict i think elvis x11 is un-aware (newer)
#   freetype now has FT_FILE -> FILE but elvis im pretty sure is unaware of it
for x in xdialog.h xdialog.c ; do
[ ! -f $x.old ] && {
cp $x $x.old
cat << EOF | ed || true
r $x
%s/FT_FILE/FT_FILE_2/g
wq $x
EOF
}
done

  cd "$pwd/"

  ;;

esac

# set your CFLAGS, LDFLAGS, only if needed
# this should work for linux or Darwin / Sierra, given the above

sh ./configure $opt
make
make install

exit

Source: README.txt, updated 2017-03-12