]> granicus.if.org Git - vim/commitdiff
updated for version 7.0010 v7.0010
authorBram Moolenaar <Bram@vim.org>
Sun, 18 Jul 2004 21:34:53 +0000 (21:34 +0000)
committerBram Moolenaar <Bram@vim.org>
Sun, 18 Jul 2004 21:34:53 +0000 (21:34 +0000)
20 files changed:
Filelist
runtime/doc/eval.txt
runtime/doc/tags
runtime/doc/todo.txt
runtime/doc/version7.txt
src/Makefile
src/auto/configure
src/config.mk.in
src/configure.in
src/eval.c
src/fileio.c
src/mbyte.c
src/mysign
src/option.c
src/os_mac.h
src/os_mac.pbproj/project.pbxproj [new file with mode: 0644]
src/os_mac_conv.c [new file with mode: 0644]
src/os_macosx.c
src/testdir/test11.in
src/vim.h

index 627837c05339899bf92ddb1200b3a681e7e381d9..889b8e856c5c95edda6de24651c855aaaec947f9 100644 (file)
--- a/Filelist
+++ b/Filelist
@@ -358,7 +358,14 @@ SRC_MAC =  \
                src/gui_mac.c \
                src/gui_mac.icns \
                src/gui_mac.r \
-               src/os_mac* \
+               src/os_mac.build \
+               src/os_mac.c \
+               src/os_mac.h \
+               src/os_mac.rsr.hqx \
+               src/os_mac.sit.hqx \
+               src/os_mac_conv.c \
+               src/os_macosx.c \
+               src/os_mac.pbproj/project.pbxproj
                src/proto/gui_mac.pro \
                src/proto/os_mac.pro \
 
index e51d372675ce0b959b5b27cf094208c3860e3230..400eb76a567f72b7068b4283c190ba77ace811c1 100644 (file)
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0aa.  Last change: 2004 Jul 05
+*eval.txt*      For Vim version 7.0aa.  Last change: 2004 Jul 18
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -814,6 +814,7 @@ bufname( {expr})            String  Name of the buffer {expr}
 bufnr( {expr})                 Number  Number of the buffer {expr}
 bufwinnr( {expr})              Number  window number of buffer {expr}
 byte2line( {byte})             Number  line number at byte count {byte}
+byteidx( {expr}, {nr})         Number  byte index of {nr}'th char in {expr}
 char2nr( {expr})               Number  ASCII value of first char in {expr}
 cindent( {lnum})               Number  C indent for line {lnum}
 col( {expr})                   Number  column nr of cursor or mark
@@ -897,6 +898,7 @@ remote_read( {serverid})    String  read reply string
 remote_send( {server}, {string} [, {idvar}])
                                String  send key sequence
 rename( {from}, {to})          Number  rename (move) file from {from} to {to}
+repeat( {expr}, {count})       String  repeat {expr} {count} times
 resolve( {filename})           String  get filename a shortcut points to
 search( {pattern} [, {flags}]) Number  search for {pattern}
 searchpair( {start}, {middle}, {end} [, {flags} [, {skip}]])
@@ -1072,6 +1074,22 @@ byte2line({byte})                                        *byte2line()*
                {not available when compiled without the |+byte_offset|
                feature}
 
+byteidx({expr}, {nr})                                  *byteidx()*
+               Return byte index of the {nr}'th character in the string
+               {expr}.  Use zero for the first character, it returns zero.
+               This function is only useful when there are multibyte
+               characters, otherwise the returned value is equal to {nr}.
+               Composing characters are counted as a separate character.
+               Example : >
+                       echo matchstr(str, ".", byteidx(str, 3))
+<              will display the fourth character.  Another way to do the
+               same: >
+                       let s = strpart(str, byteidx(str, 3))
+                       echo strpart(s, 0, byteidx(s, 1))
+<              If there are less than {nr} characters -1 is returned.
+               If there are exactly {nr} characters the length of the string
+               is returned.
+
 char2nr({expr})                                                *char2nr()*
                Return number value of the first char in {expr}.  Examples: >
                        char2nr(" ")            returns 32
@@ -2179,6 +2197,12 @@ rename({from}, {to})                                     *rename()*
                successfully, and non-zero when the renaming failed.
                This function is not available in the |sandbox|.
 
+repeat({expr}, {count})                                        *repeat()*
+               Repeat {expr} {count} times and return the concatenated
+               result.  Example: >
+                       :let seperator = repeat('-', 80)
+<              When {count} is zero or negative the result is empty.
+
 resolve({filename})                                    *resolve()* *E655*
                On MS-Windows, when {filename} is a shortcut (a .lnk file),
                returns the path the shortcut points to in a simplified form.
