View | Details | Raw Unified | Return to issue 16607
Collapse All | Expand All

(-)osl/unx/interlck.c (-3 / +3 lines)
Lines 123-129 Link Here
123
		"   bne-    1b"
123
		"   bne-    1b"
124
		: "=&r" (nCount), "=m" (*pCount)
124
		: "=&r" (nCount), "=m" (*pCount)
125
		: "r" (pCount)
125
		: "r" (pCount)
126
		: "r4", "memory");
126
		: "memory");
127
127
128
	return nCount;
128
	return nCount;
129
}
129
}
Lines 135-146 Link Here
135
135
136
	__asm__ __volatile__ (
136
	__asm__ __volatile__ (
137
		"1: lwarx   %0,0,%2\n\t"
137
		"1: lwarx   %0,0,%2\n\t"
138
		"   subi  	%0,%0,1\n\t"
138
		"   subi    %0,%0,1\n\t"
139
		"   stwcx.  %0,0,%2\n\t"
139
		"   stwcx.  %0,0,%2\n\t"
140
		"   bne-    1b"
140
		"   bne-    1b"
141
		: "=&r" (nCount), "=m" (*pCount)
141
		: "=&r" (nCount), "=m" (*pCount)
142
		: "r" (pCount)
142
		: "r" (pCount)
143
		: "r4", "memory");
143
		: "memory");
144
144
145
	return nCount;
145
	return nCount;
146
}
146
}
(-)osl/unx/nlsupport.c (-12 / +407 lines)
Lines 63-73 Link Here
63
#include <osl/diagnose.h>
63
#include <osl/diagnose.h>
64
#include <osl/process.h>
64
#include <osl/process.h>
65
65
66
#if defined(LINUX) || defined(SOLARIS) || defined(IRIX) || defined(NETBSD) || defined(FREEBSD)
66
#if defined(LINUX) || defined(SOLARIS) || defined(IRIX) || defined(NETBSD) || defined(FREEBSD) || defined(MACOSX)
67
#include <pthread.h>
67
#include <pthread.h>
68
#include <locale.h>
68
#ifndef MACOSX
69
#include <langinfo.h>
69
 #include <locale.h>
70
#endif
70
 #include <langinfo.h>
71
#else
72
#include <osl/module.h>
73
#include <osl/thread.h>
74
#include <unxmacxp_protos.h>
75
#endif	/* !MACOSX */
76
#endif	/* LINUX || SOLARIS || IRIX || NETBSD || MACOSX */
71
77
72
/*****************************************************************************/
78
/*****************************************************************************/
73
/* typedefs
79
/* typedefs
Lines 240-246 Link Here
240
    return NULL;
246
    return NULL;
241
}
247
}
242
        
248
        
243
#if defined(LINUX) || defined(SOLARIS) || defined(IRIX) || defined(NETBSD) || defined(FREEBSD)
249
#if defined(LINUX) || defined(SOLARIS) || defined(IRIX) || defined(NETBSD) || defined(FREEBSD) || defined(MACOSX)
244
250
245
/*
251
/*
246
 * This implementation of osl_getTextEncodingFromLocale maps
252
 * This implementation of osl_getTextEncodingFromLocale maps
Lines 323-329 Link Here
323
   { "sjis",		RTL_TEXTENCODING_SHIFT_JIS	} /* Japan */
329
   { "sjis",		RTL_TEXTENCODING_SHIFT_JIS	} /* Japan */
324
};
330
};
325
331
326
#elif defined(LINUX) || defined(NETBSD)
332
#elif defined(LINUX) || defined(NETBSD) || defined(MACOSX)
327
333
328
const _pair _nl_language_list[] = {
334
const _pair _nl_language_list[] = {
329
    { "ANSI_X3.110-1983",           RTL_TEXTENCODING_DONTKNOW   },  /* ISO-IR-99 NAPLPS */
335
    { "ANSI_X3.110-1983",           RTL_TEXTENCODING_DONTKNOW   },  /* ISO-IR-99 NAPLPS */
Lines 557-566 Link Here
557
    { "UTF-8",         RTL_TEXTENCODING_UTF8           }  /* ISO-10646/UTF-8 */
563
    { "UTF-8",         RTL_TEXTENCODING_UTF8           }  /* ISO-10646/UTF-8 */
558
};
564
};
559
565
560
#endif /* ifdef SOLARIS IRIX LINUX FREEBSD NETBSD */
566
#endif /* ifdef SOLARIS IRIX LINUX FREEBSD NETBSD MACOSX */
567
568
#ifdef MACOSX
569
/* MacOS X has some special names for some of its encodings.  These encoding names are
570
 * returned by CFStringConvertEncodingToIANACharSetName() when given a CFTextEncoding
571
 * argument from one of the ones in CFStringEncodingExt.h in the CoreFoundation framework.
572
 */
