Installing Elvis on Cygwin

madewithVIOn Cygwin, vim is the default vi version, and in many cygwin distros, such as 32-bit, a watered down version that uses a static .vimrc and does not appear to accept .vimrc as a directory. But that wasn’t what I wanted anyway.

As I stated earlier, vim was more trouble than it was worth to me, although it is a decent editor, and you can get work done in it, and I have. I still use Elvis, however, and there was no Elvis in the Cygwin-64 distro I was using on my PC, and decided to compile one for myself. It took hours of head scratching, but I finally compiled myself one under Cygwin from source, from the 2.2.0 “official” source located here. In retrospect, I could have chosen the “unofficial” 2.2.1 source, written only a few years ago.

It was not a clean compile, having seen a flurry of pointer-to-integer casting warnings at one point. But the compile did go to the end. The main stumbling block was the lack of a #define SA_INTERRUPT for the Cygwin distro. Cygwin does not mention it under signal.h, nor does it mention it under sys/signal.h. I just can’t put a #define statement for an interrupt willy-nilly. So, I went online again to see what value others had set it to.

I look to the Linux source comments (yeah, I know, not Cygwin), and while it is given a hex value, the comment says that this is a long-obsolete constant that is only placed in the source for historical reasons. SA_RESTART was suggested instead. So, I used the suggested hex value to SA_RESTART and set SA_INTERRUPT to the same value in sys/signal.h as follows:

#define SA_RESTART 0x10000000
#define SA_INTERRUPT SA_RESTART

I placed these two lines near the top of the file. This caused it to successfully compile under Cygwin.

One thought on “Installing Elvis on Cygwin

  1. Firefox 21.0 Firefox 21.0 Mac OS X  10.7 Mac OS X 10.7
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:21.0) Gecko/20100101 Firefox/21.0

    Yes! Finally something about Elvis.

Comments are closed.