index fe79d84d1dd4569939717cb660b8335e7110ff02..e44ac444f7b6cedab46eb49f79028a2a97b40a71 100644 (file)
@@ -5789,6 +5789,7 @@ remove-filetype   filetype.txt    /*remove-filetype*
 remove-option-flags    options.txt     /*remove-option-flags*
 rename()       eval.txt        /*rename()*
 rename-files   tips.txt        /*rename-files*
+repeat()       eval.txt        /*repeat()*
 repeat.txt     repeat.txt      /*repeat.txt*
 repeating      repeat.txt      /*repeating*
 replacing      change.txt      /*replacing*
@@ -5866,6 +5867,8 @@ s<CR>     change.txt      /*s<CR>*
 sandbox        eval.txt        /*sandbox*
 save-file      editing.txt     /*save-file*
 save-settings  starting.txt    /*save-settings*
+scheme-syntax  syntax.txt      /*scheme-syntax*
+scheme.vim     syntax.txt      /*scheme.vim*
 scp    pi_netrw.txt    /*scp*
 script-here    if_perl.txt     /*script-here*
 script-local   map.txt /*script-local*
index fa1ddffd2c86e252110d7fcab7722a051414ecd6..ba4af3ef0720d11b8a7a58ba1cd4f63a62b0e257 100644 (file)
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2004 Jul 16
+*todo.txt*      For Vim version 7.0aa.  Last change: 2004 Jul 18
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -30,37 +30,12 @@ be worked on, but only if you sponsor Vim development.  See |sponsor|.
                                                        *known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-When switching between Aap script and make Vim won't always run.
+Add fix for zh_cn to Vim 6.3?  (Liang)
 
-Mac: Compiling --enable-gui=athena doesn't work.  Try to fix without disabling
-Carbon.  Otherwise adjust configure to disable Darwin. (raf)
-
-Mac: "make install" doesn't install.  Patch from RAF.
-
-UTF-8 in 'comments' causes wrong indent.  Counting bytes instead of char
-width? (Nikolai Weibull)
 
 For version 7.0:
 -   Include many PATCHES:
     8   Add functions:
-       strrep()                Repeat a string (patch from Christophe Poucet,
-                               2003 Sep 12, also contains XX)
-                               Alt: repeat(expr, count) werkt ook voor lists.
-       mousex() mousey()       get position of mouse pointer (patch by Ross
-                               Presser)
-                               He will send a new patch.
-                               Is this really useful?
-       multibyteidx(string, idx) Byte index in multi-byte character.
-                               Patch by Ilya Sher, 2004 Feb 25
-                               Update June 18 (third one).
-       menuprop({name}, {idx}, {what})
-                               Get menu property of menu {name} item {idx}.
-                               menuprop("", 1, "name") returns "File".
-                               menuprop("File", 1, "n") returns "nmenu
-                               File.Open..." argument.
-                               Patch by Ilya Sher, 2004 Apr 22
-       mapname({idx}, mode)    return the name of the idx'th mapping.
-                               Patch by Ilya Sher, 2004 Mar 4.
        match({pat}, {string} [,start] [,count]) get index of count'th match
                                Patch by Ilya Sher, 2004 Jun 19
        find()                  find file in 'path' (patch from Johannes
@@ -287,6 +262,8 @@ For version 7.0:
 -   When using 'incsearch" CTRL-R CTRL-W gets the word under the cursor, but
     the part that already matched is doubled then.  Remove the part of the
     word that would be doubled.  Make it work line CTRL-N in Insert mode.
+-   Add Lua interface? (Wolfgang Oertl)
+
 
 Vi incompatibility:
 8   With undo/redo only marks in the changed lines should be changed.  Other
@@ -1486,6 +1463,17 @@ Built-in script language:
 7   Add argument to winwidth() to subtract the space taken by 'foldcolumn',
     signs and/or 'number'.
 8   Add functions:
+       menuprop({name}, {idx}, {what})
+                               Get menu property of menu {name} item {idx}.
+                               menuprop("", 1, "name") returns "File".
+                               menuprop("File", 1, "n") returns "nmenu
+                               File.Open..." argument.
+                               Patch by Ilya Sher, 2004 Apr 22
+                               Return a list of menus and/or a dictionary
+                               with properties instead.
+       mapname({idx}, mode)    return the name of the idx'th mapping.
+                               Patch by Ilya Sher, 2004 Mar 4.
+                               Return a list instead.
        sprintf(format, arg, ..) How to prevent a crash???
        attributes()            return file protection flags "drwxrwxrwx"
        mkdir(dir)              Create directory
index a1c902cf2cfb7a01440e4bbd8afb4b05c052db1e..a7f7d1997cfa472ba3d12410b010efec85807084 100644 (file)
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0aa.  Last change: 2004 Jul 16
+*version7.txt*  For Vim version 7.0aa.  Last change: 2004 Jul 18
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -123,7 +123,10 @@ Win32: The ":winpos" command now also works in the console. (Vipin Aravind)
 
 New functions: ~
 
-tr(expr, from, to)     |tr()| Translate characters. (Ron Aaron)
+repeat(expr, count)    |repeat()|      Repeat "expr" "count" times.
+                                       (Christophe Poucet)
+tr(expr, from, to)     |tr()|          Translate characters. (Ron Aaron)
+byteidx(expr, nr)      |byteidx()|     Index of a character. (Ilya Sher)
 
 
 New autocommand events: ~
@@ -182,6 +185,12 @@ For lisp indenting and matching parenthesis: (Sergey Khorev)
 ==============================================================================
 COMPILE TIME CHANGES                                   *compile-changes-7*
 
+Mac: "make" now creates the Vim.app directory and "make install" copies it to
+its final destination. (Raf)
+
+Mac: Made it possible to compile with Motif, Athena or GTK without tricks and
+still being able to use the MacRoman conversion.  Added the os_mac_conv.c
+file.
 
 ==============================================================================
 BUG FIXES                                              *bug-fixes-7*
@@ -255,4 +264,7 @@ When 'comments' includes multi-byte characters inserting the middle part and
 alignment may go wrong.  'cindent' also suffers from this for right-aligned
 items.
 
+The default for 'helplang' was "zh" for both "zh_cn" and "zh_tw".  Now use
+"cn" or "tw" as intended.
+
  vim:tw=78:ts=8:ft=help:norl:
index bfdd769396e098551874e53f4042a99a2cf9103c..e080477d6e0c42bc467eb63ca06779658df0efd4 100644 (file)
@@ -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 $< $@
index 220a981be6a1d5a43af37f75771d71786d906615..4b03c678b7e2ab3e3ae7367a12b4b7950e92a075 100755 (executable)
@@ -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
index ed5f686ff4a3117993b02b8f5ca206b77690ac95..d5103ecd4c6b2d82ac848f0f089c1cb6ba927a31 100644 (file)
@@ -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@
index a71c20ddf4a0edd56074d41bfed55ccb3d49f446..4b119f32ec0367fc3562950a206c71d167cc5c5b 100644 (file)
@@ -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
index fa3bad6ab02d7695ef378608ddcdead516568863..21c10fd67c720cca7e178777bf88fdd720a718cc 100644 (file)
@@ -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},
@@ -3587,6 +3591,42 @@ f_byte2line(argvars, retvar)
 #endif
 }
 
+/*
+ * "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
  */
