mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
Add clipboard support in Mac console. (Bjorn Winckler)
This commit is contained in:
2
Filelist
2
Filelist
@@ -373,7 +373,7 @@ SRC_MAC = \
|
||||
src/os_mac.h \
|
||||
src/os_mac.rsr.hqx \
|
||||
src/os_mac_conv.c \
|
||||
src/os_macosx.c \
|
||||
src/os_macosx.m \
|
||||
src/proto/gui_mac.pro \
|
||||
src/proto/os_mac_conv.pro \
|
||||
|
||||
|
@@ -39,7 +39,7 @@ This also applies when using the MingW tools.
|
||||
|
||||
==============================================================================
|
||||
|
||||
2. Locating memory leaks *debug-leaks*
|
||||
2. Locating memory leaks *debug-leaks* *valgrind*
|
||||
|
||||
If you suspect Vim is leaking memory and you are using Linux, the valgrind
|
||||
tool is very useful to pinpoint memory leaks.
|
||||
@@ -47,14 +47,18 @@ tool is very useful to pinpoint memory leaks.
|
||||
First of all, build Vim with EXITFREE defined. Search for this in MAKEFILE
|
||||
and uncomment the line.
|
||||
|
||||
Use this command to start Vim: *valgrind*
|
||||
Use this command to start Vim:
|
||||
>
|
||||
valgrind --log-file=valgrind.log ./vim
|
||||
valgrind --log-file=valgrind.log --leak-check=full ./vim
|
||||
|
||||
Note: Vim will run much slower. If your .vimrc is big or you have several
|
||||
plugins you need to be patient for startup, or run with the "-u NONE"
|
||||
argument.
|
||||
|
||||
There are often a few leaks from libraries, such as getpwuid() and
|
||||
XtVaAppCreateShell(). Those are unavoidable. The number of bytes should be
|
||||
very small a Kbyte or less.
|
||||
|
||||
==============================================================================
|
||||
|
||||
3. Windows Bug Reporting *debug-win32*
|
||||
|
@@ -1098,7 +1098,7 @@ Vim 7.3:
|
||||
- Conceal feature: no update when moving to another window. (Dominique Pelle,
|
||||
2010 Jul 5) Vince will look into it.
|
||||
Patches to possibly include:
|
||||
- Mac: console clipboard support. (Bjoren Winckler, 2010 Jul 12)
|
||||
- Mac: console clipboard support. (Bjorn Winckler, 2010 Jul 12)
|
||||
- Win32: patch for better font scaling. (George Reilly, 2009 Mar 26)
|
||||
- Patch for completion of ":find" arguments. (Nazri Ramliy, 2009 Feb 22, 26)
|
||||
8 For ":find" and ":sfind" expand files found in 'path'.
|
||||
@@ -1106,8 +1106,9 @@ Patches to possibly include:
|
||||
- Patch for vertical line at certain column position, 'guidecolumn' option.
|
||||
(Pankaj Garg, 2009 Apr 14, aka Lone, Apr 15)
|
||||
Update 2009 May 2, 'margincolumn'
|
||||
Alternative patch. (2010 Feb 2, Gregor Uhlenheuer, update Apr 18 2010)
|
||||
Alternative patch. (2010 Feb 2, Gregor Uhlenheuer, update 2010 Jul 12)
|
||||
Fix by Lech Lorens, Apr 19
|
||||
When there are multiple columns it makes sense to call it 'guidecolumn'
|
||||
- Another patch for Javascript indenting. (Hari Kumar, 2010 Jul 11)
|
||||
Needs a few tests.
|
||||
- Add different highlighting for a fold line depending on the fold level.
|
||||
@@ -1124,7 +1125,6 @@ Patches to possibly include:
|
||||
Docs patch by Dominique Pelle, Mar 25
|
||||
Update 2009 Mar 28.
|
||||
Fix for invalid memory access. (Lech Lorens, 2009 Apr 17)
|
||||
- Fix for test29. (Milan Vancura, 2010 May 16)
|
||||
- Disable setting 'encoding' from a modeline? It usually causes problems,
|
||||
can't do any good. (Patch from Patrick Texier, 2008 Dec 9)
|
||||
- Redraw problem when appending digraph causes line to wrap. (James Vega, 2007
|
||||
|
@@ -37,7 +37,8 @@
|
||||
# USEDLL no or yes: set to yes to use the Runtime library DLL (no)
|
||||
# For USEDLL=yes the cygwin1.dll is required to run Vim.
|
||||
# "no" does not work with latest version of Cygwin, use
|
||||
# Make_ming.mak instead. Or set CC to gcc-3.
|
||||
# Make_ming.mak instead. Or set CC to gcc-3 and add
|
||||
# -L/lib/w32api to EXTRA_LIBS.
|
||||
# POSTSCRIPT no or yes: set to yes for PostScript printing (no)
|
||||
# FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG)
|
||||
# WINVER Lowest Win32 version to support. (0x0400)
|
||||
|
@@ -2511,8 +2511,8 @@ objects/os_beos.o: os_beos.c
|
||||
objects/os_qnx.o: os_qnx.c
|
||||
$(CCC) -o $@ os_qnx.c
|
||||
|
||||
objects/os_macosx.o: os_macosx.c
|
||||
$(CCC) -o $@ os_macosx.c
|
||||
objects/os_macosx.o: os_macosx.m
|
||||
$(CCC) -o $@ os_macosx.m
|
||||
|
||||
objects/os_mac_conv.o: os_mac_conv.c
|
||||
$(CCC) -o $@ os_mac_conv.c
|
||||
|
34
src/auto/configure
vendored
34
src/auto/configure
vendored
@@ -4004,7 +4004,7 @@ fi
|
||||
$as_echo "no" >&6; }
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if Darwin files are there" >&5
|
||||
$as_echo_n "checking if Darwin files are there... " >&6; }
|
||||
if test -f os_macosx.c; then
|
||||
if test -f os_macosx.m; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
else
|
||||
@@ -4160,14 +4160,9 @@ rm -f core conftest.err conftest.$ac_objext \
|
||||
|
||||
if test "$enable_darwin" = "yes"; then
|
||||
MACOSX=yes
|
||||
OS_EXTRA_SRC="os_macosx.c os_mac_conv.c";
|
||||
OS_EXTRA_SRC="os_macosx.m os_mac_conv.c";
|
||||
OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
|
||||
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
|
||||
if test "x$MACARCH" = "xboth"; then
|
||||
CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
|
||||
else
|
||||
CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/Headers/FlatCarbon"
|
||||
fi
|
||||
|
||||
# On IRIX 5.3, sys/types and inttypes.h are conflicting.
|
||||
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
|
||||
@@ -7025,8 +7020,9 @@ $as_echo "no GUI support" >&6; }
|
||||
SKIP_CARBON=YES ;;
|
||||
yes|"") { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes - automatic GUI support" >&5
|
||||
$as_echo "yes - automatic GUI support" >&6; } ;;
|
||||
auto) { $as_echo "$as_me:${as_lineno-$LINENO}: result: auto - automatic GUI support" >&5
|
||||
$as_echo "auto - automatic GUI support" >&6; } ;;
|
||||
auto) { $as_echo "$as_me:${as_lineno-$LINENO}: result: auto - Carbon GUI is outdated - disable GUI support" >&5
|
||||
$as_echo "auto - Carbon GUI is outdated - disable GUI support" >&6; }
|
||||
SKIP_CARBON=YES ;;
|
||||
carbon) { $as_echo "$as_me:${as_lineno-$LINENO}: result: Carbon GUI support" >&5
|
||||
$as_echo "Carbon GUI support" >&6; } ;;
|
||||
*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: Sorry, $enable_gui GUI is not supported" >&5
|
||||
@@ -7184,6 +7180,12 @@ $as_echo "yes" >&6; };
|
||||
VIMNAME=Vim
|
||||
fi
|
||||
|
||||
if test "x$MACARCH" = "xboth"; then
|
||||
CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
|
||||
else
|
||||
CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/Headers/FlatCarbon"
|
||||
fi
|
||||
|
||||
if test x$prefix = xNONE; then
|
||||
prefix=/Applications
|
||||
fi
|
||||
@@ -11774,13 +11776,11 @@ if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
|
||||
&& test "x$GUITYPE" != "xCARBONGUI"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -framework Carbon" >&5
|
||||
$as_echo_n "checking whether we need -framework Carbon... " >&6; }
|
||||
if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \
|
||||
|| test "x$features" = "xhuge"; then
|
||||
LIBS="$LIBS -framework Carbon"
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -framework Cocoa" >&5
|
||||
$as_echo_n "checking whether we need -framework Cocoa... " >&6; }
|
||||
if test "x$features" != "xtiny" || test "x$enable_multibyte" = "xyes"; then
|
||||
LIBS=$"$LIBS -framework Cocoa"
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
else
|
||||
@@ -11788,7 +11788,7 @@ $as_echo "yes" >&6; }
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
fi
|
||||
if test "x$MACARCH" = "xboth"; then
|
||||
if test "x$MACARCH" = "xboth" && test "x$GUITYPE" = "xCARBONGUI"; then
|
||||
LDFLAGS="$LDFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
|
||||
fi
|
||||
|
||||
|
@@ -101,7 +101,7 @@ if test "`(uname) 2>/dev/null`" = Darwin; then
|
||||
if test "$enable_darwin" = "yes"; then
|
||||
AC_MSG_RESULT(no)
|
||||
AC_MSG_CHECKING(if Darwin files are there)
|
||||
if test -f os_macosx.c; then
|
||||
if test -f os_macosx.m; then
|
||||
AC_MSG_RESULT(yes)
|
||||
else
|
||||
AC_MSG_RESULT([no, Darwin support disabled])
|
||||
@@ -168,15 +168,10 @@ if test "`(uname) 2>/dev/null`" = Darwin; then
|
||||
|
||||
if test "$enable_darwin" = "yes"; then
|
||||
MACOSX=yes
|
||||
OS_EXTRA_SRC="os_macosx.c os_mac_conv.c";
|
||||
OS_EXTRA_SRC="os_macosx.m os_mac_conv.c";
|
||||
OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
|
||||
dnl TODO: use -arch i386 on Intel machines
|
||||
CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
|
||||
if test "x$MACARCH" = "xboth"; then
|
||||
CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
|
||||
else
|
||||
CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/Headers/FlatCarbon"
|
||||
fi
|
||||
|
||||
dnl If Carbon is found, assume we don't want X11
|
||||
dnl unless it was specifically asked for (--with-x)
|
||||
@@ -1325,7 +1320,8 @@ elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
|
||||
no) AC_MSG_RESULT(no GUI support)
|
||||
SKIP_CARBON=YES ;;
|
||||
yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
|
||||
auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
|
||||
auto) AC_MSG_RESULT(auto - Carbon GUI is outdated - disable GUI support)
|
||||
SKIP_CARBON=YES ;;
|
||||
carbon) AC_MSG_RESULT(Carbon GUI support) ;;
|
||||
*) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
|
||||
SKIP_CARBON=YES ;;
|
||||
@@ -1436,6 +1432,12 @@ if test "x$MACOSX" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
|
||||
VIMNAME=Vim
|
||||
fi
|
||||
|
||||
if test "x$MACARCH" = "xboth"; then
|
||||
CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
|
||||
else
|
||||
CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/Headers/FlatCarbon"
|
||||
fi
|
||||
|
||||
dnl Default install directory is not /usr/local
|
||||
if test x$prefix = xNONE; then
|
||||
prefix=/Applications
|
||||
@@ -3109,19 +3111,18 @@ if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
|
||||
&& test "x$GUITYPE" != "xCARBONGUI"; then
|
||||
AC_MSG_CHECKING(whether we need -framework Carbon)
|
||||
dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE
|
||||
if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \
|
||||
|| test "x$features" = "xhuge"; then
|
||||
LIBS="$LIBS -framework Carbon"
|
||||
if test "x$MACOSX" = "xyes"; then
|
||||
AC_MSG_CHECKING(whether we need -framework Cocoa)
|
||||
dnl Cocoa is needed with FEAT_CLIPBOARD or FEAT_MBYTE (the former is
|
||||
dnl disabled during tiny build)
|
||||
if test "x$features" != "xtiny" || test "x$enable_multibyte" = "xyes"; then
|
||||
LIBS=$"$LIBS -framework Cocoa"
|
||||
AC_MSG_RESULT(yes)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
fi
|
||||
if test "x$MACARCH" = "xboth"; then
|
||||
if test "x$MACARCH" = "xboth" && test "x$GUITYPE" = "xCARBONGUI"; then
|
||||
LDFLAGS="$LDFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
|
||||
fi
|
||||
|
||||
|
@@ -22,7 +22,7 @@
|
||||
* Include the Mac header files, unless also compiling with X11 (the header
|
||||
* files have many conflicts).
|
||||
*/
|
||||
#ifndef FEAT_X11
|
||||
#ifdef FEAT_GUI_MAC
|
||||
# include <Quickdraw.h> /* Apple calls it QuickDraw.h... */
|
||||
# include <ToolUtils.h>
|
||||
# include <LowMem.h>
|
||||
|
@@ -15,8 +15,13 @@
|
||||
|
||||
#define NO_X11_INCLUDES
|
||||
#include "vim.h"
|
||||
#ifndef FEAT_GUI_MAC
|
||||
# include <CoreServices/CoreServices.h>
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(MACOS_CONVERT) || defined(PROTO)
|
||||
|
||||
# ifdef PROTO
|
||||
/* A few dummy types to be able to generate function prototypes. */
|
||||
typedef int UniChar;
|
||||
|
@@ -8,19 +8,20 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* os_macosx.c -- Mac specific things for Mac OS/X.
|
||||
* os_macosx.m -- Mac specific things for Mac OS/X.
|
||||
*/
|
||||
|
||||
#ifdef MACOS_X_UNIX
|
||||
# ifdef HAVE_CONFIG_H /* Using Makefile. */
|
||||
# include "vim.h"
|
||||
# else
|
||||
# include "os_unix.c" /* Using Project Builder */
|
||||
# endif
|
||||
#else
|
||||
#ifndef MACOS_X_UNIX
|
||||
Error: MACOS 9 is no longer supported in Vim 7
|
||||
#endif
|
||||
|
||||
#include "vim.h"
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
|
||||
NSString *VimPboardType = @"VimPboardType";
|
||||
|
||||
|
||||
#ifdef _DEBUG
|
||||
void
|
||||
Trace(char* fmt, ...)
|
||||
@@ -609,3 +610,174 @@ mch_textdomain(const char *domain)
|
||||
return (char*)domain;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifdef FEAT_CLIPBOARD
|
||||
|
||||
void
|
||||
clip_mch_lose_selection(VimClipboard *cbd)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
clip_mch_own_selection(VimClipboard *cbd)
|
||||
{
|
||||
/* This is called whenever there is a new selection and 'guioptions'
|
||||
* contains the "a" flag (automatically copy selection). Return TRUE, else
|
||||
* the "a" flag does nothing. Note that there is no concept of "ownership"
|
||||
* of the clipboard in Mac OS X.
|
||||
*/
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
clip_mch_request_selection(VimClipboard *cbd)
|
||||
{
|
||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
NSPasteboard *pb = [NSPasteboard generalPasteboard];
|
||||
NSArray *supportedTypes = [NSArray arrayWithObjects:VimPboardType,
|
||||
NSStringPboardType, nil];
|
||||
NSString *bestType = [pb availableTypeFromArray:supportedTypes];
|
||||
if (!bestType) goto releasepool;
|
||||
|
||||
int motion_type = MCHAR;
|
||||
NSString *string = nil;
|
||||
|
||||
if ([bestType isEqual:VimPboardType])
|
||||
{
|
||||
/* This type should consist of an array with two objects:
|
||||
* 1. motion type (NSNumber)
|
||||
* 2. text (NSString)
|
||||
* If this is not the case we fall back on using NSStringPboardType.
|
||||
*/
|
||||
id plist = [pb propertyListForType:VimPboardType];
|
||||
if ([plist isKindOfClass:[NSArray class]] && [plist count] == 2)
|
||||
{
|
||||
id obj = [plist objectAtIndex:1];
|
||||
if ([obj isKindOfClass:[NSString class]])
|
||||
{
|
||||
motion_type = [[plist objectAtIndex:0] intValue];
|
||||
string = obj;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!string)
|
||||
{
|
||||
/* Use NSStringPboardType. The motion type is set to line-wise if the
|
||||
* string contains at least one EOL character, otherwise it is set to
|
||||
* character-wise (block-wise is never used).
|
||||
*/
|
||||
NSMutableString *mstring =
|
||||
[[pb stringForType:NSStringPboardType] mutableCopy];
|
||||
if (!mstring) goto releasepool;
|
||||
|
||||
/* Replace unrecognized end-of-line sequences with \x0a (line feed). */
|
||||
NSRange range = { 0, [mstring length] };
|
||||
unsigned n = [mstring replaceOccurrencesOfString:@"\x0d\x0a"
|
||||
withString:@"\x0a" options:0
|
||||
range:range];
|
||||
if (0 == n)
|
||||
{
|
||||
n = [mstring replaceOccurrencesOfString:@"\x0d" withString:@"\x0a"
|
||||
options:0 range:range];
|
||||
}
|
||||
|
||||
/* Scan for newline character to decide whether the string should be
|
||||
* pasted line-wise or character-wise.
|
||||
*/
|
||||
motion_type = MCHAR;
|
||||
if (0 < n || NSNotFound != [mstring rangeOfString:@"\n"].location)
|
||||
motion_type = MLINE;
|
||||
|
||||
string = mstring;
|
||||
}
|
||||
|
||||
if (!(MCHAR == motion_type || MLINE == motion_type || MBLOCK == motion_type
|
||||
|| MAUTO == motion_type))
|
||||
motion_type = MCHAR;
|
||||
|
||||
char_u *str = (char_u*)[string UTF8String];
|
||||
int len = [string lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (input_conv.vc_type != CONV_NONE)
|
||||
str = string_convert(&input_conv, str, &len);
|
||||
#endif
|
||||
|
||||
if (str)
|
||||
clip_yank_selection(motion_type, str, len, cbd);
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (input_conv.vc_type != CONV_NONE)
|
||||
vim_free(str);
|
||||
#endif
|
||||
|
||||
releasepool:
|
||||
[pool release];
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Send the current selection to the clipboard.
|
||||
*/
|
||||
void
|
||||
clip_mch_set_selection(VimClipboard *cbd)
|
||||
{
|
||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
/* If the '*' register isn't already filled in, fill it in now. */
|
||||
cbd->owned = TRUE;
|
||||
clip_get_selection(cbd);
|
||||
cbd->owned = FALSE;
|
||||
|
||||
/* Get the text to put on the pasteboard. */
|
||||
long_u llen = 0; char_u *str = 0;
|
||||
int motion_type = clip_convert_selection(&str, &llen, cbd);
|
||||
if (motion_type < 0)
|
||||
goto releasepool;
|
||||
|
||||
/* TODO: Avoid overflow. */
|
||||
int len = (int)llen;
|
||||
#ifdef FEAT_MBYTE
|
||||
if (output_conv.vc_type != CONV_NONE)
|
||||
{
|
||||
char_u *conv_str = string_convert(&output_conv, str, &len);
|
||||
if (conv_str)
|
||||
{
|
||||
vim_free(str);
|
||||
str = conv_str;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (len > 0)
|
||||
{
|
||||
NSString *string = [[NSString alloc]
|
||||
initWithBytes:str length:len encoding:NSUTF8StringEncoding];
|
||||
|
||||
/* See clip_mch_request_selection() for info on pasteboard types. */
|
||||
NSPasteboard *pb = [NSPasteboard generalPasteboard];
|
||||
NSArray *supportedTypes = [NSArray arrayWithObjects:VimPboardType,
|
||||
NSStringPboardType, nil];
|
||||
[pb declareTypes:supportedTypes owner:nil];
|
||||
|
||||
NSNumber *motion = [NSNumber numberWithInt:motion_type];
|
||||
NSArray *plist = [NSArray arrayWithObjects:motion, string, nil];
|
||||
[pb setPropertyList:plist forType:VimPboardType];
|
||||
|
||||
[pb setString:string forType:NSStringPboardType];
|
||||
|
||||
[string release];
|
||||
}
|
||||
|
||||
vim_free(str);
|
||||
releasepool:
|
||||
[pool release];
|
||||
}
|
||||
|
||||
#endif /* FEAT_CLIPBOARD */
|
Reference in New Issue
Block a user