summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2004-07-18 21:34:53 +0000
committerBram Moolenaar <Bram@vim.org>2004-07-18 21:34:53 +0000
commitab79bcbac383aa26fec23f8610995122a9ff4be6 (patch)
tree87d08c555b6a806c4cfffde6b42886e5b4094f83 /src
parent21cf823a906f1f66391a145a976fdae8e98e0394 (diff)
updated for version 7.0010v7.0010
Diffstat (limited to 'src')
-rw-r--r--src/Makefile30
-rwxr-xr-xsrc/auto/configure8
-rw-r--r--src/config.mk.in2
-rw-r--r--src/configure.in7
-rw-r--r--src/eval.c79
-rw-r--r--src/fileio.c78
-rw-r--r--src/mbyte.c111
-rw-r--r--src/mysign2
-rw-r--r--src/option.c8
-rw-r--r--src/os_mac.h38
-rw-r--r--src/os_mac.pbproj/project.pbxproj1537
-rw-r--r--src/os_mac_conv.c230
-rw-r--r--src/os_macosx.c34
-rw-r--r--src/testdir/test11.in5
-rw-r--r--src/vim.h31
15 files changed, 1973 insertions, 227 deletions
diff --git a/src/Makefile b/src/Makefile
index bfdd769396..e080477d6e 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1196,7 +1196,9 @@ CARBONGUI_LIBS2 =
CARBONGUI_INSTALL = install_macosx
CARBONGUI_TARGETS =
CARBONGUI_MAN_TARGETS =
-CARBONGUI_TESTTARGET =
+CARBONGUI_TESTTARGET = gui
+CARBONGUI_BUNDLE = $(VIMNAME).app
+CARBONGUI_TESTARG = VIMPROG=../$(CARBONGUI_BUNDLE)/Contents/MacOS/$(VIMTARGET)
# All GUI files
ALL_GUI_SRC = gui.c gui_gtk.c gui_gtk_f.c gui_motif.c gui_athena.c gui_gtk_x11.c gui_x11.c gui_at_sb.c gui_at_fs.c pty.c gui_kde.cc gui_kde_widget.cc gui_kde_x11.cc gui_kde_widget_moc.cc
@@ -1465,7 +1467,7 @@ PRO_MANUAL = os_amiga.pro os_msdos.pro os_win16.pro os_win32.pro \
os_mswin.pro os_beos.pro os_vms.pro os_riscos.pro $(PERL_PRO)
# Default target is making the executable and tools
-all: $(VIMTARGET) $(TOOLS) languages
+all: $(VIMTARGET) $(TOOLS) languages $(GUI_BUNDLE)
tools: $(TOOLS)
@@ -1641,7 +1643,7 @@ types.vim: $(TAGS_SRC) $(TAGS_INCL)
#
test check:
$(MAKE) -f Makefile $(VIMTARGET)
- cd testdir; $(MAKE) -f Makefile $(GUI_TESTTARGET) VIMPROG=../$(VIMTARGET)
+ cd testdir; $(MAKE) -f Makefile $(GUI_TESTTARGET) VIMPROG=../$(VIMTARGET) $(GUI_TESTARG)
testclean:
cd testdir; $(MAKE) -f Makefile clean
@@ -2035,6 +2037,7 @@ clean celan: testclean
-rm -f *.o objects/* core $(VIMTARGET).core $(VIMTARGET) xxd/*.o
-rm -f $(TOOLS) auto/osdef.h auto/pathdef.c auto/if_perl.c
-rm -f conftest* *~ auto/link.sed
+ -rm -rf $(GUI_BUNDLE)
-rm -f gui_kde_widget_moc.cc kvim_iface_skel.cc *.kidl
if test -d $(PODIR); then \
cd $(PODIR); $(MAKE) prefix=$(DESTDIR)$(prefix) clean; \
@@ -2327,6 +2330,9 @@ objects/os_qnx.o: os_qnx.c
objects/os_macosx.o: os_macosx.c
$(CCC) -o $@ os_macosx.c
+objects/os_mac_conv.o: os_mac_conv.c
+ $(CCC) -o $@ os_mac_conv.c
+
objects/os_unix.o: os_unix.c
$(CCC) -o $@ os_unix.c
@@ -2410,13 +2416,11 @@ Makefile:
###############################################################################
### MacOS X installation
###
-### This creates a runnable Vim.app in the src directory
+### This installs a runnable Vim.app in $(prefix)
REZ = /Developer/Tools/Rez
-APPDIR = $(VIMNAME).app
+APPDIR = $(GUI_BUNDLE)
RESDIR = $(APPDIR)/Contents/Resources
-# FIXME: i'm sure someone else can do something clever with grep
-# sed and version.h here
VERSION = $(VIMMAJOR).$(VIMMINOR)
### Common flags
@@ -2434,7 +2438,10 @@ ICONS = $(RESDIR)/$(ICON_APP)
#ICON_DOCTXT = $(shell if [ -e doc-txt.icns ] ; then echo doc-txt.icns ; else echo ; fi)
#ICONS = $(addprefix $(RESDIR)/, $(ICON_APP) $(ICON_DOC) $(ICON_DOCTXT))
-install_macosx: bundle-dir bundle-executable bundle-info bundle-resource \
+install_macosx: $(APPDIR)
+ $(INSTALL_DATA_R) $(APPDIR) $(DESTDIR)$(prefix)
+
+$(APPDIR): bundle-dir bundle-executable bundle-info bundle-resource \
bundle-language
bundle-dir: $(APPDIR)/Contents $(VIMTARGET)
@@ -2473,11 +2480,8 @@ bundle-rsrc: os_mac.rsr.hqx
bundle-language: bundle-dir
$(APPDIR)/Contents:
- mkdir $(APPDIR)
- mkdir $(APPDIR)/Contents
- mkdir $(APPDIR)/Contents/MacOS
- mkdir $(RESDIR)
- mkdir $(RESDIR)/English.lproj
+ -$(SHELL) ./mkinstalldirs $(APPDIR)/Contents/MacOS
+ -$(SHELL) ./mkinstalldirs $(RESDIR)/English.lproj
$(RESDIR)/%.icns: %.icns
cp $< $@
diff --git a/src/auto/configure b/src/auto/configure
index 220a981be6..4b03c678b7 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -1239,11 +1239,11 @@ echo "configure:1230: checking if Darwin files are there" >&5
if test "$enable_darwin" = "yes"; then
MACOSX=yes
- OS_EXTRA_SCR="os_macosx.c";
- OS_EXTRA_OBJ="objects/os_macosx.o"
+ OS_EXTRA_SCR="os_macosx.c os_mac_conv.c";
+ OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -I/Developer/Headers/FlatCarbon -no-cpp-precomp"
- ac_safe=`echo "Carbon/Carbon.h" | sed 'y%./+-%__p_%'`
+ ac_safe=`echo "Carbon/Carbon.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for Carbon/Carbon.h""... $ac_c" 1>&6
echo "configure:1249: checking for Carbon/Carbon.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
@@ -1277,7 +1277,7 @@ else
fi
if test "x$CARBON" = "xyes"; then
- if test -z "$with_x"; then
+ if test -z "$with_x" -a "X$enable_gui" != Xmotif -a "X$enable_gui" != Xathena -a "X$enable_gui" != Xgtk -a "X$enable_gui" != Xgtk2; then
with_x=no
DEFAULT_VIMNAME=Vim
fi
diff --git a/src/config.mk.in b/src/config.mk.in
index ed5f686ff4..d5103ecd4c 100644
--- a/src/config.mk.in
+++ b/src/config.mk.in
@@ -126,6 +126,8 @@ GUI_INSTALL = $(@GUITYPE@_INSTALL)
GUI_TARGETS = $(@GUITYPE@_TARGETS)
GUI_MAN_TARGETS = $(@GUITYPE@_MAN_TARGETS)
GUI_TESTTARGET = $(@GUITYPE@_TESTTARGET)
+GUI_TESTARG = $(@GUITYPE@_TESTARG)
+GUI_BUNDLE = $(@GUITYPE@_BUNDLE)
NARROW_PROTO = @NARROW_PROTO@
GUI_X_LIBS = @GUI_X_LIBS@
MOTIF_LIBNAME = @MOTIF_LIBNAME@
diff --git a/src/configure.in b/src/configure.in
index a71c20ddf4..4b119f32ec 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -103,15 +103,16 @@ if test "`(uname) 2>/dev/null`" = Darwin; then
if test "$enable_darwin" = "yes"; then
MACOSX=yes
- OS_EXTRA_SCR="os_macosx.c";
- OS_EXTRA_OBJ="objects/os_macosx.o"
+ OS_EXTRA_SCR="os_macosx.c os_mac_conv.c";
+ OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -I/Developer/Headers/FlatCarbon -no-cpp-precomp"
dnl If Carbon is found, assume we don't want X11
dnl unless it was specifically asked for (--with-x)
+ dnl or Motif, Athena or GTK GUI is used.
AC_CHECK_HEADER(Carbon/Carbon.h, CARBON=yes)
if test "x$CARBON" = "xyes"; then
- if test -z "$with_x"; then
+ if test -z "$with_x" -a "X$enable_gui" != Xmotif -a "X$enable_gui" != Xathena -a "X$enable_gui" != Xgtk -a "X$enable_gui" != Xgtk2; then
with_x=no
DEFAULT_VIMNAME=Vim
fi
diff --git a/src/eval.c b/src/eval.c
index fa3bad6ab0..21c10fd67c 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -263,6 +263,7 @@ static void f_bufname __ARGS((VAR argvars, VAR retvar));
static void f_bufnr __ARGS((VAR argvars, VAR retvar));
static void f_bufwinnr __ARGS((VAR argvars, VAR retvar));
static void f_byte2line __ARGS((VAR argvars, VAR retvar));
+static void f_byteidx __ARGS((VAR argvars, VAR retvar));
static void f_char2nr __ARGS((VAR argvars, VAR retvar));
static void f_cindent __ARGS((VAR argvars, VAR retvar));
static void f_col __ARGS((VAR argvars, VAR retvar));
@@ -349,6 +350,7 @@ static void f_remote_foreground __ARGS((VAR argvars, VAR retvar));
static void f_remote_peek __ARGS((VAR argvars, VAR retvar));
static void f_remote_read __ARGS((VAR argvars, VAR retvar));
static void f_remote_send __ARGS((VAR argvars, VAR retvar));
+static void f_repeat __ARGS((VAR argvars, VAR retvar));
static void f_server2client __ARGS((VAR argvars, VAR retvar));
static void f_serverlist __ARGS((VAR argvars, VAR retvar));
static void f_setline __ARGS((VAR argvars, VAR retvar));
@@ -2817,6 +2819,7 @@ static struct fst
{"bufnr", 1, 1, f_bufnr},
{"bufwinnr", 1, 1, f_bufwinnr},
{"byte2line", 1, 1, f_byte2line},
+ {"byteidx", 2, 2, f_byteidx},
{"char2nr", 1, 1, f_char2nr},
{"cindent", 1, 1, f_cindent},
{"col", 1, 1, f_col},
@@ -2896,6 +2899,7 @@ static struct fst
{"remote_read", 1, 1, f_remote_read},
{"remote_send", 2, 3, f_remote_send},
{"rename", 2, 2, f_rename},
+ {"repeat", 2, 2, f_repeat},
{"resolve", 1, 1, f_resolve},
{"search", 1, 2, f_search},
{"searchpair", 3, 5, f_searchpair},
@@ -3588,6 +3592,42 @@ f_byte2line(argvars, retvar)
}
/*
+ * "byteidx()" function
+ */
+/*ARGSUSED*/
+ static void
+f_byteidx(argvars, retvar)
+ VAR argvars;
+ VAR retvar;
+{
+#ifdef FEAT_MBYTE
+ char_u *t;
+#endif
+ char_u *str;
+ long idx;
+
+ str = get_var_string(&argvars[0]);
+ idx = get_var_number(&argvars[1]);
+ retvar->var_val.var_number = -1;
+ if (idx < 0)
+ return;
+
+#ifdef FEAT_MBYTE
+ t = str;
+ for ( ; idx > 0; idx--)
+ {
+ if (*t == NUL) /* EOL reached */
+ return;
+ t += mb_ptr2len_check(t);
+ }
+ retvar->var_val.var_number = t - str;
+#else
+ if (idx <= STRLEN(str))
+ retvar->var_val.var_number = idx;
+#endif
+}
+
+/*
* "char2nr(string)" function
*/
static void
@@ -6920,6 +6960,45 @@ f_remote_foreground(argvars, retvar)
#endif
}
+/*
+ * "repeat()" function
+ */
+/*ARGSUSED*/
+ static void
+f_repeat(argvars, retvar)
+ VAR argvars;
+ VAR retvar;
+{
+ char_u *p;
+ int n;
+ int slen;
+ int len;
+ char_u *r;
+ int i;
+
+ p = get_var_string(&argvars[0]);
+ n = get_var_number(&argvars[1]);
+
+ retvar->var_type = VAR_STRING;
+ retvar->var_val.var_string = NULL;
+
+ slen = (int)STRLEN(p);
+ len = slen * n;
+
+ if (len <= 0)
+ return;
+
+ r = alloc(len + 1);
+ if (r != NULL)
+ {
+ for (i = 0; i < n; i++)
+ mch_memmove(r + i * slen, p, (size_t)slen);
+ r[len] = NUL;
+ }
+
+ retvar->var_val.var_string = r;
+}
+
#ifdef HAVE_STRFTIME
/*
* "strftime({format}[, {time}])" function
diff --git a/src/fileio.c b/src/fileio.c
index 02e5ad1e12..d1c11a0461 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1498,40 +1498,14 @@ retry:
# ifdef MACOS_X
if (fio_flags & FIO_MACROMAN)
{
+ extern int macroman2enc __ARGS((char_u *ptr, long *sizep, long
+ real_size));
/*
* Conversion from Apple MacRoman char encoding to UTF-8 or
- * latin1, using standard Carbon framework.
+ * latin1. This is in os_mac_conv.c.
*/
- CFStringRef cfstr;
- CFRange r;
- CFIndex len = size;
-
- /* MacRoman is an 8-bit encoding, no need to move bytes to
- * conv_rest[]. */
- cfstr = CFStringCreateWithBytes(NULL, ptr, len,
- kCFStringEncodingMacRoman, 0);
- /*
- * If there is a conversion error, try using another
- * conversion.
- */
- if (cfstr == NULL)
+ if (macroman2enc(ptr, &size, real_size) == FAIL)
goto rewind_retry;
-
- r.location = 0;
- r.length = CFStringGetLength(cfstr);
- if (r.length != CFStringGetBytes(cfstr, r,
- (enc_utf8) ? kCFStringEncodingUTF8
- : kCFStringEncodingISOLatin1,
- 0, /* no lossy conversion */
- 0, /* not external representation */
- ptr + size, real_size - size, &len))
- {
- CFRelease(cfstr);
- goto rewind_retry;
- }
- CFRelease(cfstr);
- mch_memmove(ptr, ptr + size, len);
- size = len;
}
else
# endif
@@ -2744,7 +2718,7 @@ buf_write(buf, fname, sfname, start, end, eap, append, forceit,
if (!(did_cmd = apply_autocmds_exarg(EVENT_FILEAPPENDCMD,
sfname, sfname, FALSE, curbuf, eap)))
{
- if (bt_nofile(curbuf))
+ if (overwriting && bt_nofile(curbuf))
nofile_err = TRUE;
else
apply_autocmds_exarg(EVENT_FILEAPPENDPRE,
@@ -4789,11 +4763,11 @@ buf_write_bytes(ip)
/*
* Convert UTF-8 or latin1 to Apple MacRoman.
*/
- CFStringRef cfstr;
- CFRange r;
- CFIndex l;
char_u *from;
size_t fromlen;
+ extern int enc2macroman __ARGS((char_u *from, size_t fromlen,
+ char_u *to, int *tolenp, int maxtolen, char_u *rest,
+ int *restlenp));
if (ip->bw_restlen > 0)
{
@@ -4811,41 +4785,14 @@ buf_write_bytes(ip)
fromlen = len;
}
- ip->bw_restlen = 0;
- cfstr = CFStringCreateWithBytes(NULL, from, fromlen,
- (enc_utf8) ?
- kCFStringEncodingUTF8 : kCFStringEncodingISOLatin1,
- 0);
- while (cfstr == NULL && ip->bw_restlen < 3 && fromlen > 1)
+ if (enc2macroman(from, fromlen,
+ ip->bw_conv_buf, &len, ip->bw_conv_buflen,
+ ip->bw_rest, &ip->bw_restlen) == FAIL)
{
- ip->bw_rest[ip->bw_restlen++] = from[--fromlen];
- cfstr = CFStringCreateWithBytes(NULL, from, fromlen,
- (enc_utf8) ?
- kCFStringEncodingUTF8 : kCFStringEncodingISOLatin1,
- 0);
- }
- if (cfstr == NULL)
- {
- ip->bw_conv_error = TRUE;
- return FAIL;
- }
-
- r.location = 0;
- r.length = CFStringGetLength(cfstr);
- if (r.length != CFStringGetBytes(cfstr, r,
- kCFStringEncodingMacRoman,
- 0, /* no lossy conversion */
- 0, /* not external representation (since vim
- * handles this internally */
- ip->bw_conv_buf, ip->bw_conv_buflen, &l))
- {
- CFRelease(cfstr);
ip->bw_conv_error = TRUE;
return FAIL;
}
- CFRelease(cfstr);
buf = ip->bw_conv_buf;
- len = l;
}
# endif
@@ -6696,7 +6643,8 @@ static AutoPat *first_autopat[NUM_EVENTS] =
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
};
/*
diff --git a/src/mbyte.c b/src/mbyte.c
index db7c6524dd..407f6674b6 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -5553,99 +5553,8 @@ convert_input_safe(ptr, len, maxlen, restp, restlenp)
}
#if defined(MACOS_X)
-static char_u *mac_string_convert __ARGS((char_u *ptr, int len, int *lenp, int fail_on_error, CFStringEncoding from, CFStringEncoding to, int *unconvlenp));
-
-/*
- * A Mac version of string_convert_ext() for special cases.
- */
- static char_u *
-mac_string_convert(ptr, len, lenp, fail_on_error, from, to, unconvlenp)
- char_u *ptr;
- int len;
- int *lenp;
- int fail_on_error;
- CFStringEncoding from;
- CFStringEncoding to;
- int *unconvlenp;
-{
- char_u *retval, *d;
- CFStringRef cfstr;
- int buflen, in, out, l, i;
-
- if (unconvlenp != NULL)
- *unconvlenp = 0;
- cfstr = CFStringCreateWithBytes(NULL, ptr, len, from, 0);
- /* When conversion failed, try excluding bytes from the end, helps when
- * there is an incomplete byte sequence. Only do up to 6 bytes to avoid
- * looping a long time when there really is something unconvertable. */
- while (cfstr == NULL && unconvlenp != NULL && len > 1 && *unconvlenp < 6)
- {
- --len;
- ++*unconvlenp;
- cfstr = CFStringCreateWithBytes(NULL, ptr, len, from, 0);
- }
- if (cfstr == NULL)
- return NULL;
- if (to == kCFStringEncodingUTF8)
- buflen = len * 6 + 1;
- else
- buflen = len + 1;
- retval = alloc(buflen);
- if (retval == NULL)
- {
- CFRelease(cfstr);
- return NULL;
- }
- if (!CFStringGetCString(cfstr, retval, buflen, to))
- {
- CFRelease(cfstr);
- if (fail_on_error)
- {
- vim_free(retval);
- return NULL;
- }
-
- /* conversion failed for the whole string, but maybe it will work
- * for each character */
- for (d = retval, in = 0, out = 0; in < len && out < buflen - 1;)
- {
- if (from == kCFStringEncodingUTF8)
- l = utf_ptr2len_check(ptr + in);
- else
- l = 1;
- cfstr = CFStringCreateWithBytes(NULL, ptr + in, l, from, 0);
- if (cfstr == NULL)
- {
- *d++ = '?';
- out++;
- }
- else
- {
- if (!CFStringGetCString(cfstr, d, buflen - out, to))
- {
- *d++ = '?';
- out++;
- }
- else
- {
- i = strlen(d);
- d += i;
- out += i;
- }
- CFRelease(cfstr);
- }
- in += l;
- }
- *d = NUL;
- if (lenp != NULL)
- *lenp = out;
- return retval;
- }
- CFRelease(cfstr);
- if (lenp != NULL)
- *lenp = strlen(retval);
- return retval;
-}
+/* This is in os_mac_conv.c. */
+extern char_u *mac_string_convert __ARGS((char_u *ptr, int len, int *lenp, int fail_on_error, int from, int to, int *unconvlenp));
#endif
/*
@@ -5762,30 +5671,22 @@ string_convert_ext(vcp, ptr, lenp, unconvlenp)
# ifdef MACOS_X
case CONV_MAC_LATIN1:
retval = mac_string_convert(ptr, len, lenp, vcp->vc_fail,
- kCFStringEncodingMacRoman,
- kCFStringEncodingISOLatin1,
- unconvlenp);
+ 'm', 'l', unconvlenp);
break;
case CONV_LATIN1_MAC:
retval = mac_string_convert(ptr, len, lenp, vcp->vc_fail,
- kCFStringEncodingISOLatin1,
- kCFStringEncodingMacRoman,
- unconvlenp);
+ 'l', 'm', unconvlenp);
break;
case CONV_MAC_UTF8:
retval = mac_string_convert(ptr, len, lenp, vcp->vc_fail,
- kCFStringEncodingMacRoman,
- kCFStringEncodingUTF8,
- unconvlenp);
+ 'm', 'u', unconvlenp);
break;
case CONV_UTF8_MAC:
retval = mac_string_convert(ptr, len, lenp, vcp->vc_fail,
- kCFStringEncodingUTF8,
- kCFStringEncodingMacRoman,
- unconvlenp);
+ 'u', 'm', unconvlenp);
break;
# endif
diff --git a/src/mysign b/src/mysign
index dea18b49fc..1581aa7438 100644
--- a/src/mysign
+++ b/src/mysign
@@ -1 +1 @@
-=auto/configure-lastupdate=1089626426.19-@buildcheck=2c92a9e4676b2304fab9af16f1664194=configure.in@md5=021fe2d41058c80f220721c96886b73b
+=auto/configure-lastupdate=1090067895.52-@buildcheck=2c92a9e4676b2304fab9af16f1664194=configure.in@md5=9058353ef67f4d224686695cb80f645e
diff --git a/src/option.c b/src/option.c
index 0dee50b976..bcf4183783 100644
--- a/src/option.c
+++ b/src/option.c
@@ -3237,7 +3237,15 @@ set_helplang_default(lang)
if (p_hlg == NULL)
p_hlg = empty_option;
else
+ {
+ /* zh_CN becomes "cn", zh_TW becomes "tw". */
+ if (STRNICMP(p_hlg, "zh_", 3) == 0 && STRLEN(p_hlg) >= 5)
+ {
+ p_hlg[0] = TOLOWER_ASC(p_hlg[3]);
+ p_hlg[1] = TOLOWER_ASC(p_hlg[4]);
+ }
p_hlg[2] = NUL;
+ }
options[idx].flags |= P_ALLOCED;
}
}
diff --git a/src/os_mac.h b/src/os_mac.h
index 7991769673..940e267b99 100644
--- a/src/os_mac.h
+++ b/src/os_mac.h
@@ -18,18 +18,23 @@
/*
* Macintosh machine-dependent things.
+ *
+ * Include the Mac header files, unless also compiling with X11 (the header
+ * files have many conflicts).
*/
-#include <QuickDraw.h>
-#include <ToolUtils.h>
-#include <LowMem.h>
-#include <Scrap.h>
-#include <Sound.h>
-#include <TextUtils.h>
-#include <Memory.h>
-#include <OSUtils.h>
-#include <Files.h>
-#ifdef FEAT_MBYTE
-# include <Script.h>
+#ifndef FEAT_X11
+# include <QuickDraw.h>
+# include <ToolUtils.h>
+# include <LowMem.h>
+# include <Scrap.h>
+# include <Sound.h>
+# include <TextUtils.h>
+# include <Memory.h>
+# include <OSUtils.h>
+# include <Files.h>
+# ifdef FEAT_MBYTE
+# include <Script.h>
+# endif
#endif
/*
@@ -303,10 +308,13 @@
#endif
#define DFLT_ERRORFILE "errors.err"
-#ifdef COLON_AS_PATHSEP
-# define DFLT_RUNTIMEPATH "$VIM:vimfiles,$VIMRUNTIME,$VIM:vimfiles:after"
-#else
-# define DFLT_RUNTIMEPATH "~/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,~/.vim/after"
+
+#ifndef DFLT_RUNTIMEPATH
+# ifdef COLON_AS_PATHSEP
+# define DFLT_RUNTIMEPATH "$VIM:vimfiles,$VIMRUNTIME,$VIM:vimfiles:after"
+# else
+# define DFLT_RUNTIMEPATH "~/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,~/.vim/after"
+# endif
#endif
/*
diff --git a/src/os_mac.pbproj/project.pbxproj b/src/os_mac.pbproj/project.pbxproj
new file mode 100644
index 0000000000..cacf9c9ff8
--- /dev/null
+++ b/src/os_mac.pbproj/project.pbxproj
@@ -0,0 +1,1537 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 34;
+ objects = {
+ 00EF808200C49A857F000001 = {
+ isa = PBXFileReference;
+ path = gui_mac.rsrc;
+ refType = 2;
+ };
+ 00EF808300C49A857F000001 = {
+ fileRef = 00EF808200C49A857F000001;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+//000
+//001
+//002
+//003
+//004
+//010
+//011
+//012
+//013
+//014
+ 014D3B8900BB52A07F000001 = {
+ children = (
+ 273798BE00B36B037F000001,
+ 273798C600B36B037F000001,
+ 273798CA00B36B037F000001,
+ 273798CE00B36B037F000001,
+ 273798D200B36B037F000001,
+ 273798D400B36B037F000001,
+ 273798D500B36B037F000001,
+ 273798D600B36B037F000001,
+ 273798E000B36B037F000001,
+ 273798E100B36B037F000001,
+ 273798E500B36B037F000001,
+ 273798E800B36B037F000001,
+ 273798EC00B36B047F000001,
+ 273798F100B36B047F000001,
+ 273798F200B36B047F000001,
+ 2737992C00B36BA77F000001,
+ );
+ isa = PBXGroup;
+ name = Headers;
+ refType = 4;
+ };
+ 014D3B8B00BB59CA7F000001 = {
+ children = (
+ 273798E200B36B037F000001,
+ 273798ED00B36B047F000001,
+ 273798D300B36B037F000001,
+ );
+ isa = PBXGroup;
+ name = "Unused Source";
+ path = "";
+ refType = 4;
+ };
+//010
+//011
+//012
+//013
+//014
+//020
+//021
+//022
+//023
+//024
+ 0249A665FF388DC511CA2CEA = {
+ isa = PBXApplicationReference;
+ path = Vim.app;
+ refType = 3;
+ };
+ 0249A669FF388E3911CA2CEA = {
+ isa = PBXFileReference;
+ name = "libstdc++.a";
+ path = "/usr/lib/libstdc++.a";
+ refType = 0;
+ };
+ 0249A66AFF388E3911CA2CEA = {
+ fileRef = 0249A669FF388E3911CA2CEA;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+//020
+//021
+//022
+//023
+//024
+//040
+//041
+//042
+//043
+//044
+ 04313892FE3035C9C02AAC07 = {
+ buildActionMask = 2147483647;
+ files = (
+ 2737992900B36B047F000001,
+ 00EF808300C49A857F000001,
+ );
+ isa = PBXRezBuildPhase;
+ name = "ResourceManager Resources";
+ };
+//040
+//041
+//042
+//043
+//044
+//050
+//051
+//052
+//053
+//054
+ 05952DFCFFF02D1B11CA0E50 = {
+ buildRules = (
+ );
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ OPTIMIZATION_CFLAGS = "-O0";
+ };
+ isa = PBXBuildStyle;
+ name = Development;
+ };
+ 05952DFDFFF02D1B11CA0E50 = {
+ buildRules = (
+ );
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ };
+ isa = PBXBuildStyle;
+ name = Deployment;
+ };
+//050
+//051
+//052
+//053
+//054
+//060
+//061
+//062
+//063
+//064
+ 0640BAA4FFF0323A11CA0E50 = {
+ isa = PBXFrameworkReference;
+ name = ApplicationServices.framework;
+ path = /System/Library/Frameworks/ApplicationServices.framework;
+ refType = 0;
+ };
+ 0640BAA5FFF0323A11CA0E50 = {
+ isa = PBXFrameworkReference;
+ name = CoreServices.framework;
+ path = /System/Library/Frameworks/CoreServices.framework;
+ refType = 0;
+ };
+ 06B64A4A00BBD0257F000001 = {
+ isa = PBXFileReference;
+ path = move.c;
+ refType = 4;
+ };
+ 06B64A4B00BBD0257F000001 = {
+ fileRef = 06B64A4A00BBD0257F000001;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+//060
+//061
+//062
+//063
+//064
+//0C0
+//0C1
+//0C2
+//0C3
+//0C4
+ 0C11626000BD3A897F000001 = {
+ isa = PBXFileReference;
+ path = os_unix.c;
+ refType = 4;
+ };
+//0C0
+//0C1
+//0C2
+//0C3
+//0C4
+//0D0
+//0D1
+//0D2
+//0D3
+//0D4
+ 0D29631B00C303B07F000001 = {
+ children = (
+ 273798CF00B36B037F000001,
+ 273798DF00B36B037F000001,
+ 0C11626000BD3A897F000001,
+ F5E2C53F00FACD0901000001,
+ );
+ isa = PBXGroup;
+ name = "Mac Port Sources";
+ refType = 4;
+ };
+//0D0
+//0D1
+//0D2
+//0D3
+//0D4
+//120
+//121
+//122
+//123
+//124
+ 12FD6A1900C500167F000001 = {
+ isa = PBXFileReference;
+ path = gui_mac.icns;
+ refType = 4;
+ };
+ 12FD6A1A00C500167F000001 = {
+ fileRef = 12FD6A1900C500167F000001;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+//120
+//121
+//122
+//123
+//124
+//190
+//191
+//192
+//193
+//194
+ 195DF8C9FE9D4F0611CA2CBB = {
+ children = (
+ 0249A665FF388DC511CA2CEA,
+ );
+ isa = PBXGroup;
+ name = Products;
+ refType = 4;
+ };
+//190
+//191
+//192
+//193
+//194
+//200
+//201
+//202
+//203
+//204
+ 20286C28FDCF999611CA2CEA = {
+ buildStyles = (
+ 05952DFCFFF02D1B11CA0E50,
+ 05952DFDFFF02D1B11CA0E50,
+ );
+ isa = PBXProject;
+ mainGroup = 20286C29FDCF999611CA2CEA;
+ projectDirPath = "";
+ targets = (
+ 20286C34FDCF999611CA2CEA,
+ );
+ };
+ 20286C29FDCF999611CA2CEA = {
+ children = (
+ 2737993000B36BF77F000001,
+ 014D3B8900BB52A07F000001,
+ 014D3B8B00BB59CA7F000001,
+ F5D0FB2B00F8C29A01000001,
+ 0D29631B00C303B07F000001,
+ 20286C2AFDCF999611CA2CEA,
+ 20286C2CFDCF999611CA2CEA,
+ 20286C32FDCF999611CA2CEA,
+ 195DF8C9FE9D4F0611CA2CBB,
+ );
+ isa = PBXGroup;
+ name = vim;
+ path = "";
+ refType = 4;
+ };
+ 20286C2AFDCF999611CA2CEA = {
+ children = (
+ 20286C2BFDCF999611CA2CEA,
+ 273798BF00B36B037F000001,
+ 273798C000B36B037F000001,
+ 273798C100B36B037F000001,
+ 273798C200B36B037F000001,
+ 273798C300B36B037F000001,
+ 273798C400B36B037F000001,
+ 273798C500B36B037F000001,
+ 273798C700B36B037F000001,
+ 273798C800B36B037F000001,
+ 7E3AAAD704841C0000EFC20E,
+ 273798C900B36B037F000001,
+ 273798CB00B36B037F000001,
+ 273798CC00B36B037F000001,
+ 273798CD00B36B037F000001,
+ 273798D100B36B037F000001,
+ 273798D700B36B037F000001,
+ 273798D800B36B037F000001,
+ 273798D900B36B037F000001,
+ 273798DA00B36B037F000001,
+ 273798DB00B36B037F000001,
+ 273798DC00B36B037F000001,
+ 273798DD00B36B037F000001,
+ 06B64A4A00BBD0257F000001,
+ 2737992A00B36BA77F000001,
+ 2737992B00B36BA77F000001,
+ 273798DE00B36B037F000001,
+ 273798E300B36B037F000001,
+ 273798E400B36B037F000001,
+ 273798E600B36B037F000001,
+ 273798E700B36B037F000001,
+ 273798E900B36B037F000001,
+ 273798EA00B36B037F000001,
+ 273798EB00B36B047F000001,
+ 273798EE00B36B047F000001,
+ 273798EF00B36B047F000001,
+ 273798F000B36B047F000001,
+ 273798F300B36B047F000001,
+ );
+ isa = PBXGroup;
+ name = Sources;
+ path = "";
+ refType = 4;
+ };
+ 20286C2BFDCF999611CA2CEA = {
+ isa = PBXFileReference;
+ path = main.c;
+ refType = 4;
+ };
+ 20286C2CFDCF999611CA2CEA = {
+ children = (
+ 12FD6A1900C500167F000001,
+ 00EF808200C49A857F000001,
+ 273798D000B36B037F000001,
+ );
+ isa = PBXGroup;
+ name = Resources;
+ path = "";
+ refType = 4;
+ };
+ 20286C32FDCF999611CA2CEA = {
+ children = (
+ 20286C33FDCF999611CA2CEA,
+ 0249A669FF388E3911CA2CEA,
+ 0640BAA4FFF0323A11CA0E50,
+ 0640BAA5FFF0323A11CA0E50,
+ );
+ isa = PBXGroup;
+ name = "External Frameworks and Libraries";
+ path = "";
+ refType = 4;
+ };
+ 20286C33FDCF999611CA2CEA = {
+ isa = PBXFrameworkReference;
+ name = Carbon.framework;
+ path = /System/Library/Frameworks/Carbon.framework;
+ refType = 0;
+ };
+ 20286C34FDCF999611CA2CEA = {
+ buildPhases = (
+ 20286C35FDCF999611CA2CEA,
+ 20286C36FDCF999611CA2CEA,
+ 20286C38FDCF999611CA2CEA,
+ 20286C3BFDCF999611CA2CEA,
+ 04313892FE3035C9C02AAC07,
+ );
+ buildSettings = {
+ FRAMEWORK_SEARCH_PATHS = "";
+ HEADER_SEARCH_PATHS = "proto /Developer/Headers/FlatCarbon";
+ INSTALL_PATH = "$(HOME)/Applications";
+ LIBRARY_SEARCH_PATHS = "";
+ OTHER_CFLAGS = "-DMACOS_X_UNIX";
+ OTHER_LDFLAGS = "";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = Vim;
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
+ WRAPPER_EXTENSION = app;
+ };
+ dependencies = (
+ );
+ isa = PBXApplicationTarget;
+ name = vim;
+ productInstallPath = "$(HOME)/Applications";
+ productName = vim;
+ productReference = 0249A665FF388DC511CA2CEA;
+ productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
+<!DOCTYPE plist SYSTEM \"file://localhost/System/Library/DTDs/PropertyList.dtd\">
+<plist version=\"0.9\">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleDocumentTypes</key>
+ <array>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
+ <string>*</string>
+ </array>
+ <key>CFBundleTypeIconFile</key>
+ <string>txt.icns</string>
+ <key>CFBundleTypeName</key>
+ <string>NSStringPboardType</string>
+ <key>CFBundleTypeOSTypes</key>
+ <array>
+ <string>****</string>
+ </array>
+ <key>CFBundleTypeRole</key>
+ <string>Editor</string>
+ </dict>
+ </array>
+ <key>CFBundleExecutable</key>
+ <string>Vim</string>
+ <key>CFBundleGetInfoString</key>
+ <string></string>
+ <key>CFBundleIconFile</key>
+ <string>gui_mac.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string></string>
+ <key>CFBundleInfoDict