@@ -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
index 02e5ad1e12027bb7f1bcd56cb5b66334d9be9f31..d1c11a04610496e81632a3df0acb82fc5c6ebc36 100644 (file)
@@ -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
 };
 
 /*
index db7c6524dd777b28caa37a718a46fc2d92bf1d2c..407f6674b6ea00634a6d4a86021000077cb04552 100644 (file)
@@ -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
 
index dea18b49fccb26d29935f8f930e7ca74b8820317..1581aa7438e8948eb8c17e993d3efeb1ed7b7186 100644 (file)
@@ -1 +1 @@
-=auto/configure\e-lastupdate=1089626426.19\e-@buildcheck=2c92a9e4676b2304fab9af16f1664194\e=configure.in@md5=021fe2d41058c80f220721c96886b73b\e
+=auto/configure\e-lastupdate=1090067895.52\e-@buildcheck=2c92a9e4676b2304fab9af16f1664194\e=configure.in@md5=9058353ef67f4d224686695cb80f645e\e
index 0dee50b976856ccaaf6f29476b1fba7a0853dee0..bcf41837838a8cb5b502950e1b13613697c3e91e 100644 (file)
@@ -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;
     }
 }
index 79917696731b49d13b3a95f5dbf728a1302a6fb0..940e267b996b1c08eb126b2af5469f329f4f6db3 100644 (file)
 
 /*
  * 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
 
 /*
 #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 (file)
index 0000000..cacf9c9
--- /dev/null
@@ -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>CFBundleInfoDictionaryVersion</key>
+       <string>7.0aa</string>
+       <key>CFBundleName</key>
+       <string>Vim</string>
+       <key>CFBundlePackageType</key>
+       <string>APPL</string>
+       <key>CFBundleShortVersionString</key>
+       <string>Vim 7.0aa</string>
+       <key>CFBundleSignature</key>
+       <string>????</string>
+       <key>CFBundleVersion</key>
+       <string>0.1</string>
+       <key>CSResourcesFileMapped</key>
+       <true/>
+</dict>
+</plist>
+";
+                       shouldUseHeadermap = 1;
+               };
+               20286C35FDCF999611CA2CEA = {
+                       buildActionMask = 2147483647;
+                       files = (
+                               273798F400B36B047F000001,
+                               273798F500B36B047F000001,
+                               273798F600B36B047F000001,
+                               273798F700B36B047F000001,
+                               273798F800B36B047F000001,
+                               273798F900B36B047F000001,
+                               273798FA00B36B047F000001,
+                               273798FB00B36B047F000001,
+                               273798FC00B36B047F000001,
+                               273798FD00B36B047F000001,
+                               273798FE00B36B047F000001,
+                               273798FF00B36B047F000001,
+                               2737990000B36B047F000001,
+                               2737990100B36B047F000001,
+                               2737990200B36B047F000001,
+                               2737992D00B36BA77F000001,
+                       );
+                       isa = PBXHeadersBuildPhase;
+                       name = Headers;
+               };
+               20286C36FDCF999611CA2CEA = {
+                       buildActionMask = 2147483647;
+                       files = (
+                               12FD6A1A00C500167F000001,
+                       );
+                       isa = PBXResourcesBuildPhase;
+                       name = "Bundle Resources";
+               };
+               20286C38FDCF999611CA2CEA = {
+                       buildActionMask = 2147483647;
+                       files = (
+                               20286C39FDCF999611CA2CEA,
+                               2737990300B36B047F000001,
+                               2737990400B36B047F000001,
+                               2737990500B36B047F000001,
+                               2737990600B36B047F000001,
+                               2737990700B36B047F000001,
+                               2737990800B36B047F000001,
+                               2737990900B36B047F000001,
+                               2737990A00B36B047F000001,
+                               2737990B00B36B047F000001,
+                               2737990C00B36B047F000001,
+                               2737990D00B36B047F000001,
+                               2737990E00B36B047F000001,
+                               2737990F00B36B047F000001,
+                               2737991000B36B047F000001,
+                               2737991100B36B047F000001,
+                               2737991300B36B047F000001,
+                               2737991400B36B047F000001,
+                               2737991500B36B047F000001,
+                               2737991600B36B047F000001,
+                               2737991700B36B047F000001,
+                               2737991800B36B047F000001,
+                               2737991900B36B047F000001,
+                               2737991A00B36B047F000001,
+                               2737991D00B36B047F000001,
+                               2737991E00B36B047F000001,
+                               2737991F00B36B047F000001,
+                               2737992000B36B047F000001,
+                               2737992100B36B047F000001,
+                               2737992200B36B047F000001,
+                               2737992300B36B047F000001,
+                               2737992500B36B047F000001,
+                               2737992600B36B047F000001,
+                               2737992700B36B047F000001,
+                               2737992800B36B047F000001,
+                               2737992E00B36BA77F000001,
+                               2737992F00B36BA77F000001,
+                               06B64A4B00BBD0257F000001,
+                               F5D0FB2D00F8C2BF01000001,
+                               F5E2C54000FACD0901000001,
+                               F5CC3220018E3F6801891561,
+                               7E3AAAD804841C0000EFC20E,
+                               7E556E1404841F7900882585,
+                       );
+                       isa = PBXSourcesBuildPhase;
+                       name = Sources;
+               };
+               20286C39FDCF999611CA2CEA = {
+                       fileRef = 20286C2BFDCF999611CA2CEA;
+                       isa = PBXBuildFile;
+                       settings = {
+                               ATTRIBUTES = (
+                               );
+                       };
+               };
+               20286C3BFDCF999611CA2CEA = {
+                       buildActionMask = 2147483647;
+                       files = (
+                               20286C3CFDCF999611CA2CEA,
+                               0249A66AFF388E3911CA2CEA,
+                       );
+                       isa = PBXFrameworksBuildPhase;
+                       name = "Frameworks & Libraries";
+               };
+               20286C3CFDCF999611CA2CEA = {
+                       fileRef = 20286C33FDCF999611CA2CEA;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+//200
+//201
+//202
+//203
+//204
+//270
+//271
+//272
+//273
+//274
+               273798BE00B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = ascii.h;
+                       refType = 4;
+               };
+               273798BF00B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = buffer.c;
+                       refType = 4;
+               };
+               273798C000B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = charset.c;
+                       refType = 4;
+               };
+               273798C100B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = diff.c;
+                       refType = 4;
+               };
+               273798C200B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = digraph.c;
+                       refType = 4;
+               };
+               273798C300B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = edit.c;
+                       refType = 4;
+               };
+               273798C400B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = eval.c;
+                       refType = 4;
+               };
+               273798C500B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = ex_cmds.c;
+                       refType = 4;
+               };
+               273798C600B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = ex_cmds.h;
+                       refType = 4;
+               };
+               273798C700B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = ex_cmds2.c;
+                       refType = 4;
+               };
+               273798C800B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = ex_docmd.c;
+                       refType = 4;
+               };
+               273798C900B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = ex_getln.c;
+                       refType = 4;
+               };
+               273798CA00B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = feature.h;
+                       refType = 4;
+               };
+               273798CB00B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = fileio.c;
+                       refType = 4;
+               };
+               273798CC00B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = fold.c;
+                       refType = 4;
+               };
+               273798CD00B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = getchar.c;
+                       refType = 4;
+               };
+               273798CE00B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = globals.h;
+                       refType = 4;
+               };
+               273798CF00B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = gui_mac.c;
+                       refType = 4;
+               };
+               273798D000B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = gui_mac.r;
+                       refType = 4;
+               };
+               273798D100B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = gui.c;
+                       refType = 4;
+               };
+               273798D200B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = gui.h;
+                       refType = 4;
+               };
+               273798D300B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = integration.c;
+                       refType = 4;
+               };
+               273798D400B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = integration.h;
+                       refType = 4;
+               };
+               273798D500B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = keymap.h;
+                       refType = 4;
+               };
+               273798D600B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = macros.h;
+                       refType = 4;
+               };
+               273798D700B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = mark.c;
+                       refType = 4;
+               };
+               273798D800B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = memfile.c;
+                       refType = 4;
+               };
+               273798D900B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = memline.c;
+                       refType = 4;
+               };
+               273798DA00B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = menu.c;
+                       refType = 4;
+               };
+               273798DB00B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = message.c;
+                       refType = 4;
+               };
+               273798DC00B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = misc1.c;
+                       refType = 4;
+               };
+               273798DD00B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = misc2.c;
+                       refType = 4;
+               };
+               273798DE00B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = ops.c;
+                       refType = 4;
+               };
+               273798DF00B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = os_mac.c;
+                       refType = 4;
+               };
+               273798E000B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = os_mac.h;
+                       refType = 4;
+               };
+               273798E100B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = proto.h;
+                       refType = 4;
+               };
+               273798E200B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = pty.c;
+                       refType = 4;
+               };
+               273798E300B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = quickfix.c;
+                       refType = 4;
+               };
+               273798E400B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = regexp.c;
+                       refType = 4;
+               };
+               273798E500B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = regexp.h;
+                       refType = 4;
+               };
+               273798E600B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = screen.c;
+                       refType = 4;
+               };
+               273798E700B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = search.c;
+                       refType = 4;
+               };
+               273798E800B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = structs.h;
+                       refType = 4;
+               };
+               273798E900B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = syntax.c;
+                       refType = 4;
+               };
+               273798EA00B36B037F000001 = {
+                       isa = PBXFileReference;
+                       path = tag.c;
+                       refType = 4;
+               };
+               273798EB00B36B047F000001 = {
+                       isa = PBXFileReference;
+                       path = term.c;
+                       refType = 4;
+               };
+               273798EC00B36B047F000001 = {
+                       isa = PBXFileReference;
+                       path = term.h;
+                       refType = 4;
+               };
+               273798ED00B36B047F000001 = {
+                       isa = PBXFileReference;
+                       path = termlib.c;
+                       refType = 4;
+               };
+               273798EE00B36B047F000001 = {
+                       isa = PBXFileReference;
+                       path = ui.c;
+                       refType = 4;
+               };
+               273798EF00B36B047F000001 = {
+                       isa = PBXFileReference;
+                       path = undo.c;
+                       refType = 4;
+               };
+               273798F000B36B047F000001 = {
+                       isa = PBXFileReference;
+                       path = version.c;
+                       refType = 4;
+               };
+               273798F100B36B047F000001 = {
+                       isa = PBXFileReference;
+                       path = version.h;
+                       refType = 4;
+               };
+               273798F200B36B047F000001 = {
+                       isa = PBXFileReference;
+                       path = vim.h;
+                       refType = 4;
+               };
+               273798F300B36B047F000001 = {
+                       isa = PBXFileReference;
+                       path = window.c;
+                       refType = 4;
+               };
+               273798F400B36B047F000001 = {
+                       fileRef = 273798BE00B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                               ATTRIBUTES = (
+                               );
+                       };
+               };
+               273798F500B36B047F000001 = {
+                       fileRef = 273798C600B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               273798F600B36B047F000001 = {
+                       fileRef = 273798CA00B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                               ATTRIBUTES = (
+                               );
+                       };
+               };
+               273798F700B36B047F000001 = {
+                       fileRef = 273798CE00B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               273798F800B36B047F000001 = {
+                       fileRef = 273798D200B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               273798F900B36B047F000001 = {
+                       fileRef = 273798D400B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               273798FA00B36B047F000001 = {
+                       fileRef = 273798D500B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               273798FB00B36B047F000001 = {
+                       fileRef = 273798D600B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               273798FC00B36B047F000001 = {
+                       fileRef = 273798E000B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               273798FD00B36B047F000001 = {
+                       fileRef = 273798E100B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               273798FE00B36B047F000001 = {
+                       fileRef = 273798E500B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               273798FF00B36B047F000001 = {
+                       fileRef = 273798E800B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737990000B36B047F000001 = {
+                       fileRef = 273798EC00B36B047F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737990100B36B047F000001 = {
+                       fileRef = 273798F100B36B047F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737990200B36B047F000001 = {
+                       fileRef = 273798F200B36B047F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737990300B36B047F000001 = {
+                       fileRef = 273798BF00B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737990400B36B047F000001 = {
+                       fileRef = 273798C000B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737990500B36B047F000001 = {
+                       fileRef = 273798C100B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737990600B36B047F000001 = {
+                       fileRef = 273798C200B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737990700B36B047F000001 = {
+                       fileRef = 273798C300B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737990800B36B047F000001 = {
+                       fileRef = 273798C400B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737990900B36B047F000001 = {
+                       fileRef = 273798C500B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737990A00B36B047F000001 = {
+                       fileRef = 273798C700B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737990B00B36B047F000001 = {
+                       fileRef = 273798C800B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737990C00B36B047F000001 = {
+                       fileRef = 273798C900B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737990D00B36B047F000001 = {
+                       fileRef = 273798CB00B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737990E00B36B047F000001 = {
+                       fileRef = 273798CC00B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737990F00B36B047F000001 = {
+                       fileRef = 273798CD00B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737991000B36B047F000001 = {
+                       fileRef = 273798CF00B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737991100B36B047F000001 = {
+                       fileRef = 273798D100B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737991300B36B047F000001 = {
+                       fileRef = 273798D700B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737991400B36B047F000001 = {
+                       fileRef = 273798D800B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737991500B36B047F000001 = {
+                       fileRef = 273798D900B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737991600B36B047F000001 = {
+                       fileRef = 273798DA00B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737991700B36B047F000001 = {
+                       fileRef = 273798DB00B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737991800B36B047F000001 = {
+                       fileRef = 273798DC00B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737991900B36B047F000001 = {
+                       fileRef = 273798DD00B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737991A00B36B047F000001 = {
+                       fileRef = 273798DE00B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737991D00B36B047F000001 = {
+                       fileRef = 273798E300B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737991E00B36B047F000001 = {
+                       fileRef = 273798E400B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737991F00B36B047F000001 = {
+                       fileRef = 273798E600B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737992000B36B047F000001 = {
+                       fileRef = 273798E700B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737992100B36B047F000001 = {
+                       fileRef = 273798E900B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737992200B36B047F000001 = {
+                       fileRef = 273798EA00B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737992300B36B047F000001 = {
+                       fileRef = 273798EB00B36B047F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737992500B36B047F000001 = {
+                       fileRef = 273798EE00B36B047F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737992600B36B047F000001 = {
+                       fileRef = 273798EF00B36B047F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737992700B36B047F000001 = {
+                       fileRef = 273798F000B36B047F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737992800B36B047F000001 = {
+                       fileRef = 273798F300B36B047F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737992900B36B047F000001 = {
+                       fileRef = 273798D000B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737992A00B36BA77F000001 = {
+                       isa = PBXFileReference;
+                       path = normal.c;
+                       refType = 4;
+               };
+               2737992B00B36BA77F000001 = {
+                       isa = PBXFileReference;
+                       path = option.c;
+                       refType = 4;
+               };
+               2737992C00B36BA77F000001 = {
+                       isa = PBXFileReference;
+                       path = option.h;
+                       refType = 4;
+               };
+               2737992D00B36BA77F000001 = {
+                       fileRef = 2737992C00B36BA77F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737992E00B36BA77F000001 = {
+                       fileRef = 2737992A00B36BA77F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737992F00B36BA77F000001 = {
+                       fileRef = 2737992B00B36BA77F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               2737993000B36BF77F000001 = {
+                       children = (
+                               2737993100B36C397F000001,
+                               2737993200B36C397F000001,
+                               2737993300B36C397F000001,
+                               2737993400B36C397F000001,
+                               2737993500B36C397F000001,
+                               2737993600B36C397F000001,
+                               2737993700B36C397F000001,
+                               2737993800B36C397F000001,
+                               2737993900B36C397F000001,
+                               2737993A00B36C397F000001,
+                               2737993B00B36C397F000001,
+                               2737993C00B36C397F000001,
+                               2737993D00B36C397F000001,
+                               2737993E00B36C397F000001,
+                               2737993F00B36C397F000001,
+                               2737994000B36C397F000001,
+                               2737994100B36C397F000001,
+                               2737994200B36C397F000001,
+                               2737994300B36C397F000001,
+                               2737994400B36C397F000001,
+                               2737994500B36C397F000001,
+                               2737994600B36C397F000001,
+                               2737994700B36C397F000001,
+                               2737994800B36C397F000001,
+                               2737994900B36C397F000001,
+                               2737994A00B36C397F000001,
+                               2737994B00B36C397F000001,
+                               2737994C00B36C397F000001,
+                               2737994D00B36C397F000001,
+                               2737994E00B36C397F000001,
+                               2737994F00B36C397F000001,
+                               2737995000B36C397F000001,
+                               2737995100B36C397F000001,
+                               2737995200B36C397F000001,
+                               2737995300B36C397F000001,
+                               2737995400B36C397F000001,
+                               2737995500B36C397F000001,
+                               2737995600B36C397F000001,
+                               2737995700B36C397F000001,
+                               2737995800B36C397F000001,
+                               2737995900B36C397F000001,
+                       );
+                       isa = PBXGroup;
+                       name = Prototype;
+                       path = proto;
+                       refType = 4;
+               };
+               2737993100B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = buffer.pro;
+                       path = proto/buffer.pro;
+                       refType = 4;
+               };
+               2737993200B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = charset.pro;
+                       path = proto/charset.pro;
+                       refType = 4;
+               };
+               2737993300B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = diff.pro;
+                       path = proto/diff.pro;
+                       refType = 4;
+               };
+               2737993400B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = digraph.pro;
+                       path = proto/digraph.pro;
+                       refType = 4;
+               };
+               2737993500B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = edit.pro;
+                       path = proto/edit.pro;
+                       refType = 4;
+               };
+               2737993600B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = eval.pro;
+                       path = proto/eval.pro;
+                       refType = 4;
+               };
+               2737993700B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = ex_cmds.pro;
+                       path = proto/ex_cmds.pro;
+                       refType = 4;
+               };
+               2737993800B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = ex_cmds2.pro;
+                       path = proto/ex_cmds2.pro;
+                       refType = 4;
+               };
+               2737993900B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = ex_docmd.pro;
+                       path = proto/ex_docmd.pro;
+                       refType = 4;
+               };
+               2737993A00B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = ex_getln.pro;
+                       path = proto/ex_getln.pro;
+                       refType = 4;
+               };
+               2737993B00B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = fileio.pro;
+                       path = proto/fileio.pro;
+                       refType = 4;
+               };
+               2737993C00B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = fold.pro;
+                       path = proto/fold.pro;
+                       refType = 4;
+               };
+               2737993D00B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = getchar.pro;
+                       path = proto/getchar.pro;
+                       refType = 4;
+               };
+               2737993E00B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = gui_mac.pro;
+                       path = proto/gui_mac.pro;
+                       refType = 4;
+               };
+               2737993F00B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = gui.pro;
+                       path = proto/gui.pro;
+                       refType = 4;
+               };
+               2737994000B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = main.pro;
+                       path = proto/main.pro;
+                       refType = 4;
+               };
+               2737994100B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = mark.pro;
+                       path = proto/mark.pro;
+                       refType = 4;
+               };
+               2737994200B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = memfile.pro;
+                       path = proto/memfile.pro;
+                       refType = 4;
+               };
+               2737994300B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = memline.pro;
+                       path = proto/memline.pro;
+                       refType = 4;
+               };
+               2737994400B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = menu.pro;
+                       path = proto/menu.pro;
+                       refType = 4;
+               };
+               2737994500B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = message.pro;
+                       path = proto/message.pro;
+                       refType = 4;
+               };
+               2737994600B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = misc1.pro;
+                       path = proto/misc1.pro;
+                       refType = 4;
+               };
+               2737994700B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = misc2.pro;
+                       path = proto/misc2.pro;
+                       refType = 4;
+               };
+               2737994800B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = move.pro;
+                       path = proto/move.pro;
+                       refType = 4;
+               };
+               2737994900B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = normal.pro;
+                       path = proto/normal.pro;
+                       refType = 4;
+               };
+               2737994A00B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = ops.pro;
+                       path = proto/ops.pro;
+                       refType = 4;
+               };
+               2737994B00B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = option.pro;
+                       path = proto/option.pro;
+                       refType = 4;
+               };
+               2737994C00B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = os_mac.pro;
+                       path = proto/os_mac.pro;
+                       refType = 4;
+               };
+               2737994D00B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = pty.pro;
+                       path = proto/pty.pro;
+                       refType = 4;
+               };
+               2737994E00B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = quickfix.pro;
+                       path = proto/quickfix.pro;
+                       refType = 4;
+               };
+               2737994F00B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = regexp.pro;
+                       path = proto/regexp.pro;
+                       refType = 4;
+               };
+               2737995000B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = screen.pro;
+                       path = proto/screen.pro;
+                       refType = 4;
+               };
+               2737995100B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = search.pro;
+                       path = proto/search.pro;
+                       refType = 4;
+               };
+               2737995200B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = syntax.pro;
+                       path = proto/syntax.pro;
+                       refType = 4;
+               };
+               2737995300B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = tag.pro;
+                       path = proto/tag.pro;
+                       refType = 4;
+               };
+               2737995400B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = term.pro;
+                       path = proto/term.pro;
+                       refType = 4;
+               };
+               2737995500B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = termlib.pro;
+                       path = proto/termlib.pro;
+                       refType = 4;
+               };
+               2737995600B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = ui.pro;
+                       path = proto/ui.pro;
+                       refType = 4;
+               };
+               2737995700B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = undo.pro;
+                       path = proto/undo.pro;
+                       refType = 4;
+               };
+               2737995800B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = version.pro;
+                       path = proto/version.pro;
+                       refType = 4;
+               };
+               2737995900B36C397F000001 = {
+                       isa = PBXFileReference;
+                       name = window.pro;
+                       path = proto/window.pro;
+                       refType = 4;
+               };
+//270
+//271
+//272
+//273
+//274
+//7E0
+//7E1
+//7E2
+//7E3
+//7E4
+               7E3AAAD704841C0000EFC20E = {
+                       isa = PBXFileReference;
+                       path = ex_eval.c;
+                       refType = 4;
+               };
+               7E3AAAD804841C0000EFC20E = {
+                       fileRef = 7E3AAAD704841C0000EFC20E;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               7E556E1404841F7900882585 = {
+                       fileRef = 273798ED00B36B047F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+//7E0
+//7E1
+//7E2
+//7E3
+//7E4
+//F50
+//F51
+//F52
+//F53
+//F54
+               F5CC3220018E3F6801891561 = {
+                       fileRef = 273798E200B36B037F000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F5D0FB2B00F8C29A01000001 = {
+                       children = (
+                               F5D0FB2C00F8C2BF01000001,
+                       );
+                       isa = PBXGroup;
+                       name = "Optional Source";
+                       path = "";
+                       refType = 4;
+               };
+               F5D0FB2C00F8C2BF01000001 = {
+                       isa = PBXFileReference;
+                       path = mbyte.c;
+                       refType = 4;
+               };
+               F5D0FB2D00F8C2BF01000001 = {
+                       fileRef = F5D0FB2C00F8C2BF01000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F5E2C53F00FACD0901000001 = {
+                       isa = PBXFileReference;
+                       path = os_macosx.c;
+                       refType = 4;
+               };
+               F5E2C54000FACD0901000001 = {
+                       fileRef = F5E2C53F00FACD0901000001;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+       };
+       rootObject = 20286C28FDCF999611CA2CEA;
+}
diff --git a/src/os_mac_conv.c b/src/os_mac_conv.c
new file mode 100644 (file)
index 0000000..3dfacfe
--- /dev/null
@@ -0,0 +1,230 @@
+/* vi:set ts=8 sts=4 sw=4:
+ *
+ * VIM - Vi IMproved   by Bram Moolenaar
+ *
+ * Do ":help uganda"  in Vim to read copying and usage conditions.
+ * Do ":help credits" in Vim to see a list of people who contributed.
+ * See README.txt for an overview of the Vim source code.
+ */
+/*
+ * os_mac_conv.c: Code specifically for Mac string conversions.
+ *
+ * This code has been put in a separate file to avoid the conflicts that are
+ * caused by including both the X11 and Carbon header files.
+ */
+
+#define NO_X11_INCLUDES
+#include "vim.h"
+
+extern char_u *mac_string_convert __ARGS((char_u *ptr, int len, int *lenp, int fail_on_error, int from, int to, int *unconvlenp));
+extern int macroman2enc __ARGS((char_u *ptr, long *sizep, long real_size));
+extern int enc2macroman __ARGS((char_u *from, size_t fromlen, char_u *to, int *tolenp, int maxtolen, char_u *rest, int *restlenp));
+
+/*
+ * A Mac version of string_convert_ext() for special cases.
+ */
+    char_u *
+mac_string_convert(ptr, len, lenp, fail_on_error, from_enc, to_enc, unconvlenp)
+    char_u             *ptr;
+    int                        len;
+    int                        *lenp;
+    int                        fail_on_error;
+    int                        from_enc;
+    int                        to_enc;
+    int                        *unconvlenp;
+{
+    char_u             *retval, *d;
+    CFStringRef                cfstr;
+    int                        buflen, in, out, l, i;
+    CFStringEncoding   from;
+    CFStringEncoding   to;
+
+    switch (from_enc)
+    {
+       case 'l':   from = kCFStringEncodingISOLatin1; break;
+       case 'm':   from = kCFStringEncodingMacRoman; break;
+       case 'u':   from = kCFStringEncodingUTF8; break;
+       default:    return NULL;
+    }
+    switch (to_enc)
+    {
+       case 'l':   to = kCFStringEncodingISOLatin1; break;
+       case 'm':   to = kCFStringEncodingMacRoman; break;
+       case 'u':   to = kCFStringEncodingUTF8; break;
+       default:    return NULL;
+    }
+
+    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;
+}
+
+/*
+ * Conversion from Apple MacRoman char encoding to UTF-8 or latin1, using
+ * standard Carbon framework.
+ * Input: "ptr[*sizep]".
+ * "real_size" is the size of the buffer that "ptr" points to.
+ * output is in-place, "sizep" is adjusted.
+ * Returns OK or FAIL.
+ */
+    int
+macroman2enc(ptr, sizep, real_size)
+    char_u     *ptr;
+    long       *sizep;
+    long       real_size;
+{
+    CFStringRef                cfstr;
+    CFRange            r;
+    CFIndex            len = *sizep;
+
+    /* 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)
+       return FAIL;
+
+    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 + *sizep, real_size - *sizep, &len))
+    {
+       CFRelease(cfstr);
+       return FAIL;
+    }
+    CFRelease(cfstr);
+    mch_memmove(ptr, ptr + *sizep, len);
+    *sizep = len;
+
+    return OK;
+}
+
+/*
+ * Conversion from UTF-8 or latin1 to MacRoman.
+ * Input: "from[fromlen]"
+ * Output: "to[maxtolen]" length in "*tolenp"
+ * Unconverted rest in rest[*restlenp].
+ * Returns OK or FAIL.
+ */
+    int
+enc2macroman(from, fromlen, to, tolenp, maxtolen, rest, restlenp)
+    char_u     *from;
+    size_t     fromlen;
+    char_u     *to;
+    int                *tolenp;
+    int                maxtolen;
+    char_u     *rest;
+    int                *restlenp;
+{
+    CFStringRef        cfstr;
+    CFRange    r;
+    CFIndex    l;
+
+    *restlenp = 0;
+    cfstr = CFStringCreateWithBytes(NULL, from, fromlen,
+           (enc_utf8) ? kCFStringEncodingUTF8 : kCFStringEncodingISOLatin1,
+           0);
+    while (cfstr == NULL && *restlenp < 3 && fromlen > 1)
+    {
+       rest[*restlenp++] = from[--fromlen];
+       cfstr = CFStringCreateWithBytes(NULL, from, fromlen,
+               (enc_utf8) ? kCFStringEncodingUTF8 : kCFStringEncodingISOLatin1,
+               0);
+    }
+    if (cfstr == NULL)
+       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 */
+               to, maxtolen, &l))
+    {
+       CFRelease(cfstr);
+       return FAIL;
+    }
+    CFRelease(cfstr);
+    *tolenp = l;
+    return OK;
+}
index 871eb7e5c53f6beb478dab113181730e492bce40..d361958ade2ef9dbd506568e7c2ac90ae7ea2c83 100644 (file)
@@ -338,8 +338,8 @@ ICONV_OPEN_ERR:
  * TECCreateConverter() failed.
  */
     static size_t
