|
Karsten Hopp |
cf60b7 |
To: vim_dev@googlegroups.com
|
|
Karsten Hopp |
cf60b7 |
Subject: Patch 7.3.653
|
|
Karsten Hopp |
cf60b7 |
Fcc: outbox
|
|
Karsten Hopp |
cf60b7 |
From: Bram Moolenaar <Bram@moolenaar.net>
|
|
Karsten Hopp |
cf60b7 |
Mime-Version: 1.0
|
|
Karsten Hopp |
cf60b7 |
Content-Type: text/plain; charset=UTF-8
|
|
Karsten Hopp |
cf60b7 |
Content-Transfer-Encoding: 8bit
|
|
Karsten Hopp |
cf60b7 |
------------
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
Patch 7.3.653
|
|
Karsten Hopp |
cf60b7 |
Problem: MingW needs build rule for included XPM files. Object directory
|
|
Karsten Hopp |
cf60b7 |
for 32 and 64 builds is the same, also for MSVC.
|
|
Karsten Hopp |
cf60b7 |
Solution: Add MingW build rule to use included XPM files. Add the CPU or
|
|
Karsten Hopp |
cf60b7 |
architecture to the object directory name. (Sergey Khorev)
|
|
Karsten Hopp |
cf60b7 |
Files: src/Make_ming.mak, src/Make_mvc.mak, src/xpm/README.txt
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
*** ../vim-7.3.652/src/Make_ming.mak 2012-08-02 21:21:43.000000000 +0200
|
|
Karsten Hopp |
cf60b7 |
--- src/Make_ming.mak 2012-09-05 17:43:11.000000000 +0200
|
|
Karsten Hopp |
cf60b7 |
***************
|
|
Karsten Hopp |
cf60b7 |
*** 1,14 ****
|
|
Karsten Hopp |
cf60b7 |
! # Makefile for VIM on Win32, using 'EGCS/mingw32 1.1.2'.
|
|
Karsten Hopp |
cf60b7 |
# Info at http://www.mingw.org
|
|
Karsten Hopp |
cf60b7 |
! # Also requires 'GNU make 3.77', which you can get through a link
|
|
Karsten Hopp |
cf60b7 |
! # to 'JanJaap's page from the above page.
|
|
Karsten Hopp |
cf60b7 |
# Get missing libraries from http://gnuwin32.sf.net.
|
|
Karsten Hopp |
cf60b7 |
#
|
|
Karsten Hopp |
cf60b7 |
# Tested on Win32 NT 4 and Win95.
|
|
Karsten Hopp |
cf60b7 |
#
|
|
Karsten Hopp |
cf60b7 |
! # To make everything, just 'make -f Make_ming.mak'
|
|
Karsten Hopp |
cf60b7 |
! # To make just e.g. gvim.exe, 'make -f Make_ming.mak gvim.exe'
|
|
Karsten Hopp |
cf60b7 |
! # After a run, you can 'make -f Make_ming.mak clean' to clean up
|
|
Karsten Hopp |
cf60b7 |
#
|
|
Karsten Hopp |
cf60b7 |
# NOTE: Sometimes 'GNU Make' will stop after building vimrun.exe -- I think
|
|
Karsten Hopp |
cf60b7 |
# it's just run out of memory or something. Run again, and it will continue
|
|
Karsten Hopp |
cf60b7 |
--- 1,15 ----
|
|
Karsten Hopp |
cf60b7 |
! # Makefile for VIM on Win32
|
|
Karsten Hopp |
cf60b7 |
! #
|
|
Karsten Hopp |
cf60b7 |
# Info at http://www.mingw.org
|
|
Karsten Hopp |
cf60b7 |
! # Alternative x86 and 64-builds: http://mingw-w64.sourceforge.net
|
|
Karsten Hopp |
cf60b7 |
! # Also requires GNU make, which you can download from the same sites.
|
|
Karsten Hopp |
cf60b7 |
# Get missing libraries from http://gnuwin32.sf.net.
|
|
Karsten Hopp |
cf60b7 |
#
|
|
Karsten Hopp |
cf60b7 |
# Tested on Win32 NT 4 and Win95.
|
|
Karsten Hopp |
cf60b7 |
#
|
|
Karsten Hopp |
cf60b7 |
! # To make everything, just 'make -f Make_ming.mak'.
|
|
Karsten Hopp |
cf60b7 |
! # To make just e.g. gvim.exe, 'make -f Make_ming.mak gvim.exe'.
|
|
Karsten Hopp |
cf60b7 |
! # After a run, you can 'make -f Make_ming.mak clean' to clean up.
|
|
Karsten Hopp |
cf60b7 |
#
|
|
Karsten Hopp |
cf60b7 |
# NOTE: Sometimes 'GNU Make' will stop after building vimrun.exe -- I think
|
|
Karsten Hopp |
cf60b7 |
# it's just run out of memory or something. Run again, and it will continue
|
|
Karsten Hopp |
cf60b7 |
***************
|
|
Karsten Hopp |
cf60b7 |
*** 20,27 ****
|
|
Karsten Hopp |
cf60b7 |
# "make mpress" uses the MPRESS compressor for 32- and 64-bit EXEs:
|
|
Karsten Hopp |
cf60b7 |
# http://www.matcode.com/mpress.htm
|
|
Karsten Hopp |
cf60b7 |
#
|
|
Karsten Hopp |
cf60b7 |
! # Maintained by Ron Aaron <ronaharon@yahoo.com>
|
|
Karsten Hopp |
cf60b7 |
! # updated 2003 Jan 20
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
#>>>>> choose options:
|
|
Karsten Hopp |
cf60b7 |
# set to yes for a debug build
|
|
Karsten Hopp |
cf60b7 |
--- 21,28 ----
|
|
Karsten Hopp |
cf60b7 |
# "make mpress" uses the MPRESS compressor for 32- and 64-bit EXEs:
|
|
Karsten Hopp |
cf60b7 |
# http://www.matcode.com/mpress.htm
|
|
Karsten Hopp |
cf60b7 |
#
|
|
Karsten Hopp |
cf60b7 |
! # Maintained by Ron Aaron <ronaharon@yahoo.com> et al.
|
|
Karsten Hopp |
cf60b7 |
! # Updated 2012 Sep 5.
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
#>>>>> choose options:
|
|
Karsten Hopp |
cf60b7 |
# set to yes for a debug build
|
|
Karsten Hopp |
cf60b7 |
***************
|
|
Karsten Hopp |
cf60b7 |
*** 31,62 ****
|
|
Karsten Hopp |
cf60b7 |
# set to yes to make gvim, no for vim
|
|
Karsten Hopp |
cf60b7 |
GUI=yes
|
|
Karsten Hopp |
cf60b7 |
# FEATURES=[TINY | SMALL | NORMAL | BIG | HUGE]
|
|
Karsten Hopp |
cf60b7 |
! # set to TINY to make minimal version (few features)
|
|
Karsten Hopp |
cf60b7 |
FEATURES=BIG
|
|
Karsten Hopp |
cf60b7 |
! # set to one of i386, i486, i586, i686 as the minimum target processor
|
|
Karsten Hopp |
cf60b7 |
ARCH=i386
|
|
Karsten Hopp |
cf60b7 |
! # set to yes to cross-compile from unix; no=native Windows
|
|
Karsten Hopp |
cf60b7 |
CROSS=no
|
|
Karsten Hopp |
cf60b7 |
! # set to path to iconv.h and libiconv.a to enable using 'iconv.dll'
|
|
Karsten Hopp |
cf60b7 |
#ICONV="."
|
|
Karsten Hopp |
cf60b7 |
ICONV=yes
|
|
Karsten Hopp |
cf60b7 |
GETTEXT=yes
|
|
Karsten Hopp |
cf60b7 |
! # set to yes to include multibyte support
|
|
Karsten Hopp |
cf60b7 |
MBYTE=yes
|
|
Karsten Hopp |
cf60b7 |
! # set to yes to include IME support
|
|
Karsten Hopp |
cf60b7 |
IME=yes
|
|
Karsten Hopp |
cf60b7 |
DYNAMIC_IME=yes
|
|
Karsten Hopp |
cf60b7 |
! # set to yes to enable writing a postscript file with :hardcopy
|
|
Karsten Hopp |
cf60b7 |
POSTSCRIPT=no
|
|
Karsten Hopp |
cf60b7 |
! # set to yes to enable OLE support
|
|
Karsten Hopp |
cf60b7 |
OLE=no
|
|
Karsten Hopp |
cf60b7 |
! # Set the default $(WINVER) to make it work with pre-Win2k
|
|
Karsten Hopp |
cf60b7 |
ifndef WINVER
|
|
Karsten Hopp |
cf60b7 |
WINVER = 0x0500
|
|
Karsten Hopp |
cf60b7 |
endif
|
|
Karsten Hopp |
cf60b7 |
! # Set to yes to enable Cscope support
|
|
Karsten Hopp |
cf60b7 |
CSCOPE=yes
|
|
Karsten Hopp |
cf60b7 |
! # Set to yes to enable Netbeans support
|
|
Karsten Hopp |
cf60b7 |
NETBEANS=$(GUI)
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
--- 32,64 ----
|
|
Karsten Hopp |
cf60b7 |
# set to yes to make gvim, no for vim
|
|
Karsten Hopp |
cf60b7 |
GUI=yes
|
|
Karsten Hopp |
cf60b7 |
# FEATURES=[TINY | SMALL | NORMAL | BIG | HUGE]
|
|
Karsten Hopp |
cf60b7 |
! # Set to TINY to make minimal version (few features).
|
|
Karsten Hopp |
cf60b7 |
FEATURES=BIG
|
|
Karsten Hopp |
cf60b7 |
! # Set to one of i386, i486, i586, i686 as the minimum target processor.
|
|
Karsten Hopp |
cf60b7 |
! # For amd64/x64 architecture set ARCH=x86-64 .
|
|
Karsten Hopp |
cf60b7 |
ARCH=i386
|
|
Karsten Hopp |
cf60b7 |
! # Set to yes to cross-compile from unix; no=native Windows.
|
|
Karsten Hopp |
cf60b7 |
CROSS=no
|
|
Karsten Hopp |
cf60b7 |
! # Set to path to iconv.h and libiconv.a to enable using 'iconv.dll'.
|
|
Karsten Hopp |
cf60b7 |
#ICONV="."
|
|
Karsten Hopp |
cf60b7 |
ICONV=yes
|
|
Karsten Hopp |
cf60b7 |
GETTEXT=yes
|
|
Karsten Hopp |
cf60b7 |
! # Set to yes to include multibyte support.
|
|
Karsten Hopp |
cf60b7 |
MBYTE=yes
|
|
Karsten Hopp |
cf60b7 |
! # Set to yes to include IME support.
|
|
Karsten Hopp |
cf60b7 |
IME=yes
|
|
Karsten Hopp |
cf60b7 |
DYNAMIC_IME=yes
|
|
Karsten Hopp |
cf60b7 |
! # Set to yes to enable writing a postscript file with :hardcopy.
|
|
Karsten Hopp |
cf60b7 |
POSTSCRIPT=no
|
|
Karsten Hopp |
cf60b7 |
! # Set to yes to enable OLE support.
|
|
Karsten Hopp |
cf60b7 |
OLE=no
|
|
Karsten Hopp |
cf60b7 |
! # Set the default $(WINVER) to make it work with pre-Win2k.
|
|
Karsten Hopp |
cf60b7 |
ifndef WINVER
|
|
Karsten Hopp |
cf60b7 |
WINVER = 0x0500
|
|
Karsten Hopp |
cf60b7 |
endif
|
|
Karsten Hopp |
cf60b7 |
! # Set to yes to enable Cscope support.
|
|
Karsten Hopp |
cf60b7 |
CSCOPE=yes
|
|
Karsten Hopp |
cf60b7 |
! # Set to yes to enable Netbeans support.
|
|
Karsten Hopp |
cf60b7 |
NETBEANS=$(GUI)
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
***************
|
|
Karsten Hopp |
cf60b7 |
*** 431,441 ****
|
|
Karsten Hopp |
cf60b7 |
endif
|
|
Karsten Hopp |
cf60b7 |
endif
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
- ifdef XPM
|
|
Karsten Hopp |
cf60b7 |
# Only allow XPM for a GUI build.
|
|
Karsten Hopp |
cf60b7 |
ifeq (yes, $(GUI))
|
|
Karsten Hopp |
cf60b7 |
! CFLAGS += -DFEAT_XPM_W32 -I $(XPM)/include
|
|
Karsten Hopp |
cf60b7 |
endif
|
|
Karsten Hopp |
cf60b7 |
endif
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
ifeq ($(DEBUG),yes)
|
|
Karsten Hopp |
cf60b7 |
--- 433,464 ----
|
|
Karsten Hopp |
cf60b7 |
endif
|
|
Karsten Hopp |
cf60b7 |
endif
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
# Only allow XPM for a GUI build.
|
|
Karsten Hopp |
cf60b7 |
ifeq (yes, $(GUI))
|
|
Karsten Hopp |
cf60b7 |
!
|
|
Karsten Hopp |
cf60b7 |
! ifndef XPM
|
|
Karsten Hopp |
cf60b7 |
! ifeq ($(ARCH),i386)
|
|
Karsten Hopp |
cf60b7 |
! XPM = xpm/x86
|
|
Karsten Hopp |
cf60b7 |
! endif
|
|
Karsten Hopp |
cf60b7 |
! ifeq ($(ARCH),i486)
|
|
Karsten Hopp |
cf60b7 |
! XPM = xpm/x86
|
|
Karsten Hopp |
cf60b7 |
! endif
|
|
Karsten Hopp |
cf60b7 |
! ifeq ($(ARCH),i586)
|
|
Karsten Hopp |
cf60b7 |
! XPM = xpm/x86
|
|
Karsten Hopp |
cf60b7 |
! endif
|
|
Karsten Hopp |
cf60b7 |
! ifeq ($(ARCH),i686)
|
|
Karsten Hopp |
cf60b7 |
! XPM = xpm/x86
|
|
Karsten Hopp |
cf60b7 |
endif
|
|
Karsten Hopp |
cf60b7 |
+ ifeq ($(ARCH),x86-64)
|
|
Karsten Hopp |
cf60b7 |
+ XPM = xpm/x64
|
|
Karsten Hopp |
cf60b7 |
+ endif
|
|
Karsten Hopp |
cf60b7 |
+ endif
|
|
Karsten Hopp |
cf60b7 |
+ ifdef XPM
|
|
Karsten Hopp |
cf60b7 |
+ ifneq ($(XPM),no)
|
|
Karsten Hopp |
cf60b7 |
+ CFLAGS += -DFEAT_XPM_W32 -I $(XPM)/include -I $(XPM)/../include
|
|
Karsten Hopp |
cf60b7 |
+ endif
|
|
Karsten Hopp |
cf60b7 |
+ endif
|
|
Karsten Hopp |
cf60b7 |
+
|
|
Karsten Hopp |
cf60b7 |
endif
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
ifeq ($(DEBUG),yes)
|
|
Karsten Hopp |
cf60b7 |
***************
|
|
Karsten Hopp |
cf60b7 |
*** 565,574 ****
|
|
Karsten Hopp |
cf60b7 |
DEFINES += $(DEF_GUI)
|
|
Karsten Hopp |
cf60b7 |
OBJ += $(GUIOBJ)
|
|
Karsten Hopp |
cf60b7 |
LFLAGS += -mwindows
|
|
Karsten Hopp |
cf60b7 |
! OUTDIR = gobj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX)
|
|
Karsten Hopp |
cf60b7 |
else
|
|
Karsten Hopp |
cf60b7 |
TARGET := vim$(DEBUG_SUFFIX).exe
|
|
Karsten Hopp |
cf60b7 |
! OUTDIR = obj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX)
|
|
Karsten Hopp |
cf60b7 |
endif
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
ifdef GETTEXT
|
|
Karsten Hopp |
cf60b7 |
--- 588,597 ----
|
|
Karsten Hopp |
cf60b7 |
DEFINES += $(DEF_GUI)
|
|
Karsten Hopp |
cf60b7 |
OBJ += $(GUIOBJ)
|
|
Karsten Hopp |
cf60b7 |
LFLAGS += -mwindows
|
|
Karsten Hopp |
cf60b7 |
! OUTDIR = gobj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX)$(ARCH)
|
|
Karsten Hopp |
cf60b7 |
else
|
|
Karsten Hopp |
cf60b7 |
TARGET := vim$(DEBUG_SUFFIX).exe
|
|
Karsten Hopp |
cf60b7 |
! OUTDIR = obj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX)$(ARCH)
|
|
Karsten Hopp |
cf60b7 |
endif
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
ifdef GETTEXT
|
|
Karsten Hopp |
cf60b7 |
*** ../vim-7.3.652/src/Make_mvc.mak 2012-08-29 14:18:26.000000000 +0200
|
|
Karsten Hopp |
cf60b7 |
--- src/Make_mvc.mak 2012-09-05 17:33:56.000000000 +0200
|
|
Karsten Hopp |
cf60b7 |
***************
|
|
Karsten Hopp |
cf60b7 |
*** 213,218 ****
|
|
Karsten Hopp |
cf60b7 |
--- 213,219 ----
|
|
Karsten Hopp |
cf60b7 |
# We're on Windows 95
|
|
Karsten Hopp |
cf60b7 |
CPU = i386
|
|
Karsten Hopp |
cf60b7 |
!endif # !PROCESSOR_ARCHITECTURE
|
|
Karsten Hopp |
cf60b7 |
+ OBJDIR = $(OBJDIR)$(CPU)
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
# Build a retail version by default
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
***************
|
|
Karsten Hopp |
cf60b7 |
*** 283,292 ****
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
!ifndef XPM
|
|
Karsten Hopp |
cf60b7 |
# XPM is not set, use the included xpm files, depending on the architecture.
|
|
Karsten Hopp |
cf60b7 |
! !if ("$(CPU)" == "AMD64") || ("$(CPU)" == "IA64")
|
|
Karsten Hopp |
cf60b7 |
XPM = xpm\x64
|
|
Karsten Hopp |
cf60b7 |
! !else
|
|
Karsten Hopp |
cf60b7 |
XPM = xpm\x86
|
|
Karsten Hopp |
cf60b7 |
!endif
|
|
Karsten Hopp |
cf60b7 |
!endif
|
|
Karsten Hopp |
cf60b7 |
!if "$(XPM)" != "no"
|
|
Karsten Hopp |
cf60b7 |
--- 284,295 ----
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
!ifndef XPM
|
|
Karsten Hopp |
cf60b7 |
# XPM is not set, use the included xpm files, depending on the architecture.
|
|
Karsten Hopp |
cf60b7 |
! !if "$(CPU)" == "AMD64"
|
|
Karsten Hopp |
cf60b7 |
XPM = xpm\x64
|
|
Karsten Hopp |
cf60b7 |
! !elseif "$(CPU)" == "i386"
|
|
Karsten Hopp |
cf60b7 |
XPM = xpm\x86
|
|
Karsten Hopp |
cf60b7 |
+ !else
|
|
Karsten Hopp |
cf60b7 |
+ XPM = no
|
|
Karsten Hopp |
cf60b7 |
!endif
|
|
Karsten Hopp |
cf60b7 |
!endif
|
|
Karsten Hopp |
cf60b7 |
!if "$(XPM)" != "no"
|
|
Karsten Hopp |
cf60b7 |
*** ../vim-7.3.652/src/xpm/README.txt 2012-08-29 14:18:26.000000000 +0200
|
|
Karsten Hopp |
cf60b7 |
--- src/xpm/README.txt 2012-09-05 17:35:34.000000000 +0200
|
|
Karsten Hopp |
cf60b7 |
***************
|
|
Karsten Hopp |
cf60b7 |
*** 10,15 ****
|
|
Karsten Hopp |
cf60b7 |
--- 10,18 ----
|
|
Karsten Hopp |
cf60b7 |
MinGW:
|
|
Karsten Hopp |
cf60b7 |
mingw32-make -f Make_ming.mak GUI=yes CSCOPE=yes XPM=e:/hg/xpm/x86
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
+ MinGW 64 for x64:
|
|
Karsten Hopp |
cf60b7 |
+ mingw32-make -f Make_ming.mak GUI=yes ARCH=x86-64 XPM=E:\HG\xpm\x64
|
|
Karsten Hopp |
cf60b7 |
+
|
|
Karsten Hopp |
cf60b7 |
Microsoft Visual C++ on x64 (tested with versions 2008 and 2010):
|
|
Karsten Hopp |
cf60b7 |
nmake -f Make_mvc.mak GUI=yes CSCOPE=yes XPM=E:\HG\xpm\x64
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
*** ../vim-7.3.652/src/version.c 2012-09-05 17:28:08.000000000 +0200
|
|
Karsten Hopp |
cf60b7 |
--- src/version.c 2012-09-05 17:53:15.000000000 +0200
|
|
Karsten Hopp |
cf60b7 |
***************
|
|
Karsten Hopp |
cf60b7 |
*** 721,722 ****
|
|
Karsten Hopp |
cf60b7 |
--- 721,724 ----
|
|
Karsten Hopp |
cf60b7 |
{ /* Add new patch number below this line */
|
|
Karsten Hopp |
cf60b7 |
+ /**/
|
|
Karsten Hopp |
cf60b7 |
+ 653,
|
|
Karsten Hopp |
cf60b7 |
/**/
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
--
|
|
Karsten Hopp |
cf60b7 |
GUARD #2: Wait a minute -- supposing two swallows carried it together?
|
|
Karsten Hopp |
cf60b7 |
GUARD #1: No, they'd have to have it on a line.
|
|
Karsten Hopp |
cf60b7 |
GUARD #2: Well, simple! They'd just use a standard creeper!
|
|
Karsten Hopp |
cf60b7 |
GUARD #1: What, held under the dorsal guiding feathers?
|
|
Karsten Hopp |
cf60b7 |
GUARD #2: Well, why not?
|
|
Karsten Hopp |
cf60b7 |
The Quest for the Holy Grail (Monty Python)
|
|
Karsten Hopp |
cf60b7 |
|
|
Karsten Hopp |
cf60b7 |
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
|
Karsten Hopp |
cf60b7 |
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
|
Karsten Hopp |
cf60b7 |
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
|
Karsten Hopp |
cf60b7 |
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|