1
0
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:
Jan Djärv 2014-10-12 10:35:50 +02:00
parent 4c4c5b9121
commit 9a265587d2
14 changed files with 108 additions and 349 deletions

View File

@ -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).

View File

@ -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"

View File

@ -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.

View File

@ -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.

View File

@ -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).

View File

@ -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@

View File

@ -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

View File

@ -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
}

View File

@ -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

View File

@ -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];

View File

@ -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);

View File

@ -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

View File

@ -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
}

View File

@ -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