Compare commits

...

14 Commits

Author SHA1 Message Date
Bjorn Winckler 3b966f9e01 Snapshot 31 2008-06-13 16:35:31 +02:00
Bjorn Winckler 8009a9912d Update DejaVu font to version 2.25 2008-06-13 14:27:02 +02:00
Bjorn Winckler cdf043f0f9 Draw modeless selection 2008-06-12 22:22:16 +02:00
Bjorn Winckler 757e8b4359 Toolbar buttons respond to mouse clicks again
Toolbar items send vimToolbarItemAction: instead of vimMenuItemAction:.
This enables us to separate toolbar items from menu items and can build
proper descriptors (starting with "ToolBar").
2008-06-12 13:23:26 +02:00
Bjorn Winckler 7b68b0b56d Disable default main menu key equivalent hack
In performKeyEquivalent: do not pass the key equivalent to
defaultMainMenu since this breaks the menus on OS X 10.4.  Also, this
hack is not strictly needed now that window cycling is hardcoded (and a
"New Window" menu is always available on the dock menu) so it is just as
well that it is removed.
2008-06-12 12:58:52 +02:00
Bjorn Winckler 21b029712f Set mouse cursor on mouseMoved:
This seems to be the only way to get the mouse cursor not to be changed
to an I-beam cursor all the time.
2008-06-09 22:18:36 +02:00
Bjorn Winckler 80b4c97a2c Add Dock menu 2008-06-09 21:52:32 +02:00
Bjorn Winckler 404077032e Dialog box handling updated
Keep waiting for dialog reply until it is received.  Any input received
during this wait is discarded unless it is a 'set text dimensions'
message (or keyboard/mouse input).  Also, make setDialogReturn: a
synchronous call so that it is less likely to get dropped.
2008-06-09 21:34:54 +02:00
Bjorn Winckler 04cd1420c1 Force flush output queue before presenting any dialog
The previous commit did not ensure the output queue was flushed before
"browse" dialogs were shown.
2008-06-09 19:13:43 +02:00
Bjorn Winckler 46ae2ec9cb Force flush output queue before showing dialog
This ensures that the swap file information is displayed when the 'swap
file exists' dialog is shown.
2008-06-09 18:48:10 +02:00
Bjorn Winckler 85cc2265e8 Merge upstream 2008-06-09 17:08:00 +02:00
vimboss 4c3907a8ff updated for version 7.1-314 2008-06-09 15:07:54 +00:00
vimboss f4fef46de2 updated for version 7.1-313 2008-06-09 13:10:45 +00:00
vimboss 28c76af675 updated for version 7.1-312 2008-06-09 12:46:00 +00:00
33 changed files with 6574 additions and 130 deletions
+1 -3
View File
@@ -9,9 +9,7 @@
<key>IBOldestOS</key>
<integer>5</integer>
<key>IBOpenObjects</key>
<array>
<integer>310</integer>
</array>
<array/>
<key>IBSystem Version</key>
<string>9D34</string>
<key>targetFramework</key>
Binary file not shown.
+1 -1
View File
@@ -574,7 +574,7 @@
<key>CFBundleSignature</key>
<string>VIMM</string>
<key>CFBundleVersion</key>
<string>30</string>
<string>31</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
+31 -8
View File
@@ -96,6 +96,8 @@ enum {
- (void)clearAll;
- (void)drawInsertionPointAtRow:(int)row column:(int)col shape:(int)shape
fraction:(int)percent color:(NSColor *)color;
- (void)drawInvertedRectAtRow:(int)row column:(int)col numRows:(int)nrows
numColumns:(int)ncols;
@end
@@ -418,14 +420,6 @@ enum {
if ([[NSApp mainMenu] performKeyEquivalent:event])
return YES;
// HACK! Give the default main menu a chance to handle the key down event.
// This is to ensure that the standard mappings (which are in the default
// main menu) are always available, also when the default Vim menus are
// used (these do not set any key equivalents!).
if ([[[MMAppController sharedInstance] defaultMainMenu]
performKeyEquivalent:event])
return YES;
// HACK! On Leopard Ctrl-key events end up here instead of keyDown:.
if (flags & NSControlKeyMask) {
[self keyDown:event];
@@ -607,6 +601,19 @@ enum {
[self drawInsertionPointAtRow:row column:col shape:shape
fraction:percent
color:[NSColor colorWithRgbInt:color]];
} else if (DrawInvertedRectDrawType == type) {
int row = *((int*)bytes); bytes += sizeof(int);
int col = *((int*)bytes); bytes += sizeof(int);
int nr = *((int*)bytes); bytes += sizeof(int);
int nc = *((int*)bytes); bytes += sizeof(int);
/*int invert = *((int*)bytes);*/ bytes += sizeof(int);
#if MM_DEBUG_DRAWING
NSLog(@" Draw inverted rect: row=%d col=%d nrows=%d ncols=%d",
row, col, nr, nc);
#endif
[self drawInvertedRectAtRow:row column:col numRows:nr
numColumns:nc];
} else if (SetCursorPosDrawType == type) {
// TODO: This is used for Voice Over support in MMTextView,
// MMAtsuiTextView currently does not support Voice Over.
@@ -1141,4 +1148,20 @@ enum {
}
}
- (void)drawInvertedRectAtRow:(int)row column:(int)col numRows:(int)nrows
numColumns:(int)ncols
{
// TODO: THIS CODE HAS NOT BEEN TESTED!
CGContextRef cgctx = [[NSGraphicsContext currentContext] graphicsPort];
CGContextSaveGState(cgctx);
CGContextSetBlendMode(cgctx, kCGBlendModeDifference);
CGContextSetRGBFillColor(cgctx, 1.0, 1.0, 1.0, 1.0);
CGRect rect = { col * cellSize.width, row * cellSize.height,
ncols * cellSize.width, nrows * cellSize.height };
CGContextFillRect(cgctx, rect);
CGContextRestoreGState(cgctx);
}
@end // MMAtsuiTextView (Drawing)
+2
View File
@@ -71,6 +71,8 @@
scrollBottom:(int)bottom left:(int)left right:(int)right;
- (void)drawCursorAtRow:(int)row column:(int)col shape:(int)shape
fraction:(int)percent color:(int)color;
- (void)drawInvertedRectAtRow:(int)row column:(int)col numRows:(int)nr
numColumns:(int)nc invert:(int)invert;
- (void)update;
- (void)flushQueue:(BOOL)force;
- (BOOL)waitForInput:(int)milliseconds;
+67 -7
View File
@@ -80,6 +80,7 @@ static NSString *MMSymlinkWarningString =
@interface MMBackend (Private)
- (void)waitForDialogReturn;
- (void)queueVimStateMessage;
- (void)processInputQueue;
- (void)handleInputEvent:(int)msgid data:(NSData *)data;
@@ -428,6 +429,19 @@ static NSString *MMSymlinkWarningString =
[drawData appendBytes:&percent length:sizeof(int)];
}
- (void)drawInvertedRectAtRow:(int)row column:(int)col numRows:(int)nr
numColumns:(int)nc invert:(int)invert
{
int type = DrawInvertedRectDrawType;
[drawData appendBytes:&type length:sizeof(int)];
[drawData appendBytes:&row length:sizeof(int)];
[drawData appendBytes:&col length:sizeof(int)];
[drawData appendBytes:&nr length:sizeof(int)];
[drawData appendBytes:&nc length:sizeof(int)];
[drawData appendBytes:&invert length:sizeof(int)];
}
- (void)update
{
// Tend to the run loop, returning immediately if there are no events
@@ -640,9 +654,7 @@ static NSString *MMSymlinkWarningString =
@try {
[frontendProxy showSavePanelForDirectory:ds title:ts saving:saving];
// Wait until a reply is sent from MMVimController.
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
beforeDate:[NSDate distantFuture]];
[self waitForDialogReturn];
if (dialogReturn && [dialogReturn isKindOfClass:[NSString class]]) {
char_u *ret = (char_u*)[dialogReturn UTF8String];
@@ -664,13 +676,18 @@ static NSString *MMSymlinkWarningString =
return (char *)s;
}
- (oneway void)setDialogReturn:(in bycopy id)obj
- (void)setDialogReturn:(in bycopy id)obj
{
// NOTE: This is called by
// - [MMVimController panelDidEnd:::], and
// - [MMVimController alertDidEnd:::],
// to indicate that a save/open panel or alert has finished.
// We want to distinguish between "no dialog return yet" and "dialog
// returned nothing". The former can be tested with dialogReturn == nil,
// the latter with dialogReturn == [NSNull null].
if (!obj) obj = [NSNull null];
if (obj != dialogReturn) {
[dialogReturn release];
dialogReturn = [obj retain];
@@ -719,9 +736,7 @@ static NSString *MMSymlinkWarningString =
informativeText:text buttonTitles:buttons
textFieldString:textFieldString];
// Wait until a reply is sent from MMVimController.
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
beforeDate:[NSDate distantFuture]];
[self waitForDialogReturn];
if (dialogReturn && [dialogReturn isKindOfClass:[NSArray class]]
&& [dialogReturn count]) {
@@ -1475,6 +1490,49 @@ static NSString *MMSymlinkWarningString =
@implementation MMBackend (Private)
- (void)waitForDialogReturn
{
// Keep processing the run loop until a dialog returns. To avoid getting
// stuck in an endless loop (could happen if the setDialogReturn: message
// was lost) we also do some paranoia checks.
//
// Note that in Cocoa the user can still resize windows and select menu
// items while a sheet is being displayed, so we can't just wait for the
// first message to arrive and assume that is the setDialogReturn: call.
while (nil == dialogReturn && !got_int && [connection isValid]
&& !isTerminating)
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
beforeDate:[NSDate distantFuture]];
// Search for any resize messages on the input queue. All other messages
// on the input queue are dropped. The reason why we single out resize
// messages is because the user may have resized the window while a sheet
// was open.
int i, count = [inputQueue count];
if (count > 0) {
id textDimData = nil;
if (count%2 == 0) {
for (i = count-2; i >= 0; i -= 2) {
int msgid = [[inputQueue objectAtIndex:i] intValue];
if (SetTextDimensionsMsgID == msgid) {
textDimData = [[inputQueue objectAtIndex:i+1] retain];
break;
}
}
}
[inputQueue removeAllObjects];
if (textDimData) {
[inputQueue addObject:
[NSNumber numberWithInt:SetTextDimensionsMsgID]];
[inputQueue addObject:textDimData];
[textDimData release];
}
}
}
- (void)queueVimStateMessage
{
// NOTE: This is the place to add Vim state that needs to be accessed from
@@ -1494,6 +1552,8 @@ static NSString *MMSymlinkWarningString =
- (void)processInputQueue
{
if ([inputQueue count] == 0) return;
// NOTE: One of the input events may cause this method to be called
// recursively, so copy the input queue to a local variable and clear it
// before starting to process input events (otherwise we could get stuck in
+2 -2
View File
@@ -29,14 +29,14 @@
int preEditColumn;
int mouseShape;
BOOL antialias;
NSRect *invertRects;
int numInvertRects;
}
- (id)initWithFrame:(NSRect)frame;
- (void)setShouldDrawInsertionPoint:(BOOL)on;
- (void)setPreEditRow:(int)row column:(int)col;
- (void)drawInsertionPointAtRow:(int)row column:(int)col shape:(int)shape
fraction:(int)percent color:(NSColor *)color;
- (void)hideMarkedTextField;
- (void)performBatchDrawWithData:(NSData *)data;
- (void)setMouseShape:(int)shape;
+107 -30
View File
@@ -50,6 +50,8 @@ enum {
- (void)setCursor;
- (BOOL)convertPoint:(NSPoint)point toRow:(int *)row column:(int *)column;
- (BOOL)convertRow:(int)row column:(int)column toPoint:(NSPoint *)point;
- (BOOL)convertRow:(int)row column:(int)column numRows:(int)nr
numColumns:(int)nc toRect:(NSRect *)rect;
- (NSRect)trackingRect;
- (void)dispatchKeyEvent:(NSEvent *)event;
- (MMWindowController *)windowController;
@@ -58,6 +60,10 @@ enum {
- (void)dragTimerFired:(NSTimer *)timer;
- (void)sendKeyDown:(const char *)chars length:(int)len modifiers:(int)flags;
- (void)hideMouseCursor;
- (void)drawInsertionPointAtRow:(int)row column:(int)col shape:(int)shape
fraction:(int)percent color:(NSColor *)color;
- (void)drawInvertedRectAtRow:(int)row column:(int)col numRows:(int)nrows
numColumns:(int)ncols invert:(int)invert;
@end
@@ -130,6 +136,12 @@ enum {
markedTextField = nil;
}
if (invertRects) {
free(invertRects);
invertRects = NULL;
numInvertRects = 0;
}
[super dealloc];
}
@@ -153,23 +165,6 @@ enum {
preEditColumn = col;
}
- (void)drawInsertionPointAtRow:(int)row column:(int)col shape:(int)shape
fraction:(int)percent color:(NSColor *)color
{
//NSLog(@"drawInsertionPointAtRow:%d column:%d shape:%d color:%@",
// row, col, shape, color);
// This only stores where to draw the insertion point, the actual drawing
// is done in drawRect:.
shouldDrawInsertionPoint = YES;
insertionPointRow = row;
insertionPointColumn = col;
insertionPointShape = shape;
insertionPointFraction = percent;
[self setInsertionPointColor:color];
}
- (void)hideMarkedTextField
{
if (markedTextField) {
@@ -300,6 +295,19 @@ enum {
[self drawInsertionPointAtRow:row column:col shape:shape
fraction:percent
color:[NSColor colorWithRgbInt:color]];
} else if (DrawInvertedRectDrawType == type) {
int row = *((int*)bytes); bytes += sizeof(int);
int col = *((int*)bytes); bytes += sizeof(int);
int nr = *((int*)bytes); bytes += sizeof(int);
int nc = *((int*)bytes); bytes += sizeof(int);
int invert = *((int*)bytes); bytes += sizeof(int);
#if MM_DEBUG_DRAWING
NSLog(@" Draw inverted rect: row=%d col=%d nrows=%d ncols=%d",
row, col, nr, nc);
#endif
[self drawInvertedRectAtRow:row column:col numRows:nr numColumns:nc
invert:invert];
} else if (SetCursorPosDrawType == type) {
cursorRow = *((int*)bytes); bytes += sizeof(int);
cursorCol = *((int*)bytes); bytes += sizeof(int);
@@ -452,6 +460,24 @@ enum {
[super drawRect:rect];
if (invertRects) {
CGContextRef cgctx = (CGContextRef)[context graphicsPort];
CGContextSaveGState(cgctx);
CGContextSetBlendMode(cgctx, kCGBlendModeDifference);
CGContextSetRGBFillColor(cgctx, 1.0, 1.0, 1.0, 1.0);
int i;
CGRect *rect = (CGRect*)invertRects;
for (i = 0; i < numInvertRects; ++i)
CGContextFillRect(cgctx, rect[i]);
CGContextRestoreGState(cgctx);
free(invertRects);
invertRects = NULL;
numInvertRects = 0;
}
if (shouldDrawInsertionPoint) {
MMTextStorage *ts = (MMTextStorage*)[self textStorage];
@@ -652,14 +678,6 @@ enum {
if ([[NSApp mainMenu] performKeyEquivalent:event])
return YES;
// HACK! Give the default main menu a chance to handle the key down event.
// This is to ensure that the standard mappings (which are in the default
// main menu) are always available, also when the default Vim menus are
// used (these do not set any key equivalents!).
if ([[[MMAppController sharedInstance] defaultMainMenu]
performKeyEquivalent:event])
return YES;
// HACK! On Leopard Ctrl-key events end up here instead of keyDown:.
if (flags & NSControlKeyMask) {
[self keyDown:event];
@@ -932,6 +950,11 @@ enum {
MMTextStorage *ts = (MMTextStorage*)[self textStorage];
if (!ts) return;
// HACK! NSTextView has a nasty habit of resetting the cursor to the
// default I-beam cursor at random moments. The only reliable way we know
// of to work around this is to set the cursor each time the mouse moves.
[self setCursor];
NSPoint pt = [self convertPoint:[event locationInWindow] fromView:nil];
int row, col;
if (![self convertPoint:pt toRow:&row column:&col])
@@ -964,11 +987,6 @@ enum {
// key.
if ([[self window] isKeyWindow]) {
[[self window] setAcceptsMouseMovedEvents:YES];
// Ensure Vim gets to choose the mouse cursor when it enters over the
// text view, otherwise NSTextView will automatically set its I-Beam
// cursor.
[self setCursor];
}
}
@@ -1250,6 +1268,23 @@ enum {
return YES;
}
- (BOOL)convertRow:(int)row column:(int)column numRows:(int)nr
numColumns:(int)nc toRect:(NSRect *)rect
{
MMTextStorage *ts = (MMTextStorage*)[self textStorage];
NSSize cellSize = [ts cellSize];
if (!(rect && cellSize.width > 0 && cellSize.height > 0))
return NO;
rect->origin = [self textContainerOrigin];
rect->origin.x += column * cellSize.width;
rect->origin.y += row * cellSize.height;
rect->size.width = cellSize.width * nc;
rect->size.height = cellSize.height * nr;
return YES;
}
- (NSRect)trackingRect
{
NSRect rect = [self frame];
@@ -1400,4 +1435,46 @@ enum {
[NSCursor setHiddenUntilMouseMoves:YES];
}
- (void)drawInsertionPointAtRow:(int)row column:(int)col shape:(int)shape
fraction:(int)percent color:(NSColor *)color
{
//NSLog(@"drawInsertionPointAtRow:%d column:%d shape:%d color:%@",
// row, col, shape, color);
// This only stores where to draw the insertion point, the actual drawing
// is done in drawRect:.
shouldDrawInsertionPoint = YES;
insertionPointRow = row;
insertionPointColumn = col;
insertionPointShape = shape;
insertionPointFraction = percent;
[self setInsertionPointColor:color];
}
- (void)drawInvertedRectAtRow:(int)row column:(int)col numRows:(int)nrows
numColumns:(int)ncols invert:(int)invert
{
if (invert) {
// The result should be inverted.
int n = numInvertRects++;
invertRects = reallocf(invertRects,
numInvertRects*sizeof(NSRect));
if (NULL != invertRects) {
[self convertRow:row column:col numRows:nrows numColumns:ncols
toRect:&invertRects[n]];
[self setNeedsDisplayInRect:invertRects[n]];
} else {
n = numInvertRects = 0;
}
} else {
// The result should look normal; all we need to do is to mark
// the rect for redrawing and Cocoa will redraw the text.
NSRect rect;
[self convertRow:row column:col numRows:nrows numColumns:ncols
toRect:&rect];
[self setNeedsDisplayInRect:rect];
}
}
@end // MMTextView (Private)
+15 -1
View File
@@ -47,6 +47,8 @@ static NSTimeInterval MMBackendProxyRequestTimeout = 0;
static NSTimeInterval MMResendInterval = 0.5;
#endif
static NSTimeInterval MMSetDialogReturnTimeout = 1.0;
@interface MMAlert : NSAlert {
NSTextField *textField;
@@ -813,6 +815,15 @@ static NSTimeInterval MMResendInterval = 0.5;
context:(void *)context
{
NSString *path = (code == NSOKButton) ? [panel filename] : nil;
// NOTE! setDialogReturn: is a synchronous call so set a proper timeout to
// avoid waiting forever for it to finish. We make this a synchronous call
// so that we can be fairly certain that Vim doesn't think the dialog box
// is still showing when MacVim has in fact already dismissed it.
NSConnection *conn = [backendProxy connectionForProxy];
NSTimeInterval oldTimeout = [conn requestTimeout];
[conn setRequestTimeout:MMSetDialogReturnTimeout];
@try {
[backendProxy setDialogReturn:path];
@@ -825,6 +836,9 @@ static NSTimeInterval MMResendInterval = 0.5;
@catch (NSException *e) {
NSLog(@"Exception caught in %s %@", _cmd, e);
}
@finally {
[conn setRequestTimeout:oldTimeout];
}
}
- (void)alertDidEnd:(MMAlert *)alert code:(int)code context:(void *)context
@@ -1123,7 +1137,7 @@ static NSTimeInterval MMResendInterval = 0.5;
NSToolbarItem *item = [[NSToolbarItem alloc] initWithItemIdentifier:title];
[item setLabel:title];
[item setToolTip:tip];
[item setAction:@selector(vimMenuItemAction:)];
[item setAction:@selector(vimToolbarItemAction:)];
[item setAutovalidates:NO];
NSImage *img = [NSImage imageNamed:icon];
+1
View File
@@ -68,6 +68,7 @@
- (IBAction)findNext:(id)sender;
- (IBAction)findPrevious:(id)sender;
- (IBAction)vimMenuItemAction:(id)sender;
- (IBAction)vimToolbarItemAction:(id)sender;
- (IBAction)fontSizeUp:(id)sender;
- (IBAction)fontSizeDown:(id)sender;
+8
View File
@@ -609,6 +609,14 @@
[vimController sendMessage:ExecuteMenuMsgID data:[attrs dictionaryAsData]];
}
- (IBAction)vimToolbarItemAction:(id)sender
{
NSArray *desc = [NSArray arrayWithObjects:@"ToolBar", [sender label], nil];
NSDictionary *attrs = [NSDictionary dictionaryWithObject:desc
forKey:@"descriptor"];
[vimController sendMessage:ExecuteMenuMsgID data:[attrs dictionaryAsData]];
}
- (IBAction)fontSizeUp:(id)sender
{
[[NSFontManager sharedFontManager] modifyFont:
+2 -1
View File
@@ -29,7 +29,7 @@
@protocol MMBackendProtocol
- (oneway void)processInput:(int)msgid data:(in bycopy NSData *)data;
- (oneway void)processInputAndData:(in bycopy NSArray *)messages;
- (oneway void)setDialogReturn:(in bycopy id)obj;
- (void)setDialogReturn:(in bycopy id)obj;
- (NSString *)evaluateExpression:(in bycopy NSString *)expr;
- (BOOL)starRegisterToPasteboard:(byref NSPasteboard *)pboard;
@end
@@ -176,6 +176,7 @@ enum {
InsertLinesDrawType,
DrawCursorDrawType,
SetCursorPosDrawType,
DrawInvertedRectDrawType,
};
enum {
+7 -7
View File
@@ -193,10 +193,10 @@
1D1474B40C56796D0038FA2B /* MMVimController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = MMVimController.m; sourceTree = "<group>"; };
1D1474B90C567A910038FA2B /* MMWindowController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MMWindowController.h; sourceTree = "<group>"; };
1D1474BA0C567A910038FA2B /* MMWindowController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = MMWindowController.m; sourceTree = "<group>"; };
1D3D190D0CA690FF0004A0A5 /* DejaVuSansMono-Bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "DejaVuSansMono-Bold.ttf"; path = "dejavu-ttf-2.20/DejaVuSansMono-Bold.ttf"; sourceTree = "<group>"; };
1D3D190E0CA690FF0004A0A5 /* DejaVuSansMono-BoldOblique.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "DejaVuSansMono-BoldOblique.ttf"; path = "dejavu-ttf-2.20/DejaVuSansMono-BoldOblique.ttf"; sourceTree = "<group>"; };
1D3D190F0CA690FF0004A0A5 /* DejaVuSansMono-Oblique.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "DejaVuSansMono-Oblique.ttf"; path = "dejavu-ttf-2.20/DejaVuSansMono-Oblique.ttf"; sourceTree = "<group>"; };
1D3D19100CA690FF0004A0A5 /* DejaVuSansMono.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = DejaVuSansMono.ttf; path = "dejavu-ttf-2.20/DejaVuSansMono.ttf"; sourceTree = "<group>"; };
1D3D190D0CA690FF0004A0A5 /* DejaVuSansMono-Bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "DejaVuSansMono-Bold.ttf"; path = "dejavu-ttf/DejaVuSansMono-Bold.ttf"; sourceTree = "<group>"; };
1D3D190E0CA690FF0004A0A5 /* DejaVuSansMono-BoldOblique.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "DejaVuSansMono-BoldOblique.ttf"; path = "dejavu-ttf/DejaVuSansMono-BoldOblique.ttf"; sourceTree = "<group>"; };
1D3D190F0CA690FF0004A0A5 /* DejaVuSansMono-Oblique.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "DejaVuSansMono-Oblique.ttf"; path = "dejavu-ttf/DejaVuSansMono-Oblique.ttf"; sourceTree = "<group>"; };
1D3D19100CA690FF0004A0A5 /* DejaVuSansMono.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = DejaVuSansMono.ttf; path = "dejavu-ttf/DejaVuSansMono.ttf"; sourceTree = "<group>"; };
1D493D570C5247BF00AB718C /* Vim */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = Vim; path = ../Vim; sourceTree = SOURCE_ROOT; };
1D493DB30C52533B00AB718C /* PSMTabBarControl.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = PSMTabBarControl.xcodeproj; path = PSMTabBarControl/PSMTabBarControl.xcodeproj; sourceTree = "<group>"; };
1D71ACA90BC702AB002F2B60 /* doc-bm-c.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "doc-bm-c.icns"; sourceTree = "<group>"; };
@@ -698,7 +698,7 @@
i386,
);
COPY_PHASE_STRIP = YES;
CURRENT_PROJECT_VERSION = 30;
CURRENT_PROJECT_VERSION = 31;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)",
@@ -739,7 +739,7 @@
buildSettings = {
ARCHS = "$(NATIVE_ARCH)";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 30;
CURRENT_PROJECT_VERSION = 31;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)",
@@ -770,7 +770,7 @@
buildSettings = {
ARCHS = "$(NATIVE_ARCH)";
COPY_PHASE_STRIP = YES;
CURRENT_PROJECT_VERSION = 30;
CURRENT_PROJECT_VERSION = 31;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)",
@@ -20,21 +20,25 @@ John Karp
Keenan Pepper
Lars Naesbye Christensen
Mashrab Kuvatov
Max Berger
Mederic Boquien
Michael Everson
Misu Moldovan
Nguyen Thai Ngoc Duy
Nicolas Mailhot
Ognyan Kulev
Ondrej Koala Vacha
Peter Cernak
Remy Oudompheng
Roozbeh Pournader
Sahak Petrosyan
Sander Vesik
Stepan Roh
Stephen Hartke
Tavmjong Bah
Tim May
Valentin Stoykov
Vasek Stodulka
Wesley Transue
$Id: AUTHORS 1910 2007-06-25 19:10:14Z ben_laenen $
$Id: AUTHORS 2162 2007-12-27 12:39:07Z ben_laenen $
@@ -1,4 +1,5 @@
Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. Glyphs imported from Arev fonts are (c) Tavmjung Bah (see below)
Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below)
Bitstream Vera Fonts Copyright
------------------------------
@@ -95,4 +96,4 @@ dealings in this Font Software without prior written authorization
from Tavmjong Bah. For further information, contact: tavmjong @ free
. fr.
$Id: LICENSE 778 2006-04-20 18:14:24Z moyogo $
$Id: LICENSE 2133 2007-11-28 02:46:28Z lechimp $
@@ -1,3 +1,124 @@
Changes from 2.24 to 2.25
- moved/added U+2E18 (by Gee Fung Sit)
- added empty glyph for U+2064 in Sans and Serif (by Gee Fung Sit)
- added U+22CE-U+22CF to Sans (by Gee Fung Sit)
- Sans Oblique and Bold Oblique, Serif: reverted digits hinting instructions back to before revision 1590, which fixed mistaken debian bug #471024. This fixes Debian bug #411308. The original bug was in freetype not in the fonts (by Denis Jacquerye)
- added U+A726-U+A729, U+A730-U+A733, U+A738-U+A73F, U+A746-U+A74B, U+A74E-U+A74F, U+A780-U+A781, U+A7FB-U+A7FF to Sans (by Gee Fung Sit)
- added Macedonian italic glyph shape for U+0453 in Serif (by Ben Laenen)
- changed descenders in U+0446, U+0449, U+0497, U+04A3, U+04AD (by Andrey V. Panov)
- updated main SFD files to SplineFontDB 3.0 (Denis Jacquerye and Gee Fung Sit)
- moved U+0561 2 up since it wasn't aligned with the baseline well (by Ben Laenen)
- added U+2E2E to Sans (by Gee Fung Sit)
- replaced U+2699 with simpler version in Sans (by Gee Fung Sit)
- added a lot of hinting instructions to Latin Extended B, Greek and Coptic glyphs Sans Book (by Wesley Transue)
- differentiated U+2219 from U+22C5 and adjusted affected references in Sans and Mono (by Gee Fung Sit)
- made Hebrew narrower in Sans Bold and Sans Bold Oblique (by Denis Jacquerye)
- added Kurdish and Chuvash letters from Unicode 5.1 Cyrillic Extended block (by Wesley Transue)
- added U+1E9F, U+A644-U+A647, U+A64C-U+A64D, U+A650-U+A651, U+A654-U+A655, U+A712U+A716 to Sans (by Gee Fung Sit)
- added several glyphs to Sans ExtraLight (by Gee Fung Sit)
- added hinting instructions to U+046A-U+046B, U+0508-U+0509, U+050B, U+0512-U+0513 in Sans Book (by Wesley Transue)
- corrected width of U+027E in Sans Book (by Gee Fung Sit)
- added U+2C79, U+2C7B-U+2C7D to Sans (by Gee Fung Sit)
- added a bunch of glyphs+small corrections to Sans Light (by Gee Fung Sit)
- added U+0496, U+0497, U+04B0, U+04B1 (by Andrey V. Panov)
- updated U+0493, U+049B, U+04B3, U+04B7, U+04F7 (by Andrey V. Panov)
- further improvements in extended Cyrillic (by Andrey V. Panov)
Changes from 2.23 to 2.24
- instructions for U+05C0 ׀, U+05C3 ׃, U+05F3 ׳, and U+05F4 ״ in DejaVu
Sans. (by Wesley Transue)
- instructions for U+2116 in Sans (by Andrey V. Panov)
- Unicode 5.1 update: moved U+F208 to U+2C6D, U+F25F to U+2C71, added
U+2C6E-U+2C6F, U+2C72-U+2C73, updated outline of U+2C71 in Sans. (by
Denis Jacquerye)
- updated and instructed U+0401 in Sans (by Andrey V. Panov)
- fixed the bug in Sans faces where U+02EC ˬ faced the wrong direction.
Also, added a few more glyph instructions. (by Wesley Transue)
- removed OS2Sub and OS2Strike that weren't intentional in Sans
ExtraLight. (by Denis Jacquerye)
- updated instructions for U+401, U+44F in Serif Book. (by Andrey V.
Panov)
- instructions for U+02C4 ˄, U+02C5 ˅, U+03D8 Ϙ, U+03D9 ϙ, U+0494 Ҕ, and
U+0495 ҕ in Sans Book. (by Wesley Transue)
- instructions for U+01A6 Ʀ, U+0238 ȸ, U+0239 ȹ, U+02EC ˬ, and U+05C6 ׆
in Sans Book. (by Wesley Transue)
- DejaVuSans.sfd DejaVuSerif.sfd: updated instructions for U+447 and
U+451 using code generated with xgridfit (by Andrey V. Panov)
- instructions for a few glyphs in the Latin Extended-B Block, Greek
Block, Cyrillic Block, and N'Ko block. (by Wesley Transue)
- updated sfdnormalize.pl, and SFD files to new SFD format with empty
lines. (by Denis Jacquerye)
Changes from 2.22 to 2.23
- fixed bug which made Condensed fonts appear instead of normal width ones
- added U+20DB, U+20DC, and U+20E1 to Sans (by Roozbeh Pournader)
- added hinting instructions to U+01A7, U+01AA-U+01AC, U+01AE-U+01AF,
U+01BC-U+01BD, U+01BF, U+01F7, U+0277, U+027F, U+0285-U+0286, U+0297, U+02AF,
U+02B4-U+02B5, U+02BD, U+030D, U+0311, U+0329, U+04A0-U+04A1 in Sans Book (by
Wesley Transue)
- modified hinting instructions of U+04A2 in Sans Book (by Wesley Transue)
- added hinting instructions to U+237D, U+2423 in Mono Book and Mono Bold (by
Wesley Transue)
- added mathematical alphanumeric symbols to all styles (by Max Berger)
- added Unicode 5.1 U+2E18 as U+2E18.u51 (not yet usable) to Sans (by Roozbeh
Pournader)
- dereferenced all glyphs with mixed references and outlines (by Denis
Jacquerye)
- removed non-zero width from U+0344 in Sans (by Denis Jacquerye)
Changes from 2.21 to 2.22
- directory structure has changed, we now use the Makefile
- modified Armenian U+0565 in Sans (by Սահակ Պետրոսյան)
- added double struck letters and numbers U+2102, U+210D, U+2115,
U+2119-U+211A, U+211D, U+2124, U+213C-U+2140, U+2145-U+2149, U+1D538-U+1D539,
U+1D53B-U+1D53E, U+1D540-U+1D544, U+1D546, U+1D54A-U+1D550, U+1D552-U+1D56B,
U+1D7D8-U+1D7E1 to Serif (by Stephen Hartke)
- added letterlike symbols U+2103, U+2109, U+2127, U+214B, U+2141-U+2144 to
Serif (by Ben Laenen)
- fixed outline direction of U+2143 in Sans Bold/Bold Oblique (by Ben Laenen)
- added arrow set in Serif: arrows: U+2194-U+21FF; dingbats: U+27A1;
supplemental arrows A: U+27F0-U+27FF; supplemental arrows B: U+2900-U+2975,
U+297A; miscellaneous symbols and arrows: U+2B00-U+2B11 (by Ben Laenen)
- added U+0180, U+01DE, U+01E0-01E1, U+022A, U+022C, U+0230, U+1E08-U+1E09,
U+1E10-U+1E11, U+1EB0-U+1EB1 to Mono (by Denis Jacquerye)
- adjusted U+01D5, U+01D7, U+01D9, U+1DB in Mono (by Denis Jacquerye)
- added Ogham in Sans (by Wesley Transue)
- added Yijing Hexagram Symbols in Sans (by Wesley Transue)
- hinting instructions added to Cyrillic U+0460, U+04A6-U+04A7, U+04AC-U+04AD,
U+04C7-U+04C8, U+04F6-U+04F7, U+04FA-U+04FB, U+050C-U+050D in Sans Book (by
Wesley Transue)
- adjusted Cyrillic letters U+042A, U+044A, U+044C, U+0459-U+045B, U+0462,
U+048C-U+048D in Serif (by Andrey V. Panov)
- hinting instructions added to Lao U+0EB7 in Sans (by Wesley Transue)
- added Roman numerals and Claudian letter U+2160-U+2184 in Serif (by Ben
Laenen)
- added U+FFF9-U+FFFD to Sans, Serif and Mono (by Lars Næsbye Christensen)
- added mathematical symbols to Serif: U+2200, U+2203-U+2204, U+2213-U+2214,
U+2217-U+2218, U+2223-U+2226, U+2250-U+2255, U+2295-U+22AF, U+22C5 (by Ben
Laenen)
- modified bullet symbol U+2219 in Serif (by Ben Laenen)
Changes from 2.20 to 2.21
- added U+FE20-U+FE23 (half diacritics) to Sans (by Denis Jacquerye)
- added anchor "half" to position right half of double marks, U+FE21 or U+FE23
to Sans (by Denis Jacquerye)
- shifted U+0360 up to avoid collision with some outlines in Sans (by Denis
Jacquerye)
- added anchor above-mark anchor to U+035D, U+035E, U+0360, U+0361 in Sans (by
Denis Jacquerye)
- added instructions for ff, ffi, ffl ligatures in Serif Bold (by Eugeniy
Meshcheryakov)
- added instructions to some N'Ko glyphs (by Wesley Transue)
- added instructions to some Lao glyphs (by Wesley Transue)
- cleaning up 'liga' Standard Ligature in Latin, in Sans and Sans Mono (by
Denis Jacquerye)
- added U+046A, U+046B (big yus) in Serif (by Andrey V. Panov)
- added box drawing symbols to Sans and Serif (by Lars Næsbye Christensen)
- added Makefile to improve font and packages generating (by Nicolas Mailhot)
Changes from 2.19 to 2.20
- removed TeX and TeXData tags from all sfd files (by Eugeniy Meshcheryakov)
@@ -931,4 +1052,4 @@ Changes from 0.9 to 0.9.1:
- proper caron shape for dcaron and tcaron
- minor visual changes
$Id: NEWS 1998 2007-09-16 14:23:46Z ben_laenen $
$Id: NEWS 2227 2008-05-19 06:41:46Z moyogo $
@@ -1,4 +1,4 @@
DejaVu fonts 2.20 (c)2004-2007 DejaVu fonts team
DejaVu fonts 2.24 (c)2004-2008 DejaVu fonts team
------------------------------------------------
The DejaVu fonts are a font family based on the Bitstream Vera Fonts
@@ -46,14 +46,14 @@ For more information go to http://dejavu.sourceforge.net/.
Characters from Arev fonts, Copyright (c) 2006 by Tavmjong Bah:
---------------------------
U+01ba, U+01bf, U+01f7, U+021c, U+021d, U+0220, U+0222, U+0223,
U+02b9, U+02ba, U+02bd, U+02c2, U+02c3, U+02c4, U+02c5, U+02d4,
U+02d5, U+02d7, U+02ec, U+02ed, U+02ee, U+0346-034e, U+0360, U+0362,
U+03e2-03ef, U+0460-0463, U+0466-0486, U+0488-0489, U+04a8-04a9,
U+0500-050f, U+2055-205e, U+20B0, U+20B2-20B3, U+2102, U+210D, U+210f,
U+2111, U+2113, U+2115, U+2118-U+211A, U+211c-211d, U+2124,U+2135,
U+213C-U+2140, U+2295-2298, U+2308-230b, U+26A2-U+26B1, U+2701-2704,
U+2706-2709, U+270c-274b, U+2758-275a, U+2761-2775, U+2780-2794,
U+2798-27af, U+27b1-27be, U+fb05-fb06
U+01BA, U+01BF, U+01F7, U+021C-U+021D, U+0220, U+0222-U+0223,
U+02B9, U+02BA, U+02BD, U+02C2-U+02C5, U+02d4-U+02D5,
U+02D7, U+02EC-U+02EE, U+0346-U+034E, U+0360, U+0362,
U+03E2-03EF, U+0460-0463, U+0466-U+0486, U+0488-U+0489, U+04A8-U+04A9,
U+0500-U+050F, U+2055-205E, U+20B0, U+20B2-U+20B3, U+2102, U+210D, U+210F,
U+2111, U+2113, U+2115, U+2118-U+211A, U+211C-U+211D, U+2124, U+2135,
U+213C-U+2140, U+2295-U+2298, U+2308-U+230B, U+26A2-U+26B1, U+2701-U+2704,
U+2706-U+2709, U+270C-U+274B, U+2758-U+275A, U+2761-U+2775, U+2780-U+2794,
U+2798-U+27AF, U+27B1-U+27BE, U+FB05-U+FB06
$Id: README 1998 2007-09-16 14:23:46Z ben_laenen $
$Id: README 2192 2008-03-09 21:25:29Z moyogo $
@@ -7,6 +7,7 @@ ab Abkhazia 100% (90/90) 93% (84/90)
af Afrikaans 100% (69/69) 100% (69/69) 100% (69/69)
am Amharic (0/264) (0/264) (0/264)
ar Arabic 100% (125/125) (0/125) 100% (125/125)
as (0/89) (0/89) (0/89)
ast Asturian 100% (72/72) 100% (72/72) 100% (72/72)
ava Avaric 100% (67/67) 100% (67/67) 100% (67/67)
ay Aymara 100% (60/60) 100% (60/60) 100% (60/60)
@@ -30,25 +31,25 @@ ce Chechen 100% (67/67) 100% (67/67)
ch Chamorro 100% (58/58) 100% (58/58) 100% (58/58)
chm Mari (Lower Cheremis / Upper Cheremis) 100% (76/76) 100% (76/76) 97% (74/76)
chr Cherokee (0/85) (0/85) (0/85)
co Corsican 100% (84/84) 100% (84/84) 100% (84/84)
co Corsican 100% (85/85) 100% (85/85) 100% (85/85)
cs Czech 100% (82/82) 100% (82/82) 100% (82/82)
cu Old Church Slavonic 100% (103/103) 82% (85/103) 74% (77/103)
cu Old Church Slavonic 100% (103/103) 84% (87/103) 74% (77/103)
cv Chuvash 100% (74/74) 100% (74/74) 100% (74/74)
cy Welsh 100% (78/78) 100% (78/78) 100% (78/78)
da Danish 100% (70/70) 100% (70/70) 100% (70/70)
de German 100% (59/59) 100% (59/59) 100% (59/59)
de German 100% (60/60) 100% (60/60) 100% (60/60)
dz Dzongkha (0/95) (0/95) (0/95)
el Greek 100% (69/69) 100% (69/69) 100% (69/69)
en English 100% (72/72) 100% (72/72) 100% (72/72)
el Greek 100% (70/70) 100% (70/70) 100% (70/70)
en English 100% (73/73) 100% (73/73) 100% (73/73)
eo Esperanto 100% (64/64) 100% (64/64) 100% (64/64)
es Spanish 100% (66/66) 100% (66/66) 100% (66/66)
es Spanish 100% (67/67) 100% (67/67) 100% (67/67)
et Estonian 100% (64/64) 100% (64/64) 100% (64/64)
eu Basque 100% (56/56) 100% (56/56) 100% (56/56)
fa Persian 100% (129/129) (0/129) 100% (129/129)
fi Finnish 100% (62/62) 100% (62/62) 100% (62/62)
fi Finnish 100% (63/63) 100% (63/63) 100% (63/63)
fj Fijian 100% (52/52) 100% (52/52) 100% (52/52)
fo Faroese 100% (68/68) 100% (68/68) 100% (68/68)
fr French 100% (84/84) 100% (84/84) 100% (84/84)
fr French 100% (85/85) 100% (85/85) 100% (85/85)
ful Fulah (Fula) 100% (62/62) 100% (62/62) 100% (62/62)
fur Friulian 100% (66/66) 100% (66/66) 100% (66/66)
fy Frisian 100% (75/75) 100% (75/75) 100% (75/75)
@@ -74,10 +75,10 @@ ie Interlingue 100% (52/52) 100% (52/52)
ik Inupiaq (Inupiak, Eskimo) 100% (68/68) 100% (68/68) 100% (68/68)
io Ido 100% (52/52) 100% (52/52) 100% (52/52)
is Icelandic 100% (70/70) 100% (70/70) 100% (70/70)
it Italian 100% (72/72) 100% (72/72) 100% (72/72)
it Italian 100% (73/73) 100% (73/73) 100% (73/73)
iu Inuktitut 100% (161/161) (0/161) (0/161)
ja Japanese (0/6538) (0/6538) (0/6538)
ka Georgian 100% (34/34) 100% (34/34) 100% (34/34)
ka Georgian 100% (33/33) 100% (33/33) 100% (33/33)
kaa Kara-Kalpak (Karakalpak) 100% (78/78) 100% (78/78) 100% (78/78)
ki Kikuyu 100% (56/56) 100% (56/56) 100% (56/56)
kk Kazakh 100% (77/77) 100% (77/77) 100% (77/77)
@@ -96,6 +97,7 @@ ky Kirgiz 100% (70/70) 100% (70/70)
la Latin 100% (68/68) 100% (68/68) 100% (68/68)
lb Luxembourgish (Letzeburgesch) 100% (75/75) 100% (75/75) 100% (75/75)
lez Lezghian (Lezgian) 100% (67/67) 100% (67/67) 100% (67/67)
ln Lingala 100% (81/81) 100% (81/81) 100% (81/81)
lo Lao 100% (65/65) (0/65) 70% (46/65)
lt Lithuanian 100% (70/70) 100% (70/70) 100% (70/70)
lv Latvian 100% (78/78) 100% (78/78) 100% (78/78)
@@ -112,9 +114,11 @@ my Burmese (Myanmar) (0/48) (0/48)
nb Norwegian Bokmal 100% (70/70) 100% (70/70) 100% (70/70)
nds Low Saxon 100% (59/59) 100% (59/59) 100% (59/59)
ne Nepali (Devanagari script) (0/68) (0/68) (0/68)
nl Dutch 100% (82/82) 100% (82/82) 100% (82/82)
nl Dutch 100% (83/83) 100% (83/83) 100% (83/83)
nn Norwegian Nynorsk 100% (76/76) 100% (76/76) 100% (76/76)
no Norwegian (Bokmal) 100% (70/70) 100% (70/70) 100% (70/70)
nr Ndebele, South 100% (52/52) 100% (52/52) 100% (52/52)
nso Northern Sotho 100% (58/58) 100% (58/58) 100% (58/58)
ny Chichewa 100% (54/54) 100% (54/54) 100% (54/54)
oc Occitan 100% (70/70) 100% (70/70) 100% (70/70)
om Oromo or Galla 100% (52/52) 100% (52/52) 100% (52/52)
@@ -124,7 +128,7 @@ pa Punjabi (Gurumukhi script) (0/63) (0/63)
pl Polish 100% (70/70) 100% (70/70) 100% (70/70)
ps-af Pashto in Afghanistan 83% (41/49) (0/49) 83% (41/49)
ps-pk Pashto in Pakistan 81% (40/49) (0/49) 81% (40/49)
pt Portuguese 100% (82/82) 100% (82/82) 100% (82/82)
pt Portuguese 100% (83/83) 100% (83/83) 100% (83/83)
rm Rhaeto-Romance (Romansch) 100% (66/66) 100% (66/66) 100% (66/66)
ro Romanian 100% (62/62) 100% (62/62) 100% (62/62)
ru Russian 100% (66/66) 100% (66/66) 100% (66/66)
@@ -145,6 +149,8 @@ sms Skolt Sami 100% (80/80) 100% (80/80)
so Somali 100% (52/52) 100% (52/52) 100% (52/52)
sq Albanian 100% (56/56) 100% (56/56) 100% (56/56)
sr Serbian 100% (76/76) 100% (76/76) 100% (76/76)
ss Swati 100% (52/52) 100% (52/52) 100% (52/52)
st Sotho, Southern 100% (52/52) 100% (52/52) 100% (52/52)
sv Swedish 100% (68/68) 100% (68/68) 100% (68/68)
sw Swahili 100% (52/52) 100% (52/52) 100% (52/52)
syr Syriac (0/45) (0/45) (0/45)
@@ -152,16 +158,16 @@ ta Tamil (0/48) (0/48)
te Telugu (0/80) (0/80) (0/80)
tg Tajik 100% (78/78) 100% (78/78) 97% (76/78)
th Thai 1% (1/87) (0/87) (0/87)
ti-er Eritrean Tigrinya (0/256) (0/256) (0/256)
ti-et Ethiopian Tigrinya (0/282) (0/282) (0/282)
ti-er Eritrean Tigrinya (0/255) (0/255) (0/255)
ti-et Ethiopian Tigrinya (0/281) (0/281) (0/281)
tig Tigre (0/221) (0/221) (0/221)
tk Turkmen 100% (74/74) 100% (74/74) 97% (72/74)
tk Turkmen 100% (74/74) 100% (74/74) 100% (74/74)
tl Tagalog (0/19) (0/19) (0/19)
tn Tswana 100% (56/56) 100% (56/56) 100% (56/56)
tn Tswana 100% (58/58) 100% (58/58) 100% (58/58)
to Tonga 100% (53/53) 100% (53/53) 100% (53/53)
tr Turkish 100% (70/70) 100% (70/70) 100% (70/70)
ts Tsonga 100% (52/52) 100% (52/52) 100% (52/52)
tt Tatar 100% (76/76) 100% (76/76) 97% (74/76)
tt Tatar 100% (76/76) 100% (76/76) 100% (76/76)
tw Twi 100% (73/73) 100% (73/73) 100% (73/73)
tyv Tuvinian 100% (70/70) 100% (70/70) 100% (70/70)
ug Uighur 100% (125/125) (0/125) 100% (125/125)
@@ -169,7 +175,7 @@ uk Ukrainian 100% (72/72) 100% (72/72)
ur Urdu 94% (137/145) (0/145) 97% (141/145)
uz Uzbek 100% (68/68) 100% (68/68) 100% (68/68)
ven Venda 100% (62/62) 100% (62/62) 100% (62/62)
vi Vietnamese 100% (194/194) 77% (150/194) 62% (122/194)
vi Vietnamese 100% (194/194) 77% (150/194) 63% (124/194)
vo Volapuk 100% (54/54) 100% (54/54) 100% (54/54)
vot Votic 100% (62/62) 100% (62/62) 100% (62/62)
wa Walloon 100% (70/70) 100% (70/70) 100% (70/70)
@@ -181,7 +187,7 @@ yi Yiddish 100% (27/27) (0/27)
yo Yoruba 100% (119/119) 100% (119/119) 100% (119/119)
zh-cn Chinese (simplified) 0% (2/6765) 0% (2/6765) 0% (2/6765)
zh-hk Chinese Hong Kong Supplementary Character Set (0/2213) (0/2213) (0/2213)
zh-mo Chinese in Macau (0/13063) (0/13063) (0/13063)
zh-mo Chinese in Macau (0/2213) (0/2213) (0/2213)
zh-sg Chinese in Singapore 0% (2/6765) 0% (2/6765) 0% (2/6765)
zh-tw Chinese (traditional) (0/13063) (0/13063) (0/13063)
zu Zulu 100% (52/52) 100% (52/52) 100% (52/52)
File diff suppressed because it is too large Load Diff
@@ -1,5 +1,5 @@
This is the Unicode coverage file for DejaVu fonts
($Id: unicover.txt 2000 2007-09-16 14:34:23Z ben_laenen $)
($Id$)
Control and similar characters are discounted from totals.
@@ -7,12 +7,12 @@ Control and similar characters are discounted from totals.
U+0000 Basic Latin 100% (95/95) 100% (95/95) 100% (95/95)
U+0080 Latin-1 Supplement 100% (96/96) 100% (96/96) 100% (96/96)
U+0100 Latin Extended-A 100% (128/128) 100% (128/128) 100% (128/128)
U+0180 Latin Extended-B 100% (208/208) 90% (189/208) 78% (164/208)
U+0180 Latin Extended-B 100% (208/208) 90% (189/208) 82% (172/208)
U+0250 IPA Extensions 100% (96/96) 100% (96/96) 100% (96/96)
U+02b0 Spacing Modifier Letters 78% (63/80) 56% (45/80) 57% (46/80)
U+0300 Combining Diacritical Marks 82% (92/112) 60% (68/112) 59% (67/112)
U+0370 Greek and Coptic 100% (127/127) 86% (110/127) 86% (110/127)
U+0400 Cyrillic 100% (255/255) 76% (194/255) 66% (170/255)
U+0400 Cyrillic 100% (255/255) 77% (198/255) 68% (174/255)
U+0500 Cyrillic Supplement 100% (20/20) (0/20) (0/20)
U+0530 Armenian 100% (86/86) (0/86) (0/86)
U+0590 Hebrew 62% (54/87) (0/87) (0/87)
@@ -41,7 +41,7 @@ U+1200 Ethiopic (0/356) (0/356)
U+1380 Ethiopic Supplement (0/26) (0/26) (0/26)
U+13a0 Cherokee (0/85) (0/85) (0/85)
U+1400 Unified Canadian Aboriginal Syllabics 64% (404/630) (0/630) (0/630)
U+1680 Ogham (0/29) (0/29) (0/29)
U+1680 Ogham 100% (29/29) (0/29) (0/29)
U+16a0 Runic (0/81) (0/81) (0/81)
U+1700 Tagalog (0/20) (0/20) (0/20)
U+1720 Hanunoo (0/23) (0/23) (0/23)
@@ -58,32 +58,32 @@ U+1b00 Balinese (0/121) (0/121)
U+1d00 Phonetic Extensions 82% (105/128) 48% (62/128) 48% (62/128)
U+1d80 Phonetic Extensions Supplement 59% (38/64) 57% (37/64) 57% (37/64)
U+1dc0 Combining Diacritical Marks Supplement 46% (6/13) (0/13) (0/13)
U+1e00 Latin Extended Additional 100% (246/246) 78% (192/246) 54% (134/246)
U+1e00 Latin Extended Additional 100% (246/246) 78% (192/246) 56% (140/246)
U+1f00 Greek Extended 100% (233/233) 100% (233/233) 100% (233/233)
U+2000 General Punctuation 98% (104/106) 61% (65/106) 42% (45/106)
U+2070 Superscripts and Subscripts 100% (34/34) 100% (34/34) 100% (34/34)
U+20a0 Currency Symbols 100% (22/22) 27% (6/22) 22% (5/22)
U+20d0 Combining Diacritical Marks for Symbols 12% (4/32) (0/32) (0/32)
U+2100 Letterlike Symbols 94% (75/79) 7% (6/79) 8% (7/79)
U+2150 Number Forms 100% (50/50) 26% (13/50) 26% (13/50)
U+2190 Arrows 100% (112/112) 3% (4/112) 100% (112/112)
U+2200 Mathematical Operators 95% (245/256) 11% (30/256) 56% (145/256)
U+20d0 Combining Diacritical Marks for Symbols 21% (7/32) (0/32) (0/32)
U+2100 Letterlike Symbols 94% (75/79) 39% (31/79) 8% (7/79)
U+2150 Number Forms 100% (50/50) 100% (50/50) 26% (13/50)
U+2190 Arrows 100% (112/112) 100% (112/112) 100% (112/112)
U+2200 Mathematical Operators 96% (247/256) 39% (100/256) 56% (145/256)
U+2300 Miscellaneous Technical 27% (64/232) 6% (16/232) 50% (117/232)
U+2400 Control Pictures 5% (2/39) 2% (1/39) 2% (1/39)
U+2440 Optical Character Recognition (0/11) (0/11) (0/11)
U+2460 Enclosed Alphanumerics 6% (10/160) (0/160) (0/160)
U+2500 Box Drawing (0/128) (0/128) 100% (128/128)
U+2500 Box Drawing 100% (128/128) 100% (128/128) 100% (128/128)
U+2580 Block Elements 100% (32/32) 100% (32/32) 100% (32/32)
U+25a0 Geometric Shapes 100% (96/96) 100% (96/96) 100% (96/96)
U+2600 Miscellaneous Symbols 100% (176/176) 17% (30/176) 84% (149/176)
U+2700 Dingbats 100% (174/174) (0/174) 82% (144/174)
U+2700 Dingbats 100% (174/174) 0% (1/174) 82% (144/174)
U+27c0 Miscellaneous Mathematical Symbols-A 17% (7/39) 7% (3/39) 7% (3/39)
U+27f0 Supplemental Arrows-A 100% (16/16) (0/16) (0/16)
U+27f0 Supplemental Arrows-A 100% (16/16) 100% (16/16) (0/16)
U+2800 Braille Patterns 100% (256/256) 100% (256/256) (0/256)
U+2900 Supplemental Arrows-B 4% (6/128) (0/128) (0/128)
U+2900 Supplemental Arrows-B 4% (6/128) 100% (128/128) (0/128)
U+2980 Miscellaneous Mathematical Symbols-B 10% (13/128) 0% (1/128) 2% (3/128)
U+2a00 Supplemental Mathematical Operators 28% (72/256) 1% (4/256) 0% (1/256)
U+2b00 Miscellaneous Symbols and Arrows 100% (31/31) 29% (9/31) 29% (9/31)
U+2b00 Miscellaneous Symbols and Arrows 100% (31/31) 87% (27/31) 29% (9/31)
U+2c00 Glagolitic (0/94) (0/94) (0/94)
U+2c60 Latin Extended-C 100% (17/17) 52% (9/17) 17% (3/17)
U+2c80 Coptic (0/114) (0/114) (0/114)
@@ -106,11 +106,11 @@ U+31f0 Katakana Phonetic Extensions (0/16) (0/16)
U+3200 Enclosed CJK Letters and Months (0/242) (0/242) (0/242)
U+3300 CJK Compatibility (0/256) (0/256) (0/256)
U+3400 CJK Unified Ideographs Extension A (0/0) (0/0) (0/0)
U+4dc0 Yijing Hexagram Symbols (0/64) (0/64) (0/64)
U+4dc0 Yijing Hexagram Symbols 100% (64/64) (0/64) (0/64)
U+4e00 CJK Unified Ideographs (0/0) (0/0) (0/0)
U+a000 Yi Syllables (0/1165) (0/1165) (0/1165)
U+a490 Yi Radicals (0/55) (0/55) (0/55)
U+a700 Modifier Tone Letters (0/27) (0/27) (0/27)
U+a700 Modifier Tone Letters 18% (5/27) (0/27) (0/27)
U+a720 Latin Extended-D (0/2) (0/2) (0/2)
U+a800 Syloti Nagri (0/44) (0/44) (0/44)
U+a840 Phags-pa (0/56) (0/56) (0/56)
@@ -124,12 +124,12 @@ U+fb00 Alphabetic Presentation Forms 100% (58/58) 12% (7/58)
U+fb50 Arabic Presentation Forms-A 11% (70/595) (0/595) 12% (72/595)
U+fe00 Variation Selectors 100% (16/16) 100% (16/16) (0/16)
U+fe10 Vertical Forms (0/10) (0/10) (0/10)
U+fe20 Combining Half Marks (0/4) (0/4) (0/4)
U+fe20 Combining Half Marks 100% (4/4) (0/4) (0/4)
U+fe30 CJK Compatibility Forms (0/32) (0/32) (0/32)
U+fe50 Small Form Variants (0/26) (0/26) (0/26)
U+fe70 Arabic Presentation Forms-B 100% (141/141) (0/141) 100% (141/141)
U+ff00 Halfwidth and Fullwidth Forms (0/225) (0/225) (0/225)
U+fff0 Specials 20% (1/5) 20% (1/5) 20% (1/5)
U+fff0 Specials 100% (5/5) 100% (5/5) 100% (5/5)
U+10000 Linear B Syllabary (0/88) (0/88) (0/88)
U+10080 Linear B Ideograms (0/123) (0/123) (0/123)
U+10100 Aegean Numbers (0/57) (0/57) (0/57)
@@ -151,7 +151,7 @@ U+1d100 Musical Symbols (0/219) (0/219)
U+1d200 Ancient Greek Musical Notation (0/70) (0/70) (0/70)
U+1d300 Tai Xuan Jing Symbols 100% (87/87) (0/87) (0/87)
U+1d360 Counting Rod Numerals (0/18) (0/18) (0/18)
U+1d400 Mathematical Alphanumeric Symbols 4% (45/996) (0/996) (0/996)
U+1d400 Mathematical Alphanumeric Symbols 10% (107/996) 5% (55/996) 6% (62/996)
U+20000 CJK Unified Ideographs Extension B (0/0) (0/0) (0/0)
U+2f800 CJK Compatibility Ideographs Supplement (0/542) (0/542) (0/542)
U+e0000 Tags (0/98) (0/98) (0/98)
+17 -9
View File
@@ -426,6 +426,17 @@ gui_mch_new_colors(void)
foreground:gui.def_norm_pixel];
}
/*
* Invert a rectangle from row r, column c, for nr rows and nc columns.
*/
void
gui_mch_invert_rectangle(int r, int c, int nr, int nc, int invert)
{
[[MMBackend sharedInstance] drawInvertedRectAtRow:r column:c numRows:nr
numColumns:nc invert:invert];
}
// -- Tabline ---------------------------------------------------------------
@@ -1286,6 +1297,9 @@ gui_mch_browse(
//NSLog(@"gui_mch_browse(saving=%d, title=%s, dflt=%s, ext=%s, initdir=%s,"
// " filter=%s", saving, title, dflt, ext, initdir, filter);
// Ensure no data is on the output queue before presenting the dialog.
gui_macvim_force_flush();
#ifdef FEAT_MBYTE
title = CONVERT_TO_UTF8(title);
initdir = CONVERT_TO_UTF8(initdir);
@@ -1319,6 +1333,9 @@ gui_mch_dialog(
// "dfltbutton=%d textfield=%s)", type, title, message, buttons,
// dfltbutton, textfield);
// Ensure no data is on the output queue before presenting the dialog.
gui_macvim_force_flush();
#ifdef FEAT_MBYTE
title = CONVERT_TO_UTF8(title);
message = CONVERT_TO_UTF8(message);
@@ -1448,15 +1465,6 @@ gui_mch_iconify(void)
}
/*
* Invert a rectangle from row r, column c, for nr rows and nc columns.
*/
void
gui_mch_invert_rectangle(int r, int c, int nr, int nc)
{
}
#if defined(FEAT_EVAL) || defined(PROTO)
/*
* Bring the Vim window to the foreground.
+38
View File
@@ -40,6 +40,44 @@
Sparkle supports updates in zip, tar, tbz, tgz, or dmg format.
-->
<item>
<title>Snapshot 31 released</title>
<description><![CDATA[
<h1>MacVim snapshot 31 released</h1>
<p> Changes since snapshot 30:
<ul>
<li> Fixed problems with menus on OS X 10.4 and a related crash. </li>
<li> Dialog box handling has been updated. This fixes a problem where the
"swap file warning" dialog would pop up before the informational text in
the editor window updated. Hopefully this will also cure various other
problems with dialogs (e.g. nothing happening when opening files from a
dialog box). </li>
<li> Added dock menu with "New Window" item. This is useful with "Spaces" on
OS X 10.5 since you can use this menu to open a new MacVim window on any
"space" when another editor window is already open. (Also, now there is
always a way to open a new window, even if the menus are customized,
or if "-u NONE" is used.) </li>
<li> I have started trying to fix "modeless selection" and it sort of works
on my machine, but I've had one report stating that its not quite
working so you mileage may vary. Make sure to let me know what works
and doesn't so that I can fix this properly. (Try selecting text from
the command line.) </li>
<li> The default font (DejaVu Sans Mono) has been updated to version 2.25.
</li>
<li> Latest Vim source code merged </li>
</ul>
</p>
]]></description>
<pubDate>Fri, 13 Jun 2008 16:00 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://macvim.googlecode.com/files/MacVim-snapshot-31.tbz"
length="8182620"
sparkle:version="31"
sparkle:shortVersionString="7.1"
/>
</item>
<item>
<title>Snapshot 30 released</title>
<description><![CDATA[
+20 -2
View File
@@ -16,6 +16,10 @@
* See ":help netbeans-protocol" for explanation.
*/
#if defined(MSDOS) || defined(MSWIN)
# include "vimio.h" /* for mch_open(), must be before vim.h */
#endif
#include "vim.h"
#if defined(FEAT_NETBEANS_INTG) || defined(PROTO)
@@ -1974,13 +1978,16 @@ nb_do_cmd(
}
else if (streq((char *)cmd, "setModified"))
{
int prev_b_changed;
if (buf == NULL || buf->bufp == NULL)
{
/* EMSG("E646: null bufp in setModified"); */
return FAIL;
}
prev_b_changed = buf->bufp->b_changed;
if (streq((char *)args, "T"))
buf->bufp->b_changed = 1;
buf->bufp->b_changed = TRUE;
else
{
struct stat st;
@@ -1990,9 +1997,20 @@ nb_do_cmd(
if (buf->bufp->b_ffname != NULL
&& mch_stat((char *)buf->bufp->b_ffname, &st) >= 0)
buf_store_time(buf->bufp, &st, buf->bufp->b_ffname);
buf->bufp->b_changed = 0;
buf->bufp->b_changed = FALSE;
}
buf->modified = buf->bufp->b_changed;
if (prev_b_changed != buf->bufp->b_changed)
{
#ifdef FEAT_WINDOWS
check_status(buf->bufp);
redraw_tabline = TRUE;
#endif
#ifdef FEAT_TITLE
maketitle();
#endif
update_screen(0);
}
/* =====================================================================*/
}
else if (streq((char *)cmd, "setModtime"))
+3 -2
View File
@@ -243,7 +243,8 @@
/* WV_ and BV_ values get typecasted to this for the "indir" field */
typedef enum
{
PV_NONE = 0
PV_NONE = 0,
PV_MAXVAL = 0xffff /* to avoid warnings for value out of range */
} idopt_T;
/*
@@ -8828,7 +8829,7 @@ put_setstring(fd, cmd, name, valuep, expand)
{
s = *valuep;
while (*s != NUL)
if (fputs((char *)str2special(&s, FALSE), fd) < 0)
if (put_escstr(fd, str2special(&s, FALSE), 2) == FAIL)
return FAIL;
}
else if (expand)
+17 -2
View File
@@ -1,7 +1,8 @@
" Vim script for checking .po files.
"
" Go through the file and verify that all %...s items in "msgid" are identical
" to the ones in "msgstr".
" Go through the file and verify that:
" - All %...s items in "msgid" are identical to the ones in "msgstr".
" - An error or warning code in "msgid" matches the one in "msgstr".
if 1 " Only execute this if the eval feature is available.
@@ -56,6 +57,20 @@ while 1
endif
endwhile
" Check that error code in msgid matches the one in msgstr.
"
" Examples of mismatches found with msgid "E123: ..."
" - msgstr "E321: ..." error code mismatch
" - msgstr "W123: ..." warning instead of error
" - msgstr "E123 ..." missing colon
" - msgstr "..." missing error code
"
1
if search('msgid "\("\n"\)\?\([EW][0-9]\+:\).*\nmsgstr "\("\n"\)\?[^"]\@=\2\@!') > 0
echo 'Mismatching error/warning code in line ' . line('.')
let error = 1
endif
if error == 0
echo "OK"
endif
+1 -1
View File
@@ -124,7 +124,7 @@ gui_mch_haskey(char_u *name);
void
gui_mch_iconify(void);
void
gui_mch_invert_rectangle(int r, int c, int nr, int nc);
gui_mch_invert_rectangle(int r, int c, int nr, int nc, int invert);
void
gui_mch_new_colors(void);
void
+4
View File
@@ -1126,7 +1126,11 @@ clip_invert_rectangle(row, col, height, width, invert)
{
#ifdef FEAT_GUI
if (gui.in_use)
# ifdef FEAT_GUI_MACVIM
gui_mch_invert_rectangle(row, col, height, width, invert);
# else
gui_mch_invert_rectangle(row, col, height, width);
#endif
else
#endif
screen_draw_rectangle(row, col, height, width, invert);
+6
View File
@@ -681,6 +681,12 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
314,
/**/
313,
/**/
312,
/**/
311,
/**/