Differences between revisions 1 and 5 (spanning 4 versions)
Revision 1 as of 2008-04-17 21:10:19
Size: 1611
Editor: ChrisGorecki
Revision 5 as of 2008-11-14 13:42:11
Size: 1496
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
 1. download the MSVC project from
 1. download the MSVC project [[attachment:readline-32.zip]]
Line 37: Line 36:
All changes have a comment with the word CHANGED appearing before tme, but I will post the diff files soon. [[attachment:readline-5.2-msvc-2008.patch]]

To build readline v.5.2

  1. download the MSVC project readline-32.zip

  2. unzip the project
  3. open the folder readline-32
  4. double-click readline-32.sln
  5. press f5
  6. the project will warn you that it could not open readline.dll
  7. readline.dll should be located at .../readline-32/Debug

The sources that I worked from are available at http://gnuwin32.sourceforge.net/packages/readline.htm named readline-src.zip

and the original sources at http://ftp.gnu.org/gnu/readline/ named readline-5.2.tar.gz

Issues: This code does not work:

  • #if defined (HAVE_STRING_H)

    # include <string.h> #else

  • # include <strings.h>

  • #endif

this code does:

  • #if defined (HAVE_STRING_H)

    # include <string.h> #endif

  • #if defined (HAVE_STRINGS_H)
  • # include <strings.h> #endif

I changed extern KEYMAP_ENTRY_ARRAY vi_insertion_keymap, vi_movement_keymap;

to static KEYMAP_ENTRY_ARRAY vi_insertion_keymap, vi_movement_keymap;

which may break vi mode...

I had to comment out some redecelerations in readline.h.

The biggest fix was that MSVC does not allow for code such as int a = 3; int b = a; in the global name space, in C (although it does in C++), which is (I believe) not C99 compliant. So, a large array in bind.c named boolean_varlist[] had to be initialized in a function and the function called in each place where the variable was used.


windows/msvc32-2008-readline (last edited 2008-11-14 13:42:11 by localhost)