-null_conv(iconv_t cd, const char** inbuf, size_t *inbytesleft,
-       char** outbuf, size_t *outbytesleft)
+null_conv(iconv_t cd, const char **inbuf, size_t *inbytesleft,
+       char **outbuf, size_t *outbytesleft)
 {
     const char* buf_in = inbuf && *inbuf ? *inbuf : NULL;
     char* buf_out = outbuf && *outbuf ? *outbuf : NULL;
@@ -375,14 +375,14 @@ null_conv(iconv_t cd, const char** inbuf, size_t *inbytesleft,
 }
 
     size_t
-iconv(iconv_t cd, const char** inbuf, size_t *inbytesleft,
-       char** outbuf, size_t *outbytesleft)
+iconv(iconv_t cd, const char **inbuf, size_t *inbytesleft,
+       char **outbuf, size_t *outbytesleft)
 {
-    ConstTextPtr buf_in;
-    TextPtr buf_out;
-    ByteCount out_len, out_true;
-    ByteCount in_len, in_true;
-    OSStatus st;
+    ConstTextPtr    buf_in;
+    TextPtr        buf_out;
+    ByteCount      out_len, out_true;
+    ByteCount      in_len, in_true;
+    OSStatus       st;
 
     if (!cd)
     {
@@ -537,7 +537,7 @@ iconv_close(iconv_t cd)
     }
 }
 
-    int*
+    int *
 iconv_errno()
 {
     return &last_errno;
@@ -549,8 +549,8 @@ iconv_errno()
 #define GETTEXT_BUFNUM         64
 #define GETTEXT_BUFSIZE                256
 
-    char*
-mch_gettext(const charmsgid)
+    char *
+mch_gettext(const char *msgid)
 {
     static char                buf[GETTEXT_BUFNUM][GETTEXT_BUFSIZE];
     static int         bufnum = 0;
@@ -593,18 +593,18 @@ MCH_GETTEXT_FINISH:
        CFRelease(strkey);
     if (strmsg)
        CFRelease(strmsg);
-    return (char*)(msg ? msg : msgid);
+    return (char *)(msg ? msg : msgid);
 }
 
-    char*
-mch_bindtextdomain(const char* domain, const char* dirname)
+    char *
+mch_bindtextdomain(const char *domain, const char *dirname)
 {
     TRACE("mch_bindtextdomain(%s, %s)\n", domain, dirname);
     return (char*)dirname;
 }
 
-    char*
-mch_textdomain(const chardomain)
+    char *
+mch_textdomain(const char *domain)
 {
     TRACE("mch_textdomain(%s)\n", domain);
     return (char*)domain;
index 6b296fd4e893540044968f5030c3598ed1ade561..510ed7236a51e3c472786ad27194395bbde493ca 100644 (file)
@@ -20,13 +20,12 @@ STARTTEST
 :set bin
 :au FileWritePre    *.gz   '[,']!gzip
 :au FileWritePost   *.gz   undo
-:/start of testfile/,/end of testfile/w! Xtestfile.gz
+:/^start of testfile/,/^end of testfile/w! Xtestfile.gz
 :au FileReadPost    *.gz   '[,']!gzip -d
 :$r Xtestfile.gz                " Read and decompress the testfile
 :?startstart?,$w! test.out      " Write contents of this file
 :au BufNewFile      *.c    read Xtest.c
-gg/^end of testfile
-:/start of test.c/+1,/end of test.c/-1w! Xtest.c
+:/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
 :e! foo.c                       " Will load Xtest.c
 :au FileAppendPre   *.out  '[,']s/new/NEW/
 :au FileAppendPost  *.out  !cat Xtest.c >>test.out