573
const _pair _macxp_language_list[] = {
574
	{ "MACINTOSH",				RTL_TEXTENCODING_ISO_8859_1 },		/* kCFStringEncodingMacRoman */
575
	{ "X-MAC-JAPANESE",			RTL_TEXTENCODING_EUC_JP },			/* kCFStringEncodingMacJapanese */
576
	{ "X-MAC-TRAD-CHINESE",		RTL_TEXTENCODING_APPLE_CHINTRAD },		/* kCFStringEncodingMacChineseTrad */
577
	{ "X-MAC-KOREAN",			RTL_TEXTENCODING_EUC_KR },			/* kCFStringEncodingMacKorean */
578
	{ "X-MAC-ARABIC",			RTL_TEXTENCODING_APPLE_ARABIC },		/* kCFStringEncodingMacArabic */
579
	{ "X-MAC-HEBREW",			RTL_TEXTENCODING_APPLE_HEBREW },		/* kCFStringEncodingMacHebrew */
580
	{ "X-MAC-GREEK",			RTL_TEXTENCODING_APPLE_GREEK },		/* kCFStringEncodingMacGreek */
581
	{ "X-MAC-CYRILLIC",			RTL_TEXTENCODING_APPLE_CYRILLIC },		/* kCFStringEncodingMacCyrillic */
582
	{ "X-MAC-DEVANAGARI",		RTL_TEXTENCODING_APPLE_DEVANAGARI },	/* kCFStringEncodingMacDevanagari */
583
	{ "X-MAC-GURMUKHI",			RTL_TEXTENCODING_APPLE_GURMUKHI },		/* kCFStringEncodingMacGurmukhi */
584
	{ "X-MAC-GUJARATI",			RTL_TEXTENCODING_APPLE_GUJARATI },		/* kCFStringEncodingMacGujarati */
585
	{ "X-MAC-ORIYA",			RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacOriya */
586
	{ "X-MAC-BENGALI",			RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacBengali */
587
	{ "X-MAC-TAMIL",			RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacTamil */
588
	{ "X-MAC-TELUGU",			RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacTelugu */
589
	{ "X-MAC-KANNADA",			RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacKannada */
590
	{ "X-MAC-MALAYALAM",		RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacMalayalam */
591
	{ "X-MAC-SINHALESE",		RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacSinhalese */
592
	{ "X-MAC-BURMESE",			RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacBurmese */
593
	{ "X-MAC-KHMER",			RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacKhmer */
594
	{ "X-MAC-THAI",			RTL_TEXTENCODING_APPLE_THAI },		/* kCFStringEncodingMacThai */
595
	{ "X-MAC-LAOTIAN",			RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacLaotian */
596
	{ "X-MAC-GEORGIAN",			RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacGeorgian */
597
	{ "X-MAC-ARMENIAN",			RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacArmenian */
598
	{ "X-MAC-SIMP-CHINESE",		RTL_TEXTENCODING_APPLE_CHINSIMP },		/* kCFStringEncodingMacChineseSimp */
599
	{ "X-MAC-TIBETAN",			RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacTibetan */
600
	{ "X-MAC-MONGOLIAN",		RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacMongolian */
601
	{ "X-MAC-ETHIOPIC",			RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacEthiopic */
602
	{ "X-MAC-CENTRALEURROMAN",	RTL_TEXTENCODING_APPLE_CENTEURO },		/* kCFStringEncodingMacCentralEurRoman */
603
	{ "X-MAC-VIETNAMESE",		RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacVietnamese */
604
	{ "X-MAC-EXTARABIC",		RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacExtArabic */
605
	{ "X-MAC-SYMBOL",			RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacSymbol */
606
	{ "X-MAC-DINGBATS",			RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacDingbats */
607
	{ "X-MAC-TURKISH",			RTL_TEXTENCODING_APPLE_TURKISH },		/* kCFStringEncodingMacTurkish */
608
	{ "X-MAC-CROATIAN",			RTL_TEXTENCODING_APPLE_CROATIAN },		/* kCFStringEncodingMacCroatian */
609
	{ "X-MAC-ICELANDIC",		RTL_TEXTENCODING_APPLE_ICELAND },		/* kCFStringEncodingMacIcelandic */
610
	{ "X-MAC-ROMANIAN",			RTL_TEXTENCODING_APPLE_ROMANIAN },		/* kCFStringEncodingMacRomanian */
611
	{ "UNICODE-2-0",			RTL_TEXTENCODING_DONTKNOW },			/*  */
612
	{ "X-MAC-FARSI",			RTL_TEXTENCODING_APPLE_FARSI },		/* kCFStringEncodingMacFarsi */
613
	{ "X-MAC-UKRAINIAN",		RTL_TEXTENCODING_APPLE_UKRAINIAN },	/* kCFStringEncodingMacUkrainian */
614
	{ "X-MAC-VT100",			RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacVT100 */
615
	{ "macintosh",				RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingMacHFS */
616
	{ "UTF-16BE",				RTL_TEXTENCODING_UNICODE },			/* kCFStringEncodingUnicode */
617
	{ "UNICODE-1-1",			RTL_TEXTENCODING_DONTKNOW },			/*  */
618
	{ "UNICODE-1-1",			RTL_TEXTENCODING_DONTKNOW },			/*  */
619
	{ "UNICODE-2-0",			RTL_TEXTENCODING_DONTKNOW },			/*  */
620
	{ "csUnicode",				RTL_TEXTENCODING_DONTKNOW },			/*  */
621
	{ "CP437",				RTL_TEXTENCODING_IBM_437 },			/* kCFStringEncodingDOSLatinUS */
622
	{ "CP737",				RTL_TEXTENCODING_IBM_737 },			/* kCFStringEncodingDOSGreek */
623
	{ "CP775",				RTL_TEXTENCODING_IBM_775 },			/* kCFStringEncodingDOSBalticRim */
624
	{ "CP850",				RTL_TEXTENCODING_IBM_850 },			/* kCFStringEncodingDOSLatin1 */
625
	{ "CP852",				RTL_TEXTENCODING_IBM_852 },			/* kCFStringEncodingDOSGreek1 */
626
	{ "CP857",				RTL_TEXTENCODING_IBM_857 },			/* kCFStringEncodingDOSTurkish */
627
	{ "CP861",				RTL_TEXTENCODING_IBM_861 },			/* kCFStringEncodingDOSIcelandic */
628
	{ "cp864",				RTL_TEXTENCODING_IBM_864 },			/* kCFStringEncodingDOSArabic */
629
	{ "CP866",				RTL_TEXTENCODING_IBM_866 },			/* kCFStringEncodingDOSRussian */
630
	{ "CP874",				RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingDOSThai */
631
	{ "CP932",				RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingDOSJapanese */
632
	{ "CP936",				RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingDOSChineseSimplif */
633
	{ "CP949",				RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingDOSKorean */
634
	{ "CP950",				RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingDOSChineseTrad */
635
	{ "WINDOWS-1252",			RTL_TEXTENCODING_MS_1252 },			/* kCFStringEncodingWindowsLatin1 */
636
	{ "WINDOWS-1250",			RTL_TEXTENCODING_MS_1250 },			/* kCFStringEncodingWindowsLatin2 */
637
	{ "WINDOWS-1251",			RTL_TEXTENCODING_MS_1251 },			/* kCFStringEncodingWindowsCyrillic */
638
	{ "WINDOWS-1253",			RTL_TEXTENCODING_MS_1253 },			/* kCFStringEncodingWindowsGreek */
639
	{ "WINDOWS-1254",			RTL_TEXTENCODING_MS_1254 },			/* kCFStringEncodingWindowsLatin5 */
640
	{ "WINDOWS-1255",			RTL_TEXTENCODING_MS_1255 },			/* kCFStringEncodingWindowsHebrew */
641
	{ "WINDOWS-1256",			RTL_TEXTENCODING_MS_1256 },			/* kCFStringEncodingWindowsArabic */
642
	{ "WINDOWS-1257",			RTL_TEXTENCODING_MS_1257 },			/* kCFStringEncodingWindowsBalticRim */
643
	{ "WINDOWS-1258",			RTL_TEXTENCODING_MS_1258 },			/* kCFStringEncodingWindowsVietnamese */
644
	{ "US-ASCII",				RTL_TEXTENCODING_ASCII_US },			/* kCFStringEncodingASCII */
645
	{ "JIS_C6226-1983",			RTL_TEXTENCODING_GB_2312 },			/* kCFStringEncodingJIS_X0208_90 */
646
	{ "csISO58GB231280",		RTL_TEXTENCODING_GB_2312 },			/* kCFStringEncodingGB_2312_80 */
647
	{ "X-GBK",				RTL_TEXTENCODING_GBK },				/* kCFStringEncodingGBK_95 */
648
	{ "csKSC56011987",			RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingKSC_5601_87 */
649
	{ "ISO-2022-JP",			RTL_TEXTENCODING_ISO_2022_JP },		/* kCFStringEncodingISO_2022_JP */
650
	{ "ISO-2022-CN",			RTL_TEXTENCODING_ISO_2022_CN },		/* kCFStringEncodingISO_2022_CN */
651
	{ "ISO-2022-CN-EXT",		RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingISO_2022_CN_EXT */
652
	{ "ISO-2022-KR",			RTL_TEXTENCODING_ISO_2022_KR },		/* kCFStringEncodingISO_2022_KR */
653
	{ "EUC-JP",				RTL_TEXTENCODING_EUC_JP },			/* kCFStringEncodingEUC_JP */
654
	{ "EUC-CN",				RTL_TEXTENCODING_EUC_CN },			/* kCFStringEncodingEUC_CN */
655
	{ "EUC-TW",				RTL_TEXTENCODING_EUC_TW },			/* kCFStringEncodingEUC_TW */
656
	{ "EUC-KR",				RTL_TEXTENCODING_EUC_KR },			/* kCFStringEncodingEUC_KR */
657
	{ "SHIFT_JIS",				RTL_TEXTENCODING_SHIFT_JIS },			/* kCFStringEncodingShiftJIS */
658
	{ "KOI8-R",				RTL_TEXTENCODING_KOI8_R },			/* kCFStringEncodingKOI8_R */
659
	{ "X-MAC-ROMAN-LATIN1",		RTL_TEXTENCODING_APPLE_ROMAN },		/* kCFStringEncodingMacRomanLatin1 */
660
	{ "HZ-GB-2312",			RTL_TEXTENCODING_GB_2312 },			/* kCFStringEncodingHZ_GB_2312 */
661
	{ "Big5-HKSCS",			RTL_TEXTENCODING_BIG5_HKSCS },		/* kCFStringEncodingBig5_HKSCS_1999 */
662
	{ "X-NEXTSTEP",			RTL_TEXTENCODING_DONTKNOW },			/* kCFStringEncodingNextStepLatin */
663
	{ "cp037",				RTL_TEXTENCODING_DONTKNOW }			/* kCFStringEncodingEBCDIC_CP037 */
664
/* ___________ Add more encodings here ___________ */
665
};
666
#endif	/* ifdef MACOSX */
561
667
562
static pthread_mutex_t aLocalMutex = PTHREAD_MUTEX_INITIALIZER;
668
static pthread_mutex_t aLocalMutex = PTHREAD_MUTEX_INITIALIZER;
563
669
670
#ifndef MACOSX
671
564
/*****************************************************************************/
672
/*****************************************************************************/
565
/* return the text encoding corresponding to the given locale
673
/* return the text encoding corresponding to the given locale
566
/*****************************************************************************/
674
/*****************************************************************************/
Lines 679-697 Link Here
679
    return ret;
787
    return ret;
680
}
788
}
681
789
682
#elif defined(MACOSX) /* ifdef LINUX || SOLARIS || NETBSD */
790
#else	/* ifndef MACOSX */
683
791
684
/*
792
/*
685
 * FIXME: the MacOS X implemetation is missing
793
 * MacOS X specific Locale manipulation code
686
 */
794
 */
687
 
795
 
796
#include <premac.h>
797
#include <CoreFoundation/CoreFoundation.h>
798
#include <postmac.h>
799
800
/* OS X locale discovery function from dylib */
801
int (*pGetOSXLocale)( char *, sal_uInt32 );
802
int (*pConvertTextEncodingToIANACharsetName)( char *, unsigned int, CFStringEncoding );
803
804
void macxp_ConvertCFEncodingToIANACharSetName( char *buffer, unsigned int bufferLen, CFStringEncoding cfEncoding );
805
688
/*****************************************************************************/
806
/*****************************************************************************/
689
/* return the text encoding corresponding to the given locale
807
/* return the text encoding corresponding to the given locale
690
/*****************************************************************************/
808
/*****************************************************************************/
691
809
692
rtl_TextEncoding osl_getTextEncodingFromLocale( rtl_Locale * pLocale )
810
rtl_TextEncoding osl_getTextEncodingFromLocale( rtl_Locale * pLocale )
693
{
811
{
694
    return RTL_TEXTENCODING_DONTKNOW;
812
    const _pair          *pLanguage = NULL;
813
    char                 sEncoding[ 64 ] = "";
814
    CFStringEncoding     sCFSysEncoding;
815
    const unsigned int   macxpListMembers = sizeof(_macxp_language_list) / sizeof(_pair);
816
    const unsigned int   otherListMembers = sizeof(_nl_language_list) / sizeof(_pair);
817
    unsigned int         isDarwin;
818
    unsigned int         majorVersion;
819
    unsigned int         minorVersion;
820
    unsigned int         minorMinorVersion;
821
822
    /* For retrieving the CoreFoundation text encoding, the process goes like
823
     * this:
824
     * 1) On MacOS X this will be the first language listed in the 
825
     *     Language tab of the International preference pane.
826
     * 2) On Darwin 5 the value is currently hardwired to 
827
     *     kCFStringEncodingMacRoman.
828
     */
829
    sCFSysEncoding = CFStringGetSystemEncoding();
830
831
    /* If running on OS X, attempt to convert text encoding to a charset name using CoreFoundation calls. */
832
    /* Must use osl_psz_xxxx variants of functions here because otherwise osl_loadModule() tries to get the
833
     * un-Unicode the string we pass to it, which results in this function being called again and again and
834
     * again, finally overflowing the stack.
835
     */
836
    macxp_getSystemVersion( &isDarwin, &majorVersion, &minorVersion, &minorMinorVersion );
837
    if( !isDarwin )
838
    {
839
        /* Load the text encoding conversion library if we are running on OS X */
840
        const sal_Char   *aTextEncConvertLibName          = "libsalextra_x11osx_mxp.dylib";
841
        const sal_Char   *aOSXTextEncConvertFunctionName  = "macxp_OSXConvertCFEncodingToIANACharSetName";
842
        oslModule         pTextEncCovertLib;
843
        void             *pFunc;
844
        int               err;
845
846
        pTextEncCovertLib = osl_psz_loadModule( aTextEncConvertLibName, SAL_LOADMODULE_DEFAULT );
847
        if( !pTextEncCovertLib )
848
        {
849
            fprintf( stderr, "Could not load the OS X text encoding coversion library! (%s)\n", aTextEncConvertLibName );
850
        }
851
        else
852
        {
853
            /* Grab a pointer to the text encoding conversion function and call it */
854
            pFunc = osl_psz_getSymbol( pTextEncCovertLib, aOSXTextEncConvertFunctionName );
855
            if( pFunc )
856
            {
857
                pConvertTextEncodingToIANACharsetName = ( int(*)(char *, unsigned int, CFStringEncoding) )( pFunc );
858
                err = (*pConvertTextEncodingToIANACharsetName)( sEncoding, 64, sCFSysEncoding );
859
            }
860
            else
861
                fprintf( stderr, "Could not grab pointer to the OS X text encoding coversion routine! (%s)\n", aOSXTextEncConvertFunctionName );
862
        }			
863
        osl_unloadModule( pTextEncCovertLib );
864
    }
865
866
    if ( strlen(sEncoding) <= 0 )
867
    {
868
        /*
869
         * Darwin doesn't have a CFStringConvertEncodingToIANACharSetName(),
870
         * so we call our own replacement.  Also fall back to our replacement
871
         * if for some reason we can't load our OS X convert library.
872
         */
873
        macxp_ConvertCFEncodingToIANACharSetName( sEncoding, 64, sCFSysEncoding );
874
    }
875
876
	/* Try the Mac-specific list first, then non-Mac list (picks up MACINTOSH from non-Mac list) */
877
	pLanguage = _pair_search( sEncoding, _macxp_language_list, macxpListMembers );
878
	if ( pLanguage == NULL )
879
		pLanguage = _pair_search( sEncoding, _nl_language_list, otherListMembers );
880
		
881
	OSL_ASSERT( pLanguage && ( RTL_TEXTENCODING_DONTKNOW != pLanguage->value ) );
882
883
	/*
884
	 * a matching item in our list provides a mapping from codeset to
885
	 * rtl-codeset
886
      */
887
	if ( pLanguage != NULL  )
888
		return pLanguage->value;
889
   
890
	return RTL_TEXTENCODING_DONTKNOW;
695
}
891
}
696
892
697
/*****************************************************************************/
893
/*****************************************************************************/
Lines 700-706 Link Here
700
896
701
void _imp_getProcessLocale( rtl_Locale ** ppLocale )
897
void _imp_getProcessLocale( rtl_Locale ** ppLocale )
702
{
898
{
703
    *ppLocale = _parse_locale( "C" );
899
    static const char *locale = NULL;
900
901
    /* basic thread safeness */
902
    pthread_mutex_lock( &aLocalMutex );
903
904
    /* Only fetch the locale once and cache it */
905
    if ( NULL == locale )
906
    {
907
        unsigned int    isDarwin;
908
        unsigned int    majorVersion;
909
        unsigned int    minorVersion;
910
        unsigned int    minorMinorVersion;
911
912
        /* If running on OS X, attempt to fetch the locale using CoreServices calls. */
913
        macxp_getSystemVersion( &isDarwin, &majorVersion, &minorVersion, &minorMinorVersion );
914
        if( !isDarwin )
915
        {
916
            /* Load the locale discovery library if we are running on OS X */
917
            const sal_Char   *aLocaleLibName             = "libsalextra_x11osx_mxp.dylib";
918
            const sal_Char   *aGetOSXLocaleFunctionName  = "macxp_getOSXLocale";
919
            oslModule         pLocaleLib;
920
            void             *pFunc;
921
            int               err;
922
	
923
            pLocaleLib = osl_psz_loadModule( aLocaleLibName, SAL_LOADMODULE_DEFAULT );
924
            if( pLocaleLib )
925
            {
926
                /* Grab a pointer to the locale function and call it */
927
                pFunc = osl_psz_getSymbol( pLocaleLib, aGetOSXLocaleFunctionName );
928
                if( pFunc )
929
                {
930
                    pGetOSXLocale = ( int(*)(char *, sal_uInt32) )( pFunc );
931
                    locale = (char *)malloc( 20 );
932
                    if ( locale )
933
                        err = (*pGetOSXLocale)( locale, 20 );
934
                    else
935
                        fprintf( stderr, "nlsupport.c:  locale allocation returned NULL!\n" );
936
                }
937
                else
938
                    fprintf( stderr, "Could not load the OS X locale discovery function! (%s)\n", aGetOSXLocaleFunctionName );
939
            }
940
            else
941
                fprintf( stderr, "Could not load the OS X locale discovery library! (%s)\n", aLocaleLibName );
942
943
            /* Let go of the module, we don't need it anymore */
944
            osl_unloadModule( pLocaleLib );
945
         }
946
    }
947
948
    /* handle the case where OS specific method of finding locale fails */
949
    if ( NULL == locale )
950
    {
951
        /* simulate behavior of setlocale */
952
        locale = getenv( "LC_ALL" );
953
954
        if( NULL == locale )
955
            locale = getenv( "LC_CTYPE" );
956
957
        if( NULL == locale )
958
            locale = getenv( "LANG" );
959
960
        if( NULL == locale )
961
            locale = "C";
962
    }
963
964
    /* return the locale */
965
    *ppLocale = _parse_locale( locale );
966
#ifdef DEBUG
967
    fprintf( stderr, "nlsupport.c:  _imp_getProcessLocale() returning %s as current locale.\n", locale );
968
#endif
969
970
    pthread_mutex_unlock( &aLocalMutex );
971
704
}
972
}
705
973
706
/*****************************************************************************/
974
/*****************************************************************************/
Lines 709-716 Link Here
709
977
710
int _imp_setProcessLocale( rtl_Locale * pLocale )
978
int _imp_setProcessLocale( rtl_Locale * pLocale )
711
{
979
{
712
    return 0;
980
	/* There is not yet any way to set the locale of a process
981
	 * on Darwin or MacOS X through BSD layer functions.
982
	 *
983
	 * On MacOS X locale and language are set by the user through
984
	 * the International pane of the System Preferences application.
985
	 *
986
	 * FIXME when this can be done.
987
	 */
988
	return 0;
713
}
989
}
990
991
992
/*****************************************************************************/
993
/* Get a charset name from a CoreFoundation text encoding number
994
/*****************************************************************************/
995
void macxp_ConvertCFEncodingToIANACharSetName( char *buffer, unsigned int bufferLen, CFStringEncoding cfEncoding )
996
{
997
	switch( cfEncoding )
998
	{
999
		case 0:		strncpy( buffer, "MACINTOSH", bufferLen-1 );				break;	/* kCFStringEncodingMacRoman */
1000
		case 1:		strncpy( buffer, "X-MAC-JAPANESE", bufferLen-1 );			break;	/* kCFStringEncodingMacJapanese */
1001
		case 2:		strncpy( buffer, "X-MAC-TRAD-CHINESE", bufferLen-1 );		break;	/* kCFStringEncodingMacChineseTrad */
1002
		case 3:		strncpy( buffer, "X-MAC-KOREAN", bufferLen-1 );			break;	/* kCFStringEncodingMacKorean */
1003
		case 4:		strncpy( buffer, "X-MAC-ARABIC", bufferLen-1 );			break;	/* kCFStringEncodingMacArabic */
1004
		case 5:		strncpy( buffer, "X-MAC-HEBREW", bufferLen-1 );			break;	/* kCFStringEncodingMacHebrew */
1005
		case 6:		strncpy( buffer, "X-MAC-GREEK", bufferLen-1 );			break;	/* kCFStringEncodingMacGreek */
1006
		case 7:		strncpy( buffer, "X-MAC-CYRILLIC", bufferLen-1 );			break;	/* kCFStringEncodingMacCyrillic */
1007
		case 9:		strncpy( buffer, "X-MAC-DEVANAGARI", bufferLen-1 );		break;	/* kCFStringEncodingMacDevanagari */
1008
		case 10:		strncpy( buffer, "X-MAC-GURMUKHI", bufferLen-1 );			break;	/* kCFStringEncodingMacGurmukhi */
1009
		case 11:		strncpy( buffer, "X-MAC-GUJARATI", bufferLen-1 );			break;	/* kCFStringEncodingMacGujarati */
1010
		case 12:		strncpy( buffer, "X-MAC-ORIYA", bufferLen-1 );			break;	/* kCFStringEncodingMacOriya */
1011
		case 13:		strncpy( buffer, "X-MAC-BENGALI", bufferLen-1 );			break;	/* kCFStringEncodingMacBengali */
1012
		case 14:		strncpy( buffer, "X-MAC-TAMIL", bufferLen-1 );			break;	/* kCFStringEncodingMacTamil */
1013
		case 15:		strncpy( buffer, "X-MAC-TELUGU", bufferLen-1 );			break;	/* kCFStringEncodingMacTamil */
1014
		case 16:		strncpy( buffer, "X-MAC-KANNADA", bufferLen-1 );			break;	/* kCFStringEncodingMacKannada */
1015
		case 17:		strncpy( buffer, "X-MAC-MALAYALAM", bufferLen-1 );		break;	/* kCFStringEncodingMacMalayalam */
1016
		case 18:		strncpy( buffer, "X-MAC-SINHALESE", bufferLen-1 );		break;	/* kCFStringEncodingMacSinhalese */
1017
		case 19:		strncpy( buffer, "X-MAC-BURMESE", bufferLen-1 );			break;	/* kCFStringEncodingMacBurmese */
1018
		case 20:		strncpy( buffer, "X-MAC-KHMER", bufferLen-1 );			break;	/* kCFStringEncodingMacKhmer */
1019
		case 21:		strncpy( buffer, "X-MAC-THAI", bufferLen-1 );			break;	/* kCFStringEncodingMacThai */
1020
		case 22:		strncpy( buffer, "X-MAC-LAOTIAN", bufferLen-1 );			break;	/* kCFStringEncodingMacLaotian */
1021
		case 23:		strncpy( buffer, "X-MAC-GEORGIAN", bufferLen-1 );			break;	/* kCFStringEncodingMacGeorgian */
1022
		case 24:		strncpy( buffer, "X-MAC-ARMENIAN", bufferLen-1 );			break;	/* kCFStringEncodingMacArmenian */
1023
		case 25:		strncpy( buffer, "X-MAC-SIMP-CHINESE", bufferLen-1 );		break;	/* kCFStringEncodingMacChineseSimp */
1024
		case 26:		strncpy( buffer, "X-MAC-TIBETAN", bufferLen-1 );			break;	/* kCFStringEncodingMacTibetan */
1025
		case 27:		strncpy( buffer, "X-MAC-MONGOLIAN", bufferLen-1 );		break;	/* kCFStringEncodingMacMongolian */
1026
		case 28:		strncpy( buffer, "X-MAC-ETHIOPIC", bufferLen-1 );			break;	/* kCFStringEncodingMacEthiopic */
1027
		case 29:		strncpy( buffer, "X-MAC-CENTRALEURROMAN", bufferLen-1 );	break;	/* kCFStringEncodingMacCentralEurRoman */
1028
		case 30:		strncpy( buffer, "X-MAC-VIETNAMESE", bufferLen-1 );		break;	/* kCFStringEncodingMacVietnamese */
1029
		case 31:		strncpy( buffer, "X-MAC-EXTARABIC", bufferLen-1 );		break;	/* kCFStringEncodingMacExtArabic */
1030
		case 33:		strncpy( buffer, "X-MAC-SYMBOL", bufferLen-1 );			break;	/* kCFStringEncodingMacSymbol */
1031
		case 34:		strncpy( buffer, "X-MAC-DINGBATS", bufferLen-1 );			break;	/* kCFStringEncodingMacDingbats */
1032
		case 35:		strncpy( buffer, "X-MAC-TURKISH", bufferLen-1 );			break;	/* kCFStringEncodingMacTurkish */
1033
		case 36:		strncpy( buffer, "X-MAC-CROATIAN", bufferLen-1 );			break;	/* kCFStringEncodingMacCroatian */
1034
		case 37:		strncpy( buffer, "X-MAC-ICELANDIC", bufferLen-1 );		break;	/* kCFStringEncodingMacIcelandic */
1035
		case 38:		strncpy( buffer, "X-MAC-ROMANIAN", bufferLen-1 );			break;	/* kCFStringEncodingMacRomanian */
1036
		case 126:		strncpy( buffer, "UNICODE-2-0", bufferLen-1 );			break;	/*  */
1037
		case 140:		strncpy( buffer, "X-MAC-FARSI", bufferLen-1 );			break;	/* kCFStringEncodingMacFarsi */
1038
		case 152:		strncpy( buffer, "X-MAC-UKRAINIAN", bufferLen-1 );		break;	/* kCFStringEncodingMacUkrainian */
1039
		case 252:		strncpy( buffer, "X-MAC-VT100", bufferLen-1 );			break;	/* kCFStringEncodingMacVT100 */
1040
		case 255:		strncpy( buffer, "macintosh", bufferLen-1 );				break;	/* kCFStringEncodingMacHFS */
1041
		case 256:		strncpy( buffer, "UTF-16BE", bufferLen-1 );				break;	/* kCFStringEncodingUnicode */
1042
		case 257:		strncpy( buffer, "UNICODE-1-1", bufferLen-1 );			break;	/*  */
1043
		case 258:		strncpy( buffer, "UNICODE-1-1", bufferLen-1 );			break;	/*  */
1044
		case 259:		strncpy( buffer, "UNICODE-2-0", bufferLen-1 );			break;	/*  */
1045
		case 260:		strncpy( buffer, "csUnicode", bufferLen-1 );				break;	/*  */
1046
		case 513:		strncpy( buffer, "ISO-8859-1", bufferLen-1 );			break;	/* kCFStringEncodingISOLatin1 */
1047
		case 514:		strncpy( buffer, "ISO-8859-2", bufferLen-1 );			break;	/* kCFStringEncodingISOLatin2 */
1048
		case 515:		strncpy( buffer, "ISO-8859-3", bufferLen-1 );			break;	/* kCFStringEncodingISOLatin3 */
1049
		case 516:		strncpy( buffer, "ISO-8859-4", bufferLen-1 );			break;	/* kCFStringEncodingISOLatin4 */
1050
		case 517:		strncpy( buffer, "ISO-8859-5", bufferLen-1 );			break;	/* kCFStringEncodingISOLatinCyrillic */
1051
		case 518:		strncpy( buffer, "ISO-8859-6", bufferLen-1 );			break;	/* kCFStringEncodingISOLatinArabic */
1052
		case 519:		strncpy( buffer, "ISO-8859-7", bufferLen-1 );			break;	/* kCFStringEncodingISOLatinGreek */
1053
		case 520:		strncpy( buffer, "ISO-8859-8", bufferLen-1 );			break;	/* kCFStringEncodingISOLatinHebrew */
1054
		case 521:		strncpy( buffer, "ISO-8859-9", bufferLen-1 );			break;	/* kCFStringEncodingISOLatin5 */
1055
		case 522:		strncpy( buffer, "ISO-8859-10", bufferLen-1 );			break;	/* kCFStringEncodingISOLatin6 */
1056
		case 523:		strncpy( buffer, "ISO-8859-11", bufferLen-1 );			break;	/* kCFStringEncodingISOLatinThai */
1057
		case 525:		strncpy( buffer, "ISO-8859-13", bufferLen-1 );			break;	/* kCFStringEncodingISOLatin7 */
1058
		case 526:		strncpy( buffer, "ISO-8859-14", bufferLen-1 );			break;	/* kCFStringEncodingISOLatin8 */
1059
		case 527:		strncpy( buffer, "ISO-8859-15", bufferLen-1 );			break;	/* kCFStringEncodingISOLatin9 */
1060
		case 1024:	strncpy( buffer, "CP437", bufferLen-1 );				break;	/* kCFStringEncodingDOSLatinUS */
1061
		case 1029:	strncpy( buffer, "CP737", bufferLen-1 );				break;	/* kCFStringEncodingDOSGreek */
1062
		case 1030:	strncpy( buffer, "CP775", bufferLen-1 );				break;	/* kCFStringEncodingDOSBalticRim */
1063
		case 1040:	strncpy( buffer, "CP850", bufferLen-1 );				break;	/* kCFStringEncodingDOSLatin1 */
1064
		case 1042:	strncpy( buffer, "CP852", bufferLen-1 );				break;	/* kCFStringEncodingDOSGreek1 */
1065
		case 1044:	strncpy( buffer, "CP857", bufferLen-1 );				break;	/* kCFStringEncodingDOSTurkish */
1066
		case 1046:	strncpy( buffer, "CP861", bufferLen-1 );				break;	/* kCFStringEncodingDOSIcelandic */
1067
		case 1049:	strncpy( buffer, "cp864", bufferLen-1 );				break;	/* kCFStringEncodingDOSArabic */
1068
		case 1051:	strncpy( buffer, "CP866", bufferLen-1 );				break;	/* kCFStringEncodingDOSRussian */
1069
		case 1053:	strncpy( buffer, "CP874", bufferLen-1 );				break;	/* kCFStringEncodingDOSThai */
1070
		case 1056:	strncpy( buffer, "CP932", bufferLen-1 );				break;	/* kCFStringEncodingDOSJapanese */
1071
		case 1057:	strncpy( buffer, "CP936", bufferLen-1 );				break;	/* kCFStringEncodingDOSChineseSimplif */
1072
		case 1058:	strncpy( buffer, "CP949", bufferLen-1 );				break;	/* kCFStringEncodingDOSKorean */
1073
		case 1059:	strncpy( buffer, "CP950", bufferLen-1 );				break;	/* kCFStringEncodingDOSChineseTrad */
1074
		case 1280:	strncpy( buffer, "WINDOWS-1252", bufferLen-1 );			break;	/* kCFStringEncodingWindowsLatin1 */
1075
		case 1281:	strncpy( buffer, "WINDOWS-1250", bufferLen-1 );			break;	/* kCFStringEncodingWindowsLatin2 */
1076
		case 1282:	strncpy( buffer, "WINDOWS-1251", bufferLen-1 );			break;	/* kCFStringEncodingWindowsCyrillic */
1077
		case 1283:	strncpy( buffer, "WINDOWS-1253", bufferLen-1 );			break;	/* kCFStringEncodingWindowsGreek */
1078
		case 1284:	strncpy( buffer, "WINDOWS-1254", bufferLen-1 );			break;	/* kCFStringEncodingWindowsLatin5 */
1079
		case 1285:	strncpy( buffer, "WINDOWS-1255", bufferLen-1 );			break;	/* kCFStringEncodingWindowsHebrew */
1080
		case 1286:	strncpy( buffer, "WINDOWS-1256", bufferLen-1 );			break;	/* kCFStringEncodingWindowsArabic */
1081
		case 1287:	strncpy( buffer, "WINDOWS-1257", bufferLen-1 );			break;	/* kCFStringEncodingWindowsBalticRim */
1082
		case 1288:	strncpy( buffer, "WINDOWS-1258", bufferLen-1 );			break;	/* kCFStringEncodingWindowsVietnamese */
1083
		case 1536:	strncpy( buffer, "US-ASCII", bufferLen-1 );				break;	/* kCFStringEncodingASCII */
1084
		case 1570:	strncpy( buffer, "JIS_C6226-1983", bufferLen-1 );			break;	/* kCFStringEncodingJIS_X0208_90 */
1085
		case 1584:	strncpy( buffer, "csISO58GB231280", bufferLen-1 );		break;	/* kCFStringEncodingGB_2312_80 */
1086
		case 1585:	strncpy( buffer, "X-GBK", bufferLen-1 );				break;	/* kCFStringEncodingGBK_95 */
1087
		case 1600:	strncpy( buffer, "csKSC56011987", bufferLen-1 );			break;	/* kCFStringEncodingKSC_5601_87 */
1088
		case 2080:	strncpy( buffer, "ISO-2022-JP", bufferLen-1 );			break;	/* kCFStringEncodingISO_2022_JP */
1089
		case 2096:	strncpy( buffer, "ISO-2022-CN", bufferLen-1 );			break;	/* kCFStringEncodingISO_2022_CN */
1090
		case 2097:	strncpy( buffer, "ISO-2022-CN-EXT", bufferLen-1 );		break;	/* kCFStringEncodingISO_2022_CN_EXT */
1091
		case 2112:	strncpy( buffer, "ISO-2022-KR", bufferLen-1 );			break;	/* kCFStringEncodingISO_2022_KR */
1092
		case 2336:	strncpy( buffer, "EUC-JP", bufferLen-1 );				break;	/* kCFStringEncodingEUC_JP */
1093
		case 2352:	strncpy( buffer, "EUC-CN", bufferLen-1 );				break;	/* kCFStringEncodingEUC_CN */
1094
		case 2353:	strncpy( buffer, "EUC-TW", bufferLen-1 );				break;	/* kCFStringEncodingEUC_TW */
1095
		case 2368:	strncpy( buffer, "EUC-KR", bufferLen-1 );				break;	/* kCFStringEncodingEUC_KR */
1096
		case 2561:	strncpy( buffer, "SHIFT_JIS", bufferLen-1 );				break;	/* kCFStringEncodingShiftJIS */
1097
		case 2562:	strncpy( buffer, "KOI8-R", bufferLen-1 );				break;	/* kCFStringEncodingKOI8_R */
1098
		case 2563:	strncpy( buffer, "BIG5", bufferLen-1 );					break;	/* kCFStringEncodingBig5 */
1099
		case 2564:	strncpy( buffer, "X-MAC-ROMAN-LATIN1", bufferLen-1 );		break;	/* kCFStringEncodingMacRomanLatin1 */
1100
		case 2565:	strncpy( buffer, "HZ-GB-2312", bufferLen-1 );			break;	/* kCFStringEncodingHZ_GB_2312 */
1101
		case 2566:	strncpy( buffer, "Big5-HKSCS", bufferLen-1 );			break;	/* kCFStringEncodingBig5_HKSCS_1999 */
1102
		case 2817:	strncpy( buffer, "X-NEXTSTEP", bufferLen-1 );			break;	/* kCFStringEncodingNextStepLatin */
1103
		case 3074:	strncpy( buffer, "cp037", bufferLen-1 );				break;	/* kCFStringEncodingEBCDIC_CP037 */
1104
		default:		strncpy( buffer, "", bufferLen-1 );					break;	/* Not listed */
1105
	}
1106
}
1107
1108
#endif    /* ifndef MACOSX */
714
1109
715
#else /* ifdef LINUX || SOLARIS || MACOSX || NETBSD */
1110
#else /* ifdef LINUX || SOLARIS || MACOSX || NETBSD */
716
1111
(-)osl/unx/signal.c (+6 lines)
Lines 478-492 Link Here
478
static void PrintStack( int sig )
478
static void PrintStack( int sig )
479
{
479
{
480
	void *buffer[MAX_FRAME_COUNT];
480
	void *buffer[MAX_FRAME_COUNT];
481
#ifndef MACOSX
481
	int size = backtrace( buffer, sizeof(buffer) / sizeof(buffer[0]) );
482
	int size = backtrace( buffer, sizeof(buffer) / sizeof(buffer[0]) );
483
#endif
482
484
483
	fprintf( stderr, "\n\nFatal exception: Signal %d\n", sig );
485
	fprintf( stderr, "\n\nFatal exception: Signal %d\n", sig );
484
486
487
#ifdef MACOSX
488
	fprintf( stderr, "Please turn on Enable Crash Reporting and\nAutomatic Display of Crashlogs in the Console application\n" );
489
#else
485
	if ( size > 0 )
490
	if ( size > 0 )
486
	{
491
	{
487
		fputs( "Stack:\n", stderr );
492
		fputs( "Stack:\n", stderr );
488
		backtrace_symbols_fd( buffer, size, fileno(stderr) );
493
		backtrace_symbols_fd( buffer, size, fileno(stderr) );
489
	}
494
	}
495
#endif
490
}
496
}
491
497
492
static oslSignalAction CallSignalHandler(oslSignalInfo *pInfo)
498
static oslSignalAction CallSignalHandler(oslSignalInfo *pInfo)
(-)osl/unx/socket.c (+6 lines)
Lines 92-97 Link Here
92
#define HAVE_POLL_H
92
#define HAVE_POLL_H
93
#endif /* SOLARIS */
93
#endif /* SOLARIS */
94
94
95
#if defined(MACOSX)
96
/* Include our own poll.h because OS X doesn't implement one */
97
#include "poll.h"
98
#define HAVE_POLL_H
99
#endif
100
95
#ifndef HAVE_POLL_H
101
#ifndef HAVE_POLL_H
96
#define POLLIN  0x0001
102
#define POLLIN  0x0001
97
#define POLLOUT 0x0002
103
#define POLLOUT 0x0002
(-)osl/unx/system.c (-2 / +57 lines)
Lines 78-85 Link Here
78
#include <pwd.h>
78
#include <pwd.h>
79
#include <sys/types.h>
79
#include <sys/types.h>
80
80
81
81
/* [ed] 9/1/02 On OS 10.2 and higher, the OS headers define this function slightly differently.
82
   A fourth argument is expected, a struct passwd **.  We still want to make our own definition,
83
   however, so when we run on 10.1 we can still locate the symbol in our own libraries.  So
84
   if we're building on 10.2, simply change the prototype to match the expected system
85
   prototype and provide the duplicate symbol.
86
   */
87
#ifdef MACOSX
88
#ifdef BUILD_OS_APPLEOSX
89
#if (BUILD_OS_MAJOR >= 10) && (BUILD_OS_MINOR >= 2)
90
int getpwnam_r(const char* name, struct passwd* s, char* buffer, size_t size, struct passwd **ignore )
91
#else /* BUILD_OS_MAJOR && BUILD_OS_MINOR */
92
/* previous versions of MacOS X...10.0/1.  Use old prototype */
93
struct passwd *getpwnam_r(const char* name, struct passwd* s, char* buffer, int size )
94
#endif /* BUILD_OS_MAJOR && BUILD_OS_MINOR */
95
#else /* BUILD_OS_APPLE_OSX */
96
/* configure didn't take, or we're building on darwin.  Fallback on old prototype */
82
struct passwd *getpwnam_r(const char* name, struct passwd* s, char* buffer, int size )
97
struct passwd *getpwnam_r(const char* name, struct passwd* s, char* buffer, int size )
98
#endif /* BUILD_OS_APPLEOSX */
99
#else /* MACOSX */
100
struct passwd *getpwnam_r(const char* name, struct passwd* s, char* buffer, int size )
101
#endif /* MACOSX */
83
{
102
{
84
  	struct passwd* res;
103
  	struct passwd* res;
85
104
Lines 131-137 Link Here
131
  	
150
  	
132
	pthread_mutex_unlock(&getrtl_mutex);
151
	pthread_mutex_unlock(&getrtl_mutex);
133
152
134
  	return res;
153
#ifdef MACOSX
154
#ifdef BUILD_OS_APPLEOSX
155
#if (BUILD_OS_MAJOR >= 10) && (BUILD_OS_MINOR >= 2)
156
	return((int)res);
157
#else
158
	return(res);
159
#endif /* BUILD_OS_MAJOR && BUILD_OS_MINOR */
160
#else /* BUILD_OS_APPLEOSX */
161
        return(res);
162
#endif /* BUILD_OS_APPLEOSX */
163
#else /* MACOSX */
164
        return(res);
165
#endif /* MACOSX */
135
}
166
}
136
167
137
#if defined(NETBSD) || defined(MACOSX)
168
#if defined(NETBSD) || defined(MACOSX)
Lines 613-618 Link Here
613
644
614
	pthread_mutex_unlock(&getrtl_mutex);
645
	pthread_mutex_unlock(&getrtl_mutex);
615
	return( tempFileName );
646
	return( tempFileName );
647
}
648
649
650
/*
651
 * Return the system version.  Currently, we only differentiate between
652
 * Darwin and OS X.
653
 */
654
void macxp_getSystemVersion( unsigned int *isDarwin, unsigned int *majorVersion, unsigned int *minorVersion, unsigned int *minorMinorVersion )
655
{
656
	int			err;
657
	struct stat	status;
658
659
	/* Check for the presence of /usr/bin/osascript, which is
660
	 * believed to be OS X only.
661
	 */
662
     err = stat( "/usr/bin/osascript", &status );
663
     if ( err == 0 )
664
		*isDarwin = 0;		/* OS X system detected */
665
	else
666
		*isDarwin = 1;		/* Darwin system detected */
667
	
668
	*majorVersion = 0;
669
	*minorVersion = 0;
670
	*minorMinorVersion = 0;
616
}
671
}
617
672
618
#endif  /* defined MACOSX */
673
#endif  /* defined MACOSX */
(-)osl/unx/system.h (+1 lines)
Lines 410-415 Link Here
410
int  readdir_r( DIR *dirp, struct dirent *entry, struct dirent **result );
410
int  readdir_r( DIR *dirp, struct dirent *entry, struct dirent **result );
411
char *asctime_r( const struct tm *tm, char *buffer );
411
char *asctime_r( const struct tm *tm, char *buffer );
412
char *macxp_tempnam( const char *tmpdir, const char *prefix );
412
char *macxp_tempnam( const char *tmpdir, const char *prefix );
413
void macxp_getSystemVersion( unsigned int *isDarwin, unsigned int *majorVersion, unsigned int *minorVersion, unsigned int *minorMinorVersion );
413
#endif
414
#endif
414
415
415
#if !defined(_WIN32)  && !defined(_WIN16) && !defined(OS2)  && \
416
#if !defined(_WIN32)  && !defined(_WIN16) && !defined(OS2)  && \
(-)prj/build.lst (+1 lines)
Lines 1-6 Link Here
1
sa	sal	:	xml2cmp NULL 
1
sa	sal	:	xml2cmp NULL 
2
sa	sal										usr1	-	all	sa_mkout NULL
2
sa	sal										usr1	-	all	sa_mkout NULL
3
sa	sal\cpprt								nmake	-	u	sa_cpprt sa_util NULL
3
sa	sal\cpprt								nmake	-	u	sa_cpprt sa_util NULL
4
sa	sal\systools\macxp_extras\x11osx			nmake	-	u	sa_mxpext_x11osx NULL
4
sa	sal\rtl\source							nmake	-	all	sa_rtl NULL
5
sa	sal\rtl\source							nmake	-	all	sa_rtl NULL
5
sa	sal\textenc								nmake	-	all	sa_textenc NULL
6
sa	sal\textenc								nmake	-	all	sa_textenc NULL
6
sa	sal\osl\w16								nmake	-	d	sa_osld NULL
7
sa	sal\osl\w16								nmake	-	d	sa_osld NULL
(-)rtl/source/alloc.c (-2 / +2 lines)
Lines 109-115 Link Here
109
#define RTL_MUTEX_ACQUIRE(a)  pthread_mutex_lock((a))
109
#define RTL_MUTEX_ACQUIRE(a)  pthread_mutex_lock((a))
110
#define RTL_MUTEX_RELEASE(a)  pthread_mutex_unlock((a))
110
#define RTL_MUTEX_RELEASE(a)  pthread_mutex_unlock((a))
111
111
112
#if   defined(FREEBSD) || defined(NETBSD)
112
#if   defined(FREEBSD) || defined(NETBSD) || defined(MACOSX)
113
static sal_uInt32 __rtl_memory_vmpagesize (void)
113
static sal_uInt32 __rtl_memory_vmpagesize (void)
114
{
114
{
115
	/* xBSD */
115
	/* xBSD */
Lines 127-133 Link Here
127
	/* other */
127
	/* other */
128
	return (sal_uInt32)(0x2000);
128
	return (sal_uInt32)(0x2000);
129
}
129
}
130
#endif /* FREEBSD || NETBSD || IRIX || LINUX || SOLARIS */
130
#endif /* FREEBSD || NETBSD || MACOSX || IRIX || LINUX || SOLARIS */
131
131
132
#ifndef PROT_HEAP
132
#ifndef PROT_HEAP
133
#define PROT_HEAP (PROT_READ | PROT_WRITE | PROT_EXEC)
133
#define PROT_HEAP (PROT_READ | PROT_WRITE | PROT_EXEC)
(-)util/makefile.mk (+4 lines)
Lines 156-161 Link Here
156
.ENDIF # SOLARIS
156
.ENDIF # SOLARIS
157
.ENDIF # UNX
157
.ENDIF # UNX
158
158
159
.IF "$(OS)"=="MACOSX"
160
SHL1STDLIBS+=-lstlport_gcc -framework CoreFoundation
161
.ENDIF
162
159
SHL1LIBS+=$(SLB)$/$(TARGET).lib
163
SHL1LIBS+=$(SLB)$/$(TARGET).lib
160
164
161
.IF "$(linkinc)" != ""
165
.IF "$(linkinc)" != ""

Return to issue 16607