mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-11 16:08:13 +00:00
Require OSX >= 10.6. Remove PowerPC unexec code.
* configure.ac: Require OSX 10.6. Remove NSInteger test, use nsfont for Gnustep, macfont for OSX. * etc/NEWS: OSX required is 10.6 or newer. * src/Makefile.in: Replace nsfont.o macfont.o with ns_fontfile in comment. * src/macfont.h (MAC_FONT_FORMAT_ATTRIBUTE, MAC_FONT_FORMAT_BITMAP) (mac_font_copy_non_synthetic_table): Remove versions for OSX < 10.6 * src/nsfns.m: Always include src/macfont.h on COCOA. (ns_filename_from_panel, ns_directory_from_panel) (Fx_create_frame, Fns_popup_font_panel, ns_run_file_dialog) (Fns_read_file_name, Fns_list_services): Remove code for OSX < 10.6 * src/nsterm.m: Always include src/macfont.h on COCOA. (ns_update_auto_hide_menu_bar, ns_draw_fringe_bitmap) (ns_dumpglyphs_image, ns_check_menu_open) (applicationDidFinishLaunching) (antialiasThresholdDidChange:) (keyDown:, toggleFullScreen:, setPosition:portion:whole:): Remove checks for OSX <= 10.5/10.6. (changeFont:): Use macfont on COCOA, nsfont on GNUSTEP. (syms_of_nsterm): Call syms_of_macfont on COCOA, syms_of_nsfont on GNUSTEP. * src/macfont.m: Remove >= 1050 check. (macfont_create_family_with_symbol) (macfont_get_glyph_for_character) (mac_font_get_glyphs_for_variants) (mac_ctfont_create_available_families, syms_of_macfont): Remove code for OSX < 10.6. (mac_font_family_group, mac_font_family_compare): Remove, only used for OSX < 10.6. * src/nsimage.m (allocInitFromFile:): Remove code for OSX < 10.6. * src/nsmenu.m (NSMenuDidBeginTrackingNotification): Remove. (x_activate_menubar, trackingNotification:): Remove check for OSX >= 10.5. (menuNeedsUpdate:): Remove check for OSX < 10.5. * src/nsterm.h (MAC_OS_X_VERSION_10_4, MAC_OS_X_VERSION_10_5): Remove. (NS_HAVE_NSINTEGER): Remove block. Remove >= OSX 10.6 tests. * src/unexmacosx.c: Remove include ppc/reloc.h. (unrelocate, copy_dysymtab): Remove PPC code. (rebase_reloc_address): Remove, only used for PPC:
This commit is contained in:
parent
4c4c5b9121
commit
9a265587d2
@ -1,3 +1,8 @@
|
||||
2014-10-12 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* configure.ac: Require OSX 10.6. Remove NSInteger test,
|
||||
use nsfont for Gnustep, macfont for OSX.
|
||||
|
||||
2014-10-12 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Fix putenv race conditions that can crash Emacs (Bug#8705).
|
||||
|
44
configure.ac
44
configure.ac
@ -1717,12 +1717,14 @@ if test "${with_ns}" != no; then
|
||||
ns_appbindir=${ns_appdir}/Contents/MacOS
|
||||
ns_appresdir=${ns_appdir}/Contents/Resources
|
||||
ns_appsrc=Cocoa/Emacs.base
|
||||
ns_fontfile=macfont.o
|
||||
elif test -f $GNUSTEP_CONFIG_FILE; then
|
||||
NS_IMPL_GNUSTEP=yes
|
||||
ns_appdir=`pwd`/nextstep/Emacs.app
|
||||
ns_appbindir=${ns_appdir}
|
||||
ns_appresdir=${ns_appdir}/Resources
|
||||
ns_appsrc=GNUstep/Emacs.base
|
||||
ns_fontfile=nsfont.o
|
||||
dnl FIXME sourcing this several times in subshells seems inefficient.
|
||||
GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)"
|
||||
GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_LIBRARIES)"
|
||||
@ -1765,48 +1767,24 @@ fail;
|
||||
|
||||
macfont_file=""
|
||||
if test "${NS_IMPL_COCOA}" = "yes"; then
|
||||
AC_MSG_CHECKING([for OSX 10.4 or newer])
|
||||
AC_MSG_CHECKING([for OSX 10.6 or newer])
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AppKit/AppKit.h>],
|
||||
[
|
||||
#ifdef MAC_OS_X_VERSION_MAX_ALLOWED
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060
|
||||
; /* OK */
|
||||
#else
|
||||
error "OSX 10.4 or newer required";
|
||||
error "OSX 10.6 or newer required";
|
||||
#endif
|
||||
#endif
|
||||
])],
|
||||
ns_osx_have_104=yes,
|
||||
ns_osx_have_104=no)
|
||||
AC_MSG_RESULT([$ns_osx_have_104])
|
||||
ns_osx_have_106=yes,
|
||||
ns_osx_have_106=no)
|
||||
AC_MSG_RESULT([$ns_osx_have_106])
|
||||
|
||||
if test $ns_osx_have_104 = no; then
|
||||
AC_MSG_ERROR([`OSX 10.4 or newer is required']);
|
||||
if test $ns_osx_have_106 = no; then
|
||||
AC_MSG_ERROR([`OSX 10.6 or newer is required']);
|
||||
fi
|
||||
AC_MSG_CHECKING([for OSX 10.5 or newer])
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AppKit/AppKit.h>],
|
||||
[
|
||||
#ifdef MAC_OS_X_VERSION_MAX_ALLOWED
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
|
||||
; /* OK */
|
||||
#else
|
||||
error "OSX 10.5 not found";
|
||||
#endif
|
||||
#endif
|
||||
])],
|
||||
ns_osx_have_105=yes,
|
||||
ns_osx_have_105=no)
|
||||
AC_MSG_RESULT([$ns_osx_have_105])
|
||||
if test $ns_osx_have_105 = yes; then
|
||||
macfont_file="macfont.o"
|
||||
fi
|
||||
fi
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <Foundation/NSObjCRuntime.h>],
|
||||
[NSInteger i;])],
|
||||
ns_have_nsinteger=yes,
|
||||
ns_have_nsinteger=no)
|
||||
if test $ns_have_nsinteger = yes; then
|
||||
AC_DEFINE(NS_HAVE_NSINTEGER, 1, [Define to 1 if `NSInteger' is defined.])
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -1840,7 +1818,7 @@ if test "${HAVE_NS}" = yes; then
|
||||
INSTALL_ARCH_INDEP_EXTRA=
|
||||
fi
|
||||
|
||||
NS_OBJC_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o $macfont_file"
|
||||
NS_OBJC_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o $ns_fontfile"
|
||||
fi
|
||||
CFLAGS="$tmp_CFLAGS"
|
||||
CPPFLAGS="$tmp_CPPFLAGS"
|
||||
|
@ -1,3 +1,7 @@
|
||||
2014-10-12 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* NEWS: OSX required is 10.6 or newer.
|
||||
|
||||
2014-10-09 Leo Liu <sdl.web@gmail.com>
|
||||
|
||||
* NEWS: Mention optional arg to terpri and new cl-lib functions.
|
||||
|
3
etc/NEWS
3
etc/NEWS
@ -36,6 +36,9 @@ should be able to work around the problem either by porting the Emacs
|
||||
undumping code to GCC under IRIX, or by configuring --with-wide-int,
|
||||
or by sticking with Emacs 24.4.
|
||||
|
||||
** Building Emacs on OSX now requires 10.6 or newer.
|
||||
That also means that PowerPC is not supported.
|
||||
|
||||
---
|
||||
** The configure option `--with-pkg-config-prog' has been removed.
|
||||
Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to.
|
||||
|
@ -1,3 +1,51 @@
|
||||
2014-10-12 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* unexmacosx.c: Remove include ppc/reloc.h.
|
||||
(unrelocate, copy_dysymtab): Remove PPC code.
|
||||
(rebase_reloc_address): Remove, only used for PPC:
|
||||
|
||||
* nsterm.m: Always include macfont.h on COCOA.
|
||||
(ns_update_auto_hide_menu_bar, ns_draw_fringe_bitmap)
|
||||
(ns_dumpglyphs_image, ns_check_menu_open)
|
||||
(applicationDidFinishLaunching)
|
||||
(antialiasThresholdDidChange:)
|
||||
(keyDown:, toggleFullScreen:, setPosition:portion:whole:): Remove
|
||||
checks for OSX <= 10.5/10.6.
|
||||
(changeFont:): Use macfont on COCOA, nsfont on GNUSTEP.
|
||||
(syms_of_nsterm): Call syms_of_macfont on COCOA, syms_of_nsfont on
|
||||
GNUSTEP.
|
||||
|
||||
* nsterm.h (MAC_OS_X_VERSION_10_4, MAC_OS_X_VERSION_10_5): Remove.
|
||||
(NS_HAVE_NSINTEGER): Remove block.
|
||||
Remove >= OSX 10.6 tests.
|
||||
|
||||
* nsmenu.m (NSMenuDidBeginTrackingNotification): Remove.
|
||||
(x_activate_menubar, trackingNotification:): Remove check for
|
||||
OSX >= 10.5.
|
||||
(menuNeedsUpdate:): Remove check for OSX < 10.5.
|
||||
|
||||
* nsimage.m (allocInitFromFile:): Remove code for OSX < 10.6.
|
||||
|
||||
* nsfns.m: Always include macfont.h on COCOA.
|
||||
(ns_filename_from_panel, ns_directory_from_panel)
|
||||
(Fx_create_frame, Fns_popup_font_panel, ns_run_file_dialog)
|
||||
(Fns_read_file_name, Fns_list_services): Remove code for OSX < 10.6
|
||||
|
||||
* macfont.m: Remove >= 1050 check.
|
||||
(macfont_create_family_with_symbol)
|
||||
(macfont_get_glyph_for_character)
|
||||
(mac_font_get_glyphs_for_variants)
|
||||
(mac_ctfont_create_available_families, syms_of_macfont): Remove
|
||||
code for OSX < 10.6.
|
||||
(mac_font_family_group, mac_font_family_compare): Remove, only used
|
||||
for OSX < 10.6.
|
||||
|
||||
* macfont.h (MAC_FONT_FORMAT_ATTRIBUTE, MAC_FONT_FORMAT_BITMAP)
|
||||
(mac_font_copy_non_synthetic_table): Remove versions for OSX < 10.6
|
||||
|
||||
* Makefile.in: Replace nsfont.o macfont.o with ns_fontfile in
|
||||
comment.
|
||||
|
||||
2014-10-12 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Fix putenv race conditions with undefined behavior (Bug#8705).
|
||||
|
@ -250,7 +250,7 @@ MSDOS_OBJ =
|
||||
MSDOS_X_OBJ =
|
||||
|
||||
NS_OBJ=@NS_OBJ@
|
||||
## nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o macfont.o if HAVE_NS.
|
||||
## nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o ns_fontfile if HAVE_NS.
|
||||
NS_OBJC_OBJ=@NS_OBJC_OBJ@
|
||||
## Only set if NS_IMPL_GNUSTEP.
|
||||
GNU_OBJC_CFLAGS=@GNU_OBJC_CFLAGS@
|
||||
|
@ -57,11 +57,7 @@ typedef CTCharacterCollection CharacterCollection;
|
||||
#define MAC_FONT_CASCADE_LIST_ATTRIBUTE kCTFontCascadeListAttribute
|
||||
#define MAC_FONT_CHARACTER_SET_ATTRIBUTE kCTFontCharacterSetAttribute
|
||||
#define MAC_FONT_LANGUAGES_ATTRIBUTE kCTFontLanguagesAttribute
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
|
||||
#define MAC_FONT_FORMAT_ATTRIBUTE kCTFontFormatAttribute
|
||||
#else
|
||||
#define MAC_FONT_FORMAT_ATTRIBUTE (CFSTR ("NSCTFontFormatAttribute"))
|
||||
#endif
|
||||
#define MAC_FONT_SYMBOLIC_TRAIT kCTFontSymbolicTrait
|
||||
#define MAC_FONT_WEIGHT_TRAIT kCTFontWeightTrait
|
||||
#define MAC_FONT_WIDTH_TRAIT kCTFontWidthTrait
|
||||
@ -79,11 +75,7 @@ enum {
|
||||
};
|
||||
|
||||
enum {
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060
|
||||
MAC_FONT_FORMAT_BITMAP = kCTFontFormatBitmap
|
||||
#else
|
||||
MAC_FONT_FORMAT_BITMAP = 5
|
||||
#endif
|
||||
};
|
||||
|
||||
enum {
|
||||
@ -112,13 +104,8 @@ enum {
|
||||
#define mac_font_get_underline_position CTFontGetUnderlinePosition
|
||||
#define mac_font_get_underline_thickness CTFontGetUnderlineThickness
|
||||
#define mac_font_copy_graphics_font(font) CTFontCopyGraphicsFont (font, NULL)
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
|
||||
#define mac_font_copy_non_synthetic_table(font, table) \
|
||||
CTFontCopyTable (font, table, kCTFontTableOptionNoOptions)
|
||||
#else
|
||||
#define mac_font_copy_non_synthetic_table(font, table) \
|
||||
CTFontCopyTable (font, table, kCTFontTableOptionExcludeSynthetic)
|
||||
#endif
|
||||
|
||||
#define mac_font_create_preferred_family_for_attributes \
|
||||
mac_ctfont_create_preferred_family_for_attributes
|
||||
|
126
src/macfont.m
126
src/macfont.m
@ -36,8 +36,6 @@
|
||||
#include "macfont.h"
|
||||
#include "macuvs.h"
|
||||
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
|
||||
|
||||
#include <libkern/OSByteOrder.h>
|
||||
|
||||
static struct font_driver macfont_driver;
|
||||
@ -926,22 +924,9 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char,
|
||||
if (family_name == NULL)
|
||||
return NULL;
|
||||
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
|
||||
if (CTFontManagerCompareFontFamilyNames != NULL)
|
||||
#endif
|
||||
{
|
||||
family_name_comparator = CTFontManagerCompareFontFamilyNames;
|
||||
}
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
|
||||
else /* CTFontManagerCompareFontFamilyNames == NULL */
|
||||
#endif
|
||||
#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 */
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
|
||||
{
|
||||
family_name_comparator = mac_font_family_compare;
|
||||
}
|
||||
#endif
|
||||
|
||||
if ((*family_name_comparator) (family_name, CFSTR ("LastResort"), NULL)
|
||||
== kCFCompareEqualTo)
|
||||
@ -1331,12 +1316,8 @@ static CGGlyph macfont_get_glyph_for_cid (struct font *font,
|
||||
CGGlyph *glyphs;
|
||||
int i, len;
|
||||
int nrows;
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
|
||||
dispatch_queue_t queue;
|
||||
dispatch_group_t group = NULL;
|
||||
#else
|
||||
int nkeys;
|
||||
#endif
|
||||
|
||||
if (row != 0)
|
||||
{
|
||||
@ -1374,14 +1355,12 @@ static CGGlyph macfont_get_glyph_for_cid (struct font *font,
|
||||
return glyph;
|
||||
}
|
||||
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
|
||||
queue =
|
||||
dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
|
||||
group = dispatch_group_create ();
|
||||
dispatch_group_async (group, queue, ^{
|
||||
int nkeys;
|
||||
uintptr_t key;
|
||||
#endif
|
||||
nkeys = nkeys_or_perm;
|
||||
for (key = row * (256 / NGLYPHS_IN_VALUE); ; key++)
|
||||
if (CFDictionaryContainsKey (dictionary,
|
||||
@ -1392,9 +1371,7 @@ static CGGlyph macfont_get_glyph_for_cid (struct font *font,
|
||||
if (--nkeys == 0)
|
||||
break;
|
||||
}
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
|
||||
});
|
||||
#endif
|
||||
}
|
||||
|
||||
len = 0;
|
||||
@ -1436,13 +1413,11 @@ static CGGlyph macfont_get_glyph_for_cid (struct font *font,
|
||||
cache->glyph.matrix[nrows - 1] = glyphs;
|
||||
cache->glyph.nrows = nrows;
|
||||
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
|
||||
if (group)
|
||||
{
|
||||
dispatch_group_wait (group, DISPATCH_TIME_FOREVER);
|
||||
dispatch_release (group);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
return cache->glyph.matrix[nkeys_or_perm - ROW_PERM_OFFSET][c % 256];
|
||||
@ -3165,11 +3140,9 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no
|
||||
struct variation_selector_record *records = uvs->variation_selector_records;
|
||||
CFIndex i;
|
||||
UInt32 ir, nrecords;
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
|
||||
dispatch_queue_t queue =
|
||||
dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
|
||||
dispatch_group_t group = dispatch_group_create ();
|
||||
#endif
|
||||
|
||||
nrecords = BUINT32_VALUE (uvs->num_var_selector_records);
|
||||
i = 0;
|
||||
@ -3193,9 +3166,7 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no
|
||||
default_uvs_offset = BUINT32_VALUE (records[ir].default_uvs_offset);
|
||||
non_default_uvs_offset =
|
||||
BUINT32_VALUE (records[ir].non_default_uvs_offset);
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
|
||||
dispatch_group_async (group, queue, ^{
|
||||
#endif
|
||||
glyphs[i] = kCGFontIndexInvalid;
|
||||
|
||||
if (default_uvs_offset)
|
||||
@ -3247,18 +3218,14 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no
|
||||
BUINT24_VALUE (mappings[hi - 1].unicode_value) == c)
|
||||
glyphs[i] = BUINT16_VALUE (mappings[hi - 1].glyph_id);
|
||||
}
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
|
||||
});
|
||||
#endif
|
||||
i++;
|
||||
ir++;
|
||||
}
|
||||
while (i < count)
|
||||
glyphs[i++] = kCGFontIndexInvalid;
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
|
||||
dispatch_group_wait (group, DISPATCH_TIME_FOREVER);
|
||||
dispatch_release (group);
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
@ -3460,10 +3427,6 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no
|
||||
{
|
||||
CFMutableArrayRef families = NULL;
|
||||
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
|
||||
if (CTFontManagerCopyAvailableFontFamilyNames != NULL)
|
||||
#endif
|
||||
{
|
||||
CFArrayRef orig_families = CTFontManagerCopyAvailableFontFamilyNames ();
|
||||
|
||||
@ -3487,56 +3450,8 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no
|
||||
CFRelease (orig_families);
|
||||
}
|
||||
}
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
|
||||
else /* CTFontManagerCopyAvailableFontFamilyNames == NULL */
|
||||
#endif
|
||||
#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 */
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
|
||||
{
|
||||
CTFontCollectionRef collection;
|
||||
CFArrayRef descs = NULL;
|
||||
|
||||
collection = CTFontCollectionCreateFromAvailableFonts (NULL);
|
||||
if (collection)
|
||||
{
|
||||
descs = CTFontCollectionCreateMatchingFontDescriptors (collection);
|
||||
CFRelease (collection);
|
||||
}
|
||||
if (descs)
|
||||
{
|
||||
CFIndex i, count = CFArrayGetCount (descs);
|
||||
|
||||
families = CFArrayCreateMutable (NULL, count, &kCFTypeArrayCallBacks);
|
||||
if (families)
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
FontDescriptorRef desc = CFArrayGetValueAtIndex (descs, i);
|
||||
CFStringRef name =
|
||||
mac_font_descriptor_copy_attribute (desc,
|
||||
MAC_FONT_FAMILY_NAME_ATTRIBUTE);
|
||||
|
||||
if (name)
|
||||
{
|
||||
CFIndex p, limit = CFArrayGetCount (families);
|
||||
|
||||
p = CFArrayBSearchValues (families, CFRangeMake (0, limit),
|
||||
(const void *) name,
|
||||
mac_font_family_compare, NULL);
|
||||
if (p >= limit)
|
||||
CFArrayAppendValue (families, name);
|
||||
else if (mac_font_family_compare
|
||||
(CFArrayGetValueAtIndex (families, p),
|
||||
name, NULL) != kCFCompareEqualTo)
|
||||
CFArrayInsertValueAtIndex (families, p, name);
|
||||
CFRelease (name);
|
||||
}
|
||||
}
|
||||
CFRelease (descs);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
return families;
|
||||
return families;
|
||||
}
|
||||
|
||||
static Boolean
|
||||
@ -3855,41 +3770,6 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no
|
||||
}
|
||||
#endif
|
||||
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
|
||||
static inline int
|
||||
mac_font_family_group (CFStringRef family)
|
||||
{
|
||||
if (CFStringHasPrefix (family, CFSTR ("#")))
|
||||
return 2;
|
||||
else
|
||||
{
|
||||
CFRange range;
|
||||
|
||||
range = CFStringFind (family, CFSTR ("Apple"),
|
||||
kCFCompareCaseInsensitive | kCFCompareAnchored);
|
||||
if (range.location != kCFNotFound)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static CFComparisonResult
|
||||
mac_font_family_compare (const void *val1, const void *val2, void *context)
|
||||
{
|
||||
CFStringRef family1 = (CFStringRef) val1, family2 = (CFStringRef) val2;
|
||||
int group1, group2;
|
||||
|
||||
group1 = mac_font_family_group (family1);
|
||||
group2 = mac_font_family_group (family2);
|
||||
if (group1 < group2)
|
||||
return kCFCompareLessThan;
|
||||
if (group1 > group2)
|
||||
return kCFCompareGreaterThan;
|
||||
return CFStringCompare (family1, family2, kCFCompareCaseInsensitive);
|
||||
}
|
||||
#endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1060 */
|
||||
|
||||
static CFArrayRef
|
||||
mac_font_copy_default_descriptors_for_language (CFStringRef language)
|
||||
{
|
||||
@ -4040,13 +3920,10 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no
|
||||
register_font_driver (&macfont_driver, f);
|
||||
}
|
||||
|
||||
#endif // MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
|
||||
|
||||
|
||||
void
|
||||
syms_of_macfont (void)
|
||||
{
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
|
||||
static struct font_driver mac_font_driver;
|
||||
|
||||
DEFSYM (Qmac_ct, "mac-ct");
|
||||
@ -4055,5 +3932,4 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no
|
||||
|
||||
DEFSYM (QCdestination, ":destination");
|
||||
DEFSYM (QCminspace, ":minspace");
|
||||
#endif
|
||||
}
|
||||
|
34
src/nsfns.m
34
src/nsfns.m
@ -46,10 +46,8 @@ Updated by Christian Limpach (chris@nice.ch)
|
||||
|
||||
#ifdef NS_IMPL_COCOA
|
||||
#include <IOKit/graphics/IOGraphicsLib.h>
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
#include "macfont.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
int fns_trace_num = 1;
|
||||
@ -197,7 +195,7 @@ Updated by Christian Limpach (chris@nice.ch)
|
||||
static NSString *
|
||||
ns_filename_from_panel (NSSavePanel *panel)
|
||||
{
|
||||
#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
||||
#ifdef NS_IMPL_COCOA
|
||||
NSURL *url = [panel URL];
|
||||
NSString *str = [url path];
|
||||
return str;
|
||||
@ -209,7 +207,7 @@ Updated by Christian Limpach (chris@nice.ch)
|
||||
static NSString *
|
||||
ns_directory_from_panel (NSSavePanel *panel)
|
||||
{
|
||||
#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
||||
#ifdef NS_IMPL_COCOA
|
||||
NSURL *url = [panel directoryURL];
|
||||
NSString *str = [url path];
|
||||
return str;
|
||||
@ -1197,13 +1195,10 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side
|
||||
block_input ();
|
||||
|
||||
#ifdef NS_IMPL_COCOA
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
if (CTGetCoreTextVersion != NULL
|
||||
&& CTGetCoreTextVersion () >= kCTVersionNumber10_5)
|
||||
mac_register_font_driver (f);
|
||||
#else
|
||||
register_font_driver (&nsfont_driver, f);
|
||||
#endif
|
||||
#endif
|
||||
register_font_driver (&nsfont_driver, f);
|
||||
|
||||
x_default_parameter (f, parms, Qfont_backend, Qnil,
|
||||
"fontBackend", "FontBackend", RES_TYPE_STRING);
|
||||
@ -1414,13 +1409,11 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side
|
||||
id fm = [NSFontManager sharedFontManager];
|
||||
struct font *font = f->output_data.ns->font;
|
||||
NSFont *nsfont;
|
||||
if (EQ (font->driver->type, Qns))
|
||||
nsfont = ((struct nsfont_info *)font)->nsfont;
|
||||
#ifdef NS_IMPL_COCOA
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
else
|
||||
nsfont = (NSFont *) macfont_get_nsctfont (font);
|
||||
#ifdef NS_IMPL_GNUSTEP
|
||||
nsfont = ((struct nsfont_info *)font)->nsfont;
|
||||
#endif
|
||||
#ifdef NS_IMPL_COCOA
|
||||
nsfont = (NSFont *) macfont_get_nsctfont (font);
|
||||
#endif
|
||||
[fm setSelectedFont: nsfont isMultiple: NO];
|
||||
[fm orderFrontFontPanel: NSApp];
|
||||
@ -1442,8 +1435,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side
|
||||
{
|
||||
id panel;
|
||||
BOOL ret;
|
||||
#if ! defined (NS_IMPL_COCOA) || \
|
||||
MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6
|
||||
#ifdef NS_IMPL_GNUSTEP
|
||||
NSString *dirS, *initS;
|
||||
BOOL no_types;
|
||||
#endif
|
||||
@ -1453,8 +1445,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side
|
||||
ns_run_file_dialog (void)
|
||||
{
|
||||
if (ns_fd_data.panel == nil) return;
|
||||
#if defined (NS_IMPL_COCOA) && \
|
||||
MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
||||
#ifdef NS_IMPL_COCOA
|
||||
ns_fd_data.ret = [ns_fd_data.panel runModal];
|
||||
#else
|
||||
if (ns_fd_data.no_types)
|
||||
@ -1534,8 +1525,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side
|
||||
block_input ();
|
||||
ns_fd_data.panel = panel;
|
||||
ns_fd_data.ret = NO;
|
||||
#if defined (NS_IMPL_COCOA) && \
|
||||
MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
||||
#ifdef NS_IMPL_COCOA
|
||||
if (! NILP (mustmatch) || ! NILP (dir_only_p))
|
||||
[panel setAllowedFileTypes: nil];
|
||||
if (dirS) [panel setDirectoryURL: [NSURL fileURLWithPath: dirS]];
|
||||
@ -1995,7 +1985,7 @@ and GNUstep implementations ("distributor-specific release
|
||||
doc: /* List available Nextstep services by querying NSApp. */)
|
||||
(void)
|
||||
{
|
||||
#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
||||
#ifdef NS_IMPL_COCOA
|
||||
/* You can't get services like this in 10.6+. */
|
||||
return Qnil;
|
||||
#else
|
||||
|
@ -188,7 +188,7 @@ @implementation EmacsImage
|
||||
image = [[EmacsImage alloc] initByReferencingFile:
|
||||
[NSString stringWithUTF8String: SSDATA (found)]];
|
||||
|
||||
#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
||||
#ifdef NS_IMPL_COCOA
|
||||
imgRep = [NSBitmapImageRep imageRepWithData:[image TIFFRepresentation]];
|
||||
#else
|
||||
imgRep = [image bestRepresentationForDevice: nil];
|
||||
|
15
src/nsmenu.m
15
src/nsmenu.m
@ -492,11 +492,9 @@
|
||||
x_activate_menubar (struct frame *f)
|
||||
{
|
||||
#ifdef NS_IMPL_COCOA
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
ns_update_menubar (f, true, nil);
|
||||
ns_check_pending_open_menu ();
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@ -541,24 +539,15 @@ - (void)setFrame: (struct frame *)f
|
||||
frame = f;
|
||||
}
|
||||
|
||||
#ifdef NS_IMPL_COCOA
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5
|
||||
extern NSString *NSMenuDidBeginTrackingNotification;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef NS_IMPL_COCOA
|
||||
-(void)trackingNotification:(NSNotification *)notification
|
||||
{
|
||||
/* Update menu in menuNeedsUpdate only while tracking menus. */
|
||||
trackingMenu = ([notification name] == NSMenuDidBeginTrackingNotification
|
||||
? 1 : 0);
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
if (! trackingMenu) ns_check_menu_open (nil);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
- (void)menuWillOpen:(NSMenu *)menu
|
||||
{
|
||||
++trackingMenu;
|
||||
@ -579,7 +568,6 @@ - (void)menuDidClose:(NSMenu *)menu
|
||||
{
|
||||
--trackingMenu;
|
||||
}
|
||||
#endif /* OSX >= 10.5 */
|
||||
|
||||
#endif /* NS_IMPL_COCOA */
|
||||
|
||||
@ -608,8 +596,7 @@ - (void)menuNeedsUpdate: (NSMenu *)menu
|
||||
if (trackingMenu == 0)
|
||||
return;
|
||||
/*fprintf (stderr, "Updating menu '%s'\n", [[self title] UTF8String]); NSLog (@"%@\n", event); */
|
||||
#if (! defined (NS_IMPL_COCOA) \
|
||||
|| MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5)
|
||||
#ifdef NS_IMPL_GNUSTEP
|
||||
/* Don't know how to do this for anything other than OSX >= 10.5
|
||||
This is wrong, as it might run Lisp code in the event loop. */
|
||||
ns_update_menubar (frame, true, self);
|
||||
|
28
src/nsterm.h
28
src/nsterm.h
@ -27,12 +27,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
||||
#ifdef HAVE_NS
|
||||
|
||||
#ifdef NS_IMPL_COCOA
|
||||
#ifndef MAC_OS_X_VERSION_10_4
|
||||
#define MAC_OS_X_VERSION_10_4 1040
|
||||
#endif
|
||||
#ifndef MAC_OS_X_VERSION_10_5
|
||||
#define MAC_OS_X_VERSION_10_5 1050
|
||||
#endif
|
||||
#ifndef MAC_OS_X_VERSION_10_6
|
||||
#define MAC_OS_X_VERSION_10_6 1060
|
||||
#endif
|
||||
@ -58,21 +52,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
||||
versions.
|
||||
On Cocoa >= 10.5, functions expect CGFloat*. Make compatible type. */
|
||||
#ifdef NS_IMPL_COCOA
|
||||
|
||||
#ifndef NS_HAVE_NSINTEGER
|
||||
#if defined (__LP64__) && __LP64__
|
||||
typedef double CGFloat;
|
||||
typedef long NSInteger;
|
||||
typedef unsigned long NSUInteger;
|
||||
#else
|
||||
typedef float CGFloat;
|
||||
typedef int NSInteger;
|
||||
typedef unsigned int NSUInteger;
|
||||
#endif /* not LP64 */
|
||||
#endif /* not NS_HAVE_NSINTEGER */
|
||||
|
||||
typedef CGFloat EmacsCGFloat;
|
||||
|
||||
#elif GNUSTEP_GUI_MAJOR_VERSION > 0 || GNUSTEP_GUI_MINOR_VERSION >= 22
|
||||
typedef CGFloat EmacsCGFloat;
|
||||
#else
|
||||
@ -139,7 +119,7 @@ typedef float EmacsCGFloat;
|
||||
|
||||
@class EmacsToolbar;
|
||||
|
||||
#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
||||
#ifdef NS_IMPL_COCOA
|
||||
@interface EmacsView : NSView <NSTextInput, NSWindowDelegate>
|
||||
#else
|
||||
@interface EmacsView : NSView <NSTextInput>
|
||||
@ -217,7 +197,7 @@ typedef float EmacsCGFloat;
|
||||
|
||||
========================================================================== */
|
||||
|
||||
#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
||||
#ifdef NS_IMPL_COCOA
|
||||
@interface EmacsMenu : NSMenu <NSMenuDelegate>
|
||||
#else
|
||||
@interface EmacsMenu : NSMenu
|
||||
@ -249,7 +229,7 @@ typedef float EmacsCGFloat;
|
||||
|
||||
@class EmacsImage;
|
||||
|
||||
#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
||||
#ifdef NS_IMPL_COCOA
|
||||
@interface EmacsToolbar : NSToolbar <NSToolbarDelegate>
|
||||
#else
|
||||
@interface EmacsToolbar : NSToolbar
|
||||
@ -305,7 +285,7 @@ typedef float EmacsCGFloat;
|
||||
- (void)timeout_handler: (NSTimer *)timedEntry;
|
||||
@end
|
||||
|
||||
#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
||||
#ifdef NS_IMPL_COCOA
|
||||
@interface EmacsTooltip : NSObject <NSWindowDelegate>
|
||||
#else
|
||||
@interface EmacsTooltip : NSObject
|
||||
|
45
src/nsterm.m
45
src/nsterm.m
@ -65,10 +65,8 @@ Updated by Christian Limpach (chris@nice.ch)
|
||||
#endif
|
||||
|
||||
#ifdef NS_IMPL_COCOA
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
#include "macfont.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* call tracing */
|
||||
#if 0
|
||||
@ -706,7 +704,6 @@ Free a pool and temporary objects it refers to (callable from C)
|
||||
ns_update_auto_hide_menu_bar (void)
|
||||
{
|
||||
#ifdef NS_IMPL_COCOA
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
||||
block_input ();
|
||||
|
||||
NSTRACE (ns_update_auto_hide_menu_bar);
|
||||
@ -739,7 +736,6 @@ Free a pool and temporary objects it refers to (callable from C)
|
||||
|
||||
unblock_input ();
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@ -2358,7 +2354,7 @@ Free a pool and temporary objects it refers to (callable from C)
|
||||
[img setXBMColor: bm_color];
|
||||
}
|
||||
|
||||
#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
||||
#ifdef NS_IMPL_COCOA
|
||||
[img drawInRect: r
|
||||
fromRect: NSZeroRect
|
||||
operation: NSCompositeSourceOver
|
||||
@ -3037,7 +3033,7 @@ Function modeled after x_draw_glyph_string_box ().
|
||||
/* Draw the image.. do we need to draw placeholder if img ==nil? */
|
||||
if (img != nil)
|
||||
{
|
||||
#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
||||
#ifdef NS_IMPL_COCOA
|
||||
NSRect dr = NSMakeRect (x, y, s->slice.width, s->slice.height);
|
||||
NSRect ir = NSMakeRect (s->slice.x, s->slice.y,
|
||||
s->slice.width, s->slice.height);
|
||||
@ -3450,8 +3446,7 @@ overwriting cursor (usually when cursor on a tab) */
|
||||
#endif
|
||||
|
||||
/* GNUstep and OSX <= 10.4 does not have cancelTracking. */
|
||||
#if defined (NS_IMPL_COCOA) && \
|
||||
MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
#ifdef NS_IMPL_COCOA
|
||||
/* Check if menu open should be canceled or continued as normal. */
|
||||
void
|
||||
ns_check_menu_open (NSMenu *menu)
|
||||
@ -3514,7 +3509,7 @@ overwriting cursor (usually when cursor on a tab) */
|
||||
menu_will_open_state = MENU_OPENING;
|
||||
}
|
||||
}
|
||||
#endif /* NS_IMPL_COCOA) && >= MAC_OS_X_VERSION_10_5 */
|
||||
#endif /* NS_IMPL_COCOA */
|
||||
|
||||
static void
|
||||
unwind_apploopnr (Lisp_Object not_used)
|
||||
@ -4720,13 +4715,11 @@ - (void)applicationDidFinishLaunching: (NSNotification *)notification
|
||||
|
||||
[self antialiasThresholdDidChange:nil];
|
||||
#ifdef NS_IMPL_COCOA
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
addObserver:self
|
||||
selector:@selector(antialiasThresholdDidChange:)
|
||||
name:NSAntialiasThresholdChangedNotification
|
||||
object:nil];
|
||||
#endif
|
||||
#endif
|
||||
|
||||
ns_send_appdefined (-2);
|
||||
@ -4735,10 +4728,8 @@ - (void)applicationDidFinishLaunching: (NSNotification *)notification
|
||||
- (void)antialiasThresholdDidChange:(NSNotification *)notification
|
||||
{
|
||||
#ifdef NS_IMPL_COCOA
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
macfont_update_antialias_threshold ();
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@ -5078,13 +5069,11 @@ - (void)changeFont: (id)sender
|
||||
if (!emacs_event)
|
||||
return;
|
||||
|
||||
if (EQ (font->driver->type, Qns))
|
||||
nsfont = ((struct nsfont_info *)font)->nsfont;
|
||||
#ifdef NS_IMPL_COCOA
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
else
|
||||
nsfont = (NSFont *) macfont_get_nsctfont (font);
|
||||
#ifdef NS_IMPL_GNUSTEP
|
||||
nsfont = ((struct nsfont_info *)font)->nsfont;
|
||||
#endif
|
||||
#ifdef NS_IMPL_COCOA
|
||||
nsfont = (NSFont *) macfont_get_nsctfont (font);
|
||||
#endif
|
||||
|
||||
if ((newFont = [sender convertFont: nsfont]))
|
||||
@ -5136,7 +5125,7 @@ - (void)keyDown: (NSEvent *)theEvent
|
||||
int code;
|
||||
unsigned fnKeysym = 0;
|
||||
static NSMutableArray *nsEvArray;
|
||||
#if !defined (NS_IMPL_COCOA) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6
|
||||
#ifdef NS_IMPL_GNUSTEP
|
||||
static BOOL firstTime = YES;
|
||||
#endif
|
||||
int left_is_none;
|
||||
@ -5367,7 +5356,7 @@ flag set (this is probably a bug in the OS).
|
||||
}
|
||||
|
||||
|
||||
#if !defined (NS_IMPL_COCOA) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6
|
||||
#ifdef NS_IMPL_GNUSTEP
|
||||
/* if we get here we should send the key for input manager processing */
|
||||
/* Disable warning, there is nothing a user can do about it anyway, and
|
||||
it does not seem to matter. */
|
||||
@ -6509,8 +6498,7 @@ - (void)toggleFullScreen: (id)sender
|
||||
/* Hide dock and menubar if we are on the primary screen. */
|
||||
if (onFirstScreen)
|
||||
{
|
||||
#if defined (NS_IMPL_COCOA) && \
|
||||
MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
||||
#ifdef NS_IMPL_COCOA
|
||||
NSApplicationPresentationOptions options
|
||||
= NSApplicationPresentationAutoHideDock
|
||||
| NSApplicationPresentationAutoHideMenuBar;
|
||||
@ -6562,8 +6550,7 @@ - (void)toggleFullScreen: (id)sender
|
||||
|
||||
if (onFirstScreen)
|
||||
{
|
||||
#if defined (NS_IMPL_COCOA) && \
|
||||
MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
||||
#ifdef NS_IMPL_COCOA
|
||||
[NSApp setPresentationOptions: NSApplicationPresentationDefault];
|
||||
#else
|
||||
[NSMenu setMenuBarVisible:YES];
|
||||
@ -7285,7 +7272,7 @@ - (int) checkSamePosition: (int) position portion: (int) portion
|
||||
|
||||
if (portion >= whole)
|
||||
{
|
||||
#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_5
|
||||
#ifdef NS_IMPL_COCOA
|
||||
[self setKnobProportion: 1.0];
|
||||
[self setDoubleValue: 1.0];
|
||||
#else
|
||||
@ -7299,7 +7286,7 @@ - (int) checkSamePosition: (int) position portion: (int) portion
|
||||
portion = max ((float)whole*min_portion/pixel_height, portion);
|
||||
pos = (float)position / (whole - portion);
|
||||
por = (CGFloat)portion/whole;
|
||||
#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_5
|
||||
#ifdef NS_IMPL_COCOA
|
||||
[self setKnobProportion: por];
|
||||
[self setDoubleValue: pos];
|
||||
#else
|
||||
@ -7829,14 +7816,12 @@ Nil means use fullscreen the old (< 10.7) way. The old way works better with
|
||||
DEFSYM (Qcocoa, "cocoa");
|
||||
DEFSYM (Qgnustep, "gnustep");
|
||||
|
||||
syms_of_nsfont ();
|
||||
#ifdef NS_IMPL_COCOA
|
||||
Fprovide (Qcocoa, Qnil);
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
|
||||
syms_of_macfont ();
|
||||
#endif
|
||||
#else
|
||||
Fprovide (Qgnustep, Qnil);
|
||||
syms_of_nsfont ();
|
||||
#endif
|
||||
|
||||
}
|
||||
|
@ -107,9 +107,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
||||
#include <mach/mach.h>
|
||||
#include <mach-o/loader.h>
|
||||
#include <mach-o/reloc.h>
|
||||
#if defined (__ppc__)
|
||||
#include <mach-o/ppc/reloc.h>
|
||||
#endif
|
||||
#ifdef HAVE_MALLOC_MALLOC_H
|
||||
#include <malloc/malloc.h>
|
||||
#else
|
||||
@ -1033,17 +1030,8 @@ unrelocate (const char *name, off_t reloff, int nrel, vm_address_t base)
|
||||
name, i, reloc_info.r_type);
|
||||
}
|
||||
else
|
||||
switch (sc_reloc_info->r_type)
|
||||
{
|
||||
#if defined (__ppc__)
|
||||
case PPC_RELOC_PB_LA_PTR:
|
||||
/* nothing to do for prebound lazy pointer */
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
unexec_error ("unrelocate: %s:%d cannot handle scattered type = %d",
|
||||
name, i, sc_reloc_info->r_type);
|
||||
}
|
||||
unexec_error ("unrelocate: %s:%d cannot handle scattered type = %d",
|
||||
name, i, sc_reloc_info->r_type);
|
||||
}
|
||||
|
||||
if (nrel > 0)
|
||||
@ -1051,35 +1039,6 @@ unrelocate (const char *name, off_t reloff, int nrel, vm_address_t base)
|
||||
unreloc_count, nrel, name);
|
||||
}
|
||||
|
||||
#if __ppc64__
|
||||
/* Rebase r_address in the relocation table. */
|
||||
static void
|
||||
rebase_reloc_address (off_t reloff, int nrel, long linkedit_delta, long diff)
|
||||
{
|
||||
int i;
|
||||
struct relocation_info reloc_info;
|
||||
struct scattered_relocation_info *sc_reloc_info
|
||||
= (struct scattered_relocation_info *) &reloc_info;
|
||||
|
||||
for (i = 0; i < nrel; i++, reloff += sizeof (reloc_info))
|
||||
{
|
||||
if (lseek (infd, reloff - linkedit_delta, L_SET)
|
||||
!= reloff - linkedit_delta)
|
||||
unexec_error ("rebase_reloc_table: cannot seek to reloc_info");
|
||||
if (!unexec_read (&reloc_info, sizeof (reloc_info)))
|
||||
unexec_error ("rebase_reloc_table: cannot read reloc_info");
|
||||
|
||||
if (sc_reloc_info->r_scattered == 0
|
||||
&& reloc_info.r_type == GENERIC_RELOC_VANILLA)
|
||||
{
|
||||
reloc_info.r_address -= diff;
|
||||
if (!unexec_write (reloff, &reloc_info, sizeof (reloc_info)))
|
||||
unexec_error ("rebase_reloc_table: cannot write reloc_info");
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Copy a LC_DYSYMTAB load command from the input file to the output
|
||||
file, adjusting the file offset fields. */
|
||||
static void
|
||||
@ -1089,28 +1048,8 @@ copy_dysymtab (struct load_command *lc, long delta)
|
||||
vm_address_t base;
|
||||
|
||||
#ifdef _LP64
|
||||
#if __ppc64__
|
||||
{
|
||||
int i;
|
||||
|
||||
base = 0;
|
||||
for (i = 0; i < nlc; i++)
|
||||
if (lca[i]->cmd == LC_SEGMENT)
|
||||
{
|
||||
struct segment_command *scp = (struct segment_command *) lca[i];
|
||||
|
||||
if (scp->vmaddr + scp->vmsize > 0x100000000
|
||||
&& (scp->initprot & VM_PROT_WRITE) != 0)
|
||||
{
|
||||
base = data_segment_scp->vmaddr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
/* First writable segment address. */
|
||||
base = data_segment_scp->vmaddr;
|
||||
#endif
|
||||
#else
|
||||
/* First segment address in the file (unless MH_SPLIT_SEGS set). */
|
||||
base = 0;
|
||||
@ -1136,29 +1075,6 @@ copy_dysymtab (struct load_command *lc, long delta)
|
||||
unexec_error ("cannot write symtab command to header");
|
||||
|
||||
curr_header_offset += lc->cmdsize;
|
||||
|
||||
#if __ppc64__
|
||||
/* Check if the relocation base needs to be changed. */
|
||||
if (base == 0)
|
||||
{
|
||||
vm_address_t newbase = 0;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < num_unexec_regions; i++)
|
||||
if (unexec_regions[i].range.address + unexec_regions[i].range.size
|
||||
> 0x100000000)
|
||||
{
|
||||
newbase = data_segment_scp->vmaddr;
|
||||
break;
|
||||
}
|
||||
|
||||
if (newbase)
|
||||
{
|
||||
rebase_reloc_address (dstp->locreloff, dstp->nlocrel, delta, newbase);
|
||||
rebase_reloc_address (dstp->extreloff, dstp->nextrel, delta, newbase);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Copy a LC_TWOLEVEL_HINTS load command from the input file to the output
|
||||
|
Loading…
Reference in New Issue
Block a user