index eb7d2a7f7872aaf4ecca42bee186cd77ee399458..dadb17e2f807fa36902dcf8c1281daba0e2f65e6 100644 (file)
--- a/src/vim.h
+++ b/src/vim.h
@@ -91,7 +91,7 @@
     || defined(FEAT_GUI_AMIGA) \
     || defined(FEAT_GUI_PHOTON) \
     || defined(FEAT_GUI_KDE)
-# ifndef FEAT_GUI
+# if !defined(FEAT_GUI) && !defined(NO_X11_INCLUDES)
 #  define FEAT_GUI
 # endif
 #endif
 # define FEAT_X11
 #endif
 
+#ifdef NO_X11_INCLUDES
+    /* In os_mac_conv.c NO_X11_INCLUDES is defined to avoid X11 headers.
+     * Disable all X11 related things to avoid conflicts. */
+# ifdef FEAT_X11
+#  undef FEAT_X11
+# endif
+# ifdef FEAT_XCLIPBOARD
+#  undef FEAT_XCLIPBOARD
+# endif
+# ifdef FEAT_GUI_MOTIF
+#  undef FEAT_GUI_MOTIF
+# endif
+# ifdef FEAT_GUI_ATHENA
+#  undef FEAT_GUI_ATHENA
+# endif
+# ifdef FEAT_GUI_GTK
+#  undef FEAT_GUI_GTK
+# endif
+# ifdef FEAT_BEVAL_TIP
+#  undef FEAT_BEVAL_TIP
+# endif
+# ifdef FEAT_XIM
+#  undef FEAT_XIM
+# endif
+# ifdef FEAT_CLIENTSERVER
+#  undef FEAT_CLIENTSERVER
+# endif
+#endif
+
 /* Can't use "PACKAGE" here, conflicts with a Perl include file. */
 #ifndef VIMPACKAGE
 # define VIMPACKAGE    "vim"