diff --git a/array.rs b/array.rs index a42dc22..adc1568 100644 --- a/array.rs +++ b/array.rs @@ -13,7 +13,6 @@ use base::{CFAllocatorRef, CFIndex, CFIndexConvertible, CFRelease, CFType, CFTyp use base::{kCFAllocatorDefault}; use std::cast; use std::libc::c_void; -use std::vec; /// FIXME(pcwalton): This is wrong. pub type CFArrayRetainCallBack = *u8; @@ -47,7 +46,6 @@ pub struct CFArray { } impl Drop for CFArray { - #[fixed_stack_segment] fn drop(&mut self) { unsafe { CFRelease(self.as_CFTypeRef()) @@ -55,12 +53,12 @@ impl Drop for CFArray { } } -pub struct CFArrayIterator<'self> { - priv array: &'self CFArray, +pub struct CFArrayIterator<'a> { + priv array: &'a CFArray, priv index: CFIndex, } -impl<'self> Iterator<*c_void> for CFArrayIterator<'self> { +impl<'a> Iterator<*c_void> for CFArrayIterator<'a> { fn next(&mut self) -> Option<*c_void> { if self.index >= self.array.len() { None @@ -85,7 +83,6 @@ impl TCFType for CFArray { } } - #[fixed_stack_segment] #[inline] fn type_id(_: Option) -> CFTypeID { unsafe { @@ -96,12 +93,11 @@ impl TCFType for CFArray { impl CFArray { /// Creates a new `CFArray` with the given elements, which must be `CFType` objects. - #[fixed_stack_segment] pub fn from_CFTypes(elems: &[CFType]) -> CFArray { unsafe { let elems = elems.map(|elem| elem.as_CFTypeRef()); let array_ref = CFArrayCreate(kCFAllocatorDefault, - cast::transmute(vec::raw::to_ptr(elems)), + cast::transmute(elems.as_ptr()), elems.len().to_CFIndex(), &kCFTypeArrayCallBacks); TCFType::wrap_under_create_rule(array_ref) @@ -121,7 +117,6 @@ impl CFArray { } } - #[fixed_stack_segment] #[inline] pub fn len(&self) -> CFIndex { unsafe { @@ -134,7 +129,6 @@ impl Index for CFArray { /// Careful; the loop body must wrap the reference properly. Generally, when array elements are /// Core Foundation objects (not always true), they need to be wrapped with /// `TCFType::wrap_under_get_rule()`. The safer `iter_CFTypes` method will do this for you. - #[fixed_stack_segment] #[inline] fn index(&self, index: &CFIndex) -> *c_void { assert!(*index < self.len()); @@ -144,8 +138,7 @@ impl Index for CFArray { } } -#[link_args="-framework CoreFoundation"] -#[nolink] +#[link(name = "CoreFoundation", kind = "framework")] extern { /* * CFArray.h diff --git a/base.rs b/base.rs index b669b77..d42e2a2 100644 --- a/base.rs +++ b/base.rs @@ -69,7 +69,6 @@ pub struct CFType { } impl Clone for CFType { - #[fixed_stack_segment] #[inline] fn clone(&self) -> CFType { unsafe { @@ -79,7 +78,6 @@ impl Clone for CFType { } impl Drop for CFType { - #[fixed_stack_segment] fn drop(&mut self) { unsafe { CFRelease(self.obj) @@ -122,7 +120,6 @@ pub trait TCFType { /// Returns an instance of the object, wrapping the underlying `CFTypeRef` subclass. Use this /// when following Core Foundation's "Get Rule". The reference count *is* bumped. - #[fixed_stack_segment] #[inline] unsafe fn wrap_under_get_rule(reference: ConcreteTypeRef) -> Self { let reference: ConcreteTypeRef = cast::transmute(CFRetain(cast::transmute(reference))); @@ -131,7 +128,6 @@ pub trait TCFType { /// Returns the reference count of the object. It is unwise to do anything other than test /// whether the return value of this method is greater than zero. - #[fixed_stack_segment] #[inline] fn retain_count(&self) -> CFIndex { unsafe { @@ -140,7 +136,6 @@ pub trait TCFType { } /// Returns the type ID of this object. - #[fixed_stack_segment] #[inline] fn type_of(&self) -> CFTypeID { unsafe { @@ -149,7 +144,6 @@ pub trait TCFType { } /// Writes a debugging version of this object on standard error. - #[fixed_stack_segment] fn show(&self) { unsafe { CFShow(self.as_CFTypeRef()) @@ -199,8 +193,7 @@ impl TCFType for CFType { } } -#[link_args="-framework CoreFoundation"] -#[nolink] +#[link(name = "CoreFoundation", kind = "framework")] extern { /* * CFBase.h diff --git a/boolean.rs b/boolean.rs index 47601ce..3c7d713 100644 --- a/boolean.rs +++ b/boolean.rs @@ -25,7 +25,6 @@ pub struct CFBoolean { } impl Drop for CFBoolean { - #[fixed_stack_segment] fn drop(&mut self) { unsafe { CFRelease(self.as_CFTypeRef()) @@ -44,7 +43,6 @@ impl TCFType for CFBoolean { } } - #[fixed_stack_segment] #[inline] fn type_id(_: Option) -> CFTypeID { unsafe { @@ -67,13 +65,11 @@ impl CFBoolean { } } -#[link_args="-framework CoreFoundation"] -#[nolink] +#[link(name = "CoreFoundation", kind = "framework")] extern { static kCFBooleanTrue: CFBooleanRef; static kCFBooleanFalse: CFBooleanRef; - fn CFBooleanGetValue(boolean: CFBooleanRef) -> Boolean; fn CFBooleanGetTypeID() -> CFTypeID; } diff --git a/data.rs b/data.rs index bc06c8f..29d5d96 100644 --- a/data.rs +++ b/data.rs @@ -9,11 +9,10 @@ //! Core Foundation byte buffers. -use base::{CFAllocatorRef, CFIndex, CFIndexConvertible, CFRange, CFRelease, CFTypeID, TCFType}; +use base::{CFAllocatorRef, CFIndex, CFIndexConvertible, CFRelease, CFTypeID, TCFType}; use base::{kCFAllocatorDefault}; use std::cast; -use std::vec; struct __CFData; @@ -27,7 +26,6 @@ pub struct CFData { } impl Drop for CFData { - #[fixed_stack_segment] fn drop(&mut self) { unsafe { CFRelease(self.as_CFTypeRef()) @@ -46,7 +44,6 @@ impl TCFType for CFData { } } - #[fixed_stack_segment] #[inline] fn type_id(_: Option) -> CFTypeID { unsafe { @@ -56,11 +53,10 @@ impl TCFType for CFData { } impl CFData { - #[fixed_stack_segment] pub fn from_buffer(buffer: &[u8]) -> CFData { unsafe { let data_ref = CFDataCreate(kCFAllocatorDefault, - vec::raw::to_ptr(buffer), + buffer.as_ptr(), buffer.len().to_CFIndex()); TCFType::wrap_under_create_rule(data_ref) } @@ -68,7 +64,6 @@ impl CFData { /// Returns a pointer to the underlying bytes in this data. Note that this byte buffer is /// read-only. - #[fixed_stack_segment] #[inline] pub fn bytes<'a>(&'a self) -> &'a [u8] { unsafe { @@ -77,7 +72,6 @@ impl CFData { } /// Returns the length of this byte buffer. - #[fixed_stack_segment] #[inline] pub fn len(&self) -> CFIndex { unsafe { @@ -86,8 +80,7 @@ impl CFData { } } -#[link_args="-framework CoreFoundation"] -#[nolink] +#[link(name = "CoreFoundation", kind = "framework")] extern { /* * CFData.h @@ -95,13 +88,8 @@ extern { fn CFDataCreate(allocator: CFAllocatorRef, bytes: *u8, length: CFIndex) -> CFDataRef; - fn CFDataCreateCopy(allocator: CFAllocatorRef, theData: CFDataRef) -> CFDataRef; - fn CFDataCreateWithBytesNoCopy(allocator: CFAllocatorRef, - bytes: *u8, length: CFIndex, - bytesDeallocator: CFAllocatorRef) -> CFDataRef; //fn CFDataFind fn CFDataGetBytePtr(theData: CFDataRef) -> *u8; - fn CFDataGetBytes(theData: CFDataRef, range: CFRange, buffer: *u8); fn CFDataGetLength(theData: CFDataRef) -> CFIndex; fn CFDataGetTypeID() -> CFTypeID; diff --git a/dictionary.rs b/dictionary.rs index 05146bc..79edfde 100644 --- a/dictionary.rs +++ b/dictionary.rs @@ -53,7 +53,6 @@ pub struct CFDictionary { } impl Drop for CFDictionary { - #[fixed_stack_segment] fn drop(&mut self) { unsafe { CFRelease(self.as_CFTypeRef()) @@ -72,7 +71,6 @@ impl TCFType for CFDictionary { } } - #[fixed_stack_segment] #[inline] fn type_id(_: Option) -> CFTypeID { unsafe { @@ -82,7 +80,6 @@ impl TCFType for CFDictionary { } impl CFDictionary { - #[fixed_stack_segment] pub fn from_CFType_pairs(pairs: &[(CFType, CFType)]) -> CFDictionary { let (keys, values) = vec::unzip(pairs.iter() @@ -90,8 +87,8 @@ impl CFDictionary { value.as_CFTypeRef()))); unsafe { let dictionary_ref = CFDictionaryCreate(kCFAllocatorDefault, - cast::transmute(vec::raw::to_ptr(keys)), - cast::transmute(vec::raw::to_ptr(values)), + cast::transmute(keys.as_ptr()), + cast::transmute(values.as_ptr()), keys.len().to_CFIndex(), &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); @@ -99,7 +96,6 @@ impl CFDictionary { } } - #[fixed_stack_segment] #[inline] pub fn len(&self) -> uint { unsafe { @@ -112,7 +108,6 @@ impl CFDictionary { self.len() == 0 } - #[fixed_stack_segment] #[inline] pub fn contains_key(&self, key: *c_void) -> bool { unsafe { @@ -120,7 +115,6 @@ impl CFDictionary { } } - #[fixed_stack_segment] #[inline] pub fn find(&self, key: *c_void) -> Option<*c_void> { unsafe { @@ -150,8 +144,7 @@ impl CFDictionary { } } -#[link_args="-framework CoreFoundation"] -#[nolink] +#[link(name = "CoreFoundation", kind = "framework")] extern { /* * CFDictionary.h @@ -160,23 +153,13 @@ extern { static kCFTypeDictionaryKeyCallBacks: CFDictionaryKeyCallBacks; static kCFTypeDictionaryValueCallBacks: CFDictionaryValueCallBacks; - fn CFDictionaryApplyFunction(theDict: CFDictionaryRef, applier: CFDictionaryApplierFunction, - context: *c_void); fn CFDictionaryContainsKey(theDict: CFDictionaryRef, key: *c_void) -> Boolean; - fn CFDictionaryContainsValue(theDict: CFDictionaryRef, value: *c_void) -> Boolean; fn CFDictionaryCreate(allocator: CFAllocatorRef, keys: **c_void, values: **c_void, numValues: CFIndex, keyCallBacks: *CFDictionaryKeyCallBacks, valueCallBacks: *CFDictionaryValueCallBacks) -> CFDictionaryRef; - fn CFDictionaryCreateCopy(allocator: CFAllocatorRef, - theDict: CFDictionaryRef) - -> CFDictionaryRef; fn CFDictionaryGetCount(theDict: CFDictionaryRef) -> CFIndex; - fn CFDictionaryGetCountOfKey(theDict: CFDictionaryRef, key: *c_void) -> CFIndex; - fn CFDictionaryGetCountOfValue(theDict: CFDictionaryRef, value: *c_void) -> CFIndex; - fn CFDictionaryGetKeysAndValues(theDict: CFDictionaryRef, keys: **c_void, values: **c_void); fn CFDictionaryGetTypeID() -> CFTypeID; - fn CFDictionaryGetValue(theDict: CFDictionaryRef, key: *c_void) -> *c_void; fn CFDictionaryGetValueIfPresent(theDict: CFDictionaryRef, key: *c_void, value: *mut *c_void) -> Boolean; } diff --git a/lib.rs b/lib.rs index 7b65c7b..d422295 100644 --- a/lib.rs +++ b/lib.rs @@ -7,7 +7,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#[link(name = "core_foundation", vers = "0.1")]; +#[crate_id = "github.com/mozilla-servo/rust-core-foundation#core_foundation:0.1"]; extern mod std; diff --git a/number.rs b/number.rs index 3fa9991..61f41a0 100644 --- a/number.rs +++ b/number.rs @@ -11,7 +11,7 @@ #[allow(non_uppercase_statics)]; -use base::{Boolean, CFAllocatorRef, CFRelease, CFTypeID, TCFType, kCFAllocatorDefault}; +use base::{CFAllocatorRef, CFRelease, CFTypeID, TCFType, kCFAllocatorDefault}; use std::cast; use std::libc::c_void; @@ -19,23 +19,23 @@ use std::libc::c_void; pub type CFNumberType = u32; // members of enum CFNumberType -static kCFNumberSInt8Type: CFNumberType = 1; -static kCFNumberSInt16Type: CFNumberType = 2; -static kCFNumberSInt32Type: CFNumberType = 3; +// static kCFNumberSInt8Type: CFNumberType = 1; +// static kCFNumberSInt16Type: CFNumberType = 2; +// static kCFNumberSInt32Type: CFNumberType = 3; static kCFNumberSInt64Type: CFNumberType = 4; -static kCFNumberFloat32Type: CFNumberType = 5; +// static kCFNumberFloat32Type: CFNumberType = 5; static kCFNumberFloat64Type: CFNumberType = 6; -static kCFNumberCharType: CFNumberType = 7; -static kCFNumberShortType: CFNumberType = 8; -static kCFNumberIntType: CFNumberType = 9; -static kCFNumberLongType: CFNumberType = 10; -static kCFNumberLongLongType: CFNumberType = 11; -static kCFNumberFloatType: CFNumberType = 12; -static kCFNumberDoubleType: CFNumberType = 13; -static kCFNumberCFIndexType: CFNumberType = 14; -static kCFNumberNSIntegerType: CFNumberType = 15; -static kCFNumberCGFloatType: CFNumberType = 16; -static kCFNumberMaxType: CFNumberType = 16; +// static kCFNumberCharType: CFNumberType = 7; +// static kCFNumberShortType: CFNumberType = 8; +// static kCFNumberIntType: CFNumberType = 9; +// static kCFNumberLongType: CFNumberType = 10; +// static kCFNumberLongLongType: CFNumberType = 11; +// static kCFNumberFloatType: CFNumberType = 12; +// static kCFNumberDoubleType: CFNumberType = 13; +// static kCFNumberCFIndexType: CFNumberType = 14; +// static kCFNumberNSIntegerType: CFNumberType = 15; +// static kCFNumberCGFloatType: CFNumberType = 16; +// static kCFNumberMaxType: CFNumberType = 16; struct __CFNumber; @@ -49,7 +49,6 @@ pub struct CFNumber { } impl Drop for CFNumber { - #[fixed_stack_segment] fn drop(&mut self) { unsafe { CFRelease(self.as_CFTypeRef()) @@ -68,7 +67,6 @@ impl TCFType for CFNumber { } } - #[fixed_stack_segment] #[inline] fn type_id(_: Option) -> CFTypeID { unsafe { @@ -79,7 +77,6 @@ impl TCFType for CFNumber { // TODO(pcwalton): Floating point. impl ToPrimitive for CFNumber { - #[fixed_stack_segment] #[inline] fn to_i64(&self) -> Option { unsafe { @@ -90,14 +87,12 @@ impl ToPrimitive for CFNumber { } } - #[fixed_stack_segment] #[inline] fn to_u64(&self) -> Option { // CFNumber does not support unsigned 64-bit values. None } - #[fixed_stack_segment] #[inline] fn to_f64(&self) -> Option { unsafe { @@ -111,7 +106,6 @@ impl ToPrimitive for CFNumber { // TODO(pcwalton): Floating point. impl FromPrimitive for CFNumber { - #[fixed_stack_segment] #[inline] fn from_i64(value: i64) -> Option { unsafe { @@ -122,14 +116,12 @@ impl FromPrimitive for CFNumber { } } - #[fixed_stack_segment] #[inline] fn from_u64(_: u64) -> Option { // CFNumber does not support unsigned 64-bit values. None } - #[fixed_stack_segment] #[inline] fn from_f64(value: f64) -> Option { unsafe { @@ -146,23 +138,17 @@ pub fn number(value: i64) -> CFNumber { FromPrimitive::from_i64(value).unwrap() } -#[link_args="-framework CoreFoundation"] -#[nolink] +#[link(name = "CoreFoundation", kind = "framework")] extern { /* * CFNumber.h */ - static kCFNumberNaN: CFNumberRef; - static kCFNumberNegativeInfinity: CFNumberRef; - static kCFNumberPositiveInfinity: CFNumberRef; fn CFNumberCreate(allocator: CFAllocatorRef, theType: CFNumberType, valuePtr: *c_void) -> CFNumberRef; //fn CFNumberGetByteSize - fn CFNumberGetType(number: CFNumberRef) -> CFNumberType; fn CFNumberGetValue(number: CFNumberRef, theType: CFNumberType, valuePtr: *mut c_void) -> bool; - fn CFNumberIsFloatType(number: CFNumberRef) -> Boolean; //fn CFNumberCompare fn CFNumberGetTypeID() -> CFTypeID; } diff --git a/set.rs b/set.rs index d7b5534..a6d9be1 100644 --- a/set.rs +++ b/set.rs @@ -9,12 +9,11 @@ //! An immutable bag of elements. -use base::{Boolean, CFAllocatorRef, CFIndex, CFIndexConvertible, CFRelease, CFType, CFTypeID}; +use base::{CFAllocatorRef, CFIndex, CFIndexConvertible, CFRelease, CFType, CFTypeID}; use base::{TCFType, kCFAllocatorDefault}; use std::cast; use std::libc::c_void; -use std::vec; pub type CFSetRetainCallBack = *u8; pub type CFSetReleaseCallBack = *u8; @@ -43,7 +42,6 @@ pub struct CFSet { } impl Drop for CFSet { - #[fixed_stack_segment] fn drop(&mut self) { unsafe { CFRelease(self.as_CFTypeRef()) @@ -62,7 +60,6 @@ impl TCFType for CFSet { } } - #[fixed_stack_segment] #[inline] fn type_id(_: Option) -> CFTypeID { unsafe { @@ -73,12 +70,11 @@ impl TCFType for CFSet { impl CFSet { /// Creates a new set from a list of `CFType` instances. - #[fixed_stack_segment] pub fn from_slice(elems: &[CFType]) -> CFSet { unsafe { let elems = elems.map(|elem| elem.as_CFTypeRef()); let set_ref = CFSetCreate(kCFAllocatorDefault, - cast::transmute(vec::raw::to_ptr(elems)), + cast::transmute(elems.as_ptr()), elems.len().to_CFIndex(), &kCFTypeSetCallBacks); TCFType::wrap_under_create_rule(set_ref) @@ -86,28 +82,17 @@ impl CFSet { } } -#[link_args="-framework CoreFoundation"] -#[nolink] +#[link(name = "CoreFoundation", kind = "framework")] extern { /* * CFSet.h */ static kCFTypeSetCallBacks: CFSetCallBacks; - static kCFTypeCopyStringSetCallBacks: CFSetCallBacks; /* Creating Sets */ fn CFSetCreate(allocator: CFAllocatorRef, values: **c_void, numValues: CFIndex, callBacks: *CFSetCallBacks) -> CFSetRef; - fn CFSetCreateCopy(allocator: CFAllocatorRef, theSet: CFSetRef) -> CFSetRef; - - /* Examining a Set */ - fn CFSetContainsValue(theSet: CFSetRef, value: *c_void) -> Boolean; - fn CFSetGetCount(theSet: CFSetRef) -> CFIndex; - fn CFSetGetCountOfValue(theSet: CFSetRef, value: *c_void) -> CFIndex; - fn CFSetGetValue(theSet: CFSetRef, value: *c_void) -> *c_void; - fn CFSetGetValueIfPresent(theSet: CFSetRef, candidate: *c_void, value: **c_void) -> Boolean; - fn CFSetGetValues(theSet: CFSetRef, values: **c_void); /* Applying a Function to Set Members */ //fn CFSetApplyFunction diff --git a/string.rs b/string.rs index 916e064..69ff0e3 100644 --- a/string.rs +++ b/string.rs @@ -24,35 +24,35 @@ pub type UniChar = libc::c_ushort; // CFString.h pub type CFStringCompareFlags = CFOptionFlags; -static kCFCompareCaseInsensitive: CFStringCompareFlags = 1; -static kCFCompareBackwards: CFStringCompareFlags = 4; -static kCFCompareAnchored: CFStringCompareFlags = 8; -static kCFCompareNonliteral: CFStringCompareFlags = 16; -static kCFCompareLocalized: CFStringCompareFlags = 32; -static kCFCompareNumerically: CFStringCompareFlags = 64; -static kCFCompareDiacriticInsensitive: CFStringCompareFlags = 128; -static kCFCompareWidthInsensitive: CFStringCompareFlags = 256; -static kCFCompareForcedOrdering: CFStringCompareFlags = 512; +//static kCFCompareCaseInsensitive: CFStringCompareFlags = 1; +//static kCFCompareBackwards: CFStringCompareFlags = 4; +//static kCFCompareAnchored: CFStringCompareFlags = 8; +//static kCFCompareNonliteral: CFStringCompareFlags = 16; +//static kCFCompareLocalized: CFStringCompareFlags = 32; +//static kCFCompareNumerically: CFStringCompareFlags = 64; +//static kCFCompareDiacriticInsensitive: CFStringCompareFlags = 128; +//static kCFCompareWidthInsensitive: CFStringCompareFlags = 256; +//static kCFCompareForcedOrdering: CFStringCompareFlags = 512; pub type CFStringEncoding = u32; // OS X built-in encodings. -static kCFStringEncodingMacRoman: CFStringEncoding = 0; -static kCFStringEncodingWindowsLatin1: CFStringEncoding = 0x0500; -static kCFStringEncodingISOLatin1: CFStringEncoding = 0x0201; -static kCFStringEncodingNextStepLatin: CFStringEncoding = 0x0B01; -static kCFStringEncodingASCII: CFStringEncoding = 0x0600; -static kCFStringEncodingUnicode: CFStringEncoding = 0x0100; +//static kCFStringEncodingMacRoman: CFStringEncoding = 0; +//static kCFStringEncodingWindowsLatin1: CFStringEncoding = 0x0500; +//static kCFStringEncodingISOLatin1: CFStringEncoding = 0x0201; +//static kCFStringEncodingNextStepLatin: CFStringEncoding = 0x0B01; +//static kCFStringEncodingASCII: CFStringEncoding = 0x0600; +//static kCFStringEncodingUnicode: CFStringEncoding = 0x0100; static kCFStringEncodingUTF8: CFStringEncoding = 0x08000100; -static kCFStringEncodingNonLossyASCII: CFStringEncoding = 0x0BFF; +//static kCFStringEncodingNonLossyASCII: CFStringEncoding = 0x0BFF; -static kCFStringEncodingUTF16: CFStringEncoding = 0x0100; -static kCFStringEncodingUTF16BE: CFStringEncoding = 0x10000100; -static kCFStringEncodingUTF16LE: CFStringEncoding = 0x14000100; -static kCFStringEncodingUTF32: CFStringEncoding = 0x0c000100; -static kCFStringEncodingUTF32BE: CFStringEncoding = 0x18000100; -static kCFStringEncodingUTF32LE: CFStringEncoding = 0x1c000100; +//static kCFStringEncodingUTF16: CFStringEncoding = 0x0100; +//static kCFStringEncodingUTF16BE: CFStringEncoding = 0x10000100; +//static kCFStringEncodingUTF16LE: CFStringEncoding = 0x14000100; +//static kCFStringEncodingUTF32: CFStringEncoding = 0x0c000100; +//static kCFStringEncodingUTF32BE: CFStringEncoding = 0x18000100; +//static kCFStringEncodingUTF32LE: CFStringEncoding = 0x1c000100; // CFStringEncodingExt.h @@ -61,139 +61,139 @@ type CFStringEncodings = CFIndex; // External encodings, except those defined above. // Defined above: kCFStringEncodingMacRoman = 0 -static kCFStringEncodingMacJapanese: CFStringEncoding = 1; -static kCFStringEncodingMacChineseTrad: CFStringEncoding = 2; -static kCFStringEncodingMacKorean: CFStringEncoding = 3; -static kCFStringEncodingMacArabic: CFStringEncoding = 4; -static kCFStringEncodingMacHebrew: CFStringEncoding = 5; -static kCFStringEncodingMacGreek: CFStringEncoding = 6; -static kCFStringEncodingMacCyrillic: CFStringEncoding = 7; -static kCFStringEncodingMacDevanagari: CFStringEncoding = 9; -static kCFStringEncodingMacGurmukhi: CFStringEncoding = 10; -static kCFStringEncodingMacGujarati: CFStringEncoding = 11; -static kCFStringEncodingMacOriya: CFStringEncoding = 12; -static kCFStringEncodingMacBengali: CFStringEncoding = 13; -static kCFStringEncodingMacTamil: CFStringEncoding = 14; -static kCFStringEncodingMacTelugu: CFStringEncoding = 15; -static kCFStringEncodingMacKannada: CFStringEncoding = 16; -static kCFStringEncodingMacMalayalam: CFStringEncoding = 17; -static kCFStringEncodingMacSinhalese: CFStringEncoding = 18; -static kCFStringEncodingMacBurmese: CFStringEncoding = 19; -static kCFStringEncodingMacKhmer: CFStringEncoding = 20; -static kCFStringEncodingMacThai: CFStringEncoding = 21; -static kCFStringEncodingMacLaotian: CFStringEncoding = 22; -static kCFStringEncodingMacGeorgian: CFStringEncoding = 23; -static kCFStringEncodingMacArmenian: CFStringEncoding = 24; -static kCFStringEncodingMacChineseSimp: CFStringEncoding = 25; -static kCFStringEncodingMacTibetan: CFStringEncoding = 26; -static kCFStringEncodingMacMongolian: CFStringEncoding = 27; -static kCFStringEncodingMacEthiopic: CFStringEncoding = 28; -static kCFStringEncodingMacCentralEurRoman: CFStringEncoding = 29; -static kCFStringEncodingMacVietnamese: CFStringEncoding = 30; -static kCFStringEncodingMacExtArabic: CFStringEncoding = 31; -static kCFStringEncodingMacSymbol: CFStringEncoding = 33; -static kCFStringEncodingMacDingbats: CFStringEncoding = 34; -static kCFStringEncodingMacTurkish: CFStringEncoding = 35; -static kCFStringEncodingMacCroatian: CFStringEncoding = 36; -static kCFStringEncodingMacIcelandic: CFStringEncoding = 37; -static kCFStringEncodingMacRomanian: CFStringEncoding = 38; -static kCFStringEncodingMacCeltic: CFStringEncoding = 39; -static kCFStringEncodingMacGaelic: CFStringEncoding = 40; -static kCFStringEncodingMacFarsi: CFStringEncoding = 0x8C; -static kCFStringEncodingMacUkrainian: CFStringEncoding = 0x98; -static kCFStringEncodingMacInuit: CFStringEncoding = 0xEC; -static kCFStringEncodingMacVT100: CFStringEncoding = 0xFC; -static kCFStringEncodingMacHFS: CFStringEncoding = 0xFF; +//static kCFStringEncodingMacJapanese: CFStringEncoding = 1; +//static kCFStringEncodingMacChineseTrad: CFStringEncoding = 2; +//static kCFStringEncodingMacKorean: CFStringEncoding = 3; +//static kCFStringEncodingMacArabic: CFStringEncoding = 4; +//static kCFStringEncodingMacHebrew: CFStringEncoding = 5; +//static kCFStringEncodingMacGreek: CFStringEncoding = 6; +//static kCFStringEncodingMacCyrillic: CFStringEncoding = 7; +//static kCFStringEncodingMacDevanagari: CFStringEncoding = 9; +//static kCFStringEncodingMacGurmukhi: CFStringEncoding = 10; +//static kCFStringEncodingMacGujarati: CFStringEncoding = 11; +//static kCFStringEncodingMacOriya: CFStringEncoding = 12; +//static kCFStringEncodingMacBengali: CFStringEncoding = 13; +//static kCFStringEncodingMacTamil: CFStringEncoding = 14; +//static kCFStringEncodingMacTelugu: CFStringEncoding = 15; +//static kCFStringEncodingMacKannada: CFStringEncoding = 16; +//static kCFStringEncodingMacMalayalam: CFStringEncoding = 17; +//static kCFStringEncodingMacSinhalese: CFStringEncoding = 18; +//static kCFStringEncodingMacBurmese: CFStringEncoding = 19; +//static kCFStringEncodingMacKhmer: CFStringEncoding = 20; +//static kCFStringEncodingMacThai: CFStringEncoding = 21; +//static kCFStringEncodingMacLaotian: CFStringEncoding = 22; +//static kCFStringEncodingMacGeorgian: CFStringEncoding = 23; +//static kCFStringEncodingMacArmenian: CFStringEncoding = 24; +//static kCFStringEncodingMacChineseSimp: CFStringEncoding = 25; +//static kCFStringEncodingMacTibetan: CFStringEncoding = 26; +//static kCFStringEncodingMacMongolian: CFStringEncoding = 27; +//static kCFStringEncodingMacEthiopic: CFStringEncoding = 28; +//static kCFStringEncodingMacCentralEurRoman: CFStringEncoding = 29; +//static kCFStringEncodingMacVietnamese: CFStringEncoding = 30; +//static kCFStringEncodingMacExtArabic: CFStringEncoding = 31; +//static kCFStringEncodingMacSymbol: CFStringEncoding = 33; +//static kCFStringEncodingMacDingbats: CFStringEncoding = 34; +//static kCFStringEncodingMacTurkish: CFStringEncoding = 35; +//static kCFStringEncodingMacCroatian: CFStringEncoding = 36; +//static kCFStringEncodingMacIcelandic: CFStringEncoding = 37; +//static kCFStringEncodingMacRomanian: CFStringEncoding = 38; +//static kCFStringEncodingMacCeltic: CFStringEncoding = 39; +//static kCFStringEncodingMacGaelic: CFStringEncoding = 40; +//static kCFStringEncodingMacFarsi: CFStringEncoding = 0x8C; +//static kCFStringEncodingMacUkrainian: CFStringEncoding = 0x98; +//static kCFStringEncodingMacInuit: CFStringEncoding = 0xEC; +//static kCFStringEncodingMacVT100: CFStringEncoding = 0xFC; +//static kCFStringEncodingMacHFS: CFStringEncoding = 0xFF; // Defined above: kCFStringEncodingISOLatin1 = 0x0201 -static kCFStringEncodingISOLatin2: CFStringEncoding = 0x0202; -static kCFStringEncodingISOLatin3: CFStringEncoding = 0x0203; -static kCFStringEncodingISOLatin4: CFStringEncoding = 0x0204; -static kCFStringEncodingISOLatinCyrillic: CFStringEncoding = 0x0205; -static kCFStringEncodingISOLatinArabic: CFStringEncoding = 0x0206; -static kCFStringEncodingISOLatinGreek: CFStringEncoding = 0x0207; -static kCFStringEncodingISOLatinHebrew: CFStringEncoding = 0x0208; -static kCFStringEncodingISOLatin5: CFStringEncoding = 0x0209; -static kCFStringEncodingISOLatin6: CFStringEncoding = 0x020A; -static kCFStringEncodingISOLatinThai: CFStringEncoding = 0x020B; -static kCFStringEncodingISOLatin7: CFStringEncoding = 0x020D; -static kCFStringEncodingISOLatin8: CFStringEncoding = 0x020E; -static kCFStringEncodingISOLatin9: CFStringEncoding = 0x020F; -static kCFStringEncodingISOLatin10: CFStringEncoding = 0x0210; -static kCFStringEncodingDOSLatinUS: CFStringEncoding = 0x0400; -static kCFStringEncodingDOSGreek: CFStringEncoding = 0x0405; -static kCFStringEncodingDOSBalticRim: CFStringEncoding = 0x0406; -static kCFStringEncodingDOSLatin1: CFStringEncoding = 0x0410; -static kCFStringEncodingDOSGreek1: CFStringEncoding = 0x0411; -static kCFStringEncodingDOSLatin2: CFStringEncoding = 0x0412; -static kCFStringEncodingDOSCyrillic: CFStringEncoding = 0x0413; -static kCFStringEncodingDOSTurkish: CFStringEncoding = 0x0414; -static kCFStringEncodingDOSPortuguese: CFStringEncoding = 0x0415; -static kCFStringEncodingDOSIcelandic: CFStringEncoding = 0x0416; -static kCFStringEncodingDOSHebrew: CFStringEncoding = 0x0417; -static kCFStringEncodingDOSCanadianFrench: CFStringEncoding = 0x0418; -static kCFStringEncodingDOSArabic: CFStringEncoding = 0x0419; -static kCFStringEncodingDOSNordic: CFStringEncoding = 0x041A; -static kCFStringEncodingDOSRussian: CFStringEncoding = 0x041B; -static kCFStringEncodingDOSGreek2: CFStringEncoding = 0x041C; -static kCFStringEncodingDOSThai: CFStringEncoding = 0x041D; -static kCFStringEncodingDOSJapanese: CFStringEncoding = 0x0420; -static kCFStringEncodingDOSChineseSimplif: CFStringEncoding = 0x0421; -static kCFStringEncodingDOSKorean: CFStringEncoding = 0x0422; -static kCFStringEncodingDOSChineseTrad: CFStringEncoding = 0x0423; +//static kCFStringEncodingISOLatin2: CFStringEncoding = 0x0202; +//static kCFStringEncodingISOLatin3: CFStringEncoding = 0x0203; +//static kCFStringEncodingISOLatin4: CFStringEncoding = 0x0204; +//static kCFStringEncodingISOLatinCyrillic: CFStringEncoding = 0x0205; +//static kCFStringEncodingISOLatinArabic: CFStringEncoding = 0x0206; +//static kCFStringEncodingISOLatinGreek: CFStringEncoding = 0x0207; +//static kCFStringEncodingISOLatinHebrew: CFStringEncoding = 0x0208; +//static kCFStringEncodingISOLatin5: CFStringEncoding = 0x0209; +//static kCFStringEncodingISOLatin6: CFStringEncoding = 0x020A; +//static kCFStringEncodingISOLatinThai: CFStringEncoding = 0x020B; +//static kCFStringEncodingISOLatin7: CFStringEncoding = 0x020D; +//static kCFStringEncodingISOLatin8: CFStringEncoding = 0x020E; +//static kCFStringEncodingISOLatin9: CFStringEncoding = 0x020F; +//static kCFStringEncodingISOLatin10: CFStringEncoding = 0x0210; +//static kCFStringEncodingDOSLatinUS: CFStringEncoding = 0x0400; +//static kCFStringEncodingDOSGreek: CFStringEncoding = 0x0405; +//static kCFStringEncodingDOSBalticRim: CFStringEncoding = 0x0406; +//static kCFStringEncodingDOSLatin1: CFStringEncoding = 0x0410; +//static kCFStringEncodingDOSGreek1: CFStringEncoding = 0x0411; +//static kCFStringEncodingDOSLatin2: CFStringEncoding = 0x0412; +//static kCFStringEncodingDOSCyrillic: CFStringEncoding = 0x0413; +//static kCFStringEncodingDOSTurkish: CFStringEncoding = 0x0414; +//static kCFStringEncodingDOSPortuguese: CFStringEncoding = 0x0415; +//static kCFStringEncodingDOSIcelandic: CFStringEncoding = 0x0416; +//static kCFStringEncodingDOSHebrew: CFStringEncoding = 0x0417; +//static kCFStringEncodingDOSCanadianFrench: CFStringEncoding = 0x0418; +//static kCFStringEncodingDOSArabic: CFStringEncoding = 0x0419; +//static kCFStringEncodingDOSNordic: CFStringEncoding = 0x041A; +//static kCFStringEncodingDOSRussian: CFStringEncoding = 0x041B; +//static kCFStringEncodingDOSGreek2: CFStringEncoding = 0x041C; +//static kCFStringEncodingDOSThai: CFStringEncoding = 0x041D; +//static kCFStringEncodingDOSJapanese: CFStringEncoding = 0x0420; +//static kCFStringEncodingDOSChineseSimplif: CFStringEncoding = 0x0421; +//static kCFStringEncodingDOSKorean: CFStringEncoding = 0x0422; +//static kCFStringEncodingDOSChineseTrad: CFStringEncoding = 0x0423; // Defined above: kCFStringEncodingWindowsLatin1 = 0x0500 -static kCFStringEncodingWindowsLatin2: CFStringEncoding = 0x0501; -static kCFStringEncodingWindowsCyrillic: CFStringEncoding = 0x0502; -static kCFStringEncodingWindowsGreek: CFStringEncoding = 0x0503; -static kCFStringEncodingWindowsLatin5: CFStringEncoding = 0x0504; -static kCFStringEncodingWindowsHebrew: CFStringEncoding = 0x0505; -static kCFStringEncodingWindowsArabic: CFStringEncoding = 0x0506; -static kCFStringEncodingWindowsBalticRim: CFStringEncoding = 0x0507; -static kCFStringEncodingWindowsVietnamese: CFStringEncoding = 0x0508; -static kCFStringEncodingWindowsKoreanJohab: CFStringEncoding = 0x0510; +//static kCFStringEncodingWindowsLatin2: CFStringEncoding = 0x0501; +//static kCFStringEncodingWindowsCyrillic: CFStringEncoding = 0x0502; +//static kCFStringEncodingWindowsGreek: CFStringEncoding = 0x0503; +//static kCFStringEncodingWindowsLatin5: CFStringEncoding = 0x0504; +//static kCFStringEncodingWindowsHebrew: CFStringEncoding = 0x0505; +//static kCFStringEncodingWindowsArabic: CFStringEncoding = 0x0506; +//static kCFStringEncodingWindowsBalticRim: CFStringEncoding = 0x0507; +//static kCFStringEncodingWindowsVietnamese: CFStringEncoding = 0x0508; +//static kCFStringEncodingWindowsKoreanJohab: CFStringEncoding = 0x0510; // Defined above: kCFStringEncodingASCII = 0x0600 -static kCFStringEncodingANSEL: CFStringEncoding = 0x0601; -static kCFStringEncodingJIS_X0201_76: CFStringEncoding = 0x0620; -static kCFStringEncodingJIS_X0208_83: CFStringEncoding = 0x0621; -static kCFStringEncodingJIS_X0208_90: CFStringEncoding = 0x0622; -static kCFStringEncodingJIS_X0212_90: CFStringEncoding = 0x0623; -static kCFStringEncodingJIS_C6226_78: CFStringEncoding = 0x0624; -static kCFStringEncodingShiftJIS_X0213: CFStringEncoding = 0x0628; -static kCFStringEncodingShiftJIS_X0213_MenKuTen: CFStringEncoding = 0x0629; -static kCFStringEncodingGB_2312_80: CFStringEncoding = 0x0630; -static kCFStringEncodingGBK_95: CFStringEncoding = 0x0631; -static kCFStringEncodingGB_18030_2000: CFStringEncoding = 0x0632; -static kCFStringEncodingKSC_5601_87: CFStringEncoding = 0x0640; -static kCFStringEncodingKSC_5601_92_Johab: CFStringEncoding = 0x0641; -static kCFStringEncodingCNS_11643_92_P1: CFStringEncoding = 0x0651; -static kCFStringEncodingCNS_11643_92_P2: CFStringEncoding = 0x0652; -static kCFStringEncodingCNS_11643_92_P3: CFStringEncoding = 0x0653; -static kCFStringEncodingISO_2022_JP: CFStringEncoding = 0x0820; -static kCFStringEncodingISO_2022_JP_2: CFStringEncoding = 0x0821; -static kCFStringEncodingISO_2022_JP_1: CFStringEncoding = 0x0822; -static kCFStringEncodingISO_2022_JP_3: CFStringEncoding = 0x0823; -static kCFStringEncodingISO_2022_CN: CFStringEncoding = 0x0830; -static kCFStringEncodingISO_2022_CN_EXT: CFStringEncoding = 0x0831; -static kCFStringEncodingISO_2022_KR: CFStringEncoding = 0x0840; -static kCFStringEncodingEUC_JP: CFStringEncoding = 0x0920; -static kCFStringEncodingEUC_CN: CFStringEncoding = 0x0930; -static kCFStringEncodingEUC_TW: CFStringEncoding = 0x0931; -static kCFStringEncodingEUC_KR: CFStringEncoding = 0x0940; -static kCFStringEncodingShiftJIS: CFStringEncoding = 0x0A01; -static kCFStringEncodingKOI8_R: CFStringEncoding = 0x0A02; -static kCFStringEncodingBig5: CFStringEncoding = 0x0A03; -static kCFStringEncodingMacRomanLatin1: CFStringEncoding = 0x0A04; -static kCFStringEncodingHZ_GB_2312: CFStringEncoding = 0x0A05; -static kCFStringEncodingBig5_HKSCS_1999: CFStringEncoding = 0x0A06; -static kCFStringEncodingVISCII: CFStringEncoding = 0x0A07; -static kCFStringEncodingKOI8_U: CFStringEncoding = 0x0A08; -static kCFStringEncodingBig5_E: CFStringEncoding = 0x0A09; +//static kCFStringEncodingANSEL: CFStringEncoding = 0x0601; +//static kCFStringEncodingJIS_X0201_76: CFStringEncoding = 0x0620; +//static kCFStringEncodingJIS_X0208_83: CFStringEncoding = 0x0621; +//static kCFStringEncodingJIS_X0208_90: CFStringEncoding = 0x0622; +//static kCFStringEncodingJIS_X0212_90: CFStringEncoding = 0x0623; +//static kCFStringEncodingJIS_C6226_78: CFStringEncoding = 0x0624; +//static kCFStringEncodingShiftJIS_X0213: CFStringEncoding = 0x0628; +//static kCFStringEncodingShiftJIS_X0213_MenKuTen: CFStringEncoding = 0x0629; +//static kCFStringEncodingGB_2312_80: CFStringEncoding = 0x0630; +//static kCFStringEncodingGBK_95: CFStringEncoding = 0x0631; +//static kCFStringEncodingGB_18030_2000: CFStringEncoding = 0x0632; +//static kCFStringEncodingKSC_5601_87: CFStringEncoding = 0x0640; +//static kCFStringEncodingKSC_5601_92_Johab: CFStringEncoding = 0x0641; +//static kCFStringEncodingCNS_11643_92_P1: CFStringEncoding = 0x0651; +//static kCFStringEncodingCNS_11643_92_P2: CFStringEncoding = 0x0652; +//static kCFStringEncodingCNS_11643_92_P3: CFStringEncoding = 0x0653; +//static kCFStringEncodingISO_2022_JP: CFStringEncoding = 0x0820; +//static kCFStringEncodingISO_2022_JP_2: CFStringEncoding = 0x0821; +//static kCFStringEncodingISO_2022_JP_1: CFStringEncoding = 0x0822; +//static kCFStringEncodingISO_2022_JP_3: CFStringEncoding = 0x0823; +//static kCFStringEncodingISO_2022_CN: CFStringEncoding = 0x0830; +//static kCFStringEncodingISO_2022_CN_EXT: CFStringEncoding = 0x0831; +//static kCFStringEncodingISO_2022_KR: CFStringEncoding = 0x0840; +//static kCFStringEncodingEUC_JP: CFStringEncoding = 0x0920; +//static kCFStringEncodingEUC_CN: CFStringEncoding = 0x0930; +//static kCFStringEncodingEUC_TW: CFStringEncoding = 0x0931; +//static kCFStringEncodingEUC_KR: CFStringEncoding = 0x0940; +//static kCFStringEncodingShiftJIS: CFStringEncoding = 0x0A01; +//static kCFStringEncodingKOI8_R: CFStringEncoding = 0x0A02; +//static kCFStringEncodingBig5: CFStringEncoding = 0x0A03; +//static kCFStringEncodingMacRomanLatin1: CFStringEncoding = 0x0A04; +//static kCFStringEncodingHZ_GB_2312: CFStringEncoding = 0x0A05; +//static kCFStringEncodingBig5_HKSCS_1999: CFStringEncoding = 0x0A06; +//static kCFStringEncodingVISCII: CFStringEncoding = 0x0A07; +//static kCFStringEncodingKOI8_U: CFStringEncoding = 0x0A08; +//static kCFStringEncodingBig5_E: CFStringEncoding = 0x0A09; // Defined above: kCFStringEncodingNextStepLatin = 0x0B01 -static kCFStringEncodingNextStepJapanese: CFStringEncoding = 0x0B02; -static kCFStringEncodingEBCDIC_US: CFStringEncoding = 0x0C01; -static kCFStringEncodingEBCDIC_CP037: CFStringEncoding = 0x0C02; -static kCFStringEncodingUTF7: CFStringEncoding = 0x04000100; -static kCFStringEncodingUTF7_IMAP: CFStringEncoding = 0x0A10; -static kCFStringEncodingShiftJIS_X0213_00: CFStringEncoding = 0x0628; /* Deprecated */ +//static kCFStringEncodingNextStepJapanese: CFStringEncoding = 0x0B02; +//static kCFStringEncodingEBCDIC_US: CFStringEncoding = 0x0C01; +//static kCFStringEncodingEBCDIC_CP037: CFStringEncoding = 0x0C02; +//static kCFStringEncodingUTF7: CFStringEncoding = 0x04000100; +//static kCFStringEncodingUTF7_IMAP: CFStringEncoding = 0x0A10; +//static kCFStringEncodingShiftJIS_X0213_00: CFStringEncoding = 0x0628; /* Deprecated */ struct __CFString; @@ -207,7 +207,6 @@ pub struct CFString { } impl Clone for CFString { - #[fixed_stack_segment] #[inline] fn clone(&self) -> CFString { unsafe { @@ -217,7 +216,6 @@ impl Clone for CFString { } impl Drop for CFString { - #[fixed_stack_segment] fn drop(&mut self) { unsafe { CFRelease(self.as_CFTypeRef()) @@ -237,7 +235,6 @@ impl TCFType for CFString { } } - #[fixed_stack_segment] #[inline] fn type_id(_: Option) -> CFTypeID { unsafe { @@ -248,25 +245,21 @@ impl TCFType for CFString { impl FromStr for CFString { /// Creates a new `CFString` instance from a Rust string. - #[fixed_stack_segment] #[inline] fn from_str(string: &str) -> Option { unsafe { - let string_ref = string.as_imm_buf(|bytes, len| { - CFStringCreateWithBytes(kCFAllocatorDefault, - bytes, - len.to_CFIndex(), - kCFStringEncodingUTF8, - false as Boolean, - kCFAllocatorNull) - }); + let string_ref = CFStringCreateWithBytes(kCFAllocatorDefault, + string.as_ptr(), + string.len().to_CFIndex(), + kCFStringEncodingUTF8, + false as Boolean, + kCFAllocatorNull); Some(TCFType::wrap_under_create_rule(string_ref)) } } } impl ToStr for CFString { - #[fixed_stack_segment] fn to_str(&self) -> ~str { unsafe { let char_len = self.char_len(); @@ -291,7 +284,7 @@ impl ToStr for CFString { kCFStringEncodingUTF8, 0, false as Boolean, - vec::raw::to_ptr(buffer), + buffer.as_ptr(), buffer.len().to_CFIndex(), &mut bytes_used) as uint; assert!(chars_written.to_CFIndex() == char_len); @@ -309,24 +302,20 @@ impl ToStr for CFString { impl CFString { /// Like `CFString::from_string`, but references a string that can be used as a backing store /// by virtue of being statically allocated. - #[fixed_stack_segment] #[inline] pub fn from_static_string(string: &'static str) -> CFString { unsafe { - let string_ref = string.as_imm_buf(|bytes, len| { - CFStringCreateWithBytesNoCopy(kCFAllocatorDefault, - bytes, - len.to_CFIndex(), - kCFStringEncodingUTF8, - false as Boolean, - kCFAllocatorNull) - }); + let string_ref = CFStringCreateWithBytesNoCopy(kCFAllocatorDefault, + string.as_ptr(), + string.len().to_CFIndex(), + kCFStringEncodingUTF8, + false as Boolean, + kCFAllocatorNull); TCFType::wrap_under_create_rule(string_ref) } } /// Returns the number of characters in the string. - #[fixed_stack_segment] #[inline] pub fn char_len(&self) -> CFIndex { unsafe { @@ -335,8 +324,7 @@ impl CFString { } } -#[link_args="-framework CoreFoundation"] -#[nolink] +#[link(name = "CoreFoundation", kind = "framework")] extern { /* * CFString.h diff --git a/url.rs b/url.rs index 8b96de5..b8d2704 100644 --- a/url.rs +++ b/url.rs @@ -11,9 +11,8 @@ #[allow(non_uppercase_statics)]; -use base::{CFAllocatorRef, CFOptionFlags, CFRelease, CFTypeID, TCFType}; -use data::CFDataRef; -use string::{CFString, CFStringRef, CFStringEncoding}; +use base::{CFOptionFlags, CFRelease, CFTypeID, TCFType}; +use string::{CFString, CFStringRef}; struct __CFURL; @@ -24,7 +23,6 @@ pub struct CFURL { } impl Drop for CFURL { - #[fixed_stack_segment] fn drop(&mut self) { unsafe { CFRelease(self.as_CFTypeRef()) @@ -43,7 +41,6 @@ impl TCFType for CFURL { } } - #[fixed_stack_segment] #[inline] fn type_id(_: Option) -> CFTypeID { unsafe { @@ -53,7 +50,6 @@ impl TCFType for CFURL { } impl ToStr for CFURL { - #[fixed_stack_segment] #[inline] fn to_str(&self) -> ~str { unsafe { @@ -65,61 +61,60 @@ impl ToStr for CFURL { type CFURLBookmarkCreationOptions = CFOptionFlags; -static kCFURLBookmarkCreationPreferFileIDResolutionMask: CFURLBookmarkCreationOptions = - (1 << 8) as u32; -static kCFURLBookmarkCreationMinimalBookmarkMask: CFURLBookmarkCreationOptions = - (1 << 9) as u32; -static kCFURLBookmarkCreationSuitableForBookmarkFile: CFURLBookmarkCreationOptions = - (1 << 10) as u32; -static kCFURLBookmarkCreationWithSecurityScope: CFURLBookmarkCreationOptions = - (1 << 11) as u32; -static kCFURLBookmarkCreationSecurityScopeAllowOnlyReadAccess: CFURLBookmarkCreationOptions = - (1 << 12) as u32; +// static kCFURLBookmarkCreationPreferFileIDResolutionMask: CFURLBookmarkCreationOptions = +// (1 << 8) as u32; +// static kCFURLBookmarkCreationMinimalBookmarkMask: CFURLBookmarkCreationOptions = +// (1 << 9) as u32; +// static kCFURLBookmarkCreationSuitableForBookmarkFile: CFURLBookmarkCreationOptions = +// (1 << 10) as u32; +// static kCFURLBookmarkCreationWithSecurityScope: CFURLBookmarkCreationOptions = +// (1 << 11) as u32; +// static kCFURLBookmarkCreationSecurityScopeAllowOnlyReadAccess: CFURLBookmarkCreationOptions = +// (1 << 12) as u32; // TODO: there are a lot of missing keys and constants. Add if you are bored or need them. -#[link_args="-framework CoreFoundation"] -#[nolink] +#[link(name = "CoreFoundation", kind = "framework")] extern { /* * CFURL.h */ /* Common File System Resource Keys */ - static kCFURLAttributeModificationDateKey: CFStringRef; - static kCFURLContentAccessDateKey: CFStringRef; - static kCFURLContentModificationDateKey: CFStringRef; - static kCFURLCreationDateKey: CFStringRef; - static kCFURLCustomIconKey: CFStringRef; - static kCFURLEffectiveIconKey: CFStringRef; - static kCFURLFileResourceIdentifierKey: CFStringRef; - static kCFURLFileSecurityKey: CFStringRef; - static kCFURLHasHiddenExtensionKey: CFStringRef; - static kCFURLIsDirectoryKey: CFStringRef; - static kCFURLIsExecutableKey: CFStringRef; - static kCFURLIsHiddenKey: CFStringRef; - static kCFURLIsPackageKey: CFStringRef; - static kCFURLIsReadableKey: CFStringRef; - static kCFURLIsRegularFileKey: CFStringRef; - static kCFURLIsSymbolicLinkKey: CFStringRef; - static kCFURLIsSystemImmutableKey: CFStringRef; - static kCFURLIsUserImmutableKey: CFStringRef; - static kCFURLIsVolumeKey: CFStringRef; - static kCFURLIsWritableKey: CFStringRef; - static kCFURLLabelColorKey: CFStringRef; - static kCFURLLabelNumberKey: CFStringRef; - static kCFURLLinkCountKey: CFStringRef; - static kCFURLLocalizedLabelKey: CFStringRef; - static kCFURLLocalizedNameKey: CFStringRef; - static kCFURLLocalizedTypeDescriptionKey: CFStringRef; - static kCFURLNameKey: CFStringRef; - static kCFURLParentDirectoryURLKey: CFStringRef; - static kCFURLPreferredIOBlockSizeKey: CFStringRef; - static kCFURLTypeIdentifierKey: CFStringRef; - static kCFURLVolumeIdentifierKey: CFStringRef; - static kCFURLVolumeURLKey: CFStringRef; - static kCFURLIsExcludedFromBackupKey: CFStringRef; - static kCFURLFileResourceTypeKey: CFStringRef; + // static kCFURLAttributeModificationDateKey: CFStringRef; + // static kCFURLContentAccessDateKey: CFStringRef; + // static kCFURLContentModificationDateKey: CFStringRef; + // static kCFURLCreationDateKey: CFStringRef; + // static kCFURLCustomIconKey: CFStringRef; + // static kCFURLEffectiveIconKey: CFStringRef; + // static kCFURLFileResourceIdentifierKey: CFStringRef; + // static kCFURLFileSecurityKey: CFStringRef; + // static kCFURLHasHiddenExtensionKey: CFStringRef; + // static kCFURLIsDirectoryKey: CFStringRef; + // static kCFURLIsExecutableKey: CFStringRef; + // static kCFURLIsHiddenKey: CFStringRef; + // static kCFURLIsPackageKey: CFStringRef; + // static kCFURLIsReadableKey: CFStringRef; + // static kCFURLIsRegularFileKey: CFStringRef; + // static kCFURLIsSymbolicLinkKey: CFStringRef; + // static kCFURLIsSystemImmutableKey: CFStringRef; + // static kCFURLIsUserImmutableKey: CFStringRef; + // static kCFURLIsVolumeKey: CFStringRef; + // static kCFURLIsWritableKey: CFStringRef; + // static kCFURLLabelColorKey: CFStringRef; + // static kCFURLLabelNumberKey: CFStringRef; + // static kCFURLLinkCountKey: CFStringRef; + // static kCFURLLocalizedLabelKey: CFStringRef; + // static kCFURLLocalizedNameKey: CFStringRef; + // static kCFURLLocalizedTypeDescriptionKey: CFStringRef; + // static kCFURLNameKey: CFStringRef; + // static kCFURLParentDirectoryURLKey: CFStringRef; + // static kCFURLPreferredIOBlockSizeKey: CFStringRef; + // static kCFURLTypeIdentifierKey: CFStringRef; + // static kCFURLVolumeIdentifierKey: CFStringRef; + // static kCFURLVolumeURLKey: CFStringRef; + // static kCFURLIsExcludedFromBackupKey: CFStringRef; + // static kCFURLFileResourceTypeKey: CFStringRef; /* Creating a CFURL */ //fn CFURLCopyAbsoluteURL @@ -137,8 +132,8 @@ extern { //fn CFURLCreateWithBytes //fn CFURLCreateWithFileSystemPath //fn CFURLCreateWithFileSystemPathRelativeToBase - fn CFURLCreateWithString(allocator: CFAllocatorRef, urlString: CFStringRef, - baseURL: CFURLRef) -> CFURLRef; + //fn CFURLCreateWithString(allocator: CFAllocatorRef, urlString: CFStringRef, + // baseURL: CFURLRef) -> CFURLRef; /* Accessing the Parts of a URL */ //fn CFURLCanBeDecomposed @@ -160,8 +155,8 @@ extern { //fn CFURLHasDirectoryPath /* Converting URLs to Other Representations */ - fn CFURLCreateData(allocator: CFAllocatorRef, url: CFURLRef, - encoding: CFStringEncoding, escapeWhitespace: bool) -> CFDataRef; + //fn CFURLCreateData(allocator: CFAllocatorRef, url: CFURLRef, + // encoding: CFStringEncoding, escapeWhitespace: bool) -> CFDataRef; //fn CFURLCreateStringByAddingPercentEscapes //fn CFURLCreateStringByReplacingPercentEscapes //fn CFURLCreateStringByReplacingPercentEscapesUsingEncoding @@ -170,7 +165,7 @@ extern { fn CFURLGetString(anURL: CFURLRef) -> CFStringRef; /* Getting URL Properties */ - fn CFURLGetBaseURL(anURL: CFURLRef) -> CFURLRef; + //fn CFURLGetBaseURL(anURL: CFURLRef) -> CFURLRef; //fn CFURLGetBytes //fn CFURLGetByteRangeForComponent fn CFURLGetTypeID() -> CFTypeID;