diff --git a/3rdparty/docker/bootstrap/Dockerfile b/3rdparty/docker/bootstrap/Dockerfile index 13b232a65d..e86133deff 100644 --- a/3rdparty/docker/bootstrap/Dockerfile +++ b/3rdparty/docker/bootstrap/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:buster-slim +FROM debian:bullseye-slim ENV DEBIAN_FRONTEND="noninteractive" @@ -7,8 +7,8 @@ RUN apt-get update # Base Haiku requirements RUN apt-get install -y git nasm autoconf automake autopoint texinfo \ flex bison gawk build-essential unzip wget zip less zlib1g-dev \ - libcurl4-openssl-dev genisoimage libtool mtools gcc-multilib \ - u-boot-tools util-linux device-tree-compiler bc + libzstd-dev libcurl4-openssl-dev genisoimage libtool \ + mtools gcc-multilib u-boot-tools util-linux device-tree-compiler bc # GCC requirements RUN apt-get install -y python3 diff --git a/3rdparty/docker/bootstrap/crosstools.sh b/3rdparty/docker/bootstrap/crosstools.sh index 4d8f28e4ba..e6f0ca7330 100755 --- a/3rdparty/docker/bootstrap/crosstools.sh +++ b/3rdparty/docker/bootstrap/crosstools.sh @@ -21,7 +21,7 @@ mkdir -p $GENERATED echo "Beginning a bootstrap build for $TARGET_ARCH at $GENERATED..." cd $GENERATED -$WORKPATH/src/haiku/configure -j4 --build-cross-tools $TARGET_ARCH $WORKPATH/src/buildtools \ +$WORKPATH/src/haiku/configure -j4 --build-cross-tools $TARGET_ARCH --cross-tools-source $WORKPATH/src/buildtools \ --bootstrap $WORKPATH/src/haikuporter/haikuporter $WORKPATH/src/haikuports.cross $WORKPATH/src/haikuports echo "If everything was successful, your next step is 'TARGET_ARCH=$TARGET_ARCH make bootstrap'" diff --git a/3rdparty/os_probe/83haiku b/3rdparty/os_probe/83haiku new file mode 100755 index 0000000000..a9b276e3c1 --- /dev/null +++ b/3rdparty/os_probe/83haiku @@ -0,0 +1,56 @@ +#!/bin/sh +# Detects bootable Haiku OS on BeFS partitions and FUSE mounted BeFS too. +# If it doesn't find anything, try mounting the BeFS volumes in Linux. +# Discussion of improvements and development history at +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=732696 +# Adapted from version 42 (dated 20150811) updated by Jeroen Oortwijn at +# https://bazaar.launchpad.net/~idefix/ubuntu/trusty/os-prober/HaikuPM/files/head:/os-probes/mounted/x86 +# Latest version now at https://git.haiku-os.org/haiku/tree/3rdparty/os_probe + +. /usr/share/os-prober/common.sh + +partition="$1" +mpoint="$2" +type="$3" + +# Weed out stuff that doesn't apply to us, needs to be a Be file system. +case "$type" in + bfs|befs) debug "$partition is a BeFS partition." ;; + fuse|fuseblk) debug "$partition is a FUSE partition, maybe with BeFS on it." ; mpoint="$mpoint/myfs" ;; + *) exit 1 ;; # Be quiet and just quit for irrelevant partitions. +esac + +if head -c 512 "$partition" | grep -qs "haiku_loader"; then + debug "Haiku stage 1 bootloader found." +else + debug "Haiku stage 1 bootloader not found: exiting" + exit 1 +fi + +if system="$(item_in_dir "system" "$mpoint")" && + packages="$(item_in_dir "packages" "$mpoint/$system")" && + item_in_dir -q "haiku_loader-r[0-9].*\.hpkg" "$mpoint/$system/$packages" && + rev="$(item_in_dir "haiku-r[0-9].*\.hpkg" "$mpoint/$system/$packages")" +then + debug "Haiku Package Manager stage 2 bootloader and kernel ($rev) found." + label="$(count_next_label Haiku)" + # Convert kernel file name like haiku-r1~beta3_hrev55181_56-1-x86_64.hpkg + # or haiku-r1~alpha4_pm_hrev49856-1-x86_gcc2.hpkg into a readable version, + # like "Haiku R1 beta3 (hrev55181_56) 64". Seems to use a travelling space + # technique in the sed stream editor. + rev="$(echo "$rev" | sed 's/haiku-//;s/^\(r[0-9]\+\)./\U\1\E /;s/ \([a-z]\+[0-9]\+\)[_-]/ \1 /;s/ [a-z]*_\?\(hrev[0-9_]\+\)\+-/ (\1) /;s/) [^_]\+_\([a-z0-9]\+\)\.hpkg/) \1 /;s/[^ ]\+.hpkg//;s/ $//')" + long="Haiku $rev" + result "$partition:$long:$label:chain" + exit 0 +elif system="$(item_in_dir "system" "$mpoint")" && + item_in_dir -q "haiku_loader" "$mpoint/$system" && + item_in_dir -q "kernel_.*" "$mpoint/$system" +then + debug "Older non-package manager Haiku stage 2 bootloader and kernel found." + label="$(count_next_label Haiku)" + result "$partition:Haiku:$label:chain" + exit 0 +else + debug "Haiku stage 2 bootloader and kernel not found: exiting" + exit 1 +fi diff --git a/3rdparty/os_probe/README.md b/3rdparty/os_probe/README.md new file mode 100644 index 0000000000..af982c4d7b --- /dev/null +++ b/3rdparty/os_probe/README.md @@ -0,0 +1,30 @@ +# os-probe for the Haiku Computer Operating System + +This is the Linux "os-probes" file to detect Haiku OS and to automatically add +it to the GRUB boot menu. Mostly relevant for x86 BIOS based computers. + +Copy the 83haiku file to your Linux system in the os-probes subdirectory, +usually (in Fedora at least) it will be /usr/libexec/os-probes/mounted/83haiku +You can find older 83haiku versions in the repository history, though the +latest should be able to detect older (pre-package manager) Haiku too. + +Then regenerate the GRUB boot configuration file. This will happen +automatically the next time your kernel is updated. To do it manually, +for old school MBR BIOS boot computers, the command is +`grub2-mkconfig --output /boot/grub2/grub.cfg` +If it doesn't find the Haiku partitions, try manually mounting them in Linux +and rerun the grub command. + +Computers using the newer UEFI boot system have a EFI/HAIKU/BOOTX64.EFI file +that you manually install to your EFI partition, and booting is done +differently, so you don't need this 83Haiku file for them. See +[UEFI Booting Haiku](https://www.haiku-os.org/guides/uefi_booting/) instead. + +The original seems to have come from Debian and was written by François Revol. +It's in the +[Debian os-prober package](https://packages.debian.org/search?keywords=os-prober). +There's also a big discussion about updating it in +[Debian Bug Report #732696](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=732696). +Latest version is now at https://git.haiku-os.org/haiku/tree/3rdparty/os_probe + +_AGMS20210927_ diff --git a/Jamfile b/Jamfile index 08a1565410..81f89b568e 100644 --- a/Jamfile +++ b/Jamfile @@ -20,10 +20,10 @@ for architectureObject in [ MultiArchSubDirSetup ] { # Include required packages: # primary architecture AddHaikuImageSystemPackages [ FFilterByBuildFeatures - bash bc coreutils freetype libsolv zlib + bash bc freetype libsolv zlib - !gcc2 @{ icu66 }@ - gcc2 @{ icu icu66_x86@secondary_x86 }@ + !gcc2 @{ coreutils icu66 }@ + gcc2 @{ coreutils_x86 icu icu66_x86@secondary_x86 }@ regular_image @{ bzip2 diffutils expat ffmpeg findutils glu gutenprint8 gzip lame less libedit libicns @@ -37,7 +37,10 @@ AddHaikuImageSystemPackages [ FFilterByBuildFeatures }@ ] ; AddHaikuImageSourcePackages [ FFilterByBuildFeatures - bash bc coreutils + bash bc + + !gcc2 @{ coreutils }@ + gcc2 @{ coreutils_x86 }@ regular_image @{ expat ffmpeg findutils grep gutenprint8 gzip diff --git a/ReadMe.Compiling.md b/ReadMe.Compiling.md index 16f841ab68..34bac3ab67 100644 --- a/ReadMe.Compiling.md +++ b/ReadMe.Compiling.md @@ -136,7 +136,7 @@ cd haiku/generated.x86_64 cd haiku/generated.x86gcc2 ../configure \ --cross-tools-source ../../buildtools/ \ - --build-cross-tools x86_gcc2 + --build-cross-tools x86_gcc2 \ --build-cross-tools x86 ``` @@ -244,7 +244,7 @@ Configure Haiku's build system for a bootstrap build specifying the location of all of the repositories above. ``` ../configure -j4 \ - --build-cross-tools myarch ../../buildtools \ + --build-cross-tools myarch --cross-tools-source ../../buildtools \ --bootstrap ../../haikuporter/haikuporter ../../haikuports.cross ../../haikuports ``` diff --git a/build/jam/ArchitectureRules b/build/jam/ArchitectureRules index 093b68a9d8..71d427584b 100644 --- a/build/jam/ArchitectureRules +++ b/build/jam/ArchitectureRules @@ -40,6 +40,7 @@ rule ArchitectureSetup architecture switch $(cpu) { case ppc : archFlags += -mcpu=440fp ; case arm : archFlags += -march=armv7-a -mfloat-abi=hard ; + case arm64 : archFlags += -march=armv8.2-a+fp16 ; case x86 : archFlags += -march=pentium ; case riscv64 : archFlags += -march=rv64gc ; } @@ -108,11 +109,11 @@ rule ArchitectureSetup architecture # disable some Clang warnings that are not very useful if $(HAIKU_CC_IS_CLANG_$(architecture)) = 1 { - HAIKU_WARNING_CCFLAGS_$(architecture) += -Wno-address-of-packed-member - -Wno-unused-private-field -Wno-cast-align -Wno-gnu-designator + HAIKU_WARNING_CCFLAGS_$(architecture) += + -Wno-unused-private-field -Wno-gnu-designator -Wno-builtin-requires-header ; - HAIKU_WARNING_C++FLAGS_$(architecture) += -Wno-address-of-packed-member - -Wno-unused-private-field -Wno-cast-align -Wno-gnu-designator + HAIKU_WARNING_C++FLAGS_$(architecture) += + -Wno-unused-private-field -Wno-gnu-designator -Wno-builtin-requires-header ; } @@ -122,7 +123,10 @@ rule ArchitectureSetup architecture # TODO: Remove all these. HAIKU_WERROR_FLAGS_$(architecture) += -Wno-error=unused-but-set-variable -Wno-error=deprecated -Wno-error=deprecated-declarations - -Wno-error=cpp -Wno-error=trigraphs ; + -Wno-error=cpp -Wno-error=trigraphs -Wno-error=register ; + # These currently generate too many "false positives." + HAIKU_WERROR_FLAGS_$(architecture) += -Wno-error=address-of-packed-member + -Wno-error=stringop-overread -Wno-error=array-bounds ; # But these can stay. HAIKU_WERROR_FLAGS_$(architecture) += -Wno-error=cast-align -Wno-error=format-truncation ; @@ -217,6 +221,7 @@ rule KernelArchitectureSetup architecture # packaging architecture (supplied for convenience). HAIKU_KERNEL_ARCH = $(HAIKU_ARCH) ; + HAIKU_KERNEL_ARCH_DIR = $(HAIKU_KERNEL_ARCH) ; local cpu = $(HAIKU_CPU_$(architecture)) ; @@ -267,7 +272,7 @@ rule KernelArchitectureSetup architecture HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 2880 ; # in kB # offset in floppy image (>= sizeof(haiku_loader)) - HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 320 ; # in kB + HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 384 ; # in kB # nasm is required for target arch x86 if ! $(HAIKU_NASM) { @@ -292,10 +297,10 @@ rule KernelArchitectureSetup architecture HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 2880 ; # in kB # offset in floppy image (>= sizeof(haiku_loader)) - HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 320 ; # in kB + HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 384 ; # in kB # x86_64 kernel source is under arch/x86. - HAIKU_KERNEL_ARCH = x86 ; + HAIKU_KERNEL_ARCH_DIR = x86 ; # nasm is required for target arch x86_64 if ! $(HAIKU_NASM) { @@ -333,14 +338,14 @@ rule KernelArchitectureSetup architecture HAIKU_PRIVATE_KERNEL_HEADERS = [ PrivateHeaders $(DOT) kernel libroot shared kernel/boot/platform/$(HAIKU_KERNEL_PLATFORM) ] - [ ArchHeaders $(HAIKU_KERNEL_ARCH) ] + [ ArchHeaders $(HAIKU_KERNEL_ARCH_DIR) ] [ FDirName $(HAIKU_COMMON_DEBUG_OBJECT_DIR_$(architecture)) system kernel ] $(HAIKU_PRIVATE_SYSTEM_HEADERS_$(architecture)) ; # C/C++ flags - local ccBaseFlags = -finline -fno-builtin ; + local ccBaseFlags = -finline -fno-builtin -Wno-main ; if $(HAIKU_CC_IS_LEGACY_GCC_$(architecture)) != 1 { if $(HAIKU_CC_IS_CLANG_$(architecture)) != 1 { @@ -467,6 +472,11 @@ rule KernelArchitectureSetup architecture } # bootloader-centric flags + HAIKU_BOOT_CCFLAGS + += -DBOOT_ARCHIVE_IMAGE_OFFSET=$(HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET) ; + HAIKU_BOOT_C++FLAGS + += -DBOOT_ARCHIVE_IMAGE_OFFSET=$(HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET) ; + local bootTarget ; for bootTarget in $(HAIKU_BOOT_TARGETS) { switch $(bootTarget) { @@ -489,6 +499,27 @@ rule KernelArchitectureSetup architecture HAIKU_BOOT_$(bootTarget:U)_CCFLAGS += -maccumulate-outgoing-args ; HAIKU_BOOT_$(bootTarget:U)_C++FLAGS += -maccumulate-outgoing-args ; } + case arm : + HAIKU_BOOT_$(bootTarget:U)_CCFLAGS += -mfloat-abi=soft ; + HAIKU_BOOT_$(bootTarget:U)_C++FLAGS += -mfloat-abi=soft ; + + # Remove any previous -mfloat-abi=hard setting from compiler flags + local fixedBootCCFlags ; + local fixedBootC++Flags ; + for flag in $(HAIKU_BOOT_CCFLAGS) { + if $(flag) = "-mfloat-abi=hard" { + continue ; + } + fixedBootCCFlags += $(flag) ; + } + for flag in $(HAIKU_BOOT_C++FLAGS) { + if $(flag) = "-mfloat-abi=hard" { + continue ; + } + fixedBootC++Flags += $(flag) ; + } + HAIKU_BOOT_CCFLAGS = $(fixedBootCCFlags) ; + HAIKU_BOOT_C++FLAGS = $(fixedBootC++Flags) ; } HAIKU_BOOT_$(bootTarget:U)_LDFLAGS = -Bstatic -Bsymbolic -nostdlib -znocombreloc -no-undefined ; @@ -532,6 +563,9 @@ rule KernelArchitectureSetup architecture case riscv : HAIKU_BOOT_$(bootTarget:U)_CCFLAGS += -mcmodel=medany -fno-omit-frame-pointer -fno-plt -fno-pic -fno-semantic-interposition ; HAIKU_BOOT_$(bootTarget:U)_C++FLAGS += -mcmodel=medany -fno-omit-frame-pointer -fno-plt -fno-pic -fno-semantic-interposition ; + case openfirmware : + HAIKU_BOOT_$(bootTarget:U)_CCFLAGS += -fno-pic -fno-semantic-interposition -Wno-error=main -Wstack-usage=1023 ; + HAIKU_BOOT_$(bootTarget:U)_C++FLAGS += -fno-pic -fno-semantic-interposition -Wno-error=main -Wstack-usage=1023 ; case * : # all other bootloaders are non-PIC HAIKU_BOOT_$(bootTarget:U)_CCFLAGS += -fno-pic -Wno-error=main ; @@ -556,11 +590,6 @@ rule KernelArchitectureSetup architecture # defines HAIKU_KERNEL_DEFINES += _KERNEL_MODE ; - HAIKU_DEFINES_$(architecture) - += BOOT_ARCHIVE_IMAGE_OFFSET=$(HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET) ; - # TODO: That doesn't need to be a general define. It's just needed for - # compiling (part of) the boot loader. - # kernel add-on glue code HAIKU_KERNEL_ADDON_BEGIN_GLUE_CODE = <$(architecture)>crtbeginS.o haiku_version_glue.o ; @@ -630,14 +659,14 @@ rule ArchitectureSetupWarnings architecture EnableWerror src add-ons disk_systems ; EnableWerror src add-ons input_server devices ; EnableWerror src add-ons input_server filters ; -# EnableWerror src add-ons input_server methods pen ; + EnableWerror src add-ons input_server methods pen ; EnableWerror src add-ons input_server methods t9 ; EnableWerror src add-ons kernel bluetooth ; EnableWerror src add-ons kernel bus_managers acpi ; EnableWerror src add-ons kernel bus_managers agp_gart ; EnableWerror src add-ons kernel bus_managers ata ; EnableWerror src add-ons kernel bus_managers config_manager ; -# EnableWerror src add-ons kernel bus_managers firewire ; + EnableWerror src add-ons kernel bus_managers firewire ; EnableWerror src add-ons kernel bus_managers ide ; EnableWerror src add-ons kernel bus_managers isa ; EnableWerror src add-ons kernel bus_managers pci ; @@ -649,35 +678,39 @@ rule ArchitectureSetupWarnings architecture EnableWerror src add-ons kernel bus_managers virtio ; EnableWerror src add-ons kernel busses agp_gart ; EnableWerror src add-ons kernel busses ata ; +# EnableWerror src add-ons kernel busses i2c ; +# EnableWerror src add-ons kernel busses mmc ; +# EnableWerror src add-ons kernel busses random ; EnableWerror src add-ons kernel busses scsi ; EnableWerror src add-ons kernel busses usb ; +# EnableWerror src add-ons kernel busses virtio ; EnableWerror src add-ons kernel console ; EnableWerror src add-ons kernel cpu ; -# EnableWerror src add-ons kernel debugger ; # gcc2 + EnableWerror src add-ons kernel debugger ; # EnableWerror src add-ons kernel drivers audio ; EnableWerror src add-ons kernel drivers bluetooth ; -# EnableWerror src add-ons kernel drivers bus ; + EnableWerror src add-ons kernel drivers bus ; EnableWerror src add-ons kernel drivers common ; # EnableWerror src add-ons kernel drivers disk ; EnableWerror src add-ons kernel drivers dvb ; # EnableWerror src add-ons kernel drivers graphics ; EnableWerror src add-ons kernel drivers graphics intel_extreme ; -# EnableWerror src add-ons kernel drivers input ; + EnableWerror src add-ons kernel drivers input ; EnableWerror src add-ons kernel drivers joystick ; EnableWerror src add-ons kernel drivers midi ; EnableWerror src add-ons kernel drivers misc ; # EnableWerror src add-ons kernel drivers network ; EnableWerror src add-ons kernel drivers ports ; -# EnableWerror src add-ons kernel drivers power ; + EnableWerror src add-ons kernel drivers power ; EnableWerror src add-ons kernel drivers printer ; EnableWerror src add-ons kernel drivers random ; EnableWerror src add-ons kernel drivers tty ; EnableWerror src add-ons kernel drivers video ; EnableWerror src add-ons kernel file_systems bfs ; EnableWerror src add-ons kernel file_systems cdda ; -# EnableWerror src add-ons kernel file_systems ext2 ; + EnableWerror src add-ons kernel file_systems ext2 ; # EnableWerror src add-ons kernel file_systems fat ; -# EnableWerror src add-ons kernel file_systems googlefs ; + EnableWerror src add-ons kernel file_systems googlefs ; EnableWerror src add-ons kernel file_systems iso9660 ; EnableWerror src add-ons kernel file_systems layers ; # EnableWerror src add-ons kernel file_systems netfs ; @@ -690,13 +723,7 @@ rule ArchitectureSetupWarnings architecture EnableWerror src add-ons kernel file_systems udf ; EnableWerror src add-ons kernel file_systems userlandfs ; EnableWerror src add-ons kernel generic ; -# EnableWerror src add-ons kernel network datalink_protocols ; - EnableWerror src add-ons kernel network devices ; - EnableWerror src add-ons kernel network dns_resolver ; - EnableWerror src add-ons kernel network notifications ; - EnableWerror src add-ons kernel network ppp ; - EnableWerror src add-ons kernel network protocols ; -# EnableWerror src add-ons kernel network stack ; + EnableWerror src add-ons kernel network ; EnableWerror src add-ons kernel partitioning_systems ; EnableWerror src add-ons kernel power ; EnableWerror src add-ons locale ; @@ -714,15 +741,15 @@ rule ArchitectureSetupWarnings architecture EnableWerror src add-ons media media-add-ons reader ; EnableWerror src add-ons media media-add-ons tone_producer_demo ; EnableWerror src add-ons media media-add-ons usb_vision ; -# EnableWerror src add-ons media media-add-ons usb_webcam ; + EnableWerror src add-ons media media-add-ons usb_webcam ; EnableWerror src add-ons media media-add-ons video_mixer ; -# EnableWerror src add-ons media media-add-ons video_producer_demo ; + EnableWerror src add-ons media media-add-ons video_producer_demo ; EnableWerror src add-ons media media-add-ons videowindow ; EnableWerror src add-ons media media-add-ons writer ; EnableWerror src add-ons media plugins ape_reader ; EnableWerror src add-ons media plugins au_reader ; # EnableWerror src add-ons media plugins ffmpeg ; -# EnableWerror src add-ons media plugins raw_decoder ; + EnableWerror src add-ons media plugins raw_decoder ; EnableWerror src add-ons print ; EnableWerror src add-ons screen_savers ; EnableWerror src add-ons tracker ; diff --git a/build/jam/BootRules b/build/jam/BootRules index 61761cfef7..b5c26562a4 100644 --- a/build/jam/BootRules +++ b/build/jam/BootRules @@ -76,9 +76,9 @@ rule SetupBoot SourceSysHdrs $(sources) : $(TARGET_PRIVATE_KERNEL_HEADERS) ; } - if $(HAIKU_BOOT_C++_HEADERS_DIR_$(TARGET_PACKAGING_ARCH)) { + if $(HAIKU_BOOT_C++_HEADERS_DIR_$(TARGET_KERNEL_ARCH)) { SourceSysHdrs $(sources) : - $(HAIKU_BOOT_C++_HEADERS_DIR_$(TARGET_PACKAGING_ARCH)) ; + $(HAIKU_BOOT_C++_HEADERS_DIR_$(TARGET_KERNEL_ARCH)) ; } # MultiBootSubDirSetup sets the target boot platform on the target object, @@ -90,6 +90,8 @@ rule SetupBoot local platform = $(TARGET_BOOT_PLATFORM:U) ; local object ; for object in $(objects) { + TARGET_PACKAGING_ARCH on $(object) = $(TARGET_KERNEL_ARCH) ; + # add boot flags for the object ObjectCcFlags $(object) : $(HAIKU_BOOT_CCFLAGS) $(HAIKU_BOOT_$(platform)_CCFLAGS) $(2) ; ObjectC++Flags $(object) : $(HAIKU_BOOT_C++FLAGS) $(HAIKU_BOOT_$(platform)_C++FLAGS) $(2) ; @@ -97,13 +99,14 @@ rule SetupBoot ASFLAGS on $(object) = $(HAIKU_BOOT_CCFLAGS) $(HAIKU_BOOT_$(platform)_CCFLAGS) ; # override regular CCFLAGS/C++FLAGS, as we don't want them - TARGET_CCFLAGS_$(TARGET_PACKAGING_ARCH) on $(object) = ; - TARGET_C++FLAGS_$(TARGET_PACKAGING_ARCH) on $(object) = ; + TARGET_CCFLAGS_$(TARGET_KERNEL_ARCH) on $(object) = ; + TARGET_C++FLAGS_$(TARGET_KERNEL_ARCH) on $(object) = ; + TARGET_ASFLAGS_$(TARGET_KERNEL_ARCH) on $(object) = ; # override warning flags - TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) on $(object) + TARGET_WARNING_CCFLAGS_$(TARGET_KERNEL_ARCH) on $(object) = $(TARGET_KERNEL_WARNING_CCFLAGS) ; - TARGET_WARNING_C++FLAGS_$(TARGET_PACKAGING_ARCH) on $(object) + TARGET_WARNING_C++FLAGS_$(TARGET_KERNEL_ARCH) on $(object) = $(TARGET_KERNEL_WARNING_C++FLAGS) ; } } @@ -118,7 +121,7 @@ rule BootLd { # BootLd : : : ; - LINK on $(1) = $(TARGET_LD_$(TARGET_PACKAGING_ARCH)) ; + LINK on $(1) = $(TARGET_LD_$(TARGET_KERNEL_ARCH)) ; LINKFLAGS on $(1) = $(HAIKU_BOOT_$(TARGET_BOOT_PLATFORM:U)_LDFLAGS) $(4) ; if $(3) { LINKFLAGS on $(1) += --script=$(3) ; } @@ -130,8 +133,8 @@ rule BootLd libs += [ TargetBootLibsupc++ true ] ; Depends $(1) : [ TargetBootLibsupc++ ] ; } - LINKLIBS on $(1) = $(libs) [ TargetBootLibgcc true ] ; - Depends $(1) : [ TargetBootLibgcc ] ; + LINKLIBS on $(1) = $(libs) [ TargetBootLibgcc $(TARGET_KERNEL_ARCH) : true ] ; + Depends $(1) : [ TargetBootLibgcc $(TARGET_KERNEL_ARCH) ] ; # TODO: Do we really want to invoke SetupBoot here? The objects should # have been compiled with BootObjects anyway, so we're doing that twice. @@ -169,6 +172,8 @@ rule BootMergeObject # will be added. # + TARGET_PACKAGING_ARCH on $(1) = $(TARGET_KERNEL_ARCH) ; + SetupBoot $(2) : $(3) ; Objects $(2) ; MergeObjectFromObjects $(1) : $(2:S=$(SUFOBJ)) : $(4) ; @@ -181,6 +186,8 @@ rule BootStaticLibrary # This is designed to take a set of sources and libraries and create # a file called lib.a + TARGET_PACKAGING_ARCH on $(1) = $(TARGET_KERNEL_ARCH) ; + SetupBoot $(2) : $(3) : false ; Library $(1) : $(2) ; } @@ -191,6 +198,8 @@ rule BootStaticLibraryObjects # This is designed to take a set of sources and libraries and create # a file called + TARGET_PACKAGING_ARCH on $(1) = $(TARGET_KERNEL_ARCH) ; + # Show that we depend on the libraries we need SetupBoot $(2) ; LocalClean clean : $(1) ; @@ -205,7 +214,7 @@ actions BootStaticLibraryObjects # Force recreation of the archive to avoid build errors caused by # stale dependencies after renaming or deleting object files. $(RM) "$(1)" - $(HAIKU_AR_$(TARGET_PACKAGING_ARCH)) -r "$(1)" "$(2)" ; + $(HAIKU_AR_$(TARGET_KERNEL_ARCH)) -r "$(1)" "$(2)" ; } rule BuildMBR binary : source diff --git a/build/jam/BuildFeatureRules b/build/jam/BuildFeatureRules index 602e46d6d5..8a9a94b3ca 100644 --- a/build/jam/BuildFeatureRules +++ b/build/jam/BuildFeatureRules @@ -5,6 +5,11 @@ rule FQualifiedBuildFeatureName features # Prepends the name of the current target packaging architecture to the # given feature names. + if $(features[1]) = "QUALIFIED" { + # We have been pre-supplied a qualified name. + return $(features[2]) ; + } + return $(TARGET_PACKAGING_ARCH):$(features) ; } diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures index 3162433dfc..acfbb70874 100644 --- a/build/jam/BuildFeatures +++ b/build/jam/BuildFeatures @@ -78,9 +78,12 @@ if [ IsPackageAvailable gcc_syslibs_devel ] { libgcc_eh.a: $(developLibDir)/libgcc_eh.a libgcc-kernel.a: $(developLibDir)/libgcc-kernel.a libgcc_eh-kernel.a: $(developLibDir)/libgcc_eh.a + libgcc-boot.a: $(developLibDir)/libgcc-boot.a + libgcc_eh-boot.a: $(developLibDir)/libgcc_eh-boot.a libstdc++.a: $(developLibDir)/libstdc++.a libsupc++.a: $(developLibDir)/libsupc++.a libsupc++-kernel.a: $(developLibDir)/libsupc++-kernel.a + libsupc++-boot.a: $(developLibDir)/libsupc++-boot.a c++-headers: $(developHeadersDir)/c++ gcc-headers: $(developHeadersDir)/gcc ; @@ -104,7 +107,6 @@ if [ IsPackageAvailable icu_devel ] { $(developLibDir)/libicudata.so $(developLibDir)/libicui18n.so $(developLibDir)/libicuio.so - $(developLibDir)/libicutu.so $(developLibDir)/libicuuc.so headers: $(developHeadersDir) ; @@ -120,7 +122,6 @@ if [ IsPackageAvailable icu_devel ] { $(developLibDir)/libicudata.so $(developLibDir)/libicui18n.so $(developLibDir)/libicuio.so - $(developLibDir)/libicutu.so $(developLibDir)/libicuuc.so headers: $(developHeadersDir) ; @@ -622,6 +623,23 @@ if [ IsPackageAvailable libdvdnav_devel ] { } +# libraw +if [ IsPackageAvailable libraw_devel ] { + ExtractBuildFeatureArchives libraw : + file: base libraw + runtime: lib + file: devel libraw_devel + depends: base + libraries: $(developLibDir)/libraw.so.19 + headers: $(developHeadersDir) + ; + + EnableBuildFeatures libraw ; +} else { + unavailableBuildFeatures += libraw ; +} + + # libwebp if [ IsPackageAvailable libwebp_devel ] { if $(HAIKU_PACKAGING_ARCH) = x86 && $(TARGET_PACKAGING_ARCH) = x86_gcc2 { @@ -652,19 +670,15 @@ if [ IsPackageAvailable libwebp_devel ] { # libavif if [ IsPackageAvailable libavif_devel ] { - if $(HAIKU_PACKAGING_ARCH) = x86_64 { - ExtractBuildFeatureArchives libavif : - file: base libavif - runtime: lib - file: devel libavif_devel - depends: base - library: $(developLibDir)/libavif.so.12 - headers: $(developHeadersDir) $(developHeadersDir)/avif - ; - EnableBuildFeatures libavif ; - } else { - unavailableBuildFeatures += libavif ; - } + ExtractBuildFeatureArchives libavif : + file: base libavif + runtime: lib + file: devel libavif_devel + depends: base + library: $(developLibDir)/libavif.so.9 + headers: $(developHeadersDir) $(developHeadersDir)/avif + ; + EnableBuildFeatures libavif ; } else { unavailableBuildFeatures += libavif ; } diff --git a/build/jam/BuildSetup b/build/jam/BuildSetup index c8b8c9d16a..284f614032 100644 --- a/build/jam/BuildSetup +++ b/build/jam/BuildSetup @@ -114,7 +114,12 @@ for architecture in $(HAIKU_PACKAGING_ARCHS) { } if $(HAIKU_PACKAGING_ARCH) { - KernelArchitectureSetup $(HAIKU_PACKAGING_ARCH) ; + local kernelArch = $(HAIKU_PACKAGING_ARCH) ; + # Always use the non-legacy GCC for the kernel. + if $(kernelArch) = x86_gcc2 { + kernelArch = x86 ; + } + KernelArchitectureSetup $(kernelArch) ; } # define primary packaging architecture macro @@ -217,7 +222,7 @@ HOST_UNARFLAGS ?= x ; # check the host platform compatibility SetPlatformCompatibilityFlagVariables HOST_PLATFORM : HOST : host - : linux openbsd freebsd darwin msys ; + : linux openbsd freebsd darwin ; HOST_PLATFORM_(host)_COMPATIBLE = 1 ; if $(HOST_PLATFORM) = linux || $(HOST_PLATFORM) = freebsd @@ -407,10 +412,7 @@ if $(HOST_PLATFORM_HAIKU_COMPATIBLE) { } else { HOST_LINKFLAGS += -lm -ldl ; HOST_LIBSTDC++ = stdc++ ; - if $(HOST_PLATFORM) = msys { - HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR - = "PATH=$PATH:$(HOST_BUILD_COMPATIBILITY_LIB_DIR)" ; - } else if $(HOST_PLATFORM) = darwin { + if $(HOST_PLATFORM) = darwin { HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR = "DYLD_LIBRARY_PATH=\"$DYLD_LIBRARY_PATH:$(HOST_BUILD_COMPATIBILITY_LIB_DIR)\"" ; } else { @@ -565,7 +567,7 @@ if $(HAIKU_HOST_BUILD_ONLY) = 1 { # for all architectures (e.g. TARGET_DEFINES). local buildVars = - ARCH ARCHS KERNEL_ARCH PACKAGING_ARCH PACKAGING_ARCHS + ARCH ARCHS KERNEL_ARCH KERNEL_ARCH_DIR PACKAGING_ARCH PACKAGING_ARCHS DEFINES KERNEL_DEFINES @@ -644,7 +646,6 @@ switch $(HOST_PLATFORM) { case linux : HOST_DEFINES += HAIKU_HOST_PLATFORM_LINUX ; case freebsd : HOST_DEFINES += HAIKU_HOST_PLATFORM_FREEBSD ; case darwin : HOST_DEFINES += HAIKU_HOST_PLATFORM_DARWIN ; - case msys : HOST_DEFINES += HAIKU_HOST_PLATFORM_MSYS ; } # define host platform 64 bit macro diff --git a/build/jam/HaikuPackages b/build/jam/HaikuPackages index 8efe6419cf..cfa52a51a3 100644 --- a/build/jam/HaikuPackages +++ b/build/jam/HaikuPackages @@ -2,6 +2,7 @@ # subdirectory. local packages = [ FFilterByBuildFeatures HaikuDevel + HaikuDataTranslators HaikuExtras HaikuLoader HaikuSource diff --git a/build/jam/ImageRules b/build/jam/ImageRules index 50b39c0546..8142be43d0 100644 --- a/build/jam/ImageRules +++ b/build/jam/ImageRules @@ -1649,6 +1649,7 @@ rule BuildCDBootPPCImage image : hfsmaps : elfloader : coffloader : chrpscript actions BuildCDBootPPCImage1 bind MAPS { $(RM) $(<) + mkdir -p $(HAIKU_OUTPUT_DIR)/cd/ppc mkdir -p $(HAIKU_OUTPUT_DIR)/cd/boot # CHRP Boot script @@ -1662,9 +1663,10 @@ actions BuildCDBootPPCImage1 bind MAPS # Xorriso doesn't have map and some other required tools # to make bootable PowerPC images - genisoimage -v -hfsplus -map $(MAPS) \ + genisoimage -v -hfs -map $(MAPS) \ -hfs-bless $(HAIKU_OUTPUT_DIR)/cd/boot -part -no-desktop \ -hfs-parms MAX_XTCSIZE=2656248 -hfs-volid Haiku \ + --prep-boot boot/haikuloader.elf \ --chrp-boot -r -J -o $(<) $(HAIKU_OUTPUT_DIR)/cd $(RM) -r $(HAIKU_OUTPUT_DIR)/cd @@ -1683,6 +1685,8 @@ rule BuildEfiSystemPartition image : efiLoader Depends $(image) : $(fatshell) ; switch $(TARGET_ARCH) { + case x86 : + EFINAME on $(image) = "BOOTIA32.EFI" ; case x86_64 : EFINAME on $(image) = "BOOTX64.EFI" ; case arm : diff --git a/build/jam/KernelRules b/build/jam/KernelRules index 748d585eea..bd6e050b09 100644 --- a/build/jam/KernelRules +++ b/build/jam/KernelRules @@ -16,14 +16,16 @@ rule SetupKernel local object ; for object in $(objects) { + TARGET_PACKAGING_ARCH on $(object) = $(TARGET_KERNEL_ARCH) ; + # add kernel flags for the object ObjectCcFlags $(object) : $(TARGET_KERNEL_CCFLAGS) $(2) ; ObjectC++Flags $(object) : $(TARGET_KERNEL_C++FLAGS) $(2) ; ObjectDefines $(object) : $(TARGET_KERNEL_DEFINES) ; # override regular CCFLAGS/C++FLAGS, as we don't want them - TARGET_CCFLAGS_$(TARGET_PACKAGING_ARCH) on $(object) = ; - TARGET_C++FLAGS_$(TARGET_PACKAGING_ARCH) on $(object) = ; + TARGET_CCFLAGS_$(TARGET_KERNEL_ARCH) on $(object) = ; + TARGET_C++FLAGS_$(TARGET_KERNEL_ARCH) on $(object) = ; # override warning flags TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) on $(object) @@ -43,7 +45,7 @@ rule KernelLd { # KernelLd : : : ; - LINK on $(1) = $(TARGET_LD_$(TARGET_PACKAGING_ARCH)) ; + LINK on $(1) = $(TARGET_LD_$(HAIKU_KERNEL_ARCH)) ; LINKFLAGS on $(1) = $(4) ; if $(3) { @@ -103,7 +105,7 @@ actions KernelSo1 export $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR) $(2[1]) --data $(2[2]) $(1) && - $(HAIKU_ELFEDIT_$(TARGET_PACKAGING_ARCH)) --output-type dyn $(1) + $(HAIKU_ELFEDIT_$(HAIKU_KERNEL_ARCH)) --output-type dyn $(1) } rule KernelAddon @@ -115,6 +117,8 @@ rule KernelAddon local libs = $(3) ; AddResources $(1) : $(4) ; + TARGET_PACKAGING_ARCH on $(target) = $(TARGET_KERNEL_ARCH) ; + local kernel ; local beginGlue ; local endGlue ; @@ -164,6 +168,8 @@ rule KernelMergeObject # will be added. # + TARGET_PACKAGING_ARCH on $(1) = $(TARGET_KERNEL_ARCH) ; + SetupKernel $(2) : $(3) ; Objects $(2) ; MergeObjectFromObjects $(1) : $(2:S=$(SUFOBJ)) : $(4) ; @@ -175,6 +181,8 @@ rule KernelStaticLibrary # This is designed to take a set of sources and libraries and create # a static library. + TARGET_PACKAGING_ARCH on $(1) = $(TARGET_KERNEL_ARCH) ; + SetupKernel $(2) : $(3) : false ; Library $(1) : $(2) ; } @@ -185,6 +193,8 @@ rule KernelStaticLibraryObjects # This is designed to take a set of sources and libraries and create # a file called + TARGET_PACKAGING_ARCH on $(1) = $(TARGET_KERNEL_ARCH) ; + # Show that we depend on the libraries we need SetupKernel $(2) ; LocalClean clean : $(1) ; @@ -199,5 +209,5 @@ actions KernelStaticLibraryObjects # Force recreation of the archive to avoid build errors caused by # stale dependencies after renaming or deleting object files. $(RM) "$(1)" - $(HAIKU_AR_$(TARGET_PACKAGING_ARCH)) -r "$(1)" "$(2)" ; + $(HAIKU_AR_$(HAIKU_KERNEL_ARCH)) -r "$(1)" "$(2)" ; } diff --git a/build/jam/MainBuildRules b/build/jam/MainBuildRules index 4ce5d31ca2..cf2b51c97d 100644 --- a/build/jam/MainBuildRules +++ b/build/jam/MainBuildRules @@ -258,15 +258,17 @@ actions Ld $(LINK) $(LINKFLAGS) -o "$(1)" "$(2)" "$(NEEDLIBS)" $(LINKLIBS) } -rule CreateAsmStructOffsetsHeader header : source +rule CreateAsmStructOffsetsHeader header : source : architecture { - # CreateAsmStructOffsetsHeader header : source + # CreateAsmStructOffsetsHeader header : source : architecture # # Grist will be added to both header and source. header = [ FGristFiles $(header) ] ; source = [ FGristFiles $(source) ] ; + TARGET_PACKAGING_ARCH on $(header) = $(architecture) ; + # find out which headers, defines, etc. to use local headers ; local sysHeaders ; @@ -367,7 +369,8 @@ rule CreateAsmStructOffsetsHeader header : source Depends $(header) : $(source) $(PLATFORM) ; SEARCH on $(source) += $(SEARCH_SOURCE) ; - MakeLocateArch $(header) ; + MakeLocate $(header) : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(architecture)) + system kernel ] ; LocalClean clean : $(header) ; HDRRULE on $(source) = HdrRule ; diff --git a/build/jam/OverriddenJamRules b/build/jam/OverriddenJamRules index 01659c9a1a..4904bd0191 100644 --- a/build/jam/OverriddenJamRules +++ b/build/jam/OverriddenJamRules @@ -6,12 +6,13 @@ rule Link { # Note: RESFILES must be set before invocation. + local architecture = [ on $(1) return $(TARGET_PACKAGING_ARCH) ] ; if [ on $(1) return $(PLATFORM) ] = host { LINK on $(1) = $(HOST_LINK) ; LINKFLAGS on $(1) = $(HOST_LINKFLAGS) [ on $(1) return $(LINKFLAGS) ] ; } else { - LINK on $(1) = $(TARGET_LINK_$(TARGET_PACKAGING_ARCH)) ; - LINKFLAGS on $(1) = $(TARGET_LINKFLAGS_$(TARGET_PACKAGING_ARCH)) + LINK on $(1) = $(TARGET_LINK_$(architecture)) ; + LINKFLAGS on $(1) = $(TARGET_LINKFLAGS_$(architecture)) [ on $(1) return $(LINKFLAGS) ] ; } @@ -172,38 +173,41 @@ rule Object rule As { - local flags ; - local includesSeparator ; - local localIncludesOption ; - local systemIncludesOption ; - if [ on $(1) return $(PLATFORM) ] = host { - flags = [ on $(1) return $(HOST_ASFLAGS) $(ASFLAGS) ] ; - - CC on $(1) = $(HOST_CC) ; - - includesSeparator = $(HOST_INCLUDES_SEPARATOR) ; - localIncludesOption = $(HOST_LOCAL_INCLUDES_OPTION) ; - systemIncludesOption = $(HOST_SYSTEM_INCLUDES_OPTION) ; - } else { - flags = [ on $(1) return $(TARGET_ASFLAGS_$(TARGET_PACKAGING_ARCH)) - $(ASFLAGS) ] ; - - CC on $(1) = $(TARGET_CC_$(TARGET_PACKAGING_ARCH)) ; - - includesSeparator - = $(TARGET_INCLUDES_SEPARATOR_$(TARGET_PACKAGING_ARCH)) ; - localIncludesOption - = $(TARGET_LOCAL_INCLUDES_OPTION_$(TARGET_PACKAGING_ARCH)) ; - systemIncludesOption - = $(TARGET_SYSTEM_INCLUDES_OPTION_$(TARGET_PACKAGING_ARCH)) ; - } - Depends $(<) : $(>) [ on $(1) return $(PLATFORM) ] ; - ASFLAGS on $(<) += $(flags) $(SUBDIRASFLAGS) ; - ASHDRS on $(<) = [ on $(<) FIncludes $(HDRS) : $(localIncludesOption) ] - $(includesSeparator) - [ on $(<) FSysIncludes $(SYSHDRS) : $(systemIncludesOption) ] ; - ASDEFS on $(<) = [ on $(<) FDefines $(DEFINES) ] ; + + on $(1) { + local flags ; + local includesSeparator ; + local localIncludesOption ; + local systemIncludesOption ; + + if $(PLATFORM) = host { + flags = $(HOST_ASFLAGS) $(ASFLAGS) ; + + CC on $(1) = $(HOST_CC) ; + + includesSeparator = $(HOST_INCLUDES_SEPARATOR) ; + localIncludesOption = $(HOST_LOCAL_INCLUDES_OPTION) ; + systemIncludesOption = $(HOST_SYSTEM_INCLUDES_OPTION) ; + } else { + flags = $(TARGET_ASFLAGS_$(TARGET_PACKAGING_ARCH)) $(ASFLAGS) ; + + CC on $(1) = $(TARGET_CC_$(TARGET_PACKAGING_ARCH)) ; + + includesSeparator + = $(TARGET_INCLUDES_SEPARATOR_$(TARGET_PACKAGING_ARCH)) ; + localIncludesOption + = $(TARGET_LOCAL_INCLUDES_OPTION_$(TARGET_PACKAGING_ARCH)) ; + systemIncludesOption + = $(TARGET_SYSTEM_INCLUDES_OPTION_$(TARGET_PACKAGING_ARCH)) ; + } + + ASFLAGS on $(<) += $(flags) $(SUBDIRASFLAGS) ; + ASHDRS on $(<) = [ on $(<) FIncludes $(HDRS) : $(localIncludesOption) ] + $(includesSeparator) + [ on $(<) FSysIncludes $(SYSHDRS) : $(systemIncludesOption) ] ; + ASDEFS on $(<) = [ on $(<) FDefines $(DEFINES) ] ; + } } actions As diff --git a/build/jam/PackageRules b/build/jam/PackageRules index 6384f16ac1..d201c7db5c 100644 --- a/build/jam/PackageRules +++ b/build/jam/PackageRules @@ -99,6 +99,7 @@ rule PreprocessPackageOrRepositoryInfo target : source : architecture # placeholder substitutions have been performed. local defines = HAIKU_PACKAGING_ARCH=$(architecture) + HAIKU_PACKAGING_ARCH_$(architecture) HAIKU_$(HAIKU_BUILD_TYPE:U)_BUILD ; local sedReplacements = %HAIKU_PACKAGING_ARCH%,$(architecture) ; if $(secondaryArchitecture) { diff --git a/build/jam/SystemLibraryRules b/build/jam/SystemLibraryRules index d7d75cc7f7..4299a164d8 100644 --- a/build/jam/SystemLibraryRules +++ b/build/jam/SystemLibraryRules @@ -103,7 +103,7 @@ rule TargetKernelLibsupc++ asPath flags += path ; } return [ - BuildFeatureAttribute gcc_syslibs_devel + BuildFeatureAttribute QUALIFIED $(TARGET_KERNEL_ARCH):gcc_syslibs_devel : libsupc++-kernel.a : $(flags) ] ; } else { @@ -134,6 +134,12 @@ rule TargetBootLibsupc++ asPath if $(asPath) = true { flags += path ; } + if $(TARGET_PACKAGING_ARCH) = arm { + return [ + BuildFeatureAttribute gcc_syslibs_devel + : libsupc++-boot.a : $(flags) + ] ; + } return [ BuildFeatureAttribute gcc_syslibs_devel : libsupc++-kernel.a : $(flags) @@ -215,7 +221,7 @@ rule TargetKernelLibgcc asPath flags += path ; } return [ - BuildFeatureAttribute gcc_syslibs_devel + BuildFeatureAttribute QUALIFIED $(TARGET_KERNEL_ARCH):gcc_syslibs_devel : libgcc-kernel.a : $(flags) ] ; } else { @@ -224,15 +230,15 @@ rule TargetKernelLibgcc asPath } -rule TargetBootLibgcc asPath +rule TargetBootLibgcc architecture : asPath { - # TargetBootLibgcc [ ] + # TargetBootLibgcc [ architecture ] : [ ] # # Returns the static bootloader libgcc for the target. # Invoking with = true will return the full library path. if $(TARGET_PLATFORM) = haiku { - if $(TARGET_PACKAGING_ARCH) = x86_64 { + if $(architecture) = x86_64 { # we need to use the 32-bit libgcc.a built by the cross-compiler return $(TARGET_BOOT_LIBGCC) ; @@ -246,8 +252,14 @@ rule TargetBootLibgcc asPath if $(asPath) = true { flags += path ; } + if $(architecture) = arm { + return [ + BuildFeatureAttribute QUALIFIED $(architecture):gcc_syslibs_devel + : libgcc-boot.a : $(flags) + ] ; + } return [ - BuildFeatureAttribute gcc_syslibs_devel + BuildFeatureAttribute QUALIFIED $(architecture):gcc_syslibs_devel : libgcc-kernel.a : $(flags) ] ; } else { @@ -292,7 +304,7 @@ rule TargetKernelLibgcceh asPath flags += path ; } return [ - BuildFeatureAttribute gcc_syslibs_devel + BuildFeatureAttribute QUALIFIED $(TARGET_KERNEL_ARCH):gcc_syslibs_devel : libgcc_eh-kernel.a : $(flags) ] ; } else { diff --git a/build/jam/images/CDBootImage b/build/jam/images/CDBootImage index 0823bcdfb3..20c004f5dc 100644 --- a/build/jam/images/CDBootImage +++ b/build/jam/images/CDBootImage @@ -13,7 +13,7 @@ NotFile $(HAIKU_CD_BOOT_IMAGE_CONTAINER_NAME) ; # common extra files to put on the boot iso local extras = README.html ; -SEARCH on $(extras) = [ FDirName $(HAIKU_TOP) data boot_cd ] ; +SEARCH on $(extras) = [ FDirName $(HAIKU_TOP) data boot extras ] ; if $(TARGET_ARCH) = ppc { local elfloader = boot_loader_openfirmware ; @@ -25,9 +25,6 @@ if $(TARGET_ARCH) = ppc { # HFS creator and application type mapping for mkisofs local hfsmaps = hfs.map ; - SEARCH on $(chrpscript) $(hfsmaps) $(extras) - = [ FDirName $(HAIKU_TOP) data boot_cd ] ; - BuildCDBootPPCImage $(HAIKU_CD_BOOT_IMAGE) : $(hfsmaps) : $(elfloader) : $(coffloader) : $(chrpscript) : $(extras) ; } else { diff --git a/build/jam/images/HaikuImage b/build/jam/images/HaikuImage index 6e93dc8a8d..46cea5ea4a 100644 --- a/build/jam/images/HaikuImage +++ b/build/jam/images/HaikuImage @@ -17,6 +17,7 @@ include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuPackages ] ; AddPackageFilesToHaikuImage system packages : haiku_loader.hpkg haiku.hpkg + haiku_datatranslators.hpkg haiku_$(TARGET_PACKAGING_ARCHS[2-]).hpkg : nameFromMetaInfo diff --git a/build/jam/images/MMCImage b/build/jam/images/MMCImage index a21888a43d..17f037df14 100644 --- a/build/jam/images/MMCImage +++ b/build/jam/images/MMCImage @@ -22,6 +22,8 @@ rule BuildSDImage image : files if $(TARGET_BOOT_PLATFORM) = efi { switch $(TARGET_ARCH) { + case x86 : + EFINAME on $(image) = "BOOTIA32.EFI" ; case x86_64 : EFINAME on $(image) = "BOOTX64.EFI" ; case arm : diff --git a/build/jam/images/NetBootArchive b/build/jam/images/NetBootArchive index a4852daa0f..9ab8e78e94 100644 --- a/build/jam/images/NetBootArchive +++ b/build/jam/images/NetBootArchive @@ -8,12 +8,12 @@ SYSTEM_NETWORK_PROTOCOLS = ipv4 tcp udp icmp unix ; SYSTEM_ADD_ONS_DRIVERS_NET = [ FFilterByBuildFeatures x86 @{ - 3com atheros813x + 3com atheros813x atheros81xx broadcom440x broadcom570x ipro1000 rtl8139 rtl81xx via_rhine ipro100 nforce marvell_yukon sis900 syskonnect - attansic_l2 ar81xx + attansic_l2 }@ # x86 etherpci pegasus usb_ecm wb840 diff --git a/build/jam/images/definitions/common-tail b/build/jam/images/definitions/common-tail index 490ba6ce3f..c0c484e480 100644 --- a/build/jam/images/definitions/common-tail +++ b/build/jam/images/definitions/common-tail @@ -13,7 +13,9 @@ AddDirectoryToHaikuImage home config var ; AddDirectoryToHaikuImage home config non-packaged bin ; AddDirectoryToHaikuImage home config non-packaged data fonts ; AddDirectoryToHaikuImage home config non-packaged lib ; +AddDirectoryToHaikuImage home config non-packaged add-ons control_look ; AddDirectoryToHaikuImage home config non-packaged add-ons decorators ; +AddDirectoryToHaikuImage home config non-packaged add-ons opengl ; AddDirectoryToHaikuImage home config non-packaged add-ons kernel drivers bin ; AddDirectoryToHaikuImage home config non-packaged add-ons kernel drivers dev ; AddDirectoryToHaikuImage home config non-packaged add-ons input_server devices ; @@ -29,7 +31,9 @@ AddDirectoryToHaikuImage system cache tmp ; AddDirectoryToHaikuImage system non-packaged bin ; AddDirectoryToHaikuImage system non-packaged data fonts ; AddDirectoryToHaikuImage system non-packaged lib ; +AddDirectoryToHaikuImage system non-packaged add-ons control_look ; AddDirectoryToHaikuImage system non-packaged add-ons decorators ; +AddDirectoryToHaikuImage system non-packaged add-ons opengl ; AddDirectoryToHaikuImage system non-packaged add-ons kernel drivers bin ; AddDirectoryToHaikuImage system non-packaged add-ons kernel drivers dev ; AddDirectoryToHaikuImage system non-packaged add-ons input_server devices ; diff --git a/build/jam/images/definitions/minimum b/build/jam/images/definitions/minimum index 2dc87df5ee..48889dfcc4 100644 --- a/build/jam/images/definitions/minimum +++ b/build/jam/images/definitions/minimum @@ -143,9 +143,15 @@ SYSTEM_NETWORK_PROTOCOLS = ; SYSTEM_ADD_ONS_ACCELERANTS = [ FFilterByBuildFeatures - x86,x86_64,riscv64 @{ + framebuffer.accelerant + x86,x86_64 @{ vesa.accelerant - }@ # x86,x86_64,riscv64 + }@ # x86,x86_64 + riscv64 @{ + # ati for qemu, radeon_hd for unmatched + ati.accelerant + radeon_hd.accelerant + }@ # riscv64 ] ; SYSTEM_ADD_ONS_TRANSLATORS = @@ -171,9 +177,15 @@ SYSTEM_ADD_ONS_DRIVERS_AUDIO = ; SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD = ; SYSTEM_ADD_ONS_DRIVERS_GRAPHICS = [ FFilterByBuildFeatures - x86,x86_64,riscv64 @{ + framebuffer + x86,x86_64 @{ vesa - }@ # x86,x86_64,riscv64 + }@ # x86,x86_64 + riscv64 @{ + # ati for qemu, radeon_hd for unmatched + ati + radeon_hd + }@ # riscv64 ] ; SYSTEM_ADD_ONS_DRIVERS_MIDI = ; @@ -181,7 +193,7 @@ SYSTEM_ADD_ONS_DRIVERS_MIDI = ; SYSTEM_ADD_ONS_DRIVERS_NET = [ FFilterByBuildFeatures x86,x86_64 @{ 3com - atheros813x ar81xx attansic_l1 attansic_l2 + atheros813x atheros81xx attansic_l1 attansic_l2 broadcom440x broadcom570x dec21xxx emulex_oce @@ -256,7 +268,6 @@ local etcDir = [ FDirName $(HAIKU_TOP) data etc ] ; local etcFiles = inputrc profile ; etcFiles = $(etcFiles:G=etc) ; SEARCH on $(etcFiles) = $(etcDir) ; -etcFiles += termcap ; AddFilesToHaikuImage system settings etc : $(etcFiles) ; local profileFiles = [ Glob $(etcDir)/profile.d : *.sh ] ; diff --git a/build/jam/packages/Haiku b/build/jam/packages/Haiku index fe8471e0b5..fdc6a61422 100644 --- a/build/jam/packages/Haiku +++ b/build/jam/packages/Haiku @@ -67,7 +67,7 @@ if $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 { # drivers AddNewDriversToPackage : wmi@x86,x86_64 ; -AddNewDriversToPackage disk : nvme_disk@x86,x86_64 ; +AddNewDriversToPackage disk : nvme_disk ; AddNewDriversToPackage disk mmc : mmc_disk ; AddNewDriversToPackage disk scsi : scsi_cd scsi_disk ; AddNewDriversToPackage disk virtual : virtio_block ram_disk ; @@ -202,7 +202,7 @@ AddBootModuleSymlinksToPackage ide_isa@x86 isa@x86,x86_64 intel it8211 legacy_sata locked_pool mmc mmc_disk - nvme_disk@x86,x86_64 + nvme_disk openpic@ppc packagefs pci fdt@riscv64,arm @@ -214,7 +214,6 @@ AddBootModuleSymlinksToPackage # add-ons AddFilesToPackage add-ons accelerants : $(SYSTEM_ADD_ONS_ACCELERANTS) ; -AddFilesToPackage add-ons Translators : $(SYSTEM_ADD_ONS_TRANSLATORS) ; AddFilesToPackage add-ons locale catalogs : $(SYSTEM_ADD_ONS_LOCALE_CATALOGS) ; AddFilesToPackage add-ons mail_daemon inbound_protocols : POP3 @@ -225,7 +224,6 @@ AddFilesToPackage add-ons mail_daemon inbound_filters AddFilesToPackage add-ons mail_daemon outbound_filters : Fortune ; AddFilesToPackage add-ons media : $(SYSTEM_ADD_ONS_MEDIA) ; -AddFilesToPackage add-ons media plugins : $(SYSTEM_ADD_ONS_MEDIA_PLUGINS) ; AddFilesToPackage add-ons Network\ Settings : IPv4Interface IPv6Interface DNSClientService Hostname FTPService SSHService @@ -268,10 +266,6 @@ AddFilesToPackage add-ons disk_systems # Kernel bluetooth stack AddFilesToPackage add-ons kernel bluetooth : $(SYSTEM_BT_STACK) ; -# decorators -AddFilesToPackage add-ons decorators : BeDecorator ; - # MacDecorator WinDecorator - # the MIME DB CopyDirectoryToPackage data : mime_db : : : isTarget ; diff --git a/build/jam/packages/HaikuDataTranslators b/build/jam/packages/HaikuDataTranslators new file mode 100644 index 0000000000..212b733fe4 --- /dev/null +++ b/build/jam/packages/HaikuDataTranslators @@ -0,0 +1,9 @@ +local architecture = $(HAIKU_PACKAGING_ARCHS[1]) ; + +local dataTranslatorsPackage = haiku_datatranslators.hpkg ; +HaikuPackage $(dataTranslatorsPackage) ; + +AddFilesToPackage add-ons Translators : $(SYSTEM_ADD_ONS_TRANSLATORS) ; +AddFilesToPackage add-ons media plugins : $(SYSTEM_ADD_ONS_MEDIA_PLUGINS) ; + +BuildHaikuPackage $(dataTranslatorsPackage) : haiku_datatranslators ; diff --git a/build/jam/packages/HaikuDevel b/build/jam/packages/HaikuDevel index f438f5539d..bc7e69de34 100644 --- a/build/jam/packages/HaikuDevel +++ b/build/jam/packages/HaikuDevel @@ -28,12 +28,12 @@ AddFilesToPackage lib : $(developmentLibs) ; # library symlinks local lib ; for lib in [ HaikuImageGetSystemLibs ] $(developmentLibs) { - AddSymlinkToPackage develop lib : /system/lib $(lib:BS) ; + AddSymlinkToPackage develop lib : ../../lib $(lib:BS) ; local abiVersion = [ on $(lib) return $(HAIKU_LIB_ABI_VERSION) ] ; if $(abiVersion) { local abiVersionedLib = $(lib:BS).$(abiVersion) ; AddSymlinkToPackage develop lib - : /system/lib $(abiVersionedLib) ; + : ../../lib $(abiVersionedLib) ; } } diff --git a/build/jam/packages/HaikuDevelSecondary b/build/jam/packages/HaikuDevelSecondary index 6c1f36b61f..98a57c0040 100644 --- a/build/jam/packages/HaikuDevelSecondary +++ b/build/jam/packages/HaikuDevelSecondary @@ -23,12 +23,12 @@ AddFilesToPackage lib $(architecture) : $(developmentLibs) ; local lib ; for lib in [ HaikuImageGetSystemLibs ] $(developmentLibs) { AddSymlinkToPackage develop lib $(architecture) - : /system/lib/$(architecture) $(lib:BS) ; + : ../../../lib/$(architecture) $(lib:BS) ; local abiVersion = [ on $(lib) return $(HAIKU_LIB_ABI_VERSION) ] ; if $(abiVersion) { local abiVersionedLib = $(lib:BS).$(abiVersion) ; AddSymlinkToPackage develop lib $(architecture) - : /system/lib/$(architecture) $(abiVersionedLib) ; + : ../../../lib/$(architecture) $(abiVersionedLib) ; } } diff --git a/build/jam/packages/HaikuExtras b/build/jam/packages/HaikuExtras index 0d5ccd257d..e5439e185c 100644 --- a/build/jam/packages/HaikuExtras +++ b/build/jam/packages/HaikuExtras @@ -3,11 +3,22 @@ local architecture = $(HAIKU_PACKAGING_ARCHS[1]) ; local extrasPackage = haiku_extras.hpkg ; HaikuPackage $(extrasPackage) ; +## Driver Oddities + # kernel modules AddFilesToPackage add-ons kernel partitioning_systems : amiga_rdb@!m68k apple@!ppc sun@!sparc ; -AddFilesToPackage add-ons control_look : BeControlLook ; + +## Visual Oddities + +# MacDecorator WinDecorator need improved stack and tile support + +# Control Looks +AddFilesToPackage add-ons control_look : BeControlLook FlatControlLook ; + +# Decorators +AddFilesToPackage add-ons decorators : BeDecorator FlatDecorator ; + BuildHaikuPackage $(extrasPackage) : haiku_extras ; - diff --git a/build/jam/repositories/Haiku b/build/jam/repositories/Haiku index 52d6eb47e0..2543fd6a07 100644 --- a/build/jam/repositories/Haiku +++ b/build/jam/repositories/Haiku @@ -10,6 +10,7 @@ SEARCH on $(repoInfo) = $(HAIKU_TOP)/src/data/repository_infos ; local secondaryArchs = $(TARGET_PACKAGING_ARCHS[2-]) ; local packages = [ FFilterByBuildFeatures haiku + haiku_datatranslators haiku_devel haiku_loader diff --git a/build/jam/repositories/HaikuPorts/arm64 b/build/jam/repositories/HaikuPorts/arm64 index 181c6d8c7d..4c0fcfbc56 100644 --- a/build/jam/repositories/HaikuPorts/arm64 +++ b/build/jam/repositories/HaikuPorts/arm64 @@ -4,40 +4,40 @@ RemotePackageRepository HaikuPorts : # architecture "any" packages # be_book-2008_10_26-3 - ca_root_certificates-2020_01_01-1 - haikuporter-1.2.3-2 - noto-20170920-4 + ca_root_certificates-2021_07_05-1 + haikuporter-1.2.5-1 + noto-20200106-1 timgmsoundfont-fixed-5 wqy_microhei-0.2.0~beta-4 : # repository architecture packages # primary architecture (arm64) - bash-5.1-1 - binutils-2.28.1_2017_08_05-1 + bash-4.4.023-1 + binutils-2.36.1_2021_09_21-1 bison-3.0.5-1 coreutils-8.22-1 curl-7.40.0-1 curl_devel-7.40.0-1 - expat-2.1.0-1 - expat_devel-2.1.0-1 + expat-2.4.1-1 + expat_devel-2.4.1-1 findutils-4.6.0-1 flex-2.5.35-1 freetype-2.6.3-1 freetype_devel-2.6.3-1 gawk-3.1.8-2 - gcc-8.3.0_2019_05_24-4 - gcc_syslibs_devel-8.3.0_2019_05_24-4 - gcc_syslibs-8.3.0_2019_05_24-4 - icu-57.2-2 - icu_devel-57.2-2 + gcc-8.3.0_2021_09_21-1 + gcc_syslibs_devel-8.3.0_2021_09_21-1 + gcc_syslibs-8.3.0_2021_09_21-1 + icu-67.1-1 + icu_devel-67.1-1 less-451-1 libsolv-0.3.0_haiku_2014_12_22-1 libsolv_devel-0.3.0_haiku_2014_12_22-1 m4-1.4.16-1 - make-4.1-2 + make-4.3-1 ncurses6-6.0-1 ncurses6_devel-6.0-1 - python-2.7.6-1 + python-3.9.1-1 sed-4.2.1-1 texinfo-4.13a-1 zlib-1.2.11-1 diff --git a/build/jam/repositories/HaikuPorts/riscv64 b/build/jam/repositories/HaikuPorts/riscv64 index cc0d54719b..9f7120f3a2 100644 --- a/build/jam/repositories/HaikuPorts/riscv64 +++ b/build/jam/repositories/HaikuPorts/riscv64 @@ -4,10 +4,10 @@ RemotePackageRepository HaikuPorts : # architecture "any" packages be_book-2008_10_26-3 - ca_root_certificates-2020_01_01-1 + ca_root_certificates-2021_07_05-1 gnu_efi_kernel-3.0.10-1 - haikuporter-1.2.3-2 - noto-20170920-4 + haikuporter-1.2.5-1 + noto-20200106-1 timgmsoundfont-fixed-5 wqy_microhei-0.2.0~beta-4 : @@ -41,6 +41,8 @@ RemotePackageRepository HaikuPorts python-2.7.6-1 sed-4.2.1-1 texinfo-4.13a-1 + zstd-1.5.0-2 + zstd_devel-1.5.0-2 zlib-1.2.11-1 zlib_devel-1.2.11-1 : @@ -121,6 +123,7 @@ RemotePackageRepository HaikuPorts yasm xz_utils zlib + zstd : # debuginfo packages ; diff --git a/build/jam/repositories/HaikuPorts/x86_64 b/build/jam/repositories/HaikuPorts/x86_64 index bd6c81f675..e217218bf0 100644 --- a/build/jam/repositories/HaikuPorts/x86_64 +++ b/build/jam/repositories/HaikuPorts/x86_64 @@ -4,33 +4,35 @@ RemotePackageRepository HaikuPorts : # architecture "any" packages be_book-2008_10_26-3 - ca_root_certificates-2021_01_19-1 - gnu_efi_kernel-3.0.10-1 - haikuporter-1.2.4-1 + ca_root_certificates-2021_07_05-1 + haikuporter-1.2.5-1 noto-20200106-1 noto_sans_cjk_jp-1.004-2 timgmsoundfont-fixed-5 wqy_microhei-0.2.0~beta-4 + intel_wifi_firmwares-2019_11_02-1 + realtek_wifi_firmwares-2019_01_02-1 + ralink_wifi_firmwares-2015_02_11-1 : # repository architecture packages # primary architecture (x86_64) autoconf-2.69-8 - automake-1.16.3-1 - bash-5.1-1 + automake-1.16.5-1 + bash-5.1.008-1 bc-1.07.1-2 - bepdf-2.1.2-1 + bepdf-2.1.4-2 binutils-2.31.1-2 - bison-3.7.6-1 + bison-3.8.2-1 bzip2-1.0.8-1 bzip2_devel-1.0.8-1 - cdrtools-3.02~a09-1 - cdrtools_devel-3.02~a09-1 - coreutils-8.29-2 + cdrtools-3.02~a09-2 + cdrtools_devel-3.02~a09-2 + coreutils-9.0-6 ctags-5.8-5 - curl-7.76.1-1 - curl_devel-7.76.1-1 - dav1d-0.8.2-1 - dav1d_devel-0.8.2-1 + curl-7.79.1-1 + curl_devel-7.79.1-1 + dav1d-0.9.2-1 + dav1d_devel-0.9.2-1 diffutils-3.7-1 enca-1.19-2 enca_devel-1.19-2 @@ -39,36 +41,36 @@ RemotePackageRepository HaikuPorts fdk_aac-2.0.2-1 ffmpeg-4.2.2-9 ffmpeg_devel-4.2.2-9 - file-5.40-1 - file_data-5.40-1 + file-5.41-1 + file_data-5.41-1 findutils-4.8.0-1 flex-2.6.4-2 fluidlite-1.0.0-3 fluidlite_devel-1.0.0-3 fontconfig-2.13.92-1 fontconfig_devel-2.13.92-1 - freetype-2.10.4-3 - freetype_devel-2.10.4-3 - fribidi-1.0.10-1 - fribidi_devel-1.0.10-1 + freetype-2.11.0-2 + freetype_devel-2.11.0-2 + fribidi-1.0.11-1 + fribidi_devel-1.0.11-1 game_music_emu-0.6.3-1 game_music_emu_devel-0.6.3-1 gettext-0.19.8.1-7 gettext_libintl-0.19.8.1-7 - gcc-8.3.0_2019_05_24-10 - gcc_syslibs-8.3.0_2019_05_24-10 - gcc_syslibs_devel-8.3.0_2019_05_24-10 + gcc-11.2.0_2021_07_28-5 + gcc_syslibs-11.2.0_2021_07_28-5 + gcc_syslibs_devel-11.2.0_2021_07_28-5 giflib-5.2.1-1 giflib_devel-5.2.1-1 - git-2.30.2-2 - git_arch-2.30.2-2 - git_cvs-2.30.2-2 - git_daemon-2.30.2-2 - git_email-2.30.2-2 - git_svn-2.30.2-2 + git-2.30.2-3 + git_arch-2.30.2-3 + git_cvs-2.30.2-3 + git_daemon-2.30.2-3 + git_email-2.30.2-3 + git_svn-2.30.2-3 glu-9.0.0-7 glu_devel-9.0.0-7 - gmp-6.2.1-1 + gmp-6.2.1-2 graphite2-1.3.14-1 graphite2_devel-1.3.14-1 grep-3.6-2 @@ -76,8 +78,8 @@ RemotePackageRepository HaikuPorts gutenprint8-5.3.1-2 gutenprint8_devel-5.3.1-2 gzip-1.10-1 - haikuwebkit-1.8.2-2 - haikuwebkit_devel-1.8.2-2 + haikuwebkit-1.8.4-1 + haikuwebkit_devel-1.8.4-1 harfbuzz-2.8.1-1 harfbuzz_devel-2.8.1-1 icu66-66.1-2 @@ -85,7 +87,7 @@ RemotePackageRepository HaikuPorts jam-2.5_2018_11_21-8 jasper-2.0.16-4 jasper_devel-2.0.16-4 - keymapswitcher-1.2.7.15-1 + keymapswitcher-1.2.7.16-1 lame-3.100-3 lame_devel-3.100-3 lcms-2.12-1 @@ -93,6 +95,8 @@ RemotePackageRepository HaikuPorts less-581.2-1 libass-0.15.1-1 libass_devel-0.15.1-1 + libavif-0.8.4-2 + libavif_devel-0.8.4-2 libbluray-1.3.0-1 libbluray_devel-1.3.0-1 libdvdnav-6.1.1-1 @@ -102,32 +106,36 @@ RemotePackageRepository HaikuPorts libedit-20210419_3.1-1 libedit_devel-20210419_3.1-1 libexecinfo-1.1-5 - libffi-3.2.1-6 + libffi-3.4.2-1 libgcrypt-1.8.5-1 - libgpg_error-1.36-1 + libgpg_error-1.36-2 libiconv-1.16-1 libicns-0.8.1-8 libicns_devel-0.8.1-8 libidn2-2.0.5-2 - libjpeg_turbo-2.1.0-1 - libjpeg_turbo_devel-2.1.0-1 + libjpeg_turbo-2.1.1-1 + libjpeg_turbo_devel-2.1.1-1 libmodplug-0.8.9.0-1 libogg-1.3.5-1 libogg_devel-1.3.5-1 - libopenmpt-0.5.9-1 - libopenmpt_devel-0.5.9-1 + libopenmpt-0.5.13-1 + libopenmpt_devel-0.5.13-1 libpcap-1.8.1-4 libpcap_devel-1.8.1-4 libpcre2-10.37-1 - libpcre-8.44-1 - libpcre_devel-8.44-1 + libpcre-8.45-1 + libpcre_devel-8.45-1 libpng16-1.6.37-1 libpng16_devel-1.6.37-1 libpsl-0.21.0-1 libpsl_devel-0.21.0-1 + libraw-0.19.5-3 + libraw_devel-0.19.5-3 libsolv-0.3.0_haiku_2014_12_22-3 libsolv_devel-0.3.0_haiku_2014_12_22-3 - libtasn1-4.16.0-1 + libssh2-1.9.0-2 + libssh2_devel-1.9.0-2 + libtasn1-4.17.0-1 libtheora-1.1.1-7 libtheora_devel-1.1.1-7 libtool-2.4.6-2 @@ -137,27 +145,27 @@ RemotePackageRepository HaikuPorts libvpx-1.10.0-1 libvpx_devel-1.10.0-1 libuuid-1.3.1-4 - libwebp-1.1.0-2 - libwebp_devel-1.1.0-2 + libwebp-1.2.1-1 + libwebp_devel-1.2.1-1 libxml2-2.9.12-1 libxml2_devel-2.9.12-1 libxslt-1.1.34-3 live555-2016.06.22-5 live555_devel-2016.06.22-5 - llvm7-7.0.1-2 - llvm7_libs-7.0.1-2 + llvm9-9.0.1-2 + llvm9_libs-9.0.1-2 m4-1.4.18-3 make-4.1-4 mandoc-1.14.3-2 mawk-1.3.4_20171017-1 - mercurial-4.8.1-2 - mesa-17.1.10-6 - mesa_devel-17.1.10-6 - mesa_swpipe-17.1.10-6 + mercurial-4.9.1-1 + mesa-21.2.3-2 + mesa_devel-21.2.3-2 + mesa_swpipe-21.2.3-2 mkdepend-1.7-5 mpc-1.2.1-1 mpfr-4.1.0-1 - nano-5.7-1 + nano-5.9-1 nasm-2.14.02-2 ncurses6-6.2-1 ncurses6_devel-6.2-1 @@ -169,9 +177,9 @@ RemotePackageRepository HaikuPorts openexr_devel-2.4.1-1 openjpeg-2.4.0-1 openjpeg_devel-2.4.0-1 - openssh-8.6p1-1 - openssl-1.1.1k-1 - openssl_devel-1.1.1k-1 + openssh-8.8p1-1 + openssl-1.1.1l-1 + openssl_devel-1.1.1l-1 opus-1.3.1-1 opus_devel-1.3.1-1 p7zip-17.04-2 @@ -181,7 +189,7 @@ RemotePackageRepository HaikuPorts pe-2.4.5-8 perl-5.32.1-1 pkgconfig-0.29.2-4 - python3-3.7.10-4 + python3-3.7.12-1 qrencode_kdl_devel-3.4.4-2 readline-8.1-1 sed-4.8-1 @@ -192,32 +200,32 @@ RemotePackageRepository HaikuPorts soxr_devel-0.1.3-1 speex-1.2.0-4 speex_devel-1.2.0-4 - sqlite-3.34.1.0-1 + sqlite-3.36.0.0-1 subversion-1.14.1-1 subversion_devel-1.14.1-1 taglib-1.12-1 taglib_devel-1.12-1 tar-1.34-1 - tcpdump-4.9.2-1 - texinfo-6.7-2 + tcpdump-4.99.1-1 + texinfo-6.7-3 tiff4-4.2.0-1 tiff4_devel-4.2.0-1 tnftp-20151004-6 unzip-6.10c23-4 - vision-0.10.6-1 + vision-0.10.6-2 wavpack-5.4.0-1 wavpack_devel-5.4.0-1 wget-1.21.1-1 which-2.21-6 - wpa_supplicant-2.9.haiku.1-2 + wpa_supplicant-2.9.haiku.1-3 xz_utils-5.2.5-1 xz_utils_devel-5.2.5-1 zip-3.0-4 zlib-1.2.11-4 zlib_devel-1.2.11-4 - zstd-1.4.5-1 - zstd_bin-1.4.5-1 - zstd_devel-1.4.5-1 + zstd-1.5.0-2 + zstd_bin-1.5.0-2 + zstd_devel-1.5.0-2 : # source packages autoconf @@ -265,6 +273,7 @@ RemotePackageRepository HaikuPorts lcms less libass + libavif libbluray libdvdnav libdvdread @@ -284,7 +293,9 @@ RemotePackageRepository HaikuPorts libpcre2 libpng16 libpsl + libraw libsolv + libssh2 libtasn1 libtheora libtool @@ -296,7 +307,7 @@ RemotePackageRepository HaikuPorts libxml2 libxslt live555 - llvm7 + llvm9 m4 make mandoc diff --git a/build/jam/repositories/HaikuPorts/x86_gcc2 b/build/jam/repositories/HaikuPorts/x86_gcc2 index 564af0f48c..5ac850b634 100644 --- a/build/jam/repositories/HaikuPorts/x86_gcc2 +++ b/build/jam/repositories/HaikuPorts/x86_gcc2 @@ -4,45 +4,46 @@ RemotePackageRepository HaikuPorts : # architecture "any" packages be_book-2008_10_26-3 - ca_root_certificates-2021_01_19-1 - gnu_efi_kernel-3.0.10-1 - haikuporter-1.2.4-1 + ca_root_certificates-2021_07_05-1 + haikuporter-1.2.5-1 noto-20200106-1 noto_sans_cjk_jp-1.004-2 timgmsoundfont-fixed-5 wqy_microhei-0.2.0~beta-4 + intel_wifi_firmwares-2019_11_02-1 + realtek_wifi_firmwares-2019_01_02-1 + ralink_wifi_firmwares-2015_02_11-1 : # repository architecture packages # primary architecture (x86_gcc2) autoconf-2.69-8 - automake-1.16.3-1 - bash-5.1-1 + automake-1.16.5-1 + bash-5.1.008-1 bc-1.07.1-2 - bepdf-2.1.2-1 + bepdf-2.1.4-2 binutils-2.17_2016_07_24-4 bison-3.0.5-1 bzip2-1.0.8-1 bzip2_devel-1.0.8-1 - cdrtools-3.02~a09-1 - cdrtools_devel-3.02~a09-1 + cdrtools-3.02~a09-2 + cdrtools_devel-3.02~a09-2 ctags-5.8-5 - coreutils-8.24-2 - curl-7.76.1-1 - curl_devel-7.76.1-1 + curl-7.79.1-1 + curl_devel-7.79.1-1 diffutils-3.7-1 expat-2.4.1-1 expat_devel-2.4.1-1 ffmpeg-4.2.2-9 ffmpeg_devel-4.2.2-9 - file-5.40-1 - file_data-5.40-1 + file-5.41-1 + file_data-5.41-1 findutils-4.6.0-1 flex-2.6.4-2 fluidlite_devel-1.0.0-3 fontconfig-2.13.92-1 fontconfig_devel-2.13.92-1 - freetype-2.10.4-3 - freetype_devel-2.10.4-3 + freetype-2.11.0-2 + freetype_devel-2.11.0-2 gettext_libintl-0.19.8.1-7 gcc-2.95.3_2017_07_20-2 gcc_syslibs_devel-2.95.3_2017_07_20-2 @@ -63,7 +64,7 @@ RemotePackageRepository HaikuPorts jam-2.5_2018_11_21-8 jasper-2.0.16-4 jasper_devel-2.0.16-4 - keymapswitcher-1.2.7.15-1 + keymapswitcher-1.2.7.16-1 lame-3.100-3 lame_devel-3.100-3 less-581.2-1 @@ -73,15 +74,15 @@ RemotePackageRepository HaikuPorts libiconv-1.16-1 libicns-0.8.1-8 libicns_devel-0.8.1-8 - libjpeg_turbo-2.1.0-1 - libjpeg_turbo_devel-2.1.0-1 + libjpeg_turbo-2.1.1-1 + libjpeg_turbo_devel-2.1.1-1 liblayout-1.4.1-8 libmodplug-0.8.9.0-1 libogg-1.3.5-1 libogg_devel-1.3.5-1 libpcap-1.8.1-4 libpcap_devel-1.8.1-4 - libpcre-8.44-1 + libpcre-8.45-1 libpcre2-10.37-1 libpng16-1.6.37-1 libpng16_devel-1.6.37-1 @@ -89,6 +90,8 @@ RemotePackageRepository HaikuPorts libpsl_devel-0.21.0-1 libsolv-0.3.0_haiku_2014_12_22-3 libsolv_devel-0.3.0_haiku_2014_12_22-3 + libssh2-1.9.0-2 + libssh2_devel-1.9.0-2 libtheora-1.1.1-7 libtheora_devel-1.1.1-7 libtool-2.4.6-2 @@ -96,8 +99,8 @@ RemotePackageRepository HaikuPorts libvorbis-1.3.7-1 libvorbis_devel-1.3.7-1 libvpx-1.0.0-2 - libwebp-1.1.0-2 - libwebp_devel-1.1.0-2 + libwebp-1.2.1-1 + libwebp_devel-1.2.1-1 libxml2-2.9.12-1 libxml2_devel-2.9.12-1 live555-2016.06.22-5 @@ -117,9 +120,9 @@ RemotePackageRepository HaikuPorts openexr_devel-2.2.1-3 openjpeg-2.1.2-3 openjpeg_devel-2.1.2-3 - openssh-8.6p1-1 - openssl-1.1.1k-1 - openssl_devel-1.1.1k-1 + openssh-8.8p1-1 + openssl-1.1.1l-1 + openssl_devel-1.1.1l-1 opus-1.3.1-1 opus_devel-1.3.1-1 patch-2.7.5-3 @@ -134,34 +137,37 @@ RemotePackageRepository HaikuPorts sharutils-4.15.2-3 speex-1.2.0-4 speex_devel-1.2.0-4 - sqlite-3.34.1.0-1 + sqlite-3.36.0.0-1 taglib-1.7.2-3 taglib_devel-1.7.2-3 - tcpdump-4.9.2-1 - texinfo-6.1-6 + tcpdump-4.99.1-1 + texinfo-6.1-7 tiff4-4.2.0-1 tiff4_devel-4.2.0-1 tnftp-20151004-6 unzip-6.10c23-4 - vision-0.10.6-1 + vision-0.10.6-2 wget-1.21.1-1 which-2.21-6 wonderbrush-2.1.2-11 - wpa_supplicant-2.9.haiku.1-2 + wpa_supplicant-2.9.haiku.1-3 zip-3.0-4 zlib-1.2.11-4 zlib_devel-1.2.11-4 + zstd-1.5.0-2 + zstd_devel-1.5.0-2 # secondary architecture (x86) binutils_x86-2.26.1_2016_07_22-6 - bison_x86-3.7.6-1 + bison_x86-3.8.2-1 bzip2_x86-1.0.8-1 bzip2_x86_devel-1.0.8-1 - cdrtools_x86-3.02~a09-1 - cdrtools_x86_devel-3.02~a09-1 - curl_x86-7.76.1-1 - curl_x86_devel-7.76.1-1 - dav1d_x86-0.8.2-1 - dav1d_x86_devel-0.8.2-1 + cdrtools_x86-3.02~a09-2 + cdrtools_x86_devel-3.02~a09-2 + coreutils_x86-9.0-6 + curl_x86-7.79.1-1 + curl_x86_devel-7.79.1-1 + dav1d_x86-0.9.2-1 + dav1d_x86_devel-0.9.2-1 enca_x86-1.19-2 enca_x86_devel-1.19-2 expat_x86-2.4.1-1 @@ -172,27 +178,27 @@ RemotePackageRepository HaikuPorts fluidlite_x86_devel-1.0.0-3 fontconfig_x86-2.13.92-1 fontconfig_x86_devel-2.13.92-1 - freetype_x86-2.10.4-3 - freetype_x86_devel-2.10.4-3 - fribidi_x86-1.0.10-1 - fribidi_x86_devel-1.0.10-1 + freetype_x86-2.11.0-2 + freetype_x86_devel-2.11.0-2 + fribidi_x86-1.0.11-1 + fribidi_x86_devel-1.0.11-1 game_music_emu_x86-0.6.3-1 game_music_emu_x86_devel-0.6.3-1 - gcc_x86-8.3.0_2019_05_24-10 - gcc_x86_syslibs-8.3.0_2019_05_24-10 - gcc_x86_syslibs_devel-8.3.0_2019_05_24-10 + gcc_x86-11.2.0_2021_07_28-5 + gcc_x86_syslibs-11.2.0_2021_07_28-5 + gcc_x86_syslibs_devel-11.2.0_2021_07_28-5 gettext_x86-0.19.8.1-7 gettext_x86_libintl-0.19.8.1-7 giflib_x86-5.2.1-1 giflib_x86_devel-5.2.1-1 glu_x86-9.0.0-7 glu_x86_devel-9.0.0-7 - gmp_x86-6.2.1-1 + gmp_x86-6.2.1-2 graphite2_x86-1.3.14-1 graphite2_x86_devel-1.3.14-1 grep_x86-3.6-2 - haikuwebkit_x86-1.8.2-2 - haikuwebkit_x86_devel-1.8.2-2 + haikuwebkit_x86-1.8.4-1 + haikuwebkit_x86_devel-1.8.4-1 harfbuzz_x86-2.8.1-1 harfbuzz_x86_devel-2.8.1-1 icu66_x86-66.1-2 @@ -205,32 +211,36 @@ RemotePackageRepository HaikuPorts lcms_x86_devel-2.12-1 libass_x86-0.15.1-1 libass_x86_devel-0.15.1-1 + libavif_x86-0.8.4-2 + libavif_x86_devel-0.8.4-2 libedit_x86-20210419_3.1-1 libedit_x86_devel-20210419_3.1-1 libexecinfo_x86-1.1-5 - libffi_x86-3.2.1-6 - libffi_x86_devel-3.2.1-6 + libffi_x86-3.4.2-1 + libffi_x86_devel-3.4.2-1 libgcrypt_x86-1.8.5-1 - libgpg_error_x86-1.36-1 + libgpg_error_x86-1.36-2 libiconv_x86-1.16-1 libiconv_x86_devel-1.16-1 libicns_x86-0.8.1-8 libicns_x86_devel-0.8.1-8 libidn2_x86-2.0.5-2 - libjpeg_turbo_x86-2.1.0-1 - libjpeg_turbo_x86_devel-2.1.0-1 + libjpeg_turbo_x86-2.1.1-1 + libjpeg_turbo_x86_devel-2.1.1-1 libmodplug_x86-0.8.9.0-1 libogg_x86-1.3.5-1 libogg_x86_devel-1.3.5-1 - libopenmpt_x86-0.5.9-1 - libopenmpt_x86_devel-0.5.9-1 - libpcre_x86-8.44-1 - libpcre_x86_devel-8.44-1 + libopenmpt_x86-0.5.13-1 + libopenmpt_x86_devel-0.5.13-1 + libpcre_x86-8.45-1 + libpcre_x86_devel-8.45-1 libpng16_x86-1.6.37-1 libpng16_x86_devel-1.6.37-1 libsolv_x86-0.3.0_haiku_2014_12_22-3 libsolv_x86_devel-0.3.0_haiku_2014_12_22-3 - libtasn1_x86-4.16.0-1 + libssh2_x86-1.9.0-2 + libssh2_x86_devel-1.9.0-2 + libtasn1_x86-4.17.0-1 libtheora_x86-1.1.1-7 libtheora_x86_devel-1.1.1-7 libtool_x86-2.4.6-2 @@ -240,18 +250,18 @@ RemotePackageRepository HaikuPorts libvorbis_x86_devel-1.3.7-1 libvpx_x86-1.10.0-1 libvpx_x86_devel-1.10.0-1 - libwebp_x86-1.1.0-2 - libwebp_x86_devel-1.1.0-2 + libwebp_x86-1.2.1-1 + libwebp_x86_devel-1.2.1-1 libxml2_x86-2.9.12-1 libxml2_x86_devel-2.9.12-1 libxslt_x86-1.1.34-3 live555_x86-2016.06.22-5 live555_x86_devel-2016.06.22-5 - llvm7_x86_libs-7.0.1-2 - mesa_x86-17.1.10-6 - mesa_x86_devel-17.1.10-6 - mesa_x86_swpipe-17.1.10-6 - nano_x86-5.7-1 + llvm9_x86_libs-9.0.1-2 + mesa_x86-21.2.3-2 + mesa_x86_devel-21.2.3-2 + mesa_x86_swpipe-21.2.3-2 + nano_x86-5.9-1 nasm_x86-2.14.02-2 ncurses6_x86-6.2-1 ncurses6_x86_devel-6.2-1 @@ -263,13 +273,13 @@ RemotePackageRepository HaikuPorts openexr_x86_devel-2.4.1-1 openjpeg_x86-2.4.0-1 openjpeg_x86_devel-2.4.0-1 - openssl_x86-1.1.1k-1 - openssl_x86_devel-1.1.1k-1 + openssl_x86-1.1.1l-1 + openssl_x86_devel-1.1.1l-1 opus_x86-1.3.1-1 opus_x86_devel-1.3.1-1 p7zip_x86-17.04-2 pkgconfig_x86-0.29.2-4 - python3_x86-3.7.10-4 + python3_x86-3.7.12-1 readline_x86-8.1-1 sharutils_x86-4.15.2-3 snappy_x86-1.1.8-1 @@ -278,7 +288,7 @@ RemotePackageRepository HaikuPorts soxr_x86_devel-0.1.3-1 speex_x86-1.2.0-4 speex_x86_devel-1.2.0-4 - sqlite_x86-3.34.1.0-1 + sqlite_x86-3.36.0.0-1 taglib_x86-1.12-1 taglib_x86_devel-1.12-1 tar_x86-1.34-1 @@ -290,6 +300,8 @@ RemotePackageRepository HaikuPorts xz_utils_x86_devel-5.2.5-1 zlib_x86-1.2.11-4 zlib_x86_devel-1.2.11-4 + zstd_x86-1.5.0-2 + zstd_x86_devel-1.5.0-2 : # source packages autoconf @@ -304,7 +316,7 @@ RemotePackageRepository HaikuPorts bzip2 cdrtools cdrtools_x86 - coreutils + coreutils_x86 ctags curl dav1d_x86 @@ -343,6 +355,7 @@ RemotePackageRepository HaikuPorts lcms_x86 less libass_x86 + libavif_x86 libedit libedit_x86 libexecinfo @@ -364,6 +377,7 @@ RemotePackageRepository HaikuPorts libpng16 libpsl libsolv + libssh2 libtasn1 libtheora libtool @@ -376,7 +390,7 @@ RemotePackageRepository HaikuPorts libxml2 libxslt live555 - llvm7_x86 + llvm9_x86 m4 make mandoc @@ -427,6 +441,7 @@ RemotePackageRepository HaikuPorts xz_utils_x86 zip zlib + zstd : # debuginfo packages bison diff --git a/build/jam/repositories/HaikuPortsCross/arm b/build/jam/repositories/HaikuPortsCross/arm index 1cb76bb458..698e450a83 100644 --- a/build/jam/repositories/HaikuPortsCross/arm +++ b/build/jam/repositories/HaikuPortsCross/arm @@ -6,38 +6,40 @@ BootstrapPackageRepository HaikuPortsCross noto-20170202-7 : # repository architecture packages (stage 0) - gcc_bootstrap-8.3.0_2019_05_24-1 - gcc_bootstrap_syslibs-8.3.0_2019_05_24-1 - gcc_bootstrap_syslibs_devel-8.3.0_2019_05_24-1 + gcc_bootstrap-8.3.0_2019_05_24-6 + gcc_bootstrap_syslibs-8.3.0_2019_05_24-6 + gcc_bootstrap_syslibs_devel-8.3.0_2019_05_24-6 : # repository architecture packages (stage 1) bash_bootstrap-4.4.023-1 - binutils_bootstrap-2.28.1_2017_08_05-1 + binutils_bootstrap-2.36.1_2021_09_21-1 bison_bootstrap-3.0.5-1 coreutils_bootstrap-8.22-1 curl_bootstrap-7.40.0-1 curl_bootstrap_devel-7.40.0-1 - expat_bootstrap-2.1.0-1 - expat_bootstrap_devel-2.1.0-1 + expat_bootstrap-2.4.1-1 + expat_bootstrap_devel-2.4.1-1 findutils_bootstrap-4.6.0-1 flex_bootstrap-2.5.35-1 freetype_bootstrap-2.6.3-1 freetype_bootstrap_devel-2.6.3-1 gawk_bootstrap-3.1.8-2 grep_bootstrap-2.14-1 - icu_bootstrap-57.1-2 - icu_bootstrap_devel-57.1-2 + icu_bootstrap-67.1-2 + icu_bootstrap_devel-67.1-2 less_bootstrap-451-1 m4_bootstrap-1.4.16-1 - make_bootstrap-4.1-2 - mawk_bootstrap-1.3.4-1 + make_bootstrap-4.3-1 ncurses6_bootstrap-6.0-1 ncurses6_bootstrap_devel-6.0-1 - python_bootstrap-2.7.6-1 + libffi_bootstrap-3.3-1 + python_bootstrap-3.9.1-1 sed_bootstrap-4.2.1-1 texinfo_bootstrap-4.13a-1 zlib_bootstrap-1.2.11-1 zlib_bootstrap_devel-1.2.11-1 + zstd_bootstrap-1.5.0-2 + zstd_bootstrap_devel-1.5.0-2 : # repository architecture packages (stage 2) libsolv_bootstrap-0.3.0_haiku_2014_12_22-1 @@ -53,7 +55,6 @@ BootstrapPackageRepository HaikuPortsCross findutils_bootstrap flex_bootstrap freetype_bootstrap - mawk_bootstrap gawk_bootstrap gcc_bootstrap grep_bootstrap @@ -66,6 +67,7 @@ BootstrapPackageRepository HaikuPortsCross sed_bootstrap texinfo_bootstrap zlib_bootstrap + zstd_bootstrap : # debuginfo packages ; diff --git a/build/jam/repositories/HaikuPortsCross/arm64 b/build/jam/repositories/HaikuPortsCross/arm64 index 1971cce655..92568f1397 100644 --- a/build/jam/repositories/HaikuPortsCross/arm64 +++ b/build/jam/repositories/HaikuPortsCross/arm64 @@ -6,19 +6,19 @@ BootstrapPackageRepository HaikuPortsCross noto-20170202-7 : # repository architecture packages (stage 0) - gcc_bootstrap-8.3.0_2021_02_27-1 - gcc_bootstrap_syslibs-8.3.0_2021_02_27-1 - gcc_bootstrap_syslibs_devel-8.3.0_2021_02_27-1 + gcc_bootstrap-8.3.0_2021_09_21-1 + gcc_bootstrap_syslibs-8.3.0_2021_09_21-1 + gcc_bootstrap_syslibs_devel-8.3.0_2021_09_21-1 : # repository architecture packages (stage 1) bash_bootstrap-4.4.023-1 - binutils_bootstrap-2.28.1_2017_08_05-1 + binutils_bootstrap-2.36.1_2021_09_21-1 bison_bootstrap-3.0.5-1 coreutils_bootstrap-8.22-1 curl_bootstrap-7.40.0-1 curl_bootstrap_devel-7.40.0-1 - expat_bootstrap-2.1.0-1 - expat_bootstrap_devel-2.1.0-1 + expat_bootstrap-2.4.1-1 + expat_bootstrap_devel-2.4.1-1 findutils_bootstrap-4.6.0-1 flex_bootstrap-2.5.35-1 freetype_bootstrap-2.6.3-1 @@ -29,7 +29,7 @@ BootstrapPackageRepository HaikuPortsCross icu_bootstrap_devel-67.1-1 less_bootstrap-451-1 m4_bootstrap-1.4.16-1 - make_bootstrap-4.1-2 + make_bootstrap-4.3-1 ncurses6_bootstrap-6.0-1 ncurses6_bootstrap_devel-6.0-1 libffi_bootstrap-3.3-1 @@ -38,6 +38,8 @@ BootstrapPackageRepository HaikuPortsCross texinfo_bootstrap-4.13a-1 zlib_bootstrap-1.2.11-1 zlib_bootstrap_devel-1.2.11-1 + zstd_bootstrap-1.5.0-2 + zstd_bootstrap_devel-1.5.0-2 : # repository architecture packages (stage 2) libsolv_bootstrap-0.3.0_haiku_2014_12_22-1 @@ -65,6 +67,7 @@ BootstrapPackageRepository HaikuPortsCross sed_bootstrap texinfo_bootstrap zlib_bootstrap + zstd_bootstrap : # debuginfo packages ; diff --git a/build/jam/repositories/HaikuPortsCross/sparc b/build/jam/repositories/HaikuPortsCross/sparc index 42899b9123..76aab434d7 100644 --- a/build/jam/repositories/HaikuPortsCross/sparc +++ b/build/jam/repositories/HaikuPortsCross/sparc @@ -6,31 +6,31 @@ BootstrapPackageRepository HaikuPortsCross noto-20170202-7 : # repository architecture packages (stage 0) - gcc_bootstrap-8.3.0_2019_05_24-1 - gcc_bootstrap_syslibs-8.3.0_2019_05_24-1 - gcc_bootstrap_syslibs_devel-8.3.0_2019_05_24-1 + gcc_bootstrap-8.3.0_2021_09_21-1 + gcc_bootstrap_syslibs-8.3.0_2021_09_21-1 + gcc_bootstrap_syslibs_devel-8.3.0_2021_09_21-1 : # repository architecture packages (stage 1) bash_bootstrap-4.4.023-1 - binutils_bootstrap-2.28.1_2017_08_05-1 + binutils_bootstrap-2.36.1_2021_09_21-1 bison_bootstrap-3.0.5-1 coreutils_bootstrap-8.22-1 curl_bootstrap-7.40.0-1 curl_bootstrap_devel-7.40.0-1 - expat_bootstrap-2.1.0-1 - expat_bootstrap_devel-2.1.0-1 + expat_bootstrap-2.4.1-1 + expat_bootstrap_devel-2.4.1-1 findutils_bootstrap-4.6.0-1 flex_bootstrap-2.5.35-1 freetype_bootstrap-2.6.3-1 freetype_bootstrap_devel-2.6.3-1 gawk_bootstrap-3.1.8-2 grep_bootstrap-2.14-1 - icu_bootstrap-57.1-2 - icu_bootstrap_devel-57.1-2 + icu_bootstrap-67.1-1 + icu_bootstrap_devel-67.1-1 less_bootstrap-451-1 m4_bootstrap-1.4.16-1 - make_bootstrap-4.1-2 + make_bootstrap-4.3-1 ncurses6_bootstrap-6.0-1 ncurses6_bootstrap_devel-6.0-1 python_bootstrap-2.7.6-1 @@ -38,6 +38,8 @@ BootstrapPackageRepository HaikuPortsCross texinfo_bootstrap-4.13a-1 zlib_bootstrap-1.2.11-1 zlib_bootstrap_devel-1.2.11-1 + zstd_bootstrap-1.5.0-2 + zstd_bootstrap_devel-1.5.0-2 : # repository architecture packages (stage 2) @@ -67,6 +69,7 @@ BootstrapPackageRepository HaikuPortsCross sed_bootstrap texinfo_bootstrap zlib_bootstrap + zstd_bootstrap : # debuginfo packages ; diff --git a/configure b/configure index a0f9de83d6..c72fad1154 100755 --- a/configure +++ b/configure @@ -450,7 +450,7 @@ check_native_xattrs() xattr_set="setextattr"; xattr_set_args="user \$NAME \"\$VALUE\"" xattr_get="getextattr"; xattr_get_args="user \$NAME" ;; - linux|msys) + linux) xattr_set="setfattr"; xattr_set_args="-n user.\$NAME -v \"\$VALUE\"" xattr_get="getfattr"; xattr_get_args="-n user.\$NAME" ;; @@ -601,7 +601,6 @@ case "${platform}" in Haiku) HOST_PLATFORM=haiku_host ;; Linux) HOST_PLATFORM=linux ;; OpenBSD) HOST_PLATFORM=openbsd ;; - MSYS*) HOST_PLATFORM=msys ;; *) echo Unsupported platform: ${platform} exit 1 ;; esac @@ -1040,12 +1039,9 @@ else get_build_tool_path ELFEDIT_$targetArch elfedit elif [ -n "$crossToolsPrefix" ]; then get_build_tool_path LD_$targetArch ${crossToolsPrefix}ld - case `get_variable HAIKU_GCC_RAW_VERSION_$targetArch` in - 4.*|5.*|6.*|7.*|8.*) - get_build_tool_path ELFEDIT_$targetArch \ - ${crossToolsPrefix}elfedit - ;; - esac + if [ `get_variable HAIKU_CC_IS_LEGACY_GCC_$targetArch` -eq 0 ]; then + get_build_tool_path ELFEDIT_$targetArch ${crossToolsPrefix}elfedit + fi fi if [ -n "$crossToolsPrefix" ]; then get_build_tool_path AR_$targetArch ${crossToolsPrefix}ar diff --git a/data/boot_cd/README.html b/data/boot/extras/README.html similarity index 100% rename from data/boot_cd/README.html rename to data/boot/extras/README.html diff --git a/data/boot_cd/hfs.map b/data/boot/openfirmware/hfs.map similarity index 100% rename from data/boot_cd/hfs.map rename to data/boot/openfirmware/hfs.map diff --git a/data/boot_cd/ofboot.chrp b/data/boot/openfirmware/ofboot.chrp similarity index 97% rename from data/boot_cd/ofboot.chrp rename to data/boot/openfirmware/ofboot.chrp index 4e5890a99a..c5c1cdaf33 100644 --- a/data/boot_cd/ofboot.chrp +++ b/data/boot/openfirmware/ofboot.chrp @@ -6,6 +6,18 @@ MacRISC MacRISC3 MacRISC4 Haiku for PowerPC +" screen" output +load-base release-load-area +" /cpus/@0" find-package if + " 64-bit" rot get-package-property 0= if + 2drop + ." Booting Haiku for PowerPC (64-bit)..." + " boot cd:,\\haikuloader.elf" eval + else + ." Booting Haiku for PowerPC (32-bit)..." + " boot cd:,\\haikuloader.elf" eval + then +then boot cd:,\\haikuloader.elf diff --git a/data/catalogs/add-ons/disk_systems/fat/id.catkeys b/data/catalogs/add-ons/disk_systems/fat/id.catkeys index 5f023cf6bd..035e2325ab 100644 --- a/data/catalogs/add-ons/disk_systems/fat/id.catkeys +++ b/data/catalogs/add-ons/disk_systems/fat/id.catkeys @@ -1,4 +1,4 @@ 1 indonesian x-vnd.Haiku-FATAddOn 2766737426 -Auto (default) FAT_Initialize_Parameter Auto (bawaan standar) +Auto (default) FAT_Initialize_Parameter Otomatis (baku) FAT bits: FAT_Initialize_Parameter Bit FAT: Name: FAT_Initialize_Parameter Nama: diff --git a/data/catalogs/add-ons/input_server/devices/keyboard/cs.catkeys b/data/catalogs/add-ons/input_server/devices/keyboard/cs.catkeys index 48de2fbaec..ad3f8f64aa 100644 --- a/data/catalogs/add-ons/input_server/devices/keyboard/cs.catkeys +++ b/data/catalogs/add-ons/input_server/devices/keyboard/cs.catkeys @@ -1,7 +1,7 @@ 1 czech x-vnd.Haiku-KeyboardInputServerDevice 131044710 If the application will not quit you may have to kill it. Team monitor Pokud se aplikace neukončí, možná ji budete muset zabít. Quit application Team monitor Ukončit aplikaci -Open Terminal Team monitor Otevřít okno Terminálu +Open Terminal Team monitor Otevřít okno terminálu {0, plural,one{Hold CONTROL+ALT+DELETE for # second to reboot.}other{Hold CONTROL+ALT+DELETE for # seconds to reboot.}} Team monitor {0, plural,one{Pro restart podržte klávesy CONTROL+ALT+DELETE po dobu # sekundy.}other{Pro restart podržte klávesy CONTROL+ALT+DELETE po dobu # sekund.}} Restart the desktop Team monitor Restartovat plochu Force reboot Team monitor Vynutit restart diff --git a/data/catalogs/add-ons/input_server/devices/keyboard/el.catkeys b/data/catalogs/add-ons/input_server/devices/keyboard/el.catkeys index 1aeed36b3b..ce363632e0 100644 --- a/data/catalogs/add-ons/input_server/devices/keyboard/el.catkeys +++ b/data/catalogs/add-ons/input_server/devices/keyboard/el.catkeys @@ -1,7 +1,8 @@ -1 greek, modern (1453-) x-vnd.Haiku-KeyboardInputServerDevice 1085266673 +1 greek, modern (1453-) x-vnd.Haiku-KeyboardInputServerDevice 131044710 If the application will not quit you may have to kill it. Team monitor Αν η εφαρμογή δεν κλείσει, θα πρέπει ενδεχομένως να την τερματίσετε εξαναγκαστικά. Quit application Team monitor Κλείσιμο εφαρμογής Open Terminal Team monitor Άνοιγμα Τερματικού +{0, plural,one{Hold CONTROL+ALT+DELETE for # second to reboot.}other{Hold CONTROL+ALT+DELETE for # seconds to reboot.}} Team monitor {0, plural,one{Πατήστε CONTROL+ALT+DELETE για # δευτερόλεπτο για επανεκκίνηση.}other{Πατήστε CONTROL+ALT+DELETE για # δευτερόλεπτα για επανεκκίνηση.}} Restart the desktop Team monitor Επαννεκίνηση Force reboot Team monitor Εξαναγκαστική επανεκκίνηση Team monitor Team monitor Οθόνη ομάδας diff --git a/data/catalogs/add-ons/input_server/devices/keyboard/id.catkeys b/data/catalogs/add-ons/input_server/devices/keyboard/id.catkeys index 0497999b7b..325b1de117 100644 --- a/data/catalogs/add-ons/input_server/devices/keyboard/id.catkeys +++ b/data/catalogs/add-ons/input_server/devices/keyboard/id.catkeys @@ -1,9 +1,11 @@ -1 indonesian x-vnd.Haiku-KeyboardInputServerDevice 2228550365 +1 indonesian x-vnd.Haiku-KeyboardInputServerDevice 131044710 If the application will not quit you may have to kill it. Team monitor Jika aplikasi tidak mau keluar anda mungkin harus mematikannya. -Quit application Team monitor Keluar dari aplikasi -Restart the desktop Team monitor Start ulang desktop +Quit application Team monitor Keluar aplikasi +Open Terminal Team monitor Buka Terminal +{0, plural,one{Hold CONTROL+ALT+DELETE for # second to reboot.}other{Hold CONTROL+ALT+DELETE for # seconds to reboot.}} Team monitor {0, plural,one{Tahan CONTROL+ALT+DELETE selama # detik untuk mulai ulang.}other{Tahan CONTROL+ALT+DELETE selama # detik untuk mulai ulang.}} +Restart the desktop Team monitor Mulai ulang desktop Force reboot Team monitor Paksa restart -Team monitor Team monitor Monitor tim +Team monitor Team monitor Pemantau tim Kill application Team monitor Matikan aplikasi Cancel Team monitor Batal (This team is a system component) Team monitor (Tim ini adalah komponen sistem) diff --git a/data/catalogs/add-ons/mail_daemon/inbound_filters/match_header/id.catkeys b/data/catalogs/add-ons/mail_daemon/inbound_filters/match_header/id.catkeys index 3ba9cec365..163b6a0400 100644 --- a/data/catalogs/add-ons/mail_daemon/inbound_filters/match_header/id.catkeys +++ b/data/catalogs/add-ons/mail_daemon/inbound_filters/match_header/id.catkeys @@ -2,13 +2,13 @@ Delete message ConfigView Hapus pesan Match \"%attribute\" against \"%regex\" RuleFilter Cocokkan \"%attribute\" terhadap \"%regex\" Match header RuleFilter Cocokan tajuk -Set flags to ConfigView Setel bendera ke +Set flags to ConfigView Atur bendera ke Header field (e.g. Subject, From, …) ConfigView Bidang tajuk (misal. Subyek, Dari, …) ConfigView Wildcard value like \"*spam*\".\nPrefix with \"REGEX:\" in order to use regular expressions. ConfigView Nilai wildcard seperti \"*spam*\".\nDiawali dengan \"REGEX:\" untuk menggunakan expresi-ekspresi reguler. Then ConfigView Kemudian If ConfigView Jika -Set as read ConfigView Setel telah dibaca +Set as read ConfigView Atur sebagai dibaca Reply with ConfigView Balas dengan ConfigView Move to ConfigView Pindahkan ke diff --git a/data/catalogs/add-ons/mail_daemon/inbound_protocols/imap/pt_BR.catkeys b/data/catalogs/add-ons/mail_daemon/inbound_protocols/imap/pt_BR.catkeys index 7a51ed3cfa..ada557960c 100644 --- a/data/catalogs/add-ons/mail_daemon/inbound_protocols/imap/pt_BR.catkeys +++ b/data/catalogs/add-ons/mail_daemon/inbound_protocols/imap/pt_BR.catkeys @@ -10,6 +10,6 @@ Fetching IMAP folders, please be patient… IMAPFolderConfig A obter pastas IMA Configure IMAP Folders imap_config Configurar Pastas IMAP SSL imap_config SSL Apply IMAPFolderConfig Aplicar -status IMAPFolderConfig status +status IMAPFolderConfig estado IMAP Folders IMAPFolderConfig Pastas IMAP Destination: imap_config Destino: diff --git a/data/catalogs/add-ons/screen_savers/ifs/id.catkeys b/data/catalogs/add-ons/screen_savers/ifs/id.catkeys index 10739b87b2..3efda4e375 100644 --- a/data/catalogs/add-ons/screen_savers/ifs/id.catkeys +++ b/data/catalogs/add-ons/screen_savers/ifs/id.catkeys @@ -1,5 +1,5 @@ 1 indonesian x-vnd.Haiku-IFSScreensaver 2018309174 %screenSaverName%\n\n© 1997 Massimino Pascal\n\nxscreensaver port by Stephan Aßmus\n Screensaver IFS %screenSaverName%\n\n© 1997 Massimino Pascal\n\nport xscreensaver oleh Stephan Aßmus\n Morphing speed: Screensaver IFS Kecepatan perubahan: -Render dots additive Screensaver IFS Buat tambahan titik +Render dots additive Screensaver IFS Buat tambahan titik Iterated Function System Screensaver IFS Sistem Fungsi Berulang diff --git a/data/catalogs/add-ons/screen_savers/nebula/be.catkeys b/data/catalogs/add-ons/screen_savers/nebula/be.catkeys index 2750ef1642..be42af60a8 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/be.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/be.catkeys @@ -1,5 +1,5 @@ 1 belarusian x-vnd.Haiku-NebulaScreensaver 2460229525 +yellow Nebula Screen Saver жоўты © 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. green Nebula Screen Saver зялёны -yellow Nebula Screen Saver жоўты cyan Nebula Screen Saver блакітны diff --git a/data/catalogs/add-ons/screen_savers/nebula/ca.catkeys b/data/catalogs/add-ons/screen_savers/nebula/ca.catkeys index 199b1eacb8..f96beec3cc 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/ca.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/ca.catkeys @@ -1,20 +1,22 @@ -1 catalan; valencian x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004, Axel Dörfler. -Enable motion blur Nebula Screen Saver Habilita l'arrossegament de la imatge -fullscreen, no borders Nebula Screen Saver pantalla completa, sense vores -green Nebula Screen Saver verd -yellow Nebula Screen Saver groc -cyan Nebula Screen Saver cian -Maximum Frames Per Second Nebula Screen Saver Màxim de fotogrames per segon -Speed Nebula Screen Saver Velocitat -Nebula Nebula Screen Saver Nebulosa -orange (original) Nebula Screen Saver taronja (original) +1 catalan; valencian x-vnd.Haiku-NebulaScreensaver 2177689501 +cold Nebula Screen Saver fred Internal width: Nebula Screen Saver Amplada interna: +16:9, wide-screen Nebula Screen Saver 16:9, pantalla ampla +Maximum Frames Per Second Nebula Screen Saver Màxim de fotogrames per segon +Format: Nebula Screen Saver Format: +yellow Nebula Screen Saver groc +screen resolution Nebula Screen Saver resolució de la pantalla 2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascop +Color: Nebula Screen Saver Color: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004, Axel Dörfler. +green Nebula Screen Saver verd +Enable motion blur Nebula Screen Saver Habilita l'arrossegament de la imatge +only a slit Nebula Screen Saver només una escletxa +fullscreen, no borders Nebula Screen Saver pantalla completa, sense vores +orange (original) Nebula Screen Saver taronja (original) +cyan Nebula Screen Saver cian +Speed Nebula Screen Saver Velocitat +%d pixels Nebula Screen Saver %d píxels +Nebula Nebula Screen Saver Nebulosa red Nebula Screen Saver vermell grey Nebula Screen Saver gris -cold Nebula Screen Saver fred -Format: Nebula Screen Saver Format: -only a slit Nebula Screen Saver només una escletxa -Color: Nebula Screen Saver Color: -16:9, wide-screen Nebula Screen Saver 16:9, pantalla ampla diff --git a/data/catalogs/add-ons/screen_savers/nebula/cs.catkeys b/data/catalogs/add-ons/screen_savers/nebula/cs.catkeys index e8ff84508c..765500038e 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/cs.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/cs.catkeys @@ -1,20 +1,22 @@ -1 czech x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Zapnout rozostření pohybem -fullscreen, no borders Nebula Screen Saver celoobrazovkový režim bez okrajů -green Nebula Screen Saver zelená -yellow Nebula Screen Saver žlutá -cyan Nebula Screen Saver azurová -Maximum Frames Per Second Nebula Screen Saver Max. snímků za sekundu -Speed Nebula Screen Saver Rychlost -Nebula Nebula Screen Saver Mlhovina -orange (original) Nebula Screen Saver oranžová (výchozí) +1 czech x-vnd.Haiku-NebulaScreensaver 2177689501 +cold Nebula Screen Saver studená Internal width: Nebula Screen Saver Vnitřní šířka: +16:9, wide-screen Nebula Screen Saver 16:9, širokoúhlá +Maximum Frames Per Second Nebula Screen Saver Max. snímků za sekundu +Format: Nebula Screen Saver Formát: +yellow Nebula Screen Saver žlutá +screen resolution Nebula Screen Saver rozlišení obrazovky 2:3.5, cinemascope Nebula Screen Saver 2:3.5, širočina +Color: Nebula Screen Saver Barva: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver zelená +Enable motion blur Nebula Screen Saver Zapnout rozostření pohybem +only a slit Nebula Screen Saver pouze štěrbina +fullscreen, no borders Nebula Screen Saver celoobrazovkový režim bez okrajů +orange (original) Nebula Screen Saver oranžová (výchozí) +cyan Nebula Screen Saver azurová +Speed Nebula Screen Saver Rychlost +%d pixels Nebula Screen Saver %d pixelů +Nebula Nebula Screen Saver Mlhovina red Nebula Screen Saver červená grey Nebula Screen Saver šedá -cold Nebula Screen Saver studená -Format: Nebula Screen Saver Formát: -only a slit Nebula Screen Saver pouze štěrbina -Color: Nebula Screen Saver Barva: -16:9, wide-screen Nebula Screen Saver 16:9, širokoúhlá diff --git a/data/catalogs/add-ons/screen_savers/nebula/da.catkeys b/data/catalogs/add-ons/screen_savers/nebula/da.catkeys index 95b1df2864..645233a029 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/da.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/da.catkeys @@ -1,20 +1,22 @@ -1 danish x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Aktivér bevægelsessløring -fullscreen, no borders Nebula Screen Saver fuldskærm, ingen kanter -green Nebula Screen Saver grøn -yellow Nebula Screen Saver gul -cyan Nebula Screen Saver cyan -Maximum Frames Per Second Nebula Screen Saver Maksimale billeder pr. sekund -Speed Nebula Screen Saver Hastighed -Nebula Nebula Screen Saver Nebula -orange (original) Nebula Screen Saver orange (original) +1 danish x-vnd.Haiku-NebulaScreensaver 2177689501 +cold Nebula Screen Saver kold Internal width: Nebula Screen Saver Intern bredde: +16:9, wide-screen Nebula Screen Saver 16:9, widescreen +Maximum Frames Per Second Nebula Screen Saver Maksimale billeder pr. sekund +Format: Nebula Screen Saver Format: +yellow Nebula Screen Saver gul +screen resolution Nebula Screen Saver skærmopløsning 2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascope +Color: Nebula Screen Saver Farve: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver grøn +Enable motion blur Nebula Screen Saver Aktivér bevægelsessløring +only a slit Nebula Screen Saver kun en slidse +fullscreen, no borders Nebula Screen Saver fuldskærm, ingen kanter +orange (original) Nebula Screen Saver orange (original) +cyan Nebula Screen Saver cyan +Speed Nebula Screen Saver Hastighed +%d pixels Nebula Screen Saver %d pixels +Nebula Nebula Screen Saver Nebula red Nebula Screen Saver rød grey Nebula Screen Saver grå -cold Nebula Screen Saver kold -Format: Nebula Screen Saver Format: -only a slit Nebula Screen Saver kun en slidse -Color: Nebula Screen Saver Farve: -16:9, wide-screen Nebula Screen Saver 16:9, widescreen diff --git a/data/catalogs/add-ons/screen_savers/nebula/de.catkeys b/data/catalogs/add-ons/screen_savers/nebula/de.catkeys index 0d68b25901..10610d5766 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/de.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/de.catkeys @@ -1,20 +1,22 @@ -1 german x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Bewegungsunschärfe -fullscreen, no borders Nebula Screen Saver Vollbild, ohne Rahmen -green Nebula Screen Saver Grün -yellow Nebula Screen Saver Gelb -cyan Nebula Screen Saver Cyan -Maximum Frames Per Second Nebula Screen Saver Max. Bilder pro Sekunde -Speed Nebula Screen Saver Geschwindigkeit -Nebula Nebula Screen Saver Nebula -orange (original) Nebula Screen Saver Orange (Original) +1 german x-vnd.Haiku-NebulaScreensaver 2177689501 +cold Nebula Screen Saver kalt Internal width: Nebula Screen Saver Interne Breite: +16:9, wide-screen Nebula Screen Saver 16:9, Breitbild +Maximum Frames Per Second Nebula Screen Saver Max. Bilder pro Sekunde +Format: Nebula Screen Saver Format: +yellow Nebula Screen Saver Gelb +screen resolution Nebula Screen Saver Bildschirmauflösung 2:3.5, cinemascope Nebula Screen Saver 2:3.5, Cinemascope +Color: Nebula Screen Saver Farbe: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver Grün +Enable motion blur Nebula Screen Saver Bewegungsunschärfe +only a slit Nebula Screen Saver nur ein Schlitz +fullscreen, no borders Nebula Screen Saver Vollbild, ohne Rahmen +orange (original) Nebula Screen Saver Orange (Original) +cyan Nebula Screen Saver Cyan +Speed Nebula Screen Saver Geschwindigkeit +%d pixels Nebula Screen Saver %d Pixel +Nebula Nebula Screen Saver Nebula red Nebula Screen Saver Rot grey Nebula Screen Saver Grau -cold Nebula Screen Saver kalt -Format: Nebula Screen Saver Format: -only a slit Nebula Screen Saver nur ein Schlitz -Color: Nebula Screen Saver Farbe: -16:9, wide-screen Nebula Screen Saver 16:9, Breitbild diff --git a/data/catalogs/add-ons/screen_savers/nebula/el.catkeys b/data/catalogs/add-ons/screen_savers/nebula/el.catkeys index 66b357be6b..a7718a00d6 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/el.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/el.catkeys @@ -1,20 +1,22 @@ -1 greek, modern (1453-) x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Ενεργοποίηση θόλωσης κίνησης -fullscreen, no borders Nebula Screen Saver πλήρης οθόνη, χωρίς περιγράμματα -green Nebula Screen Saver πράσινο -yellow Nebula Screen Saver κίτρινο -cyan Nebula Screen Saver κυανό -Maximum Frames Per Second Nebula Screen Saver Μέγιστα Καρέ Ανά Δευτερόλεπτο -Speed Nebula Screen Saver Ταχύτητα -Nebula Nebula Screen Saver Νεφέλωμα -orange (original) Nebula Screen Saver πορτοκαλί (προεπιλογή) +1 greek, modern (1453-) x-vnd.Haiku-NebulaScreensaver 2177689501 +cold Nebula Screen Saver κρύο Internal width: Nebula Screen Saver Εσωτερικό πλάτος: +16:9, wide-screen Nebula Screen Saver 16:9, ευρεία οθόνη +Maximum Frames Per Second Nebula Screen Saver Μέγιστα Καρέ Ανά Δευτερόλεπτο +Format: Nebula Screen Saver Μορφή: +yellow Nebula Screen Saver κίτρινο +screen resolution Nebula Screen Saver ανάλυση οθόνης 2:3.5, cinemascope Nebula Screen Saver 2:3.5, σινεμασκόπ +Color: Nebula Screen Saver Χρώμα: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver πράσινο +Enable motion blur Nebula Screen Saver Ενεργοποίηση θόλωσης κίνησης +only a slit Nebula Screen Saver μια πινελιά +fullscreen, no borders Nebula Screen Saver πλήρης οθόνη, χωρίς περιγράμματα +orange (original) Nebula Screen Saver πορτοκαλί (προεπιλογή) +cyan Nebula Screen Saver κυανό +Speed Nebula Screen Saver Ταχύτητα +%d pixels Nebula Screen Saver %d εικονοστοιχεία +Nebula Nebula Screen Saver Νεφέλωμα red Nebula Screen Saver κόκκινο grey Nebula Screen Saver γκρι -cold Nebula Screen Saver κρύο -Format: Nebula Screen Saver Μορφή: -only a slit Nebula Screen Saver μια πινελιά -Color: Nebula Screen Saver Χρώμα: -16:9, wide-screen Nebula Screen Saver 16:9, ευρεία οθόνη diff --git a/data/catalogs/add-ons/screen_savers/nebula/en_GB.catkeys b/data/catalogs/add-ons/screen_savers/nebula/en_GB.catkeys index f961213034..29c4752b70 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/en_GB.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/en_GB.catkeys @@ -1,3 +1,3 @@ 1 english (united kingdom) x-vnd.Haiku-NebulaScreensaver 3452114930 -grey Nebula Screen Saver grey Color: Nebula Screen Saver Colour: +grey Nebula Screen Saver grey diff --git a/data/catalogs/add-ons/screen_savers/nebula/eo.catkeys b/data/catalogs/add-ons/screen_savers/nebula/eo.catkeys index 82d0b4c2e7..620b536cb5 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/eo.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/eo.catkeys @@ -1,20 +1,20 @@ 1 esperanto x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Ŝalti movan malklarigon -fullscreen, no borders Nebula Screen Saver plenekrane, sen bordero -green Nebula Screen Saver verda -yellow Nebula Screen Saver flava -cyan Nebula Screen Saver bluverda +cold Nebula Screen Saver malvarma +Internal width: Nebula Screen Saver Interna grando: +16:9, wide-screen Nebula Screen Saver 16:9, larĝekrane Maximum Frames Per Second Nebula Screen Saver Maksimuma Kadrokvanto po Sekundo +Format: Nebula Screen Saver Formo: +yellow Nebula Screen Saver flava +2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemaskopo +Color: Nebula Screen Saver Koloro: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver verda +Enable motion blur Nebula Screen Saver Ŝalti movan malklarigon +only a slit Nebula Screen Saver nur fendo +fullscreen, no borders Nebula Screen Saver plenekrane, sen bordero +orange (original) Nebula Screen Saver oranĝkolora (originala) +cyan Nebula Screen Saver bluverda Speed Nebula Screen Saver Rapideco Nebula Nebula Screen Saver Nebula -orange (original) Nebula Screen Saver oranĝkolora (originala) -Internal width: Nebula Screen Saver Interna grando: -2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemaskopo red Nebula Screen Saver ruĝa grey Nebula Screen Saver griza -cold Nebula Screen Saver malvarma -Format: Nebula Screen Saver Formo: -only a slit Nebula Screen Saver nur fendo -Color: Nebula Screen Saver Koloro: -16:9, wide-screen Nebula Screen Saver 16:9, larĝekrane diff --git a/data/catalogs/add-ons/screen_savers/nebula/es.catkeys b/data/catalogs/add-ons/screen_savers/nebula/es.catkeys index caf458bdf1..cc78c5de4c 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/es.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/es.catkeys @@ -1,20 +1,22 @@ -1 spanish; castilian x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Activar desenfoque de movimiento -fullscreen, no borders Nebula Screen Saver pantalla completa, sin bordes -green Nebula Screen Saver verde -yellow Nebula Screen Saver amarillo -cyan Nebula Screen Saver cian -Maximum Frames Per Second Nebula Screen Saver Cantidad máxima de cuadros por segundo -Speed Nebula Screen Saver Velocidad -Nebula Nebula Screen Saver Nebula -orange (original) Nebula Screen Saver naranja (original) +1 spanish; castilian x-vnd.Haiku-NebulaScreensaver 2177689501 +cold Nebula Screen Saver frío Internal width: Nebula Screen Saver Anchura interna: +16:9, wide-screen Nebula Screen Saver 16:9, panorámico +Maximum Frames Per Second Nebula Screen Saver Cantidad máxima de cuadros por segundo +Format: Nebula Screen Saver Formato: +yellow Nebula Screen Saver amarillo +screen resolution Nebula Screen Saver resolución de pantalla 2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascopio +Color: Nebula Screen Saver Color: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver verde +Enable motion blur Nebula Screen Saver Activar desenfoque de movimiento +only a slit Nebula Screen Saver sólo una hendidura +fullscreen, no borders Nebula Screen Saver pantalla completa, sin bordes +orange (original) Nebula Screen Saver naranja (original) +cyan Nebula Screen Saver cian +Speed Nebula Screen Saver Velocidad +%d pixels Nebula Screen Saver %d píxeles +Nebula Nebula Screen Saver Nebula red Nebula Screen Saver rojo grey Nebula Screen Saver gris -cold Nebula Screen Saver frío -Format: Nebula Screen Saver Formato: -only a slit Nebula Screen Saver sólo una hendidura -Color: Nebula Screen Saver Color: -16:9, wide-screen Nebula Screen Saver 16:9, panorámico diff --git a/data/catalogs/add-ons/screen_savers/nebula/fi.catkeys b/data/catalogs/add-ons/screen_savers/nebula/fi.catkeys index 8a34ff74dd..95ee3c71d3 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/fi.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/fi.catkeys @@ -1,20 +1,22 @@ -1 finnish x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Ota käyttöön liikesumentaminen -fullscreen, no borders Nebula Screen Saver kokonäyttö, ei rajoja -green Nebula Screen Saver vihreä -yellow Nebula Screen Saver keltainen -cyan Nebula Screen Saver sinivihreä -Maximum Frames Per Second Nebula Screen Saver Enimmillään kehyksiä per sekunti -Speed Nebula Screen Saver Nopeus -Nebula Nebula Screen Saver Tähtisumu -orange (original) Nebula Screen Saver oranssi (alkuperäinen) +1 finnish x-vnd.Haiku-NebulaScreensaver 2177689501 +cold Nebula Screen Saver kylmä Internal width: Nebula Screen Saver Sisäinen leveys: +16:9, wide-screen Nebula Screen Saver 16:9, leveä näyttö +Maximum Frames Per Second Nebula Screen Saver Enimmillään kehyksiä per sekunti +Format: Nebula Screen Saver Muoto: +yellow Nebula Screen Saver keltainen +screen resolution Nebula Screen Saver näytön erotuskyky 2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascope +Color: Nebula Screen Saver Väri: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver vihreä +Enable motion blur Nebula Screen Saver Ota käyttöön liikesumentaminen +only a slit Nebula Screen Saver vain halkaisu +fullscreen, no borders Nebula Screen Saver kokonäyttö, ei rajoja +orange (original) Nebula Screen Saver oranssi (alkuperäinen) +cyan Nebula Screen Saver sinivihreä +Speed Nebula Screen Saver Nopeus +%d pixels Nebula Screen Saver %d pikseliä +Nebula Nebula Screen Saver Tähtisumu red Nebula Screen Saver punainen grey Nebula Screen Saver harmaa -cold Nebula Screen Saver kylmä -Format: Nebula Screen Saver Muoto: -only a slit Nebula Screen Saver vain halkaisu -Color: Nebula Screen Saver Väri: -16:9, wide-screen Nebula Screen Saver 16:9, leveä näyttö diff --git a/data/catalogs/add-ons/screen_savers/nebula/fr.catkeys b/data/catalogs/add-ons/screen_savers/nebula/fr.catkeys index f0c5e2135c..3d782471af 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/fr.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/fr.catkeys @@ -1,20 +1,22 @@ -1 french x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Activer le flou de mouvement -fullscreen, no borders Nebula Screen Saver plein écran, sans bordures -green Nebula Screen Saver vert -yellow Nebula Screen Saver jaune -cyan Nebula Screen Saver cyan -Maximum Frames Per Second Nebula Screen Saver Nombre maximum de trames par seconde -Speed Nebula Screen Saver Vitesse -Nebula Nebula Screen Saver Nébuleuse -orange (original) Nebula Screen Saver orange (original) +1 french x-vnd.Haiku-NebulaScreensaver 2177689501 +cold Nebula Screen Saver froid Internal width: Nebula Screen Saver Largeur interne : +16:9, wide-screen Nebula Screen Saver 16:9, écran-large +Maximum Frames Per Second Nebula Screen Saver Nombre maximum de trames par seconde +Format: Nebula Screen Saver Format : +yellow Nebula Screen Saver jaune +screen resolution Nebula Screen Saver résolution de l’écran 2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinémascope +Color: Nebula Screen Saver Couleur : +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver vert +Enable motion blur Nebula Screen Saver Activer le flou de mouvement +only a slit Nebula Screen Saver seulement une fente +fullscreen, no borders Nebula Screen Saver plein écran, sans bordures +orange (original) Nebula Screen Saver orange (original) +cyan Nebula Screen Saver cyan +Speed Nebula Screen Saver Vitesse +%d pixels Nebula Screen Saver %d pixels +Nebula Nebula Screen Saver Nébuleuse red Nebula Screen Saver rouge grey Nebula Screen Saver gris -cold Nebula Screen Saver froid -Format: Nebula Screen Saver Format : -only a slit Nebula Screen Saver seulement une fente -Color: Nebula Screen Saver Couleur : -16:9, wide-screen Nebula Screen Saver 16:9, écran-large diff --git a/data/catalogs/add-ons/screen_savers/nebula/fur.catkeys b/data/catalogs/add-ons/screen_savers/nebula/fur.catkeys index 53f050772b..2d732a71db 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/fur.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/fur.catkeys @@ -1,20 +1,20 @@ 1 friulian x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Abilite fûr di fûc di moviment -fullscreen, no borders Nebula Screen Saver a plen visôr, nissun ôr -green Nebula Screen Saver vert -yellow Nebula Screen Saver zâl -cyan Nebula Screen Saver turchin +cold Nebula Screen Saver frêt +Internal width: Nebula Screen Saver Largjece interne: +16:9, wide-screen Nebula Screen Saver 16:9, panoramic Maximum Frames Per Second Nebula Screen Saver Massims Fotograms Par Secont +Format: Nebula Screen Saver Formât: +yellow Nebula Screen Saver zâl +2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascope +Color: Nebula Screen Saver Colôr: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver vert +Enable motion blur Nebula Screen Saver Abilite fûr di fûc di moviment +only a slit Nebula Screen Saver dome une fressure +fullscreen, no borders Nebula Screen Saver a plen visôr, nissun ôr +orange (original) Nebula Screen Saver naranç (origjinâl) +cyan Nebula Screen Saver turchin Speed Nebula Screen Saver Velocitât Nebula Nebula Screen Saver Nebulose -orange (original) Nebula Screen Saver naranç (origjinâl) -Internal width: Nebula Screen Saver Largjece interne: -2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascope red Nebula Screen Saver ros grey Nebula Screen Saver grîs -cold Nebula Screen Saver frêt -Format: Nebula Screen Saver Formât: -only a slit Nebula Screen Saver dome une fressure -Color: Nebula Screen Saver Colôr: -16:9, wide-screen Nebula Screen Saver 16:9, panoramic diff --git a/data/catalogs/add-ons/screen_savers/nebula/hr.catkeys b/data/catalogs/add-ons/screen_savers/nebula/hr.catkeys index dad566cbd2..d6c4b841ff 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/hr.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/hr.catkeys @@ -1,10 +1,10 @@ 1 croatian x-vnd.Haiku-NebulaScreensaver 154113433 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -green Nebula Screen Saver zelena -yellow Nebula Screen Saver žuta -Speed Nebula Screen Saver Brzina -orange (original) Nebula Screen Saver narančasto (izvorno) -grey Nebula Screen Saver sivo cold Nebula Screen Saver hladno Format: Nebula Screen Saver Format: +yellow Nebula Screen Saver žuta Color: Nebula Screen Saver Boja: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver zelena +orange (original) Nebula Screen Saver narančasto (izvorno) +Speed Nebula Screen Saver Brzina +grey Nebula Screen Saver sivo diff --git a/data/catalogs/add-ons/screen_savers/nebula/hu.catkeys b/data/catalogs/add-ons/screen_savers/nebula/hu.catkeys index e259c27d95..983d4c2058 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/hu.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/hu.catkeys @@ -1,20 +1,22 @@ -1 hungarian x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Mozgási elmosás engedélyezése -fullscreen, no borders Nebula Screen Saver teljesképernyő keret nélkül -green Nebula Screen Saver zöld -yellow Nebula Screen Saver sárga -cyan Nebula Screen Saver cián -Maximum Frames Per Second Nebula Screen Saver Maximális képkocka másodpercenként -Speed Nebula Screen Saver Sebesség -Nebula Nebula Screen Saver Csillagköd -orange (original) Nebula Screen Saver narancs (alapértelmezett) +1 hungarian x-vnd.Haiku-NebulaScreensaver 2177689501 +cold Nebula Screen Saver hideg Internal width: Nebula Screen Saver Belső szélesség: +16:9, wide-screen Nebula Screen Saver 16:9, szélesvászon +Maximum Frames Per Second Nebula Screen Saver Maximális képkocka másodpercenként +Format: Nebula Screen Saver Formátum: +yellow Nebula Screen Saver sárga +screen resolution Nebula Screen Saver képernyőfelbontás 2:3.5, cinemascope Nebula Screen Saver 2:3.5, mozivászon +Color: Nebula Screen Saver Szín: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver zöld +Enable motion blur Nebula Screen Saver Mozgási elmosás engedélyezése +only a slit Nebula Screen Saver csak egy rés +fullscreen, no borders Nebula Screen Saver teljesképernyő keret nélkül +orange (original) Nebula Screen Saver narancs (alapértelmezett) +cyan Nebula Screen Saver cián +Speed Nebula Screen Saver Sebesség +%d pixels Nebula Screen Saver %d képpont +Nebula Nebula Screen Saver Csillagköd red Nebula Screen Saver piros grey Nebula Screen Saver szürke -cold Nebula Screen Saver hideg -Format: Nebula Screen Saver Formátum: -only a slit Nebula Screen Saver csak egy rés -Color: Nebula Screen Saver Szín: -16:9, wide-screen Nebula Screen Saver 16:9, szélesvászon diff --git a/data/catalogs/add-ons/screen_savers/nebula/id.catkeys b/data/catalogs/add-ons/screen_savers/nebula/id.catkeys index b6f9bc89d0..09aa1683fc 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/id.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/id.catkeys @@ -1,20 +1,22 @@ -1 indonesian x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Aktifkan gerakan buram -fullscreen, no borders Nebula Screen Saver layar penuh, tanpa batas -green Nebula Screen Saver hijau -yellow Nebula Screen Saver kuning -cyan Nebula Screen Saver cyan -Maximum Frames Per Second Nebula Screen Saver Frame Maksimal Per Detik -Speed Nebula Screen Saver Kecepatan -Nebula Nebula Screen Saver Nebula -orange (original) Nebula Screen Saver oranye (asli) +1 indonesian x-vnd.Haiku-NebulaScreensaver 2177689501 +cold Nebula Screen Saver dingin Internal width: Nebula Screen Saver Lebar internal: +16:9, wide-screen Nebula Screen Saver 16:9, layar lebar +Maximum Frames Per Second Nebula Screen Saver Frame Maksimal Per Detik +Format: Nebula Screen Saver Format: +yellow Nebula Screen Saver kuning +screen resolution Nebula Screen Saver resolusi layar 2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascope +Color: Nebula Screen Saver Warna: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver hijau +Enable motion blur Nebula Screen Saver Aktifkan gerakan buram +only a slit Nebula Screen Saver hanya 1 celah +fullscreen, no borders Nebula Screen Saver layar penuh, tanpa batas +orange (original) Nebula Screen Saver oranye (asli) +cyan Nebula Screen Saver cyan +Speed Nebula Screen Saver Kecepatan +%d pixels Nebula Screen Saver %d piksel +Nebula Nebula Screen Saver Nebula red Nebula Screen Saver merah grey Nebula Screen Saver abu-abu -cold Nebula Screen Saver dingin -Format: Nebula Screen Saver Format: -only a slit Nebula Screen Saver hanya 1 celah -Color: Nebula Screen Saver Warna: -16:9, wide-screen Nebula Screen Saver 16:9 (Layar Lebar) diff --git a/data/catalogs/add-ons/screen_savers/nebula/it.catkeys b/data/catalogs/add-ons/screen_savers/nebula/it.catkeys index 313b38bb87..034f5d18d3 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/it.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/it.catkeys @@ -1,20 +1,20 @@ 1 italian x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Abilita sfocatura movimento -fullscreen, no borders Nebula Screen Saver schermo intero, nessun bordo -green Nebula Screen Saver verde -yellow Nebula Screen Saver giallo -cyan Nebula Screen Saver ciano +cold Nebula Screen Saver freddo +Internal width: Nebula Screen Saver Larghezza interna: +16:9, wide-screen Nebula Screen Saver 16:9, panoramico Maximum Frames Per Second Nebula Screen Saver Massimi Fotogrammi Per Secondo +Format: Nebula Screen Saver Formato: +yellow Nebula Screen Saver giallo +2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascope +Color: Nebula Screen Saver Colore: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver verde +Enable motion blur Nebula Screen Saver Abilita sfocatura movimento +only a slit Nebula Screen Saver solo una fessura +fullscreen, no borders Nebula Screen Saver schermo intero, nessun bordo +orange (original) Nebula Screen Saver arancione (originale) +cyan Nebula Screen Saver ciano Speed Nebula Screen Saver Velocità Nebula Nebula Screen Saver Nebulosa -orange (original) Nebula Screen Saver arancione (originale) -Internal width: Nebula Screen Saver Larghezza interna: -2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascope red Nebula Screen Saver rosso grey Nebula Screen Saver grigio -cold Nebula Screen Saver freddo -Format: Nebula Screen Saver Formato: -only a slit Nebula Screen Saver solo una fessura -Color: Nebula Screen Saver Colore: -16:9, wide-screen Nebula Screen Saver 16:9, panoramico diff --git a/data/catalogs/add-ons/screen_savers/nebula/ja.catkeys b/data/catalogs/add-ons/screen_savers/nebula/ja.catkeys index 55c0cda4c8..815bb0fc1b 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/ja.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/ja.catkeys @@ -1,20 +1,22 @@ -1 japanese x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver モーションブラーを有効 -fullscreen, no borders Nebula Screen Saver 全画面、枠なし -green Nebula Screen Saver 緑 -yellow Nebula Screen Saver 黄 -cyan Nebula Screen Saver シアン -Maximum Frames Per Second Nebula Screen Saver 1秒あたりの最大フレーム数 -Speed Nebula Screen Saver 速度 -Nebula Nebula Screen Saver ネビュラ -orange (original) Nebula Screen Saver オレンジ (オリジナル) +1 japanese x-vnd.Haiku-NebulaScreensaver 2177689501 +cold Nebula Screen Saver コールド Internal width: Nebula Screen Saver 内部幅: +16:9, wide-screen Nebula Screen Saver 16:9, ワイドスクリーン +Maximum Frames Per Second Nebula Screen Saver 1秒あたりの最大フレーム数 +Format: Nebula Screen Saver フォーマット: +yellow Nebula Screen Saver 黄 +screen resolution Nebula Screen Saver 画面解像度 2:3.5, cinemascope Nebula Screen Saver 2:3.5, シネマスコープ +Color: Nebula Screen Saver 色: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver 緑 +Enable motion blur Nebula Screen Saver モーションブラーを有効 +only a slit Nebula Screen Saver スリットのみ +fullscreen, no borders Nebula Screen Saver 全画面、枠なし +orange (original) Nebula Screen Saver オレンジ (オリジナル) +cyan Nebula Screen Saver シアン +Speed Nebula Screen Saver 速度 +%d pixels Nebula Screen Saver %d ピクセル +Nebula Nebula Screen Saver ネビュラ red Nebula Screen Saver 赤 grey Nebula Screen Saver 灰 -cold Nebula Screen Saver コールド -Format: Nebula Screen Saver フォーマット: -only a slit Nebula Screen Saver スリットのみ -Color: Nebula Screen Saver 色: -16:9, wide-screen Nebula Screen Saver 16:9, ワイドスクリーン diff --git a/data/catalogs/add-ons/screen_savers/nebula/nl.catkeys b/data/catalogs/add-ons/screen_savers/nebula/nl.catkeys index 2898f44d61..ffcc86743b 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/nl.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/nl.catkeys @@ -1,20 +1,20 @@ 1 dutch; flemish x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Motion blur inschakelen -fullscreen, no borders Nebula Screen Saver volledig scherm, zonder vensterranden -green Nebula Screen Saver groen -yellow Nebula Screen Saver geel -cyan Nebula Screen Saver cyaan +cold Nebula Screen Saver koud +Internal width: Nebula Screen Saver Interne breedte: +16:9, wide-screen Nebula Screen Saver 16:9, breedbeeld Maximum Frames Per Second Nebula Screen Saver Maximum aantal frames per seconde +Format: Nebula Screen Saver Formaat: +yellow Nebula Screen Saver geel +2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascope +Color: Nebula Screen Saver Kleur: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver groen +Enable motion blur Nebula Screen Saver Motion blur inschakelen +only a slit Nebula Screen Saver alleen een gleuf +fullscreen, no borders Nebula Screen Saver volledig scherm, zonder vensterranden +orange (original) Nebula Screen Saver oranje (origineel) +cyan Nebula Screen Saver cyaan Speed Nebula Screen Saver Snelheid Nebula Nebula Screen Saver Nebula -orange (original) Nebula Screen Saver oranje (origineel) -Internal width: Nebula Screen Saver Interne breedte: -2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascope red Nebula Screen Saver rood grey Nebula Screen Saver grijs -cold Nebula Screen Saver koud -Format: Nebula Screen Saver Formaat: -only a slit Nebula Screen Saver alleen een gleuf -Color: Nebula Screen Saver Kleur: -16:9, wide-screen Nebula Screen Saver 16:9, breedbeeld diff --git a/data/catalogs/add-ons/screen_savers/nebula/pl.catkeys b/data/catalogs/add-ons/screen_savers/nebula/pl.catkeys index 4828cec4b7..b2b0cc218e 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/pl.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/pl.catkeys @@ -1,20 +1,20 @@ 1 polish x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Włącz rozmycie w ruchu -fullscreen, no borders Nebula Screen Saver pełny ekran, bez krawędzi -green Nebula Screen Saver zielony -yellow Nebula Screen Saver żółty -cyan Nebula Screen Saver cyjan +cold Nebula Screen Saver chłodny +Internal width: Nebula Screen Saver Wewnętrzna szerokość: +16:9, wide-screen Nebula Screen Saver 16:9, szerokoekranowy Maximum Frames Per Second Nebula Screen Saver Maksymalna liczba klatek na sekundę +Format: Nebula Screen Saver Format: +yellow Nebula Screen Saver żółty +2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascope +Color: Nebula Screen Saver Kolor: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver zielony +Enable motion blur Nebula Screen Saver Włącz rozmycie w ruchu +only a slit Nebula Screen Saver szczelina +fullscreen, no borders Nebula Screen Saver pełny ekran, bez krawędzi +orange (original) Nebula Screen Saver pomarańczowy (oryginalny) +cyan Nebula Screen Saver cyjan Speed Nebula Screen Saver Szybkość Nebula Nebula Screen Saver Mgławica -orange (original) Nebula Screen Saver pomarańczowy (oryginalny) -Internal width: Nebula Screen Saver Wewnętrzna szerokość: -2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascope red Nebula Screen Saver czerwony grey Nebula Screen Saver szary -cold Nebula Screen Saver chłodny -Format: Nebula Screen Saver Format: -only a slit Nebula Screen Saver szczelina -Color: Nebula Screen Saver Kolor: -16:9, wide-screen Nebula Screen Saver 16:9, szerokoekranowy diff --git a/data/catalogs/add-ons/screen_savers/nebula/pt.catkeys b/data/catalogs/add-ons/screen_savers/nebula/pt.catkeys index 867f3c26f2..2175b993fc 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/pt.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/pt.catkeys @@ -1,20 +1,20 @@ 1 portuguese x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Ativar desfoque de movimento -fullscreen, no borders Nebula Screen Saver ecrã completo, sem margens -green Nebula Screen Saver verde -yellow Nebula Screen Saver amarelo -cyan Nebula Screen Saver ciano +cold Nebula Screen Saver frio +Internal width: Nebula Screen Saver Largura interna: +16:9, wide-screen Nebula Screen Saver 16:9, ecrã panorâmico Maximum Frames Per Second Nebula Screen Saver Máximo de Quadros por Segundo +Format: Nebula Screen Saver Formato: +yellow Nebula Screen Saver amarelo +2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascópio +Color: Nebula Screen Saver Cor: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver verde +Enable motion blur Nebula Screen Saver Ativar desfoque de movimento +only a slit Nebula Screen Saver apenas uma frincha +fullscreen, no borders Nebula Screen Saver ecrã completo, sem margens +orange (original) Nebula Screen Saver laranja (original) +cyan Nebula Screen Saver ciano Speed Nebula Screen Saver Velocidade Nebula Nebula Screen Saver Nebulosa -orange (original) Nebula Screen Saver laranja (original) -Internal width: Nebula Screen Saver Largura interna: -2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascópio red Nebula Screen Saver vermelho grey Nebula Screen Saver cinzento -cold Nebula Screen Saver frio -Format: Nebula Screen Saver Formato: -only a slit Nebula Screen Saver apenas uma frincha -Color: Nebula Screen Saver Cor: -16:9, wide-screen Nebula Screen Saver 16:9, ecrã panorâmico diff --git a/data/catalogs/add-ons/screen_savers/nebula/pt_BR.catkeys b/data/catalogs/add-ons/screen_savers/nebula/pt_BR.catkeys index cbcb1834ae..6cd258ebfb 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/pt_BR.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/pt_BR.catkeys @@ -1,20 +1,21 @@ -1 portuguese (brazil) x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Ativar desfoque de movimento -fullscreen, no borders Nebula Screen Saver tela cheia, sem bordas -green Nebula Screen Saver verde -yellow Nebula Screen Saver amarelo -cyan Nebula Screen Saver ciano -Maximum Frames Per Second Nebula Screen Saver Máximo de quadros por segundo -Speed Nebula Screen Saver Velocidade -Nebula Nebula Screen Saver Nébula -orange (original) Nebula Screen Saver laranja (original) +1 portuguese (brazil) x-vnd.Haiku-NebulaScreensaver 1375348234 +cold Nebula Screen Saver frio Internal width: Nebula Screen Saver Largura interna: +16:9, wide-screen Nebula Screen Saver 16:9, tela panorâmica +Maximum Frames Per Second Nebula Screen Saver Máximo de quadros por segundo +Format: Nebula Screen Saver Formato: +yellow Nebula Screen Saver amarelo 2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascópio +Color: Nebula Screen Saver Cor: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver verde +Enable motion blur Nebula Screen Saver Ativar desfoque de movimento +only a slit Nebula Screen Saver apenas uma fenda +fullscreen, no borders Nebula Screen Saver tela cheia, sem bordas +orange (original) Nebula Screen Saver laranja (original) +cyan Nebula Screen Saver ciano +Speed Nebula Screen Saver Velocidade +%d pixels Nebula Screen Saver %d pixels +Nebula Nebula Screen Saver Nébula red Nebula Screen Saver vermelho grey Nebula Screen Saver cinza -cold Nebula Screen Saver frio -Format: Nebula Screen Saver Formato: -only a slit Nebula Screen Saver apenas uma fenda -Color: Nebula Screen Saver Cor: -16:9, wide-screen Nebula Screen Saver 16:9, tela panorâmica diff --git a/data/catalogs/add-ons/screen_savers/nebula/ro.catkeys b/data/catalogs/add-ons/screen_savers/nebula/ro.catkeys index efccf64806..0df4fc10b7 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/ro.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/ro.catkeys @@ -1,20 +1,20 @@ 1 romanian x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Activează estomparea mișcării -fullscreen, no borders Nebula Screen Saver ecran complet, fără margini -green Nebula Screen Saver verde -yellow Nebula Screen Saver galben -cyan Nebula Screen Saver cyan +cold Nebula Screen Saver rece +Internal width: Nebula Screen Saver Lățime internă: +16:9, wide-screen Nebula Screen Saver 16:9, ecran lat Maximum Frames Per Second Nebula Screen Saver Număr maxim de cadre pe secundă +Format: Nebula Screen Saver Format: +yellow Nebula Screen Saver galben +2:3.5, cinemascope Nebula Screen Saver 2:3:5, cinemascop +Color: Nebula Screen Saver Culoare: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver verde +Enable motion blur Nebula Screen Saver Activează estomparea mișcării +only a slit Nebula Screen Saver doar o fantă +fullscreen, no borders Nebula Screen Saver ecran complet, fără margini +orange (original) Nebula Screen Saver portocaliu (original) +cyan Nebula Screen Saver cyan Speed Nebula Screen Saver Viteză Nebula Nebula Screen Saver Nebuloasă -orange (original) Nebula Screen Saver portocaliu (original) -Internal width: Nebula Screen Saver Lățime internă: -2:3.5, cinemascope Nebula Screen Saver 2:3:5, cinemascop red Nebula Screen Saver roșu grey Nebula Screen Saver gri -cold Nebula Screen Saver rece -Format: Nebula Screen Saver Format: -only a slit Nebula Screen Saver doar o fantă -Color: Nebula Screen Saver Culoare: -16:9, wide-screen Nebula Screen Saver 16:9, ecran lat diff --git a/data/catalogs/add-ons/screen_savers/nebula/ru.catkeys b/data/catalogs/add-ons/screen_savers/nebula/ru.catkeys index 76c54cf90f..4121ce5bbf 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/ru.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/ru.catkeys @@ -1,20 +1,20 @@ 1 russian x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver Все права защищены © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Включить размывание движения -fullscreen, no borders Nebula Screen Saver во весь экран, без рамок -green Nebula Screen Saver зеленый -yellow Nebula Screen Saver желтый -cyan Nebula Screen Saver бирюзовый +cold Nebula Screen Saver холодный +Internal width: Nebula Screen Saver Внутренняя ширина: +16:9, wide-screen Nebula Screen Saver 16:9, широкоэкранный Maximum Frames Per Second Nebula Screen Saver Максимальное количество кадров в секунду +Format: Nebula Screen Saver Формат: +yellow Nebula Screen Saver желтый +2:3.5, cinemascope Nebula Screen Saver 2:3.5, широкоэкранный +Color: Nebula Screen Saver Цвет: +© 2001-2004 Axel Dörfler. Nebula Screen Saver Все права защищены © 2001-2004 Axel Dörfler. +green Nebula Screen Saver зеленый +Enable motion blur Nebula Screen Saver Включить размывание движения +only a slit Nebula Screen Saver только разрез +fullscreen, no borders Nebula Screen Saver во весь экран, без рамок +orange (original) Nebula Screen Saver оранжевый (оригинальный) +cyan Nebula Screen Saver бирюзовый Speed Nebula Screen Saver Скорость Nebula Nebula Screen Saver Туманность -orange (original) Nebula Screen Saver оранжевый (оригинальный) -Internal width: Nebula Screen Saver Внутренняя ширина: -2:3.5, cinemascope Nebula Screen Saver 2:3.5, широкоэкранный red Nebula Screen Saver красный grey Nebula Screen Saver серый -cold Nebula Screen Saver холодный -Format: Nebula Screen Saver Формат: -only a slit Nebula Screen Saver только разрез -Color: Nebula Screen Saver Цвет: -16:9, wide-screen Nebula Screen Saver 16:9, широкоэкранный diff --git a/data/catalogs/add-ons/screen_savers/nebula/sk.catkeys b/data/catalogs/add-ons/screen_savers/nebula/sk.catkeys index bebb71514c..2e29ecc161 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/sk.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/sk.catkeys @@ -1,20 +1,20 @@ 1 slovak x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Zapnúť rozostrenie pohybom -fullscreen, no borders Nebula Screen Saver celoobrazovkový režim bez okrajov -green Nebula Screen Saver zelená -yellow Nebula Screen Saver žltá -cyan Nebula Screen Saver tyrkysová +cold Nebula Screen Saver studená +Internal width: Nebula Screen Saver Vnútorná šírka: +16:9, wide-screen Nebula Screen Saver 16:9, širokouhlá Maximum Frames Per Second Nebula Screen Saver Max. snímok za sekundu +Format: Nebula Screen Saver Formát: +yellow Nebula Screen Saver žltá +2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascope +Color: Nebula Screen Saver Farba: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver zelená +Enable motion blur Nebula Screen Saver Zapnúť rozostrenie pohybom +only a slit Nebula Screen Saver iba štrbina +fullscreen, no borders Nebula Screen Saver celoobrazovkový režim bez okrajov +orange (original) Nebula Screen Saver oranžová (pôvodná) +cyan Nebula Screen Saver tyrkysová Speed Nebula Screen Saver Rýchlosť Nebula Nebula Screen Saver Hmlovina -orange (original) Nebula Screen Saver oranžová (pôvodná) -Internal width: Nebula Screen Saver Vnútorná šírka: -2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascope red Nebula Screen Saver červená grey Nebula Screen Saver šedá -cold Nebula Screen Saver studená -Format: Nebula Screen Saver Formát: -only a slit Nebula Screen Saver iba štrbina -Color: Nebula Screen Saver Farba: -16:9, wide-screen Nebula Screen Saver 16:9, širokouhlá diff --git a/data/catalogs/add-ons/screen_savers/nebula/sv.catkeys b/data/catalogs/add-ons/screen_savers/nebula/sv.catkeys index f660970683..01b92ccad0 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/sv.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/sv.catkeys @@ -1,20 +1,22 @@ -1 swedish x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Aktivera rörelseoskärpa -fullscreen, no borders Nebula Screen Saver fullskärmsläge, inga kanter -green Nebula Screen Saver grön -yellow Nebula Screen Saver gul -cyan Nebula Screen Saver cyan -Maximum Frames Per Second Nebula Screen Saver Maximalt antal bildrutor per sekund -Speed Nebula Screen Saver Hastighet -Nebula Nebula Screen Saver Nebulosa -orange (original) Nebula Screen Saver orange (ursprunglig) +1 swedish x-vnd.Haiku-NebulaScreensaver 2177689501 +cold Nebula Screen Saver kall Internal width: Nebula Screen Saver Intern bredd: +16:9, wide-screen Nebula Screen Saver 16:9, wide-screen +Maximum Frames Per Second Nebula Screen Saver Maximalt antal bildrutor per sekund +Format: Nebula Screen Saver Format: +yellow Nebula Screen Saver gul +screen resolution Nebula Screen Saver skärmupplösning 2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascope +Color: Nebula Screen Saver Färg: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver grön +Enable motion blur Nebula Screen Saver Aktivera rörelseoskärpa +only a slit Nebula Screen Saver endast en reva +fullscreen, no borders Nebula Screen Saver fullskärmsläge, inga kanter +orange (original) Nebula Screen Saver orange (ursprunglig) +cyan Nebula Screen Saver cyan +Speed Nebula Screen Saver Hastighet +%d pixels Nebula Screen Saver %d pixlar +Nebula Nebula Screen Saver Nebulosa red Nebula Screen Saver röd grey Nebula Screen Saver grå -cold Nebula Screen Saver kall -Format: Nebula Screen Saver Format: -only a slit Nebula Screen Saver endast en reva -Color: Nebula Screen Saver Färg: -16:9, wide-screen Nebula Screen Saver 16:9, wide-screen diff --git a/data/catalogs/add-ons/screen_savers/nebula/th.catkeys b/data/catalogs/add-ons/screen_savers/nebula/th.catkeys index 3c4c6ea64e..e28025c1fd 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/th.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/th.catkeys @@ -1,20 +1,20 @@ 1 thai x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver เปิดใช้งานการเคลื่อนไหวเบลอ -fullscreen, no borders Nebula Screen Saver เต็มหน้าจอไม่มีขอบ -green Nebula Screen Saver เขียว -yellow Nebula Screen Saver เหลือง -cyan Nebula Screen Saver ฟ้า +cold Nebula Screen Saver เย็น +Internal width: Nebula Screen Saver ความกว้างภายใน +16:9, wide-screen Nebula Screen Saver 16: 9 แบบจอกว้าง Maximum Frames Per Second Nebula Screen Saver เฟรมสูงสุดต่อวินาที +Format: Nebula Screen Saver ฟอร์แมท: +yellow Nebula Screen Saver เหลือง +2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascope +Color: Nebula Screen Saver สี: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver เขียว +Enable motion blur Nebula Screen Saver เปิดใช้งานการเคลื่อนไหวเบลอ +only a slit Nebula Screen Saver แยกเท่านั้น +fullscreen, no borders Nebula Screen Saver เต็มหน้าจอไม่มีขอบ +orange (original) Nebula Screen Saver ส้ม (สีเดิม) +cyan Nebula Screen Saver ฟ้า Speed Nebula Screen Saver ความเร็ว Nebula Nebula Screen Saver Nebula -orange (original) Nebula Screen Saver ส้ม (สีเดิม) -Internal width: Nebula Screen Saver ความกว้างภายใน -2:3.5, cinemascope Nebula Screen Saver 2:3.5, cinemascope red Nebula Screen Saver แดง grey Nebula Screen Saver เทา -cold Nebula Screen Saver เย็น -Format: Nebula Screen Saver ฟอร์แมท: -only a slit Nebula Screen Saver แยกเท่านั้น -Color: Nebula Screen Saver สี: -16:9, wide-screen Nebula Screen Saver 16: 9 แบบจอกว้าง diff --git a/data/catalogs/add-ons/screen_savers/nebula/tr.catkeys b/data/catalogs/add-ons/screen_savers/nebula/tr.catkeys index 671216386b..ebb2207706 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/tr.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/tr.catkeys @@ -1,20 +1,22 @@ -1 turkish x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Hareket bulanıklığını etkinleştir -fullscreen, no borders Nebula Screen Saver tam ekran, kenarlıklar olmadan -green Nebula Screen Saver yeşil -yellow Nebula Screen Saver sarı -cyan Nebula Screen Saver camgöbeği -Maximum Frames Per Second Nebula Screen Saver Saniyedeki en çok kare sayısı -Speed Nebula Screen Saver Hız -Nebula Nebula Screen Saver Bulutsu -orange (original) Nebula Screen Saver turuncu (orijinal) +1 turkish x-vnd.Haiku-NebulaScreensaver 2177689501 +cold Nebula Screen Saver donuk Internal width: Nebula Screen Saver İç genişlik: +16:9, wide-screen Nebula Screen Saver 16:9, geniş ekran +Maximum Frames Per Second Nebula Screen Saver Saniyedeki en çok kare sayısı +Format: Nebula Screen Saver Biçim: +yellow Nebula Screen Saver sarı +screen resolution Nebula Screen Saver ekran çözünürlüğü 2:3.5, cinemascope Nebula Screen Saver 2:35.5, sinemaskop +Color: Nebula Screen Saver Renk: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver yeşil +Enable motion blur Nebula Screen Saver Hareket bulanıklığını etkinleştir +only a slit Nebula Screen Saver sadece bir yarık +fullscreen, no borders Nebula Screen Saver tam ekran, kenarlıklar olmadan +orange (original) Nebula Screen Saver turuncu (orijinal) +cyan Nebula Screen Saver camgöbeği +Speed Nebula Screen Saver Hız +%d pixels Nebula Screen Saver %d piksel +Nebula Nebula Screen Saver Bulutsu red Nebula Screen Saver kırmızı grey Nebula Screen Saver gri -cold Nebula Screen Saver donuk -Format: Nebula Screen Saver Biçim: -only a slit Nebula Screen Saver sadece bir yarık -Color: Nebula Screen Saver Renk: -16:9, wide-screen Nebula Screen Saver 16:9, geniş ekran diff --git a/data/catalogs/add-ons/screen_savers/nebula/uk.catkeys b/data/catalogs/add-ons/screen_savers/nebula/uk.catkeys index 9da4fd5946..968f98c6d2 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/uk.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/uk.catkeys @@ -1,20 +1,21 @@ -1 ukrainian x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver Увімкнути розмиття руху -fullscreen, no borders Nebula Screen Saver повний екран, без меж -green Nebula Screen Saver зелений -yellow Nebula Screen Saver жовтий -cyan Nebula Screen Saver бірюзовий -Maximum Frames Per Second Nebula Screen Saver Максимум кадрів за секунду -Speed Nebula Screen Saver Швидкість -Nebula Nebula Screen Saver Nebula -orange (original) Nebula Screen Saver оранжевий (original) +1 ukrainian x-vnd.Haiku-NebulaScreensaver 1375348234 +cold Nebula Screen Saver холодний Internal width: Nebula Screen Saver Внутрішня ширина: +16:9, wide-screen Nebula Screen Saver 16:9 широкий екран +Maximum Frames Per Second Nebula Screen Saver Максимум кадрів за секунду +Format: Nebula Screen Saver Формат: +yellow Nebula Screen Saver жовтий 2:3.5, cinemascope Nebula Screen Saver 2:3.5, CinemaScope +Color: Nebula Screen Saver Колір: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver зелений +Enable motion blur Nebula Screen Saver Увімкнути розмиття руху +only a slit Nebula Screen Saver тільки щілину +fullscreen, no borders Nebula Screen Saver повний екран, без меж +orange (original) Nebula Screen Saver оранжевий (original) +cyan Nebula Screen Saver бірюзовий +Speed Nebula Screen Saver Швидкість +%d pixels Nebula Screen Saver %d пікселів +Nebula Nebula Screen Saver Nebula red Nebula Screen Saver червоний grey Nebula Screen Saver сірий -cold Nebula Screen Saver холодний -Format: Nebula Screen Saver Формат: -only a slit Nebula Screen Saver тільки щілину -Color: Nebula Screen Saver Колір: -16:9, wide-screen Nebula Screen Saver 16:9 широкий екран diff --git a/data/catalogs/add-ons/screen_savers/nebula/zh_Hans.catkeys b/data/catalogs/add-ons/screen_savers/nebula/zh_Hans.catkeys index 850de97ee5..fceda5af42 100644 --- a/data/catalogs/add-ons/screen_savers/nebula/zh_Hans.catkeys +++ b/data/catalogs/add-ons/screen_savers/nebula/zh_Hans.catkeys @@ -1,20 +1,20 @@ 1 english x-vnd.Haiku-NebulaScreensaver 3897597581 -© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. -Enable motion blur Nebula Screen Saver 启用动态模糊 -fullscreen, no borders Nebula Screen Saver 全屏,无边框 -green Nebula Screen Saver 绿色 -yellow Nebula Screen Saver 黄色 -cyan Nebula Screen Saver 青色 +cold Nebula Screen Saver 冷色 +Internal width: Nebula Screen Saver 内部宽度: +16:9, wide-screen Nebula Screen Saver 16:9,宽屏 Maximum Frames Per Second Nebula Screen Saver 最大帧率 +Format: Nebula Screen Saver 格式: +yellow Nebula Screen Saver 黄色 +2:3.5, cinemascope Nebula Screen Saver 2:3.5,宽屏 +Color: Nebula Screen Saver 颜色: +© 2001-2004 Axel Dörfler. Nebula Screen Saver © 2001-2004 Axel Dörfler. +green Nebula Screen Saver 绿色 +Enable motion blur Nebula Screen Saver 启用动态模糊 +only a slit Nebula Screen Saver 仅单个裂缝 +fullscreen, no borders Nebula Screen Saver 全屏,无边框 +orange (original) Nebula Screen Saver 橙色(原始) +cyan Nebula Screen Saver 青色 Speed Nebula Screen Saver 速度 Nebula Nebula Screen Saver 星云 -orange (original) Nebula Screen Saver 橙色(原始) -Internal width: Nebula Screen Saver 内部宽度: -2:3.5, cinemascope Nebula Screen Saver 2:3.5,宽屏 red Nebula Screen Saver 红色 grey Nebula Screen Saver 灰色 -cold Nebula Screen Saver 冷色 -Format: Nebula Screen Saver 格式: -only a slit Nebula Screen Saver 仅单个裂缝 -Color: Nebula Screen Saver 颜色: -16:9, wide-screen Nebula Screen Saver 16:9,宽屏 diff --git a/data/catalogs/add-ons/screen_savers/shelf/id.catkeys b/data/catalogs/add-ons/screen_savers/shelf/id.catkeys index 5607727f51..f32d5a875e 100644 --- a/data/catalogs/add-ons/screen_savers/shelf/id.catkeys +++ b/data/catalogs/add-ons/screen_savers/shelf/id.catkeys @@ -1,4 +1,4 @@ 1 indonesian x-vnd.Haiku-ShelfScreensaver 547737841 Drop replicants on the full-screen window behind the preferences panel. Shelf Screen Saver Jatuhkan replican pada jendela layar penuh di belakang panel preferensi. © 2012 François Revol. Shelf Screen Saver © 2012 François Revol. -Shelf Shelf Screen Saver Shelf (Rak) +Shelf Shelf Screen Saver Rak diff --git a/data/catalogs/add-ons/translators/pcx/id.catkeys b/data/catalogs/add-ons/translators/pcx/id.catkeys index adbc05a63d..587cb830d5 100644 --- a/data/catalogs/add-ons/translators/pcx/id.catkeys +++ b/data/catalogs/add-ons/translators/pcx/id.catkeys @@ -3,6 +3,6 @@ PCX Settings main Pengaturan PCX Version %d.%d.%d, %s ConfigView Versi %d.%d.%d, %s PCXTranslator Settings ConfigView Pengaturan PCXTranslator PCX image translator PCXTranslator Penerjemah gambar PCX -PCX %lu bit image PCXTranslator Citra PCX %lu bit +PCX %lu bit image PCXTranslator Citra PCX %lu bit PCX images PCXTranslator Citra PCX PCX image translator ConfigView Penerjemah gambar PCX diff --git a/data/catalogs/add-ons/translators/tga/id.catkeys b/data/catalogs/add-ons/translators/tga/id.catkeys index 9efd72a64b..c0c85911ba 100644 --- a/data/catalogs/add-ons/translators/tga/id.catkeys +++ b/data/catalogs/add-ons/translators/tga/id.catkeys @@ -10,7 +10,7 @@ Written by the Haiku Translation Kit Team TGAView Ditulis oleh Tim Translation Targa image (%d bits RLE truecolor) TGATranslator Gambar targa (%d bita RLE warna-asli) TGA images TGATranslator Gambar TGA Version %d.%d.%d, %s TGAView Versi %d.%d.%d, %s -TGATranslator Settings TGATranslator Pengaturan TGATranslator +TGATranslator Settings TGATranslator Pengaturan TGATranslator TGA image translator TGATranslator Penerjemah gambar TGA Targa image (%d bits RLE gray) TGATranslator Gambar targa (%d bita RLE abu-abu) TGA Settings TGAMain Pengaturan TGA diff --git a/data/catalogs/apps/aboutsystem/ca.catkeys b/data/catalogs/apps/aboutsystem/ca.catkeys index 227bcfcb3d..ca7736661a 100644 --- a/data/catalogs/apps/aboutsystem/ca.catkeys +++ b/data/catalogs/apps/aboutsystem/ca.catkeys @@ -1,4 +1,4 @@ -1 catalan; valencian x-vnd.Haiku-About 2374494647 +1 catalan; valencian x-vnd.Haiku-About 408681589 Revision AboutView Revisió The Haikuware team and their bounty program\n AboutView L'equip de Haikuware i el seu programa de recompenses\n Copyright © 1999-2007 Michael C. Ring. All rights reserved. AboutView Copyright © 1999-2007 Michael C. Ring. Tots els drets reservats. @@ -42,6 +42,7 @@ About this system AboutWindow Quant a aquest sistema Copyright © 1999-2010 by the authors of Gutenprint. All rights reserved. AboutView Copyright © 1999-2010 dels autors del Gutenprint. Tots els drets reservats. Copyright © 1994-1997 Mark Kilgard. All rights reserved. AboutView Copyright © 1994-1997 Mark Kilgard. Tots els drets reservats. AboutSystem System name Quant al sistema +Copyright © 2019 Joe Drago. All rights reserved. AboutView Copyright © 2019 Joe Drago. Tots els drets reservats. Copyright © 1995-2001 Lars Düning. All rights reserved. AboutView Copyright © 1995-2001 Lars Düning. Tots els drets reservats. Copyright © 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper. AboutView Copyright © 1998-2000 Thai Open Source Software Center Ltd i Clark Cooper. Source Code: AboutView Codi font: diff --git a/data/catalogs/apps/aboutsystem/cs.catkeys b/data/catalogs/apps/aboutsystem/cs.catkeys index 7c86c4648d..8d58679ab6 100644 --- a/data/catalogs/apps/aboutsystem/cs.catkeys +++ b/data/catalogs/apps/aboutsystem/cs.catkeys @@ -1,4 +1,4 @@ -1 czech x-vnd.Haiku-About 2374494647 +1 czech x-vnd.Haiku-About 408681589 Revision AboutView Revize The Haikuware team and their bounty program\n AboutView Tým Haikuware a jejich systém prémií\n Copyright © 1999-2007 Michael C. Ring. All rights reserved. AboutView Copyright © 1999-2007 Michael C. Ring. Všechna práva vyhrazena. @@ -42,6 +42,7 @@ About this system AboutWindow O tomto systému Copyright © 1999-2010 by the authors of Gutenprint. All rights reserved. AboutView Copyright © 1999-2010 autoři Gutenprint. Všechna práva vyhrazena. Copyright © 1994-1997 Mark Kilgard. All rights reserved. AboutView Copyright © 1994-1997 Mark Kilgard. Všechna práva vyhrazena. AboutSystem System name O Systému +Copyright © 2019 Joe Drago. All rights reserved. AboutView Copyright © 2019 Joe Drago. Všechna práva vyhrazena. Copyright © 1995-2001 Lars Düning. All rights reserved. AboutView Copyright © 1995-2001 Lars Düning. Všechna práva vyhrazena. Copyright © 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper. AboutView Copyright © 1998-2000 Thai Open Source Software Center Ltd a Clark Cooper. Source Code: AboutView Zdrojový kód: diff --git a/data/catalogs/apps/aboutsystem/da.catkeys b/data/catalogs/apps/aboutsystem/da.catkeys index 124b7fb9ac..828bb9fd82 100644 --- a/data/catalogs/apps/aboutsystem/da.catkeys +++ b/data/catalogs/apps/aboutsystem/da.catkeys @@ -1,4 +1,4 @@ -1 danish x-vnd.Haiku-About 2374494647 +1 danish x-vnd.Haiku-About 408681589 Revision AboutView Revision The Haikuware team and their bounty program\n AboutView Haikuware-holdet og deres dusørprogram\n Copyright © 1999-2007 Michael C. Ring. All rights reserved. AboutView Ophavsret © 1999-2007 Michael C. Ring. Alle rettigheder forbeholdes. @@ -11,7 +11,7 @@ Google and their Google Summer of Code and Google Code In programs\n AboutView Contributors:\n AboutView Bidragsydere:\n Kernel: AboutView Kerne: Copyright © 2006-2012 Kentaro Fukuchi AboutView Ophavsret © 2006-2012 Kentaro Fukuchi -Copyright © 1991-2000 Silicon Graphics, Inc. All rights reserved. AboutView Ophavsret © 1991-2000 Silicon Graphics, Inc. All rights reserved. +Copyright © 1991-2000 Silicon Graphics, Inc. All rights reserved. AboutView Ophavsret © 1991-2000 Silicon Graphics, Inc. Alle rettigheder forbeholdes. Copyright © 1990-2002 Info-ZIP. All rights reserved. AboutView Ophavsret © 1990-2002 Info-ZIP. Alle rettigheder forbeholdes. Past website & marketing:\n AboutView Forhenværende websted og markedsføring:\n Copyright © 2003 Peter Hanappe and others. AboutView Ophavsret © 2003 Peter Hanappe og andre. @@ -20,7 +20,7 @@ Testing and bug triaging:\n AboutView Testning og fejltriagering:\n %d MiB total AboutView %d MiB i alt The code that is unique to Haiku, especially the kernel and all code that applications may link against, is distributed under the terms of the . Some system libraries contain third party code distributed under the . You can find the copyrights to third party code below.\n\n AboutView and aren't variables and can be translated. However, please, don't remove < and > as they're needed as placeholders for proper hypertext functionality. Kode som er unikt til Haiku, specielt kernen og al kode som programmer kan linke mod, distribueres under vilkårene i . Nogle systembiblioteker indeholder tredjepartskode som distribueres under . Du kan finde ophavsrettene til tredjepartskode nedenfor.\n\n Copyright © 1996-1997 Jeff Prosise. All rights reserved. AboutView Ophavsret © 1996-1997 Jeff Prosise. Alle rettigheder forbeholdes. -Copyright © 1999-2006 Brian Paul. Mesa3D Project. All rights reserved. AboutView Ophavsret © 1999-2006 Brian Paul. Mesa3D Project. Alle rettigheder forbeholdes. +Copyright © 1999-2006 Brian Paul. Mesa3D Project. All rights reserved. AboutView Ophavsret © 1999-2006 Brian Paul. Mesa3D-projektet. Alle rettigheder forbeholdes. Copyright © 2010-2011 Google Inc. All rights reserved. AboutView Ophavsret © 2010-2011 Google Inc. Alle rettigheder forbeholdes. Copyright © 1987-1988 Digital Equipment Corporation, Maynard, Massachusetts.\nAll rights reserved. AboutView Ophavsret © 1987-1988 Digital Equipment Corporation, Maynard, Massachusetts.\nAlle rettigheder forbeholdes. Past maintainers:\n AboutView Forhenværende vedligeholdere:\n @@ -28,7 +28,7 @@ Unknown AboutView Ukendt Be Inc. and its developer team, for having created BeOS!\n\n AboutView Be Inc. og deres udviklingshold, for at have skabt BeOS!\n\n Copyright © 2002-2014 Industrial Light & Magic, a division of Lucas Digital Ltd. LLC. AboutView Ophavsret © 2002-2014 Industrial Light & Magic, et datterselskab af Lucas Digital Ltd. LLC. Licenses: AboutView Licenser: -The copyright to the Haiku code is property of Haiku, Inc. or of the respective authors where expressly noted in the source. Haiku® and the HAIKU logo® are registered trademarks of Haiku, Inc.\n\n AboutView Ophavsretten til Haikus kode tilhører Haiku, Inc. eller af de respektive ophavsmænd som er udtrykkeligt angivet i kildekoden. Haiku® og HAIKU-logoet® er registrerede varemærker af Haiku, Inc.\n\n +The copyright to the Haiku code is property of Haiku, Inc. or of the respective authors where expressly noted in the source. Haiku® and the HAIKU logo® are registered trademarks of Haiku, Inc.\n\n AboutView Ophavsretten til Haikus kode tilhører Haiku, Inc. eller de respektive ophavsmænd som udtrykkeligt er angivet i kildekoden. Haiku® og HAIKU-logoet® er registrerede varemærker tilhørende Haiku, Inc.\n\n Copyright © 2009 Colin Percival AboutView Ophavsret © 2009 Colin Percival Time running: AboutView Oppetid: %ld MHz AboutView %ld MHz @@ -42,6 +42,7 @@ About this system AboutWindow Om systemet Copyright © 1999-2010 by the authors of Gutenprint. All rights reserved. AboutView Ophavsret © 1999-2010 af forfatterne af Gutenprint. Alle rettigheder forbeholdes. Copyright © 1994-1997 Mark Kilgard. All rights reserved. AboutView Ophavsret © 1994-1997 Mark Kilgard. Alle rettigheder forbeholdes. AboutSystem System name Om systemet +Copyright © 2019 Joe Drago. All rights reserved. AboutView Ophavsret © 2019 Joe Drago. Alle rettigheder forbeholdes. Copyright © 1995-2001 Lars Düning. All rights reserved. AboutView Ophavsret © 1995-2001 Lars Düning. Alle rettigheder forbeholdes. Copyright © 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper. AboutView Ophavsret © 1998-2000 Thai Open Source Software Center Ltd og Clark Cooper. Source Code: AboutView Kildekode: @@ -50,7 +51,7 @@ GNU GPL v3 AboutWindow GNU GPL v3 The HaikuPorts team\n AboutView HaikuPorts-teamet\n Contains software from the GNU Project, released under the GPL and LGPL licenses:\nGNU C Library, GNU coretools, diffutils, findutils, sharutils, gawk, bison, m4, make, wget, ncurses, termcap, Bourne Again Shell.\nCopyright © The Free Software Foundation. AboutView Indeholder software fra GNU-projektet, udgivet under GPL- og LGPL-licenserne:\nGNU C-bibliotek, GNU-kerneværktøjer, diffutils, findutils, sharutils, gawk, bison, m4, make, wget, ncurses, termcap, Bourne Again Shell.\nOphavsret © The Free Software Foundation. Copyright © 1996-2002, 2006 David Turner, Robert Wilhelm and Werner Lemberg. AboutView Ophavsret © 1996-2002, 2006 David Turner, Robert Wilhelm og Werner Lemberg. -Contains software from the FreeBSD Project, released under the BSD license:\nftpd, ping, telnet, telnetd, traceroute\nCopyright © 1994-2008 The FreeBSD Project. All rights reserved. AboutView Indeholder software fra FreeBSD-projektet, udgivet under BSD-licenserne:\nftpd, ping, telnet, telnetd, traceroute\nOphavsret © 1994-2008 FreeBSD-projektet. Alle rettigheder forbeholdt. +Contains software from the FreeBSD Project, released under the BSD license:\nftpd, ping, telnet, telnetd, traceroute\nCopyright © 1994-2008 The FreeBSD Project. All rights reserved. AboutView Indeholder software fra FreeBSD-projektet, udgivet under BSD-licenserne:\nftpd, ping, telnet, telnetd, traceroute\nOphavsret © 1994-2008 FreeBSD-projektet. Alle rettigheder forbeholdes. Copyright © 2002-2003 Steve Lhomme. All rights reserved. AboutView Ophavsret © 2002-2003 Steve Lhomme. Alle rettigheder forbeholdes. Copyright © 2000-2019 Fabrice Bellard, et al. AboutView Ophavsret © 2000-2019 Fabrice Bellard, med flere Current maintainers:\n AboutView Nuværende vedligeholdere:\n diff --git a/data/catalogs/apps/aboutsystem/de.catkeys b/data/catalogs/apps/aboutsystem/de.catkeys index 8e332d11a2..29e0dfbdb3 100644 --- a/data/catalogs/apps/aboutsystem/de.catkeys +++ b/data/catalogs/apps/aboutsystem/de.catkeys @@ -1,4 +1,4 @@ -1 german x-vnd.Haiku-About 2374494647 +1 german x-vnd.Haiku-About 408681589 Revision AboutView Stand: The Haikuware team and their bounty program\n AboutView Das Haikuware-Team und deren Bounty-Programm\n Copyright © 1999-2007 Michael C. Ring. All rights reserved. AboutView Copyright © 1999-2007 Michael C. Ring. Alle Rechte vorbehalten. @@ -42,6 +42,7 @@ About this system AboutWindow Über dieses System Copyright © 1999-2010 by the authors of Gutenprint. All rights reserved. AboutView Copyright © 1999-2010 durch die Autoren von Gutenprint. Alle Rechte vorbehalten. Copyright © 1994-1997 Mark Kilgard. All rights reserved. AboutView Copyright © 1994-1997 Mark Kilgard. Alle Rechte vorbehalten. AboutSystem System name Über Haiku +Copyright © 2019 Joe Drago. All rights reserved. AboutView Copyright © 2019 Joe Drago. Alle Rechte vorbehalten. Copyright © 1995-2001 Lars Düning. All rights reserved. AboutView Copyright © 1995-2001 Lars Düning. Alle Rechte vorbehalten. Copyright © 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper. AboutView Copyright © 1998-2000 Thai Open Source Software Center Ltd und Clark Cooper. Source Code: AboutView Quellcode: diff --git a/data/catalogs/apps/aboutsystem/el.catkeys b/data/catalogs/apps/aboutsystem/el.catkeys index ad894fc522..7edbe64fa3 100644 --- a/data/catalogs/apps/aboutsystem/el.catkeys +++ b/data/catalogs/apps/aboutsystem/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.Haiku-About 511528774 +1 greek, modern (1453-) x-vnd.Haiku-About 408681589 Revision AboutView Αναθεώρηση The Haikuware team and their bounty program\n AboutView Η ομάδα της Haikuware και το πρόγραμμα επιδοτήσεων της\n Copyright © 1999-2007 Michael C. Ring. All rights reserved. AboutView Πνευματική ιδιοκτησία © 1999-2007 Michael C. Ring. Με επιφύλαξη παντός δικαιώματος. @@ -42,6 +42,7 @@ About this system AboutWindow Πληροφορίες συστήματος Copyright © 1999-2010 by the authors of Gutenprint. All rights reserved. AboutView Πνευματική ιδιοκτησία © 1999-2010 απο τους συγγραφείς του Gutenprint. Με επιφύλαξη παντός δικαιώματος. Copyright © 1994-1997 Mark Kilgard. All rights reserved. AboutView Πνευματική ιδιοκτησία © 1994-1997 Mark Kilgard. Με επιφύλαξη παντός δικαιώματος. AboutSystem System name Σχετικά +Copyright © 2019 Joe Drago. All rights reserved. AboutView Copyright © 2019 Joe Drago. Με επιφύλαξη παντός δικαιώματος. Copyright © 1995-2001 Lars Düning. All rights reserved. AboutView Πνευματική ιδιοκτησία © 1995-2001 Lars Düning. Με επιφύλαξη παντός δικαιώματος. Copyright © 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper. AboutView Πνευματική ιδιοκτησία © 1998-2000 Thai Open Source Software Center Ltd και Clark Cooper. Source Code: AboutView Πηγαίος Κώδικας: @@ -72,6 +73,7 @@ Memory: AboutView Μνήμη: \n…and probably some more we forgot to mention (sorry!)\n\n AboutView \n…και μάλλον αρκετά άλλα άτομα που ξεχάσαμε να αναφέρουμε (συγγνώμη!)\n\n BSD (2-clause) AboutWindow BSD (2-όρων) Website & marketing:\n AboutView Ιστοσελίδα & μάρκετινγκ:\n +Copyright © 2018-2021, Frederic Cambus AboutView Copyright © 2018-2021, Frederic Cambus 2001 by Andy Ritger based on the Generalized Timing Formula AboutView 2001 απο τον Andy Ritger βασισμένο στο Generalized Timing Formula …and the many people making donations!\n\n AboutView ...και τους πολλούς δωρητές μας!\n\n BSD (4-clause) AboutWindow BSD (4-όρων) diff --git a/data/catalogs/apps/aboutsystem/es.catkeys b/data/catalogs/apps/aboutsystem/es.catkeys index e611105d49..95848dbd97 100644 --- a/data/catalogs/apps/aboutsystem/es.catkeys +++ b/data/catalogs/apps/aboutsystem/es.catkeys @@ -1,4 +1,4 @@ -1 spanish; castilian x-vnd.Haiku-About 2374494647 +1 spanish; castilian x-vnd.Haiku-About 408681589 Revision AboutView Revisión The Haikuware team and their bounty program\n AboutView El equipo de Haikuware y su programa de recompensas\n Copyright © 1999-2007 Michael C. Ring. All rights reserved. AboutView Copyright © 1999-2007 Michael C. Ring. Todos los derechos reservados. @@ -42,6 +42,7 @@ About this system AboutWindow Acerca de este sistema Copyright © 1999-2010 by the authors of Gutenprint. All rights reserved. AboutView Copyright © 1999-2010 por los autores de Gutenprint. Todos los derechos reservados. Copyright © 1994-1997 Mark Kilgard. All rights reserved. AboutView Copyright © 1994-1997 Mark Kilgard. Todos los derechos reservados. AboutSystem System name Acerca del sistema +Copyright © 2019 Joe Drago. All rights reserved. AboutView Copyright © 2019 Joe Drago. Todos los derechos reservados. Copyright © 1995-2001 Lars Düning. All rights reserved. AboutView Copyright © 1995-2001 Lars Düning. Todos los derechos reservados. Copyright © 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper. AboutView Copyright © 1998-2000 Thai Open Source Software Center Ltd y Clark Cooper. Source Code: AboutView Código fuente: diff --git a/data/catalogs/apps/aboutsystem/fi.catkeys b/data/catalogs/apps/aboutsystem/fi.catkeys index 2beae3e9fd..dd7ff6a0d2 100644 --- a/data/catalogs/apps/aboutsystem/fi.catkeys +++ b/data/catalogs/apps/aboutsystem/fi.catkeys @@ -1,4 +1,4 @@ -1 finnish x-vnd.Haiku-About 2374494647 +1 finnish x-vnd.Haiku-About 408681589 Revision AboutView Korjausversio The Haikuware team and their bounty program\n AboutView Haikuware-ryhmä ja heidän bounty-ohjelmansa\n Copyright © 1999-2007 Michael C. Ring. All rights reserved. AboutView Copyright © 1999-2007 Michael C. Ring. Kaikki oikeudet pidätetty. @@ -42,6 +42,7 @@ About this system AboutWindow Tietoa tästä järjestelmästä Copyright © 1999-2010 by the authors of Gutenprint. All rights reserved. AboutView Copyright © 1999-2010 Gutenprint-tekijät. Kaikki oikeudet pidätetty. Copyright © 1994-1997 Mark Kilgard. All rights reserved. AboutView Copyright © 1994-1997 Mark Kilgard. Kaikki oikeudet pidätetty. AboutSystem System name Järjestelmästä +Copyright © 2019 Joe Drago. All rights reserved. AboutView Copyright © 2019 Joe Drago. Kaikki oikeudet varattu. Copyright © 1995-2001 Lars Düning. All rights reserved. AboutView Copyright © 1995-2001 Lars Düning. Kaikki oikeudet pidätetty. Copyright © 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper. AboutView Copyright © 1998-2000 Thai Open Source Software Center Ltd ja Clark Cooper. Source Code: AboutView Lähdekoodi: diff --git a/data/catalogs/apps/aboutsystem/fr.catkeys b/data/catalogs/apps/aboutsystem/fr.catkeys index 00d00f41e3..0eb69cde3a 100644 --- a/data/catalogs/apps/aboutsystem/fr.catkeys +++ b/data/catalogs/apps/aboutsystem/fr.catkeys @@ -1,4 +1,4 @@ -1 french x-vnd.Haiku-About 2374494647 +1 french x-vnd.Haiku-About 408681589 Revision AboutView Révision The Haikuware team and their bounty program\n AboutView L’équipe Haikuware et son programme de récompenses\n Copyright © 1999-2007 Michael C. Ring. All rights reserved. AboutView Copyright © 1999-2007 Michael C. Ring. Tous droits réservés. @@ -42,6 +42,7 @@ About this system AboutWindow À propos de ce système Copyright © 1999-2010 by the authors of Gutenprint. All rights reserved. AboutView Copyright © 1999-2010 par les auteurs de Gutenprint. Tous droits réservés. Copyright © 1994-1997 Mark Kilgard. All rights reserved. AboutView Copyright © 1994-1997 Mark Kilgard. Tous droits réservés. AboutSystem System name À propos du système +Copyright © 2019 Joe Drago. All rights reserved. AboutView Copyright © 2019 Joe Drago. Tous droits réservés. Copyright © 1995-2001 Lars Düning. All rights reserved. AboutView Copyright © 1995-2001 Lars Düning. Tous droits réservés. Copyright © 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper. AboutView Copyright © 1998-2000 Thai Open Source Software Center Ltd et Clark Cooper. Source Code: AboutView Code Source : diff --git a/data/catalogs/apps/aboutsystem/hu.catkeys b/data/catalogs/apps/aboutsystem/hu.catkeys index eec9f20b17..9c96ad1371 100644 --- a/data/catalogs/apps/aboutsystem/hu.catkeys +++ b/data/catalogs/apps/aboutsystem/hu.catkeys @@ -1,4 +1,4 @@ -1 hungarian x-vnd.Haiku-About 2374494647 +1 hungarian x-vnd.Haiku-About 408681589 Revision AboutView kiadás: The Haikuware team and their bounty program\n AboutView A Haikuware csapatának és az adományprogramjuknak\n Copyright © 1999-2007 Michael C. Ring. All rights reserved. AboutView Copyright © 1999-2007 Michael C. Ring. Minden jog fenntartva. @@ -42,6 +42,7 @@ About this system AboutWindow Haiku névjegye Copyright © 1999-2010 by the authors of Gutenprint. All rights reserved. AboutView Copyright © 1999-2010 a Gutenprint szerzőitől. Minden jog fenntartva. Copyright © 1994-1997 Mark Kilgard. All rights reserved. AboutView Copyright © 1994-1997 Mark Kilgard. Minden jog fenntartva. AboutSystem System name Névjegy +Copyright © 2019 Joe Drago. All rights reserved. AboutView Copyright © 2019 Joe Drago. Minden jog fenntartva. Copyright © 1995-2001 Lars Düning. All rights reserved. AboutView Copyright © 1995-2001 Lars Düning. Minden jog fenntartva. Copyright © 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper. AboutView Copyright © 1998-2000 Thai Open Source Software Center Ltd és Clark Cooper. Source Code: AboutView Forráskód: diff --git a/data/catalogs/apps/aboutsystem/id.catkeys b/data/catalogs/apps/aboutsystem/id.catkeys index 78a120a4c6..cfa71a660b 100644 --- a/data/catalogs/apps/aboutsystem/id.catkeys +++ b/data/catalogs/apps/aboutsystem/id.catkeys @@ -1,4 +1,4 @@ -1 indonesian x-vnd.Haiku-About 511528774 +1 indonesian x-vnd.Haiku-About 408681589 Revision AboutView Revisi The Haikuware team and their bounty program\n AboutView Tim Haikuware dan Program hadiah mereka\n Copyright © 1999-2007 Michael C. Ring. All rights reserved. AboutView Hak Cipta © 1999-2007 Michael C. Ring. Hak cipta dilindungi undang-undang. @@ -42,6 +42,7 @@ About this system AboutWindow Tentang sistem ini Copyright © 1999-2010 by the authors of Gutenprint. All rights reserved. AboutView Hak Cipta © 1999-2010 oleh penulis Gutenprint. Hak cipta dilindungi Undang-Undang. Copyright © 1994-1997 Mark Kilgard. All rights reserved. AboutView Hak Cipta © 1994-1997 Mark Kilgard. Hak cipta dilindungi undang-undang. AboutSystem System name AboutSystem +Copyright © 2019 Joe Drago. All rights reserved. AboutView Hak Cipta © 2019 Joe Drago.Semua hak dilindungi. Copyright © 1995-2001 Lars Düning. All rights reserved. AboutView Hak Cipta © 1995-2001 Lars Düning. Hak cipta dilindungi undang-undang. Copyright © 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper. AboutView Hak Cipta © 1998-2000 Thai Open Source Software Center Ltd dan Clark Cooper. Source Code: AboutView Kode sumber: @@ -72,6 +73,7 @@ Memory: AboutView Memori: \n…and probably some more we forgot to mention (sorry!)\n\n AboutView \n…dan mungkin ada lagi yang kami lupa menyebutkan (maaf!)\n\n BSD (2-clause) AboutWindow BSD (2-klausa) Website & marketing:\n AboutView Situs web & marketing:\n +Copyright © 2018-2021, Frederic Cambus AboutView Hak cipta © 2018-2021, Frederic Cambus 2001 by Andy Ritger based on the Generalized Timing Formula AboutView 2001 oleh Andy Ritger berdasarkan formula Generalized Timing …and the many people making donations!\n\n AboutView …dan orang-orang yang ikut menyumbang!\n\n BSD (4-clause) AboutWindow BSD (4-pasal) diff --git a/data/catalogs/apps/aboutsystem/ja.catkeys b/data/catalogs/apps/aboutsystem/ja.catkeys index 23200e7942..9a6905be8e 100644 --- a/data/catalogs/apps/aboutsystem/ja.catkeys +++ b/data/catalogs/apps/aboutsystem/ja.catkeys @@ -1,4 +1,4 @@ -1 japanese x-vnd.Haiku-About 2374494647 +1 japanese x-vnd.Haiku-About 408681589 Revision AboutView リビジョン The Haikuware team and their bounty program\n AboutView Haikuware チーム&報奨金プログラム\n Copyright © 1999-2007 Michael C. Ring. All rights reserved. AboutView Copyright © 1999-2007 Michael C. Ring. All rights reserved. @@ -42,6 +42,7 @@ About this system AboutWindow このシステムについて Copyright © 1999-2010 by the authors of Gutenprint. All rights reserved. AboutView Copyright © 1999-2010 by the authors of Gutenprint. All rights reserved. Copyright © 1994-1997 Mark Kilgard. All rights reserved. AboutView Copyright © 1994-1997 Mark Kilgard. All rights reserved. AboutSystem System name このシステムについて +Copyright © 2019 Joe Drago. All rights reserved. AboutView Copyright © 2019 Joe Drago. All rights reserved. Copyright © 1995-2001 Lars Düning. All rights reserved. AboutView Copyright © 1995-2001 Lars Düning. All rights reserved. Copyright © 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper. AboutView Copyright © 1998-2000 Thai Open Source Software Center LtdおよびClark Cooper. Source Code: AboutView ソースコード: diff --git a/data/catalogs/apps/aboutsystem/pt_BR.catkeys b/data/catalogs/apps/aboutsystem/pt_BR.catkeys index 52bd67b63f..01d1dc60fc 100644 --- a/data/catalogs/apps/aboutsystem/pt_BR.catkeys +++ b/data/catalogs/apps/aboutsystem/pt_BR.catkeys @@ -37,7 +37,7 @@ GNU LGPL v2 AboutWindow GNU LGPL v2 Copyright © 1994-2009, Thomas G. Lane, Guido Vollbeding. This software is based in part on the work of the Independent JPEG Group. AboutView Direitos autorais © 1994-2009, Thomas G. Lane, Guido Vollbeding. Este software é baseado em parte do trabalho do Grupo Independente JPEG. Michael Phipps (project founder)\n\n AboutView Michael Phipps (fundador do projeto)\n\n BSD (3-clause) AboutWindow BSD (3-cláusulas) -About this system AboutWindow Sobre o Haiku +About this system AboutWindow Sobre este sistema %d MiB used (%d%%) AboutView %d MiB usados (%d%%) Copyright © 1999-2010 by the authors of Gutenprint. All rights reserved. AboutView Direitos autorais © 1999-2010 pelos autores do Gutenprint. Todos os direitos reservados. Copyright © 1994-1997 Mark Kilgard. All rights reserved. AboutView Direitos autorais © 1994-1997 Mark Kilgard. Todos os direitos reservados. diff --git a/data/catalogs/apps/aboutsystem/sv.catkeys b/data/catalogs/apps/aboutsystem/sv.catkeys index 95713765e4..4598bcd9a3 100644 --- a/data/catalogs/apps/aboutsystem/sv.catkeys +++ b/data/catalogs/apps/aboutsystem/sv.catkeys @@ -1,4 +1,4 @@ -1 swedish x-vnd.Haiku-About 2374494647 +1 swedish x-vnd.Haiku-About 408681589 Revision AboutView Utgåva The Haikuware team and their bounty program\n AboutView Haikuware-teamet och deras belöningsprogram\n Copyright © 1999-2007 Michael C. Ring. All rights reserved. AboutView Upphovsrätt © 1999-2007 Michael C. Ring. Med ensamrätt. @@ -42,6 +42,7 @@ About this system AboutWindow Om Haiku Copyright © 1999-2010 by the authors of Gutenprint. All rights reserved. AboutView Upphovsrätt © 1999-2010 skaparna av Gutenprint. Med ensamrätt. Copyright © 1994-1997 Mark Kilgard. All rights reserved. AboutView Upphovsrätt © 1994-1997 Mark Kilard. Med ensamrätt. AboutSystem System name OmHaiku +Copyright © 2019 Joe Drago. All rights reserved. AboutView Upphovsrätt © 2019 Joe Drago. Alla rättigheter förbehållna. Copyright © 1995-2001 Lars Düning. All rights reserved. AboutView Upphovsrätt © 1995-2001 Lars Düning. Med ensamrätt. Copyright © 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper. AboutView Upphovsrätt © 1998-2000 Thai Open Source Software Center Ltd och Clark Cooper. Source Code: AboutView Källkod: diff --git a/data/catalogs/apps/aboutsystem/th.catkeys b/data/catalogs/apps/aboutsystem/th.catkeys index 3177774dbe..584e4de62f 100644 --- a/data/catalogs/apps/aboutsystem/th.catkeys +++ b/data/catalogs/apps/aboutsystem/th.catkeys @@ -1,4 +1,4 @@ -1 thai x-vnd.Haiku-About 511528774 +1 thai x-vnd.Haiku-About 2374494647 Revision AboutView ปรับปรุง The Haikuware team and their bounty program\n AboutView ทีมไฮกุแวร์และโปรแกรมสนับสนุนของพวกเขา\n Copyright © 1999-2007 Michael C. Ring. All rights reserved. AboutView ลิขสิทธิ์© 1999-2007 Michael C. Ring สงวนลิขสิทธิ์. @@ -72,6 +72,7 @@ Memory: AboutView หน่วยความจำ: \n…and probably some more we forgot to mention (sorry!)\n\n AboutView \n…และอาจมีบางอย่างที่เราลืมพูดถึง (ขออภัย!) \n\n BSD (2-clause) AboutWindow BSD (2-ข้อ) Website & marketing:\n AboutView เว็บไซต์และการตลาด: \n +Copyright © 2018-2021, Frederic Cambus AboutView ลิขสิทธิ์ © 2018-2021, Frederic Cambus 2001 by Andy Ritger based on the Generalized Timing Formula AboutView 2001 โดย Andy Ritger ตาม Generalized Timing Formula …and the many people making donations!\n\n AboutView …และผู้คนมากมายบริจาคเงิน! \n\n BSD (4-clause) AboutWindow BSD (4-ข้อ) diff --git a/data/catalogs/apps/aboutsystem/tr.catkeys b/data/catalogs/apps/aboutsystem/tr.catkeys index c91e1ab938..d294e0fa1b 100644 --- a/data/catalogs/apps/aboutsystem/tr.catkeys +++ b/data/catalogs/apps/aboutsystem/tr.catkeys @@ -1,4 +1,4 @@ -1 turkish x-vnd.Haiku-About 2374494647 +1 turkish x-vnd.Haiku-About 408681589 Revision AboutView Revizyon The Haikuware team and their bounty program\n AboutView Haikuware takımı ve onların ödül programı\n Copyright © 1999-2007 Michael C. Ring. All rights reserved. AboutView Telif hakkı © 1999-2007 Michael C. Ring. Tüm hakları saklıdır. @@ -42,6 +42,7 @@ About this system AboutWindow Sistem Hakkında Copyright © 1999-2010 by the authors of Gutenprint. All rights reserved. AboutView Telif hakkı © 1999 - 2010 Gutenprint yazarları. Tüm hakları saklıdır. Copyright © 1994-1997 Mark Kilgard. All rights reserved. AboutView Telif hakkı © 1994 - 1997 Mark Kilgard. Tüm hakları saklıdır. AboutSystem System name Sistem Hakkında +Copyright © 2019 Joe Drago. All rights reserved. AboutView Telif hakkı © 2019 Joe Drago. Tüm hakları saklıdır. Copyright © 1995-2001 Lars Düning. All rights reserved. AboutView Telif hakkı © 1995-2001 Lars Düning. Tüm hakları saklıdır. Copyright © 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper. AboutView Telif hakkı © 1998-2000 Thai Open Source Software Center Ltd ve Clark Cooper. Source Code: AboutView Kaynak Kodu: diff --git a/data/catalogs/apps/aboutsystem/uk.catkeys b/data/catalogs/apps/aboutsystem/uk.catkeys index 241f4a87d7..9f4129b341 100644 --- a/data/catalogs/apps/aboutsystem/uk.catkeys +++ b/data/catalogs/apps/aboutsystem/uk.catkeys @@ -1,4 +1,4 @@ -1 ukrainian x-vnd.Haiku-About 2374494647 +1 ukrainian x-vnd.Haiku-About 408681589 Revision AboutView Ревізія The Haikuware team and their bounty program\n AboutView Команді Haikuware з їхньою програмою заохочень\n Copyright © 1999-2007 Michael C. Ring. All rights reserved. AboutView Copyright © 1999-2007 Michael C. Ring. All rights reserved. @@ -42,6 +42,7 @@ About this system AboutWindow Про цю систему Copyright © 1999-2010 by the authors of Gutenprint. All rights reserved. AboutView Copyright © 1999-2010 by the authors of Gutenprint. All rights reserved. Copyright © 1994-1997 Mark Kilgard. All rights reserved. AboutView Copyright © 1994-1997 Mark Kilgard. All rights reserved. AboutSystem System name AboutSystem +Copyright © 2019 Joe Drago. All rights reserved. AboutView Copyright © 2019 Joe Drago. Всі права захищені. Copyright © 1995-2001 Lars Düning. All rights reserved. AboutView Copyright © 1995-2001 Lars Düning. All rights reserved. Copyright © 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper. AboutView Copyright © 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper. Source Code: AboutView Початковий код: diff --git a/data/catalogs/apps/activitymonitor/da.catkeys b/data/catalogs/apps/activitymonitor/da.catkeys index 41ecf5931a..599cd1e4a0 100644 --- a/data/catalogs/apps/activitymonitor/da.catkeys +++ b/data/catalogs/apps/activitymonitor/da.catkeys @@ -5,7 +5,7 @@ TX DataSource Shorter version for Sending TX Block cache memory DataSource Blok mellemlager hukommelse %lld ms SettingsWindow %lld ms MiB DataSource MiB -Media nodes DataSource Medie noder +Media nodes DataSource Medienoder Text clipboard DataSource Tekst udklipsholder Network send DataSource Netværk afsende Running applications DataSource Kørende programmer diff --git a/data/catalogs/apps/activitymonitor/el.catkeys b/data/catalogs/apps/activitymonitor/el.catkeys index 39b9c64865..60099af28f 100644 --- a/data/catalogs/apps/activitymonitor/el.catkeys +++ b/data/catalogs/apps/activitymonitor/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.Haiku-ActivityMonitor 3672498538 +1 greek, modern (1453-) x-vnd.Haiku-ActivityMonitor 2601047281 Teams DataSource Ομάδες Semaphores DataSource Σηματοφόροι TX DataSource Shorter version for Sending ΑΠ @@ -17,6 +17,7 @@ Remove graph ActivityView Αφαίρεση γραφήματος Swap space DataSource Χώρος Swap CPU DataSource ΚΜΕ ActivityMonitor System name Διαχείριση Εργασιών +CPU %d DataSource ΚΜΕ %d Update time interval: SettingsWindow Ενημέρωση χρονικού διαστήματος: RX DataSource Shorter version for Receiving. ΛΗ Settings… ActivityWindow Ρυθμίσεις… @@ -30,6 +31,7 @@ Used memory DataSource Χρησιμοποιημένη μνήμη %.1f faults/s DataSource %.1f σφάλματα/s Show legend ActivityView Εμφάνιση υπομνήματος Cached memory DataSource Μνήμη προσωρινής αποθήκευσης +CPU %d usage DataSource Χρήση ΚΜΕ %d File ActivityWindow Αρχείο Ports DataSource Θύρες Page faults DataSource Σφάλματα σελίδας diff --git a/data/catalogs/apps/autoraise/el.catkeys b/data/catalogs/apps/autoraise/el.catkeys index 90264df108..ee6aba5c10 100644 --- a/data/catalogs/apps/autoraise/el.catkeys +++ b/data/catalogs/apps/autoraise/el.catkeys @@ -1,25 +1,25 @@ 1 greek, modern (1453-) x-vnd.mmu.AutoRaise 3527604525 AutoRaise, (c) 2002, mmu_man\nEnjoy :-) AutoRaiseIcon AutoRaise, (c) 2002, mmu_man\nΚαλή διασκέδαση :-) -2 s AutoRaiseIcon 2 δ +2 s AutoRaiseIcon 2 δευτ. OK AutoRaiseIcon Εντάξει AutoRaise System name AutoRaise -0.2 s AutoRaiseIcon 0.2 δ -1 s AutoRaiseIcon 1 δ +0.2 s AutoRaiseIcon 0.2 δευτ. +1 s AutoRaiseIcon 1 δευτ. Delay AutoRaiseIcon Καθυστέρηση -5 s AutoRaiseIcon 5 δ +5 s AutoRaiseIcon 5 δευτ. Active AutoRaiseIcon Ενεργό -0.1 s AutoRaiseIcon 0.1 δ +0.1 s AutoRaiseIcon 0.1 δευτ. Default (all windows) AutoRaiseIcon Προεπιλογή (όλα τα παράθυρα) Instant warping (ffm) AutoRaiseIcon Άμεση παραμόρφωση (ffm) About AutoRaise… AutoRaiseIcon Σχετικά με το AutoRaise… Normal AutoRaiseIcon Κανονικό -0.5 s AutoRaiseIcon 0.5 δ +0.5 s AutoRaiseIcon 0.5 δευτ. Deskbar only (touch) AutoRaiseIcon Μόνο γραμμή εργασιών (αφή) -4 s AutoRaiseIcon 4 δ +4 s AutoRaiseIcon 4 δευτ. Focus follows mouse AutoRaiseIcon Να εστιάζεται όποιο παράθυρο δείχνει ο κέρσορας Deskbar only (over its area) AutoRaiseIcon Μόνο στην Γραμμή Εργασιών (από πάνω) Inactive behaviour AutoRaiseIcon Ανενεργή συμπεριφορά Mode AutoRaiseIcon Λειτουργία Warping (ffm) AutoRaiseIcon Παραμόρφωση (ffm) Remove from tray AutoRaiseIcon Αφαίρεση από την γραμμή εργασιών -3 s AutoRaiseIcon 3 δ +3 s AutoRaiseIcon 3 δευτ. diff --git a/data/catalogs/apps/autoraise/pt_BR.catkeys b/data/catalogs/apps/autoraise/pt_BR.catkeys index 3e3d066473..d78d005ef5 100644 --- a/data/catalogs/apps/autoraise/pt_BR.catkeys +++ b/data/catalogs/apps/autoraise/pt_BR.catkeys @@ -2,7 +2,7 @@ AutoRaise, (c) 2002, mmu_man\nEnjoy :-) AutoRaiseIcon AutoRaise, (c) 2002, mmu_man\nAproveite :-) 2 s AutoRaiseIcon 2 s OK AutoRaiseIcon OK -AutoRaise System name AutoRaise +AutoRaise System name Auto-Elevar 0.2 s AutoRaiseIcon 0.2 s 1 s AutoRaiseIcon 1 s Delay AutoRaiseIcon Atraso diff --git a/data/catalogs/apps/bootmanager/da.catkeys b/data/catalogs/apps/bootmanager/da.catkeys index 9868141be5..6687716250 100644 --- a/data/catalogs/apps/bootmanager/da.catkeys +++ b/data/catalogs/apps/bootmanager/da.catkeys @@ -2,9 +2,9 @@ Old Master Boot Record backup failure BootManagerController Title Sikkerhedskopiering af gammel Master Boot Record mislykkedes At least one partition must be selected! BootManagerController Mindst en af partitionerne skal være valgt! No space available! DrivesPage Cannot install Ingen plads tilgængelig! -Boot Manager is unable to read the partition table! BootManagerController Opstartsmanageren er ude af stand til at læse partitionstabellen! +Boot Manager is unable to read the partition table! BootManagerController Opstartshåndteringen er ude af stand til at læse partitionstabellen! Immediately DefaultPartitionPage Omgående -Uninstall Boot Manager UninstallPage Title Afinstaller opstartsmanageren +Uninstall Boot Manager UninstallPage Title Afinstaller Opstartshåndteringen Unknown LegacyBootMenu Text is shown for an unknown partition type Ukendt Installation of boot menu failed BootManagerController Title Installationen af opstartsmenuen mislykkedes Backup Master Boot Record BootManagerController Title Sikkerhedskopiér Master Boot Record @@ -19,12 +19,12 @@ After three seconds DefaultPartitionPage Efter tre sekunder Read only! DrivesPage Cannot install Skrivebeskyttet! Write boot menu BootManagerController Button Skriv opstartsmenu OK BootManagerController Button OK -Uninstall boot manager BootManagerController Title Afinstaller opstartsmanager +Uninstall boot manager BootManagerController Title Afinstaller Opstartshåndtering About to write the following boot menu to the boot disk (%s). Please verify the information below before continuing. BootManagerController I gang med at skrive følgende opstartsmenu til opstartsdisken (%s). Verificer venligst informationen nedenfor før du fortsætter. The first partition on the disk starts too early and does not leave enough space free for a boot menu.\nBoot Manager needs 2 KiB available space before the first partition. BootManagerController Den første partition på disken starter for tidligt og efterlader ikke nok ledig plads til en opstartsmenu.\nOpstartshåndteringen behøver 2 KiB tilgængelige plads før den første partition. Uninstall DrivesPage Button Afinstaller Update DrivesPage Button Opdater -The Master Boot Record (MBR) of the boot device:\n\t%s\nwill now be saved to disk. Please select a file to save the MBR into.\n\nIf something goes wrong with the installation or if you later wish to remove the boot menu, simply run the bootman program and choose the 'Uninstall' option. BootManagerController Master Boot Record (MBR) af start-enheden:\n\t%s\nvil nu blive gemt til disken. Vælg venligst en fil til at gemme MBR i.\n\nHvis noget går galt ved installationen, eller hvis du senere vil fjerne start-menuen, skal du blot køre opstartsmanageren og vælge 'Afinstaller'. +The Master Boot Record (MBR) of the boot device:\n\t%s\nwill now be saved to disk. Please select a file to save the MBR into.\n\nIf something goes wrong with the installation or if you later wish to remove the boot menu, simply run the bootman program and choose the 'Uninstall' option. BootManagerController Master Boot Record (MBR) af start-enheden:\n\t%s\nvil nu blive gemt til disken. Vælg venligst en fil til at gemme MBR i.\n\nHvis noget går galt ved installationen, eller hvis du senere vil fjerne start-menuen, skal du blot køre opstartshåndteringensprogrammet og vælge 'Afinstaller'. Default Partition DefaultPartitionPage Title Standardpartition Installation of boot menu completed BootManagerController Title Installationen af opstartsmenuen fuldført After one minute DefaultPartitionPage Efter et minut @@ -33,12 +33,12 @@ USB Drive DrivesPage Default disk name USB-drev Restore MBR BootManagerController Button Gendan MBR Hard Drive DrivesPage Default disk name Harddisk Drives DrivesPage Title Drev -The following partitions were detected. Please check the box next to the partitions to be included in the boot menu. You can also set the names of the partitions as you would like them to appear in the boot menu. PartitionsPage Følgende partitioner blev fundet. Marker venligst boksen ved siden af partitionerne for at inkludere dem i opstartsmenuen. Du kan også sætte navnet på partitionerne som du vil have dem til at vise i opstartsmenuen. +The following partitions were detected. Please check the box next to the partitions to be included in the boot menu. You can also set the names of the partitions as you would like them to appear in the boot menu. PartitionsPage Følgende partitioner blev fundet. Marker venligst boksen ved siden af partitionerne for at medtage dem i opstartsmenuen. Du kan også sætte navnet på partitionerne som du vil have dem til at vise i opstartsmenuen. After five seconds DefaultPartitionPage Efter fem sekunder Timeout: %s DefaultPartitionPage Timeout: %s The Master Boot Record could not be restored! BootManagerController Master Boot Record kunne ikke gendannes! -The partition table of the first hard disk is not compatible with Boot Manager.\nBoot Manager only works with IBM PC MBR partitions. BootManagerController Partitionstabellen på den første harddisk er ikke kompatibel med opstartshåndteringen.\nOpstartshåndtering virker kun med IBM PC MBR-partitioner. -Please select the drive you want the boot manager to be installed to or uninstalled from. DrivesPage Vælg venligst det drev opstartsmanageren skal installeres på eller afinstalleres fra. +The partition table of the first hard disk is not compatible with Boot Manager.\nBoot Manager only works with IBM PC MBR partitions. BootManagerController Partitionstabellen på den første harddisk er ikke kompatibel med Opstartshåndtering.\nOpstartshåndtering virker kun med IBM PC MBR-partitioner. +Please select the drive you want the boot manager to be installed to or uninstalled from. DrivesPage Vælg venligst det drev opstartshåndteringen skal installeres på eller afinstalleres fra. After four seconds DefaultPartitionPage Efter fire sekunder Unnamed %d LegacyBootMenu Default name of a partition whose name could not be read from disk; characters in codepage 437 are allowed only Unavngivet %d First partition starts too early BootManagerController Title Første partition starter for tidligt @@ -57,13 +57,13 @@ After two seconds DefaultPartitionPage Efter to sekunder Partition table not compatible BootManagerController Title Partitionstabellen er ikke kompatibel The Master Boot Record of the boot device (%DISK) has been successfully restored from %FILE. BootManagerController Master Boot Record fra opstartsenheden (%DISK) er blevet gendannet fra %FILE. Done BootManagerController Button Færdig -BootManager System name Opstartsmanager -Please locate the Master Boot Record (MBR) save file to restore from. This is the file that was created when the boot manager was first installed. UninstallPage Find venligst Master Boot Record (MBR) filen til at gendanne fra. Dette er filen der blev lavet da opstartsmanageren blev installeret første gang. -Please locate the Master Boot Record (MBR) save file to restore from. This is the file that was created when the boot manager was first installed. BootManagerController Find venligst Master Boot Record (MBR) filen til at gendanne fra. Dette er filen der blev lavet da opstartsmanageren blev installeret første gang. +BootManager System name Opstartshåndtering +Please locate the Master Boot Record (MBR) save file to restore from. This is the file that was created when the boot manager was first installed. UninstallPage Find venligst Master Boot Record (MBR) filen til at gendanne fra. Dette er filen der blev lavet da opstartshåndteringen blev installeret første gang. +Please locate the Master Boot Record (MBR) save file to restore from. This is the file that was created when the boot manager was first installed. BootManagerController Find venligst Master Boot Record (MBR) filen til at gendanne fra. Dette er filen der blev lavet da opstartshåndteringen blev installeret første gang. About to restore the Master Boot Record (MBR) of %disk from %file. Do you wish to continue? BootManagerController Don't translate the place holders: %disk and %file I gang med at gendanne Master Boot Record (MBR) af %disk fra %file. Vil du fortsætte? Install DrivesPage Button Installer File: FileSelectionPage Text control label Fil: Error reading partition table BootManagerController Title Fejl ved læsninger af partitionstabellen Back BootManagerController Button Tilbage -The boot manager has been successfully installed on your system. BootManagerController Opstartsmanageren er blevet installeret på dit system. +The boot manager has been successfully installed on your system. BootManagerController Opstartshåndteringen er blevet installeret på dit system. The old Master Boot Record could not be saved to %s. You can continue the installation but there will be no way to uninstall the boot menu. BootManagerController Den gamle Master Boot Record kunne ikke gemmes til %s. Du kan fortsætte installationen, men det vil ikke være muligt at afinstallere opstartsmenuen. diff --git a/data/catalogs/apps/charactermap/ca.catkeys b/data/catalogs/apps/charactermap/ca.catkeys index 56a02ec528..4f18c5b2b4 100644 --- a/data/catalogs/apps/charactermap/ca.catkeys +++ b/data/catalogs/apps/charactermap/ca.catkeys @@ -1,4 +1,4 @@ -1 catalan; valencian x-vnd.Haiku-CharacterMap 2410613018 +1 catalan; valencian x-vnd.Haiku-CharacterMap 917523322 Tirhuta UnicodeBlocks Tirhuta Miscellaneous mathematical symbols B UnicodeBlocks Símbols matemàtics diversos - B Latin extended E UnicodeBlocks Llatí ampliat E @@ -60,6 +60,7 @@ CJK unified ideographs extension C UnicodeBlocks Extensió d'ideògrafs unifica Ancient Greek musical notation UnicodeBlocks Notació musical grega antiga Thai UnicodeBlocks Tai Ethiopic supplement UnicodeBlocks Suplement etíop +Only show blocks contained in font CharacterWindow Mostra només els blocs continguts a la lletra. Chess symbols UnicodeBlocks Símbols d’escacs Yijing hexagram symbols UnicodeBlocks Símbols d'hexagrames Yijing Ottoman Siyaq numbers UnicodeBlocks Nombres de Siyaq otomans diff --git a/data/catalogs/apps/charactermap/cs.catkeys b/data/catalogs/apps/charactermap/cs.catkeys index 0d3403ee35..ebd04824f7 100644 --- a/data/catalogs/apps/charactermap/cs.catkeys +++ b/data/catalogs/apps/charactermap/cs.catkeys @@ -1,4 +1,4 @@ -1 czech x-vnd.Haiku-CharacterMap 2410613018 +1 czech x-vnd.Haiku-CharacterMap 917523322 Tirhuta UnicodeBlocks Tirhuta Miscellaneous mathematical symbols B UnicodeBlocks Různé matematické symboly B Latin extended E UnicodeBlocks Latinka rozšířená E @@ -60,6 +60,7 @@ CJK unified ideographs extension C UnicodeBlocks CJK sjednocené ideografické Ancient Greek musical notation UnicodeBlocks Starořecká hudební notace Thai UnicodeBlocks Thajština Ethiopic supplement UnicodeBlocks Etiopský doplněk +Only show blocks contained in font CharacterWindow Zobrazit pouze bloky obsažené v písmu Chess symbols UnicodeBlocks Šachové znaky Yijing hexagram symbols UnicodeBlocks Yijing hexagram symboly Ottoman Siyaq numbers UnicodeBlocks Osmanská čísla Siyaq diff --git a/data/catalogs/apps/charactermap/da.catkeys b/data/catalogs/apps/charactermap/da.catkeys index a8d02e6ff5..d06e0a3e98 100644 --- a/data/catalogs/apps/charactermap/da.catkeys +++ b/data/catalogs/apps/charactermap/da.catkeys @@ -1,54 +1,90 @@ -1 danish x-vnd.Haiku-CharacterMap 3425050642 -Miscellaneous mathematical symbols B UnicodeBlocks Forskellige matematiske symboler, B +1 danish x-vnd.Haiku-CharacterMap 917523322 +Tirhuta UnicodeBlocks Tirhuta +Miscellaneous mathematical symbols B UnicodeBlocks Diverse matematiske symboler B Latin extended E UnicodeBlocks Latin, udvidet E +Dogra UnicodeBlocks Dogra +Javanese UnicodeBlocks Javanese Saurashtra UnicodeBlocks Saurashtra -Arabic supplement UnicodeBlocks Arabisk supplement +Arabic supplement UnicodeBlocks Arabisk, supplement Hanunoo UnicodeBlocks Hanuoo Ogham UnicodeBlocks Ogham +Inscriptional Pahlavi UnicodeBlocks Inscriptional Pahlavi Hebrew UnicodeBlocks Hebraisk Katakana UnicodeBlocks Katakansk +Miao UnicodeBlocks Miao +Mro UnicodeBlocks Mro Mongolian UnicodeBlocks Mongolsk +Pau Cin Hau UnicodeBlocks Pau Cin Hau +Yezidi UnicodeBlocks Yezidi Linear B ideograms UnicodeBlocks Lineær-B-skrift +Caucasian Albanian UnicodeBlocks Caucasian Albanian +CJK unified ideographs extension D UnicodeBlocks CJK unified ideographs extension D +Sharada UnicodeBlocks Sharada Multani UnicodeBlocks Multani +Linear A UnicodeBlocks Linear A CJK compatibility ideographs Supplement UnicodeBlocks CJK, supplement til kompatibilitets-ideografer +Pahawh Hmong UnicodeBlocks Pahawh Hmong Bopomofo extended UnicodeBlocks Bopomofo, udvidet +Bassa Vah UnicodeBlocks Bassa Vah +Georgian extended UnicodeBlocks Georgian, udvidet Mathematical alphanumeric symbols UnicodeBlocks Matematiske alfanumeriske symboler Coptic UnicodeBlocks Koptisk +Masaram Gondi UnicodeBlocks Masaram Gondi Cuneiform numbers and punctuation UnicodeBlocks Kileskrift, tal og tegnsætning -Miscellaneous symbols UnicodeBlocks Forskellige symboler +Miscellaneous symbols UnicodeBlocks Diverse symboler +Kana supplement UnicodeBlocks Kana, supplement +Medefaidrin UnicodeBlocks Medefaidrin +Enclosed ideographic supplement UnicodeBlocks Enclosed ideographic supplement +Warang Citi UnicodeBlocks Warang Citi Vertical forms UnicodeBlocks Vertikale former -Miscellaneous mathematical symbols A UnicodeBlocks Forskellige matematiske symboler, A +Miscellaneous mathematical symbols A UnicodeBlocks Diverse matematiske symboler A CharacterMap System name Tegnoversigt Latin extended D UnicodeBlocks Latin, udvidet D Aegean numbers UnicodeBlocks Ægæiske tal Hangul syllables UnicodeBlocks Hangul-stavelser Modifier tone letters UnicodeBlocks Ændringstast, tone-bogstaver +Kaithi UnicodeBlocks Kaithi +Psalter Pahlavi UnicodeBlocks Psalter Pahlavi Newa UnicodeBlocks Newa View CharacterWindow Vis +Rumi numeral symbols UnicodeBlocks Rumi numeral symbols Enclosed CJK letters and months UnicodeBlocks CJK, lukkede bogstaver og måneder Deseret UnicodeBlocks Deseret Cham UnicodeBlocks Cham Cyrillic UnicodeBlocks Kyrillisk +Makasar UnicodeBlocks Makasar +Palmyrene UnicodeBlocks Palmyrene Shavian UnicodeBlocks Shaviansk Tangut UnicodeBlocks Tangut +CJK unified ideographs extension C UnicodeBlocks CJK unified ideographs extension C Ancient Greek musical notation UnicodeBlocks Oldgræsk musiknotation Thai UnicodeBlocks Thailandsk Ethiopic supplement UnicodeBlocks Etiopisk, supplement +Only show blocks contained in font CharacterWindow Vis kun blokke som er indeholdt i skrifttype +Chess symbols UnicodeBlocks Skaksymboler Yijing hexagram symbols UnicodeBlocks Yijing, heksagram-symboler +Ottoman Siyaq numbers UnicodeBlocks Ottoman Siyaq numbers Ideographic symbols and punctuation UnicodeBlocks Ideogram-symboler og -tegnsætning File CharacterWindow Fil +Sudanese supplement UnicodeBlocks Sudanese, supplement Myanmar UnicodeBlocks Burmesisk Tifinagh UnicodeBlocks Tifinagh Musical symbols UnicodeBlocks Musikalske symboler +Bamum supplement UnicodeBlocks Bamum, supplement Arabic presentation forms B UnicodeBlocks Arabiske præsentationsformer, B Cypriot syllabary UnicodeBlocks Kypriotiske stavelsestegn IPA extensions UnicodeBlocks IPA-udvidelser Katakana phonetic extensions UnicodeBlocks Katakana, fonetiske udvidelser N'Ko UnicodeBlocks N'Ko -Cherokee supplement UnicodeBlocks Cherokee-supplement +Cherokee supplement UnicodeBlocks Cherokee, supplement Halfwidth and fullwidth forms UnicodeBlocks Halvbredde- og fuldbredde-former Counting rod numerals UnicodeBlocks Stenalder-tal +Sora Sompeng UnicodeBlocks Sora Sompeng +Supplemental arrows C UnicodeBlocks Supplemental arrows C +Alchemical symbols UnicodeBlocks Alchemical symbols Latin extended C UnicodeBlocks Latin, udvidet C +Old Turkic UnicodeBlocks Old Turkic +Meroitic hieroglyphs UnicodeBlocks Meroitic hieroglyphs Combining diacritical marks for symbols UnicodeBlocks Kombinerende diakritiske tegn for symboler Osage UnicodeBlocks Osage Combining diacritical marks supplement UnicodeBlocks Kombinerende diakritiske tegn, supplement @@ -58,46 +94,66 @@ Georgian UnicodeBlocks Georgisk CJK compatibility forms UnicodeBlocks CJK, kompatibilitetsformer Old Hungarian UnicodeBlocks Ungarske runer CJK unified ideographs extension B UnicodeBlocks CJK, forenede ideografer, udvidet B +Meroitic cursive UnicodeBlocks Meroitic cursive Ahom UnicodeBlocks Ahom +Nyiakeng Puachue Hmong UnicodeBlocks Nyiakeng Puachue Hmong +Duployan UnicodeBlocks Duployan Early Dynastic Cuneiform UnicodeBlocks Tidlig dynastisk kileskrift +Kana extended A UnicodeBlocks Kana, udvidet A Arabic presentation forms A UnicodeBlocks Arabisk, præsentationsforme A Filter: CharacterWindow Filter: +Small Kana extension UnicodeBlocks Small Kana extension Kannada UnicodeBlocks Kannada +Brahmi UnicodeBlocks Brahmi Lydian UnicodeBlocks Lydisk Hatran UnicodeBlocks Hatran Glagolitic supplement UnicodeBlocks Glagolitisk supplement +Elymaic UnicodeBlocks Elymaic Gurmukhi UnicodeBlocks Gurmukhi Supplemental arrows B UnicodeBlocks Supplement til pile, B CJK unified ideographs UnicodeBlocks CJK, forenede ideografer +Enclosed alphanumeric supplement UnicodeBlocks Enclosed alphanumeric supplement Latin extended B UnicodeBlocks Latin, udvidet B Phonetic extensions UnicodeBlocks Fonetiske udvidelser +Indic Siyaq numbers UnicodeBlocks Indic Siyaq numbers +Batak UnicodeBlocks Batak Code CharacterWindow Kode Block elements UnicodeBlocks Blok-elementer +Ethiopic extended A UnicodeBlocks Ethiopic, udvidet A Mahjong tiles UnicodeBlocks Mahjongbrikker Carian UnicodeBlocks Karisk Gothic UnicodeBlocks Gotisk Specials UnicodeBlocks Specielle +Sinhala Archaic numbers UnicodeBlocks Sinhala Archaic numbers Syloti Nagri UnicodeBlocks Syloti Nagri Latin-1 supplement UnicodeBlocks Latin-1, supplement CJK unified ideographs extension A UnicodeBlocks CJK, forenede ideografer, udvidet A Linear B syllabary UnicodeBlocks Lineær-B-stavelser Yi syllables UnicodeBlocks Yi-stavelser +Khojki UnicodeBlocks Khojki Currency symbols UnicodeBlocks Valutasymboler +Soyombo UnicodeBlocks Soyombo +Khitan small script UnicodeBlocks Khitan small script +Imperial Aramaic UnicodeBlocks Imperial Aramaic Domino tiles UnicodeBlocks Dominobrikker Kayah Li UnicodeBlocks Kayah Li Oriya UnicodeBlocks Oriya Ancient Greek numbers UnicodeBlocks Oldgræske tal Superscripts and subscripts UnicodeBlocks Hævet og sænket Osmanya UnicodeBlocks Osmanya +Modi UnicodeBlocks Modi Small form variants UnicodeBlocks Små form-varianser Arrows UnicodeBlocks Pile +Tangut supplement UnicodeBlocks Tangut, supplement Bengali UnicodeBlocks Bengalsk Phoenician UnicodeBlocks Fønikisk Ideographic description characters UnicodeBlocks Ideografiske beskrivelses-tegn Supplemental arrows A UnicodeBlocks Supplement til pile, A Rejang UnicodeBlocks Rejang Number forms UnicodeBlocks Talformer +Avestan UnicodeBlocks Avestan Latin extended A UnicodeBlocks Latin, udvidet A +Zanabazar Square UnicodeBlocks Zanabazar Square Sundanese UnicodeBlocks Sundanesisk Geometric shapes UnicodeBlocks Geometriske former Clear CharacterWindow Klar @@ -106,65 +162,104 @@ Adlam UnicodeBlocks Adlam Arabic UnicodeBlocks Arabisk Khmer symbols UnicodeBlocks Khmer-symboler Ol Chiki UnicodeBlocks Ol Chiki +Wancho UnicodeBlocks Wancho Box drawing UnicodeBlocks Kasse-tegning +Egyptian hieroglyphs UnicodeBlocks Egyptian hieroglyphs Vai UnicodeBlocks Vai +Meetei Mayek extensions UnicodeBlocks Meetei Mayek extensions Ethiopic extended UnicodeBlocks Etiopisk, udvidet CJK compatibility UnicodeBlocks CJK, kompatibilitet Tai Le UnicodeBlocks Tai Le +Old Sogdian UnicodeBlocks Old Sogdian +Devanagari extended UnicodeBlocks Devanagari, udvidet Lao UnicodeBlocks Laotisk +Chorasmian UnicodeBlocks Chorasmian +Lisu supplement UnicodeBlocks Lisu, supplement +Takri UnicodeBlocks Takri +Shorthand format controls UnicodeBlocks Shorthand format controls +Inscriptional Parthian UnicodeBlocks Inscriptional Parthian Optical character recognition UnicodeBlocks Optisk tegngenkendelse Tamil UnicodeBlocks Tamilsk +Lisu UnicodeBlocks Lisu +Nandingari UnicodeBlocks Nandingari Greek extended UnicodeBlocks Græsk, udvidet +Myanmar extended B UnicodeBlocks Myanmar, udvidet B +Mahajani UnicodeBlocks Mahajani Lepcha UnicodeBlocks Lepcha +Mandaic UnicodeBlocks Mandaic Old italic UnicodeBlocks Gammel italisk Quit CharacterWindow Afslut +Playing cards UnicodeBlocks Spillekort +Chakma UnicodeBlocks Chakma Buhid UnicodeBlocks Buhid Supplementary private use area B UnicodeBlocks Supplementært privatområde B Cuneiform UnicodeBlocks Kileskrift Alphabetic presentation forms UnicodeBlocks Alfabetiske præsentations-former +Mayan numerals UnicodeBlocks Mayan numerals Tangut components UnicodeBlocks Tangut-komponenter Letterlike symbols UnicodeBlocks Tegnlignende symboler Spacing modifier letters UnicodeBlocks Mellemrums-ændrende tegn Unified Canadian Aboriginal syllabics UnicodeBlocks Forenede Canadiske Aborigin-stavelser +Hanifi Rohingya UnicodeBlocks Hanifi Rohingya Dingbats UnicodeBlocks Dingbat-tegn Mathematical operators UnicodeBlocks Matematiske operatorer Bopomofo UnicodeBlocks Bopomofo Variation selectors UnicodeBlocks Variationsvælgere Variation selectors supplement UnicodeBlocks Variationsvælgere, supplement +Old Permic UnicodeBlocks Old Permic Supplemental mathematical operators UnicodeBlocks Supplement til matematiske operatorer Sinhala UnicodeBlocks Sinhala Bhaiksuki UnicodeBlocks Bhaiksuki +Dives Akuru UnicodeBlocks Dives Akuru Ugaritic UnicodeBlocks Ugaritisk +Old North Arabian UnicodeBlocks Old North Arabian +Mende Kikakui UnicodeBlocks Mende Kikakui +Geometric shapes extended UnicodeBlocks Geometriske formare, udvidet +Transport and map symbols UnicodeBlocks Transport- og kortsymboler +Tamil supplement UnicodeBlocks Tamil, supplement +Combining diacritical marks extended UnicodeBlocks Combining diacritical marks extended Cyrillic extended C UnicodeBlocks Kyrillisk, udvidet C Syriac UnicodeBlocks Syrisk Private use area UnicodeBlocks Privatområde +Vedic extensions UnicodeBlocks Vedic extensions Supplement punctuation UnicodeBlocks Supplement til tegnsætning Lycian UnicodeBlocks Lykisk +Myanmar extended A UnicodeBlocks Myanmar, udvidet A Ancient symbols UnicodeBlocks Antikke symboler -Miscellaneous symbols and arrows UnicodeBlocks Forskellige symboler og pile +Arabic mathematical alphabetic symbols UnicodeBlocks Arabic mathematical alphabetic symbols +Miscellaneous symbols and arrows UnicodeBlocks Diverse symboler og pile +Common Indic number forms UnicodeBlocks Common Indic number forms Kharoshthi UnicodeBlocks Kharoshthisk Buginese UnicodeBlocks Buginesisk Telugu UnicodeBlocks Telugu Cyrillic supplement UnicodeBlocks Kyrillisk supplement +Grantha UnicodeBlocks Grantha Yi Radicals UnicodeBlocks Yi-radikaler Supplementary private use area A UnicodeBlocks Supplementært privatområde A Armenian UnicodeBlocks Armensk Miscellaneous symbols and pictographs UnicodeBlocks Diverse symboler og piktogrammer Phags-pa UnicodeBlocks Phags-pa +Nabataean UnicodeBlocks Nabataean +Meetei Mayek UnicodeBlocks Meetei Mayek CJK compatibility ideographs UnicodeBlocks CJK, kompatibilitets-ideografer Show private blocks CharacterWindow Vis private blokke +Samaritan UnicodeBlocks Samaritan Latin extended additional UnicodeBlocks Latin, udvidet yderligere Tibetan UnicodeBlocks Tibetansk Combining diacritical marks UnicodeBlocks Kombinerende diakritiske tegn Tags UnicodeBlocks Mærkater Khmer UnicodeBlocks Khmer +Hangul Jamo extended B UnicodeBlocks Hangul Jamo, udvidet B +Tai Viet UnicodeBlocks Tai Viet Georgian supplement UnicodeBlocks Georgisk, supplement Tagalog UnicodeBlocks Tagalog +CJK unified ideographs extension F UnicodeBlocks CJK unified ideographs extension F Supplemental Symbols and Pictographs UnicodeBlocks Supplerende symboler og piktogrammer Devanagari UnicodeBlocks Devanagari Runic UnicodeBlocks Runer (Futhark) General punctuation UnicodeBlocks Almen tegnsætning Mongolian supplement UnicodeBlocks Mongolsk, supplement +Khudawadi UnicodeBlocks Khudawadi Glagotic UnicodeBlocks Glagotisk Cyrillic extended B UnicodeBlocks Kyrillisk, udvidet B Anatolian hieroglyphs UnicodeBlocks Anatolske hieroglyffer @@ -178,27 +273,40 @@ Kangxi radicals UnicodeBlocks Kangxi-radikaler Copy character CharacterView Kopiér tegn Hangul Jamo UnicodeBlocks Hangul Jamo Font CharacterWindow Skrifttype +Ornamental dingbats UnicodeBlocks Ornamental dingbats +Egyptian hieroglyph format controls UnicodeBlocks Egyptian hieroglyph format controls +Manichaean UnicodeBlocks Manichaean Phaistos disc UnicodeBlocks Faistos-diskos (den Minoiske kalender) -Miscellaneous technical UnicodeBlocks Forskelligt teknisk +Miscellaneous technical UnicodeBlocks Diverse teknisk Braille patterns UnicodeBlocks Braillé-mønstre Enclosed alphanumerics UnicodeBlocks Vedlagt alfanumeriske Thaana UnicodeBlocks Thaana Ethiopic UnicodeBlocks Etiopisk Byzantine musical symbols UnicodeBlocks Byzantinske musikalske symboler Gujarati UnicodeBlocks Gujarati +Symbols for legacy computing UnicodeBlocks Symbols for legacy computing +Gunjala Gondi UnicodeBlocks Gunjala Gondi +Hangul Jamo extended A UnicodeBlocks Hangul Jamo, udvidet A +Elbasan UnicodeBlocks Elbasan Hangul compatibility Jamo UnicodeBlocks Hangul Jamo kompatibilitet Phonetic extensions supplement UnicodeBlocks Fonetisk supplement, udvidet CJK unified ideographs extension E UnicodeBlocks CJK, forenede ideografer, udvidet E +Nüshu UnicodeBlocks Nüshu Old Persian UnicodeBlocks Oldpersisk Malayalam UnicodeBlocks Malayalam CJK radicals supplement UnicodeBlocks CJK, supplement til radikaler +Old South Arabian UnicodeBlocks Old South Arabian Marchen UnicodeBlocks Marchen +Sogdian UnicodeBlocks Sogdian Control pictures UnicodeBlocks Kontrolbilleder +Tai Tham UnicodeBlocks Tai Tham Cyrillic extended A UnicodeBlocks Kyrillisk, udvidet A New Tai Lue UnicodeBlocks Nyt Tai Lue Sutton SignWriting UnicodeBlocks Sutton-tegnskrivning Limbu UnicodeBlocks Limbu Kanbun UnicodeBlocks Kanbun +Emoticons UnicodeBlocks Emotikoner +Siddham UnicodeBlocks Siddham CJK symbols and punctuation UnicodeBlocks CJK, symboler og tegnsætning CJK strokes UnicodeBlocks CJK, streger Combining half marks UnicodeBlocks Kombinerende halvtegn diff --git a/data/catalogs/apps/charactermap/de.catkeys b/data/catalogs/apps/charactermap/de.catkeys index 34482b687f..be3da9413c 100644 --- a/data/catalogs/apps/charactermap/de.catkeys +++ b/data/catalogs/apps/charactermap/de.catkeys @@ -1,4 +1,4 @@ -1 german x-vnd.Haiku-CharacterMap 2040422106 +1 german x-vnd.Haiku-CharacterMap 547332410 Tirhuta UnicodeBlocks Tirhuta Miscellaneous mathematical symbols B UnicodeBlocks Diverse mathematische Symbole B Latin extended E UnicodeBlocks Lateinisch (Erweiterung E) @@ -59,6 +59,7 @@ CJK unified ideographs extension C UnicodeBlocks CJK: Vereinheitlichte Ideogram Ancient Greek musical notation UnicodeBlocks Antike griechische musikalische Notation Thai UnicodeBlocks Thai Ethiopic supplement UnicodeBlocks Äthiopisch (Ergänzung) +Only show blocks contained in font CharacterWindow Nur die Blöcke der Schriftart anzeigen Chess symbols UnicodeBlocks Schachsymbole Yijing hexagram symbols UnicodeBlocks Yijing: Hexagramm-Symbole Ottoman Siyaq numbers UnicodeBlocks Ottomanische Siyaq Zahlen diff --git a/data/catalogs/apps/charactermap/el.catkeys b/data/catalogs/apps/charactermap/el.catkeys index c481921837..1338bf7268 100644 --- a/data/catalogs/apps/charactermap/el.catkeys +++ b/data/catalogs/apps/charactermap/el.catkeys @@ -1,20 +1,41 @@ -1 greek, modern (1453-) x-vnd.Haiku-CharacterMap 124574598 +1 greek, modern (1453-) x-vnd.Haiku-CharacterMap 917523322 +Tirhuta UnicodeBlocks Τιρχουτά Miscellaneous mathematical symbols B UnicodeBlocks Διάφορα μαθηματικά σύμβολα Β +Latin extended E UnicodeBlocks Λατινικό εκτεταμένο Ε +Dogra UnicodeBlocks Ντόγκρα +Javanese UnicodeBlocks Χαβανεζικά Saurashtra UnicodeBlocks Saurashtra Arabic supplement UnicodeBlocks Αραβικά συμπληρωματικά Hanunoo UnicodeBlocks Hanunoo Ogham UnicodeBlocks Ogham +Inscriptional Pahlavi UnicodeBlocks Επιγραμματικό Παχλάβι Hebrew UnicodeBlocks Εβραϊκά Katakana UnicodeBlocks Katakana +Miao UnicodeBlocks Μιάο +Mro UnicodeBlocks Μρο Mongolian UnicodeBlocks Μογγολέζικα +Pau Cin Hau UnicodeBlocks Πάου Τσιν Χάου +Yezidi UnicodeBlocks Γιεζίντι Linear B ideograms UnicodeBlocks Ιδεογράμματα Γραμμικής Β +Caucasian Albanian UnicodeBlocks Καυκασιανά Αλβανικά +CJK unified ideographs extension D UnicodeBlocks Ηνωμένα ιδεογράμματα CJK επέκταση Δ +Sharada UnicodeBlocks Σαράντα Multani UnicodeBlocks Μουλτάνι +Linear A UnicodeBlocks Γραμμική Α’ CJK compatibility ideographs Supplement UnicodeBlocks Συμπληρωματικά ιδεογράμματα CJK +Pahawh Hmong UnicodeBlocks Παχάου Χμονγκ Bopomofo extended UnicodeBlocks Bopomofo εκτεταμένα +Bassa Vah UnicodeBlocks Μπάσα Βαχ +Georgian extended UnicodeBlocks Γεωργιανά εκτεταμένα Mathematical alphanumeric symbols UnicodeBlocks Μαθηματικά αλφαρηθμιτικά σύμβολα Coptic UnicodeBlocks Κοπτική +Masaram Gondi UnicodeBlocks Μασαράμ Γκόντι Cuneiform numbers and punctuation UnicodeBlocks Σφηνοειδής αριθμοί και σημεία στίξης Miscellaneous symbols UnicodeBlocks Διάφορα σύμβολα +Kana supplement UnicodeBlocks Κάνα συμπληρωματικά +Medefaidrin UnicodeBlocks Μεντεφαϊντρίν +Enclosed ideographic supplement UnicodeBlocks Έγκλειστο ιδεογραφικό συμπλήρωμα +Warang Citi UnicodeBlocks Γουαράγκ Σίτι Vertical forms UnicodeBlocks Κάθετες μορφές Miscellaneous mathematical symbols A UnicodeBlocks Διάφορα μαθηματικά σύμβολα Α CharacterMap System name Χάρτης Χαρακτήρων @@ -22,23 +43,34 @@ Latin extended D UnicodeBlocks Λατινικά εκτεταμένα Δ Aegean numbers UnicodeBlocks Αιγαιακά ψηφία Hangul syllables UnicodeBlocks Συλλαβές Χανγκούλ Modifier tone letters UnicodeBlocks Modifier tone letters +Kaithi UnicodeBlocks Κάιθι +Psalter Pahlavi UnicodeBlocks Ψαλμικό Παχλάβι Newa UnicodeBlocks Νιούα View CharacterWindow Προβολή +Rumi numeral symbols UnicodeBlocks Ρουμί αριθμητικά σύμβολα Enclosed CJK letters and months UnicodeBlocks Περιεχόμενα CJK γράμματα και μήνες Deseret UnicodeBlocks Deseret Cham UnicodeBlocks Cham Cyrillic UnicodeBlocks Κυριλλικό +Makasar UnicodeBlocks Μακαζάρ +Palmyrene UnicodeBlocks Παλμυριακά Shavian UnicodeBlocks Shavian Tangut UnicodeBlocks Τανγκούτ +CJK unified ideographs extension C UnicodeBlocks Ηνωμένα ιδεογραφήματα CJK επέκταση Γ Ancient Greek musical notation UnicodeBlocks Σημειογραφία Αρχαίας Ελληνικής μουσικής Thai UnicodeBlocks Thai Ethiopic supplement UnicodeBlocks Συπληρωματικά Αιθιοπικά +Only show blocks contained in font CharacterWindow Εμφάνιση μόνο μπλοκ που περιλαμβάνονται στη γραμματοσειρά +Chess symbols UnicodeBlocks Σκακιστικά σύμβολα Yijing hexagram symbols UnicodeBlocks Σύμβολα εξαγράμμου Ι Τσινγκ +Ottoman Siyaq numbers UnicodeBlocks Οθωμανικοί αριθμοί Σιγιάκ Ideographic symbols and punctuation UnicodeBlocks Ιδεογραφικά σύμβολα και στίξη File CharacterWindow Αρχείο +Sudanese supplement UnicodeBlocks Σουδανικά συμπληρωματικά Myanmar UnicodeBlocks Myanmar Tifinagh UnicodeBlocks Tifinagh Musical symbols UnicodeBlocks Μουσικά σύμβολα +Bamum supplement UnicodeBlocks Μπαμούμ συμπληρωματικά Arabic presentation forms B UnicodeBlocks Αραβικές φόρμες παρουσιάσεων Β Cypriot syllabary UnicodeBlocks Κυπριακός συλλαβισμός IPA extensions UnicodeBlocks Επεκτάσεις IPA @@ -47,7 +79,12 @@ N'Ko UnicodeBlocks N'Ko Cherokee supplement UnicodeBlocks Υποκατάστατο Cherokee Halfwidth and fullwidth forms UnicodeBlocks Μεσαία και ολόκληρα έντυπα Counting rod numerals UnicodeBlocks Καταμέτρηση αριθμού ράβδων +Sora Sompeng UnicodeBlocks Σορά Σομπένγκ +Supplemental arrows C UnicodeBlocks Συμπληρωματικά βελάκια Γ +Alchemical symbols UnicodeBlocks Αλχημικά σύμβολα Latin extended C UnicodeBlocks Λατινικά εκτεταμένα Γ +Old Turkic UnicodeBlocks Παλαιά τουρκικά +Meroitic hieroglyphs UnicodeBlocks Μεροϊτικά ιερογλυφικά Combining diacritical marks for symbols UnicodeBlocks Συνδυάζοντας διακριτικά σημεία για τα σύμβολα Osage UnicodeBlocks Οσάγκε Combining diacritical marks supplement UnicodeBlocks Συνδυασμός συπληρωματικών διακριτικών συμβόλων @@ -57,111 +94,172 @@ Georgian UnicodeBlocks Γεωργιανά CJK compatibility forms UnicodeBlocks Φόρμες συμβατότητας CJK Old Hungarian UnicodeBlocks Παλαιό Ουγγρικό CJK unified ideographs extension B UnicodeBlocks Εκτεταμένα ιδεογράμματα CJK B +Meroitic cursive UnicodeBlocks Μεροϊτικά cursive Ahom UnicodeBlocks Αχόμ +Nyiakeng Puachue Hmong UnicodeBlocks Νιακένγκ Πουατσούε Χμονγκ +Duployan UnicodeBlocks Ντουπλογιανά Early Dynastic Cuneiform UnicodeBlocks Παλιά Δυναστική Σφηνοειδή Γραφή +Kana extended A UnicodeBlocks Κάνα εκτεταμένη Α Arabic presentation forms A UnicodeBlocks Αραβικά έντυπα παρουσιάσης Α Filter: CharacterWindow Φίλτρο: +Small Kana extension UnicodeBlocks Μικρά Κάνα επέκταση Kannada UnicodeBlocks Καναδέζικα +Brahmi UnicodeBlocks Μπράχμι Lydian UnicodeBlocks Λυδιακά Hatran UnicodeBlocks Χατράν Glagolitic supplement UnicodeBlocks Συμπλήρωμα γλαγολιτικών +Elymaic UnicodeBlocks Ελυμαϊκά Gurmukhi UnicodeBlocks Gurmukhi Supplemental arrows B UnicodeBlocks Συμπληρωματικά βέλη Β CJK unified ideographs UnicodeBlocks Γενικές ιδεογραφίες CJK +Enclosed alphanumeric supplement UnicodeBlocks Έγκλειστο αλφαριθμητικό συμπλήρωμα Latin extended B UnicodeBlocks Λατινικά εκτεταμένα Β Phonetic extensions UnicodeBlocks Φωνητικές επεκτάσεις +Indic Siyaq numbers UnicodeBlocks Ινδικοί αριθμοί Σιγιάκ +Batak UnicodeBlocks Μπατάκ Code CharacterWindow Κώδικας Block elements UnicodeBlocks Απομάκρυνση στοιχείων +Ethiopic extended A UnicodeBlocks Αιθιοπικά εκτεταμένα Α Mahjong tiles UnicodeBlocks Σύμβολα Ματζόνγκ Carian UnicodeBlocks Carian Gothic UnicodeBlocks Γοτθικά Specials UnicodeBlocks Ιδιαίτερα +Sinhala Archaic numbers UnicodeBlocks Σινχαλά αρχαϊκοί αριθμοί Syloti Nagri UnicodeBlocks Syloti Nagri Latin-1 supplement UnicodeBlocks Λατινικά-1 συμπλήρωμα CJK unified ideographs extension A UnicodeBlocks Επεκταμένα ιδεογράμματα CJK A Linear B syllabary UnicodeBlocks Συλλαβισμός Γραμμικής Β Yi syllables UnicodeBlocks Συλλαβές Yi +Khojki UnicodeBlocks Κχόικι Currency symbols UnicodeBlocks Σύμβολα νομισμάτων +Soyombo UnicodeBlocks Σογιόμπο +Khitan small script UnicodeBlocks Κχιτανική μικρή γραφή +Imperial Aramaic UnicodeBlocks Αυτοκρατορικά Αραμαϊκά Domino tiles UnicodeBlocks Πλάκες ντόμινο Kayah Li UnicodeBlocks Kayah Li Oriya UnicodeBlocks Oriya Ancient Greek numbers UnicodeBlocks Αρχαίοι ελληνικοί αριθμοί Superscripts and subscripts UnicodeBlocks Εκθέτες και δείκτες Osmanya UnicodeBlocks Osmanya +Modi UnicodeBlocks Μοντι Small form variants UnicodeBlocks Μικρές παραλλαγές φόρμας Arrows UnicodeBlocks Βέλη +Tangut supplement UnicodeBlocks Τανγκούτ συμπληρωματικά Bengali UnicodeBlocks Bengali Phoenician UnicodeBlocks Φοινηκικά Ideographic description characters UnicodeBlocks Ιδεογραφικοί χαρακτήρες λεπτομερειών Supplemental arrows A UnicodeBlocks Εκτεταμένα βέλη Α Rejang UnicodeBlocks Rejang Number forms UnicodeBlocks Αριθμιτικά έντυπα +Avestan UnicodeBlocks Αβεστάν Latin extended A UnicodeBlocks Λατινικά εκτεταμένα Α +Zanabazar Square UnicodeBlocks Ζανζαμπάρ Τετράγωνα Sundanese UnicodeBlocks Σουδανέζικα Geometric shapes UnicodeBlocks Γεωμετρικά σχήματα Clear CharacterWindow Καθαρισμός +Symbols and pictographs extended A UnicodeBlocks Σύμβολα και ιερογλυφικά εκτεταμένα Α Adlam UnicodeBlocks Αντλάμ Arabic UnicodeBlocks Αραβικά Khmer symbols UnicodeBlocks Σύμβολα Khmer Ol Chiki UnicodeBlocks Ol Chiki +Wancho UnicodeBlocks Γουάντσο Box drawing UnicodeBlocks Κουτί σχεδιάσης +Egyptian hieroglyphs UnicodeBlocks Αιγυπτιακά ιερογλυφικά Vai UnicodeBlocks Vai +Meetei Mayek extensions UnicodeBlocks Μιτέγι Μάγιεκ επεκτάσεις Ethiopic extended UnicodeBlocks Αιθιοπικά εκτεταμένα CJK compatibility UnicodeBlocks Συμβατότητα με CJK Tai Le UnicodeBlocks Tai Le +Old Sogdian UnicodeBlocks Παλαιά Σογκντιανά +Devanagari extended UnicodeBlocks Ντεβαναγκάρι εκτεταμένα Lao UnicodeBlocks Lao +Chorasmian UnicodeBlocks Χορασμιανά +Lisu supplement UnicodeBlocks Λιζού συμπληρωματικά +Takri UnicodeBlocks Τάκρι +Shorthand format controls UnicodeBlocks Συντομογραφίες χαρακτήρων ελέγχου μορφής +Inscriptional Parthian UnicodeBlocks Επιγραφικά Παρθιανά Optical character recognition UnicodeBlocks Οπτική αναγνώριση χαρακτήρων Tamil UnicodeBlocks Τamil +Lisu UnicodeBlocks Λιζού +Nandingari UnicodeBlocks Ναντινγκάρι Greek extended UnicodeBlocks Ελληνικά εκτεταμένα +Myanmar extended B UnicodeBlocks Μιανμάρ εκτεταμένα Β +Mahajani UnicodeBlocks Μαχαγιάνι Lepcha UnicodeBlocks Lepcha +Mandaic UnicodeBlocks Μανταϊκά Old italic UnicodeBlocks Παλαιά πλάγια Quit CharacterWindow Κλείσιμο +Playing cards UnicodeBlocks Παιγνιόχαρτα +Chakma UnicodeBlocks Τσάκμα Buhid UnicodeBlocks Buhid Supplementary private use area B UnicodeBlocks Συπληρωματική ιδιωτική περιοχή χρήσης Β Cuneiform UnicodeBlocks Cuneiform Alphabetic presentation forms UnicodeBlocks Αλφαβητικές φόρμες παρουσιάσης +Mayan numerals UnicodeBlocks Αριθμοί Μάγια Tangut components UnicodeBlocks Αποσπάσματα Τανγκούτ Letterlike symbols UnicodeBlocks Σύμβολα που μοιάζουν με γράμματα Spacing modifier letters UnicodeBlocks Απόσταση τροποποιημένων γραμμάτων Unified Canadian Aboriginal syllabics UnicodeBlocks Ενιαίες καναδικές αυτόχθονες συλλαβές +Hanifi Rohingya UnicodeBlocks Χανιφί Ροχίνγκια Dingbats UnicodeBlocks Dingbats Mathematical operators UnicodeBlocks Μαθηματικοί τελεστές Bopomofo UnicodeBlocks Bopomofo Variation selectors UnicodeBlocks Επιλογεις διακυμάνσεων Variation selectors supplement UnicodeBlocks Συμπληρωματικές επιλογές διακυμάνσεων +Old Permic UnicodeBlocks Παλαιά Περμικά Supplemental mathematical operators UnicodeBlocks Συμπληρωματικοί μαθηματικοί τελεστές Sinhala UnicodeBlocks Sinhala Bhaiksuki UnicodeBlocks Μπαϊξούκι +Dives Akuru UnicodeBlocks Ντιβές Ακούρου Ugaritic UnicodeBlocks Ugaritic +Old North Arabian UnicodeBlocks Παλαιά Βορειοαραβικά +Mende Kikakui UnicodeBlocks Μεντέ Κικάκουϊ +Geometric shapes extended UnicodeBlocks Γεωμετρικά σχήματα εκτεταμένα +Transport and map symbols UnicodeBlocks Σύμβολα χαρτών και ΜΜΜ +Tamil supplement UnicodeBlocks Ταμίλ εκτεταμένα +Combining diacritical marks extended UnicodeBlocks Συνδυαστικά διακριτικά εκτεταμένα Cyrillic extended C UnicodeBlocks Εκτεταμένη C με κυριλλικά Syriac UnicodeBlocks Συριακά Private use area UnicodeBlocks Προσωπικός χώρος χρήσης +Vedic extensions UnicodeBlocks Βεντικά προεκτάσεις Supplement punctuation UnicodeBlocks Συμπληρωματικά σημεία στίξης Lycian UnicodeBlocks Lycian +Myanmar extended A UnicodeBlocks Μιανμάρ εκτεταμένη Α Ancient symbols UnicodeBlocks Αρχαία σύμβολα +Arabic mathematical alphabetic symbols UnicodeBlocks Αραβικά μαθηματικά αλφαβητικά σύμβολα Miscellaneous symbols and arrows UnicodeBlocks Διάφορα σύμβολα και βέλη +Common Indic number forms UnicodeBlocks Αριθμοί Κοινής Ινδικής Kharoshthi UnicodeBlocks Kharoshthi Buginese UnicodeBlocks Buginese Telugu UnicodeBlocks Telugu Cyrillic supplement UnicodeBlocks Συμπληρωματικά Κυριλλικά +Grantha UnicodeBlocks Γκράνθα Yi Radicals UnicodeBlocks Yi Radicals Supplementary private use area A UnicodeBlocks Συμπληρωματική ιδιωτική περιοχή χρήσης Α Armenian UnicodeBlocks Αρμενικά +Miscellaneous symbols and pictographs UnicodeBlocks Άλλα σύμβολα Phags-pa UnicodeBlocks Phags-pa +Nabataean UnicodeBlocks Ναμπαταιανά +Meetei Mayek UnicodeBlocks Μιτέι Μάγιεκ CJK compatibility ideographs UnicodeBlocks Ιδεογράμματα CJK Show private blocks CharacterWindow Εμβάνιση προσωπικών μπλοκ +Samaritan UnicodeBlocks Σαμαριτιανά Latin extended additional UnicodeBlocks Λατινικά εκτεταμένα Tibetan UnicodeBlocks Tibetan Combining diacritical marks UnicodeBlocks Συνδυασμένα διακριτικά σημεία Tags UnicodeBlocks Ετικέτες Khmer UnicodeBlocks Khmer +Hangul Jamo extended B UnicodeBlocks Χανγκούλ Ζαμό εκτεταμένα Β +Tai Viet UnicodeBlocks Βιετναμέζικα Georgian supplement UnicodeBlocks Γεωργιανό συμπλήρωμα Tagalog UnicodeBlocks Ταγκαλόγκ +CJK unified ideographs extension F UnicodeBlocks CJK ενωμένα ιδεογράμματα προέκταση ΣΤ Supplemental Symbols and Pictographs UnicodeBlocks Συμπληρωματικά Σύμβολα και Εικονογράμματα Devanagari UnicodeBlocks Devanagari Runic UnicodeBlocks Runic General punctuation UnicodeBlocks Γενική στίξη Mongolian supplement UnicodeBlocks Συμπλήρωμα μογγολιανών +Khudawadi UnicodeBlocks Κχουνταγουάντι Glagotic UnicodeBlocks Glagotic Cyrillic extended B UnicodeBlocks Κυριλλικά εκτεταμένα Β Anatolian hieroglyphs UnicodeBlocks Ανατολικά ιερογλυφικά @@ -175,6 +273,9 @@ Kangxi radicals UnicodeBlocks Kangxi radicals Copy character CharacterView Αντιγράψετε τον χαρακτήρα Hangul Jamo UnicodeBlocks Hangul Jamo Font CharacterWindow Φόντο +Ornamental dingbats UnicodeBlocks Διακοσμητικά σύμβολα +Egyptian hieroglyph format controls UnicodeBlocks Αιγυπτιανά ιερογλυφικά χαρακτήρες ελέγχου μορφοποίησης +Manichaean UnicodeBlocks Μανιχαιανά Phaistos disc UnicodeBlocks Δίσκος της Φαιστού Miscellaneous technical UnicodeBlocks Γενικά τεχνικά Braille patterns UnicodeBlocks Πρότυπα Braille @@ -183,19 +284,29 @@ Thaana UnicodeBlocks Thaana Ethiopic UnicodeBlocks Αιθιοπικά Byzantine musical symbols UnicodeBlocks Βυζαντινά σύμβολα μουσικής Gujarati UnicodeBlocks Γκουτζαρατικά +Symbols for legacy computing UnicodeBlocks Σύμβολα απαρχαιωμένης πληροφορικής +Gunjala Gondi UnicodeBlocks Γκουντζαλά Γκόντι +Hangul Jamo extended A UnicodeBlocks Χαγκούλ Ζαμό εκτεταμένα Α +Elbasan UnicodeBlocks Ελμπασάν Hangul compatibility Jamo UnicodeBlocks Συμβατικά Hangul σε Jamo Phonetic extensions supplement UnicodeBlocks Συμπλήρωμα φωνητικών επεκτάσεων CJK unified ideographs extension E UnicodeBlocks Επέκταση ενοποιημένων ιδεογραμμάτων CJK Ε +Nüshu UnicodeBlocks Νουσού Old Persian UnicodeBlocks Αρχαία Περσικά Malayalam UnicodeBlocks Malayalam CJK radicals supplement UnicodeBlocks Συμπληρώματα CJK +Old South Arabian UnicodeBlocks Παλαιά Νοτιοαραβικά Marchen UnicodeBlocks Μαρχέν +Sogdian UnicodeBlocks Σογκντιανά Control pictures UnicodeBlocks Έλεγχος φωτογραφιών +Tai Tham UnicodeBlocks Ταΐ Ταμ Cyrillic extended A UnicodeBlocks Κυριλλικά εκτεταμένα Α New Tai Lue UnicodeBlocks New Tai Lue Sutton SignWriting UnicodeBlocks Sutton SignWriting Limbu UnicodeBlocks Limbu Kanbun UnicodeBlocks Kanbun +Emoticons UnicodeBlocks Εμότζι +Siddham UnicodeBlocks Σιντάμ CJK symbols and punctuation UnicodeBlocks Σύμβολα CJK και σημεία στίξης CJK strokes UnicodeBlocks CJK strokes Combining half marks UnicodeBlocks Συνδυασμός μισών σημάτων diff --git a/data/catalogs/apps/charactermap/es.catkeys b/data/catalogs/apps/charactermap/es.catkeys index f7e3cc0ca8..4d09daca73 100644 --- a/data/catalogs/apps/charactermap/es.catkeys +++ b/data/catalogs/apps/charactermap/es.catkeys @@ -1,4 +1,4 @@ -1 spanish; castilian x-vnd.Haiku-CharacterMap 2410613018 +1 spanish; castilian x-vnd.Haiku-CharacterMap 917523322 Tirhuta UnicodeBlocks Tirhuta Miscellaneous mathematical symbols B UnicodeBlocks Variado de símbolos matemáticos B Latin extended E UnicodeBlocks Latín extendido E @@ -60,6 +60,7 @@ CJK unified ideographs extension C UnicodeBlocks Ideogramas CJK unificados exte Ancient Greek musical notation UnicodeBlocks Notación musical griega antigua Thai UnicodeBlocks Tailandés Ethiopic supplement UnicodeBlocks Suplemento de etíope +Only show blocks contained in font CharacterWindow Mostrar solamente bloques contenidos en la fuente Chess symbols UnicodeBlocks Símbolos de ajedrez Yijing hexagram symbols UnicodeBlocks Hexagramas de Yijing Ottoman Siyaq numbers UnicodeBlocks Números otomanos siyaq diff --git a/data/catalogs/apps/charactermap/fi.catkeys b/data/catalogs/apps/charactermap/fi.catkeys index 051d300d89..4ad797760a 100644 --- a/data/catalogs/apps/charactermap/fi.catkeys +++ b/data/catalogs/apps/charactermap/fi.catkeys @@ -1,4 +1,4 @@ -1 finnish x-vnd.Haiku-CharacterMap 2410613018 +1 finnish x-vnd.Haiku-CharacterMap 917523322 Tirhuta UnicodeBlocks Tirhuta Miscellaneous mathematical symbols B UnicodeBlocks Sekalaiset matemaattiset symbolit B Latin extended E UnicodeBlocks Latinalainen laajennettu E @@ -60,6 +60,7 @@ CJK unified ideographs extension C UnicodeBlocks CJK yhtenäinen ideografinen l Ancient Greek musical notation UnicodeBlocks Antiikin kreikan nuottikirjoitus Thai UnicodeBlocks Thain kieli Ethiopic supplement UnicodeBlocks Etiopian täydennys +Only show blocks contained in font CharacterWindow Näytä vain kirjasinlajiin sisältyvät lohkot Chess symbols UnicodeBlocks Shakkisymbolit Yijing hexagram symbols UnicodeBlocks Yijing-heksagrammisymbolit Ottoman Siyaq numbers UnicodeBlocks Ottomaaniset Siyaq-numerot diff --git a/data/catalogs/apps/charactermap/hu.catkeys b/data/catalogs/apps/charactermap/hu.catkeys index cd7333e889..6d2ae8e418 100644 --- a/data/catalogs/apps/charactermap/hu.catkeys +++ b/data/catalogs/apps/charactermap/hu.catkeys @@ -1,4 +1,4 @@ -1 hungarian x-vnd.Haiku-CharacterMap 2410613018 +1 hungarian x-vnd.Haiku-CharacterMap 917523322 Tirhuta UnicodeBlocks Tirhuta Miscellaneous mathematical symbols B UnicodeBlocks Különféle matematikai B szimbólumok Latin extended E UnicodeBlocks Latin kiterjesztett E @@ -60,6 +60,7 @@ CJK unified ideographs extension C UnicodeBlocks CJK egységes ideográfiák C Ancient Greek musical notation UnicodeBlocks Ősi görög zenei jelek Thai UnicodeBlocks Thai Ethiopic supplement UnicodeBlocks Etióp kiegészítés +Only show blocks contained in font CharacterWindow Csak a betűkészletben meglévő blokkok mutatása Chess symbols UnicodeBlocks Sakk szombólumok Yijing hexagram symbols UnicodeBlocks Yijing hexagram szimbólumok Ottoman Siyaq numbers UnicodeBlocks Ottoman Siyaq számok diff --git a/data/catalogs/apps/charactermap/id.catkeys b/data/catalogs/apps/charactermap/id.catkeys index 6d4f2019e5..8b29861379 100644 --- a/data/catalogs/apps/charactermap/id.catkeys +++ b/data/catalogs/apps/charactermap/id.catkeys @@ -1,20 +1,33 @@ -1 indonesian x-vnd.Haiku-CharacterMap 124574598 +1 indonesian x-vnd.Haiku-CharacterMap 107627562 +Tirhuta UnicodeBlocks Tirhuta Miscellaneous mathematical symbols B UnicodeBlocks Simbol matematika lain-lain B +Dogra UnicodeBlocks Dogra +Javanese UnicodeBlocks Jawa Saurashtra UnicodeBlocks Saurashtra Arabic supplement UnicodeBlocks Arab suplemen Hanunoo UnicodeBlocks Hanunoo Ogham UnicodeBlocks Ogham Hebrew UnicodeBlocks Ibrani Katakana UnicodeBlocks Katakana +Miao UnicodeBlocks Miao +Mro UnicodeBlocks Mro Mongolian UnicodeBlocks Mongolia +Pau Cin Hau UnicodeBlocks Pau Cin Hau +Yezidi UnicodeBlocks Yezidi Linear B ideograms UnicodeBlocks Ideogram B linear +Sharada UnicodeBlocks Sharada Multani UnicodeBlocks Multani +Linear A UnicodeBlocks Linear A CJK compatibility ideographs Supplement UnicodeBlocks Suplemen kompatibilitas ideograf CJK +Pahawh Hmong UnicodeBlocks Pahawh Hmong Bopomofo extended UnicodeBlocks Bopomofo diperluas Mathematical alphanumeric symbols UnicodeBlocks Simbol alfanumerik matematika Coptic UnicodeBlocks Koptik +Masaram Gondi UnicodeBlocks Masaram Gondi Cuneiform numbers and punctuation UnicodeBlocks Angka runcing dan tanda baca Miscellaneous symbols UnicodeBlocks Simbol lainnya +Medefaidrin UnicodeBlocks Medefaidrin +Warang Citi UnicodeBlocks Warang Citi Vertical forms UnicodeBlocks Form vertikal Miscellaneous mathematical symbols A UnicodeBlocks Simbol matematika lain-lain A CharacterMap System name CharacterMap @@ -22,20 +35,28 @@ Latin extended D UnicodeBlocks Latin diperluas D Aegean numbers UnicodeBlocks Angka Aegea Hangul syllables UnicodeBlocks Suku kata Hangul Modifier tone letters UnicodeBlocks Modifier tone letters +Kaithi UnicodeBlocks Kaithi +Psalter Pahlavi UnicodeBlocks Psalter Pahlavi Newa UnicodeBlocks Newa View CharacterWindow Tampilkan +Rumi numeral symbols UnicodeBlocks Simbol angka Rumi Enclosed CJK letters and months UnicodeBlocks Huruf dan bulan CJK tertutup Deseret UnicodeBlocks Deseret Cham UnicodeBlocks Kamboja Cyrillic UnicodeBlocks Cyrillic +Makasar UnicodeBlocks Makasar +Palmyrene UnicodeBlocks Palmyrene Shavian UnicodeBlocks Shavi Tangut UnicodeBlocks Tangut Ancient Greek musical notation UnicodeBlocks Notasi musikal Yunani Kuno Thai UnicodeBlocks Tailand Ethiopic supplement UnicodeBlocks Suplemen etiopia +Chess symbols UnicodeBlocks Simbol catur Yijing hexagram symbols UnicodeBlocks Simbol hexagram Yijing +Ottoman Siyaq numbers UnicodeBlocks Nomor Ottoman Siyaq Ideographic symbols and punctuation UnicodeBlocks Simbol dan tanda baca ideografis File CharacterWindow Berkas +Sudanese supplement UnicodeBlocks Suplemen Sudan Myanmar UnicodeBlocks Myanmar Tifinagh UnicodeBlocks Tifinagh Musical symbols UnicodeBlocks Simbol musikal @@ -47,7 +68,10 @@ N'Ko UnicodeBlocks N'Ko Cherokee supplement UnicodeBlocks Cherokee supplement Halfwidth and fullwidth forms UnicodeBlocks Form setengah lebar dan lebar penuh Counting rod numerals UnicodeBlocks Menghitung angka batang +Sora Sompeng UnicodeBlocks Sora Sompeng +Alchemical symbols UnicodeBlocks Simbol alkimia Latin extended C UnicodeBlocks Latin C diperluas +Old Turkic UnicodeBlocks Turki lama Combining diacritical marks for symbols UnicodeBlocks Kombinasi tanda diakritikal untuk simbol Osage UnicodeBlocks Osage Combining diacritical marks supplement UnicodeBlocks Menggabungkan suplemen tanda diakritik @@ -58,18 +82,22 @@ CJK compatibility forms UnicodeBlocks Form kompatibilitas CJK Old Hungarian UnicodeBlocks Old Hungarian CJK unified ideographs extension B UnicodeBlocks CJK ekstensi ideograf terpadu B Ahom UnicodeBlocks Ahom -Early Dynastic Cuneiform UnicodeBlocks Tulisan runcing awal dinasti +Duployan UnicodeBlocks Dulployan +Early Dynastic Cuneiform UnicodeBlocks Tulisan runcing awal dinasti Arabic presentation forms A UnicodeBlocks Presentasi Arab bentuk A Filter: CharacterWindow Saring: Kannada UnicodeBlocks Kannada +Brahmi UnicodeBlocks Brahmi Lydian UnicodeBlocks Lydian Hatran UnicodeBlocks Hatran Glagolitic supplement UnicodeBlocks Suplemen glagolitik +Elymaic UnicodeBlocks Elymaic Gurmukhi UnicodeBlocks Gurmukhi Supplemental arrows B UnicodeBlocks Panah tambahan B CJK unified ideographs UnicodeBlocks Ideograf CJK Dipersatukan Latin extended B UnicodeBlocks Latin diperluas B Phonetic extensions UnicodeBlocks Ekstensi fonetik +Batak UnicodeBlocks Batak Code CharacterWindow Kode Block elements UnicodeBlocks Elemen blok Mahjong tiles UnicodeBlocks Ubin Mahjong @@ -81,13 +109,16 @@ Latin-1 supplement UnicodeBlocks Supplemen latin-1 CJK unified ideographs extension A UnicodeBlocks ekstensi ideograf CJK terpadu A Linear B syllabary UnicodeBlocks Silabus B linier Yi syllables UnicodeBlocks Suku kata Yi +Khojki UnicodeBlocks Khojki Currency symbols UnicodeBlocks Simbol mata uang +Soyombo UnicodeBlocks Soyombo Domino tiles UnicodeBlocks Ubin domino Kayah Li UnicodeBlocks Kayah Li Oriya UnicodeBlocks Oriya Ancient Greek numbers UnicodeBlocks Angka Yunani lama Superscripts and subscripts UnicodeBlocks Superskrip dan subskrip Osmanya UnicodeBlocks Osmanya +Modi UnicodeBlocks Modi Small form variants UnicodeBlocks Varian bentuk kecil Arrows UnicodeBlocks Panah Bengali UnicodeBlocks Bengali @@ -96,6 +127,7 @@ Ideographic description characters UnicodeBlocks Karakter deskripsi ideografis Supplemental arrows A UnicodeBlocks Panah tambahan A Rejang UnicodeBlocks Rejang Number forms UnicodeBlocks Bentuk angka +Avestan UnicodeBlocks Avestan Latin extended A UnicodeBlocks Latin diperluas A Sundanese UnicodeBlocks Sunda Geometric shapes UnicodeBlocks Bentuk Geometrik @@ -104,22 +136,32 @@ Adlam UnicodeBlocks Adlam Arabic UnicodeBlocks Arab Khmer symbols UnicodeBlocks Simbol Khmer Ol Chiki UnicodeBlocks Ol Chiki +Wancho UnicodeBlocks Wancho Box drawing UnicodeBlocks Gambar kotak Vai UnicodeBlocks Vai Ethiopic extended UnicodeBlocks Perluasan Ethiopia CJK compatibility UnicodeBlocks Kompatibilitas CJK Tai Le UnicodeBlocks Tai le +Old Sogdian UnicodeBlocks Sodian Lama Lao UnicodeBlocks Lao +Chorasmian UnicodeBlocks Chorasmian +Takri UnicodeBlocks Takri Optical character recognition UnicodeBlocks Pengenalan karakter optis Tamil UnicodeBlocks Tamil +Lisu UnicodeBlocks Lisu +Nandingari UnicodeBlocks Nandingari Greek extended UnicodeBlocks Yunani diperluas +Mahajani UnicodeBlocks Mahajani Lepcha UnicodeBlocks Lepcha +Mandaic UnicodeBlocks Mandaic Old italic UnicodeBlocks Italik kuno Quit CharacterWindow Keluar +Chakma UnicodeBlocks Chakma Buhid UnicodeBlocks Buhid Supplementary private use area B UnicodeBlocks Penggunaan pribadi tambahan area B Cuneiform UnicodeBlocks Runcing Alphabetic presentation forms UnicodeBlocks Formulir presentasi alfabet +Mayan numerals UnicodeBlocks Angka maya Tangut components UnicodeBlocks Komponen tangut Letterlike symbols UnicodeBlocks Simbol seperti huruf Spacing modifier letters UnicodeBlocks Huruf pengubah spasi @@ -136,6 +178,7 @@ Ugaritic UnicodeBlocks Ugaritik Cyrillic extended C UnicodeBlocks Cyrillic extended C Syriac UnicodeBlocks Suryani Private use area UnicodeBlocks Area penggunaan pribadi +Vedic extensions UnicodeBlocks Ekstensi Vedic Supplement punctuation UnicodeBlocks Suplemen tanda baca Lycian UnicodeBlocks Lycian Ancient symbols UnicodeBlocks Simbol kuno @@ -144,12 +187,16 @@ Kharoshthi UnicodeBlocks Kharoshthi Buginese UnicodeBlocks Bugis Telugu UnicodeBlocks Telugu Cyrillic supplement UnicodeBlocks Suplemen Cyrillic +Grantha UnicodeBlocks Grantha Yi Radicals UnicodeBlocks Radikal Yi Supplementary private use area A UnicodeBlocks Supplementary private use area A Armenian UnicodeBlocks Armenia Phags-pa UnicodeBlocks Phags-pa +Nabataean UnicodeBlocks Nabataean +Meetei Mayek UnicodeBlocks Meetei Mayek CJK compatibility ideographs UnicodeBlocks Ideograf kompatibilitas CJK Show private blocks CharacterWindow Tampilkan blok pribadi +Samaritan UnicodeBlocks Samaritan Latin extended additional UnicodeBlocks Tambahan latin yang diperluas Tibetan UnicodeBlocks Tibet Combining diacritical marks UnicodeBlocks Menggabungkan tanda diakritik @@ -162,6 +209,7 @@ Devanagari UnicodeBlocks Devanagari Runic UnicodeBlocks Runic General punctuation UnicodeBlocks Tanda baca umum Mongolian supplement UnicodeBlocks Suplemen mongolia +Khudawadi UnicodeBlocks Khudawadi Glagotic UnicodeBlocks Glagotik Cyrillic extended B UnicodeBlocks Sirilik diperluas B Anatolian hieroglyphs UnicodeBlocks Hieroglif Anatolia @@ -175,6 +223,7 @@ Kangxi radicals UnicodeBlocks Radikal Kangxi Copy character CharacterView Salin karakter Hangul Jamo UnicodeBlocks Hangul Jamo Font CharacterWindow Fon +Manichaean UnicodeBlocks Manichaean Phaistos disc UnicodeBlocks Cakram phaistos Miscellaneous technical UnicodeBlocks Serbaneka teknis Braille patterns UnicodeBlocks Pola Braille @@ -183,13 +232,17 @@ Thaana UnicodeBlocks Thaana Ethiopic UnicodeBlocks Ethiopik Byzantine musical symbols UnicodeBlocks Simbol musikal Romawi Timur Gujarati UnicodeBlocks Gujarat +Gunjala Gondi UnicodeBlocks Gunjala Gondi +Elbasan UnicodeBlocks Elbasan Hangul compatibility Jamo UnicodeBlocks Hangul kompatibilitas Jamo Phonetic extensions supplement UnicodeBlocks Suplemen ekstensi fonetik CJK unified ideographs extension E UnicodeBlocks Ekstensi ideografik terpadu CJK E +Nüshu UnicodeBlocks Nüshu Old Persian UnicodeBlocks Persia lama Malayalam UnicodeBlocks Malayalam CJK radicals supplement UnicodeBlocks Suplemen radikal CJK Marchen UnicodeBlocks Marchen +Sogdian UnicodeBlocks Sogdian Control pictures UnicodeBlocks Kontrol gambar Cyrillic extended A UnicodeBlocks Perluasan Cyrillic A New Tai Lue UnicodeBlocks Tai Lue Baru diff --git a/data/catalogs/apps/charactermap/ja.catkeys b/data/catalogs/apps/charactermap/ja.catkeys index 610e163531..929b3b3060 100644 --- a/data/catalogs/apps/charactermap/ja.catkeys +++ b/data/catalogs/apps/charactermap/ja.catkeys @@ -1,4 +1,4 @@ -1 japanese x-vnd.Haiku-CharacterMap 2410613018 +1 japanese x-vnd.Haiku-CharacterMap 917523322 Tirhuta UnicodeBlocks ティルフータ文字 Miscellaneous mathematical symbols B UnicodeBlocks 各種数学記号 B Latin extended E UnicodeBlocks ラテン文字拡張 E @@ -60,6 +60,7 @@ CJK unified ideographs extension C UnicodeBlocks CJK 統合漢字拡張 C Ancient Greek musical notation UnicodeBlocks 古代ギリシャ記譜法 Thai UnicodeBlocks タイ文字 Ethiopic supplement UnicodeBlocks エチオピア文字補足 +Only show blocks contained in font CharacterWindow フォントに含まれるブロックのみ表示 Chess symbols UnicodeBlocks チェス記号 Yijing hexagram symbols UnicodeBlocks 易経記号 Ottoman Siyaq numbers UnicodeBlocks オスマン・シヤク数字 diff --git a/data/catalogs/apps/charactermap/sv.catkeys b/data/catalogs/apps/charactermap/sv.catkeys index ddbca677f3..16c373ac00 100644 --- a/data/catalogs/apps/charactermap/sv.catkeys +++ b/data/catalogs/apps/charactermap/sv.catkeys @@ -1,4 +1,4 @@ -1 swedish x-vnd.Haiku-CharacterMap 2410613018 +1 swedish x-vnd.Haiku-CharacterMap 917523322 Tirhuta UnicodeBlocks Tirhuta Miscellaneous mathematical symbols B UnicodeBlocks Diverse matematiska symboler B Latin extended E UnicodeBlocks Latin förlängd E @@ -60,6 +60,7 @@ CJK unified ideographs extension C UnicodeBlocks CJK förenade ideografer förl Ancient Greek musical notation UnicodeBlocks Gammelgrekiska noter Thai UnicodeBlocks Thai Ethiopic supplement UnicodeBlocks Etiopiska utökningar +Only show blocks contained in font CharacterWindow Visa bara block som finns i teckensnittet Chess symbols UnicodeBlocks Schacksymboler Yijing hexagram symbols UnicodeBlocks Yijing hexagramsymboler Ottoman Siyaq numbers UnicodeBlocks Osmanska Siyaq-nummer diff --git a/data/catalogs/apps/charactermap/th.catkeys b/data/catalogs/apps/charactermap/th.catkeys index 87640620ce..cb225894b1 100644 --- a/data/catalogs/apps/charactermap/th.catkeys +++ b/data/catalogs/apps/charactermap/th.catkeys @@ -1,4 +1,4 @@ -1 thai x-vnd.Haiku-CharacterMap 3632238193 +1 thai x-vnd.Haiku-CharacterMap 638822715 Tirhuta UnicodeBlocks Tirhuta Miscellaneous mathematical symbols B UnicodeBlocks สัญลักษณ์ทางคณิตศาสตร์เบ็ดเตล็ด B Latin extended E UnicodeBlocks Latin ขยาย E @@ -211,6 +211,8 @@ Sinhala UnicodeBlocks สิงหล Bhaiksuki UnicodeBlocks Bhaiksuki Dives Akuru UnicodeBlocks ดิเวส อกุรุ Ugaritic UnicodeBlocks Ugaritic +Old North Arabian UnicodeBlocks อาระเบียนเหนือโบราญ +Mende Kikakui UnicodeBlocks เมนเด คิคากุย Cyrillic extended C UnicodeBlocks Cyrillic extended C Syriac UnicodeBlocks Syriac Private use area UnicodeBlocks พื้นที่ใช้งานส่วนตัว diff --git a/data/catalogs/apps/charactermap/tr.catkeys b/data/catalogs/apps/charactermap/tr.catkeys index 1f7912a0a2..7163fc4e0f 100644 --- a/data/catalogs/apps/charactermap/tr.catkeys +++ b/data/catalogs/apps/charactermap/tr.catkeys @@ -1,4 +1,4 @@ -1 turkish x-vnd.Haiku-CharacterMap 2410613018 +1 turkish x-vnd.Haiku-CharacterMap 917523322 Tirhuta UnicodeBlocks Tirhuta Miscellaneous mathematical symbols B UnicodeBlocks Karışık matematik sembolleri B Latin extended E UnicodeBlocks Latin genişletilmiş E @@ -60,6 +60,7 @@ CJK unified ideographs extension C UnicodeBlocks ÇJK birleşik ideograflar gen Ancient Greek musical notation UnicodeBlocks Antik Yunan müzik notasyonu Thai UnicodeBlocks Tayca Ethiopic supplement UnicodeBlocks Etiyopyaca ek +Only show blocks contained in font CharacterWindow Yalnızca yazıtipinde içerilen blokları göster Chess symbols UnicodeBlocks Satranç sembolleri Yijing hexagram symbols UnicodeBlocks Yijing altı köşeli semboller Ottoman Siyaq numbers UnicodeBlocks Osmanlı Divan rakamları diff --git a/data/catalogs/apps/clock/el.catkeys b/data/catalogs/apps/clock/el.catkeys index 1f564e2eae..9e204d124a 100644 --- a/data/catalogs/apps/clock/el.catkeys +++ b/data/catalogs/apps/clock/el.catkeys @@ -1,2 +1,5 @@ -1 greek, modern (1453-) x-vnd.Haiku-Clock 1361795373 +1 greek, modern (1453-) x-vnd.Haiku-Clock 3027911685 +OK Clock Εντάξει +About Clock Clock Σχετικά με το Ρολόι Clock System name Ρολόι +Clock (The Replicant version)\n\nCopyright 2002-2020 Haiku, Inc.\n\nOriginally coded by the folks at Be.\n Copyright 1991-1998, Be Inc. Clock Ρολόι (έκδοση ρεπλίκας)\n\nCopyright 2002-2020 Haiku, Inc.\n\nΔημιουργήθηκε από τους προγραμματιστές της Be.\n Copyright 1991-1998, Be Inc. diff --git a/data/catalogs/apps/clock/id.catkeys b/data/catalogs/apps/clock/id.catkeys index cb7a492746..f1f74941b8 100644 --- a/data/catalogs/apps/clock/id.catkeys +++ b/data/catalogs/apps/clock/id.catkeys @@ -1,2 +1,3 @@ -1 indonesian x-vnd.Haiku-Clock 1361795373 +1 indonesian x-vnd.Haiku-Clock 1546936054 +OK Clock OK Clock System name Jam diff --git a/data/catalogs/apps/codycam/da.catkeys b/data/catalogs/apps/codycam/da.catkeys index 33e4c39bc6..a094c6e79c 100644 --- a/data/catalogs/apps/codycam/da.catkeys +++ b/data/catalogs/apps/codycam/da.catkeys @@ -1,5 +1,5 @@ 1 danish x-vnd.Haiku-CodyCam 12021044 -destination directory expected CodyCam destination folder forventet +destination directory expected CodyCam destinationsmappe forventet reply: '%s'\n SftpClient svar: '%s'\n PASS (real password sent) FtpClient PASS (rigtige adgangskode sendt) JPEG image CodyCam JPEG billede @@ -38,7 +38,7 @@ Send to… CodyCam Send til… Password: CodyCam Adgangskode: still image filename expected CodyCam billedfilnavn forventet File name: CodyCam Filnavn: -Directory: CodyCam Folder: +Directory: CodyCam Mappe: Error setting type of output file VideoConsumer.cpp Fejl ved indstilling af typen på outputfil Locking the window VideoConsumer.cpp Låser vinduet Cannot find an available video stream CodyCam Kunne ikke finde tilgængelig video strøm @@ -66,8 +66,8 @@ Local CodyCam Lokal Stop video CodyCam Stop video Last Capture: VideoConsumer.cpp Sidste optagelse: Rate: CodyCam Frekvens: -Couldn't find requested directory on server VideoConsumer.cpp Kunne ikke finde folder på serveren -Cannot find the media roster CodyCam Kan ikke finde medie listen +Couldn't find requested directory on server VideoConsumer.cpp Kunne ikke finde mappe på serveren +Cannot find the media roster CodyCam Kan ikke finde medielisten Type: CodyCam Type: Rename failed VideoConsumer.cpp Omdøbning mislykkedes unrecognized upload client specified CodyCam ikke identificeret upload klient specificeret diff --git a/data/catalogs/apps/codycam/el.catkeys b/data/catalogs/apps/codycam/el.catkeys index 281a839dd3..5449961eab 100644 --- a/data/catalogs/apps/codycam/el.catkeys +++ b/data/catalogs/apps/codycam/el.catkeys @@ -1,6 +1,7 @@ -1 greek, modern (1453-) x-vnd.Haiku-CodyCam 40716723 +1 greek, modern (1453-) x-vnd.Haiku-CodyCam 12021044 destination directory expected CodyCam αναμένεται κατάλογος προορισμού reply: '%s'\n SftpClient επανάληψη: '%s'\n +PASS (real password sent) FtpClient PASS (ο πραγματικός κωδικός θα σταλεί) JPEG image CodyCam Εικόνα JPEG Remote host has closed the connection.\n FtpClient Ο απομακρυσμένος υπολογιστής έκλεισε τη σύνδεση.\n image file format expected CodyCam αναμένεται τύπος αρχείου εικόνας diff --git a/data/catalogs/apps/cortex/AddOnHost/da.catkeys b/data/catalogs/apps/cortex/AddOnHost/da.catkeys index 411e8bde36..6428015a39 100644 --- a/data/catalogs/apps/cortex/AddOnHost/da.catkeys +++ b/data/catalogs/apps/cortex/AddOnHost/da.catkeys @@ -1,3 +1,5 @@ -1 danish application/x-vnd.Cortex.AddOnHost 3934261412 +1 danish application/x-vnd.Cortex.AddOnHost 1256552338 Continue CortexAddOnHost Fortsæt +Cortex AddOnHost CortexAddOnHost Cortex-tilføjelsesvært Quit CortexAddOnHost Afslut +This program runs in the background, and is started automatically by Cortex when necessary. You probably don't want to start it manually. CortexAddOnHost Programmet kører i baggrunden og startes automatisk af Cortex når det er nødvendigt. Du ønsker formodentligt ikke at starte den manuelt. diff --git a/data/catalogs/apps/cortex/AddOnHost/el.catkeys b/data/catalogs/apps/cortex/AddOnHost/el.catkeys new file mode 100644 index 0000000000..68597055b7 --- /dev/null +++ b/data/catalogs/apps/cortex/AddOnHost/el.catkeys @@ -0,0 +1,5 @@ +1 greek, modern (1453-) application/x-vnd.Cortex.AddOnHost 1256552338 +Continue CortexAddOnHost Συνέχεια +Cortex AddOnHost CortexAddOnHost Cortex AddOnHost +Quit CortexAddOnHost Έξοδος +This program runs in the background, and is started automatically by Cortex when necessary. You probably don't want to start it manually. CortexAddOnHost Αυτό το πρόγραμμα εκτελείται στο παρασκήνιο και εκκινείται αυτόματα από το Cortex όταν είναι απαραίτητο. Πιθανόν να μη θέλετε να το ξεκινήσετε χειροκίνητα. diff --git a/data/catalogs/apps/cortex/AddOnHost/fr.catkeys b/data/catalogs/apps/cortex/AddOnHost/fr.catkeys index aa9b656081..75bc4c5b6f 100644 --- a/data/catalogs/apps/cortex/AddOnHost/fr.catkeys +++ b/data/catalogs/apps/cortex/AddOnHost/fr.catkeys @@ -1,4 +1,5 @@ -1 french application/x-vnd.Cortex.AddOnHost 826663209 +1 french application/x-vnd.Cortex.AddOnHost 1256552338 Continue CortexAddOnHost Reprendre +Cortex AddOnHost CortexAddOnHost Hôte pour les extensions de Cortex Quit CortexAddOnHost Quitter This program runs in the background, and is started automatically by Cortex when necessary. You probably don't want to start it manually. CortexAddOnHost Ce programme fonctionne en arrière-plan, et Cortex le lance automatiquement selon les besoins. Vous ne souhaitez probablement pas le lancer manuellement. diff --git a/data/catalogs/apps/cortex/DormantNodeView/da.catkeys b/data/catalogs/apps/cortex/DormantNodeView/da.catkeys new file mode 100644 index 0000000000..c2ec283be0 --- /dev/null +++ b/data/catalogs/apps/cortex/DormantNodeView/da.catkeys @@ -0,0 +1,3 @@ +1 danish application/x-vnd.Cortex.DormantNodeView 4224945067 +Media add-ons CortexDormantNodeWindow Medietilføjelser +Get info CortexDormantNodeListItem Hent information diff --git a/data/catalogs/apps/cortex/DormantNodeView/el.catkeys b/data/catalogs/apps/cortex/DormantNodeView/el.catkeys new file mode 100644 index 0000000000..9643a48f6c --- /dev/null +++ b/data/catalogs/apps/cortex/DormantNodeView/el.catkeys @@ -0,0 +1,3 @@ +1 greek, modern (1453-) application/x-vnd.Cortex.DormantNodeView 4224945067 +Media add-ons CortexDormantNodeWindow Πρόσθετα πολυμέσων +Get info CortexDormantNodeListItem Πληροφορίες diff --git a/data/catalogs/apps/cortex/DormantNodeView/fr.catkeys b/data/catalogs/apps/cortex/DormantNodeView/fr.catkeys new file mode 100644 index 0000000000..2483765838 --- /dev/null +++ b/data/catalogs/apps/cortex/DormantNodeView/fr.catkeys @@ -0,0 +1,2 @@ +1 french application/x-vnd.Cortex.DormantNodeView 1987170530 +Get info CortexDormantNodeListItem Accéder aux informations diff --git a/data/catalogs/apps/cortex/DormantNodeView/id.catkeys b/data/catalogs/apps/cortex/DormantNodeView/id.catkeys new file mode 100644 index 0000000000..057c9cdd10 --- /dev/null +++ b/data/catalogs/apps/cortex/DormantNodeView/id.catkeys @@ -0,0 +1,2 @@ +1 indonesian application/x-vnd.Cortex.DormantNodeView 1987170530 +Get info CortexDormantNodeListItem Dapatkan info diff --git a/data/catalogs/apps/cortex/InfoView/da.catkeys b/data/catalogs/apps/cortex/InfoView/da.catkeys index 9e00a3c94c..2e9f0617e8 100644 --- a/data/catalogs/apps/cortex/InfoView/da.catkeys +++ b/data/catalogs/apps/cortex/InfoView/da.catkeys @@ -1,4 +1,4 @@ -1 danish application/x-vnd.Cortex.InfoView 3525744887 +1 danish application/x-vnd.Cortex.InfoView 4143712268 Offset InfoView Forskydning Description DormantNodeInfoView Beskrivelse Connection InfoView Forbindelse @@ -7,6 +7,9 @@ History InfoView Historik Input formats DormantNodeInfoView Inputformater Signature AppNodeInfoView Underskrift Media output InfoView Medieoutput +\n- Quality: FileNodeInfoView \n- Kvalitet: +Application AppNodeInfoView Program +\n- Duration: FileNodeInfoView \n- Varighed: Media type InfoView Medietype Resolution InfoView Opløsning File format AppNodeInfoView Filformat @@ -18,8 +21,11 @@ Media input InfoView Medieinput Input format DormantNodeInfoView Inputformat Format InfoView Format Version AppNodeInfoView Version +AddOn ID DormantNodeInfoView Tilføjelses-id +Run mode LiveNodeInfoView Kørselstilstand Port LiveNodeInfoView Port Output format DormantNodeInfoView Outputformat +Aspect ratio InfoView Højde-bredde-forhold Tracks FileNodeInfoView Spor Source InfoView Kilde Destination InfoView Destination diff --git a/data/catalogs/apps/cortex/InfoView/el.catkeys b/data/catalogs/apps/cortex/InfoView/el.catkeys new file mode 100644 index 0000000000..afa0b2b0b7 --- /dev/null +++ b/data/catalogs/apps/cortex/InfoView/el.catkeys @@ -0,0 +1,27 @@ +1 greek, modern (1453-) application/x-vnd.Cortex.InfoView 4191502754 +Offset InfoView Μετατόπιση +Description DormantNodeInfoView Περιγραφή +Byte order InfoView Σειρά bytes +Connection InfoView Σύνδεση +Output formats DormantNodeInfoView Μορφότυπα εξόδου +History InfoView Ιστορικό +Input formats DormantNodeInfoView Μορφότυπα εισόδου +Signature AppNodeInfoView Υπογραφή +Video data between InfoView Ενδιάμεσα δεδομένα βίντεο +Any number DormantNodeInfoView For 'Max. instances' field Οποιοσδήποτε αριθμός +Media output InfoView Έξοδος πολυμέσων +Active lines InfoView Ενεργές γραμμές +Buffer size InfoView Μέγεθος buffer +\n- Quality: FileNodeInfoView \n- Ποιότητα +Kinds LiveNodeInfoView Είδη +Application AppNodeInfoView Εφσρμογή +\n- Duration: FileNodeInfoView \n- Διάρκεια: +Media type InfoView Είδος πολυμέσων +%title% info InfoView Πληροφορίες για %title% +Node ID LiveNodeInfoView Αναγνωριστικό κόμβου +File format AppNodeInfoView Μορφότυπο +Orientation InfoView Προσανατολισμός +Channels InfoView Κανάλια +File format FileNodeInfoView Μορφότυπο +(no file) FileNodeInfoView (κανένα αρχείο) +Media input InfoView Είσοδος πολυμέσων diff --git a/data/catalogs/apps/cortex/InfoView/fr.catkeys b/data/catalogs/apps/cortex/InfoView/fr.catkeys index 03580fe2e1..2bef6644da 100644 --- a/data/catalogs/apps/cortex/InfoView/fr.catkeys +++ b/data/catalogs/apps/cortex/InfoView/fr.catkeys @@ -1,4 +1,4 @@ -1 french application/x-vnd.Cortex.InfoView 3622294481 +1 french application/x-vnd.Cortex.InfoView 3513193697 Description DormantNodeInfoView Description Byte order InfoView Boutisme Connection InfoView Connexion @@ -10,10 +10,14 @@ Flags InfoView Drapeaux Active lines InfoView Lignes actives Buffer size InfoView Taille du tampon \n- Quality: FileNodeInfoView \n- Qualité : +Application AppNodeInfoView Application +Max. instances DormantNodeInfoView Instances max. +\n- Duration: FileNodeInfoView \n- Durée : Latency LiveNodeInfoView Temps de latence Media type InfoView Type de média Node ID LiveNodeInfoView ID de nœud Resolution InfoView Résolution +Chunk size InfoView Taille des fragments File format AppNodeInfoView Format de fichier Orientation InfoView Orientation Channels InfoView Canaux @@ -31,4 +35,5 @@ Output format DormantNodeInfoView Format Tracks FileNodeInfoView Piste Source InfoView Source Destination InfoView Destination +Copyright FileNodeInfoView Copyright ID: FileNodeInfoView ID : diff --git a/data/catalogs/apps/cortex/InfoView/id.catkeys b/data/catalogs/apps/cortex/InfoView/id.catkeys new file mode 100644 index 0000000000..0304257ade --- /dev/null +++ b/data/catalogs/apps/cortex/InfoView/id.catkeys @@ -0,0 +1,15 @@ +1 indonesian application/x-vnd.Cortex.InfoView 514429199 +Description DormantNodeInfoView Deskripsi +Byte order InfoView Urutan bita +Connection InfoView Koneksi +Output formats DormantNodeInfoView Format keluaran +History InfoView Riwayat +Input formats DormantNodeInfoView Format masukan +Flags InfoView Tanda +Kinds DormantNodeInfoView Jenis +Resolution InfoView Resolusi +Orientation InfoView Orientasi +Channels InfoView Kanal +(no file) FileNodeInfoView (tidak ada berkas) +Format InfoView Format +Version AppNodeInfoView Versi diff --git a/data/catalogs/apps/cortex/InfoView/pt.catkeys b/data/catalogs/apps/cortex/InfoView/pt.catkeys index 3238bd8aa4..8167ae6ca4 100644 --- a/data/catalogs/apps/cortex/InfoView/pt.catkeys +++ b/data/catalogs/apps/cortex/InfoView/pt.catkeys @@ -1,26 +1,37 @@ -1 portuguese application/x-vnd.Cortex.InfoView 980116304 +1 portuguese application/x-vnd.Cortex.InfoView 2468362915 +Offset InfoView Deslocamento Description DormantNodeInfoView Descrição +Connection InfoView Conexão Output formats DormantNodeInfoView Formatos de saída +History InfoView Histórico Input formats DormantNodeInfoView Formatos de entrada Signature AppNodeInfoView Assinatura Video data between InfoView Dados de vídeo entre Any number DormantNodeInfoView For 'Max. instances' field Qualquer número Active lines InfoView Linhas ativas +Buffer size InfoView Tamanho do buffer \n- Quality: FileNodeInfoView \n- Qualidade: +Kinds LiveNodeInfoView Tipos Application AppNodeInfoView Aplicação \n- Duration: FileNodeInfoView \n- Duração: Latency LiveNodeInfoView Latência +Media type InfoView Tipo de mídia +Kinds DormantNodeInfoView Tipos Resolution InfoView Resolução +Chunk size InfoView Tamanho do bloco File format AppNodeInfoView Formato de ficheiro Orientation InfoView Orientação Channels InfoView Canais Sample rate InfoView Taxa de amostragem File format FileNodeInfoView Formato de ficheiro (no file) FileNodeInfoView (nenhum ficheiro) +Media input InfoView Entrada de mídia +Bit rate InfoView Taxa de bit Input format DormantNodeInfoView Formato de entrada Format InfoView Formato Version AppNodeInfoView Versão Frame size InfoView Tamanho de quadro +Port LiveNodeInfoView Porta Output format DormantNodeInfoView Formato de saída Aspect ratio InfoView Proporção Tracks FileNodeInfoView Faixas diff --git a/data/catalogs/apps/cortex/InfoView/ru.catkeys b/data/catalogs/apps/cortex/InfoView/ru.catkeys index 722b162311..2d1a97490b 100644 --- a/data/catalogs/apps/cortex/InfoView/ru.catkeys +++ b/data/catalogs/apps/cortex/InfoView/ru.catkeys @@ -30,7 +30,7 @@ Bit rate InfoView Битрейт Input format DormantNodeInfoView Формат ввода Format InfoView Формат Version AppNodeInfoView Версия -AddOn ID DormantNodeInfoView ID аддона +AddOn ID DormantNodeInfoView ID дополнения Frame size InfoView Размер кадра \n- Codec: FileNodeInfoView \n- Кодек: Port LiveNodeInfoView Порт diff --git a/data/catalogs/apps/cortex/MediaRoutingView/da.catkeys b/data/catalogs/apps/cortex/MediaRoutingView/da.catkeys index e81af6fb03..a4bfb41b1e 100644 --- a/data/catalogs/apps/cortex/MediaRoutingView/da.catkeys +++ b/data/catalogs/apps/cortex/MediaRoutingView/da.catkeys @@ -1,13 +1,26 @@ -1 danish application/x-vnd.Cortex.MediaRoutingView 1615780678 +1 danish application/x-vnd.Cortex.MediaRoutingView 2442001291 Lock group MediaNodePanel Lås gruppe Video output MediaRoutingView Videooutput Icon view MediaRoutingView Ikonvisning OK MediaRoutingView OK Advanced MediaNodePanel Avanceret Audio input MediaRoutingView Lydinput +Run mode MediaNodePanel Kørselstilstand +Could not load '%filename%' MediaRoutingView Kunne ikke indlæse '%filename%' +Stop time source MediaNodePanel Stop tidskilde +Be Audio Mixer MediaRoutingView Be-lydmixer Video input MediaRoutingView Videoinput +Mini icon view MediaRoutingView Miniikonvisning +Select all MediaRoutingView Vælg alt +(same as group) MediaNodePanel (samme som gruppe) Input MediaJack Input +Get info MediaJack Hent information +Start time source MediaNodePanel Start tidskilde Error MediaRoutingView Fejl Output MediaJack Output +Get info MediaNodePanel Hent information +Get info MediaRoutingView Hent information Clean up MediaRoutingView Ryd op Start control panel MediaNodePanel Start kontrolpanel +Tweak parameters MediaNodePanel Finjuster parametre +Unlock group MediaNodePanel Lås op for gruppe diff --git a/data/catalogs/apps/cortex/MediaRoutingView/el.catkeys b/data/catalogs/apps/cortex/MediaRoutingView/el.catkeys new file mode 100644 index 0000000000..be70bf8b89 --- /dev/null +++ b/data/catalogs/apps/cortex/MediaRoutingView/el.catkeys @@ -0,0 +1,34 @@ +1 greek, modern (1453-) application/x-vnd.Cortex.MediaRoutingView 3442339205 +Lock group MediaNodePanel Κλείδωμα ομάδας +%refname% (no file) MediaNodePanel %refname% (κανένα αρχείο) +Video output MediaRoutingView Έξοδος βίντεο +Icon view MediaRoutingView Προβολή εικονιδίων +OK MediaRoutingView Εντάξει +Cycle MediaNodePanel Κύκλος +Advanced MediaNodePanel Προχωρημένα +Audio input MediaRoutingView Είσοδος ήχου +Run mode MediaNodePanel Λειτουργία +Could not load '%filename%' MediaRoutingView Αδύνατη η φόρτωση του αρχείου "%filename%" +Stop time source MediaNodePanel Σταμάτημα πηγής χρόνου +Be Audio Mixer MediaRoutingView Μίκτης ήχου Be +Video input MediaRoutingView Είσοδος βίντεο +Release MediaNodePanel Αποδέσμευση +Disconnect MediaRoutingView Αποσύνδεση +Could not disconnect MediaRoutingView Αδύνατη η αποσύνδεση +Could not instantiate '%infoname%' MediaRoutingView Αδύνατη η αρχικοποίηση του "%infoname%" +Mini icon view MediaRoutingView Προβολή μικρών εικονιδίων +Select all MediaRoutingView Επιλογή όλων +(same as group) MediaNodePanel (όπως και στην ομάδα) +Input MediaJack Είσοδος +Get info MediaJack Πληροφορίες +Start time source MediaNodePanel Έναρξη πηγής χρόνου +Error MediaRoutingView Σφάλμα +Could not release '%refname%' MediaRoutingView Αδύνατη η αποδέσμευση του "%refname%" +Output MediaJack Έξοδος +Get info MediaNodePanel Πληροφορίες +Get info MediaRoutingView Πληροφορίες +Clean up MediaRoutingView Συγύρισμα +Start control panel MediaNodePanel Έναρξη πίνακα ελέγχου +Tweak parameters MediaNodePanel Προσαρμογή παραμέτρων +Could not connect MediaRoutingView Αδύνατη η σύνδεση +Unlock group MediaNodePanel Ξεκλείδωμα ομάδας diff --git a/data/catalogs/apps/cortex/MediaRoutingView/fr.catkeys b/data/catalogs/apps/cortex/MediaRoutingView/fr.catkeys index 4700dbae2e..4e55edf78e 100644 --- a/data/catalogs/apps/cortex/MediaRoutingView/fr.catkeys +++ b/data/catalogs/apps/cortex/MediaRoutingView/fr.catkeys @@ -1,9 +1,13 @@ -1 french application/x-vnd.Cortex.MediaRoutingView 4052235998 +1 french application/x-vnd.Cortex.MediaRoutingView 411417367 +Lock group MediaNodePanel Verrouiller le groupe +%refname% (no file) MediaNodePanel %refname% (pas de fichier) Video output MediaRoutingView Sortie vidéo OK MediaRoutingView OK Advanced MediaNodePanel Avancé Audio input MediaRoutingView Entrée audio +Could not load '%filename%' MediaRoutingView Impossible de charger « %filename% » Video input MediaRoutingView Entrée vidéo +Release MediaNodePanel Libérer Disconnect MediaRoutingView Déconnecter Could not disconnect MediaRoutingView Déconnexion impossible Could not instantiate '%infoname%' MediaRoutingView Impossible d’instancier « %infoname% » @@ -16,3 +20,4 @@ Output MediaJack Sortie Clean up MediaRoutingView Nettoyer Tweak parameters MediaNodePanel Affiner les paramètres Could not connect MediaRoutingView Connexion impossible +Unlock group MediaNodePanel Déverrouiller le groupe diff --git a/data/catalogs/apps/cortex/MediaRoutingView/pt.catkeys b/data/catalogs/apps/cortex/MediaRoutingView/pt.catkeys index f925980062..c3388e42d0 100644 --- a/data/catalogs/apps/cortex/MediaRoutingView/pt.catkeys +++ b/data/catalogs/apps/cortex/MediaRoutingView/pt.catkeys @@ -1,15 +1,18 @@ -1 portuguese application/x-vnd.Cortex.MediaRoutingView 850971648 +1 portuguese application/x-vnd.Cortex.MediaRoutingView 3146168479 Video output MediaRoutingView Saída de vídeo Icon view MediaRoutingView Vista de ícones OK MediaRoutingView OK Advanced MediaNodePanel Avançado Audio input MediaRoutingView Entrada de áudio +Be Audio Mixer MediaRoutingView Misturador de áudio Be Video input MediaRoutingView Entrada de vídeo +Release MediaNodePanel Lançamento Disconnect MediaRoutingView Desligar Could not disconnect MediaRoutingView Não foi possível desligar Could not instantiate '%infoname%' MediaRoutingView Não foi possível instanciar '%infoname%' Mini icon view MediaRoutingView Vista de mini-ícones Select all MediaRoutingView Selecionar todos +(same as group) MediaNodePanel (mesmo que o grupo) Input MediaJack Entrada Get info MediaJack Obter informações Error MediaRoutingView Erro diff --git a/data/catalogs/apps/cortex/NodeManager/da.catkeys b/data/catalogs/apps/cortex/NodeManager/da.catkeys index e884decf34..46c9fde5c2 100644 --- a/data/catalogs/apps/cortex/NodeManager/da.catkeys +++ b/data/catalogs/apps/cortex/NodeManager/da.catkeys @@ -1,2 +1,7 @@ -1 danish application/x-vnd.Cortex.NodeManager 4260536078 +1 danish application/x-vnd.Cortex.NodeManager 1301322433 +System audio mixer NodeManager Systemets lydmixer +System video output NodeManager Systemets videooutput +System video input NodeManager Systemets videoinput No name NodeManager Intet navn +System audio input NodeManager Systemets lydinput +Time sources NodeManager Tidskilder diff --git a/data/catalogs/apps/cortex/NodeManager/fr.catkeys b/data/catalogs/apps/cortex/NodeManager/fr.catkeys index 1ec197295b..965cf2aa5e 100644 --- a/data/catalogs/apps/cortex/NodeManager/fr.catkeys +++ b/data/catalogs/apps/cortex/NodeManager/fr.catkeys @@ -1,6 +1,7 @@ -1 french application/x-vnd.Cortex.NodeManager 1335753651 +1 french application/x-vnd.Cortex.NodeManager 1301322433 System audio mixer NodeManager Mixeur audio système System video output NodeManager Sortie vidéo système System video input NodeManager Entrée vidéo système +No name NodeManager Sans nom System audio input NodeManager Entrée audio système Time sources NodeManager Références de temps diff --git a/data/catalogs/apps/cortex/NodeManager/pt.catkeys b/data/catalogs/apps/cortex/NodeManager/pt.catkeys new file mode 100644 index 0000000000..6d59e0dd12 --- /dev/null +++ b/data/catalogs/apps/cortex/NodeManager/pt.catkeys @@ -0,0 +1,6 @@ +1 portuguese application/x-vnd.Cortex.NodeManager 3105279906 +System audio mixer NodeManager Misturador de áudio do sistema +System video output NodeManager Saída de vídeo do sistema +System video input NodeManager Entrada de vídeo do sistema +No name NodeManager Sem nome +System audio input NodeManager Entrada de áudio do sistema diff --git a/data/catalogs/apps/cortex/ParameterView/da.catkeys b/data/catalogs/apps/cortex/ParameterView/da.catkeys index a1e9ac4b85..ca7ef7345d 100644 --- a/data/catalogs/apps/cortex/ParameterView/da.catkeys +++ b/data/catalogs/apps/cortex/ParameterView/da.catkeys @@ -1,6 +1,8 @@ -1 danish application/x-vnd.Cortex.ParameterView 1585686793 +1 danish application/x-vnd.Cortex.ParameterView 1295152157 Themes ParameterWindow Temaer Start control panel ParameterWindow Start kontrolpanel +%nodeinfo% parameters ParameterWindow %nodeinfo%-parametre OK ParameterWindow OK Window ParameterWindow Vindue +Could not start control panel (%error%) ParameterWindow Kunne ikke starte kontrolpanel (%error%) Close ParameterWindow Luk diff --git a/data/catalogs/apps/cortex/RouteApp/da.catkeys b/data/catalogs/apps/cortex/RouteApp/da.catkeys index c76ea6d823..cc5c5aacb2 100644 --- a/data/catalogs/apps/cortex/RouteApp/da.catkeys +++ b/data/catalogs/apps/cortex/RouteApp/da.catkeys @@ -1,7 +1,10 @@ -1 danish application/x-vnd.Cortex.Route 2282970257 +1 danish application/x-vnd.Cortex.Route 3241560755 OK CortexRouteApp OK File CortexRouteApp Fil Window CortexRouteApp Vindue +Transport CortexRouteApp Styring Untitled group CortexRouteApp Unavngivet gruppe Open… CortexRouteApp Åbn… +Show transport CortexRouteApp Vis styring +Show add-ons CortexRouteApp Vis tilføjelser Quit CortexRouteApp Afslut diff --git a/data/catalogs/apps/cortex/RouteApp/fi.catkeys b/data/catalogs/apps/cortex/RouteApp/fi.catkeys index 168eda1c81..2b3e162c03 100644 --- a/data/catalogs/apps/cortex/RouteApp/fi.catkeys +++ b/data/catalogs/apps/cortex/RouteApp/fi.catkeys @@ -1,4 +1,4 @@ -1 finnish application/x-vnd.Cortex.Route 2011521004 +1 finnish application/x-vnd.Cortex.Route 25925955 Node '%name%' released CortexRouteApp Solmu ’%name%’ julkaistu OK CortexRouteApp Valmis About Cortex/Route… CortexRouteApp Ohjelmasta Cortex/Route… @@ -17,6 +17,7 @@ Connection '%name%' broken CortexRouteApp Yhteys '%name%' katkennut Between: CortexRouteApp Välillä: Cortex CortexRouteApp Cortex Open… CortexRouteApp Avaa… +Pull palettes CortexRouteApp Anna paletit Connection made CortexRouteApp Yhteys muodostettu Show transport CortexRouteApp Näytä siirto Show add-ons CortexRouteApp Näytä lisäosat diff --git a/data/catalogs/apps/cortex/RouteApp/fr.catkeys b/data/catalogs/apps/cortex/RouteApp/fr.catkeys index d5e6efec55..b1312794e7 100644 --- a/data/catalogs/apps/cortex/RouteApp/fr.catkeys +++ b/data/catalogs/apps/cortex/RouteApp/fr.catkeys @@ -1,4 +1,4 @@ -1 french application/x-vnd.Cortex.Route 2746881077 +1 french application/x-vnd.Cortex.Route 1581450909 Node '%name%' released CortexRouteApp Nœud « %name% » libéré OK CortexRouteApp OK About Cortex/Route… CortexRouteApp À propos de Cortex/Route… @@ -7,10 +7,15 @@ Connection '%name%' made CortexRouteApp Connexion « %name% » effectuée Save nodes… CortexRouteApp Enregistrer les nœuds… %producer% and %consumer% CortexRouteApp %producer% et %consumer% Node '%name%' created CortexRouteApp Nœud « %name% » créé +Negotiated format: CortexRouteApp Format négocié : Window CortexRouteApp Fenêtre Untitled group CortexRouteApp Groupe sans titre +Connection failed CortexRouteApp La connexion a échoué +Connection '%name%' broken CortexRouteApp Connexion ‘%name%’ interrompue Between: CortexRouteApp Entre : Cortex CortexRouteApp Cortex Open… CortexRouteApp Ouvrir… Connection made CortexRouteApp Connexion effectuée +Show add-ons CortexRouteApp Montrer les extensions Quit CortexRouteApp Quitter +Tried format: CortexRouteApp Format essayé : diff --git a/data/catalogs/apps/cortex/RouteApp/pt.catkeys b/data/catalogs/apps/cortex/RouteApp/pt.catkeys index 2ffe9c5284..cb95e25e3f 100644 --- a/data/catalogs/apps/cortex/RouteApp/pt.catkeys +++ b/data/catalogs/apps/cortex/RouteApp/pt.catkeys @@ -1,7 +1,8 @@ -1 portuguese application/x-vnd.Cortex.Route 3446779435 +1 portuguese application/x-vnd.Cortex.Route 148328950 OK CortexRouteApp OK About Cortex/Route… CortexRouteApp Acerca de Cortex/Route… File CortexRouteApp Ficheiro +Node '%name%' created CortexRouteApp Nó '%name%' criado Negotiated format: CortexRouteApp Formato negociado: Window CortexRouteApp Janela Transport CortexRouteApp Transporte diff --git a/data/catalogs/apps/cortex/RouteApp/ru.catkeys b/data/catalogs/apps/cortex/RouteApp/ru.catkeys index 04f77f2c86..90d94b9275 100644 --- a/data/catalogs/apps/cortex/RouteApp/ru.catkeys +++ b/data/catalogs/apps/cortex/RouteApp/ru.catkeys @@ -17,6 +17,6 @@ Between: CortexRouteApp Между: Open… CortexRouteApp Открыть… Connection made CortexRouteApp Соединение выполнено Show transport CortexRouteApp Показать транспорт -Show add-ons CortexRouteApp Показать аддоны +Show add-ons CortexRouteApp Показать дополнения Quit CortexRouteApp Выход Cortex/Route 2.1.2\n\nCopyright 1999-2000 Eric Moon\nAll rights reserved.\n\nThe Cortex Team:\n\nChristopher Lenz: UI\nEric Moon: UI, back-end\n\nThanks to:\nJohn Ashmun\nJon Watte\nDoug Wright\n\n\nCertain icons used herein are the property of\nBe, Inc. and are used by permission. CortexRouteApp Cortex/Route 2.1.2\n\nАвторское право 1999-2000 Eric Moon\nВсе права защищены.\n\nThe Cortex Team:\n\nChristopher Lenz: UI\nEric Moon: UI, back-end\n\nОтдельное спасибо:\nJohn Ashmun\nJon Watte\nDoug Wright\n<ваше имя здесь>\n\nНекоторые иконки здесь принадлежат\nBe, Inc. и использованы по разрешению. diff --git a/data/catalogs/apps/cortex/TipManager/da.catkeys b/data/catalogs/apps/cortex/TipManager/da.catkeys new file mode 100644 index 0000000000..b6625652c0 --- /dev/null +++ b/data/catalogs/apps/cortex/TipManager/da.catkeys @@ -0,0 +1,2 @@ +1 danish application/x-vnd.Cortex.TipManager 3157385962 +(no info) TipWindow (ingen info) diff --git a/data/catalogs/apps/cortex/TipManager/el.catkeys b/data/catalogs/apps/cortex/TipManager/el.catkeys new file mode 100644 index 0000000000..032ba3cd9a --- /dev/null +++ b/data/catalogs/apps/cortex/TipManager/el.catkeys @@ -0,0 +1,2 @@ +1 greek, modern (1453-) application/x-vnd.Cortex.TipManager 3157385962 +(no info) TipWindow (δεν υπάρχουν πληροφορίες) diff --git a/data/catalogs/apps/cortex/TransportView/da.catkeys b/data/catalogs/apps/cortex/TransportView/da.catkeys new file mode 100644 index 0000000000..57745f2cb3 --- /dev/null +++ b/data/catalogs/apps/cortex/TransportView/da.catkeys @@ -0,0 +1,20 @@ +1 danish application/x-vnd.Cortex.TransportView 1198513874 +Roll TransportView Rul +(none) TransportView (ingen) +{0, plural, one{# node} other{# nodes}} TransportView {0, plural, one{# knudepunkt} other{# knudepunkter}} +Start TransportView Start +No errors. TransportView Ingen fejl. +to TransportView til +Offline TransportView Offline +(???) TransportView (???) +Stop TransportView Stop +(no group) TransportView (ingen gruppe) +Drop data TransportView Drop data +To: TransportView Til: +Recording TransportView Optager +Time source: TransportView Tidskilde: +DAC time source TransportView DAC-tidskilde +System clock TransportView Systemets ur +From: TransportView Fra: +Roll from TransportView Rul fra +Run mode: TransportView Kørselstilstand: diff --git a/data/catalogs/apps/cortex/TransportView/fr.catkeys b/data/catalogs/apps/cortex/TransportView/fr.catkeys index e938dbaded..f7a15b1af8 100644 --- a/data/catalogs/apps/cortex/TransportView/fr.catkeys +++ b/data/catalogs/apps/cortex/TransportView/fr.catkeys @@ -1,12 +1,21 @@ -1 french application/x-vnd.Cortex.TransportView 1915428651 +1 french application/x-vnd.Cortex.TransportView 4230127975 +Roll TransportView Dérouler +(none) TransportView (aucun) {0, plural, one{# node} other{# nodes}} TransportView {0, plural, one{# nœud} other{# nœuds}} Start TransportView Démarrer +No errors. TransportView Pas d’erreurs. +to TransportView à Offline TransportView Hors ligne (???) TransportView (???) Stop TransportView Arrêter +(no group) TransportView (aucun groupe) +Drop data TransportView Rejeter les données To: TransportView À : +Recording TransportView En enregistrement Increase latency TransportView Augmenter le temps de latence Time source: TransportView Référence de temps : Decrease precision TransportView Réduire la précision System clock TransportView Horloge système From: TransportView De : +Roll from TransportView Dérouler de +Run mode: TransportView Mode d’exécution : diff --git a/data/catalogs/apps/cortex/TransportView/id.catkeys b/data/catalogs/apps/cortex/TransportView/id.catkeys new file mode 100644 index 0000000000..9873e0795e --- /dev/null +++ b/data/catalogs/apps/cortex/TransportView/id.catkeys @@ -0,0 +1,2 @@ +1 indonesian application/x-vnd.Cortex.TransportView 2103888973 +(???) TransportView (???) diff --git a/data/catalogs/apps/cortex/TransportView/pt.catkeys b/data/catalogs/apps/cortex/TransportView/pt.catkeys index 4dc0db8176..1bf1ad2ed7 100644 --- a/data/catalogs/apps/cortex/TransportView/pt.catkeys +++ b/data/catalogs/apps/cortex/TransportView/pt.catkeys @@ -1,7 +1,12 @@ -1 portuguese application/x-vnd.Cortex.TransportView 4247995065 +1 portuguese application/x-vnd.Cortex.TransportView 2846009574 (none) TransportView (nenhum) No errors. TransportView Sem erros. +to TransportView para +(???) TransportView (???) +Stop TransportView Parar (no group) TransportView (nenhum grupo) +To: TransportView Para: Increase latency TransportView Aumentar latência Decrease precision TransportView Diminuir precisão System clock TransportView Relógio de sistema +From: TransportView De: diff --git a/data/catalogs/apps/cortex/addons/AudioAdapter/el.catkeys b/data/catalogs/apps/cortex/addons/AudioAdapter/el.catkeys new file mode 100644 index 0000000000..73c8eaebf5 --- /dev/null +++ b/data/catalogs/apps/cortex/addons/AudioAdapter/el.catkeys @@ -0,0 +1,10 @@ +1 greek, modern (1453-) application/x-vnd.moon-AudioAdapter.media_addon 2282220510 +Input format CortexAudioAdapter Μορφή εισόδου +Channels: CortexAudioAdapter Κανάλια: +stereo CortexAudioAdapter στερεοφωνικό +mono CortexAudioAdapter μονοφωνικό +Output format CortexAudioAdapter Μορφή εξόδου +Audio input CortexAddOnsCommon Είσοδος ήχου +Sample format: CortexAudioAdapter Μορφή δείγματος: +Audio output CortexAddOnsCommon Έξοδος ήχου +%groupname% parameters CortexAddOnsCommon Ρυθμίσεις %groupname% diff --git a/data/catalogs/apps/cortex/addons/AudioAdapter/id.catkeys b/data/catalogs/apps/cortex/addons/AudioAdapter/id.catkeys new file mode 100644 index 0000000000..ea6a39f179 --- /dev/null +++ b/data/catalogs/apps/cortex/addons/AudioAdapter/id.catkeys @@ -0,0 +1,8 @@ +1 indonesian application/x-vnd.moon-AudioAdapter.media_addon 1575326340 +Input format CortexAudioAdapter Format masukan +Channels: CortexAudioAdapter Kanal: +stereo CortexAudioAdapter stereo +mono CortexAudioAdapter mono +Output format CortexAudioAdapter Format keluaran +Audio input CortexAddOnsCommon Masukan Audio +Audio output CortexAddOnsCommon Keluaran Audio diff --git a/data/catalogs/apps/cortex/addons/Flanger/da.catkeys b/data/catalogs/apps/cortex/addons/Flanger/da.catkeys index fe429f46f5..0366e4e72c 100644 --- a/data/catalogs/apps/cortex/addons/Flanger/da.catkeys +++ b/data/catalogs/apps/cortex/addons/Flanger/da.catkeys @@ -1,7 +1,8 @@ -1 danish application/x-vnd.moon-Flanger.media_addon 597017916 +1 danish application/x-vnd.moon-Flanger.media_addon 2007966921 An add-on version of FlangerNode.\nby Eric Moon (16 June, 1999) CortexAddOnsFlanger En tilføjelsesversion af FlangerNode.\naf Eric Moon (16 Juni, 1999) Delay CortexAddOnsFlanger Forsinkelse Depth CortexAddOnsFlanger Dybde +Feedback CortexAddOnsFlanger Feedback FlangerNode parameters CortexAddOnsFlanger FlangerNode-parametre OK CortexAddOnsCommonMediaNodeControlApp OK controls CortexAddOnsCommonMediaNodeControlApp styringer diff --git a/data/catalogs/apps/cortex/addons/Flanger/el.catkeys b/data/catalogs/apps/cortex/addons/Flanger/el.catkeys new file mode 100644 index 0000000000..b9639e40eb --- /dev/null +++ b/data/catalogs/apps/cortex/addons/Flanger/el.catkeys @@ -0,0 +1,15 @@ +1 greek, modern (1453-) application/x-vnd.moon-Flanger.media_addon 3644480584 +An add-on version of FlangerNode.\nby Eric Moon (16 June, 1999) CortexAddOnsFlanger Το FlangerNode με τη μορφή προσθέτου.\nτου Eric Moon (16 Ιουνίου 1999) +Delay CortexAddOnsFlanger Καθυστέρηση +Depth CortexAddOnsFlanger Βάθος +Feedback CortexAddOnsFlanger Απόκριση +Sweep rate CortexAddOnsFlanger Ρυθμός ολίσθησης +Mix ratio CortexAddOnsFlanger Αναλογία μίξης +MediaNodeControlApp: couldn't get node info (%d):\n%s\n CortexAddOnsCommonMediaNodeControlApp MediaNodeControlApp: αδύνατη η ανάκτηση πληροφοριών κόμβου (%d):\n%s\n +MediaNodeControlApp: couldn't find node (%d):\n%s\n CortexAddOnsCommonMediaNodeControlApp MediaNodeControlApp: αδύνατη η εύρεση του κόμβου (%d):\n%s\n +FlangerNode parameters CortexAddOnsFlanger Ρυθμίσεις FlangerNode +OK CortexAddOnsCommonMediaNodeControlApp Εντάξει +controls CortexAddOnsCommonMediaNodeControlApp χειριστήρια +Mix output CortexAddOnsFlanger Μίξη εξόδου +MediaNodeControlApp: no parameters for node (%d):\n%s\n CortexAddOnsCommonMediaNodeControlApp MediaNodeControlApp: δεν υπάρχουν ρυθμίσεις για τον κόμβο (%d):\n%s\n +Audio input CortexAddOnsFlanger Είσοδος ήχου diff --git a/data/catalogs/apps/cortex/addons/Flanger/fi.catkeys b/data/catalogs/apps/cortex/addons/Flanger/fi.catkeys index 5a3324823e..a1222de832 100644 --- a/data/catalogs/apps/cortex/addons/Flanger/fi.catkeys +++ b/data/catalogs/apps/cortex/addons/Flanger/fi.catkeys @@ -1,4 +1,4 @@ -1 finnish application/x-vnd.moon-Flanger.media_addon 3644480584 +1 finnish application/x-vnd.moon-Flanger.media_addon 2732361347 An add-on version of FlangerNode.\nby Eric Moon (16 June, 1999) CortexAddOnsFlanger FlangerNode-lisäosaversio.\ntekijä: Eric Moon (16 kesäkuuta, 1999) Delay CortexAddOnsFlanger Viive Depth CortexAddOnsFlanger Syvyys @@ -11,5 +11,6 @@ FlangerNode parameters CortexAddOnsFlanger FlangerNode-parametrit OK CortexAddOnsCommonMediaNodeControlApp Valmis controls CortexAddOnsCommonMediaNodeControlApp ohjaimet Mix output CortexAddOnsFlanger Sekoituslähtö +Flanger CortexAddOnsFlanger Reunustaja MediaNodeControlApp: no parameters for node (%d):\n%s\n CortexAddOnsCommonMediaNodeControlApp MediaNodeControlApp: solmulle (%d) ei ole parametreja:\n%s\n Audio input CortexAddOnsFlanger Audiosyöte diff --git a/data/catalogs/apps/cortex/addons/Flanger/fr.catkeys b/data/catalogs/apps/cortex/addons/Flanger/fr.catkeys index 80b1100693..4ed240e9f3 100644 --- a/data/catalogs/apps/cortex/addons/Flanger/fr.catkeys +++ b/data/catalogs/apps/cortex/addons/Flanger/fr.catkeys @@ -1,9 +1,15 @@ -1 french application/x-vnd.moon-Flanger.media_addon 560803438 +1 french application/x-vnd.moon-Flanger.media_addon 1005167688 +An add-on version of FlangerNode.\nby Eric Moon (16 June, 1999) CortexAddOnsFlanger Une version du FlangerNode sous forme d’extension.\npar Eric Moon (16 juin 1999) Delay CortexAddOnsFlanger Retard Depth CortexAddOnsFlanger Profondeur Feedback CortexAddOnsFlanger Rétroaction Sweep rate CortexAddOnsFlanger Vitesse de balayage Mix ratio CortexAddOnsFlanger Ratio de mixage +MediaNodeControlApp: couldn't get node info (%d):\n%s\n CortexAddOnsCommonMediaNodeControlApp MediaNodeControlApp : Impossible d’obtenir des informations sur le nœud (%d) :\n%s\n +MediaNodeControlApp: couldn't find node (%d):\n%s\n CortexAddOnsCommonMediaNodeControlApp MediaNodeControlApp : Impossible de trouver le nœud (%d) :\n%s\n +FlangerNode parameters CortexAddOnsFlanger Paramètres du FlangerNode OK CortexAddOnsCommonMediaNodeControlApp OK controls CortexAddOnsCommonMediaNodeControlApp contrôles +Flanger CortexAddOnsFlanger Flanger +MediaNodeControlApp: no parameters for node (%d):\n%s\n CortexAddOnsCommonMediaNodeControlApp MediaNodeControlApp : aucun paramètre pour le nœud (%d) :\n%s\n Audio input CortexAddOnsFlanger Entrée audio diff --git a/data/catalogs/apps/cortex/addons/Flanger/id.catkeys b/data/catalogs/apps/cortex/addons/Flanger/id.catkeys new file mode 100644 index 0000000000..820c7f68f2 --- /dev/null +++ b/data/catalogs/apps/cortex/addons/Flanger/id.catkeys @@ -0,0 +1,5 @@ +1 indonesian application/x-vnd.moon-Flanger.media_addon 86138731 +OK CortexAddOnsCommonMediaNodeControlApp OK +controls CortexAddOnsCommonMediaNodeControlApp kendali +Mix output CortexAddOnsFlanger Keluaran mix +Audio input CortexAddOnsFlanger Masukan audio diff --git a/data/catalogs/apps/cortex/addons/LoggingConsumer/da.catkeys b/data/catalogs/apps/cortex/addons/LoggingConsumer/da.catkeys index 7d0c2618d4..83de5c3712 100644 --- a/data/catalogs/apps/cortex/addons/LoggingConsumer/da.catkeys +++ b/data/catalogs/apps/cortex/addons/LoggingConsumer/da.catkeys @@ -1,4 +1,5 @@ -1 danish application/x-vnd.Be.LoggingConsumerApp 1627625629 +1 danish application/x-vnd.Be.LoggingConsumerApp 3259009599 +Priority CortexAddOnsLoggingConsumer Prioritet Start CortexAddOnsLoggingConsumerNodeHarnessWin Start CPU percentage CortexAddOnsLoggingConsumer CPU-procent Stop CortexAddOnsLoggingConsumerNodeHarnessWin Stop diff --git a/data/catalogs/apps/cortex/addons/LoggingConsumer/el.catkeys b/data/catalogs/apps/cortex/addons/LoggingConsumer/el.catkeys new file mode 100644 index 0000000000..cbb517dd65 --- /dev/null +++ b/data/catalogs/apps/cortex/addons/LoggingConsumer/el.catkeys @@ -0,0 +1,22 @@ +1 greek, modern (1453-) application/x-vnd.Be.LoggingConsumerApp 1634779870 +Priority CortexAddOnsLoggingConsumer Προτεραιότητα +Latency CortexAddOnsLoggingConsumer Καθυστέρηση +Logged input CortexAddOnsLoggingConsumer Καταγεγραμμένη είσοδος +CPU spin percentage CortexAddOnsLoggingConsumer Ποσοστο περιστροφών ΚΜΕ +NodeLogger CortexAddOnsLoggingConsumers Καταγραφέας Κόμβου +Start CortexAddOnsLoggingConsumerNodeHarnessWin Εκκίνηση +Thread priority CortexAddOnsLoggingConsumer Προτεραιότητα νήματος +LoggingConsumer parameters CortexAddOnsLoggingConsumer Ρυθμίσεις Καταναλωτή Καταγραφών +Latency control CortexAddOnsLoggingConsumer Έλεγχος καθυστέρησης +MediaNodeControlApp: couldn't get node info (%d):\n%s\n CortexAddOnsCommonMediaNodeControlApp MediaNodeControlApp: αδύνατη η λήψη πληροφοριών κόμβου (%d):\n%s\n +CPU percentage CortexAddOnsLoggingConsumer Ποσοστό ΚΜΕ +MediaNodeControlApp: couldn't find node (%d):\n%s\n CortexAddOnsCommonMediaNodeControlApp MediaNodeControlApp: αδύνατη η εύρεση του κόμβου (%d):\n%s\n +LoggingConsumer CortexAddOnsLoggingConsumer LoggingConsumer +Stop CortexAddOnsLoggingConsumerNodeHarnessWin Σταμάτημα +An add-on version of the LoggingConsumer node.\nSee the Be Developer Newsletter III.18: 5 May, 1999\nadapted by Eric Moon (4 June, 1999) CortexAddOnsLoggingConsumer Κόμβος LoggingConsumer σε μορφή προσθέτου.\nΒλ. Be Developer Newsletter III.18: 5 Μαΐου 1999\nπροσαρμόστηκε από Eric Moon (4 Ιουνίου 1999) +OK CortexAddOnsCommonMediaNodeControlApp Εντάξει +Controls CortexAddOnsLoggingConsumerNodeHarnessWin Χειριστήρια +controls CortexAddOnsCommonMediaNodeControlApp χειριστήρια +Connect CortexAddOnsLoggingConsumerNodeHarnessWin Σύνδεση +percent CortexAddOnsLoggingConsumer ποσοστό +MediaNodeControlApp: no parameters for node (%d):\n%s\n CortexAddOnsCommonMediaNodeControlApp MediaNodeControlApp: δεν υπάρχουν ρυθμίσεις για τον κόμβο (%d):\n%s\n diff --git a/data/catalogs/apps/cortex/addons/LoggingConsumer/fi.catkeys b/data/catalogs/apps/cortex/addons/LoggingConsumer/fi.catkeys index 352f680074..50e270a798 100644 --- a/data/catalogs/apps/cortex/addons/LoggingConsumer/fi.catkeys +++ b/data/catalogs/apps/cortex/addons/LoggingConsumer/fi.catkeys @@ -1,7 +1,8 @@ -1 finnish application/x-vnd.Be.LoggingConsumerApp 2792125938 +1 finnish application/x-vnd.Be.LoggingConsumerApp 1634779870 Priority CortexAddOnsLoggingConsumer Prioriteetti Latency CortexAddOnsLoggingConsumer Viive Logged input CortexAddOnsLoggingConsumer Kirjautumissyöte +CPU spin percentage CortexAddOnsLoggingConsumer Prosessorituulettimen pyörimisprosentti NodeLogger CortexAddOnsLoggingConsumers NodeLogger Start CortexAddOnsLoggingConsumerNodeHarnessWin Käynnistä Thread priority CortexAddOnsLoggingConsumer Säieprioriteetti diff --git a/data/catalogs/apps/cortex/addons/LoggingConsumer/fr.catkeys b/data/catalogs/apps/cortex/addons/LoggingConsumer/fr.catkeys index 88f5c94024..f3d283c1f8 100644 --- a/data/catalogs/apps/cortex/addons/LoggingConsumer/fr.catkeys +++ b/data/catalogs/apps/cortex/addons/LoggingConsumer/fr.catkeys @@ -1,8 +1,10 @@ -1 french application/x-vnd.Be.LoggingConsumerApp 4066837535 +1 french application/x-vnd.Be.LoggingConsumerApp 3412272087 Priority CortexAddOnsLoggingConsumer Priorité Latency CortexAddOnsLoggingConsumer Temps de latence Logged input CortexAddOnsLoggingConsumer Entrées journalisés +CPU spin percentage CortexAddOnsLoggingConsumer Taux de charge du CPU Start CortexAddOnsLoggingConsumerNodeHarnessWin Démarrer +LoggingConsumer parameters CortexAddOnsLoggingConsumer Paramètres du LoggingConsumer Latency control CortexAddOnsLoggingConsumer Contrôle du temps de latence CPU percentage CortexAddOnsLoggingConsumer Pourcentages CPU Stop CortexAddOnsLoggingConsumerNodeHarnessWin Arrêter @@ -10,3 +12,4 @@ OK CortexAddOnsCommonMediaNodeControlApp OK Controls CortexAddOnsLoggingConsumerNodeHarnessWin Contrôles controls CortexAddOnsCommonMediaNodeControlApp contrôles Connect CortexAddOnsLoggingConsumerNodeHarnessWin Connecter +percent CortexAddOnsLoggingConsumer pourcent diff --git a/data/catalogs/apps/cortex/addons/LoggingConsumer/id.catkeys b/data/catalogs/apps/cortex/addons/LoggingConsumer/id.catkeys new file mode 100644 index 0000000000..d053e3b057 --- /dev/null +++ b/data/catalogs/apps/cortex/addons/LoggingConsumer/id.catkeys @@ -0,0 +1,6 @@ +1 indonesian application/x-vnd.Be.LoggingConsumerApp 3832649534 +Priority CortexAddOnsLoggingConsumer Prioritas +Latency CortexAddOnsLoggingConsumer Latensi +Start CortexAddOnsLoggingConsumerNodeHarnessWin Mulai +Thread priority CortexAddOnsLoggingConsumer Prioritas thread +OK CortexAddOnsCommonMediaNodeControlApp OK diff --git a/data/catalogs/apps/cortex/addons/LoggingConsumer/pt.catkeys b/data/catalogs/apps/cortex/addons/LoggingConsumer/pt.catkeys index 61af19a4ba..fcc2739999 100644 --- a/data/catalogs/apps/cortex/addons/LoggingConsumer/pt.catkeys +++ b/data/catalogs/apps/cortex/addons/LoggingConsumer/pt.catkeys @@ -1,6 +1,8 @@ -1 portuguese application/x-vnd.Be.LoggingConsumerApp 3058142628 +1 portuguese application/x-vnd.Be.LoggingConsumerApp 1963040350 Priority CortexAddOnsLoggingConsumer Prioridade Latency CortexAddOnsLoggingConsumer Latência +CPU spin percentage CortexAddOnsLoggingConsumer Percentagem de rotação da CPU +Start CortexAddOnsLoggingConsumerNodeHarnessWin Iniciar Latency control CortexAddOnsLoggingConsumer Controlo de latência CPU percentage CortexAddOnsLoggingConsumer Percentagem de CPU Stop CortexAddOnsLoggingConsumerNodeHarnessWin Parar diff --git a/data/catalogs/apps/cortex/support/da.catkeys b/data/catalogs/apps/cortex/support/da.catkeys index b102422071..ee293ada54 100644 --- a/data/catalogs/apps/cortex/support/da.catkeys +++ b/data/catalogs/apps/cortex/support/da.catkeys @@ -1,10 +1,14 @@ -1 danish application/x-vnd.Cortex.support 3500984767 +1 danish application/x-vnd.Cortex.support 4267636659 +Mono MediaString Mono +MPEG1 MediaString MPEG1 YUV444 MediaString YUV444 Port MediaString Port 16 bit integer MediaString 16 bit heltal 32 bit HSVA MediaString 32 bit HSVA YCbCr411 MediaString YCbCr411 +Offline MediaString Offline YUV422 MediaString YUV422 +QuickTime MediaString QuickTime 32 bit HLSA MediaString 32 bit HLSA 24 bit HSV MediaString 24 bit HSV 32 bit CMY MediaString 32 bit CMY @@ -15,8 +19,10 @@ YUV9 MediaString YUV9 Right MediaString Højre 32 bit RGB MediaString 32 bit RGB YUV420 MediaString YUV420 + kb/s MediaString kb/s 24 bit HSI MediaString 24 bit HSI 32 bit CMYA MediaString 32 bit CMYA +Timecode MediaString Tidskode 32 bit integer MediaString 32 bit heltal kHz MediaString kHz 32 bit LAB MediaString 32 bit LAB @@ -28,18 +34,32 @@ YCbCr444 MediaString YCbCr444 32 bit HSV MediaString 32 bit HSV 16 bit RGB MediaString 16 bit RGB YCbCr422 MediaString YCbCr422 +Raw audio MediaString Rå lyd 32 bit LABA MediaString 32 bit LABA 24 bit HLS MediaString 24 bit HLS +MIDI MediaString MIDI YUV12 MediaString YUV12 + (NTSC) MediaString (NTSC) YUV411 MediaString YUV411 32 bit HSI MediaString 32 bit HSI + (PAL) MediaString (PAL) 32 bit RGBA MediaString 32 bit RGBA YCbCr420 MediaString YCbCr420 HTML MediaString HTML +Time source MediaString Tidskilde 15 bit RGB MediaString 15 bit RGB +ProLogic LR MediaString ProLogic LR +Parameters MediaString Parametre +Raw data from VBL area MediaString Rå data fra VBL-område +Left MediaString Venstre +BeOS video MediaString BeOS-video 24 bit CMY MediaString 24 bit CMY 32 bit UVLA MediaString 32 bit UVLA +Stereo MediaString Stereo 32 bit UVL MediaString 32 bit UVL +Text MediaString Tekst +Unknown media type MediaString Ukendt medietype MPEG2 MediaString MPEG2 24 bit RGB MediaString 24 bit RGB 32 bit HSIA MediaString 32 bit HSIA +Raw video MediaString Rå video diff --git a/data/catalogs/apps/cortex/support/el.catkeys b/data/catalogs/apps/cortex/support/el.catkeys new file mode 100644 index 0000000000..8f08976e2c --- /dev/null +++ b/data/catalogs/apps/cortex/support/el.catkeys @@ -0,0 +1,129 @@ +1 greek, modern (1453-) application/x-vnd.Cortex.support 2320678932 +Recording MediaString Εγγραφή σε εξέλιξη +(unknown format) MediaString (άγνωστο μορφότυπο) +Clean buffers MediaString Άδειασμα buffers +{0, plural, one{# pixel} other{# pixels}} MediaString {0, plural, one{# εικονοστοιχείο} other{# εικονοστοιχεία} +Mono MediaString Μονοφωνικό +MPEG1 MediaString MPEG1 +ASF format family MediaString Οικογένεια μορφοτύπων ASF +Encoded video MediaString Κωδικοποιημένο βίντεο +YUV444 MediaString YUV444 +Port MediaString Θύρα +Top-Front-left MediaString Πάνω-μπροστά-αριστερά +24 bit LAB MediaString 24 bit LAB +16 bit integer MediaString 16 bit ακέραιος +32 bit HSVA MediaString 32 bit HSVA +YCbCr411 MediaString YCbCr411 +Offline MediaString Εκτός σύνδεσης +YUV422 MediaString YUV422 +(unkown video orientation) MediaString (άγνωστος προσανατολισμός βίντεο) +QuickTime MediaString QuickTime +32 bit HLSA MediaString 32 bit HLSA +Top-Front-center MediaString Πάνω-μπροστά-κέντρο +BeOS format family MediaString Οικογένεια μορφοτύπων BeOS +24 bit HSV MediaString 24 bit HSV +Back-center MediaString Πίσω-κέντρο +32 bit CMY MediaString 32 bit CMY +{0, plural, other{# bit integer}} MediaString {0, plural, other{# bit ακέραιος}} +(unknown video format) MediaString (άγνωστο μορφότυπο βίντεο) +AVI format family MediaString Οικογένεια μορφοτύπων AVI +Homogenous buffers MediaString Ομοιογενή buffers +{0, plural, one{# channel}other{# channels}} MediaString {0, plural, one{# κανάλι}other{# κανάλια}} +15 bit RGBA MediaString 15 bit RGBA +AVI MediaString AVI +YUV9 MediaString YUV9 + Hz MediaString Hz +Right MediaString Δεξιά +32 bit RGB MediaString 32 bit RGB +Video data between line u and u MediaString Δεδομένα βίντεο μεταξύ γραμμών u και u +System mixer MediaString Μίκτης συστήματος +Physical output MediaString Φυσική έξοδος +Top-Back-center MediaString Πάνω-πίσω-κέντρο +YUV420 MediaString YUV420 +Top to bottom, left to right MediaString Πάνω προς κάτω, αριστερά προς δεξιά + kb/s MediaString kb/δευτ. +24 bit HSI MediaString 24 bit HSI +User-defined media type MediaString Μορφότυπο πολυμέσων χρήστη +32 bit CMYA MediaString 32 bit CMYA +Rear-left MediaString Πίσω-αριστερά +QuickTime format family MediaString Οικογένεια μορφοτύπων QuickTime +Any format family MediaString Οποιαδήποτε οικογένεια μορφοτύπων +Top-Front-right MediaString Πάνω-μπροστά-δεξιά +32 bit float MediaString 32 bit δεκαδικός +Controllable MediaString Ελεγχόμενος +32 bit integer MediaString 32 bit ακέραιος +Front-right-center MediaString Μπροστά-δεξιά-κέντρο +Side-right MediaString Δεξιά πλευρά + kHz MediaString kHz +Little endian MediaString Little endian +32 bit LAB MediaString 32 bit LAB +Side-left MediaString Αριστερή πλευρά +{0, plural, one{# byte per buffer} other{# bytes per buffer}} MediaString {0, plural, one{# byte ανά buffer} other{# bytes ανά buffer}} +32 bit CMYK MediaString 32 bit CMYK +(unknown multistream format) MediaString (άγνωστο μορφότυπο πολλαπλών ροών) +8 bit integer MediaString 8 bit ακέραιος +YCbCr444 MediaString YCbCr444 +Buffer producer MediaString Παραγωγός buffer +Buffer consumer MediaString Καταναλωτής buffer +Front-left-center MediaString Μπροστά-αριστερά-κέντρο +MPEG format family MediaString Οικογένεια μορφοτύπων MPEG +(none) MediaString (τίποτα) +Center MediaString Κέντρο + kb/s (max) MediaString kb/δευτ. (μέγιστο) +Monochrome MediaString Μονόχρωμο +Private Be media type MediaString Ιδιωτικό μορφότυπο πολυμέσων Be +24 bit UVL MediaString 24 bit UVL +32 bit HSV MediaString 32 bit HSV +ID MediaString ID +AIFF format family MediaString Οικογένεια μορφοτυπων AIFF +Top-Back-left MediaString Πάνω-πίσω-αριστερά +16 bit RGB MediaString 16 bit RGB +YCbCr422 MediaString YCbCr422 +Raw audio MediaString Ακατέργαστος ήχος +32 bit LABA MediaString 32 bit LABA +24 bit HLS MediaString 24 bit HLS +{0, plural,one{# byte (avg)}other{# bytes (avg)}} MediaString {0, plural,one{# byte (μέσος όρος)}other{# bytes (μέσος όρος)}} +MIDI MediaString MIDI +YUV12 MediaString YUV12 +WAV format family MediaString Οικογένεια μορφοτύπων WAV + (NTSC) MediaString (NTSC) +Physical input MediaString Φυσική είσοδος +Big endian MediaString Big endian +{0, plural,one{# byte (max)}other{# bytes (max)}} MediaString {0, plural,one{# byte (μέγιστο)}other{# bytes (μέγιστο)}} +YUV411 MediaString YUV411 +Multistream media MediaString Πολυμέσα πολλαπλών ροών +Encoded audio MediaString Κωδικοποιημένος ήχος +Decrease precision MediaString Μείωση ακρίβειας +File interface MediaString Διεπαφή αρχείων +(unknown byte order) MediaString (άγνωστη σειρά bytes) +32 bit HSI MediaString 32 bit HSI +Typeless media MediaString Πολυμέσα χωρίς μορφή + (PAL) MediaString (PAL) +32 bit RGBA MediaString 32 bit RGBA +YCbCr420 MediaString YCbCr420 + kb/s (avg) MediaString kb/δευτ. (μέσος όρος) +HTML MediaString HTML +Time source MediaString Πηγή χρόνου +15 bit RGB MediaString 15 bit RGB +ProLogic LR MediaString ProLogic LR +Parameters MediaString Επιλογές +Raw data from VBL area MediaString Ακατέργαστα δεδομένα από περιοχή VBL +Top-Back-right MediaString Πάνω-πίσω-δεξιά +{0, plural, one{# byte per row}other{# bytes per row}} MediaString {0, plural, one{# byte ανά σειρά}other{# bytes ανά σειρά}} +Left MediaString Αριστερά +BeOS video MediaString Βίντεο BeOS +24 bit CMY MediaString 24 bit CMY +32 bit UVLA MediaString 32 bit UVLA +Top-center MediaString Πάνω-κέντρο +Entity interface MediaString Διεπαφή οντότητας +Stereo MediaString Στερεοφωνικό +Bottom to top, left to right MediaString Κάτω προς πάνω, αριστερά προς δεξιά +32 bit UVL MediaString 32 bit UVL +{0, plural, one{# line} other{# lines}} MediaString {0, plural, one{# γραμμή} other{# γραμμές}} +Text MediaString Κείμενο +Unknown media type MediaString Άγνωστο μορφότυπο πολυμέσων +MPEG2 MediaString MPEG2 +Miscellaneous format family MediaString Άλλη οικογένεια μορφοτύπων +24 bit RGB MediaString 24 bit RGB +32 bit HSIA MediaString 32 bit HSIA +Raw video MediaString Ακατέργαστο βίντεο diff --git a/data/catalogs/apps/cortex/support/fr.catkeys b/data/catalogs/apps/cortex/support/fr.catkeys index 3fb404f3c5..3cfc409d34 100644 --- a/data/catalogs/apps/cortex/support/fr.catkeys +++ b/data/catalogs/apps/cortex/support/fr.catkeys @@ -1,50 +1,97 @@ -1 french application/x-vnd.Cortex.support 2845758808 +1 french application/x-vnd.Cortex.support 1081380755 +Header has flags MediaString L’en-tête comporte des drapeaux +Recording MediaString Enregistrement (unknown format) MediaString (format inconnu) +Clean buffers MediaString Nettoyer les tampons {0, plural,one{# frame forward}other{# frames forward}} MediaString {0, plural,one{# trame en avant}other{# trames en avant}} Rear-right MediaString Arrière-droit {0, plural, one{# pixel} other{# pixels}} MediaString {0, plural, one{# pixel} other{# pixels}} Mono MediaString Mono +MPEG1 MediaString MPEG1 +ASF format family MediaString Famille de formats ASF Encoded video MediaString Vidéo compressée +YUV444 MediaString YUV444 +Port MediaString Port Top-Front-left MediaString Avant-gauche-haut +16 bit integer MediaString Entier 16 bits +YCbCr411 MediaString YCbCr411 Offline MediaString Hors ligne +YUV422 MediaString YUV422 +(unkown video orientation) MediaString (orientation vidéo inconnue) Top-Front-center MediaString Avant-centre-haut BeOS format family MediaString Famille de format BeOS Back-center MediaString Arrière-centre +32 bit CMY MediaString 32 bits CMJ +{0, plural, other{# bit integer}} MediaString {0, plural, other{Entier # bits}} (unknown video format) MediaString (format vidéo inconnu) AVI format family MediaString Famille de format AVI +Homogenous buffers MediaString Tampons homogènes Interlaced MediaString Entrelacé +{0, plural, one{# channel}other{# channels}} MediaString {0, plural, one{# canal}other{# canaux}} 15 bit RGBA MediaString 15 bits RVBA +Drop data MediaString Rejeter les données +YUV9 MediaString YUV9 + Hz MediaString Hz Right MediaString Droite 32 bit RGB MediaString 32 bits RVB System mixer MediaString Mixeur système -Physical output MediaString Sortie physique +Physical output MediaString Sortie matérielle Top-Back-center MediaString Arrière-centre-haut +YUV420 MediaString YUV420 Top to bottom, left to right MediaString De haut en bas, et de gauche à droite +(unknown run mode) MediaString (mode d’exécution inconnu) + kb/s MediaString kb/s +User-defined media type MediaString Type de média défini par l’utilisateur 32 bit CMYA MediaString 32 bits CMJA Rear-left MediaString Arrière-gauche QuickTime format family MediaString Famille de format QuickTime +Any format family MediaString Toutes les familles de formats Top-Front-right MediaString Avant-droit-haut 32 bit float MediaString Flottant 32 bits Controllable MediaString Contrôlable 32 bit integer MediaString Entier 32 bits +Front-right-center MediaString Avant-droit-centre Side-right MediaString Côté-droit + kHz MediaString kHz Little endian MediaString Petit-boutien Side-left MediaString Côté-gauche {0, plural, one{# byte per buffer} other{# bytes per buffer}} MediaString {0, plural, one{# octet par tampon} other{# octets par tampon}} +32 bit CMYK MediaString 32 bits CMJN 8 bit integer MediaString Entier 8 bits -8 bit grayscale-index MediaString Niveaux de gris indexé 8 bits +8 bit grayscale-index MediaString Palette de gris 8 bits +YCbCr444 MediaString YCbCr444 +Buffer producer MediaString Tampon producteur +Buffer consumer MediaString Tampon consommateur Increase latency MediaString Augmenter le temps de latence Front-left-center MediaString Avant-gauche-milieu +MPEG format family MediaString Famille de formats MPEG +(none) MediaString (aucun) Center MediaString Centre + kb/s (max) MediaString kb/s (max) +Monochrome MediaString Monochrome AIFF format family MediaString Famille de format AIFF Top-Back-left MediaString Arrière-gauche-haut 16 bit RGB MediaString 16 bits RVB +YCbCr422 MediaString YCbCr422 Raw audio MediaString Audio brut +Non-interlaced MediaString Non entrelacé +{0, plural,one{# byte (avg)}other{# bytes (avg)}} MediaString {0, plural,one{# octet (moy.)}other{# octets (moy.)}} +MIDI MediaString MIDI +YUV12 MediaString YUV12 WAV format family MediaString Famille de format WAV + (NTSC) MediaString (NTSC) +Physical input MediaString Entrée matérielle Big endian MediaString Gros-boutiste {0, plural,one{# byte (max)}other{# bytes (max)}} MediaString {0, plural,one{# octet (max)}other{# octets (max)}} +YUV411 MediaString YUV411 Encoded audio MediaString Audio compressé +File interface MediaString Interface fichier +(unknown byte order) MediaString (boutisme inconnu) + (PAL) MediaString (PAL) 32 bit RGBA MediaString 32 bits RVBA +YCbCr420 MediaString YCbCr420 + kb/s (avg) MediaString kb/s (moy.) +HTML MediaString HTML Time source MediaString Référence de temps 15 bit RGB MediaString 15 bits RVB {0, plural,one{# byte per frame}other{# bytes per frame}} MediaString {0, plural,one{# octet par trame}other{# octets par trame}} @@ -56,10 +103,13 @@ BeOS video MediaString Vidéo BeOS 24 bit CMY MediaString 24 bits CMJ Top-center MediaString Centre-haut Stereo MediaString Stéréo +8 bit color-index MediaString Palette de couleurs 8 bits Bottom to top, left to right MediaString De bas en haut, et de gauche à droite {0, plural, one{# line} other{# lines}} MediaString {0, plural, one{# ligne} other{# lignes}} Text MediaString Texte Unknown media type MediaString Type de média inconnu +MPEG2 MediaString MPEG2 +Miscellaneous format family MediaString Famille de formats divers 24 bit RGB MediaString 24 bits RVB {0, plural,one{# frame backward}other{# frames backward}} MediaString {0, plural,one{# trame en arrière}other{# trames en arrière}} Raw video MediaString Vidéo brute diff --git a/data/catalogs/apps/cortex/support/id.catkeys b/data/catalogs/apps/cortex/support/id.catkeys new file mode 100644 index 0000000000..6e6950fa7c --- /dev/null +++ b/data/catalogs/apps/cortex/support/id.catkeys @@ -0,0 +1,54 @@ +1 indonesian application/x-vnd.Cortex.support 989862702 +24 bit HSV MediaString HSV 24 bit +Back-center MediaString Belakang tengah +32 bit CMY MediaString CMY 32 bit +15 bit RGBA MediaString RGBA 15 bit +AVI MediaString AVI +YUV9 MediaString YUV9 + Hz MediaString Hz +Right MediaString Kanan +32 bit RGB MediaString RGB 32 bit +System mixer MediaString Mixer sistem +Physical output MediaString Keluaran fisik +Top-Back-center MediaString Tengah atas belakang +YUV420 MediaString YUV420 +Top to bottom, left to right MediaString Atas ke bawah, kiri ke kanan +(unknown run mode) MediaString (mode jalan tidak dikenali) + kb/s MediaString kb/s +24 bit HSI MediaString HSI 24 bit +User-defined media type MediaString Tipe media tetapan pengguna +32 bit CMYA MediaString CMYA 32 bit +Rear-left MediaString Belakang kiri +Top-Front-right MediaString Kanan depan atas +32 bit float MediaString float 32 bit +32 bit integer MediaString integer 32 bit +Front-right-center MediaString Tengah depan kanan +Side-right MediaString Samping kanan + kHz MediaString kHz +32 bit LAB MediaString LAB 32 bit +Side-left MediaString Samping kiri +32 bit CMYK MediaString CMYK 32 bit +YCbCr444 MediaString YCbCr444 +Center MediaString Tengah + kb/s (max) MediaString kb/s (maks) +Monochrome MediaString Monokrom +24 bit UVL MediaString UVL 24 bit +32 bit HSV MediaString HSV 32 bit +ID MediaString ID +Top-Back-left MediaString Atas-Belakang-kiri +16 bit RGB MediaString RGB 16 bit +YCbCr422 MediaString YCbCr422 +32 bit LABA MediaString LABA 32 bit +24 bit HLS MediaString HLS 24 bit +MIDI MediaString MIDI +YUV12 MediaString YUV12 +WAV format family MediaString keluarga format WAV + (NTSC) MediaString (NTSC) +32 bit HSI MediaString HSI 32 bit + (PAL) MediaString (PAL) +32 bit RGBA MediaString RGBA 32 bit +YCbCr420 MediaString YCbCr420 + kb/s (avg) MediaString kb/s (rerata) +HTML MediaString HTML +Time source MediaString Sumber waktu +15 bit RGB MediaString RGB 15 bit diff --git a/data/catalogs/apps/cortex/support/pt.catkeys b/data/catalogs/apps/cortex/support/pt.catkeys index dd2a50764a..c00e26329d 100644 --- a/data/catalogs/apps/cortex/support/pt.catkeys +++ b/data/catalogs/apps/cortex/support/pt.catkeys @@ -1,24 +1,45 @@ -1 portuguese application/x-vnd.Cortex.support 3422467827 +1 portuguese application/x-vnd.Cortex.support 1604481213 +(unknown format) MediaString (formato desconhecido) +Clean buffers MediaString Limpar buffers Mono MediaString Mono MPEG1 MediaString MPEG1 +Encoded video MediaString Vídeo codificado YUV444 MediaString YUV444 +Port MediaString Porta +16 bit integer MediaString Inteiro de 16 bit YCbCr411 MediaString YCbCr411 +Offline MediaString Desligado YUV422 MediaString YUV422 (unkown video orientation) MediaString (orientação de vídeo desconhecida) QuickTime MediaString QuickTime Ambisonic WXYZ MediaString Ambisonic WXYZ (unknown video format) MediaString (formato de vídeo desconhecido) +Homogenous buffers MediaString Buffers homogéneos AVI MediaString AVI YUV9 MediaString YUV9 Hz MediaString Hz +Right MediaString Direito +Video data between line u and u MediaString Dados de vídeo entre as linhas u e u System mixer MediaString Misturador do sistema Physical output MediaString Saída física YUV420 MediaString YUV420 +(unknown run mode) MediaString (modo de execução desconhecido) kb/s MediaString kb/s +User-defined media type MediaString Tipo de mídia definido pelo utilizador +Controllable MediaString Controlável +32 bit integer MediaString Inteiro de 32 bit +Side-right MediaString Lado direito kHz MediaString kHz +Side-left MediaString Lado esquerdo +(unknown multistream format) MediaString (formato multistream desconhecido) +8 bit integer MediaString Inteiro de 8 bit YCbCr444 MediaString YCbCr444 +Increase latency MediaString Aumentar latência (none) MediaString (nenhum) +Center MediaString Centro kb/s (max) MediaString kb/s (máx.) +Monochrome MediaString Monocromática +Private Be media type MediaString Tipo de mídia privado Be ID MediaString ID YCbCr422 MediaString YCbCr422 MIDI MediaString MIDI @@ -26,13 +47,22 @@ YUV12 MediaString YUV12 (NTSC) MediaString (NTSC) Physical input MediaString Entrada física Big endian MediaString Big endian +Sub MediaString Sub YUV411 MediaString YUV411 +Encoded audio MediaString Áudio codificado +Decrease precision MediaString Diminuir a precisão +File interface MediaString Interface de ficheiro +Typeless media MediaString Mídia sem tipo (PAL) MediaString (PAL) YCbCr420 MediaString YCbCr420 kb/s (avg) MediaString kb/s (média) HTML MediaString HTML ProLogic LR MediaString ProLogic LR Parameters MediaString Parâmetros +Left MediaString Esquerda +BeOS video MediaString Vídeo BeOS Stereo MediaString Estéreo +Bottom to top, left to right MediaString De baixo para cima, da esquerda para a direita Text MediaString Texto +Unknown media type MediaString Tipo de mídia desconhecido MPEG2 MediaString MPEG2 diff --git a/data/catalogs/apps/cortex/support/ru.catkeys b/data/catalogs/apps/cortex/support/ru.catkeys index 48dcff686f..c9e3dc496c 100644 --- a/data/catalogs/apps/cortex/support/ru.catkeys +++ b/data/catalogs/apps/cortex/support/ru.catkeys @@ -1,5 +1,6 @@ -1 russian application/x-vnd.Cortex.support 1533238747 +1 russian application/x-vnd.Cortex.support 136489236 Header has flags MediaString Заголовок имеет флаги +32 bit HLS MediaString 32-битный HLS Recording MediaString Запись (unknown format) MediaString (неизвестный формат) Clean buffers MediaString Очистить данные буфера @@ -21,12 +22,25 @@ BeOS format family MediaString Семейство файловых формат 24 bit HSV MediaString 24-битный HSV 32 bit CMY MediaString 32-битный CMY (unknown video format) MediaString (неизвестный формат видео) +AVI format family MediaString Семейство файловых форматов AVI +15 bit RGBA MediaString 15-битный RGBA +Drop data MediaString Сбросить данные +AVI MediaString AVI +YUV9 MediaString YUV9 + Hz MediaString Гц Right MediaString Правый +32 bit RGB MediaString 32-битный RGB +System mixer MediaString Системный микшер Physical output MediaString Физический выход +YUV420 MediaString YUV420 Top to bottom, left to right MediaString Сверху вниз, слева направо + kb/s MediaString кбит/с +User-defined media type MediaString Медиа-формат определённый пользователем +32 bit CMYA MediaString 32-битный CMYA QuickTime format family MediaString Семейство формата QuickTime Any format family MediaString Семейство любого формата Timecode MediaString Временной код + kHz MediaString кГц (unknown matrix mask) MediaString (неизвестная маска матрицы) 32 bit LAB MediaString 32-битный LAB 32 bit CMYK MediaString 32-битный CMYK @@ -51,6 +65,7 @@ WAV format family MediaString Семейство файловых формат (NTSC) MediaString (NTSC) Physical input MediaString Физический ввод YUV411 MediaString YUV411 +Encoded audio MediaString Аудиокодек Decrease precision MediaString Уменьшить точность File interface MediaString Файловый интерфейс (unknown byte order) MediaString (неизвестный порядок байтов) diff --git a/data/catalogs/apps/deskbar/cs.catkeys b/data/catalogs/apps/deskbar/cs.catkeys index 0be16e20dc..89c4c44daa 100644 --- a/data/catalogs/apps/deskbar/cs.catkeys +++ b/data/catalogs/apps/deskbar/cs.catkeys @@ -28,7 +28,7 @@ Auto-raise PreferencesWindow Automatické zvětšení Recent folders: PreferencesWindow Nedávné adresáře: Show application expander PreferencesWindow Zobrazit aplikační rozšíření Close all WindowMenu Zavřít vše -Deskbar preferences PreferencesWindow Nastavení Panelu +Deskbar preferences PreferencesWindow Nastavení panelu Mount DeskbarMenu Připojit Revert PreferencesWindow Vrátit zpět Small PreferencesWindow Malé @@ -39,7 +39,7 @@ Preferences B_USER_DESKBAR_DIRECTORY/Preferences Nastavení Recent folders DeskbarMenu Nedávné adresáře About this system DeskbarMenu O tomto systému Show calendar… TimeView Zobrazit kalendář... -Deskbar preferences… DeskbarMenu Nastavení Panelu… +Deskbar preferences… DeskbarMenu Nastavení panelu… Expand new applications PreferencesWindow Rozbalit nové aplikace Show replicants DeskbarMenu Zobrazit replikanty Hide application names PreferencesWindow Skrýt názvy aplikací diff --git a/data/catalogs/apps/deskbar/da.catkeys b/data/catalogs/apps/deskbar/da.catkeys index bee3101ba8..2400c3f970 100644 --- a/data/catalogs/apps/deskbar/da.catkeys +++ b/data/catalogs/apps/deskbar/da.catkeys @@ -17,7 +17,7 @@ Defaults PreferencesWindow Standarder Menu PreferencesWindow Menu Recent documents DeskbarMenu Seneste dokumenter Auto-hide PreferencesWindow Skjul automatisk -Always on top PreferencesWindow Altid oven på +Always on top PreferencesWindow Altid øverst DeskbarMenu Show all WindowMenu Vis alle No windows WindowMenu Ingen vinduer @@ -25,11 +25,11 @@ Deskbar System name Skrivebordslinje Restart system DeskbarMenu Genstart systemet Large PreferencesWindow Stor Auto-raise PreferencesWindow Auto hæv -Recent folders: PreferencesWindow Seneste foldere: +Recent folders: PreferencesWindow Seneste mapper: Show application expander PreferencesWindow Vis programudvider Close all WindowMenu Luk alle -Deskbar preferences PreferencesWindow Skrivebordslinje-præferencer -Mount DeskbarMenu Monter +Deskbar preferences PreferencesWindow Præferencer for skrivebordslinje +Mount DeskbarMenu Montér Revert PreferencesWindow Tilbagefør Small PreferencesWindow Lille Recent applications: PreferencesWindow Seneste programmer: @@ -39,7 +39,7 @@ Preferences B_USER_DESKBAR_DIRECTORY/Preferences Præferencer Recent folders DeskbarMenu Seneste mapper About this system DeskbarMenu Om systemet Show calendar… TimeView Vis kalender… -Deskbar preferences… DeskbarMenu Skrivebordslinje-præferencer… +Deskbar preferences… DeskbarMenu Præferencer for skrivebordslinje… Expand new applications PreferencesWindow Udvid nye programmer Show replicants DeskbarMenu Vis replikanter Hide application names PreferencesWindow Skjul programnavne diff --git a/data/catalogs/apps/deskbar/fur.catkeys b/data/catalogs/apps/deskbar/fur.catkeys index 42e6708443..0cce2b1f8a 100644 --- a/data/catalogs/apps/deskbar/fur.catkeys +++ b/data/catalogs/apps/deskbar/fur.catkeys @@ -23,7 +23,7 @@ Show all WindowMenu Mostre dut No windows WindowMenu Nissun barcon Deskbar System name Deskbar Restart system DeskbarMenu Torne invie -Large PreferencesWindow Grant +Large PreferencesWindow Grandis Auto-raise PreferencesWindow Tire sù in automatic Recent folders: PreferencesWindow Cartelis resintis: Show application expander PreferencesWindow Mostre estensôr aplicazion @@ -31,7 +31,7 @@ Close all WindowMenu Siere dut Deskbar preferences PreferencesWindow Preferencis Deskbar Mount DeskbarMenu Monte Revert PreferencesWindow Torne indaûr -Small PreferencesWindow Piçul +Small PreferencesWindow Piçulis Recent applications: PreferencesWindow Aplicazions resintis: Shutdown… DeskbarMenu Jessude di Haiku… Tracker always first PreferencesWindow Tracker simpri par prin @@ -44,7 +44,7 @@ Expand new applications PreferencesWindow Espandi lis gnovis aplicazions Show replicants DeskbarMenu Mostre replicants Hide application names PreferencesWindow Plate i nons des aplicazions Demos B_USER_DESKBAR_DIRECTORY/Demos Dimostrazions -Icon size PreferencesWindow Dimension icone +Icon size PreferencesWindow Dimension iconis Desktop applets B_USER_DESKBAR_DIRECTORY/Desktop applets Applet dal scritori Hide all WindowMenu Plate dut Quit application WindowMenu Siere la aplicazion diff --git a/data/catalogs/apps/deskbar/pt_BR.catkeys b/data/catalogs/apps/deskbar/pt_BR.catkeys index 9dc9fac065..d6ffa14cb5 100644 --- a/data/catalogs/apps/deskbar/pt_BR.catkeys +++ b/data/catalogs/apps/deskbar/pt_BR.catkeys @@ -6,7 +6,7 @@ Hide clock TimeView Ocultar relógio Applications PreferencesWindow Aplicativos Time preferences… TimeView Preferências de hora… About Haiku DeskbarMenu Sobre o Haiku -Edit in Tracker… PreferencesWindow Editar no Rastreador… +Edit in Tracker… PreferencesWindow Editar no Tracker… Recent documents: PreferencesWindow Documentos recentes: Recent applications DeskbarMenu Aplicativos recentes Applications B_USER_DESKBAR_DIRECTORY/Applications Aplicativos @@ -34,7 +34,7 @@ Revert PreferencesWindow Reverter Small PreferencesWindow Pequeno Recent applications: PreferencesWindow Aplicativos recentes: Shutdown… DeskbarMenu Desligar… -Tracker always first PreferencesWindow Tracker sempre em primeiro +Tracker always first PreferencesWindow Tracker sempre primeiro Preferences B_USER_DESKBAR_DIRECTORY/Preferences Preferências Recent folders DeskbarMenu Pastas recentes About this system DeskbarMenu Sobre este sistema diff --git a/data/catalogs/apps/deskcalc/ca.catkeys b/data/catalogs/apps/deskcalc/ca.catkeys index 2bf82867bf..a331e223fa 100644 --- a/data/catalogs/apps/deskcalc/ca.catkeys +++ b/data/catalogs/apps/deskcalc/ca.catkeys @@ -1,4 +1,4 @@ -1 catalan; valencian x-vnd.Haiku-DeskCalc 3178768763 +1 catalan; valencian x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ceil - CalcView - cbrt CalcView cbrt -BS CalcView Key label, 'BS' means backspace BS floor CalcView terra sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/cs.catkeys b/data/catalogs/apps/deskcalc/cs.catkeys index f42dfc8117..77fae6413b 100644 --- a/data/catalogs/apps/deskcalc/cs.catkeys +++ b/data/catalogs/apps/deskcalc/cs.catkeys @@ -1,4 +1,4 @@ -1 czech x-vnd.Haiku-DeskCalc 3178768763 +1 czech x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView cos⁻¹ E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ⌈x⌉ - CalcView - cbrt CalcView ∛x -BS CalcView Key label, 'BS' means backspace ⌫ floor CalcView ⌊x⌋ sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/da.catkeys b/data/catalogs/apps/deskcalc/da.catkeys index eade0e1ee6..da5cbc2ca0 100644 --- a/data/catalogs/apps/deskcalc/da.catkeys +++ b/data/catalogs/apps/deskcalc/da.catkeys @@ -1,4 +1,4 @@ -1 danish x-vnd.Haiku-DeskCalc 3178768763 +1 danish x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ceil - CalcView - cbrt CalcView cbrt -BS CalcView Key label, 'BS' means backspace BS floor CalcView floor sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/de.catkeys b/data/catalogs/apps/deskcalc/de.catkeys index 8ee70d4dd8..59ee5c8e7c 100644 --- a/data/catalogs/apps/deskcalc/de.catkeys +++ b/data/catalogs/apps/deskcalc/de.catkeys @@ -1,4 +1,4 @@ -1 german x-vnd.Haiku-DeskCalc 2063868164 +1 german x-vnd.Haiku-DeskCalc 1039932692 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView : C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ceil - CalcView - cbrt CalcView cbrt -BS CalcView Key label, 'BS' means backspace BS floor CalcView floor sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/el.catkeys b/data/catalogs/apps/deskcalc/el.catkeys index bbbf30bc56..41a7bd1f72 100644 --- a/data/catalogs/apps/deskcalc/el.catkeys +++ b/data/catalogs/apps/deskcalc/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.Haiku-DeskCalc 3178768763 +1 greek, modern (1453-) x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ceil - CalcView - cbrt CalcView cbrt -BS CalcView Key label, 'BS' means backspace BS floor CalcView floor sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/eo.catkeys b/data/catalogs/apps/deskcalc/eo.catkeys index 8bd9db3521..5acd2a543b 100644 --- a/data/catalogs/apps/deskcalc/eo.catkeys +++ b/data/catalogs/apps/deskcalc/eo.catkeys @@ -1,4 +1,4 @@ -1 esperanto x-vnd.Haiku-DeskCalc 3178768763 +1 esperanto x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView plaf - CalcView - cbrt CalcView kbrd -BS CalcView Key label, 'BS' means backspace RP floor CalcView entjero sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/es.catkeys b/data/catalogs/apps/deskcalc/es.catkeys index cbd46bf325..f16013dae7 100644 --- a/data/catalogs/apps/deskcalc/es.catkeys +++ b/data/catalogs/apps/deskcalc/es.catkeys @@ -1,4 +1,4 @@ -1 spanish; castilian x-vnd.Haiku-DeskCalc 3178768763 +1 spanish; castilian x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ceil - CalcView - cbrt CalcView cbrt -BS CalcView Key label, 'BS' means backspace BS floor CalcView floor sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/fi.catkeys b/data/catalogs/apps/deskcalc/fi.catkeys index 8bb41b3f54..82c9fc9a48 100644 --- a/data/catalogs/apps/deskcalc/fi.catkeys +++ b/data/catalogs/apps/deskcalc/fi.catkeys @@ -1,4 +1,4 @@ -1 finnish x-vnd.Haiku-DeskCalc 3178768763 +1 finnish x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ceil - CalcView - cbrt CalcView cbrt -BS CalcView Key label, 'BS' means backspace BS floor CalcView floor sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/fr.catkeys b/data/catalogs/apps/deskcalc/fr.catkeys index 5c52163266..804caa341c 100644 --- a/data/catalogs/apps/deskcalc/fr.catkeys +++ b/data/catalogs/apps/deskcalc/fr.catkeys @@ -1,4 +1,4 @@ -1 french x-vnd.Haiku-DeskCalc 2714719812 +1 french x-vnd.Haiku-DeskCalc 3726442921 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -10,7 +10,6 @@ acos CalcView acos ceil CalcView plafond - CalcView - cbrt CalcView ∛ -BS CalcView Key label, 'BS' means backspace SUPPR floor CalcView Ent sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/fur.catkeys b/data/catalogs/apps/deskcalc/fur.catkeys index aa575d0e23..57421a4844 100644 --- a/data/catalogs/apps/deskcalc/fur.catkeys +++ b/data/catalogs/apps/deskcalc/fur.catkeys @@ -1,4 +1,4 @@ -1 friulian x-vnd.Haiku-DeskCalc 3178768763 +1 friulian x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView arccos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView taronde - CalcView - cbrt CalcView ∛ -BS CalcView Key label, 'BS' means backspace ← floor CalcView staronzâ sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/hr.catkeys b/data/catalogs/apps/deskcalc/hr.catkeys index 336aa0458f..971afe489b 100644 --- a/data/catalogs/apps/deskcalc/hr.catkeys +++ b/data/catalogs/apps/deskcalc/hr.catkeys @@ -1,4 +1,4 @@ -1 croatian x-vnd.Haiku-DeskCalc 3392024532 +1 croatian x-vnd.Haiku-DeskCalc 2368089060 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,10 +8,8 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 - CalcView - -BS CalcView Key label, 'BS' means backspace BS 6 CalcView 6 sin CalcView sin + CalcView + diff --git a/data/catalogs/apps/deskcalc/hu.catkeys b/data/catalogs/apps/deskcalc/hu.catkeys index a68d70a654..cda26dc8a3 100644 --- a/data/catalogs/apps/deskcalc/hu.catkeys +++ b/data/catalogs/apps/deskcalc/hu.catkeys @@ -1,4 +1,4 @@ -1 hungarian x-vnd.Haiku-DeskCalc 3178768763 +1 hungarian x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ceil - CalcView - cbrt CalcView cbrt -BS CalcView Key label, 'BS' means backspace BS floor CalcView floor sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/id.catkeys b/data/catalogs/apps/deskcalc/id.catkeys index 8510007be2..7bb2a3fbad 100644 --- a/data/catalogs/apps/deskcalc/id.catkeys +++ b/data/catalogs/apps/deskcalc/id.catkeys @@ -1,4 +1,4 @@ -1 indonesian x-vnd.Haiku-DeskCalc 3178768763 +1 indonesian x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ceil - CalcView - cbrt CalcView cbrt -BS CalcView Key label, 'BS' means backspace BS floor CalcView floor sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/it.catkeys b/data/catalogs/apps/deskcalc/it.catkeys index cc0ed01781..56d68ea685 100644 --- a/data/catalogs/apps/deskcalc/it.catkeys +++ b/data/catalogs/apps/deskcalc/it.catkeys @@ -1,4 +1,4 @@ -1 italian x-vnd.Haiku-DeskCalc 3178768763 +1 italian x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView arccos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView eccesso - CalcView - cbrt CalcView ∛ -BS CalcView Key label, 'BS' means backspace BS floor CalcView difetto sinh CalcView senh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/ja.catkeys b/data/catalogs/apps/deskcalc/ja.catkeys index 00805a8cfd..be7906bb62 100644 --- a/data/catalogs/apps/deskcalc/ja.catkeys +++ b/data/catalogs/apps/deskcalc/ja.catkeys @@ -1,4 +1,4 @@ -1 japanese x-vnd.Haiku-DeskCalc 3178768763 +1 japanese x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ceil - CalcView - cbrt CalcView cbrt -BS CalcView Key label, 'BS' means backspace BS floor CalcView floor sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/nl.catkeys b/data/catalogs/apps/deskcalc/nl.catkeys index 95636aafe8..caa52ac54c 100644 --- a/data/catalogs/apps/deskcalc/nl.catkeys +++ b/data/catalogs/apps/deskcalc/nl.catkeys @@ -1,4 +1,4 @@ -1 dutch; flemish x-vnd.Haiku-DeskCalc 3178768763 +1 dutch; flemish x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ceil - CalcView - cbrt CalcView cbrt -BS CalcView Key label, 'BS' means backspace BS floor CalcView floor sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/pl.catkeys b/data/catalogs/apps/deskcalc/pl.catkeys index aa0a5edcad..eccca74ede 100644 --- a/data/catalogs/apps/deskcalc/pl.catkeys +++ b/data/catalogs/apps/deskcalc/pl.catkeys @@ -1,4 +1,4 @@ -1 polish x-vnd.Haiku-DeskCalc 3178768763 +1 polish x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ceil - CalcView - cbrt CalcView cbrt -BS CalcView Key label, 'BS' means backspace BS floor CalcView floor sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/pt.catkeys b/data/catalogs/apps/deskcalc/pt.catkeys index 1ff6ac540e..a0a3485919 100644 --- a/data/catalogs/apps/deskcalc/pt.catkeys +++ b/data/catalogs/apps/deskcalc/pt.catkeys @@ -1,4 +1,4 @@ -1 portuguese x-vnd.Haiku-DeskCalc 3178768763 +1 portuguese x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ceil - CalcView - cbrt CalcView cbrt -BS CalcView Key label, 'BS' means backspace BS floor CalcView floor sinh CalcView senh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/pt_BR.catkeys b/data/catalogs/apps/deskcalc/pt_BR.catkeys index 75ac03c69e..451a9f2ba8 100644 --- a/data/catalogs/apps/deskcalc/pt_BR.catkeys +++ b/data/catalogs/apps/deskcalc/pt_BR.catkeys @@ -1,4 +1,4 @@ -1 portuguese (brazil) x-vnd.Haiku-DeskCalc 3178768763 +1 portuguese (brazil) x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ceil - CalcView - cbrt CalcView cbrt -BS CalcView Key label, 'BS' means backspace BS floor CalcView floor sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/ro.catkeys b/data/catalogs/apps/deskcalc/ro.catkeys index 206fd05a92..3f6bfa9768 100644 --- a/data/catalogs/apps/deskcalc/ro.catkeys +++ b/data/catalogs/apps/deskcalc/ro.catkeys @@ -1,4 +1,4 @@ -1 romanian x-vnd.Haiku-DeskCalc 3178768763 +1 romanian x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ceil - CalcView - cbrt CalcView cbrt -BS CalcView Key label, 'BS' means backspace BS floor CalcView floor sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/sv.catkeys b/data/catalogs/apps/deskcalc/sv.catkeys index 3305ff7105..f2eb68d2c0 100644 --- a/data/catalogs/apps/deskcalc/sv.catkeys +++ b/data/catalogs/apps/deskcalc/sv.catkeys @@ -1,4 +1,4 @@ -1 swedish x-vnd.Haiku-DeskCalc 3178768763 +1 swedish x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ceil - CalcView - cbrt CalcView cbrt -BS CalcView Key label, 'BS' means backspace BS floor CalcView floor sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/th.catkeys b/data/catalogs/apps/deskcalc/th.catkeys index 48c13bd617..927168871c 100644 --- a/data/catalogs/apps/deskcalc/th.catkeys +++ b/data/catalogs/apps/deskcalc/th.catkeys @@ -1,4 +1,4 @@ -1 thai x-vnd.Haiku-DeskCalc 3178768763 +1 thai x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ceil - CalcView - cbrt CalcView cbrt -BS CalcView Key label, 'BS' means backspace BS floor CalcView floor sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/tr.catkeys b/data/catalogs/apps/deskcalc/tr.catkeys index 507042e811..cd2c167c38 100644 --- a/data/catalogs/apps/deskcalc/tr.catkeys +++ b/data/catalogs/apps/deskcalc/tr.catkeys @@ -1,4 +1,4 @@ -1 turkish x-vnd.Haiku-DeskCalc 3178768763 +1 turkish x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView tavan - CalcView - cbrt CalcView kpkök -BS CalcView Key label, 'BS' means backspace BS floor CalcView tbnyvrla sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/uk.catkeys b/data/catalogs/apps/deskcalc/uk.catkeys index 4439a78b7c..36968b68e8 100644 --- a/data/catalogs/apps/deskcalc/uk.catkeys +++ b/data/catalogs/apps/deskcalc/uk.catkeys @@ -1,4 +1,4 @@ -1 ukrainian x-vnd.Haiku-DeskCalc 3178768763 +1 ukrainian x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView Е / CalcView / C CalcView C -C CalcView Key label, 'C' means clear C 8 CalcView 8 ceil CalcView ceil - CalcView - cbrt CalcView cbrt -BS CalcView Key label, 'BS' means backspace BS floor CalcView floor sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/deskcalc/zh_Hans.catkeys b/data/catalogs/apps/deskcalc/zh_Hans.catkeys index e06723fb8c..8a33a04e3d 100644 --- a/data/catalogs/apps/deskcalc/zh_Hans.catkeys +++ b/data/catalogs/apps/deskcalc/zh_Hans.catkeys @@ -1,4 +1,4 @@ -1 english x-vnd.Haiku-DeskCalc 3178768763 +1 english x-vnd.Haiku-DeskCalc 2154833291 cos CalcView cos 3 CalcView 3 ( CalcView ( @@ -8,12 +8,10 @@ acos CalcView acos E CalcView E / CalcView / C CalcView 清除 -C CalcView Key label, 'C' means clear 清除 8 CalcView 8 ceil CalcView 向上取整 - CalcView - cbrt CalcView 立方根 -BS CalcView Key label, 'BS' means backspace 退格 floor CalcView 向下取整 sinh CalcView sinh 6 CalcView 6 diff --git a/data/catalogs/apps/devices/da.catkeys b/data/catalogs/apps/devices/da.catkeys index a900b9b40d..5843be616c 100644 --- a/data/catalogs/apps/devices/da.catkeys +++ b/data/catalogs/apps/devices/da.catkeys @@ -1,13 +1,13 @@ 1 danish x-vnd.Haiku-Devices 3345509916 ACPI bus DevicesView ACPI-bus Encryption controller Device Krypterings-kontroller -Bus Information Device Bus-information +Bus Information Device Information om bus Devices System name Enheder Graphics Peripheral DeviceSCSI Grafisk perifer Processor Device Processor Generate system information DevicesView Generer systeminformation Class info DevicePCI Klasseinfo -ACPI Information DeviceACPI ACPI-information +ACPI Information DeviceACPI Information om ACPI Detailed DevicesView Detaljer Computer DevicesView Computer Communications DeviceSCSI Kommunikation @@ -16,7 +16,7 @@ Mass storage controller Device Masselagerings-kontroller Connection DevicesView Forbindelse Printer DeviceSCSI Printer ACPI Processor Namespace '%2' DeviceACPI ACPI-processor-navnerum '%2' -SCSI Information DeviceSCSI SCSI-information +SCSI Information DeviceSCSI Information om SCSI Manufacturer Device Producent Device name: Device Enhedsnavn: Scanner DeviceSCSI Skanner @@ -36,7 +36,7 @@ Input device controller Device Inputenheds-kontroller PCI bus DevicesView PCI-bus ACPI System Indicator DeviceACPI ACPI systemindikator ACPI System Bus DeviceACPI ACPI systembus -PCI Information DevicePCI PCI-information +PCI Information DevicePCI Information om PCI Tape Drive DeviceSCSI Bånddrev Changer DeviceSCSI Skifter Serial bus controller Device Seriel bus-kontroller diff --git a/data/catalogs/apps/diskprobe/cs.catkeys b/data/catalogs/apps/diskprobe/cs.catkeys index 8c0820db9f..750059b7b2 100644 --- a/data/catalogs/apps/diskprobe/cs.catkeys +++ b/data/catalogs/apps/diskprobe/cs.catkeys @@ -27,8 +27,8 @@ Device: ProbeView Zařízení: Base ProbeView A menu item, the number that is basis for a system of calculation. The base 10 system is a decimal system. This is in the same menu window than 'Font size' and 'BlockSize' Soustava Open file… FileWindow Otevřít soubor... 32 bit unsigned pointer: TypeEditors 32 bitový ukazatel bez znaménka: -DiskProbe request DiskProbe Požadavek Diskové sondy -Hex ProbeView A menu item, as short as possible, noun is recommended if it is shorter than adjective. Šestnáctkové číslo +DiskProbe request DiskProbe Požadavek diskové sondy +Hex ProbeView A menu item, as short as possible, noun is recommended if it is shorter than adjective. Šestnáctková Writing to the file failed:\n%s\n\nAll changes will be lost when you quit. ProbeView Zápis do souboru selhal:\n%s\n\nVšechny změny se po ukončení zahodí. Examine device: OpenWindow Prozkoumat zařízení: Number editor TypeEditors Editor čísla @@ -53,7 +53,7 @@ Redo ProbeView Znovu Floating-point value: TypeEditors Reálné číslo: Cancel AttributeWindow Zrušit 16 bit signed value: TypeEditors Hodnota 16 bitového celého čísla: -DiskProbe request AttributeWindow Požadavek Diskové sondy +DiskProbe request AttributeWindow Požadavek diskové sondy Next ProbeView Další 64 bit signed offset: TypeEditors Ofset 64 bitové celé číslo: 32 bit signed value: TypeEditors Hodnota 32 bitového celého čísla: @@ -115,7 +115,7 @@ Block ProbeView Blok Find again ProbeView Najít znovu View ProbeView This is the last menubar item 'File Edit Block View' Zobrazit Could not read image TypeEditors Image means here a picture file, not a disk image. Nelze načíst obrázek -DiskProbe request ProbeView Požadavek Diskové sondy +DiskProbe request ProbeView Požadavek diskové sondy Double precision floating-point value: TypeEditors Hodnota reálného čísla s dvojitou přesností: Image TypeEditors This is the type of view Obrázek Save changes before closing? ProbeView Uložit změny před uzavřením? @@ -127,7 +127,7 @@ Boolean editor TypeEditors Editor logických hodnot Device offset: ProbeView Ofset zařízení: Find… ProbeView Najít... 8 bit palette TypeEditors 8 bitová paleta -Decimal ProbeView A menu item, as short as possible, noun is recommended if it is shorter than adjective. Desítkové +Decimal ProbeView A menu item, as short as possible, noun is recommended if it is shorter than adjective. Desítková Image view TypeEditors Image means here a picture file, not a disk image. Zobrazit obrázek Paste ProbeView Vložit 32 bit unsigned size: TypeEditors 32 bitová velikost bez znaménka: diff --git a/data/catalogs/apps/diskprobe/pt_BR.catkeys b/data/catalogs/apps/diskprobe/pt_BR.catkeys index 53f3815481..110e771567 100644 --- a/data/catalogs/apps/diskprobe/pt_BR.catkeys +++ b/data/catalogs/apps/diskprobe/pt_BR.catkeys @@ -68,11 +68,11 @@ Block 0x%Lx ProbeView Bloco 0x%Lx Attribute AttributeWindow Atributo Mode: FindWindow Modo: 16 bit TypeEditors 16 bit -32 bit size or status: TypeEditors Tamanho de 32 bit ou status: +32 bit size or status: TypeEditors Tamanho ou estado de 32 bit: of ProbeView de Contents: TypeEditors Conteúdo: Could not open file \"%s\": %s\n DiskProbe Não foi possível abrir o arquivo \"%s\": %s\n -Probe file… OpenWindow Analisando arquivo… +Probe file… OpenWindow Analisar arquivo… Block: ProbeView Bloco: Bookmarks ProbeView Marcadores Probe device OpenWindow Analisar dispositivo diff --git a/data/catalogs/apps/diskusage/da.catkeys b/data/catalogs/apps/diskusage/da.catkeys index 7bec598ea0..babf849115 100644 --- a/data/catalogs/apps/diskusage/da.catkeys +++ b/data/catalogs/apps/diskusage/da.catkeys @@ -11,7 +11,7 @@ Path Info Window Sti Scan Status View Skan Rescan Status View Skan igen file unavailable Status View filen er ikke tilgængelig -Get info Pie View Hent info +Get info Pie View Hent information DiskUsage System name Diskforbrug Created Info Window Oprettet Modified Info Window Ændret diff --git a/data/catalogs/apps/diskusage/es.catkeys b/data/catalogs/apps/diskusage/es.catkeys index 624c6785c0..1ffc3acb61 100644 --- a/data/catalogs/apps/diskusage/es.catkeys +++ b/data/catalogs/apps/diskusage/es.catkeys @@ -10,7 +10,7 @@ no supporting apps Pie View No hay aplicaciones soportadas Path Info Window Ruta Scan Status View Escanear Rescan Status View Escanear nuevamente -file unavailable Status View Archivo no disponible +file unavailable Status View archivo no disponible Get info Pie View Obtener información DiskUsage System name DiskUsage Created Info Window Creado diff --git a/data/catalogs/apps/diskusage/pt_BR.catkeys b/data/catalogs/apps/diskusage/pt_BR.catkeys index a3d0f31a6a..ba58486d0a 100644 --- a/data/catalogs/apps/diskusage/pt_BR.catkeys +++ b/data/catalogs/apps/diskusage/pt_BR.catkeys @@ -3,13 +3,13 @@ Scanning %refName% Scanner Analisando %refName% %d files Status View For UI layouting only, use the longest plural form for your language %d arquivos Size Info Window Tamanho -Rescan Pie View ReAnalisar +Rescan Pie View Re-analisar Kind Info Window Tipo file unavailable Pie View arquivo não disponível no supporting apps Pie View sem suporte a apps Path Info Window Caminho Scan Status View Analisar -Rescan Status View ReAnalisar +Rescan Status View Re-analisar file unavailable Status View arquivo não disponível Get info Pie View Obter informação DiskUsage System name Uso de Disco diff --git a/data/catalogs/apps/drivesetup/cs.catkeys b/data/catalogs/apps/drivesetup/cs.catkeys index f9103517c8..ce614cf6c0 100644 --- a/data/catalogs/apps/drivesetup/cs.catkeys +++ b/data/catalogs/apps/drivesetup/cs.catkeys @@ -69,7 +69,7 @@ Cancel AbstractParametersPanel Zrušit Format MainWindow Formátovat OK MainWindow OK Empty space DiskView Prázdné místo -Open with DiskProbe MainWindow Otevřít Diskovou sondou +Open with DiskProbe MainWindow Otevřít diskovou sondou Could not delete the selected partition. MainWindow Nelze odstranit vybraný oddíl. Are you sure you want to initialize the selected disk? All data will be lost. You will be asked again before changes are written to the disk.\n MainWindow Opravdu chcete inicializovat vybraný disk? Všechna data budou ztracena. Budete požádáni znovu, než budou na disk zapsány změny.\n There was an error preparing the disk for modifications. MainWindow Při přípravě disku na úpravy došlo k chybě. diff --git a/data/catalogs/apps/drivesetup/da.catkeys b/data/catalogs/apps/drivesetup/da.catkeys index ef04516769..b0d1c0cabb 100644 --- a/data/catalogs/apps/drivesetup/da.catkeys +++ b/data/catalogs/apps/drivesetup/da.catkeys @@ -1,6 +1,6 @@ 1 danish x-vnd.Haiku-DriveSetup 4048496535 Could not unmount partition %s. MainWindow Kunne ikke afmontere partition %s. -Mount all MainWindow Monter alle +Mount all MainWindow Montér alle Disk MainWindow Disk Are you sure you want to write the changes back to disk now?\n\nAll data on the selected partition will be irretrievably lost if you do so! MainWindow Er du sikker på, at du vil skrive ændringerne tilbage til disken nu?\n\nData på den valgte partition vil blive permanent slettet! Device PartitionList Enhed @@ -14,7 +14,7 @@ Block size PartitionList Blokstørrelse The panel experienced a problem! MainWindow Panelet oplevede på et problem! Device DiskView Enhed Are you sure you want to format the Intel Extended Partition? Any subpartitions it contains will be overwritten if you continue. You will be asked again before changes are written to the disk. MainWindow Er du sikker på, at du vil formatere Intel Extended Partition? Hvis den indeholder underpartitioner, så vil de blive overskrevet, hvis du fortsætter. Du vil blive spurgt igen inden ændringerne skrives til disken. -Unmount MainWindow Afmonter +Unmount MainWindow Afmontér Failed to format the partition %s!\n MainWindow Kunne ikke formatere partitionen %s!\n Partition size CreateParametersPanel Partitionsstørrelse Validation of the given parameters failed. MainWindow Validering af de angivne parametre mislykkedes. @@ -44,7 +44,7 @@ File system PartitionList Filsystem The selected partition does not contain a partitioning system. MainWindow Den valgte partition indeholder ikke et partitions system. End: %s Support Slutning: %s Partition type PartitionList Partitionstype -Unable to find the selected partition by ID. MainWindow Kunne ikke finde den valgte partition ud fra ID. +Unable to find the selected partition by ID. MainWindow Kunne ikke finde den valgte partition ud fra id. The currently selected partition is not empty. MainWindow Den valgte partition er ikke tom. Are you sure you want to format a raw disk? (Most people initialize the disk with a partitioning system first) You will be asked again before changes are written to the disk. MainWindow Er du sikker på, at du vil formatere en rå disk? (de fleste mennesker initialiserer først disken med et partitionssystem). Du vil blive spurgt igen inden ændringerne skrives til disken. Wipe (not implemented) MainWindow Stryg (ikke implementeret) @@ -109,4 +109,4 @@ The partition %s has been successfully formatted.\n MainWindow Partitionen %s b The partition %s is already mounted. MainWindow Partitionen %s er allerede monteret. Size PartitionList Størrelse Creation of the partition has failed. MainWindow Det var ikke muligt at oprette partitionen. -Mount MainWindow Monter +Mount MainWindow Montér diff --git a/data/catalogs/apps/drivesetup/el.catkeys b/data/catalogs/apps/drivesetup/el.catkeys index 31f4d72acf..bf770017f7 100644 --- a/data/catalogs/apps/drivesetup/el.catkeys +++ b/data/catalogs/apps/drivesetup/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.Haiku-DriveSetup 2942313478 +1 greek, modern (1453-) x-vnd.Haiku-DriveSetup 4048496535 Could not unmount partition %s. MainWindow Δεν ήταν δυνατή η αποπροσάρτηση της κατάτμησης %s. Mount all MainWindow Προσάρτηση όλων Disk MainWindow Δίσκος @@ -50,6 +50,8 @@ Are you sure you want to format a raw disk? (Most people initialize the disk wit Wipe (not implemented) MainWindow Εκκαθάριση (δεν έχει ενσωματωθεί ακόμα) The currently selected partition does not have a parent partition. MainWindow Η τρέχουσα επιλεγμένη κατάτμηση δεν έχει κατάτμηση γονέα. Validation of the given initialization parameters failed. MainWindow Η επικύρωση των δοθέντων παραμέτρων αρχικοποίησης απέτυχε. +Not formatted (%s) PartitionList Αμορφοποίητο (%s) +Failed to create the partition. No changes have been written to disk. MainWindow Η δημιουργία τομής απέτυχε. Καμιά αλλαγή δεν πραγματοποιήθηκε στο δίσκο. Shared PartitionList Κοινόχρηστη MIMEs PartitionList ΜΙΜΕ BitLocker encrypted Encryption utils Κρυπτογραφημένη με BitLocker @@ -62,9 +64,11 @@ Change ChangeParametersPanel Αλλαγή Partition name: ChangeParametersPanel Όνομα κατάτμησης: LUKS encrypted Encryption utils Κρυπτογραφημένη με LUKS Are you sure you want to write the changes back to disk now?\n\nAll data on the partition %s will be irretrievably lost if you do so! MainWindow Είστε σίγουρος πως θέλετε να εγγράψετε τις αλλαγές στον δίσκο τώρα;\n\nΌλα τα δεδομένα στην κατάτμηση %s θα διαγραφούν οριστικά! +Empty space PartitionList Κενός χώρος Cancel AbstractParametersPanel Άκυρο Format MainWindow Διαμόρφωση OK MainWindow Εντάξει +Empty space DiskView Κενός χώρος Open with DiskProbe MainWindow Άνοιγμα με Ελεγχτή Δίσκου Could not delete the selected partition. MainWindow Αδυναμία διαγραφής της επιλεγμένης κατάτμησης. Are you sure you want to initialize the selected disk? All data will be lost. You will be asked again before changes are written to the disk.\n MainWindow Είστε σίγουρος ότι θέλετε να αρχικοποιήσετε τον επιλεγμένο δίσκο; Όλα τα δεδομένα θα διαγραφούν. Θα ρωτηθείτε ξανά πριν εγγραφούν οι αλλαγές στον δίσκο.\n @@ -81,6 +85,7 @@ Rescan MainWindow Επανάληψη σάρωσης There was an error acquiring the partition row. MainWindow Υπήρξε ένα σφάλμα κατά την απόκτηση της σειράς κατάτμησης. Failed to initialize the disk %s!\n MainWindow Η αρχικοποίηση του δίσκου %s απέτυχε!\n Disk system \"%s\" not found! MainWindow Το σύστημα δίσκου \"%s\" δεν βρέθηκε! +The partition cannot be unmounted. MainWindow Η τομή δεν μπορεί να αποπροσαρτηστεί. Delete MainWindow Διαγραφή Partition type: ChangeParametersPanel Είδος κατάτμησης: Parameters PartitionList Παράμετροι diff --git a/data/catalogs/apps/drivesetup/es.catkeys b/data/catalogs/apps/drivesetup/es.catkeys index 303efdd4d7..7a05dccc88 100644 --- a/data/catalogs/apps/drivesetup/es.catkeys +++ b/data/catalogs/apps/drivesetup/es.catkeys @@ -19,7 +19,7 @@ Failed to format the partition %s!\n MainWindow Error al formatear la partició Partition size CreateParametersPanel Tamaño de partición Validation of the given parameters failed. MainWindow Falló la validación de los parámetros proporcionados. Are you sure you want to format the partition \"%s\"? You will be asked again before changes are written to the disk. MainWindow ¿Está seguro de que desea formatear la partición \"%s\"? Tendrá que confirmarlo nuevamente antes de que los cambios se apliquen al disco. -DriveSetup System name Examinador de disco +DriveSetup System name Configuración de discos Mounted at PartitionList Montado en Create… MainWindow Crear… Write changes MainWindow Escribir cambios diff --git a/data/catalogs/apps/drivesetup/fr.catkeys b/data/catalogs/apps/drivesetup/fr.catkeys index bdfba36812..603b93ee7b 100644 --- a/data/catalogs/apps/drivesetup/fr.catkeys +++ b/data/catalogs/apps/drivesetup/fr.catkeys @@ -69,11 +69,11 @@ Cancel AbstractParametersPanel Annuler Format MainWindow Formater OK MainWindow OK Empty space DiskView Espace libre -Open with DiskProbe MainWindow Ouvrir avec DiskProbe +Open with DiskProbe MainWindow Ouvrir avec Sondeur de disque Could not delete the selected partition. MainWindow Impossible de supprimer la partition sélectionnée. Are you sure you want to initialize the selected disk? All data will be lost. You will be asked again before changes are written to the disk.\n MainWindow Êtes-vous sûr de vouloir initialiser le disque sélectionné ? Toutes les données seront perdues. Une confirmation vous sera à nouveau demandée avant que les changements ne soient écrits sur le disque.\n There was an error preparing the disk for modifications. MainWindow Une erreur est survenue pendant la préparation des modifications du disque. -The disk has been successfully initialized.\n MainWindow Le disque a été correctement initialisée.\n +The disk has been successfully initialized.\n MainWindow Le disque a été correctement initialisé.\n Should unmounting be forced?\n\nNote: If an application is currently writing to the volume, unmounting it now might result in loss of data.\n MainWindow Faut-il forcer le démontage ?\n\nRemarque : si une application est en train d’écrire sur le volume, le démonter maintenant peut entraîner une perte de données.\n Cancel MainWindow Annuler Free space PartitionList Espace libre diff --git a/data/catalogs/apps/drivesetup/pt_BR.catkeys b/data/catalogs/apps/drivesetup/pt_BR.catkeys index e8bef49686..b61dae8ab8 100644 --- a/data/catalogs/apps/drivesetup/pt_BR.catkeys +++ b/data/catalogs/apps/drivesetup/pt_BR.catkeys @@ -81,7 +81,7 @@ Queries PartitionList Consultas Force unmount MainWindow Forçar desmontagem Partition MainWindow Partição Change parameters MainWindow Mudar parâmetros -Rescan MainWindow Reanalisar +Rescan MainWindow Re-analisar There was an error acquiring the partition row. MainWindow Houve um erro ao obter a linha de partição. Failed to initialize the disk %s!\n MainWindow Falha ao iniciar o disco %s!\n Disk system \"%s\" not found! MainWindow Disco do sistema \"%s\" não foi encontrado! @@ -102,7 +102,7 @@ OK AbstractParametersPanel OK Virtual PartitionList Virtual Virtual DiskView Virtual Are you sure you want to write the changes back to disk now?\n\nAll data on the selected disk will be irretrievably lost if you do so! MainWindow Deseja aplicar todas as alterações agora?\n\nTodos os dados na partição selecionada serão perdidos pra sempre se continuar! -Select a partition from the list below. DiskView Selecione a partição a partir da lista abaixo. +Select a partition from the list below. DiskView Selecione uma partição a partir da lista abaixo. Active PartitionList Ativo Are you sure you want to delete the selected partition?\n\nAll data on the partition will be irretrievably lost if you do so! MainWindow Deseja apagar a partição selecionada?\n\nTodos os dados na partição serão perdidos pra sempre se continuar! The partition %s has been successfully formatted.\n MainWindow A partição %s foi formatada com sucesso.\n diff --git a/data/catalogs/apps/expander/cs.catkeys b/data/catalogs/apps/expander/cs.catkeys index afbfdeff4c..51acab5978 100644 --- a/data/catalogs/apps/expander/cs.catkeys +++ b/data/catalogs/apps/expander/cs.catkeys @@ -6,9 +6,9 @@ Set destination… ExpanderMenu Nastavit cíl... Use: ExpanderPreferences Použití: File expanded ExpanderWindow Soubor rozbalen The destination is read only. ExpanderWindow Cíl je určen pouze pro čtení. -Expander: Open ExpanderWindow Expander: Otevřít +Expander: Open ExpanderWindow Rozbalovač: Otevřít is not supported ExpanderWindow není podporováno -Expander settings ExpanderPreferences Nastavení Expanderu +Expander settings ExpanderPreferences Nastavení rozbalovače Select current DirectoryFilePanel Vybrat aktuální Source ExpanderWindow Zdroj Error when expanding archive ExpanderWindow Chyba při rozbalování archivu @@ -26,7 +26,7 @@ Destination folder doesn't exist. Would you like to create it? ExpanderWindow C Same directory as source (archive) file ExpanderPreferences Stejná složka, jako zdrojový soubor (archív) Settings ExpanderMenu Nastavení Settings… ExpanderMenu Nastavení... -Expander: Choose destination DirectoryFilePanel Expander: Vybrat cíl +Expander: Choose destination DirectoryFilePanel Rozbalovač: Vybrat cíl Select ExpanderPreferences Vybrat Show contents ExpanderWindow Zobrazit obsah Automatically show contents listing ExpanderPreferences Automaticky zobrazit výpis obsahu diff --git a/data/catalogs/apps/expander/da.catkeys b/data/catalogs/apps/expander/da.catkeys index 7a48e3a7c3..0c92327b16 100644 --- a/data/catalogs/apps/expander/da.catkeys +++ b/data/catalogs/apps/expander/da.catkeys @@ -31,7 +31,7 @@ Select ExpanderPreferences Vælg Show contents ExpanderWindow Vis indhold Automatically show contents listing ExpanderPreferences Automatisk visning af indholdets oplistning OK ExpanderPreferences OK -Are you sure you want to stop expanding this archive? The expanded items may not be complete. ExpanderWindow Er du sikker på, at du vil stoppe udvidelsen af arkivet? De udvidede punkter er måske ikke fuldførte. +Are you sure you want to stop expanding this archive? The expanded items may not be complete. ExpanderWindow Er du sikker på, at du vil stoppe udvidelsen af arkivet? De udvidede elementer er måske ikke fuldførte. Leave destination folder path empty ExpanderPreferences Lad stien til destinationsmappen være tom Failed to create the destination folder. ExpanderWindow Kunne ikke oprette destinationsmappen. Select '%s'… DirectoryFilePanel Vælg '%s'… @@ -42,7 +42,7 @@ File ExpanderMenu Fil Expander System name Udvider Expand ExpanderWindow Pak ud Close ExpanderMenu Luk -The destination is not a folder. ExpanderWindow Destinationen er ikke en folder. +The destination is not a folder. ExpanderWindow Destinationen er ikke en mappe. Open destination folder after extraction ExpanderPreferences Åbn destinationsmappe efter udpakning Creating listing for '%s'… ExpanderWindow Opretter oplistning til '%s'… Set source… ExpanderMenu Vælg kilde… diff --git a/data/catalogs/apps/expander/pt_BR.catkeys b/data/catalogs/apps/expander/pt_BR.catkeys index e0616b7f42..5a70738d5b 100644 --- a/data/catalogs/apps/expander/pt_BR.catkeys +++ b/data/catalogs/apps/expander/pt_BR.catkeys @@ -1,9 +1,9 @@ 1 portuguese (brazil) x-vnd.Haiku-Expander 3300517306 Expand ExpanderMenu Expandir Expanding '%s'… ExpanderWindow Expandindo '%s'… -Close window when done expanding ExpanderPreferences Fechar a janela quando concluída a expansão +Close window when done expanding ExpanderPreferences Fechar a janela quando concluir a expansão Set destination… ExpanderMenu Selecionar destino… -Use: ExpanderPreferences Uso: +Use: ExpanderPreferences Usar: File expanded ExpanderWindow Arquivo expandido The destination is read only. ExpanderWindow O destino é somente para leitura. Expander: Open ExpanderWindow Expansor: Abrir @@ -23,7 +23,7 @@ Expansion ExpanderPreferences Expansão Select DirectoryFilePanel Selecionar The folder was either moved, renamed or not supported. ExpanderWindow A pasta foi movida, renomeada ou não é suportada. Destination folder doesn't exist. Would you like to create it? ExpanderWindow A pasta de destino não existe. Deseja criá-la? -Same directory as source (archive) file ExpanderPreferences Mesmo diretório como arquivo fonte (conjunto de arquivos) +Same directory as source (archive) file ExpanderPreferences Mesmo diretório que o arquivo fonte (conjunto de arquivos) Settings ExpanderMenu Configurações Settings… ExpanderMenu Configurações… Expander: Choose destination DirectoryFilePanel Expansor: Escolher destino diff --git a/data/catalogs/apps/firstbootprompt/ca.catkeys b/data/catalogs/apps/firstbootprompt/ca.catkeys index 7bbebd0aee..9bf2672a64 100644 --- a/data/catalogs/apps/firstbootprompt/ca.catkeys +++ b/data/catalogs/apps/firstbootprompt/ca.catkeys @@ -1,4 +1,4 @@ -1 catalan; valencian x-vnd.Haiku-FirstBootPrompt 3595268803 +1 catalan; valencian x-vnd.Haiku-FirstBootPrompt 189132197 Japanese KeymapNames Japonès US KeymapNames EUA Cancel BootPromptWindow Cancel·la @@ -7,10 +7,12 @@ Belarusian KeymapNames Bielorús Brazilian KeymapNames Brasiler Dvorak KeymapNames Dvorak Polish KeymapNames Polonès +Try Haiku BootPromptWindow Proveu el Haiku Latin-American KeymapNames Llatinoamericà Ukrainian KeymapNames Ucraïnès Russian (Yawert) KeymapNames Rus (Yawert) United-Kingdom KeymapNames Regne Unit +Welcome! BootPromptWindow Benvingut! Quit Haiku System name Surt del Haiku Serbian (Cyrillic) KeymapNames Serbi (ciríl·lic) Turkish (Type-F) KeymapNames Turc (tipus F) @@ -43,8 +45,10 @@ Faeroese KeymapNames Feroès Polish (Typewriter) KeymapNames Polonès (màquina d'escriure) French (Mac) KeymapNames Francès (Mac) Spanish KeymapNames Castellà +Try it out BootPromptWindow Proveu-lo Ukrainian (Mac) KeymapNames Ucraïnès (Mac) Estonian KeymapNames Estonià +Install Haiku BootPromptWindow Instal·leu el Haiku French (Bépo) KeymapNames Francès (Bépo) Restart system BootPromptWindow Reinicia el sistema Serbian (Latin) KeymapNames Serbi (llatí) @@ -56,29 +60,29 @@ Swiss-French KeymapNames Francès suís Slovene KeymapNames Eslovè Lithuanian KeymapNames Lituà French (NF Z71-300) KeymapNames Francès (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Gràcies per provar el %distroname%! Desitgem que us agradi!\n\nSeleccioneu la llengua i el mapa de tecles preferits. Ambdues configuracions també es poden canviar més endavant quan s’executi el %distroname%.\n\nVoleu instal·lar el %distroname% ara o primer el voleu provar? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Kazakh Language BootPromptWindow Llengua -Welcome to %distroname%! BootPromptWindow Benvingut/da al %distroname%! Lithuanian (Standard) KeymapNames Lituà (estàndard) Belgian (comma) KeymapNames Belga (coma) Custom BootPromptWindow Personalitzat Norwegian KeymapNames Noruec Danish KeymapNames Danès Bulgarian (Phonetic) KeymapNames Búlgar (fonètic) -Try out %distroname% BootPromptWindow Vull provar el %distroname% Canadian-French KeymapNames Francès canadenc +Welcome to Haiku! BootPromptWindow Benvingut al Haiku! Russian KeymapNames Rus Hungarian KeymapNames Hongarès +Install BootPromptWindow Instal·la Irish KeymapNames Irlandès Romanian KeymapNames Romanès Are you sure you want to close this window? This will restart your system! BootPromptWindow Segur que voleu tancar aquesta finestra? Això reiniciarà el sistema! +Thank you for trying out Haiku! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running Haiku.\n\nDo you wish to install Haiku now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Gràcies per provar el Haiku! Esperem que us agradi!\n\nSi us plau, seleccioneu la llengua i la disposició de teclat. Tots dos paràmetres també es poden canviar més tard, quan s'executi el Haiku.\n\nVoleu instal·lar-lo ara o primer el voleu provar? Macedonian KeymapNames Macedoni Czech (Mac) KeymapNames Txec (Mac) Brazilian (ABNT2) KeymapNames Brasiler (ABNT2) Albanian KeymapNames Albanès Dutch KeymapNames Holandès -Install %distroname% BootPromptWindow Instal·la el %distroname% +Thank you for trying out our operating system! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later.\n\nDo you wish to install the operating system now, or try it out first? BootPromptWindow This notice appears when the build of Haiku that's currently being used is unofficial, as in, not distributed by Haiku itself.For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Gràcies per provar el nostre sistema operatiu! Esperem que us agradi!\n\nSi us plau, seleccioneu la llengua i la disposició de teclat. Tots dos paràmetres també es poden canviar més tard.\n\nVoleu instal·lar el sistema operatiu ara o primer el voleu provar? Friulian KeymapNames Friülà Icelandic KeymapNames Islandès diff --git a/data/catalogs/apps/firstbootprompt/cs.catkeys b/data/catalogs/apps/firstbootprompt/cs.catkeys index 7862067407..1494bd74b8 100644 --- a/data/catalogs/apps/firstbootprompt/cs.catkeys +++ b/data/catalogs/apps/firstbootprompt/cs.catkeys @@ -1,4 +1,4 @@ -1 czech x-vnd.Haiku-FirstBootPrompt 3595268803 +1 czech x-vnd.Haiku-FirstBootPrompt 189132197 Japanese KeymapNames Japonské US KeymapNames Anglické (Spojené státy) Cancel BootPromptWindow Storno @@ -7,10 +7,12 @@ Belarusian KeymapNames Běloruské Brazilian KeymapNames Brazilské Dvorak KeymapNames Dvořákovo Polish KeymapNames Polské +Try Haiku BootPromptWindow Zkusit Haiku Latin-American KeymapNames Latinsko-Americké Ukrainian KeymapNames Ukrajinské Russian (Yawert) KeymapNames Ruské (YaWERT) United-Kingdom KeymapNames Anglické (Spojené království) +Welcome! BootPromptWindow Vítejte! Quit Haiku System name Ukončit Haiku Serbian (Cyrillic) KeymapNames Srbské (Cyrilice) Turkish (Type-F) KeymapNames Turecké (Typ F) @@ -43,8 +45,10 @@ Faeroese KeymapNames Faerské Polish (Typewriter) KeymapNames Polské (psací stroj) French (Mac) KeymapNames Francouzské (Mac) Spanish KeymapNames Španělské +Try it out BootPromptWindow Vyzkoušejte Ukrainian (Mac) KeymapNames Ukrajinské (Mac) Estonian KeymapNames Estonské +Install Haiku BootPromptWindow Nainstalovat Haiku French (Bépo) KeymapNames Francouzské (Bépo) Restart system BootPromptWindow Restartovat systém Serbian (Latin) KeymapNames Srbské (latinka) @@ -56,29 +60,29 @@ Swiss-French KeymapNames Švýcarsko-francouzské Slovene KeymapNames Slovinské Lithuanian KeymapNames Litevské French (NF Z71-300) KeymapNames Francouzské (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Děkujeme, že zkoušíte %distroname%! Doufáme, že se vám bude líbit!\n\nZvolte preferovaný jazyk a rozložení klávesnice. Obojí lze změnit později v nastavení %distroname%.\n\nPřejete si %distroname% nainstalovat, nebo hned vyzkoušet bez instalace? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Kazašské Language BootPromptWindow Jazyk -Welcome to %distroname%! BootPromptWindow Vítejte v %distroname%! Lithuanian (Standard) KeymapNames Litevské (standardní) Belgian (comma) KeymapNames Belgické (čárka) Custom BootPromptWindow Vlastní Norwegian KeymapNames Norské Danish KeymapNames Dánské Bulgarian (Phonetic) KeymapNames Bulharské (fonetické) -Try out %distroname% BootPromptWindow Vyzkoušet %distroname% Canadian-French KeymapNames Kanadsko-francouzské +Welcome to Haiku! BootPromptWindow Vítejte v Haiku! Russian KeymapNames Ruské Hungarian KeymapNames Maďarské +Install BootPromptWindow Instalovat Irish KeymapNames Irské Romanian KeymapNames Rumunské Are you sure you want to close this window? This will restart your system! BootPromptWindow Opravdu zavřít okno? Tím se restartuje systém! +Thank you for trying out Haiku! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running Haiku.\n\nDo you wish to install Haiku now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Děkujeme, že zkoušíte Haiku! Doufáme, že se vám bude líbit!\n\nZvolte jazyk a rozložení kláves. Obě nastavení lze později změnit za běhu Haiku.\n\nPřejete si Haiku nainstalovat, nebo nejprve vyzkoušet? Macedonian KeymapNames Makedonské Czech (Mac) KeymapNames České (Mac) Brazilian (ABNT2) KeymapNames Brazilské (ABNT2) Albanian KeymapNames Albánské Dutch KeymapNames Holandské -Install %distroname% BootPromptWindow Nainstalovat %distroname% +Thank you for trying out our operating system! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later.\n\nDo you wish to install the operating system now, or try it out first? BootPromptWindow This notice appears when the build of Haiku that's currently being used is unofficial, as in, not distributed by Haiku itself.For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Děkujeme, že zkoušíte náš operační systém! Doufáme, že se vám bude líbit!\n\nZvolte jazyk a rozložení kláves. Obě nastavení lze později změnit za běhu Haiku.\n\nPřejete si systém nainstalovat, nebo nejprve vyzkoušet? Friulian KeymapNames Friulské Icelandic KeymapNames Islandské diff --git a/data/catalogs/apps/firstbootprompt/da.catkeys b/data/catalogs/apps/firstbootprompt/da.catkeys index 9f0c6d1ed8..dbd4368fd3 100644 --- a/data/catalogs/apps/firstbootprompt/da.catkeys +++ b/data/catalogs/apps/firstbootprompt/da.catkeys @@ -1,4 +1,4 @@ -1 danish x-vnd.Haiku-FirstBootPrompt 3595268803 +1 danish x-vnd.Haiku-FirstBootPrompt 189132197 Japanese KeymapNames Japansk US KeymapNames USA Cancel BootPromptWindow Annuller @@ -7,10 +7,12 @@ Belarusian KeymapNames Hviderussisk Brazilian KeymapNames Brasiliansk Dvorak KeymapNames Dvorak Polish KeymapNames Polsk +Try Haiku BootPromptWindow Prøv Haiku Latin-American KeymapNames Latinamerikansk Ukrainian KeymapNames Ukrainsk Russian (Yawert) KeymapNames Russisk (Yawert) United-Kingdom KeymapNames Storbritannien +Welcome! BootPromptWindow Velkommen! Quit Haiku System name Afslut Haiku Serbian (Cyrillic) KeymapNames Serbisk (kyrillisk) Turkish (Type-F) KeymapNames Tyrkisk (Type-F) @@ -43,8 +45,10 @@ Faeroese KeymapNames Færøsk Polish (Typewriter) KeymapNames Polsk (skrivemaskine) French (Mac) KeymapNames Fransk (Mac) Spanish KeymapNames Spansk +Try it out BootPromptWindow Prøv det Ukrainian (Mac) KeymapNames Ukrainsk (Mac) Estonian KeymapNames Estonisk +Install Haiku BootPromptWindow Installer Haiku French (Bépo) KeymapNames Fransk (Bépo) Restart system BootPromptWindow Genstart systemet Serbian (Latin) KeymapNames Serbisk (Latin) @@ -56,29 +60,29 @@ Swiss-French KeymapNames Fransk (schweiz) Slovene KeymapNames Slovensk Lithuanian KeymapNames Litauisk French (NF Z71-300) KeymapNames Fransk (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Tak fordi du prøver %distroname%! Vi håber at du kan lide det!\n\nVælg venglist dit foretrukne sprog og tastaturlayout. Begge indstillinger kan også ændres senere ved at køre %distroname%.\n\nØnsker du at installere %distroname% nu eller afprøve det først? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Kasakhisk Language BootPromptWindow Sprog -Welcome to %distroname%! BootPromptWindow Velkommen til %distroname%! Lithuanian (Standard) KeymapNames Litauisk (standard) Belgian (comma) KeymapNames Belgisk (komma) Custom BootPromptWindow Tilpasset Norwegian KeymapNames Norsk Danish KeymapNames Dansk Bulgarian (Phonetic) KeymapNames Bulgarsk (fonetisk) -Try out %distroname% BootPromptWindow Prøv %distroname% Canadian-French KeymapNames Fransk (canadisk) +Welcome to Haiku! BootPromptWindow Velkommen til Haiku! Russian KeymapNames Russisk Hungarian KeymapNames Ungarsk +Install BootPromptWindow Installer Irish KeymapNames Irsk Romanian KeymapNames Rumænsk Are you sure you want to close this window? This will restart your system! BootPromptWindow Er du sikker på, at du vil lukke vinduet? Det genstarter dit system! +Thank you for trying out Haiku! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running Haiku.\n\nDo you wish to install Haiku now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Tak fordi du prøver Haiku! Vi håber du vil kunne lide det!\n\nVælg venligst dit foretrukne sprog og tastaturlayout. Begge indstillinger kan også ændres senere når Haiku kører.\n\nVil du installere Haiku nu eller prøve det først? Macedonian KeymapNames Makedonsk Czech (Mac) KeymapNames Tjekkisk (Mac) Brazilian (ABNT2) KeymapNames Brasiliansk (ABNT2) Albanian KeymapNames Albansk Dutch KeymapNames Nederlandsk -Install %distroname% BootPromptWindow Installer %distroname% +Thank you for trying out our operating system! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later.\n\nDo you wish to install the operating system now, or try it out first? BootPromptWindow This notice appears when the build of Haiku that's currently being used is unofficial, as in, not distributed by Haiku itself.For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Tak fordi du prøver vores styresystem! Vi håber du vil kunne lide det!\n\nVælg venligst dit foretrukne sprog og tastaturlayout. Begge indstillinger kan også ændres senere.\n\nVil du installere styresystemet nu eller prøve det først? Friulian KeymapNames Friulisk Icelandic KeymapNames Islandsk diff --git a/data/catalogs/apps/firstbootprompt/de.catkeys b/data/catalogs/apps/firstbootprompt/de.catkeys index d2aec91225..bb0c776e23 100644 --- a/data/catalogs/apps/firstbootprompt/de.catkeys +++ b/data/catalogs/apps/firstbootprompt/de.catkeys @@ -1,4 +1,4 @@ -1 german x-vnd.Haiku-FirstBootPrompt 3595268803 +1 german x-vnd.Haiku-FirstBootPrompt 189132197 Japanese KeymapNames Japanisch US KeymapNames US-amerikanisch Cancel BootPromptWindow Abbrechen @@ -7,10 +7,12 @@ Belarusian KeymapNames Weißrussisch Brazilian KeymapNames Brasilianisch Dvorak KeymapNames Dvorak Polish KeymapNames Polnisch +Try Haiku BootPromptWindow Haiku ausprobieren Latin-American KeymapNames Latein-amerikanisch Ukrainian KeymapNames Ukrainisch Russian (Yawert) KeymapNames Russisch (Yawert) United-Kingdom KeymapNames GB-englisch +Welcome! BootPromptWindow Willkommen! Quit Haiku System name Haiku beenden Serbian (Cyrillic) KeymapNames Serbisch (kyrillisch) Turkish (Type-F) KeymapNames Türkisch (Typ-F) @@ -43,8 +45,10 @@ Faeroese KeymapNames Färöisch Polish (Typewriter) KeymapNames Polnisch (Schreibmaschine) French (Mac) KeymapNames Französisch (Mac) Spanish KeymapNames Spanisch +Try it out BootPromptWindow Ausprobieren Ukrainian (Mac) KeymapNames Ukrainisch (Mac) Estonian KeymapNames Estnisch +Install Haiku BootPromptWindow Haiku installieren French (Bépo) KeymapNames Französisch (Bépo) Restart system BootPromptWindow Neustarten Serbian (Latin) KeymapNames Serbisch (Latein) @@ -56,29 +60,29 @@ Swiss-French KeymapNames Schweizer Französisch Slovene KeymapNames Slovenisch Lithuanian KeymapNames Litauisch French (NF Z71-300) KeymapNames Französisch (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Danke für das Interesse an %distroname%!\n\nBitte Sprache und Tastaturlayout wählen. Die Einstellungen lassen sich später jederzeit im laufenden System ändern.\n\nSoll %distroname% installiert werden oder wollen Sie es erstmal ausprobieren? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Kasachisch Language BootPromptWindow Sprache -Welcome to %distroname%! BootPromptWindow Willkommen zu %distroname%! Lithuanian (Standard) KeymapNames Litauisch (Standard) Belgian (comma) KeymapNames Belgisch (Komma) Custom BootPromptWindow Benutzerdefiniert Norwegian KeymapNames Norwegisch Danish KeymapNames Dänisch Bulgarian (Phonetic) KeymapNames Bulgarisch (phonetisch) -Try out %distroname% BootPromptWindow %distroname% ausprobieren Canadian-French KeymapNames Kanadisch-Französisch +Welcome to Haiku! BootPromptWindow Willkommen zu Haiku! Russian KeymapNames Russisch Hungarian KeymapNames Ungarisch +Install BootPromptWindow Installieren Irish KeymapNames Irisch Romanian KeymapNames Romänisch Are you sure you want to close this window? This will restart your system! BootPromptWindow Soll dieses Fenster tatsächlich geschlossen werden? Dadurch wird das System neu gestartet! +Thank you for trying out Haiku! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running Haiku.\n\nDo you wish to install Haiku now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Danke für das Interesse an Haiku\n\nBitte Sprache und Tastaturlayout wählen. Die Einstellungen lassen sich später jederzeit im laufenden System ändern.\n\nSoll Haiku jetzt installiert werden oder wollen Sie es erstmal ausprobieren? Macedonian KeymapNames Mazedonisch Czech (Mac) KeymapNames Tschechisch (Mac) Brazilian (ABNT2) KeymapNames Brasilianisch (ABNT2) Albanian KeymapNames Albanisch Dutch KeymapNames Niederländisch -Install %distroname% BootPromptWindow %distroname% installieren +Thank you for trying out our operating system! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later.\n\nDo you wish to install the operating system now, or try it out first? BootPromptWindow This notice appears when the build of Haiku that's currently being used is unofficial, as in, not distributed by Haiku itself.For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Danke für das Interesse an unser Betriebssystem!\n\nBitte Sprache und Tastaturlayout wählen. Die Einstellungen lassen sich später jederzeit im laufenden System ändern.\n\nSoll das Betriebssystem jetzt installiert werden oder wollen Sie es erstmal ausprobieren? Friulian KeymapNames Friaulisch Icelandic KeymapNames Isländisch diff --git a/data/catalogs/apps/firstbootprompt/el.catkeys b/data/catalogs/apps/firstbootprompt/el.catkeys index 18fd583479..ca409b80ad 100644 --- a/data/catalogs/apps/firstbootprompt/el.catkeys +++ b/data/catalogs/apps/firstbootprompt/el.catkeys @@ -1,15 +1,19 @@ -1 greek, modern (1453-) x-vnd.Haiku-FirstBootPrompt 585808223 +1 greek, modern (1453-) x-vnd.Haiku-FirstBootPrompt 189132197 Japanese KeymapNames Ιαπωνικό US KeymapNames ΗΠΑ +Cancel BootPromptWindow Άκυρο Esperanto KeymapNames Εσπεράντο Belarusian KeymapNames Λευκορώσικο Brazilian KeymapNames Βραζιλιάνικο Dvorak KeymapNames Dvorak Polish KeymapNames Πολωνικό +Try Haiku BootPromptWindow Δοκιμάστε το Haiku Latin-American KeymapNames Λατινοαμερικάνικο Ukrainian KeymapNames Ουκρανικό Russian (Yawert) KeymapNames Ρώσικο (Yawert) United-Kingdom KeymapNames Ηνωμένου Βασιλείου +Welcome! BootPromptWindow Καλώς ήρθατε! +Quit Haiku System name Έξοδος από το Haiku Serbian (Cyrillic) KeymapNames Σέρβικο (Κυριλλικό) Turkish (Type-F) KeymapNames Τούρκικο (Τύπου-F) Bulgarian (Cyrillic) KeymapNames Βουλγαρικό (Κυριλλικό) @@ -41,9 +45,12 @@ Faeroese KeymapNames Φεροϊκό Polish (Typewriter) KeymapNames Πολωνικό (Γραφομηχανής) French (Mac) KeymapNames Γαλλικό (Mac) Spanish KeymapNames Ισπανικό +Try it out BootPromptWindow Δοκιμή Ukrainian (Mac) KeymapNames Ουκρανικό (Mac) Estonian KeymapNames Εσθονικό +Install Haiku BootPromptWindow Εγκατάσταση Haiku French (Bépo) KeymapNames Γαλλικό (Bépo) +Restart system BootPromptWindow Επανεκκίνηση Serbian (Latin) KeymapNames Σέρβικο (Λατινικό) Russian (Typewriter) KeymapNames Ρώσικο (Γραφομηχανής) French KeymapNames Γαλλικό @@ -63,14 +70,19 @@ Norwegian KeymapNames Νορβηγικό Danish KeymapNames Δανικό Bulgarian (Phonetic) KeymapNames Βουλγαρικό (Φωνητικό) Canadian-French KeymapNames Καναδικό-Γαλλικό +Welcome to Haiku! BootPromptWindow Καλωσορίσατε στο Haiku! Russian KeymapNames Ρώσικο Hungarian KeymapNames Ουγγρικό +Install BootPromptWindow Εγκατάσταση Irish KeymapNames Ιρλανδικό Romanian KeymapNames Ρουμανικό +Are you sure you want to close this window? This will restart your system! BootPromptWindow Είστε σίγουρος/η ότι θέλετε να κλείσετε αυτό το παράθυρο; Αυτό θα προκαλέσει επανεκκίνηση. +Thank you for trying out Haiku! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running Haiku.\n\nDo you wish to install Haiku now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Ευχαριστούμε που δοκιμάζετε το Haiku! Ελπίζουμε ότι θα σας αρέσει!\n\nΠαρακαλώ επιλέξτε τη γλώσσα προτίμησής σας και τη διάταξη του πληκτρολογίου. Και οι δυο αυτές ρυθμίσεις θα είναι διαθέσιμες αργότερα μέσα από το Haiku.\n\nΣημείωση: Η μετάφραση των εφαρμογών του Haiku είναι μια προσπάθεια εν εξελίξει. Ενδέχεται να βρείτε μπροστά σας ορισμένες αμετάφραστες προτάσεις. Αν θέλετε να βοηθήσετε με τη μετάφραση, παρακαλώ ενημερωθείτε στην ιστοσελίδα www.haiku-os.org.\n\nΘα θέλατε να εγκαταστήσετε το Haiku ή να το δοκιμάσετε πρώτα; Macedonian KeymapNames Βόρειο Μακεδονικό Czech (Mac) KeymapNames Τσέχικο (Mac) Brazilian (ABNT2) KeymapNames Βραζιλιάνικο (ABNT2) Albanian KeymapNames Αλβανικό Dutch KeymapNames Ολλανδικό +Thank you for trying out our operating system! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later.\n\nDo you wish to install the operating system now, or try it out first? BootPromptWindow This notice appears when the build of Haiku that's currently being used is unofficial, as in, not distributed by Haiku itself.For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Ευχαριστούμε που δοκιμάζετε το λειτουργικό μας σύστημα! Ελπίζουμε ότι θα σας αρέσει!\n\nΠαρακαλώ επιλέξτε τη γλώσσα προτίμησής σας και τη διάταξη του πληκτρολογίου. Και οι δυο αυτές ρυθμίσεις θα είναι διαθέσιμες αργότερα.\n\nΘα θέλατε να εγκαταστήσετε το σύστημα ή να το δοκιμάσετε πρώτα; Friulian KeymapNames Φριουλιανό Icelandic KeymapNames Ισλανδικό diff --git a/data/catalogs/apps/firstbootprompt/eo.catkeys b/data/catalogs/apps/firstbootprompt/eo.catkeys index 2e0895f9fc..8506577970 100644 --- a/data/catalogs/apps/firstbootprompt/eo.catkeys +++ b/data/catalogs/apps/firstbootprompt/eo.catkeys @@ -1,4 +1,4 @@ -1 esperanto x-vnd.Haiku-FirstBootPrompt 3595268803 +1 esperanto x-vnd.Haiku-FirstBootPrompt 2131367349 Japanese KeymapNames Japana US KeymapNames Usona Cancel BootPromptWindow Nuligi @@ -56,18 +56,15 @@ Swiss-French KeymapNames Svisfranca Slovene KeymapNames Slovena Lithuanian KeymapNames Litova French (NF Z71-300) KeymapNames Franca (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Dankon pro vi provas %distroname%-n! Ni esperas, ke vi ŝatos ĝin!\n\nBonvolu elekti vian preferatan lingvon kaj klavarmapon. Ambaŭ opcioj ŝanĝeblas poste en rulanta %distroname%.\n\nĈu vi deziras instali %distroname%-n tuj aŭ komence provi? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Kazaĥa Language BootPromptWindow Lingvo -Welcome to %distroname%! BootPromptWindow Bonvenon en %distroname%-n! Lithuanian (Standard) KeymapNames Litova (Norma) Belgian (comma) KeymapNames Belgia (komo) Custom BootPromptWindow Adaptita Norwegian KeymapNames Norvega Danish KeymapNames Dana Bulgarian (Phonetic) KeymapNames Bulgara (Fonetika) -Try out %distroname% BootPromptWindow Provu %distroname%-n Canadian-French KeymapNames Kanadfranca Russian KeymapNames Rusa Hungarian KeymapNames Hungara @@ -79,6 +76,5 @@ Czech (Mac) KeymapNames Ĉeĥa (Makintoŝa) Brazilian (ABNT2) KeymapNames Brazila (ABNT2) Albanian KeymapNames Albana Dutch KeymapNames Nederlanda -Install %distroname% BootPromptWindow Instali %distroname%-n Friulian KeymapNames Friula Icelandic KeymapNames Islanda diff --git a/data/catalogs/apps/firstbootprompt/es.catkeys b/data/catalogs/apps/firstbootprompt/es.catkeys index 63f613f0d9..3c8b4ff204 100644 --- a/data/catalogs/apps/firstbootprompt/es.catkeys +++ b/data/catalogs/apps/firstbootprompt/es.catkeys @@ -1,4 +1,4 @@ -1 spanish; castilian x-vnd.Haiku-FirstBootPrompt 3595268803 +1 spanish; castilian x-vnd.Haiku-FirstBootPrompt 189132197 Japanese KeymapNames Japonés US KeymapNames Estadounidense Cancel BootPromptWindow Cancelar @@ -7,10 +7,12 @@ Belarusian KeymapNames Bielorruso Brazilian KeymapNames Brasileño Dvorak KeymapNames Dvorak Polish KeymapNames Polaco +Try Haiku BootPromptWindow Probar Haiku Latin-American KeymapNames Latinoamericano Ukrainian KeymapNames Ucraniano Russian (Yawert) KeymapNames Ruso (Yawert) United-Kingdom KeymapNames Reino Unido +Welcome! BootPromptWindow ¡Bienvenido! Quit Haiku System name Salir de Haiku Serbian (Cyrillic) KeymapNames Serbio (Cirílico) Turkish (Type-F) KeymapNames Turco (Tipo F) @@ -43,8 +45,10 @@ Faeroese KeymapNames Faroés Polish (Typewriter) KeymapNames Polaco (máquina de escribir) French (Mac) KeymapNames Francés (Mac) Spanish KeymapNames Español +Try it out BootPromptWindow Probar Ukrainian (Mac) KeymapNames Ucraniano (Mac) Estonian KeymapNames Estonio +Install Haiku BootPromptWindow Instalar Haiku French (Bépo) KeymapNames Francés (Bépo) Restart system BootPromptWindow Reiniciar sistema Serbian (Latin) KeymapNames Serbio (Latino) @@ -56,29 +60,29 @@ Swiss-French KeymapNames Suizofrancés Slovene KeymapNames Esloveno Lithuanian KeymapNames Lituano French (NF Z71-300) KeymapNames Francés (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" ¡Gracias por probar %distroname%! ¡Esperamos que sea de su agrado!\n\nPor favor elija su idioma y distribución de teclado de preferencia. Ambas configuraciones podrán ser cambiadas posteriormente durante la ejecución de %distroname%.\n\n¿Desea instalar %distroname% ahora, o prefiere probarlo primero? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Kazajo Language BootPromptWindow Idioma -Welcome to %distroname%! BootPromptWindow ¡Le damos la bienvenida a %distroname%! Lithuanian (Standard) KeymapNames Lituano (Estándar) Belgian (comma) KeymapNames Belga (coma) Custom BootPromptWindow Personalizado Norwegian KeymapNames Noruego Danish KeymapNames Danés Bulgarian (Phonetic) KeymapNames Búlgaro (Fonético) -Try out %distroname% BootPromptWindow Probar %distroname% Canadian-French KeymapNames Francocanadiense +Welcome to Haiku! BootPromptWindow ¡Bienvenido a Haiku! Russian KeymapNames Ruso Hungarian KeymapNames Húngaro +Install BootPromptWindow Instalar Irish KeymapNames Irlandés Romanian KeymapNames Rumano Are you sure you want to close this window? This will restart your system! BootPromptWindow ¿Confirma que quiere cerrar esta ventana? Ello reiniciará el sistema. +Thank you for trying out Haiku! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running Haiku.\n\nDo you wish to install Haiku now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" ¡Gracias por probar Haiku! Esperamos que sea de su agrado.\n\nPor favor elija su idioma y distribución de teclado de preferencia. Ambos ajustes también pueden configurarse más tarde al correr Haiku.\n\n¿Desea instalar Haiku ahora mismo o primero probarlo? Macedonian KeymapNames Macedonio Czech (Mac) KeymapNames Checo (Mac) Brazilian (ABNT2) KeymapNames Brasileño (ABNT2) Albanian KeymapNames Albano Dutch KeymapNames Neerlandés -Install %distroname% BootPromptWindow Instalar %distroname% +Thank you for trying out our operating system! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later.\n\nDo you wish to install the operating system now, or try it out first? BootPromptWindow This notice appears when the build of Haiku that's currently being used is unofficial, as in, not distributed by Haiku itself.For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" ¡Gracias por probar nuestro sistema operativo! Esperamos que sea de su agrado.\n\nPor favor elija su idioma y distribución de teclado de preferencia. Ambos ajustes también pueden configurarse más tarde.\n\n¿Desea instalar el sistema operativo ahora mismo o primero probarlo? Friulian KeymapNames Friuliano Icelandic KeymapNames Islandés diff --git a/data/catalogs/apps/firstbootprompt/fi.catkeys b/data/catalogs/apps/firstbootprompt/fi.catkeys index 79b8b40a34..4a38c02a4e 100644 --- a/data/catalogs/apps/firstbootprompt/fi.catkeys +++ b/data/catalogs/apps/firstbootprompt/fi.catkeys @@ -1,4 +1,4 @@ -1 finnish x-vnd.Haiku-FirstBootPrompt 3595268803 +1 finnish x-vnd.Haiku-FirstBootPrompt 189132197 Japanese KeymapNames Japanilainen US KeymapNames US Cancel BootPromptWindow Peru @@ -7,10 +7,12 @@ Belarusian KeymapNames Valkovenäläinen Brazilian KeymapNames Brasilialainen Dvorak KeymapNames Dvorak Polish KeymapNames Puolalainen +Try Haiku BootPromptWindow Kokeile Haikua Latin-American KeymapNames Latinalaisamerikkalainen Ukrainian KeymapNames Ukrainalainen Russian (Yawert) KeymapNames Venäläinen (Yawert) United-Kingdom KeymapNames Yhdistynyt kuningaskuntalainen +Welcome! BootPromptWindow Tervetuloa! Quit Haiku System name Poistu Haikusta Serbian (Cyrillic) KeymapNames Serbialainen (Kyrillinen) Turkish (Type-F) KeymapNames Turkkilainen (Type-F) @@ -43,8 +45,10 @@ Faeroese KeymapNames Färsaarelainen Polish (Typewriter) KeymapNames Puolalainen (Typewriter) French (Mac) KeymapNames Ranskalainen (Mac) Spanish KeymapNames Espanjalainen +Try it out BootPromptWindow Kokeile sitä Ukrainian (Mac) KeymapNames Ukrainalainen (Mac) Estonian KeymapNames Eestiläinen +Install Haiku BootPromptWindow Asenna Haiku French (Bépo) KeymapNames Ranskalainen (Bépo) Restart system BootPromptWindow Käynnistä järjestelmä uudelleen Serbian (Latin) KeymapNames Serbialainen (Latinalainen) @@ -56,29 +60,29 @@ Swiss-French KeymapNames Sveitsiläisranskalainen Slovene KeymapNames Slovenialainen Lithuanian KeymapNames Liettualainen French (NF Z71-300) KeymapNames Ranskalainen (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Kiitoksia jakeluversion %distroname% kokeilemisesta! Toivomme, että pidät siitä!\n\nValitse ensisijainen kieli ja näppäimistökuvaus. Molemmat asetukset voidaan muuttaa myös myöhemmin suoritettaessa jakeluversiota %distroname%.\n\nHaluatko asentaa jakeluversion %distroname% nyt vai haluatko kokeilla ensin? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Kazakstanilainen Language BootPromptWindow Kieli -Welcome to %distroname%! BootPromptWindow Tervetuloa jakeluversioon %distroname%! Lithuanian (Standard) KeymapNames Liettualainen (Standardi) Belgian (comma) KeymapNames Belgialainen (pilkku) Custom BootPromptWindow Oma Norwegian KeymapNames Norjalainen Danish KeymapNames Tanskalainen Bulgarian (Phonetic) KeymapNames Bulgarialainen (Foneettinen) -Try out %distroname% BootPromptWindow Kokeile jakeluversiota %distroname% Canadian-French KeymapNames Kanadalaisranskalainen +Welcome to Haiku! BootPromptWindow Tervetuloa Haikuun! Russian KeymapNames Venäläinen Hungarian KeymapNames Unkarilainen +Install BootPromptWindow Asenna Irish KeymapNames Irlantilainen Romanian KeymapNames Romanialainen Are you sure you want to close this window? This will restart your system! BootPromptWindow Oletko varma, että haluat sulkea tämän ikkunan? Se käynnistää järjestelmäsi uudelleen! +Thank you for trying out Haiku! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running Haiku.\n\nDo you wish to install Haiku now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Kiitoksia, että kokeilet Haikua! Toivomme, että pidät siitä!\n\nValitse ensisijainen kieli ja näppäimistökuvaus.Molempia asetuksia voi myös muuttaa myöhemmin Haikua käytettäessä.\n\nHaluatko asentaa Haikun nyt vai kokeiletko sitä ensin? Macedonian KeymapNames Makedonialainen Czech (Mac) KeymapNames Tsekkiläinen (Mac) Brazilian (ABNT2) KeymapNames Brasilialainen (ABNT2) Albanian KeymapNames Albanialainen Dutch KeymapNames Hollantilainen -Install %distroname% BootPromptWindow Asenna jakeluversio %distroname% +Thank you for trying out our operating system! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later.\n\nDo you wish to install the operating system now, or try it out first? BootPromptWindow This notice appears when the build of Haiku that's currently being used is unofficial, as in, not distributed by Haiku itself.For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Kiitoksia, että kokeilet käyttöjärjestelmäämme! Toivomme, että pidät siitä!\n\nValitse ensisijainen kieli ja näppäimistökuvaus. Molempia asetuksia voi muuttaa myöhemmin.\n\nHaluatko asentaa käyttöjärjestelmän nyt vai kokeiletko sitä ensin? Friulian KeymapNames Friulialainen Icelandic KeymapNames Islantilainen diff --git a/data/catalogs/apps/firstbootprompt/fr.catkeys b/data/catalogs/apps/firstbootprompt/fr.catkeys index d904f56008..097d9fdd1c 100644 --- a/data/catalogs/apps/firstbootprompt/fr.catkeys +++ b/data/catalogs/apps/firstbootprompt/fr.catkeys @@ -1,4 +1,4 @@ -1 french x-vnd.Haiku-FirstBootPrompt 3595268803 +1 french x-vnd.Haiku-FirstBootPrompt 189132197 Japanese KeymapNames Japonais US KeymapNames US Cancel BootPromptWindow Annuler @@ -7,10 +7,12 @@ Belarusian KeymapNames Biélorusse Brazilian KeymapNames Brésilien Dvorak KeymapNames Dvorak Polish KeymapNames Polonais +Try Haiku BootPromptWindow Essayer Haiku Latin-American KeymapNames Latino-Américain Ukrainian KeymapNames Ukrainien Russian (Yawert) KeymapNames Russe (Yawert) United-Kingdom KeymapNames Royaume-Uni +Welcome! BootPromptWindow Bienvenue ! Quit Haiku System name Quitter Haiku Serbian (Cyrillic) KeymapNames Serbe (cyrillique) Turkish (Type-F) KeymapNames Turc (Type F) @@ -43,8 +45,10 @@ Faeroese KeymapNames Féroïen Polish (Typewriter) KeymapNames Polonais (Machine à écrire) French (Mac) KeymapNames Français (Mac) Spanish KeymapNames Espagnol +Try it out BootPromptWindow Essayez-le Ukrainian (Mac) KeymapNames Ukrainien (Mac) Estonian KeymapNames Estonien +Install Haiku BootPromptWindow Installer Haiku French (Bépo) KeymapNames Français (Bépo) Restart system BootPromptWindow Redémarrer le système Serbian (Latin) KeymapNames Serbe (Latin) @@ -56,29 +60,29 @@ Swiss-French KeymapNames Français Suisse Slovene KeymapNames Slovène Lithuanian KeymapNames Lituanien French (NF Z71-300) KeymapNames Français (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Merci de tester %distroname% ! Nous espérons que vous l’apprécierez !\n\nVeuillez sélectionner votre langue préférée et votre disposition de clavier. Les deux paramètres peuvent également être modifiés ultérieurement lors de l’exécution de %distroname%.\n\nSouhaitez-vous installer %distroname% maintenant, ou l’essayer d’abord ? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Kazakh Language BootPromptWindow Langue -Welcome to %distroname%! BootPromptWindow Bienvenue dans %distroname% ! Lithuanian (Standard) KeymapNames Lituanien (Standard) Belgian (comma) KeymapNames Belge (virgule) Custom BootPromptWindow Personnalisé Norwegian KeymapNames Norvégien Danish KeymapNames Danois Bulgarian (Phonetic) KeymapNames Bulgare (phonétique) -Try out %distroname% BootPromptWindow Essayer %distroname% Canadian-French KeymapNames Français Canadien +Welcome to Haiku! BootPromptWindow Bienvenue dans Haiku ! Russian KeymapNames Russe Hungarian KeymapNames Hongrois +Install BootPromptWindow Installer Irish KeymapNames Irlandais Romanian KeymapNames Roumain Are you sure you want to close this window? This will restart your system! BootPromptWindow Voulez-vous vraiment fermer cette fenêtre ? Cela redémarrera votre système ! +Thank you for trying out Haiku! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running Haiku.\n\nDo you wish to install Haiku now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Merci d’essayer notre système d'exploitation ! Nous espérons qu’il vous plaira !\nVeuillez sélectionner la langue de votre choix et la disposition de votre clavier. Ces deux paramètres peuvent également être modifiés ultérieurement.\n\nSouhaitez-vous installer le système d’exploitation maintenant, ou préférez-vous l’essayer d’abord ?\n\nRemarque : la localisation des applications Haiku et des autres composants est un effort continu. Vous rencontrerez fréquemment des chaînes de caractères non traduites, mais si vous le souhaitez, vous pouvez participer au travail à l’adresse « www.haiku-os.org ». Macedonian KeymapNames Macédonien Czech (Mac) KeymapNames Tchèque (Mac) Brazilian (ABNT2) KeymapNames Brésilien (ABNT2) Albanian KeymapNames Albanais Dutch KeymapNames Néerlandais -Install %distroname% BootPromptWindow Installer %distroname% +Thank you for trying out our operating system! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later.\n\nDo you wish to install the operating system now, or try it out first? BootPromptWindow This notice appears when the build of Haiku that's currently being used is unofficial, as in, not distributed by Haiku itself.For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Merci d’essayer notre système d'exploitation ! Nous espérons qu’il vous plaira !\nVeuillez sélectionner la langue de votre choix et la disposition de votre clavier. Ces deux paramètres peuvent également être modifiés ultérieurement.\n\nSouhaitez-vous installer le système d’exploitation maintenant, ou préférez-vous l’essayer d’abord ?\n\nRemarque : la localisation des applications Haiku et des autres composants est un effort continu. Vous rencontrerez fréquemment des chaînes de caractères non traduites, mais si vous le souhaitez, vous pouvez participer au travail à l’adresse « www.haiku-os.org ». Friulian KeymapNames Frioulan Icelandic KeymapNames Islandais diff --git a/data/catalogs/apps/firstbootprompt/fur.catkeys b/data/catalogs/apps/firstbootprompt/fur.catkeys index 627c5523f7..110cb72c78 100644 --- a/data/catalogs/apps/firstbootprompt/fur.catkeys +++ b/data/catalogs/apps/firstbootprompt/fur.catkeys @@ -1,4 +1,4 @@ -1 friulian x-vnd.Haiku-FirstBootPrompt 3595268803 +1 friulian x-vnd.Haiku-FirstBootPrompt 2131367349 Japanese KeymapNames Gjaponês US KeymapNames Statunitens Cancel BootPromptWindow Anule @@ -56,18 +56,15 @@ Swiss-French KeymapNames Francês de Svuizare Slovene KeymapNames Sloven Lithuanian KeymapNames Lituan French (NF Z71-300) KeymapNames Francês (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Gracie di provâ %distroname%! O sperin che ti plasi!\n\nSelezione par plasê la lenghe e la tastiere preferide. Si podarà cambiâ dutis dôs lis impostazions plui indenant cuant che %distroname% al sarà in esecuzion.\n\nDesideristu instalâ %distroname% cumò, opûr prime provâlu? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Kazac Language BootPromptWindow Lenghe -Welcome to %distroname%! BootPromptWindow Benvignûts su %distroname%! Lithuanian (Standard) KeymapNames Lituan (Standard) Belgian (comma) KeymapNames Belgjic (virgule) Custom BootPromptWindow Personalizât Norwegian KeymapNames Norvegjês Danish KeymapNames Danês Bulgarian (Phonetic) KeymapNames Bulgar (Fonetic) -Try out %distroname% BootPromptWindow Prove %distroname% Canadian-French KeymapNames Francês dal Canadà Russian KeymapNames Rus Hungarian KeymapNames Ongjarês @@ -79,6 +76,5 @@ Czech (Mac) KeymapNames Cec (Mac) Brazilian (ABNT2) KeymapNames Brasilian (ABNT2) Albanian KeymapNames Albanês Dutch KeymapNames Olandês -Install %distroname% BootPromptWindow Instale %distroname% Friulian KeymapNames Furlan Icelandic KeymapNames Islandês diff --git a/data/catalogs/apps/firstbootprompt/hu.catkeys b/data/catalogs/apps/firstbootprompt/hu.catkeys index 65513472e0..5260836b56 100644 --- a/data/catalogs/apps/firstbootprompt/hu.catkeys +++ b/data/catalogs/apps/firstbootprompt/hu.catkeys @@ -1,4 +1,4 @@ -1 hungarian x-vnd.Haiku-FirstBootPrompt 3595268803 +1 hungarian x-vnd.Haiku-FirstBootPrompt 2131367349 Japanese KeymapNames Japán US KeymapNames Egyesült Államok Cancel BootPromptWindow Mégse @@ -56,18 +56,15 @@ Swiss-French KeymapNames Svájci-Francia Slovene KeymapNames Szlovén Lithuanian KeymapNames Litván French (NF Z71-300) KeymapNames Francia (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Köszönjük, hogy kipróbálod a %distroname%! Reméljük tetszeni fog!\n\nKérlek válassz nyelvet és kiosztást. A későbbiekben bármikor módosítható a %distroname% használata közben is.\n\nSzeretnéd telepíteni a %distroname%t most, vagy először csak kipróbálod? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Kazah Language BootPromptWindow Nyelv -Welcome to %distroname%! BootPromptWindow %distroname% üdvözöl Téged! Lithuanian (Standard) KeymapNames Litván (hagyományos) Belgian (comma) KeymapNames Belga (vessző) Custom BootPromptWindow Egyéni Norwegian KeymapNames Norvég Danish KeymapNames Dán Bulgarian (Phonetic) KeymapNames Belga (fonetikus) -Try out %distroname% BootPromptWindow %distroname% kipróbálása Canadian-French KeymapNames Kanadai-Francia Russian KeymapNames Orosz Hungarian KeymapNames Magyar @@ -79,6 +76,5 @@ Czech (Mac) KeymapNames Cseh (Mac) Brazilian (ABNT2) KeymapNames Brazil (ABNT2) Albanian KeymapNames Albán Dutch KeymapNames Holland -Install %distroname% BootPromptWindow %distroname% telepítése Friulian KeymapNames Friuli Icelandic KeymapNames Izlandi diff --git a/data/catalogs/apps/firstbootprompt/it.catkeys b/data/catalogs/apps/firstbootprompt/it.catkeys index 5003f72839..7a681fcd6e 100644 --- a/data/catalogs/apps/firstbootprompt/it.catkeys +++ b/data/catalogs/apps/firstbootprompt/it.catkeys @@ -1,4 +1,4 @@ -1 italian x-vnd.Haiku-FirstBootPrompt 3595268803 +1 italian x-vnd.Haiku-FirstBootPrompt 2131367349 Japanese KeymapNames Giapponese US KeymapNames Inglese (Stati Uniti) Cancel BootPromptWindow Annulla @@ -56,18 +56,15 @@ Swiss-French KeymapNames Francese (Svizzera) Slovene KeymapNames Solveno Lithuanian KeymapNames Lituano French (NF Z71-300) KeymapNames Francese (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Ti ringraziamo per aver voluto provare %distroname%! Ci auguriamo che ti piaccia!Scegli la tua lingua preferita e il layout della tastiera. Entrambe le impostazioni potranno essere modificate durante l'esecuzione di %distroname%Vuoi installare %distroname% oppure vuoi provarlo prima? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Kazako Language BootPromptWindow Lingua -Welcome to %distroname%! BootPromptWindow Benvenuto su %distroname%! Lithuanian (Standard) KeymapNames Lituano (Standard) Belgian (comma) KeymapNames Belga (virgola) Custom BootPromptWindow Personalizzato Norwegian KeymapNames Norvegese Danish KeymapNames Danese Bulgarian (Phonetic) KeymapNames Bulgaro (Fonetico) -Try out %distroname% BootPromptWindow Prova %distroname% Canadian-French KeymapNames Francese (Canada) Russian KeymapNames Russo Hungarian KeymapNames Ungherese @@ -79,6 +76,5 @@ Czech (Mac) KeymapNames Ceco (Mac) Brazilian (ABNT2) KeymapNames Brasiliano (ABNT2) Albanian KeymapNames Albanese Dutch KeymapNames Olandese -Install %distroname% BootPromptWindow Installa %distroname% Friulian KeymapNames Friulano Icelandic KeymapNames Islandese diff --git a/data/catalogs/apps/firstbootprompt/ja.catkeys b/data/catalogs/apps/firstbootprompt/ja.catkeys index 952a313773..905c227091 100644 --- a/data/catalogs/apps/firstbootprompt/ja.catkeys +++ b/data/catalogs/apps/firstbootprompt/ja.catkeys @@ -1,4 +1,4 @@ -1 japanese x-vnd.Haiku-FirstBootPrompt 3595268803 +1 japanese x-vnd.Haiku-FirstBootPrompt 189132197 Japanese KeymapNames 日本語 US KeymapNames 英語 (US) Cancel BootPromptWindow キャンセル @@ -7,10 +7,12 @@ Belarusian KeymapNames ベラルーシ語 Brazilian KeymapNames ブラジル語 Dvorak KeymapNames Dvorak Polish KeymapNames ポーランド語 +Try Haiku BootPromptWindow Haiku を試してみる Latin-American KeymapNames ラテンアメリカ言語 Ukrainian KeymapNames ウクライナ語 Russian (Yawert) KeymapNames ロシア語 (Yawert) United-Kingdom KeymapNames 英語 (United-Kingdom) +Welcome! BootPromptWindow ようこそ! Quit Haiku System name Haiku の終了 Serbian (Cyrillic) KeymapNames セルビア語 (Cyrillic) Turkish (Type-F) KeymapNames トルコ語 (Type-F) @@ -43,8 +45,10 @@ Faeroese KeymapNames フェロー語 Polish (Typewriter) KeymapNames ポーランド語 (Typewriter) French (Mac) KeymapNames フランス語 (Mac) Spanish KeymapNames スペイン語 +Try it out BootPromptWindow 試してみる Ukrainian (Mac) KeymapNames ウクライナ語 (Mac) Estonian KeymapNames エストニア語 +Install Haiku BootPromptWindow IHaiku のインストール French (Bépo) KeymapNames フランス語 (Bépo) Restart system BootPromptWindow システムの再起動 Serbian (Latin) KeymapNames セルビア語 (Latin) @@ -56,29 +60,29 @@ Swiss-French KeymapNames フランス語 (スイス) Slovene KeymapNames スロベニア語 Lithuanian KeymapNames リトアニア語 French (NF Z71-300) KeymapNames フランス語 (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" %distroname%を試用していただきありがとうございます。気に入っていただければ幸いです。\n\nご希望の言語とキーマップを選択してください。これらの設定は、%distroname%を実行中に変更できます。\n\n今すぐ%distroname%をインストールしますか、または最初に試用してみますか?\n\n注釈:アプリケーションや他のコンポーネントの翻訳は進行中のため、翻訳されていない部分が表示されることや翻訳がおかしいことがあります。翻訳に協力したい方は、haiku-i18n-jp MLにてご連絡ください。 ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames カザフ語 Language BootPromptWindow 言語 -Welcome to %distroname%! BootPromptWindow %distroname%へようこそ! Lithuanian (Standard) KeymapNames リトアニア語 (標準) Belgian (comma) KeymapNames ベルギー語 (comma) Custom BootPromptWindow カスタム Norwegian KeymapNames ノルウェー語 Danish KeymapNames デンマーク語 Bulgarian (Phonetic) KeymapNames ブルガリア語 (Phonetic) -Try out %distroname% BootPromptWindow %distroname%を試用 Canadian-French KeymapNames フランス語 (カナダ) +Welcome to Haiku! BootPromptWindow Haiku へようこそ! Russian KeymapNames ロシア語 Hungarian KeymapNames ハンガリー語 +Install BootPromptWindow インストール Irish KeymapNames アイルランド語 Romanian KeymapNames ルーマニア語 Are you sure you want to close this window? This will restart your system! BootPromptWindow 本当にこのウィンドウを閉じてもいいですか? システムが再起動します! +Thank you for trying out Haiku! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running Haiku.\n\nDo you wish to install Haiku now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Haiku を試用していただきありがとうございます。気に入っていただければ幸いです。\n\nご希望の言語とキーマップを選択してください。これらの設定は、後で Haiku を実行中に変更できます。\n\n今すぐ Haiku をインストールしますか、または最初に試用してみますか? Macedonian KeymapNames マケドニア語 Czech (Mac) KeymapNames チェコ語 (Mac) Brazilian (ABNT2) KeymapNames ブラジル語 (ABNT2) Albanian KeymapNames アルバニア語 Dutch KeymapNames オランダ語 -Install %distroname% BootPromptWindow %distroname%のインストール +Thank you for trying out our operating system! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later.\n\nDo you wish to install the operating system now, or try it out first? BootPromptWindow This notice appears when the build of Haiku that's currently being used is unofficial, as in, not distributed by Haiku itself.For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" 私達のオペレーティングシステムを試用していただきありがとうございます。気に入っていただければ幸いです。\n\nご希望の言語とキーマップの選択してください。これらの設定は、後で変更できます。\n\n今すぐオペレーティングシステムををインストールしますか、または最初に試用してみますか? Friulian KeymapNames フリウリ語 Icelandic KeymapNames アイスランド語 diff --git a/data/catalogs/apps/firstbootprompt/nl.catkeys b/data/catalogs/apps/firstbootprompt/nl.catkeys index 6bf36d2d4f..17173fdb59 100644 --- a/data/catalogs/apps/firstbootprompt/nl.catkeys +++ b/data/catalogs/apps/firstbootprompt/nl.catkeys @@ -1,4 +1,4 @@ -1 dutch; flemish x-vnd.Haiku-FirstBootPrompt 3595268803 +1 dutch; flemish x-vnd.Haiku-FirstBootPrompt 2131367349 Japanese KeymapNames Japans US KeymapNames VS Cancel BootPromptWindow Annuleren @@ -56,18 +56,15 @@ Swiss-French KeymapNames Zwitserfrans Slovene KeymapNames Sloveens Lithuanian KeymapNames Litouws French (NF Z71-300) KeymapNames Frans (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Dank u voor het proberen van %distroname%! We hopen dat het u bevalt!\n\nSelecteer een taal en een toetsenbordindeling. Beide instellingen kunnen ook later nog veranderd worden wanneer u %distroname% gebruikt.\n\nWilt u %distroname% nu installeren, or wilt u het eerst uitproberen? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Kazachs Language BootPromptWindow Taal -Welcome to %distroname%! BootPromptWindow Welkom bij %distroname%! Lithuanian (Standard) KeymapNames Litouws (Standaard) Belgian (comma) KeymapNames Belgisch (komma) Custom BootPromptWindow Aangepast Norwegian KeymapNames Noors Danish KeymapNames Deens Bulgarian (Phonetic) KeymapNames Bulgaars (Fonetisch) -Try out %distroname% BootPromptWindow %distroname% proberen Canadian-French KeymapNames Canadees-Frans Russian KeymapNames Russisch Hungarian KeymapNames Hongaars @@ -79,6 +76,5 @@ Czech (Mac) KeymapNames Tsjechisch (Mac) Brazilian (ABNT2) KeymapNames Braziliaans (ABNT2) Albanian KeymapNames Albanees Dutch KeymapNames Nederlands -Install %distroname% BootPromptWindow %distroname% installeren Friulian KeymapNames Friulisch Icelandic KeymapNames IJslands diff --git a/data/catalogs/apps/firstbootprompt/pl.catkeys b/data/catalogs/apps/firstbootprompt/pl.catkeys index d5a6399a06..f16d1ddd4a 100644 --- a/data/catalogs/apps/firstbootprompt/pl.catkeys +++ b/data/catalogs/apps/firstbootprompt/pl.catkeys @@ -1,4 +1,4 @@ -1 polish x-vnd.Haiku-FirstBootPrompt 3595268803 +1 polish x-vnd.Haiku-FirstBootPrompt 2131367349 Japanese KeymapNames Japoński US KeymapNames Amerykański Cancel BootPromptWindow Anuluj @@ -56,18 +56,15 @@ Swiss-French KeymapNames Francuski (szwajcarski) Slovene KeymapNames Słoweński Lithuanian KeymapNames Litewski French (NF Z71-300) KeymapNames Francuski (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Dziękujemy za wypróbowanie %distroname%! Mamy nadzieję, że Ci się spodoba!\n\nWybierz preferowany język oraz mapę klawiszy. Oba te ustawienia można zmienić później podczas działania %distroname%.\n\nChcesz teraz zainstalować %distroname%, czy najpierw wypróbować? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Kazachski Language BootPromptWindow Język -Welcome to %distroname%! BootPromptWindow Witaj w %distroname%! Lithuanian (Standard) KeymapNames Litewski (standardowy) Belgian (comma) KeymapNames Belgijski (comma) Custom BootPromptWindow Własne Norwegian KeymapNames Norweski Danish KeymapNames Duński Bulgarian (Phonetic) KeymapNames Bułgarski (fonetyczny) -Try out %distroname% BootPromptWindow Wypróbuj %distroname% Canadian-French KeymapNames Francuski (kanadyjski) Russian KeymapNames Rosyjski Hungarian KeymapNames Węgierski @@ -79,6 +76,5 @@ Czech (Mac) KeymapNames Czeski (Mac) Brazilian (ABNT2) KeymapNames Brazylijski (ABNT2) Albanian KeymapNames Albański Dutch KeymapNames Holenderski -Install %distroname% BootPromptWindow Instaluj %distroname% Friulian KeymapNames Friulski Icelandic KeymapNames Islandzki diff --git a/data/catalogs/apps/firstbootprompt/pt.catkeys b/data/catalogs/apps/firstbootprompt/pt.catkeys index 403b886dbb..b8b0cefdce 100644 --- a/data/catalogs/apps/firstbootprompt/pt.catkeys +++ b/data/catalogs/apps/firstbootprompt/pt.catkeys @@ -1,4 +1,4 @@ -1 portuguese x-vnd.Haiku-FirstBootPrompt 3595268803 +1 portuguese x-vnd.Haiku-FirstBootPrompt 2131367349 Japanese KeymapNames Japonês US KeymapNames EUA Cancel BootPromptWindow Cancelar @@ -56,18 +56,15 @@ Swiss-French KeymapNames Francês da Suíça Slovene KeymapNames Esloveno Lithuanian KeymapNames Lituano French (NF Z71-300) KeymapNames Francês (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Obrigado por experimentar o %distroname%! Esperamos que seja do seu agrado!\n\nPor favor, selecione a língua e a disposição de teclado que prefere. Ambas as configurações podem ser alteradas mais tarde ao usar o %distroname%.\n\nPretende instalar agora o %distroname%, ou experimentar primeiro? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Cazaque Language BootPromptWindow Idioma -Welcome to %distroname%! BootPromptWindow Bem-vindo(a) ao %distroname%! Lithuanian (Standard) KeymapNames Lituano (padrão) Belgian (comma) KeymapNames Belga (vírgula) Custom BootPromptWindow Personalizado Norwegian KeymapNames Norueguês Danish KeymapNames Dinamarquês Bulgarian (Phonetic) KeymapNames Búlgaro (fonético) -Try out %distroname% BootPromptWindow Experimentar %distroname% Canadian-French KeymapNames Francês do Canadá Russian KeymapNames Russo Hungarian KeymapNames Húngaro @@ -79,6 +76,5 @@ Czech (Mac) KeymapNames Checo (Mac) Brazilian (ABNT2) KeymapNames Brasileiro (ABNT2) Albanian KeymapNames Albanês Dutch KeymapNames Holandês -Install %distroname% BootPromptWindow Instalar %distroname% Friulian KeymapNames Friulano Icelandic KeymapNames Islandês diff --git a/data/catalogs/apps/firstbootprompt/pt_BR.catkeys b/data/catalogs/apps/firstbootprompt/pt_BR.catkeys index 4972d04a40..de4c506200 100644 --- a/data/catalogs/apps/firstbootprompt/pt_BR.catkeys +++ b/data/catalogs/apps/firstbootprompt/pt_BR.catkeys @@ -1,4 +1,4 @@ -1 portuguese (brazil) x-vnd.Haiku-FirstBootPrompt 3595268803 +1 portuguese (brazil) x-vnd.Haiku-FirstBootPrompt 1711107708 Japanese KeymapNames Japonês US KeymapNames US Cancel BootPromptWindow Cancelar @@ -7,10 +7,12 @@ Belarusian KeymapNames Bielorrusso Brazilian KeymapNames Brasileiro Dvorak KeymapNames Dvorak Polish KeymapNames Polonês +Try Haiku BootPromptWindow Experimente Haiku Latin-American KeymapNames Latino-americano Ukrainian KeymapNames Ucraniano Russian (Yawert) KeymapNames Russo (Yawert) United-Kingdom KeymapNames Reino Unido +Welcome! BootPromptWindow Bem-vindo! Quit Haiku System name Sair do Haiku Serbian (Cyrillic) KeymapNames Sérvio (Cirílico) Turkish (Type-F) KeymapNames Turco (Tipo F) @@ -21,7 +23,7 @@ Swedish KeymapNames Sueco Svorak KeymapNames Svorak German KeymapNames Alemão Swiss-German KeymapNames Suíço-alemão -Keymap BootPromptWindow Disposição de teclado +Keymap BootPromptWindow Mapa de teclado Spanish (Dvorak) KeymapNames Espanhol (Dvorak) US-International KeymapNames US-International Czech KeymapNames Checo @@ -43,6 +45,7 @@ Faeroese KeymapNames Feroês Polish (Typewriter) KeymapNames Polonês (máquina de escrever) French (Mac) KeymapNames Francês (Mac) Spanish KeymapNames Espanhol +Try it out BootPromptWindow Experimente Ukrainian (Mac) KeymapNames Ucraniano (Mac) Estonian KeymapNames Estoniano French (Bépo) KeymapNames Francês (Bépo) @@ -56,29 +59,27 @@ Swiss-French KeymapNames Francês da Suíça Slovene KeymapNames Esloveno Lithuanian KeymapNames Lituano French (NF Z71-300) KeymapNames Francês (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Obrigado por experimentar o %distroname%! Esperamos que goste!\n\nPor favor, selecione seu idioma e disposição de teclado de sua preferência. Ambas as configurações também podem ser alteradas depois durante a execução do %distroname%.\n\nDeseja instalar o %distroname% agora ou experimentar primeiro? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Cazaque Language BootPromptWindow Idioma -Welcome to %distroname%! BootPromptWindow Bem-vindo ao %distroname%! Lithuanian (Standard) KeymapNames Lituano (padrão) Belgian (comma) KeymapNames Belga (vírgula) Custom BootPromptWindow Personalizado Norwegian KeymapNames Norueguês Danish KeymapNames Dinamarquês Bulgarian (Phonetic) KeymapNames Búlgaro (fonético) -Try out %distroname% BootPromptWindow Experimente o %distroname% Canadian-French KeymapNames Francês do Canadá +Welcome to Haiku! BootPromptWindow Bem-vindo ao Haiku! Russian KeymapNames Russo Hungarian KeymapNames Húngaro Irish KeymapNames Irlandês Romanian KeymapNames Romeno Are you sure you want to close this window? This will restart your system! BootPromptWindow Tem certeza que deseja fechar esta janela? Isso irá reiniciar seu sistema! +Thank you for trying out Haiku! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running Haiku.\n\nDo you wish to install Haiku now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Obrigado por experimentar o Haiku! Esperamos que goste!\n\nSelecione seu idioma e mapa de teclado preferidos. Ambas as configurações também podem ser alteradas posteriormente durante a execução do Haiku\n\nDeseja instalar o Haiku agora, ou experimentar primeiro? Macedonian KeymapNames Macedónio Czech (Mac) KeymapNames Checo (Mac) Brazilian (ABNT2) KeymapNames Brasileiro (ABNT2) Albanian KeymapNames Albanês Dutch KeymapNames Holandês -Install %distroname% BootPromptWindow Instalar o %distroname% Friulian KeymapNames Friulano Icelandic KeymapNames Islandês diff --git a/data/catalogs/apps/firstbootprompt/ro.catkeys b/data/catalogs/apps/firstbootprompt/ro.catkeys index 2bb7554256..981bc7af16 100644 --- a/data/catalogs/apps/firstbootprompt/ro.catkeys +++ b/data/catalogs/apps/firstbootprompt/ro.catkeys @@ -1,4 +1,4 @@ -1 romanian x-vnd.Haiku-FirstBootPrompt 3595268803 +1 romanian x-vnd.Haiku-FirstBootPrompt 2131367349 Japanese KeymapNames Japoneză US KeymapNames US Cancel BootPromptWindow Anulează @@ -56,18 +56,15 @@ Swiss-French KeymapNames Franceză elvețiană Slovene KeymapNames Slovenă Lithuanian KeymapNames Lituaniană French (NF Z71-300) KeymapNames Franceză (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Vă mulțumim că ați încercat %distroname%! Sperăm să vă placă!\n\nSelectați limba și harta de taste preferate. Amândouă configurările pot fi modificate mai târziu în timpul rulării %distroname%.\n\nDoriți să instalați %distroname% acum, sau să îl încercați mai întâi? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Kazahă Language BootPromptWindow Limbă -Welcome to %distroname%! BootPromptWindow Bine ați venit la %distroname%! Lithuanian (Standard) KeymapNames Lituaniană (standard) Belgian (comma) KeymapNames Belgiană (virgulă) Custom BootPromptWindow Personalizat Norwegian KeymapNames Norvegiană Danish KeymapNames Daneză Bulgarian (Phonetic) KeymapNames Bulgară (fonetică) -Try out %distroname% BootPromptWindow Încercați %distroname% Canadian-French KeymapNames Franceză canadiană Russian KeymapNames Rusă Hungarian KeymapNames Ungară @@ -79,6 +76,5 @@ Czech (Mac) KeymapNames Cehă (Mac) Brazilian (ABNT2) KeymapNames Braziliană (ABNT2) Albanian KeymapNames Albaneză Dutch KeymapNames Olandeză -Install %distroname% BootPromptWindow Instalează %distroname% Friulian KeymapNames Friuliană Icelandic KeymapNames Islandeză diff --git a/data/catalogs/apps/firstbootprompt/ru.catkeys b/data/catalogs/apps/firstbootprompt/ru.catkeys index f2e5975ffb..b0fdac6105 100644 --- a/data/catalogs/apps/firstbootprompt/ru.catkeys +++ b/data/catalogs/apps/firstbootprompt/ru.catkeys @@ -1,4 +1,4 @@ -1 russian x-vnd.Haiku-FirstBootPrompt 3595268803 +1 russian x-vnd.Haiku-FirstBootPrompt 2131367349 Japanese KeymapNames Японский US KeymapNames США Cancel BootPromptWindow Отмена @@ -56,18 +56,15 @@ Swiss-French KeymapNames Швейцарско-Французский Slovene KeymapNames Словенская Lithuanian KeymapNames Литовская French (NF Z71-300) KeymapNames Французская (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Большое спасибо за то, что решили попробовать %distroname%!\nМы очень надеемся, что она вам понравится.\n\nПожалуйста выберите предпочитаемый язык и клавиатурную раскладку. Обе эти настройки можно будет легко сменить при работе в %distroname%.\n\nВы хотите установить %distroname% сейчас или сначала просто попробовать? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Казахская Language BootPromptWindow Язык -Welcome to %distroname%! BootPromptWindow Добро пожаловать в %distroname%! Lithuanian (Standard) KeymapNames Литовская (Стандартная) Belgian (comma) KeymapNames Бельгийская (comma) Custom BootPromptWindow Пользовательская Norwegian KeymapNames Норвежская Danish KeymapNames Датская Bulgarian (Phonetic) KeymapNames Болгарская (Фонетическая) -Try out %distroname% BootPromptWindow Попробовать %distroname% Canadian-French KeymapNames Канадо-Французская Russian KeymapNames Русская Hungarian KeymapNames Венгерская @@ -79,6 +76,5 @@ Czech (Mac) KeymapNames Чешская (Mac) Brazilian (ABNT2) KeymapNames Бразильская (ABNT2) Albanian KeymapNames Албанская Dutch KeymapNames Датская -Install %distroname% BootPromptWindow Установить %distroname% Friulian KeymapNames Фриульская Icelandic KeymapNames Исландская diff --git a/data/catalogs/apps/firstbootprompt/sv.catkeys b/data/catalogs/apps/firstbootprompt/sv.catkeys index 3ee63993fb..c9985737ba 100644 --- a/data/catalogs/apps/firstbootprompt/sv.catkeys +++ b/data/catalogs/apps/firstbootprompt/sv.catkeys @@ -1,4 +1,4 @@ -1 swedish x-vnd.Haiku-FirstBootPrompt 3595268803 +1 swedish x-vnd.Haiku-FirstBootPrompt 189132197 Japanese KeymapNames Japanska US KeymapNames US Cancel BootPromptWindow Avbryt @@ -7,10 +7,12 @@ Belarusian KeymapNames Vitryska Brazilian KeymapNames Brasilianska Dvorak KeymapNames Dvorak Polish KeymapNames Polska +Try Haiku BootPromptWindow Prova Haiku Latin-American KeymapNames Latinamerikansk Ukrainian KeymapNames Ukrainska Russian (Yawert) KeymapNames Ryska (Yawert) United-Kingdom KeymapNames Storbritannien +Welcome! BootPromptWindow Välkommen! Quit Haiku System name Avsluta Haiku Serbian (Cyrillic) KeymapNames Serbiska (Kyrilliska) Turkish (Type-F) KeymapNames Turkiska (Typ-F) @@ -43,8 +45,10 @@ Faeroese KeymapNames Färöisk Polish (Typewriter) KeymapNames Polska (skrivmaskin) French (Mac) KeymapNames Franska (Mac) Spanish KeymapNames Spanska +Try it out BootPromptWindow Testa Ukrainian (Mac) KeymapNames Ukrainska (Mac) Estonian KeymapNames Estländska +Install Haiku BootPromptWindow Installera Haiku French (Bépo) KeymapNames Franska (Bépo) Restart system BootPromptWindow Starta om systemet Serbian (Latin) KeymapNames Serbiska (Latin) @@ -56,29 +60,29 @@ Swiss-French KeymapNames Swiss-Franska Slovene KeymapNames Slovenska Lithuanian KeymapNames Litauiska French (NF Z71-300) KeymapNames Franska (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Tack för att du testade %distroname%! Vi hoppas att du gillar det!\n\nVälj önskat språk och tangentkarta. Båda inställningarna kan också ändras senare när du kör %distroname%.\n\nVill du installera %distroname% nu eller testa det först? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Kazakiska Language BootPromptWindow Språk -Welcome to %distroname%! BootPromptWindow Välkommen till %distroname%! Lithuanian (Standard) KeymapNames Litauiska (Standard) Belgian (comma) KeymapNames Belgisk (komma) Custom BootPromptWindow Anpassad Norwegian KeymapNames Norska Danish KeymapNames Danska Bulgarian (Phonetic) KeymapNames Bulgariska (fonetiska) -Try out %distroname% BootPromptWindow Testa %distroname% Canadian-French KeymapNames Kanadensisk-Franska +Welcome to Haiku! BootPromptWindow Välkommen till Haiku! Russian KeymapNames Ryska Hungarian KeymapNames Ungerska +Install BootPromptWindow Installera Irish KeymapNames Irländska Romanian KeymapNames Rumänska Are you sure you want to close this window? This will restart your system! BootPromptWindow Är du säker på att du vill stänga det här fönstret? Detta startar om ditt system! +Thank you for trying out Haiku! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running Haiku.\n\nDo you wish to install Haiku now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Tack för att du provade Haiku! Vi hoppas att du kommer att gilla det!\n\nVälj vilket språk du vill ha och tangentbordslayout. Båda inställningarna kan också ändras senare när Haiku körs.\n\nVill du installera Haiku nu, eller testa det först? Macedonian KeymapNames Makedonska Czech (Mac) KeymapNames Tjeckiska (Mac) Brazilian (ABNT2) KeymapNames Brasilianska (ABNT2) Albanian KeymapNames Albanska Dutch KeymapNames Holländska -Install %distroname% BootPromptWindow Installera %distroname% +Thank you for trying out our operating system! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later.\n\nDo you wish to install the operating system now, or try it out first? BootPromptWindow This notice appears when the build of Haiku that's currently being used is unofficial, as in, not distributed by Haiku itself.For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Tack för att du provade Haiku! Vi hoppas att du kommer att gilla det!\n\nVälj vilket språk du vill ha och tangentbordslayout. Båda inställningarna kan också ändras senare när Haiku körs.\n\nVill du installera Haiku nu, eller testa det först? Friulian KeymapNames Friuliska Icelandic KeymapNames Isländska diff --git a/data/catalogs/apps/firstbootprompt/tr.catkeys b/data/catalogs/apps/firstbootprompt/tr.catkeys index 345d24f07d..d24d55f10f 100644 --- a/data/catalogs/apps/firstbootprompt/tr.catkeys +++ b/data/catalogs/apps/firstbootprompt/tr.catkeys @@ -1,4 +1,4 @@ -1 turkish x-vnd.Haiku-FirstBootPrompt 3595268803 +1 turkish x-vnd.Haiku-FirstBootPrompt 189132197 Japanese KeymapNames Japonca US KeymapNames ABD Cancel BootPromptWindow İptal @@ -7,10 +7,12 @@ Belarusian KeymapNames Beyaz Rusça Brazilian KeymapNames Brezilya Dvorak KeymapNames Dvorak Polish KeymapNames Lehçe +Try Haiku BootPromptWindow Haiku'yu dene Latin-American KeymapNames Latin Amerika Ukrainian KeymapNames Ukraynaca Russian (Yawert) KeymapNames Rusça (Yawert) United-Kingdom KeymapNames Birleşik Krallık +Welcome! BootPromptWindow Hoş geldiniz! Quit Haiku System name Haiku'dan çık Serbian (Cyrillic) KeymapNames Sırpça (Kiril) Turkish (Type-F) KeymapNames Türkçe (F) @@ -43,8 +45,10 @@ Faeroese KeymapNames Faroece Polish (Typewriter) KeymapNames Lehçe (Daktilo) French (Mac) KeymapNames Fransızca (Mac) Spanish KeymapNames İspanyolca +Try it out BootPromptWindow Dene Ukrainian (Mac) KeymapNames Ukraynaca (Mac) Estonian KeymapNames Estonca +Install Haiku BootPromptWindow Haiku'yu yükle French (Bépo) KeymapNames Fransızca (Bépo) Restart system BootPromptWindow Sistemi yeniden başlat Serbian (Latin) KeymapNames Sırpça (Latin) @@ -56,29 +60,29 @@ Swiss-French KeymapNames İsviçre Fransızcası Slovene KeymapNames Slovence Lithuanian KeymapNames Litvanca French (NF Z71-300) KeymapNames Fransızca (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" %distroname%'yu seçtiğiniz için teşekkür ederiz. Bu sürümü sizlere ulaştırabilmek için çok çalıştık, umarız beğenirsiniz.\n\nSürdürmek için tercih ettiğiniz dili ve klavye dizilimini seçip aşağıdaki seçeneklerden birini kullanın:\n\n\n ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Kazak Language BootPromptWindow Dil -Welcome to %distroname%! BootPromptWindow %distroname%'ya hoş geldiniz! Lithuanian (Standard) KeymapNames Litvanca (Standart) Belgian (comma) KeymapNames Flamanca (virgül) Custom BootPromptWindow Özel Norwegian KeymapNames Norveççe Danish KeymapNames Danca Bulgarian (Phonetic) KeymapNames Bulgarca (Fonetik) -Try out %distroname% BootPromptWindow %distroname%'yu dene Canadian-French KeymapNames Kanada Fransızcası +Welcome to Haiku! BootPromptWindow Haiku'ya hoş geldiniz! Russian KeymapNames Rusça Hungarian KeymapNames Macarca +Install BootPromptWindow Yükle Irish KeymapNames İrlandaca Romanian KeymapNames Romence Are you sure you want to close this window? This will restart your system! BootPromptWindow Bu pencereyi kapatmak istediğinizden emin misiniz? Sisteminiz yeniden başlatılacaktır. +Thank you for trying out Haiku! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running Haiku.\n\nDo you wish to install Haiku now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Haiku'yu denediğiniz için teşekkür ederiz. Umarız hoşunuza gider.\n\nLütfen kullanmak istediğiniz dili ve klavye dizilimini seçin. Her iki ayar da daha sonra Haiku içinden değiştirilebilir.\n\nHaiku'yu yüklemek mi yoksa denemek mi istersiniz? Macedonian KeymapNames Makedonca Czech (Mac) KeymapNames Çekçe (Mac) Brazilian (ABNT2) KeymapNames Brezilya (ABNT2) Albanian KeymapNames Arnavutça Dutch KeymapNames Hollandaca -Install %distroname% BootPromptWindow %distroname%'yu yükle +Thank you for trying out our operating system! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later.\n\nDo you wish to install the operating system now, or try it out first? BootPromptWindow This notice appears when the build of Haiku that's currently being used is unofficial, as in, not distributed by Haiku itself.For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" İşletim sistemimizi denediğiniz için teşekkür ederiz. Umarız hoşunuza gider.\n\nLütfen kullanmak istediğiniz dili ve klavye dizilimini seçin. Her iki ayar da daha sonra değiştirilebilir.\n\nİşletim sistemini yüklemek mi yoksa denemek mi istersiniz? Friulian KeymapNames Furlanca Icelandic KeymapNames İzlandaca diff --git a/data/catalogs/apps/firstbootprompt/uk.catkeys b/data/catalogs/apps/firstbootprompt/uk.catkeys index 0857ef6fde..8175910689 100644 --- a/data/catalogs/apps/firstbootprompt/uk.catkeys +++ b/data/catalogs/apps/firstbootprompt/uk.catkeys @@ -1,4 +1,4 @@ -1 ukrainian x-vnd.Haiku-FirstBootPrompt 3595268803 +1 ukrainian x-vnd.Haiku-FirstBootPrompt 4160122014 Japanese KeymapNames Японська US KeymapNames US - Амер. Cancel BootPromptWindow Скасувати @@ -11,6 +11,7 @@ Latin-American KeymapNames Латино-американська Ukrainian KeymapNames Українська Russian (Yawert) KeymapNames Російська (фонетична) United-Kingdom KeymapNames Британська +Welcome! BootPromptWindow Вітаємо! Quit Haiku System name Вийти з Haiku Serbian (Cyrillic) KeymapNames Сербська (Кирилиця) Turkish (Type-F) KeymapNames Турецька (Type-F) @@ -56,21 +57,20 @@ Swiss-French KeymapNames Швейцарська-Фр. Slovene KeymapNames Словенська Lithuanian KeymapNames Литовська French (NF Z71-300) KeymapNames Французька (NF Z71-300) -Thank you for trying out %distroname%! We hope you'll like it!\n\nPlease select your preferred language and keymap. Both settings can also be changed later when running %distroname%.\n\nDo you wish to install %distroname% now, or try it out first? BootPromptWindow For other languages, a note could be added: \"Note: Localization of Haiku applications and other components is an on-going effort. You will frequently encounter untranslated strings, but if you like, you can join in the work at .\" Дякуємо, що вибрали %distroname%! Ми сподіваємося, що Вам сподобається!\n\nВиберіть мову за вподобанням і розкладку клавіатури. Обидва параметри можна змінити пізніше, після запуску %distroname%.\n\nВи хочете встановити %distroname% зараз або спочатку ознайомитися з системою? ISO-9995 KeymapNames ISO-9995 Kazakh KeymapNames Казахська Language BootPromptWindow Мова -Welcome to %distroname%! BootPromptWindow Вас вітає %distroname%! Lithuanian (Standard) KeymapNames Литовська (Standard) Belgian (comma) KeymapNames Бельгійська (comma) Custom BootPromptWindow Вибір користувача Norwegian KeymapNames Норвезька Danish KeymapNames Датська Bulgarian (Phonetic) KeymapNames Болгарська (фонетична) -Try out %distroname% BootPromptWindow Ознайомитися з %distroname% Canadian-French KeymapNames Канадська-Фр. +Welcome to Haiku! BootPromptWindow Запрошуємо в Haiku! Russian KeymapNames Російська Hungarian KeymapNames Угорська +Install BootPromptWindow Інсталяція Irish KeymapNames Ірландська Romanian KeymapNames Румунська Are you sure you want to close this window? This will restart your system! BootPromptWindow Ви впевнені, що хочете закрити це вікно? Це призведе до перезапуску Вашої системи! @@ -79,6 +79,5 @@ Czech (Mac) KeymapNames Чеська (Mac) Brazilian (ABNT2) KeymapNames Бразильська (Mac) Albanian KeymapNames Албанська Dutch KeymapNames Датська -Install %distroname% BootPromptWindow Встановити %distroname% Friulian KeymapNames Фріуліанська Icelandic KeymapNames Ісландська diff --git a/data/catalogs/apps/haikudepot/ca.catkeys b/data/catalogs/apps/haikudepot/ca.catkeys index 7d6911124e..4eda5396b1 100644 --- a/data/catalogs/apps/haikudepot/ca.catkeys +++ b/data/catalogs/apps/haikudepot/ca.catkeys @@ -1,14 +1,14 @@ -1 catalan; valencian x-vnd.Haiku-HaikuDepot 3544756144 +1 catalan; valencian x-vnd.Haiku-HaikuDepot 761125591 Repository update error LocalRepositoryUpdateProcess Error d'actualització del repositori Network error ServerHelper Error de xarxa An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Hi ha hagut un error en actualitzar el repositori: %error% User Created UserLoginWindow Usuari creat Check for updates… MainWindow Comprova si hi ha actualitzacions... -Uninstall PackageManager Desinstal·la Uninstalled PackageListView Desinstal·lat It was not possible to create the new user. UserLoginWindow No s'ha pogut crear l'usuari nou. Available packages MainWindow Paquets disponibles Create account UserLoginWindow Creeu un compte +Install %PackageTitle% PackageManager Instal·la %PackageTitle% OK App D'acord The response to the captcha was incorrect. ServerHelper La resposta al CAPTCHA ha estat incorrecta. Develop packages MainWindow Paquets de desenvolupament @@ -17,7 +17,6 @@ Starting the package daemon failed:\n\n%Error% App Ha fallat iniciar el dimoni You have successfully authenticated as user %Nickname%. UserLoginWindow Us heu autenticat correctament com a %Nickname%. PackageInfoView No user ratings available. PackageInfoView No hi ha puntuacions dels usuaris disponibles. -Downloading package '%name%' WorkStatusView Es baixa el paquet %name%. It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow No s'ha pogut extreure la informació de CAPTCHA necessària de les dades retornades del servidor. A network transport error has arisen communicating with the server system: %s ServerHelper Hi ha hagut un error de transport de xarxa en comunicar-se amb el sistema del servidor: %s Rating PackageListView Puntuació @@ -29,7 +28,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Actiu Login or Create account MainWindow Entreu o creeu-ne un compte PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 paquet per baixar}other{# paquets per baixar}} Ratings PackageInfoView Puntuacions Switch account… MainWindow Canvia de compte... Preferred language: UserLoginWindow Llengua preferida: @@ -46,8 +44,6 @@ Category FilterView Categoria User rating RatePackageWindow Puntuació de l'usuari Installed packages MainWindow Paquets instal·lats A requested object or an object involved in the request was not found on the server. ServerHelper No s'ha trobat al servidor un objecte sol·licitat o un objecte implicat en la sol·licitud. -Fatal error PackageManager Error fatal -Package action failed PackageInfoView Ha fallat l'acció del paquet. No changelog available. PackageInfoView No hi ha cap registre de canvis disponible. Error App Error There was a puzzling response from the web service. UserLoginWindow Hi ha hagut una resposta desconcertant del servei web. @@ -79,7 +75,6 @@ Stability RatePackageWindow Estabilitat Send RatePackageWindow Envia Start package daemon App Inicia el dimoni de paquets The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow Cal repetir la contrasenya per reduir la possibilitat d’introduir-la incorrectament. -The package action could not be scheduled: %Error% PackageInfoView No s'ha pogut programar l'acció del paquet: %Error% Cancel SettingsWindow Cancel·la Cancel RatePackageWindow Cancel·la Inactive PackageListView Inactiu @@ -89,7 +84,6 @@ There are problems in the supplied data: UserLoginWindow Hi ha problemes en les OK MainWindow D'acord {0, plural, one{# item} other{# items}} PackageListView {0, plural, one{# element} other{# elements}} Usage conditions download problem UserLoginWindow Problema de descàrrega de les condicions d’ús -OK PackageInfoView D'acord Downloading: PackageInfoView Es baixa: Quit MainWindow Surt Success UserLoginWindow Correcte @@ -118,7 +112,6 @@ This rating is visible to other users RatePackageWindow Aquesta puntuació és While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow En actualitzar les dades del paquet, s’ha produït un problema que pot fer que les dades quedin obsoletes o que faltin a la visualització de l’aplicació. És possible que es puguin obtenir detalls addicionals sobre aquest problema als registres de l'aplicació.\nHi ha informació sobre com visualitzar els registres a la secció del Dipòsit del Haiku de la Guia de l’usuari del Haiku. View agreed usage conditions… MainWindow Consulteu les condicions d’ús acordades... Cancel MainWindow Cancel·la -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(1 més per baixar)}other{(# més per baixar)}} Refresh repositories MainWindow Actualitza els repositoris Continue App Continua A password is required. UserLoginWindow Cal una contrasenya. @@ -131,6 +124,7 @@ Status PackageListView Estat The password has been incorrectly repeated. UserLoginWindow La contrasenya no s'ha repetit bé. Network transport error ServerHelper Error de transport de xarxa The password previously supplied for the user [%Nickname%] is not currently valid. The user will be logged-out of this application and you should login again with your updated password. MainWindow La contrasenya proporcionada prèviament per a l'usuari [%Nickname%] actualment no és vàlida. L'usuari quedarà fora d'aquesta aplicació i haureu de tornar a iniciar la sessió amb la contrasenya actualitzada. +Uninstall %PackageTitle% PackageManager Desinstal·la %PackageTitle% Update RatePackageWindow Actualitza OK ServerHelper D'acord Language UserLoginWindow Llengua @@ -145,8 +139,8 @@ Source packages MainWindow Paquets font - no package size - Problem with working files App Problema amb els fitxers de treball Server error ServerHelper Error de servidor -Rate package RatePackageWindow Puntueu el paquet Try again App Torneu-ho a provar +Rate package RatePackageWindow Puntueu el paquet Unknown PackageListView Desconegut I agree to the usage conditions UserLoginWindow Estic d’acord en les condicions d’ús. Log in UserLoginWindow Entreu @@ -154,8 +148,8 @@ Sending anonymous usage data MainWindow S'envien dades d'ús anònimes Logged in as %User% MainWindow Heu entrat com a %User%. Email address: UserLoginWindow Adreça electrònica: Screenshot ScreenshotWindow Captura de pantalla -A reboot is necessary to complete the installation process. PackageManager Cal reiniciar per completar el procés d’instal·lació. HaikuDepot System name Dipòsit del Haiku +A reboot is necessary to complete the installation process. PackageManager Cal reiniciar per completar el procés d’instal·lació. Yes MainWindow Sí {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{Tinc com a mínim un any.}other{Tinc # anys o més.}} View latest usage conditions… MainWindow Consulteu les darreres condicions d'ús... @@ -172,7 +166,6 @@ Fetching remote repository data LocalRepositoryUpdateProcess S'obtenen les dade Description PackageListView Descripció Open %DeskbarLink% PackageManager Obre %DeskbarLink% User creation error UserLoginWindow Error de creació d'usuari -Install PackageManager Instal·la Input validation UserLoginWindow Validació de l'entrada Log in… MainWindow Entrada... You need to be logged into an account before you can rate packages. MainWindow Per poder valorar els paquets, heu d’iniciar sessió en un compte. diff --git a/data/catalogs/apps/haikudepot/cs.catkeys b/data/catalogs/apps/haikudepot/cs.catkeys index a677f8cfbd..1fb974bf17 100644 --- a/data/catalogs/apps/haikudepot/cs.catkeys +++ b/data/catalogs/apps/haikudepot/cs.catkeys @@ -1,14 +1,14 @@ -1 czech x-vnd.Haiku-HaikuDepot 3544756144 +1 czech x-vnd.Haiku-HaikuDepot 761125591 Repository update error LocalRepositoryUpdateProcess Chyba aktualizace repozitářů Network error ServerHelper Chyba sítě An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Nastala chyba při aktualizaci repozitáře: %error% User Created UserLoginWindow Vytvořen uživatel Check for updates… MainWindow Zkontrolovat aktualizace… -Uninstall PackageManager Odinstalovat Uninstalled PackageListView Odinstalován It was not possible to create the new user. UserLoginWindow Nepodařilo se vytvořit nového uživatele. Available packages MainWindow Dostupné balíčky Create account UserLoginWindow Vytvořit účet +Install %PackageTitle% PackageManager Nainstalovat %PackageTitle% OK App OK The response to the captcha was incorrect. ServerHelper Odpověď na captchu byla chybná. Develop packages MainWindow Vývojové balíčky @@ -17,7 +17,6 @@ Starting the package daemon failed:\n\n%Error% App Spuštění služby balíčk You have successfully authenticated as user %Nickname%. UserLoginWindow Úspěšně jste se přihlásil jako uživatel %Nickname%. PackageInfoView No user ratings available. PackageInfoView Žádná uživatelská hodnocení. -Downloading package '%name%' WorkStatusView Stahuji balíček '%name%' It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Nebylo možné rozbalit nezbytné informace captchy z dat odeslaných zpět ze serveru. A network transport error has arisen communicating with the server system: %s ServerHelper Při komunikaci se serverem došlo k chybě přenosu: %s Rating PackageListView Hodnocení @@ -29,7 +28,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Aktivní Login or Create account MainWindow Přihlásit se nebo vytvořit účet PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 balíček ke stažení},few{# balíčky ke stažení},other{# balíčků ke stažení}} Ratings PackageInfoView Hodnocení Switch account… MainWindow Přepnout účet… Preferred language: UserLoginWindow Preferovaný jazyk: @@ -46,8 +44,6 @@ Category FilterView Kategorie User rating RatePackageWindow Uživatelské hodnocení Installed packages MainWindow Nainstalované balíčky A requested object or an object involved in the request was not found on the server. ServerHelper Pořadovaný objekt nebo objekt součástí požadavku nebyl na serveru nalezen. -Fatal error PackageManager Fatální chyba -Package action failed PackageInfoView Akce balíčku selhala No changelog available. PackageInfoView Seznam změn není k dispozici. Error App Chyba There was a puzzling response from the web service. UserLoginWindow Přišla nejasná odpověd z webové služby. @@ -79,7 +75,6 @@ Stability RatePackageWindow Stabilita Send RatePackageWindow Poslat Start package daemon App Spustit službu balíčků The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow Heslo je třeba zadat znovu, aby se snížila pravděpodobnost chybného zadání hesla. -The package action could not be scheduled: %Error% PackageInfoView Operaci s balíčkem nebylo možné naplánovat: %Error% Cancel SettingsWindow Zrušit Cancel RatePackageWindow Zrušit Inactive PackageListView Neaktivní @@ -89,7 +84,6 @@ There are problems in the supplied data: UserLoginWindow Jsou problémy s posky OK MainWindow OK {0, plural, one{# item} other{# items}} PackageListView {0, plural, one{# položka} few{# položky} other{# položek}} Usage conditions download problem UserLoginWindow Problém se stažením podmínek použití -OK PackageInfoView OK Downloading: PackageInfoView Stahování: Quit MainWindow Ukončit Success UserLoginWindow Úspěch @@ -118,7 +112,6 @@ This rating is visible to other users RatePackageWindow Toto hodnocení je vidi While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow Nastal problém během aktualizace dat balíčku, což může způsobit, že data budou stará, nebo nebudou vůbec. Více informací lze najít v protokolech aplikace.\nJak zobrazit protokoly aplikace najdete v sekci HaikuDepot uživatelské příručky Haiku. View agreed usage conditions… MainWindow Zobrazit odsouhlasené podmínky užívání… Cancel MainWindow Zrušit -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(už jen 1 ke stažení)}other{(ještě # ke stažení)}} Refresh repositories MainWindow Obnovit repozitáře Continue App Pokračovat A password is required. UserLoginWindow Heslo je vyžadováno. @@ -131,6 +124,7 @@ Status PackageListView Stav The password has been incorrectly repeated. UserLoginWindow Heslo nesouhlasí s předchozím zadaným. Network transport error ServerHelper Chyba při přenosu v síti The password previously supplied for the user [%Nickname%] is not currently valid. The user will be logged-out of this application and you should login again with your updated password. MainWindow Heslo zadané pro uživatele [%Nickname%] už není platné. Uživatel bude odhlášen. Přihlašte se znova s novým heslem. +Uninstall %PackageTitle% PackageManager Odinstalovat %PackageTitle% Update RatePackageWindow Aktualizovat OK ServerHelper OK Language UserLoginWindow Jazyk @@ -145,8 +139,8 @@ Source packages MainWindow Zdrojové balíčky - no package size - Problem with working files App Problém s pracovními soubory Server error ServerHelper Chyba na serveru -Rate package RatePackageWindow Hodnocení balíčku Try again App Zkusit znovu +Rate package RatePackageWindow Hodnocení balíčku Unknown PackageListView Neznámý I agree to the usage conditions UserLoginWindow Souhlasím s podmínkami užívání Log in UserLoginWindow Přihlásit @@ -154,8 +148,8 @@ Sending anonymous usage data MainWindow Odesílám anonymní data o užívání Logged in as %User% MainWindow Přihlášen/a jako %User% Email address: UserLoginWindow E-mailová adresa: Screenshot ScreenshotWindow Snímek obrazovky -A reboot is necessary to complete the installation process. PackageManager K dokonční instalace je třeba restart. HaikuDepot System name HaikuDepot +A reboot is necessary to complete the installation process. PackageManager K dokonční instalace je třeba restart. Yes MainWindow Ano {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{Je mi alespoň jeden rok}few{Je mi alespoň # roky}other{Je mi alespoň # let}} View latest usage conditions… MainWindow Zobrazit poslední podmínky užívání… @@ -172,7 +166,6 @@ Fetching remote repository data LocalRepositoryUpdateProcess Stahuji data vzdá Description PackageListView Popis Open %DeskbarLink% PackageManager Otevřít %DeskbarLink% User creation error UserLoginWindow Chyba vytvoření uživatele -Install PackageManager Instalovat Input validation UserLoginWindow Ověření vstupu Log in… MainWindow Přihlásit… You need to be logged into an account before you can rate packages. MainWindow K hodnocení balíčků, musíte být přihlášeni k účtu. diff --git a/data/catalogs/apps/haikudepot/da.catkeys b/data/catalogs/apps/haikudepot/da.catkeys index 427247be81..ef38e10c9c 100644 --- a/data/catalogs/apps/haikudepot/da.catkeys +++ b/data/catalogs/apps/haikudepot/da.catkeys @@ -1,14 +1,14 @@ -1 danish x-vnd.Haiku-HaikuDepot 3544756144 +1 danish x-vnd.Haiku-HaikuDepot 761125591 Repository update error LocalRepositoryUpdateProcess Fejl ved opdatering af softwarekilde Network error ServerHelper Fejl ved netværk An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Der opstod en fejl under opdatering af softwarekilden: %error% User Created UserLoginWindow Bruger oprettet Check for updates… MainWindow Søg efter opdateringer… -Uninstall PackageManager Afinstaller Uninstalled PackageListView Afinstalleret It was not possible to create the new user. UserLoginWindow Det var ikke muligt at oprette den nye bruger. Available packages MainWindow Tilgængelige pakker Create account UserLoginWindow Opret konto +Install %PackageTitle% PackageManager Installer %PackageTitle% OK App OK The response to the captcha was incorrect. ServerHelper Svaret på captchaen var forkert. Develop packages MainWindow Udviklingspakker @@ -17,8 +17,7 @@ Starting the package daemon failed:\n\n%Error% App Start af pakkedæmon mislykk You have successfully authenticated as user %Nickname%. UserLoginWindow Det lykkedes at autentificere dig som brugeren %Nickname%. PackageInfoView No user ratings available. PackageInfoView Ingen tilgængelige brugerbedømmelser. -Downloading package '%name%' WorkStatusView Downloader pakken '%name%' -It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Det var ikke muligt at udtrække den nødvendige captcha-information fra den data som serveren sendte tilbage. +It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Det var ikke muligt at udtrække den nødvendige information om captcha fra den data som serveren sendte tilbage. A network transport error has arisen communicating with the server system: %s ServerHelper Der opstod en fejl ved netværkstransport med kommunikation med serversystemet: %s Rating PackageListView Bedømmelse Synchronizing icons ServerIconExportUpdateProcess Synkroniserer ikoner @@ -29,7 +28,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Aktiv Login or Create account MainWindow Log ind eller opret konto PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 pakke til download}other{# pakker til download}} Ratings PackageInfoView Bedømmelser Switch account… MainWindow Skift konto… Preferred language: UserLoginWindow Foretrukne sprog: @@ -46,8 +44,6 @@ Category FilterView Kategori User rating RatePackageWindow Brugerbedømmelse Installed packages MainWindow Installerede pakker A requested object or an object involved in the request was not found on the server. ServerHelper Et anmodet objekt eller et objekt som er involveret i anmodningen blev ikke fundet på serveren. -Fatal error PackageManager Fatal fejl -Package action failed PackageInfoView Pakkehandling mislykkedes No changelog available. PackageInfoView Ingen ændringslog tilgængelig. Error App Fejl There was a puzzling response from the web service. UserLoginWindow Der var et gådesvar fra webtjenesten. @@ -79,7 +75,6 @@ Stability RatePackageWindow Stabilitet Send RatePackageWindow Send Start package daemon App Start pakkedæmon The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow Adgangskoden skal gentages for at reducere sandsynligheden for at indtaste adgangskoden forkert. -The package action could not be scheduled: %Error% PackageInfoView Pakkehandlingen kunne ikke planlægges: %Error% Cancel SettingsWindow Annuller Cancel RatePackageWindow Annuller Inactive PackageListView Inaktiv @@ -89,7 +84,6 @@ There are problems in the supplied data: UserLoginWindow Er der problemer med d OK MainWindow OK {0, plural, one{# item} other{# items}} PackageListView {0, plural, one{# element} other{# elementer}} Usage conditions download problem UserLoginWindow Problem ved download af anvendelsesbetingelser -OK PackageInfoView OK Downloading: PackageInfoView Downloader: Quit MainWindow Afslut Success UserLoginWindow Lykkedes @@ -118,7 +112,6 @@ This rating is visible to other users RatePackageWindow Bedømmelsen er synlig While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow Under opdatering af pakkedata er der opstået et problem som kan få data til at være forældet eller mangle i programmernes visning. Yderligere detaljer om problemet kan måske findes i programloggene.\nInformation om hvordan loggene vises er tilgængelige i Haikudepot-afsnittet i Haikus brugervejledning. View agreed usage conditions… MainWindow Vis aftalte anvendelsesbetingelser… Cancel MainWindow Annuller -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(1 mere at downloade)}other{(# mere at downloade)}} Refresh repositories MainWindow Genopfrisk softwarekilder Continue App Fortsæt A password is required. UserLoginWindow Der kræves en adgangskode. @@ -131,6 +124,7 @@ Status PackageListView Status The password has been incorrectly repeated. UserLoginWindow Adgangskoden blev gentaget forkert. Network transport error ServerHelper Fejl ved netværkstransport The password previously supplied for the user [%Nickname%] is not currently valid. The user will be logged-out of this application and you should login again with your updated password. MainWindow Den adgangskode som tidligere blev angivet til brugeren [%Nickname%] er ikke gyldig på nuværende tidspunkt. Brugeren vil blive logge ud af programmet og du bør logge ind igen med din opdaterede adgangskode. +Uninstall %PackageTitle% PackageManager Afinstaller %PackageTitle% Update RatePackageWindow Opdater OK ServerHelper OK Language UserLoginWindow Sprog @@ -145,8 +139,8 @@ Source packages MainWindow Kildepakker - no package size - Problem with working files App Problem med arbejdsfiler Server error ServerHelper Fejl ved server -Rate package RatePackageWindow Bedøm pakke Try again App Prøv igen +Rate package RatePackageWindow Bedøm pakke Unknown PackageListView Ukendt I agree to the usage conditions UserLoginWindow Jeg accepterer anvendelsesbetingelserne Log in UserLoginWindow Log ind @@ -154,8 +148,8 @@ Sending anonymous usage data MainWindow Sender anonym anvendelsesdata Logged in as %User% MainWindow Logger ind som %User% Email address: UserLoginWindow E-mailadresse: Screenshot ScreenshotWindow Skærmbillede -A reboot is necessary to complete the installation process. PackageManager Der kræves en genstart for at fuldføre installationsprocessen. HaikuDepot System name Haikudepot +A reboot is necessary to complete the installation process. PackageManager Der kræves en genstart for at fuldføre installationsprocessen. Yes MainWindow Ja {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{Jeg er mindst et år gammel}other{Jeg er # år eller ældre}} View latest usage conditions… MainWindow Vis seneste anvendelsesbetingelser… @@ -172,7 +166,6 @@ Fetching remote repository data LocalRepositoryUpdateProcess Henter data for fj Description PackageListView Beskrivelse Open %DeskbarLink% PackageManager Åbn %DeskbarLink% User creation error UserLoginWindow Fejl i oprettelse af bruger -Install PackageManager Installer Input validation UserLoginWindow Inputvalidering Log in… MainWindow Log ind… You need to be logged into an account before you can rate packages. MainWindow Du skal logge ind på en konto inden du kan bedømme pakker. diff --git a/data/catalogs/apps/haikudepot/de.catkeys b/data/catalogs/apps/haikudepot/de.catkeys index ffcb87dfd1..5e56d58061 100644 --- a/data/catalogs/apps/haikudepot/de.catkeys +++ b/data/catalogs/apps/haikudepot/de.catkeys @@ -1,14 +1,14 @@ -1 german x-vnd.Haiku-HaikuDepot 3544756144 +1 german x-vnd.Haiku-HaikuDepot 761125591 Repository update error LocalRepositoryUpdateProcess Fehler bei Paketquellenaktualisierung Network error ServerHelper Netzwerk Fehler An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Fehler bei der Aktualisierung der Paketquelle: %error% User Created UserLoginWindow Benutzerkonto erstellt Check for updates… MainWindow Aktualisierungen suchen… -Uninstall PackageManager Deinstallieren Uninstalled PackageListView Deinstalliert It was not possible to create the new user. UserLoginWindow Das neue Benutzerkonto konntenicht angelegt werden. Available packages MainWindow Verfügbare Pakete Create account UserLoginWindow Benutzerkonto erstellen +Install %PackageTitle% PackageManager %PackageTitle% installieren OK App OK The response to the captcha was incorrect. ServerHelper Das Captcha wurde nicht richtig beantwortet. Develop packages MainWindow Entwicklungs-Pakete @@ -17,7 +17,6 @@ Starting the package daemon failed:\n\n%Error% App Der Paket-Daemon konnte nich You have successfully authenticated as user %Nickname%. UserLoginWindow Der Benutzer %Nickname% wurde erfolgreich angemeldet. PackageInfoView No user ratings available. PackageInfoView Keine Bewertungen vorhanden. -Downloading package '%name%' WorkStatusView Paket '%name%' wird heruntergeladen It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Aus den vom Server geschickten Daten konnten nicht die benötigten Captcha Infos gewonnen werden. A network transport error has arisen communicating with the server system: %s ServerHelper Bei der Kommunikation mit dem Server ist ein Fehler im Netzwerk-Transport aufgetreten: %s Rating PackageListView Bewertung @@ -29,7 +28,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Aktiviert Login or Create account MainWindow Anmelden oder Benutzerkonto anlegen PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 Paket zum Herunterladen}other{# Pakete zum Herunterladen}} Ratings PackageInfoView Bewertungen Switch account… MainWindow Konto wechseln… Preferred language: UserLoginWindow Bevorzugte Sprache: @@ -46,8 +44,6 @@ Category FilterView Kategorie User rating RatePackageWindow Bewertung Installed packages MainWindow Installierte Pakete A requested object or an object involved in the request was not found on the server. ServerHelper Ein angefordertes Objekt bzw. ein bei der Anfrage beteiligtes Objekt, wurde auf dem Server nicht gefunden. -Fatal error PackageManager Schwerwiegender Fehler -Package action failed PackageInfoView Paket-Aktion fehlgeschlagen No changelog available. PackageInfoView Änderungsprotokoll nicht vorhanden. Error App Fehler There was a puzzling response from the web service. UserLoginWindow Der Web-Dienst hat mit einer wirren Meldung geantwortet. @@ -79,7 +75,6 @@ Stability RatePackageWindow Stabilität Send RatePackageWindow Senden Start package daemon App Paket-Daemon starten The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow Das Kennwort muss wiederholt werden, um die Wahrscheinlichket einer Falscheingabe zu verringern. -The package action could not be scheduled: %Error% PackageInfoView Die Aktion konnte nicht auf das Paket angewandt werden: %Error% Cancel SettingsWindow Abbrechen Cancel RatePackageWindow Abbrechen Inactive PackageListView Deaktiviert @@ -89,7 +84,6 @@ There are problems in the supplied data: UserLoginWindow Es gibt Probleme mit d OK MainWindow OK {0, plural, one{# item} other{# items}} PackageListView {0, plural, one{# Objekt} other{# Objekte}} Usage conditions download problem UserLoginWindow Problem beim Herunterladen der Nutzungsbedingungen -OK PackageInfoView OK Downloading: PackageInfoView Aktueller Download: Quit MainWindow Beenden Success UserLoginWindow Erfolg @@ -118,7 +112,6 @@ This rating is visible to other users RatePackageWindow Diese Bewertung is für While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow Bei der Aktualisierung von Paketdaten trat ein Problem auf. Dadurch könnten die angezeigten Daten der Anwendung veraltet sein oder fehlen. Weitere Details zu diesem Problem können dem Anwendungs-Log entnommen werden.\nWie diese Logs angezeigt werden können, steht im Kapitel 'HaikuDepot ' des Haiku User Guide. View agreed usage conditions… MainWindow Zugestimmte Nutzungsbedingungen lesen… Cancel MainWindow Abbrechen -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(1 weiterer Download)}other{(# weitere Downloads)}} Refresh repositories MainWindow Paketquellen aktualisieren Continue App Weiter A password is required. UserLoginWindow Es wird ein Kennwort benötigt. @@ -131,6 +124,7 @@ Status PackageListView Status The password has been incorrectly repeated. UserLoginWindow Das Kennwort wurde falsch wiederholt. Network transport error ServerHelper Netzwerk-Transport Fehler The password previously supplied for the user [%Nickname%] is not currently valid. The user will be logged-out of this application and you should login again with your updated password. MainWindow Das für den Benutzer [%Nickname%] hinterlegte Kennwort ist ungültig. Der Benutzer wird daher von dieser Anwendung abgemeldet. Bitte erneut mit dem aktualisierten Kennwort anmelden. +Uninstall %PackageTitle% PackageManager %PackageTitle% deinstallieren Update RatePackageWindow Aktualisieren OK ServerHelper OK Language UserLoginWindow Sprache @@ -145,8 +139,8 @@ Source packages MainWindow Quellcode-Pakete - no package size - Problem with working files App Problem mit Arbeitsdateien Server error ServerHelper Server Fehler -Rate package RatePackageWindow Paket bewerten Try again App Nochmal versuchen +Rate package RatePackageWindow Paket bewerten Unknown PackageListView Unbekannt I agree to the usage conditions UserLoginWindow I stimme den Nutzungsbedingungen zu Log in UserLoginWindow Anmelden @@ -154,8 +148,8 @@ Sending anonymous usage data MainWindow Sende anonyme Nutzungsdaten Logged in as %User% MainWindow Angemeldet als %User% Email address: UserLoginWindow E-Mail-Adresse: Screenshot ScreenshotWindow Bildschirmfoto -A reboot is necessary to complete the installation process. PackageManager Um die Installation abzuschließen, muss Haiku neu gestartet werden. HaikuDepot System name HaikuDepot +A reboot is necessary to complete the installation process. PackageManager Um die Installation abzuschließen, muss Haiku neu gestartet werden. Yes MainWindow Ja {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{Ich bin mindestens 1 Jahr alt}other{Ich bin # Jahre oder älter}} View latest usage conditions… MainWindow Aktuelle Nutzungsbedingungen lesen… @@ -172,7 +166,6 @@ Fetching remote repository data LocalRepositoryUpdateProcess Abrufen von Paketq Description PackageListView Beschreibung Open %DeskbarLink% PackageManager %DeskbarLink% öffnen User creation error UserLoginWindow Fehler beim Erstellen des Benutzerkontos -Install PackageManager Installieren Input validation UserLoginWindow Eingabeprüfung Log in… MainWindow Anmelden… You need to be logged into an account before you can rate packages. MainWindow Nur angemeldete Benutzer können Pakete bewerten. diff --git a/data/catalogs/apps/haikudepot/el.catkeys b/data/catalogs/apps/haikudepot/el.catkeys index 4759011c1a..ce180f54dc 100644 --- a/data/catalogs/apps/haikudepot/el.catkeys +++ b/data/catalogs/apps/haikudepot/el.catkeys @@ -1,5 +1,6 @@ -1 greek, modern (1453-) x-vnd.Haiku-HaikuDepot 401821302 +1 greek, modern (1453-) x-vnd.Haiku-HaikuDepot 761125591 Repository update error LocalRepositoryUpdateProcess Σφάλμα ενημέρωσης αποθετηρίων +Network error ServerHelper Σφάλμα δικτύου An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Προέκυψε ένα σφάλμα κατά την ανανέωση του αποθετηρίου: %error% User Created UserLoginWindow Χρήστης Δημιουργήθηκε Check for updates… MainWindow Έλεγχος για ενημερώσεις… @@ -7,6 +8,7 @@ Uninstalled PackageListView Έγινε απεγκατάσταση It was not possible to create the new user. UserLoginWindow Δεν ήταν δυνατή η δημιουργία του νέου χρήστη. Available packages MainWindow Διαθέσιμα πακέτα Create account UserLoginWindow Δημιουργία λογαριασμού +Install %PackageTitle% PackageManager Εγκατάσταση του πακέτου %PackageTitle% OK App Εντάξει The response to the captcha was incorrect. ServerHelper Η απάντηση στο captcha είναι λανθασμένη. Develop packages MainWindow Ανάπτυξη πακέτων @@ -15,17 +17,17 @@ Starting the package daemon failed:\n\n%Error% App Η έναρξη του πρ You have successfully authenticated as user %Nickname%. UserLoginWindow Έχετε ταυτοποιηθεί επιτυχώς ως ο χρήστης %Nickname%. PackageInfoView <καμία πληροφορία> No user ratings available. PackageInfoView Δεν υπάρχουν διαθέσιμες αξιολογήσεις χρήστη. -Downloading package '%name%' WorkStatusView Γίνεται λήψη του πακέτου '%name%' It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Δεν ήταν δυνατή η εξαγωγή απαραίτητων δεδομένων captcha από τα δεδομένα που λήφθηκαν από τον διακομιστή. +A network transport error has arisen communicating with the server system: %s ServerHelper Ένα δικτυακό σφάλμα μεταφοράς προέκυψε κατά την επικοινωνία με τον εξυπηρετητή: %s Rating PackageListView Αξιολόγηση Synchronizing icons ServerIconExportUpdateProcess Γίνεται συγχρονισμός εικονιδίων Show MainWindow Εμφάνιση An error occurred while obtaining the package list: %message% LocalPkgDataLoadProcess Προέκυψε σφάλμα κατά την λήψη λίστας πακέτων: %message% +Settings… MainWindow Ρυθμίσεις... This application writes and reads some working files on your computer in order to function. It appears that there are problems writing a test file at [%TestFilePath%]. Check that there are no issues with your local disk or permissions that might prevent this application from writing files into that directory location. You may choose to acknowledge this problem and continue, but some functionality may be disabled. App Η εφαρμογή θα αναγνώσει και θα δημιουργήσει κάποια αρχεία στον υπολογιστή σας, έτσι ώστε να λειτουργήσει σωστά. Φαίνεται πως προέκυψαν προβλήματα κατά την εγγραφή ενός δοκιμαστικού αρχείου στην διαδρομή [%TestFilePath%]. Ελέγξτε ότι δεν υπάρχουν προβλήματα με τον δίσκο σας ή με τις άδειες, τα οποία θα μπορούσαν να αποτρέψουν την εφαρμογή από το να εγγράψει αρχεία σε αυτήν την τοποθεσία. Μπορείτε να συνεχίσετε, εφόσον έχετε ενημερωθεί για το πρόβλημα αυτό, αλλά ορισμένες λειτουργίες ενδεχομένως να είναι απενεργοποιημένες. Active PackageListView Ενεργό Login or Create account MainWindow Είσοδος ή Δημιουργία λογαριασμού PackageContentsView <Τα περιεχόμενα ενός πακέτου δεν είναι διαθέσιμα για μη-εγκατεστημένα πακέτα> -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 πακέτο προς λήψη}other{# πακέτα προς λήψη}} Ratings PackageInfoView Αξιολογήσεις Switch account… MainWindow Αλλαγή λογαριασμού… Preferred language: UserLoginWindow Προτιμώμενη γλώσσα: @@ -35,6 +37,7 @@ Local LocalPkgDataLoadProcess Τοπικό Rate %Package% RatePackageWindow Αξιολόγηση %Package% An error occurred while initializing the package manager: %message% LocalPkgDataLoadProcess Προέκυψε σφάλμα κατά την αρχικοποίηση του διαχειριστή πακέτων: %message% Quit HaikuDepot App Έξοδος από HaikuDepot +Would it be acceptable to send anonymous usage data to the HaikuDepotServer system from this computer? You can change your preference in the \"Settings\" window later. MainWindow Θα ήταν αποδεκτή η αποστολή ανώνυμων στοιχείων χρήσης από τη συσκευή αυτή στον εξυπηρετητή του HaikuDepot; Μπορείτε να τροποποιήσετε την επιλογή αυτή αργότερα, μέσα από το παράθυρο \"Ρυθμίσεις\". An unexpected error '%Message%' has arisen with property '%Property%' UserLoginWindow Προέκυψε ένα απρόσμενο σφάλμα '%Message%' με την ιδιότητα '%Property%' A response to the captcha question must be provided. UserLoginWindow Πρέπει να γράψετε τον κωδικό captcha. Category FilterView Κατηγορία @@ -56,6 +59,7 @@ Cancel UserLoginWindow Ακύρωση HaikuDepot needs the package daemon to function, and it appears to be not running.\nWould you like to start it now? App Το HaikuDepot χρειάζεται το πρόγραμμα παρασκηνίου διαχείρισης πακέτων για να λειτουργήσει, το οποίο δεν εκτελείται.\nΘα θέλατε να το ξεκινήσετε; Click a package to view information PackageInfoView Κάντε κλικ σε ένα πακέτο για προβολή πληροφοριών The password must be at least eight characters long, consist of at least two digits and one upper case character. UserLoginWindow Ο κωδικός πρόσβασης πρέπει να έχει τουλάχιστον 8 χαρακτήρες, οι οποίοι θα αποτελούνται από τουλάχιστον δύο ψηφία και έναν κεφαλαίο χαρακτήρα. +Share anonymous usage data with HaikuDepotServer SettingsWindow Διαμοιρασμός ανώνυμων στατιστικών χρήσης με το HaikuDepotServer Contents PackageInfoView Περιεχόμενο Close PackageManager Κλείσιμο Changelog PackageInfoView Καταγραφή αλλαγών @@ -66,10 +70,12 @@ About PackageInfoView Σχετικά Reboot required PackageManager Απαιτείται επανεκκίνηση Password: UserLoginWindow Κωδικός πρόσβασης: All packages PackageListView Όλα τα πακέτα +This application is too old to communicate with the server system. Obtain a newer version of this application by updating your system. The minimum required version of this application is \"%s\". ServerHelper Αυτή η εφαρμογή είναι πολύ απαρχαιωμένη για να επικοινωνήσει με το σύστημα του εξυπηρετητή. Παρακαλώ προμηθευτείτε μια πιο σύγχρονη έκδοση αναβαθμίζοντας το σύστημά σας. Η ελάχιστη απαιτούμενη έκδοση της εφαρμογής είναι \"%s\". Stability RatePackageWindow Σταθερότητα Send RatePackageWindow Αποστολή Start package daemon App Έναρξη προγράμματος παρασκηνίου πακέτων The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow Ο κωδικός πρέπει να επαναληφθεί, έτσι ώστε να είμαστε βέβαιοι ότι ο κωδικός δεν έχει εισαχθεί λανθασμένα. +Cancel SettingsWindow Άκυρο Cancel RatePackageWindow Ακύρωση Inactive PackageListView Ανενεργό Nickname: UserLoginWindow Ψευδώνυμο: @@ -79,7 +85,9 @@ OK MainWindow Εντάξει {0, plural, one{# item} other{# items}} PackageListView {0, plural, one{# αντικείμενο} other{# αντικείμενα}} Usage conditions download problem UserLoginWindow Σφάλμα λήψης όρων χρήσης Downloading: PackageInfoView Γίνεται λήψη: +Quit MainWindow Έξοδος Success UserLoginWindow Επιτυχία +No MainWindow Όχι Package daemon problem App Πρόβλημα προγράμματος παρασκηνίου πακέτων (%Votes%) PackageInfoView (%Votes%) Repository PackageListView Αποθετήριο @@ -87,7 +95,10 @@ Repository PackageListView Αποθετήριο The email is malformed. UserLoginWindow Η διεύθυνση ηλεκτρονικού ταχυδρομείου δεν είναι έγκυρη. Close UserLoginWindow Κλείσιμο Close RatePackageWindow Κλείσιμο +An unexpected error has been sent from the server [%i] ServerHelper Ένα απρόσμενο σφάλμα προέκυψε από τη μεριά του εξυπηρετητή [%i] Synchronizing package data for repository '%REPO_NAME%' ServerPkgDataUpdateProcess Γίνεται συγχρονισμός πληροφοριών πακέτων για το αποθετήριο '%REPO_NAME%' +Settings SettingsWindow Ρυθμίσεις +An error has arisen downloading the usage conditions required to create a new user. Check the log for details and try again. \nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. UserLoginWindow Σφάλμα κατά τη λήψη των όρων χρήσης για την εγγραφή νέου χρήστη. Παρακαλώ ελέγξτε το αρχείο καταγραφών και ξαναδοκιμάστε.\nΠληροφορίες για το αρχείο καταγραφών υπάρχουν στο λήμμα του Οδηγού Χρήστη του Haiku για την εφαρμογή HaikuDepot. View the usage conditions UserLoginWindow Προβολή όρων χρήσης Login issue MainWindow Σφάλμα εισόδου Your rating: RatePackageWindow Η αξιολόγησή σας: @@ -98,19 +109,22 @@ All categories FilterView Όλες οι κατηγορίες Repositories MainWindow Αποθετήρια n/a PackageInfoView δ/υ This rating is visible to other users RatePackageWindow Η αξιολόγηση είναι ορατή και σε άλλους χρήστες +While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow Κατά την ενημέρωση των στοιχείων πακέτων προέκυψε ένα πρόβλημα που μπορεί να προκαλέσει την εμφάνιση απαρχαιωμένων πακέτων και την απόκρυψη άλλων. Περισσότερες πληροφορίες σχετικά με το πρόβλημα αυτό μπορούν να αντληθούν από τα αρχεία καταγραφής της εφαρμογής.\nΠληροφορίες για το αρχείο καταγραφών υπάρχει στο λήμμα του Οδηγού Χρήστη του Haiku για την εφαρμογή HaikuDepot. View agreed usage conditions… MainWindow Προβολή συμφωνημένων όρων χρήσης… Cancel MainWindow Ακύρωση -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(Παραμένει 1 ακόμα)}other{(Παραμένουν # ακόμα)}} Refresh repositories MainWindow Ανανέωση αποθετηρίων Continue App Συνέχεια A password is required. UserLoginWindow Απαιτείται κωδικός πρόσβασης. This package doesn't seem to be on the HaikuDepot Server, so it's not possible to create a new rating or edit an existing rating. MainWindow Αυτό το πακέτο δεν φαίνεται να υπάρχει στον διακομιστή του HaikuDepot, άρα δεν μπορείτε να δημιουργήσετε μία νέα ή να επεξεργαστείτε μία προϋπάρχουσα αξιολόγηση. +Apply SettingsWindow Εφαρμογή Language RatePackageWindow Γλώσσα Log out MainWindow Έξοδος Comment language: RatePackageWindow Γλώσσα σχολίου: Status PackageListView Κατάσταση The password has been incorrectly repeated. UserLoginWindow Ο κωδικός πρόσβασης έχει επαναληφθεί λανθασμένα. +Network transport error ServerHelper Δικτυακό σφάλμα μεταφοράς The password previously supplied for the user [%Nickname%] is not currently valid. The user will be logged-out of this application and you should login again with your updated password. MainWindow Ο κωδικός που είχε δοθεί για τον χρήστη [%Nickname%] δεν είναι πια έγκυρος. Θα γίνει έξοδος του χρήστη από την εφαρμογή αυτή, έπειτα θα μπορέσετε να κάνετε είσοδο ξανά με τον ενημερωμένο κωδικό σας. +Uninstall %PackageTitle% PackageManager Απεγκατάσταση του πακέτου %PackageTitle% Update RatePackageWindow Ενημέρωση OK ServerHelper Εντάξει Language UserLoginWindow Γλώσσα @@ -124,16 +138,19 @@ The nickname is required. UserLoginWindow Απαιτείται ψευδώνυμ Source packages MainWindow Πηγαία πακέτα - no package size - Problem with working files App Πρόβλημα με τα επεξεργαζόμενα αρχεία -Rate package RatePackageWindow Αξιολόγηση πακέτου +Server error ServerHelper Σφάλμα εξυπηρετητή Try again App Προσπάθεια ξανά +Rate package RatePackageWindow Αξιολόγηση πακέτου Unknown PackageListView Άγνωστο I agree to the usage conditions UserLoginWindow Συμφωνώ στους όρους χρήσης Log in UserLoginWindow Είσοδος +Sending anonymous usage data MainWindow Αποστολή ανώνυμων στατιστικών χρήσης Logged in as %User% MainWindow Έχετε συνδεθεί ως %User% Email address: UserLoginWindow Διεύθυνση ηλεκτρονικού ταχυδρομείου: Screenshot ScreenshotWindow Στιγμιότυπο οθόνης -A reboot is necessary to complete the installation process. PackageManager Είναι απαραίτητη μία επανεκκίνηση για την ολοκλήρωση της εγκατάστασης. HaikuDepot System name HaikuDepot +A reboot is necessary to complete the installation process. PackageManager Είναι απαραίτητη μία επανεκκίνηση για την ολοκλήρωση της εγκατάστασης. +Yes MainWindow Ναι {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{Είμαι τουλάχιστον ενός έτους}other{Είμαι # ετών ή μεγαλύτερος}} View latest usage conditions… MainWindow Προβολή των πιο πρόσφατων όρων χρήσεις… Quit App Έξοδος diff --git a/data/catalogs/apps/haikudepot/en_GB.catkeys b/data/catalogs/apps/haikudepot/en_GB.catkeys index 37d5c46ba1..601f6cc9a5 100644 --- a/data/catalogs/apps/haikudepot/en_GB.catkeys +++ b/data/catalogs/apps/haikudepot/en_GB.catkeys @@ -1,6 +1,5 @@ -1 english (united kingdom) x-vnd.Haiku-HaikuDepot 3869972913 +1 english (united kingdom) x-vnd.Haiku-HaikuDepot 4088992033 OK App Alright OK MainWindow Alright -OK PackageInfoView Alright OK ServerHelper Alright OK UserLoginWindow Alright diff --git a/data/catalogs/apps/haikudepot/eo.catkeys b/data/catalogs/apps/haikudepot/eo.catkeys index a57622d5ff..6dcc167383 100644 --- a/data/catalogs/apps/haikudepot/eo.catkeys +++ b/data/catalogs/apps/haikudepot/eo.catkeys @@ -1,4 +1,4 @@ -1 esperanto x-vnd.Haiku-HaikuDepot 1191205308 +1 esperanto x-vnd.Haiku-HaikuDepot 1522183623 Repository update error LocalRepositoryUpdateProcess Eraro dum ĝisdatigo de deponejo Network error ServerHelper Eraro de reto An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Eraro okazis dum aktualigo de la deponejo: %error% @@ -16,7 +16,6 @@ Starting the package daemon failed:\n\n%Error% App Ekrulado de la pakaĵa demon You have successfully authenticated as user %Nickname%. UserLoginWindow Vi sukcese aŭtentigis kiel uzanto %Nickname%. PackageInfoView No user ratings available. PackageInfoView Uzantaj taksoj ne estas disponeblaj -Downloading package '%name%' WorkStatusView Elŝutas pakaĵon '%name%' It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Ne povis eltiri necesan kapĉan informon el la datuma bloko kiu estis sendita el la servilo. A network transport error has arisen communicating with the server system: %s ServerHelper Eraro de reta transporto dum konversacio kun servilo: %s Rating PackageListView Takso @@ -28,7 +27,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Aktiva Login or Create account MainWindow Ensaluti aŭ Krei konton PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 pakaĵon por elŝuti}other{# pakaĵojn por elŝuti}} Ratings PackageInfoView Taksoj Switch account… MainWindow Ŝanĝi konton… Preferred language: UserLoginWindow Preferata lingvo: @@ -111,7 +109,6 @@ n/a PackageInfoView Neaplikebla This rating is visible to other users RatePackageWindow Ĉi tiu takso estas videbla al aliaj uzantoj View agreed usage conditions… MainWindow Vidi konsentitajn uzkondiĉojn… Cancel MainWindow Nuligi -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(1 plu por elŝuti)}other{(# plu por elŝuti)}} Refresh repositories MainWindow Aktualigi deponejojn Continue App Daŭrigi A password is required. UserLoginWindow Pasvorto estas deviga. @@ -138,8 +135,8 @@ Source packages MainWindow Fontaj pakaĵoj - no package size - Problem with working files App Problemo kun kurantaj dosieroj Server error ServerHelper Eraro de servilo -Rate package RatePackageWindow Taksi pakaĵon Try again App Provi denove +Rate package RatePackageWindow Taksi pakaĵon Unknown PackageListView Nekonata I agree to the usage conditions UserLoginWindow Mi konsentas la kondiĉojn de uzado Log in UserLoginWindow Ensaluti @@ -147,8 +144,8 @@ Sending anonymous usage data MainWindow Sendi anoniman informon pri uzado Logged in as %User% MainWindow Ensalutis kiel %User% Email address: UserLoginWindow Retpoŝtadreso: Screenshot ScreenshotWindow Ekrankopio -A reboot is necessary to complete the installation process. PackageManager Restartigo estas necesa por kompletigi la instalon. HaikuDepot System name HaikuTenejo +A reboot is necessary to complete the installation process. PackageManager Restartigo estas necesa por kompletigi la instalon. Yes MainWindow Jes {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{Mi havas malpleje unu jaron}other{Mi havas # jarojn aŭ pli}} View latest usage conditions… MainWindow Vidi plej novan kondiĉojn de uzado… diff --git a/data/catalogs/apps/haikudepot/es.catkeys b/data/catalogs/apps/haikudepot/es.catkeys index 36e13a5ddc..3ededc8187 100644 --- a/data/catalogs/apps/haikudepot/es.catkeys +++ b/data/catalogs/apps/haikudepot/es.catkeys @@ -1,14 +1,14 @@ -1 spanish; castilian x-vnd.Haiku-HaikuDepot 3544756144 +1 spanish; castilian x-vnd.Haiku-HaikuDepot 761125591 Repository update error LocalRepositoryUpdateProcess Error de actualización de repositorio Network error ServerHelper Error de red An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Ocurrió un error al actualizar el repositorio: %error% User Created UserLoginWindow Usuario creado Check for updates… MainWindow Buscar actualizaciones… -Uninstall PackageManager Desinstalar Uninstalled PackageListView Desinstalado It was not possible to create the new user. UserLoginWindow No fue posible crear el nuevo usuario. Available packages MainWindow Paquetes disponibles Create account UserLoginWindow Crear cuenta +Install %PackageTitle% PackageManager Instalar %PackageTitle% OK App Aceptar The response to the captcha was incorrect. ServerHelper La respuesta al captcha fue incorrecta. Develop packages MainWindow Paquetes para desarrollo @@ -17,7 +17,6 @@ Starting the package daemon failed:\n\n%Error% App Fallo al iniciar el demonio You have successfully authenticated as user %Nickname%. UserLoginWindow Usted fue autenticado exitosamente como %Nickname%. PackageInfoView No user ratings available. PackageInfoView No hay valoraciones de usuario disponibles. -Downloading package '%name%' WorkStatusView Descargando paquete '%name%' It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow No fue posible extraer la información necesaria del captcha a partir de la información enviada de vuelta al servidor. A network transport error has arisen communicating with the server system: %s ServerHelper Ha ocurrido un error de red al comunicarse con el sistema de servidores: %s Rating PackageListView Valoraciones @@ -29,7 +28,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Activo Login or Create account MainWindow Ingresar o crear una cuenta PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 package to download}other{# packages to download}} Ratings PackageInfoView Valoraciones Switch account… MainWindow Cambiar de cuenta… Preferred language: UserLoginWindow Idioma preferido: @@ -46,8 +44,6 @@ Category FilterView Categoría User rating RatePackageWindow Puntuación del usuario Installed packages MainWindow Paquetes instalados A requested object or an object involved in the request was not found on the server. ServerHelper Un objeto requerido o un objeto implicado en el requerimiento no se ha encontrado en el servidor. -Fatal error PackageManager Error fatal -Package action failed PackageInfoView Falló la acción del paquete No changelog available. PackageInfoView No hay registro de cambios disponible. Error App Error There was a puzzling response from the web service. UserLoginWindow Hubo una respuesta misteriosa desde el servicio Web. @@ -79,7 +75,6 @@ Stability RatePackageWindow Estabilidad Send RatePackageWindow Enviar Start package daemon App Arrancar demonio de paquetes The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow La contraseña debe ser repetida para evitar la posibilidad de un error en el ingreso de la misma. -The package action could not be scheduled: %Error% PackageInfoView No se pudo programar la acción del paquete: %Error% Cancel SettingsWindow Cancelar Cancel RatePackageWindow Cancelar Inactive PackageListView Inactivo @@ -89,7 +84,6 @@ There are problems in the supplied data: UserLoginWindow Hay problemas en la in OK MainWindow Aceptar {0, plural, one{# item} other{# items}} PackageListView {0, plural, one{# item} other{# items}} Usage conditions download problem UserLoginWindow Hubo un problema al descargar las condiciones de uso -OK PackageInfoView Aceptar Downloading: PackageInfoView Descargando: Quit MainWindow Salir Success UserLoginWindow Éxito @@ -118,7 +112,6 @@ This rating is visible to other users RatePackageWindow Esta calificación es v While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow Hubo un error al actualizar la información del paquete que puede causar que la misma no se muestre, o se muestre desactualizada. Pueden obtenerse detalles adicionales sobre este problema consultando los archivos de registro de la aplicación. \nLa información sobre como acceder a los archivos de registro está disponible en la sección HaikuDepot de la Guía de Usuario de Haiku. View agreed usage conditions… MainWindow Ver acuerdo de uso de condiciones... Cancel MainWindow Cancelar -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(1 more to download)}other{(# more to download)}} Refresh repositories MainWindow Actualizar repositorios Continue App Continuar A password is required. UserLoginWindow Se requiere una contraseña. @@ -131,6 +124,7 @@ Status PackageListView Estado The password has been incorrectly repeated. UserLoginWindow La contraseña reingresada no coincide. Network transport error ServerHelper Error de transporte de red The password previously supplied for the user [%Nickname%] is not currently valid. The user will be logged-out of this application and you should login again with your updated password. MainWindow La contraseña anteriormente usada por [%Nickname%] ya no es válida. El usuario se desconectará y la aplicación le pedirá de nuevo iniciar sesión con su contraseña actualizada. +Uninstall %PackageTitle% PackageManager Desinstalar %PackageTitle% Update RatePackageWindow Actualizar OK ServerHelper Aceptar Language UserLoginWindow Idioma @@ -145,8 +139,8 @@ Source packages MainWindow Paquetes fuente - no package size - Problem with working files App Hubo un problema con los archivos de trabajo Server error ServerHelper Error del servidor -Rate package RatePackageWindow Puntuar paquete Try again App Volver a intentar +Rate package RatePackageWindow Puntuar paquete Unknown PackageListView Desconocido I agree to the usage conditions UserLoginWindow Acepto las condiciones de uso Log in UserLoginWindow Iniciar sesión @@ -154,8 +148,8 @@ Sending anonymous usage data MainWindow Enviando datos anónimos de uso Logged in as %User% MainWindow Sesión iniciada como %User% Email address: UserLoginWindow Dirección de correo electrónico: Screenshot ScreenshotWindow Captura de pantalla -A reboot is necessary to complete the installation process. PackageManager Es necesario un reinicio para completar el proceso de instalación. HaikuDepot System name HaikuDepot +A reboot is necessary to complete the installation process. PackageManager Es necesario un reinicio para completar el proceso de instalación. Yes MainWindow Sí {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{I am at least one year old}other{I am # years of age or older}} View latest usage conditions… MainWindow Ver las últimas condiciones de uso… @@ -172,7 +166,6 @@ Fetching remote repository data LocalRepositoryUpdateProcess Obteniendo datos d Description PackageListView Descripción Open %DeskbarLink% PackageManager Abrir %DeskbarLink% User creation error UserLoginWindow Se produjo un error al crear el usuario -Install PackageManager Instalar Input validation UserLoginWindow Validación de entrada Log in… MainWindow Iniciar sesión… You need to be logged into an account before you can rate packages. MainWindow Necesita haber ingresado con una cuenta antes de poder valorar paquetes. diff --git a/data/catalogs/apps/haikudepot/fi.catkeys b/data/catalogs/apps/haikudepot/fi.catkeys index 19ab4ca4d0..ceb6881366 100644 --- a/data/catalogs/apps/haikudepot/fi.catkeys +++ b/data/catalogs/apps/haikudepot/fi.catkeys @@ -1,4 +1,4 @@ -1 finnish x-vnd.Haiku-HaikuDepot 3106374143 +1 finnish x-vnd.Haiku-HaikuDepot 761125591 Repository update error LocalRepositoryUpdateProcess Tietovaraston päivitysvirhe Network error ServerHelper Verkkovirhe An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Tietovaraston päivityksen yhteydessä tapahtui virhe: %error% @@ -8,6 +8,7 @@ Uninstalled PackageListView Poistetut asennukset It was not possible to create the new user. UserLoginWindow Uuden käyttäjän luominen epäonnistui. Available packages MainWindow Saatavilla olevat pakkaukset Create account UserLoginWindow Luo tili +Install %PackageTitle% PackageManager Asenna %PackageTitle% OK App Valmis The response to the captcha was incorrect. ServerHelper Captcha-vastaus oli virheellinen. Develop packages MainWindow Kehityspaketit @@ -16,7 +17,6 @@ Starting the package daemon failed:\n\n%Error% App Pakkaustaustaprosessin käyn You have successfully authenticated as user %Nickname%. UserLoginWindow Käyttäjän %Nickname% todentaminen onnistui. PackageInfoView No user ratings available. PackageInfoView Käyttäjäarvosanoja ei ole saatavilla. -Downloading package '%name%' WorkStatusView Ladataan pakkaus '%name%' It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Välttämättömän captcha-tiedon poiminen takaisin palvelimelle lähetetyistä tiedoista epäonnistui. A network transport error has arisen communicating with the server system: %s ServerHelper Verkkosiirtovirhe syntyi palvelinjärjestelmäviestinnässä: %s Rating PackageListView Arvosana @@ -28,7 +28,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Käytössä Login or Create account MainWindow Kirjaudu tai luo tili PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 pakkaus ladattu}other{# pakkausta ladattu}} Ratings PackageInfoView Arvosanat Switch account… MainWindow Vaihda tiliä... Preferred language: UserLoginWindow Ensisijainen kieli: @@ -113,7 +112,6 @@ This rating is visible to other users RatePackageWindow Tämä arvosana näkyy While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow Pakkaustietoja päivitettäessä ilmeni pulma, joka voi aiheuttaa tietojen olevan vanhentuneita tai niiden puuttuvan sovelluksen näytöltä. Lisätietoja koskien tätä pulmaa on saatavilla sovelluksen lokitiedostosta.\nTieto lokitiedostojen katselemista on saatavilla Haikun käyttöohjeen HaikuVarasto-osasta. View agreed usage conditions… MainWindow Katso hyväksyttyjä käyttöehtoja… Cancel MainWindow Peru -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(1 lisää ladattavaksi)}other{(# lisää ladattavaksi)}} Refresh repositories MainWindow Virkistä tietovarastoja Continue App Jatka A password is required. UserLoginWindow Vaaditaan salasana. @@ -126,6 +124,7 @@ Status PackageListView Tila The password has been incorrectly repeated. UserLoginWindow Salasanan toistaminen epäonnistui. Network transport error ServerHelper Verkkosiirtovirhe The password previously supplied for the user [%Nickname%] is not currently valid. The user will be logged-out of this application and you should login again with your updated password. MainWindow Käyttäjälle [%Nickname%] aiemmin tarjottu salasana ei ole nykyään kelvollinen. Käyttäjä kirjautuu ulos tästä sovelluksesta ja sinun pitäisi kirjautua uudelleen päivitetyllä salasanallasi. +Uninstall %PackageTitle% PackageManager Poista %PackageTitle% -pakkaus Update RatePackageWindow Päivitä OK ServerHelper Valmis Language UserLoginWindow Kieli @@ -140,8 +139,8 @@ Source packages MainWindow Lähdekoodipakkaukset - no package size - Problem with working files App Pulma työtiedostoissa Server error ServerHelper Palvelinvirhe -Rate package RatePackageWindow Anna pakkaukselle arvosana Try again App Yritä uudelleen +Rate package RatePackageWindow Anna pakkaukselle arvosana Unknown PackageListView Tuntematon I agree to the usage conditions UserLoginWindow Hyväksyn käyttöehdot Log in UserLoginWindow Kirjaudu @@ -149,8 +148,8 @@ Sending anonymous usage data MainWindow Nimettömien käyttötietojen lähettä Logged in as %User% MainWindow Kirjautuneena tunnuksella %User% Email address: UserLoginWindow Sähköpostiosoite: Screenshot ScreenshotWindow Kuvakaappaus -A reboot is necessary to complete the installation process. PackageManager Asennusprosessin päättäminen vaatii uudelleenkäynnistämisen. HaikuDepot System name HaikuVarasto +A reboot is necessary to complete the installation process. PackageManager Asennusprosessin päättäminen vaatii uudelleenkäynnistämisen. Yes MainWindow Kyllä {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{Olen vähintään vuoden ikäinen}other{Olen # vuotias tai vanhempi}} View latest usage conditions… MainWindow Katso viimeisimmät käyttöehdot… diff --git a/data/catalogs/apps/haikudepot/fr.catkeys b/data/catalogs/apps/haikudepot/fr.catkeys index 3f17042ba9..0936980221 100644 --- a/data/catalogs/apps/haikudepot/fr.catkeys +++ b/data/catalogs/apps/haikudepot/fr.catkeys @@ -1,14 +1,14 @@ -1 french x-vnd.Haiku-HaikuDepot 3763775264 +1 french x-vnd.Haiku-HaikuDepot 761125591 Repository update error LocalRepositoryUpdateProcess Erreur à l’actualisation du dépôt Network error ServerHelper Erreur réseau An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Une erreur est survenue lors du rafraîchissement : %error% User Created UserLoginWindow Utilisateur créé Check for updates… MainWindow Vérifier les mises à jour… -Uninstall PackageManager Désinstaller Uninstalled PackageListView Désinstallé It was not possible to create the new user. UserLoginWindow Impossible de créer le nouvel utilisateur. Available packages MainWindow Paquets disponibles Create account UserLoginWindow Créer un compte +Install %PackageTitle% PackageManager Installer %PackageTitle% OK App OK The response to the captcha was incorrect. ServerHelper Réponse incorrecte au Captcha. Develop packages MainWindow Paquets de développement @@ -17,7 +17,6 @@ Starting the package daemon failed:\n\n%Error% App Le démarrage du serveur de You have successfully authenticated as user %Nickname%. UserLoginWindow Vous êtes désormais authentifié en tant que %Nickname%. PackageInfoView No user ratings available. PackageInfoView Aucun avis d’utilisateurs. -Downloading package '%name%' WorkStatusView Téléchargement du paquet « %name% » It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Il n’a pas été possible d’extraire les informations Captcha nécessaires depuis les données renvoyées par le serveur. A network transport error has arisen communicating with the server system: %s ServerHelper Une erreur de transport réseau est survenue lors de la communication avec le serveur : %s Rating PackageListView Évaluation @@ -29,7 +28,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Actif Login or Create account MainWindow Se connecter ou créer un compte PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 paquet à télécharger}other{# paquets à télécharger}} Ratings PackageInfoView Évaluations Switch account… MainWindow Changer de compte… Preferred language: UserLoginWindow Langue préférée : @@ -46,8 +44,6 @@ Category FilterView Catégorie User rating RatePackageWindow Avis de l’utilisateur Installed packages MainWindow Paquets installés A requested object or an object involved in the request was not found on the server. ServerHelper L’objet demandé ou l’objet associé à la requête n’a pas été trouvé sur le serveur. -Fatal error PackageManager Erreur fatale -Package action failed PackageInfoView L’action du paquet a échouée No changelog available. PackageInfoView La liste des modifications n’est pas disponible. Error App Erreur There was a puzzling response from the web service. UserLoginWindow La réponse du service web est incompréhensible. @@ -79,7 +75,6 @@ Stability RatePackageWindow Stabilité Send RatePackageWindow Envoyer Start package daemon App Démarrer le serveur de paquets The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow Le mot de passe doit être répété afin de réduire le risque d’une saisie erronée. -The package action could not be scheduled: %Error% PackageInfoView L’action du paquet n’a pas pu être planifiée : %Error% Cancel SettingsWindow Annuler Cancel RatePackageWindow Annuler Inactive PackageListView Inactif @@ -117,7 +112,6 @@ This rating is visible to other users RatePackageWindow Cette note est visible While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow Lors de la mise à jour des données du paquet, un problème est apparu qui peut entraîner l’affichage de données obsolètes ou manquantes dans l’application. Des détails supplémentaires concernant ce problème peuvent être obtenus à partir des journaux d’application.\nDes informations sur la manière de consulter les journaux sont disponibles dans la section DépôtHaiku du guide de l’utilisateur Haiku. View agreed usage conditions… MainWindow Voir les conditions d’utilisation acceptées… Cancel MainWindow Annuler -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(1 de plus à télécharger)}other{(# de plus à télécharger)}} Refresh repositories MainWindow Rafraîchir les dépôts Continue App Continuer A password is required. UserLoginWindow Un mot de passe est requis. @@ -130,6 +124,7 @@ Status PackageListView État The password has been incorrectly repeated. UserLoginWindow Le mot de passe a été répété de manière incorrecte. Network transport error ServerHelper Erreur de transport réseau The password previously supplied for the user [%Nickname%] is not currently valid. The user will be logged-out of this application and you should login again with your updated password. MainWindow Le mot de passe précédemment fourni pour l’utilisateur [%Nickname%] n’est plus valable. L’utilisateur sera déconnecté de cette application et vous devrez vous reconnecter avec votre nouveau mot de passe. +Uninstall %PackageTitle% PackageManager Désinstaller %PackageTitle% Update RatePackageWindow Mettre à jour OK ServerHelper OK Language UserLoginWindow Langue @@ -144,8 +139,8 @@ Source packages MainWindow Paquets sources - no package size - Problem with working files App Problème avec les fichiers de travail Server error ServerHelper Erreur du serveur -Rate package RatePackageWindow Évaluer le paquet Try again App Essayer à nouveau +Rate package RatePackageWindow Évaluer le paquet Unknown PackageListView Inconnu I agree to the usage conditions UserLoginWindow J’accepte les conditions d’utilisation Log in UserLoginWindow Connexion @@ -153,8 +148,8 @@ Sending anonymous usage data MainWindow Envoi de données d’utilisation anony Logged in as %User% MainWindow Connecté en tant que %User% Email address: UserLoginWindow Adresse e-mail : Screenshot ScreenshotWindow Capture d’écran -A reboot is necessary to complete the installation process. PackageManager Un redémarrage est nécessaire pour terminer le processus d’installation. HaikuDepot System name DépôtHaiku +A reboot is necessary to complete the installation process. PackageManager Un redémarrage est nécessaire pour terminer le processus d’installation. Yes MainWindow Oui {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{Je suis âgé d’au moins un an}other{j’ai plus de # ans}} View latest usage conditions… MainWindow Voir les dernières conditions d’utilisation… @@ -171,7 +166,6 @@ Fetching remote repository data LocalRepositoryUpdateProcess Récupération des Description PackageListView Description Open %DeskbarLink% PackageManager Ouvrir %DeskbarLink% User creation error UserLoginWindow Erreur à la création de l’utilisateur -Install PackageManager Installer Input validation UserLoginWindow Validation des entrées Log in… MainWindow Connexion… You need to be logged into an account before you can rate packages. MainWindow Vous devez vous authentifier pour évaluer les paquets. diff --git a/data/catalogs/apps/haikudepot/fur.catkeys b/data/catalogs/apps/haikudepot/fur.catkeys index 9ec61f6dd9..3f96e90863 100644 --- a/data/catalogs/apps/haikudepot/fur.catkeys +++ b/data/catalogs/apps/haikudepot/fur.catkeys @@ -1,10 +1,9 @@ -1 friulian x-vnd.Haiku-HaikuDepot 3544756144 +1 friulian x-vnd.Haiku-HaikuDepot 3437352458 Repository update error LocalRepositoryUpdateProcess Erôr di inzornament dal dipuesit Network error ServerHelper Erôr di rêt An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Si è verificât un erôr intal inzornâ il dipuesit: %error% User Created UserLoginWindow Utent creât Check for updates… MainWindow Controle inzornaments… -Uninstall PackageManager Disinstale Uninstalled PackageListView Disinstalât It was not possible to create the new user. UserLoginWindow Nol è stât pussibil creâ il gnûf utent. Available packages MainWindow Pachets disponibii @@ -17,7 +16,6 @@ Starting the package daemon failed:\n\n%Error% App Inviament dal demoni dai pac You have successfully authenticated as user %Nickname%. UserLoginWindow Tu ti sês autenticât cun sucès come utent %Nickname%. PackageInfoView No user ratings available. PackageInfoView Nissune valutazion dai utents disponibile. -Downloading package '%name%' WorkStatusView Daûr a discjariâ il pachet '%name%' It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Nol è stât pussibil tirâ fûr lis informazions captcha necessaris dai dâts restituîts dal servidôr. A network transport error has arisen communicating with the server system: %s ServerHelper Al è vignût fûr un erôr di traspuart de rêt tal comunicâ cul servidôr: %s Rating PackageListView Valutazion @@ -29,7 +27,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Atîf Login or Create account MainWindow Jentre o Regjistriti PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 pachet di discjariâ}other{# pachets di discjariâ}} Ratings PackageInfoView Valutazions Switch account… MainWindow Cambie account… Preferred language: UserLoginWindow Lenghe preferide: @@ -39,15 +36,13 @@ Local LocalPkgDataLoadProcess Locâl Rate %Package% RatePackageWindow Vote %Package% An error occurred while initializing the package manager: %message% LocalPkgDataLoadProcess Si è verificât un erôr intal inizializâ il gjestôr dal pachet: %message% Quit HaikuDepot App Siere HaikuDepot -Would it be acceptable to send anonymous usage data to the HaikuDepotServer system from this computer? You can change your preference in the \"Settings\" window later. MainWindow Podaressial jessi acetabil inviâ dâts anonims sul ûs di chest computer al sisteme HaikuDepotServer? Plui indenant tu puedis modificâ lis tôs preferencis tal barcon \"Impostazions\". +Would it be acceptable to send anonymous usage data to the HaikuDepotServer system from this computer? You can change your preference in the \"Settings\" window later. MainWindow Acetaressistu di inviâ dâts anonims sul ûs di chest computer al sisteme HaikuDepotServer? Plui indenant tu podarâs modificâ lis tôs preferencis tal barcon \"Impostazions\". An unexpected error '%Message%' has arisen with property '%Property%' UserLoginWindow Al è vignût fûr un erôr '%Message%' inspietât cun proprietât '%Property%' A response to the captcha question must be provided. UserLoginWindow Si scugne dâ une rispueste ae domande captcha. Category FilterView Categorie User rating RatePackageWindow Valutazion utents Installed packages MainWindow Pachets instalâts A requested object or an object involved in the request was not found on the server. ServerHelper Un ogjet domandât o un ogjet che al centrave cu la richieste nol è stât cjatât sul servidôr. -Fatal error PackageManager Erôr fatâl -Package action failed PackageInfoView Azion dal pachet falide No changelog available. PackageInfoView Nissun regjistri des modifichis disponibil. Error App Erôr There was a puzzling response from the web service. UserLoginWindow La rispueste dal servizi web e jere ambigue. @@ -79,7 +74,6 @@ Stability RatePackageWindow Stabilitât Send RatePackageWindow Invie Start package daemon App Invie demoni dai pachets The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow Si scugne ripeti la peraule d'ordin par podê diminuî lis pussibilitâts di inserîle sbaliade. -The package action could not be scheduled: %Error% PackageInfoView Impussibil programâ la azion dal pachet: %Error% Cancel SettingsWindow Anule Cancel RatePackageWindow Anule Inactive PackageListView Inatîf @@ -89,7 +83,6 @@ There are problems in the supplied data: UserLoginWindow Si à problemis tai d OK MainWindow Va ben {0, plural, one{# item} other{# items}} PackageListView {0, plural, one{# item} other{# items}} Usage conditions download problem UserLoginWindow Probleme tal discjariament des condizions di ûs -OK PackageInfoView Va ben Downloading: PackageInfoView Ricezion: Quit MainWindow Jes Success UserLoginWindow Lât a bon fin @@ -102,7 +95,7 @@ The email is malformed. UserLoginWindow La direzion e-mail e je malformade. Close UserLoginWindow Siere Close RatePackageWindow Siere An unexpected error has been sent from the server [%i] ServerHelper Al è stât inviât dal servidôr [%i] un erôr inspietât -Synchronizing package data for repository '%REPO_NAME%' ServerPkgDataUpdateProcess Sincronizazion dâts pachet pal dipuesit '%REPO_NAME%' +Synchronizing package data for repository '%REPO_NAME%' ServerPkgDataUpdateProcess Sincronizazion dâts dai pachets pal dipuesit '%REPO_NAME%' Settings SettingsWindow Impostazions An error has arisen downloading the usage conditions required to create a new user. Check the log for details and try again. \nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. UserLoginWindow Al è vignût fûr un erôr discjariant lis condizions di ûs necessaris par creâ un gnûf utent. Controle il regjistri pai detais e torne prove. \nLis informazions su ce mût viodi i regjistris a son disponibilis inte sezion di HaikuDepot de Vuide utent di Haiku. View the usage conditions UserLoginWindow Viôt lis condizions di ûs @@ -118,7 +111,6 @@ This rating is visible to other users RatePackageWindow Altris utents a puedin While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow Intant che si inzornave i dâts di un pachet, al è vignût fûr un probleme che al podarès fâ pierdi i dâts o rindiju obsolets rispiet ae visualizazion de aplicazion. Detais adizionâi in merit si puedin otignî dai regjistris de aplicazion.\nLis informazions su ce mût viodi i regjistris a son disponibilis te sezion di HaikuDepot de Vuide utent di Haiku. View agreed usage conditions… MainWindow Viôt lis cundizions di ûs acetadis… Cancel MainWindow Anule -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(ancjemò 1 discjariament)}other{(ancjemò # discjariaments)}} Refresh repositories MainWindow Inzorne dipuesits Continue App Continue A password is required. UserLoginWindow E je necessarie une peraule d'ordin. @@ -145,8 +137,8 @@ Source packages MainWindow Pachets sorzint - no package size - Problem with working files App Probleme cui file di lavôr de aplicazion Server error ServerHelper Erôr dal servidôr -Rate package RatePackageWindow Valute pachet Try again App Torne prove +Rate package RatePackageWindow Valute pachet Unknown PackageListView No cognossût I agree to the usage conditions UserLoginWindow O aceti lis condizions di ûs Log in UserLoginWindow Jentre @@ -154,8 +146,8 @@ Sending anonymous usage data MainWindow Daûr a inviâ dâts anonim sul ûs Logged in as %User% MainWindow Jentrât come %User% Email address: UserLoginWindow Direzion email: Screenshot ScreenshotWindow Istantanie -A reboot is necessary to complete the installation process. PackageManager Al covente tornâ a inviâ il sisteme par completâ la instalazion. HaikuDepot System name HaikuDepot +A reboot is necessary to complete the installation process. PackageManager Al covente tornâ a inviâ il sisteme par completâ la instalazion. Yes MainWindow Sì {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{O ai almancul un an}other{O ai # agns di etât o plui}} View latest usage conditions… MainWindow Viôt lis ultimis condizions di ûs… @@ -172,7 +164,6 @@ Fetching remote repository data LocalRepositoryUpdateProcess Daûr a recuperâ Description PackageListView Descrizion Open %DeskbarLink% PackageManager Vierç %DeskbarLink% User creation error UserLoginWindow Erôr di creazion dal utent -Install PackageManager Instale Input validation UserLoginWindow Convalide input Log in… MainWindow Acès… You need to be logged into an account before you can rate packages. MainWindow Si scugne jessi jentrâts intun account prime di podê valutâ i pachets. diff --git a/data/catalogs/apps/haikudepot/hr.catkeys b/data/catalogs/apps/haikudepot/hr.catkeys index daed19c2c7..9a665eb8f7 100644 --- a/data/catalogs/apps/haikudepot/hr.catkeys +++ b/data/catalogs/apps/haikudepot/hr.catkeys @@ -1,4 +1,4 @@ -1 croatian x-vnd.Haiku-HaikuDepot 849501161 +1 croatian x-vnd.Haiku-HaikuDepot 544560333 Repository update error LocalRepositoryUpdateProcess Greška pri ažuriranju repozitorija An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Došlo je do greške prilikom osvježavanja repozitorija: %error% User Created UserLoginWindow Korisnik je napravljen @@ -10,7 +10,6 @@ Create account UserLoginWindow Napravi račun OK App U redu Rate package… PackageInfoView Ocijeni paket... PackageInfoView -Downloading package '%name%' WorkStatusView Preuzimam paket '%name%' Rating PackageListView Ocjenjivanje Synchronizing icons ServerIconExportUpdateProcess Sinkroniziram ikone Show MainWindow Pokaži @@ -69,8 +68,8 @@ Stability: RatePackageWindow Stabilnost: The nickname is required. UserLoginWindow Potreban je nadimak. Source packages MainWindow Izvorni paketi - no package size - -Rate package RatePackageWindow Ocijeni paket Try again App Pokušaj ponovno +Rate package RatePackageWindow Ocijeni paket Unknown PackageListView Nepoznato I agree to the usage conditions UserLoginWindow Slažem se sa uvjetima korištenja Log in UserLoginWindow Prijava diff --git a/data/catalogs/apps/haikudepot/hu.catkeys b/data/catalogs/apps/haikudepot/hu.catkeys index f1d4b1352c..d746f5c63b 100644 --- a/data/catalogs/apps/haikudepot/hu.catkeys +++ b/data/catalogs/apps/haikudepot/hu.catkeys @@ -1,14 +1,14 @@ -1 hungarian x-vnd.Haiku-HaikuDepot 3544756144 +1 hungarian x-vnd.Haiku-HaikuDepot 761125591 Repository update error LocalRepositoryUpdateProcess Tároló frissítési hiba Network error ServerHelper Hálózati hiba An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Hiba történt a tároló frissítésekor: %error% User Created UserLoginWindow Felhasználó létrehozva Check for updates… MainWindow Frissítések keresése… -Uninstall PackageManager Eltávolítás Uninstalled PackageListView Eltávolítva It was not possible to create the new user. UserLoginWindow Nem sikerült létrehozni a felhasználót. Available packages MainWindow Elérhető csomagok Create account UserLoginWindow Felhasználói fiók létrehozása +Install %PackageTitle% PackageManager %PackageTitle% telepítése OK App Rendben The response to the captcha was incorrect. ServerHelper Hibás válasz a captcha-kódra. Develop packages MainWindow Fejlesztői csomagok @@ -17,7 +17,6 @@ Starting the package daemon failed:\n\n%Error% App A csomag démon indítása s You have successfully authenticated as user %Nickname%. UserLoginWindow Sikeres bejelentkezés %Nickname%. PackageInfoView No user ratings available. PackageInfoView Felhasználói értékelés nem áll rendelkezésre. -Downloading package '%name%' WorkStatusView Csomag letöltése: '%name%' It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Nem sikerült kinyerni a captcha információt az elküldött adatokból. A network transport error has arisen communicating with the server system: %s ServerHelper Hálózati hiba lépett fel a szerverrel való kommunikáció során: %s Rating PackageListView Értékelés @@ -29,7 +28,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Aktív Login or Create account MainWindow Belépés vagy fiók létrehozása PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 csomag letöltése}other{# csomag letöltése}} Ratings PackageInfoView Értékelés Switch account… MainWindow Másik fiók… Preferred language: UserLoginWindow Előnyben részesített nyelv: @@ -46,8 +44,6 @@ Category FilterView Kategória User rating RatePackageWindow Felhasználói értékelés Installed packages MainWindow Telepített csomagok A requested object or an object involved in the request was not found on the server. ServerHelper A kért objektum vagy a kérésben szereplő objektum nem található a kiszolgálón. -Fatal error PackageManager Súlyos hiba -Package action failed PackageInfoView Sikertelen csomag-művelet No changelog available. PackageInfoView Nincs módosítás-előzmény Error App Hiba There was a puzzling response from the web service. UserLoginWindow A webes szolgáltatás rejtélyes választ adott. @@ -79,7 +75,6 @@ Stability RatePackageWindow Stabilitás Send RatePackageWindow Küldés Start package daemon App Csomag démon indítása The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow Ismételd meg a jelszót annak érdekében hogy csökkenjen a rossz jelszó megadásának esélye. -The package action could not be scheduled: %Error% PackageInfoView A csomag-művelet nem ütemezhető: %Error% Cancel SettingsWindow Mégse Cancel RatePackageWindow Mégse Inactive PackageListView Inaktív @@ -89,7 +84,6 @@ There are problems in the supplied data: UserLoginWindow Hibás adatok lettek m OK MainWindow Rendben {0, plural, one{# item} other{# items}} PackageListView {0, plural, one{# elem} other{# elem}} Usage conditions download problem UserLoginWindow Hiba történt a felhasználási feltételek letöltésekor -OK PackageInfoView Rendben Downloading: PackageInfoView Letöltés: Quit MainWindow Kilépés Success UserLoginWindow Sikeres @@ -118,7 +112,6 @@ This rating is visible to other users RatePackageWindow Ez az értékelés más While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow A csomagadatok frissítése közben felmerült egy probléma, amely az adatok elavulását vagy hiányát okozhatják az alkalmazásban. A problémával kapcsolatos további információkat az alkalmazásnaplókban tekintheted meg.\nA naplók megtekintésével kapcsolatos információk a Haiku felhasználói kézikönyv HaikuDepot szakaszában találhatók. View agreed usage conditions… MainWindow Jóváhagyott felhasználási feltételek… Cancel MainWindow Mégse -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(még 1 letöltés)}other{(még # letöltés)}} Refresh repositories MainWindow Tárolók frissítése Continue App Folytatás A password is required. UserLoginWindow Jelszó szükséges. @@ -131,6 +124,7 @@ Status PackageListView Állapot The password has been incorrectly repeated. UserLoginWindow A megismételt jelszó téves. Network transport error ServerHelper Hálózati átviteli hiba The password previously supplied for the user [%Nickname%] is not currently valid. The user will be logged-out of this application and you should login again with your updated password. MainWindow A felhasználó [%Nickname%] előzőleg megadott jelszava évrénytelen. A felhasználó ki lesz léptetve az alkalmazásból majd újra be kell jelentkezni az érvényes jelszóval. +Uninstall %PackageTitle% PackageManager %PackageTitle% eltávolítása Update RatePackageWindow Frissítés OK ServerHelper Rendben Language UserLoginWindow Nyelv @@ -145,8 +139,8 @@ Source packages MainWindow Forráskód csomagok - no package size - Problem with working files App Nem tudok a fájlokkal dolgozni Server error ServerHelper Mentési hiba -Rate package RatePackageWindow Csomag értékelése Try again App Próbáld újra +Rate package RatePackageWindow Csomag értékelése Unknown PackageListView Ismeretlen I agree to the usage conditions UserLoginWindow Elfogadom a felhasználási feltételeket Log in UserLoginWindow Bejelentkezés @@ -154,8 +148,8 @@ Sending anonymous usage data MainWindow Névtelen felhasználási adatok küld Logged in as %User% MainWindow Bejelentkezett mint %User% Email address: UserLoginWindow E-mail cím: Screenshot ScreenshotWindow Képernyőkép -A reboot is necessary to complete the installation process. PackageManager Újraindítás szükséges a telepítés befejezéséhez. HaikuDepot System name Raktár +A reboot is necessary to complete the installation process. PackageManager Újraindítás szükséges a telepítés befejezéséhez. Yes MainWindow Igen {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{Legalább egy éves vagyok}other{# éves vagy idősebb vagyok}} View latest usage conditions… MainWindow Felhasználási feltételek… @@ -172,7 +166,6 @@ Fetching remote repository data LocalRepositoryUpdateProcess Tároló adatainak Description PackageListView Leírás Open %DeskbarLink% PackageManager %DeskbarLink% megnyitása User creation error UserLoginWindow Felhasználó létrehozási hiba -Install PackageManager Telepítés Input validation UserLoginWindow Bevitel érvényesítése Log in… MainWindow Bejelentkezés… You need to be logged into an account before you can rate packages. MainWindow Csomag értékelése előtt be kell jelentkezni egy felhasználói fiókba. diff --git a/data/catalogs/apps/haikudepot/id.catkeys b/data/catalogs/apps/haikudepot/id.catkeys index 73f8bef990..95d90ef7ba 100644 --- a/data/catalogs/apps/haikudepot/id.catkeys +++ b/data/catalogs/apps/haikudepot/id.catkeys @@ -1,4 +1,4 @@ -1 indonesian x-vnd.Haiku-HaikuDepot 401821302 +1 indonesian x-vnd.Haiku-HaikuDepot 732799617 Repository update error LocalRepositoryUpdateProcess Kesalahan pembaruan repositori An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Terjadi kesalahan saat menyegarkan repositori: %error% User Created UserLoginWindow Pengguna Dibuat @@ -15,7 +15,6 @@ Starting the package daemon failed:\n\n%Error% App Mulai layanan paket gagal :\ You have successfully authenticated as user %Nickname%. UserLoginWindow Anda telah berhasil diautentikasi sebagai pengguna %Nickname%. PackageInfoView No user ratings available. PackageInfoView Tak tersedia penilaian pengguna. -Downloading package '%name%' WorkStatusView Paket pengunduhan '%name%' It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Tadi tidak mungkin mengekstraksi informasi captcha yang diperlukan dari data yang dikirim kembali dari server. Rating PackageListView Penilaian Synchronizing icons ServerIconExportUpdateProcess Ikon sinkronisasi @@ -25,7 +24,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Aktif Login or Create account MainWindow Masuk atau Buat akun PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 package to download}other{# paket diunduh}} Ratings PackageInfoView Peringkat Switch account… MainWindow Beralih akun... Preferred language: UserLoginWindow Bahasa pilihan: @@ -100,7 +98,6 @@ n/a PackageInfoView n/a This rating is visible to other users RatePackageWindow Peringkat ini terlihat oleh pengguna lain View agreed usage conditions… MainWindow Lihat ketentuan penggunaan yang disepakati… Cancel MainWindow Batal -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(1 more to download)}other{(# more to download)}} Refresh repositories MainWindow Muat-ulang repositori Continue App Terus A password is required. UserLoginWindow Diperlukan kata sandi. @@ -124,16 +121,16 @@ The nickname is required. UserLoginWindow Nama panggilan diperlukan. Source packages MainWindow Paket sumber - no package size - Problem with working files App Masalah dengan file yang berkaitan -Rate package RatePackageWindow Nilai paket Try again App Coba lagi +Rate package RatePackageWindow Nilai paket Unknown PackageListView Tidak dikenal I agree to the usage conditions UserLoginWindow Saya menyetujui ketentuan penggunaan Log in UserLoginWindow Masuk Logged in as %User% MainWindow Masuk sebagai %User% Email address: UserLoginWindow Alamat email: Screenshot ScreenshotWindow Screenshot -A reboot is necessary to complete the installation process. PackageManager Boot ulang diperlukan untuk menyelesaikan proses pemasangan. HaikuDepot System name HaikuDepot +A reboot is necessary to complete the installation process. PackageManager Boot ulang diperlukan untuk menyelesaikan proses pemasangan. {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{I am at least one year old}other{I am # tahun lebih tua}} View latest usage conditions… MainWindow Lihat ketentuan penggunaan terbaru… Quit App Berhenti diff --git a/data/catalogs/apps/haikudepot/it.catkeys b/data/catalogs/apps/haikudepot/it.catkeys index bccddb26a6..15da6c75f6 100644 --- a/data/catalogs/apps/haikudepot/it.catkeys +++ b/data/catalogs/apps/haikudepot/it.catkeys @@ -1,4 +1,4 @@ -1 italian x-vnd.Haiku-HaikuDepot 2410119227 +1 italian x-vnd.Haiku-HaikuDepot 2741097542 Repository update error LocalRepositoryUpdateProcess Errore nell'aggiornamento del Repository Network error ServerHelper Errore di rete An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Si è verificato un errore nell'aggiornamento del repository: %error% @@ -16,7 +16,6 @@ Starting the package daemon failed:\n\n%Error% App Avvio del demone dei pacchet You have successfully authenticated as user %Nickname%. UserLoginWindow Ti sei autenticato con successo come utente %Nickname%. PackageInfoView No user ratings available. PackageInfoView Nessuna valutazione utente è disponibile. -Downloading package '%name%' WorkStatusView Download del pacchetto '%name%' in corso It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Non è stato possibile estrarre le informazioni captcha necessarie dai dati restituiti dal server. A network transport error has arisen communicating with the server system: %s ServerHelper Si è verificato un errore di rete nel tentativo di connettersi al server: %s Rating PackageListView Valutazione @@ -27,7 +26,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Attivo Login or Create account MainWindow Accedi o Registrati PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 pacchetto da scaricare}other{# pacchetti da scaricare}} Ratings PackageInfoView Valutazioni Switch account… MainWindow Cambia account… Preferred language: UserLoginWindow Lingua preferita: @@ -104,7 +102,6 @@ n/a PackageInfoView nd This rating is visible to other users RatePackageWindow Questa valutazione è visibile dagli altri utenti. View agreed usage conditions… MainWindow Vedi le condizioni d'uso accettate… Cancel MainWindow Annulla -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(1 ancora da scaricare)}other{(# ancora da scaricare)}} Refresh repositories MainWindow Aggiorna repository Continue App Continua A password is required. UserLoginWindow Una password è necessaria. @@ -130,16 +127,16 @@ Source packages MainWindow Pacchetti sorgente - no package size - Problem with working files App Problema con i file di supporto dell'applicazione Server error ServerHelper Errore del server -Rate package RatePackageWindow Valuta pacchetto Try again App Riprova +Rate package RatePackageWindow Valuta pacchetto Unknown PackageListView Sconosciuto I agree to the usage conditions UserLoginWindow Acconsento alle condizioni d'uso Log in UserLoginWindow Accesso Logged in as %User% MainWindow Sessione avviata come %User% Email address: UserLoginWindow Indirizzo e-mail: Screenshot ScreenshotWindow Istantanea -A reboot is necessary to complete the installation process. PackageManager Per completare l'installazione è necessario riavviare. HaikuDepot System name HaikuDepot +A reboot is necessary to complete the installation process. PackageManager Per completare l'installazione è necessario riavviare. {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{Ho almeno un anno}other{Ho # anni o oltre}} View latest usage conditions… MainWindow Vedi l'ultima revisione delle condizioni d'uso… Quit App Chiudi diff --git a/data/catalogs/apps/haikudepot/ja.catkeys b/data/catalogs/apps/haikudepot/ja.catkeys index 56d2f54b97..ce84aeb65e 100644 --- a/data/catalogs/apps/haikudepot/ja.catkeys +++ b/data/catalogs/apps/haikudepot/ja.catkeys @@ -1,14 +1,14 @@ -1 japanese x-vnd.Haiku-HaikuDepot 3544756144 +1 japanese x-vnd.Haiku-HaikuDepot 761125591 Repository update error LocalRepositoryUpdateProcess リポジトリアップデートエラー Network error ServerHelper ネットワークエラー An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess リポジトリの更新中に次のエラーが発生しました: %error% User Created UserLoginWindow 作成されたユーザー Check for updates… MainWindow 更新のチェック... -Uninstall PackageManager アンインストール Uninstalled PackageListView アンインストール済 It was not possible to create the new user. UserLoginWindow 新しいユーザーを作成できません。 Available packages MainWindow 使用可能なパッケージ Create account UserLoginWindow アカウントの作成 +Install %PackageTitle% PackageManager %PackageTitle% をインストール OK App OK The response to the captcha was incorrect. ServerHelper キャプチャの回答が間違っていました Develop packages MainWindow 開発用パッケージ @@ -17,7 +17,6 @@ Starting the package daemon failed:\n\n%Error% App パッケージデーモン You have successfully authenticated as user %Nickname%. UserLoginWindow ユーザー %Nickname% として無事に認証されました。 PackageInfoView <情報無し> No user ratings available. PackageInfoView ユーザー評価はありません。 -Downloading package '%name%' WorkStatusView パッケージ '%name%' のダウンロード中 It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow サーバーの返信から、必要なキャプチャ情報を抽出できませんでした。 A network transport error has arisen communicating with the server system: %s ServerHelper サーバーシステムと通信中にネットワーク転送エラーが発生しました: %s Rating PackageListView 評価 @@ -29,7 +28,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView 有効 Login or Create account MainWindow ログインまたはアカウントの作成 PackageContentsView <リモートパッケージには利用できません> -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1個のダウンロードパッケージ}other{#個のダウンロードパッケージ}} Ratings PackageInfoView 評価 Switch account… MainWindow アカウントの切り替え... Preferred language: UserLoginWindow 優先言語: @@ -46,8 +44,6 @@ Category FilterView 分類 User rating RatePackageWindow ユーザーによる評価 Installed packages MainWindow インストール済パッケージ A requested object or an object involved in the request was not found on the server. ServerHelper 要求されたオブジェクトまたはリクエストに関連するオブジェクトがサーバー上に見つからなかった。 -Fatal error PackageManager 致命的なエラー -Package action failed PackageInfoView パッケージアクションが失敗しました No changelog available. PackageInfoView 変更記録はありません。 Error App エラー There was a puzzling response from the web service. UserLoginWindow ウェブサービスから不可解なレスポンスがあった。 @@ -79,7 +75,6 @@ Stability RatePackageWindow 安定度 Send RatePackageWindow 送信する Start package daemon App パッケージデーモンの起動 The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow 間違って入力する可能性を減らすため、パスワードを繰り返す必要があります。 -The package action could not be scheduled: %Error% PackageInfoView パッケージアクションはスケジュールできません: %Error% Cancel SettingsWindow キャンセル Cancel RatePackageWindow 中止 Inactive PackageListView 無効 @@ -89,7 +84,6 @@ There are problems in the supplied data: UserLoginWindow 入力されたデー OK MainWindow OK {0, plural, one{# item} other{# items}} PackageListView {0, plural, one{# アイテム} other{# アイテム}} Usage conditions download problem UserLoginWindow 使用条件のダウンロードで問題 -OK PackageInfoView OK Downloading: PackageInfoView ダウンロード中: Quit MainWindow 終了 Success UserLoginWindow 成功 @@ -118,7 +112,6 @@ This rating is visible to other users RatePackageWindow この評価はほか While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow パッケージデータの更新中に問題が発生しました。そのためデータが期限切れに、つまりアプリケーションの表示から消えてしまいます。この問題の詳細は、アプリケーションのログから得られるでしょう。\nログの見方についての情報は、HaikuユーザーガイドのHaikuDepotの章で得られます。 View agreed usage conditions… MainWindow 同意した使用条件を見る... Cancel MainWindow 中止 -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(1 個以上のダウンロード)}other{(# 個以上のダウンロード)}} Refresh repositories MainWindow リポジトリの更新 Continue App 続行 A password is required. UserLoginWindow パスワードが必要です。 @@ -131,6 +124,7 @@ Status PackageListView 状態 The password has been incorrectly repeated. UserLoginWindow パスワードが間違って再入力されています。 Network transport error ServerHelper ネットワーク転送エラー The password previously supplied for the user [%Nickname%] is not currently valid. The user will be logged-out of this application and you should login again with your updated password. MainWindow 以前にユーザー [%Nickname%] に提供されたパスワードは現在期限切れです。ユーザーはこのアプリケーションをログアウトして、新しいパスワードで再ログインする必要があります。 +Uninstall %PackageTitle% PackageManager %PackageTitle% をアンインストール Update RatePackageWindow 更新 OK ServerHelper OK Language UserLoginWindow 言語 @@ -145,8 +139,8 @@ Source packages MainWindow ソースパッケージ - no package size - Problem with working files App 作業用ファイルに問題があります Server error ServerHelper サーバーエラー -Rate package RatePackageWindow パッケージを評価 Try again App 再試行 +Rate package RatePackageWindow パッケージを評価 Unknown PackageListView 不明 I agree to the usage conditions UserLoginWindow 使用条件に同意します Log in UserLoginWindow ログイン @@ -154,8 +148,8 @@ Sending anonymous usage data MainWindow 匿名の使用状況データーを送 Logged in as %User% MainWindow %User% としてログイン Email address: UserLoginWindow メールアドレス: Screenshot ScreenshotWindow スクリーンショット -A reboot is necessary to complete the installation process. PackageManager インストールプロセスを完了するには再起動が必要です。 HaikuDepot System name HaikuDepot +A reboot is necessary to complete the installation process. PackageManager インストールプロセスを完了するには再起動が必要です。 Yes MainWindow はい {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{私は少なくとも 1 歳です}other{私は # 歳以上です}} View latest usage conditions… MainWindow 最新の使用条件を見る... @@ -172,7 +166,6 @@ Fetching remote repository data LocalRepositoryUpdateProcess リモートリポ Description PackageListView 説明 Open %DeskbarLink% PackageManager %DeskbarLink% を開く User creation error UserLoginWindow ユーザー作成エラー -Install PackageManager インストール Input validation UserLoginWindow 入力検証 Log in… MainWindow ログイン... You need to be logged into an account before you can rate packages. MainWindow パッケージの評価前にアカウントにログインする必要があります。 diff --git a/data/catalogs/apps/haikudepot/nl.catkeys b/data/catalogs/apps/haikudepot/nl.catkeys index aea4c4f12f..88cbaf1bf9 100644 --- a/data/catalogs/apps/haikudepot/nl.catkeys +++ b/data/catalogs/apps/haikudepot/nl.catkeys @@ -1,10 +1,9 @@ -1 dutch; flemish x-vnd.Haiku-HaikuDepot 3544756144 +1 dutch; flemish x-vnd.Haiku-HaikuDepot 3437352458 Repository update error LocalRepositoryUpdateProcess Fout bij updaten softwarebronnen Network error ServerHelper Netwerk fout An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Er is een fout opgetreden bij het verversen van de softwarebronnen: %error% User Created UserLoginWindow Gebruiker Aangemaakt Check for updates… MainWindow Controleer op updates… -Uninstall PackageManager Verwijderen Uninstalled PackageListView Verwijderd It was not possible to create the new user. UserLoginWindow Het was niet mogelijk om een nieuwe gebruiker aan te maken. Available packages MainWindow Beschikbare pakketten @@ -17,7 +16,6 @@ Starting the package daemon failed:\n\n%Error% App Starten van de pakket-daemon You have successfully authenticated as user %Nickname%. UserLoginWindow U bent succesvol ingelogd als gebruiker %Nickname%. PackageInfoView No user ratings available. PackageInfoView Geen beoordelingen beschikbaar. -Downloading package '%name%' WorkStatusView Downloading pakket '%name%' It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Het was niet mogelijk om de vereiste captcha-informatie uit de data afkomstig van de server te halen. A network transport error has arisen communicating with the server system: %s ServerHelper Een netwerk transport fout is opgetreden bij het communiceren met het server systeem: %s Rating PackageListView Beoordeling @@ -29,7 +27,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Actief Login or Create account MainWindow Inloggen of registreren PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 pakket om te downloaden}other{# pakketten om te downloaden}} Ratings PackageInfoView Beoordelingen Switch account… MainWindow Wissel van account… Preferred language: UserLoginWindow Voorkeurstaal: @@ -46,8 +43,6 @@ Category FilterView Categorie User rating RatePackageWindow Beoordeling Installed packages MainWindow Geïnstalleerde pakketten A requested object or an object involved in the request was not found on the server. ServerHelper Een gevraagd object of een object verbonden in het verzoek werd niet gevonden op de server. -Fatal error PackageManager Fatale fout -Package action failed PackageInfoView Pakketactie mislukt No changelog available. PackageInfoView Geen changelog beschikbaar. Error App Fout There was a puzzling response from the web service. UserLoginWindow De webservice gaf een raadselachtig antwoord. @@ -79,7 +74,6 @@ Stability RatePackageWindow Stabiliteit Send RatePackageWindow Versturen Start package daemon App Start pakket-daemon The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow Het wachtwoord moet tweemaal ingevuld worden om te kans op een verkeerde invoer te verkleinen. -The package action could not be scheduled: %Error% PackageInfoView De pakketactie kon niet gepland worden: %Error% Cancel SettingsWindow Annuleren Cancel RatePackageWindow Annuleren Inactive PackageListView Inactief @@ -89,7 +83,6 @@ There are problems in the supplied data: UserLoginWindow Er zijn problemen met OK MainWindow OK {0, plural, one{# item} other{# items}} PackageListView {0, plural, one{# item} other{# items}} Usage conditions download problem UserLoginWindow Gebruiksvoorwaarden downloadprobleem -OK PackageInfoView Okee Downloading: PackageInfoView Downloaden: Quit MainWindow Afsluiten Success UserLoginWindow Succes @@ -118,7 +111,6 @@ This rating is visible to other users RatePackageWindow Deze waardering is zich While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow Er is een fout opgetreden tijdens het bijwerken van de pakketgegevens. Hierdoor kan het zijn dat de weergegeven gegevens ontbreken of verouderd zijn. Meer details over dit probleem zijn te vinden in de logbestanden van deze toepassing.\n Informatie over hoe u de logbestanden kan bekijken, is beschikbaar in het hoofstuk over HaikuDepot in de Haiku Handleiding. View agreed usage conditions… MainWindow Afgesproken gebruiksvoorwaarden bekijken ... Cancel MainWindow Annuleren -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(nog 1 om te downloaden)}other{(# meer om te downloaden)}} Refresh repositories MainWindow Pakketbronnen verversen Continue App Doorgaan A password is required. UserLoginWindow Een wachtwoord is vereist. @@ -145,8 +137,8 @@ Source packages MainWindow Broncodepakketten - no package size - Problem with working files App Probleem met de werkbestanden Server error ServerHelper Server fout -Rate package RatePackageWindow Beoordeel pakket Try again App Opnieuw proberen +Rate package RatePackageWindow Beoordeel pakket Unknown PackageListView Onbekend I agree to the usage conditions UserLoginWindow Ik aanvaard de gebruiksvoorwaarden Log in UserLoginWindow Inloggen @@ -154,8 +146,8 @@ Sending anonymous usage data MainWindow Bezig met het verzenden van anonieme ge Logged in as %User% MainWindow Ingelogd als %User% Email address: UserLoginWindow E-mailadres: Screenshot ScreenshotWindow Schermafbeelding -A reboot is necessary to complete the installation process. PackageManager Een herstart is vereist om het installatie proces te voltooien. HaikuDepot System name HaikuDepot +A reboot is necessary to complete the installation process. PackageManager Een herstart is vereist om het installatie proces te voltooien. Yes MainWindow Ja {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{Ik ben tenminste één jaar oud}other{Ik ben # jaar of ouder}} View latest usage conditions… MainWindow Bekijk laatste gebruiksvoorwaarden... @@ -172,7 +164,6 @@ Fetching remote repository data LocalRepositoryUpdateProcess Ophalen pakketbron Description PackageListView Beschrijving Open %DeskbarLink% PackageManager Open %DeskbarLink% User creation error UserLoginWindow Fout bij het aanmaken van de gebruiker -Install PackageManager Installeren Input validation UserLoginWindow Invoervalidatie Log in… MainWindow Inloggen… You need to be logged into an account before you can rate packages. MainWindow U moet ingelogd zijn om pakketten te kunnen beoordelen. diff --git a/data/catalogs/apps/haikudepot/pl.catkeys b/data/catalogs/apps/haikudepot/pl.catkeys index 5c3e31f5f3..ad1fb75bae 100644 --- a/data/catalogs/apps/haikudepot/pl.catkeys +++ b/data/catalogs/apps/haikudepot/pl.catkeys @@ -1,10 +1,9 @@ -1 polish x-vnd.Haiku-HaikuDepot 3544756144 +1 polish x-vnd.Haiku-HaikuDepot 3437352458 Repository update error LocalRepositoryUpdateProcess Błąd podczas odświeżania repozytorium Network error ServerHelper Błąd sieci An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Wystąpił błąd podczas odświeżania repozytorium: %error% User Created UserLoginWindow Użytkownik utworzony Check for updates… MainWindow Sprawdź dostępność aktualizacji… -Uninstall PackageManager Usuń Uninstalled PackageListView Niezainstalowany It was not possible to create the new user. UserLoginWindow Nie udało się utworzyć nowego użytkownika. Available packages MainWindow Dostępne pakiety @@ -17,7 +16,6 @@ Starting the package daemon failed:\n\n%Error% App Uruchamianie demona pakietó You have successfully authenticated as user %Nickname%. UserLoginWindow Zalogowano pomyślnie jako %Nickname%. PackageInfoView No user ratings available. PackageInfoView Brak ocen użytkowników. -Downloading package '%name%' WorkStatusView Pobieranie pakietu „%name%” It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Nie udało się uzyskać niezbędnych informacji o teście CAPTCHA z danych przesłanych przez serwer. A network transport error has arisen communicating with the server system: %s ServerHelper Wystąpił błąd transmisji sieciowej podczas komunikacji z serwerem: %s Rating PackageListView Ocena @@ -29,7 +27,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Aktywny Login or Create account MainWindow Zaloguj lub utwórz konto PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural, one{1 pakiet do pobrania} few{# pakiety do pobrania} many{# pakietów do pobrania} other{# pakietu do pobrania}} Ratings PackageInfoView Oceny Switch account… MainWindow Przełącz konto… Preferred language: UserLoginWindow Preferowany język: @@ -46,8 +43,6 @@ Category FilterView Kategoria User rating RatePackageWindow Ocena użytkowników Installed packages MainWindow Zainstalowane pakiety A requested object or an object involved in the request was not found on the server. ServerHelper Żądany obiekt lub obiekt zależny nie został znaleziony na serwerze. -Fatal error PackageManager Błąd krytyczny -Package action failed PackageInfoView Akcja na pakiecie nie powiodła się No changelog available. PackageInfoView Dziennik zmian nie jest dostępny. Error App Błąd There was a puzzling response from the web service. UserLoginWindow Odebrano dziwną odpowiedź od usługi sieciowej. @@ -79,7 +74,6 @@ Stability RatePackageWindow Stabilność Send RatePackageWindow Wyślij Start package daemon App Uruchom demona pakietów The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow Hasło musi zostać wprowadzone dwa razy w celu zredukowania szansy na ustawienie błędnego hasła. -The package action could not be scheduled: %Error% PackageInfoView Akcja na pakiecie nie mogła być zakolejkowana: %Error% Cancel SettingsWindow Anuluj Cancel RatePackageWindow Anuluj Inactive PackageListView Nieaktywny @@ -89,7 +83,6 @@ There are problems in the supplied data: UserLoginWindow Istnieją problemy w d OK MainWindow OK {0, plural, one{# item} other{# items}} PackageListView {0, plural, one{# element} few{# elementy} many{# elementów} other{# elementu}} Usage conditions download problem UserLoginWindow Problem z pobieraniem warunków korzystania -OK PackageInfoView OK Downloading: PackageInfoView Pobieranie: Quit MainWindow Zakończ Success UserLoginWindow Powodzenie @@ -118,7 +111,6 @@ This rating is visible to other users RatePackageWindow Ta ocena jest widoczna While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow Podczas aktualizacji danych o pakietach, wystąpił problem który może spowodować brak lub wyświetlanie błędnych informacji. Szczegóły dotyczące tego problemu mogą być dostępne w dzienniku aplikacji.\nInformacje o tym jak dostać się do dziennika znajdują się w rozdziale HaikuDepot Podręcznika użytkownika Haiku. View agreed usage conditions… MainWindow Zobacz zaakceptowane warunki korzystania… Cancel MainWindow Anuluj -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural, one{(1 więcej do pobrania)} other{(# więcej do pobrania)}} Refresh repositories MainWindow Odśwież repozytoria Continue App Kontynuuj A password is required. UserLoginWindow Hasło jest wymagane. @@ -145,8 +137,8 @@ Source packages MainWindow Pakiety źródłowe - no package size - Problem with working files App Problem z plikami roboczymi Server error ServerHelper Błąd serwera -Rate package RatePackageWindow Oceń pakiet Try again App Spróbuj ponownie +Rate package RatePackageWindow Oceń pakiet Unknown PackageListView Nieznany I agree to the usage conditions UserLoginWindow Zgadzam się na warunki korzystania Log in UserLoginWindow Zaloguj @@ -154,8 +146,8 @@ Sending anonymous usage data MainWindow Wysyłanie anonimowych danych o korzyst Logged in as %User% MainWindow Zalogowano jako %User% Email address: UserLoginWindow Adres e-mail: Screenshot ScreenshotWindow Zrzut ekranu -A reboot is necessary to complete the installation process. PackageManager Ponowne uruchomienie jest wymagane aby zakończyć proces instalacji. HaikuDepot System name HaikuDepot +A reboot is necessary to complete the installation process. PackageManager Ponowne uruchomienie jest wymagane aby zakończyć proces instalacji. Yes MainWindow Tak {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural, one{Mam co najmniej rok} few{Mam ukończone # lata lub więcej} many{Mam ukończone # lat lub więcej} other{Mam ukończone # roku lub więcej}} View latest usage conditions… MainWindow Zobacz najnowsze warunki korzystania… @@ -172,7 +164,6 @@ Fetching remote repository data LocalRepositoryUpdateProcess Pobieranie danych Description PackageListView Opis Open %DeskbarLink% PackageManager Otwórz %DeskbarLink% User creation error UserLoginWindow Błąd tworzenia użytkownika -Install PackageManager Zainstaluj Input validation UserLoginWindow Walidacja wejścia Log in… MainWindow Zaloguj się… You need to be logged into an account before you can rate packages. MainWindow Musisz być zalogowany, aby móc oceniać pakiety. diff --git a/data/catalogs/apps/haikudepot/pt.catkeys b/data/catalogs/apps/haikudepot/pt.catkeys index 21e414d2ea..1e1d8ccfa4 100644 --- a/data/catalogs/apps/haikudepot/pt.catkeys +++ b/data/catalogs/apps/haikudepot/pt.catkeys @@ -1,10 +1,9 @@ -1 portuguese x-vnd.Haiku-HaikuDepot 3544756144 +1 portuguese x-vnd.Haiku-HaikuDepot 3437352458 Repository update error LocalRepositoryUpdateProcess Erro na atualização de repositório Network error ServerHelper Erro de rede An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Ocorreu um erro ao atualizar o repositório: %error% User Created UserLoginWindow Utilizador Criado Check for updates… MainWindow Verificar atualizações… -Uninstall PackageManager Desinstalar Uninstalled PackageListView Desinstalado It was not possible to create the new user. UserLoginWindow Não foi possível criar o novo utilizador. Available packages MainWindow Pacotes disponíveis @@ -17,7 +16,6 @@ Starting the package daemon failed:\n\n%Error% App Falhou a inicialização do You have successfully authenticated as user %Nickname%. UserLoginWindow Iniciou com sucesso a sessão com o utilizador %Nickname%. PackageInfoView No user ratings available. PackageInfoView Não há avaliações de utilizadores disponíveis. -Downloading package '%name%' WorkStatusView A descarregar o pacote '%name%' It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Não foi possível extrair a informação de captcha necessária a partir dos dados enviados pelo servidor. A network transport error has arisen communicating with the server system: %s ServerHelper Ocorreu um erro de transporte da rede ao comunicar com o sistema servidor: %s Rating PackageListView Avaliação @@ -29,7 +27,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Ativo Login or Create account MainWindow Iniciar sessão ou Criar conta PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 pacote para descarregar}other{# pacotes para descarregar}} Ratings PackageInfoView Avaliações Switch account… MainWindow Mudar de conta… Preferred language: UserLoginWindow Língua preferida: @@ -46,8 +43,6 @@ Category FilterView Categoria User rating RatePackageWindow Avaliação do utilizador Installed packages MainWindow Pacotes instalados A requested object or an object involved in the request was not found on the server. ServerHelper Um objeto pedido ou um objeto envolvido no pedido não foi encontrado no servidor. -Fatal error PackageManager Erro fatal -Package action failed PackageInfoView Falhou a ação de pacote No changelog available. PackageInfoView Nenhum registo de alterações disponível. Error App Erro There was a puzzling response from the web service. UserLoginWindow A resposta do serviço web é incompreensível. @@ -79,7 +74,6 @@ Stability RatePackageWindow Estabilidade Send RatePackageWindow Enviar Start package daemon App Iniciar serviço de pacotes The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow A palavra-passe deve ser repetida para diminuir a probabilidade de a introduzir incorretamente. -The package action could not be scheduled: %Error% PackageInfoView Não foi possível agendar a ação de pacote: %Error% Cancel SettingsWindow Cancelar Cancel RatePackageWindow Cancelar Inactive PackageListView Inativo @@ -89,7 +83,6 @@ There are problems in the supplied data: UserLoginWindow Há problemas nos dado OK MainWindow OK {0, plural, one{# item} other{# items}} PackageListView {0, plural, one{# item} other{# itens}} Usage conditions download problem UserLoginWindow Problema na descarga das condições de utilização -OK PackageInfoView OK Downloading: PackageInfoView A descarregar: Quit MainWindow Sair Success UserLoginWindow Sucesso @@ -118,7 +111,6 @@ This rating is visible to other users RatePackageWindow Esta classificação é While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow Ocorreu um problema enquanto os dados de pacotes eram atualizados que poderá tornar os dados desatualizados ou ausentes da aplicação. Detalhes adicionais a respeito deste problema poderão ser obtidos a partir dos registos da aplicação.\nInformação sobre como visualizar os registos (logs) está disponível na secção HaikuDepot do Guia do Utilizador do Haiku. View agreed usage conditions… MainWindow Ver condições de utilização acordadas… Cancel MainWindow Cancelar -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(1 mais para descarregar)}other{(# mais para descarregar)}} Refresh repositories MainWindow Atualizar repositórios Continue App Continuar A password is required. UserLoginWindow É necessária uma palavra-passe. @@ -145,8 +137,8 @@ Source packages MainWindow Pacotes de código-fonte - no package size - Problem with working files App Problema com ficheiros de trabalho Server error ServerHelper Erro do servidor -Rate package RatePackageWindow Avaliar pacote Try again App Tentar novamente +Rate package RatePackageWindow Avaliar pacote Unknown PackageListView Desconhecido I agree to the usage conditions UserLoginWindow Eu concordo com as condições de utilização Log in UserLoginWindow Iniciar sessão @@ -154,8 +146,8 @@ Sending anonymous usage data MainWindow A enviar dados de utilização anónimo Logged in as %User% MainWindow Sessão iniciada como %User% Email address: UserLoginWindow Endereço de email: Screenshot ScreenshotWindow Captura de ecrã -A reboot is necessary to complete the installation process. PackageManager É necessário reiniciar para completar o processo de instalação. HaikuDepot System name HaikuDepot +A reboot is necessary to complete the installation process. PackageManager É necessário reiniciar para completar o processo de instalação. Yes MainWindow Sim {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{Tenho pelo menos um ano de idade}other{Tenho # ou mais anos de idade}} View latest usage conditions… MainWindow Ver as condições de utilização mais recentes… @@ -172,7 +164,6 @@ Fetching remote repository data LocalRepositoryUpdateProcess A obter dados do r Description PackageListView Descrição Open %DeskbarLink% PackageManager Abrir %DeskbarLink% User creation error UserLoginWindow Erro ao criar utilizador -Install PackageManager Instalar Input validation UserLoginWindow Validação de entrada Log in… MainWindow Entrar… You need to be logged into an account before you can rate packages. MainWindow Você precisa de ter sessão iniciada com uma conta antes de poder avaliar pacotes. diff --git a/data/catalogs/apps/haikudepot/pt_BR.catkeys b/data/catalogs/apps/haikudepot/pt_BR.catkeys index d52fcaeec2..691710330c 100644 --- a/data/catalogs/apps/haikudepot/pt_BR.catkeys +++ b/data/catalogs/apps/haikudepot/pt_BR.catkeys @@ -1,10 +1,9 @@ -1 portuguese (brazil) x-vnd.Haiku-HaikuDepot 3544756144 +1 portuguese (brazil) x-vnd.Haiku-HaikuDepot 3437352458 Repository update error LocalRepositoryUpdateProcess Erro de atualização do repositório Network error ServerHelper Erro de rede An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Ocorreu um erro ao atualizar o repositório: %error% User Created UserLoginWindow Criado pelo usuário Check for updates… MainWindow Verificar atualizações… -Uninstall PackageManager Desinstalar Uninstalled PackageListView Não instalado It was not possible to create the new user. UserLoginWindow Não foi possível criar o novo usuário. Available packages MainWindow Pacotes disponíveis @@ -17,7 +16,6 @@ Starting the package daemon failed:\n\n%Error% App A inicialização do daemon You have successfully authenticated as user %Nickname%. UserLoginWindow Você foi autenticado com sucesso como usuário %Nickname%. PackageInfoView No user ratings available. PackageInfoView Nenhuma avaliação de usuário disponível. -Downloading package '%name%' WorkStatusView Baixando pacote '%name%' It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Não foi possível extrair as informações de captcha necessárias dos dados enviados de volta do servidor. A network transport error has arisen communicating with the server system: %s ServerHelper Ocorreu um erro de transporte de rede na comunicação com o sistema do servidor: %s Rating PackageListView Avaliação @@ -29,7 +27,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Ativo Login or Create account MainWindow Faça login ou crie uma conta PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 pacote para baixar}other{# pacotes para baixar}} Ratings PackageInfoView Classificações Switch account… MainWindow Alternar conta… Preferred language: UserLoginWindow Idioma preferido: @@ -39,15 +36,13 @@ Local LocalPkgDataLoadProcess Local Rate %Package% RatePackageWindow Avaliar %Package% An error occurred while initializing the package manager: %message% LocalPkgDataLoadProcess Ocorreu um erro ao inicializar o gerenciador de pacotes: %message% Quit HaikuDepot App Fechar o Depósito Haiku -Would it be acceptable to send anonymous usage data to the HaikuDepotServer system from this computer? You can change your preference in the \"Settings\" window later. MainWindow Seria aceitável enviar dados de uso anônimos para o sistema HaikuDepotServer deste computador? Você pode alterar suas preferências na janela \"Settings\" posteriormente. +Would it be acceptable to send anonymous usage data to the HaikuDepotServer system from this computer? You can change your preference in the \"Settings\" window later. MainWindow Seria aceitável enviar dados anônimos de uso deste computador para o sistema HaikuDepotServer? Você pode alterar suas preferências posteriormente na janela \"Configurações\". An unexpected error '%Message%' has arisen with property '%Property%' UserLoginWindow Um erro inesperado '%Message%' surgiu com a propriedade '%Property%' A response to the captcha question must be provided. UserLoginWindow Uma resposta à pergunta do captcha deve ser fornecida. Category FilterView Categoria User rating RatePackageWindow Avaliação do utilizador Installed packages MainWindow Pacotes instalados A requested object or an object involved in the request was not found on the server. ServerHelper Um objeto solicitado ou um objeto envolvido na solicitação não foi encontrado no servidor. -Fatal error PackageManager Erro fatal -Package action failed PackageInfoView A ação do pacote falhou No changelog available. PackageInfoView Nenhum relatório de mudanças disponível. Error App Erro There was a puzzling response from the web service. UserLoginWindow Houve uma resposta enigmática do serviço web. @@ -63,7 +58,7 @@ Cancel UserLoginWindow Cancelar HaikuDepot needs the package daemon to function, and it appears to be not running.\nWould you like to start it now? App O Depósito Haiku precisa do daemon de pacote para funcionar e ele parece não estar em execução.\nGostaria de iniciá-lo agora? Click a package to view information PackageInfoView Clique em um pacote para visualizar a informação The password must be at least eight characters long, consist of at least two digits and one upper case character. UserLoginWindow A senha deve ter pelo menos oito caracteres, pelo menos dois dígitos e um caractere maiúsculo. -Share anonymous usage data with HaikuDepotServer SettingsWindow Compartilhe dados de uso anônimos com HaikuDepotServer +Share anonymous usage data with HaikuDepotServer SettingsWindow Compartilhar dados anônimos de uso com HaikuDepotServer Contents PackageInfoView Conteúdo Close PackageManager Fechar Changelog PackageInfoView Registro de alterações @@ -79,7 +74,6 @@ Stability RatePackageWindow Estabilidade Send RatePackageWindow Enviar Start package daemon App Iniciar daemon de pacote The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow A senha deve ser repetida para reduzir a chance de digitação incorreta da senha. -The package action could not be scheduled: %Error% PackageInfoView A ação do pacote não pôde ser agendada: %Error% Cancel SettingsWindow Cancelar Cancel RatePackageWindow Cancelar Inactive PackageListView Inativo @@ -89,7 +83,6 @@ There are problems in the supplied data: UserLoginWindow Existem problemas nos OK MainWindow OK {0, plural, one{# item} other{# items}} PackageListView {0, plural, one{# item} other{# itens}} Usage conditions download problem UserLoginWindow Problema de download de condições de uso -OK PackageInfoView OK Downloading: PackageInfoView Baixando: Quit MainWindow Sair Success UserLoginWindow Sucesso @@ -118,7 +111,6 @@ This rating is visible to other users RatePackageWindow Esta avaliação é vis While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow Ao atualizar os dados do pacote, surgiu um problema que pode fazer com que os dados fiquem desatualizados ou faltem na tela do aplicativo. Detalhes adicionais sobre esse problema podem ser obtidos nos logs do aplicativo.\nAs informações sobre como visualizar os logs estão disponíveis na seção HaikuDepot do Guia do usuário do Haiku. View agreed usage conditions… MainWindow Ver as condições de uso acordadas… Cancel MainWindow Cancelar -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(mais 1 para baixar)}other{(mais # para baixar)}} Refresh repositories MainWindow Atualizar repositórios Continue App Continuar A password is required. UserLoginWindow É necessária uma senha. @@ -145,17 +137,17 @@ Source packages MainWindow Pacotes fonte - no package size - Problem with working files App Problema com arquivos de trabalho Server error ServerHelper Erro de servidor -Rate package RatePackageWindow Avaliar pacote… Try again App Tente novamente +Rate package RatePackageWindow Avaliar pacote… Unknown PackageListView Desconhecido I agree to the usage conditions UserLoginWindow Eu concordo com as condições de uso Log in UserLoginWindow Entrar -Sending anonymous usage data MainWindow Envio de dados anônimos de uso +Sending anonymous usage data MainWindow Enviando de dados anônimos de uso Logged in as %User% MainWindow Autenticado como %User% Email address: UserLoginWindow Endereço de e-mail: Screenshot ScreenshotWindow Captura de tela -A reboot is necessary to complete the installation process. PackageManager É necessário reinicializar para concluir o processo de instalação. HaikuDepot System name Depósito Haiku +A reboot is necessary to complete the installation process. PackageManager É necessário reinicializar para concluir o processo de instalação. Yes MainWindow Sim {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{Eu tenho pelo menos um ano de idade}other{Eu tenho # anos de idade ou mais}} View latest usage conditions… MainWindow Ver as últimas condições de uso… @@ -172,7 +164,6 @@ Fetching remote repository data LocalRepositoryUpdateProcess Buscando dados de Description PackageListView Descrição Open %DeskbarLink% PackageManager Abrir %DeskbarLink% User creation error UserLoginWindow Erro de criação de usuário -Install PackageManager Instalar Input validation UserLoginWindow Validação de entrada Log in… MainWindow Entrar… You need to be logged into an account before you can rate packages. MainWindow Você precisa estar autenticado em uma conta antes de poder classificar pacotes. diff --git a/data/catalogs/apps/haikudepot/ro.catkeys b/data/catalogs/apps/haikudepot/ro.catkeys index fbf6576796..5da10bb703 100644 --- a/data/catalogs/apps/haikudepot/ro.catkeys +++ b/data/catalogs/apps/haikudepot/ro.catkeys @@ -1,10 +1,9 @@ -1 romanian x-vnd.Haiku-HaikuDepot 3544756144 +1 romanian x-vnd.Haiku-HaikuDepot 3437352458 Repository update error LocalRepositoryUpdateProcess Eroare de actualizare a depozitului Network error ServerHelper Eroare de rețea An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess A apărut o eroare la reîmprospătarea depozitului: %error% User Created UserLoginWindow Utilizator creat Check for updates… MainWindow Verifică pentru actualizări… -Uninstall PackageManager Dezinstalează Uninstalled PackageListView Dezinstalat It was not possible to create the new user. UserLoginWindow Nu a fost posibil să se creeze utilizatorul nou. Available packages MainWindow Pachete disponibile @@ -17,7 +16,6 @@ Starting the package daemon failed:\n\n%Error% App Pornirea serviciului de pach You have successfully authenticated as user %Nickname%. UserLoginWindow V-ați autentificat cu succes ca utilizatorul %Nickname%. PackageInfoView No user ratings available. PackageInfoView Nu sunt disponibile evaluări ale utilizatorilor. -Downloading package '%name%' WorkStatusView Se descarcă pachetul „%name%” It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Nu a fost posibil să fie extrase informațiile captcha necesare din datele trimise înapoi de pe server. A network transport error has arisen communicating with the server system: %s ServerHelper A apărut o eroare de transport în rețea la comunicarea cu sistemul de server: %s Rating PackageListView Evaluare @@ -29,7 +27,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Active Login or Create account MainWindow Autentificați-vă sau creați un cont PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 package to download}other{# packages to download}} Ratings PackageInfoView Evaluări Switch account… MainWindow Comutare cont… Preferred language: UserLoginWindow Limbă preferată: @@ -46,8 +43,6 @@ Category FilterView Categorie User rating RatePackageWindow Evaluarea utilizatorului Installed packages MainWindow Pachete instalate A requested object or an object involved in the request was not found on the server. ServerHelper Un obiect cerut sau un obiect implicat în cerere nu a fost găsit pe server. -Fatal error PackageManager Eroare fatală -Package action failed PackageInfoView Acțiunea pachetului a eșuat No changelog available. PackageInfoView Nu există istoric de modificări disponibil. Error App Eroare There was a puzzling response from the web service. UserLoginWindow A existat un răspuns nedumerit din partea serviciului web. @@ -79,7 +74,6 @@ Stability RatePackageWindow Stabilitate Send RatePackageWindow Trimite Start package daemon App Pornește serviciul de pachete The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow Parola trebuie repetată pentru a reduce șansa introducerii incorecte a parolei. -The package action could not be scheduled: %Error% PackageInfoView Acțiunea pachetului nu a putut fi programată: %Error% Cancel SettingsWindow Anulează Cancel RatePackageWindow Anulează Inactive PackageListView Inactive @@ -89,7 +83,6 @@ There are problems in the supplied data: UserLoginWindow Există probleme în d OK MainWindow OK {0, plural, one{# item} other{# items}} PackageListView {0, plural, one{# item} other{# items}} Usage conditions download problem UserLoginWindow Problemă de descărcare a condițiilor de utilizare -OK PackageInfoView OK Downloading: PackageInfoView Se descarcă: Quit MainWindow Ieșire Success UserLoginWindow Succes @@ -118,7 +111,6 @@ This rating is visible to other users RatePackageWindow Această evaluare este While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow În timp ce actualizați datele pachetelor, a apărut o problemă care poate determina depășirea sau lipsa datelor de pe afișajul aplicației. Detalii suplimentare referitoare la această problemă pot fi obținute din istoricul aplicației.\nInformații despre modul de vizualizare a istoricului sunt disponibile în secțiunea HaikuDepot a Ghidului utilizatorului Haiku. View agreed usage conditions… MainWindow Vizualizați condițiile de utilizare convenite… Cancel MainWindow Anulează -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(1 more to download)}other{(# more to download)}} Refresh repositories MainWindow Reîmprospătează depozitele Continue App Continuă A password is required. UserLoginWindow Este necesară o parolă. @@ -145,8 +137,8 @@ Source packages MainWindow Pachete sursă - no package size - Problem with working files App Problemă cu fișierele de lucru Server error ServerHelper Eroare de server -Rate package RatePackageWindow Evaluați pachetul Try again App Încearcă din nou +Rate package RatePackageWindow Evaluați pachetul Unknown PackageListView Necunoscut I agree to the usage conditions UserLoginWindow Sunt de acord cu condițiile de utilizare Log in UserLoginWindow Autentificare @@ -154,8 +146,8 @@ Sending anonymous usage data MainWindow Se trimit datele de utilizare anonime Logged in as %User% MainWindow Autentificat ca %User% Email address: UserLoginWindow Adresă de email: Screenshot ScreenshotWindow Captură de ecran -A reboot is necessary to complete the installation process. PackageManager Este necesară o repornire pentru a finaliza procesul de instalare. HaikuDepot System name HaikuDepot +A reboot is necessary to complete the installation process. PackageManager Este necesară o repornire pentru a finaliza procesul de instalare. Yes MainWindow Da {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{I am at least one year old}other{I am # years of age or older}} View latest usage conditions… MainWindow Vizualizați cele mai recente condiții de utilizare… @@ -172,7 +164,6 @@ Fetching remote repository data LocalRepositoryUpdateProcess Se aduc datele dep Description PackageListView Descriere Open %DeskbarLink% PackageManager Deschide %DeskbarLink% User creation error UserLoginWindow Eroare la crearea utilizatorului -Install PackageManager Instalare Input validation UserLoginWindow Validarea intrării Log in… MainWindow Autentificare… You need to be logged into an account before you can rate packages. MainWindow Trebuie să vă autentificați la un cont înainte de a putea evalua pachete. diff --git a/data/catalogs/apps/haikudepot/ru.catkeys b/data/catalogs/apps/haikudepot/ru.catkeys index d7e7faa155..301e08001a 100644 --- a/data/catalogs/apps/haikudepot/ru.catkeys +++ b/data/catalogs/apps/haikudepot/ru.catkeys @@ -1,4 +1,4 @@ -1 russian x-vnd.Haiku-HaikuDepot 3106374143 +1 russian x-vnd.Haiku-HaikuDepot 3437352458 Repository update error LocalRepositoryUpdateProcess Ошибка обновления репозитория Network error ServerHelper Ошибка сети An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Произошла ошибка при обновлении репозитория: %error% @@ -16,7 +16,6 @@ Starting the package daemon failed:\n\n%Error% App Не удалось запу You have successfully authenticated as user %Nickname%. UserLoginWindow Вы успешно авторизовались как пользователь %Nickname%. PackageInfoView <нет информации> No user ratings available. PackageInfoView Рейтинг пользователей недоступен. -Downloading package '%name%' WorkStatusView Загрузка пакета '%name%' It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Не удалось извлечь необходимую информацию о капче из данных, полученных с сервера. A network transport error has arisen communicating with the server system: %s ServerHelper Произошла ошибка при обмене данными с сервером HaikuDepot: %s Rating PackageListView Оценка @@ -28,7 +27,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Активирован Login or Create account MainWindow Войти или создать учетную запись PackageContentsView <Содержимое пакетов недоступно для нелокальных пакетов> -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural, one{осталось скачать # пакет} few{осталось скачать # пакета} other{осталось скачать# пакетов}} Ratings PackageInfoView Оценки Switch account… MainWindow Сменить аккаунт… Preferred language: UserLoginWindow Предпочитаемый язык: @@ -113,7 +111,6 @@ This rating is visible to other users RatePackageWindow Этот рейтинг While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow При обновлении сведений о пакетах произошла проблема которая может вызвать отображение устаревших данных. Дополнительную информацию можно получить запустив приложение из Терминала.\n View agreed usage conditions… MainWindow Показать согласованные условия использования… Cancel MainWindow Отмена -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{( осталось скачать # пакет)}few{( осталось скачать # пакета)}other{( осталось скачать # пакетов)}} Refresh repositories MainWindow Обновить репозитории Continue App Продолжить A password is required. UserLoginWindow Требуется пароль. @@ -140,8 +137,8 @@ Source packages MainWindow Пакеты с исходным кодом - no package size - Problem with working files App Проблема с рабочими файлами Server error ServerHelper Ошибка сервера -Rate package RatePackageWindow Оценить пакет Try again App Попробовать снова +Rate package RatePackageWindow Оценить пакет Unknown PackageListView Неизвестно I agree to the usage conditions UserLoginWindow Я согласен с условиями использования Log in UserLoginWindow Войти @@ -149,8 +146,8 @@ Sending anonymous usage data MainWindow Отправка анонимных д Logged in as %User% MainWindow Выполнен вход под пользователем %User% Email address: UserLoginWindow Email адрес: Screenshot ScreenshotWindow Снимок экрана -A reboot is necessary to complete the installation process. PackageManager Для завершения установки требуется перезагрузка. HaikuDepot System name HaikuDepot +A reboot is necessary to complete the installation process. PackageManager Для завершения установки требуется перезагрузка. Yes MainWindow Да {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural, one{Мне по крайней мере # год} few{Мне по крайней мере # года или старше} other{Мне по крайней мере # лет или старше}} View latest usage conditions… MainWindow Показать последние условия использования… diff --git a/data/catalogs/apps/haikudepot/sk.catkeys b/data/catalogs/apps/haikudepot/sk.catkeys index ecfac78797..0751b37311 100644 --- a/data/catalogs/apps/haikudepot/sk.catkeys +++ b/data/catalogs/apps/haikudepot/sk.catkeys @@ -59,8 +59,8 @@ OK UserLoginWindow OK Stability: RatePackageWindow Stabilita: Source packages MainWindow Zdrojové balíky - no package size - -Rate package RatePackageWindow Ohodnotiť balík Try again App Skúsiť znova +Rate package RatePackageWindow Ohodnotiť balík Unknown PackageListView Neznámy Log in UserLoginWindow Prihlásiť sa Logged in as %User% MainWindow Prihlásený ako %User% diff --git a/data/catalogs/apps/haikudepot/sv.catkeys b/data/catalogs/apps/haikudepot/sv.catkeys index 179f23aed8..885efe23c3 100644 --- a/data/catalogs/apps/haikudepot/sv.catkeys +++ b/data/catalogs/apps/haikudepot/sv.catkeys @@ -1,14 +1,14 @@ -1 swedish x-vnd.Haiku-HaikuDepot 3544756144 +1 swedish x-vnd.Haiku-HaikuDepot 761125591 Repository update error LocalRepositoryUpdateProcess Fel vid uppdatering av repositorie Network error ServerHelper Nätverksfel An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Ett fel inträffade vid uppdatering av repositoriet: %error% User Created UserLoginWindow Användare skapad Check for updates… MainWindow Leta efter uppdateringar… -Uninstall PackageManager Avinstallera Uninstalled PackageListView Avinstallera It was not possible to create the new user. UserLoginWindow Det gick inte att skapa den nya användaren. Available packages MainWindow Tillgängliga paket Create account UserLoginWindow Skapa konto +Install %PackageTitle% PackageManager Installera %PackageTitle% OK App OK The response to the captcha was incorrect. ServerHelper Svaret på captchan var inkorrekt. Develop packages MainWindow Utvecklingspaket @@ -17,7 +17,6 @@ Starting the package daemon failed:\n\n%Error% App Starta package daemon missly You have successfully authenticated as user %Nickname%. UserLoginWindow Du har autentiserat som användare %Nickname%. PackageInfoView No user ratings available. PackageInfoView Ingen betygsättnings tillgänglig. -Downloading package '%name%' WorkStatusView Laddar hem paket '%name%' It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Det var inte möjligt att extrahera nödvändig captcha-information från de data som skickades tillbaka från servern. A network transport error has arisen communicating with the server system: %s ServerHelper Ett nättransportfel har uppstått vid kommunikation med serversystemet: %s Rating PackageListView Betyg @@ -29,7 +28,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Aktiv Login or Create account MainWindow Logga in eller skapa konto PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 paket att hämta}other{# paket att hämta}} Ratings PackageInfoView Betyg Switch account… MainWindow Byt konto... Preferred language: UserLoginWindow Föredraget språk: @@ -46,8 +44,6 @@ Category FilterView Kategori User rating RatePackageWindow Användarbetyg Installed packages MainWindow Installerade paket A requested object or an object involved in the request was not found on the server. ServerHelper Ett begärt objekt eller ett objekt involverat i begäran hittades inte på servern. -Fatal error PackageManager Allvarligt fel -Package action failed PackageInfoView Paketåtgärden misslyckades No changelog available. PackageInfoView Ingen ändringslogg finns. Error App Fel There was a puzzling response from the web service. UserLoginWindow Det komm ett konstigt meddelande från webb servicen. @@ -79,7 +75,6 @@ Stability RatePackageWindow Stabilitet Send RatePackageWindow Skicka Start package daemon App Starta paket-servicen The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow Lösenordet måste upprepas för att minska risken att det anges felaktigt. -The package action could not be scheduled: %Error% PackageInfoView Paketåtgärden kunde inte schemaläggas: %Error% Cancel SettingsWindow Avbryt Cancel RatePackageWindow Avbryt Inactive PackageListView Inaktiv @@ -89,7 +84,6 @@ There are problems in the supplied data: UserLoginWindow Det finns problem med OK MainWindow OK {0, plural, one{# item} other{# items}} PackageListView {0, plural, one{# enhet} other{# enheter}} Usage conditions download problem UserLoginWindow Fel vid hämtning av användarvillkor -OK PackageInfoView OK Downloading: PackageInfoView Mestadels stabil Quit MainWindow Avsluta Success UserLoginWindow Klar @@ -118,7 +112,6 @@ This rating is visible to other users RatePackageWindow Detta betyg är synligt While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow Under uppdateringen av paketdata har ett problem uppstått som kan leda till att data är föråldrade eller saknas från programmets skärm. Ytterligare information om detta problem kan hämtas från applikationsloggarna.\nInformation om hur du ser loggarna finns i avsnittet HaikuDepot i Haiku användarhandbok. View agreed usage conditions… MainWindow Visa godkända användarvillkor… Cancel MainWindow Avbryt -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(1 kvar att ladda hem)}other{(# kvar att ladda hem)}} Refresh repositories MainWindow Ladda om repositorier Continue App Fortsätt A password is required. UserLoginWindow Ett lösenord krävs. @@ -131,6 +124,7 @@ Status PackageListView Status The password has been incorrectly repeated. UserLoginWindow Lösenordet upprepades felaktigt. Network transport error ServerHelper Nättransportfel The password previously supplied for the user [%Nickname%] is not currently valid. The user will be logged-out of this application and you should login again with your updated password. MainWindow Lösenordet som du tidigare skrev för användaren [%Nickname%] är för närvarande inte giltigt. Användaren kommer att loggas ut från den här applikationen och du bör logga in igen med ditt uppdaterade lösenord. +Uninstall %PackageTitle% PackageManager Avinstallera %PackageTitle% Update RatePackageWindow Uppdatera OK ServerHelper OK Language UserLoginWindow Språk @@ -145,8 +139,8 @@ Source packages MainWindow Källkodspaket - no package size - Problem with working files App Problem med att arbeta filer Server error ServerHelper Serverfel -Rate package RatePackageWindow Betygsatt paket Try again App Försök igen +Rate package RatePackageWindow Betygsatt paket Unknown PackageListView Okänd I agree to the usage conditions UserLoginWindow Jag godkänner användarvillkoren Log in UserLoginWindow Logga in @@ -154,8 +148,8 @@ Sending anonymous usage data MainWindow Skickar anonym användningsinformation Logged in as %User% MainWindow Inloggad som %User% Email address: UserLoginWindow E-postadress: Screenshot ScreenshotWindow Skärmdump -A reboot is necessary to complete the installation process. PackageManager En omstart är nödvändig för att slutföra installationsprocessen. HaikuDepot System name HaikuDepot +A reboot is necessary to complete the installation process. PackageManager En omstart är nödvändig för att slutföra installationsprocessen. Yes MainWindow Ja {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{I am at least one year old}other{I am # years of age or older}} View latest usage conditions… MainWindow Se de senaste användarvillkoren… @@ -172,7 +166,6 @@ Fetching remote repository data LocalRepositoryUpdateProcess Hämtar fjärrdata Description PackageListView Beskrivning Open %DeskbarLink% PackageManager Öppna %DeskbarLink% User creation error UserLoginWindow Användarskapande-fel -Install PackageManager Installera Input validation UserLoginWindow Ogiltigt indata Log in… MainWindow Logga in... You need to be logged into an account before you can rate packages. MainWindow Du måste logga in för att kunna betygsätta paket. diff --git a/data/catalogs/apps/haikudepot/th.catkeys b/data/catalogs/apps/haikudepot/th.catkeys index 8e44789a88..e4df91384c 100644 --- a/data/catalogs/apps/haikudepot/th.catkeys +++ b/data/catalogs/apps/haikudepot/th.catkeys @@ -1,4 +1,4 @@ -1 thai x-vnd.Haiku-HaikuDepot 401821302 +1 thai x-vnd.Haiku-HaikuDepot 732799617 Repository update error LocalRepositoryUpdateProcess ข้อผิดพลาดการอัพเดตที่เก็บ An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess เกิดข้อผิดพลาดขณะรีเฟรชที่เก็บ: %error% User Created UserLoginWindow ผู้ใช้ถูกสร้างแล้ว @@ -15,7 +15,6 @@ Starting the package daemon failed:\n\n%Error% App การสตาร์ท You have successfully authenticated as user %Nickname%. UserLoginWindow คุณตรวจสอบสิทธิ์เป็นผู้ใช้สำเร็จแล้ว %Nickname% PackageInfoView No user ratings available. PackageInfoView ไม่มีการให้คะแนนผู้ใช้ -Downloading package '%name%' WorkStatusView กำลังดาวน์โหลดแพ็คเกจ '%name%' It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow ไม่สามารถดึงข้อมูล captcha ที่จำเป็นจากข้อมูลที่ส่งกลับจากเซิร์ฟเวอร์ Rating PackageListView อัตรา Synchronizing icons ServerIconExportUpdateProcess การซิงโครไนซ์ไอคอน @@ -25,7 +24,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView เปิดใช้ Login or Create account MainWindow เข้าสู่ระบบหรือสร้างบัญชี PackageContentsView <เนื้อหาแพ็คเกจไม่พร้อมใช้งานสำหรับแพ็คเกจแบบรีโมต> -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 package to download}อื่นๆ{# packages to download}} Ratings PackageInfoView อัตรา Switch account… MainWindow เปลี่ยนบัญชีผู้ใช้งาน Preferred language: UserLoginWindow ภาษาที่ต้องการ: @@ -100,7 +98,6 @@ n/a PackageInfoView n/a This rating is visible to other users RatePackageWindow การให้คะแนนนี้จะปรากฏให้ผู้ใช้รายอื่นเห็น View agreed usage conditions… MainWindow ดูเงื่อนไขการใช้งานที่ตกลงกันไว้ Cancel MainWindow ยกเลิก -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(1 more to download)}อื่นๆ{(# more to download)}} Refresh repositories MainWindow รีเฟรชการจัดเก็บ Continue App ต่อไป A password is required. UserLoginWindow ต้องการรหัสผ่าน @@ -124,16 +121,16 @@ The nickname is required. UserLoginWindow ต้องระบุชื่อ Source packages MainWindow แพ็คเกจต้นทาง - no package size - Problem with working files App ปัญหาเกี่ยวกับไฟล์ทำงาน -Rate package RatePackageWindow Rate package Try again App ลองใหม่อีกครั้ง +Rate package RatePackageWindow Rate package Unknown PackageListView ไม่ทราบ I agree to the usage conditions UserLoginWindow ฉันเห็นด้วยกับเงื่อนไขการใช้งาน Log in UserLoginWindow เข้าสู่ระบบ Logged in as %User% MainWindow เข้าสู่ระบบในฐานะ %User% Email address: UserLoginWindow ที่อยู่อีเมล: Screenshot ScreenshotWindow ภาพหน้าจอ -A reboot is necessary to complete the installation process. PackageManager จำเป็นต้องรีบูตเครื่องเพื่อให้กระบวนการติดตั้งเสร็จสมบูรณ์ HaikuDepot System name HaikuDepot +A reboot is necessary to complete the installation process. PackageManager จำเป็นต้องรีบูตเครื่องเพื่อให้กระบวนการติดตั้งเสร็จสมบูรณ์ {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{I am at least one year old}อื่นๆ{I am # years of age or older}} View latest usage conditions… MainWindow ดูเงื่อนไขการใช้งานล่าสุด Quit App ปิด diff --git a/data/catalogs/apps/haikudepot/tr.catkeys b/data/catalogs/apps/haikudepot/tr.catkeys index a431012926..409236fc0c 100644 --- a/data/catalogs/apps/haikudepot/tr.catkeys +++ b/data/catalogs/apps/haikudepot/tr.catkeys @@ -1,14 +1,14 @@ -1 turkish x-vnd.Haiku-HaikuDepot 3544756144 +1 turkish x-vnd.Haiku-HaikuDepot 761125591 Repository update error LocalRepositoryUpdateProcess Depo güncelleme hatası Network error ServerHelper Ağ hatası An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Depo güncellenirken bir hata oluştu: %error% User Created UserLoginWindow Kullanıcı Oluşturuldu Check for updates… MainWindow Güncellemeleri denetle… -Uninstall PackageManager Kaldır Uninstalled PackageListView Kaldırıldı It was not possible to create the new user. UserLoginWindow Yeni kullanıcı oluşturulamadı. Available packages MainWindow Kullanılabilir paketler Create account UserLoginWindow Hesap oluştur +Install %PackageTitle% PackageManager Yükle: %PackageTitle% OK App Tamam The response to the captcha was incorrect. ServerHelper CAPTCHA yanıtı yanlış. Develop packages MainWindow Geliştirme paketleri @@ -17,7 +17,6 @@ Starting the package daemon failed:\n\n%Error% App Paket hizmeti başlatılamad You have successfully authenticated as user %Nickname%. UserLoginWindow Kimlik %Nickname% olarak başarıyla doğrulandı. PackageInfoView No user ratings available. PackageInfoView Kullanıcı oyu yok. -Downloading package '%name%' WorkStatusView '%name%' paketi indiriliyor It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Sunucudan geri gönderilen veriyle gerekli CAPTCHA bilgisi alınamadı. A network transport error has arisen communicating with the server system: %s ServerHelper Sunucu sistemi ile iletişim kurarken bir ağ ulaşım hatası oluştu: %s Rating PackageListView Derecelendirme @@ -29,7 +28,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Etkin Login or Create account MainWindow Giriş yap veya hesap oluştur PackageContentsView -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural, other{# paket indirilecek}} Ratings PackageInfoView Derecelendirmeler Switch account… MainWindow Hesap değiştir… Preferred language: UserLoginWindow Tercih edilen dil: @@ -46,8 +44,6 @@ Category FilterView Kategori User rating RatePackageWindow Kullanıcı oyları Installed packages MainWindow Yüklü paketler A requested object or an object involved in the request was not found on the server. ServerHelper İstenen nesne veya istekle ilgili bir nesne sunucuda bulunamadı. -Fatal error PackageManager Onulmaz hata -Package action failed PackageInfoView Paket eylemi başarısız No changelog available. PackageInfoView Değişiklik günlüğü mevcut değil Error App Hata There was a puzzling response from the web service. UserLoginWindow Web servisinden kafa karıştıran bir yanıt alındı. @@ -79,7 +75,6 @@ Stability RatePackageWindow Kararlılık Send RatePackageWindow Gönder Start package daemon App Paket hizmetini başlat The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow Yanlış girme olasılığını ortadan kaldırmak için parolanız bir kez daha girilmelidir. -The package action could not be scheduled: %Error% PackageInfoView Paket eylemi zamanlanamadı: %Error% Cancel SettingsWindow İptal Cancel RatePackageWindow İptal Inactive PackageListView Etkin değil @@ -89,7 +84,6 @@ There are problems in the supplied data: UserLoginWindow Girilen veride sorunla OK MainWindow Tamam {0, plural, one{# item} other{# items}} PackageListView {0, plural, other{# öge}} Usage conditions download problem UserLoginWindow Kullanım koşulları indirilirken hata -OK PackageInfoView Tamam Downloading: PackageInfoView İndiriliyor: Quit MainWindow Çık Success UserLoginWindow Başarılı @@ -118,7 +112,6 @@ This rating is visible to other users RatePackageWindow Bu derecelendirme diğe While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow Paket verisi güncellenirken verinin uygulamaya yansıtılamamasına neden olan bir sorun oluştu. Bu sorun hakkında ayrıntılı bilgiye uygulama günlüklerinden erişilebilir.\nGünlük görüntüleme üzerine bilgiyi Haiku Kullanıcı Kılavuzu'nun Haiku Depo bölümünde bulabilirsiniz. View agreed usage conditions… MainWindow Kabul edilen kullanım koşullarını görüntüle… Cancel MainWindow İptal -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(1 tane daha indirilecek)}other{(# tane daha indirilecek)}} Refresh repositories MainWindow Depoları yenile Continue App Sürdür A password is required. UserLoginWindow Bir parola gerekli. @@ -131,6 +124,7 @@ Status PackageListView Durum The password has been incorrectly repeated. UserLoginWindow İkinci parola girişinde yanlış(lar) var. Network transport error ServerHelper Ağ ulaşım hatası The password previously supplied for the user [%Nickname%] is not currently valid. The user will be logged-out of this application and you should login again with your updated password. MainWindow Önceden [%Nickname%] kullanıcısına ait olan parola şu anda geçerli değil. Uygulamadan çıkış yapılacaktır; güncellenmiş parola ile yeniden giriş yapmanız gerekmektedir. +Uninstall %PackageTitle% PackageManager Kaldır: %PackageTitle% Update RatePackageWindow Güncelle OK ServerHelper Tamam Language UserLoginWindow Dil @@ -145,8 +139,8 @@ Source packages MainWindow Kaynak paketleri - no package size - Problem with working files App Çalışma dosyalarında sorun Server error ServerHelper Sunucu hatası -Rate package RatePackageWindow Paketi derecelendir Try again App Yeniden dene +Rate package RatePackageWindow Paketi derecelendir Unknown PackageListView Bilinmeyen I agree to the usage conditions UserLoginWindow Kullanım koşullarını kabul ediyorum Log in UserLoginWindow Giriş yap @@ -154,8 +148,8 @@ Sending anonymous usage data MainWindow Anonim kullanım verisi gönder Logged in as %User% MainWindow %User% olarak giriş yapıldı Email address: UserLoginWindow E-posta adresi: Screenshot ScreenshotWindow Ekran görüntüsü -A reboot is necessary to complete the installation process. PackageManager Yükleme işlemini tamamlamak için bilgisayarı yeniden başlatmalısınız. HaikuDepot System name Haiku Depo +A reboot is necessary to complete the installation process. PackageManager Yükleme işlemini tamamlamak için bilgisayarı yeniden başlatmalısınız. Yes MainWindow Evet {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural,one{Bir yaşından büyüğüm}other{# yaşından büyüğüm}} View latest usage conditions… MainWindow Güncel kullanım koşullarını görüntüle… @@ -172,7 +166,6 @@ Fetching remote repository data LocalRepositoryUpdateProcess Uzak depo bilgisi Description PackageListView Tanım Open %DeskbarLink% PackageManager Aç: %DeskbarLink% User creation error UserLoginWindow Kullanıcı oluşturma hatası -Install PackageManager Yükle Input validation UserLoginWindow Girdi doğrulaması Log in… MainWindow Giriş yap… You need to be logged into an account before you can rate packages. MainWindow Paketleri derecelendirmek için giriş yapmalısınız. diff --git a/data/catalogs/apps/haikudepot/uk.catkeys b/data/catalogs/apps/haikudepot/uk.catkeys index 0c51b2cff5..ab91ea2034 100644 --- a/data/catalogs/apps/haikudepot/uk.catkeys +++ b/data/catalogs/apps/haikudepot/uk.catkeys @@ -1,14 +1,14 @@ -1 ukrainian x-vnd.Haiku-HaikuDepot 3544756144 +1 ukrainian x-vnd.Haiku-HaikuDepot 761125591 Repository update error LocalRepositoryUpdateProcess Помилка оновлення репозитарія Network error ServerHelper Помилка мережі An error occurred while refreshing the repository: %error% LocalRepositoryUpdateProcess Під час оновлення репозитарія сталася помилка: %error% User Created UserLoginWindow Користувача створено Check for updates… MainWindow Перевірити на обнови… -Uninstall PackageManager Деінсталяція Uninstalled PackageListView Деінстальовані It was not possible to create the new user. UserLoginWindow Не вдалося створити нового користувача. Available packages MainWindow Доступні пакети Create account UserLoginWindow Створити обліковий запис +Install %PackageTitle% PackageManager Інсталяція %PackageTitle% OK App ОК The response to the captcha was incorrect. ServerHelper Невірна відповідь на капчу. Develop packages MainWindow Пакети розробника @@ -17,7 +17,6 @@ Starting the package daemon failed:\n\n%Error% App Запуск демона п You have successfully authenticated as user %Nickname%. UserLoginWindow Ви увійшли як користувач %Nickname%. PackageInfoView <немає інформації> No user ratings available. PackageInfoView Оцінка для користувача недоступна. -Downloading package '%name%' WorkStatusView Завантажується пакет '%name%' It was not possible to extract necessary captcha information from the data sent back from the server. UserLoginWindow Не вдалося витягти необхідну інформацію про капчу з даних, що надсилаються назад із сервера. A network transport error has arisen communicating with the server system: %s ServerHelper Виникла помилка мережевого транспорту при взаємодії з серверною системою: %s Rating PackageListView Оцінка @@ -29,7 +28,6 @@ This application writes and reads some working files on your computer in order t Active PackageListView Активний Login or Create account MainWindow Авторизуватись або зареєструватись PackageContentsView <Вміст пакету недоступний для відддалених пакетів> -{0, plural,one{1 package to download}other{# packages to download}} WorkStatusView {0, plural,one{1 пакет для завантаження} few{# пакети для завантаження} other{# пакетів для завантаження}} Ratings PackageInfoView Оцінки Switch account… MainWindow Змінити обліковий запис… Preferred language: UserLoginWindow Мова за вподобанням: @@ -46,8 +44,6 @@ Category FilterView Категорія User rating RatePackageWindow Рейтинг користувача Installed packages MainWindow Встановлені пакети A requested object or an object involved in the request was not found on the server. ServerHelper На сервері не знайдено потрібний об'єкт або об'єкт, що міститься у запиті. -Fatal error PackageManager Критична помилка -Package action failed PackageInfoView Невдала дія з пакетом No changelog available. PackageInfoView Історія змін недоступна Error App Помилка There was a puzzling response from the web service. UserLoginWindow Отримано загадкову відповідь від мережевого сервісу. @@ -79,7 +75,6 @@ Stability RatePackageWindow Стабільність Send RatePackageWindow Надіслати Start package daemon App Запустити демон пакетів The password must be repeated in order to reduce the chance of entering the password incorrectly. UserLoginWindow Пароль потрібно повторити, щоб зменшити ймовірність неправильного введення пароля. -The package action could not be scheduled: %Error% PackageInfoView Дію з пакетом не вдалося запланувати: %Error% Cancel SettingsWindow Скасувати Cancel RatePackageWindow Скасувати Inactive PackageListView Неактивний @@ -89,7 +84,6 @@ There are problems in the supplied data: UserLoginWindow У наданих да OK MainWindow ОК {0, plural, one{# item} other{# items}} PackageListView {0, plural, one{# об'єкт} few{# об'єкти} other{# об'єктів}} Usage conditions download problem UserLoginWindow Помилка при завантаженні Умов користування -OK PackageInfoView ОК Downloading: PackageInfoView Завантаження: Quit MainWindow Вийти Success UserLoginWindow Успішно @@ -118,7 +112,6 @@ This rating is visible to other users RatePackageWindow Цей рейтинг While updating package data, a problem has arisen that may cause data to be outdated or missing from the application's display. Additional details regarding this problem may be able to be obtained from the application logs.\nInformation about how to view the logs is available in the HaikuDepot section of the Haiku User Guide. MainWindow Під час оновлення даних пакета виникла проблема, яка може призвести до відображення програмою недостовірних даних. Додаткові відомості про цю проблему можна отримати в журналах програми.\nІнформація про те, як переглядати журнали, доступна в розділі програми HaikuDepot посібника користувача Haiku. View agreed usage conditions… MainWindow Погоджені Умови користування… Cancel MainWindow Скасувати -{0, plural,one{(1 more to download)}other{(# more to download)}} WorkStatusView {0, plural,one{(залишилось завантажити 1)}other{(залишилось завантажити #)}} Refresh repositories MainWindow Оновити репозитарії Continue App Продовжити A password is required. UserLoginWindow Потрібен пароль. @@ -131,6 +124,7 @@ Status PackageListView Стан The password has been incorrectly repeated. UserLoginWindow Пароль був повторений неправильно. Network transport error ServerHelper Помилка мережевого транспорту The password previously supplied for the user [%Nickname%] is not currently valid. The user will be logged-out of this application and you should login again with your updated password. MainWindow Пароль, раніше наданий для користувача [%Nickname%], наразі не дійсний. Користувачеві треба завершити сеанс з цією програмою та знову увійти в систему з оновленим паролем. +Uninstall %PackageTitle% PackageManager Деінсталяція %PackageTitle% Update RatePackageWindow Оновити OK ServerHelper ОК Language UserLoginWindow Мова @@ -145,8 +139,8 @@ Source packages MainWindow Пакети з вихідними текстами - no package size - Problem with working files App Проблеми з робочими файлами Server error ServerHelper Помилка серверу -Rate package RatePackageWindow Оцінка пакета Try again App Спробувати знову +Rate package RatePackageWindow Оцінка пакета Unknown PackageListView Невідомо I agree to the usage conditions UserLoginWindow З Умовами користування погоджуюсь Log in UserLoginWindow Авторизуватись @@ -154,8 +148,8 @@ Sending anonymous usage data MainWindow Відправка анонімних Logged in as %User% MainWindow Авторизований як %User% Email address: UserLoginWindow Адреса Email: Screenshot ScreenshotWindow Знімок екрана -A reboot is necessary to complete the installation process. PackageManager Для завершення інсталяції потрібне перезавантаження. HaikuDepot System name HaikuDepot +A reboot is necessary to complete the installation process. PackageManager Для завершення інсталяції потрібне перезавантаження. Yes MainWindow Так {0, plural,one{I am at least one year old}other{I am # years of age or older}} LocaleUtils {0, plural, one{Мені # рік або більше} few{Мені # роки або більше} other{Мені # років або більше}} View latest usage conditions… MainWindow Перегляд останніх Умов користування… @@ -172,7 +166,6 @@ Fetching remote repository data LocalRepositoryUpdateProcess Отримання Description PackageListView Опис Open %DeskbarLink% PackageManager Відкрити %DeskbarLink% User creation error UserLoginWindow Помилка створення користувача -Install PackageManager Інсталяція Input validation UserLoginWindow Перевірка вхідних даних Log in… MainWindow Авторизація… You need to be logged into an account before you can rate packages. MainWindow Для оцінки пакетів спочатку необхідно авторизуватись. diff --git a/data/catalogs/apps/haikudepot/zh_Hans.catkeys b/data/catalogs/apps/haikudepot/zh_Hans.catkeys index 3c8947f434..fde8935123 100644 --- a/data/catalogs/apps/haikudepot/zh_Hans.catkeys +++ b/data/catalogs/apps/haikudepot/zh_Hans.catkeys @@ -69,8 +69,8 @@ OK UserLoginWindow 确定 Stability: RatePackageWindow 稳定性: Source packages MainWindow 源代码包 - no package size - -Rate package RatePackageWindow 软件包评分 Try again App 请重试 +Rate package RatePackageWindow 软件包评分 Unknown PackageListView 未知 Log in UserLoginWindow 登陆 Logged in as %User% MainWindow 登录 as %User% diff --git a/data/catalogs/apps/icon-o-matic/el.catkeys b/data/catalogs/apps/icon-o-matic/el.catkeys index c607fbc210..6ddf80ac18 100644 --- a/data/catalogs/apps/icon-o-matic/el.catkeys +++ b/data/catalogs/apps/icon-o-matic/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.haiku-icon_o_matic 2424331018 +1 greek, modern (1453-) x-vnd.haiku-icon_o_matic 1805671130 None Icon-O-Matic-Properties Κανένα Rotate Path Indices Icon-O-Matic-RotatePathIndiciesCmd Περιστροφή μονοπατιού Add empty Icon-O-Matic-ShapesList Προσθήκη άδειου @@ -164,6 +164,7 @@ Untitled Icon-O-Matic-Main Χωρίς τίτλο Max LOD Icon-O-Matic-PropertyNames Μέγιστο LOD Add Path Icon-O-Matic-AddPathsCmd Προσθήκη Μονοπατιού Save changes to current icon before closing? Icon-O-Matic-Menu-Settings Να αποθηκευτούν οι αλλαγές στο εικονίδιο πριν το κλείσιμο; +Failed to open the file '%s' as an SVG document.\n\n Icon-O-Matic-SVGImport Αδύνατο το άνοιγμα του αρχείου '%s' ως εγγράφου SVG.\n\n load error Icon-O-Matic-SVGImport σφάλμα φόρτωσης Transformation Icon-O-Matic-TransformersList Μετασχηματισμός Save as… Icon-O-Matic-Menu-File Αποθήκευση ως… diff --git a/data/catalogs/apps/icon-o-matic/pt_BR.catkeys b/data/catalogs/apps/icon-o-matic/pt_BR.catkeys index 769c103b53..6bdd06d34d 100644 --- a/data/catalogs/apps/icon-o-matic/pt_BR.catkeys +++ b/data/catalogs/apps/icon-o-matic/pt_BR.catkeys @@ -38,7 +38,7 @@ Assign Style Icon-O-Matic-AssignStyleCmd Atribuir Estilo Transformation Icon-O-Matic-TransformationBoxStates Transformação Closed Icon-O-Matic-PropertyNames Fechado Split Control Point Icon-O-Matic-SplitPointsCmd Dividir Ponto de Controle - Icon-O-Matic-Menu-Edit + Icon-O-Matic-Menu-Edit Height Icon-O-Matic-PropertyNames Altura Add Shape Icon-O-Matic-AddShapesCmd Adicionar Forma warning Icon-O-Matic-SVGExport aviso @@ -196,6 +196,6 @@ Export Icon-O-Matic-Menu-File Exportar Width Icon-O-Matic-PropertyNames Largura Bummer Cancel button - error alert Vagabundo Style Icon-O-Matic-Menus Estilo -edit it's properties here. Empty property list - 3rd line edite suas propriedades aqui. +edit it's properties here. Empty property list - 3rd line editar suas propriedades aqui. Off Icon-O-Matic-Menu-Settings Desligar Edit Icon-O-Matic-Menus Editar diff --git a/data/catalogs/apps/installer/cs.catkeys b/data/catalogs/apps/installer/cs.catkeys index 5a06cd4045..e12a1c6893 100644 --- a/data/catalogs/apps/installer/cs.catkeys +++ b/data/catalogs/apps/installer/cs.catkeys @@ -1,7 +1,7 @@ 1 czech x-vnd.Haiku-Installer 2017577026 Performing installation. InstallProgress Probíhá instalace. Choose the source disk from the pop-up menu. Then click \"Begin\". InstallerWindow Zvolte zdrojový disk z nabídky. Poté klikněte na \"Začít\". -Please close the DriveSetup window before closing the Installer window. InstallerWindow Uzavřete, prosím, okno programu DriveSetup před ukončením Instalátoru. +Please close the DriveSetup window before closing the Installer window. InstallerWindow Uzavřete, prosím, okno programu nastavení disků před ukončením Instalátoru. No optional packages available. PackagesView Volitelné balíčky nejsou k dispozici. The mount point could not be retrieved. InstallProgress Přípojný bod nemohl být obnoven. InstallerWindow No partition available <žádné> @@ -22,10 +22,10 @@ Boot sector not written because of an internal error. InstallProgress Vzhledem Welcome to the Haiku Installer!\n\n InstallerApp Vítejte v Instalátoru Haiku!\n\n ?? of ?? InstallerWindow Unknown progress ?? z ?? Quit Boot Manager InstallerWindow Ukončit Zavaděč -DriveSetup, the application to configure disk partitions, could not be launched. InstallerWindow Aplikace DriveSetup určena ke konfiguraci diskových oddílů nemohla být spuštěna. +DriveSetup, the application to configure disk partitions, could not be launched. InstallerWindow Aplikace nastavení disků, určena ke konfiguraci diskových oddílů, nemohla být spuštěna. The target volume is not empty. If it already contains a Haiku installation, it will be overwritten. This will remove all installed software.\n\nIf you want to upgrade your system without removing installed software, see the Haiku User Guide's topic on the application \"SoftwareUpdater\" for update instructions.\n\nAre you sure you want to continue the installation? InstallProgress Cílový oddíl není prázdný. Pokud budete pokračovat v instalaci Haiku, přepíše se. Smaže to všechen instalovaný software.\n\nPokud chcete inovovat svůj systém bez smazání software, přečtěte si uživatelskou příručku Haiku, kapitola o aplikaci \"SoftwareUpdater\".\n\nOpravdu pokračovat v instalaci? Running Boot Manager…\n\nClose Boot Manager to continue with the installation. InstallerWindow Spouštění Zavaděče...\n\nZavřete Zavaděč pro pokračování v instalaci. -Quit DriveSetup InstallerWindow Ukončit DriveSetup +Quit DriveSetup InstallerWindow Ukončit nastavení disků Write boot sector InstallerWindow Zapsat boot sektor %1ld of %2ld InstallerWindow number of files copied %1ld z %2ld Finishing installation. InstallProgress Dokončuji instalaci. @@ -34,7 +34,7 @@ Additional disk space required: 0.0 KiB InstallerWindow Vyžadován další dis This is beta-quality software! It means there is a risk of losing important data. Make frequent backups! You have been warned.\n\n\n InstallerApp Tento software je nedokončený! Znamená to, že můžete přijít o důležitá data. Často zálohujte! Byli jste varováni.\n\n\n ??? InstallerWindow Unknown currently copied item Neznámé Install anyway InstallProgress Přesto nainstalovat -1) If you are installing Haiku onto real hardware (not inside an emulator), you may want to prepare a hard disk partition from another OS (you could, for example, use a GParted Live-CD, which can also resize existing partitions to make room).\nYou can also set up partitions by launching DriveSetup from Installer, but you won't be able to resize existing partitions with it. While DriveSetup has been quite thoroughly tested over the years, it's recommended to have up-to-date backups of the other partitions on your system. Just in case… InstallerApp 1) Pokud instalujete Haiku na skutečný hardware (nikoli v emulátoru), můžete si připravit oddíl disku z jiného OS (můžete například použít GParted Live-CD, který umí také změnit velikost stávajících oddílů, abyste udělali místo pro Haiku).\nDriveSetup z instalátoru umí také spravovat oddíly, ale neumí měnit jejich velikost. Ačkoli byl DriveSetup v průběhu let důkladně testován, přesto je doporučeno udělat aktuální zálohu dalších oddílů. Jen pro případ… +1) If you are installing Haiku onto real hardware (not inside an emulator), you may want to prepare a hard disk partition from another OS (you could, for example, use a GParted Live-CD, which can also resize existing partitions to make room).\nYou can also set up partitions by launching DriveSetup from Installer, but you won't be able to resize existing partitions with it. While DriveSetup has been quite thoroughly tested over the years, it's recommended to have up-to-date backups of the other partitions on your system. Just in case… InstallerApp 1) Pokud instalujete Haiku na skutečný hardware (nikoli v emulátoru), můžete si připravit oddíl disku z jiného OS (můžete například použít GParted Live-CD, který umí také změnit velikost stávajících oddílů, abyste udělali místo pro Haiku).\nNastavení disků z instalátoru umí také spravovat oddíly, ale neumí měnit jejich velikost. Ačkoli byl program pro nastavení disků v průběhu let důkladně testován, je přesto doporučeno udělat aktuální zálohu oddílů. Jen pro případ… Choose the source and destination disk from the pop-up menus. Then click \"Begin\". InstallerWindow Zvolte zdrojový a cílový disk z nabídek. Poté klikněte na \"Začít\". 2) The Installer will make the Haiku partition itself bootable, but takes no steps to integrate Haiku into an existing boot menu. If you have GRUB already installed, you can add Haiku to it.\nFor details, please consult the guide on booting Haiku on our website at https://www.haiku-os.org/guides/booting.\nOr you can set up a boot menu from Installer's \"Tools\" menu, see the Haiku User Guide's topic on the application \"BootManager\".\n\n\n InstallerApp 2) Instalátor nastaví oddíl Haiku jako startovací, ale nezačleňuje Haiku do stávající startovací nabídky. Pokud již používáte GRUB, můžete do něj Haiku přidat.\nVíce podrobností najdete v průvodci o startování Haiku na našem webu at https://www.haiku-os.org/guides/booting.\nNebo můžete nastavit startovací nabídku z nabídky instalátoru \"Nástroje\", podívejte se do sekce o aplikaci \"BootManager\" v Uživatelské příručce Haiku.\n\n\n Hide optional packages InstallerWindow Skrýt volitelné balíčky @@ -43,13 +43,13 @@ Have fun and thanks for trying out Haiku! InstallerApp Bavte se, a děkujeme za Quit InstallerApp Zavřít Error writing boot sector. InstallProgress Chyba při zápisu do zaváděcího sektoru. OK InstallerWindow OK -Please close the Boot Manager and DriveSetup windows before closing the Installer window. InstallerWindow Zavřete prosím Zavaděč a DriveSetup před ukončením Instalátoru. +Please close the Boot Manager and DriveSetup windows before closing the Installer window. InstallerWindow Zavřete prosím nastavení zavaděče a disků před ukončením Instalátoru. Failed to launch Boot Manager InstallerWindow Chyba při spuštění Správce spouštění 3) When you successfully boot into Haiku for the first time, make sure to read our \"User Guide\" and take the \"Quick Tour\". There are links on the Desktop and in WebPositive's bookmarks.\n\n InstallerApp 3) Když poprvé úspěšně spustíte Haiku, přečtěte si naší \"Uživatelskou příručku\" a projděte \"Rychlou prohlídku\". Na ploše a v prohlížeči webu jsou připravené odkazy.\n\n Try installing anyway InstallProgress Zkusit přesto instalovat IMPORTANT INFORMATION BEFORE INSTALLING HAIKU\n\n InstallerApp DŮLEŽITÁ INFORMACE PŘED ZAHÁJENÍ INSTALACE HAIKU\n\n Additional disk space required: %s InstallerWindow Vyžadován další diskový prostor: %s -Stop InstallerWindow In alert after pressing Stop Stop +Stop InstallerWindow In alert after pressing Stop Zastavit Boot sector successfully written. InstallProgress Boot sektor úspěšně zapsán. Writing bootsector. InstallProgress Zapisuji startovací sektor. An error was encountered and the installation was not completed:\n\nError: %s InstallerWindow Došlo k chybě a instalace nebyla dokončena:\n\nChyba: %s @@ -61,11 +61,11 @@ Show optional packages InstallerWindow Zobraz volitelné balíčky No partitions have been found that are suitable for installation. Please set up partitions and format at least one partition with the Be File System. InstallerWindow Nebyly nalezeny žádné oddíly vhodné pro instalaci. Vytvořte a naformátujte alespoň jeden oddíl na systém souborů Be. The destination disk may not have enough space. Try choosing a different disk or choose to not install optional items. InstallProgress Na cílovém disku není dostatek místa. Zkuste vybrat jiný disk nebo zvolte neinstalovat volitelné položky. Installation canceled. InstallProgress Instalace zrušena. -Stop InstallerWindow Stop +Stop InstallerWindow Zastavit Cancel InstallerWindow Zrušit Continue InstallerWindow In alert after pressing Stop Pokračovat Scanning for disks… InstallerWindow Prohledávám disky... -Running DriveSetup…\n\nClose DriveSetup to continue with the installation. InstallerWindow Spouštění programu DriveSetup...\n\nUkončením programu DriveSetup bude instalace pokračovat. +Running DriveSetup…\n\nClose DriveSetup to continue with the installation. InstallerWindow Spouštění programu pro nastavení disků...\n\nPo ukončení programu pro nastavení disků bude instalace pokračovat. The installation is not complete yet!\nAre you sure you want to stop it? InstallerWindow Instalace ještě není kompletní!\nOpravdu ji chete přerušit? The partition can't be mounted. Please choose a different partition. InstallProgress Oddíl nemohl být připojen. Zvolte, prosím, jiný oddíl. Set up partitions… InstallerWindow Nastavení oddílů... @@ -74,12 +74,12 @@ You can't install the contents of a disk onto itself. Please choose a different Boot Manager, the application to configure the Haiku boot menu, could not be launched. InstallerWindow Aplikace Správce spouštění, pro konfiguraci zaváděcí nabídky Haiku, nemohla být spuštěna. Please close the Boot Manager window before closing the Installer window. InstallerWindow Uzavřete, prosím, nejdříve Zavaděč před ukončením Instalace. OK InstallProgress OK -Running Boot Manager and DriveSetup…\n\nClose both applications to continue with the installation. InstallerWindow Spuštění Zavaděče a programu DriveSetup...\n\nUzavřete obě aplikace pro pokračování v instalaci. +Running Boot Manager and DriveSetup…\n\nClose both applications to continue with the installation. InstallerWindow Spuštění nastavení zavaděče a disků...\n\nUzavřete obě aplikace pro pokračování v instalaci. Are you sure you want to install onto the current boot disk? The Installer will have to reboot your machine if you proceed. InstallProgress Určitě si přejete instalovat do současného startovacího disku? Instalátor bude muset restartovat Váš počítač pokud budete pokračovat. Onto: InstallerWindow Do: -Quit Boot Manager and DriveSetup InstallerWindow Ukončit Zavaděč a DriveSetup +Quit Boot Manager and DriveSetup InstallerWindow Ukončit nastavení zavaděče a disků Tools InstallerWindow Nástroje scanning… InstallerWindow Prohledávání... -Launch the DriveSetup utility to partition\navailable hard drives and other media.\nPartitions can be formatted with the\nBe File System needed for a Haiku boot\npartition. InstallerWindow Spusťte nástroj DriveSetup k rozdělení\noddílů pevných disků a ostatních médií.\nOddíly mohou být naformátovány na\nsystém souborů Be, potřebný\nke startovacímu oddílu Haiku. +Launch the DriveSetup utility to partition\navailable hard drives and other media.\nPartitions can be formatted with the\nBe File System needed for a Haiku boot\npartition. InstallerWindow Spusťte nástroj nastavení disků k rozdělení\noddílů pevných disků a ostatních médií.\nOddíly mohou být naformátovány na\nsystém souborů Be, potřebný\nke startovacímu oddílu Haiku. Set up boot menu InstallerWindow Nastavit nabídku zavaděče Continue InstallerApp Pokračovat diff --git a/data/catalogs/apps/installer/da.catkeys b/data/catalogs/apps/installer/da.catkeys index 9bd0413eb9..68b5ced180 100644 --- a/data/catalogs/apps/installer/da.catkeys +++ b/data/catalogs/apps/installer/da.catkeys @@ -1,7 +1,7 @@ -1 danish x-vnd.Haiku-Installer 1520271509 +1 danish x-vnd.Haiku-Installer 2017577026 Performing installation. InstallProgress Udfører installation. Choose the source disk from the pop-up menu. Then click \"Begin\". InstallerWindow Vælg en oprindelsesdisk fra popup-menuen. Tryk dernæst på \"Begynd\". -Please close the DriveSetup window before closing the Installer window. InstallerWindow Luk venligst vinduet for drevopsætning, før du lukker installationsvinduet. +Please close the DriveSetup window before closing the Installer window. InstallerWindow Luk venligst vinduet for Drevopsætning, før du lukker installationsvinduet. No optional packages available. PackagesView Ingen valgfri pakker tilgængelige. The mount point could not be retrieved. InstallProgress Kunne ikke hægte diskenhed på. InstallerWindow No partition available @@ -21,11 +21,11 @@ Write boot sector to '%s' InstallerWindow Skriv opstartssektor til '%s' Boot sector not written because of an internal error. InstallProgress Opstartssektoren blev ikke skrevet pga. intern fejl. Welcome to the Haiku Installer!\n\n InstallerApp Velkommen til Haiku-installationsprogrammet!\n\n ?? of ?? InstallerWindow Unknown progress ?? af ?? -Quit Boot Manager InstallerWindow Afslut opstartsmanager +Quit Boot Manager InstallerWindow Afslut Opstartshåndtering DriveSetup, the application to configure disk partitions, could not be launched. InstallerWindow Drevopsætning, programmet til at konfigurere diskpartitioner, kunne ikke begynde. -The target volume is not empty. If it already contains a Haiku installation, it will be overwritten. This will remove all installed software.\n\nIf you want to upgrade your system without removing installed software, see the Haiku User Guide's topic on the application \"SoftwareUpdater\" for update instructions.\n\nAre you sure you want to continue the installation? InstallProgress Måldiskområdet er ikke tomt. Hvis det allerede indeholder en Haiku-installation, så vil den blive overskrevet. Det vil fjerne al installerede software.\n\nHvis du vil opgradere dit system uden at fjerne installerede software, så se emnerne om programmet \"Softwareopdatering\" i Haikus brugervejledning for instruktioner om opdatering.\n\nEr du sikker på, at du vil fortsætte installationen? -Running Boot Manager…\n\nClose Boot Manager to continue with the installation. InstallerWindow Kører opstartsmanager…\n\nLuk opstartsmanager for at fortsætte med installationen. -Quit DriveSetup InstallerWindow Afslut drevopsætning +The target volume is not empty. If it already contains a Haiku installation, it will be overwritten. This will remove all installed software.\n\nIf you want to upgrade your system without removing installed software, see the Haiku User Guide's topic on the application \"SoftwareUpdater\" for update instructions.\n\nAre you sure you want to continue the installation? InstallProgress Måldiskområdet er ikke tomt. Hvis det allerede indeholder en Haiku-installation, så vil den blive overskrevet. Det vil fjerne al installerede software.\n\nHvis du vil opgradere dit system uden at fjerne installerede software, så se emnet om programmet \"Softwareopdatering\" i Haikus brugervejledning for instruktioner om opdatering.\n\nEr du sikker på, at du vil fortsætte installationen? +Running Boot Manager…\n\nClose Boot Manager to continue with the installation. InstallerWindow Kører Opstartshåndtering…\n\nLuk Opstartshåndtering for at fortsætte med installationen. +Quit DriveSetup InstallerWindow Afslut Drevopsætning Write boot sector InstallerWindow Skriv opstartssektoren %1ld of %2ld InstallerWindow number of files copied %1ld af %2ld Finishing installation. InstallProgress Færdiggør installationen. @@ -34,16 +34,17 @@ Additional disk space required: 0.0 KiB InstallerWindow Yderligere påkrævet d This is beta-quality software! It means there is a risk of losing important data. Make frequent backups! You have been warned.\n\n\n InstallerApp Dette er software i betakvalitet! Det betyder at der er risiko for tab af vigtige data. Sørg for at foretage regelmæssige sikkerhedskopieringer! Du er hermed blevet advaret.\n\n\n ??? InstallerWindow Unknown currently copied item ??? Install anyway InstallProgress Installer alligevel -1) If you are installing Haiku onto real hardware (not inside an emulator), you may want to prepare a hard disk partition from another OS (you could, for example, use a GParted Live-CD, which can also resize existing partitions to make room).\nYou can also set up partitions by launching DriveSetup from Installer, but you won't be able to resize existing partitions with it. While DriveSetup has been quite thoroughly tested over the years, it's recommended to have up-to-date backups of the other partitions on your system. Just in case… InstallerApp 1) Hvis du installerer Haiku på rigtig hardware (ikke i en emulator), så vil du måske forberede en harddisk-partition fra et andet styresystem (du kan f.eks. bruge en GParted live-CD, som også kan tilpasse størrelsen på eksisterende partitioner, for at gøre plads).\nDu kan også opsætte partitioner ved at starte drevopsætning fra installationsprogrammet, men du kan ikke bruge den til at tilpasse størrelsen på eksisterende partitioner. Selvom drevopsætning er blevet gennemtestet over årene, så anbefales det at have opdaterede sikkerhedskopier af de andre partitioner på dit system. For en sikkerhedsskyld… +1) If you are installing Haiku onto real hardware (not inside an emulator), you may want to prepare a hard disk partition from another OS (you could, for example, use a GParted Live-CD, which can also resize existing partitions to make room).\nYou can also set up partitions by launching DriveSetup from Installer, but you won't be able to resize existing partitions with it. While DriveSetup has been quite thoroughly tested over the years, it's recommended to have up-to-date backups of the other partitions on your system. Just in case… InstallerApp 1) Hvis du installerer Haiku på rigtig hardware (ikke i en emulator), så vil du måske forberede en harddisk-partition fra et andet styresystem (du kan f.eks. bruge en GParted live-CD, som også kan tilpasse størrelsen på eksisterende partitioner, for at gøre plads).\nDu kan også opsætte partitioner ved at starte Drevopsætning fra installationsprogrammet, men du kan ikke bruge den til at tilpasse størrelsen på eksisterende partitioner. Selvom Drevopsætning er blevet gennemtestet over årene, så anbefales det at have opdaterede sikkerhedskopier af de andre partitioner på dit system. For en sikkerhedsskyld… Choose the source and destination disk from the pop-up menus. Then click \"Begin\". InstallerWindow Vælg oprindelses- og destinationsdisk fra popup-menuerne. Tryk dernæst på \"Begynd\". +2) The Installer will make the Haiku partition itself bootable, but takes no steps to integrate Haiku into an existing boot menu. If you have GRUB already installed, you can add Haiku to it.\nFor details, please consult the guide on booting Haiku on our website at https://www.haiku-os.org/guides/booting.\nOr you can set up a boot menu from Installer's \"Tools\" menu, see the Haiku User Guide's topic on the application \"BootManager\".\n\n\n InstallerApp 2) Installationsprogrammet gør selve Haiku-partitionen opstartsbar men gør ikke noget for at integrere Haiku i en eksistende opstartsmenu. Hvis du allerede har GRUB installeret, så kan du tilføje Haiku til den.\nSe venligst vejledningen om opstart af Haiku på vores websted https://www.haiku-os.org/guides/booting for flere detaljer.\nEller du kan opsætte en opstartsmenu fra installationsprogrammets \"Værktøjer\"-menu. Se emnet om programmet \"Opstartshåndtering\" i Haikus brugervejledning.\n\n\n Hide optional packages InstallerWindow Skjul valgfri pakker ??? InstallerWindow Unknown partition name ??? Have fun and thanks for trying out Haiku! InstallerApp Hav det sjovt og tak fordi du prøver Haiku! Quit InstallerApp Afslut Error writing boot sector. InstallProgress Fejl ved skrivning af opstartssektor. OK InstallerWindow OK -Please close the Boot Manager and DriveSetup windows before closing the Installer window. InstallerWindow Luk venligst vinduerne for opstartsmanager og drevopsætning, før du lukker vinduet for installationen. -Failed to launch Boot Manager InstallerWindow Kunne ikke start opstartshåndteringen +Please close the Boot Manager and DriveSetup windows before closing the Installer window. InstallerWindow Luk venligst vinduerne for Opstartshåndtering og Drevopsætning, før du lukker vinduet for installationen. +Failed to launch Boot Manager InstallerWindow Kunne ikke start Opstartshåndtering 3) When you successfully boot into Haiku for the first time, make sure to read our \"User Guide\" and take the \"Quick Tour\". There are links on the Desktop and in WebPositive's bookmarks.\n\n InstallerApp 3) Når du starter Heiku for første gang, så sørg for at læse vores \"Brugervejledning\" og tag \"Quick Tour\". Der er links på skrivebordet og i WebPositive's bogmærker.\n\n Try installing anyway InstallProgress Prøv at installer alligevel IMPORTANT INFORMATION BEFORE INSTALLING HAIKU\n\n InstallerApp VIGTIG INFORMATION INDEN INSTALLATION AF HAIKU\n\n @@ -64,20 +65,21 @@ Stop InstallerWindow Stop Cancel InstallerWindow Annuller Continue InstallerWindow In alert after pressing Stop Fortsæt Scanning for disks… InstallerWindow Leder efter diske… -Running DriveSetup…\n\nClose DriveSetup to continue with the installation. InstallerWindow Kører drevopsætning…\n\nLuk vinduet for drevopsætning for at fortsætte installationen. +Running DriveSetup…\n\nClose DriveSetup to continue with the installation. InstallerWindow Kører Drevopsætning…\n\nLuk vinduet for Drevopsætning for at fortsætte installationen. The installation is not complete yet!\nAre you sure you want to stop it? InstallerWindow Installationen er ikke færdig endnu!\nEr du sikker på, at du vil stoppe den? The partition can't be mounted. Please choose a different partition. InstallProgress Partitionen kan ikke hentes ind i systemet. Vælg venligst en anden partition. Set up partitions… InstallerWindow Konfigurer partitioner… Install progress: InstallerWindow Installationsfremgang: You can't install the contents of a disk onto itself. Please choose a different disk. InstallProgress Du kan ikke installere noget fra en disk ovenpå sig selv. Vælg venligst en anden disk. Boot Manager, the application to configure the Haiku boot menu, could not be launched. InstallerWindow Opstartshåndtering, programmet til at konfigurere Haiku-opstartsmenuen, kunne ikke startes. -Please close the Boot Manager window before closing the Installer window. InstallerWindow Luk venligst vinduet for opstartsmanager, før du lukker installationsvinduet. +Please close the Boot Manager window before closing the Installer window. InstallerWindow Luk venligst vinduet for Opstartshåndtering, før du lukker installationsvinduet. OK InstallProgress OK -Running Boot Manager and DriveSetup…\n\nClose both applications to continue with the installation. InstallerWindow Kører opstartsmanager og drevopsætning…\n\nLuk vinduerne for begge programmer for at fortsætte med installationen. +Running Boot Manager and DriveSetup…\n\nClose both applications to continue with the installation. InstallerWindow Kører Opstartshåndtering og Drevopsætning…\n\nLuk vinduerne for begge programmer for at fortsætte med installationen. Are you sure you want to install onto the current boot disk? The Installer will have to reboot your machine if you proceed. InstallProgress Er du sikker på, at du vil installere på nærværende opstartsdisk? Installationsprogrammet genstarter din maskine, hvis du fortsætter. Onto: InstallerWindow Til: -Quit Boot Manager and DriveSetup InstallerWindow Afslut opstartsmanager og drevopsætning +Quit Boot Manager and DriveSetup InstallerWindow Afslut Opstartshåndtering og Drevopsætning Tools InstallerWindow Værktøjer scanning… InstallerWindow leder… +Launch the DriveSetup utility to partition\navailable hard drives and other media.\nPartitions can be formatted with the\nBe File System needed for a Haiku boot\npartition. InstallerWindow Start redskabet Drevopsætning for at partitionere\ntilgængelige harddiske og andre medier.\nPartitioner kan formateres med\nBe-filsystemet der er nødvendigt for en\nHaiku-opstartspartition. Set up boot menu InstallerWindow Konfigurer bootmenuen Continue InstallerApp Fortsæt diff --git a/data/catalogs/apps/installer/el.catkeys b/data/catalogs/apps/installer/el.catkeys index 8069a09abe..7808a87474 100644 --- a/data/catalogs/apps/installer/el.catkeys +++ b/data/catalogs/apps/installer/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.Haiku-Installer 1075045498 +1 greek, modern (1453-) x-vnd.Haiku-Installer 2017577026 Performing installation. InstallProgress Η εγκατάσταση είναι σε εξέλιξη. Choose the source disk from the pop-up menu. Then click \"Begin\". InstallerWindow Επιλέξτε το δίσκο προέλευσης από το αναδυόμενο μενού. Στη συνέχεια, κάντε κλικ στην \"Έναρξη\". Please close the DriveSetup window before closing the Installer window. InstallerWindow Παρακαλώ κλείστε το παράθυρο Διαχειριστή Δίσκου, πριν κλείσετε το Πρόγραμμα Εγκατάστασης. @@ -14,6 +14,7 @@ Unknown Type InstallProgress Partition content type Άγνωστος τύπος Press the Begin button to install from '%1s' onto '%2s'. InstallerWindow Πατήστε το πλήκτρο Έναρξη για να εγκαταστήσετε από το '%1s' στο '%2s'. Choose the disk you want to install onto from the pop-up menu. Then click \"Begin\". InstallerWindow Επιλέξτε το δίσκο που θέλετε να εγκαταστήσετε από το αναδυόμενο μενού. Στη συνέχεια, κάντε κλικ στην \"Έναρξη\". Installation completed. Boot sector has been written to '%s'. Press Quit to leave the Installer or choose a new target volume to perform another installation. InstallerWindow Η εγκατάσταση ολοκληρώθηκε. Ο τομέας εκκίνησης εγγράφηκε στο '%s'. Πατήστε Έξοδος για να εγκαταλείψετε την εγκατάσταση ή επιλέξτε μία νέα μονάδα για να εκτελέσετε μια άλλη εγκατάσταση. +Are you sure you want to stop the installation? InstallerWindow Είστε σίγουρος/η ότι θέλετε να σταματήσετε την εγκατάσταση; README InstallerApp README Quit InstallerWindow Έξοδος Write boot sector to '%s' InstallerWindow Εγγραφή τομέα εκκίνησης σε '%s' @@ -22,6 +23,7 @@ Welcome to the Haiku Installer!\n\n InstallerApp Καλώς ήλθατε στη ?? of ?? InstallerWindow Unknown progress ;; από ;; Quit Boot Manager InstallerWindow Έξοδος από τον Διαχειριστή Εκκίνησης DriveSetup, the application to configure disk partitions, could not be launched. InstallerWindow Ο Διαχειριστής Δίσκου, η εφαρμογή για διαμορφώσεις κατατμήσεων δίσκων, δεν μπορεί να εκκινηθεί. +The target volume is not empty. If it already contains a Haiku installation, it will be overwritten. This will remove all installed software.\n\nIf you want to upgrade your system without removing installed software, see the Haiku User Guide's topic on the application \"SoftwareUpdater\" for update instructions.\n\nAre you sure you want to continue the installation? InstallProgress Η μονάδα προορισμού δεν είναι κενή. Αν περιέχει ήδη μια εγκατάσταση του Haiku, τότε αυτή θα αντικατασταθεί. Αυτό θα διαγράψει όλο το εγκατεστημένο λογισμικό.\n\nΑν επιθυμείτε να κάνετε μια αναβάθμιση του υπάρχοντος συστήματος, χωρίς αφαίρεση λογισμικού, δείτε το λήμμα του Οδηγού Χρήστη του Haiku σχετικά με την εφαρμογή \"SoftwareUpdater\" για οδηγίες.\n\nΕίστε σίγουρος/η ότι επιθυμείτε να συνεχίσετε την εγκατάσταση; Running Boot Manager…\n\nClose Boot Manager to continue with the installation. InstallerWindow Εκτελείται ο Διαχειριστής εκκίνησης...\n\nΚλείστε τον Διαχειριστή Εκκίνησης για να συνεχίσετε την εγκατάσταση. Quit DriveSetup InstallerWindow Έξοδος από τον Διαχειριστή Δίσκου Write boot sector InstallerWindow Εγγραφή τομέα εκκίνησης @@ -31,8 +33,10 @@ Install from: InstallerWindow Εγκατάσταση από: Additional disk space required: 0.0 KiB InstallerWindow Απαιτείται επιπρόσθετος χώρος στο δίσκο: 0.0 KiB This is beta-quality software! It means there is a risk of losing important data. Make frequent backups! You have been warned.\n\n\n InstallerApp Το λογισμικό αυτό βρίσκεται σε δοκιμαστική φάση! Αυτό σημαίνει ότι διατρέχετε το ρίσκο απώλειας σημαντικών δεδομένων. Κάντε αντίγραφα ασφαλείας τακτικά! Σας προειδοποιήσαμε.\n\n\n ??? InstallerWindow Unknown currently copied item ??? +Install anyway InstallProgress Εγκατάσταση με αντικατάσταση 1) If you are installing Haiku onto real hardware (not inside an emulator), you may want to prepare a hard disk partition from another OS (you could, for example, use a GParted Live-CD, which can also resize existing partitions to make room).\nYou can also set up partitions by launching DriveSetup from Installer, but you won't be able to resize existing partitions with it. While DriveSetup has been quite thoroughly tested over the years, it's recommended to have up-to-date backups of the other partitions on your system. Just in case… InstallerApp 1) Εάν κάνετε εγκατάσταση του Haiku σε πραγματικό υλισμικό (και όχι μέσα σε έναν προσομοιωτή), ίσως να θέλετε να προετοιμάσετε μία κατάτμηση με ένα άλλο λειτουργικό σύστημα (για παράδειγμα, θα μπορούσατε να χρησιμοποιήσετε ένα περιβάλλον GParted ζωντανού CD, το οποίο μπορεί και να αλλάξει το μέγεθος προϋπαρχόντων κατατμήσεων, έτσι ώστε να κάνετε χώρο).\nΜπορείτε να διαμορφώσετε κατατμήσεις και με τον Διαχειριστή Δίσκου στο Πρόγραμμα Εγκατάστασης, αλλά δεν θα μπορέσετε να αλλάξετε το μέγεθος προϋπαρχόντων κατατμήσεων με αυτό. Αν και ο Διαχειριστής Δίσκου έχει δοκιμαστεί εκτενώς με την πάροδο του χρόνου, συνιστάται η δημιουργία αντιγράφων ασφαλείας των υπόλοιπων κατατμήσεων στο σύστημά σας. Για καλό και για κακό… Choose the source and destination disk from the pop-up menus. Then click \"Begin\". InstallerWindow Επιλέξτε την προέλευση και το δίσκο προορισμού από τα αναδυόμενα μενού. Στη συνέχεια, κάντε κλικ στην \"Έναρξη\". +2) The Installer will make the Haiku partition itself bootable, but takes no steps to integrate Haiku into an existing boot menu. If you have GRUB already installed, you can add Haiku to it.\nFor details, please consult the guide on booting Haiku on our website at https://www.haiku-os.org/guides/booting.\nOr you can set up a boot menu from Installer's \"Tools\" menu, see the Haiku User Guide's topic on the application \"BootManager\".\n\n\n InstallerApp 2) Το πρόγραμμα εγκατάστασης θα ενεργοποιήσει τη δυνατότητα φόρτωσης από την τομή συστήματος του Haiku, αλλά δεν έχει τη δυνατότητα να εντάξει το σύστημα σε ένα υπάρχον μενού φόρτωσης συστήματος. Αν έχετε εγκατεστημένο ήδη το πρόγραμμα GRUB, τότε μπορείτε να προσθέσετε το σύστημα Haiku εκεί.\nΓια πληροφορίες ανατρέξτε στον οδηγό φόρτωσης του Haiku στην ιστοσελίδα μας, υπό τη διεύθυνση https://www.haiku-os.org/guides/booting.\nΕναλλακτικά μπορείτε να φτιάξετε ένα εντελώς καινούριο μενού φόρτωσης συστήματος από το μενού \"Εργαλεία\" του προγράμματος εγκατάστασης, δείτε το λήμμα του Οδηγού Χρήστη του Haiku πάνω στο πρόγραμμα \"BootManager\".\n\n\n Hide optional packages InstallerWindow Απόκρυψη προαιρετικών πακέτων ??? InstallerWindow Unknown partition name ??? Have fun and thanks for trying out Haiku! InstallerApp Καλή διασκέδαση και σας ευχαριστούμε που επιλέξατε το Haiku! @@ -41,17 +45,20 @@ Error writing boot sector. InstallProgress Σφάλμα εγγραφής τομ OK InstallerWindow Εντάξει Please close the Boot Manager and DriveSetup windows before closing the Installer window. InstallerWindow Παρακαλώ κλείστε τον Διαχειριστή Εκκίνησης και τη Διαχείρηση Δίσκου, πριν κλείσετε το Πρόγραμμα Εγκατάστασης. Failed to launch Boot Manager InstallerWindow Η εκκίνηση του Διαχειριστή Εκκίνησης απέτυχε +3) When you successfully boot into Haiku for the first time, make sure to read our \"User Guide\" and take the \"Quick Tour\". There are links on the Desktop and in WebPositive's bookmarks.\n\n InstallerApp 3) Όταν το Haiku φορτώσει επιτυχώς για πρώτη φορά, παρακαλούμε διαβάστε τον \"Οδηγό Χρήστη\" μας και κάντε μια \"Γρήγορη Ξενάγηση\" του συστήματος. Υπάρχουν μερικοί σύνδεσμοι στην επιφάνεια εργασίας και στους σελιδοδείκτες του WebPositive.\n\n Try installing anyway InstallProgress Προσπάθεια εγκατάστασης οπωσδήποτε IMPORTANT INFORMATION BEFORE INSTALLING HAIKU\n\n InstallerApp ΣΗΜΑΝΤΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ ΠΡΙΝ ΤΗΝ ΕΓΚΑΤΑΣΤΑΣΗ ΤΟΥ HAIKU\n\n Additional disk space required: %s InstallerWindow Επιπλέον χώρος δίσκου που απαιτείται: %s Stop InstallerWindow In alert after pressing Stop Τερματισμός εγκατάστασης Boot sector successfully written. InstallProgress Ο τομέας εκκίνησης εγγράφηκε επιτυχώς. +Writing bootsector. InstallProgress Εγγραφή τομέα φόρτωσης συστήματος. An error was encountered and the installation was not completed:\n\nError: %s InstallerWindow Παρουσιάστηκε ένα σφάλμα και η εγκατάσταση δεν ολοκληρώθηκε:\n\nΣφάλμα: %s Restart InstallerWindow Επανεκκίνηση The disk can't be mounted. Please choose a different disk. InstallProgress Ο δίσκος δεν μπορεί να προσαρτηθεί. Παρακαλώ επιλέξτε ένα διαφορετικό δίσκο. Begin InstallerWindow Έναρξη Collecting copy information. InstallProgress Συλλογή πληροφοριών αντιγραφής. Show optional packages InstallerWindow Εμφάνιση προαιρετικών πακέτων +No partitions have been found that are suitable for installation. Please set up partitions and format at least one partition with the Be File System. InstallerWindow Δεν βρέθηκαν τομές σκληρού δίσκου κατάλληλες για την εγκατάσταση. Παρακαλούμε ρυθμίστε και διαμορφώστε τουλάχιστον μια τομή με σύστημα αρχείων της Be. The destination disk may not have enough space. Try choosing a different disk or choose to not install optional items. InstallProgress Ο δίσκος προορισμού μπορεί να μην έχει αρκετό χώρο. Δοκιμάστε να επιλέξετε ένα διαφορετικό δίσκο ή επιλέξτε να μην εγκαταστήσετε προαιρετικά στοιχεία. Installation canceled. InstallProgress Η εγκατάσταση ακυρώθηκε. Stop InstallerWindow Τερματισμός @@ -59,6 +66,7 @@ Cancel InstallerWindow Ακύρωση Continue InstallerWindow In alert after pressing Stop Συνέχεια Scanning for disks… InstallerWindow Αναζήτηση δίσκων… Running DriveSetup…\n\nClose DriveSetup to continue with the installation. InstallerWindow Σε εξέλιξη η Διαχείρηση Δίσκου…\n\nΚλείστε τη Διαχείρηση Δίσκου για να συνεχίσετε με την εγκατάσταση. +The installation is not complete yet!\nAre you sure you want to stop it? InstallerWindow Η εγκατάσταση δεν έχει ολοκληρωθεί ακόμη.\nΕίστε σίγουρος/η ότι θέλετε να την σταματήσετε; The partition can't be mounted. Please choose a different partition. InstallProgress Η κατάτμηση δεν μπορεί να προσαρτηθεί. Παρακαλώ επιλέξτε μία διαφορετική κατάτμηση. Set up partitions… InstallerWindow Ρύθμιση κατατμήσεων… Install progress: InstallerWindow Πρόοδος εγκατάστασης: @@ -72,5 +80,6 @@ Onto: InstallerWindow Σε: Quit Boot Manager and DriveSetup InstallerWindow Έξοδος από το Διαχειριστή Εκκίνησης και από τη Διαχείρηση Δίσκου Tools InstallerWindow Εργαλεία scanning… InstallerWindow αναζήτηση… +Launch the DriveSetup utility to partition\navailable hard drives and other media.\nPartitions can be formatted with the\nBe File System needed for a Haiku boot\npartition. InstallerWindow Εκκίνηση της εφαρμογής DriveSetup για τη\nδημιουργία τομών σε διαθέσιμα μέσα. Μια τομή\nπρέπει να έχουν το μορφότυπο του συστήματος\nαρχείων της Be για να μπορεί να αποτελέσει\nτομή φόρτωσης συστήματος του Haiku. Set up boot menu InstallerWindow Ρύθμιση μενού εκκίνησης Continue InstallerApp Συνέχεια diff --git a/data/catalogs/apps/installer/pt_BR.catkeys b/data/catalogs/apps/installer/pt_BR.catkeys index 282e255abe..c8542013e2 100644 --- a/data/catalogs/apps/installer/pt_BR.catkeys +++ b/data/catalogs/apps/installer/pt_BR.catkeys @@ -1,11 +1,11 @@ 1 portuguese (brazil) x-vnd.Haiku-Installer 2017577026 -Performing installation. InstallProgress Fazendo a instalação. +Performing installation. InstallProgress Executando a instalação. Choose the source disk from the pop-up menu. Then click \"Begin\". InstallerWindow Escolha o disco de origem no menu pop-up. Então clique em \"Iniciar\". Please close the DriveSetup window before closing the Installer window. InstallerWindow Por favor feche o Gerenciador de Disco antes de fechar o Instalador. No optional packages available. PackagesView Nenhum pacote opcional disponível. The mount point could not be retrieved. InstallProgress O ponto de montagem não pôde ser recuperado. InstallerWindow No partition available -Please choose target InstallerWindow Por favor, escolha um alvo +Please choose target InstallerWindow Favor escolher um destino Cancel InstallProgress Cancelar Installation completed. Boot sector has been written to '%s'. Press Restart to restart the computer or choose a new target volume to perform another installation. InstallerWindow Instalação concluída. O setor de inicialização foi gravado em '%s'. Pressione Reiniciar para reiniciar o computador ou escolha um novo volume para realizar outra instalação. Are you sure you want to to stop the installation? InstallerWindow Tem certeza de que deseja parar a instalação? @@ -55,7 +55,7 @@ Writing bootsector. InstallProgress Escrevendo setor de inicialização. An error was encountered and the installation was not completed:\n\nError: %s InstallerWindow Um erro foi encontrado e a instalação não foi concluída:\n\nErro: %s Restart InstallerWindow Reiniciar The disk can't be mounted. Please choose a different disk. InstallProgress O disco não pode ser montado. Por favor escolha um disco diferente. -Begin InstallerWindow Início +Begin InstallerWindow Iniciar Collecting copy information. InstallProgress Coletando informações para cópia. Show optional packages InstallerWindow Mostrar items opcionais No partitions have been found that are suitable for installation. Please set up partitions and format at least one partition with the Be File System. InstallerWindow Não foram encontradas partições adequadas para instalação. Configure as partições e formate pelo menos uma partição com o Be File System. @@ -68,7 +68,7 @@ Scanning for disks… InstallerWindow Analisando os discos… Running DriveSetup…\n\nClose DriveSetup to continue with the installation. InstallerWindow Executando o Gerenciador de Disco…\n\nFechar o Gerenciador de Disco para continuar com a instalação. The installation is not complete yet!\nAre you sure you want to stop it? InstallerWindow A instalação ainda não está concluída!\nTem certeza que deseja parar? The partition can't be mounted. Please choose a different partition. InstallProgress A partição não pode ser montada. Por favor escolha uma partição diferente. -Set up partitions… InstallerWindow Configurar as partições... +Set up partitions… InstallerWindow Configurar partições… Install progress: InstallerWindow Progresso na instalação: You can't install the contents of a disk onto itself. Please choose a different disk. InstallProgress Você não pode instalar o conteúdo de um disco dentro dele mesmo. Por favor escolha um disco diferente. Boot Manager, the application to configure the Haiku boot menu, could not be launched. InstallerWindow Gerenciador de Inicialização, o aplicativo para configurar o menu de inicialização do Haiku não pôde ser iniciado. diff --git a/data/catalogs/apps/launchbox/fur.catkeys b/data/catalogs/apps/launchbox/fur.catkeys index c03e06839a..0b15c8a5a2 100644 --- a/data/catalogs/apps/launchbox/fur.catkeys +++ b/data/catalogs/apps/launchbox/fur.catkeys @@ -13,7 +13,7 @@ Show window border LaunchBox Mostre l'ôr dal barcon Failed to launch 'something', error in Pad data. LaunchBox Esecuzion di 'alc' falide, erôr tai dâts dal Pad. LaunchBox System name LaunchBox Auto-raise LaunchBox Tire sù in automatic -Icon size LaunchBox Dimension icone +Icon size LaunchBox Dimension iconis Open containing folder LaunchBox Mostre te cartele Add button here LaunchBox Zonte boton achì Cancel LaunchBox Anule diff --git a/data/catalogs/apps/launchbox/pt_BR.catkeys b/data/catalogs/apps/launchbox/pt_BR.catkeys index 9c2b8dd9f6..0c8c380aa0 100644 --- a/data/catalogs/apps/launchbox/pt_BR.catkeys +++ b/data/catalogs/apps/launchbox/pt_BR.catkeys @@ -3,7 +3,7 @@ Set description… LaunchBox Editar descrição... Really close this pad?\n(The pad will not be remembered.) LaunchBox Deseja fechar esta barra?\n(A barra não será lembrada.) OK LaunchBox OK Ignore double-click LaunchBox Ignorar clique duplo -Show on all workspaces LaunchBox Mostrar em todos os ambientes de trabalho +Show on all workspaces LaunchBox Mostrar em todas as áreas de trabalho Name Panel LaunchBox Nome do painel Autostart LaunchBox Iniciar automaticamente Clone LaunchBox Clonar @@ -11,7 +11,7 @@ Description for '%3' LaunchBox Descrição para '%3' Show window border LaunchBox Mostrar borda da janela \n\nFailed to launch application with signature '%2'.\n\nError: LaunchBox \n\nFalhou ao lançar aplicação com assinatura '%2'.\n\nErro: Failed to launch 'something', error in Pad data. LaunchBox Falhou ao lançar 'algo', erro nos dados da Plataforma. -LaunchBox System name LaunchBox +LaunchBox System name Caixa de lançamento Auto-raise LaunchBox Auto sobrepor Icon size LaunchBox Tamanho do ícone Open containing folder LaunchBox Abrir conteúdo da pasta diff --git a/data/catalogs/apps/login/be.catkeys b/data/catalogs/apps/login/be.catkeys index af1dccf604..686f946116 100644 --- a/data/catalogs/apps/login/be.catkeys +++ b/data/catalogs/apps/login/be.catkeys @@ -1,11 +1,8 @@ -1 belarusian x-vnd.Haiku-Login 2683778354 +1 belarusian x-vnd.Haiku-Login 1085637210 Invalid login! Login View Няправiльны лагiн! Error Login App Памылка ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\t Запусцiце у рэдакцыоннам ражыме для прыняцця зменаў на працоўным стале.\n Welcome to Haiku Login Window Haiku вiтае Вас Halt Login View Спынiць -Login application for Haiku\nUsage:\n Login App Уваход у Haiku\nВыкарастанне:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\t Не рабiць вакно мадальным\n Desktop Desktop Window Працоўны стол Hide password Login View Схаваць пароль Reboot Login View Перазагрузка diff --git a/data/catalogs/apps/login/ca.catkeys b/data/catalogs/apps/login/ca.catkeys index 519b945ba1..21426dbf6b 100644 --- a/data/catalogs/apps/login/ca.catkeys +++ b/data/catalogs/apps/login/ca.catkeys @@ -1,17 +1,17 @@ -1 catalan; valencian x-vnd.Haiku-Login 336867745 +1 catalan; valencian x-vnd.Haiku-Login 3568987751 Invalid login! Login View La identificació no és vàlida! Error Login App Error ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tInicia en mode d'edició de Lleixa per permetre personalitzar l'escriptori.\n +Login application for Haiku\nUsage: Login App Aplicació d'inici de sessió per al Haiku\nÚs: +--nonmodal\tDo not make the window modal Login App --nonmodal\tNo facis que la finestra sigui modal. Welcome to Haiku Login Window Benvingut/da al Haiku! Halt Login View Atura -Login application for Haiku\nUsage:\n Login App Aplicació d'identificació del Haiku\nÚs:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tNo ho facis a una finestra modal\n Desktop Desktop Window Escriptori Hide password Login View Amaga la contrasenya Reboot Login View Reinicia You can customize the desktop shown behind the Login application by dropping replicants onto it.\n\nWhen you are finished just quit the application (Cmd-Q). Login App Podeu personalitzar l'escriptori que es mostra darrere l'aplicació d'inici de sessió deixant-hi anar replicants.\n\nEn acabar, només heu de sortir de l'aplicació (Cmd-Q). OK Login View D'acord Info Login App Informació +--edit\tLaunch in shelf editting mode to allow customizing the desktop. Login App --edit\tLlançament en mode d'edició de lleixes per permetre personalitzar l'escriptori. Login: Login View Nom d'usuari: Password: Login View Contrasenya: Unimplemented Login App No implementat diff --git a/data/catalogs/apps/login/cs.catkeys b/data/catalogs/apps/login/cs.catkeys index 5ea66aaf42..6e698f6ec2 100644 --- a/data/catalogs/apps/login/cs.catkeys +++ b/data/catalogs/apps/login/cs.catkeys @@ -1,17 +1,17 @@ -1 czech x-vnd.Haiku-Login 336867745 +1 czech x-vnd.Haiku-Login 3568987751 Invalid login! Login View Neplatné přihlášení! Error Login App Chyba ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tSpustit v režimu editace, umožňuje přizpůsobit si plochu.\n +Login application for Haiku\nUsage: Login App Aplikace pro přihlášení k Haiku\nPoužití: +--nonmodal\tDo not make the window modal Login App --nonmodal\tNevytvářet okno modálně Welcome to Haiku Login Window Vítejte v Haiku Halt Login View Zastavit -Login application for Haiku\nUsage:\n Login App Aplikace pro přihlášení do Haiku\nPoužití:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tNespouštět v modálním okně\n Desktop Desktop Window Plocha Hide password Login View Skrýt heslo Reboot Login View Restartovat You can customize the desktop shown behind the Login application by dropping replicants onto it.\n\nWhen you are finished just quit the application (Cmd-Q). Login App Můžete přizpůsobit plochu zobrazenou na přihlašovací aplikaci tak, že do ní vložíte replikanty.\n\nPo dokončení stačí ukončit aplikaci (Cmd-Q). OK Login View OK Info Login App Informace +--edit\tLaunch in shelf editting mode to allow customizing the desktop. Login App --edit\tSpustit v režimu úprav pro přizpůsobení pracovní plochy. Login: Login View Přihlašovací jméno: Password: Login View Heslo: Unimplemented Login App Neimplementováno diff --git a/data/catalogs/apps/login/da.catkeys b/data/catalogs/apps/login/da.catkeys index 4ad77df0d0..5f3b17f382 100644 --- a/data/catalogs/apps/login/da.catkeys +++ b/data/catalogs/apps/login/da.catkeys @@ -1,17 +1,17 @@ -1 danish x-vnd.Haiku-Login 336867745 +1 danish x-vnd.Haiku-Login 3568987751 Invalid login! Login View Ugyldigt login! Error Login App Fejl ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tStart i hylderedigeringstilstand for tilpasning af skrivebordet.\n +Login application for Haiku\nUsage: Login App Indlogningsprogram til Haiku\nAnvendelse: +--nonmodal\tDo not make the window modal Login App --nonmodal\tGør ikke vinduet modalt Welcome to Haiku Login Window Velkommen til Haiku Halt Login View Stop -Login application for Haiku\nUsage:\n Login App Login-program til Haiku\nAnvendelse:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tGør ikke vinduet modalt\n Desktop Desktop Window Skrivebord Hide password Login View Skjul adgangskode Reboot Login View Genstart You can customize the desktop shown behind the Login application by dropping replicants onto it.\n\nWhen you are finished just quit the application (Cmd-Q). Login App Du kan tilpasse skrivebordet som vises bag login-programmet ved at slippe replikanter på det.\n\nNår du er færdig, så afslut blot programmet (Cmd-Q). OK Login View OK Info Login App Info +--edit\tLaunch in shelf editting mode to allow customizing the desktop. Login App --edit\tStart i hylderedigeringstilstand, så det er muligt at tilpasse skrivebordet. Login: Login View Login: Password: Login View Adgangskode: Unimplemented Login App Uimplementeret diff --git a/data/catalogs/apps/login/de.catkeys b/data/catalogs/apps/login/de.catkeys index 85293872b6..929996fa14 100644 --- a/data/catalogs/apps/login/de.catkeys +++ b/data/catalogs/apps/login/de.catkeys @@ -1,17 +1,17 @@ -1 german x-vnd.Haiku-Login 336867745 +1 german x-vnd.Haiku-Login 3568987751 Invalid login! Login View Ungültige Anmeldung! Error Login App Fehler ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tStartet im Shelf-Bearbeitungsmodus, um den Desktop zu individualisieren.\n +Login application for Haiku\nUsage: Login App Login Anwendung für Haiku\nGebrauch: +--nonmodal\tDo not make the window modal Login App --nonmodal\tFenster nicht-modal machen Welcome to Haiku Login Window Willkommen zu Haiku Halt Login View Stopp -Login application for Haiku\nUsage:\n Login App Anmelde-Anwendung für Haiku\nGebrauch:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tFenster nicht modal\n Desktop Desktop Window Desktop Hide password Login View Passwort verbergen Reboot Login View Neustart You can customize the desktop shown behind the Login application by dropping replicants onto it.\n\nWhen you are finished just quit the application (Cmd-Q). Login App Der Desktop hinter der Login Anwendung kann durch Replikanten individualisiert werden.\n\nIst man damit fertig kann die Anwendung einfach per ALT+Q beendet werden. OK Login View OK Info Login App Info +--edit\tLaunch in shelf editting mode to allow customizing the desktop. Login App --edit\tShelf-Bearbeitungsmodus, um den Desktop individuell einzurichten. Login: Login View Anmeldung: Password: Login View Passwort: Unimplemented Login App Nicht implementiert diff --git a/data/catalogs/apps/login/el.catkeys b/data/catalogs/apps/login/el.catkeys index 7a40b97b18..a8ca287a05 100644 --- a/data/catalogs/apps/login/el.catkeys +++ b/data/catalogs/apps/login/el.catkeys @@ -1,17 +1,17 @@ -1 greek, modern (1453-) x-vnd.Haiku-Login 336867745 +1 greek, modern (1453-) x-vnd.Haiku-Login 3568987751 Invalid login! Login View Μη έγκυρη είσοδος! Error Login App Σφάλμα ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tΆνοιγμα της λειτουργίας μορφοποίησης για την παραμετροποίηση της επιφάνειας εργασίας.\n +Login application for Haiku\nUsage: Login App Εφαρμογή εισόδου Haiku\nΧρήση: +--nonmodal\tDo not make the window modal Login App --nonmodal\tΕμφάνιση σε κανονικό παράθυρο Welcome to Haiku Login Window Καλωσορίσατε στο Haiku Halt Login View Παύση -Login application for Haiku\nUsage:\n Login App Εφαρμογή εισόδου για το Haiku\nΧρήση:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tΜην κάνετε το παράθυρο modal\n Desktop Desktop Window Επιφάνεια εργασίας Hide password Login View Κρύψιμο κωδικού Reboot Login View Επανεκκίνηση You can customize the desktop shown behind the Login application by dropping replicants onto it.\n\nWhen you are finished just quit the application (Cmd-Q). Login App Μπορείτε να προσαρμόσετε την επιφάνεια εργασίας πίσω από την εφαρμογή Εισόδου τοποθετώντας ρέπλικες σε αυτήν.\n\nΌταν τελειώσετε, απλά κλείστε την εφαρμογή (Cmd-Q). OK Login View ΟΚ Info Login App Πληροφορίες +--edit\tLaunch in shelf editting mode to allow customizing the desktop. Login App --edit\tΕκκίνηση σε λειτουργία επεξεργασίας για εξατομίκευση της επιφάνειας εργασίας. Login: Login View Είσοδος: Password: Login View Κωδικός: Unimplemented Login App Μη υλοποιημένο diff --git a/data/catalogs/apps/login/en_GB.catkeys b/data/catalogs/apps/login/en_GB.catkeys index e09dabf65c..8fe672b486 100644 --- a/data/catalogs/apps/login/en_GB.catkeys +++ b/data/catalogs/apps/login/en_GB.catkeys @@ -1,5 +1,4 @@ -1 english (united kingdom) x-vnd.Haiku-Login 528211071 ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tLaunch in shelf editing mode to allow customising the desktop.\n +1 english (united kingdom) x-vnd.Haiku-Login 988737147 You can customize the desktop shown behind the Login application by dropping replicants onto it.\n\nWhen you are finished just quit the application (Cmd-Q). Login App You can customise the desktop shown behind the Login application by dropping replicants onto it.\n\nWhen you are finished just quit the application (Cmd-Q). OK Login View Alright OK Login App Alright diff --git a/data/catalogs/apps/login/eo.catkeys b/data/catalogs/apps/login/eo.catkeys index 3f14fd02bf..e11571a779 100644 --- a/data/catalogs/apps/login/eo.catkeys +++ b/data/catalogs/apps/login/eo.catkeys @@ -1,11 +1,8 @@ -1 esperanto x-vnd.Haiku-Login 336867745 +1 esperanto x-vnd.Haiku-Login 3033693897 Invalid login! Login View Nevalida salutvorto! Error Login App Eraro ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tEkruli en bretredakta reĝimo por permesi agordi la labortablon.\n Welcome to Haiku Login Window Bonvenon al Haiku Halt Login View Ĉesigi -Login application for Haiku\nUsage:\n Login App Ensaluta programo por Haiku\nUzado:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tNe fari la fenestron neevitebla\n Desktop Desktop Window Labortablo Hide password Login View Kaŝi pasvorton Reboot Login View Restartigi diff --git a/data/catalogs/apps/login/es.catkeys b/data/catalogs/apps/login/es.catkeys index a8091bc2e1..a7508c137e 100644 --- a/data/catalogs/apps/login/es.catkeys +++ b/data/catalogs/apps/login/es.catkeys @@ -1,17 +1,17 @@ -1 spanish; castilian x-vnd.Haiku-Login 336867745 +1 spanish; castilian x-vnd.Haiku-Login 3568987751 Invalid login! Login View ¡Ingreso inválido! Error Login App Error ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --editar\tLanzamiento en modo de edición de plataforma para permitir personalizar el escritorio.\n +Login application for Haiku\nUsage: Login App Aplicación de inicio de sesión de Haiku\nUso: +--nonmodal\tDo not make the window modal Login App --nonmodal\tEvita que la ventana sea modal Welcome to Haiku Login Window Bienvenido a Haiku Halt Login View Alto -Login application for Haiku\nUsage:\n Login App Aplicación login para Haiku\nUso:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tNo hacer la ventana modal\n Desktop Desktop Window Escritorio Hide password Login View Ocultar contraseña Reboot Login View Reiniciar You can customize the desktop shown behind the Login application by dropping replicants onto it.\n\nWhen you are finished just quit the application (Cmd-Q). Login App Puedes personalizar el escritorio que se muestra detrás de la aplicación de inicio de sesión soltando replicantes sobre el mismo.\n\nCuando termines, simplemente cierra la aplicación (Cmd-Q). OK Login View OK Info Login App Info +--edit\tLaunch in shelf editting mode to allow customizing the desktop. Login App --edit\tLanzar en modo de edición de exposición para permitir personalizar el escritorio. Login: Login View Login: Password: Login View Contraseña: Unimplemented Login App Inimplementado diff --git a/data/catalogs/apps/login/fi.catkeys b/data/catalogs/apps/login/fi.catkeys index 96f34ea016..fed44b42ea 100644 --- a/data/catalogs/apps/login/fi.catkeys +++ b/data/catalogs/apps/login/fi.catkeys @@ -1,17 +1,17 @@ -1 finnish x-vnd.Haiku-Login 336867745 +1 finnish x-vnd.Haiku-Login 3568987751 Invalid login! Login View Virheellinen kirjautuminen! Error Login App Virhe ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tKäynnistää itsemuokkaustilan työpöydän muokkaamisen sallimiseksi.\n +Login application for Haiku\nUsage: Login App Haikun kirjautumissovellus\nKäyttö: +--nonmodal\tDo not make the window modal Login App --nonmodal\tÄlä tee ikkunasta pakollista Welcome to Haiku Login Window Tervetuloa Haikuun Halt Login View Keskeytä -Login application for Haiku\nUsage:\n Login App Kirjautumissovellus Haikulle\nKäyttö:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tÄlä tee ikkunasta välitöntä toimintaa vaativaa\n Desktop Desktop Window Työpöytä Hide password Login View Piilota salasana Reboot Login View Käynnistä uudelleen You can customize the desktop shown behind the Login application by dropping replicants onto it.\n\nWhen you are finished just quit the application (Cmd-Q). Login App Voit räätälöidä Kirjautumissovelluksen jälkeen näytettävää työpöytää pudottamalla kopiot siihen.\n\nKun olet valmis, poistu vain sovelluksesta (Cmd-Q). OK Login View Valmis Info Login App Tiedot +--edit\tLaunch in shelf editting mode to allow customizing the desktop. Login App --edit\tKäynnistä hyllymuokkaustilassa, joka sallii työpöydän muuttamisen toiveiden mukaiseksi. Login: Login View Kirjaudu: Password: Login View Salasana: Unimplemented Login App Toteuttamaton diff --git a/data/catalogs/apps/login/fr.catkeys b/data/catalogs/apps/login/fr.catkeys index 6507594ae7..c8b62e5b2a 100644 --- a/data/catalogs/apps/login/fr.catkeys +++ b/data/catalogs/apps/login/fr.catkeys @@ -1,17 +1,16 @@ -1 french x-vnd.Haiku-Login 336867745 +1 french x-vnd.Haiku-Login 406290179 Invalid login! Login View Échec de l’identification ! Error Login App Erreur ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tLancer en mode édition de présentoire pour permettre la personnalisation du bureau.\n +--nonmodal\tDo not make the window modal Login App --nonmodal\tNe pas rendre la fenêtre modale Welcome to Haiku Login Window Bienvenue dans Haiku Halt Login View Arrêter -Login application for Haiku\nUsage:\n Login App Application d’authentification pour Haiku\nUtilisation :\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tLa fenêtre n’est pas rendue modale\n Desktop Desktop Window Bureau Hide password Login View Camoufler le mot de passe Reboot Login View Redémarrer You can customize the desktop shown behind the Login application by dropping replicants onto it.\n\nWhen you are finished just quit the application (Cmd-Q). Login App Vous pouvez personnaliser le bureau affiché derrière l’application Login en déposant des réplicants dessus.\n\nLorsque vous avez terminé, quittez l’application (Cmd-Q). OK Login View OK Info Login App Informations +--edit\tLaunch in shelf editting mode to allow customizing the desktop. Login App --edit\tLancement en mode plateforme d’édition pour permettre la personnalisation du bureau. Login: Login View Identifiant : Password: Login View Mot de passe : Unimplemented Login App Non implémenté diff --git a/data/catalogs/apps/login/fur.catkeys b/data/catalogs/apps/login/fur.catkeys index 1bdb27b7a5..78d37650c4 100644 --- a/data/catalogs/apps/login/fur.catkeys +++ b/data/catalogs/apps/login/fur.catkeys @@ -1,11 +1,8 @@ -1 friulian x-vnd.Haiku-Login 336867745 +1 friulian x-vnd.Haiku-Login 3033693897 Invalid login! Login View Acès no valit! Error Login App Erôr ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tInvie in modalitât 'modifiche plateforme' par permeti la personalizazion dal Scritori.\n Welcome to Haiku Login Window Benvignûts su Haiku! Halt Login View Distude -Login application for Haiku\nUsage:\n Login App Aplicazion di acès par Haiku\nÛs:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tNo sta rindi modâl il barcon\n Desktop Desktop Window Scritori Hide password Login View Plate peraule di ordin Reboot Login View Torne invie diff --git a/data/catalogs/apps/login/hr.catkeys b/data/catalogs/apps/login/hr.catkeys index 76239b64a3..afa7f196f2 100644 --- a/data/catalogs/apps/login/hr.catkeys +++ b/data/catalogs/apps/login/hr.catkeys @@ -1,9 +1,8 @@ -1 croatian x-vnd.Haiku-Login 2223124708 +1 croatian x-vnd.Haiku-Login 1085637210 Invalid login! Login View Neispravna prijava! Error Login App Greška Welcome to Haiku Login Window Dobrodošli u Haiku Halt Login View Zaustavi -Login application for Haiku\nUsage:\n Login App Program za Haiku prijavu\nUporaba:\n Desktop Desktop Window Radna površina Hide password Login View Sakrij lozinku Reboot Login View Ponovno podigni sustav diff --git a/data/catalogs/apps/login/hu.catkeys b/data/catalogs/apps/login/hu.catkeys index 412aecbd2f..c78a544fec 100644 --- a/data/catalogs/apps/login/hu.catkeys +++ b/data/catalogs/apps/login/hu.catkeys @@ -1,11 +1,10 @@ -1 hungarian x-vnd.Haiku-Login 336867745 +1 hungarian x-vnd.Haiku-Login 1584886353 Invalid login! Login View Érvénytelen felhasználónév! Error Login App Hiba ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tIndítás szerkesztési módban, hogy lehessen szerkeszteni az Asztalt.\n +Login application for Haiku\nUsage: Login App Bejelentkező alkalmazás Haikuhoz\nHasználat: +--nonmodal\tDo not make the window modal Login App --nonmodal\tNe legyen a többi ablak előtt Welcome to Haiku Login Window Üdvözöllek a Haikuban Halt Login View Megszakítás -Login application for Haiku\nUsage:\n Login App A Haiku bejelentkezési programja\nHasználat:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tKikapcsolja az ablak modálisságát\n Desktop Desktop Window Asztal Hide password Login View Jelszó elrejtése Reboot Login View Újraindítás diff --git a/data/catalogs/apps/login/id.catkeys b/data/catalogs/apps/login/id.catkeys index c4b30378d7..4c6d850ed3 100644 --- a/data/catalogs/apps/login/id.catkeys +++ b/data/catalogs/apps/login/id.catkeys @@ -1,11 +1,8 @@ -1 indonesian x-vnd.Haiku-Login 336867745 +1 indonesian x-vnd.Haiku-Login 3033693897 Invalid login! Login View Login tidak valid! Error Login App Kesalahan ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tLuncurkan dalam mode edit rak untuk memungkinkan penyesuaian desktop.\n Welcome to Haiku Login Window Selamat datang di Haiku Halt Login View Berhenti -Login application for Haiku\nUsage:\n Login App Aplikasi login untuk Haiku\nPenggunaan:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tJangan membuat jendela menjadi modal\n Desktop Desktop Window Desktop Hide password Login View Sembunyikan kata sandi Reboot Login View Reboot diff --git a/data/catalogs/apps/login/it.catkeys b/data/catalogs/apps/login/it.catkeys index 50a3890a11..5d3a0413b2 100644 --- a/data/catalogs/apps/login/it.catkeys +++ b/data/catalogs/apps/login/it.catkeys @@ -1,11 +1,8 @@ -1 italian x-vnd.Haiku-Login 336867745 +1 italian x-vnd.Haiku-Login 3033693897 Invalid login! Login View Accesso invalido! Error Login App Errore ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tEsegui in modalità 'self editing' per la personalizzazione della Scrivania.\n Welcome to Haiku Login Window Benvenuti su Haiku! Halt Login View Arresta -Login application for Haiku\nUsage:\n Login App Applicazione di Login per Haiku\nUso:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tNon rendere la finestra modale\n Desktop Desktop Window Scrivania Hide password Login View Nascondi password Reboot Login View Riavvia diff --git a/data/catalogs/apps/login/ja.catkeys b/data/catalogs/apps/login/ja.catkeys index 8badd45ca9..3640a2110a 100644 --- a/data/catalogs/apps/login/ja.catkeys +++ b/data/catalogs/apps/login/ja.catkeys @@ -1,17 +1,17 @@ -1 japanese x-vnd.Haiku-Login 336867745 +1 japanese x-vnd.Haiku-Login 3568987751 Invalid login! Login View ログインが無効です! Error Login App エラー ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tLaunch in shelf editting mode to allow customizing the desktop.\n +Login application for Haiku\nUsage: Login App Login application for Haiku\nUsage: +--nonmodal\tDo not make the window modal Login App --nonmodal\tDo not make the window modal Welcome to Haiku Login Window Haiku へようこそ Halt Login View 停止 -Login application for Haiku\nUsage:\n Login App Login application for Haiku\nUsage:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tDo not make the window modal\n Desktop Desktop Window デスクトップ Hide password Login View パスワードを隠す Reboot Login View 再起動 You can customize the desktop shown behind the Login application by dropping replicants onto it.\n\nWhen you are finished just quit the application (Cmd-Q). Login App Login アプリケーションの背後のデスクトップをレプリカントをドロップすることでカスタマイズできます。\n\n完了後、アプリケーションを終了してください (Cmd-Q)。 OK Login View OK Info Login App 情報 +--edit\tLaunch in shelf editting mode to allow customizing the desktop. Login App --edit\tLaunch in shelf editting mode to allow customizing the desktop. Login: Login View ログイン: Password: Login View パスワード: Unimplemented Login App 未実装 diff --git a/data/catalogs/apps/login/lt.catkeys b/data/catalogs/apps/login/lt.catkeys index d3ed4836ed..24f13d4fb5 100644 --- a/data/catalogs/apps/login/lt.catkeys +++ b/data/catalogs/apps/login/lt.catkeys @@ -1,11 +1,8 @@ -1 lithuanian x-vnd.Haiku-Login 2683778354 +1 lithuanian x-vnd.Haiku-Login 1085637210 Invalid login! Login View Netinkamas naudotojo vardas! Error Login App Klaida ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tPaleisti nuostatų keitimo veiksena, leidžiančia tinkinti darbalaukį.\n Welcome to Haiku Login Window Sveiki! Čia „Haiku“ Halt Login View Išjungti -Login application for Haiku\nUsage:\n Login App Prisijungimo prie „Haiku“ programa\nNaudojimas:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\t Nepaversti lango modaliniu\n Desktop Desktop Window Darbalaukis Hide password Login View Nerodyti slaptažodžio Reboot Login View Paleisti iš naujo diff --git a/data/catalogs/apps/login/nl.catkeys b/data/catalogs/apps/login/nl.catkeys index 6156c9dbe6..48b9067970 100644 --- a/data/catalogs/apps/login/nl.catkeys +++ b/data/catalogs/apps/login/nl.catkeys @@ -1,11 +1,8 @@ -1 dutch; flemish x-vnd.Haiku-Login 336867745 +1 dutch; flemish x-vnd.Haiku-Login 3033693897 Invalid login! Login View Ongeldige inloggegevens! Error Login App Fout ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\t Start in onderhoudsmodus om het bureaublad aan te passen.\n Welcome to Haiku Login Window Welkom bij Haiku Halt Login View Stoppen -Login application for Haiku\nUsage:\n Login App Loginapplicatie voor Haiku\nGebruik:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\t Maak een venster niet modaal\n Desktop Desktop Window Bureaublad Hide password Login View Wachtwoord verbergen Reboot Login View Herstarten diff --git a/data/catalogs/apps/login/pl.catkeys b/data/catalogs/apps/login/pl.catkeys index 608d13c494..86c8c539f2 100644 --- a/data/catalogs/apps/login/pl.catkeys +++ b/data/catalogs/apps/login/pl.catkeys @@ -1,11 +1,8 @@ -1 polish x-vnd.Haiku-Login 336867745 +1 polish x-vnd.Haiku-Login 3033693897 Invalid login! Login View Nieprawidłowy login! Error Login App Błąd ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tUruchom w trybie edycyjnym aby umożliwić dostosowywanie pulpitu.\n Welcome to Haiku Login Window Witamy w Haiku Halt Login View Zatrzymaj -Login application for Haiku\nUsage:\n Login App Aplikacja logująca dla Haiku\nUżycie:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tNie twórz okna modalnego\n Desktop Desktop Window Pulpit Hide password Login View Ukryj hasło Reboot Login View Uruchom ponownie diff --git a/data/catalogs/apps/login/pt.catkeys b/data/catalogs/apps/login/pt.catkeys index f0b5aaf149..08d9aa0594 100644 --- a/data/catalogs/apps/login/pt.catkeys +++ b/data/catalogs/apps/login/pt.catkeys @@ -1,11 +1,8 @@ -1 portuguese x-vnd.Haiku-Login 336867745 +1 portuguese x-vnd.Haiku-Login 3033693897 Invalid login! Login View Acesso inválido! Error Login App Erro ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tIniciar no modo de edição de shell para permitir personalizar a área de trabalho.\n Welcome to Haiku Login Window Bem-vindo ao Haiku Halt Login View Suspender -Login application for Haiku\nUsage:\n Login App Aplicação de autenticação para Haiku\nUtilização:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tNão tornar modal a janela\n Desktop Desktop Window Área de Trabalho Hide password Login View Esconder palavra-passe Reboot Login View Reiniciar diff --git a/data/catalogs/apps/login/pt_BR.catkeys b/data/catalogs/apps/login/pt_BR.catkeys index 2bc9cb9040..f54a4aca35 100644 --- a/data/catalogs/apps/login/pt_BR.catkeys +++ b/data/catalogs/apps/login/pt_BR.catkeys @@ -1,11 +1,8 @@ -1 portuguese (brazil) x-vnd.Haiku-Login 336867745 +1 portuguese (brazil) x-vnd.Haiku-Login 3033693897 Invalid login! Login View Autenticação inválida! Error Login App Erro ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\t Lançar em modo de edição em prateleira para permitir a customização da área de trabalho.\n Welcome to Haiku Login Window Bem-vindo ao Haiku Halt Login View Desligar -Login application for Haiku\nUsage:\n Login App Aplicativo de autenticação para Haiku\nUso:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\t Não torna modal a janela\n Desktop Desktop Window Área de trabalho Hide password Login View Ocultar senha Reboot Login View Reinicializar diff --git a/data/catalogs/apps/login/ro.catkeys b/data/catalogs/apps/login/ro.catkeys index 4eccb21000..778637fc38 100644 --- a/data/catalogs/apps/login/ro.catkeys +++ b/data/catalogs/apps/login/ro.catkeys @@ -1,11 +1,8 @@ -1 romanian x-vnd.Haiku-Login 336867745 +1 romanian x-vnd.Haiku-Login 3033693897 Invalid login! Login View Autentificare nevalidă! Error Login App Eroare ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tLansați în modul de editare raft pentru a permite personalizarea desktopului.\n Welcome to Haiku Login Window Bine ați venit la Haiku Halt Login View Oprire -Login application for Haiku\nUsage:\n Login App Aplicație de autentificare pentru Haiku\nUtilizare:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tNu face fereastra modală\n Desktop Desktop Window Desktop Hide password Login View Ascunde parola Reboot Login View Repornire diff --git a/data/catalogs/apps/login/ru.catkeys b/data/catalogs/apps/login/ru.catkeys index 6410c01491..1d717f3b40 100644 --- a/data/catalogs/apps/login/ru.catkeys +++ b/data/catalogs/apps/login/ru.catkeys @@ -1,11 +1,8 @@ -1 russian x-vnd.Haiku-Login 336867745 +1 russian x-vnd.Haiku-Login 3033693897 Invalid login! Login View Неправильный логин! Error Login App Ошибка ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tЗапустить в режиме редактирования для модификации рабочего стола.\n Welcome to Haiku Login Window Добро пожаловать в Haiku Halt Login View Выключение -Login application for Haiku\nUsage:\n Login App Вход в Haiku\nИспользование:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tНе делать окно модальным\n Desktop Desktop Window Рабочий стол Hide password Login View Скрыть пароль Reboot Login View Перезагрузить diff --git a/data/catalogs/apps/login/sk.catkeys b/data/catalogs/apps/login/sk.catkeys index 28908ca57e..991b10811b 100644 --- a/data/catalogs/apps/login/sk.catkeys +++ b/data/catalogs/apps/login/sk.catkeys @@ -1,11 +1,8 @@ -1 slovak x-vnd.Haiku-Login 336867745 +1 slovak x-vnd.Haiku-Login 3033693897 Invalid login! Login View Neplatné prihlasovacie meno! Error Login App Chyba ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\t Spustiť v režime úpravy políc umožňujúcom prispôsobiť plochu.\n Welcome to Haiku Login Window Vitajte v Haiku Halt Login View Vypnúť -Login application for Haiku\nUsage:\n Login App Prihlasovacia aplikácia Haiku\n Použitie:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\t Nevytvárať okno ako modálne\n Desktop Desktop Window Plocha Hide password Login View Skryť heslo Reboot Login View Reštartovať diff --git a/data/catalogs/apps/login/sv.catkeys b/data/catalogs/apps/login/sv.catkeys index 51e47c1bac..f1884db362 100644 --- a/data/catalogs/apps/login/sv.catkeys +++ b/data/catalogs/apps/login/sv.catkeys @@ -1,17 +1,17 @@ -1 swedish x-vnd.Haiku-Login 336867745 +1 swedish x-vnd.Haiku-Login 3568987751 Invalid login! Login View Ogiltig inloggning! Error Login App Fel ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tStarta i självediteringsläge för att skräddarsy skrivbordet.\n +Login application for Haiku\nUsage: Login App Inloggningsapplikation för Haiku\nAnvändande: +--nonmodal\tDo not make the window modal Login App --nonmodal\tGör inte fönstret modalt Welcome to Haiku Login Window Välkommen till Haiku Halt Login View Stoppa -Login application for Haiku\nUsage:\n Login App Login applikation för Haiku\n Användning:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\t Gör inte fönstret modulär\n Desktop Desktop Window Skrivbord Hide password Login View Göm lösenordet Reboot Login View Starta om You can customize the desktop shown behind the Login application by dropping replicants onto it.\n\nWhen you are finished just quit the application (Cmd-Q). Login App Du kan skräddarsy skrivbordet som visas bakom loginapplikationen genom att släppa replikanter på det \n\nStäng applikationen när du är klar (Cmd-Q). OK Login View OK Info Login App Information +--edit\tLaunch in shelf editting mode to allow customizing the desktop. Login App --edit\tStarta i hyllredigeringsläge för att anpassa skrivbordet. Login: Login View Användarnamn: Password: Login View Lösenord: Unimplemented Login App Ej implementerad diff --git a/data/catalogs/apps/login/th.catkeys b/data/catalogs/apps/login/th.catkeys index 28b9a944ad..b72dc2bd62 100644 --- a/data/catalogs/apps/login/th.catkeys +++ b/data/catalogs/apps/login/th.catkeys @@ -1,11 +1,8 @@ -1 thai x-vnd.Haiku-Login 336867745 +1 thai x-vnd.Haiku-Login 3033693897 Invalid login! Login View เข้าสู่ระบบไม่ถูกต้อง! Error Login App ผิดพลาด ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --แก้ไข\tเรียกใช้ในโหมดการแก้ไขชั้นวางเพื่ออนุญาตให้ปรับแต่งเดสก์ท็อป\n Welcome to Haiku Login Window ยินดีต้อนรับสู่ Haiku Halt Login View หยุด -Login application for Haiku\nUsage:\n Login App แอปพลิเคชันเข้าสู่ระบบสำหรับ Haiku\nการใช้งาน:\n ---nonmodal\tDo not make the window modal\n Login App -nonmodal\tอย่าทำหน้าต่าง\n Desktop Desktop Window เดสก์ท็อป Hide password Login View ซ่อนรหัสผ่าน Reboot Login View รีบูธ diff --git a/data/catalogs/apps/login/tr.catkeys b/data/catalogs/apps/login/tr.catkeys index 3a876e11a7..53391797d6 100644 --- a/data/catalogs/apps/login/tr.catkeys +++ b/data/catalogs/apps/login/tr.catkeys @@ -1,17 +1,17 @@ -1 turkish x-vnd.Haiku-Login 336867745 +1 turkish x-vnd.Haiku-Login 3568987751 Invalid login! Login View Geçersiz giriş! Error Login App Hata ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tMasaüstü'nün özelleştirilebilmesi için raf düzenleme kipinde başlatır.\n +Login application for Haiku\nUsage: Login App Haiku için oturum açma uygulaması\nKullanım: +--nonmodal\tDo not make the window modal Login App --nonmodal\tPencereyi kipsel yapma Welcome to Haiku Login Window Haiku'ya hoş geldiniz Halt Login View Dur -Login application for Haiku\nUsage:\n Login App Haiku'ya giriş yapma uygulaması\nKullanım:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tPencereyi kipsel yapma\n Desktop Desktop Window Masaüstü Hide password Login View Parolayı gizle Reboot Login View Yeniden başlat You can customize the desktop shown behind the Login application by dropping replicants onto it.\n\nWhen you are finished just quit the application (Cmd-Q). Login App Giriş uygulamasının arkasında gösterilen masaüstünü üzerine yinelenenler bırakarak özelleştirebilirsiniz.\n\nİşiniz bittiğinde uygulamadan çıkın. (Cmd-Q). OK Login View Tamam Info Login App Bilgi +--edit\tLaunch in shelf editting mode to allow customizing the desktop. Login App --edit\tMasaüstünü özelleştirmeye izin vermek için düzenleme kipinde başlat Login: Login View Giriş: Password: Login View Parola: Unimplemented Login App İşlevsel değil diff --git a/data/catalogs/apps/login/uk.catkeys b/data/catalogs/apps/login/uk.catkeys index 95a3d8cd2a..63d735da14 100644 --- a/data/catalogs/apps/login/uk.catkeys +++ b/data/catalogs/apps/login/uk.catkeys @@ -1,11 +1,8 @@ -1 ukrainian x-vnd.Haiku-Login 336867745 +1 ukrainian x-vnd.Haiku-Login 3033693897 Invalid login! Login View Невірний логін! Error Login App Помилка ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\tЗапустити в режимі редагування для того, щоб налаштувати робочий стіл.\n Welcome to Haiku Login Window Запрошуємо в Haiku Halt Login View Зупинити -Login application for Haiku\nUsage:\n Login App Програма для авторизації у Haiku\nВикористання:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\tНе робити вікно модальним\n Desktop Desktop Window Робочий стіл Hide password Login View Приховати пароль Reboot Login View Перезавантажити diff --git a/data/catalogs/apps/login/zh_Hans.catkeys b/data/catalogs/apps/login/zh_Hans.catkeys index d0771b1d20..f915e5536b 100644 --- a/data/catalogs/apps/login/zh_Hans.catkeys +++ b/data/catalogs/apps/login/zh_Hans.catkeys @@ -1,11 +1,8 @@ -1 english x-vnd.Haiku-Login 2683778354 +1 english x-vnd.Haiku-Login 1085637210 Invalid login! Login View 登陆无效! Error Login App 错误 ---edit\tLaunch in shelf editting mode to allow customizing the desktop.\n Login App --edit\t使用编辑模式启动,以便自定义桌面。\n Welcome to Haiku Login Window 欢迎使用 Haiku Halt Login View 挂起 -Login application for Haiku\nUsage:\n Login App Haiku 登陆程序\n用法:\n ---nonmodal\tDo not make the window modal\n Login App --nonmodal\t不启用窗口模式\n Desktop Desktop Window 桌面 Hide password Login View 隐藏密码 Reboot Login View 重新启动 diff --git a/data/catalogs/apps/mail/da.catkeys b/data/catalogs/apps/mail/da.catkeys index 9d69933710..9cf5527242 100644 --- a/data/catalogs/apps/mail/da.catkeys +++ b/data/catalogs/apps/mail/da.catkeys @@ -98,13 +98,13 @@ Need Tracker to move items to trash Mail Behøber tracker for at flytte element The mail_daemon could not be started:\n\t Mail mail_daemon kunne ikke startes:\n\t Mail Mail couldn't find its dictionary. Mail Mail kunne ikke finde sin mappe. -Mail preferences Mail Mail-præferencer +Mail preferences Mail Præferencer for mail helpful message Mail hjælpsom meddelelse Read Mail Læs Font: Mail Skrifttype: Accounts… Mail Konti… Previous Mail Forrige -Include file attributes in attachments Mail Inkluder filattributter i vedhæftninger +Include file attributes in attachments Mail Medtag filattributter i vedhæftninger Start now Mail Start nu (Name unavailable) Mail (navn utilgængeligt) Move to trash Mail Flyt til papirkurven diff --git a/data/catalogs/apps/mail/el.catkeys b/data/catalogs/apps/mail/el.catkeys index ff641c068a..c181665626 100644 --- a/data/catalogs/apps/mail/el.catkeys +++ b/data/catalogs/apps/mail/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.Be-MAIL 1328273043 +1 greek, modern (1453-) x-vnd.Be-MAIL 1477453861 Set to Saved Mail Ορισμός ως Αποθηκευμένο Your main text contains %ld unencodable characters. Perhaps a different character set would work better? Hit Send to send it anyway (a substitute character will be used in place of the unencodable ones), or choose Cancel to go back and try fixing it up. Mail Το κύριο κείμενό σας περιέχει %ld που δεν μπορούν να κωδικοποιηθούν. Ίσως μία άλλη μέθοδος κωδικοποίησης να λειτουργήσει καλύτερα. Πατήστε Αποστολή για να στείλετε το μήνυμά σας (οι χαρακτήρες που δεν μπορούν να κωδικοποιηθούν θα αντικατασταθούν με έναν υποκατάστατο χαρακτήρα) ούτως ή άλλως, ή επιλέξτε Ακύρωση για να ακυρώσετε την αποστολή και να διορθώσετε το πρόβλημα. Text wrapping: Mail Αναδίπλωση κειμένου: @@ -100,6 +100,7 @@ The mail_daemon could not be started:\n\t Mail Το mail_daemon δεν μπόρ Mail couldn't find its dictionary. Mail Η εφαρμογή Αλληλογραφία δεν μπόρεσε να εντοπίσει το λεξικό της. Mail preferences Mail Προτιμήσεις Αλληλογραφίας helpful message Mail βοηθητικό μήνυμα + Read Mail Ανάγνωση Font: Mail Γραμματοσειρά: Accounts… Mail Λογαριασμοί… Previous Mail Προηγούμενο diff --git a/data/catalogs/apps/mail/fur.catkeys b/data/catalogs/apps/mail/fur.catkeys index a973d3c95e..d49e653313 100644 --- a/data/catalogs/apps/mail/fur.catkeys +++ b/data/catalogs/apps/mail/fur.catkeys @@ -1,6 +1,6 @@ 1 friulian x-vnd.Be-MAIL 1477453861 Set to Saved Mail Met come Salvât -Your main text contains %ld unencodable characters. Perhaps a different character set would work better? Hit Send to send it anyway (a substitute character will be used in place of the unencodable ones), or choose Cancel to go back and try fixing it up. Mail Il to test principâl al conten %ld caratars che no si puedin codificâ. Podaressial lâ ben forsit un complès di caratars diferents? Frache Invie par inviâlu distès (un caratar sostitutîf al vignarà doprât al puest di chei no codificabii), o sielç Anule par tornâ indaûr e justâ il test. +Your main text contains %ld unencodable characters. Perhaps a different character set would work better? Hit Send to send it anyway (a substitute character will be used in place of the unencodable ones), or choose Cancel to go back and try fixing it up. Mail Il to test principâl al conten %ld caratars che no si puedin codificâ. Podaressie lâ ben forsit une cumbinazion di caratars diferente? Frache Invie par inviâlu distès (un caratar sostitutîf al vignarà doprât al puest di chei no codificabii), o sielç Anule par tornâ indaûr e justâ il test. Text wrapping: Mail Rie gnove automatiche: Show icons & labels Mail Mostre iconis e etichetis (Date unavailable) Mail (Date no disponibile) diff --git a/data/catalogs/apps/mail/id.catkeys b/data/catalogs/apps/mail/id.catkeys index d97b91a603..56cfd3fc65 100644 --- a/data/catalogs/apps/mail/id.catkeys +++ b/data/catalogs/apps/mail/id.catkeys @@ -106,7 +106,7 @@ Accounts… Mail Akun… Previous Mail Sebelumnya Include file attributes in attachments Mail Sertakan atribut berkas dalam lampiran Start now Mail Mulai sekarang -(Name unavailable) Mail Nama tidak tersedia) +(Name unavailable) Mail (Nama tidak tersedia) Move to trash Mail Pindah ke tempat sampah Mail %d - Date Mail Tanggal - %d diff --git a/data/catalogs/apps/mail/pt_BR.catkeys b/data/catalogs/apps/mail/pt_BR.catkeys index b6e2c31c02..40d31766c1 100644 --- a/data/catalogs/apps/mail/pt_BR.catkeys +++ b/data/catalogs/apps/mail/pt_BR.catkeys @@ -94,7 +94,7 @@ Attach attributes: Mail Anexar Atributos: Find again Mail Localizar novamente Size: Mail Tamanho: To: Mail Para: -Need Tracker to move items to trash Mail Necessita do Rastreador (Tracker) para mover itens para a lixeira +Need Tracker to move items to trash Mail Tracker é necessário para mover itens para a lixeira The mail_daemon could not be started:\n\t Mail O mail_daemon não pôde ser iniciado:\n\t Mail Mail couldn't find its dictionary. Mail O correio não pôde encontrar seu dicionário. @@ -151,7 +151,7 @@ New mail message Mail Nova mensagem de correio An error occurred trying to open this signature. Mail Ocorreu um erro ao tentar abrir esta assinatura. Edit signatures… Mail Editar assinaturas… User interface Mail Interface de usuário -Inconsistency occurred in the undo/redo buffer. Mail Ocorreu um erro de inconsistência na memória intermédia do Desfazer/Refazer. +Inconsistency occurred in the undo/redo buffer. Mail Ocorreu um erro de inconsistência na memória do Desfazer/Refazer. Remove attachment Mail Remover anexo Set to… Mail Definir como… Edit Mail Editar diff --git a/data/catalogs/apps/mail/sv.catkeys b/data/catalogs/apps/mail/sv.catkeys index d3a0ca9691..a8c72ee300 100644 --- a/data/catalogs/apps/mail/sv.catkeys +++ b/data/catalogs/apps/mail/sv.catkeys @@ -136,7 +136,7 @@ No file attributes, just plain data Mail Inga fil attribut, bara vanlig data Add Mail Lägg till out B_USER_DIRECTORY/mail/out ut Send this message before closing? Mail Skicka meddelandet innan programmet stängs? -in B_USER_DIRECTORY/mail/in i +in B_USER_DIRECTORY/mail/in in Open Mail Öppna Don't save Mail Spara ej Leave same Mail Lämna samma diff --git a/data/catalogs/apps/mail/tr.catkeys b/data/catalogs/apps/mail/tr.catkeys index b254cd5e3b..7e894ffda4 100644 --- a/data/catalogs/apps/mail/tr.catkeys +++ b/data/catalogs/apps/mail/tr.catkeys @@ -94,7 +94,7 @@ Attach attributes: Mail Öznitelik ekle: Find again Mail Yeniden bul Size: Mail Boyut: To: Mail Kime: -Need Tracker to move items to trash Mail İzleyici'nin ögeleri çöpe taşıması gerekiyor +Need Tracker to move items to trash Mail Ögelerin çöpe taşınabilmesi için İzleyici'nin çalışması gerekiyor The mail_daemon could not be started:\n\t Mail mail_daemon başlatılamadı:\n\t Mail Mail couldn't find its dictionary. Mail Posta, kendi sözlüğünü bulamadı. diff --git a/data/catalogs/apps/mandelbrot/el.catkeys b/data/catalogs/apps/mandelbrot/el.catkeys index 63fd92b5db..9f7e65ecd3 100644 --- a/data/catalogs/apps/mandelbrot/el.catkeys +++ b/data/catalogs/apps/mandelbrot/el.catkeys @@ -1,12 +1,14 @@ -1 greek, modern (1453-) x-vnd.Haiku-Mandelbrot 3875916167 +1 greek, modern (1453-) x-vnd.Haiku-Mandelbrot 2302392624 Grassland MandelbrotWindow Λιβάδι Tricorn MandelbrotWindow Τρίκορν Orbit Trap MandelbrotWindow Διαστημική Παγίδα Deepfrost MandelbrotWindow Παγετώνας 1 (none) MandelbrotWindow 1 (καμία) Quit MandelbrotWindow Έξοδος +Save as image… MandelbrotWindow Αποθήκευση ως εικόνα... Fire MandelbrotWindow Φωτιά High contrast MandelbrotWindow Υψηλή αντίθεση +Full screen MandelbrotWindow Πλήρης οθόνη Midnight MandelbrotWindow Μεσάνυχτα Burning Ship MandelbrotWindow Φλεγόμενο Πλοίο Lightning MandelbrotWindow Αστραπή @@ -18,6 +20,7 @@ Subsampling MandelbrotWindow Δειγματοληψία File MandelbrotWindow Αρχείο Julia MandelbrotWindow Τζούλια Frost MandelbrotWindow Χιονοθύελλα +View MandelbrotWindow Εμφάνιση Mandelbrot System name Mandelbrot Multibrot MandelbrotWindow Χάμπουργκερ Iterations MandelbrotWindow Ποιότητα diff --git a/data/catalogs/apps/mediaplayer/ca.catkeys b/data/catalogs/apps/mediaplayer/ca.catkeys index ade898de0e..272ddd3d5f 100644 --- a/data/catalogs/apps/mediaplayer/ca.catkeys +++ b/data/catalogs/apps/mediaplayer/ca.catkeys @@ -1,4 +1,4 @@ -1 catalan; valencian x-vnd.Haiku-MediaPlayer 1961774506 +1 catalan; valencian x-vnd.Haiku-MediaPlayer 716811487 Remove Entry into Trash MediaPlayer-RemovePLItemsCmd Envia l'entrada a la paperera Close MediaPlayer-PlaylistWindow Tanca Volume of background clips MediaPlayer-SettingsWindow Volum dels clips de fons @@ -30,6 +30,7 @@ Open file… MediaPlayer-Main Obre un fitxer... Scale controls in full screen mode MediaPlayer-SettingsWindow Escala els controls en mode de pantalla completa. View options MediaPlayer-SettingsWindow Opcions de visualització %d kHz MediaPlayer-InfoWin %d kHz +Eject Device MediaPlayer-Main Expulsa el dispositiu Full volume MediaPlayer-SettingsWindow Volum complet PlaylistItem-title Start media server MediaPlayer-Main Inicia el servidor multimèdia diff --git a/data/catalogs/apps/mediaplayer/cs.catkeys b/data/catalogs/apps/mediaplayer/cs.catkeys index 384b800d53..d20f1fcfe9 100644 --- a/data/catalogs/apps/mediaplayer/cs.catkeys +++ b/data/catalogs/apps/mediaplayer/cs.catkeys @@ -1,5 +1,5 @@ -1 czech x-vnd.Haiku-MediaPlayer 1961774506 -Remove Entry into Trash MediaPlayer-RemovePLItemsCmd Odstranit položky do Koše +1 czech x-vnd.Haiku-MediaPlayer 716811487 +Remove Entry into Trash MediaPlayer-RemovePLItemsCmd Odstranit položky do koše Close MediaPlayer-PlaylistWindow Zavřít Volume of background clips MediaPlayer-SettingsWindow Hlasitost klipů na pozadí Use hardware video overlays if available MediaPlayer-SettingsWindow Použít hardwareový video overlay, je-li dostupný @@ -30,6 +30,7 @@ Open file… MediaPlayer-Main Otevřít soubor... Scale controls in full screen mode MediaPlayer-SettingsWindow Přizpůsobit velikost ovládacích prvků v režimu celé obrazovky View options MediaPlayer-SettingsWindow Volby zobrazení %d kHz MediaPlayer-InfoWin %d kHz +Eject Device MediaPlayer-Main Vysunout zařízení Full volume MediaPlayer-SettingsWindow Plná hlasitost PlaylistItem-title Start media server MediaPlayer-Main Spustit media server @@ -79,7 +80,7 @@ Large MediaPlayer-SettingsWindow Veliký Import Entry MediaPlayer-ImportPLItemsCmd Importovat položku unknown format MediaPlayer-InfoWin neznámý formát Track %d MediaPlayer-Main Stopa %d -All files could not be moved into Trash. MediaPlayer-RemovePLItemsCmd Všechny soubory nemohly být přesunuty do Koše. +All files could not be moved into Trash. MediaPlayer-RemovePLItemsCmd Všechny soubory nemohly být přesunuty do koše. Total duration: %s MediaPlayer-PlaylistWindow Celková délka: %s %.3f kHz MediaPlayer-InfoWin %.3f kHz Move into trash error MediaPlayer-RemovePLItemsCmd Chyba při přesouvání do koše @@ -133,14 +134,14 @@ Scale movies smoothly (non-overlay mode) MediaPlayer-SettingsWindow Měnit veli The file '%filename' could not be opened.\n\n MediaPlayer-Main Soubor '%filename' nebylo možné otevřít.\n\n None of the files you wanted to play appear to be media files. MediaPlayer-Main Žádný ze souborů, které jste chtěli přehrát, nevypadá jako media soubor. Remove Entry MediaPlayer-RemovePLItemsCmd Odstranit položku -Remove Entries into Trash MediaPlayer-RemovePLItemsCmd Odstranit položky do Koše +Remove Entries into Trash MediaPlayer-RemovePLItemsCmd Odstranit položky do koše Subtitle size: MediaPlayer-SettingsWindow Velikost Titulků: No aspect correction MediaPlayer-Main Bez korekce poměru stran raw video MediaPlayer-InfoWin nezpracované video Container MediaPlayer-InfoWin Kontejnér none MediaPlayer-Main žádné Open clips MediaPlayer-Main Otevřít klipy -Some files could not be moved into Trash. MediaPlayer-RemovePLItemsCmd Některé soubory nemohly být přesunuty do Koše. +Some files could not be moved into Trash. MediaPlayer-RemovePLItemsCmd Některé soubory nemohly být přesunuty do koše. MediaPlayer-PlaylistWindow Save as… MediaPlayer-PlaylistWindow Uložit jako... Error: MediaPlayer-RemovePLItemsCmd Chyba: diff --git a/data/catalogs/apps/mediaplayer/da.catkeys b/data/catalogs/apps/mediaplayer/da.catkeys index 7090124ca6..1a32acdeef 100644 --- a/data/catalogs/apps/mediaplayer/da.catkeys +++ b/data/catalogs/apps/mediaplayer/da.catkeys @@ -1,4 +1,4 @@ -1 danish x-vnd.Haiku-MediaPlayer 1961774506 +1 danish x-vnd.Haiku-MediaPlayer 716811487 Remove Entry into Trash MediaPlayer-RemovePLItemsCmd Fjern element til papirkurv Close MediaPlayer-PlaylistWindow Luk Volume of background clips MediaPlayer-SettingsWindow Lydstyrke for baggrundsklips @@ -30,6 +30,7 @@ Open file… MediaPlayer-Main Åbn fil… Scale controls in full screen mode MediaPlayer-SettingsWindow Skaler styringer i fuldskærmstilstand View options MediaPlayer-SettingsWindow Visningsvalgmuligheder %d kHz MediaPlayer-InfoWin %d kHz +Eject Device MediaPlayer-Main Skub enhed ud Full volume MediaPlayer-SettingsWindow Fuld lydstyrke PlaylistItem-title Start media server MediaPlayer-Main Start medieserver diff --git a/data/catalogs/apps/mediaplayer/de.catkeys b/data/catalogs/apps/mediaplayer/de.catkeys index 7a627a8efb..5d55abdb97 100644 --- a/data/catalogs/apps/mediaplayer/de.catkeys +++ b/data/catalogs/apps/mediaplayer/de.catkeys @@ -1,4 +1,4 @@ -1 german x-vnd.Haiku-MediaPlayer 1899012256 +1 german x-vnd.Haiku-MediaPlayer 654049237 Remove Entry into Trash MediaPlayer-RemovePLItemsCmd Eintrag in den Papierkorb verschieben Close MediaPlayer-PlaylistWindow Schließen Volume of background clips MediaPlayer-SettingsWindow Wiedergabe im Hintergrund @@ -29,6 +29,7 @@ Open file… MediaPlayer-Main Öffne Datei… Scale controls in full screen mode MediaPlayer-SettingsWindow Bedienelemente im Vollbildmodus vergrößern View options MediaPlayer-SettingsWindow Darstellung %d kHz MediaPlayer-InfoWin %d kHz +Eject Device MediaPlayer-Main Disk auswerfen Full volume MediaPlayer-SettingsWindow Volle Lautstärke PlaylistItem-title Start media server MediaPlayer-Main Mediaserver starten diff --git a/data/catalogs/apps/mediaplayer/el.catkeys b/data/catalogs/apps/mediaplayer/el.catkeys index 31ae0e258b..f0dd204bb5 100644 --- a/data/catalogs/apps/mediaplayer/el.catkeys +++ b/data/catalogs/apps/mediaplayer/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.Haiku-MediaPlayer 3495947958 +1 greek, modern (1453-) x-vnd.Haiku-MediaPlayer 716811487 Remove Entry into Trash MediaPlayer-RemovePLItemsCmd Μετακίνηση Αρχείου στον Κάδο Απορριμάτων Close MediaPlayer-PlaylistWindow Κλείσιμο Volume of background clips MediaPlayer-SettingsWindow Ένταση κλιπ παρασκηνίου @@ -30,11 +30,13 @@ Open file… MediaPlayer-Main Άνοιγμα αρχείου… Scale controls in full screen mode MediaPlayer-SettingsWindow Να μεταβάλλεται το μέγεθος των κουμπιών ελέγχου σε λειτουργία πλήρης οθόνης View options MediaPlayer-SettingsWindow Προβολή ρυθμίσεων %d kHz MediaPlayer-InfoWin %d kHz +Eject Device MediaPlayer-Main Εξαγωγή συσκευής Full volume MediaPlayer-SettingsWindow Μέγιστη ένταση PlaylistItem-title <χωρίς τίτλο> Start media server MediaPlayer-Main Εκκίνηση διακομιστή πολυμέσων It appears the media server is not running.\nWould you like to start it ? MediaPlayer-Main Φαίνεται ότι ο διακομιστής πολυμέσων δεν εκτελείται.\nΘέλετε να τον ξεκινήσετε; Location MediaPlayer-InfoWin Τοποθεσία +Opening '%s'. MediaPlayer-Main Άνοιγμα του '%s'. Medium MediaPlayer-SettingsWindow Μέτριο Play mode MediaPlayer-SettingsWindow Λειτουργία αναπαραγωγής Playlist MediaPlayer-PlaylistWindow Λίστα Αναπαραγωγής @@ -103,6 +105,7 @@ Rating MediaPlayer-Main Βαθμολογία Internal error (out of memory). Saving the playlist failed. MediaPlayer-PlaylistWindow Εσωτερικό σφάλμα (δεν υπάρχει διαθέσιμη μνήμη). Η αποθήκευση της λίστας αναπαραγωγής απέτυχε. Video MediaPlayer-Main Βίντεο There is no decoder installed to handle the file format, or the decoder has trouble with the specific version of the format. MediaPlayer-Main Δεν υπάρχει εγκατεστημένος αποκωδικοποιητής που μπορεί να επεξεργαστεί το μορφότυπο του αρχείου ή ο αποκωδικοποιητής αντιμετωπίζει προβλήματα με την συγκεκριμένη έκδοση του μορφότυπου. +Lock Peaks MediaPlayer-PeakView Κλείδωμα κορυφών none Audio track menu κανένα Open network stream MediaPlayer-NetworkStream Άνοιγμα ροής δικτύου Automatically start playing MediaPlayer-SettingsWindow Αυτόματη αναπαραγωγή diff --git a/data/catalogs/apps/mediaplayer/es.catkeys b/data/catalogs/apps/mediaplayer/es.catkeys index 074bf6ab03..d6483d0bf2 100644 --- a/data/catalogs/apps/mediaplayer/es.catkeys +++ b/data/catalogs/apps/mediaplayer/es.catkeys @@ -1,4 +1,4 @@ -1 spanish; castilian x-vnd.Haiku-MediaPlayer 1961774506 +1 spanish; castilian x-vnd.Haiku-MediaPlayer 716811487 Remove Entry into Trash MediaPlayer-RemovePLItemsCmd Enviar entrada a la papelera Close MediaPlayer-PlaylistWindow Cerrar Volume of background clips MediaPlayer-SettingsWindow Volumen de secuencias de fondo @@ -30,6 +30,7 @@ Open file… MediaPlayer-Main Abrir archivo... Scale controls in full screen mode MediaPlayer-SettingsWindow Escalar controles en modo de pantalla completa View options MediaPlayer-SettingsWindow Ver opciones %d kHz MediaPlayer-InfoWin %d kHz +Eject Device MediaPlayer-Main Extraer dispositivo Full volume MediaPlayer-SettingsWindow Máximo volumen PlaylistItem-title Start media server MediaPlayer-Main Iniciar servidor de medios diff --git a/data/catalogs/apps/mediaplayer/fi.catkeys b/data/catalogs/apps/mediaplayer/fi.catkeys index 6245dcc000..cd0672f4f8 100644 --- a/data/catalogs/apps/mediaplayer/fi.catkeys +++ b/data/catalogs/apps/mediaplayer/fi.catkeys @@ -1,4 +1,4 @@ -1 finnish x-vnd.Haiku-MediaPlayer 1961774506 +1 finnish x-vnd.Haiku-MediaPlayer 716811487 Remove Entry into Trash MediaPlayer-RemovePLItemsCmd Poista kappale roskakoriin Close MediaPlayer-PlaylistWindow Sulje Volume of background clips MediaPlayer-SettingsWindow Taustavideoleikkeen voimakkuus @@ -30,6 +30,7 @@ Open file… MediaPlayer-Main Avaa tiedosto... Scale controls in full screen mode MediaPlayer-SettingsWindow Skaalausohjaimet kokonäyttötilassa View options MediaPlayer-SettingsWindow Katso valitsimia %d kHz MediaPlayer-InfoWin %d kHz +Eject Device MediaPlayer-Main Poista laite Full volume MediaPlayer-SettingsWindow Täysi äänenvoimakkuus PlaylistItem-title Start media server MediaPlayer-Main Käynnistä mediapalvelin diff --git a/data/catalogs/apps/mediaplayer/fr.catkeys b/data/catalogs/apps/mediaplayer/fr.catkeys index db4a5abcf2..aa41b8eee5 100644 --- a/data/catalogs/apps/mediaplayer/fr.catkeys +++ b/data/catalogs/apps/mediaplayer/fr.catkeys @@ -1,4 +1,4 @@ -1 french x-vnd.Haiku-MediaPlayer 1961774506 +1 french x-vnd.Haiku-MediaPlayer 716811487 Remove Entry into Trash MediaPlayer-RemovePLItemsCmd Envoyer l’entrée à la corbeille Close MediaPlayer-PlaylistWindow Fermer Volume of background clips MediaPlayer-SettingsWindow Volume en arrière-plan @@ -30,6 +30,7 @@ Open file… MediaPlayer-Main Ouvrir un fichier… Scale controls in full screen mode MediaPlayer-SettingsWindow Agrandir les commandes en mode plein écran View options MediaPlayer-SettingsWindow Options d’affichage %d kHz MediaPlayer-InfoWin %d kHz +Eject Device MediaPlayer-Main Éjecter le périphérique Full volume MediaPlayer-SettingsWindow Plein volume PlaylistItem-title Start media server MediaPlayer-Main Démarrer le serveur de médias diff --git a/data/catalogs/apps/mediaplayer/hu.catkeys b/data/catalogs/apps/mediaplayer/hu.catkeys index e0af4a8a87..29b4a22d2f 100644 --- a/data/catalogs/apps/mediaplayer/hu.catkeys +++ b/data/catalogs/apps/mediaplayer/hu.catkeys @@ -1,4 +1,4 @@ -1 hungarian x-vnd.Haiku-MediaPlayer 1961774506 +1 hungarian x-vnd.Haiku-MediaPlayer 716811487 Remove Entry into Trash MediaPlayer-RemovePLItemsCmd Bejegyzés Szemetesbe helyezése Close MediaPlayer-PlaylistWindow Bezárás Volume of background clips MediaPlayer-SettingsWindow Háttérbeli klippek hangereje @@ -30,6 +30,7 @@ Open file… MediaPlayer-Main Fájl megnyitása… Scale controls in full screen mode MediaPlayer-SettingsWindow Nagyított vezérlők teljes képernyős módban View options MediaPlayer-SettingsWindow Megjelenítési beállítások %d kHz MediaPlayer-InfoWin %d kHz +Eject Device MediaPlayer-Main Eszköz kiadása Full volume MediaPlayer-SettingsWindow Teljes hangerő PlaylistItem-title Start media server MediaPlayer-Main Médiakiszolgáló indítása diff --git a/data/catalogs/apps/mediaplayer/id.catkeys b/data/catalogs/apps/mediaplayer/id.catkeys index 7d881b216d..7b8e00f1ef 100644 --- a/data/catalogs/apps/mediaplayer/id.catkeys +++ b/data/catalogs/apps/mediaplayer/id.catkeys @@ -1,4 +1,4 @@ -1 indonesian x-vnd.Haiku-MediaPlayer 1313616492 +1 indonesian x-vnd.Haiku-MediaPlayer 1961774506 Remove Entry into Trash MediaPlayer-RemovePLItemsCmd Hapus Entri ke Sampah Close MediaPlayer-PlaylistWindow Tutup Volume of background clips MediaPlayer-SettingsWindow Volume dari klip latar @@ -35,6 +35,7 @@ Full volume MediaPlayer-SettingsWindow Suara penuh Start media server MediaPlayer-Main Mulai server media It appears the media server is not running.\nWould you like to start it ? MediaPlayer-Main Tampaknya server media tidak berjalan. \nApakah Anda ingin menjalankannya? Location MediaPlayer-InfoWin Lokasi +Opening '%s'. MediaPlayer-Main Membuka '%s'. Medium MediaPlayer-SettingsWindow Medium Play mode MediaPlayer-SettingsWindow Mode putar Playlist MediaPlayer-PlaylistWindow Daftar putar diff --git a/data/catalogs/apps/mediaplayer/ja.catkeys b/data/catalogs/apps/mediaplayer/ja.catkeys index 22f45966ac..b7b898bbc3 100644 --- a/data/catalogs/apps/mediaplayer/ja.catkeys +++ b/data/catalogs/apps/mediaplayer/ja.catkeys @@ -1,4 +1,4 @@ -1 japanese x-vnd.Haiku-MediaPlayer 1961774506 +1 japanese x-vnd.Haiku-MediaPlayer 716811487 Remove Entry into Trash MediaPlayer-RemovePLItemsCmd 項目をごみ箱に捨てる Close MediaPlayer-PlaylistWindow 閉じる Volume of background clips MediaPlayer-SettingsWindow バックグラウンド再生時のボリューム @@ -30,6 +30,7 @@ Open file… MediaPlayer-Main ファイルを開く... Scale controls in full screen mode MediaPlayer-SettingsWindow フルスクリーン表示時にコントロールを拡大 View options MediaPlayer-SettingsWindow 表示オプション %d kHz MediaPlayer-InfoWin %d kHz +Eject Device MediaPlayer-Main デバイスの取り出し Full volume MediaPlayer-SettingsWindow 最大音量 PlaylistItem-title <無題> Start media server MediaPlayer-Main メディアサーバーを起動 diff --git a/data/catalogs/apps/mediaplayer/pt_BR.catkeys b/data/catalogs/apps/mediaplayer/pt_BR.catkeys index 7b98dcc424..dd58e89183 100644 --- a/data/catalogs/apps/mediaplayer/pt_BR.catkeys +++ b/data/catalogs/apps/mediaplayer/pt_BR.catkeys @@ -104,7 +104,7 @@ Rating MediaPlayer-Main Classificação Internal error (out of memory). Saving the playlist failed. MediaPlayer-PlaylistWindow Erro interno (sem memória). Falha ao salvar a lista de reprodução. Video MediaPlayer-Main Vídeo There is no decoder installed to handle the file format, or the decoder has trouble with the specific version of the format. MediaPlayer-Main Não existe decodificador instalado para manipular o formato de arquivo, ou o decodificador tem problema com a versão específica do formato. -Lock Peaks MediaPlayer-PeakView Bloquear Picos +Lock Peaks MediaPlayer-PeakView Travar Picos none Audio track menu nenhum Open network stream MediaPlayer-NetworkStream Abrir stream de rede Automatically start playing MediaPlayer-SettingsWindow Iniciar a reprodução automaticamente @@ -124,7 +124,7 @@ Full screen MediaPlayer-Main Tela Cheia OK MediaPlayer-NetworkStream OK Internal error (locking failed). Saving the playlist failed. MediaPlayer-PlaylistWindow Erro interno (falha ao bloquear). Falha ao salvar a lista de reprodução. 100% scale MediaPlayer-Main escala de 100% - MediaPlayer-PlaylistWindow + MediaPlayer-PlaylistWindow Bad URL MediaPlayer-NetworkStream URL ruim Save MediaPlayer-Main Salvar Close window after playing video MediaPlayer-SettingsWindow Fechar a janela após reproduzir vídeo diff --git a/data/catalogs/apps/mediaplayer/sv.catkeys b/data/catalogs/apps/mediaplayer/sv.catkeys index e45faad544..d7a6991a4c 100644 --- a/data/catalogs/apps/mediaplayer/sv.catkeys +++ b/data/catalogs/apps/mediaplayer/sv.catkeys @@ -1,4 +1,4 @@ -1 swedish x-vnd.Haiku-MediaPlayer 1961774506 +1 swedish x-vnd.Haiku-MediaPlayer 716811487 Remove Entry into Trash MediaPlayer-RemovePLItemsCmd Flytta post till Papperskorgen Close MediaPlayer-PlaylistWindow Stäng Volume of background clips MediaPlayer-SettingsWindow Volym för bakgrundsklipp @@ -30,6 +30,7 @@ Open file… MediaPlayer-Main Öppna fil... Scale controls in full screen mode MediaPlayer-SettingsWindow Skala kontroller i fullskärmsläge View options MediaPlayer-SettingsWindow Visningsalternativ %d kHz MediaPlayer-InfoWin %d kHz +Eject Device MediaPlayer-Main Mata ut enhet Full volume MediaPlayer-SettingsWindow Högsta volym PlaylistItem-title Start media server MediaPlayer-Main Starta mediaserver diff --git a/data/catalogs/apps/mediaplayer/tr.catkeys b/data/catalogs/apps/mediaplayer/tr.catkeys index 80869ca633..2935fe64b5 100644 --- a/data/catalogs/apps/mediaplayer/tr.catkeys +++ b/data/catalogs/apps/mediaplayer/tr.catkeys @@ -1,4 +1,4 @@ -1 turkish x-vnd.Haiku-MediaPlayer 1961774506 +1 turkish x-vnd.Haiku-MediaPlayer 716811487 Remove Entry into Trash MediaPlayer-RemovePLItemsCmd Girdiyi Çöp'e taşı Close MediaPlayer-PlaylistWindow Kapat Volume of background clips MediaPlayer-SettingsWindow Arka plan kliplerinin ses düzeyi @@ -30,6 +30,7 @@ Open file… MediaPlayer-Main Dosya aç… Scale controls in full screen mode MediaPlayer-SettingsWindow Tam ekran kipinde denetimleri ölçekle View options MediaPlayer-SettingsWindow Görüntüleme seçenekleri %d kHz MediaPlayer-InfoWin %d kHz +Eject Device MediaPlayer-Main Aygıtı çıkar Full volume MediaPlayer-SettingsWindow Tam ses PlaylistItem-title Start media server MediaPlayer-Main Ortam sunucusu başlat diff --git a/data/catalogs/apps/mediaplayer/uk.catkeys b/data/catalogs/apps/mediaplayer/uk.catkeys index fb158ec4b4..341e35d7f5 100644 --- a/data/catalogs/apps/mediaplayer/uk.catkeys +++ b/data/catalogs/apps/mediaplayer/uk.catkeys @@ -1,4 +1,4 @@ -1 ukrainian x-vnd.Haiku-MediaPlayer 1961774506 +1 ukrainian x-vnd.Haiku-MediaPlayer 716811487 Remove Entry into Trash MediaPlayer-RemovePLItemsCmd Видалити запис до смітника Close MediaPlayer-PlaylistWindow Закрити Volume of background clips MediaPlayer-SettingsWindow Гучність фонових кліпів @@ -30,6 +30,7 @@ Open file… MediaPlayer-Main Відкрити файл… Scale controls in full screen mode MediaPlayer-SettingsWindow Масштабувати кнопки управління в повноекранному режимі View options MediaPlayer-SettingsWindow Опції перегляду %d kHz MediaPlayer-InfoWin %d кГц +Eject Device MediaPlayer-Main Вийняти пристрій Full volume MediaPlayer-SettingsWindow Повна гучність PlaylistItem-title <без імені> Start media server MediaPlayer-Main Запустити Медіа сервер diff --git a/data/catalogs/apps/midiplayer/da.catkeys b/data/catalogs/apps/midiplayer/da.catkeys index 27be735806..7351a25b7c 100644 --- a/data/catalogs/apps/midiplayer/da.catkeys +++ b/data/catalogs/apps/midiplayer/da.catkeys @@ -11,7 +11,7 @@ Scope Main Window Omfang Drop MIDI file here Scope View Slip MIDI-filen her None Main Window Ingen Reverb: Main Window Rumklang: -MidiPlayer System name Midi-afspiller +MidiPlayer System name Midiafspiller OK Main Window OK Stop Main Window Stop Live input: Main Window Liveinput: diff --git a/data/catalogs/apps/midiplayer/pt_BR.catkeys b/data/catalogs/apps/midiplayer/pt_BR.catkeys index d5694e222b..4f36ce7950 100644 --- a/data/catalogs/apps/midiplayer/pt_BR.catkeys +++ b/data/catalogs/apps/midiplayer/pt_BR.catkeys @@ -8,10 +8,10 @@ Loading instruments… Scope View Carregando instrumentos… Volume: Main Window Volume: Closet Main Window Closet Scope Main Window Espectro -Drop MIDI file here Scope View Jogue aqui o arquivo MIDI +Drop MIDI file here Scope View Solte aqui um arquivo MIDI None Main Window Nenhum Reverb: Main Window Reverberação: -MidiPlayer System name MidiPlayer +MidiPlayer System name Tocador de MIDI OK Main Window OK Stop Main Window Parar Live input: Main Window Entrada ao vivo: diff --git a/data/catalogs/apps/networkstatus/cs.catkeys b/data/catalogs/apps/networkstatus/cs.catkeys index a96d20d5f6..1a2d69f09a 100644 --- a/data/catalogs/apps/networkstatus/cs.catkeys +++ b/data/catalogs/apps/networkstatus/cs.catkeys @@ -9,9 +9,9 @@ Open network preferences… NetworkStatusView Otevřít volby sítě... NetworkStatus System name Stav sítě Broadcast: NetworkStatusView Všesměrové: OK NetworkStatusView OK -No link NetworkStatusView Není odkaz +No link NetworkStatusView Odpojeno Could not join wireless network:\n NetworkStatusView Nemohu se připojit do bezdrátové sítě:\n -Ready NetworkStatusView Připraven +Ready NetworkStatusView Spojeno Network Status NetworkStatusView Stav sítě Deskbar is not running, giving up. NetworkStatus Panel není spuštěn, vzdávám to. Netmask: NetworkStatusView Maska sítě: diff --git a/data/catalogs/apps/networkstatus/da.catkeys b/data/catalogs/apps/networkstatus/da.catkeys index 0aa03457d6..b6dcf19c55 100644 --- a/data/catalogs/apps/networkstatus/da.catkeys +++ b/data/catalogs/apps/networkstatus/da.catkeys @@ -18,7 +18,7 @@ Netmask: NetworkStatusView Netmaske: No stateful configuration NetworkStatusView Ingen tilstandsfuld konfiguration You can run NetworkStatus in a window or install it in the Deskbar. NetworkStatus Du kan køre netværksstatus i et vindue eller installere det i skrivebordslinjen. IPv4 address: NetworkStatusView IPv4-adresse: -%ifaceName information:\n NetworkStatusView %ifaceName-information:\n +%ifaceName information:\n NetworkStatusView Information om %ifaceName:\n Run in window NetworkStatus Kør i vindue NetworkStatusView Configuring NetworkStatusView Konfigurering diff --git a/data/catalogs/apps/networkstatus/el.catkeys b/data/catalogs/apps/networkstatus/el.catkeys index d82751f486..67c18c0aa6 100644 --- a/data/catalogs/apps/networkstatus/el.catkeys +++ b/data/catalogs/apps/networkstatus/el.catkeys @@ -1,4 +1,5 @@ -1 greek, modern (1453-) x-vnd.Haiku-NetworkStatus 1162000463 +1 greek, modern (1453-) x-vnd.Haiku-NetworkStatus 2828540217 +IPv6 address: NetworkStatusView Διεύθυνση IPv6: Quit NetworkStatusView Έξοδος Unknown NetworkStatusView Άγνωστο Launching the network preflet failed.\n\nError: NetworkStatusView Η εκκίνηση του βοηθητικού προγράμματος δικτύου απέτυχε.\n\nΣφάλμα: @@ -6,14 +7,17 @@ Install in Deskbar NetworkStatus Εγκατάσταση στην Γραμμή NetworkStatus options:\n\t--deskbar\tautomatically add replicant to Deskbar\n\t--help\t\tprint this info and exit NetworkStatus Ρυθμίσεις Κατάστασης Δικτύου :\n\t--deskbar\tαυτόματη προσθήκη ρέπλικας στην γραμμή εργασιών\n\t--help\t\tεκτύπωση του μηνύματος αυτού και έξοδος Open network preferences… NetworkStatusView Άνοιγμα ρυθμίσεων δικτύου… NetworkStatus System name Κατάσταση Δικτύου +Broadcast: NetworkStatusView Διεύθυνση broadcast: OK NetworkStatusView Εντάξει No link NetworkStatusView Χωρίς σύνδεσμο Could not join wireless network:\n NetworkStatusView Αδυναμία σύνδεσης στο ασύρματο δίκτυο:\n Ready NetworkStatusView Έτοιμο Network Status NetworkStatusView Κατάσταση Δικτύου Deskbar is not running, giving up. NetworkStatus Η Γραμμή Εργασιών δεν εκτελείται, δεν είναι δυνατή η λειτουργία αυτή. +Netmask: NetworkStatusView Μάσκα δικτύου: No stateful configuration NetworkStatusView Καμία stateful ρύθμιση You can run NetworkStatus in a window or install it in the Deskbar. NetworkStatus Μπορείτε να εκτελέσετε την εφαρμογή Κατάστασης Δικτύου σε ένα παράθυρο ή να το τοποθετήσετε στην Γραμμή Εργασιών. +IPv4 address: NetworkStatusView Διεύθυνση IPv4: %ifaceName information:\n NetworkStatusView %ifaceΠληροφορίες ονόματος:\n Run in window NetworkStatus Εκτέλεση σε παράθυρο NetworkStatusView <δεν βρέθηκαν ασύρματα δίκτυα> diff --git a/data/catalogs/apps/networkstatus/id.catkeys b/data/catalogs/apps/networkstatus/id.catkeys index 9453a1ff78..c7d5b8864d 100644 --- a/data/catalogs/apps/networkstatus/id.catkeys +++ b/data/catalogs/apps/networkstatus/id.catkeys @@ -1,4 +1,5 @@ -1 indonesian x-vnd.Haiku-NetworkStatus 1162000463 +1 indonesian x-vnd.Haiku-NetworkStatus 1515316847 +IPv6 address: NetworkStatusView Alamat IPv6 Quit NetworkStatusView Keluar Unknown NetworkStatusView Takdiketahui Launching the network preflet failed.\n\nError: NetworkStatusView Gagal meluncurkan preflet jaringan.\n\nkesalahan: @@ -14,6 +15,7 @@ Network Status NetworkStatusView Status Jaringan Deskbar is not running, giving up. NetworkStatus Deskbar tidak berjalan, menyerah. No stateful configuration NetworkStatusView Takada konfigurasi tersimpan You can run NetworkStatus in a window or install it in the Deskbar. NetworkStatus Anda dapat menjalankan StatusJaringan di sebuah Jendela atau memasangnya di Deksbar. +IPv4 address: NetworkStatusView Alamat IPv4 %ifaceName information:\n NetworkStatusView %ifaceName informasi:\n Run in window NetworkStatus Jalankan di jendela NetworkStatusView diff --git a/data/catalogs/apps/networkstatus/pt_BR.catkeys b/data/catalogs/apps/networkstatus/pt_BR.catkeys index bf0f50cd81..a2f329149e 100644 --- a/data/catalogs/apps/networkstatus/pt_BR.catkeys +++ b/data/catalogs/apps/networkstatus/pt_BR.catkeys @@ -6,17 +6,17 @@ Launching the network preflet failed.\n\nError: NetworkStatusView Falha ao ini Install in Deskbar NetworkStatus Instalar na Deskbar NetworkStatus options:\n\t--deskbar\tautomatically add replicant to Deskbar\n\t--help\t\tprint this info and exit NetworkStatus Opções do NetworkStatus:\n\t--deskbar\tadicionar replicante automaticamente no Deskbar\n\t--help\t\texibir esta informação e sair Open network preferences… NetworkStatusView Abrir preferências de Rede... -NetworkStatus System name Status de Rede +NetworkStatus System name Estado da Rede Broadcast: NetworkStatusView Broadcast: OK NetworkStatusView OK No link NetworkStatusView Sem link Could not join wireless network:\n NetworkStatusView Não foi possível conectar à rede sem fio:\n Ready NetworkStatusView Pronto -Network Status NetworkStatusView Status da rede +Network Status NetworkStatusView Estado da Rede Deskbar is not running, giving up. NetworkStatus Deskbar não está excutando, desistindo. Netmask: NetworkStatusView Máscara da rede: No stateful configuration NetworkStatusView Nenhuma configuração de monitorização de estado -You can run NetworkStatus in a window or install it in the Deskbar. NetworkStatus Você pode executar Status de Rede em uma janela ou instalá-lo na Deskbar. +You can run NetworkStatus in a window or install it in the Deskbar. NetworkStatus Você pode executar o Estado de Rede em uma janela ou instalá-lo na Deskbar. IPv4 address: NetworkStatusView Endereço IPv4: %ifaceName information:\n NetworkStatusView Informação sobre %ifaceName:\n Run in window NetworkStatus Executar em janela diff --git a/data/catalogs/apps/overlayimage/el.catkeys b/data/catalogs/apps/overlayimage/el.catkeys index 63c16ddee2..f28f88e5af 100644 --- a/data/catalogs/apps/overlayimage/el.catkeys +++ b/data/catalogs/apps/overlayimage/el.catkeys @@ -1,3 +1,4 @@ -1 greek, modern (1453-) x-vnd.Haiku-OverlayImage 2139426213 +1 greek, modern (1453-) x-vnd.Haiku-OverlayImage 3780372284 OverlayImage System name OverlayImage +OverlayImage\nCopyright 1999-2010\n\n\toriginally by Seth Flaxman\n\tmodified by Hartmuth Reh\n\tfurther modified by Humdinger\n Main view OverlayImage\nCopyright 1999-2010\n\n\tπρωτότυπο από Seth Flaxman\n\tτροποποιήθηκε από Hartmuth Reh\n\tπεραιτέρω τροποποιήσεις από Humdinger\n Enable \"Show replicants\" in Deskbar.\nDrag & drop an image.\nDrag the replicant to the Desktop. Main view Ενεργοποίηση του \"Εμφάνιση επαναλήψεων\" στην Γραμμή Εργασιών.\nΣύρετε & αφήστε μια εικόνα.\nΣύρετε την επανάληψη στην επιφάνεια εργασίας. diff --git a/data/catalogs/apps/people/cs.catkeys b/data/catalogs/apps/people/cs.catkeys index da04baa32b..867f59aa6b 100644 --- a/data/catalogs/apps/people/cs.catkeys +++ b/data/catalogs/apps/people/cs.catkeys @@ -1,5 +1,5 @@ 1 czech x-vnd.Be-PEPL 2634915100 -Launching the FileTypes preflet to configure Person attributes has failed.\n\nError: People Spouštění FileTypes prefletu pro konfiguraci Osobních atributů selhalo.\n\nChyba: +Launching the FileTypes preflet to configure Person attributes has failed.\n\nError: People Spouštění nastavení typů souborů pro konfiguraci osobních atributů selhalo.\n\nChyba: Mobile phone People Mobilní telefon Unnamed person People Nepojmenovaná osoba New person… People Nová osoba... diff --git a/data/catalogs/apps/people/el.catkeys b/data/catalogs/apps/people/el.catkeys index b183a93c0e..c4ad8ca5f9 100644 --- a/data/catalogs/apps/people/el.catkeys +++ b/data/catalogs/apps/people/el.catkeys @@ -1,5 +1,6 @@ -1 greek, modern (1453-) x-vnd.Be-PEPL 2332202134 +1 greek, modern (1453-) x-vnd.Be-PEPL 2634915100 Launching the FileTypes preflet to configure Person attributes has failed.\n\nError: People Η εκκίνηση του βοηθητικού προγράμματος FileTypes για τη διαχείριση των ιδιοτήτων του ατόμου απέτυχε.\n\nΣφάλμα: +Mobile phone People Κινητό τηλέφωνο Unnamed person People Ανώνυμο άτομο New person… People Νέα επαφή… Address People Όδος diff --git a/data/catalogs/apps/poorman/pt_BR.catkeys b/data/catalogs/apps/poorman/pt_BR.catkeys index fa15c9a1ed..44ca9906d9 100644 --- a/data/catalogs/apps/poorman/pt_BR.catkeys +++ b/data/catalogs/apps/poorman/pt_BR.catkeys @@ -8,7 +8,7 @@ Log to file PoorMan Registrar no arquivo Shutting down. PoorMan Desligando. Error Dir PoorMan Erro de Diretório Web folder: PoorMan Pasta da Web: -Please choose the folder to publish on the web.\n\nYou can have PoorMan create a default \"public_html\" in your home folder.\nOr you select one of your own folders instead. PoorMan Por favor escolha a pasta a ser publicada na web.\n\nÉ possível que o Pobre Homem crie um arquivo padrão \"public_html\" na sua pasta home.\nOu selecione um de suas próprias pastas. +Please choose the folder to publish on the web.\n\nYou can have PoorMan create a default \"public_html\" in your home folder.\nOr you select one of your own folders instead. PoorMan Por favor escolha a pasta a ser publicada na web.\n\nVocê pode fazer o PoorMan criar um \"public_html\" padrão na sua pasta home.\nOu pode selecionar uma de suas próprias pastas. Log To Console PoorMan Registrar no Console File Name PoorMan Nome do Arquivo Starting up... PoorMan Iniciando… @@ -24,7 +24,7 @@ Shutting down.\n PoorMan Desligando.\n Select all PoorMan Selecionar tudo Error Server PoorMan Erro do Servidor Send file listing if there's no start page PoorMan Enviar listagem de arquivo se não existir página inicial -Create PoorMan log PoorMan Criar registro do Pobre Homem +Create PoorMan log PoorMan Criar registro do PoorMan Max. simultaneous connections: PoorMan Conexões simultâneas máximas: Done PoorMan Concluído Site PoorMan Sítio @@ -32,7 +32,7 @@ Cannot start the server PoorMan Não é possível iniciar o servidor Create log file PoorMan Criar arquivo de registro Create public_html PoorMan Criar public_html Clear hit counter PoorMan Limpar contador de visitas -Status: Stopped PoorMan Status: Parado +Status: Stopped PoorMan Estado: Parado File PoorMan Arquivo Settings… PoorMan Configurações… Log To File PoorMan Registrar no Arquivo @@ -42,19 +42,19 @@ Log to console PoorMan Registrar no console Advanced PoorMan Avançado Copy PoorMan Copiar Logging PoorMan Registrando -PoorMan System name Pobre Homem +PoorMan System name PoorMan Clear console log PoorMan Limpar registro do console Run server PoorMan Executar servidor Create PoorMan Criar {0, plural, one{# connection} other{# connections}} PoorMan {0, plural, one{# conexão} other{# conexões}} done.\n PoorMan concluído.\n -PoorMan settings PoorMan Configurações do Pobre Homem +PoorMan settings PoorMan Configurações do PoorMan Console Logging PoorMan Registrando Console Clear log file PoorMan Limpar arquivo de registro Save log console selection PoorMan Salvar seleção do console de registro File Logging PoorMan Registro de Arquivo Log file name: PoorMan Nome do arquivo de registro: -Status: Running PoorMan Status: Executando +Status: Running PoorMan Estado: Executando Directory: (none) PoorMan Diretório: (nenhum) A default web folder has been created at \"/boot/home/public_html.\"\nMake sure there is a HTML file named \"index.html\" in that folder. PoorMan A pasta web padrão foi criada em \"/boot/home/public_html.\"\nCertifique-se de existir um arquivo HTML denominado \"index.html\" naquela pasta. Dir Created PoorMan Diretório Criado diff --git a/data/catalogs/apps/powerstatus/da.catkeys b/data/catalogs/apps/powerstatus/da.catkeys index 58b075dfe9..16cf7ff913 100644 --- a/data/catalogs/apps/powerstatus/da.catkeys +++ b/data/catalogs/apps/powerstatus/da.catkeys @@ -41,7 +41,7 @@ Technology: PowerStatus Teknologi: mWh PowerStatus mWh PowerStatus System name Strømstatus Design capacity: PowerStatus Designkapacitet: -OEM info: PowerStatus OEM-info: +OEM info: PowerStatus Information om OEM: no battery PowerStatus intet batteri Empty battery slot PowerStatus Tom batteri plads Install in Deskbar PowerStatus Installer i skrivebordslinje diff --git a/data/catalogs/apps/powerstatus/el.catkeys b/data/catalogs/apps/powerstatus/el.catkeys index 6bfd3f1bbd..5bf40442be 100644 --- a/data/catalogs/apps/powerstatus/el.catkeys +++ b/data/catalogs/apps/powerstatus/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.Haiku-PowerStatus 3042526887 +1 greek, modern (1453-) x-vnd.Haiku-PowerStatus 1085070685 Run in window PowerStatus Εκτέλεση σε παράθυρο Extended battery info PowerStatus Λεπτομερείς πληροφορίες μπαταρίας Show status icon PowerStatus Εικονίδιο κατάστασης ενέργειας @@ -36,6 +36,7 @@ Capacity granularity 1: PowerStatus Κατάτμηση χωρητικότητ The battery level is getting low, please plug in the device. PowerStatus Το επίπεδο της μπαταρίας είναι χαμηλό, παρακαλώ φορτίστε την συσκευή σας. Design capacity warning: PowerStatus Προειδοποίηση σχεδιασμού χωρητικότητας: Capacity granularity 2: PowerStatus Κατάτμηση χωρητικότητας 2: +Too bad! PowerStatus Τι κρίμα! Technology: PowerStatus Τεχνολογία: mWh PowerStatus mWh PowerStatus System name Κατάσταση Μπαταρίας diff --git a/data/catalogs/apps/powerstatus/id.catkeys b/data/catalogs/apps/powerstatus/id.catkeys index 91f1853bb7..116fe68bee 100644 --- a/data/catalogs/apps/powerstatus/id.catkeys +++ b/data/catalogs/apps/powerstatus/id.catkeys @@ -6,7 +6,7 @@ Battery charging PowerStatus Pengisian baterai Design capacity low warning: PowerStatus Desain peringatan kapasitas rendah: The battery level is critical, please plug in the device immediately. PowerStatus Level baterai sangat genting, harap sambungkan perangkat segera. non-rechargeable PowerStatus tidak dapat diisi ulang -Last full charge: PowerStatus Pengisian penuh terakhir: +Last full charge: PowerStatus Pengisian penuh terakhir: mV PowerStatus mV Current rate: PowerStatus Arus saat ini: Show text label PowerStatus Tampilkan label teks diff --git a/data/catalogs/apps/powerstatus/pt_BR.catkeys b/data/catalogs/apps/powerstatus/pt_BR.catkeys index 082bae1b33..facf9956be 100644 --- a/data/catalogs/apps/powerstatus/pt_BR.catkeys +++ b/data/catalogs/apps/powerstatus/pt_BR.catkeys @@ -1,7 +1,7 @@ 1 portuguese (brazil) x-vnd.Haiku-PowerStatus 1085070685 Run in window PowerStatus Em modo janela Extended battery info PowerStatus Informação da reserva de bateria -Show status icon PowerStatus Mostrar ícone de status +Show status icon PowerStatus Mostrar ícone de estado Battery charging PowerStatus Carregando bateria Design capacity low warning: PowerStatus Aviso de design de baixa capacidade The battery level is critical, please plug in the device immediately. PowerStatus O nível de bateria é crítico, por favor conecte no dispositivo imediatamente. @@ -16,7 +16,7 @@ Model number: PowerStatus Número do modelo: Battery unused PowerStatus Bateria sem uso Type: PowerStatus Tipo: Damaged battery PowerStatus Bateria danificada -You can run PowerStatus in a window or install it in the Deskbar. PowerStatus Você pode rodar o Estado de Força numa janela ou instalá-lo na Deskbar +You can run PowerStatus in a window or install it in the Deskbar. PowerStatus Você pode rodar o Estado de Energia numa janela ou instalá-lo na Deskbar mAh PowerStatus mAh Battery discharging PowerStatus Descarregando bateria Design voltage: PowerStatus Design de voltagem: @@ -30,16 +30,16 @@ Serial number: PowerStatus Número de série: Battery critical PowerStatus Bateria crítica Capacity: PowerStatus Capacidade: mW PowerStatus mW -No supported battery detected. PowerStatus cannot be used on your system. PowerStatus Nenhuma bateria compatível detectada. PowerStatus não pode ser usado em seu sistema. +No supported battery detected. PowerStatus cannot be used on your system. PowerStatus Nenhuma bateria compatível detectada. O Estado de Energia não pode ser usado em seu sistema. Show percent PowerStatus Mostrar porcentagem Capacity granularity 1: PowerStatus Granularidade de capacidade 1: -The battery level is getting low, please plug in the device. PowerStatus O nível da bateria estáficando baixo, por favor ligue o dispositivo. +The battery level is getting low, please plug in the device. PowerStatus O nível da bateria está ficando baixo, por favor conecte o dispositivo. Design capacity warning: PowerStatus Design de advertência de capacidade: Capacity granularity 2: PowerStatus Granularidade de capacidade 2: Too bad! PowerStatus Muito ruim! Technology: PowerStatus Tecnologia: mWh PowerStatus mWh -PowerStatus System name Estado de Força +PowerStatus System name Estado de Energia Design capacity: PowerStatus Capacidade de design: OEM info: PowerStatus Informação do fabricante: no battery PowerStatus sem bateria diff --git a/data/catalogs/apps/processcontroller/cs.catkeys b/data/catalogs/apps/processcontroller/cs.catkeys index f667f1e85e..7574208f76 100644 --- a/data/catalogs/apps/processcontroller/cs.catkeys +++ b/data/catalogs/apps/processcontroller/cs.catkeys @@ -8,7 +8,7 @@ Processor %d ProcessController Procesor %d Live in the Deskbar ProcessController Živě v Deskbaru Kill this team! ProcessController Ukončit tuto skupinu! OK ProcessController OK -You can run ProcessController in a window or install it in the Deskbar. ProcessController Můžete spouštět Správce Procesů v okně nebo jej nainstalovat do Deskbaru. +You can run ProcessController in a window or install it in the Deskbar. ProcessController Můžete spouštět správce procesů v okně nebo jej nainstalovat do Deskbaru. Real-time priority ProcessController Priorita realtime Custom priority ProcessController Priorita uživatelská Debug this thread! ProcessController Debug tohoto vlákna! @@ -18,7 +18,7 @@ Memory usage ProcessController Využití paměti Ok! ProcessController OK! Normal priority ProcessController Priorita normální Restart Deskbar ProcessController Restartovat Deskbar -About ProcessController… ProcessController O Správci Procesů... +About ProcessController… ProcessController O správci procesů... Usage: %s [-deskbar]\n ProcessController Využití: %s [-deskbar]\n Please confirm ProcessController Potvrďte prosím (c) 1996-2001 Georges-Edouard Berenger, berenger@francenet.fr ProcessController (c) 1996-2001 Georges-Edouard Berenger, berenger@francenet.fr @@ -41,9 +41,9 @@ Lowest active priority ProcessController Priorita nejnižší aktivity Restart Tracker ProcessController Restartovat Tracker System resources & caches… ProcessController Systémové zdroje & cache… Damned! ProcessController Dokoprdele! -New Terminal ProcessController Nový Terminál +New Terminal ProcessController Nový terminál Power saving ProcessController Úspora napájení -ProcessController is already installed in Deskbar. ProcessController Správce Procesů je již v Deskbaru nainstalován. +ProcessController is already installed in Deskbar. ProcessController Správce procesů je již v panelu nainstalován. This is the last active processor…\nYou can't turn it off! ProcessController Toto je poslední aktivní processor…\nNemůžete ho vypnout! This thread is already gone… ProcessController Toto vlákno je již pryč... Run in window ProcessController Spustit v okně diff --git a/data/catalogs/apps/processcontroller/el.catkeys b/data/catalogs/apps/processcontroller/el.catkeys index 583285d627..8cb4e56f3b 100644 --- a/data/catalogs/apps/processcontroller/el.catkeys +++ b/data/catalogs/apps/processcontroller/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.Haiku-ProcessController 3123774187 +1 greek, modern (1453-) x-vnd.Haiku-ProcessController 415082887 Error saving file ProcessController Σφάλμα αποθήκευσης αρχείου Display priority ProcessController Προτεραιότητα εμφάνισης That's no Fun! ProcessController Αυτό δεν έχει πλάκα! @@ -21,6 +21,7 @@ Restart Deskbar ProcessController Επανεκκίνηση Γραμμής Ερ About ProcessController… ProcessController Σχετικά με την Διαχείριση Εργασιών… Usage: %s [-deskbar]\n ProcessController Χρήση: %s [-deskbar]\n Please confirm ProcessController Παρακαλώ επιβεβαιώστε +(c) 1996-2001 Georges-Edouard Berenger, berenger@francenet.fr ProcessController (c) 1996-2001 Georges-Edouard Berenger, berenger@francenet.fr Urgent priority ProcessController Επείγουσα προτεραιότητα What do you want to do with the thread \"%s\"? ProcessController Τι θέλετε να κάνετε με το νήμα \"%s\"; Idle priority ProcessController Ανενεργή προτεραιότητα diff --git a/data/catalogs/apps/processcontroller/pt_BR.catkeys b/data/catalogs/apps/processcontroller/pt_BR.catkeys index 1a2584bb70..0089468ea2 100644 --- a/data/catalogs/apps/processcontroller/pt_BR.catkeys +++ b/data/catalogs/apps/processcontroller/pt_BR.catkeys @@ -31,14 +31,14 @@ Quit application ProcessController Sair do aplicativo Info ProcessController Informações Kill this thread! ProcessController Matar este processo! This team is already gone… ProcessController Esta equipe já se foi… -Gone teams… ProcessController Equipes terminadas… +Gone teams… ProcessController Processos zumbis… Quit an application ProcessController Fechar uma aplicação Cancel ProcessController Cancelar Install in Deskbar ProcessController Instalar no Deskbar Debug this team! ProcessController Depurar esta equipe! ProcessController System name Controlador de Processo Lowest active priority ProcessController Prioridade de mais baixa atividade -Restart Tracker ProcessController Reiniciar o Rastreador (Tracker) +Restart Tracker ProcessController Reiniciar Tracker System resources & caches… ProcessController Recursos & caches de sistema… Damned! ProcessController Maldição! New Terminal ProcessController Novo Terminal diff --git a/data/catalogs/apps/screenshot/Screenshot/da.catkeys b/data/catalogs/apps/screenshot/Screenshot/da.catkeys index 60e44404fd..029277ba30 100644 --- a/data/catalogs/apps/screenshot/Screenshot/da.catkeys +++ b/data/catalogs/apps/screenshot/Screenshot/da.catkeys @@ -1,5 +1,5 @@ 1 danish x-vnd.haiku-screenshot 3958461128 -Include window border ScreenshotWindow Inkluder vindueskant +Include window border ScreenshotWindow Medtag vindueskant Overwrite ScreenshotWindow Overskriv Save in: ScreenshotWindow Gem i: Error saving \"%s\":\n\t%s ScreenshotWindow Fejl ved gemning af \"%s\":\n\t%s @@ -14,7 +14,7 @@ Screenshot System name Skærmbillede Desktop ScreenshotWindow Skrivebord Artwork folder ScreenshotWindow Kunstmappe Translator Settings ScreenshotWindow Oversættelsesindstillinger -Include mouse pointer ScreenshotWindow Inkluder musemarkør +Include mouse pointer ScreenshotWindow Medtag musemarkør overwrite ScreenshotWindow overskriv Settings… ScreenshotWindow Indstillinger… Choose folder ScreenshotWindow Vælg mappe diff --git a/data/catalogs/apps/screenshot/screenshot/el.catkeys b/data/catalogs/apps/screenshot/screenshot/el.catkeys index 01c30c4deb..b81a9200a8 100644 --- a/data/catalogs/apps/screenshot/screenshot/el.catkeys +++ b/data/catalogs/apps/screenshot/screenshot/el.catkeys @@ -1,5 +1,31 @@ -1 greek, modern (1453-) x-vnd.haiku-screenshot-cli 2506396191 +1 greek, modern (1453-) x-vnd.haiku-screenshot-cli 3958461128 +Include window border ScreenshotWindow Περίληψη περιγράμματος παραθύρου +Overwrite ScreenshotWindow Αντικατάσταση +Save in: ScreenshotWindow Αποθήκευση σε: +Error saving \"%s\":\n\t%s ScreenshotWindow Σφάλμα αποθήκευσης του \"%s\":\n\t%s +This file already exists.\n Are you sure you would like to overwrite it? ScreenshotWindow Το αρχείο υπάρχει ήδη.\n Είστε σίγουρος/η ότι θέλετε να το αντικαταστήσετε; +OK ScreenshotWindow Εντάξει +The destination path exists but is not a folder. ScreenshotWindow Η διεύθυνση προορισμού υπάρχει, αλλά δεν είναι κατάλογος. +Select ScreenshotWindow Επιλογή +Save as: ScreenshotWindow Αποθήκευση ως: +seconds ScreenshotWindow δευτερόλεπτα New screenshot ScreenshotWindow Νέο στιγμιότυπο οθόνης Screenshot System name Στιγμιότυπο Οθόνης +Desktop ScreenshotWindow Επιφάνεια εργασίας +Artwork folder ScreenshotWindow Φάκελος τεχνημάτων +Translator Settings ScreenshotWindow Ρυθμίσεις μεταφραστή +Include mouse pointer ScreenshotWindow Περίληψη δείκτη ποντικιού +overwrite ScreenshotWindow αντικατάσταση +Settings… ScreenshotWindow Ρυθμίσεις... +Choose folder ScreenshotWindow Επιλογή καταλόγου +Name: ScreenshotWindow Όνομα: +Choose folder… ScreenshotWindow Επιλογή καταλόγου... +Please select ScreenshotWindow Παρακαλώ επιλέξτε Failed to save screenshot ScreenshotWindow Δεν ήταν δυνατή η αποθήκευση στιγμιοτύπου οθόνης +Cancel ScreenshotWindow Άκυρο +Delay: ScreenshotWindow Καθυστέρηση: +Copy to clipboard ScreenshotWindow Αντιγραφή στο πρόχειρο screenshot Screenshot Base filename of screenshot files στιγμιότυπο +Home folder ScreenshotWindow Φάκελος χρήστη +Save ScreenshotWindow Αποθήκευση +Capture active window ScreenshotWindow Στιγμιότυπο ενεργού παραθύρου diff --git a/data/catalogs/apps/serialconnect/el.catkeys b/data/catalogs/apps/serialconnect/el.catkeys new file mode 100644 index 0000000000..f867d4d6ee --- /dev/null +++ b/data/catalogs/apps/serialconnect/el.catkeys @@ -0,0 +1,37 @@ +1 greek, modern (1453-) x-vnd.haiku.SerialConnect 354154115 +Hardware SerialWindow Flowcontrol Υλικό +Connection SerialWindow Σύνδεση +Raw send… SerialWindow Αποστολή ακατέργαστων πακέτων... +Baud rate SerialWindow Ρυθμός Baud +Stop bits SerialWindow Bits σταματήματος +None SerialWindow Flowcontrol Κανένα +Cancel Custom baudrate window Άκυρο +Sending… XModemStatus Αποστολή... + SerialWindow <καμία σειριακή θύρα διαθέσιμη> +Log to file… SerialWindow Καταγραφή σε αρχείο... +Custom baudrate Custom baudrate window Προσαρμοσμένος ρυμός Baud +File SerialWindow Αρχείο +SerialConnect System name SerialConnect +custom… SerialWindow Baudrate προσαρμογή... +Parity SerialWindow Ισοτιμία +None SerialWindow Parity Καμία +Disconnect SerialWindow Αποσύνδεση +Everything sent, waiting for acknowledge XModemStatus Τα δεδομένα απεστάλησαν, αναμονή για επιβεβαίωση +Odd SerialWindow Parity Περιττή +Flow control SerialWindow Διαχείρηση ροής +file transfer progress SerialWindow εξέλιξη μεταφοράς αρχείου +CRC requested XModemStatus Ζητήθηκε CRC +Data bits SerialWindow Bits δεδομένων +Both SerialWindow Flowcontrol Και τα δυο +Edit SerialWindow Επεξεργασία +XModem send… SerialWindow Αποστολή μέσω XModem... +Baudrate: Custom baudrate window Ρυθμός Baud: +OK Custom baudrate window Εντάξει +Waiting for receiver… XModemStatus Αναμονή για αποδέκτη... +Clear history SerialWindow Άδειασμα ιστορικού +Checksum error, re-send block XModemStatus Σφάλμα ταυτοποίησης checksum, επαναποστολή μπλοκ +Settings SerialWindow Ρυθμίσεις +Even SerialWindow Parity Ζυγή +Software SerialWindow Flowcontrol Λογισμικό +Line terminator SerialWindow Τέλος γραμμής +Remote cancelled transfer XModemStatus Ο απομακρυσμένος υπολογιστής ακύρωσε τη μεταφορά diff --git a/data/catalogs/apps/serialconnect/fr.catkeys b/data/catalogs/apps/serialconnect/fr.catkeys index ed08c0ec99..a19528c2bd 100644 --- a/data/catalogs/apps/serialconnect/fr.catkeys +++ b/data/catalogs/apps/serialconnect/fr.catkeys @@ -1,4 +1,4 @@ -1 french x-vnd.haiku.SerialConnect 3572614496 +1 french x-vnd.haiku.SerialConnect 354154115 Hardware SerialWindow Flowcontrol Matériel Connection SerialWindow Connexion Raw send… SerialWindow Envoi brut… @@ -20,6 +20,7 @@ Everything sent, waiting for acknowledge XModemStatus Envoi complet, attente de Odd SerialWindow Parity Impair Flow control SerialWindow Contrôle du flux file transfer progress SerialWindow progression du transfert de fichiers +CRC requested XModemStatus CRC demandé Data bits SerialWindow Bits de données Both SerialWindow Flowcontrol Les deux Edit SerialWindow Éditer diff --git a/data/catalogs/apps/serialconnect/pt.catkeys b/data/catalogs/apps/serialconnect/pt.catkeys index 09dfcd5f86..51a22a4e50 100644 --- a/data/catalogs/apps/serialconnect/pt.catkeys +++ b/data/catalogs/apps/serialconnect/pt.catkeys @@ -1,7 +1,8 @@ -1 portuguese x-vnd.haiku.SerialConnect 2909329719 +1 portuguese x-vnd.haiku.SerialConnect 3534464201 Hardware SerialWindow Flowcontrol Hardware Connection SerialWindow Conexão Raw send… SerialWindow Envio raw… +Baud rate SerialWindow Taxa de transmissão Stop bits SerialWindow Bits paragem None SerialWindow Flowcontrol Nenhum Cancel Custom baudrate window Cancelar @@ -21,6 +22,8 @@ file transfer progress SerialWindow progresso transferência ficheiro CRC requested XModemStatus CRC requisitado Both SerialWindow Flowcontrol Ambos Edit SerialWindow Editar +XModem send… SerialWindow XModem enviar… +Baudrate: Custom baudrate window Taxa de transmissão: OK Custom baudrate window OK Waiting for receiver… XModemStatus A aguardar pelo recetor… Clear history SerialWindow Limpar histórico diff --git a/data/catalogs/apps/serialconnect/pt_BR.catkeys b/data/catalogs/apps/serialconnect/pt_BR.catkeys index 02bdaed54a..29edc8e728 100644 --- a/data/catalogs/apps/serialconnect/pt_BR.catkeys +++ b/data/catalogs/apps/serialconnect/pt_BR.catkeys @@ -11,7 +11,7 @@ Sending… XModemStatus Enviando… Log to file… SerialWindow Registrar no arquivo… Custom baudrate Custom baudrate window Taxa de transmissão personalizada File SerialWindow Arquivo -SerialConnect System name SerialConnect +SerialConnect System name Conexão Serial custom… SerialWindow Baudrate personalizado… Parity SerialWindow Paridade None SerialWindow Parity Nenhum diff --git a/data/catalogs/apps/serialconnect/ru.catkeys b/data/catalogs/apps/serialconnect/ru.catkeys index ea233564f9..a94c4272d7 100644 --- a/data/catalogs/apps/serialconnect/ru.catkeys +++ b/data/catalogs/apps/serialconnect/ru.catkeys @@ -10,7 +10,7 @@ Sending… XModemStatus Отправка… Log to file… SerialWindow Сохранить журнал в файл… Custom baudrate Custom baudrate window Настроить скорость передачи File SerialWindow Файл -SerialConnect System name Последовательное Подключение +SerialConnect System name Последовательное подключение custom… SerialWindow Baudrate в ручную… Parity SerialWindow Четность None SerialWindow Parity Без проверки diff --git a/data/catalogs/apps/showimage/da.catkeys b/data/catalogs/apps/showimage/da.catkeys index 457b7fc691..26b2d70df8 100644 --- a/data/catalogs/apps/showimage/da.catkeys +++ b/data/catalogs/apps/showimage/da.catkeys @@ -7,7 +7,7 @@ Zoom in Menus Zoom ind The document '%s' has been changed. Do you want to close the document? ClosePrompt Dokumentet '%s' er blevet ændret. Vil du lukke dokumentet? Page setup… Menus Sideopsætning… Print… Menus Udskriv… -Get info… Menus Hent info… +Get info… Menus Hent information… OK SaveToFile OK Previous page Menus Forrige side View Menus Vis diff --git a/data/catalogs/apps/stylededit/ca.catkeys b/data/catalogs/apps/stylededit/ca.catkeys index 7e198c47b9..0fe0dcc8ae 100644 --- a/data/catalogs/apps/stylededit/ca.catkeys +++ b/data/catalogs/apps/stylededit/ca.catkeys @@ -1,4 +1,4 @@ -1 catalan; valencian x-vnd.Haiku-StyledEdit 2796309255 +1 catalan; valencian x-vnd.Haiku-StyledEdit 3760185556 Document statistics Statistics Estadístiques del document Cannot revert, file not found: \"%s\". RevertToSavedAlert No es pot revertir: el fitxer no es troba: \"%s\". Cut Menus Retalla @@ -51,6 +51,7 @@ OK SaveAlert D'acord Color Menus Color Save changes to the document \"%s\"? QuitAlert Voleu desar els canvis al document \"%s\"? StyledEdit System name Editor d'estil +Underline Menus Subratllat Find: FindandReplaceWindow Troba: Undo typing QuitAlert Desfés el tecleig Error loading \"%s\":\n\t%s LoadAlert Error en carregar \"%s\":\n\t%s diff --git a/data/catalogs/apps/stylededit/cs.catkeys b/data/catalogs/apps/stylededit/cs.catkeys index 0c178ee818..7f75d4f920 100644 --- a/data/catalogs/apps/stylededit/cs.catkeys +++ b/data/catalogs/apps/stylededit/cs.catkeys @@ -1,4 +1,4 @@ -1 czech x-vnd.Haiku-StyledEdit 2796309255 +1 czech x-vnd.Haiku-StyledEdit 3760185556 Document statistics Statistics Statistika dokumentu Cannot revert, file not found: \"%s\". RevertToSavedAlert Nemohu se vrátit, soubor nenalezen: \"%s\". Cut Menus Vystřihnout @@ -51,6 +51,7 @@ OK SaveAlert OK Color Menus Barva Save changes to the document \"%s\"? QuitAlert Uložit změny do dokumentu \"%s\"? StyledEdit System name Stylizovaný editor +Underline Menus Podtržené Find: FindandReplaceWindow Najít: Undo typing QuitAlert Zpět psaní Error loading \"%s\":\n\t%s LoadAlert Chyba při nahrávání \"%s\":\n\t%s diff --git a/data/catalogs/apps/stylededit/da.catkeys b/data/catalogs/apps/stylededit/da.catkeys index c3f8df6896..22c21fc40f 100644 --- a/data/catalogs/apps/stylededit/da.catkeys +++ b/data/catalogs/apps/stylededit/da.catkeys @@ -1,4 +1,4 @@ -1 danish x-vnd.Haiku-StyledEdit 2796309255 +1 danish x-vnd.Haiku-StyledEdit 3760185556 Document statistics Statistics Dokumentets statistiker Cannot revert, file not found: \"%s\". RevertToSavedAlert Kan ikke tilbageføre, fil ikke fundet: \"%s\". Cut Menus Klip @@ -51,6 +51,7 @@ OK SaveAlert OK Color Menus Farve Save changes to the document \"%s\"? QuitAlert Gem ændringer til dokumentet \"%s\"? StyledEdit System name StyledEdit +Underline Menus Understreget Find: FindandReplaceWindow Find: Undo typing QuitAlert Fortryd skrivning Error loading \"%s\":\n\t%s LoadAlert Fejl ved indlæsning af \"%s\":\n\t%s diff --git a/data/catalogs/apps/stylededit/de.catkeys b/data/catalogs/apps/stylededit/de.catkeys index ddc2585d8c..72586ead19 100644 --- a/data/catalogs/apps/stylededit/de.catkeys +++ b/data/catalogs/apps/stylededit/de.catkeys @@ -1,4 +1,4 @@ -1 german x-vnd.Haiku-StyledEdit 613799227 +1 german x-vnd.Haiku-StyledEdit 1577675528 Document statistics Statistics Dokument-Statistik Cannot revert, file not found: \"%s\". RevertToSavedAlert Rückgängig machen unmöglich, die Datei wurde nicht gefunden: \"%s\". Cut Menus Ausschneiden @@ -50,6 +50,7 @@ Default Menus Standard OK SaveAlert OK Color Menus Farbe Save changes to the document \"%s\"? QuitAlert Geändertes Dokument \"%s\" speichern? +Underline Menus Unterstrichen Find: FindandReplaceWindow Suche: Undo typing QuitAlert Rückgängig: Eingabe Error loading \"%s\":\n\t%s LoadAlert Fehler beim Laden von \"%s\":\n\t%s diff --git a/data/catalogs/apps/stylededit/el.catkeys b/data/catalogs/apps/stylededit/el.catkeys index 48aa88f542..4a52f3d46c 100644 --- a/data/catalogs/apps/stylededit/el.catkeys +++ b/data/catalogs/apps/stylededit/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.Haiku-StyledEdit 2796309255 +1 greek, modern (1453-) x-vnd.Haiku-StyledEdit 3760185556 Document statistics Statistics Στατιστικά εγγράφου Cannot revert, file not found: \"%s\". RevertToSavedAlert Δεν μπορεί να γίνει επαναφορά, το αρχείο δεν βρέθηκε: \"%s\". Cut Menus Αποκοπή @@ -51,6 +51,7 @@ OK SaveAlert Εντάξει Color Menus Χρώμα Save changes to the document \"%s\"? QuitAlert Να αποθηκευτούν οι αλλαγές στο έγγραφο \"%s\"; StyledEdit System name Επεξεργαστής Κειμένου +Underline Menus Υπογράμμιση Find: FindandReplaceWindow Εύρεση: Undo typing QuitAlert Αναίρεση πληκτρολόγησης Error loading \"%s\":\n\t%s LoadAlert Σφάλμα φόρτωσης \"%s\":\n\t%s diff --git a/data/catalogs/apps/stylededit/es.catkeys b/data/catalogs/apps/stylededit/es.catkeys index debc185ebf..e4c4ef490c 100644 --- a/data/catalogs/apps/stylededit/es.catkeys +++ b/data/catalogs/apps/stylededit/es.catkeys @@ -1,4 +1,4 @@ -1 spanish; castilian x-vnd.Haiku-StyledEdit 2796309255 +1 spanish; castilian x-vnd.Haiku-StyledEdit 3760185556 Document statistics Statistics Estadísticas del documento Cannot revert, file not found: \"%s\". RevertToSavedAlert No se puede revertir, archivo no encontrado: \"%s\". Cut Menus Cortar @@ -51,6 +51,7 @@ OK SaveAlert Aceptar Color Menus Color Save changes to the document \"%s\"? QuitAlert ¿Desea guardar los cambios realizados sobre el documento \"%s\"? StyledEdit System name Edición con Estilo +Underline Menus Subrayado Find: FindandReplaceWindow Encontrar: Undo typing QuitAlert Deshacer lo escrito Error loading \"%s\":\n\t%s LoadAlert Error cargando \"%s\":\n\t%s diff --git a/data/catalogs/apps/stylededit/fi.catkeys b/data/catalogs/apps/stylededit/fi.catkeys index 488ace7131..f20c63e446 100644 --- a/data/catalogs/apps/stylededit/fi.catkeys +++ b/data/catalogs/apps/stylededit/fi.catkeys @@ -1,4 +1,4 @@ -1 finnish x-vnd.Haiku-StyledEdit 2796309255 +1 finnish x-vnd.Haiku-StyledEdit 3760185556 Document statistics Statistics Asiakirjan tilastot Cannot revert, file not found: \"%s\". RevertToSavedAlert Palauttaminen epäonnistui, tiedostoa ei löytynyt: ”%s”. Cut Menus Leikkaa @@ -51,6 +51,7 @@ OK SaveAlert Valmis Color Menus Väri Save changes to the document \"%s\"? QuitAlert Tallenna muutokset asiakirjaan ”%s”? StyledEdit System name Tyylitetty editori +Underline Menus Alleviivaa Find: FindandReplaceWindow Haku: Undo typing QuitAlert Peru kirjoitus Error loading \"%s\":\n\t%s LoadAlert Virhe ladattaessa ”%s”:\n\t%s diff --git a/data/catalogs/apps/stylededit/fr.catkeys b/data/catalogs/apps/stylededit/fr.catkeys index cd804a86c3..e2b18bc4a2 100644 --- a/data/catalogs/apps/stylededit/fr.catkeys +++ b/data/catalogs/apps/stylededit/fr.catkeys @@ -1,4 +1,4 @@ -1 french x-vnd.Haiku-StyledEdit 2796309255 +1 french x-vnd.Haiku-StyledEdit 3760185556 Document statistics Statistics Statistiques du document Cannot revert, file not found: \"%s\". RevertToSavedAlert Rétablissement impossible, fichier non trouvé : « %s ». Cut Menus Couper @@ -51,6 +51,7 @@ OK SaveAlert OK Color Menus Couleur Save changes to the document \"%s\"? QuitAlert Enregistrer les modifications du document « %s » ? StyledEdit System name Éditeur stylé +Underline Menus Souligné Find: FindandReplaceWindow Chercher : Undo typing QuitAlert Annuler la saisie Error loading \"%s\":\n\t%s LoadAlert Erreur au de chargement de « %s » :\n\t%s diff --git a/data/catalogs/apps/stylededit/ja.catkeys b/data/catalogs/apps/stylededit/ja.catkeys index 87a44fff6d..23a3f8c2ff 100644 --- a/data/catalogs/apps/stylededit/ja.catkeys +++ b/data/catalogs/apps/stylededit/ja.catkeys @@ -1,4 +1,4 @@ -1 japanese x-vnd.Haiku-StyledEdit 2796309255 +1 japanese x-vnd.Haiku-StyledEdit 3760185556 Document statistics Statistics ドキュメント統計 Cannot revert, file not found: \"%s\". RevertToSavedAlert ファイル \"%s\" が存在しないため、元に戻せません。 Cut Menus 切り取り @@ -51,6 +51,7 @@ OK SaveAlert OK Color Menus 色 Save changes to the document \"%s\"? QuitAlert \"%s\" が変更されましたが、保存されていません。終了前に保存しますか? StyledEdit System name StyledEdit +Underline Menus 下線 Find: FindandReplaceWindow 検索: Undo typing QuitAlert 元に戻す Error loading \"%s\":\n\t%s LoadAlert \"%s\" を読み込み中にエラーが発生しました:\n\t %s diff --git a/data/catalogs/apps/stylededit/pt_BR.catkeys b/data/catalogs/apps/stylededit/pt_BR.catkeys index 8ade29a3aa..d4291261eb 100644 --- a/data/catalogs/apps/stylededit/pt_BR.catkeys +++ b/data/catalogs/apps/stylededit/pt_BR.catkeys @@ -50,7 +50,7 @@ Default Menus Padrões OK SaveAlert OK Color Menus Cor Save changes to the document \"%s\"? QuitAlert Salvar as alterações ao documento \"%s\"? -StyledEdit System name Estilo de Edição +StyledEdit System name StyledEdit Find: FindandReplaceWindow Localizar: Undo typing QuitAlert Desfazer digitação Error loading \"%s\":\n\t%s LoadAlert Erro ao salvar \"%s\":\n%s diff --git a/data/catalogs/apps/stylededit/sv.catkeys b/data/catalogs/apps/stylededit/sv.catkeys index b149cfbabc..e14426133f 100644 --- a/data/catalogs/apps/stylededit/sv.catkeys +++ b/data/catalogs/apps/stylededit/sv.catkeys @@ -1,4 +1,4 @@ -1 swedish x-vnd.Haiku-StyledEdit 2796309255 +1 swedish x-vnd.Haiku-StyledEdit 3760185556 Document statistics Statistics Dokumentstatistik Cannot revert, file not found: \"%s\". RevertToSavedAlert Kan inte återgå, filen hittades inte: \"%s\". Cut Menus Klipp ut @@ -51,6 +51,7 @@ OK SaveAlert OK Color Menus Färg Save changes to the document \"%s\"? QuitAlert Spara ändringar till dokumentet \"%s\"? StyledEdit System name StyledEdit +Underline Menus Understrykning Find: FindandReplaceWindow Sök: Undo typing QuitAlert Ångra inmatning Error loading \"%s\":\n\t%s LoadAlert Fel vid inläsning \"%s\":\n\t%s diff --git a/data/catalogs/apps/stylededit/tr.catkeys b/data/catalogs/apps/stylededit/tr.catkeys index 1570a05295..1d0005d584 100644 --- a/data/catalogs/apps/stylededit/tr.catkeys +++ b/data/catalogs/apps/stylededit/tr.catkeys @@ -1,4 +1,4 @@ -1 turkish x-vnd.Haiku-StyledEdit 2796309255 +1 turkish x-vnd.Haiku-StyledEdit 3760185556 Document statistics Statistics Belge istatistikleri Cannot revert, file not found: \"%s\". RevertToSavedAlert Geri alınamıyor, dosya bulunamadı: \"%s\". Cut Menus Kes @@ -51,6 +51,7 @@ OK SaveAlert Tamam Color Menus Renk Save changes to the document \"%s\"? QuitAlert \"%s\" içindeki değişiklikler kaydedilsin mi? StyledEdit System name StyledEdit +Underline Menus Altı çizili Find: FindandReplaceWindow Bul: Undo typing QuitAlert Yazımı geri al Error loading \"%s\":\n\t%s LoadAlert \"%s\" yüklenirken hata:\n\t%s diff --git a/data/catalogs/apps/stylededit/uk.catkeys b/data/catalogs/apps/stylededit/uk.catkeys index 0bf04ad38c..ed762e88ec 100644 --- a/data/catalogs/apps/stylededit/uk.catkeys +++ b/data/catalogs/apps/stylededit/uk.catkeys @@ -1,4 +1,4 @@ -1 ukrainian x-vnd.Haiku-StyledEdit 2796309255 +1 ukrainian x-vnd.Haiku-StyledEdit 3760185556 Document statistics Statistics Статистика документу Cannot revert, file not found: \"%s\". RevertToSavedAlert Неможливо зробити відкат, файл не знайдено: \"%s\". Cut Menus Вирізати @@ -51,6 +51,7 @@ OK SaveAlert ОК Color Menus Колір Save changes to the document \"%s\"? QuitAlert Зберегти зміни в документі \"%s\" ? StyledEdit System name StyledEdit +Underline Menus Підкреслений Find: FindandReplaceWindow Знайти: Undo typing QuitAlert Відмінити набір тексту Error loading \"%s\":\n\t%s LoadAlert Помилка завантаження \"%s\":\n\t%s diff --git a/data/catalogs/apps/terminal/be.catkeys b/data/catalogs/apps/terminal/be.catkeys index f710f1199a..069c9cc4ff 100644 --- a/data/catalogs/apps/terminal/be.catkeys +++ b/data/catalogs/apps/terminal/be.catkeys @@ -10,8 +10,8 @@ Confirm exit if active programs exist Terminal AppearancePrefView Пытацц Copy Terminal TermWindow Капіяваць Retro Terminal colors scheme Даўніна Edit tab title… Terminal TermWindow Правіць імя ўкладкі… -Print Terminal TermWindow Друк Settings Terminal TermWindow Наладкі +Print Terminal TermWindow Друк %app% settings Terminal PrefWindow window title Наладкі %app% Use default Terminal SetTitleWindow Ужыць прадвызначаныя Close tab Terminal TermWindow Закрыць укладку @@ -27,8 +27,8 @@ Page setup… Terminal TermWindow Наладкі старонкі… Slate Terminal colors scheme Шыфер Cancel Terminal TermView Адмена Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Тэрмінал -Use selection Terminal FindWindow Карыстаць выдзяленне Find next Terminal TermWindow Знайсці далейшае +Use selection Terminal FindWindow Карыстаць выдзяленне Copy link location Terminal TermView Капіяваць спасылку Window title: Terminal AppearancePrefView Імя вакна: New tab Terminal TermWindow Новая ўкладка @@ -46,12 +46,12 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Невядомая оп Tab title: Terminal AppearancePrefView Імя ўкладкі: Text not found. Terminal TermWindow Тэкст не знойдзены. Find failed Terminal TermWindow Не ўдалося знайсці -Match word Terminal FindWindow Усё слова Color scheme: Terminal AppearancePrefView Каляровая схема: +Match word Terminal FindWindow Усё слова New Terminal Terminal TermWindow Новы Тэрмінал Quit Terminal TermWindow Выйсці -Match case Terminal FindWindow З улікам рэгістру Find previous Terminal TermWindow Знайсці ранейшае +Match case Terminal FindWindow З улікам рэгістру Close Terminal TermWindow Закрыць Save to file… Terminal PrefWindow Захаваць у файл… Background Terminal AppearancePrefView Фон @@ -69,11 +69,11 @@ Default Terminal colors scheme Дапомная Switch Terminals Terminal TermWindow Пераключыць Тэрміналы Decrease Terminal TermWindow Паменшыць Settings… Terminal TermWindow Наладкі… -Cancel Terminal SetTitleWindow Адмена Blinking cursor Terminal AppearancePrefView Мільгаючы курсор +Cancel Terminal SetTitleWindow Адмена The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Шаблон для імёнаў вакон. Можна ўжываць наступныя\n запаўняльнікі:\n -Use text: Terminal FindWindow Ужыць тэкст: Close active tab Terminal TermWindow Закрыць актыўную ўкладку +Use text: Terminal FindWindow Ужыць тэкст: Nothing is selected. Terminal TermWindow Нічога не выбрана. Find Terminal FindWindow Шукаць The pattern specifying the current tab title. The following placeholders\ncan be used:\n Terminal TermWindow Шаблон для цякучага імя ўкладкі. Можна ўжываць наступныя\n запаўняльнікі:\n diff --git a/data/catalogs/apps/terminal/ca.catkeys b/data/catalogs/apps/terminal/ca.catkeys index 8f95d95cff..ba61e1d516 100644 --- a/data/catalogs/apps/terminal/ca.catkeys +++ b/data/catalogs/apps/terminal/ca.catkeys @@ -1,8 +1,10 @@ -1 catalan; valencian x-vnd.Haiku-Terminal 3117643489 +1 catalan; valencian x-vnd.Haiku-Terminal 4032760800 +ANSI cyan color Terminal AppearancePrefView Color cian ANSI Close other tabs Terminal TermWindow Tanca altres pestanyes Insert path Terminal TermView Insereix un camí Terminal couldn't start the shell. Sorry. Terminal TermApp El terminal no ha pogut obrir l'intèrpret d'ordres. Disculpeu. Text encoding Terminal TermWindow Codificació del text +ANSI blue color Terminal AppearancePrefView Color blau ANSI OK Terminal SetTitleWindow D'acord Edit Terminal TermWindow Edita Select all Terminal TermWindow Selecciona-ho tot @@ -10,39 +12,49 @@ Confirm exit if active programs exist Terminal AppearancePrefView Confirmeu-ne \t%d\t-\tThe current working directory of the active process in the\n\t\t\tcurrent tab. Optionally the maximum number of path components\n\t\t\tcan be specified. E.g. '%2d' for at most two components.\n\t%T\t-\tThe Terminal application name for the current locale.\n\t%e\t-\tThe encoding of the current tab. Not shown for UTF-8.\n\t%i\t-\tThe index of the window.\n\t%p\t-\tThe name of the active process in the current tab.\n\t%t\t-\tThe title of the current tab. Terminal ToolTips \t%d\t-\tEl directori de treball actual del procés actiu a la\n\t\t\tpestanya actual. Opcionalment es pot especificar el nombre màxim\n\t\t\tde components de camí. P. ex.: "%2d", per a un màxim de dos components.\n\t%T\t-\tEl nom de l'aplicació de Terminal per a la configuració de la llengua actual.\n\t%e\t-\tLa codificació de la pestanya actual. No es mostra per a UTF-8.\n\t%i\t-\tL'índex de la finestra.\n\t%p\t-\tEl nom del procés actiu a la pestanya actual.\n\t%t\t-\tEl títol de la pestanya actual. Solarized Dark Terminal colors scheme Fosc solaritzat Copy Terminal TermWindow Copia +ANSI bright green color Terminal AppearancePrefView Color verd brillant ANSI -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help Imprimeix aquesta ajuda.\n -t, --title Estableix el títol de la finestra.\n -f, --fullscreen Pantalla completa\n -w, --working-directory Estableix el directori de treball inicial. +ANSI white color Terminal AppearancePrefView Color blanc ANSI Retro Terminal colors scheme Retro Edit tab title… Terminal TermWindow Edita el títol de la pestanya... -Print Terminal TermWindow Imprimeix Settings Terminal TermWindow Paràmetres +Print Terminal TermWindow Imprimeix %app% settings Terminal PrefWindow window title Paràmetres del %app% +ANSI black color Terminal AppearancePrefView Color negre ANSI Use default Terminal SetTitleWindow Valor per defecte Close tab Terminal TermWindow Tanca la pestanya Selected background Terminal AppearancePrefView Fons seleccionat Error! Terminal getString Error! Set tab title Terminal TermWindow Establiu el títol de la pestanya Appearance Terminal PrefWindow Aparença +ANSI bright yellow color Terminal AppearancePrefView Color groc brillant ANSI Encoding: Terminal AppearancePrefView Codificació: Create link here Terminal TermView Crea l'enllaç aquí Custom Terminal AppearancePrefView Window size Personalitzat Selected text Terminal AppearancePrefView Text seleccionat Change directory Terminal TermView Canvia la carpeta +ANSI magenta color Terminal AppearancePrefView Color magenta ANSI Page setup… Terminal TermWindow Configuració de la pàgina... Slate Terminal colors scheme Pissarra Defaults Terminal PrefWindow Valors predeterminats Cancel Terminal TermView Cancel·la Revert Terminal PrefWindow Reverteix +Relaxed Terminal colors scheme Relaxat +ANSI bright magenta color Terminal AppearancePrefView Color magenta brillant ANSI Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminal -Use selection Terminal FindWindow Usa la selecció +ANSI bright cyan color Terminal AppearancePrefView Color cian brillant ANSI Find next Terminal TermWindow Troba'n el següent +Use selection Terminal FindWindow Usa la selecció Copy link location Terminal TermView Copia la ubicació de l'enllaç Window title: Terminal AppearancePrefView Títol de la finestra: New tab Terminal TermWindow Pestanya nova +ANSI bright blue color Terminal AppearancePrefView Color blau brillant ANSI Allow bold text Terminal AppearancePrefView Permet text en negreta Window title… Terminal TermWindow Títol de la finestra... Blue Terminal colors scheme Blau Cannot execute \"%command\":\n\t%error Terminal Shell No es pot executar l'ordre \"%command\":\n\t%error Open path Terminal TermView Obre el camí +ANSI yellow color Terminal AppearancePrefView Color groc ANSI Terminal System name Terminal Font size Terminal TermWindow Mida de la lletra Custom Terminal colors scheme Personalitzat @@ -53,16 +65,17 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Opció no reconeguda \" Tab title: Terminal AppearancePrefView Títol de la pestanya Text not found. Terminal TermWindow No s'ha trobat el text. Find failed Terminal TermWindow Ha fallat la cerca -Match word Terminal FindWindow Coincidència de paraules Color scheme: Terminal AppearancePrefView Esquema de colors: +Match word Terminal FindWindow Coincidència de paraules New Terminal Terminal TermWindow Obre un terminal Quit Terminal TermWindow Surt -Match case Terminal FindWindow Coincidència de majúscules i minúscules Find previous Terminal TermWindow Troba'n l'anterior +Match case Terminal FindWindow Coincidència de majúscules i minúscules The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView El patró que especifica els títols de les pestanyes. Es poden usar\nels marcadors de posició següents: Close Terminal TermWindow Tanca Save to file… Terminal PrefWindow Desa a un fitxer... Background Terminal AppearancePrefView Fons +ANSI green color Terminal AppearancePrefView Color verd ANSI Copy path Terminal TermView Copia'n el camí Window size Terminal TermWindow Mida de la finestra Copy absolute path Terminal TermView Copia'n el camí absolut @@ -80,13 +93,15 @@ Window size: Terminal AppearancePrefView Mida de la finestra: Switch Terminals Terminal TermWindow Intercanvia els Terminals Decrease Terminal TermWindow Redueix Settings… Terminal TermWindow Paràmetres… -Cancel Terminal SetTitleWindow Cancel·la +ANSI bright white color Terminal AppearancePrefView Color blanc brillant ANSI Blinking cursor Terminal AppearancePrefView Cursor que parpelleja +Cancel Terminal SetTitleWindow Cancel·la The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow El patró que especifica el títol de la finestra. Es poden usar els marcadors\nde posició següents:\n -Use text: Terminal FindWindow Usa text: Close active tab Terminal TermWindow Tanca la pestanya activa +Use text: Terminal FindWindow Usa text: Save as default Terminal TermWindow Desa com a predeterminat Nothing is selected. Terminal TermWindow No hi ha res seleccionat. +ANSI red color Terminal AppearancePrefView Color vermell ANSI Use left Option as Meta key Terminal AppearancePrefView Usa l'opció d'esquerra com a tecla Meta. Find Terminal FindWindow Troba The pattern specifying the current tab title. The following placeholders\ncan be used:\n Terminal TermWindow El patró que especifica el títol de la pestanya actual. Es poden usar els\nmarcadors de posició següents:\n @@ -94,7 +109,9 @@ Professional Terminal colors scheme Professional Font: Terminal AppearancePrefView Tipus de lletra: Paste Terminal TermWindow Enganxa The pattern specifying the window titles. The following placeholders\ncan be used: Terminal AppearancePrefView El patró que especifica els títols de les finestres. Es poden usar els\nmarcadors de posició següents: +ANSI bright black color Terminal AppearancePrefView Color negre brillant ANSI Copy here Terminal TermView Copia-ho aquí +ANSI bright red color Terminal AppearancePrefView Color vermell brillant ANSI Use default shell Terminal Shell Usa l'intèrpret d'ordres predeterminat Color: Terminal AppearancePrefView Color: Open link Terminal TermView Obre l'enllaç @@ -112,6 +129,6 @@ Increase Terminal TermWindow Augmenta OK Terminal TermWindow D'acord Close window Terminal TermWindow Tanca la finestra Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Terminal del Haiku\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui i Takashi Murai.\n\nÚs: %s [OPCIÓ] [SHELL]\n -Solarized Light Terminal colors scheme Llum solaritzada Clear all Terminal TermWindow Neteja-ho tot +Solarized Light Terminal colors scheme Llum solaritzada Search forward Terminal FindWindow Cerca endavant diff --git a/data/catalogs/apps/terminal/cs.catkeys b/data/catalogs/apps/terminal/cs.catkeys index 7a8fd0dadf..0240900909 100644 --- a/data/catalogs/apps/terminal/cs.catkeys +++ b/data/catalogs/apps/terminal/cs.catkeys @@ -1,8 +1,10 @@ -1 czech x-vnd.Haiku-Terminal 3117643489 +1 czech x-vnd.Haiku-Terminal 4032760800 +ANSI cyan color Terminal AppearancePrefView ANSI azurová Close other tabs Terminal TermWindow Zavřít ostatní panely Insert path Terminal TermView Vložit cestu Terminal couldn't start the shell. Sorry. Terminal TermApp Terminál nemůže spustit shell. Lituji. Text encoding Terminal TermWindow Kódování textu +ANSI blue color Terminal AppearancePrefView ANSI modrá OK Terminal SetTitleWindow OK Edit Terminal TermWindow Úpravy Select all Terminal TermWindow Vybrat vše @@ -10,39 +12,49 @@ Confirm exit if active programs exist Terminal AppearancePrefView Protvrdit uko \t%d\t-\tThe current working directory of the active process in the\n\t\t\tcurrent tab. Optionally the maximum number of path components\n\t\t\tcan be specified. E.g. '%2d' for at most two components.\n\t%T\t-\tThe Terminal application name for the current locale.\n\t%e\t-\tThe encoding of the current tab. Not shown for UTF-8.\n\t%i\t-\tThe index of the window.\n\t%p\t-\tThe name of the active process in the current tab.\n\t%t\t-\tThe title of the current tab. Terminal ToolTips \t%d\t-\tAktuální adresář aktívního procesu v aktuální\n\t\t\tkartě. Nepovinně je možné uvést maximální počet\n\t\t\tadresářů cesty. Např. '%2d' pro maximálně dva adresáře.\n\t%T\t-\tNázev aplikace Terminál v aktuální lokalizaci.\n\t%e\t-\tKódování aktuální karty. Nezobrazuje se v případě UTF-8.\n\t%i\t-\tIndex okna.\n\t%p\t-\tNázev aktivního procesu v aktuální kartě.\n\t%t\t-\tNázev aktuální karty. Solarized Dark Terminal colors scheme Solarizovaná tmavá Copy Terminal TermWindow Kopírovat +ANSI bright green color Terminal AppearancePrefView ANSI světle zelená -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help zobrazit tuto nápovědu\n -t, --title nastavit titulek okna\n -f, --fullscreen spustit na celou obrazovku\n -w, --working-directory nastavit pracovní adresář +ANSI white color Terminal AppearancePrefView ANSI bílá Retro Terminal colors scheme Retro Edit tab title… Terminal TermWindow Upravit nadpis panelu... -Print Terminal TermWindow Tisk Settings Terminal TermWindow Nastavení +Print Terminal TermWindow Tisk %app% settings Terminal PrefWindow window title %app% nastavení +ANSI black color Terminal AppearancePrefView ANSI černá Use default Terminal SetTitleWindow Použít výchozí Close tab Terminal TermWindow Zavřít panel Selected background Terminal AppearancePrefView Vybrané pozadí Error! Terminal getString Chyba! Set tab title Terminal TermWindow Nastavit nadpis panelu Appearance Terminal PrefWindow Vzhled +ANSI bright yellow color Terminal AppearancePrefView ANSI světle žlutá Encoding: Terminal AppearancePrefView Kódování: Create link here Terminal TermView Vytvoř zde link Custom Terminal AppearancePrefView Window size Vlastní Selected text Terminal AppearancePrefView Vybraný text Change directory Terminal TermView Změnit adresář +ANSI magenta color Terminal AppearancePrefView ANSI purpurová Page setup… Terminal TermWindow Nastavení stránky... Slate Terminal colors scheme Břidlice Defaults Terminal PrefWindow Výchozí Cancel Terminal TermView Zrušit Revert Terminal PrefWindow Vrátit zpět +Relaxed Terminal colors scheme Uvolněné +ANSI bright magenta color Terminal AppearancePrefView ANSI světle purpurová Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminál -Use selection Terminal FindWindow Použít výběr +ANSI bright cyan color Terminal AppearancePrefView ANSI světle azurová Find next Terminal TermWindow Vyhledat další +Use selection Terminal FindWindow Použít výběr Copy link location Terminal TermView Kopírovat umístění odkazu Window title: Terminal AppearancePrefView Nadpis okna New tab Terminal TermWindow Nový panel +ANSI bright blue color Terminal AppearancePrefView ANSI světle modrá Allow bold text Terminal AppearancePrefView Povolit tučný text Window title… Terminal TermWindow Nadpis okna... Blue Terminal colors scheme Modrá Cannot execute \"%command\":\n\t%error Terminal Shell Nelze spustit \"%command\":\n\t%error Open path Terminal TermView Otevřít cestu +ANSI yellow color Terminal AppearancePrefView ANSI žlutá Terminal System name Terminál Font size Terminal TermWindow Velikost písma Custom Terminal colors scheme Vlastní @@ -53,16 +65,17 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Nerozpoznaná volba \"% Tab title: Terminal AppearancePrefView Nadpis panelu: Text not found. Terminal TermWindow Text nenalezen. Find failed Terminal TermWindow Vyhledávání selhalo -Match word Terminal FindWindow Shoda slova Color scheme: Terminal AppearancePrefView Barevné schéma: +Match word Terminal FindWindow Shoda slova New Terminal Terminal TermWindow Nový terminál Quit Terminal TermWindow Ukončit -Match case Terminal FindWindow Shoda písmen Find previous Terminal TermWindow Vyhledat předchozí +Match case Terminal FindWindow Shoda písmen The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Vzor určující názvy karet. Je možné použít nasledující\nzástupných symbolů: Close Terminal TermWindow Zavřít Save to file… Terminal PrefWindow Uložit do souboru... Background Terminal AppearancePrefView Pozadí +ANSI green color Terminal AppearancePrefView ANSI zelená Copy path Terminal TermView Kopírovat cestu Window size Terminal TermWindow Velikost okna Copy absolute path Terminal TermView Kopírovat absolutní cestu @@ -80,13 +93,15 @@ Window size: Terminal AppearancePrefView Velikost okna: Switch Terminals Terminal TermWindow Přepnout terminály Decrease Terminal TermWindow Zmenšit Settings… Terminal TermWindow Nastavení... -Cancel Terminal SetTitleWindow Zrušit +ANSI bright white color Terminal AppearancePrefView ANSI světle bílá Blinking cursor Terminal AppearancePrefView Blikající kurzor +Cancel Terminal SetTitleWindow Zrušit The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Vzor určující nadpis okna. Následující zástupci\nmohou být použiti:\n -Use text: Terminal FindWindow Použít text: Close active tab Terminal TermWindow Zavřít aktivní panel +Use text: Terminal FindWindow Použít text: Save as default Terminal TermWindow Uložit jako výchozí Nothing is selected. Terminal TermWindow Není nic vybráno. +ANSI red color Terminal AppearancePrefView ANSI červená Use left Option as Meta key Terminal AppearancePrefView Použijte levý Alt jako meta klávesu Find Terminal FindWindow Najít The pattern specifying the current tab title. The following placeholders\ncan be used:\n Terminal TermWindow Vzor určující současný nadpis panelu. Následující zástupci\nmohou být použiti:\n @@ -94,7 +109,9 @@ Professional Terminal colors scheme Profesionální Font: Terminal AppearancePrefView Písmo Paste Terminal TermWindow Vložit The pattern specifying the window titles. The following placeholders\ncan be used: Terminal AppearancePrefView Vzor určující názvy oken. Je možné použít\nnasledující zástupné symboly: +ANSI bright black color Terminal AppearancePrefView ANSI světle černá Copy here Terminal TermView Kopíruj zde +ANSI bright red color Terminal AppearancePrefView ANSI světle červená Use default shell Terminal Shell Použít výchozí shell Color: Terminal AppearancePrefView Barva: Open link Terminal TermView Otevřít odkaz @@ -112,6 +129,6 @@ Increase Terminal TermWindow Zvětšit OK Terminal TermWindow OK Close window Terminal TermWindow Zavřít okno Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Haiku Terminál\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui a Takashi Murai.\n\nPoužití: %s [VOLBY] [SHELL]\n -Solarized Light Terminal colors scheme Solarizovaná světla Clear all Terminal TermWindow Vymaž vše +Solarized Light Terminal colors scheme Solarizovaná světla Search forward Terminal FindWindow Vyhledat vpřed diff --git a/data/catalogs/apps/terminal/da.catkeys b/data/catalogs/apps/terminal/da.catkeys index 453817a878..3db9c3e8e4 100644 --- a/data/catalogs/apps/terminal/da.catkeys +++ b/data/catalogs/apps/terminal/da.catkeys @@ -1,8 +1,10 @@ -1 danish x-vnd.Haiku-Terminal 3117643489 +1 danish x-vnd.Haiku-Terminal 4032760800 +ANSI cyan color Terminal AppearancePrefView ANSI cyan farve Close other tabs Terminal TermWindow Luk andre faneblade Insert path Terminal TermView Indsæt sti Terminal couldn't start the shell. Sorry. Terminal TermApp Terminal kunne ikke køre skallen. Beklager. Text encoding Terminal TermWindow Tekstkodning +ANSI blue color Terminal AppearancePrefView ANSI blå farve OK Terminal SetTitleWindow OK Edit Terminal TermWindow Rediger Select all Terminal TermWindow Vælg alt @@ -10,39 +12,49 @@ Confirm exit if active programs exist Terminal AppearancePrefView Bekræft lukn \t%d\t-\tThe current working directory of the active process in the\n\t\t\tcurrent tab. Optionally the maximum number of path components\n\t\t\tcan be specified. E.g. '%2d' for at most two components.\n\t%T\t-\tThe Terminal application name for the current locale.\n\t%e\t-\tThe encoding of the current tab. Not shown for UTF-8.\n\t%i\t-\tThe index of the window.\n\t%p\t-\tThe name of the active process in the current tab.\n\t%t\t-\tThe title of the current tab. Terminal ToolTips \t%d\t-\tDen nuværende arbejdsmappe for den aktive proces i det\n\t\t\tnuværende faneblad. Det maksimale antal stikomponenter kan\n\t\t\tvalgfrit angives. F.eks. '%2d' for højst to komponenter.\n\t%T\t-\tTerminal-programnavnet for den nuværende lokalitet.\n\t%e\t-\tKodningen på det nuværende faneblad. Vises ikke ved UTF-8.\n\t%i\t-\tIndekset på vinduet.\n\t%p\t-\tNavnet på den aktive proces i det nuværende faneblad.\n\t%t\t-\tTitlen på det nuværende faneblad. Solarized Dark Terminal colors scheme Solariseret mørkt Copy Terminal TermWindow Kopiér +ANSI bright green color Terminal AppearancePrefView ANSI klar grøn farve -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help vis denne hjælp\n -t, --title indstil vinduets titel\n -f, --fullscreen start fuldskærm\n -w, --working-directory indstil indledende arbejdsmappe +ANSI white color Terminal AppearancePrefView ANSI hvid farve Retro Terminal colors scheme Retro Edit tab title… Terminal TermWindow Rediger fanebladstitel… -Print Terminal TermWindow Udskriv Settings Terminal TermWindow Indstillinger +Print Terminal TermWindow Udskriv %app% settings Terminal PrefWindow window title %app%-indstillinger +ANSI black color Terminal AppearancePrefView ANSI sort farve Use default Terminal SetTitleWindow Brug standard Close tab Terminal TermWindow Luk faneblad Selected background Terminal AppearancePrefView Valgte baggrund Error! Terminal getString Fejl! Set tab title Terminal TermWindow Sæt fanebladstitel Appearance Terminal PrefWindow Udseende +ANSI bright yellow color Terminal AppearancePrefView ANSI klar gul farve Encoding: Terminal AppearancePrefView Kodning: Create link here Terminal TermView Lav link her Custom Terminal AppearancePrefView Window size Tilpas Selected text Terminal AppearancePrefView Valgte tekst -Change directory Terminal TermView Skift folder +Change directory Terminal TermView Skift mappe +ANSI magenta color Terminal AppearancePrefView ANSI magenta farve Page setup… Terminal TermWindow Sideopsætning… Slate Terminal colors scheme Skiffer Defaults Terminal PrefWindow Standarder Cancel Terminal TermView Annuller Revert Terminal PrefWindow Omvendt +Relaxed Terminal colors scheme Afslappet +ANSI bright magenta color Terminal AppearancePrefView ANSI klar magenta farve Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminal -Use selection Terminal FindWindow Brug udvælgelse +ANSI bright cyan color Terminal AppearancePrefView ANSI klar cyan farve Find next Terminal TermWindow Find næste +Use selection Terminal FindWindow Brug udvælgelse Copy link location Terminal TermView Kopiér linkplacering Window title: Terminal AppearancePrefView Vinduestitel: New tab Terminal TermWindow Nyt faneblad +ANSI bright blue color Terminal AppearancePrefView ANSI klar blå farve Allow bold text Terminal AppearancePrefView Tillad fed tekst Window title… Terminal TermWindow Vinduestitel… Blue Terminal colors scheme Blå Cannot execute \"%command\":\n\t%error Terminal Shell Kan ikke køre \"%command\":\n\t%error Open path Terminal TermView Åbn sti +ANSI yellow color Terminal AppearancePrefView ANSI gul farve Terminal System name Terminal Font size Terminal TermWindow Skriftstørrelse Custom Terminal colors scheme Tilpas @@ -53,16 +65,17 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Ukendt tilvalg \"%s\"\n Tab title: Terminal AppearancePrefView Fanebladstitel: Text not found. Terminal TermWindow Tekst ikke fundet. Find failed Terminal TermWindow Find mislykkedes -Match word Terminal FindWindow Match ord Color scheme: Terminal AppearancePrefView Farveskema: +Match word Terminal FindWindow Match ord New Terminal Terminal TermWindow Ny terminal Quit Terminal TermWindow Afslut -Match case Terminal FindWindow Skel mellem store og små bogstaver Find previous Terminal TermWindow Find foregående +Match case Terminal FindWindow Skel mellem store og små bogstaver The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Mønsteret som angiver fanebladstitlerne. Følgende pladsholdere\nkan bruges: Close Terminal TermWindow Luk Save to file… Terminal PrefWindow Gem i fil… Background Terminal AppearancePrefView Baggrund +ANSI green color Terminal AppearancePrefView ANSI grøn farve Copy path Terminal TermView Kopiér sti Window size Terminal TermWindow Vinduesstørrelse Copy absolute path Terminal TermView Kopiér absolut sti @@ -80,13 +93,15 @@ Window size: Terminal AppearancePrefView Vinduesstørrelse: Switch Terminals Terminal TermWindow Skift terminal Decrease Terminal TermWindow Mindre Settings… Terminal TermWindow Indstillinger… -Cancel Terminal SetTitleWindow Annuller +ANSI bright white color Terminal AppearancePrefView ANSI klar hvid farve Blinking cursor Terminal AppearancePrefView Blinkende markør +Cancel Terminal SetTitleWindow Annuller The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Mønsteret angiver vinduestitlen. Følgende pladsholdere\nkan bruges:\n -Use text: Terminal FindWindow Brug tekst: Close active tab Terminal TermWindow Luk aktivt faneblad +Use text: Terminal FindWindow Brug tekst: Save as default Terminal TermWindow Gem som standard Nothing is selected. Terminal TermWindow Intet er markeret. +ANSI red color Terminal AppearancePrefView ANSI rød farve Use left Option as Meta key Terminal AppearancePrefView Brug venstre Option som Meta-tast Find Terminal FindWindow Find The pattern specifying the current tab title. The following placeholders\ncan be used:\n Terminal TermWindow Mønsteret angiver den aktuelle fanebladstitel. Følgende pladsholdere\nkan bruges:\n @@ -94,7 +109,9 @@ Professional Terminal colors scheme Professionel Font: Terminal AppearancePrefView Skrifttype: Paste Terminal TermWindow Indsæt The pattern specifying the window titles. The following placeholders\ncan be used: Terminal AppearancePrefView Mønsteret som angiver vinduestitlerne. Følgende pladsholdere\nkan bruges: +ANSI bright black color Terminal AppearancePrefView ANSI klar sort farve Copy here Terminal TermView Kopiér her +ANSI bright red color Terminal AppearancePrefView ANSI klar rød farve Use default shell Terminal Shell Brug standardskal Color: Terminal AppearancePrefView Farve: Open link Terminal TermView Åbn link @@ -112,6 +129,6 @@ Increase Terminal TermWindow Større OK Terminal TermWindow OK Close window Terminal TermWindow Luk vindue Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Haiku Terminal\nOphavsret 2001-2019 Haiku, Inc.\nPåhavsret(C) 1999 Kazuho Okui og Takashi Murai.\n\nAnvendelse: %s [TILVALG] [SKAL]\n -Solarized Light Terminal colors scheme Solariseret lyst Clear all Terminal TermWindow Slet alt +Solarized Light Terminal colors scheme Solariseret lyst Search forward Terminal FindWindow Søg fremad diff --git a/data/catalogs/apps/terminal/de.catkeys b/data/catalogs/apps/terminal/de.catkeys index 1bab0c6c0c..a03aa7d3ae 100644 --- a/data/catalogs/apps/terminal/de.catkeys +++ b/data/catalogs/apps/terminal/de.catkeys @@ -1,8 +1,10 @@ -1 german x-vnd.Haiku-Terminal 3117643489 +1 german x-vnd.Haiku-Terminal 4032760800 +ANSI cyan color Terminal AppearancePrefView ANSI-Farbe Blaugrün Close other tabs Terminal TermWindow Andere Reiter schließen Insert path Terminal TermView Pfad einfügen Terminal couldn't start the shell. Sorry. Terminal TermApp Das Terminal konnte die Konsole leider nicht starten. Text encoding Terminal TermWindow Kodierung +ANSI blue color Terminal AppearancePrefView ANSI-Farbe Blau OK Terminal SetTitleWindow OK Edit Terminal TermWindow Bearbeiten Select all Terminal TermWindow Alles auswählen @@ -10,39 +12,49 @@ Confirm exit if active programs exist Terminal AppearancePrefView Beenden best \t%d\t-\tThe current working directory of the active process in the\n\t\t\tcurrent tab. Optionally the maximum number of path components\n\t\t\tcan be specified. E.g. '%2d' for at most two components.\n\t%T\t-\tThe Terminal application name for the current locale.\n\t%e\t-\tThe encoding of the current tab. Not shown for UTF-8.\n\t%i\t-\tThe index of the window.\n\t%p\t-\tThe name of the active process in the current tab.\n\t%t\t-\tThe title of the current tab. Terminal ToolTips \t%d\t-\tArbeitsverzeichnis des gerade im aktuellen Reiter\n\t\t\tlaufenden Prozesses. Optional kann auch die maximale\n\t\t\tAnzahl der Pfadkomponenten angegeben werden.\n\t\t\tZum Beispiel: '%2d' für maximal zwei Komponenten.\n\t%T\t-\tName der Terminalanwendung in der aktuellen Systemsprache\n\t%e\t-\tKodierung des aktuellen Reiters. Unterdrückt bei UTF-8\n\t%i\t-\tLaufende Nummer des Fensters\n\t%p\t-\tName des laufenden Prozesses im aktuellen Reiter\n\t%t\t-\tTitel des aktuellen Reiters\n Solarized Dark Terminal colors scheme Solarized dunkel Copy Terminal TermWindow Kopieren +ANSI bright green color Terminal AppearancePrefView ANSI-Farbe Hellgrün -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help Diese Hilfe ausgeben\n -t, --title Fenstertitel setzen\n -f, --fullscreen Im Vollbild-Modus starten\n -w, --working-directory Setzt das anfängliche Arbeitsverzeichnis +ANSI white color Terminal AppearancePrefView ANSI-Farbe Weiß (Hellgrau) Retro Terminal colors scheme Retro Edit tab title… Terminal TermWindow Reiter umbenennen... -Print Terminal TermWindow Drucken Settings Terminal TermWindow Einstellungen +Print Terminal TermWindow Drucken %app% settings Terminal PrefWindow window title %app%-Einstellungen +ANSI black color Terminal AppearancePrefView ANSI-Farbe Schwarz Use default Terminal SetTitleWindow Standardwerte Close tab Terminal TermWindow Reiter schließen Selected background Terminal AppearancePrefView Auswahl-Hintergrund Error! Terminal getString Fehler! Set tab title Terminal TermWindow Reiter umbenennen Appearance Terminal PrefWindow Darstellung +ANSI bright yellow color Terminal AppearancePrefView ANSI-Farbe Hellgelb Encoding: Terminal AppearancePrefView Zeichenkodierung: Create link here Terminal TermView Verknüpfung hier erstellen Custom Terminal AppearancePrefView Window size Benutzerdefiniert Selected text Terminal AppearancePrefView Ausgewählter Text Change directory Terminal TermView Zum Ordner wechseln +ANSI magenta color Terminal AppearancePrefView ANSI-Farbe Magenta Page setup… Terminal TermWindow Seiten einrichten… Slate Terminal colors scheme Schiefer Defaults Terminal PrefWindow Standardwerte Cancel Terminal TermView Abbrechen Revert Terminal PrefWindow Anfangswerte +Relaxed Terminal colors scheme Entspannt +ANSI bright magenta color Terminal AppearancePrefView ANSI-Farbe Hellmagenta Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminal -Use selection Terminal FindWindow Verwende Auswahl +ANSI bright cyan color Terminal AppearancePrefView ANSI-Farbe Hell-Blaugrün Find next Terminal TermWindow Weitersuchen +Use selection Terminal FindWindow Verwende Auswahl Copy link location Terminal TermView Link-Adresse kopieren Window title: Terminal AppearancePrefView Fenstertitel: New tab Terminal TermWindow Neuer Reiter +ANSI bright blue color Terminal AppearancePrefView ANSI-Farbe Hellblau Allow bold text Terminal AppearancePrefView Text in Fettschrift zulassen Window title… Terminal TermWindow Fenstertitel… Blue Terminal colors scheme Blau Cannot execute \"%command\":\n\t%error Terminal Shell \"%command\" kann nicht ausgeführt werden:\n\t%error Open path Terminal TermView Pfad öffnen +ANSI yellow color Terminal AppearancePrefView ANSI-Farbe Gelb Terminal System name Terminal Font size Terminal TermWindow Schriftgröße Custom Terminal colors scheme Benutzerdefiniert @@ -53,16 +65,17 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Unbekannte Option \"%s\ Tab title: Terminal AppearancePrefView Reitertitel: Text not found. Terminal TermWindow Der Suchbegriff wurde nicht gefunden. Find failed Terminal TermWindow Suche fehlgeschlagen -Match word Terminal FindWindow Ganze Wörter suchen Color scheme: Terminal AppearancePrefView Farbschema: +Match word Terminal FindWindow Ganze Wörter suchen New Terminal Terminal TermWindow Neues Terminal Quit Terminal TermWindow Beenden -Match case Terminal FindWindow Groß-/Kleinschreibung beachten Find previous Terminal TermWindow Rückwärts suchen +Match case Terminal FindWindow Groß-/Kleinschreibung beachten The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Die Formel für Reitertitel. Folgende Variablen\nstehen zur Verfügung: Close Terminal TermWindow Schließen Save to file… Terminal PrefWindow In Datei speichern… Background Terminal AppearancePrefView Hintergrund +ANSI green color Terminal AppearancePrefView ANSI-Farbe Grün Copy path Terminal TermView Pfad kopieren Window size Terminal TermWindow Fenstergröße Copy absolute path Terminal TermView Absoluten Pfad kopieren @@ -80,13 +93,15 @@ Window size: Terminal AppearancePrefView Fenstergröße Switch Terminals Terminal TermWindow Terminals wechseln Decrease Terminal TermWindow Verkleinern Settings… Terminal TermWindow Einstellungen... -Cancel Terminal SetTitleWindow Abbrechen +ANSI bright white color Terminal AppearancePrefView ANSI-Farbe Hellweiß (Weiß) Blinking cursor Terminal AppearancePrefView Blinkender Cursor +Cancel Terminal SetTitleWindow Abbrechen The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Die Formel für den Fenstertitel. Folgende Variablen\nstehen zur Verfügung:\n -Use text: Terminal FindWindow Suchbegriff: Close active tab Terminal TermWindow Aktiven Reiter schließen +Use text: Terminal FindWindow Suchbegriff: Save as default Terminal TermWindow Als Standardwerte speichern Nothing is selected. Terminal TermWindow Es wurde nichts ausgewählt. +ANSI red color Terminal AppearancePrefView ANSI-Farbe Rot Use left Option as Meta key Terminal AppearancePrefView Linke Option-Taste als Meta-Taste verwenden Find Terminal FindWindow Suchen The pattern specifying the current tab title. The following placeholders\ncan be used:\n Terminal TermWindow Die Formel für diesen Reitertitel. Folgende Variablen\nstehen zur Verfügung:\n @@ -94,7 +109,9 @@ Professional Terminal colors scheme Professional Font: Terminal AppearancePrefView Schriftart: Paste Terminal TermWindow Einfügen The pattern specifying the window titles. The following placeholders\ncan be used: Terminal AppearancePrefView Die Formel für Fenstertitel. Folgende Variablen stehen\nzur Verfügung: +ANSI bright black color Terminal AppearancePrefView ANSI-Farbe Hellschwarz (Dunkelgrau) Copy here Terminal TermView Hierher kopieren +ANSI bright red color Terminal AppearancePrefView ANSI-Farbe Hellrot Use default shell Terminal Shell Verwende Standard-Konsole Color: Terminal AppearancePrefView Farbe: Open link Terminal TermView Link öffnen @@ -112,6 +129,6 @@ Increase Terminal TermWindow Vergrößern OK Terminal TermWindow OK Close window Terminal TermWindow Fenster schließen Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui und Takashi Murai.\n\nGebrauch: %s [OPTION] [SHELL]\n -Solarized Light Terminal colors scheme Solarized hell Clear all Terminal TermWindow Bildschirm leeren +Solarized Light Terminal colors scheme Solarized hell Search forward Terminal FindWindow Vorwärts suchen diff --git a/data/catalogs/apps/terminal/el.catkeys b/data/catalogs/apps/terminal/el.catkeys index 7b7911689d..ca395c1487 100644 --- a/data/catalogs/apps/terminal/el.catkeys +++ b/data/catalogs/apps/terminal/el.catkeys @@ -1,8 +1,10 @@ -1 greek, modern (1453-) x-vnd.Haiku-Terminal 2277843400 +1 greek, modern (1453-) x-vnd.Haiku-Terminal 4032760800 +ANSI cyan color Terminal AppearancePrefView Γαλάζιο χρώμα ANSI Close other tabs Terminal TermWindow Κλείσιμο άλλων καρτελών Insert path Terminal TermView Εισάγετε την διαδρομή Terminal couldn't start the shell. Sorry. Terminal TermApp Το Τερματικό δε μπορεί να ξεκινήσει το κέλυφος. Λυπούμαστε. Text encoding Terminal TermWindow Κωδικοποίηση κειμένου +ANSI blue color Terminal AppearancePrefView Μπλε χρώμα ANSI OK Terminal SetTitleWindow Εντάξει Edit Terminal TermWindow Επεξεργασία Select all Terminal TermWindow Επιλογή όλων @@ -10,38 +12,49 @@ Confirm exit if active programs exist Terminal AppearancePrefView Επιβεβ \t%d\t-\tThe current working directory of the active process in the\n\t\t\tcurrent tab. Optionally the maximum number of path components\n\t\t\tcan be specified. E.g. '%2d' for at most two components.\n\t%T\t-\tThe Terminal application name for the current locale.\n\t%e\t-\tThe encoding of the current tab. Not shown for UTF-8.\n\t%i\t-\tThe index of the window.\n\t%p\t-\tThe name of the active process in the current tab.\n\t%t\t-\tThe title of the current tab. Terminal ToolTips \t%d\t-\tΟ τρέχων κατάλογος εργασίας της ενεργής διεργασίας στην\n\t\t\tτρέχουσα καρτέλα. Ο μέγιστος αριθμός εξαρτημάτων διαδρομών μπορεί προαιρετικά\n\t\t\tνα οριστεί. π.χ. '%2d' για δύο εξαρτήματα.\n\t%T\t-\tΤο όνομα της εφαρμογής Τερματικό στην γλώσσα που έχετε επιλέξει.\n\t%e\t-\tΟ τρόπος κωδικοποίησης της τρέχουσας καρτέλας. Δεν θα εμφανιστεί αν η επιλεγμένη ρύθμιση είναι το UTF-8.\n\t%i\t-\tΤο αρχικό μήνυμα του παραθύρου.\n\t%p\t-\tΤο όνομα της ενεργής διεργασίας στην τρέχουσα καρτέλα.\n\t%t\t-\tΟ τίτλος της τρέχουσας καρτέλας. Solarized Dark Terminal colors scheme Έκλειψη Σελήνης Copy Terminal TermWindow Αντιγραφή +ANSI bright green color Terminal AppearancePrefView Ανοιχτό πράσινο χρώμα ANSI + -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help εμφάνιση αυτής της βοήθειας\n -t, --title ορισμός τίτλου παραθύρου\n -f, --fullscreen εκκίνηση σε λειτουργία πλήρους οθόνης\n -w, --working-directory ορισμός αρχικού καταλόγου εργασίας +ANSI white color Terminal AppearancePrefView Λευκό χρώμα ANSI Retro Terminal colors scheme Ρετρό Edit tab title… Terminal TermWindow Επεξεργασία τίτλου καρτέλας… -Print Terminal TermWindow Εκτύπωση Settings Terminal TermWindow Ρυθμίσεις +Print Terminal TermWindow Εκτύπωση %app% settings Terminal PrefWindow window title Ρυθμίσεις %app% +ANSI black color Terminal AppearancePrefView Μαύρο χρώμα ANSI Use default Terminal SetTitleWindow Χρήση προεπιλεγμένου Close tab Terminal TermWindow Κλείσιμο καρτέλας Selected background Terminal AppearancePrefView Επιλεγμένο φόντο Error! Terminal getString Σφάλμα! Set tab title Terminal TermWindow Ορισμός τίτλου καρτέλας Appearance Terminal PrefWindow Εμφάνιση +ANSI bright yellow color Terminal AppearancePrefView Ανοιχτό κίτρινο χρώμα ANSI Encoding: Terminal AppearancePrefView Κωδικοποίηση: Create link here Terminal TermView Δημιουργία συνδέσμου εδώ Custom Terminal AppearancePrefView Window size Προσαρμοσμένο Selected text Terminal AppearancePrefView Επιλεγμένο κείμενο Change directory Terminal TermView Αλλαγή καταλόγου +ANSI magenta color Terminal AppearancePrefView Φούξια χρώμα ANSI Page setup… Terminal TermWindow Διαμόρφωση σελίδας… Slate Terminal colors scheme Αβάκιο Defaults Terminal PrefWindow Προεπιλογές Cancel Terminal TermView Άκυρο Revert Terminal PrefWindow Επαναφορά +Relaxed Terminal colors scheme Χαλαρό +ANSI bright magenta color Terminal AppearancePrefView Ανοιχτό φούξια χρώμα ANSI Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Τερματικό -Use selection Terminal FindWindow Χρήση επιλεγμένου +ANSI bright cyan color Terminal AppearancePrefView Ανοιχτό γαλάζιο χρώμα ANSI Find next Terminal TermWindow Εύρεση επόμενου +Use selection Terminal FindWindow Χρήση επιλεγμένου Copy link location Terminal TermView Αντιγραφή υπερσυνδέσμου Window title: Terminal AppearancePrefView Τίτλος παραθύρου: New tab Terminal TermWindow Νέα καρτέλα +ANSI bright blue color Terminal AppearancePrefView Ανοιχτό μπλε χρώμα ANSI Allow bold text Terminal AppearancePrefView Να εμφανίζονται έντονοι χαρακτήρες Window title… Terminal TermWindow Τίτλος παραθύρου… Blue Terminal colors scheme Μπλε Cannot execute \"%command\":\n\t%error Terminal Shell Δεν μπορεί να εκτελεστεί \"%command\":\n\t%error Open path Terminal TermView Άνοιγμα διαδρομής +ANSI yellow color Terminal AppearancePrefView Κίτρινο χρώμα ANSI Terminal System name Τερματικό Font size Terminal TermWindow Μέγεθος γραμματοσειράς Custom Terminal colors scheme Προσαρμοσμένο @@ -52,16 +65,17 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Μη αναγνωρισ Tab title: Terminal AppearancePrefView Τίτλος καρτέλας: Text not found. Terminal TermWindow Το κείμενο δεν βρέθηκε. Find failed Terminal TermWindow Η εύρεση απέτυχε -Match word Terminal FindWindow Ταίριασμα λέξης Color scheme: Terminal AppearancePrefView Συνδυασμός χρωμάτων: +Match word Terminal FindWindow Ταίριασμα λέξης New Terminal Terminal TermWindow Νέο Τερματικό Quit Terminal TermWindow Έξοδος -Match case Terminal FindWindow Ταίριασμα πεζών/κεφαλαίων Find previous Terminal TermWindow Εύρεση προηγούμενου +Match case Terminal FindWindow Ταίριασμα πεζών/κεφαλαίων The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Το μοτίβο που διευκρινίζει τους τίτλους καρτελών. Μπορούν να\nχρησιμοποιηθούν οι ακόλουθοι χαρακτήρες κράτησης θέσης: Close Terminal TermWindow Κλείσιμο Save to file… Terminal PrefWindow Αποθήκευση στο αρχείο… Background Terminal AppearancePrefView Φόντο +ANSI green color Terminal AppearancePrefView Πράσινο χρώμα ANSI Copy path Terminal TermView Αντιγραφή διαδρομής Window size Terminal TermWindow Μέγεθος παραθύρου Copy absolute path Terminal TermView Αντιγραφή απόλυτης διαδρομής @@ -71,7 +85,7 @@ Cursor Terminal AppearancePrefView Δρομέας Full screen Terminal TermWindow Πλήρης οθόνη Shell Terminal TermWindow Κέλυφος Midnight Terminal colors scheme Μεσάνυχτα -\t%%\t-\tThe character '%'.\n\t%<\t-\tStarts a section that will only be shown if a placeholder\n\t\t\tafterwards is not empty.\n\t%>\t-\tStarts a section that will only be shown if a placeholder\n\t\t\tbetween a previous %< section and this one is not empty.\n\t%-\t-\tEnds a %< or %> section.\n\nAny non alpha numeric character between '%' and the format letter will insert a space only\nif the placeholder value is not empty. It will add to the %< section. Terminal ToolTips \t%%\t-\tΟ χαρακτήρας '%'.\n\t%<\t-\tΔημιουργεί μία ενότητα που θα φανεί μόνο αν το μεταγενέστερο\n\t\t\tσύμβολο κράτησης θέσης δεν είναι κενό.\n\t%>\t-\tΔημιουργεί μία ενότητα που θα φανεί μόνο αν το σύμβολο κράτησης\n\t\t\tθέσης ανάμεσα σε μία προηγούμενη ενότητα %< και αυτή δεν είναι κενή.\n\t%-\t-\tΟλοκληρώνει μία ενότητα %< or %>.\n\nΟποιοσδήποτε αλφαριθμητικός χαρακτήρας ανάμεσα στο '%' και στο γράμμα θα εισάγει μόνο ένα κενό\nαν η τιμή συμβόλου κράτησης θέσης δεν είναι κενή. Αυτό θα προστεθεί στην ενότητα %<. +\t%%\t-\tThe character '%'.\n\t%<\t-\tStarts a section that will only be shown if a placeholder\n\t\t\tafterwards is not empty.\n\t%>\t-\tStarts a section that will only be shown if a placeholder\n\t\t\tbetween a previous %< section and this one is not empty.\n\t%-\t-\tEnds a %< or %> section.\n\nAny non alpha numeric character between '%' and the format letter will insert a space only\nif the placeholder value is not empty. It will add to the %< section. Terminal ToolTips \t%%\t-\tΟ χαρακτήρας '%'.\n\t%<\t-\tΔημιουργεί μία ενότητα που θα φανεί μόνο αν το μεταγενέστερο\n\t\t\tσύμβολο κράτησης θέσης δεν είναι κενό.\n\t%>\t-\tΔημιουργεί μία ενότητα που θα φανεί μόνο αν το σύμβολο κράτησης\n\t\t\tθέσης ανάμεσα σε μία προηγούμενη ενότητα %< και αυτή δεν είναι κενή.\n\t%-\t-\tΟλοκληρώνει μία ενότητα %< ή %>.\n\nΟποιοσδήποτε αλφαριθμητικός χαρακτήρας ανάμεσα στο '%' και στο γράμμα θα εισάγει μόνο ένα κενό\nαν η τιμή συμβόλου κράτησης θέσης δεν είναι κενή. Αυτό θα προστεθεί στην ενότητα %<. Tab title: Terminal TermWindow Τίτλος καρτέλας: Window title: Terminal TermWindow Τίτλος παραθύρου: Default Terminal colors scheme Προεπιλογή @@ -79,13 +93,15 @@ Window size: Terminal AppearancePrefView Μέγεθος παραθύρου: Switch Terminals Terminal TermWindow Εναλλαγή Τερματικών Decrease Terminal TermWindow Μείωση Settings… Terminal TermWindow Ρυθμίσεις… -Cancel Terminal SetTitleWindow Άκυρο +ANSI bright white color Terminal AppearancePrefView Ανοιχτό λευκό χρώμα ANSI Blinking cursor Terminal AppearancePrefView Αναβόσβημα δρομέα +Cancel Terminal SetTitleWindow Άκυρο The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Το σχέδιο που προσδιορίζει τον τρέχοντα τίτλο παραθύρου. Τα παρακάτω σύμβολα \nμπορούν να χρησιμοποιηθούν:\n -Use text: Terminal FindWindow Χρήση κειμένου: Close active tab Terminal TermWindow Κλείσιμο ενεργής καρτέλας +Use text: Terminal FindWindow Χρήση κειμένου: Save as default Terminal TermWindow Αποθήκευση ως προεπιλογή Nothing is selected. Terminal TermWindow Τίποτα δεν επιλέχτηκε. +ANSI red color Terminal AppearancePrefView Κόκκινο χρώμα ANSI Use left Option as Meta key Terminal AppearancePrefView Να χρησιμοποιηθεί το αριστερό Option ως πλήκτρο τροποποίησης Find Terminal FindWindow Εύρεση The pattern specifying the current tab title. The following placeholders\ncan be used:\n Terminal TermWindow Το σχέδιο που προσδιορίζει τον τρέχοντα τίτλο καρτέλας. Τα παρακάτω σύμβολα \nμπορούν να χρησιμοποιηθούν:\n @@ -93,7 +109,9 @@ Professional Terminal colors scheme Επαγγελματικό Font: Terminal AppearancePrefView Γραμματοσειρά: Paste Terminal TermWindow Επικόλληση The pattern specifying the window titles. The following placeholders\ncan be used: Terminal AppearancePrefView Το μοτίβο που διευκρινίζει τους τίτλους παραθύρων. Μπορούν να\nχρησιμοποιηθούν οι ακόλουθοι χαρακτήρες κράτησης θέσης: +ANSI bright black color Terminal AppearancePrefView Ανοιχτό μαύρο χρώμα ANSI Copy here Terminal TermView Αντιγραφή εδώ +ANSI bright red color Terminal AppearancePrefView Ανοιχτό κόκκινο χρώμα ANSI Use default shell Terminal Shell Χρήση προεπιλεγμένου κέλυφους Color: Terminal AppearancePrefView Χρώμα: Open link Terminal TermView Άνοιγμα υπερσυνδέσμου @@ -104,13 +122,13 @@ No search string was entered. Terminal TermWindow Δεν καταχωρήθηκ Text under cursor Terminal AppearancePrefView Κείμενο κάτω από τον δρομέα Move here Terminal TermView Μετακίνηση εδώ Abort Terminal Shell Ματαίωση -\t%d\t-\tThe current working directory of the active process.\n\t\t\tOptionally the maximum number of path components can be\n\t\t\tspecified. E.g. '%2d' for at most two components.\n\t%i\t-\tThe index of the tab.\n\t%e\t-\tThe encoding of the current tab. Not shown for UTF-8.\n\t%p\t-\tThe name of the active process.\n\t%%\t-\tThe character '%'. Terminal ToolTips \t%d\t-\tΟ τρέχων κατάλογος εργασίας της ενεργής διεργασίας της ενεργής διεργασίας.\n\t\t\tΜπορείτε προαιρετικά να ορίσετε τον αριθμό εξαρτημάτων\n\t\t\διαδρομών. π.χ. '%2d' για δύο εξαρτήματα.\n\t%i\t-\tΤο αρχικό μήνυμα του παραθύρου.\n\t%e\t-\tΟ τρόπος κωδικοποίησης της τρέχουσας καρτέλας. Δεν θα εμφανίζεται αν η επιλεγμένη ρύθμιση είναι το UTF-8.\n\t%p\t-\tΤο όνομα της ενεργής διεργασίας στην τρέχουσα καρτέλα.\n\t%t\t-\tΟ χαρακτήρας '%'. +\t%d\t-\tThe current working directory of the active process.\n\t\t\tOptionally the maximum number of path components can be\n\t\t\tspecified. E.g. '%2d' for at most two components.\n\t%i\t-\tThe index of the tab.\n\t%e\t-\tThe encoding of the current tab. Not shown for UTF-8.\n\t%p\t-\tThe name of the active process.\n\t%%\t-\tThe character '%'. Terminal ToolTips \t%d\t-\tΟ τρέχων κατάλογος εργασίας της ενεργής διεργασίας.\n\t\t\tΜπορείτε προαιρετικά να ορίσετε τον μέγιστο αριθμό\n\t\t\tκομματιών διαδρομής. π.χ. '%2d' για δύο κομμάτια.\n\t%i\t-\tΟ αριθμός της καρτέλας.\n\t%e\t-\tΗ κωδικοποίηση της τρέχουσας καρτέλας. Δεν εμφανίζεται για UTF-8.\n\t%p\t-\tΤο όνομα της ενεργής διεργασίας.\n\t%%\t-\tΟ χαρακτήρας '%'. The following processes are still running:\n\n\t%1\n\nIf you close the Terminal, the processes will be killed. Terminal TermWindow Οι παρακάτω διεργασίες ακόμη εκτελούνται:\n\n\t%1\n\nΕαν κλείσετε το τερματικό, οι διεργασίες θα τερματιστούν. Set window title Terminal TermWindow Ορισμός τίτλου παραθύρου Increase Terminal TermWindow Άυξηση OK Terminal TermWindow Εντάξει Close window Terminal TermWindow Κλείσιμο παραθύρου Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Τερματικό Haiku\nΠνευματική ιδιοκτησία 2001-2019 Haiku, Inc.\nΠνευματική ιδιοκτησία(C) 1999 Kazuho Okui και Takashi Murai.\n\nΧρήση: %s [ΕΠΙΛΟΦΗ] [ΚΕΛΥΦΟΣ]\n -Solarized Light Terminal colors scheme Έκλειψη Ηλίου Clear all Terminal TermWindow Καθαρισμός όλων +Solarized Light Terminal colors scheme Έκλειψη Ηλίου Search forward Terminal FindWindow Αναζήτηση μπροστά diff --git a/data/catalogs/apps/terminal/eo.catkeys b/data/catalogs/apps/terminal/eo.catkeys index fde99bca5c..59c96c61c6 100644 --- a/data/catalogs/apps/terminal/eo.catkeys +++ b/data/catalogs/apps/terminal/eo.catkeys @@ -13,8 +13,8 @@ Copy Terminal TermWindow Kopii -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help montri ĉi helpon\n -t, --title atribui fenestran titolon\n -f, --fullscreen lanĉi plenekrane\n -w, --working-directory atribui komencan laboran dosierujon Retro Terminal colors scheme Retro Edit tab title… Terminal TermWindow Redakti la titolon de la langeto… -Print Terminal TermWindow Presi Settings Terminal TermWindow Agordo +Print Terminal TermWindow Presi %app% settings Terminal PrefWindow window title Agordo de %app% Use default Terminal SetTitleWindow Uzi defaŭlton Close tab Terminal TermWindow Fermi langeton @@ -33,8 +33,8 @@ Defaults Terminal PrefWindow Defaŭlta Cancel Terminal TermView Nuligi Revert Terminal PrefWindow Malfari ŝanĝojn Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminalo -Use selection Terminal FindWindow Uzi elekton Find next Terminal TermWindow Serĉi la venontan +Use selection Terminal FindWindow Uzi elekton Copy link location Terminal TermView Kopii la lokon de la ligilo Window title: Terminal AppearancePrefView Fenestra titolo: New tab Terminal TermWindow Nova langeto @@ -53,12 +53,12 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Nerekonita opcio \"%s\" Tab title: Terminal AppearancePrefView Titolo de la langeto: Text not found. Terminal TermWindow Teksto ne trovita. Find failed Terminal TermWindow Serĉo malsukcesis -Match word Terminal FindWindow Kongrui vorton Color scheme: Terminal AppearancePrefView Skemo de koloroj: +Match word Terminal FindWindow Kongrui vorton New Terminal Terminal TermWindow Nova Terminalo Quit Terminal TermWindow Ĉesi -Match case Terminal FindWindow Kongrui uskleco Find previous Terminal TermWindow Serĉi la pasintan +Match case Terminal FindWindow Kongrui uskleco The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView La skemo specifanta la titolojn de fenestroj. La sekvaj lokokupoj\nuzeblas: Close Terminal TermWindow Fermi Save to file… Terminal PrefWindow Konservi al dosiero… @@ -80,11 +80,11 @@ Window size: Terminal AppearancePrefView Fenestra grando: Switch Terminals Terminal TermWindow Interŝanĝi terminalojn Decrease Terminal TermWindow Malpliigi Settings… Terminal TermWindow Agordo… -Cancel Terminal SetTitleWindow Nuligi Blinking cursor Terminal AppearancePrefView Palpebruma kursoro +Cancel Terminal SetTitleWindow Nuligi The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow La skemo specifanta la fenestran titolon. La sekvaj lokokupoj\nuzeblas:\n -Use text: Terminal FindWindow Per teksto: Close active tab Terminal TermWindow Fermi aktivan langeton +Use text: Terminal FindWindow Per teksto: Save as default Terminal TermWindow Konservi kiel defaŭlta Nothing is selected. Terminal TermWindow Nenio estas elektita Use left Option as Meta key Terminal AppearancePrefView Uzi maldekstran opciklavon kiel metaklavo @@ -112,6 +112,6 @@ Increase Terminal TermWindow Pliigi OK Terminal TermWindow Bone Close window Terminal TermWindow Fermi fenestron Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Haiku Terminalo\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui kaj Takashi Murai.\n\nUzado: %s [OPTION] [SHELL]\n -Solarized Light Terminal colors scheme Sunuma Lumo Clear all Terminal TermWindow Viŝi ĉion +Solarized Light Terminal colors scheme Sunuma Lumo Search forward Terminal FindWindow Serĉi antaŭen diff --git a/data/catalogs/apps/terminal/es.catkeys b/data/catalogs/apps/terminal/es.catkeys index 11c7567ead..5b461a5842 100644 --- a/data/catalogs/apps/terminal/es.catkeys +++ b/data/catalogs/apps/terminal/es.catkeys @@ -1,8 +1,10 @@ -1 spanish; castilian x-vnd.Haiku-Terminal 3117643489 +1 spanish; castilian x-vnd.Haiku-Terminal 4032760800 +ANSI cyan color Terminal AppearancePrefView Color ANSI cian Close other tabs Terminal TermWindow Cerrar otras pestañas Insert path Terminal TermView Insertar la ruta de acceso Terminal couldn't start the shell. Sorry. Terminal TermApp Lo sentimos, pero el Terminal no pudo iniciar la shell. Text encoding Terminal TermWindow Codificación de texto +ANSI blue color Terminal AppearancePrefView Color ANSI azul OK Terminal SetTitleWindow Aceptar Edit Terminal TermWindow Editar Select all Terminal TermWindow Seleccionar todo @@ -10,39 +12,49 @@ Confirm exit if active programs exist Terminal AppearancePrefView Confirmar la \t%d\t-\tThe current working directory of the active process in the\n\t\t\tcurrent tab. Optionally the maximum number of path components\n\t\t\tcan be specified. E.g. '%2d' for at most two components.\n\t%T\t-\tThe Terminal application name for the current locale.\n\t%e\t-\tThe encoding of the current tab. Not shown for UTF-8.\n\t%i\t-\tThe index of the window.\n\t%p\t-\tThe name of the active process in the current tab.\n\t%t\t-\tThe title of the current tab. Terminal ToolTips \t%d\t-\tEl directorio de trabajo del proceso activo en la pestaña actual.\n\t\t\tOpcionalmente puede especificarse el número máximo de\n\t\t\tcomponentes de ruta. P.ej. '%2d' para al menos dos componentes.\n\t%T\t-\tEl nombre en Terminal de la aplicación para el local actual.\n\t%e\t-\tLa codificación de la pestaña actual. No mostrado para UTF-8.\n\t%i\t-\tEl índice de la ventana.\n\t%p\t-\tEl nombre del proceso activo en la pestaña actual.\n\t%t\t-\tEl nombre de la pestaña actual. Solarized Dark Terminal colors scheme Oscuridad solarizada Copy Terminal TermWindow Copiar +ANSI bright green color Terminal AppearancePrefView Color ANSI verde claro -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help muestra este mensaje de ayuda\n -t, --title establece el título de la ventana\n -f, --fullscreen comienza en pantalla completa\n -w, --working-directory establece el directorio de trabajo inicial +ANSI white color Terminal AppearancePrefView Color ANSI blanco Retro Terminal colors scheme Retro Edit tab title… Terminal TermWindow Cambiar el título de la pestaña -Print Terminal TermWindow Imprimir Settings Terminal TermWindow Ajustes +Print Terminal TermWindow Imprimir %app% settings Terminal PrefWindow window title Configuración de %app% +ANSI black color Terminal AppearancePrefView Color ANSI negro Use default Terminal SetTitleWindow Usar predeterminado Close tab Terminal TermWindow Cerrar pestaña Selected background Terminal AppearancePrefView Fondo seleccionado Error! Terminal getString ¡Error! Set tab title Terminal TermWindow Fijar el título de la ventana Appearance Terminal PrefWindow Apariencia +ANSI bright yellow color Terminal AppearancePrefView Color ANSI amarillo claro Encoding: Terminal AppearancePrefView Personalizado Create link here Terminal TermView Crear enlace aquí Custom Terminal AppearancePrefView Window size Personalizada Selected text Terminal AppearancePrefView Seleccionar texto Change directory Terminal TermView Cambiar directorio +ANSI magenta color Terminal AppearancePrefView Color ANSI magenta Page setup… Terminal TermWindow Configuración de la página... Slate Terminal colors scheme Pizarra Defaults Terminal PrefWindow Predeterminado Cancel Terminal TermView Cancelar Revert Terminal PrefWindow Revertir +Relaxed Terminal colors scheme Relajado +ANSI bright magenta color Terminal AppearancePrefView Color ANSI magenta claro Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminal -Use selection Terminal FindWindow Utilizar selección +ANSI bright cyan color Terminal AppearancePrefView Color ANSI cian claro Find next Terminal TermWindow Buscar siguiente +Use selection Terminal FindWindow Utilizar selección Copy link location Terminal TermView Copiar ubicación del enlace Window title: Terminal AppearancePrefView Titulo de la ventana: New tab Terminal TermWindow Nueva pestaña +ANSI bright blue color Terminal AppearancePrefView Color ANSI azul claro Allow bold text Terminal AppearancePrefView Permitir texto en negrita Window title… Terminal TermWindow Título de la ventana... Blue Terminal colors scheme Azul Cannot execute \"%command\":\n\t%error Terminal Shell No se pudo ejecutar \"%command\":\n\t%error Open path Terminal TermView Abrir ruta +ANSI yellow color Terminal AppearancePrefView Color ANSI amarillo Terminal System name Terminal Font size Terminal TermWindow Tamaño de tipografía Custom Terminal colors scheme Personalizada @@ -53,16 +65,17 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Opción no reconocida \ Tab title: Terminal AppearancePrefView Título de la pestaña: Text not found. Terminal TermWindow Texto no encontrado. Find failed Terminal TermWindow Busqueda fallida -Match word Terminal FindWindow Solo palabras completas Color scheme: Terminal AppearancePrefView Esquema de colores: +Match word Terminal FindWindow Solo palabras completas New Terminal Terminal TermWindow Terminal nuevo Quit Terminal TermWindow Salir -Match case Terminal FindWindow Coincidir mayúsculas y minúsculas Find previous Terminal TermWindow Buscar anterior +Match case Terminal FindWindow Coincidir mayúsculas y minúsculas The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView El patrón especificando los títulos de las ventanas. Los siguientes marcadores de posición\npueden usarse: Close Terminal TermWindow Cerrar Save to file… Terminal PrefWindow Guardar a fichero... Background Terminal AppearancePrefView Fondo +ANSI green color Terminal AppearancePrefView Color ANSI verde Copy path Terminal TermView Copiar ruta Window size Terminal TermWindow Tamaño de la ventana Copy absolute path Terminal TermView Copiar ruta absoluta @@ -80,13 +93,15 @@ Window size: Terminal AppearancePrefView Tamaño de la ventana: Switch Terminals Terminal TermWindow Intercambiar terminales Decrease Terminal TermWindow Disminuir Settings… Terminal TermWindow Ajustes... -Cancel Terminal SetTitleWindow Cancelar +ANSI bright white color Terminal AppearancePrefView Color ANSI blanco claro Blinking cursor Terminal AppearancePrefView Cursor parpadeante +Cancel Terminal SetTitleWindow Cancelar The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow El patrón especifica el título de la ventana. Los siguientes marcadores de posición\ncpueden ser usados:\n -Use text: Terminal FindWindow Utilizar texto: Close active tab Terminal TermWindow Cerrar la pestaña activa +Use text: Terminal FindWindow Utilizar texto: Save as default Terminal TermWindow Definir como predeterminado Nothing is selected. Terminal TermWindow No se ha seleccionado nada. +ANSI red color Terminal AppearancePrefView Color ANSI rojo Use left Option as Meta key Terminal AppearancePrefView Usar la Opción izquierda como tecla Meta Find Terminal FindWindow Encontrar The pattern specifying the current tab title. The following placeholders\ncan be used:\n Terminal TermWindow El patrón especifica el título de la pestaña actual. Los siguientes marcadores de posición\nse pueden utilizar:\n @@ -94,7 +109,9 @@ Professional Terminal colors scheme Profesional Font: Terminal AppearancePrefView Tipo de letra: Paste Terminal TermWindow Pegar The pattern specifying the window titles. The following placeholders\ncan be used: Terminal AppearancePrefView El patrón especificando los títulos de las ventanas. Los siguientes marcadores de posición\nse pueden utilizar: +ANSI bright black color Terminal AppearancePrefView Color ANSI negro claro Copy here Terminal TermView Copiar aquí +ANSI bright red color Terminal AppearancePrefView Color ANSI rojo claro Use default shell Terminal Shell Usar intérprete predeterminado Color: Terminal AppearancePrefView Color: Open link Terminal TermView Abrir enlace @@ -112,6 +129,6 @@ Increase Terminal TermWindow Aumentar OK Terminal TermWindow Aceptar Close window Terminal TermWindow Cerrar ventana Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui y Takashi Murai.\n\nModo de uso: %s [OPTION] [SHELL]\n -Solarized Light Terminal colors scheme Luz solarizada Clear all Terminal TermWindow Limpiar todo +Solarized Light Terminal colors scheme Luz solarizada Search forward Terminal FindWindow Buscar hacia delante diff --git a/data/catalogs/apps/terminal/fi.catkeys b/data/catalogs/apps/terminal/fi.catkeys index 3214bdf818..1f90c4620a 100644 --- a/data/catalogs/apps/terminal/fi.catkeys +++ b/data/catalogs/apps/terminal/fi.catkeys @@ -1,8 +1,10 @@ -1 finnish x-vnd.Haiku-Terminal 3117643489 +1 finnish x-vnd.Haiku-Terminal 4032760800 +ANSI cyan color Terminal AppearancePrefView ANSI-sinivihreä väri Close other tabs Terminal TermWindow Sulje muut välilehdet Insert path Terminal TermView Lisää polku Terminal couldn't start the shell. Sorry. Terminal TermApp Komentotulkin käynnistäminen Pääteikkunassa epäonnistui. Text encoding Terminal TermWindow Tekstikoodaus +ANSI blue color Terminal AppearancePrefView ANSI-siniväri OK Terminal SetTitleWindow Valmis Edit Terminal TermWindow Muokkaa Select all Terminal TermWindow Valitse kaikki @@ -10,39 +12,49 @@ Confirm exit if active programs exist Terminal AppearancePrefView Vahvista pois \t%d\t-\tThe current working directory of the active process in the\n\t\t\tcurrent tab. Optionally the maximum number of path components\n\t\t\tcan be specified. E.g. '%2d' for at most two components.\n\t%T\t-\tThe Terminal application name for the current locale.\n\t%e\t-\tThe encoding of the current tab. Not shown for UTF-8.\n\t%i\t-\tThe index of the window.\n\t%p\t-\tThe name of the active process in the current tab.\n\t%t\t-\tThe title of the current tab. Terminal ToolTips \t%d\t-\tAktiivin prosessin nykyinen työhakemisto nykyisessä\n\t\t\tvälilehdessä. Valinnaisesti määriteltävien polkukomponenttien\n\t\t\tenimmäismäärä. Esim.: '%2d' enintään kahdelle komponentille.\n\t%T\t-\tPääteikkunasovelluksen nimi nykyisessä paikallisasetuksessa.\n\t%e\t-\tNykyisen välilehden koodaus. Ei näytetä UTF-8-koodaukselle.\n\t%i\t-\tIkkunahakemisto.\n\t%p\t-\tAktiivin prosessin nimi nykyisessä välilehdessä.\n\t%t\t-\tNykyisen välilehden otsikko. Solarized Dark Terminal colors scheme Käänteisen tumma Copy Terminal TermWindow Kopioi +ANSI bright green color Terminal AppearancePrefView ANSI-vaaleanvihreä väri -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help tulosta tämä ohje\n -t, --title asta ikkunan otsikko\n -f, --fullscreen käynnistä kokonäyttö\n -w, --working-directory aseta alustaa työhakemisto +ANSI white color Terminal AppearancePrefView ANSI-valkoinen väri Retro Terminal colors scheme Retro Edit tab title… Terminal TermWindow Muokkaa välilehtiotsikkoa... -Print Terminal TermWindow Tulosta Settings Terminal TermWindow Asetukset +Print Terminal TermWindow Tulosta %app% settings Terminal PrefWindow window title %app% -asetukset +ANSI black color Terminal AppearancePrefView ANSIä-musta väri Use default Terminal SetTitleWindow Käytä oletusta Close tab Terminal TermWindow Sulje välilehti Selected background Terminal AppearancePrefView Valitse tausta Error! Terminal getString Virhe! Set tab title Terminal TermWindow Aseta välilehtiotsikko Appearance Terminal PrefWindow Ulkoasu +ANSI bright yellow color Terminal AppearancePrefView ANSI-vaaleankeltainen väri Encoding: Terminal AppearancePrefView Koodaus: Create link here Terminal TermView Luo linkki tänne Custom Terminal AppearancePrefView Window size Räätälöity Selected text Terminal AppearancePrefView Valittu teksti Change directory Terminal TermView Vaihda hakemistoa +ANSI magenta color Terminal AppearancePrefView ANSI-purppura väri Page setup… Terminal TermWindow Sivuasetus... Slate Terminal colors scheme Laatta Defaults Terminal PrefWindow Oletukset Cancel Terminal TermView Peru Revert Terminal PrefWindow Palauta +Relaxed Terminal colors scheme Rentoutunut +ANSI bright magenta color Terminal AppearancePrefView ANSI-vaaleanpurppura väri Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Pääteikkuna -Use selection Terminal FindWindow Käyttövalinta +ANSI bright cyan color Terminal AppearancePrefView ANSI-vaaleansinivihreä väri Find next Terminal TermWindow Löydä seuraava +Use selection Terminal FindWindow Käyttövalinta Copy link location Terminal TermView Kopioi linkkisijainti Window title: Terminal AppearancePrefView Ikkunaotsikko: New tab Terminal TermWindow Uusi välilehti +ANSI bright blue color Terminal AppearancePrefView ANSI-vaaleansininen väri Allow bold text Terminal AppearancePrefView Salli lihavoitu teksti Window title… Terminal TermWindow Ikkunaotsikko... Blue Terminal colors scheme Sininen Cannot execute \"%command\":\n\t%error Terminal Shell Komennon ”%command” suorittaminen epäonnistui:\n\t%error Open path Terminal TermView Avaa sijainti +ANSI yellow color Terminal AppearancePrefView ANSI-keltainen väri Terminal System name Pääteikkuna Font size Terminal TermWindow Kirjasinkoko Custom Terminal colors scheme Räätälöity @@ -53,16 +65,17 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Tunnistamaton valitsin Tab title: Terminal AppearancePrefView Välilehtiotsikko: Text not found. Terminal TermWindow Tekstiä ei löydy. Find failed Terminal TermWindow Etsintä epäonnistui -Match word Terminal FindWindow Täsmäävä sana Color scheme: Terminal AppearancePrefView Väriteema: +Match word Terminal FindWindow Täsmäävä sana New Terminal Terminal TermWindow Uusi Pääteikkuna Quit Terminal TermWindow Poistu -Match case Terminal FindWindow Kirjainkoosta riippuva Find previous Terminal TermWindow Löydä edellinen +Match case Terminal FindWindow Kirjainkoosta riippuva The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Välilehtiotsikoiden määritysmalli. Seuraavia korvaajia\nvoidaan käyttää: Close Terminal TermWindow Sulje Save to file… Terminal PrefWindow Tallenna tiedostoon… Background Terminal AppearancePrefView Tausta +ANSI green color Terminal AppearancePrefView ANSI-vihreä väri Copy path Terminal TermView Kopioi polku Window size Terminal TermWindow Ikkunakoko Copy absolute path Terminal TermView Kopioi absoluuttinen polku @@ -80,13 +93,15 @@ Window size: Terminal AppearancePrefView Ikkunakoko: Switch Terminals Terminal TermWindow Vaihda pääteikkunoita Decrease Terminal TermWindow Vähennä Settings… Terminal TermWindow Asetukset... -Cancel Terminal SetTitleWindow Peru +ANSI bright white color Terminal AppearancePrefView ANSI-vaaleanvalkoinen väri Blinking cursor Terminal AppearancePrefView Vilkkuva kohdistin +Cancel Terminal SetTitleWindow Peru The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Ikkunaotsikon määrittävä malli. Seuraavia paikanpitäjiä\nvoidaan käyttää:\n -Use text: Terminal FindWindow Käytä tekstiä: Close active tab Terminal TermWindow Sulje käytössä oleva välilehti +Use text: Terminal FindWindow Käytä tekstiä: Save as default Terminal TermWindow Tallenna oletuksena Nothing is selected. Terminal TermWindow Mitään ei ole valittu. +ANSI red color Terminal AppearancePrefView ANSI-punainen väri Use left Option as Meta key Terminal AppearancePrefView Käytä vasenta valintapainiketta Meta-avaimena Find Terminal FindWindow Etsi The pattern specifying the current tab title. The following placeholders\ncan be used:\n Terminal TermWindow Nykyisen välilehtiotsikon määrittävä malli. Seuraavia paikanpitäjiä\nvoidaan käyttää:\n @@ -94,7 +109,9 @@ Professional Terminal colors scheme Ammattilaistaso Font: Terminal AppearancePrefView Kirjasintyyppi: Paste Terminal TermWindow Liitä The pattern specifying the window titles. The following placeholders\ncan be used: Terminal AppearancePrefView Ikkunaotsikoiden määritysmalli. Seuraavia korvaajia\nvoidaan käyttää: +ANSI bright black color Terminal AppearancePrefView ANSI-vaaleanmusta väri Copy here Terminal TermView Kopioi tänne +ANSI bright red color Terminal AppearancePrefView ANSI-vaaleanpunainen väri Use default shell Terminal Shell Käytä oletuskomentotulkkia Color: Terminal AppearancePrefView Väri: Open link Terminal TermView Avaa linkki @@ -112,6 +129,6 @@ Increase Terminal TermWindow Kasvata OK Terminal TermWindow Valmis Close window Terminal TermWindow Sulje ikkuna Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Haiku-pääteikkuna\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui ja Takashi Murai.\n\nKäyttö: %s [VALITSIN] [KUORI]\n -Solarized Light Terminal colors scheme Käänteisen vaalea Clear all Terminal TermWindow Tyhjennä kaikki +Solarized Light Terminal colors scheme Käänteisen vaalea Search forward Terminal FindWindow Etsintä eteenpäin diff --git a/data/catalogs/apps/terminal/fr.catkeys b/data/catalogs/apps/terminal/fr.catkeys index c9f004eca1..eee7d84f16 100644 --- a/data/catalogs/apps/terminal/fr.catkeys +++ b/data/catalogs/apps/terminal/fr.catkeys @@ -1,8 +1,10 @@ -1 french x-vnd.Haiku-Terminal 3117643489 +1 french x-vnd.Haiku-Terminal 610710493 +ANSI cyan color Terminal AppearancePrefView Couleur cyan ANSI Close other tabs Terminal TermWindow Fermer les autres onglets Insert path Terminal TermView Insérer un chemin de recherche Terminal couldn't start the shell. Sorry. Terminal TermApp Terminal ne peut pas démarrer l’interpréteur de commande. Text encoding Terminal TermWindow Encodage texte +ANSI blue color Terminal AppearancePrefView Couleur bleu ANSI OK Terminal SetTitleWindow OK Edit Terminal TermWindow Éditer Select all Terminal TermWindow Sélectionner tout @@ -10,11 +12,12 @@ Confirm exit if active programs exist Terminal AppearancePrefView Demander une \t%d\t-\tThe current working directory of the active process in the\n\t\t\tcurrent tab. Optionally the maximum number of path components\n\t\t\tcan be specified. E.g. '%2d' for at most two components.\n\t%T\t-\tThe Terminal application name for the current locale.\n\t%e\t-\tThe encoding of the current tab. Not shown for UTF-8.\n\t%i\t-\tThe index of the window.\n\t%p\t-\tThe name of the active process in the current tab.\n\t%t\t-\tThe title of the current tab. Terminal ToolTips \t%d\t-\tLe répertoire de travail courant du processus actif dans\n\t\t\tl’onglet courant. En option, le nombre maximum d’éléments\n\t\t\tdu chemin peut être spécifié. Par exemple « %2d » pour au plus\n\t\t\tdeux éléments.\n\t%T\t-\tLe nom de l’application Terminal pour la langue active.\n\t%e\t-\tLe codage de l’onglet courant. Non affiché pour UTF-8.\n\t%i\t-\tL’index de la fenêtre.\n\t%p\t-\tLe nom du processus actif dans l’onglet courant.\n\t%t\t-\tLe titre de l’onglet courant. Solarized Dark Terminal colors scheme Ombragé Copy Terminal TermWindow Copier +ANSI bright green color Terminal AppearancePrefView Couleur vert clair ANSI -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help affiche cette aide\n -t, --title défini le titre de la fenêtre\n -f, --fullscreen démarre en plein écran\n -w, --working-directory défini le répertoire de travail initial Retro Terminal colors scheme Rétro Edit tab title… Terminal TermWindow Éditer le titre de l’onglet… -Print Terminal TermWindow Imprimer Settings Terminal TermWindow Réglages +Print Terminal TermWindow Imprimer %app% settings Terminal PrefWindow window title Réglages du %app% Use default Terminal SetTitleWindow Par défaut Close tab Terminal TermWindow Fermer l’onglet @@ -22,27 +25,33 @@ Selected background Terminal AppearancePrefView Fond sélectionné Error! Terminal getString Erreur ! Set tab title Terminal TermWindow Changer le titre de l’onglet Appearance Terminal PrefWindow Apparence +ANSI bright yellow color Terminal AppearancePrefView Couleur jaune vif ANSI Encoding: Terminal AppearancePrefView Encodage : Create link here Terminal TermView Créer un raccourci ici Custom Terminal AppearancePrefView Window size Personnalisé Selected text Terminal AppearancePrefView Texte sélectionné Change directory Terminal TermView Changer de répertoire +ANSI magenta color Terminal AppearancePrefView Couleur magenta ANSI Page setup… Terminal TermWindow Mise en page… Slate Terminal colors scheme Ardoise Defaults Terminal PrefWindow Paramètres par défaut Cancel Terminal TermView Annuler Revert Terminal PrefWindow Rétablir +ANSI bright magenta color Terminal AppearancePrefView Couleur magenta clair ANSI Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminal -Use selection Terminal FindWindow Utiliser la sélection +ANSI bright cyan color Terminal AppearancePrefView Couleur cyan clair ANSI Find next Terminal TermWindow Rechercher le suivant +Use selection Terminal FindWindow Utiliser la sélection Copy link location Terminal TermView Copier l’emplacement du lien Window title: Terminal AppearancePrefView Titre de la fenêtre : New tab Terminal TermWindow Nouvel onglet +ANSI bright blue color Terminal AppearancePrefView Couleur bleu clair ANSI Allow bold text Terminal AppearancePrefView Autoriser le texte en gras Window title… Terminal TermWindow Titre de la fenêtre… Blue Terminal colors scheme Bleu Cannot execute \"%command\":\n\t%error Terminal Shell Impossible d’exécuter « %command » :\n\t%error Open path Terminal TermView Ouvrir l’emplacement +ANSI yellow color Terminal AppearancePrefView Couleur jaune ANSI Terminal System name Terminal Font size Terminal TermWindow Taille de la police Custom Terminal colors scheme Personnalisé @@ -53,16 +62,17 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Option « %s » non r Tab title: Terminal AppearancePrefView Titre de l’onglet : Text not found. Terminal TermWindow Texte non trouvé. Find failed Terminal TermWindow Échec de la recherche -Match word Terminal FindWindow Rechercher le mot Color scheme: Terminal AppearancePrefView Profil de couleurs : +Match word Terminal FindWindow Rechercher le mot New Terminal Terminal TermWindow Nouveau Terminal Quit Terminal TermWindow Quitter -Match case Terminal FindWindow Sensible à la casse Find previous Terminal TermWindow Rechercher le précédent +Match case Terminal FindWindow Sensible à la casse The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Le motif servant à composer le titre des onglets. Vous\npouvez utiliser les variables suivantes : Close Terminal TermWindow Fermer Save to file… Terminal PrefWindow Enregistrer sous… Background Terminal AppearancePrefView Fond +ANSI green color Terminal AppearancePrefView Couleur vert ANSI Copy path Terminal TermView Copier le chemin Window size Terminal TermWindow Taille de la fenêtre Copy absolute path Terminal TermView Copier le chemin absolu @@ -80,13 +90,14 @@ Window size: Terminal AppearancePrefView Taille de la fenêtre : Switch Terminals Terminal TermWindow Inverser les Terminaux Decrease Terminal TermWindow Réduire Settings… Terminal TermWindow Réglages… -Cancel Terminal SetTitleWindow Annuler Blinking cursor Terminal AppearancePrefView Curseur clignotant +Cancel Terminal SetTitleWindow Annuler The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Le modèle utilisé pour composer le titre des fenêtres peut\ncontenir les éléments suivants :\n -Use text: Terminal FindWindow Utiliser le texte : Close active tab Terminal TermWindow Fermer l’onglet actif +Use text: Terminal FindWindow Utiliser le texte : Save as default Terminal TermWindow Enregistrer comme valeur par défaut Nothing is selected. Terminal TermWindow Rien n’est sélectionné. +ANSI red color Terminal AppearancePrefView Couleur rouge ANSI Use left Option as Meta key Terminal AppearancePrefView Utiliser la touche Option gauche comme touche Meta Find Terminal FindWindow Rechercher The pattern specifying the current tab title. The following placeholders\ncan be used:\n Terminal TermWindow Le modèle utilisé pour composer le titre de l’onglet actif peut\ncontenir les éléments suivants :\n @@ -95,6 +106,7 @@ Font: Terminal AppearancePrefView Police : Paste Terminal TermWindow Coller The pattern specifying the window titles. The following placeholders\ncan be used: Terminal AppearancePrefView Le motif servant à composer le titre de la fenêtre. Vous pouvez\nutiliser les variables suivantes : Copy here Terminal TermView Copier ici +ANSI bright red color Terminal AppearancePrefView Couleur rouge clair ANSI Use default shell Terminal Shell Utiliser l’interpréteur de commande par défaut Color: Terminal AppearancePrefView Couleur : Open link Terminal TermView Ouvrir le lien @@ -112,6 +124,6 @@ Increase Terminal TermWindow Augmenter OK Terminal TermWindow OK Close window Terminal TermWindow Fermer la fenêtre Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright ©1999 Kazuho Okui et Takashi Murai.\n\nUtilisation : %s [OPTION] [SHELL]\n -Solarized Light Terminal colors scheme Ensoleillé Clear all Terminal TermWindow Effacer tout +Solarized Light Terminal colors scheme Ensoleillé Search forward Terminal FindWindow Rechercher en avant diff --git a/data/catalogs/apps/terminal/fur.catkeys b/data/catalogs/apps/terminal/fur.catkeys index f2fb15e594..f5c042bc5d 100644 --- a/data/catalogs/apps/terminal/fur.catkeys +++ b/data/catalogs/apps/terminal/fur.catkeys @@ -13,8 +13,8 @@ Copy Terminal TermWindow Copie -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help stampe chest jutori\n -t, --title stabilìs il titul dal barcon\n -f, --fullscreen invie a plen visôr\n -w, --working-directory stabilìs la cartele di lavôr iniziâl Retro Terminal colors scheme Retro Edit tab title… Terminal TermWindow Modifiche titul schede… -Print Terminal TermWindow Stampe Settings Terminal TermWindow Impostazions +Print Terminal TermWindow Stampe %app% settings Terminal PrefWindow window title Impostazions %app% Use default Terminal SetTitleWindow Dopre predefinît Close tab Terminal TermWindow Siere schede @@ -33,8 +33,8 @@ Defaults Terminal PrefWindow Predefinîts Cancel Terminal TermView Anule Revert Terminal PrefWindow Torne indaûr Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminâl -Use selection Terminal FindWindow Dopre selezion Find next Terminal TermWindow Cjate prossim +Use selection Terminal FindWindow Dopre selezion Copy link location Terminal TermView Copie posizion colegament Window title: Terminal AppearancePrefView Titul dal barcon: New tab Terminal TermWindow Gnove schede @@ -53,12 +53,12 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Opzion \"%s\" no ricogn Tab title: Terminal AppearancePrefView Titul schede: Text not found. Terminal TermWindow Test no cjatât. Find failed Terminal TermWindow No si è rivâts a cjatâ -Match word Terminal FindWindow Peraule interie Color scheme: Terminal AppearancePrefView Scheme di colôr: +Match word Terminal FindWindow Peraule interie New Terminal Terminal TermWindow Gnûf terminâl Quit Terminal TermWindow Jes -Match case Terminal FindWindow Coincît maiusculis/minusculis Find previous Terminal TermWindow Cjate precedent +Match case Terminal FindWindow Coincît maiusculis/minusculis The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Il scheme che al specifiche i titui des schedis. A puedin jessi doprâts\nchescj segnepuest: Close Terminal TermWindow Siere Save to file… Terminal PrefWindow Salve su file… @@ -80,11 +80,11 @@ Window size: Terminal AppearancePrefView Dimension barcon: Switch Terminals Terminal TermWindow Scambie terminâi Decrease Terminal TermWindow Diminuìs Settings… Terminal TermWindow Impostazions… -Cancel Terminal SetTitleWindow Cancele Blinking cursor Terminal AppearancePrefView Cursôr che al cimie +Cancel Terminal SetTitleWindow Cancele The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Il scheme che al specifiche il titul dal barcon. A puedin jessi doprâts\nchescj segnepuest:\n -Use text: Terminal FindWindow Dopre test: Close active tab Terminal TermWindow Siere schede ative +Use text: Terminal FindWindow Dopre test: Save as default Terminal TermWindow Salve come predefinît Nothing is selected. Terminal TermWindow Nol è selezionât nie. Use left Option as Meta key Terminal AppearancePrefView Dopre Opzion a çampe come tast Meta @@ -112,6 +112,6 @@ Increase Terminal TermWindow Aumente OK Terminal TermWindow Va ben Close window Terminal TermWindow Siere barcon Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Terminâl di Haiku\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui e Takashi Murai.\n\nÛs: %s [OPZION] [SHELL]\n -Solarized Light Terminal colors scheme Solarizât (Clâr) Clear all Terminal TermWindow Nete dut +Solarized Light Terminal colors scheme Solarizât (Clâr) Search forward Terminal FindWindow Cîr indenant diff --git a/data/catalogs/apps/terminal/hr.catkeys b/data/catalogs/apps/terminal/hr.catkeys index 4b5a0d9789..2e9acffffe 100644 --- a/data/catalogs/apps/terminal/hr.catkeys +++ b/data/catalogs/apps/terminal/hr.catkeys @@ -9,8 +9,8 @@ Select all Terminal TermWindow Odaberi sve Confirm exit if active programs exist Terminal AppearancePrefView Potvrdi izlaz ako postoji aktivni program Copy Terminal TermWindow kopiraj Edit tab title… Terminal TermWindow Uredi naslov kartice... -Print Terminal TermWindow Ispis Settings Terminal TermWindow Postavke +Print Terminal TermWindow Ispis %app% settings Terminal PrefWindow window title %app% postavke Use default Terminal SetTitleWindow Koristi zadano Close tab Terminal TermWindow Zatvori karticu @@ -27,8 +27,8 @@ Defaults Terminal PrefWindow Zadano Cancel Terminal TermView Odustani Revert Terminal PrefWindow Obrnuto Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminal -Use selection Terminal FindWindow koristi izbor Find next Terminal TermWindow Nađi tekst +Use selection Terminal FindWindow koristi izbor Copy link location Terminal TermView Kopiraj lokaciju poveznice Window title: Terminal AppearancePrefView Naslov prozora: New tab Terminal TermWindow Nova kartica @@ -69,11 +69,11 @@ Window size: Terminal AppearancePrefView Veličina prozora Switch Terminals Terminal TermWindow Zamjeni terminale Decrease Terminal TermWindow Smanji Settings… Terminal TermWindow Postavke... -Cancel Terminal SetTitleWindow Odustani Blinking cursor Terminal AppearancePrefView Trepćući pokazivač +Cancel Terminal SetTitleWindow Odustani The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Uzorak koji specificira naslov prozora. Sljedeće rezarvirano mjesto\n se može koristiti:\n -Use text: Terminal FindWindow Koristi tekst: Close active tab Terminal TermWindow Zatvori aktivnu karticu +Use text: Terminal FindWindow Koristi tekst: Save as default Terminal TermWindow Spremi kao zadano Nothing is selected. Terminal TermWindow Ništa nije izabrano Find Terminal FindWindow Nađi diff --git a/data/catalogs/apps/terminal/hu.catkeys b/data/catalogs/apps/terminal/hu.catkeys index 90c71f7307..ebfffec03d 100644 --- a/data/catalogs/apps/terminal/hu.catkeys +++ b/data/catalogs/apps/terminal/hu.catkeys @@ -13,8 +13,8 @@ Copy Terminal TermWindow Másolás -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help a súgó kiírása\n-t, --title ablak címének megadása\n-f, --fullscreen indítás teljesképernyős módban\n-w, --working-directory kezdő mappa megadása Retro Terminal colors scheme Retró Edit tab title… Terminal TermWindow Lap címének szerkesztése… -Print Terminal TermWindow Nyomtatás Settings Terminal TermWindow Beállítások +Print Terminal TermWindow Nyomtatás %app% settings Terminal PrefWindow window title %app% beállítások Use default Terminal SetTitleWindow Alapérték használata Close tab Terminal TermWindow Lap bezárása @@ -33,8 +33,8 @@ Defaults Terminal PrefWindow Alapértékek Cancel Terminal TermView Mégse Revert Terminal PrefWindow Visszavonás Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminál -Use selection Terminal FindWindow Kijelölés használata Find next Terminal TermWindow Következő keresése +Use selection Terminal FindWindow Kijelölés használata Copy link location Terminal TermView Hivatkozás másolása Window title: Terminal AppearancePrefView Ablak címe: New tab Terminal TermWindow Új lap @@ -53,12 +53,12 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Ismeretlen beállítás Tab title: Terminal AppearancePrefView Lap címe: Text not found. Terminal TermWindow Nem található a szöveg. Find failed Terminal TermWindow Sikertelen keresés -Match word Terminal FindWindow Szóegyeszés Color scheme: Terminal AppearancePrefView Színösszeállítás: +Match word Terminal FindWindow Szóegyeszés New Terminal Terminal TermWindow Új terminál Quit Terminal TermWindow Kilépés -Match case Terminal FindWindow Betűérzékeny Find previous Terminal TermWindow Előző keresése +Match case Terminal FindWindow Betűérzékeny The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Minta alapján megadható a fül cím. Az alábbi behelyettesítések \nhasználhatóak: Close Terminal TermWindow Bezárás Save to file… Terminal PrefWindow Mentés fájlba… @@ -80,11 +80,11 @@ Window size: Terminal AppearancePrefView Ablak mérete: Switch Terminals Terminal TermWindow Terminálok közti váltás Decrease Terminal TermWindow Csökkentés Settings… Terminal TermWindow Beállítások… -Cancel Terminal SetTitleWindow Mégse Blinking cursor Terminal AppearancePrefView Villogó kurzor +Cancel Terminal SetTitleWindow Mégse The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Az ablak címét meghatározó minta. A következő kódok\nhasználhatóak:\n -Use text: Terminal FindWindow Szöveg használata: Close active tab Terminal TermWindow Aktív lap bezárása +Use text: Terminal FindWindow Szöveg használata: Save as default Terminal TermWindow Beállítás alapértelmezettként Nothing is selected. Terminal TermWindow Nincs semmi kijelölve. Use left Option as Meta key Terminal AppearancePrefView Bal Opció használata Meta-billentyűnek @@ -112,6 +112,6 @@ Increase Terminal TermWindow Növelés OK Terminal TermWindow Rendben Close window Terminal TermWindow Ablak bezárása Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Haiku Terminál\n© 2001-2019 Haiku, Inc.\n© 1999 Kazuho Okui és Takashi Murai.\n\nHasználat: %s [OPCIÓ] [RENDSZERHÉJ]\n -Solarized Light Terminal colors scheme Égetett fény Clear all Terminal TermWindow Összes törlése +Solarized Light Terminal colors scheme Égetett fény Search forward Terminal FindWindow Keresés előre diff --git a/data/catalogs/apps/terminal/id.catkeys b/data/catalogs/apps/terminal/id.catkeys index ad696db205..379050c793 100644 --- a/data/catalogs/apps/terminal/id.catkeys +++ b/data/catalogs/apps/terminal/id.catkeys @@ -12,8 +12,8 @@ Solarized Dark Terminal colors scheme Gelap terpartisi Copy Terminal TermWindow Salin Retro Terminal colors scheme Retro Edit tab title… Terminal TermWindow Edit judul tab ... -Print Terminal TermWindow Cetak Settings Terminal TermWindow Pengaturan +Print Terminal TermWindow Cetak %app% settings Terminal PrefWindow window title %app% pengaturan Use default Terminal SetTitleWindow Gunakan standar Close tab Terminal TermWindow Tutup tab @@ -32,8 +32,8 @@ Defaults Terminal PrefWindow Bawaan Cancel Terminal TermView Batalkan Revert Terminal PrefWindow Pulih Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminal -Use selection Terminal FindWindow Gunakan seleksi Find next Terminal TermWindow Cari selanjutnya +Use selection Terminal FindWindow Gunakan seleksi Copy link location Terminal TermView Salin lokasi tautan Window title: Terminal AppearancePrefView Judul jendela: New tab Terminal TermWindow Tab baru @@ -52,12 +52,12 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Opsi tak-dikenal \"%s\" Tab title: Terminal AppearancePrefView Judul tab: Text not found. Terminal TermWindow Teks tak ditemukan Find failed Terminal TermWindow Pencarian gagal -Match word Terminal FindWindow Kata cocok Color scheme: Terminal AppearancePrefView Skema warna: +Match word Terminal FindWindow Kata cocok New Terminal Terminal TermWindow Terminal Baru Quit Terminal TermWindow Keluar -Match case Terminal FindWindow Sesuaikan besar kecil huruf Find previous Terminal TermWindow Cari sebelumnya +Match case Terminal FindWindow Sesuaikan besar kecil huruf The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Pola menentukan judul tab. Tempat penampung berikut\ndapat digunakan: Close Terminal TermWindow Tutup Save to file… Terminal PrefWindow Simpan ke file... @@ -79,11 +79,11 @@ Window size: Terminal AppearancePrefView Ukuran jendela: Switch Terminals Terminal TermWindow Beralih Terminal Decrease Terminal TermWindow Menurunkan Settings… Terminal TermWindow Pengaturan... -Cancel Terminal SetTitleWindow Batalkan Blinking cursor Terminal AppearancePrefView Kursor berkedip +Cancel Terminal SetTitleWindow Batalkan The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Pola menentukan judul jendela. Penampung berikut\ndapat digunakan:\n -Use text: Terminal FindWindow Gunakan teks: Close active tab Terminal TermWindow Tutup tab aktif +Use text: Terminal FindWindow Gunakan teks: Save as default Terminal TermWindow Simpan sebagai bawaan Nothing is selected. Terminal TermWindow Tidak ada yang dipilih Use left Option as Meta key Terminal AppearancePrefView Gunakan Opsi kiri sebagai kunci Meta @@ -111,6 +111,6 @@ Increase Terminal TermWindow Meningkat OK Terminal TermWindow OKE Close window Terminal TermWindow Tutup jendela Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Terminal Haiku\nHak Cipta 2001-2019 Haiku, Inc.\nHak Cipta(C) 1999 Kazuho Okui and Takashi Murai.\n\npenggunaan: %s [OPTION] [SHELL]\n -Solarized Light Terminal colors scheme Cahaya tersolarisasi Clear all Terminal TermWindow Bersihkan semua +Solarized Light Terminal colors scheme Cahaya tersolarisasi Search forward Terminal FindWindow Pencarian selanjutnya diff --git a/data/catalogs/apps/terminal/it.catkeys b/data/catalogs/apps/terminal/it.catkeys index aec0e37bed..6affd717b5 100644 --- a/data/catalogs/apps/terminal/it.catkeys +++ b/data/catalogs/apps/terminal/it.catkeys @@ -12,8 +12,8 @@ Solarized Dark Terminal colors scheme Solarizzato (Scuro) Copy Terminal TermWindow Copia Retro Terminal colors scheme Retro Edit tab title… Terminal TermWindow Modifica titolo pannello... -Print Terminal TermWindow Stampa Settings Terminal TermWindow Impostazioni +Print Terminal TermWindow Stampa %app% settings Terminal PrefWindow window title Impostazioni %app% Use default Terminal SetTitleWindow Usa predefinito Close tab Terminal TermWindow Chiudi pannello @@ -32,8 +32,8 @@ Defaults Terminal PrefWindow Predefiniti Cancel Terminal TermView Annulla Revert Terminal PrefWindow Ripristina Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminale -Use selection Terminal FindWindow Utilizza selezione Find next Terminal TermWindow Trova seguente +Use selection Terminal FindWindow Utilizza selezione Copy link location Terminal TermView Copia posizione collegamento Window title: Terminal AppearancePrefView Titolo finestra New tab Terminal TermWindow Nuovo pannello @@ -52,12 +52,12 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Opzione non riconosciut Tab title: Terminal AppearancePrefView Titolo pannello: Text not found. Terminal TermWindow Testo non trovato. Find failed Terminal TermWindow Ricerca fallita -Match word Terminal FindWindow Parola intera Color scheme: Terminal AppearancePrefView Schema di colore: +Match word Terminal FindWindow Parola intera New Terminal Terminal TermWindow Nuovo Terminale Quit Terminal TermWindow Esci -Match case Terminal FindWindow Sensibile alle maiuscole/minuscole Find previous Terminal TermWindow Trova precedente +Match case Terminal FindWindow Sensibile alle maiuscole/minuscole The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Lo schema utilizzato per specificare i titoli dei pennelli. I seguenti segnaposto\npossono essere utilizzati: Close Terminal TermWindow Chiudi Save to file… Terminal PrefWindow Salva su file… @@ -79,11 +79,11 @@ Window size: Terminal AppearancePrefView Dimensioni della finestra: Switch Terminals Terminal TermWindow Scambia Terminali Decrease Terminal TermWindow Riduci Settings… Terminal TermWindow Impostazioni… -Cancel Terminal SetTitleWindow Cancella Blinking cursor Terminal AppearancePrefView Cursore lampeggiante +Cancel Terminal SetTitleWindow Cancella The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Lo schema utilizzato per specificare il titolo della finestra. I seguenti segnaposto \npossono essere utilizzati:\n -Use text: Terminal FindWindow Utilizza testo: Close active tab Terminal TermWindow Chiudi pannello attivo +Use text: Terminal FindWindow Utilizza testo: Save as default Terminal TermWindow Salva come predefinito Nothing is selected. Terminal TermWindow Nulla è selezionato. Use left Option as Meta key Terminal AppearancePrefView Usa il tasto Opzione di sinistra come tasto Meta @@ -111,6 +111,6 @@ Increase Terminal TermWindow Aumenta OK Terminal TermWindow OK Close window Terminal TermWindow Chiudi finestra Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Terminale di HAiku\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUso: %s [OPTION] [SHELL]\n -Solarized Light Terminal colors scheme Solarizzato (Chiaro) Clear all Terminal TermWindow Ripulisci tutto +Solarized Light Terminal colors scheme Solarizzato (Chiaro) Search forward Terminal FindWindow Cerca avanti diff --git a/data/catalogs/apps/terminal/ja.catkeys b/data/catalogs/apps/terminal/ja.catkeys index d1c71c97aa..f370035284 100644 --- a/data/catalogs/apps/terminal/ja.catkeys +++ b/data/catalogs/apps/terminal/ja.catkeys @@ -1,8 +1,10 @@ -1 japanese x-vnd.Haiku-Terminal 3117643489 +1 japanese x-vnd.Haiku-Terminal 4032760800 +ANSI cyan color Terminal AppearancePrefView ANSI シアン Close other tabs Terminal TermWindow 他のタブを閉じる Insert path Terminal TermView パスの挿入 Terminal couldn't start the shell. Sorry. Terminal TermApp すみません、シェルを起動できません。 Text encoding Terminal TermWindow 文字コード +ANSI blue color Terminal AppearancePrefView ANSI ブルー OK Terminal SetTitleWindow OK Edit Terminal TermWindow 編集 Select all Terminal TermWindow すべて選択 @@ -10,39 +12,49 @@ Confirm exit if active programs exist Terminal AppearancePrefView 実行中の \t%d\t-\tThe current working directory of the active process in the\n\t\t\tcurrent tab. Optionally the maximum number of path components\n\t\t\tcan be specified. E.g. '%2d' for at most two components.\n\t%T\t-\tThe Terminal application name for the current locale.\n\t%e\t-\tThe encoding of the current tab. Not shown for UTF-8.\n\t%i\t-\tThe index of the window.\n\t%p\t-\tThe name of the active process in the current tab.\n\t%t\t-\tThe title of the current tab. Terminal ToolTips \t%d\t-\tタブで動作中のプロセスの作業中フォルダー\n\t\t\tオプションでパスの最大要素数を指定できます。\n\t\t\t例. '%2d' は最大 2 つの要素を示します。\n\t%T\t-\t現在のロケールでの Terminal アプリケーション名\n\t%e\t-\tタブの文字コード。UTF-8 の場合は非表示です。\n\t%i\t-\tウィンドウのインデックス\n\t%p\t-\tタブ内で実行中のプロセス名\n\t%t\t-\tタブのタイトル Solarized Dark Terminal colors scheme Solarized Dark Copy Terminal TermWindow コピー +ANSI bright green color Terminal AppearancePrefView ANSI ブライトグリーン -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory +ANSI white color Terminal AppearancePrefView ANSI ホワイト Retro Terminal colors scheme レトロ Edit tab title… Terminal TermWindow タブタイトルの編集... -Print Terminal TermWindow 印刷 Settings Terminal TermWindow 設定 +Print Terminal TermWindow 印刷 %app% settings Terminal PrefWindow window title %app% 設定 +ANSI black color Terminal AppearancePrefView ANSI ブラック Use default Terminal SetTitleWindow デフォルトを使用 Close tab Terminal TermWindow タブを閉じる Selected background Terminal AppearancePrefView 選択されたテキストの背景 Error! Terminal getString エラー! Set tab title Terminal TermWindow タブのタイトルを設定 Appearance Terminal PrefWindow 外観 +ANSI bright yellow color Terminal AppearancePrefView ANSI ブライトイエロー Encoding: Terminal AppearancePrefView 文字コード: Create link here Terminal TermView カレントディレクトリにリンク作成 Custom Terminal AppearancePrefView Window size カスタム Selected text Terminal AppearancePrefView 選択されたテキスト Change directory Terminal TermView ディレクトリの変更 +ANSI magenta color Terminal AppearancePrefView ANSI マゼンタ Page setup… Terminal TermWindow ページ設定... Slate Terminal colors scheme スレート Defaults Terminal PrefWindow デフォルト Cancel Terminal TermView 中止 Revert Terminal PrefWindow 戻す +Relaxed Terminal colors scheme Relaxed +ANSI bright magenta color Terminal AppearancePrefView ANSI ブライトマゼンタ Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions ターミナル -Use selection Terminal FindWindow 選択部で検索 +ANSI bright cyan color Terminal AppearancePrefView ANSI ブライトシアン Find next Terminal TermWindow 次を検索 +Use selection Terminal FindWindow 選択部で検索 Copy link location Terminal TermView リンクの場所をコピー Window title: Terminal AppearancePrefView ウィンドウタイトル: New tab Terminal TermWindow 新しいタブ +ANSI bright blue color Terminal AppearancePrefView ANSI ブライトブルー Allow bold text Terminal AppearancePrefView 太字を有効にする Window title… Terminal TermWindow ウィンドウタイトル... Blue Terminal colors scheme ブルー Cannot execute \"%command\":\n\t%error Terminal Shell \"%command\" を実行できません:\n\t%error Open path Terminal TermView パスを開く +ANSI yellow color Terminal AppearancePrefView ANSI イエロー Terminal System name ターミナル Font size Terminal TermWindow フォントサイズ Custom Terminal colors scheme カスタム @@ -53,16 +65,17 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Unrecognized option \"% Tab title: Terminal AppearancePrefView タブタイトル: Text not found. Terminal TermWindow 検索テキストが見つかりません。 Find failed Terminal TermWindow 見つかりませんでした -Match word Terminal FindWindow 一致する単語を検索 Color scheme: Terminal AppearancePrefView 配色: +Match word Terminal FindWindow 一致する単語を検索 New Terminal Terminal TermWindow 新しいターミナルを開く Quit Terminal TermWindow 終了 -Match case Terminal FindWindow 大文字小文字を区別 Find previous Terminal TermWindow 前を検索 +Match case Terminal FindWindow 大文字小文字を区別 The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView パターンはタブタイトルを定めます。以下のプレースホルダーが\n使えます: Close Terminal TermWindow 閉じる Save to file… Terminal PrefWindow ファイルに保存... Background Terminal AppearancePrefView 背景 +ANSI green color Terminal AppearancePrefView ANSI グリーン Copy path Terminal TermView パスのコピー Window size Terminal TermWindow ウィンドウサイズ Copy absolute path Terminal TermView 絶対パスのコピー @@ -80,13 +93,15 @@ Window size: Terminal AppearancePrefView ウィンドウサイズ: Switch Terminals Terminal TermWindow ターミナルを切替える Decrease Terminal TermWindow 縮小 Settings… Terminal TermWindow 設定... -Cancel Terminal SetTitleWindow 中止 +ANSI bright white color Terminal AppearancePrefView ANSI ブライトホワイト Blinking cursor Terminal AppearancePrefView カーソルを点滅させる +Cancel Terminal SetTitleWindow 中止 The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow パターンはウィンドウタイトルを指定します。次のプレースホルダーが\n使用できます:\n -Use text: Terminal FindWindow テキスト指定: Close active tab Terminal TermWindow タブを閉じる +Use text: Terminal FindWindow テキスト指定: Save as default Terminal TermWindow デフォルトとして保存 Nothing is selected. Terminal TermWindow なにも選択されていません。 +ANSI red color Terminal AppearancePrefView ANSI レッド Use left Option as Meta key Terminal AppearancePrefView 左オプションキーをメタキーとして使う Find Terminal FindWindow 検索 The pattern specifying the current tab title. The following placeholders\ncan be used:\n Terminal TermWindow パターンは現在のタブタイトルを指定します。次のプレースホルダーが\n使用できます:\n @@ -94,7 +109,9 @@ Professional Terminal colors scheme プロフェッショナル Font: Terminal AppearancePrefView フォント: Paste Terminal TermWindow 貼り付け The pattern specifying the window titles. The following placeholders\ncan be used: Terminal AppearancePrefView パターンはウィンドウタイトルを定めます。以下のプレースホルダーが\n使えます: +ANSI bright black color Terminal AppearancePrefView ANSI ブライトブラック Copy here Terminal TermView カレントディレクトリへコピー +ANSI bright red color Terminal AppearancePrefView ANSI ブライトレッド Use default shell Terminal Shell デフォルトシェルの使用 Color: Terminal AppearancePrefView 色: Open link Terminal TermView リンクを開く @@ -112,6 +129,6 @@ Increase Terminal TermWindow 拡大 OK Terminal TermWindow OK Close window Terminal TermWindow ウィンドウを閉じる Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n -Solarized Light Terminal colors scheme Solarized Light Clear all Terminal TermWindow すべて消去 +Solarized Light Terminal colors scheme Solarized Light Search forward Terminal FindWindow 順方向検索 diff --git a/data/catalogs/apps/terminal/lt.catkeys b/data/catalogs/apps/terminal/lt.catkeys index c62c5c1e85..757a936627 100644 --- a/data/catalogs/apps/terminal/lt.catkeys +++ b/data/catalogs/apps/terminal/lt.catkeys @@ -10,8 +10,8 @@ Confirm exit if active programs exist Terminal AppearancePrefView Prašyti darb Copy Terminal TermWindow Kopijuoti Retro Terminal colors scheme Retro Edit tab title… Terminal TermWindow Keisti kortelės antraštę… -Print Terminal TermWindow Spausdinti Settings Terminal TermWindow Nuostatos +Print Terminal TermWindow Spausdinti %app% settings Terminal PrefWindow window title Terminalo nuostatos Use default Terminal SetTitleWindow Grąžinti numatytąją Close tab Terminal TermWindow Užverti kortelę @@ -27,8 +27,8 @@ Page setup… Terminal TermWindow Puslapio nuostatos… Slate Terminal colors scheme Skalūnas Cancel Terminal TermView Atsisakyti Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminalas -Use selection Terminal FindWindow Ieškoti pažymėto teksto Find next Terminal TermWindow Ieškoti kito +Use selection Terminal FindWindow Ieškoti pažymėto teksto Copy link location Terminal TermView Kopijuoti saito adresą Window title: Terminal AppearancePrefView Lango antraštė: New tab Terminal TermWindow Nauja kortelė @@ -46,12 +46,12 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Nežinomas argumentas: Tab title: Terminal AppearancePrefView Kortelės antraštė: Text not found. Terminal TermWindow Ieškotas tekstas nerastas. Find failed Terminal TermWindow Paieška nepavyko -Match word Terminal FindWindow Atitikti visą žodį Color scheme: Terminal AppearancePrefView Spalvų schema: +Match word Terminal FindWindow Atitikti visą žodį New Terminal Terminal TermWindow Naujas langas Quit Terminal TermWindow Baigti darbą -Match case Terminal FindWindow Paisyti raidžių registro Find previous Terminal TermWindow Ieškoti ankstesnio +Match case Terminal FindWindow Paisyti raidžių registro Close Terminal TermWindow Užverti Save to file… Terminal PrefWindow Įrašyti į failą… Background Terminal AppearancePrefView Fono @@ -69,11 +69,11 @@ Default Terminal colors scheme Numatytoji Switch Terminals Terminal TermWindow Pereiti į kitą terminalą Decrease Terminal TermWindow Pamažinti Settings… Terminal TermWindow Nuostatos… -Cancel Terminal SetTitleWindow Atsisakyti Blinking cursor Terminal AppearancePrefView Mirksintis žymeklis +Cancel Terminal SetTitleWindow Atsisakyti The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Lango antraštės šablonas. Galite naudoti šiuos vietaženklius:\n -Use text: Terminal FindWindow Ieškoti teksto: Close active tab Terminal TermWindow Užverti aktyvią kortelę +Use text: Terminal FindWindow Ieškoti teksto: Nothing is selected. Terminal TermWindow Nėra pažymėto teksto. Find Terminal FindWindow Ieškoti The pattern specifying the current tab title. The following placeholders\ncan be used:\n Terminal TermWindow Aktyvios kortelės antraštės šablonas. Galite naudoti šiuos vietaženklius:\n diff --git a/data/catalogs/apps/terminal/nl.catkeys b/data/catalogs/apps/terminal/nl.catkeys index 597d37be51..37f60b47fe 100644 --- a/data/catalogs/apps/terminal/nl.catkeys +++ b/data/catalogs/apps/terminal/nl.catkeys @@ -13,8 +13,8 @@ Copy Terminal TermWindow Kopiëren -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help dit helpbericht weergeven\n -t, --title een venstertitel instellen\n -f, --fullscreen in volledig scherm starten\n -w, --working-directory initiële werkmap instellen Retro Terminal colors scheme Retro Edit tab title… Terminal TermWindow Tabtitel aanpassen... -Print Terminal TermWindow Afdrukken Settings Terminal TermWindow Instellingen +Print Terminal TermWindow Afdrukken %app% settings Terminal PrefWindow window title Instellingen voor %app% Use default Terminal SetTitleWindow De standaard gebruiken Close tab Terminal TermWindow De tab sluiten @@ -33,8 +33,8 @@ Defaults Terminal PrefWindow Standaardinstellingen Cancel Terminal TermView Annuleren Revert Terminal PrefWindow Herstellen Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminal -Use selection Terminal FindWindow Gebruik selectie Find next Terminal TermWindow Volgende zoeken +Use selection Terminal FindWindow Gebruik selectie Copy link location Terminal TermView Tekstlinklocatie kopiëren Window title: Terminal AppearancePrefView Venstertitel: New tab Terminal TermWindow Nieuwe tab @@ -53,12 +53,12 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Niet-herkende optie \"% Tab title: Terminal AppearancePrefView Tabtitel: Text not found. Terminal TermWindow De tekst werd niet gevonden Find failed Terminal TermWindow Zoeken is mislukt -Match word Terminal FindWindow Volledig woord moet overeenkomen Color scheme: Terminal AppearancePrefView Kleurschema: +Match word Terminal FindWindow Volledig woord moet overeenkomen New Terminal Terminal TermWindow Nieuwe Terminal Quit Terminal TermWindow Afsluiten -Match case Terminal FindWindow Hoofd-/kleine-lettergevoelig Find previous Terminal TermWindow Vorige zoeken +Match case Terminal FindWindow Hoofd-/kleine-lettergevoelig The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Het patroon dat gebruikt wordt voor de titels van tabs. De volgende\nplaatshouders kunnen gebruikt worden: Close Terminal TermWindow Sluiten Save to file… Terminal PrefWindow Opslaan naar bestand... @@ -80,11 +80,11 @@ Window size: Terminal AppearancePrefView Venstergrootte: Switch Terminals Terminal TermWindow Wissel van Terminal Decrease Terminal TermWindow Verminderen Settings… Terminal TermWindow Instellingen... -Cancel Terminal SetTitleWindow Annuleren Blinking cursor Terminal AppearancePrefView Knipperende cursor +Cancel Terminal SetTitleWindow Annuleren The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Het model dat de venstertitel bepaalt.\nDe volgende plaatsaanduidingen kunnen worden gebruikt:\n -Use text: Terminal FindWindow Tekst gebruiken: Close active tab Terminal TermWindow Het actieve tabblad sluiten +Use text: Terminal FindWindow Tekst gebruiken: Save as default Terminal TermWindow Opslaan als standaard Nothing is selected. Terminal TermWindow Er is niets geselecteerd. Use left Option as Meta key Terminal AppearancePrefView Gebruik de linker Optietoets als Metatoets @@ -112,6 +112,6 @@ Increase Terminal TermWindow Vermeerderen OK Terminal TermWindow Oké Close window Terminal TermWindow Venster sluiten Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui enTakashi Murai.\n\nGebruik: %s [OPTION] [SHELL]\n -Solarized Light Terminal colors scheme Zonnig Licht Clear all Terminal TermWindow Alles wissen +Solarized Light Terminal colors scheme Zonnig Licht Search forward Terminal FindWindow Vooruit zoeken diff --git a/data/catalogs/apps/terminal/pl.catkeys b/data/catalogs/apps/terminal/pl.catkeys index 2b9a9351c0..6563bcab17 100644 --- a/data/catalogs/apps/terminal/pl.catkeys +++ b/data/catalogs/apps/terminal/pl.catkeys @@ -13,8 +13,8 @@ Copy Terminal TermWindow Kopiuj -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help wypisz tę pomoc\n -t, --title ustaw tytuł okna\n -f, --fullscreen uruchom w trybie pełnego ekranu\n -w, --working-directory ustaw początkowy katalog roboczy Retro Terminal colors scheme Retro Edit tab title… Terminal TermWindow Edytuj tytuł karty… -Print Terminal TermWindow Drukuj Settings Terminal TermWindow Ustawienia +Print Terminal TermWindow Drukuj %app% settings Terminal PrefWindow window title Ustawienia %app% Use default Terminal SetTitleWindow Użyj domyślnych Close tab Terminal TermWindow Zamknij kartę @@ -33,8 +33,8 @@ Defaults Terminal PrefWindow Przywróć domyślne Cancel Terminal TermView Anuluj Revert Terminal PrefWindow Cofnij Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminal -Use selection Terminal FindWindow Użyj zaznaczenia Find next Terminal TermWindow Znajdź następny +Use selection Terminal FindWindow Użyj zaznaczenia Copy link location Terminal TermView Kopiuj adres odnośnika Window title: Terminal AppearancePrefView Tytuł okna: New tab Terminal TermWindow Nowa karta @@ -53,12 +53,12 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Nieznana opcja „%s” Tab title: Terminal AppearancePrefView Tytuł karty: Text not found. Terminal TermWindow Tekst nie znaleziony. Find failed Terminal TermWindow Nie znaleziono -Match word Terminal FindWindow Dopasuj słowo Color scheme: Terminal AppearancePrefView Schemat kolorów: +Match word Terminal FindWindow Dopasuj słowo New Terminal Terminal TermWindow Nowy terminal Quit Terminal TermWindow Zakończ -Match case Terminal FindWindow Dopasuj wielkość liter Find previous Terminal TermWindow Znajdź poprzedni +Match case Terminal FindWindow Dopasuj wielkość liter The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Szablon określający tytuły kart. Następujące symbole mogą\nzostać użyte: Close Terminal TermWindow Zamknij Save to file… Terminal PrefWindow Zapisz do pliku… @@ -80,11 +80,11 @@ Window size: Terminal AppearancePrefView Rozmiar okna: Switch Terminals Terminal TermWindow Przełącz terminal Decrease Terminal TermWindow Zmniejsz Settings… Terminal TermWindow Ustawienia… -Cancel Terminal SetTitleWindow Anuluj Blinking cursor Terminal AppearancePrefView Migający kursor +Cancel Terminal SetTitleWindow Anuluj The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Wzór ustalający tytuł okna. Następujące wyznaczniki\nmogą zostać użyte:\n -Use text: Terminal FindWindow Użyj tekstu: Close active tab Terminal TermWindow Zamknij aktywną kartę +Use text: Terminal FindWindow Użyj tekstu: Save as default Terminal TermWindow Zapisz jako domyślny Nothing is selected. Terminal TermWindow Nic nie jest zaznaczone. Use left Option as Meta key Terminal AppearancePrefView Użyj lewego klawisza Option jako klawisza Meta @@ -112,6 +112,6 @@ Increase Terminal TermWindow Powiększ OK Terminal TermWindow OK Close window Terminal TermWindow Zamknij okno Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Terminal Haiku\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui i Takashi Murai.\n\nUżycie: %s [OPCJA] [POWŁOKA]\n -Solarized Light Terminal colors scheme Solarized Light Clear all Terminal TermWindow Wyczyść wszystko +Solarized Light Terminal colors scheme Solarized Light Search forward Terminal FindWindow Szukaj dalej diff --git a/data/catalogs/apps/terminal/pt.catkeys b/data/catalogs/apps/terminal/pt.catkeys index 61d12c342c..e37774fee5 100644 --- a/data/catalogs/apps/terminal/pt.catkeys +++ b/data/catalogs/apps/terminal/pt.catkeys @@ -13,8 +13,8 @@ Copy Terminal TermWindow Copiar -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help mostrar esta ajuda\n -t, --title definir título da janela\n -f, --fullscreen iniciar em ecrã completo\n -w, --working-directory definir pasta de trabalho inicial Retro Terminal colors scheme Retro Edit tab title… Terminal TermWindow Editar título do separador… -Print Terminal TermWindow Imprimir Settings Terminal TermWindow Definições +Print Terminal TermWindow Imprimir %app% settings Terminal PrefWindow window title Definições do %app% Use default Terminal SetTitleWindow Usar predefinição Close tab Terminal TermWindow Fechar separador @@ -33,8 +33,8 @@ Defaults Terminal PrefWindow Predefinições Cancel Terminal TermView Cancelar Revert Terminal PrefWindow Reverter Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminal -Use selection Terminal FindWindow Usar selecção Find next Terminal TermWindow Procurar seguinte +Use selection Terminal FindWindow Usar selecção Copy link location Terminal TermView Copiar localização da ligação Window title: Terminal AppearancePrefView Título da janela: New tab Terminal TermWindow Novo separador @@ -53,12 +53,12 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Opção desconhecida \" Tab title: Terminal AppearancePrefView Título do separador: Text not found. Terminal TermWindow Texto não encontrado. Find failed Terminal TermWindow Procura falhou -Match word Terminal FindWindow Palavras exactas Color scheme: Terminal AppearancePrefView Esquema de cores: +Match word Terminal FindWindow Palavras exactas New Terminal Terminal TermWindow Novo Terminal Quit Terminal TermWindow Sair -Match case Terminal FindWindow Corresponder maiúsculas e minúsculas Find previous Terminal TermWindow Procurar anterior +Match case Terminal FindWindow Corresponder maiúsculas e minúsculas The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView O padrão que especifica os títulos dos separadores. Podem ser\nutilizados os seguintes elementos de substituição: Close Terminal TermWindow Fechar Save to file… Terminal PrefWindow Guardar ficheiro… @@ -80,11 +80,11 @@ Window size: Terminal AppearancePrefView Tamanho da janela: Switch Terminals Terminal TermWindow Alternar Terminais Decrease Terminal TermWindow Diminuir Settings… Terminal TermWindow Definições… -Cancel Terminal SetTitleWindow Cancelar Blinking cursor Terminal AppearancePrefView Cursor intermitente +Cancel Terminal SetTitleWindow Cancelar The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow O padrão que especifica o título da janela. Podem ser\nutilizados os seguintes elementos de substituição:\n -Use text: Terminal FindWindow Usar texto: Close active tab Terminal TermWindow Fechar separador activo +Use text: Terminal FindWindow Usar texto: Save as default Terminal TermWindow Guardar como predefinição Nothing is selected. Terminal TermWindow Não há nada seleccionado. Use left Option as Meta key Terminal AppearancePrefView Usar tecla Opção do lado esquerdo como tecla Meta @@ -112,6 +112,6 @@ Increase Terminal TermWindow Aumentar OK Terminal TermWindow OK Close window Terminal TermWindow Fechar janela Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUtilização: %s [OPÇÃO] [SHELL]\n -Solarized Light Terminal colors scheme Solarizado Claro Clear all Terminal TermWindow Limpar tudo +Solarized Light Terminal colors scheme Solarizado Claro Search forward Terminal FindWindow Seguinte diff --git a/data/catalogs/apps/terminal/pt_BR.catkeys b/data/catalogs/apps/terminal/pt_BR.catkeys index 1279b10c09..3fad6b5bff 100644 --- a/data/catalogs/apps/terminal/pt_BR.catkeys +++ b/data/catalogs/apps/terminal/pt_BR.catkeys @@ -1,4 +1,4 @@ -1 portuguese (brazil) x-vnd.Haiku-Terminal 3117643489 +1 portuguese (brazil) x-vnd.Haiku-Terminal 3771520812 Close other tabs Terminal TermWindow Fechar outras guias Insert path Terminal TermView Inserir caminho Terminal couldn't start the shell. Sorry. Terminal TermApp Terminal não pôde iniciar o shell. Desculpe. @@ -13,8 +13,8 @@ Copy Terminal TermWindow Copiar -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help exibe esta ajuda\n -t, --title define o título da janela\n -f, --fullscreen inicia em tela cheia\n -w, --working-directory define o diretório inicial de trabalho Retro Terminal colors scheme Retrô Edit tab title… Terminal TermWindow Editar título da aba… -Print Terminal TermWindow Imprimir Settings Terminal TermWindow Configurações +Print Terminal TermWindow Imprimir %app% settings Terminal PrefWindow window title %app% configurações Use default Terminal SetTitleWindow Usar padrão Close tab Terminal TermWindow Fechar aba @@ -32,9 +32,10 @@ Slate Terminal colors scheme Ardósia Defaults Terminal PrefWindow Padrões Cancel Terminal TermView Cancelar Revert Terminal PrefWindow Reverter +Relaxed Terminal colors scheme Relaxado Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminal -Use selection Terminal FindWindow Usar seleção Find next Terminal TermWindow Localizar próximo +Use selection Terminal FindWindow Usar seleção Copy link location Terminal TermView Copiar a localização do vínculo Window title: Terminal AppearancePrefView Título da janela: New tab Terminal TermWindow Nova aba @@ -53,12 +54,12 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Opção não reconhecid Tab title: Terminal AppearancePrefView Título da aba: Text not found. Terminal TermWindow Texto não encontrado. Find failed Terminal TermWindow Localizar falhou -Match word Terminal FindWindow Palavra exata Color scheme: Terminal AppearancePrefView Esquema de cores: +Match word Terminal FindWindow Palavra exata New Terminal Terminal TermWindow Novo Terminal Quit Terminal TermWindow Sair -Match case Terminal FindWindow Diferenciar maiúsculas de minúsculas Find previous Terminal TermWindow Localizar anterior +Match case Terminal FindWindow Diferenciar maiúsculas de minúsculas The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView O padrão especificando os títulos das abas. Os seguintes espaços reservados\npodem ser usados: Close Terminal TermWindow Fechar Save to file… Terminal PrefWindow Salvar para arquivo... @@ -72,7 +73,7 @@ Cursor Terminal AppearancePrefView Cursor Full screen Terminal TermWindow Tela inteira Shell Terminal TermWindow Shell Midnight Terminal colors scheme Meia-noite -\t%%\t-\tThe character '%'.\n\t%<\t-\tStarts a section that will only be shown if a placeholder\n\t\t\tafterwards is not empty.\n\t%>\t-\tStarts a section that will only be shown if a placeholder\n\t\t\tbetween a previous %< section and this one is not empty.\n\t%-\t-\tEnds a %< or %> section.\n\nAny non alpha numeric character between '%' and the format letter will insert a space only\nif the placeholder value is not empty. It will add to the %< section. Terminal ToolTips \t%%\t-\tO caractere '%'.\n\t%<\t-\tInicia a sessão que será exibida somente se um\n\t\t\tplaceholder subsequente não for vazio.\n\t%>\t-\tInicia a sessão que será exibida somente se um\n\t\t\tplaceholder entre a sessão %< anterior e esta não for vazio.\n\t%-\t-\tEncerra uma sessão %< ou %>.\n\nQualquer caractere não-alfanumérico entre '%' e a letra de formato irá inserir um espaço\napenas se o valor do placeholder não for vazio. Ele irá adicionar à seção %<. +\t%%\t-\tThe character '%'.\n\t%<\t-\tStarts a section that will only be shown if a placeholder\n\t\t\tafterwards is not empty.\n\t%>\t-\tStarts a section that will only be shown if a placeholder\n\t\t\tbetween a previous %< section and this one is not empty.\n\t%-\t-\tEnds a %< or %> section.\n\nAny non alpha numeric character between '%' and the format letter will insert a space only\nif the placeholder value is not empty. It will add to the %< section. Terminal ToolTips \t%%\t-\tO caractere '%'.\n\t%<\t-\tInicia a sessão que será exibida somente se um\n\t\t\tmarcador subsequente não for vazio.\n\t%>\t-\tInicia a sessão que será exibida somente se um\n\t\t\tmarcador entre a sessão %< anterior e esta não for vazio.\n\t%-\t-\tEncerra uma sessão %< ou %>.\n\nQualquer caractere não-alfanumérico entre '%' e a letra de formato irá inserir um espaço apenas\n se o valor do marcador não for vazio. Ele irá adicionar à seção %<. Tab title: Terminal TermWindow Título da aba: Window title: Terminal TermWindow Título da janela: Default Terminal colors scheme Padrão @@ -80,11 +81,11 @@ Window size: Terminal AppearancePrefView Tamanho da janela: Switch Terminals Terminal TermWindow Alternar Terminais Decrease Terminal TermWindow Diminuir Settings… Terminal TermWindow Configurações... -Cancel Terminal SetTitleWindow Cancelar Blinking cursor Terminal AppearancePrefView Cursor piscante +Cancel Terminal SetTitleWindow Cancelar The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow O padrão especificando o título da janela. Os seguintes espaços reservados\npodem ser usados:\n -Use text: Terminal FindWindow Usar texto: Close active tab Terminal TermWindow Fechar a aba ativa +Use text: Terminal FindWindow Usar texto: Save as default Terminal TermWindow Salvar como padrão Nothing is selected. Terminal TermWindow Não há nada selecionado. Use left Option as Meta key Terminal AppearancePrefView Utilizar Option esquerda como tecla Meta @@ -112,6 +113,6 @@ Increase Terminal TermWindow Aumentar OK Terminal TermWindow OK Close window Terminal TermWindow Fechar janela Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Haiku Terminal\nDireitos autorais 2001-2019 Haiku, Inc.\nDireitos autorais (C) 1999 Kazuho Okui e Takashi Murai.\n\nUtilização: %s [OPÇÃO] [SHELL]\n -Solarized Light Terminal colors scheme Solarizado Claro Clear all Terminal TermWindow Limpar tudo +Solarized Light Terminal colors scheme Solarizado Claro Search forward Terminal FindWindow Procurar até o final diff --git a/data/catalogs/apps/terminal/ro.catkeys b/data/catalogs/apps/terminal/ro.catkeys index 7d4fb3d0da..0681562ccf 100644 --- a/data/catalogs/apps/terminal/ro.catkeys +++ b/data/catalogs/apps/terminal/ro.catkeys @@ -13,8 +13,8 @@ Copy Terminal TermWindow Copiază -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help tipărește acest ajutor\n -t, --title stabilește titlul ferestrei\n -f, --fullscreen pornește ecranul complet\n -w, --working-directory stabilește directorul de lucru inițial Retro Terminal colors scheme Retro Edit tab title… Terminal TermWindow Editează titlul filei… -Print Terminal TermWindow Tipărește Settings Terminal TermWindow Configurări +Print Terminal TermWindow Tipărește %app% settings Terminal PrefWindow window title Configurări %app% Use default Terminal SetTitleWindow Utilizează implicit Close tab Terminal TermWindow Închide fila @@ -33,8 +33,8 @@ Defaults Terminal PrefWindow Implicite Cancel Terminal TermView Anulează Revert Terminal PrefWindow Revenire Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminal -Use selection Terminal FindWindow Utilizează selecția Find next Terminal TermWindow Găsește următorul +Use selection Terminal FindWindow Utilizează selecția Copy link location Terminal TermView Copiază locația legăturii Window title: Terminal AppearancePrefView Titlul ferestrei: New tab Terminal TermWindow Filă nouă @@ -53,12 +53,12 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Opțiune nerecunoscută Tab title: Terminal AppearancePrefView Titlul filei: Text not found. Terminal TermWindow Textul nu a fost găsit. Find failed Terminal TermWindow Găsirea a eșuat -Match word Terminal FindWindow Potrivește cuvântul Color scheme: Terminal AppearancePrefView Schemă de culori: +Match word Terminal FindWindow Potrivește cuvântul New Terminal Terminal TermWindow Terminal nou Quit Terminal TermWindow Ieșire -Match case Terminal FindWindow Potrivește majusculele Find previous Terminal TermWindow Găsește anteriorul +Match case Terminal FindWindow Potrivește majusculele The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Modelul care specifică titlurile filelor. Următorii substituenți\npot fi utilizați: Close Terminal TermWindow Închide Save to file… Terminal PrefWindow Salvează în fișier… @@ -80,11 +80,11 @@ Window size: Terminal AppearancePrefView Dimensiunea ferestrei: Switch Terminals Terminal TermWindow Comută terminalele Decrease Terminal TermWindow Micșorează Settings… Terminal TermWindow Configurări… -Cancel Terminal SetTitleWindow Anulează Blinking cursor Terminal AppearancePrefView Cursor clipitor +Cancel Terminal SetTitleWindow Anulează The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Modelul care specifică titlul ferestrei. Următorii substituenți\npot fi utilizați:\n -Use text: Terminal FindWindow Utilizează textul: Close active tab Terminal TermWindow Închide fila activă +Use text: Terminal FindWindow Utilizează textul: Save as default Terminal TermWindow Salvează ca implicit Nothing is selected. Terminal TermWindow Nu este selectat nimic. Use left Option as Meta key Terminal AppearancePrefView Utilizează opțiunea stângă ca tastă meta @@ -112,6 +112,6 @@ Increase Terminal TermWindow Mărește OK Terminal TermWindow OK Close window Terminal TermWindow Închide fereastra Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Terminal Haiku\nDrepturi de autor 2001-2019 Haiku, Inc.\nDrepturi de autor(C) 1999 Kazuho Okui și Takashi Murai.\n\nUtilizare: %s [OPȚIUNE] [SHELL]\n -Solarized Light Terminal colors scheme Lumină solarizată Clear all Terminal TermWindow Eliberează toate +Solarized Light Terminal colors scheme Lumină solarizată Search forward Terminal FindWindow Caută înainte diff --git a/data/catalogs/apps/terminal/ru.catkeys b/data/catalogs/apps/terminal/ru.catkeys index 1e2264448a..c43a3773b1 100644 --- a/data/catalogs/apps/terminal/ru.catkeys +++ b/data/catalogs/apps/terminal/ru.catkeys @@ -12,8 +12,8 @@ Solarized Dark Terminal colors scheme Соляризированная тьма Copy Terminal TermWindow Копировать Retro Terminal colors scheme Ретро Edit tab title… Terminal TermWindow Переименовать вкладку… -Print Terminal TermWindow Печать Settings Terminal TermWindow Настройки +Print Terminal TermWindow Печать %app% settings Terminal PrefWindow window title Настройки терминала Use default Terminal SetTitleWindow По умолчанию Close tab Terminal TermWindow Закрыть вкладку @@ -32,8 +32,8 @@ Defaults Terminal PrefWindow По умолчанию Cancel Terminal TermView Отмена Revert Terminal PrefWindow Вернуть Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Терминал -Use selection Terminal FindWindow Использовать выделенный текст Find next Terminal TermWindow Найти далее +Use selection Terminal FindWindow Использовать выделенный текст Copy link location Terminal TermView Скопировать ссылку Window title: Terminal AppearancePrefView Заголовок окна: New tab Terminal TermWindow Новая вкладка @@ -52,12 +52,12 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Нераспознан Tab title: Terminal AppearancePrefView Заголовок вкладки: Text not found. Terminal TermWindow Текст не найден Find failed Terminal TermWindow Строка не найдена -Match word Terminal FindWindow Только слово целиком Color scheme: Terminal AppearancePrefView Цветовая схема: +Match word Terminal FindWindow Только слово целиком New Terminal Terminal TermWindow Новый терминал Quit Terminal TermWindow Выход -Match case Terminal FindWindow Учитывать регистр Find previous Terminal TermWindow Найти ранее +Match case Terminal FindWindow Учитывать регистр The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Этот шаблон описывает заголовки вкладок.\nВозможно использовать следующие переменные: Close Terminal TermWindow Закрыть Save to file… Terminal PrefWindow Сохранить в файл… @@ -79,11 +79,11 @@ Window size: Terminal AppearancePrefView Размер окна: Switch Terminals Terminal TermWindow Переключить терминалы Decrease Terminal TermWindow Уменьшить Settings… Terminal TermWindow Настройки… -Cancel Terminal SetTitleWindow Отмена Blinking cursor Terminal AppearancePrefView Мигающий курсор +Cancel Terminal SetTitleWindow Отмена The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Этот шаблон описывает заголовок окна.\nВозможно использовать следующие переменные:\n -Use text: Terminal FindWindow Использовать текст: Close active tab Terminal TermWindow Закрыть текущую вкладку +Use text: Terminal FindWindow Использовать текст: Save as default Terminal TermWindow Сохранить по умолчанию Nothing is selected. Terminal TermWindow Ничего не выделено Use left Option as Meta key Terminal AppearancePrefView Использовать левый Option как клавишу Meta @@ -111,6 +111,6 @@ Increase Terminal TermWindow Увеличить OK Terminal TermWindow ОК Close window Terminal TermWindow Закрыть окно Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Haiku Terminal\nВсе права защищены © 2001-2019 Haiku, Inc.\nВсе права защищены © 1999 Kazuho Okui и Takashi Murai.\n\nИспользование: %s [OPTION] [SHELL]\n -Solarized Light Terminal colors scheme Солнечный свет Clear all Terminal TermWindow Очистить всё +Solarized Light Terminal colors scheme Солнечный свет Search forward Terminal FindWindow Искать сверху вниз diff --git a/data/catalogs/apps/terminal/sk.catkeys b/data/catalogs/apps/terminal/sk.catkeys index ec4a7e31cb..d05b70cf74 100644 --- a/data/catalogs/apps/terminal/sk.catkeys +++ b/data/catalogs/apps/terminal/sk.catkeys @@ -12,8 +12,8 @@ Solarized Dark Terminal colors scheme Solarizovaná tmavá Copy Terminal TermWindow Skopírovať Retro Terminal colors scheme Retro Edit tab title… Terminal TermWindow Upraviť titulok karty… -Print Terminal TermWindow Tlačiť Settings Terminal TermWindow Nastavenia +Print Terminal TermWindow Tlačiť %app% settings Terminal PrefWindow window title %app% - nastavenia Use default Terminal SetTitleWindow Použiť predvolené Close tab Terminal TermWindow Zatvoriť okno @@ -32,8 +32,8 @@ Defaults Terminal PrefWindow Predvoľby Cancel Terminal TermView Zrušiť Revert Terminal PrefWindow Vrátiť späť Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminál -Use selection Terminal FindWindow Použiť výber Find next Terminal TermWindow Nájsť ďalší +Use selection Terminal FindWindow Použiť výber Copy link location Terminal TermView Kopírovať umiestnenie odkazu Window title: Terminal AppearancePrefView Titulok okna: New tab Terminal TermWindow Nová karta @@ -52,12 +52,12 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Nerozpoznaná voľba Tab title: Terminal AppearancePrefView Titulok karty: Text not found. Terminal TermWindow Text nenájdený. Find failed Terminal TermWindow Hľadanie zlyhalo -Match word Terminal FindWindow Nájsť slovo Color scheme: Terminal AppearancePrefView Schéma farieb: +Match word Terminal FindWindow Nájsť slovo New Terminal Terminal TermWindow Nový terminál Quit Terminal TermWindow Ukončiť -Match case Terminal FindWindow Rozlišovať veľkosť písmen Find previous Terminal TermWindow Nájsť predošlý +Match case Terminal FindWindow Rozlišovať veľkosť písmen The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Vzor určujúci názvy kariet. Je možné použiť nasledovné\nzástupné symboly: Close Terminal TermWindow Zatvoriť Save to file… Terminal PrefWindow Uložiť do súboru… @@ -79,11 +79,11 @@ Window size: Terminal AppearancePrefView Veľkosť okna: Switch Terminals Terminal TermWindow Prepnúť terminály Decrease Terminal TermWindow Zmenšiť Settings… Terminal TermWindow Nastavenia… -Cancel Terminal SetTitleWindow Zrušiť Blinking cursor Terminal AppearancePrefView Blikajúci kurzor +Cancel Terminal SetTitleWindow Zrušiť The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Vzor určujúci titulky okien. Možno použiť\nnasledovné zástupné symboly:\n -Use text: Terminal FindWindow Použiť text: Close active tab Terminal TermWindow Zatvoriť aktívnu kartu +Use text: Terminal FindWindow Použiť text: Save as default Terminal TermWindow Uložiť ako predvolené Nothing is selected. Terminal TermWindow Nič nie je vybrané. Find Terminal FindWindow Nájsť @@ -109,6 +109,6 @@ Set window title Terminal TermWindow Nastaviť titulok okna Increase Terminal TermWindow Zväčšiť OK Terminal TermWindow OK Close window Terminal TermWindow Zatvoriť okno -Solarized Light Terminal colors scheme Solarizovaná svetlá Clear all Terminal TermWindow Vyčistiť všetko +Solarized Light Terminal colors scheme Solarizovaná svetlá Search forward Terminal FindWindow Hľadať vpred diff --git a/data/catalogs/apps/terminal/sv.catkeys b/data/catalogs/apps/terminal/sv.catkeys index 8faae6921f..e50b812854 100644 --- a/data/catalogs/apps/terminal/sv.catkeys +++ b/data/catalogs/apps/terminal/sv.catkeys @@ -1,8 +1,10 @@ -1 swedish x-vnd.Haiku-Terminal 3117643489 +1 swedish x-vnd.Haiku-Terminal 4032760800 +ANSI cyan color Terminal AppearancePrefView ANSI cyan färg Close other tabs Terminal TermWindow Stäng övriga flikar Insert path Terminal TermView Lägg till sökväg Terminal couldn't start the shell. Sorry. Terminal TermApp Terminalen kunde inte starta skalet. Text encoding Terminal TermWindow Teckenuppsättning +ANSI blue color Terminal AppearancePrefView ANSI blå färg OK Terminal SetTitleWindow OK Edit Terminal TermWindow Redigera Select all Terminal TermWindow Markera allt @@ -10,39 +12,49 @@ Confirm exit if active programs exist Terminal AppearancePrefView Bekräfta avs \t%d\t-\tThe current working directory of the active process in the\n\t\t\tcurrent tab. Optionally the maximum number of path components\n\t\t\tcan be specified. E.g. '%2d' for at most two components.\n\t%T\t-\tThe Terminal application name for the current locale.\n\t%e\t-\tThe encoding of the current tab. Not shown for UTF-8.\n\t%i\t-\tThe index of the window.\n\t%p\t-\tThe name of the active process in the current tab.\n\t%t\t-\tThe title of the current tab. Terminal ToolTips \t%d\t-\tDen aktiva processens arbetskatalog i denna tab.\n\t\t\tTeller maximalt antal sökvägskomponenter\n\t\t\tkan anges som. '%2d' för som mest två komponenter.\n\t%T\t-\tTerminal programmets namn på det valda språket.\n\t%e\t-\tEnkodingen av den valda tabben . Inte visad för UTF-8.\n\t%i\t-\tIndexet för fönstret.\n\t%p\t-\tNamnet på den aktiva processen i den valda tabben.\n\t%t\t-\tTiteln på den valda tabben. Solarized Dark Terminal colors scheme Solariserad mörk Copy Terminal TermWindow Kopiera +ANSI bright green color Terminal AppearancePrefView ANSI ljusgrön färg -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help skriv ut den här hjälpen\n -t, --title ställa in fönstertitel\n -f, --fullscreen starta helskärm\n -w, --working-directory ställa in den första arbetskatalogen +ANSI white color Terminal AppearancePrefView ANSI vit färg Retro Terminal colors scheme Retro Edit tab title… Terminal TermWindow Redigera fliktitel... -Print Terminal TermWindow Skriv ut Settings Terminal TermWindow Inställningar +Print Terminal TermWindow Skriv ut %app% settings Terminal PrefWindow window title %app% inställningar +ANSI black color Terminal AppearancePrefView ANSI svart färg Use default Terminal SetTitleWindow Använd förvald Close tab Terminal TermWindow Stäng flik Selected background Terminal AppearancePrefView Vald bakgrund Error! Terminal getString Fel! Set tab title Terminal TermWindow Ange fliktitel Appearance Terminal PrefWindow Utseende +ANSI bright yellow color Terminal AppearancePrefView ANSI ljusgul färg Encoding: Terminal AppearancePrefView Kodning: Create link here Terminal TermView Skapa länk här Custom Terminal AppearancePrefView Window size Anpassad Selected text Terminal AppearancePrefView Markerad text Change directory Terminal TermView Byt katalog +ANSI magenta color Terminal AppearancePrefView ANSI magenta färg Page setup… Terminal TermWindow Sidinställningar... Slate Terminal colors scheme Slate Defaults Terminal PrefWindow Standard Cancel Terminal TermView Avbryt Revert Terminal PrefWindow Återställ +Relaxed Terminal colors scheme Avslappnad +ANSI bright magenta color Terminal AppearancePrefView ANSI ljus magenta färg Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Terminal -Use selection Terminal FindWindow Använd markering +ANSI bright cyan color Terminal AppearancePrefView ANSI ljus cyan färg Find next Terminal TermWindow Sök nästa +Use selection Terminal FindWindow Använd markering Copy link location Terminal TermView Kopiera länkplats Window title: Terminal AppearancePrefView Fönstertitel: New tab Terminal TermWindow Ny flik +ANSI bright blue color Terminal AppearancePrefView ANSI ljusblå färg Allow bold text Terminal AppearancePrefView Tillåt fetstil Window title… Terminal TermWindow Fönstertitel... Blue Terminal colors scheme Blå Cannot execute \"%command\":\n\t%error Terminal Shell Kan inte utföra \"%command\:\n\t%error Open path Terminal TermView Öppna sökväg +ANSI yellow color Terminal AppearancePrefView ANSI gul färg Terminal System name Terminal Font size Terminal TermWindow Typsnittsstorlek Custom Terminal colors scheme Anpassad @@ -53,16 +65,17 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Okänt alternativ \"%s\ Tab title: Terminal AppearancePrefView Fliktitel: Text not found. Terminal TermWindow Text hittades inte. Find failed Terminal TermWindow Sökning misslyckades -Match word Terminal FindWindow Matcha ord Color scheme: Terminal AppearancePrefView Färgschema: +Match word Terminal FindWindow Matcha ord New Terminal Terminal TermWindow Ny terminal Quit Terminal TermWindow Avsluta -Match case Terminal FindWindow Matcha gemener/versaler Find previous Terminal TermWindow Sök föregående +Match case Terminal FindWindow Matcha gemener/versaler The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Mönster som specificerar tab titel. Följande platshållare\nkan användas: Close Terminal TermWindow Stäng Save to file… Terminal PrefWindow Spara till fil... Background Terminal AppearancePrefView Bakgrund +ANSI green color Terminal AppearancePrefView ANSI grön färg Copy path Terminal TermView Kopiera sökväg Window size Terminal TermWindow Fönsterstorlek Copy absolute path Terminal TermView Kopiera absolut sökväg @@ -80,13 +93,15 @@ Window size: Terminal AppearancePrefView Fönsterstorlek: Switch Terminals Terminal TermWindow Växla terminal Decrease Terminal TermWindow Minska Settings… Terminal TermWindow Inställningar... -Cancel Terminal SetTitleWindow Avbryt +ANSI bright white color Terminal AppearancePrefView ANSI ljus vit färg Blinking cursor Terminal AppearancePrefView Blinkande markör +Cancel Terminal SetTitleWindow Avbryt The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Mönstret bestämmer fönstrets namn. Följande alternativ finns:\n -Use text: Terminal FindWindow Använd text: Close active tab Terminal TermWindow Stäng aktiv flik +Use text: Terminal FindWindow Använd text: Save as default Terminal TermWindow Spara som standard Nothing is selected. Terminal TermWindow Ingenting markerat. +ANSI red color Terminal AppearancePrefView ANSI röd färg Use left Option as Meta key Terminal AppearancePrefView Använd vänster Alternativ som Meta-tangent Find Terminal FindWindow Sök The pattern specifying the current tab title. The following placeholders\ncan be used:\n Terminal TermWindow Mönstret bestämmer namn på den aktiva fliken. Följande alternativ finns:\n @@ -94,7 +109,9 @@ Professional Terminal colors scheme Professionell Font: Terminal AppearancePrefView Typsnitt: Paste Terminal TermWindow Klistra in The pattern specifying the window titles. The following placeholders\ncan be used: Terminal AppearancePrefView Mönster som specificerar fönster titel. Följande platshållare\nkan användas: +ANSI bright black color Terminal AppearancePrefView ANSI ljus svart färg Copy here Terminal TermView Kopiera hit +ANSI bright red color Terminal AppearancePrefView ANSI ljus röd färg Use default shell Terminal Shell Använd standardskal Color: Terminal AppearancePrefView Färg: Open link Terminal TermView Öppna länk @@ -112,6 +129,6 @@ Increase Terminal TermWindow Öka OK Terminal TermWindow OK Close window Terminal TermWindow Stäng fönster Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui och Takashi Murai.\n\nAnvändning: %s [VAL] [SHELL]\n -Solarized Light Terminal colors scheme Solariserad ljus Clear all Terminal TermWindow Rensa allt +Solarized Light Terminal colors scheme Solariserad ljus Search forward Terminal FindWindow Sök framåt diff --git a/data/catalogs/apps/terminal/th.catkeys b/data/catalogs/apps/terminal/th.catkeys index 699f6326eb..b97d89b64f 100644 --- a/data/catalogs/apps/terminal/th.catkeys +++ b/data/catalogs/apps/terminal/th.catkeys @@ -12,8 +12,8 @@ Solarized Dark Terminal colors scheme สีทึบ Copy Terminal TermWindow คัดลอก Retro Terminal colors scheme ย้อนยุค Edit tab title… Terminal TermWindow แก้ไขชื่อแท็บ -Print Terminal TermWindow พิมพ์ Settings Terminal TermWindow ตั้งค่า +Print Terminal TermWindow พิมพ์ %app% settings Terminal PrefWindow window title %app% ตั้งค่า Use default Terminal SetTitleWindow ใช้ค่าเริ่มต้น Close tab Terminal TermWindow ปิดแท็ป @@ -32,8 +32,8 @@ Defaults Terminal PrefWindow ค่าเริ่มต้น Cancel Terminal TermView ยกเลิก Revert Terminal PrefWindow เปลี่ยนกลับ Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions เทอร์มินอล -Use selection Terminal FindWindow ใช้การเลือก Find next Terminal TermWindow ค้นหาถัดไป +Use selection Terminal FindWindow ใช้การเลือก Copy link location Terminal TermView สำเนาที่ตั้งลิงค์ Window title: Terminal AppearancePrefView ชื่อหน้าต่าง New tab Terminal TermWindow แท็ปใหม่ @@ -52,12 +52,12 @@ Unrecognized option \"%s\"\n Terminal arguments parsing ตัวเลือ Tab title: Terminal AppearancePrefView ชื่อแท็ป Text not found. Terminal TermWindow ไม่พบข้อความ Find failed Terminal TermWindow ค้นหาล้มเหลว -Match word Terminal FindWindow คำตรงกัน Color scheme: Terminal AppearancePrefView โทนสี: +Match word Terminal FindWindow คำตรงกัน New Terminal Terminal TermWindow เทอร์มินอลใหม่ Quit Terminal TermWindow ออก -Match case Terminal FindWindow กรณีตรงกัน Find previous Terminal TermWindow ค้นหาก่อนหน้านี้ +Match case Terminal FindWindow กรณีตรงกัน The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView รูปแบบที่ระบุชื่อแท็บ ตัวยึดตำแหน่ง\nสามารถนำมาใช้: Close Terminal TermWindow ปิด Save to file… Terminal PrefWindow บันทึกไปที่ไฟล์ @@ -79,11 +79,11 @@ Window size: Terminal AppearancePrefView ขนาดหน้าต่าง: Switch Terminals Terminal TermWindow สลับเทอร์มินอล Decrease Terminal TermWindow ลดลง Settings… Terminal TermWindow ตั้งค่า -Cancel Terminal SetTitleWindow ยกเลิก Blinking cursor Terminal AppearancePrefView เคอร์เซอร์กะพริบ +Cancel Terminal SetTitleWindow ยกเลิก The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow รูปแบบที่ระบุชื่อหน้าต่าง ข้อความที่ต้องการให้แสดง \nสามารถใช้:\n -Use text: Terminal FindWindow ใช้ข้อความ Close active tab Terminal TermWindow ปิดแท็ปที่ใช้งาน +Use text: Terminal FindWindow ใช้ข้อความ Save as default Terminal TermWindow บันทึกเป็นค่าเริ่มต้น Nothing is selected. Terminal TermWindow ไม่มีการเลือก Use left Option as Meta key Terminal AppearancePrefView ใช้ตัวเลือกทางซ้ายเป็นการระบุคำค้นหา @@ -111,6 +111,6 @@ Increase Terminal TermWindow เพิ่มขึ้น OK Terminal TermWindow ตกลง Close window Terminal TermWindow ปิดหน้าต่าง Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Haiku Terminal\nลิขสิทธิ์ 2001-2019 Haiku, Inc.\nลิขสิทธิ์(C) 1999 Kazuho Okui และ Takashi Murai.\n\nการใช้งาน: %s [OPTION] [SHELL]\n -Solarized Light Terminal colors scheme สีสว่าง Clear all Terminal TermWindow ลบทั้งหมด +Solarized Light Terminal colors scheme สีสว่าง Search forward Terminal FindWindow ค้นหาข้างหน้า diff --git a/data/catalogs/apps/terminal/tr.catkeys b/data/catalogs/apps/terminal/tr.catkeys index 2fe6195684..abaff21c13 100644 --- a/data/catalogs/apps/terminal/tr.catkeys +++ b/data/catalogs/apps/terminal/tr.catkeys @@ -1,8 +1,10 @@ -1 turkish x-vnd.Haiku-Terminal 3117643489 +1 turkish x-vnd.Haiku-Terminal 4032760800 +ANSI cyan color Terminal AppearancePrefView ANSI camgöbeği Close other tabs Terminal TermWindow Diğer sekmeleri kapat Insert path Terminal TermView Yolu ekle Terminal couldn't start the shell. Sorry. Terminal TermApp Uçbirim kabuğu başlatamadı. Üzgünüz. Text encoding Terminal TermWindow Metin kodlaması +ANSI blue color Terminal AppearancePrefView ANSI mavi OK Terminal SetTitleWindow Tamam Edit Terminal TermWindow Düzen Select all Terminal TermWindow Tümünü seç @@ -10,39 +12,49 @@ Confirm exit if active programs exist Terminal AppearancePrefView Etkin program \t%d\t-\tThe current working directory of the active process in the\n\t\t\tcurrent tab. Optionally the maximum number of path components\n\t\t\tcan be specified. E.g. '%2d' for at most two components.\n\t%T\t-\tThe Terminal application name for the current locale.\n\t%e\t-\tThe encoding of the current tab. Not shown for UTF-8.\n\t%i\t-\tThe index of the window.\n\t%p\t-\tThe name of the active process in the current tab.\n\t%t\t-\tThe title of the current tab. Terminal ToolTips \t%d\t-\tSekmede çalışan etkin işlemin içinde çalıştığı dizin\n\t\t\tİsteğe bağlı olarak olabilecek en çok yol bileşenlerinin sayısı\n\t\t\tbelirtilebilir. Örneğin en fazla iki bileşen için '%2d'.\n\t%T\t-\tMevcut yerelleştirme için Uçbirim uygulaması adı\n\t%e\t-\tSekme kodlaması. UTF-8 için gösterilmez.\n\t%i\t-\tPencere sırası\n\t%p\t-\tSekmedeki etkin işlemin adı\n\t%t\t-\tSekme başlığı Solarized Dark Terminal colors scheme Solmuş Koyu Copy Terminal TermWindow Kopyala +ANSI bright green color Terminal AppearancePrefView ANSI açık yeşil -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h --help yardımı göster\n -t --title pencere başlığını ayarla\n -f --fullscreen tam ekran yap\n -w --working-directory başlangıç çalışma dizinini ayarla +ANSI white color Terminal AppearancePrefView ANSI beyaz Retro Terminal colors scheme Eski Moda Edit tab title… Terminal TermWindow Sekme başlığını düzenle… -Print Terminal TermWindow Yazdır Settings Terminal TermWindow Ayarlar +Print Terminal TermWindow Yazdır %app% settings Terminal PrefWindow window title %app% Ayarları +ANSI black color Terminal AppearancePrefView ANSI siyah Use default Terminal SetTitleWindow Öntanımlıları kullan Close tab Terminal TermWindow Sekmeyi kapat Selected background Terminal AppearancePrefView Seçili arka plan Error! Terminal getString Hata! Set tab title Terminal TermWindow Sekme başlığını ayarla Appearance Terminal PrefWindow Görünüm +ANSI bright yellow color Terminal AppearancePrefView ANSI açık sarı Encoding: Terminal AppearancePrefView Kodlama: Create link here Terminal TermView Burada bağlantı oluştur Custom Terminal AppearancePrefView Window size Özel Selected text Terminal AppearancePrefView Seçili metin Change directory Terminal TermView Dizini değiştir +ANSI magenta color Terminal AppearancePrefView ANSI mor Page setup… Terminal TermWindow Sayfa düzeni… Slate Terminal colors scheme Arduvaz Defaults Terminal PrefWindow Öntanımlılar Cancel Terminal TermView İptal Revert Terminal PrefWindow Eski haline döndür +Relaxed Terminal colors scheme Sakin +ANSI bright magenta color Terminal AppearancePrefView ANSI açık mor Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Uçbirim -Use selection Terminal FindWindow Seçimi kullan +ANSI bright cyan color Terminal AppearancePrefView ANSI açık camgöbeği Find next Terminal TermWindow Sonrakini bul +Use selection Terminal FindWindow Seçimi kullan Copy link location Terminal TermView Bağlantı konumunu kopyala Window title: Terminal AppearancePrefView Pencere başlığı: New tab Terminal TermWindow Yeni sekme +ANSI bright blue color Terminal AppearancePrefView ANSI açık mavi Allow bold text Terminal AppearancePrefView Kalın metne izin ver Window title… Terminal TermWindow Pencere başlığı… Blue Terminal colors scheme Mavi Cannot execute \"%command\":\n\t%error Terminal Shell \"%command\" çalıştırılamadı:\n\t%error Open path Terminal TermView Yol aç +ANSI yellow color Terminal AppearancePrefView ANSI sarı Terminal System name Uçbirim Font size Terminal TermWindow Yazıtipi boyutu Custom Terminal colors scheme Özel @@ -53,16 +65,17 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Tanımlanamayan seçene Tab title: Terminal AppearancePrefView Sekme başlığı: Text not found. Terminal TermWindow Metin bulunamadı. Find failed Terminal TermWindow Bulma başarısız oldu -Match word Terminal FindWindow Tam sözcüğü eşleştir Color scheme: Terminal AppearancePrefView Renk şeması: +Match word Terminal FindWindow Tam sözcüğü eşleştir New Terminal Terminal TermWindow Yeni uçbirim Quit Terminal TermWindow Çık -Match case Terminal FindWindow BÜYÜK/küçük harf eşleştir Find previous Terminal TermWindow Öncekini bul +Match case Terminal FindWindow BÜYÜK/küçük harf eşleştir The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Sekme başlıklarını belirten dizgi. Aşağıdaki yer tutucular kullanılabilir:\n Close Terminal TermWindow Kapat Save to file… Terminal PrefWindow Dosyaya kaydet… Background Terminal AppearancePrefView Arka plan +ANSI green color Terminal AppearancePrefView ANSI yeşil Copy path Terminal TermView Yolu kopyala Window size Terminal TermWindow Pencere boyutu Copy absolute path Terminal TermView Tam yolu kopyala @@ -80,13 +93,15 @@ Window size: Terminal AppearancePrefView Pencere boyutu: Switch Terminals Terminal TermWindow Diğer uçbirime geç Decrease Terminal TermWindow Azalt Settings… Terminal TermWindow Ayarlar… -Cancel Terminal SetTitleWindow İptal +ANSI bright white color Terminal AppearancePrefView ANSI açık beyaz Blinking cursor Terminal AppearancePrefView Yanıp sönen imleç +Cancel Terminal SetTitleWindow İptal The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Pencere başlığını belirten dizgi.\nAşağıdaki yer tutucular kullanılabilir:\n -Use text: Terminal FindWindow Şu metni kullan: Close active tab Terminal TermWindow Etkin sekmeyi kapat +Use text: Terminal FindWindow Şu metni kullan: Save as default Terminal TermWindow Öntanımlı olarak kaydet Nothing is selected. Terminal TermWindow Hiçbir şey seçilmedi. +ANSI red color Terminal AppearancePrefView ANSI kırmızı Use left Option as Meta key Terminal AppearancePrefView Sol Alt düğmesini Meta düğmesi olarak kullan Find Terminal FindWindow Bul The pattern specifying the current tab title. The following placeholders\ncan be used:\n Terminal TermWindow Etkin sekme başlığını belirten dizgi.\nAşağıdaki yer tutucular kullanılabilir:\n @@ -94,7 +109,9 @@ Professional Terminal colors scheme Profesyonel Font: Terminal AppearancePrefView Yazıtipi: Paste Terminal TermWindow Yapıştır The pattern specifying the window titles. The following placeholders\ncan be used: Terminal AppearancePrefView Pencere başlıklarını belirten dizgi. Aşağıdaki yer tutucular kullanılabilir:\n +ANSI bright black color Terminal AppearancePrefView ANSI açık siyah Copy here Terminal TermView Buraya kopyala +ANSI bright red color Terminal AppearancePrefView ANSI açık kırmızı Use default shell Terminal Shell Öntanımlı kabuğu kullan Color: Terminal AppearancePrefView Renk: Open link Terminal TermView Bağlantıyı aç @@ -112,6 +129,6 @@ Increase Terminal TermWindow Artır OK Terminal TermWindow Tamam Close window Terminal TermWindow Pencereyi kapat Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Haiku Uçbirim\nCopyright 2001-2020 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui ve Takaşi Murai.\n\nKullanım: %s [SEÇENEK] [KABUK]\n -Solarized Light Terminal colors scheme Solmuş Açık Clear all Terminal TermWindow Tümünü temizle +Solarized Light Terminal colors scheme Solmuş Açık Search forward Terminal FindWindow İleri doğru arama diff --git a/data/catalogs/apps/terminal/uk.catkeys b/data/catalogs/apps/terminal/uk.catkeys index 0572f97db5..c04d85d797 100644 --- a/data/catalogs/apps/terminal/uk.catkeys +++ b/data/catalogs/apps/terminal/uk.catkeys @@ -1,4 +1,5 @@ -1 ukrainian x-vnd.Haiku-Terminal 3117643489 +1 ukrainian x-vnd.Haiku-Terminal 3655788306 +ANSI cyan color Terminal AppearancePrefView ANSI ціан Close other tabs Terminal TermWindow Закрити інші вкладки Insert path Terminal TermView Введіть шлях Terminal couldn't start the shell. Sorry. Terminal TermApp Термінал не зміг запустити оболонку. Прикро. @@ -11,11 +12,13 @@ Confirm exit if active programs exist Terminal AppearancePrefView Підтве Solarized Dark Terminal colors scheme Сяючий морок Copy Terminal TermWindow Копіювати -h, --help print this help\n -t, --title set window title\n -f, --fullscreen start fullscreen\n -w, --working-directory set initial working directory Terminal TermApp -h, --help показати довідку\n -t, --title установити заголовок вікна\n -f, --fullscreen повноекранний режим\n -w, --working-directory установити робочий каталог +ANSI white color Terminal AppearancePrefView ANSI білий Retro Terminal colors scheme Ретро Edit tab title… Terminal TermWindow Редагувати заголовок вкладки… -Print Terminal TermWindow Друк Settings Terminal TermWindow Налаштування +Print Terminal TermWindow Друк %app% settings Terminal PrefWindow window title %app% налаштування +ANSI black color Terminal AppearancePrefView ANSI чорний Use default Terminal SetTitleWindow За замовчуванням Close tab Terminal TermWindow Закрити вкладку Selected background Terminal AppearancePrefView Вибраний фон @@ -27,14 +30,15 @@ Create link here Terminal TermView Створити посилання тут Custom Terminal AppearancePrefView Window size Вибір користувача Selected text Terminal AppearancePrefView Вибраний текст Change directory Terminal TermView Змінити каталог +ANSI magenta color Terminal AppearancePrefView ANSI пурпурний Page setup… Terminal TermWindow Налаштування друку… Slate Terminal colors scheme Сланець Defaults Terminal PrefWindow За замовчуванням Cancel Terminal TermView Скасувати Revert Terminal PrefWindow Без змін Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions Термінал -Use selection Terminal FindWindow Використати вибране Find next Terminal TermWindow Знайти наступне +Use selection Terminal FindWindow Використати вибране Copy link location Terminal TermView Копіювати адресу посилання Window title: Terminal AppearancePrefView Заголовок вікна: New tab Terminal TermWindow Нова вкладка @@ -43,6 +47,7 @@ Window title… Terminal TermWindow Заголовок вікна… Blue Terminal colors scheme Синій Cannot execute \"%command\":\n\t%error Terminal Shell Неможливо виконати \"%command\":\n\t%error Open path Terminal TermView Відкрити шлях +ANSI yellow color Terminal AppearancePrefView ANSI жовтий Terminal System name Terminal Font size Terminal TermWindow Розмір шрифту Custom Terminal colors scheme Вибір користувача @@ -53,16 +58,17 @@ Unrecognized option \"%s\"\n Terminal arguments parsing Нероспізнан Tab title: Terminal AppearancePrefView Заголовок вкладки: Text not found. Terminal TermWindow Текст не знайдено. Find failed Terminal TermWindow Збій пошуку -Match word Terminal FindWindow Слово повністю Color scheme: Terminal AppearancePrefView Схема кольорів: +Match word Terminal FindWindow Слово повністю New Terminal Terminal TermWindow Новий Термінал Quit Terminal TermWindow Вийти -Match case Terminal FindWindow Враховувати регістр Find previous Terminal TermWindow Знайти попереднє +Match case Terminal FindWindow Враховувати регістр The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView Шаблон визначає заголовки вкладок.\nМожна використовувати наступні заповнювачі:\n\n Close Terminal TermWindow Закрити Save to file… Terminal PrefWindow Зберегти у файл… Background Terminal AppearancePrefView Фон +ANSI green color Terminal AppearancePrefView ANSI зелений Copy path Terminal TermView Копіювати шлях Window size Terminal TermWindow Розмір вікна Copy absolute path Terminal TermView Копіювати абсолютний шлях @@ -80,13 +86,14 @@ Window size: Terminal AppearancePrefView Розмір вікна: Switch Terminals Terminal TermWindow Переключити термінали Decrease Terminal TermWindow Зменшити Settings… Terminal TermWindow Налаштування… -Cancel Terminal SetTitleWindow Скасувати Blinking cursor Terminal AppearancePrefView Мигання курсору +Cancel Terminal SetTitleWindow Скасувати The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow Шаблон визначає заголовок вікна.\nМожна використовувати наступні заповнювачі:\n\n -Use text: Terminal FindWindow Використати текст: Close active tab Terminal TermWindow Закрити активну вкладку +Use text: Terminal FindWindow Використати текст: Save as default Terminal TermWindow Зберегти за замовчуванням Nothing is selected. Terminal TermWindow Нічого не вибрано. +ANSI red color Terminal AppearancePrefView ANSI червоний Use left Option as Meta key Terminal AppearancePrefView Використовувати лівий Option як клавішу Meta Find Terminal FindWindow Знайти The pattern specifying the current tab title. The following placeholders\ncan be used:\n Terminal TermWindow Шаблон визначає заголовок поточної вкладки.\nМожна використовувати наступні заповнювачі:\n\n @@ -112,6 +119,6 @@ Increase Terminal TermWindow Збільшити OK Terminal TermWindow ОК Close window Terminal TermWindow Закрити вікно Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nUsage: %s [OPTION] [SHELL]\n Terminal TermApp Haiku Terminal\nCopyright 2001-2019 Haiku, Inc.\nCopyright(C) 1999 Kazuho Okui and Takashi Murai.\n\nВикористання: %s [OPTION] [SHELL]\n -Solarized Light Terminal colors scheme Сяюче світло Clear all Terminal TermWindow Очистити все +Solarized Light Terminal colors scheme Сяюче світло Search forward Terminal FindWindow Шукати далі diff --git a/data/catalogs/apps/terminal/zh_Hans.catkeys b/data/catalogs/apps/terminal/zh_Hans.catkeys index 256a83e3c6..23f1765a23 100644 --- a/data/catalogs/apps/terminal/zh_Hans.catkeys +++ b/data/catalogs/apps/terminal/zh_Hans.catkeys @@ -12,8 +12,8 @@ Solarized Dark Terminal colors scheme 深色的 Solarized Copy Terminal TermWindow 复制 Retro Terminal colors scheme 复古主题 Edit tab title… Terminal TermWindow 编辑标签标题... -Print Terminal TermWindow 打印 Settings Terminal TermWindow 设置 +Print Terminal TermWindow 打印 %app% settings Terminal PrefWindow window title %app% 设置 Use default Terminal SetTitleWindow 使用默认 Close tab Terminal TermWindow 关闭标签 @@ -32,8 +32,8 @@ Defaults Terminal PrefWindow 默认主题 Cancel Terminal TermView 取消 Revert Terminal PrefWindow 恢复 Terminal Terminal TermWindow The title for the main window menubar entry related to terminal sessions 终端 -Use selection Terminal FindWindow 使用选择 Find next Terminal TermWindow 查找下一个 +Use selection Terminal FindWindow 使用选择 Copy link location Terminal TermView 复制链接位置 Window title: Terminal AppearancePrefView 窗口标题: New tab Terminal TermWindow 新建标签 @@ -51,12 +51,12 @@ Unrecognized option \"%s\"\n Terminal arguments parsing 无法识别的选项\" Tab title: Terminal AppearancePrefView 标签标题: Text not found. Terminal TermWindow 文本未搜索到。 Find failed Terminal TermWindow 查找失败 -Match word Terminal FindWindow 匹配单词 Color scheme: Terminal AppearancePrefView 色彩模式: +Match word Terminal FindWindow 匹配单词 New Terminal Terminal TermWindow 新建窗口 Quit Terminal TermWindow 退出 -Match case Terminal FindWindow 匹配大小写 Find previous Terminal TermWindow 查找上一个 +Match case Terminal FindWindow 匹配大小写 The pattern specifying the tab titles. The following placeholders\ncan be used: Terminal AppearancePrefView 该模式用于指定标签标题。可以使用下述\n占位符: Close Terminal TermWindow 关闭 Save to file… Terminal PrefWindow 保存为… @@ -78,11 +78,11 @@ Window size: Terminal AppearancePrefView 窗口大小: Switch Terminals Terminal TermWindow 切换终端 Decrease Terminal TermWindow 缩小 Settings… Terminal TermWindow 设置… -Cancel Terminal SetTitleWindow 取消 Blinking cursor Terminal AppearancePrefView 闪烁游标 +Cancel Terminal SetTitleWindow 取消 The pattern specifying the window title. The following placeholders\ncan be used:\n Terminal TermWindow 该图案指定了窗口标题。可以使用下述的\n占位符:\n -Use text: Terminal FindWindow 使用文本: Close active tab Terminal TermWindow 关闭活动标签 +Use text: Terminal FindWindow 使用文本: Save as default Terminal TermWindow 默认保存 Nothing is selected. Terminal TermWindow 未选中任何文件。 Find Terminal FindWindow 查找 @@ -108,6 +108,6 @@ Set window title Terminal TermWindow 设置窗口标题 Increase Terminal TermWindow 增大 OK Terminal TermWindow 确定 Close window Terminal TermWindow 关闭窗口 -Solarized Light Terminal colors scheme 浅色的 Solarized Clear all Terminal TermWindow 清空 +Solarized Light Terminal colors scheme 浅色的 Solarized Search forward Terminal FindWindow 搜索前一个 diff --git a/data/catalogs/apps/text_search/el.catkeys b/data/catalogs/apps/text_search/el.catkeys index 9f85f4f938..1be3ca6ecd 100644 --- a/data/catalogs/apps/text_search/el.catkeys +++ b/data/catalogs/apps/text_search/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.Haiku.TextSearch 3859480651 +1 greek, modern (1453-) x-vnd.Haiku.TextSearch 1757850908 Please select the files you wish to have selected for you in Tracker. GrepWindow Παρακαλώ επιλέξτε τα αρχεία που επιθυμείτε, τα οποία έχουν επιλέγει στον Ιχνηλάτη για σας. %appname% : %path% GrepWindow %appname% : %path% Failed to start xargs program! Grepper Το ξεκίνημα του προγράμματος xargs απέτυχε! @@ -6,6 +6,7 @@ Open selection GrepWindow Άνοιγμα επιλεγμένου Actions GrepWindow Ενέργειες New window GrepWindow Νέο παράθυρο Encoding GrepWindow Κωδικοποίηση +Set target to parent folder GrepWindow Ορισμός τονικού καταλόγου ως προορισμό OK GrepWindow Εντάξει %appname% : %path% : %searchtext% GrepWindow %appname% : %path% : %searchtext% Close GrepWindow Κλείσιμο diff --git a/data/catalogs/apps/tracker/pt_BR.catkeys b/data/catalogs/apps/tracker/pt_BR.catkeys index ad0b3472b5..19f3307837 100644 --- a/data/catalogs/apps/tracker/pt_BR.catkeys +++ b/data/catalogs/apps/tracker/pt_BR.catkeys @@ -1,2 +1,2 @@ 1 portuguese (brazil) x-vnd.Be-TRAK 1627828833 -Tracker System name Rastreador +Tracker System name Tracker diff --git a/data/catalogs/apps/tv/da.catkeys b/data/catalogs/apps/tv/da.catkeys index a6319ee088..0a0bb156ac 100644 --- a/data/catalogs/apps/tv/da.catkeys +++ b/data/catalogs/apps/tv/da.catkeys @@ -10,7 +10,7 @@ unknown MainWin ukendt Next channel MainWin Næste kanal Keep aspect ratio MainWin Behold skærmformat DVB - Digital Video Broadcasting TV MainWin DVB - Digital Video Broadcasting TV -Always on top MainWin Altid på top +Always on top MainWin Altid øverst Debug MainWin Fejlfind Interface MainWin Grænseflade force 720 x 576, display aspect 4:3 MainWin tving 720 x 576, skærm aspekt 4:3 @@ -24,4 +24,4 @@ TV System name TV Settings… MainWin Indstillinger… None MainWin Ingen Error, interface is busy:\n\n MainWin Fejl, grænseflade er optaget:\n\n -pixel aspect ratio MainWin pixel aspekt forhold +pixel aspect ratio MainWin pixel højde-bredde-forhold diff --git a/data/catalogs/apps/tv/pt_BR.catkeys b/data/catalogs/apps/tv/pt_BR.catkeys index d0a23bc279..9c506a0a94 100644 --- a/data/catalogs/apps/tv/pt_BR.catkeys +++ b/data/catalogs/apps/tv/pt_BR.catkeys @@ -3,7 +3,7 @@ No menu MainWin Nenhum menu No border MainWin Sem borda force 704 x 576, display aspect 4:3 MainWin forçar para 704 x 576, aspecto da tela 4:3 Error, connecting to interface failed:\n\n MainWin Erro, conectar à interface falhou:\n\n -force 544 x 576, display aspect 4:3 MainWin forças para 544 x 576, aspecto da tela 4:3 +force 544 x 576, display aspect 4:3 MainWin forçar para 544 x 576, aspecto da tela 4:3 Full screen MainWin Tela inteira Scale to native size MainWin Dimensionar para tamanho nativo unknown MainWin desconhecido diff --git a/data/catalogs/apps/webpositive/el.catkeys b/data/catalogs/apps/webpositive/el.catkeys index f15e71814c..2569558fde 100644 --- a/data/catalogs/apps/webpositive/el.catkeys +++ b/data/catalogs/apps/webpositive/el.catkeys @@ -1,7 +1,8 @@ -1 greek, modern (1453-) x-vnd.Haiku-WebPositive 2389041372 +1 greek, modern (1453-) x-vnd.Haiku-WebPositive 250728390 Authentication required Authentication Panel Απαιτείται ταυτοποίηση Previous WebPositive Window Προηγούμενο (Finish: %date) Download Window (Ολοκλήρωση: %date) +Open bookmarks confirmation WebPositive Window Άνοιγμα επιβεβαίωσης σελιδοδεικτών Download folder: Settings Window Φάκελος λήψεων: Close window WebPositive Window Κλείσιμο παραθύρου Find: WebPositive Window Εύρεση: @@ -52,6 +53,7 @@ Cookies for %s Cookie Manager Cookies για %s The download could not be opened. Download Window Δεν ήταν δυνατό το άνοιγμα της λήψης. Close Download Window Κλείσιμο WebPositive System name Περιηγητής Ιστού +%s - Search term Settings Window %s – όρος αναζήτησης Reload WebPositive Window Ανανέωση Expiration Cookie Manager Λήξη Download finished Download Window Η λήψη ολοκληρώθηκε @@ -99,6 +101,7 @@ There was an error trying to show the Bookmarks folder.\n\nError: %error WebPosi Revert Settings Window Επαναφορά Copy WebPositive Window Αντιγραφή Default standard font size: Settings Window Προεπιλεγμένο μέγεθος γραμματοσειράς: +Custom Settings Window Προσαρμογή Bookmark this page WebPositive Window Προσθήκη στους σελιδοδείκτες Show tabs if only one page is open Settings Window Να εμφανίζονται οι καρτέλες όταν μόνο μία σελίδα είναι ανοιχτή Close tab WebPositive Window Κλείσιμο καρτέλας @@ -128,6 +131,7 @@ Double-click or middle-click to open new tab. Tab Manager Κάντε διπλό Next WebPositive Window Επόμενο Bookmark error WebPositive Window Σφάλμα σελιδοδείκτη OK WebPositive Window Εντάξει +(%currentSize% of %expectedSize%, %rate%/s) Download Window (%currentSize% από %expectedSize%, %rate%/δευτ.) WebPositive Download Window Περιηγητής Ιστού Zoom text only WebPositive Window Να μεγενθυθεί το κείμενο μόνο Save page as… WebPositive Window Αποθήκευση σελίδας ως… diff --git a/data/catalogs/apps/webpositive/id.catkeys b/data/catalogs/apps/webpositive/id.catkeys index c0f32c6ad3..d1fc07a454 100644 --- a/data/catalogs/apps/webpositive/id.catkeys +++ b/data/catalogs/apps/webpositive/id.catkeys @@ -1,4 +1,4 @@ -1 indonesian x-vnd.Haiku-WebPositive 55235296 +1 indonesian x-vnd.Haiku-WebPositive 440329287 Authentication required Authentication Panel Otentikasi dibutuhkan Previous WebPositive Window Sebelumnya (Finish: %date) Download Window (Selesai: %date) @@ -53,6 +53,7 @@ Cookies for %s Cookie Manager Kuki untuk %s The download could not be opened. Download Window Unduhan tidak bisa dibuka. Close Download Window Tutup WebPositive System name WebPositive +%s - Search term Settings Window %s - Istilah pencarian Reload WebPositive Window Muat ulang Expiration Cookie Manager Kedaluwarsa Download finished Download Window Unduhan selesai diff --git a/data/catalogs/apps/webpositive/pt_BR.catkeys b/data/catalogs/apps/webpositive/pt_BR.catkeys index 5ea90f1a89..e9235f3717 100644 --- a/data/catalogs/apps/webpositive/pt_BR.catkeys +++ b/data/catalogs/apps/webpositive/pt_BR.catkeys @@ -3,10 +3,10 @@ Authentication required Authentication Panel Autenticação necessária Previous WebPositive Window Anterior (Finish: %date) Download Window (Encerrar: %date) Open bookmarks confirmation WebPositive Window Abrir confirmação de marcadores -Download folder: Settings Window Pasta de arquivos baixados: +Download folder: Settings Window Pasta de downloads: Close window WebPositive Window Fechar janela Find: WebPositive Window Localizar: -Script console WebPositive Window Console do script +Script console WebPositive Window Console de script Fonts Settings Window Fontes Path Cookie Manager Caminho Bookmarks WebPositive Window Marcadores @@ -26,20 +26,20 @@ Clone current page Settings Window Clonar página atual Start page: Settings Window Página inicial: Cancel Download Window Cancelar Settings Settings Window Configurações -Downloads WebPositive Window Itens baixados +Downloads WebPositive Window Downloads Browse… Settings Window Procurar… A bookmark for this page (%bookmarkName) already exists. WebPositive Window Don't translate variable %bookmarkName Um marcador para esta página (%bookmarkName) já existe. Resume prior session Settings Window Continuar sessão anterior Match case WebPositive Window Caso de compatibilidade Proxy password: Settings Window Senha do proxy: Size: Font Selection view Tamanho: -Page source WebPositive Window Origem da página +Page source WebPositive Window Código-fonte da página Proxy server port: Settings Window Porta do servidor proxy: -Error opening downloads folder Download Window Erro ao abrir pasta de itens baixados +Error opening downloads folder Download Window Erro ao abrir a pasta de downloads Show bookmark bar WebPositive Window Mostrar barra de marcadores Find WebPositive Window Localizar Standard font: Settings Window Fonte padrão: -Open download error Download Window Erro ao o abrir item baixado +Open download error Download Window Erro ao abrir o download General Settings Window Geral New tabs: Settings Window Novas abas: %url failed WebPositive Window Loading URL failed. Don't translate variable %url. %url falhou @@ -49,15 +49,15 @@ Decrease size WebPositive Window Diminuir tamanho Default fixed font size: Settings Window Tamanho padrão da fonte fixa: Sans serif font: Settings Window Fonte sem serifa: Clear WebPositive Window Limpar -Cookies for %s Cookie Manager Biscoitos para %s -The download could not be opened. Download Window O item baixado não pôde ser aberto. +Cookies for %s Cookie Manager Cookies para %s +The download could not be opened. Download Window O download não pôde ser aberto. Close Download Window Fechar WebPositive System name WebPositive %s - Search term Settings Window %s - Termo de busca Reload WebPositive Window Recarregar Expiration Cookie Manager Expiração Download finished Download Window Download concluído -Cookie manager WebPositive Window Gerenciador de biscoito +Cookie manager WebPositive Window Gerenciador de cookies OK Authentication Panel OK Hide password text Authentication Panel Ocultar texto da senha Username: Authentication Panel Usuário: @@ -86,16 +86,16 @@ New browser window Download Window Nova janela do navegador Open Download Window Abrir New window WebPositive Window Nova janela New windows: Settings Window Novas janelas: -The downloads folder could not be opened.\n\nError: %error Download Window Don't translate variable %error A pasta de downloads não pode ser aberta.\n\nErro: %error +The downloads folder could not be opened.\n\nError: %error Download Window Don't translate variable %error A pasta de downloads não pôde ser aberta.\n\nErro: %error Cancel Authentication Panel Cancelar Style: Font Selection view Estilo: -There was an error creating the bookmark file.\n\nError: %error WebPositive Window Don't translate variable %error Ocorreu um erro ao criar o arquivo de marcador.\n\nErro: %error +There was an error creating the bookmark file.\n\nError: %error WebPositive Window Don't translate variable %error Ocorreu um erro ao criar o arquivo de marcadores.\n\nErro: %error OK Download Window OK Proxy username: Settings Window Nome de usuário do proxy: Manage bookmarks WebPositive Window Gerenciar marcadores /s) Download Window ...as in 'per second' /s) Restart Download Window Reiniciar -Serif font: Settings Window Fonte serifada: +Serif font: Settings Window Fonte serif: Apply Settings Window Aplicar There was an error trying to show the Bookmarks folder.\n\nError: %error WebPositive Window Don't translate variable %error Houve um erro ao tentar acessar a pasta de Marcadores.\n\nErro: %error Revert Settings Window Desfazer @@ -108,22 +108,22 @@ Close tab WebPositive Window Fechar aba Remove Download Window Remover About WebPositive Window Sobre There are still downloads in progress, do you really want to quit WebPositive now? WebPositive Ainda existem downloads em progresso, deseja realmente sair do WebPositive agora? -Continue downloads WebPositive Continuar baixando arquivos +Continue downloads WebPositive Continuar downloads Proxy server requires authentication Settings Window O servidor proxy requer autenticação Cancel Settings Window Cancelar History WebPositive Window Histórico -Reset size WebPositive Window Desfazer o tamanho +Reset size WebPositive Window Redefinir tamanho Do you really want to clear the browsing history? WebPositive Window Você quer realmente limpar o histórico de navegação? -Find next occurrence of search terms WebPositive Window find bar next button tooltip Encontrar a próxima ocorrência nos termos da busca +Find next occurrence of search terms WebPositive Window find bar next button tooltip Encontre a próxima ocorrência de termos de pesquisa Fixed font: Settings Window Fonte fixa: Quit WebPositive Window Sair -Find previous occurrence of search terms WebPositive Window find bar previous button tooltip Encontrar as ocorrências anteriores nos termos da pesquisa +Find previous occurrence of search terms WebPositive Window find bar previous button tooltip Encontre ocorrências anteriores de termos de pesquisa Remember username and password for this site Authentication Panel Lembrar dados de usuário e senha deste site (Finish: %date - %duration left) Download Window (Término: %date - %duration restante) -Cookie manager Cookie Manager Gerenciador de biscoito +Cookie manager Cookie Manager Gerenciador de cookie Show home button Settings Window Mostrar botão inicial Start new session Settings Window Iniciar nova sessão -The cookie jar is empty! Cookie Manager O pote de biscoito está vazio! +The cookie jar is empty! Cookie Manager O pote de biscoito (cookie) está vazio! Value Cookie Manager Valor Remove missing Download Window Remover perdidos Paste WebPositive Window Colar @@ -133,9 +133,9 @@ Bookmark error WebPositive Window Erro no marcador OK WebPositive Window OK (%currentSize% of %expectedSize%, %rate%/s) Download Window (%currentSize% de %expectedSize%, %rate%/s) WebPositive Download Window WebPositive -Zoom text only WebPositive Window Aproximar o texto somente +Zoom text only WebPositive Window Aumentar somente o texto Save page as… WebPositive Window Salvar página como… -Page source error WebPositive Window Erro de origem da página +Page source error WebPositive Window Erro no código-fonte da página Auto-hide mouse pointer Settings Window Auto-ocultar ponteiro do mouse Requesting %url WebPositive Window Solicitando %url Flags Cookie Manager Sinalizadores @@ -148,14 +148,14 @@ Loading %url WebPositive Window Carregando %url The quick brown fox jumps over the lazy dog. Font Selection view Don't translate this literally ! Use a phrase showing all chars from A to Z. Ser ou não ser, eis a questão! Start up: Settings Window Inicialização: Confirmation WebPositive Window Confirmação -Session cookie Cookie Manager Sessão de biscoitos +Session cookie Cookie Manager Cookie da sessão Open all WebPositive Window Abrir tudo Cut WebPositive Window Recortar -Downloads Download Window Itens baixados +Downloads Download Window Downloads Open blank page Settings Window Abrir página em branco Clear history WebPositive Window Limpar histórico Cancel WebPositive Window Cancelar Bookmark info WebPositive Window Informação do marcador -Script console Console Window Console do script +Script console Console Window Console de script Copy URL Bar Copiar Open start page Settings Window Abrir página inicial diff --git a/data/catalogs/apps/workspaces/da.catkeys b/data/catalogs/apps/workspaces/da.catkeys index 48c5b55974..d43293cd6e 100644 --- a/data/catalogs/apps/workspaces/da.catkeys +++ b/data/catalogs/apps/workspaces/da.catkeys @@ -2,7 +2,7 @@ Quit Workspaces Afslut Invalid argument: %s\n Workspaces Ugyldigt argument: %s\n Change workspace count… Workspaces Vælg arbejdsplads antal… -Always on top Workspaces Altid på top +Always on top Workspaces Altid øverst Show window border Workspaces Vis vindueskant Show window tab Workspaces Vis vinduesfaneblad Auto-raise Workspaces Auto-hæv diff --git a/data/catalogs/apps/workspaces/pt_BR.catkeys b/data/catalogs/apps/workspaces/pt_BR.catkeys index c1696e13ae..ace101b98c 100644 --- a/data/catalogs/apps/workspaces/pt_BR.catkeys +++ b/data/catalogs/apps/workspaces/pt_BR.catkeys @@ -1,13 +1,13 @@ 1 portuguese (brazil) x-vnd.Be-WORK 3927737357 Quit Workspaces Sair Invalid argument: %s\n Workspaces Argumento inválido: %s\n -Change workspace count… Workspaces Alterar o número de ambiente de trabalho… +Change workspace count… Workspaces Alterar o número de áreas de trabalho… Always on top Workspaces Sempre no topo Show window border Workspaces Mostrar a borda da janela Show window tab Workspaces Exibir aba da janela Auto-raise Workspaces Auto-levantar Remove replicant Workspaces Remover replicante Live in the Deskbar Workspaces Ao vivo no Deskbar -Usage: %s [options] [workspace]\nwhere \"options\" are:\n --notitle\t\ttitle bar removed, border and resize kept\n --noborder\t\ttitle, border, and resize removed\n --avoidfocus\t\tprevents the window from being the target of keyboard events\n --alwaysontop\t\tkeeps window on top\n --notmovable\t\twindow can't be moved around\n --autoraise\t\tauto-raise the workspace window when it's at the screen edge\n --help\t\tdisplay this help and exit\nand \"workspace\" is the number of the Workspace to which to switch (0-31)\n Workspaces Utilização: %s [opções] [ambiente de trabalho]\nonde \"opções\" são:\n --notitle\t\tbarra de título removida, contorno e redimensionamento mantidos\n --noborder\t\ttítulo, contorno e redimensionamento removidos\n --avoidfocus\t\timpede a janela de ser o alvo de eventos do teclado\n --alwaysontop\t\tmantém a janela no topo\n --notmovable\t\ta janela não pode ser movida\n --autoraise\t\tauto-levanta a janela do ambiente de trabalho quando ela está na borda da tela\n --help\t\tmostra esta ajuda e encerra a execução\ne \"ambiente de trabalho\" é o número do Ambiente de Trabalho para o qual alternar (0-31)\n +Usage: %s [options] [workspace]\nwhere \"options\" are:\n --notitle\t\ttitle bar removed, border and resize kept\n --noborder\t\ttitle, border, and resize removed\n --avoidfocus\t\tprevents the window from being the target of keyboard events\n --alwaysontop\t\tkeeps window on top\n --notmovable\t\twindow can't be moved around\n --autoraise\t\tauto-raise the workspace window when it's at the screen edge\n --help\t\tdisplay this help and exit\nand \"workspace\" is the number of the Workspace to which to switch (0-31)\n Workspaces Utilização: %s [opções] [área de trabalho]\nonde \"opções\" são:\n --notitle\t\tbarra de título removida, contorno e redimensionamento mantidos\n --noborder\t\ttítulo, contorno e redimensionamento removidos\n --avoidfocus\t\timpede a janela de ser o alvo de eventos do teclado\n --alwaysontop\t\tmantém a janela no topo\n --notmovable\t\ta janela não pode ser movida\n --autoraise\t\tauto-eleva a janela da área de trabalho quando ela está na borda da tela\n --help\t\tmostra esta ajuda e encerra a execução\ne \"área de trabalho\" é o número da Área de Trabalho para o qual alternar (0-31)\n Switch on mouse wheel Workspaces Mudar no botão de rolagem do mouse -Workspaces System name Ambientes de Trabalho +Workspaces System name Áreas de Trabalho diff --git a/data/catalogs/bin/desklink/da.catkeys b/data/catalogs/bin/desklink/da.catkeys index 8daa707914..a3035e46e8 100644 --- a/data/catalogs/bin/desklink/da.catkeys +++ b/data/catalogs/bin/desklink/da.catkeys @@ -8,7 +8,7 @@ Couldn't launch MediaReplicant Kunne ikke begynde Volume VolumeControl Lydstyrke Open MediaPlayer MediaReplicant Åbn Medieafspiller %d dB VolumeControl %d dB -Media preferences… MediaReplicant Medie-præferencer… +Media preferences… MediaReplicant Præferencer for medier… Options MediaReplicant Valg Beep MediaReplicant Bip Open %name DeskButton Don't translate variable %name Åbn %name diff --git a/data/catalogs/bin/filepanel/el.catkeys b/data/catalogs/bin/filepanel/el.catkeys index 03f80334ad..51b3258da2 100644 --- a/data/catalogs/bin/filepanel/el.catkeys +++ b/data/catalogs/bin/filepanel/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.mmu_man.filepanel 3326046391 +1 greek, modern (1453-) x-vnd.mmu_man.filepanel 1996091223 display a load/save file panel\n FilePanelApp Εμφάνιση πάνελ φόρτωσης/αποθήκευσης αρχείων\n short\tlong\tdescription\n FilePanelApp σύντομη\tlμεγάλη\tπεριγραφή\n %s not a valid option\n FilePanelApp %s μη έγκυρη επιλογή\n @@ -8,6 +8,8 @@ short\tlong\tdescription\n FilePanelApp σύντομη\tlμεγάλη\tπερι -l\t--load\tuse a load FilePanel (default)\n FilePanelApp -l\t--load\t χρήση load FilePanel (προεποιλεγμένο)\n -n\t--name\tset the default name for saving\n FilePanelApp -n\t--name\tορίστε το προεπιλεγμένο όνομα για αποθήκευση\n -k\t--kind\tkind of entries that can be opened (flavour): any combination of f, d, s (file (default), directory, symlink)\n FilePanelApp -k\t--kind\tτο είδος των καταχωρήσεων που μπορούν να ανόίξουν (flavour): οποιοσδήποτε συνδυασμός των f, d, s (αρχείο (προεπιλογή), κατάλογος, symlink)\n +usage: %s [-h] [-d folder] [-l|-s] [-t ttl] [-1] [-m] FilePanelApp χρήση: %s [-h] [-d κατάλογος] [-l|-s] [-t ttl] [-1] [-m] +usage: %s [--help] [--directory folder] [--load|--save] [--title ttl] [--single] [--modal]\n FilePanelApp χρήση: %s [--help] [--directory κατάλογος] [--load|--save] [--title τίτλος] [--single] [--modal]\n -t\t--title\tset the FilePanel window title\n FilePanelApp -t\t--title\tορισμός τίτλου παραθύρου FilePanel\n -1\t--single\tallow only 1 file to be selected\n FilePanelApp -1\t--single\t επιτρεπεται μόνο 1 προεπιλεγμένο αρχείο\n -m\t--modal\tmakes the FilePanel modal\n FilePanelApp -m\t--modal\tκάνει το FilePanel τυπικό\n diff --git a/data/catalogs/bin/filepanel/id.catkeys b/data/catalogs/bin/filepanel/id.catkeys index 4e4eb441dc..d7a5d4bb7d 100644 --- a/data/catalogs/bin/filepanel/id.catkeys +++ b/data/catalogs/bin/filepanel/id.catkeys @@ -1,4 +1,4 @@ -1 indonesian x-vnd.mmu_man.filepanel 3326046391 +1 indonesian x-vnd.mmu_man.filepanel 1996091223 display a load/save file panel\n FilePanelApp tampilkan panel berkas muat/simpan\n short\tlong\tdescription\n FilePanelApp pendek\tpanjang\tdeskripsi\n %s not a valid option\n FilePanelApp %s adalah pilihan yang tidak sah\n @@ -8,6 +8,8 @@ short\tlong\tdescription\n FilePanelApp pendek\tpanjang\tdeskripsi\n -l\t--load\tuse a load FilePanel (default)\n FilePanelApp -l\t--load\tgunakan memuat FilePanel (standar)\n -n\t--name\tset the default name for saving\n FilePanelApp -n\t--name\tatur nama default untuk penyimpanan\n -k\t--kind\tkind of entries that can be opened (flavour): any combination of f, d, s (file (default), directory, symlink)\n FilePanelApp -k\t--kind\tjenis masukan yang bisa dibuka (rasa): kombinasi apa saja dari f, d, s (file (default), directory, symlink)\n +usage: %s [-h] [-d folder] [-l|-s] [-t ttl] [-1] [-m] FilePanelApp pengunaan: %s [-h] [-d folder] [-l|-s] [-t ttl] [-1] [-m] +usage: %s [--help] [--directory folder] [--load|--save] [--title ttl] [--single] [--modal]\n FilePanelApp penggunaan: %s [--help] [--directory folder] [--load|--save] [--title ttl] [--single] [--modal]\n -t\t--title\tset the FilePanel window title\n FilePanelApp -t\t--title\tatur judul FilePanel window\n -1\t--single\tallow only 1 file to be selected\n FilePanelApp -1\t--single\thanya ijinkan 1 berkas untuk dipilih\n -m\t--modal\tmakes the FilePanel modal\n FilePanelApp -m\t--modal\tmembuat FilePanel tipe modal\n diff --git a/data/catalogs/kits/el.catkeys b/data/catalogs/kits/el.catkeys index c137d0aff2..5a78f0395e 100644 --- a/data/catalogs/kits/el.catkeys +++ b/data/catalogs/kits/el.catkeys @@ -1,5 +1,6 @@ -1 greek, modern (1453-) x-vnd.Haiku-libbe 3337473349 +1 greek, modern (1453-) x-vnd.Haiku-libbe 2914417806 {0, plural, one{# byte} other{# bytes}} StringForSize {0, plural, one{# byte} other{# bytes}} +%.2f TiB/s StringForRate %.2f TiB/δευτ. All Rights Reserved. AboutWindow Με επιφύλαξη παντός δικαιώματος. gold master AboutWindow gold master Undo TextView Αναίρεση @@ -7,21 +8,26 @@ OK PrintJob Εντάξει gamma AboutWindow gamma development AboutWindow σε ανάπτυξη OK Dragger Εντάξει +%3.2f GiB/s StringForRate %3.2f GiB/δευτ. Print Server is not responding. PrintJob Ο Εξυπηρετητής Εκτυπώσεων δεν ανταποκρίνεται. About %app% AboutMenuItem Σχετικά με το %app% Warning Dragger Προειδοποίηση Green: ColorControl Πράσινο: +%3.2f KiB/s StringForRate %3.2f KiB/δευτ. Redo TextView Επαναφορά No pages to print! PrintJob Δεν υπάρχουν σελίδες προς εκτύπωση! beta AboutWindow beta OK ZombieReplicantView Εντάξει Cut TextView Αποκοπή %3.2f GiB StringForSize %3.2f GiB +Default Default decorator about box Προεπιλογή Can't delete this replicant from its original application. Life goes on. Dragger Η διαγραφή της ρέπλικας από την αρχική της θέση απέτυχε. Η ζωή συνεχίζεται. Error ZombieReplicantView Σφάλμα Paste TextView Επικόλληση OK AboutWindow Εντάξει +{0, plural, one{# byte/s} other{# bytes/s}} StringForRate {0, plural, one{# byte/δευτ.} other{# bytes/δευτ.}} Special Thanks: AboutWindow Ευχαριστούμε ιδιαίτερα τους/τις: +Default Haiku window decorator. Default decorator about box Προεπιλεγμένη διακόσμηση παραθύρων Haiku. %.2f TiB StringForSize %.2f TiB Remove replicant Dragger Αφαίρεση ρέπλικας Version AboutWindow Έκδοση @@ -31,6 +37,7 @@ Copy TextView Αντιγραφή Select all TextView Επιλογή όλων alpha AboutWindow alpha %3.2f MiB StringForSize %3.2f MiB +%3.2f MiB/s StringForRate %3.2f MiB/δευτ. Error PrintJob Σφάλμα About %app% AboutWindow Σχετικά με το %app% About %app… Dragger Σχετικά με το %app… diff --git a/data/catalogs/kits/media/id.catkeys b/data/catalogs/kits/media/id.catkeys index 4ce27bc3bc..5bf74d5c1d 100644 --- a/data/catalogs/kits/media/id.catkeys +++ b/data/catalogs/kits/media/id.catkeys @@ -9,4 +9,4 @@ Stopping media server… MediaDefs Menghentikan server media… Waiting for media_server to quit. MediaDefs Menunggu media_server berhenti. Done shutting down. MediaDefs Selesai dimatikan. Error occurred starting media services. MediaDefs Terjadi kesalahan saat memulai layanan media. -Media Service MediaDefs Media Service (Layanan Media) +Media Service MediaDefs Layanan Media diff --git a/data/catalogs/kits/package/fr.catkeys b/data/catalogs/kits/package/fr.catkeys index 76dc1e4319..e1c6630b2e 100644 --- a/data/catalogs/kits/package/fr.catkeys +++ b/data/catalogs/kits/package/fr.catkeys @@ -1,6 +1,6 @@ 1 french x-vnd.Haiku-libpackage 134767648 Fetching repository-cache from %url RefreshRepositoryRequest Récupération du cache de dépôt depuis %url -Validating checksum for %repositoryName RefreshRepositoryRequest Vérification d'intégrité de %repositoryName +Validating checksum for %repositoryName RefreshRepositoryRequest Vérification d’intégrité de %repositoryName Failed to remove transaction directory PackageManagerKit Impossible de supprimer le répertoire de transaction Failed to get config for repository \"%s\". Skipping. PackageManagerKit Impossible d’obtenir la configuration pour le dépôt « %s ». Abandon. Refreshing repository \"%s\" failed PackageManagerKit Impossible de rafraîchir le dépôt « %s » diff --git a/data/catalogs/kits/tracker/ca.catkeys b/data/catalogs/kits/tracker/ca.catkeys index 23082929e4..a6643caf58 100644 --- a/data/catalogs/kits/tracker/ca.catkeys +++ b/data/catalogs/kits/tracker/ca.catkeys @@ -1,4 +1,4 @@ -1 catalan; valencian x-vnd.Haiku-libtracker 3380227078 +1 catalan; valencian x-vnd.Haiku-libtracker 2915475646 Created ContainerWindow Creat Icon AttributesView Icona Open and make preferred OpenWithWindow Obre-ho i fes-ho preferit @@ -85,6 +85,7 @@ GiB WidgetAttributeText GiB Clean up ContainerWindow Neteja Modified FindPanel Modificat Select all QueryContainerWindow Selecciona-ho tot +Generate image thumbnails SettingsView Genera miniatures d’imatges Select… FilePanelPriv Seleccioneu... preferences B_PREFERENCES_DIRECTORY preferències Name Person Query Columns Nom diff --git a/data/catalogs/kits/tracker/cs.catkeys b/data/catalogs/kits/tracker/cs.catkeys index 979828bd68..e7697b1152 100644 --- a/data/catalogs/kits/tracker/cs.catkeys +++ b/data/catalogs/kits/tracker/cs.catkeys @@ -1,10 +1,10 @@ -1 czech x-vnd.Haiku-libtracker 3380227078 +1 czech x-vnd.Haiku-libtracker 2915475646 Created ContainerWindow Vytvořeno Icon AttributesView Ikona Open and make preferred OpenWithWindow Otevři a nastav preferovanou Kind ContainerWindow Druh Open with… ContainerWindow Otevřít v... -Error moving \"%name\" to Trash. (%error) FSUtils Chyba přesunu \"%name\" do Koše. (%error) +Error moving \"%name\" to Trash. (%error) FSUtils Chyba přesunu \"%name\" do koše. (%error) Or FindPanel Nebo MIME Description AttributesView Popis MIME before FindPanel před @@ -80,11 +80,12 @@ Moving: StatusWindow Přesouvání: Select SelectionWindow Vybrat Select InfoWindow Vybrat OK OpenWithWindow OK -Include trash FindPanel Začlenit Koš +Include trash FindPanel Začlenit koš GiB WidgetAttributeText GiB Clean up ContainerWindow Vyčistit Modified FindPanel Upravené Select all QueryContainerWindow Vybrat vše +Generate image thumbnails SettingsView Vytvořit náhledy Select… FilePanelPriv Vybrat... preferences B_PREFERENCES_DIRECTORY předvolby Name Person Query Columns Jméno @@ -132,7 +133,7 @@ Create relative link ContainerWindow Vytvořit relativní odkaz Owner FilePermissionsView Vlastník Cancel FSClipBoard Zrušit Modified PoseView Upraveno -Move to Trash ContainerWindow Přesunout do Koše +Move to Trash ContainerWindow Přesunout do koše All files and folders FindPanel Všechny soubory a složky Add-ons ContainerWindow Doplňky Too many parenthesis. libtracker Příliš mnoho závorek. @@ -449,7 +450,7 @@ MIME Signature AttributesView Podpis MIME Select all VirtualDirectoryWindow Vybrat vše Rename FSUtils button label Přejmenovat Clean up all ContainerWindow Vyčistit vše -Add current folder FilePanelPriv Přidat současnou složku +Add current folder FilePanelPriv Přidat aktuální adresář Description: InfoWindow Popis: Are you sure you want to delete the selected item(s)? This operation cannot be reverted. FSUtils Opravdu si přejete vybrané položky odstranit? Tato operace je nevratná. Grayscale picture AttributesView Obrázek ve stupních šedi diff --git a/data/catalogs/kits/tracker/da.catkeys b/data/catalogs/kits/tracker/da.catkeys index e9428e4bc9..cd660c39d6 100644 --- a/data/catalogs/kits/tracker/da.catkeys +++ b/data/catalogs/kits/tracker/da.catkeys @@ -1,4 +1,4 @@ -1 danish x-vnd.Haiku-libtracker 3380227078 +1 danish x-vnd.Haiku-libtracker 2915475646 Created ContainerWindow Oprettet Icon AttributesView Ikon Open and make preferred OpenWithWindow Åbn og lav foretrukket @@ -12,7 +12,7 @@ Volume icons TrackerSettingsWindow Ikoner for diskområder Ignore case SelectionWindow Skel ikke mellem store og små bogstaver Current folder ContainerWindow Nuværende mappe Finish: %time - Over %finishtime left StatusWindow Færdig: %time - Over %finishtime tilbage -Mount all disks now AutoMounterSettings Monter alle diske nu +Mount all disks now AutoMounterSettings Montér alle diske nu Location: InfoWindow Placering: Name PoseView Navn Kind: InfoWindow Slags: @@ -24,7 +24,7 @@ Bitmap icon AttributesView Bitmap-ikon You can't replace a folder with one of its sub-folders. FSUtils Du kan ikke erstatte en mappe med dets undermapper. Select… VirtualDirectoryWindow Vælg … Name Default Query Columns Navn -Unmount ContainerWindow Afmonter +Unmount ContainerWindow Afmontér Eject when unmounting AutoMounterSettings Skub ud ved afmontering Searching for disks to mount… StatusWindow Søger efter diske at montere… Value AttributesView Værdi @@ -80,11 +80,12 @@ Moving: StatusWindow Flytning: Select SelectionWindow Vælg Select InfoWindow Vælg OK OpenWithWindow OK -Include trash FindPanel Inkluder papirkurven +Include trash FindPanel Medtag papirkurv GiB WidgetAttributeText GiB Clean up ContainerWindow Ryd op Modified FindPanel Ændret Select all QueryContainerWindow Vælg alt +Generate image thumbnails SettingsView Generer billedminiaturer Select… FilePanelPriv Vælg… preferences B_PREFERENCES_DIRECTORY præferencer Name Person Query Columns Navn @@ -93,7 +94,7 @@ Corrupted opcode. libtracker Beskadiget opkode. Atom AttributesView Atom %SizeProcessed of %TotalSize, %BytesPerSecond/s StatusWindow %SizeProcessed af %TotalSize, %BytesPerSecond/s Preparing to restore items… StatusWindow Forbereder gendannelse af elementerne… -Mount ContainerWindow Monter +Mount ContainerWindow Montér {0, plural, other{<# rectangles>}} AttributesView {0, plural, other{<# rektangler>}} Desktop B_DESKTOP_DIRECTORY Skrivebord Corrupted pointers. libtracker Beskadigede pointere. @@ -161,14 +162,14 @@ develop B_SYSTEM_DEVELOP_DIRECTORY udvikle 64-bit integer AttributesView 64-bit heltal Cut more ContainerWindow Klip mere The Tracker must be running to see Info windows. PoseView Trackeren skal køre for at kunne se Info-vinduer. -Tracker preferences TrackerSettingsWindow Tracker-præferencer +Tracker preferences TrackerSettingsWindow Præferencer for Tracker Read FilePermissionsView Læs There was an error writing the attribute. WidgetAttributeText Der skete en fejl mens attributten blev skrevet. Path Default Query Columns Sti If you rename %target, %osName may not behave properly!\n\nAre you sure you want to do this? FSUtils Hvis du flytter %target, så vil %osName måske ikke opføre sig korrekt!\n\nEr du sikker på, at du vil gøre det? Could not open \"%name\" (%error). FSUtils Kunne ikke åbne \"%name\" (%error). Media parameter group AttributesView Medieparametergruppe -%name info InfoWindow InfoWindow Title %name-info +%name info InfoWindow InfoWindow Title Information om %name If you move the home folder, %osName may not behave properly!\n\nAre you sure you want to do this?\n\nTo move the home folder anyway, hold down the Shift key and click \"Move\". FSUtils Hvis du flytter hjemmemappen, så vil %osName måske ikke opføre sig korrekt!\n\nEr du sikker på, at du vil gøre det?\n\nFor alligevel at flytte hjemmemappen, hold Skift-tasten nede og klik på \"Flyt\". Property info AttributesView Egenskabsinfo Sorry, you can't create links in the Trash. PoseView Beklager, du kan ikke lave links i papirkurven. @@ -179,7 +180,7 @@ Preferences… ContainerWindow Præferencer… Could not open \"%document\" because application \"%app\" is in the Trash. FSUtils Kunne ikke åbne \"%document\" fordi programmet \"%app\" er i papirkurven. Work Phone Person Query Columns Arbejdstelefon Close ContainerWindow Luk -Get info ContainerWindow Få information +Get info ContainerWindow Hent information MIME Type AttributesView MIME-type Show folder location in title tab SettingsView Vis mappeplacering i fanebladstitlen There was an error resolving the link. Tracker Der opstod en fejl ved løsning af linket. @@ -211,7 +212,7 @@ Skip FSUtils Spring over Text list AttributesView Tekstliste Used space color SettingsView Farve for brugt plads Cancel FSUtils Annuller -Original name ContainerWindow Originalt navn +Original name ContainerWindow Oprindelige navn Unknown WidgetAttributeText Ukendt 32-bit integer AttributesView 32-bit heltal The specified name is already used as the name of a folder. Please choose another name. FilePanelPriv Det specificerede navn bliver allerede brugt som navnet på en mappe. Vælg venligst et andet navn. @@ -247,13 +248,13 @@ Show navigator SettingsView Vis navigatør Select all DeskWindow Vælg alt Double-precision floating point number AttributesView Flydende kommatal med dobbelt præcision Decrease size ContainerWindow Mindre -Recent queries FindPanel Nylige forespørgsler -Mount all MountMenu Monter alle +Recent queries FindPanel Seneste forespørgsler +Mount all MountMenu Montér alle 128 x 128 DeskWindow 128 x 128 Size Default Query Columns Størrelse Favorites FavoritesMenu Foretrukne Delete FilePanelPriv Slet - FavoritesMenu + FavoritesMenu Formula %formula FindPanel FindResultTitle Formel %formula Preparing to create links… StatusWindow Forbereder oprettelse af links… Tracker status StatusWindow Trackerstatus @@ -270,7 +271,7 @@ Point AttributesView Punkt home B_USER_DIRECTORY hjem Tracker New Templates B_USER_SETTINGS_DIRECTORY/Tracker/Tracker New Templates Tracker nye skabeloner Disk mounting during boot AutoMounterSettings Diskmontering under opstart -Don't automount AutoMounterSettings Automonter ikke +Don't automount AutoMounterSettings Automontér ikke Node ref AttributesView Knudepunktsreference Could not find application \"%appname\" OpenWithWindow Kunne ikke finde programmet \"%appname\" Unmatched parenthesis. libtracker Ikke-matchede parenteser. @@ -295,13 +296,13 @@ calculating… InfoWindow udregner… Preferred for file OpenWithWindow Anbefalet til fil OK AutoMounterSettings OK copying FSUtils kopiering -Get info FilePanelPriv Få information +Get info FilePanelPriv Hent information MIME String AttributesView MIME-streng Delete ContainerWindow Slet Execute FilePermissionsView Eksekver Show volumes on Desktop SettingsView Vis diskområder på skrivebordet no AttributesView nej -Recent folders ContainerWindow Nylige mapper +Recent folders ContainerWindow Seneste mapper Desktop Model Skrivebord Select all ContainerWindow Vælg alle apps B_APPS_DIRECTORY apps @@ -326,7 +327,7 @@ Invert SelectionWindow Omvend Would you like to find some other suitable application? FSUtils Vil du finde et andet egnet program? *+? operand may be empty. libtracker *+?-operand må ikke være tom. (unknown) AttributesView (ukendt) -Recent folders FavoritesMenu Nylige mapper +Recent folders FavoritesMenu Seneste mapper Signed memory size AttributesView Hukommelsesstørrelse med fortegn The specified name is illegal. Please choose another name. FilePanelPriv Det specificerede navn er ulovligt. Vælg venligst en andet navn. of %items StatusWindow af %items @@ -438,7 +439,7 @@ Name QueryPoseView Navn Error %error loading add-On %name. ContainerWindow Fejl %error ved indlæsning af tilføjelsen %name. Does not handle file OpenWithWindow Håndterer ikke fil E-mail Person Query Columns E-mail -Arrange by ContainerWindow Arrangér efter +Arrange by ContainerWindow Opstil efter Attributes AttributesView Attributter Sorry, saving more than one item is not allowed. FilePanelPriv Beklager, det er ikke tilladt at gemme mere end et element. 64-bit unsigned integer AttributesView 64-bit heltal uden fortegn @@ -453,7 +454,7 @@ Add current folder FilePanelPriv Tilføj nuværende mappe Description: InfoWindow Beskrivelse: Are you sure you want to delete the selected item(s)? This operation cannot be reverted. FSUtils Er du sikker på, at du vil slette de valgte elementer? Handlingen kan ikke fortrydes. Grayscale picture AttributesView Gråtone billede -Mount DeskWindow Monter +Mount DeskWindow Montér ends with FindPanel slutter med Show Disks icon SettingsView Vis diskikoner Outline selection rectangle only SettingsView Omrids markering kun for rektanglen @@ -515,7 +516,7 @@ If you alter the home folder, %osName may not behave properly!\n\nAre you sure y Sorry, you can't copy items to the Trash. PoseView Beklager, du kan ikke kopiere elementer til papirkurven. Invert selection VirtualDirectoryWindow Omvendt markering New folder FilePanelPriv Ny mappe -{0, plural, one{# item} other{# items}} CountView Number of selected items: \"1 item\" or \"2 items\" {0, plural, one{# punkt} other{# punkter}} +{0, plural, one{# item} other{# items}} CountView Number of selected items: \"1 item\" or \"2 items\" {0, plural, one{# element} other{# elementer}} Name AttributesView Navn Invalid bracket range. libtracker Ugyldigt klammeområde. the settings folder FSUtils indstillingsmappen diff --git a/data/catalogs/kits/tracker/de.catkeys b/data/catalogs/kits/tracker/de.catkeys index 1e44797787..12d2d738d3 100644 --- a/data/catalogs/kits/tracker/de.catkeys +++ b/data/catalogs/kits/tracker/de.catkeys @@ -1,4 +1,4 @@ -1 german x-vnd.Haiku-libtracker 2319269008 +1 german x-vnd.Haiku-libtracker 1854517576 Created ContainerWindow Erstellt Icon AttributesView Icon Open and make preferred OpenWithWindow Öffnen und zur Bevorzugten machen @@ -84,6 +84,7 @@ GiB WidgetAttributeText GiB Clean up ContainerWindow Icons ausrichten Modified FindPanel Geändert Select all QueryContainerWindow Alles auswählen +Generate image thumbnails SettingsView Miniaturbilder erstellen Select… FilePanelPriv Auswählen… Name Person Query Columns Name Skip all FSUtils Alle überspringen diff --git a/data/catalogs/kits/tracker/el.catkeys b/data/catalogs/kits/tracker/el.catkeys index dac7c40937..8fe0f17f54 100644 --- a/data/catalogs/kits/tracker/el.catkeys +++ b/data/catalogs/kits/tracker/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.Haiku-libtracker 1713978454 +1 greek, modern (1453-) x-vnd.Haiku-libtracker 2915475646 Created ContainerWindow Δημιουργήθηκε Icon AttributesView Εικονίδιο Open and make preferred OpenWithWindow 'Ανοιγμα και ορισμός προεπιλεγμένου @@ -6,6 +6,7 @@ Kind ContainerWindow Είδος Open with… ContainerWindow Άνοιγμα με… Error moving \"%name\" to Trash. (%error) FSUtils Σφάλμα κατά τη μετακίνηση του \"%name\" στον Κάδο Απορριμμάτων. (%error) Or FindPanel Ή +MIME Description AttributesView Περιγραφή MIME before FindPanel πριν Volume icons TrackerSettingsWindow Εικονίδια τόμου Ignore case SelectionWindow Αγνόηση @@ -40,6 +41,7 @@ Small bitmap icon AttributesView Μικρό εικονίδιο bitmap Would you like to find a suitable application to open the file? FSUtils Θα θέλατε να πραγματοποιηθεί η έυρεση μιας κατάλληλης εφαρμογής για το άνοιγμα του αρχείου; 64 x 64 ContainerWindow 64 x 64 You cannot replace a folder or a symbolic link with a file. FSUtils Δεν μπορείται να αντικαταστήσετε έναν φάκελο ή έναν συμβολικό δεσμό με ένα αρχείο. +{0, plural, other{<# dates>}} AttributesView {0, plural, other{<# ημερομηνίες>}} Trailing \\. libtracker Περισσευούμενο \\. At %func \nfind_directory() failed. \nReason: %error Email Query Columns Στην %func \nαπέτυχε η find_directory(). \nΑιτία: %error Handles any file OpenWithWindow Χειρίζεται κάθε αρχείο @@ -83,20 +85,24 @@ GiB WidgetAttributeText GiB Clean up ContainerWindow Καθαρισμός Modified FindPanel Τροποποιήθηκε Select all QueryContainerWindow Επιλογή όλων +Generate image thumbnails SettingsView Παραγωγή μικρογραφιών εικόνων Select… FilePanelPriv Επιλογή… preferences B_PREFERENCES_DIRECTORY προτιμήσεις Name Person Query Columns Όνομα Skip all FSUtils Παράλειψη όλων Corrupted opcode. libtracker Μη έγκυρος κώδικας χειρισμού. +Atom AttributesView Άτομο %SizeProcessed of %TotalSize, %BytesPerSecond/s StatusWindow %SizeProcessed από %TotalSize, %BytesPerSecond/δ Preparing to restore items… StatusWindow Γίνεται προετοιμασία για την επαναφορά αντικειμένων… Mount ContainerWindow Προσάρτηση +{0, plural, other{<# rectangles>}} AttributesView {0, plural, other{<# τετράγωνα>}} Desktop B_DESKTOP_DIRECTORY Επιφάνεια Εργασίας Corrupted pointers. libtracker Κατεστραμμένοι δείκτες. Link to: InfoWindow Σύνδεση με: Copy here ContainerWindow Αντιγραφή εδώ Character AttributesView Χαρακτήρας All disks FindPanel Όλοι οι δίσκοι +Affine transform AttributesView Συγγενειακός μετασχηματισμός Window ContainerWindow Παράθυρο %BytesPerSecond/s StatusWindow %BytesPerSecond/s Remove FindPanel Αφαίρεση @@ -107,9 +113,11 @@ Edit templates… TemplatesMenu Επεξεργασία προτύπων… {0, plural, one{# byte} other{# bytes}} FSUtils {0, plural, one{# byte} other{# bytes}} 8-bit integer AttributesView Ακέραιος αριθμός 8-bit 8-bit unsigned integer AttributesView Ακέραιος αριθμός χωρίς πρόσημο 8-bit +%s info InfoWindow window title Πληροφορίες για %s %capacity (%used used -- %free free) InfoWindow %capacity (%used σε χρήση -- %free ελεύθερα) Hide dotfiles SettingsView Απόκρυψη αρχείων με τελεία στην αρχή Trash Model Κάδος +Enable type-ahead filtering SettingsView Ενεργοποίηση προβλεπτικού φίλτρου copy FSUtils filename copy αντιγραφή New folder%ld FSUtils Νέος φάκελος%ld Location OpenWithWindow Τοποθεσία @@ -118,6 +126,7 @@ Resize to fit QueryContainerWindow Προσαρμογή μεγέθους List folders first SettingsView Λίστα φακέλων πρώτα Find FSUtils Εύρεση An item named \"%name\" already exists in this folder. Would you like to replace it with the symbolic link you are creating? FSUtils Ένα στοιχείο που ονομάζεται \"%name\" υπάρχει ήδη σε αυτό το φάκελο. Θα θέλατε να τον αντικαταστήσετε με τον συμβολικό δεσμό που δημιουργείτε; +List view ContainerWindow Προβολή λίστας Temporary FindPanel Προσωρινό Modified QueryPoseView Τροποποιήθηκε Create relative link ContainerWindow Δημιουργία συγγενικού συνδέσμου @@ -176,6 +185,7 @@ MIME Type AttributesView Τύπος MIME Show folder location in title tab SettingsView Εμφάνιση τοποθεσίας φακέλου στον τίτλο καρτέλας There was an error resolving the link. Tracker Υπήρξε κάποιο σφάλμα κατά την επίλυση του συνδέσμου. There was a problem trying to save in the folder you specified. Please try another one. FilePanelPriv Υπήρξε κάποιο πρόβλημα κατά την προσπάθεια αποθήκευσης στο φάκελο που προσδιορίσατε. Παρακαλώ προσπαθήστε με έναν άλλο. +{0, plural, other{<# values>}} AttributesView {0, plural, other{<# τιμές>}} Desktop TrackerSettingsWindow Επιφάνεια εργασίας Nested *?+. libtracker Εμπεριεχόμενο *?+. Move FSUtils button label Μετακίνηση @@ -191,6 +201,7 @@ is not FindPanel δεν είναι Icon view DeskWindow Προβολή εικονιδίου Mount settings… ContainerWindow Ρυθμίσεις προσάρτησης… Keywords Bookmark Query Columns Λέξεις κλειδιά +Media parameter web AttributesView Πολυμεσική παράμετρος ιστού Copy more ContainerWindow Αντιγραφή κι άλλων by name FindPanel κατα όνομα Sorry, you can't save things at the root of your system. FilePanelPriv Λυπούμαστε, αλλά δεν μπορείτε να αποθηκεύσετε αντικείμενα στη ρίζα του συστήματός σας. @@ -249,6 +260,7 @@ Preparing to create links… StatusWindow Προετοιμασία δημιου Tracker status StatusWindow Κατάσταση Ιχνηλάτη Handles any %type OpenWithWindow Χειρίζεται κάθε %type The mount server could not be contacted. AutoMounterSettings Αδυναμία επικοινωνίας με τον εξυπηρετητή προσάρτησης. +Query template FindPanel Πρότυπο αναζήτησης ends with SelectionWindow τελειώνει με Open OpenWithWindow Άνοιγμα You must have at least one attribute showing. PoseView Πρέπει να έχετε τουλάχιστον μία εμφανής ιδιότητα. @@ -260,6 +272,7 @@ home B_USER_DIRECTORY αρχικός Tracker New Templates B_USER_SETTINGS_DIRECTORY/Tracker/Tracker New Templates Νέα πρότυπα Ιχνηλάτη Disk mounting during boot AutoMounterSettings Προσάρτηση δίσκου κατά την εκκίνηση Don't automount AutoMounterSettings Να μη γίνει αυτόματη προσάρτηση +Node ref AttributesView Αναφορά κόμβου Could not find application \"%appname\" OpenWithWindow Αδυναμία εύρεσης της εφαρμογής \"%appname\" Unmatched parenthesis. libtracker Η παρένθεση δεν κλείνει. Extended attribute AttributesView Εκτεταμένη ιδιότητα @@ -299,6 +312,7 @@ Delete FSUtils Διαγραφή Edit name ContainerWindow Επεξεργασία ονόματος Could not open \"%document\" (Missing symbol: %symbol). \n FSUtils Αδυναμία ανοίγματος του \"%document\" (Λείπει το σύμβολο: %symbol). \n ASCII Text AttributesView Κείμενο ASCII +Atom reference AttributesView Αναφορά ατόμου config B_USER_CONFIG_DIRECTORY ρύθμιση Error moving \"%name\". FSUtils Σφάλμα κατα τη μετακίνηση του \"%name\". Select… QueryContainerWindow Επιλογή… @@ -307,6 +321,7 @@ Settings… MountMenu Ρυθμίσεις… You cannot put the selected item(s) into the trash. FSUtils Δεν μπορείτε να τοποθετήσετε την επιλογή σας στον Κάδο Απορριμάτων. Increase size DeskWindow Αύξηση μεγέθους starts with SelectionWindow ξεκινάει με +Any AttributesView Οποιοδήποτε New DeskWindow Νέο Invert SelectionWindow Αντιστροφή Would you like to find some other suitable application? FSUtils Θα θέλετα να επιλέξετε μια ποιο κατάλληλη εφαρμογή; @@ -316,6 +331,7 @@ Recent folders FavoritesMenu Πρόσφατοι φάκελοι Signed memory size AttributesView Μέγεθος μνήμης με πρόσημο The specified name is illegal. Please choose another name. FilePanelPriv Το προσδιορισμένο όνομα είναι μη αποδεκτό. Παρακαλώ διαλέξτε άλλο όνομα. of %items StatusWindow από %items +MIME Path AttributesView Διαδρομή MIME less than FindPanel λιγότερο από Error copying file \"%name\":\n\t%error\n\nWould you like to continue? FSUtils Σφάλμα αντιγραφής του αρχείου \"%name\":\n\t%error\n\nΘα θέλατε να συνεχίσετε; Creating links: StatusWindow Γίνεται δημιουργία συνδέσμων: @@ -335,7 +351,9 @@ If you alter the system folder or its contents, you won't be able to boot %osNam Save FilePanelPriv Αποθήκευση Could not open \"%document\" with application \"%app\" (Missing libraries: %library). \n FSUtils Αδυναμία ανοίγματος του \"%document\" με την εφαρμογή \"%app\" (Βιβλιοθήκες που λείπουν: %library). \n Finish: %time StatusWindow Ολοκλήρωση: %time +Messenger AttributesView Αγγελιαφόρος after FindPanel μετά +{0, plural, one{<# data byte>} other{<# bytes of data>}} AttributesView {0, plural, one{<# byte δεδομένων>} other {<# bytes δεδομένων>}} Version OpenWithWindow Έκδοση Some of the selected items cannot be moved to the Trash. Would you like to delete them instead? (This operation cannot be reverted.) PoseView Μερικά από τα επιλεγμένα στοιχεία δεν μπορούν να μετακινηθούν στον Κάδο Απορριμμάτων. Θα θέλατε να τα διαγράψετε αντ' αυτού; (Αυτή η λειτουργία δεν μπορεί να επανέλθει.) Add printer… ContainerWindow Προσθήκη εκτυπωτή… @@ -347,6 +365,7 @@ Copy ContainerWindow Αντιγραφή Sorry, the 'Character' attribute cannot store a multi-byte glyph. WidgetAttributeText Συγνώμη, η ιδιότητα 'Χαρακτήρας' δεν μπορεί να αποθηκεύσει έναν γλύφο πολλών byte. Open parent VirtualDirectoryWindow Άνοιγμα γονικού φακέλου And FindPanel Και +Palette-indexed picture AttributesView Εικόνα με ίνδικα παλέττας multiple disks FindPanel πολλαπλοί δίσκοι Drawing pattern AttributesView Μοτίβο σχεδιασμού File offset AttributesView Στοίχιση αρχείου @@ -427,6 +446,7 @@ Sorry, saving more than one item is not allowed. FilePanelPriv Δεν επιτ Move here ContainerWindow Μετακίνηση εδώ the config folder FSUtils ο φάκελος παραμέτρων Sorry, could not create a new folder. FSUtils Λυπούμαστε, αδυναμία δημιουργίας ενός νέου φακέλου. +MIME Signature AttributesView Υπογραφή MIME Select all VirtualDirectoryWindow Επιλογή όλων Rename FSUtils button label Μετονομασία Clean up all ContainerWindow Καθαρισμός όλων @@ -471,6 +491,7 @@ Color AttributesView Χρώμα Copy layout ContainerWindow Αντιγραφή διάταξης Duplicate ContainerWindow Διπλότυπο 16-bit integer AttributesView Ακέραιος αριθμός 16-bit +Untitled clipping PoseView Άτιτλο απόκομμα The file \"%name\" already exists in the specified folder. Do you want to replace it? FilePanelPriv το αρχείο \"%name\" υπάρχει ήδη στον προσδιορισμένο φάκελο. Θέλετε σίγουρα να το αντικαταστήσετε; You must drop items on one of the disk icons in the \"Disks\" window. PoseView Πρέπει να αφήσετε τα αντικείμενα σε ένα από τα εικονίδια δίσκων στο παράθυρο \"Δίσκοι\". Version: InfoWindow Έκδοση: @@ -497,12 +518,14 @@ Invert selection VirtualDirectoryWindow Αντιστροφή επιλογής New folder FilePanelPriv Νέος φάκελος {0, plural, one{# item} other{# items}} CountView Number of selected items: \"1 item\" or \"2 items\" {0, plural, one{# αντικείμενο} other{# αντικείμενα}} Name AttributesView Όνομα +Invalid bracket range. libtracker Λανθασμένο εύρος αγκυλών. the settings folder FSUtils ο φάκελος ρυθμίσεων If you move %target, %osName may not behave properly!\n\nAre you sure you want to do this? FSUtils Αν μετακινήσετε το %target, το %osName ενδέχεται να μην λειτουργήσει σωστά!\n\nΕίστε σίγουρος ότι θέλετε να το κάνετε αυτό; Create a Query FindPanel Δημιούργησε ένα ερώτημα Close QueryContainerWindow Κλείσιμο I know what I'm doing FSUtils button label Ξέρω τι κάνω Preparing to copy items… StatusWindow Προετοιμασία για αντιγραφή στοιχείων… +Entry ref AttributesView Αναφορά καταχώρησης Icon view ContainerWindow Προβολή εικονιδίου Name ContainerWindow Όνομα Preferred for %type OpenWithWindow Προτινόμενο για %type diff --git a/data/catalogs/kits/tracker/es.catkeys b/data/catalogs/kits/tracker/es.catkeys index 0be2d3a665..a35aa8a642 100644 --- a/data/catalogs/kits/tracker/es.catkeys +++ b/data/catalogs/kits/tracker/es.catkeys @@ -1,4 +1,4 @@ -1 spanish; castilian x-vnd.Haiku-libtracker 3380227078 +1 spanish; castilian x-vnd.Haiku-libtracker 2915475646 Created ContainerWindow Creado Icon AttributesView Icono Open and make preferred OpenWithWindow Abrir y hacer preferido @@ -85,6 +85,7 @@ GiB WidgetAttributeText GiB Clean up ContainerWindow Limpiar Modified FindPanel Modificado Select all QueryContainerWindow Seleccionar todo +Generate image thumbnails SettingsView Generar miniaturas de imagen Select… FilePanelPriv Seleccionar... preferences B_PREFERENCES_DIRECTORY preferences Name Person Query Columns Nombre @@ -458,7 +459,7 @@ ends with FindPanel acaba con Show Disks icon SettingsView Mostrar iconos de los discos Outline selection rectangle only SettingsView Esquema del rectangulo de selección by formula FindPanel por formula -Resize to fit VirtualDirectoryWindow Retamañar para ajustarse +Resize to fit VirtualDirectoryWindow Redimensionar para ajustarse Move to Trash FilePanelPriv Mover a la papelera is FindPanel es If you rename the system folder or its contents, you won't be able to boot %osName!\n\nAre you sure you want to do this?\n\nTo rename the system folder or its contents anyway, hold down the Shift key and click \"Rename\". FSUtils Si renombras la carpeta de sistema o sus contenidos, es posible que no puedas iniciar %osName.\n\n¿Estás seguro de que deseas hacer esto?\n\nPara renombrar la carpeta de sistema o sus contenidos, mantén presionada la tecla Mayúsculas y haz clic en \"Renombrar\". diff --git a/data/catalogs/kits/tracker/fi.catkeys b/data/catalogs/kits/tracker/fi.catkeys index 3e9b89bf64..8577f24d47 100644 --- a/data/catalogs/kits/tracker/fi.catkeys +++ b/data/catalogs/kits/tracker/fi.catkeys @@ -1,4 +1,4 @@ -1 finnish x-vnd.Haiku-libtracker 3380227078 +1 finnish x-vnd.Haiku-libtracker 2915475646 Created ContainerWindow Luotu Icon AttributesView Kuvake Open and make preferred OpenWithWindow Avaa ja tee ensisijaiseksi @@ -85,6 +85,7 @@ GiB WidgetAttributeText gibitavua Clean up ContainerWindow Tyhjennä Modified FindPanel Muokattu Select all QueryContainerWindow Valitse kaikki +Generate image thumbnails SettingsView Tuota pienoiskuvat Select… FilePanelPriv Valitse... preferences B_PREFERENCES_DIRECTORY asetukset Name Person Query Columns Nimi diff --git a/data/catalogs/kits/tracker/fr.catkeys b/data/catalogs/kits/tracker/fr.catkeys index 88bfb93ae3..33060f3f45 100644 --- a/data/catalogs/kits/tracker/fr.catkeys +++ b/data/catalogs/kits/tracker/fr.catkeys @@ -1,4 +1,4 @@ -1 french x-vnd.Haiku-libtracker 1000143519 +1 french x-vnd.Haiku-libtracker 535392087 Created ContainerWindow Créé Icon AttributesView Icône Open and make preferred OpenWithWindow Ouvrir et en faire la préférence @@ -85,6 +85,7 @@ GiB WidgetAttributeText Gio Clean up ContainerWindow Nettoyer Modified FindPanel Modifié Select all QueryContainerWindow Sélectionner tout +Generate image thumbnails SettingsView Générer des vignettes d’images Select… FilePanelPriv Sélectionner… preferences B_PREFERENCES_DIRECTORY préférences Name Person Query Columns Nom diff --git a/data/catalogs/kits/tracker/hu.catkeys b/data/catalogs/kits/tracker/hu.catkeys index 6be29ee212..9183a6e835 100644 --- a/data/catalogs/kits/tracker/hu.catkeys +++ b/data/catalogs/kits/tracker/hu.catkeys @@ -1,4 +1,4 @@ -1 hungarian x-vnd.Haiku-libtracker 3380227078 +1 hungarian x-vnd.Haiku-libtracker 2915475646 Created ContainerWindow Létrehozva Icon AttributesView Ikon Open and make preferred OpenWithWindow Megnyitás és előnyben részesítés @@ -85,6 +85,7 @@ GiB WidgetAttributeText GiB Clean up ContainerWindow Rendrakás Modified FindPanel Módosítva Select all QueryContainerWindow Összes kijelölése +Generate image thumbnails SettingsView Képek előnézetének létrehozása Select… FilePanelPriv Kijelölés… preferences B_PREFERENCES_DIRECTORY Beállítások Name Person Query Columns Név diff --git a/data/catalogs/kits/tracker/ja.catkeys b/data/catalogs/kits/tracker/ja.catkeys index a92118c5ef..69802c0d4c 100644 --- a/data/catalogs/kits/tracker/ja.catkeys +++ b/data/catalogs/kits/tracker/ja.catkeys @@ -1,4 +1,4 @@ -1 japanese x-vnd.Haiku-libtracker 3380227078 +1 japanese x-vnd.Haiku-libtracker 2915475646 Created ContainerWindow 作成日時 Icon AttributesView アイコン Open and make preferred OpenWithWindow 関連付けて開く @@ -85,6 +85,7 @@ GiB WidgetAttributeText GiB Clean up ContainerWindow アイコンの整列 Modified FindPanel 更新日時 Select all QueryContainerWindow すべて選択 +Generate image thumbnails SettingsView 画像のサムネイルを生成 Select… FilePanelPriv 選択... preferences B_PREFERENCES_DIRECTORY 環境設定 Name Person Query Columns 名前 diff --git a/data/catalogs/kits/tracker/pt_BR.catkeys b/data/catalogs/kits/tracker/pt_BR.catkeys index 75eeb6ac59..68c273165b 100644 --- a/data/catalogs/kits/tracker/pt_BR.catkeys +++ b/data/catalogs/kits/tracker/pt_BR.catkeys @@ -160,7 +160,7 @@ The target disk does not support creating links. FSUtils O disco de destino nã develop B_SYSTEM_DEVELOP_DIRECTORY desenvolvimento 64-bit integer AttributesView Inteiro de 64 bits Cut more ContainerWindow Cortar mais -The Tracker must be running to see Info windows. PoseView O Rastreador deve ser executado par ver a janela de Informações. +The Tracker must be running to see Info windows. PoseView O Tracker deve estar em execução para ver janelas de Informações. Tracker preferences TrackerSettingsWindow Preferências do Tracker Read FilePermissionsView Ler There was an error writing the attribute. WidgetAttributeText Ocorreu um erro ao gravar o atributo. @@ -169,7 +169,7 @@ If you rename %target, %osName may not behave properly!\n\nAre you sure you want Could not open \"%name\" (%error). FSUtils Não foi possível abrir \"%name\" (%error). Media parameter group AttributesView Grupo de parâmetros de mídia %name info InfoWindow InfoWindow Title Informações de %name -If you move the home folder, %osName may not behave properly!\n\nAre you sure you want to do this?\n\nTo move the home folder anyway, hold down the Shift key and click \"Move\". FSUtils Se você mover a pasta pessoal,%osName pode não se comportar corretamente!\n\nVocê tem certeza de que quer fazer isso?\n\nPara mover a pasta pessoal de qualquer maneira, mantenha pressionada a tecla Shift e clique em \"Move\". +If you move the home folder, %osName may not behave properly!\n\nAre you sure you want to do this?\n\nTo move the home folder anyway, hold down the Shift key and click \"Move\". FSUtils Se você mover a pasta home, %osName poderá não funcionar corretamente!\n\nTem certeza de que quer fazer isso?\n\nPara mover a pasta home mesmo assim, mantenha pressionada a tecla Shift e clique em \"Mover\". Property info AttributesView Informação sobre a propriedade Sorry, you can't create links in the Trash. PoseView Desculpe, você não pode criar atalhos na Lixeira. From Email Query Columns De @@ -256,7 +256,7 @@ Delete FilePanelPriv Deletar FavoritesMenu Formula %formula FindPanel FindResultTitle Fórmula %formula Preparing to create links… StatusWindow Preparando para criar vínculos... -Tracker status StatusWindow Status do Tracker +Tracker status StatusWindow Estado do Tracker Handles any %type OpenWithWindow Lidar com qualquer %tipo The mount server could not be contacted. AutoMounterSettings O servidor de montagem não pode ser contactado Query template FindPanel Modelo de consulta @@ -268,7 +268,7 @@ Finish: after several years StatusWindow Terminou: depois de vários anos Favorites FilePanelPriv Favoritos Point AttributesView Ponto home B_USER_DIRECTORY home -Tracker New Templates B_USER_SETTINGS_DIRECTORY/Tracker/Tracker New Templates Novos Modelos do Rastreador +Tracker New Templates B_USER_SETTINGS_DIRECTORY/Tracker/Tracker New Templates Novos Modelos do Tracker Disk mounting during boot AutoMounterSettings Montar discos na inicialização Don't automount AutoMounterSettings Não automontar Node ref AttributesView Nó de referência @@ -338,7 +338,7 @@ Could not open \"%document\" with application \"%app\" (%error). FSUtils Não Create %s clipping PoseView Criar %s recorte Error moving \"%name\" FSUtils Erro ao mover \"%name\" To: %dir StatusWindow Para: %dir -Paste layout ContainerWindow Colar disposição +Paste layout ContainerWindow Colar layout Cancel Tracker Cancelar yes AttributesView sim Make active printer ContainerWindow Marcar como impressora ativa @@ -423,7 +423,7 @@ KiB WidgetAttributeText KiB Revert TrackerSettingsWindow Reverter trash B_TRASH_DIRECTORY lixeira If you move the system folder or its contents, you won't be able to boot %osName!\n\nAre you sure you want to do this?\n\nTo move the system folder or its contents anyway, hold down the Shift key and click \"Move\". FSUtils Se mover a pasta de sistema ou o seu conteúdo, não conseguirá iniciar o %osName!\n\nTem certeza de que quer fazer isso?\n\nPara mover de qualquer modo a pasta de sistema ou o seu conteúdo, mantenha premida a tecla Shift e clique \"Mover\". -Close all in workspace ContainerWindow Fechar tudo no ambiente de trabalho +Close all in workspace ContainerWindow Fechar tudo na área de trabalho Corrupted expression. libtracker Expressão corrompida. 32 x 32 DeskWindow 32 x 32 Network address AttributesView Endereço de rede @@ -519,7 +519,7 @@ New folder FilePanelPriv Nova pasta Name AttributesView Nome Invalid bracket range. libtracker Intervalo de colchetes inválido. the settings folder FSUtils a pasta de configurações -If you move %target, %osName may not behave properly!\n\nAre you sure you want to do this? FSUtils Se você mover a %target, %osName poderá não funcionar corretamente!\n\nVocê tem certeza de que quer fazer isso? +If you move %target, %osName may not behave properly!\n\nAre you sure you want to do this? FSUtils Se você mover a %target, %osName poderá não funcionar corretamente!\n\nTem certeza de que quer fazer isso? Create a Query FindPanel Criar uma Consulta Close QueryContainerWindow Fechar I know what I'm doing FSUtils button label Eu sei o que estou fazendo diff --git a/data/catalogs/kits/tracker/sv.catkeys b/data/catalogs/kits/tracker/sv.catkeys index 147412ea7c..9264d549cb 100644 --- a/data/catalogs/kits/tracker/sv.catkeys +++ b/data/catalogs/kits/tracker/sv.catkeys @@ -1,4 +1,4 @@ -1 swedish x-vnd.Haiku-libtracker 3380227078 +1 swedish x-vnd.Haiku-libtracker 2915475646 Created ContainerWindow Skapad Icon AttributesView Ikon Open and make preferred OpenWithWindow Öppna och gör till förval @@ -85,6 +85,7 @@ GiB WidgetAttributeText GiB Clean up ContainerWindow Rada upp Modified FindPanel Modifierad Select all QueryContainerWindow Markera allt +Generate image thumbnails SettingsView Generera bildminiatyrer Select… FilePanelPriv Markera... preferences B_PREFERENCES_DIRECTORY inställningar Name Person Query Columns Namn diff --git a/data/catalogs/kits/tracker/tr.catkeys b/data/catalogs/kits/tracker/tr.catkeys index 9a6770e535..d879428f81 100644 --- a/data/catalogs/kits/tracker/tr.catkeys +++ b/data/catalogs/kits/tracker/tr.catkeys @@ -1,4 +1,4 @@ -1 turkish x-vnd.Haiku-libtracker 759131278 +1 turkish x-vnd.Haiku-libtracker 294379846 Created ContainerWindow Oluşturulma Icon AttributesView Simge Open and make preferred OpenWithWindow Aç ve tercih edilen yap @@ -85,6 +85,7 @@ GiB WidgetAttributeText GiB Clean up ContainerWindow Toparla Modified FindPanel Değiştirilme Select all QueryContainerWindow Tümünü seç +Generate image thumbnails SettingsView Küçük resimler oluştur Select… FilePanelPriv Seç… preferences B_PREFERENCES_DIRECTORY tercihler Name Person Query Columns Ad @@ -354,7 +355,7 @@ Messenger AttributesView Ulak after FindPanel sonra {0, plural, one{<# data byte>} other{<# bytes of data>}} AttributesView {0, plural, other{<# bayt veri>}} Version OpenWithWindow Sürüm -Some of the selected items cannot be moved to the Trash. Would you like to delete them instead? (This operation cannot be reverted.) PoseView Seçili ögelerden bazıları Çöp'e taşınamaz. Bunun yerine doğrudan silmek ister misiniz? (Bu işlem geri alınamaz.) +Some of the selected items cannot be moved to the Trash. Would you like to delete them instead? (This operation cannot be reverted.) PoseView Seçili ögelerden bazıları Çöp'e taşınamaz. Bunun yerine doğrudan silmek ister misiniz (bu işlem geri alınamaz)? Add printer… ContainerWindow Yazıcı ekle… On FindPanel Nerede Permissions ContainerWindow İzinler @@ -401,7 +402,7 @@ You can't move a folder into itself or any of its own sub-folders. FSUtils Bir New ContainerWindow Yeni You must drop items on one of the disk icons in the \"Disks\" window. FSClipBoard Ögeleri \"Diskler\" penceresinin içindeki disk simgelerinden birinin üzerine bırakmalısınız. If you alter %target, %osName may not behave properly!\n\nAre you sure you want to do this? FSUtils %target ögesini değiştirirseniz %osName düzgün çalışmayabilir!\n\nBunu yapmak istediğinizden emin misiniz? -Sorry, you can't copy items to the Trash. FSClipBoard Üzgünüm, ögeler Çöp'e kopyalanamaz. +Sorry, you can't copy items to the Trash. FSClipBoard Üzgünüm, Çöp'e herhangi bir öge kopyalanamaz. Some items already exist in this folder with the same names as the items you are %verb.\n \nWould you like to replace them with the ones you are %verb or be prompted for each one? FSUtils Bu klasördeki bazı ögeler %verb bazı ögelerle aynı ada sahip.\n\nBu ögeleri %verb ögelerle değiştirmek ister misiniz veya teker teker sorulsun mu? When Email Query Columns Ne zaman Object AttributesView Nesne @@ -511,7 +512,7 @@ Cancel PoseView İptal Delete PoseView Sil Media parameter AttributesView Ortam parametresi If you alter the home folder, %osName may not behave properly!\n\nAre you sure you want to do this?\n\nTo alter the home folder anyway, hold down the Shift key and click \"I know what I'm doing\". FSUtils Ev klasörünü değiştirirseniz %osName düzgün çalışmayacaktır!\n\nBunu yapmak istediğinizden emin misiniz?\n\nYine de değiştirmek istiyorsanız, Shift düğmesini basılı tutun ve \"Ne yaptığımı biliyorum\"a tıklayın. -Sorry, you can't copy items to the Trash. PoseView Üzgünüm, ögeler Çöp'e kopyalanamaz. +Sorry, you can't copy items to the Trash. PoseView Üzgünüm, Çöp'e herhangi bir öge kopyalanamaz. Invert selection VirtualDirectoryWindow Seçimi tersine çevir New folder FilePanelPriv Yeni klasör {0, plural, one{# item} other{# items}} CountView Number of selected items: \"1 item\" or \"2 items\" {0, plural, other{# öge}} diff --git a/data/catalogs/preferences/appearance/pt_BR.catkeys b/data/catalogs/preferences/appearance/pt_BR.catkeys index cb64f5fab4..406b9b5f1a 100644 --- a/data/catalogs/preferences/appearance/pt_BR.catkeys +++ b/data/catalogs/preferences/appearance/pt_BR.catkeys @@ -28,7 +28,7 @@ Revert APRWindow Reverter List item text Colors tab Texto do item da lista OK DecorSettingsView OK Control text Colors tab Texto do controle -Look and feel APRWindow Olhar e sentir +Look and feel APRWindow Estilo visual Selected menu item background Colors tab Plano de fundo do item de menu selecionado Link active Colors tab Link ativo Antialiasing APRWindow Suavização de serrilhado @@ -42,7 +42,7 @@ Double: DecorSettingsView Duplo: Selected menu item text Colors tab Texto do item do menu selecionado Size: Font Selection view Tamanho: Panel background Colors tab Plano de fundo do painel -Plain font: Font view Fonte plana: +Plain font: Font view Fonte normal: Window tab text Colors tab Aba de texto da janela Navigation pulse Colors tab Navegação de pulso LCD subpixel AntialiasingSettingsView Subpixel LCD @@ -74,6 +74,6 @@ Inactive window border Colors tab Margem inativa de janela Colors APRWindow Cores About control look DecorSettingsView Sobre controle de aparência Control highlight Colors tab Realce do controle -Status bar Colors tab Barra de status +Status bar Colors tab Barra de estado Link hover Colors tab Realce de link ao passar por cima Single: DecorSettingsView Único: diff --git a/data/catalogs/preferences/backgrounds/pt_BR.catkeys b/data/catalogs/preferences/backgrounds/pt_BR.catkeys index 584d78aa2d..aa045bba5a 100644 --- a/data/catalogs/preferences/backgrounds/pt_BR.catkeys +++ b/data/catalogs/preferences/backgrounds/pt_BR.catkeys @@ -12,10 +12,10 @@ Set background image error Main View Erro ao aplicar a imagem de fundo Default folder Main View Pasta padrão Revert Main View Reverter None Main View Nenhum -All workspaces Main View Todos os ambientes de trabalho +All workspaces Main View Todas as áreas de trabalho Icon label outline Main View Contorno no rótulo dos ícones Other… Main View Outro... -Current workspace Main View Ambiente de trabalho atual +Current workspace Main View Área de trabalho atual Apply Main View Aplicar Other folder… Main View Outra pasta… Y: Main View Y: @@ -23,6 +23,6 @@ Tile Main View Ladrilho Select Main View Selecionar Scale to fit Main View Ajustar para caber OK Main View OK -Placement: Main View Disposição: +Placement: Main View Posicionamento: Preview Main View Visualização Image: Main View Imagem: diff --git a/data/catalogs/preferences/datatranslations/da.catkeys b/data/catalogs/preferences/datatranslations/da.catkeys index f979494d71..07764902f1 100644 --- a/data/catalogs/preferences/datatranslations/da.catkeys +++ b/data/catalogs/preferences/datatranslations/da.catkeys @@ -10,7 +10,7 @@ Info: DataTranslations Info: DataTranslations - Error DataTranslations Dataoversættelser - Fejl Use this control panel to set default values for translators, to be used when no other settings are specified by an application. DataTranslations Brug dette kontrolpanel til at indstille standardvalgene for oversættelserne, som bruges ved manglende angivelser af et program. The new translator has been installed successfully. DataTranslations Den nye oversætter er blevet installeret med succes. -An item named '%name' already exists in the Translators folder! Shall the existing translator be overwritten? DataTranslations Et emne '%name' findes allerede i oversættelses-folderen! Skal oversættelsen, som findes i forvejen, overskrives? +An item named '%name' already exists in the Translators folder! Shall the existing translator be overwritten? DataTranslations Et emne '%name' findes allerede i oversættelsesmappen! Skal oversættelsen, som findes i forvejen, overskrives? DataTranslations System name Dataoversættelser Info DataTranslations Info Overwrite DataTranslations Overskriv diff --git a/data/catalogs/preferences/filetypes/cs.catkeys b/data/catalogs/preferences/filetypes/cs.catkeys index ef644d4751..b6a07ad5e5 100644 --- a/data/catalogs/preferences/filetypes/cs.catkeys +++ b/data/catalogs/preferences/filetypes/cs.catkeys @@ -2,7 +2,7 @@ Left Attribute Window Attribute column alignment in Tracker Vlevo Float Attribute ListView Číslo s plovoucí desetinnou čárkou Final Application Types Window Finální -FileTypes request FileTypes Window Požadavek Typy souborů +FileTypes request FileTypes Window Požadavek typů souborů This file type already exists New File Type Window Tento typ již existuje Preferred application FileTypes Window Preferovaná aplikace Launch Application Types Window Spustit @@ -95,7 +95,7 @@ Could not install file type New File Type Window Nemohu nainstalovat typ soubor Same as… FileTypes Window Jako... Golden master Application Type Window Hlavní originál Checkbox Attribute ListView Zaškrtávací pole -FileTypes request Preferred App Menu Požadavek Typy souborů +FileTypes request Preferred App Menu Požadavek typů souborů no icon FileTypes Window žádná ikona Single launch Application Type Window Jediné spuštění %s file type FileType Window %s typ souboru diff --git a/data/catalogs/preferences/filetypes/pt_BR.catkeys b/data/catalogs/preferences/filetypes/pt_BR.catkeys index 17847cd5fa..c1632c3edc 100644 --- a/data/catalogs/preferences/filetypes/pt_BR.catkeys +++ b/data/catalogs/preferences/filetypes/pt_BR.catkeys @@ -31,7 +31,7 @@ Description FileTypes Window Descrição Signature: Application Types Window Assinatura: None FileTypes Window Nenhum Exclusive launch Application Type Window Instância exclusiva -Removing a file type cannot be reverted.\nAre you sure you want to remove it? FileTypes Window Removendo um tipo de arquivo não pode ser revertido.\nVocê tem certeza que deseja remover mesmo assim? +Removing a file type cannot be reverted.\nAre you sure you want to remove it? FileTypes Window Remover um tipo de arquivo não pode ser revertido.\nTem certeza de que deseja remover mesmo assim? Integer 64 bit Attribute ListView Inteiro de 64 bits Cancel New File Type Window Cancelar Select same preferred application as FileType Window Selecionar como o mesmo aplicativo preferido de @@ -85,7 +85,7 @@ Editable Attribute Window If Tracker allows to edit this attribute. Editável New resource file… FileTypes Window Novo arquivo de recursos... [Multiple files] file types FileType Window [Múltiplos arquivos] tipos de arquivo Application type Application Type Window Tipo de aplicativo -Show in Tracker… Application Types Window Mostrar no Rastreador (Tracker)… +Show in Tracker… Application Types Window Mostrar no Tracker… Type name: FileTypes Window Nome do tipo: Visible Attribute Window Visível Select preferred application FileTypes Window Selecionar aplicativo preferido diff --git a/data/catalogs/preferences/input/el.catkeys b/data/catalogs/preferences/input/el.catkeys index 28f2918e40..2f6374b790 100644 --- a/data/catalogs/preferences/input/el.catkeys +++ b/data/catalogs/preferences/input/el.catkeys @@ -1,10 +1,11 @@ -1 greek, modern (1453-) x-vnd.Haiku-Input 3272444562 +1 greek, modern (1453-) x-vnd.Haiku-Input 3312605348 Scrolling TouchpadPrefView Κύλιση Defaults InputMouse Προεπιλογές Long KeyboardView Μικρή Cancel TouchpadPrefView Άκυρο 4-Button SettingsView 4 κουμπιών Slow TouchpadPrefView Αργή +Tapping sensitivity TouchpadPrefView Ευαισθησία αγγίγματος Device List InputWindow Λίστα Συσκευών Double-click speed SettingsView Ταχύτητα διπλού κλικ 5-Button SettingsView 5 κουμπιών @@ -13,7 +14,9 @@ Mouse type: SettingsView Τύπος ποντικιού: Revert InputKeyboard Επαναφορά Fast KeyboardView Γρήγορη Off TouchpadPrefView Κλειστό +Never TouchpadPrefView Ποτέ Fast TouchpadPrefView Γρήγορη +6-Button SettingsView 6 κουμπιών Please confirm TouchpadPrefView Παρακαλώ επιβεβαιώστε Click to focus SettingsView Να γίνεται κλικ για εστίαση Acceleration TouchpadPrefView Επιτάχυνση @@ -22,6 +25,7 @@ Accept first click SettingsView Αποδοχή πρώτου κλικ OK TouchpadPrefView Εντάξει Horizontal scrolling TouchpadPrefView Οριζόντια κύλιση Delay until key repeat KeyboardView Καθυστέρηση μέχρι την επανάληψη πλήκτρου +Keyboard Lock Delay TouchpadPrefView Καθυστέρηση κλειδώματος πληκτρολογίου Two finger scrolling TouchpadPrefView Κύλιση δύο δαχτύλων Input System name Εισαγωγή Mouse acceleration SettingsView Επιτάχυνση δείκτη @@ -30,6 +34,7 @@ High TouchpadPrefView Υψηλή Defaults TouchpadPrefView Προεπιλογές 1-Button SettingsView 1 κουμπιού Defaults InputKeyboard Προεπιλογές +Quick TouchpadPrefView Γρήγορα Short KeyboardView Μικρή Slow KeyboardView Αρχή Revert InputMouse Επαναφορά diff --git a/data/catalogs/preferences/input/pt_BR.catkeys b/data/catalogs/preferences/input/pt_BR.catkeys index 93a89d6db9..7049598493 100644 --- a/data/catalogs/preferences/input/pt_BR.catkeys +++ b/data/catalogs/preferences/input/pt_BR.catkeys @@ -24,7 +24,7 @@ Mouse speed SettingsView Velocidade do mouse Accept first click SettingsView Aceitar o primeiro clique OK TouchpadPrefView OK Horizontal scrolling TouchpadPrefView Rolagem horizontal -Delay until key repeat KeyboardView Atrase até a repetição da tecla +Delay until key repeat KeyboardView Atraso até a repetição da tecla Keyboard Lock Delay TouchpadPrefView Atraso de bloqueio do teclado Two finger scrolling TouchpadPrefView Rolagem com dois dedos Input System name Entrada @@ -38,7 +38,7 @@ Quick TouchpadPrefView Rápido Short KeyboardView Curto Slow KeyboardView Lento Revert InputMouse Reverter -Key repeat rate KeyboardView Taxa de repetição tecla +Key repeat rate KeyboardView Taxa de repetição de teclas 2-Button SettingsView 2 Botões Click to focus and raise SettingsView Clique para focar e aumentar Vertical TouchpadPrefView Vertical diff --git a/data/catalogs/preferences/keymap/el.catkeys b/data/catalogs/preferences/keymap/el.catkeys index abb09b33e5..18909cba95 100644 --- a/data/catalogs/preferences/keymap/el.catkeys +++ b/data/catalogs/preferences/keymap/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.Haiku-Keymap 1075970008 +1 greek, modern (1453-) x-vnd.Haiku-Keymap 2850776429 Key Modifier keys window As in a computer keyboard key Πλήκτρο Japanese KeymapNames Ιαπωνέζικο US KeymapNames ΗΠΑ @@ -6,6 +6,7 @@ PG ↑ Keyboard Layout View Very short for 'page up' PG ↑ Brazilian KeymapNames Βραζιλιάνικο ThinkPad (US) KeyboardLayoutNames ThinkPad (ΗΠΑ) Right control Keyboard Layout View Δεξιό control +X-Bows Nature KeyboardLayoutNames X-Bows Nature Dvorak KeymapNames Dvorak Option: Modifier keys window Option key role name Option: Cancel Modifier keys window Άκυρο @@ -89,6 +90,7 @@ Esperanto KeymapNames Εσπεράντο Belarusian KeymapNames Λευκορώσικο Warning: left and right key roles do not match Modifier keys window Προσοχή: Οι ρόλοι του αριστερού και του δεξιού πλήκτρου δεν αντιστοιχούν Circumflex trigger Keymap window Περισπωμένη +Fizzbook NL2 KeyboardLayoutNames Fizzbook NL2 Caps lock Keyboard Layout View Caps lock Left shift Keyboard Layout View Αριστερό shift Russian (Yawert) KeymapNames Ρώσικο (Yawert) diff --git a/data/catalogs/preferences/keymap/pt_BR.catkeys b/data/catalogs/preferences/keymap/pt_BR.catkeys index a630c5c57f..34cc529c68 100644 --- a/data/catalogs/preferences/keymap/pt_BR.catkeys +++ b/data/catalogs/preferences/keymap/pt_BR.catkeys @@ -117,7 +117,7 @@ Right shift Keyboard Layout View Shift direito ESC Keyboard Layout View ESC Belarusian (Latin) KeymapNames Bielorruso (Latino) Hebrew KeymapNames Hebraico -Layout Keymap window Disposição +Layout Keymap window Layout Greek KeymapNames Grego Revert Keymap window Reverter CTRL Keyboard Layout View Very short for 'control' CTRL @@ -137,7 +137,7 @@ French KeymapNames Francês Portuguese KeymapNames Português Swiss-French KeymapNames Francês da Suíça Shift: Modifier keys window Shift key role name Deslocar: -Keymap System name Disposição de teclado +Keymap System name Mapa de teclado Slovene KeymapNames Esloveno Lithuanian KeymapNames Lituano Set modifier keys… Keymap window Definir modificador de teclas… diff --git a/data/catalogs/preferences/locale/el.catkeys b/data/catalogs/preferences/locale/el.catkeys index c2c59bac09..513422ba44 100644 --- a/data/catalogs/preferences/locale/el.catkeys +++ b/data/catalogs/preferences/locale/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.Haiku-Locale 288870027 +1 greek, modern (1453-) x-vnd.Haiku-Locale 1081217032 Medium format: TimeFormatSettings Μερική μορφή: Negative: TimeFormatSettings Αρνητικό: Language Locale Preflet Window Γλώσσα @@ -22,6 +22,7 @@ Preferred languages Locale Preflet Window Προτεινόμενες γλώσσ Full format: TimeFormatSettings Πλήρη μορφή: Cancel Locale Preflet Window Άκυρο Revert Locale Preflet Window Επαναφορά +Translate application and folder names TimeFormatSettings Μετάφραση ονομάτων εφαρμογών και καταλόγων 12 hour TimeFormatSettings 12-ωρη μορφή Positive: TimeFormatSettings Θετικό: Deskbar and Tracker need to be restarted for this change to take effect. Would you like to restart them now? Locale Preflet Window Για να εφαρμοστούν οι αλλαγές, απαιτείται η επανεκκίνηση της Γραμμής Εργασιών και του Ιχνηλάτη. Θέλετε να γίνει η επανεκκίνηση τώρα; diff --git a/data/catalogs/preferences/locale/pt_BR.catkeys b/data/catalogs/preferences/locale/pt_BR.catkeys index ad830a6756..e4edbb6022 100644 --- a/data/catalogs/preferences/locale/pt_BR.catkeys +++ b/data/catalogs/preferences/locale/pt_BR.catkeys @@ -15,7 +15,7 @@ Numbers TimeFormatSettings Números Available languages Locale Preflet Window Idiomas disponíveis Locale Locale Preflet Localização Unable to find the available languages! You can't use this preflet! Locale Preflet Window Não foi possível encontrar a lista de idiomas! Você não pode usar esta preferência! -Formatting Locale Preflet Window Formatando +Formatting Locale Preflet Window Formatos Use month/day-names from preferred language TimeFormatSettings Utilizar nomes de mês/dia do idioma preferido already chosen LanguageListView já escolhida Preferred languages Locale Preflet Window Idiomas preferidos @@ -25,6 +25,6 @@ Revert Locale Preflet Window Reverter Translate application and folder names TimeFormatSettings Traduzir nomes de pastas e aplicativos 12 hour TimeFormatSettings 12 horas Positive: TimeFormatSettings Positivo: -Deskbar and Tracker need to be restarted for this change to take effect. Would you like to restart them now? Locale Preflet Window Deskbar e Rastreador (Tracker) precisam ser reiniciados para que esta mudança tenha efeito. Gostaria de reiniciá-los agora? +Deskbar and Tracker need to be restarted for this change to take effect. Would you like to restart them now? Locale Preflet Window Deskbar e Tracker precisam ser reiniciados para que esta mudança tenha efeito. Gostaria de reiniciá-los agora? Restart Locale Preflet Window Reiniciar Currency TimeFormatSettings Moeda diff --git a/data/catalogs/preferences/media/fur.catkeys b/data/catalogs/preferences/media/fur.catkeys index 48add0f8ef..0570fdbd50 100644 --- a/data/catalogs/preferences/media/fur.catkeys +++ b/data/catalogs/preferences/media/fur.catkeys @@ -20,7 +20,7 @@ Quit anyway Media Window Jes distès Media System name Multimedia Warning! Media Window Avertiment! MIDI Settings Media Window Impostazions MIDI -SoundFonts Midi View SoundFont +SoundFonts Midi View SoundFonts Audio input: Media views Jentrade audio: Media views Channel: Media views Canâl: diff --git a/data/catalogs/preferences/media/pt_BR.catkeys b/data/catalogs/preferences/media/pt_BR.catkeys index 99fd342917..3eb3e97a33 100644 --- a/data/catalogs/preferences/media/pt_BR.catkeys +++ b/data/catalogs/preferences/media/pt_BR.catkeys @@ -19,7 +19,7 @@ Audio settings Media Window Configurações de áudio Quit anyway Media Window Sair mesmo assim Media System name Mídia Warning! Media Window Aviso! -MIDI Settings Media Window Configurações do MIDI +MIDI Settings Media Window Configurações de MIDI SoundFonts Midi View SoundFonts Audio input: Media views Entrada de áudio: Media views diff --git a/data/catalogs/preferences/network/el.catkeys b/data/catalogs/preferences/network/el.catkeys index aa5d246339..8c9d423904 100644 --- a/data/catalogs/preferences/network/el.catkeys +++ b/data/catalogs/preferences/network/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.Haiku-Network 3062143965 +1 greek, modern (1453-) x-vnd.Haiku-Network 543099905 Ethernet device InterfaceListItem Συσκευή Ethernet Link speed: IntefaceView Ταχύτητα σύνδεσης: disconnected IntefaceView έγινε αποσύνδεση @@ -13,6 +13,7 @@ Gateway: IntefaceAddressView Πύλη δικτύου: The netmask defines your local network IntefaceAddressView Η μάσκα δικτύου καθορίζει το τοπικό σας δίκτυο Your IP address IntefaceAddressView Η διεύθυνση IP σας DHCP IntefaceAddressView DHCP +IP address: IntefaceAddressView Διεύθυνση IP: Netmask: IntefaceAddressView Μάσκα δικτύου: EAP EAP protected network EAP Services NetworkWindow Υπηρεσίες diff --git a/data/catalogs/preferences/network/fr.catkeys b/data/catalogs/preferences/network/fr.catkeys index 6329098b39..723f49eb20 100644 --- a/data/catalogs/preferences/network/fr.catkeys +++ b/data/catalogs/preferences/network/fr.catkeys @@ -46,7 +46,7 @@ Choose automatically IntefaceView Choisir automatiquement Status: IntefaceView État : Disable IntefaceView Désactiver Manage… NetworkWindow Gérer… -open Open network ouvrir +open Open network ouvert Network System name Réseau Your gateway to the internet IntefaceAddressView Votre passerelle vers l’internet Enable ServiceView Activer diff --git a/data/catalogs/preferences/network/id.catkeys b/data/catalogs/preferences/network/id.catkeys index 34b5a403e4..541a99e229 100644 --- a/data/catalogs/preferences/network/id.catkeys +++ b/data/catalogs/preferences/network/id.catkeys @@ -1,4 +1,4 @@ -1 indonesian x-vnd.Haiku-Network 3062143965 +1 indonesian x-vnd.Haiku-Network 543099905 Ethernet device InterfaceListItem Perangkat ethernet Link speed: IntefaceView Kecepatan jalur: disconnected IntefaceView terputus @@ -13,6 +13,7 @@ Gateway: IntefaceAddressView Gateway: The netmask defines your local network IntefaceAddressView Netmask mendefinisikan jaringan lokal anda Your IP address IntefaceAddressView Alamat IP Anda DHCP IntefaceAddressView DHCP +IP address: IntefaceAddressView Alamat IP: Netmask: IntefaceAddressView Netmask: EAP EAP protected network EAP Services NetworkWindow Layanan diff --git a/data/catalogs/preferences/network/pt_BR.catkeys b/data/catalogs/preferences/network/pt_BR.catkeys index 298ca839fa..0b62a76b1f 100644 --- a/data/catalogs/preferences/network/pt_BR.catkeys +++ b/data/catalogs/preferences/network/pt_BR.catkeys @@ -17,7 +17,7 @@ IP address: IntefaceAddressView Endereço de IP: Netmask: IntefaceAddressView Máscara de sub-rede: EAP EAP protected network EAP Services NetworkWindow Serviços -Installing NetworkStatus in Deskbar failed: %s NetworkWindow Falha ao instalar o status de rede na Deskbar: %s +Installing NetworkStatus in Deskbar failed: %s NetworkWindow Falha ao instalar o Estado de Rede na Deskbar: %s Revert NetworkWindow Reverter off ServiceListItem desligado WEP WEP protected network WEP @@ -27,7 +27,7 @@ connected IntefaceView conectado Apply IntefaceAddressView Aplicar Disable ServiceView Desabilitar WPA2 WPA2 protected network WPA2 -Show network status in Deskbar NetworkWindow Mostrar status de rede na Deskbar +Show network status in Deskbar NetworkWindow Mostrar estado de rede na Deskbar Mode: IntefaceAddressView Modo: connected InterfaceListItem conectado OK NetworkWindow OK diff --git a/data/catalogs/preferences/notifications/el.catkeys b/data/catalogs/preferences/notifications/el.catkeys index 923adee5c4..376f7debeb 100644 --- a/data/catalogs/preferences/notifications/el.catkeys +++ b/data/catalogs/preferences/notifications/el.catkeys @@ -1,4 +1,4 @@ -1 greek, modern (1453-) x-vnd.Haiku-Notifications 3906219317 +1 greek, modern (1453-) x-vnd.Haiku-Notifications 4196496676 Lower left GeneralView Κάτω αριστερά Application does not have a valid signature NotificationView Alert message Η εφαρμογή δεν έχει έγκυρη υπογραφή Status NotificationView Κατάσταση @@ -10,12 +10,16 @@ OK PrefletWin Εντάξει Notifications PrefletWin Ειδοποιήσεις Notifications preflet sample PrefletWin Δοκιμαστική ειδοποίηση Mute notifications from this application NotificationView Να γίνει σίγαση ειδοποιήσεων από αυτήν την εφαρμογή +wide GeneralView Window width: Slider high text πλατύ +narrow GeneralView Window width: Slider low text στενό Revert PrefletWin Επαναφορά Applications PrefletView Εφαρμογές +{0, plural, =1{Timeout: # second}other{Timeout: # seconds}} GeneralView {0, plural, =1{Χρονικό όριο: # δευτερόλεπτο}other{Χρονικό όριο: # δευτερόλεπτα}} Upper right GeneralView Πάνω δεξιά An error occurred saving the preferences.\nIt's possible you are running out of disk space. PrefletWin Προέκυψε ένα σφάλμα κατά την αποθήκευση των προτιμήσεων.\nΕνδεχομένως να μην έχετε αρκετό ελεύθερο χώρο στον δίσκο σας. Defaults PrefletWin Προεπιλογές Upper left GeneralView Πάνω αριστερά +Window width GeneralView Πλάτος παραθύρου Applications NotificationView Εφαρμογές General PrefletView Γενικά OK NotificationView Εντάξει diff --git a/data/catalogs/preferences/notifications/id.catkeys b/data/catalogs/preferences/notifications/id.catkeys index fa4f11955a..089b523ee6 100644 --- a/data/catalogs/preferences/notifications/id.catkeys +++ b/data/catalogs/preferences/notifications/id.catkeys @@ -1,4 +1,4 @@ -1 indonesian x-vnd.Haiku-Notifications 3906219317 +1 indonesian x-vnd.Haiku-Notifications 1473635764 Lower left GeneralView Kiri bawah Application does not have a valid signature NotificationView Alert message Aplikasi tidak memiliki tanda tangan yang valid Status NotificationView Status @@ -10,8 +10,11 @@ OK PrefletWin OKE Notifications PrefletWin Notifikasi Notifications preflet sample PrefletWin Sampel preflet notifikasi Mute notifications from this application NotificationView Nonaktifkan pemberitahuan dari aplikasi ini +wide GeneralView Window width: Slider high text lebar +narrow GeneralView Window width: Slider low text sempit Revert PrefletWin Pulihkan Applications PrefletView Aplikasi +{0, plural, =1{Timeout: # second}other{Timeout: # seconds}} GeneralView {0, plural, =1{Waktu habis: # detik}other{Waktu habis: # detik}} Upper right GeneralView Kanan atas An error occurred saving the preferences.\nIt's possible you are running out of disk space. PrefletWin Terjadi kesalahan menyimpan preferensi.\nAda kemungkinan anda kehabisan ruang penyimpanan. Defaults PrefletWin Standar diff --git a/data/catalogs/preferences/printers/pt_BR.catkeys b/data/catalogs/preferences/printers/pt_BR.catkeys index e9dd36cdde..a252bcc2d6 100644 --- a/data/catalogs/preferences/printers/pt_BR.catkeys +++ b/data/catalogs/preferences/printers/pt_BR.catkeys @@ -15,7 +15,7 @@ Blue TestPageView Azul Waiting JobListView Aguardando Processing JobListView Processando Cancel AddPrinterDialog Cancelar -Unknown status JobListView Status desconhecido +Unknown status JobListView Estado desconhecido Print jobs for %printer_name% PrintersWindow Trabalhos de impressão para %printer_name% {0, plural, =-1{??? pages}=1{# page}other{# pages}} JobListView {0, plural, =-1{??? páginas}=1{# página}other{# páginas}} Add printer AddPrinterDialog Adicionar impressora diff --git a/data/catalogs/preferences/repositories/pt_BR.catkeys b/data/catalogs/preferences/repositories/pt_BR.catkeys index cd1381ba14..4385d43ec6 100644 --- a/data/catalogs/preferences/repositories/pt_BR.catkeys +++ b/data/catalogs/preferences/repositories/pt_BR.catkeys @@ -5,7 +5,7 @@ There was an error refreshing the repository cache for %name% TaskLooper Error m There was an error disabling the repository %name% TaskLooper Error message, do not translate %name% Houve um erro ao desabilitar o repositório %name% Unknown Constants Unknown repository name Desconhecido Remove all RepositoriesView Button label Remover tudo -Enable repositories to use with package management: RepositoriesView Label text Habilitar os repositórios para usarem o gerenciador de pacotes: +Enable repositories to use with package management: RepositoriesView Label text Habilitar repositórios a serem usados pelo gerenciador de pacotes: Disable RepositoriesView Button label Desabilitar Cancel task TaskTimer Button label Cancelar tarefa Changes completed RepositoriesView Status view text Alterações concluídas diff --git a/data/catalogs/preferences/screen/pt_BR.catkeys b/data/catalogs/preferences/screen/pt_BR.catkeys index 663e6dabf1..b9b55f6f32 100644 --- a/data/catalogs/preferences/screen/pt_BR.catkeys +++ b/data/catalogs/preferences/screen/pt_BR.catkeys @@ -12,9 +12,9 @@ Refresh rate: Screen Taxa de atualizão: Video format: Screen Formato de vídeo: Undo Screen Desfazer OK Screen OK -Current workspace Screen Ambiente de trabalho atual +Current workspace Screen Área de trabalho atual vertically Screen verticalmente -All workspaces Screen Todas os ambientes de trabalho +All workspaces Screen Todas as áreas de trabalho Use laptop panel: Screen Usar o painel do laptop: Could not write VESA mode settings file:\n\t Screen Não foi possível gravar o arquivo de configurações do modo VESA:\n\t Display info Screen Info da tela @@ -33,7 +33,7 @@ Confirm changes Screen Confirmar alterações Warning Screen Aviso 24 bits/pixel, 16 Million colors Screen 24 bits/pixel, 16 milhões de cores Hz Screen Hz -Workspaces Screen Ambientes de trabalho +Workspaces Screen Áreas de Trabalho Brightness: Screen Brilho: 32 bits/pixel, 16 Million colors Screen 32 bits/pixel, 16 Milhões de cores Done Screen Pronto diff --git a/data/catalogs/preferences/sounds/pt_BR.catkeys b/data/catalogs/preferences/sounds/pt_BR.catkeys index d5cb8b9c14..35df124eff 100644 --- a/data/catalogs/preferences/sounds/pt_BR.catkeys +++ b/data/catalogs/preferences/sounds/pt_BR.catkeys @@ -1,6 +1,6 @@ 1 portuguese (brazil) x-vnd.Haiku-Sounds 1784495232 Sounds System name Sons -Sounds\n Brought to you by :\n\tOliver Ruiz Dorantes\n\tJérôme DUVAL.\n Original work from Atsushi Takamatsu.\nCopyright ©2003-2006 Haiku SoundsHApp Sons\n Trazido para você por :\n\tOliver Ruiz Dorantes\n\tJérôme DUVAL.\n Trabalho original de Atsushi Takamatsu.\nCopyright ©2003-2006 Haiku +Sounds\n Brought to you by :\n\tOliver Ruiz Dorantes\n\tJérôme DUVAL.\n Original work from Atsushi Takamatsu.\nCopyright ©2003-2006 Haiku SoundsHApp Sons\n Trazido para você por :\n\tOliver Ruiz Dorantes\n\tJérôme DUVAL.\n Trabalho original de Atsushi Takamatsu.\nDireitos autorais ©2003-2006 Haiku No such file or directory HEventList Arquivo ou pasta inexistente OK HWindow OK Other… HWindow Outros... diff --git a/data/catalogs/preferences/time/be.catkeys b/data/catalogs/preferences/time/be.catkeys index d3e29c6d2f..931abec3b8 100644 --- a/data/catalogs/preferences/time/be.catkeys +++ b/data/catalogs/preferences/time/be.catkeys @@ -1,7 +1,6 @@ -1 belarusian x-vnd.Haiku-Time 3968430883 +1 belarusian x-vnd.Haiku-Time 908714414 OK Time ОК Message receiving failed Time Памылка атрымання паведамлення -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Time & Date, распрацавана:\n\n\t Andrew Edward McCall\n\t Mike Berg\n\t Julun\n\t Philippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Australia Time Аўстралія America Time Амерыка Set time zone Time Пазначыць часавы пояс @@ -35,7 +34,6 @@ Atlantic Time Атлантыка Show clock in Deskbar Time Паказваць гадзіннік у Deskbar-ы Display time with seconds Time Паказваць час з секундамі Time System name Дата і Час -about Time пра праграму Show time zone Time Паказаць часавы пояс Synchronize at boot Time Сінхранізаваць падчас старту Indian Time Індыя diff --git a/data/catalogs/preferences/time/ca.catkeys b/data/catalogs/preferences/time/ca.catkeys index 88c20deb49..921e0829c0 100644 --- a/data/catalogs/preferences/time/ca.catkeys +++ b/data/catalogs/preferences/time/ca.catkeys @@ -1,11 +1,11 @@ -1 catalan; valencian x-vnd.Haiku-Time 834234238 +1 catalan; valencian x-vnd.Haiku-Time 3691539601 OK Time D'acord Message receiving failed Time Ha fallat rebre el missatge. -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Dia i hora, escrita per\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Australia Time Austràlia America Time Amèrica Reset to default server list Time Restableix la llista de servidors predeterminada Could not resolve server address Time No s'ha pogut resoldre l'adreça del servidor. +Time & Date System name Hora i dia Set time zone Time Estableix la zona horària Waiting for answer failed Time Ha fallat esperar la resposta. Time @@ -38,7 +38,6 @@ Atlantic Time Atlàntic Show clock in Deskbar Time Mostra el rellotge a la barra d'escriptori Display time with seconds Time Mostra l'hora amb els segons Time System name Hora -about Time cap a Show time zone Time Mostra la zona horària Synchronize at boot Time Sincronitza-ho a l'arrencada Indian Time Indi diff --git a/data/catalogs/preferences/time/cs.catkeys b/data/catalogs/preferences/time/cs.catkeys index bd40af8505..4d97fd7ab6 100644 --- a/data/catalogs/preferences/time/cs.catkeys +++ b/data/catalogs/preferences/time/cs.catkeys @@ -1,11 +1,11 @@ -1 czech x-vnd.Haiku-Time 834234238 +1 czech x-vnd.Haiku-Time 3691539601 OK Time OK Message receiving failed Time Přijetí zprávy selhalo -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Čas a datum, autoři:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Australia Time Austrálie America Time Amerika Reset to default server list Time Vrátit výchozí seznam serverů Could not resolve server address Time Nepodařilo se získat adresu serveru +Time & Date System name Datum a čas Set time zone Time Nastavit časové pásmo Waiting for answer failed Time Čekání na odpověď selhalo Time @@ -38,7 +38,6 @@ Atlantic Time Atlantský oceán Show clock in Deskbar Time Zobrazit hodiny v panelu Display time with seconds Time Zobrazit čas se sekundami Time System name Čas -about Time o aplikaci Show time zone Time Zobrazit časové pásmo Synchronize at boot Time Synchronizovat při spuštění počítače Indian Time Indie diff --git a/data/catalogs/preferences/time/da.catkeys b/data/catalogs/preferences/time/da.catkeys index 9b0b54242f..67226e85c2 100644 --- a/data/catalogs/preferences/time/da.catkeys +++ b/data/catalogs/preferences/time/da.catkeys @@ -1,11 +1,11 @@ -1 danish x-vnd.Haiku-Time 834234238 +1 danish x-vnd.Haiku-Time 3691539601 OK Time OK Message receiving failed Time Modtagning af meddelelse mislykkedes -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Klokkeslæt og dato, skrevet af:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nOphavsret 2004-2012, Haiku. Australia Time Australien America Time Amerika Reset to default server list Time Nulstil til standard serverliste Could not resolve server address Time Kunne ikke løse serveradresse +Time & Date System name Tid og klokkeslæt Set time zone Time Sæt tidszone Waiting for answer failed Time Ventning af meddelelse mislykkedes Time @@ -38,7 +38,6 @@ Atlantic Time Atlantisk Show clock in Deskbar Time Vis ur i skrivebordslinje Display time with seconds Time Vis klokkeslæt med sekunder Time System name Tid -about Time om Show time zone Time Vis tidszone Synchronize at boot Time Synkronisér ved opstart Indian Time Indien diff --git a/data/catalogs/preferences/time/de.catkeys b/data/catalogs/preferences/time/de.catkeys index 76433dc410..f464ee2b2b 100644 --- a/data/catalogs/preferences/time/de.catkeys +++ b/data/catalogs/preferences/time/de.catkeys @@ -1,11 +1,11 @@ -1 german x-vnd.Haiku-Time 834234238 +1 german x-vnd.Haiku-Time 3691539601 OK Time OK Message receiving failed Time Nachricht wurde nicht erhalten -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Datum & Zeit\n\nvon\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Australia Time Australien America Time Amerika Reset to default server list Time Serverliste zurücksetzen Could not resolve server address Time Serveraddresse konnte nicht aufgelöst werden +Time & Date System name Datum & Zeit Set time zone Time Zeitzone setzen Waiting for answer failed Time Warten auf Antwort fehlgeschlagen Time @@ -38,7 +38,6 @@ Atlantic Time Atlantik Show clock in Deskbar Time Uhr in Deskbar anzeigen Display time with seconds Time Zeit sekundengenau anzeigen Time System name Datum & Zeit -about Time über Show time zone Time Zeitzone anzeigen Synchronize at boot Time Synchronisieren beim Hochfahren Indian Time Indischer Ozean diff --git a/data/catalogs/preferences/time/el.catkeys b/data/catalogs/preferences/time/el.catkeys index 589c2d61b8..2e07e7d55b 100644 --- a/data/catalogs/preferences/time/el.catkeys +++ b/data/catalogs/preferences/time/el.catkeys @@ -1,11 +1,11 @@ -1 greek, modern (1453-) x-vnd.Haiku-Time 834234238 +1 greek, modern (1453-) x-vnd.Haiku-Time 3691539601 OK Time Εντάξει Message receiving failed Time Η λήψη μηνυμάτων απέτυχε -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Ώρα & Ημέρα, αναπτύχθηκε από τους:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nΠνευματική ιδιοκτησία 2004-2012, Haiku. Australia Time Αυστραλία America Time Αμερική Reset to default server list Time Επαναφορά στην προεπιλεγμένη λίστα διακομιστών Could not resolve server address Time Δεν ήταν δυνατή η ανάλυση της διεύθυνσης του διακομιστή +Time & Date System name Ώρα & Ημερομηνία Set time zone Time Ορισμός ζώνης ώρας Waiting for answer failed Time Η αναμονή για απάντηση απέτυχε Time <Άλλο> @@ -38,7 +38,6 @@ Atlantic Time Αντλαντικός Show clock in Deskbar Time Εμφάνιση ρολογιού στην Γραμμή Εργασιών Display time with seconds Time Εμφάνιση ώρας με δευτερόλεπτα Time System name Ημερομηνία και ώρα -about Time περίπου Show time zone Time Εμφάνιση ζώνης ώρας Synchronize at boot Time Συγχρονισμός κατά την εκκίνηση Indian Time Ινδικός diff --git a/data/catalogs/preferences/time/eo.catkeys b/data/catalogs/preferences/time/eo.catkeys index f36e1f1334..e252adf308 100644 --- a/data/catalogs/preferences/time/eo.catkeys +++ b/data/catalogs/preferences/time/eo.catkeys @@ -1,7 +1,6 @@ -1 esperanto x-vnd.Haiku-Time 834234238 +1 esperanto x-vnd.Haiku-Time 2069485065 OK Time Bone Message receiving failed Time Ricevo de mesaĝo malsukcesis -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Tempo kaj Dato, kodis:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nAŭtorrajto 2004-2012, Haiku. Australia Time Aŭstralia America Time Amerika Reset to default server list Time Reatribui al defaŭlta servila listo @@ -38,7 +37,6 @@ Atlantic Time Atlantika Show clock in Deskbar Time Montri horloĝon Laborstrie Display time with seconds Time Montri tempon kun sekundoj Time System name Tempo -about Time pri Show time zone Time Montri tempzonon Synchronize at boot Time Sinkronigi dum ŝargo Indian Time Hindia/Barata diff --git a/data/catalogs/preferences/time/es.catkeys b/data/catalogs/preferences/time/es.catkeys index 251ea7c794..400f9459ef 100644 --- a/data/catalogs/preferences/time/es.catkeys +++ b/data/catalogs/preferences/time/es.catkeys @@ -1,11 +1,11 @@ -1 spanish; castilian x-vnd.Haiku-Time 834234238 +1 spanish; castilian x-vnd.Haiku-Time 3691539601 OK Time Aceptar Message receiving failed Time Fallo en la recepción del mensaje -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Fecha y hora, escrito por:\n\n\t Andrew Edward McCall\n\t Mike Berg\n\t Julun\n\t Philippe Saint-Pierre\n\n Copyright 2004-2012, Haiku. Australia Time Australia America Time América Reset to default server list Time Reestablecer a la lista de servidores por defecto Could not resolve server address Time No se pudo ubicar la dirección del servidor +Time & Date System name Fecha y hora Set time zone Time Definir zona horaria Waiting for answer failed Time Fallo en la espera de respuesta Time @@ -38,7 +38,6 @@ Atlantic Time Atlántico Show clock in Deskbar Time Mostrar reloj en la barra de escritorio Display time with seconds Time Mostrar hora con segundos Time System name Hora -about Time sobre Show time zone Time Mostrar huso horario: Synchronize at boot Time Sincronizar al inicio Indian Time Hindú diff --git a/data/catalogs/preferences/time/fi.catkeys b/data/catalogs/preferences/time/fi.catkeys index ca544d9d12..e3dbbfed95 100644 --- a/data/catalogs/preferences/time/fi.catkeys +++ b/data/catalogs/preferences/time/fi.catkeys @@ -1,11 +1,11 @@ -1 finnish x-vnd.Haiku-Time 834234238 +1 finnish x-vnd.Haiku-Time 3691539601 OK Time Valmis Message receiving failed Time Viestin vastaanotto epäonnistui -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Time & Date, tekijät:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Australia Time Australia America Time Amerikka Reset to default server list Time Nollaa oletuspalvelinluettelo Could not resolve server address Time Palvelinosoitteen ratkaiseminen epäonnistui +Time & Date System name Aika & Päivämäärä Set time zone Time Aseta aikavyöhyke Waiting for answer failed Time Vastauksen odottaminen epäonnistui Time @@ -38,7 +38,6 @@ Atlantic Time Atlantin valtameri Show clock in Deskbar Time Näytä kello Työpöytäpalkissa Display time with seconds Time Näytä aika sekunteina Time System name Aika-asetukset -about Time Ohjelmasta Show time zone Time Näytä aikavyöhyke Synchronize at boot Time Synkronoi käynnistyksen yhteydessä Indian Time Intia diff --git a/data/catalogs/preferences/time/fr.catkeys b/data/catalogs/preferences/time/fr.catkeys index 5789608aef..25de20dc16 100644 --- a/data/catalogs/preferences/time/fr.catkeys +++ b/data/catalogs/preferences/time/fr.catkeys @@ -1,11 +1,11 @@ -1 french x-vnd.Haiku-Time 834234238 +1 french x-vnd.Haiku-Time 3691539601 OK Time OK Message receiving failed Time La réception du message a échoué -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Date & Heure, écrit par :\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Australia Time Australie America Time Amérique Reset to default server list Time Restaurer la liste de serveurs par défaut Could not resolve server address Time Impossible de résoudre l’adresse du serveur +Time & Date System name Heure & Date Set time zone Time Régler le fuseau horaire Waiting for answer failed Time L’attente d’une réponse a échoué Time @@ -38,7 +38,6 @@ Atlantic Time Atlantique Show clock in Deskbar Time Afficher l’heure dans la Deskbar Display time with seconds Time Afficher l’heure avec les secondes Time System name Heure -about Time À propos Show time zone Time Afficher le fuseau horaire Synchronize at boot Time Synchroniser au démarrage Indian Time Indien diff --git a/data/catalogs/preferences/time/fur.catkeys b/data/catalogs/preferences/time/fur.catkeys index 9ffe202910..f45a5248f2 100644 --- a/data/catalogs/preferences/time/fur.catkeys +++ b/data/catalogs/preferences/time/fur.catkeys @@ -1,7 +1,6 @@ -1 friulian x-vnd.Haiku-Time 834234238 +1 friulian x-vnd.Haiku-Time 2069485065 OK Time Va ben Message receiving failed Time Ricezion dal messaç falide -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Ore e Date, scrit di:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Australia Time Australie America Time Americhe Reset to default server list Time Ristabilìs ae liste di servidôrs predefinide @@ -29,7 +28,7 @@ Stop Time Ferme Time zone Time Fûs orari Clock Time Orloi Network time Time Ore di rêt -Sending request failed Time No si è rivâts a inviâ la domande +Sending request failed Time Nol è stât pussibil inviâ la domande Preview time: Time Anteprime de ore: \nNow: Time \nCumò: Could not create socket Time Impussibil creâ un socket @@ -38,7 +37,6 @@ Atlantic Time Atlantic Show clock in Deskbar Time Mostre orloi tal Deskbar Display time with seconds Time Mostre ore cui seconts Time System name Ore -about Time informazions Show time zone Time Mostre fûs orari Synchronize at boot Time Sincronize al inviament Indian Time Indian diff --git a/data/catalogs/preferences/time/hr.catkeys b/data/catalogs/preferences/time/hr.catkeys index 4f4093b558..929f8448c1 100644 --- a/data/catalogs/preferences/time/hr.catkeys +++ b/data/catalogs/preferences/time/hr.catkeys @@ -1,7 +1,6 @@ -1 croatian x-vnd.Haiku-Time 1514793487 +1 croatian x-vnd.Haiku-Time 2750044314 OK Time OK Message receiving failed Time Neuspjelo primanje poruke -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Vrijeme i datum, napisali:\n\n\t Andrew Edward McCall\n\t Mike Berg\n\t Julun\n\t Philippe Saint-Pierre\n\nAutorska prava 2004-2012, Haiku. Australia Time Australija America Time Amerika Set time zone Time Postavi vremensku zonu @@ -33,7 +32,6 @@ Pacific Time Pacifik Atlantic Time Atlantik Display time with seconds Time Prikaži vrijeme sa sekundama Time System name Vrijeme -about Time O Show time zone Time Pokaži vremensku zonu Synchronize at boot Time Sinkroniziraj pri podizanju sustava Indian Time Indijsko diff --git a/data/catalogs/preferences/time/hu.catkeys b/data/catalogs/preferences/time/hu.catkeys index bc14195f75..2ef8f220b7 100644 --- a/data/catalogs/preferences/time/hu.catkeys +++ b/data/catalogs/preferences/time/hu.catkeys @@ -1,11 +1,11 @@ -1 hungarian x-vnd.Haiku-Time 834234238 +1 hungarian x-vnd.Haiku-Time 3691539601 OK Time Rendben Message receiving failed Time Sikertelen üzenetfogadás -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Dátum és idő, készítette:\n\n\t Andrew Edward McCall\n\t Mike Berg\n\t Julun\n\t Philippe Saint-Pierre\n\n© 2004-2012, Haiku. Australia Time Ausztrália America Time Amerika Reset to default server list Time Eredeti kiszolgálólista visszaállìtása Could not resolve server address Time Nem sikerült feloldani a kiszolgáló címét +Time & Date System name Dátum és idő Set time zone Time Időzóna beállítása Waiting for answer failed Time Nem érkezett válasz Time @@ -38,7 +38,6 @@ Atlantic Time Atlanti-óceán Show clock in Deskbar Time Óra az Asztalsávon Display time with seconds Time Másodpercek megjelenítése Time System name Dátum és idő -about Time névjegy Show time zone Time Időzóna megjelenítése Synchronize at boot Time Szinkronizálás indításkor Indian Time India diff --git a/data/catalogs/preferences/time/id.catkeys b/data/catalogs/preferences/time/id.catkeys index b4af7a6a77..3046be11d8 100644 --- a/data/catalogs/preferences/time/id.catkeys +++ b/data/catalogs/preferences/time/id.catkeys @@ -1,11 +1,11 @@ -1 indonesian x-vnd.Haiku-Time 834234238 +1 indonesian x-vnd.Haiku-Time 3691539601 OK Time OKE Message receiving failed Time Penerimaan pesan gagal -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Jam dan tanggal, ditulis oleh:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nHak cipta 2004-2012, Haiku. Australia Time Australia America Time Amerika Reset to default server list Time Reset ke daftar server bawaan Could not resolve server address Time Tidak dapat menemukan alamat server +Time & Date System name Waktu & Tanggal Set time zone Time Set zona waktu Waiting for answer failed Time Gagal menunggu jawaban Time @@ -38,7 +38,6 @@ Atlantic Time Atlantik Show clock in Deskbar Time Tampilkan jam di Deskbar Display time with seconds Time Tampilkan jam dengan detik Time System name Jam -about Time tentang Show time zone Time Tampilkan zona waktu Synchronize at boot Time Sinkronisasi saat but Indian Time India diff --git a/data/catalogs/preferences/time/it.catkeys b/data/catalogs/preferences/time/it.catkeys index 37256b763e..26aa2ae85a 100644 --- a/data/catalogs/preferences/time/it.catkeys +++ b/data/catalogs/preferences/time/it.catkeys @@ -1,7 +1,6 @@ -1 italian x-vnd.Haiku-Time 834234238 +1 italian x-vnd.Haiku-Time 2069485065 OK Time OK Message receiving failed Time Ricezione del messaggio fallita -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Data e Ora, a cura di:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Australia Time Australia America Time America Reset to default server list Time Reimposta la lista dei server predefinita @@ -38,7 +37,6 @@ Atlantic Time Atlantico Show clock in Deskbar Time Mostra l'orologio nella Deskbar Display time with seconds Time Mostra i secondi Time System name Data e Ora -about Time informazioni Show time zone Time Mostra fuso orario Synchronize at boot Time Sincronizza all'avvio Indian Time Indiano diff --git a/data/catalogs/preferences/time/ja.catkeys b/data/catalogs/preferences/time/ja.catkeys index 0c905dd89b..c6cdd6973c 100644 --- a/data/catalogs/preferences/time/ja.catkeys +++ b/data/catalogs/preferences/time/ja.catkeys @@ -1,11 +1,11 @@ -1 japanese x-vnd.Haiku-Time 834234238 +1 japanese x-vnd.Haiku-Time 3691539601 OK Time OK Message receiving failed Time メッセージの取得に失敗しました -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time 日付と時刻 作者:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Australia Time オーストラリア America Time アメリカ Reset to default server list Time デフォルトのサーバーリストにリセット Could not resolve server address Time サーバーアドレスを解決できません +Time & Date System name 日付と時刻 Set time zone Time タイムゾーンを設定 Waiting for answer failed Time 返答待ちに失敗しました Time <その他> @@ -38,7 +38,6 @@ Atlantic Time 大西洋 Show clock in Deskbar Time Deskbar に時計を表示 Display time with seconds Time 秒の表示 Time System name 日付と時刻 -about Time このソフトウェアについて Show time zone Time タイムゾーンの表示 Synchronize at boot Time 起動時に同期 Indian Time インド diff --git a/data/catalogs/preferences/time/lt.catkeys b/data/catalogs/preferences/time/lt.catkeys index 42e625b769..b8e85d76f7 100644 --- a/data/catalogs/preferences/time/lt.catkeys +++ b/data/catalogs/preferences/time/lt.catkeys @@ -1,7 +1,6 @@ -1 lithuanian x-vnd.Haiku-Time 3968430883 +1 lithuanian x-vnd.Haiku-Time 908714414 OK Time Gerai Message receiving failed Time Nepavyko gauti pranešimo -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Laikas ir data. Programos autoriai:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\n© 2004-2012, „Haiku“, Australia Time Australija America Time Amerika Set time zone Time Pakeisti laiko juostą @@ -35,7 +34,6 @@ Atlantic Time Atlanto vandenynas Show clock in Deskbar Time Rodyti laikrodį pranešimų srityje Display time with seconds Time Rodyti sekundes Time System name Laikas -about Time Apie Show time zone Time Rodyti laiko juostą Synchronize at boot Time Sinchronizuoti įkeliant sistemą Indian Time Indijos vandenynas diff --git a/data/catalogs/preferences/time/nl.catkeys b/data/catalogs/preferences/time/nl.catkeys index 1c04975b6d..db5571df0f 100644 --- a/data/catalogs/preferences/time/nl.catkeys +++ b/data/catalogs/preferences/time/nl.catkeys @@ -1,7 +1,6 @@ -1 dutch; flemish x-vnd.Haiku-Time 834234238 +1 dutch; flemish x-vnd.Haiku-Time 2069485065 OK Time Oké Message receiving failed Time Ontvangen van het bericht mislukt -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Time & Date, geschreven door:\n\n\t Andrew Edward McCall\n\t Mike Berg\n\t Julun\n\t Philippe Saint-Pierre\n\nAlle rechten voorbehouden, 2004-2012, Haiku. Australia Time Australië America Time Amerika Reset to default server list Time Herstel standaard-serverlijst @@ -38,7 +37,6 @@ Atlantic Time Atlantic Show clock in Deskbar Time Klok in Deskbar tonen Display time with seconds Time Tijd met seconden tonen Time System name Tijd -about Time over Show time zone Time Tijdzone tonen Synchronize at boot Time Synchroniseren bij het opstarten Indian Time Indisch diff --git a/data/catalogs/preferences/time/pl.catkeys b/data/catalogs/preferences/time/pl.catkeys index 7ce1d70769..e6e316d882 100644 --- a/data/catalogs/preferences/time/pl.catkeys +++ b/data/catalogs/preferences/time/pl.catkeys @@ -1,7 +1,6 @@ -1 polish x-vnd.Haiku-Time 834234238 +1 polish x-vnd.Haiku-Time 2069485065 OK Time OK Message receiving failed Time Odbiór wiadomości nie powiódł się -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Time & Date, napisany przez:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nPrawa zastrzeżone 2004-2012, Haiku. Australia Time Australia America Time Ameryka Reset to default server list Time Przywróć domyślną listę serwerów @@ -38,7 +37,6 @@ Atlantic Time Atlantyk Show clock in Deskbar Time Pokaż zegar w Deskbarze Display time with seconds Time Wyświetl sekundy Time System name Czas -about Time O programie Show time zone Time Pokaż strefę czasową Synchronize at boot Time Synchronizuj przy rozruchu Indian Time Indie diff --git a/data/catalogs/preferences/time/pt.catkeys b/data/catalogs/preferences/time/pt.catkeys index 88e8004871..dde0fd9f2a 100644 --- a/data/catalogs/preferences/time/pt.catkeys +++ b/data/catalogs/preferences/time/pt.catkeys @@ -1,7 +1,6 @@ -1 portuguese x-vnd.Haiku-Time 834234238 +1 portuguese x-vnd.Haiku-Time 2069485065 OK Time OK Message receiving failed Time Falha ao receber a mensagem -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Data & Hora, escrito por:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nTodos os direitos reservados 2004-2012, Haiku. Australia Time Austrália America Time América Reset to default server list Time Predefinir para a lista de servidores original @@ -38,7 +37,6 @@ Atlantic Time Atlântico Show clock in Deskbar Time Mostrar relógio na Deskbar Display time with seconds Time Mostrar as horas com segundos Time System name Hora -about Time acerca Show time zone Time Mostrar fuso horário Synchronize at boot Time Sincronizar ao inicializar Indian Time Indiano diff --git a/data/catalogs/preferences/time/pt_BR.catkeys b/data/catalogs/preferences/time/pt_BR.catkeys index d62d77fa3b..afc1b53666 100644 --- a/data/catalogs/preferences/time/pt_BR.catkeys +++ b/data/catalogs/preferences/time/pt_BR.catkeys @@ -1,7 +1,6 @@ -1 portuguese (brazil) x-vnd.Haiku-Time 834234238 +1 portuguese (brazil) x-vnd.Haiku-Time 2069485065 OK Time OK Message receiving failed Time Falha ao receber a mensagem -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Hora & Data, escrito por:\n\n\t Andrew Edward McCall\n\t Mike Berg\n\t Julun\n\t Philippe Saint-Pierre\n\nDireitos reservados 2004-2012, Haiku. Australia Time Austrália America Time América Reset to default server list Time Restaurar para lista de padrão de servidores @@ -38,7 +37,6 @@ Atlantic Time Atlântico Show clock in Deskbar Time Exibir relógio na Deskbar Display time with seconds Time Mostrar a hora com os segundos Time System name Hora -about Time sobre Show time zone Time Mostrar fuso horário Synchronize at boot Time Sincronizar ao inicializar Indian Time Índico diff --git a/data/catalogs/preferences/time/ro.catkeys b/data/catalogs/preferences/time/ro.catkeys index 68a4c23208..e4ad86ae59 100644 --- a/data/catalogs/preferences/time/ro.catkeys +++ b/data/catalogs/preferences/time/ro.catkeys @@ -1,7 +1,6 @@ -1 romanian x-vnd.Haiku-Time 834234238 +1 romanian x-vnd.Haiku-Time 2069485065 OK Time OK Message receiving failed Time Primirea mesajului a eșuat -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Oră și dată, scris de:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nDrepturi de autor 2004-2012, Haiku. Australia Time Australia America Time America Reset to default server list Time Restabilește la lista de server implicită @@ -38,7 +37,6 @@ Atlantic Time Atlantic Show clock in Deskbar Time Arată ceasul pe Deskbar Display time with seconds Time Afișează ora cu secunde Time System name Oră -about Time despre Show time zone Time Arată fusul orar Synchronize at boot Time Sincronizează la boot Indian Time Indian diff --git a/data/catalogs/preferences/time/ru.catkeys b/data/catalogs/preferences/time/ru.catkeys index 33b8eb4313..4498b1b420 100644 --- a/data/catalogs/preferences/time/ru.catkeys +++ b/data/catalogs/preferences/time/ru.catkeys @@ -1,7 +1,6 @@ -1 russian x-vnd.Haiku-Time 834234238 +1 russian x-vnd.Haiku-Time 2069485065 OK Time ОК Message receiving failed Time Не удалось получить данные -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Дата & Время, разработан:\n\n\t Andrew Edward McCall\n\t Mike Berg\n\t Julun\n\t Philippe Saint-Pierre\n\nВсе права защищены © 2004-2012, Haiku. Australia Time Австралия America Time Америка Reset to default server list Time Восстановить список серверов по умолчанию @@ -38,7 +37,6 @@ Atlantic Time Атлантика Show clock in Deskbar Time Отображать часы в Deskbar Display time with seconds Time Показывать секунды Time System name Время -about Time о программе Show time zone Time Показывать часовой пояс Synchronize at boot Time Синхронизировать при загрузке Indian Time Индийский океан diff --git a/data/catalogs/preferences/time/sk.catkeys b/data/catalogs/preferences/time/sk.catkeys index 65f1d16d1c..0e9156eb10 100644 --- a/data/catalogs/preferences/time/sk.catkeys +++ b/data/catalogs/preferences/time/sk.catkeys @@ -1,7 +1,6 @@ -1 slovak x-vnd.Haiku-Time 752043118 +1 slovak x-vnd.Haiku-Time 1987293945 OK Time OK Message receiving failed Time Prijatie správy zlyhalo -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Čas a dátum, napísali:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Australia Time Austrália America Time Amerika Reset to default server list Time Obnoviť predvolený zoznam serverov @@ -37,7 +36,6 @@ Atlantic Time Atlantik Show clock in Deskbar Time Zobraziť hodiny v Paneli Display time with seconds Time Zobraziť sekundy v čase Time System name Čas -about Time O aplikácii Show time zone Time Zobraziť časové pásmo Synchronize at boot Time Synchronizovať pri štarte Indian Time Indický diff --git a/data/catalogs/preferences/time/sv.catkeys b/data/catalogs/preferences/time/sv.catkeys index c66a266193..c309dbd485 100644 --- a/data/catalogs/preferences/time/sv.catkeys +++ b/data/catalogs/preferences/time/sv.catkeys @@ -1,11 +1,11 @@ -1 swedish x-vnd.Haiku-Time 834234238 +1 swedish x-vnd.Haiku-Time 3691539601 OK Time OK Message receiving failed Time Kunde inte ta emot meddelandet -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Time & Date, Skriven av:\n\n\t Andrew Edward McCall\n\t Mike Berg\n\t Julun\n\t Philippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Australia Time Australien America Time Amerika Reset to default server list Time Återställ till förinställt värde Could not resolve server address Time Det gick inte att namnupplösa serveradressen +Time & Date System name Tid och datum Set time zone Time Ange tidzon Waiting for answer failed Time Fick inget svar Time @@ -38,7 +38,6 @@ Atlantic Time Atlanten Show clock in Deskbar Time Visa klockan i deskbaren Display time with seconds Time Visa tid med sekunder Time System name Tid -about Time om Show time zone Time Ange tidzon Synchronize at boot Time Synkronisera vid uppstart Indian Time Indien diff --git a/data/catalogs/preferences/time/th.catkeys b/data/catalogs/preferences/time/th.catkeys index cf71372239..632d2c4555 100644 --- a/data/catalogs/preferences/time/th.catkeys +++ b/data/catalogs/preferences/time/th.catkeys @@ -1,7 +1,6 @@ -1 thai x-vnd.Haiku-Time 834234238 +1 thai x-vnd.Haiku-Time 2069485065 OK Time ตกลง Message receiving failed Time การรับข้อความล้มเหลว -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time เวลาและวันที่เขียนโดย:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nลิขสิทธิ์ 2004-2012, Haiku Australia Time ออสเตรเลีย America Time อเมริกา Reset to default server list Time รีเซ็ตเป็นรายการเซิร์ฟเวอร์เริ่มต้น @@ -38,7 +37,6 @@ Atlantic Time แอตแลนติก Show clock in Deskbar Time แสดงนาฬิกาในเดสก์บาร์ Display time with seconds Time แสดงเวลาแบบมีวินาที Time System name เวลา -about Time เกี่ยวกับ Show time zone Time แสดงเขตเวลา Synchronize at boot Time ซิงโครไนซ์ตอนบูต Indian Time อินเดีย diff --git a/data/catalogs/preferences/time/tr.catkeys b/data/catalogs/preferences/time/tr.catkeys index ae4e085c60..de96f5195b 100644 --- a/data/catalogs/preferences/time/tr.catkeys +++ b/data/catalogs/preferences/time/tr.catkeys @@ -1,11 +1,11 @@ -1 turkish x-vnd.Haiku-Time 834234238 +1 turkish x-vnd.Haiku-Time 3691539601 OK Time Tamam Message receiving failed Time İleti alımı başarısız -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Tarih ve Saat, yazanlar:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nTelif hakkı 2004-2012, Haiku. Australia Time Avustralya America Time Amerika Reset to default server list Time Öntanımlı sunucu listesine sıfırla Could not resolve server address Time Sunucu adı çözülemedi +Time & Date System name Tarih ve Saat Set time zone Time Saat dilimini ayarla Waiting for answer failed Time Yanıt bekleme başarısız Time @@ -38,7 +38,6 @@ Atlantic Time Atlantik Show clock in Deskbar Time Saati Masaüstü Çubuğu'nda göster Display time with seconds Time Saniyeleri göster Time System name Tarih ve Saat -about Time hakkında Show time zone Time Saat dilimini göster Synchronize at boot Time Önyükleme sırasında eşitle Indian Time Hint diff --git a/data/catalogs/preferences/time/uk.catkeys b/data/catalogs/preferences/time/uk.catkeys index 92047978f4..238c9b2df7 100644 --- a/data/catalogs/preferences/time/uk.catkeys +++ b/data/catalogs/preferences/time/uk.catkeys @@ -1,11 +1,11 @@ -1 ukrainian x-vnd.Haiku-Time 834234238 +1 ukrainian x-vnd.Haiku-Time 3691539601 OK Time ОК Message receiving failed Time Не вдалось отримати повідомлення -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time Дата & Час, автори:\n\n\t Andrew Edward McCall\n\t Mike Berg\n\t Julun\n\t Philippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Australia Time Австралія America Time Америка Reset to default server list Time Скинути список серверів за замовчуванням Could not resolve server address Time Недозволена адреса сервера +Time & Date System name Час & Дата Set time zone Time Встановити часову зону Waiting for answer failed Time Відповідь не отримана Time <Інше> @@ -38,7 +38,6 @@ Atlantic Time Атлантичний океан Show clock in Deskbar Time Показувати час в Deskbar Display time with seconds Time Показувати секунди Time System name Time -about Time про Show time zone Time Встановити часову зону Synchronize at boot Time Синхронізувати при завантаженні Indian Time Індійський diff --git a/data/catalogs/preferences/time/zh_Hans.catkeys b/data/catalogs/preferences/time/zh_Hans.catkeys index 6e04084ba7..6271050da2 100644 --- a/data/catalogs/preferences/time/zh_Hans.catkeys +++ b/data/catalogs/preferences/time/zh_Hans.catkeys @@ -1,7 +1,6 @@ -1 english x-vnd.Haiku-Time 752043118 +1 english x-vnd.Haiku-Time 1987293945 OK Time 确定 Message receiving failed Time 消息接收失败 -Time & Date, written by:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\nCopyright 2004-2012, Haiku. Time 时间日期,编写者:\n\n\tAndrew Edward McCall\n\tMike Berg\n\tJulun\n\tPhilippe Saint-Pierre\n\n版权所有 2004-2012, Haiku. Australia Time 澳大利亚 America Time 美洲 Reset to default server list Time 重置为默认服务器列表 @@ -37,7 +36,6 @@ Atlantic Time 大西洋 Show clock in Deskbar Time 在桌面栏显示时钟 Display time with seconds Time 显示秒钟 Time System name 时间 -about Time 关于 Show time zone Time 显示时区 Synchronize at boot Time 启动时同步 Indian Time 印度洋 diff --git a/data/catalogs/preferences/tracker/pt_BR.catkeys b/data/catalogs/preferences/tracker/pt_BR.catkeys index 3785962a7a..1f765fdb38 100644 --- a/data/catalogs/preferences/tracker/pt_BR.catkeys +++ b/data/catalogs/preferences/tracker/pt_BR.catkeys @@ -1,2 +1,2 @@ 1 portuguese (brazil) x-vnd.Haiku-TrackerPreferences 1627828833 -Tracker System name Rastreador +Tracker System name Tracker diff --git a/data/catalogs/preferences/virtualmemory/pt_BR.catkeys b/data/catalogs/preferences/virtualmemory/pt_BR.catkeys index 2563ef8ddc..ad42b549b0 100644 --- a/data/catalogs/preferences/virtualmemory/pt_BR.catkeys +++ b/data/catalogs/preferences/virtualmemory/pt_BR.catkeys @@ -1,6 +1,6 @@ 1 portuguese (brazil) x-vnd.Haiku-VirtualMemory 2090796060 -Requested swap file size: SettingsWindow Tamanho necessário do arquivo de troca: -VirtualMemory System name MemóriaVirtual +Requested swap file size: SettingsWindow Tamanho requisitado do arquivo swap: +VirtualMemory System name Memória Virtual OK VirtualMemoryApp OK Use volume: SettingsWindow Volume em uso: Turn off SettingsWindow Desligar @@ -8,12 +8,12 @@ Changes will take effect upon reboot. SettingsWindow As alterações serão efe Revert SettingsWindow Reverter Keep enabled SettingsWindow Manter habilitado The settings specified in the settings file are invalid. You can load the defaults or quit. SettingsWindow As configurações especificadas no arquivo de configurações são inválidas. É possível carregar o padrão ou sair. -VirtualMemory\n\twritten by Axel Dörfler\n\tCopyright 2005, Haiku.\n VirtualMemoryApp Memória Virtual\n\tescrito por Axel Dörfler\n\tCopyright 2005, Haiku.\n +VirtualMemory\n\twritten by Axel Dörfler\n\tCopyright 2005, Haiku.\n VirtualMemoryApp Memória Virtual\n\tescrito por Axel Dörfler\n\tDireitos autorais 2005, Haiku.\n The volume specified in the settings file could not be found. You can use the boot volume or quit. SettingsWindow O volume especificado no arquivo de configurações não pôde ser encontrado. É possível utilizar o volume de inicialização ou sair. -Current Swap: SettingsWindow Troca Corrente: +Current Swap: SettingsWindow Swap atual: Load defaults SettingsWindow Carregar padrão -Use boot volume SettingsWindow Utilizar inicialização de volume -Automatic swap management SettingsWindow Gerenciamento de troca automática +Use boot volume SettingsWindow Utilizar volume de inicialização +Automatic swap management SettingsWindow Gerenciamento automático de swap Defaults SettingsWindow Padrões Quit SettingsWindow Sair Disabling virtual memory will have unwanted effects on system stability once the memory is used up.\nVirtual memory does not affect system performance until this point is reached.\n\nAre you really sure you want to turn it off? SettingsWindow Desabilitar a memória virtual irá trazer efeitos indesejados na estabilidade do sistema assim que a memória estiver cheia.\nA memória virtual não irá afetar a performance do sistema até que isso aconteça.\n\nTem certeza que deseja desligá-la? diff --git a/data/catalogs/servers/mail/pt_BR.catkeys b/data/catalogs/servers/mail/pt_BR.catkeys index 45d09c647f..8027283a6a 100644 --- a/data/catalogs/servers/mail/pt_BR.catkeys +++ b/data/catalogs/servers/mail/pt_BR.catkeys @@ -2,7 +2,7 @@ No new messages MailDaemon Sem novas mensagens No new messages DeskbarView Sem novas mensagens Shutdown mail services DeskbarView Desligar serviços de correio -Mail status MailDaemon Status do correio +Mail status MailDaemon Estado do correio Fetching mail for %name Notifier Buscando correio para %name {0, plural, one{# new message} other{# new messages}} DeskbarView {0, plural, one{# nova mensagem} other{# novas mensagens}} {0, plural, one{# new message} other{# new messages}} for %name\n MailDaemon {0, plural, one{# nova mensagem} other{# novas mensagens}} para %name\n @@ -12,8 +12,8 @@ Settings… DeskbarView Configurações… {0, plural, one{One new message} other{# new messages}} MailDaemon {0, plural, one{Uma nova mensagem} other{# novas mensagens}} New Messages MailDaemon Novas Mensagens DeskbarView -Mail status Notifier Status do correio +Mail status Notifier Estado do correio Check for mails only DeskbarView Verificar apenas os e-mails Check for mail now DeskbarView Verificar correio agora Sending mail for %name Notifier Enviando correio para %name -Mail daemon status log MailDaemon Registro de status do daemon de correio +Mail daemon status log MailDaemon Registro de estado do daemon de correio diff --git a/data/catalogs/servers/mount/da.catkeys b/data/catalogs/servers/mount/da.catkeys index 5f55774bfa..8418660911 100644 --- a/data/catalogs/servers/mount/da.catkeys +++ b/data/catalogs/servers/mount/da.catkeys @@ -1,11 +1,11 @@ 1 danish x-vnd.Haiku-mount_server 2818767263 -Mount read-only AutoMounter Monter skrivebeskyttet +Mount read-only AutoMounter Montér skrivebeskyttet Error mounting volume:\n\n%s AutoMounter Fejl ved montering af diskområde:\n\n%s Cancel AutoMounter Annuller OK AutoMounter OK Unmount error AutoMounter Fejl ved afmontering The file system on this volume is not the Be file system. It is recommended to mount it in read-only mode, to prevent unintentional data loss because of bugs in Haiku. AutoMounter Filsystemet på diskenheden er ikke Be-filsystemet. Det anbefales at montere det i skrivebeskyttet tilstand, for at forhindre utilsigtet tab af data grundet fejl i Haiku. -Mount read/write AutoMounter Monter læse/skrive +Mount read/write AutoMounter Montér læse/skrive Could not unmount disk \"%s\":\n\t%s AutoMounter Kunne ikke afmontere disken \"%s\":\n\t%s Mounting volume '%s'\n\n AutoMounter Monterer diskområdet '%s'\n\n Could not unmount disk \"%s\":\n\t%s\n\nShould unmounting be forced?\n\nNote: If an application is currently writing to the volume, unmounting it now might result in loss of data.\n AutoMounter Kunne ikke afmontere disken \"%s\":\n\t%s\n\nSkal afmontering gennemtvinges?\n\nBemærk: Hvis et program skriver til diskområdet på nuværende tidspunkt, så kan afmontering måske lede til tab af data.\n diff --git a/data/catalogs/servers/registrar/fur.catkeys b/data/catalogs/servers/registrar/fur.catkeys index b77cccab55..7eabd50205 100644 --- a/data/catalogs/servers/registrar/fur.catkeys +++ b/data/catalogs/servers/registrar/fur.catkeys @@ -8,11 +8,11 @@ The application \"%appName%\" might be blocked on a modal panel. ShutdownProcess System is shut down ShutdownProcess Il sisteme si sta distudant Restart system ShutdownProcess Torne invie il sisteme Application \"%appName%\" has aborted the shutdown process. ShutdownProcess La aplicazion \"%appName%\" e à interot il procès di distudament. -Asking background applications to quit. ShutdownProcess Si domande aes aplicazions in sotfont di sierâsi. +Asking background applications to quit. ShutdownProcess Al ven domandât aes aplicazions in sotfont di sierâsi. Do you really want to restart the system? ShutdownProcess Tornâ a inviâ pardabon il sisteme? Restart ShutdownProcess Torne invie It's now safe to turn off the computer. ShutdownProcess Cumò si pues distudâ il computer. -Asking other processes to quit. ShutdownProcess In spiete che si sierin i altris procès. +Asking other processes to quit. ShutdownProcess In spiete che si sierin chei altris procès. Cancel shutdown ShutdownProcess Anule arest Restarting… ShutdownProcess Daûr a tornâ a inviâ… %action%? ShutdownProcess %action%? @@ -20,4 +20,4 @@ Tidying things up a bit. ShutdownProcess Si met un pôc in ordin lis robis. Kill application ShutdownProcess Cope la aplicazion Shutdown aborted ShutdownProcess Distudament interot Shutting down… ShutdownProcess Daûr a distudâ… -Asking \"%appName%\" to quit. ShutdownProcess Si domande a \"%appName%\" di jessî. +Asking \"%appName%\" to quit. ShutdownProcess Al ven domandât a \"%appName%\" di jessî. diff --git a/data/catalogs/servers/registrar/pt_BR.catkeys b/data/catalogs/servers/registrar/pt_BR.catkeys index 86ad8f8815..aac2824b67 100644 --- a/data/catalogs/servers/registrar/pt_BR.catkeys +++ b/data/catalogs/servers/registrar/pt_BR.catkeys @@ -2,7 +2,7 @@ Cancel ShutdownProcess Cancelar OK ShutdownProcess OK Do you really want to shut down the system? ShutdownProcess Deseja realmente desligar o computador? -Shutdown status ShutdownProcess Status do desligamento +Shutdown status ShutdownProcess Estado de desligamento Shut down ShutdownProcess Desligar The application \"%appName%\" might be blocked on a modal panel. ShutdownProcess A aplicação \"%appName%\" deve ser bloqueada em um painel modal. System is shut down ShutdownProcess Sistema está desligado diff --git a/data/catalogs/tests/kits/game/chart/pt_BR.catkeys b/data/catalogs/tests/kits/game/chart/pt_BR.catkeys index cd9461f006..6d1776a67e 100644 --- a/data/catalogs/tests/kits/game/chart/pt_BR.catkeys +++ b/data/catalogs/tests/kits/game/chart/pt_BR.catkeys @@ -24,7 +24,7 @@ Slow motion ChartWindow Câmera lenta 5% (low) ChartWindow 5% (baixo) Fast motion ChartWindow Câmera rápida Special ChartWindow Especial -Status ChartWindow Status +Status ChartWindow Estado Star density ChartWindow Densidade de estrela 600.0 f/s ChartWindow 600.0 f/s Display: ChartWindow Exibição: diff --git a/data/catalogs/tests/kits/opengl/glinfo/da.catkeys b/data/catalogs/tests/kits/opengl/glinfo/da.catkeys index 7d10855e86..bce223e2dc 100644 --- a/data/catalogs/tests/kits/opengl/glinfo/da.catkeys +++ b/data/catalogs/tests/kits/opengl/glinfo/da.catkeys @@ -2,7 +2,7 @@ Maximum clipping planes Capabilities Maks. klipningsplaner Maximum evaluators equation order Capabilities Maks. evalueringsligningsrækkefølge Texture stack size Capabilities Stakstørrelse for struktur -GL Info System name GL-info +GL Info System name Information om GL Information InfoView Information Attributes stack size Capabilities Stakstørrelse for attributter Maximum lights Capabilities Maks. lys diff --git a/data/catalogs/tests/kits/opengl/glinfo/el.catkeys b/data/catalogs/tests/kits/opengl/glinfo/el.catkeys index 10329f22e2..5a50b0e490 100644 --- a/data/catalogs/tests/kits/opengl/glinfo/el.catkeys +++ b/data/catalogs/tests/kits/opengl/glinfo/el.catkeys @@ -1,21 +1,27 @@ -1 greek, modern (1453-) x-vnd.Haiku-GLInfo 2318446144 -Maximum clipping planes Capabilities Μέγιστος αριθμός επιπέδων αποκοπής +1 greek, modern (1453-) x-vnd.Haiku-GLInfo 1282327690 +Maximum clipping planes Capabilities Μέγιστος αριθμός επιπέδων αποκοπής Maximum evaluators equation order Capabilities Μέγιστη σειρά εξίσωσης αξιολογητών -Texture stack size Capabilities Μέγεθος υφής στην μνήμη σωρού +Texture stack size Capabilities Μέγεθος στοίβας υφής GL Info System name Πληροφορίες GL Information InfoView Πληροφορίες -Attributes stack size Capabilities Μέγεθος ιδιοτήτων στην μνήμη σωρού +Attributes stack size Capabilities Μέγεθος στοίβας ιδιοτήτων Maximum lights Capabilities Μέγιστος αριθμός φώτων Extensions Extensions Επεκτάσεις Available extensions Extensions Διαθέσιμες προεκτάσεις +Maximum recommended vertex elements Capabilities Μέγιστος προτεινόμενος αριθμός κορυφών Value Capabilities ΤΙμή Name stack size Capabilities Μέγεθος ονόματος στην μνήμη σωρού Capabilities Capabilities Δυνατότητες Maximum texture units Capabilities Μέγιστος αριθμός μονάδων υφής +Unknown or missing OpenGL renderer. InfoView Άγνωστος ή ανύπαρκτος OpenGL renderer. Capability Capabilities Δυνατότητα Maximum 2D texture size Capabilities Μέγιστο μέγεθος υφής 2D Auxiliary buffer(s) Capabilities Βοηθητική ενδιάμεση μνήμη +Unknown vendor InfoView Άγνωστος προμηθευτής Maximum convolution Capabilities Μέγιστη συνέλιξη Maximum 3D texture size Capabilities Μέγιστο μέγεθος υφής 3D +Maximum recommended index elements Capabilities Μέγιστος προτεινόμενος αριθμός δεικτών +Unknown version InfoView Άγνωστη έκδοση List stack size Capabilities Μέγεθος λίστας στην μνήμη σωρού Model stack size Capabilities Μέγεθος μοντέλου στην μνήμη σωρού +Projection stack size Capabilities Μέγεθος στοίβας προβολής diff --git a/data/catalogs/tests/kits/opengl/glinfo/id.catkeys b/data/catalogs/tests/kits/opengl/glinfo/id.catkeys index 409f8b5077..af51f4dfae 100644 --- a/data/catalogs/tests/kits/opengl/glinfo/id.catkeys +++ b/data/catalogs/tests/kits/opengl/glinfo/id.catkeys @@ -1,4 +1,4 @@ -1 indonesian x-vnd.Haiku-GLInfo 2211760527 +1 indonesian x-vnd.Haiku-GLInfo 1282327690 Maximum clipping planes Capabilities Clipping plana maksimum Maximum evaluators equation order Capabilities Urutan persamaan evaluator maksimum Texture stack size Capabilities Ukuran tumpukan tekstur @@ -13,12 +13,15 @@ Value Capabilities Nilai Name stack size Capabilities Ukuran tumpukan nama Capabilities Capabilities Kemampuan Maximum texture units Capabilities Unit tekstur maksimum +Unknown or missing OpenGL renderer. InfoView Perender OpenGL hilang atau tidak dikenali Capability Capabilities Kemampuan Maximum 2D texture size Capabilities Ukuran tekstur 2D maksimum Auxiliary buffer(s) Capabilities Tambahan buffer +Unknown vendor InfoView Vendor tidak diketahui Maximum convolution Capabilities Konvolusi maksimum Maximum 3D texture size Capabilities Ukuran tekstur 3D maksimum Maximum recommended index elements Capabilities Elemen indeks maksimum yang disarankan +Unknown version InfoView Versi tidak diketahui List stack size Capabilities Ukuran tumpukan daftar Model stack size Capabilities Ukuran tumpukan model Projection stack size Capabilities Ukuran tumpukan proyeksi diff --git a/data/develop/Jamfile b/data/develop/Jamfile deleted file mode 100644 index 96e9ebaaf8..0000000000 --- a/data/develop/Jamfile +++ /dev/null @@ -1,119 +0,0 @@ -## Haiku Generic Jamfile v1.0.1 ## - -## Fill in this file to specify the project being created, and the referenced -## Jamfile-engine will do all of the hard work for you. This handles both -## Intel and PowerPC builds of BeOS and Haiku. - -## Application Specific Settings --------------------------------------------- - -# Specify the name of the binary -# If the name has spaces, you must quote it: "My App" -NAME = ; - -# Specify the type of binary -# APP: Application -# SHARED: Shared library or add-on -# STATIC: Static library archive -# DRIVER: Kernel Driver -TYPE = ; - -# Specify the application MIME signature, if you plan to use localization -# features. String format x-vnd.- is recommended. -APP_MIME_SIG = ; - -# Specify the source files to use -# Full paths or paths relative to the Jamfile can be included. -# All files, regardless of directory, will have their object -# files created in the common object directory. -# Note that this means this Jamfile will not work correctly -# if two source files with the same name (source.c or source.cpp) -# are included from different directories. -# Ex: SRCS = file1.cpp file2.cpp file3.cpp ; -SRCS = ; - -# Specify the resource files to use -# Full path or a relative path to the resource file can be used. -RSRCS = ; - -# Specify additional libraries to link against -# There are two acceptable forms of library specifications -# - if your library follows the naming pattern of: -# libXXX.so or libXXX.a you can simply specify XXX -# library: libbe.so entry: be -# -# - for localization support add following libs: -# locale localestub -# -# - if your library does not follow the standard library -# naming scheme you need to specify the path to the library -# and it's name -# library: my_lib.a entry: my_lib.a or path/my_lib.a -LIBS = ; - -# Specify additional paths to directories following the standard -# libXXX.so or libXXX.a naming scheme. You can specify full paths -# or paths relative to the Jamfile. The paths included may not -# be recursive, so include all of the paths where libraries can -# be found. Directories where source files are found are -# automatically included. -LIBPATHS = ; - -# Additional paths to look for system headers -# These use the form: #include
-# source file directories are NOT auto-included here -SYSTEM_INCLUDE_PATHS = ; - -# Additional paths to look for local headers -# thes use the form: #include "header" -# source file directories are automatically included -LOCAL_INCLUDE_PATHS = ; - -# Specify the level of optimization that you desire -# NONE, SOME, FULL -OPTIMIZE = ; - -# Specify the codes for languages you are going to support in this -# application. The default "en" one must be provided too. "jam catkeys" -# will recreate only locales/en.catkeys file. Use it as template for -# creating other languages catkeys. All localization files must be -# placed in "locales" sub-directory. -LOCALES = ; - -# Specify any preprocessor symbols to be defined. The symbols will not -# have their values set automatically; you must supply the value (if any) -# to use. For example, setting DEFINES to "DEBUG=1" will cause the -# compiler option "-DDEBUG=1" to be used. Setting DEFINES to "DEBUG" -# would pass "-DDEBUG" on the compiler's command line. -DEFINES = ; - -# Specify special warning levels -# if unspecified default warnings will be used -# NONE = supress all warnings -# ALL = enable all warnings -WARNINGS = ; - -# Specify whether image symbols will be created -# so that stack crawls in the debugger are meaningful -# if TRUE symbols will be created -SYMBOLS = ; - -# Specify debug settings -# if TRUE will allow application to be run from a source-level -# debugger. Note that this will disable all optimzation. -DEBUGGER = ; - -# Specify additional compiler flags for all files -COMPILER_FLAGS = ; - -# Specify additional linker flags -LINKER_FLAGS = ; - -# (for TYPE == DRIVER only) Specify desired location of driver in the /dev -# hierarchy. Used by the driverinstall rule. E.g., DRIVER_PATH = video/usb will -# instruct the driverinstall rule to place a symlink to your driver's binary in -# ~/add-ons/kernel/drivers/dev/video/usb, so that your driver will appear at -# /dev/video/usb when loaded. Default is "misc". -DRIVER_PATH = ; - -## Include the Jamfile-engine -include $(BUILDHOME)/etc/Jamfile-engine ; diff --git a/data/develop/Jamfile-engine b/data/develop/Jamfile-engine deleted file mode 100644 index 86c6c3f9a6..0000000000 --- a/data/develop/Jamfile-engine +++ /dev/null @@ -1,481 +0,0 @@ -## Haiku Generic Jamfile Engine v1.0.2 -## Does all the hard work for the Generic Jamfile -## which simply defines the project parameters. -## Most of the real work is done in the Jambase -## embedded into the jam executable. -## -## Inspired by the Be Makefile Engine -## -## Supports Generic Jamfile v1.0.1 -## -## Copyright (c) 2002-2010 Ryan Leavengood -## Copyright (c) 2011 Peter Poláčik -## Released under the Terms of the MIT License, see -## http://www.opensource.org/licenses/mit-license.html - -##------------------------------------------------------------------- -## Define some utility rules -##------------------------------------------------------------------- - -# AddResources : ; -# Adds the given resources to the given application. -rule AddResources -{ - Depends $(<) : $(>) ; -} - -actions AddResources -{ - $(XRES) -o "$(<)" $(>) -} - -# MimeSet ; -# Sets the mime type of the given application to be an application. -actions MimeSet -{ - $(MIMESET) -f "$(<)" -} - -# ProcessLibs ; -# Prepends -l to any library names that aren't _APP_ or _KERNEL_ or -# that don't have .a or .so file extensions. The result will be given -# to the linker so that it links to the right libraries. -rule ProcessLibs -{ - local result ; - for i in $(1) - { - if ( ( $(i) in _APP_ _KERNEL_ ) || ( $(i:S) in .so .a ) ) - { - result += $(i) ; - } - else - { - result += -l$(i) ; - } - } - return $(result) ; -} - -# MkObjectDirs ; -# Makes the necessary sub-directories in the object target directory based -# on the sub-directories used for the source files. -rule MkObjectDirs -{ - local dir ; - for i in $(1) - { - dir = [ FDirName $(LOCATE_TARGET) $(i:D) ] ; - Depends $(i:S=$(SUFOBJ)) : $(dir) ; - MkDir $(dir) ; - } -} - -# CollectCatKeys : ; -# Collects catalog keys for localization from sources into per-locale files -rule CollectCatKeys -{ - Depends $(<) : $(>) ; - Depends $(<) : $(LOCATE_TARGET) ; - #Depends $(<) : $(SRCS) ; - Depends $(CATKEYS_DIR)/en.catkeys : $(<) ; -} - -actions CollectCatKeys -{ - cat $(SRCS) | gcc -E -x c++ $(HDRS) $(CCFLAGS) \ - -DB_COLLECTING_CATKEYS - > $(LOCATE_TARGET)/$(NAME).pre - mkdir -p "$(CATKEYS_DIR)" - collectcatkeys -s $(APP_MIME_SIG) $(LOCATE_TARGET)/$(NAME).pre \ - -o $(CATKEYS_DIR)/en.catkeys -} - -# Catalogs : ; -# Compiles .catkeys files into .catalog files, one per locale -rule Catalogs -{ - Depends $(<) : $(>) ; - Depends $(<) : $(SRCS) ; - for lng in $(LOCALES) - { - Depends $(<) : $(CATKEYS_DIR)/$(lng:S=.catkeys) ; - Depends $(CATKEYS_DIR)/$(lng:S=.catkeys) : $(>) ; - #Clean clean : $(CATKEYS_DIR)/$(lng:S=.catkeys) ; - Clean clean : - $(LOCATE_TARGET)/$(APP_MIME_SIG)/$(lng:S=.catalog) ; - } - Clean clean : $(LOCATE_TARGET)/$(NAME).pre ; -} - -actions Catalogs -{ - mkdir -p $(LOCATE_TARGET)/$(APP_MIME_SIG) - TMP=`echo "$(LOCALES)" | tr ';' ' '` - - for lang in $TMP ; do - if [ ! -f $(CATKEYS_DIR)/$lang.catkeys ]; then - cp $(CATKEYS_DIR)/en.catkeys \ - $(CATKEYS_DIR)/$lang.catkeys; fi - linkcatkeys \ - -o $(LOCATE_TARGET)/$(APP_MIME_SIG)/$lang.catalog \ - -s $(APP_MIME_SIG) \ - -l `basename $(LOCATE_TARGET)/$(APP_MIME_SIG)/$lang.catalog` \ - $(CATKEYS_DIR)/$lang.catkeys - done -} - -# CatalogsInstall : ; -# Copies .catalog files into system locale directory -rule CatalogsInstall -{ - Depends $(<) : $(>) ; - Depends $(>) : catalogs ; -} - -actions CatalogsInstall -{ - mkdir -p "/boot/home/config/data/locale/catalogs/$(APP_MIME_SIG)" ; - cp $(LOCATE_TARGET)/$(APP_MIME_SIG)/*.catalog \ - /boot/home/config/data/locale/catalogs/$(APP_MIME_SIG) -} - -# BindCatalogs : ; -# Binds .catalog files into program executable -rule BindCatalogs -{ - Depends $(<) : $(>) ; - Depends $(<) : $(NAME) ; - Depends $(<) : $(LOCATE_TARGET)/$(NAME) ; - Depends $(LOCATE_TARGET)/$(NAME) : $(NAME) ; - Clean clean : $(<) ; -} - -actions BindCatalogs -{ - TMP=`echo $(LOCALES) | tr ';' ' '` - for lc in $TMP; do - linkcatkeys -o $(LOCATE_TARGET)/$(NAME) \ - -s $(APP_MIME_SIG) -tr \ - -l $lc $(CATKEYS_DIR)/$lc.catkeys - done -} - -# RmApp : ; -# Removes the given application file when the given pseudotarget -# is specified. -rule RmApp -{ - Depends $(<) : $(>) ; -} - -actions RmApp -{ - rm -rf "$(>)" -} - -# RunApp : ; -# Runs the given application in the background when the given pseudotarget -# is specified. -rule RunApp -{ - Depends $(<) : $(>) ; -} - -actions RunApp -{ - "$(>)" & -} - -# InstallDriver1 : ; -# Installs the given driver in the correct location when the given pseudotarget -# is specified. -rule InstallDriver1 -{ - Depends $(<) : $(>) ; - USER_BIN_PATH = /boot/home/config/add-ons/kernel/drivers/bin ; - USER_DEV_PATH = /boot/home/config/add-ons/kernel/drivers/dev ; -} - -actions InstallDriver1 -{ - copyattr --data "$(>)" "$(USER_BIN_PATH)/$(>:B)" - mkdir -p $(USER_DEV_PATH)/$(DRIVER_PATH) - ln -sf "$(USER_BIN_PATH)/$(>:B)" "$(USER_DEV_PATH)/$(DRIVER_PATH)/$(>:B)" -} - -# InstallDriver : ; -# Installs the given driver in the correct location when the given pseudotarget -# is specified, after making sure that this is actually a driver. -rule InstallDriver -{ - if ( $(TYPE) = DRIVER ) - { - InstallDriver1 $(<) : $(>) ; - } -} - -# Link : ; -# Replaces the actions for the default Jam Link rule with one that handles spaces -# in application names. -actions Link bind NEEDLIBS -{ - $(LINK) $(LINKFLAGS) -o "$(<)" $(UNDEFS) $(>) $(NEEDLIBS) $(LINKLIBS) -} - -# BeMain : ; -# This is the main rule that builds the project. -rule BeMain -{ - MkObjectDirs $(>) ; - - if ( $(TYPE) = STATIC ) - { - Library $(<) : $(>) ; - } - else - { - Main $(<) : $(>) ; - } - - if ( $(RSRCS) ) - { - AddResources $(<) : $(RSRCS) ; - } - - if ( $(LOCALES) ) - { - CollectCatKeys ; - } - - MimeSet $(<) ; -} - -##------------------------------------------------------------------- -## Now all the needed variables are defined -##------------------------------------------------------------------- - -# Set the directory where object files and binaries will be created. -# The pre-defined Jam variable OSPLAT will indicate what platform we -# are on (X86 vs PPC, etc.) -LOCATE_TARGET = obj.$(OSPLAT) ; - -# Set some defaults -if ( ! $(NAME) ) -{ - ECHO "No NAME defined!" ; - NAME = NameThisApp ; -} - -if ( ! $(TYPE) ) -{ - ECHO "No TYPE defined...defaulting to APP" ; - TYPE = APP ; -} - -if ( ! $(SRCS) ) -{ - ECHO "NO SRCS defined...defaulting to *.cpp in current directory" ; - SRCS = [ GLOB . : *.cpp ] ; -} - -if ( ! $(DRIVER_PATH) ) -{ - DRIVER_PATH = misc ; -} - -# Now handle platform-specific settings -if ( $(OSPLAT) = X86 ) -{ - if ( $(TYPE) = DRIVER ) - { - CCFLAGS += -D_KERNEL_MODE=1 -no-fpic ; - C++FLAGS += -D_KERNEL_MODE=1 -no-fpic ; - } - - switch $(OPTIMIZE) - { - case FULL : OPTIMIZER = -O3 ; - case SOME : OPTIMIZER = -O1 ; - case NONE : OPTIMIZER = -O0 ; - # Default to FULL - case * : OPTIMIZER = -O3 ; - } - - DEBUG = ; - - if ( $(DEBUGGER) = TRUE ) - { - DEBUG += -g ; - OPTIMIZER = -O0 ; - } - - CCFLAGS += $(OPTIMIZER) $(DEBUG) ; - C++FLAGS += $(OPTIMIZER) $(DEBUG) ; - - if ( $(WARNINGS) = ALL ) - { - CCFLAGS += -Wall -Wno-multichar -Wno-ctor-dtor-privacy ; - C++FLAGS += -Wall -Wno-multichar -Wno-ctor-dtor-privacy ; - } - else if ( $(WARNINGS) = NONE ) - { - CCFLAGS += -w ; - C++FLAGS += -w ; - } - - LINKFLAGS += $(DEBUG) ; - - # Set linker flags - switch $(TYPE) - { - case APP : LINKFLAGS += -Xlinker -soname=_APP_ ; - case SHARED : LINKFLAGS += -shared -Xlinker -soname=$(NAME) ; - case DRIVER : LINKFLAGS += -nostdlib /boot/develop/lib/x86/_KERNEL_ ; - } -} -else if ( $(OSPLAT) = PPC ) -{ - switch $(OPTIMIZE) - { - case FULL : OPTIMIZER = -O7 ; - case SOME : OPTIMIZER = -O3 ; - case NONE : OPTIMIZER = -O0 ; - # Default to FULL - case * : OPTIMIZER = -O7 ; - } - - DEBUG = ; - - if ( $(DEBUGGER) = TRUE ) - { - DEBUG += -g ; - } - - CCFLAGS += $(OPTIMIZER) $(DEBUG) ; - C++FLAGS += $(OPTIMIZER) $(DEBUG) ; - - if ( $(WARNINGS) = ALL ) - { - CCFLAGS += -w on -requireprotos ; - C++FLAGS += -w on -requireprotos ; - } - else if ( $(WARNINGS) = NONE ) - { - CCFLAGS += -w off ; - C++FLAGS += -w off ; - } - - # Clear the standard environment variable - # Now there are no standard libraries to link against - BELIBFILES = ; - - # Set linker flags - if ( $(TYPE) = SHARED ) - { - LINKFLAGS += -xms ; - } - - if ( $(TYPE) = DRIVER ) - { - LINKFLAGS += -nodefaults -export all -G - /boot/develop/lib/ppc/glue-noinit.a - /boot/develop/lib/ppc/_KERNEL_ ; - } - else - { - LINKFLAGS += -export pragma -init _init_routine_ - -term _term_routine_ -lroot - /boot/develop/lib/ppc/glue-noinit.a - /boot/develop/lib/ppc/init_term_dyn.o - /boot/develop/lib/ppc/start_dyn.o ; - } - - if ( $(SYMBOLS) = TRUE ) - { - LINKFLAGS += -map $(NAME).xMAP ; - } - - if ( $(DEBUGGER) = TRUE ) - { - LINKFLAGS += -g -osym $(NAME).SYM ; - } -} -else -{ - EXIT "Your platform is unsupported" ; -} - -# Handle the other settings -LINKLIBS += [ ProcessLibs $(LIBS) ] ; -for i in $(LIBPATHS) -{ - LINKFLAGS += -L$(i) ; -} -HDRS += $(SYSTEM_INCLUDE_PATHS) ; -HDRS += $(LOCAL_INCLUDE_PATHS) ; -CCFLAGS += $(COMPILER_FLAGS) ; -C++FLAGS += $(COMPILER_FLAGS) ; -LINKFLAGS += $(LINKER_FLAGS) ; - -# Localization specific variables - -if ( ! $(APP_MIME_SIG) ) -{ - ECHO "No mime signature defined! Defaulting to x.vnd-Haiku-$(NAME)" ; - APP_MIME_SIG = x.vnd-Haiku-$(NAME) ; -} - -CATKEYS_DIR = locales ; -if ( $(APP_MIME_SIG) ) -{ - CATALOGS_DIR = $(LOCATE_TARGET)/$(APP_MIME_SIG) ; - CATALOGS = $(LOCALES:D=$(CATALOGS_DIR):S=.catalog) ; -} - -# Define some tools -XRES = xres ; -MIMESET = mimeset ; - -# Defining this variable keeps objects from being deleted by the Library -# rule. By default the objects are deleted after being archived into -# the library. I prefer they not be. -KEEPOBJS = true ; - -# Set up the driverinstall target...this makes it easy to install drivers -# for testing -Always driverinstall ; -NotFile driverinstall ; -InstallDriver driverinstall : $(NAME) ; - -# Set up the rmapp target...this removes only the application -Always rmapp ; -NotFile rmapp ; -RmApp rmapp : $(NAME) ; - -# Set up the test target...this runs the application in the background -#Always test ; -NotFile test ; -RunApp test : $(NAME) ; - -Always catkeys ; -NotFile catkeys ; -CollectCatKeys catkeys : $(SRCS) ; - -#Always catalogs ; -NotFile catalogs ; -Catalogs catalogs : catkeys ; - -#Always catalogsinstall ; -NotFile catalogsinstall ; -CatalogsInstall catalogsinstall : $(CATALOGS_DIR)/$(LOCALES:S=.catalog) ; - -#Always bindcatalogs ; -NotFile bindcatalogs ; -BindCatalogs bindcatalogs : $(CATALOGS_DIR)/$(LOCALES:S=.catalog) ; - -##------------------------------------------------------------------- -## OK, let's build -##------------------------------------------------------------------- - -BeMain $(NAME) : $(SRCS) ; - diff --git a/data/launch/system b/data/launch/system index fed17e77d3..d98c711fce 100644 --- a/data/launch/system +++ b/data/launch/system @@ -5,10 +5,6 @@ service x-vnd.Haiku-registrar { } } -service x-vnd.Haiku-app_server { - launch /system/servers/app_server -} - service x-vnd.Haiku-debug_server { launch /system/servers/debug_server } @@ -32,9 +28,7 @@ service x-vnd.Haiku-media_server { launch /system/servers/media_server no_safemode legacy - on { - initial_volumes_mounted - } + on initial_volumes_mounted } service x-vnd.Haiku-midi_server { @@ -73,8 +67,7 @@ job x-vnd.Haiku-cddb_lookup { on volume_mounted } -target login { - job x-vnd.Haiku-autologin { - launch /system/bin/autologin - } +# target login +job x-vnd.Haiku-autologin { + launch /system/bin/autologin } diff --git a/data/launch/user b/data/launch/user index 1daf97e897..d15a4d19e3 100644 --- a/data/launch/user +++ b/data/launch/user @@ -1,3 +1,8 @@ +service x-vnd.Haiku-app_server { + env /system/boot/SetupEnvironment + launch /system/servers/app_server +} + target desktop { env /system/boot/SetupEnvironment diff --git a/data/system/data/firmware/idualwifi7260/iwm-3160-ucode-17.tgz b/data/system/data/firmware/idualwifi7260/iwm-3160-ucode-17.tgz deleted file mode 100644 index 755fbf3f93..0000000000 Binary files a/data/system/data/firmware/idualwifi7260/iwm-3160-ucode-17.tgz and /dev/null differ diff --git a/data/system/data/firmware/idualwifi7260/iwm-3168-ucode-22.tgz b/data/system/data/firmware/idualwifi7260/iwm-3168-ucode-22.tgz deleted file mode 100644 index c57547335a..0000000000 Binary files a/data/system/data/firmware/idualwifi7260/iwm-3168-ucode-22.tgz and /dev/null differ diff --git a/data/system/data/firmware/idualwifi7260/iwm-7260-ucode-17.tgz b/data/system/data/firmware/idualwifi7260/iwm-7260-ucode-17.tgz deleted file mode 100644 index dfd1c2d4c8..0000000000 Binary files a/data/system/data/firmware/idualwifi7260/iwm-7260-ucode-17.tgz and /dev/null differ diff --git a/data/system/data/firmware/idualwifi7260/iwm-7265-ucode-17.tgz b/data/system/data/firmware/idualwifi7260/iwm-7265-ucode-17.tgz deleted file mode 100644 index 7a1f246834..0000000000 Binary files a/data/system/data/firmware/idualwifi7260/iwm-7265-ucode-17.tgz and /dev/null differ diff --git a/data/system/data/firmware/idualwifi7260/iwm-7265D-ucode-22.tgz b/data/system/data/firmware/idualwifi7260/iwm-7265D-ucode-22.tgz deleted file mode 100644 index 923318beed..0000000000 Binary files a/data/system/data/firmware/idualwifi7260/iwm-7265D-ucode-22.tgz and /dev/null differ diff --git a/data/system/data/firmware/idualwifi7260/iwm-8000C-ucode-22.tgz b/data/system/data/firmware/idualwifi7260/iwm-8000C-ucode-22.tgz deleted file mode 100644 index 50b837b31b..0000000000 Binary files a/data/system/data/firmware/idualwifi7260/iwm-8000C-ucode-22.tgz and /dev/null differ diff --git a/data/system/data/firmware/idualwifi7260/iwm-8265-ucode-22.tgz b/data/system/data/firmware/idualwifi7260/iwm-8265-ucode-22.tgz deleted file mode 100644 index e2b2f67fd9..0000000000 Binary files a/data/system/data/firmware/idualwifi7260/iwm-8265-ucode-22.tgz and /dev/null differ diff --git a/data/system/data/firmware/idualwifi7260/iwm-9000-ucode-34.tgz b/data/system/data/firmware/idualwifi7260/iwm-9000-ucode-34.tgz deleted file mode 100644 index 37e22bc61d..0000000000 Binary files a/data/system/data/firmware/idualwifi7260/iwm-9000-ucode-34.tgz and /dev/null differ diff --git a/data/system/data/firmware/idualwifi7260/iwm-9260-ucode-34.tgz b/data/system/data/firmware/idualwifi7260/iwm-9260-ucode-34.tgz deleted file mode 100644 index 4b79b59ce9..0000000000 Binary files a/data/system/data/firmware/idualwifi7260/iwm-9260-ucode-34.tgz and /dev/null differ diff --git a/data/system/data/firmware/iprowifi3945/iwlwifi-3945-ucode-15.32.2.9.tgz b/data/system/data/firmware/iprowifi3945/iwlwifi-3945-ucode-15.32.2.9.tgz deleted file mode 100644 index 1f70dfb5af..0000000000 Binary files a/data/system/data/firmware/iprowifi3945/iwlwifi-3945-ucode-15.32.2.9.tgz and /dev/null differ diff --git a/data/system/data/firmware/iprowifi4965/iwlwifi-100-ucode-39.31.5.1.tgz b/data/system/data/firmware/iprowifi4965/iwlwifi-100-ucode-39.31.5.1.tgz deleted file mode 100644 index 396648452c..0000000000 Binary files a/data/system/data/firmware/iprowifi4965/iwlwifi-100-ucode-39.31.5.1.tgz and /dev/null differ diff --git a/data/system/data/firmware/iprowifi4965/iwlwifi-1000-ucode-39.31.5.1.tgz b/data/system/data/firmware/iprowifi4965/iwlwifi-1000-ucode-39.31.5.1.tgz deleted file mode 100644 index cb763cbf05..0000000000 Binary files a/data/system/data/firmware/iprowifi4965/iwlwifi-1000-ucode-39.31.5.1.tgz and /dev/null differ diff --git a/data/system/data/firmware/iprowifi4965/iwlwifi-105-ucode-18.168.6.1.tgz b/data/system/data/firmware/iprowifi4965/iwlwifi-105-ucode-18.168.6.1.tgz deleted file mode 100644 index 9529b90ad7..0000000000 Binary files a/data/system/data/firmware/iprowifi4965/iwlwifi-105-ucode-18.168.6.1.tgz and /dev/null differ diff --git a/data/system/data/firmware/iprowifi4965/iwlwifi-135-ucode-18.168.6.1.tgz b/data/system/data/firmware/iprowifi4965/iwlwifi-135-ucode-18.168.6.1.tgz deleted file mode 100644 index dd14da455e..0000000000 Binary files a/data/system/data/firmware/iprowifi4965/iwlwifi-135-ucode-18.168.6.1.tgz and /dev/null differ diff --git a/data/system/data/firmware/iprowifi4965/iwlwifi-2000-ucode-18.168.6.1.tgz b/data/system/data/firmware/iprowifi4965/iwlwifi-2000-ucode-18.168.6.1.tgz deleted file mode 100644 index d1ef90f732..0000000000 Binary files a/data/system/data/firmware/iprowifi4965/iwlwifi-2000-ucode-18.168.6.1.tgz and /dev/null differ diff --git a/data/system/data/firmware/iprowifi4965/iwlwifi-2030-ucode-18.168.6.1.tgz b/data/system/data/firmware/iprowifi4965/iwlwifi-2030-ucode-18.168.6.1.tgz deleted file mode 100644 index 7eccfbd8a6..0000000000 Binary files a/data/system/data/firmware/iprowifi4965/iwlwifi-2030-ucode-18.168.6.1.tgz and /dev/null differ diff --git a/data/system/data/firmware/iprowifi4965/iwlwifi-4965-ucode-228.61.2.24.tgz b/data/system/data/firmware/iprowifi4965/iwlwifi-4965-ucode-228.61.2.24.tgz deleted file mode 100644 index 2f6dc85a6f..0000000000 Binary files a/data/system/data/firmware/iprowifi4965/iwlwifi-4965-ucode-228.61.2.24.tgz and /dev/null differ diff --git a/data/system/data/firmware/iprowifi4965/iwlwifi-5000-ucode-8.83.5.1.tgz b/data/system/data/firmware/iprowifi4965/iwlwifi-5000-ucode-8.83.5.1.tgz deleted file mode 100644 index 09f67ce59d..0000000000 Binary files a/data/system/data/firmware/iprowifi4965/iwlwifi-5000-ucode-8.83.5.1.tgz and /dev/null differ diff --git a/data/system/data/firmware/iprowifi4965/iwlwifi-5150-ucode-8.24.2.2.tgz b/data/system/data/firmware/iprowifi4965/iwlwifi-5150-ucode-8.24.2.2.tgz deleted file mode 100644 index 6682f3d1e9..0000000000 Binary files a/data/system/data/firmware/iprowifi4965/iwlwifi-5150-ucode-8.24.2.2.tgz and /dev/null differ diff --git a/data/system/data/firmware/iprowifi4965/iwlwifi-6000-ucode-9.221.4.1.tgz b/data/system/data/firmware/iprowifi4965/iwlwifi-6000-ucode-9.221.4.1.tgz deleted file mode 100644 index f4f62bf97e..0000000000 Binary files a/data/system/data/firmware/iprowifi4965/iwlwifi-6000-ucode-9.221.4.1.tgz and /dev/null differ diff --git a/data/system/data/firmware/iprowifi4965/iwlwifi-6000g2a-ucode-18.168.6.1.tgz b/data/system/data/firmware/iprowifi4965/iwlwifi-6000g2a-ucode-18.168.6.1.tgz deleted file mode 100644 index 1e1598c40f..0000000000 Binary files a/data/system/data/firmware/iprowifi4965/iwlwifi-6000g2a-ucode-18.168.6.1.tgz and /dev/null differ diff --git a/data/system/data/firmware/iprowifi4965/iwlwifi-6000g2b-ucode-18.168.6.1.tgz b/data/system/data/firmware/iprowifi4965/iwlwifi-6000g2b-ucode-18.168.6.1.tgz deleted file mode 100644 index 3d1dc4414a..0000000000 Binary files a/data/system/data/firmware/iprowifi4965/iwlwifi-6000g2b-ucode-18.168.6.1.tgz and /dev/null differ diff --git a/data/system/data/firmware/iprowifi4965/iwlwifi-6050-ucode-41.28.5.1.tgz b/data/system/data/firmware/iprowifi4965/iwlwifi-6050-ucode-41.28.5.1.tgz deleted file mode 100644 index f9c15c3277..0000000000 Binary files a/data/system/data/firmware/iprowifi4965/iwlwifi-6050-ucode-41.28.5.1.tgz and /dev/null differ diff --git a/data/system/data/firmware/ralinkwifi/RT2860_Firmware_V26.zip b/data/system/data/firmware/ralinkwifi/RT2860_Firmware_V26.zip deleted file mode 100644 index 5361dd2147..0000000000 Binary files a/data/system/data/firmware/ralinkwifi/RT2860_Firmware_V26.zip and /dev/null differ diff --git a/data/system/data/firmware/ralinkwifi/RT61_Firmware_V1.2.zip b/data/system/data/firmware/ralinkwifi/RT61_Firmware_V1.2.zip deleted file mode 100644 index bf9e43c7b0..0000000000 Binary files a/data/system/data/firmware/ralinkwifi/RT61_Firmware_V1.2.zip and /dev/null differ diff --git a/data/system/data/firmware/realtekwifi/rtwn-rtl8188fw.tgz b/data/system/data/firmware/realtekwifi/rtwn-rtl8188fw.tgz deleted file mode 100644 index 8761179a68..0000000000 Binary files a/data/system/data/firmware/realtekwifi/rtwn-rtl8188fw.tgz and /dev/null differ diff --git a/data/system/data/firmware/realtekwifi/rtwn-rtl8192cfw.tgz b/data/system/data/firmware/realtekwifi/rtwn-rtl8192cfw.tgz deleted file mode 100644 index 0fe8e7634e..0000000000 Binary files a/data/system/data/firmware/realtekwifi/rtwn-rtl8192cfw.tgz and /dev/null differ diff --git a/data/system/data/licenses/Intel (firmware) b/data/system/data/licenses/Intel (firmware) deleted file mode 100644 index c2a84d4ab0..0000000000 --- a/data/system/data/licenses/Intel (firmware) +++ /dev/null @@ -1,39 +0,0 @@ -Copyright (c) 2006, Intel Corporation. -All rights reserved. - -Redistribution. Redistribution and use in binary form, without -modification, are permitted provided that the following conditions are -met: - -* Redistributions must reproduce the above copyright notice and the - following disclaimer in the documentation and/or other materials - provided with the distribution. -* Neither the name of Intel Corporation nor the names of its suppliers - may be used to endorse or promote products derived from this software - without specific prior written permission. -* No reverse engineering, decompilation, or disassembly of this software - is permitted. - -Limited patent license. Intel Corporation grants a world-wide, -royalty-free, non-exclusive license under patents it now or hereafter -owns or controls to make, have made, use, import, offer to sell and -sell ("Utilize") this software, but solely to the extent that any -such patent is necessary to Utilize the software alone, or in -combination with an operating system licensed under an approved Open -Source license as listed by the Open Source Initiative at -http://opensource.org/licenses. The patent license shall not apply to -any other combinations which include this software. No hardware per -se is licensed hereunder. - -DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR -TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE -USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. diff --git a/data/system/data/licenses/Ralink (firmware) b/data/system/data/licenses/Ralink (firmware) deleted file mode 100644 index 18dd038e4f..0000000000 --- a/data/system/data/licenses/Ralink (firmware) +++ /dev/null @@ -1,39 +0,0 @@ -Copyright (c) 2007, Ralink Technology Corporation -All rights reserved. - -Redistribution. Redistribution and use in binary form, without -modification, are permitted provided that the following conditions are -met: - -* Redistributions must reproduce the above copyright notice and the - following disclaimer in the documentation and/or other materials - provided with the distribution. -* Neither the name of Ralink Technology Corporation nor the names of its - suppliers may be used to endorse or promote products derived from this - software without specific prior written permission. -* No reverse engineering, decompilation, or disassembly of this software - is permitted. - -Limited patent license. Ralink Technology Corporation grants a world-wide, -royalty-free, non-exclusive license under patents it now or hereafter -owns or controls to make, have made, use, import, offer to sell and -sell ("Utilize") this software, but solely to the extent that any -such patent is necessary to Utilize the software alone, or in -combination with an operating system licensed under an approved Open -Source license as listed by the Open Source Initiative at -http://opensource.org/licenses. The patent license shall not apply to -any other combinations which include this software. No hardware per -se is licensed hereunder. - -DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR -TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE -USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. diff --git a/docs/develop/kernel/arch/sparc/overview.rst b/docs/develop/kernel/arch/sparc/overview.rst index 2b3a86969f..567f950e34 100644 --- a/docs/develop/kernel/arch/sparc/overview.rst +++ b/docs/develop/kernel/arch/sparc/overview.rst @@ -281,6 +281,23 @@ Configuring openboot for serial port Boot from network ----------------- +The openboot bootloader supports network booting. See the +`Network booting guide `_ +for general information about the general network booting process. This page +documents the parts specific to the openboot bootloader configuration. + +In openboot, booting from the network is done simply by using the "net:" device +alias in the boot command line. This lets openboot load our bootloader, which +then uses the openboot ability to send and receive data over the network to load +the filesystem (and kernel contained in it) over the network. The two parts are +independent: it's also possible to load the bootloader from the network but boot +a local filesystem, or use the local bootloader and load the filesystem from the +network. + +The bootloader needs to be placed in a tftp server, I use atftpd in Debian, +which serve files from /srv/tftp/ (so "somefile" in the example below will look +for /srv/tftp/somefile). + static ip ********* @@ -310,6 +327,11 @@ the boot file from there. (net is an alias to the network card and also sets the load address: /pci@1f,4000/network@1,1) +This currently does not work completely: the server address is not forwarded to +the bootloader, and as a result, remote filesystems will not be available. The +bootloader needs to be updated to know where to find the address in this case +(it is done for PowerPC, I think). + dhcp **** @@ -325,6 +347,8 @@ the file to load and boot. Debugging --------- +The openboot environment provide several useful commands to assist in debugging: + .. code-block:: text 202000 dis (disassemble starting at 202000 until next return instruction) @@ -333,3 +357,13 @@ Debugging .locals (show local/windowed registers) %pc dis (disassemble code being exectuted) ctrace (backtrace) + +The backtrace provides addresses and register values (allowing to know the +function arguments), there is no symbols and function names printed. +objdump (on the build machine) can be used to disassemble the kernel or +bootloader and find the corresponding code: + +.. code-block:: text + + ./cross-tools-sparc/bin/sparc64-unknown-haiku-objdump -d objects/haiku/sparc/release/system/kernel/kernel_sparc |c++filt|less + ./cross-tools-sparc/bin/sparc64-unknown-haiku-objdump -d objects/haiku/sparc/release/system/boot/openfirmware/boot_loader_openfirmware |c++filt|less diff --git a/docs/user/book.dox b/docs/user/book.dox index cab38a330f..92ce5a5a30 100644 --- a/docs/user/book.dox +++ b/docs/user/book.dox @@ -37,6 +37,8 @@ - The \ref interface is used to create responsive and attractive graphical user interfaces building on the messaging facilities provided by the Application Kit. + - A \link interface_intro general introduction \endlink to the + Interface Kit. - The \link layout_intro Layout API \endlink is a new addition to the Interface Kit in Haiku which provides resources to layout your application flexibly and easily. @@ -642,4 +644,4 @@ namespace BPrivate { } #endif -} \ No newline at end of file +} diff --git a/docs/user/interface/Bitmap.dox b/docs/user/interface/Bitmap.dox index 6f016bbeff..d9f79d2078 100644 --- a/docs/user/interface/Bitmap.dox +++ b/docs/user/interface/Bitmap.dox @@ -497,7 +497,7 @@ appFileInfo.GetIcon(iconBitmap, B_LARGE_ICON); \fn status_t BBitmap::ImportBits(const BBitmap* bitmap) \brief Assigns another bitmap's data to this bitmap. - The supplied bitmap must have the exactly same dimensions as this bitmap. + The supplied bitmap must have the exact same dimensions as this bitmap. Its data is converted to the color space of this bitmap. The currently supported source/target color spaces are @@ -600,7 +600,7 @@ appFileInfo.GetIcon(iconBitmap, B_LARGE_ICON); /*! \fn BView* BBitmap::FindView(const char* viewName) const - \brief Accesses a bitmap's child BView with a the name \a viewName. + \brief Accesses a bitmap's child BView with the name \a viewName. \param viewName The name of the BView to be returned. \returns The BView with the name \a name or \c NULL if the bitmap doesn't diff --git a/docs/user/interface/_interface_intro.dox b/docs/user/interface/_interface_intro.dox index abc2930514..92f1734c38 100644 --- a/docs/user/interface/_interface_intro.dox +++ b/docs/user/interface/_interface_intro.dox @@ -9,6 +9,9 @@ /*! \page interface_intro Introduction to the Interface Kit + \ingroup interface + + \section Overview The Interface Kit holds all the classes you'll need to develop a GUI. Building on the messaging facilities provided by the Application Kit, @@ -28,4 +31,42 @@ take care of making sure all your GUI widgets end up where you want them, with enough space to be useful. You can start learning the Layout API by reading the \link layout_intro introduction \endlink. + + \section Coordinate spaces + + All APIs using coordinates (such as \link BRect or \link BPoint ) refer to + a specific space where these coordinates are interpreted. \link BView and + \link BWindow provide various conversion function to translate coordinates + between different spaces, as needed, or provide separate methods such as + BView Bounds() and Frame(), returning results in different spaces as needed. + + The initial coordinate space, from which all others are derived, is the + screen space. Its origin is at the center of the screen's top-left pixel. + Coordinates can be converted between this and a specific window or view + space is done using the ConvertToScreen and ConvertFromScreen methods of + the corresponding object. + + Each BWindow has its own coordinate space. Its origin is at the center of + the top-left pixel of the window client area (just inside the window border). + Root level views added to the window have their frame rectangle defined in + this space. + + Each BView also gets its own coordinate space. The origin is initially at the + top left of the view, but this can be changed by scrolling the view + (programatically using ScrollBy or ScrollTo, or by the user acting on a scrollbar). + + Additionally, each BView also has a drawing space. This is further transformed + from the BView coordinate space by calls to SetOrigin, SetScale, SetTransform, + ScaleBy, RotateBy, and TranslateBy. The effects of the first two of these + methods are independant from the other four, and it's not recommended to mix + the two types of transformations in the same BView. Note that this is the only space + that can be scaled and rotated, and translated by non-integer units. All other + coordinate spaces are only translations of the screen one and remain aligned on pixels. + + All drawing operations in a BView use coordinates specified in the drawing space. + However, the update rect passed to the Draw method (or passed to the Invalidate + method) is in the BView base coordinate space. Conversion between the two can + be done using the affine transform returned by BView::Transform, or in case the + legacy transformation functions are used, by applying the scale and origin returned + by the Scale() and Origin() functions. */ diff --git a/docs/userguide/en/applications/haikudepot.html b/docs/userguide/en/applications/haikudepot.html index 494c81a552..0dec11551e 100644 --- a/docs/userguide/en/applications/haikudepot.html +++ b/docs/userguide/en/applications/haikudepot.html @@ -105,6 +105,7 @@
  • Available: The package exists in that repository and can be downloaded and installed. If there are any dependencies on other packages, you'll be informed of that while installing and get the choice of downloading/installing all that's necessary.

  • Pending / %: Pending is shown for a package that is queued for download/installation. While a package is downloaded, the progress is shown as percentage.

  • +

    The date column shows when the server system recorded the specific version of the package. Owing to possible delays in the publishing process, this date may not be entirely accurate.

    You can grab the dotted line between the packages list and the info area to vertically resize the packages list.

    index diff --git a/headers/build/BeOSBuildCompatibility.h b/headers/build/BeOSBuildCompatibility.h index 197309ab06..45af40681b 100644 --- a/headers/build/BeOSBuildCompatibility.h +++ b/headers/build/BeOSBuildCompatibility.h @@ -18,10 +18,6 @@ typedef unsigned long haiku_build_addr_t; #define addr_t haiku_build_addr_t -#if defined(HAIKU_HOST_PLATFORM_MSYS) -#define __addr_t_defined -#endif - #include #include diff --git a/headers/build/os/app/Roster.h b/headers/build/os/app/Roster.h index 25f40d9b5a..663f223181 100644 --- a/headers/build/os/app/Roster.h +++ b/headers/build/os/app/Roster.h @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// Copyright (c) 2001-2002, OpenBeOS +// Copyright (c) 2001-2002, Haiku // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), diff --git a/headers/build/os/storage/Directory.h b/headers/build/os/storage/Directory.h index 73ce37cddc..73592cf911 100644 --- a/headers/build/os/storage/Directory.h +++ b/headers/build/os/storage/Directory.h @@ -1,15 +1,11 @@ -//---------------------------------------------------------------------- -// This software is part of the OpenBeOS distribution and is covered -// by the MIT License. -//--------------------------------------------------------------------- -/*! - \file Directory.h - BDirectory interface declaration. -*/ - +/* + * Copyright 2002-2006, Haiku, Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ #ifndef _DIRECTORY_H #define _DIRECTORY_H + #include #include #include @@ -17,90 +13,76 @@ class BFile; class BSymLink; +struct stat_beos; -/*! - \class BDirectory - \brief A directory in the filesystem - Provides an interface for manipulating directories and their contents. - - \author Ingo Weinhold - \author Tyler Dauwalder - - \version 0.0.0 -*/ class BDirectory : public BNode, public BEntryList { -public: - BDirectory(); - BDirectory(const BDirectory &dir); - BDirectory(const entry_ref *ref); - BDirectory(const node_ref *nref); - BDirectory(const BEntry *entry); - BDirectory(const char *path); - BDirectory(const BDirectory *dir, const char *path); + public: + BDirectory(); + BDirectory(const BDirectory &dir); + BDirectory(const entry_ref *ref); + BDirectory(const node_ref *nref); + BDirectory(const BEntry *entry); + BDirectory(const char *path); + BDirectory(const BDirectory *dir, const char *path); - virtual ~BDirectory(); + virtual ~BDirectory(); - status_t SetTo(const entry_ref *ref); - status_t SetTo(const node_ref *nref); - status_t SetTo(const BEntry *entry); - status_t SetTo(const char *path); - status_t SetTo(const BDirectory *dir, const char *path); + status_t SetTo(const entry_ref *ref); + status_t SetTo(const node_ref *nref); + status_t SetTo(const BEntry *entry); + status_t SetTo(const char *path); + status_t SetTo(const BDirectory *dir, const char *path); - status_t GetEntry(BEntry *entry) const; + status_t GetEntry(BEntry *entry) const; - status_t FindEntry(const char *path, BEntry *entry, - bool traverse = false) const; + status_t FindEntry(const char *path, BEntry *entry, + bool traverse = false) const; - bool Contains(const char *path, int32 nodeFlags = B_ANY_NODE) const; - bool Contains(const BEntry *entry, int32 nodeFlags = B_ANY_NODE) const; + bool Contains(const char *path, int32 nodeFlags = B_ANY_NODE) const; + bool Contains(const BEntry *entry, int32 nodeFlags = B_ANY_NODE) const; - status_t GetStatFor(const char *path, struct stat *st) const; + status_t GetStatFor(const char *path, struct stat *st) const; - virtual status_t GetNextEntry(BEntry *entry, bool traverse = false); - virtual status_t GetNextRef(entry_ref *ref); - virtual int32 GetNextDirents(dirent *buf, size_t bufSize, - int32 count = INT_MAX); - virtual status_t Rewind(); - virtual int32 CountEntries(); + virtual status_t GetNextEntry(BEntry *entry, bool traverse = false); + virtual status_t GetNextRef(entry_ref *ref); + virtual int32 GetNextDirents(dirent *buf, size_t bufSize, + int32 count = INT_MAX); + virtual status_t Rewind(); + virtual int32 CountEntries(); - status_t CreateDirectory(const char *path, BDirectory *dir); - status_t CreateFile(const char *path, BFile *file, - bool failIfExists = false); - status_t CreateSymLink(const char *path, const char *linkToPath, - BSymLink *link); + status_t CreateDirectory(const char *path, BDirectory *dir); + status_t CreateFile(const char *path, BFile *file, + bool failIfExists = false); + status_t CreateSymLink(const char *path, const char *linkToPath, + BSymLink *link); - BDirectory &operator=(const BDirectory &dir); + BDirectory &operator=(const BDirectory &dir); -private: - friend class BNode; + private: + friend class BNode; + friend class BEntry; + friend class BFile; - virtual void _ErectorDirectory1(); - virtual void _ErectorDirectory2(); - virtual void _ErectorDirectory3(); - virtual void _ErectorDirectory4(); - virtual void _ErectorDirectory5(); - virtual void _ErectorDirectory6(); + virtual void _ErectorDirectory1(); + virtual void _ErectorDirectory2(); + virtual void _ErectorDirectory3(); + virtual void _ErectorDirectory4(); + virtual void _ErectorDirectory5(); + virtual void _ErectorDirectory6(); -private: - virtual void close_fd(); - int get_fd() const; + private: + virtual void close_fd(); + int get_fd() const; - status_t set_dir_fd(int fd); + status_t set_dir_fd(int fd); -private: - uint32 _reservedData[7]; - int fDirFd; - node_ref fDirNodeRef; - - friend class BEntry; - friend class BFile; + private: + uint32 _reservedData[7]; + int fDirFd; + node_ref fDirNodeRef; }; - -// C functions - status_t create_directory(const char *path, mode_t mode); - #endif // _DIRECTORY_H diff --git a/headers/build/os/storage/Entry.h b/headers/build/os/storage/Entry.h index 179ab0f575..7baa980b49 100644 --- a/headers/build/os/storage/Entry.h +++ b/headers/build/os/storage/Entry.h @@ -1,5 +1,5 @@ //---------------------------------------------------------------------- -// This software is part of the OpenBeOS distribution and is covered +// This software is part of the Haiku distribution and is covered // by the MIT License. //--------------------------------------------------------------------- /*! diff --git a/headers/build/os/storage/File.h b/headers/build/os/storage/File.h index 63de7c35dd..e5e03054d7 100644 --- a/headers/build/os/storage/File.h +++ b/headers/build/os/storage/File.h @@ -1,5 +1,5 @@ //---------------------------------------------------------------------- -// This software is part of the OpenBeOS distribution and is covered +// This software is part of the Haiku distribution and is covered // by the MIT License. //--------------------------------------------------------------------- /*! diff --git a/headers/build/os/storage/MimeType.h b/headers/build/os/storage/MimeType.h index 3a61ffd923..be3add2937 100644 --- a/headers/build/os/storage/MimeType.h +++ b/headers/build/os/storage/MimeType.h @@ -1,5 +1,5 @@ //---------------------------------------------------------------------- -// This software is part of the OpenBeOS distribution and is covered +// This software is part of the Haiku distribution and is covered // by the MIT License. //--------------------------------------------------------------------- /*! diff --git a/headers/build/os/storage/Node.h b/headers/build/os/storage/Node.h index ffb187c695..413a0e9ee9 100644 --- a/headers/build/os/storage/Node.h +++ b/headers/build/os/storage/Node.h @@ -28,11 +28,7 @@ struct node_ref { bool operator!=(const node_ref &ref) const; node_ref& operator=(const node_ref &ref); - bool operator<(const node_ref &ref) const - { - return device < ref.device - || (device == ref.device && node < ref.node); - } + bool operator<(const node_ref &ref) const; dev_t device; ino_t node; diff --git a/headers/build/os/storage/NodeInfo.h b/headers/build/os/storage/NodeInfo.h index b475154c3c..c5b54d6192 100644 --- a/headers/build/os/storage/NodeInfo.h +++ b/headers/build/os/storage/NodeInfo.h @@ -1,5 +1,5 @@ //---------------------------------------------------------------------- -// This software is part of the OpenBeOS distribution and is covered +// This software is part of the Haiku distribution and is covered // by the MIT License. //--------------------------------------------------------------------- /*! diff --git a/headers/build/os/storage/Volume.h b/headers/build/os/storage/Volume.h index 9b3a4b2674..a649e42f52 100644 --- a/headers/build/os/storage/Volume.h +++ b/headers/build/os/storage/Volume.h @@ -1,5 +1,5 @@ // ---------------------------------------------------------------------- -// This software is part of the OpenBeOS distribution and is covered +// This software is part of the Haiku distribution and is covered // by the MIT License. // // File Name: Directory.cpp diff --git a/headers/build/os/support/Archivable.h b/headers/build/os/support/Archivable.h index aeaefd9efd..cb3fc1c47d 100644 --- a/headers/build/os/support/Archivable.h +++ b/headers/build/os/support/Archivable.h @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// Copyright (c) 2001-2002, OpenBeOS +// Copyright (c) 2001-2002, Haiku // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), diff --git a/headers/build/os/support/Errors.h b/headers/build/os/support/Errors.h index 0b5306c920..24c94be6e9 100644 --- a/headers/build/os/support/Errors.h +++ b/headers/build/os/support/Errors.h @@ -100,8 +100,7 @@ /* Storage Kit/File System Errors */ #define B_FILE_ERROR (B_STORAGE_ERROR_BASE + 0) -#define B_FILE_NOT_FOUND (B_STORAGE_ERROR_BASE + 1) - /* deprecated: use B_ENTRY_NOT_FOUND instead */ +/* 1 was B_FILE_NOT_FOUND (deprecated) */ #define B_FILE_EXISTS (B_STORAGE_ERROR_BASE + 2) #define B_ENTRY_NOT_FOUND (B_STORAGE_ERROR_BASE + 3) #define B_NAME_TOO_LONG (B_STORAGE_ERROR_BASE + 4) @@ -184,6 +183,8 @@ #define HAIKU_ETIME B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 58) #define HAIKU_ETXTBSY B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 59) #define HAIKU_ENOATTR B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 60) +#define HAIKU_ENOTRECOVERABLE B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 61) +#define HAIKU_EOWNERDEAD B_TO_POSIX_ERROR(B_POSIX_ERROR_BASE + 62) /* B_NO_MEMORY (0x80000000) can't be negated, so it needs special handling */ #define HAIKU_ENOMEM B_NO_MEMORY diff --git a/headers/build/private/storage/mime/MimeUpdateThread.h b/headers/build/private/storage/mime/MimeUpdateThread.h index c1138b5c5e..598794cf22 100644 --- a/headers/build/private/storage/mime/MimeUpdateThread.h +++ b/headers/build/private/storage/mime/MimeUpdateThread.h @@ -1,5 +1,5 @@ //---------------------------------------------------------------------- -// This software is part of the OpenBeOS distribution and is covered +// This software is part of the Haiku distribution and is covered // by the MIT License. //--------------------------------------------------------------------- /*! diff --git a/headers/build/private/storage/mime/UpdateMimeInfoThread.h b/headers/build/private/storage/mime/UpdateMimeInfoThread.h index 5bf506a6d7..70ceac9f6f 100644 --- a/headers/build/private/storage/mime/UpdateMimeInfoThread.h +++ b/headers/build/private/storage/mime/UpdateMimeInfoThread.h @@ -1,5 +1,5 @@ //---------------------------------------------------------------------- -// This software is part of the OpenBeOS distribution and is covered +// This software is part of the Haiku distribution and is covered // by the MIT License. //--------------------------------------------------------------------- /*! diff --git a/headers/compatibility/bsd/features.h b/headers/compatibility/bsd/features.h index 606584f380..fc76b1da02 100644 --- a/headers/compatibility/bsd/features.h +++ b/headers/compatibility/bsd/features.h @@ -1,32 +1,23 @@ /* - * Copyright 2019 Haiku, Inc. All rights reserved. + * Copyright 2019-2021, Haiku, Inc. All rights reserved. * Distributed under the terms of the MIT License. */ #ifndef _FEATURES_H #define _FEATURES_H -#if defined(_BSD_SOURCE) \ +#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE) \ || (!defined(__STRICT_ANSI__) && !defined(_POSIX_C_SOURCE)) #undef _DEFAULT_SOURCE #define _DEFAULT_SOURCE #endif -#if defined(_GNU_SOURCE) - #undef _ISOC11_SOURCE - #define _ISOC11_SOURCE - #undef _DEFAULT_SOURCE - #define _DEFAULT_SOURCE -#endif -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) \ + || (defined(__cplusplus) && __cplusplus >= 201103L) #undef _ISOC11_SOURCE #define _ISOC11_SOURCE #endif -#if defined(__cplusplus) && __cplusplus >= 201703L - #undef _ISOC11_SOURCE - #define _ISOC11_SOURCE -#endif #endif // _FEATURES_H diff --git a/headers/libs/expat/expat.h b/headers/libs/expat/expat.h deleted file mode 100644 index cb07c1c92e..0000000000 --- a/headers/libs/expat/expat.h +++ /dev/null @@ -1,1004 +0,0 @@ -/* Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd - See the file COPYING for copying permission. -*/ - -#ifndef XmlParse_INCLUDED -#define XmlParse_INCLUDED 1 - -#ifdef __VMS -/* 0 1 2 3 0 1 2 3 - 1234567890123456789012345678901 1234567890123456789012345678901 */ -#define XML_SetProcessingInstructionHandler XML_SetProcessingInstrHandler -#define XML_SetUnparsedEntityDeclHandler XML_SetUnparsedEntDeclHandler -#define XML_SetStartNamespaceDeclHandler XML_SetStartNamespcDeclHandler -#define XML_SetExternalEntityRefHandlerArg XML_SetExternalEntRefHandlerArg -#endif - -#include -#include "expat_external.h" - -struct XML_ParserStruct; -typedef struct XML_ParserStruct *XML_Parser; - -/* Should this be defined using stdbool.h when C99 is available? */ -typedef unsigned char XML_Bool; -#define XML_TRUE ((XML_Bool) 1) -#define XML_FALSE ((XML_Bool) 0) - -/* The XML_Status enum gives the possible return values for several - API functions. The preprocessor #defines are included so this - stanza can be added to code that still needs to support older - versions of Expat 1.95.x: - - #ifndef XML_STATUS_OK - #define XML_STATUS_OK 1 - #define XML_STATUS_ERROR 0 - #endif - - Otherwise, the #define hackery is quite ugly and would have been - dropped. -*/ -enum XML_Status { - XML_STATUS_ERROR = 0, -#define XML_STATUS_ERROR XML_STATUS_ERROR - XML_STATUS_OK = 1, -#define XML_STATUS_OK XML_STATUS_OK - XML_STATUS_SUSPENDED = 2, -#define XML_STATUS_SUSPENDED XML_STATUS_SUSPENDED -}; - -enum XML_Error { - XML_ERROR_NONE, - XML_ERROR_NO_MEMORY, - XML_ERROR_SYNTAX, - XML_ERROR_NO_ELEMENTS, - XML_ERROR_INVALID_TOKEN, - XML_ERROR_UNCLOSED_TOKEN, - XML_ERROR_PARTIAL_CHAR, - XML_ERROR_TAG_MISMATCH, - XML_ERROR_DUPLICATE_ATTRIBUTE, - XML_ERROR_JUNK_AFTER_DOC_ELEMENT, - XML_ERROR_PARAM_ENTITY_REF, - XML_ERROR_UNDEFINED_ENTITY, - XML_ERROR_RECURSIVE_ENTITY_REF, - XML_ERROR_ASYNC_ENTITY, - XML_ERROR_BAD_CHAR_REF, - XML_ERROR_BINARY_ENTITY_REF, - XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF, - XML_ERROR_MISPLACED_XML_PI, - XML_ERROR_UNKNOWN_ENCODING, - XML_ERROR_INCORRECT_ENCODING, - XML_ERROR_UNCLOSED_CDATA_SECTION, - XML_ERROR_EXTERNAL_ENTITY_HANDLING, - XML_ERROR_NOT_STANDALONE, - XML_ERROR_UNEXPECTED_STATE, - XML_ERROR_ENTITY_DECLARED_IN_PE, - XML_ERROR_FEATURE_REQUIRES_XML_DTD, - XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING, - /* Added in 1.95.7. */ - XML_ERROR_UNBOUND_PREFIX, - /* Added in 1.95.8. */ - XML_ERROR_UNDECLARING_PREFIX, - XML_ERROR_INCOMPLETE_PE, - XML_ERROR_XML_DECL, - XML_ERROR_TEXT_DECL, - XML_ERROR_PUBLICID, - XML_ERROR_SUSPENDED, - XML_ERROR_NOT_SUSPENDED, - XML_ERROR_ABORTED, - XML_ERROR_FINISHED, - XML_ERROR_SUSPEND_PE -}; - -enum XML_Content_Type { - XML_CTYPE_EMPTY = 1, - XML_CTYPE_ANY, - XML_CTYPE_MIXED, - XML_CTYPE_NAME, - XML_CTYPE_CHOICE, - XML_CTYPE_SEQ -}; - -enum XML_Content_Quant { - XML_CQUANT_NONE, - XML_CQUANT_OPT, - XML_CQUANT_REP, - XML_CQUANT_PLUS -}; - -/* If type == XML_CTYPE_EMPTY or XML_CTYPE_ANY, then quant will be - XML_CQUANT_NONE, and the other fields will be zero or NULL. - If type == XML_CTYPE_MIXED, then quant will be NONE or REP and - numchildren will contain number of elements that may be mixed in - and children point to an array of XML_Content cells that will be - all of XML_CTYPE_NAME type with no quantification. - - If type == XML_CTYPE_NAME, then the name points to the name, and - the numchildren field will be zero and children will be NULL. The - quant fields indicates any quantifiers placed on the name. - - CHOICE and SEQ will have name NULL, the number of children in - numchildren and children will point, recursively, to an array - of XML_Content cells. - - The EMPTY, ANY, and MIXED types will only occur at top level. -*/ - -typedef struct XML_cp XML_Content; - -struct XML_cp { - enum XML_Content_Type type; - enum XML_Content_Quant quant; - XML_Char * name; - unsigned int numchildren; - XML_Content * children; -}; - - -/* This is called for an element declaration. See above for - description of the model argument. It's the caller's responsibility - to free model when finished with it. -*/ -typedef void (XMLCALL *XML_ElementDeclHandler) (void *userData, - const XML_Char *name, - XML_Content *model); - -XMLPARSEAPI(void) -XML_SetElementDeclHandler(XML_Parser parser, - XML_ElementDeclHandler eldecl); - -/* The Attlist declaration handler is called for *each* attribute. So - a single Attlist declaration with multiple attributes declared will - generate multiple calls to this handler. The "default" parameter - may be NULL in the case of the "#IMPLIED" or "#REQUIRED" - keyword. The "isrequired" parameter will be true and the default - value will be NULL in the case of "#REQUIRED". If "isrequired" is - true and default is non-NULL, then this is a "#FIXED" default. -*/ -typedef void (XMLCALL *XML_AttlistDeclHandler) ( - void *userData, - const XML_Char *elname, - const XML_Char *attname, - const XML_Char *att_type, - const XML_Char *dflt, - int isrequired); - -XMLPARSEAPI(void) -XML_SetAttlistDeclHandler(XML_Parser parser, - XML_AttlistDeclHandler attdecl); - -/* The XML declaration handler is called for *both* XML declarations - and text declarations. The way to distinguish is that the version - parameter will be NULL for text declarations. The encoding - parameter may be NULL for XML declarations. The standalone - parameter will be -1, 0, or 1 indicating respectively that there - was no standalone parameter in the declaration, that it was given - as no, or that it was given as yes. -*/ -typedef void (XMLCALL *XML_XmlDeclHandler) (void *userData, - const XML_Char *version, - const XML_Char *encoding, - int standalone); - -XMLPARSEAPI(void) -XML_SetXmlDeclHandler(XML_Parser parser, - XML_XmlDeclHandler xmldecl); - - -typedef struct { - void *(*malloc_fcn)(size_t size); - void *(*realloc_fcn)(void *ptr, size_t size); - void (*free_fcn)(void *ptr); -} XML_Memory_Handling_Suite; - -/* Constructs a new parser; encoding is the encoding specified by the - external protocol or NULL if there is none specified. -*/ -XMLPARSEAPI(XML_Parser) -XML_ParserCreate(const XML_Char *encoding); - -/* Constructs a new parser and namespace processor. Element type - names and attribute names that belong to a namespace will be - expanded; unprefixed attribute names are never expanded; unprefixed - element type names are expanded only if there is a default - namespace. The expanded name is the concatenation of the namespace - URI, the namespace separator character, and the local part of the - name. If the namespace separator is '\0' then the namespace URI - and the local part will be concatenated without any separator. - When a namespace is not declared, the name and prefix will be - passed through without expansion. -*/ -XMLPARSEAPI(XML_Parser) -XML_ParserCreateNS(const XML_Char *encoding, XML_Char namespaceSeparator); - - -/* Constructs a new parser using the memory management suite referred to - by memsuite. If memsuite is NULL, then use the standard library memory - suite. If namespaceSeparator is non-NULL it creates a parser with - namespace processing as described above. The character pointed at - will serve as the namespace separator. - - All further memory operations used for the created parser will come from - the given suite. -*/ -XMLPARSEAPI(XML_Parser) -XML_ParserCreate_MM(const XML_Char *encoding, - const XML_Memory_Handling_Suite *memsuite, - const XML_Char *namespaceSeparator); - -/* Prepare a parser object to be re-used. This is particularly - valuable when memory allocation overhead is disproportionatly high, - such as when a large number of small documnents need to be parsed. - All handlers are cleared from the parser, except for the - unknownEncodingHandler. The parser's external state is re-initialized - except for the values of ns and ns_triplets. - - Added in Expat 1.95.3. -*/ -XMLPARSEAPI(XML_Bool) -XML_ParserReset(XML_Parser parser, const XML_Char *encoding); - -/* atts is array of name/value pairs, terminated by 0; - names and values are 0 terminated. -*/ -typedef void (XMLCALL *XML_StartElementHandler) (void *userData, - const XML_Char *name, - const XML_Char **atts); - -typedef void (XMLCALL *XML_EndElementHandler) (void *userData, - const XML_Char *name); - - -/* s is not 0 terminated. */ -typedef void (XMLCALL *XML_CharacterDataHandler) (void *userData, - const XML_Char *s, - int len); - -/* target and data are 0 terminated */ -typedef void (XMLCALL *XML_ProcessingInstructionHandler) ( - void *userData, - const XML_Char *target, - const XML_Char *data); - -/* data is 0 terminated */ -typedef void (XMLCALL *XML_CommentHandler) (void *userData, - const XML_Char *data); - -typedef void (XMLCALL *XML_StartCdataSectionHandler) (void *userData); -typedef void (XMLCALL *XML_EndCdataSectionHandler) (void *userData); - -/* This is called for any characters in the XML document for which - there is no applicable handler. This includes both characters that - are part of markup which is of a kind that is not reported - (comments, markup declarations), or characters that are part of a - construct which could be reported but for which no handler has been - supplied. The characters are passed exactly as they were in the XML - document except that they will be encoded in UTF-8 or UTF-16. - Line boundaries are not normalized. Note that a byte order mark - character is not passed to the default handler. There are no - guarantees about how characters are divided between calls to the - default handler: for example, a comment might be split between - multiple calls. -*/ -typedef void (XMLCALL *XML_DefaultHandler) (void *userData, - const XML_Char *s, - int len); - -/* This is called for the start of the DOCTYPE declaration, before - any DTD or internal subset is parsed. -*/ -typedef void (XMLCALL *XML_StartDoctypeDeclHandler) ( - void *userData, - const XML_Char *doctypeName, - const XML_Char *sysid, - const XML_Char *pubid, - int has_internal_subset); - -/* This is called for the start of the DOCTYPE declaration when the - closing > is encountered, but after processing any external - subset. -*/ -typedef void (XMLCALL *XML_EndDoctypeDeclHandler)(void *userData); - -/* This is called for entity declarations. The is_parameter_entity - argument will be non-zero if the entity is a parameter entity, zero - otherwise. - - For internal entities (), value will - be non-NULL and systemId, publicID, and notationName will be NULL. - The value string is NOT nul-terminated; the length is provided in - the value_length argument. Since it is legal to have zero-length - values, do not use this argument to test for internal entities. - - For external entities, value will be NULL and systemId will be - non-NULL. The publicId argument will be NULL unless a public - identifier was provided. The notationName argument will have a - non-NULL value only for unparsed entity declarations. - - Note that is_parameter_entity can't be changed to XML_Bool, since - that would break binary compatibility. -*/ -typedef void (XMLCALL *XML_EntityDeclHandler) ( - void *userData, - const XML_Char *entityName, - int is_parameter_entity, - const XML_Char *value, - int value_length, - const XML_Char *base, - const XML_Char *systemId, - const XML_Char *publicId, - const XML_Char *notationName); - -XMLPARSEAPI(void) -XML_SetEntityDeclHandler(XML_Parser parser, - XML_EntityDeclHandler handler); - -/* OBSOLETE -- OBSOLETE -- OBSOLETE - This handler has been superceded by the EntityDeclHandler above. - It is provided here for backward compatibility. - - This is called for a declaration of an unparsed (NDATA) entity. - The base argument is whatever was set by XML_SetBase. The - entityName, systemId and notationName arguments will never be - NULL. The other arguments may be. -*/ -typedef void (XMLCALL *XML_UnparsedEntityDeclHandler) ( - void *userData, - const XML_Char *entityName, - const XML_Char *base, - const XML_Char *systemId, - const XML_Char *publicId, - const XML_Char *notationName); - -/* This is called for a declaration of notation. The base argument is - whatever was set by XML_SetBase. The notationName will never be - NULL. The other arguments can be. -*/ -typedef void (XMLCALL *XML_NotationDeclHandler) ( - void *userData, - const XML_Char *notationName, - const XML_Char *base, - const XML_Char *systemId, - const XML_Char *publicId); - -/* When namespace processing is enabled, these are called once for - each namespace declaration. The call to the start and end element - handlers occur between the calls to the start and end namespace - declaration handlers. For an xmlns attribute, prefix will be - NULL. For an xmlns="" attribute, uri will be NULL. -*/ -typedef void (XMLCALL *XML_StartNamespaceDeclHandler) ( - void *userData, - const XML_Char *prefix, - const XML_Char *uri); - -typedef void (XMLCALL *XML_EndNamespaceDeclHandler) ( - void *userData, - const XML_Char *prefix); - -/* This is called if the document is not standalone, that is, it has an - external subset or a reference to a parameter entity, but does not - have standalone="yes". If this handler returns XML_STATUS_ERROR, - then processing will not continue, and the parser will return a - XML_ERROR_NOT_STANDALONE error. - If parameter entity parsing is enabled, then in addition to the - conditions above this handler will only be called if the referenced - entity was actually read. -*/ -typedef int (XMLCALL *XML_NotStandaloneHandler) (void *userData); - -/* This is called for a reference to an external parsed general - entity. The referenced entity is not automatically parsed. The - application can parse it immediately or later using - XML_ExternalEntityParserCreate. - - The parser argument is the parser parsing the entity containing the - reference; it can be passed as the parser argument to - XML_ExternalEntityParserCreate. The systemId argument is the - system identifier as specified in the entity declaration; it will - not be NULL. - - The base argument is the system identifier that should be used as - the base for resolving systemId if systemId was relative; this is - set by XML_SetBase; it may be NULL. - - The publicId argument is the public identifier as specified in the - entity declaration, or NULL if none was specified; the whitespace - in the public identifier will have been normalized as required by - the XML spec. - - The context argument specifies the parsing context in the format - expected by the context argument to XML_ExternalEntityParserCreate; - context is valid only until the handler returns, so if the - referenced entity is to be parsed later, it must be copied. - context is NULL only when the entity is a parameter entity. - - The handler should return XML_STATUS_ERROR if processing should not - continue because of a fatal error in the handling of the external - entity. In this case the calling parser will return an - XML_ERROR_EXTERNAL_ENTITY_HANDLING error. - - Note that unlike other handlers the first argument is the parser, - not userData. -*/ -typedef int (XMLCALL *XML_ExternalEntityRefHandler) ( - XML_Parser parser, - const XML_Char *context, - const XML_Char *base, - const XML_Char *systemId, - const XML_Char *publicId); - -/* This is called in two situations: - 1) An entity reference is encountered for which no declaration - has been read *and* this is not an error. - 2) An internal entity reference is read, but not expanded, because - XML_SetDefaultHandler has been called. - Note: skipped parameter entities in declarations and skipped general - entities in attribute values cannot be reported, because - the event would be out of sync with the reporting of the - declarations or attribute values -*/ -typedef void (XMLCALL *XML_SkippedEntityHandler) ( - void *userData, - const XML_Char *entityName, - int is_parameter_entity); - -/* This structure is filled in by the XML_UnknownEncodingHandler to - provide information to the parser about encodings that are unknown - to the parser. - - The map[b] member gives information about byte sequences whose - first byte is b. - - If map[b] is c where c is >= 0, then b by itself encodes the - Unicode scalar value c. - - If map[b] is -1, then the byte sequence is malformed. - - If map[b] is -n, where n >= 2, then b is the first byte of an - n-byte sequence that encodes a single Unicode scalar value. - - The data member will be passed as the first argument to the convert - function. - - The convert function is used to convert multibyte sequences; s will - point to a n-byte sequence where map[(unsigned char)*s] == -n. The - convert function must return the Unicode scalar value represented - by this byte sequence or -1 if the byte sequence is malformed. - - The convert function may be NULL if the encoding is a single-byte - encoding, that is if map[b] >= -1 for all bytes b. - - When the parser is finished with the encoding, then if release is - not NULL, it will call release passing it the data member; once - release has been called, the convert function will not be called - again. - - Expat places certain restrictions on the encodings that are supported - using this mechanism. - - 1. Every ASCII character that can appear in a well-formed XML document, - other than the characters - - $@\^`{}~ - - must be represented by a single byte, and that byte must be the - same byte that represents that character in ASCII. - - 2. No character may require more than 4 bytes to encode. - - 3. All characters encoded must have Unicode scalar values <= - 0xFFFF, (i.e., characters that would be encoded by surrogates in - UTF-16 are not allowed). Note that this restriction doesn't - apply to the built-in support for UTF-8 and UTF-16. - - 4. No Unicode character may be encoded by more than one distinct - sequence of bytes. -*/ -typedef struct { - int map[256]; - void *data; - int (XMLCALL *convert)(void *data, const char *s); - void (XMLCALL *release)(void *data); -} XML_Encoding; - -/* This is called for an encoding that is unknown to the parser. - - The encodingHandlerData argument is that which was passed as the - second argument to XML_SetUnknownEncodingHandler. - - The name argument gives the name of the encoding as specified in - the encoding declaration. - - If the callback can provide information about the encoding, it must - fill in the XML_Encoding structure, and return XML_STATUS_OK. - Otherwise it must return XML_STATUS_ERROR. - - If info does not describe a suitable encoding, then the parser will - return an XML_UNKNOWN_ENCODING error. -*/ -typedef int (XMLCALL *XML_UnknownEncodingHandler) ( - void *encodingHandlerData, - const XML_Char *name, - XML_Encoding *info); - -XMLPARSEAPI(void) -XML_SetElementHandler(XML_Parser parser, - XML_StartElementHandler start, - XML_EndElementHandler end); - -XMLPARSEAPI(void) -XML_SetStartElementHandler(XML_Parser parser, - XML_StartElementHandler handler); - -XMLPARSEAPI(void) -XML_SetEndElementHandler(XML_Parser parser, - XML_EndElementHandler handler); - -XMLPARSEAPI(void) -XML_SetCharacterDataHandler(XML_Parser parser, - XML_CharacterDataHandler handler); - -XMLPARSEAPI(void) -XML_SetProcessingInstructionHandler(XML_Parser parser, - XML_ProcessingInstructionHandler handler); -XMLPARSEAPI(void) -XML_SetCommentHandler(XML_Parser parser, - XML_CommentHandler handler); - -XMLPARSEAPI(void) -XML_SetCdataSectionHandler(XML_Parser parser, - XML_StartCdataSectionHandler start, - XML_EndCdataSectionHandler end); - -XMLPARSEAPI(void) -XML_SetStartCdataSectionHandler(XML_Parser parser, - XML_StartCdataSectionHandler start); - -XMLPARSEAPI(void) -XML_SetEndCdataSectionHandler(XML_Parser parser, - XML_EndCdataSectionHandler end); - -/* This sets the default handler and also inhibits expansion of - internal entities. These entity references will be passed to the - default handler, or to the skipped entity handler, if one is set. -*/ -XMLPARSEAPI(void) -XML_SetDefaultHandler(XML_Parser parser, - XML_DefaultHandler handler); - -/* This sets the default handler but does not inhibit expansion of - internal entities. The entity reference will not be passed to the - default handler. -*/ -XMLPARSEAPI(void) -XML_SetDefaultHandlerExpand(XML_Parser parser, - XML_DefaultHandler handler); - -XMLPARSEAPI(void) -XML_SetDoctypeDeclHandler(XML_Parser parser, - XML_StartDoctypeDeclHandler start, - XML_EndDoctypeDeclHandler end); - -XMLPARSEAPI(void) -XML_SetStartDoctypeDeclHandler(XML_Parser parser, - XML_StartDoctypeDeclHandler start); - -XMLPARSEAPI(void) -XML_SetEndDoctypeDeclHandler(XML_Parser parser, - XML_EndDoctypeDeclHandler end); - -XMLPARSEAPI(void) -XML_SetUnparsedEntityDeclHandler(XML_Parser parser, - XML_UnparsedEntityDeclHandler handler); - -XMLPARSEAPI(void) -XML_SetNotationDeclHandler(XML_Parser parser, - XML_NotationDeclHandler handler); - -XMLPARSEAPI(void) -XML_SetNamespaceDeclHandler(XML_Parser parser, - XML_StartNamespaceDeclHandler start, - XML_EndNamespaceDeclHandler end); - -XMLPARSEAPI(void) -XML_SetStartNamespaceDeclHandler(XML_Parser parser, - XML_StartNamespaceDeclHandler start); - -XMLPARSEAPI(void) -XML_SetEndNamespaceDeclHandler(XML_Parser parser, - XML_EndNamespaceDeclHandler end); - -XMLPARSEAPI(void) -XML_SetNotStandaloneHandler(XML_Parser parser, - XML_NotStandaloneHandler handler); - -XMLPARSEAPI(void) -XML_SetExternalEntityRefHandler(XML_Parser parser, - XML_ExternalEntityRefHandler handler); - -/* If a non-NULL value for arg is specified here, then it will be - passed as the first argument to the external entity ref handler - instead of the parser object. -*/ -XMLPARSEAPI(void) -XML_SetExternalEntityRefHandlerArg(XML_Parser parser, - void *arg); - -XMLPARSEAPI(void) -XML_SetSkippedEntityHandler(XML_Parser parser, - XML_SkippedEntityHandler handler); - -XMLPARSEAPI(void) -XML_SetUnknownEncodingHandler(XML_Parser parser, - XML_UnknownEncodingHandler handler, - void *encodingHandlerData); - -/* This can be called within a handler for a start element, end - element, processing instruction or character data. It causes the - corresponding markup to be passed to the default handler. -*/ -XMLPARSEAPI(void) -XML_DefaultCurrent(XML_Parser parser); - -/* If do_nst is non-zero, and namespace processing is in effect, and - a name has a prefix (i.e. an explicit namespace qualifier) then - that name is returned as a triplet in a single string separated by - the separator character specified when the parser was created: URI - + sep + local_name + sep + prefix. - - If do_nst is zero, then namespace information is returned in the - default manner (URI + sep + local_name) whether or not the name - has a prefix. - - Note: Calling XML_SetReturnNSTriplet after XML_Parse or - XML_ParseBuffer has no effect. -*/ - -XMLPARSEAPI(void) -XML_SetReturnNSTriplet(XML_Parser parser, int do_nst); - -/* This value is passed as the userData argument to callbacks. */ -XMLPARSEAPI(void) -XML_SetUserData(XML_Parser parser, void *userData); - -/* Returns the last value set by XML_SetUserData or NULL. */ -#define XML_GetUserData(parser) (*(void **)(parser)) - -/* This is equivalent to supplying an encoding argument to - XML_ParserCreate. On success XML_SetEncoding returns non-zero, - zero otherwise. - Note: Calling XML_SetEncoding after XML_Parse or XML_ParseBuffer - has no effect and returns XML_STATUS_ERROR. -*/ -XMLPARSEAPI(enum XML_Status) -XML_SetEncoding(XML_Parser parser, const XML_Char *encoding); - -/* If this function is called, then the parser will be passed as the - first argument to callbacks instead of userData. The userData will - still be accessible using XML_GetUserData. -*/ -XMLPARSEAPI(void) -XML_UseParserAsHandlerArg(XML_Parser parser); - -/* If useDTD == XML_TRUE is passed to this function, then the parser - will assume that there is an external subset, even if none is - specified in the document. In such a case the parser will call the - externalEntityRefHandler with a value of NULL for the systemId - argument (the publicId and context arguments will be NULL as well). - Note: For the purpose of checking WFC: Entity Declared, passing - useDTD == XML_TRUE will make the parser behave as if the document - had a DTD with an external subset. - Note: If this function is called, then this must be done before - the first call to XML_Parse or XML_ParseBuffer, since it will - have no effect after that. Returns - XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING. - Note: If the document does not have a DOCTYPE declaration at all, - then startDoctypeDeclHandler and endDoctypeDeclHandler will not - be called, despite an external subset being parsed. - Note: If XML_DTD is not defined when Expat is compiled, returns - XML_ERROR_FEATURE_REQUIRES_XML_DTD. -*/ -XMLPARSEAPI(enum XML_Error) -XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD); - - -/* Sets the base to be used for resolving relative URIs in system - identifiers in declarations. Resolving relative identifiers is - left to the application: this value will be passed through as the - base argument to the XML_ExternalEntityRefHandler, - XML_NotationDeclHandler and XML_UnparsedEntityDeclHandler. The base - argument will be copied. Returns XML_STATUS_ERROR if out of memory, - XML_STATUS_OK otherwise. -*/ -XMLPARSEAPI(enum XML_Status) -XML_SetBase(XML_Parser parser, const XML_Char *base); - -XMLPARSEAPI(const XML_Char *) -XML_GetBase(XML_Parser parser); - -/* Returns the number of the attribute/value pairs passed in last call - to the XML_StartElementHandler that were specified in the start-tag - rather than defaulted. Each attribute/value pair counts as 2; thus - this correspondds to an index into the atts array passed to the - XML_StartElementHandler. -*/ -XMLPARSEAPI(int) -XML_GetSpecifiedAttributeCount(XML_Parser parser); - -/* Returns the index of the ID attribute passed in the last call to - XML_StartElementHandler, or -1 if there is no ID attribute. Each - attribute/value pair counts as 2; thus this correspondds to an - index into the atts array passed to the XML_StartElementHandler. -*/ -XMLPARSEAPI(int) -XML_GetIdAttributeIndex(XML_Parser parser); - -/* Parses some input. Returns XML_STATUS_ERROR if a fatal error is - detected. The last call to XML_Parse must have isFinal true; len - may be zero for this call (or any other). - - Though the return values for these functions has always been - described as a Boolean value, the implementation, at least for the - 1.95.x series, has always returned exactly one of the XML_Status - values. -*/ -XMLPARSEAPI(enum XML_Status) -XML_Parse(XML_Parser parser, const char *s, int len, int isFinal); - -XMLPARSEAPI(void *) -XML_GetBuffer(XML_Parser parser, int len); - -XMLPARSEAPI(enum XML_Status) -XML_ParseBuffer(XML_Parser parser, int len, int isFinal); - -/* Stops parsing, causing XML_Parse() or XML_ParseBuffer() to return. - Must be called from within a call-back handler, except when aborting - (resumable = 0) an already suspended parser. Some call-backs may - still follow because they would otherwise get lost. Examples: - - endElementHandler() for empty elements when stopped in - startElementHandler(), - - endNameSpaceDeclHandler() when stopped in endElementHandler(), - and possibly others. - - Can be called from most handlers, including DTD related call-backs, - except when parsing an external parameter entity and resumable != 0. - Returns XML_STATUS_OK when successful, XML_STATUS_ERROR otherwise. - Possible error codes: - - XML_ERROR_SUSPENDED: when suspending an already suspended parser. - - XML_ERROR_FINISHED: when the parser has already finished. - - XML_ERROR_SUSPEND_PE: when suspending while parsing an external PE. - - When resumable != 0 (true) then parsing is suspended, that is, - XML_Parse() and XML_ParseBuffer() return XML_STATUS_SUSPENDED. - Otherwise, parsing is aborted, that is, XML_Parse() and XML_ParseBuffer() - return XML_STATUS_ERROR with error code XML_ERROR_ABORTED. - - *Note*: - This will be applied to the current parser instance only, that is, if - there is a parent parser then it will continue parsing when the - externalEntityRefHandler() returns. It is up to the implementation of - the externalEntityRefHandler() to call XML_StopParser() on the parent - parser (recursively), if one wants to stop parsing altogether. - - When suspended, parsing can be resumed by calling XML_ResumeParser(). -*/ -XMLPARSEAPI(enum XML_Status) -XML_StopParser(XML_Parser parser, XML_Bool resumable); - -/* Resumes parsing after it has been suspended with XML_StopParser(). - Must not be called from within a handler call-back. Returns same - status codes as XML_Parse() or XML_ParseBuffer(). - Additional error code XML_ERROR_NOT_SUSPENDED possible. - - *Note*: - This must be called on the most deeply nested child parser instance - first, and on its parent parser only after the child parser has finished, - to be applied recursively until the document entity's parser is restarted. - That is, the parent parser will not resume by itself and it is up to the - application to call XML_ResumeParser() on it at the appropriate moment. -*/ -XMLPARSEAPI(enum XML_Status) -XML_ResumeParser(XML_Parser parser); - -enum XML_Parsing { - XML_INITIALIZED, - XML_PARSING, - XML_FINISHED, - XML_SUSPENDED -}; - -typedef struct { - enum XML_Parsing parsing; - XML_Bool finalBuffer; -} XML_ParsingStatus; - -/* Returns status of parser with respect to being initialized, parsing, - finished, or suspended and processing the final buffer. - XXX XML_Parse() and XML_ParseBuffer() should return XML_ParsingStatus, - XXX with XML_FINISHED_OK or XML_FINISHED_ERROR replacing XML_FINISHED -*/ -XMLPARSEAPI(void) -XML_GetParsingStatus(XML_Parser parser, XML_ParsingStatus *status); - -/* Creates an XML_Parser object that can parse an external general - entity; context is a '\0'-terminated string specifying the parse - context; encoding is a '\0'-terminated string giving the name of - the externally specified encoding, or NULL if there is no - externally specified encoding. The context string consists of a - sequence of tokens separated by formfeeds (\f); a token consisting - of a name specifies that the general entity of the name is open; a - token of the form prefix=uri specifies the namespace for a - particular prefix; a token of the form =uri specifies the default - namespace. This can be called at any point after the first call to - an ExternalEntityRefHandler so longer as the parser has not yet - been freed. The new parser is completely independent and may - safely be used in a separate thread. The handlers and userData are - initialized from the parser argument. Returns NULL if out of memory. - Otherwise returns a new XML_Parser object. -*/ -XMLPARSEAPI(XML_Parser) -XML_ExternalEntityParserCreate(XML_Parser parser, - const XML_Char *context, - const XML_Char *encoding); - -enum XML_ParamEntityParsing { - XML_PARAM_ENTITY_PARSING_NEVER, - XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE, - XML_PARAM_ENTITY_PARSING_ALWAYS -}; - -/* Controls parsing of parameter entities (including the external DTD - subset). If parsing of parameter entities is enabled, then - references to external parameter entities (including the external - DTD subset) will be passed to the handler set with - XML_SetExternalEntityRefHandler. The context passed will be 0. - - Unlike external general entities, external parameter entities can - only be parsed synchronously. If the external parameter entity is - to be parsed, it must be parsed during the call to the external - entity ref handler: the complete sequence of - XML_ExternalEntityParserCreate, XML_Parse/XML_ParseBuffer and - XML_ParserFree calls must be made during this call. After - XML_ExternalEntityParserCreate has been called to create the parser - for the external parameter entity (context must be 0 for this - call), it is illegal to make any calls on the old parser until - XML_ParserFree has been called on the newly created parser. - If the library has been compiled without support for parameter - entity parsing (ie without XML_DTD being defined), then - XML_SetParamEntityParsing will return 0 if parsing of parameter - entities is requested; otherwise it will return non-zero. - Note: If XML_SetParamEntityParsing is called after XML_Parse or - XML_ParseBuffer, then it has no effect and will always return 0. -*/ -XMLPARSEAPI(int) -XML_SetParamEntityParsing(XML_Parser parser, - enum XML_ParamEntityParsing parsing); - -/* If XML_Parse or XML_ParseBuffer have returned XML_STATUS_ERROR, then - XML_GetErrorCode returns information about the error. -*/ -XMLPARSEAPI(enum XML_Error) -XML_GetErrorCode(XML_Parser parser); - -/* These functions return information about the current parse - location. They may be called from any callback called to report - some parse event; in this case the location is the location of the - first of the sequence of characters that generated the event. When - called from callbacks generated by declarations in the document - prologue, the location identified isn't as neatly defined, but will - be within the relevant markup. When called outside of the callback - functions, the position indicated will be just past the last parse - event (regardless of whether there was an associated callback). - - They may also be called after returning from a call to XML_Parse - or XML_ParseBuffer. If the return value is XML_STATUS_ERROR then - the location is the location of the character at which the error - was detected; otherwise the location is the location of the last - parse event, as described above. -*/ -XMLPARSEAPI(int) XML_GetCurrentLineNumber(XML_Parser parser); -XMLPARSEAPI(int) XML_GetCurrentColumnNumber(XML_Parser parser); -XMLPARSEAPI(long) XML_GetCurrentByteIndex(XML_Parser parser); - -/* Return the number of bytes in the current event. - Returns 0 if the event is in an internal entity. -*/ -XMLPARSEAPI(int) -XML_GetCurrentByteCount(XML_Parser parser); - -/* If XML_CONTEXT_BYTES is defined, returns the input buffer, sets - the integer pointed to by offset to the offset within this buffer - of the current parse position, and sets the integer pointed to by size - to the size of this buffer (the number of input bytes). Otherwise - returns a NULL pointer. Also returns a NULL pointer if a parse isn't - active. - - NOTE: The character pointer returned should not be used outside - the handler that makes the call. -*/ -XMLPARSEAPI(const char *) -XML_GetInputContext(XML_Parser parser, - int *offset, - int *size); - -/* For backwards compatibility with previous versions. */ -#define XML_GetErrorLineNumber XML_GetCurrentLineNumber -#define XML_GetErrorColumnNumber XML_GetCurrentColumnNumber -#define XML_GetErrorByteIndex XML_GetCurrentByteIndex - -/* Frees the content model passed to the element declaration handler */ -XMLPARSEAPI(void) -XML_FreeContentModel(XML_Parser parser, XML_Content *model); - -/* Exposing the memory handling functions used in Expat */ -XMLPARSEAPI(void *) -XML_MemMalloc(XML_Parser parser, size_t size); - -XMLPARSEAPI(void *) -XML_MemRealloc(XML_Parser parser, void *ptr, size_t size); - -XMLPARSEAPI(void) -XML_MemFree(XML_Parser parser, void *ptr); - -/* Frees memory used by the parser. */ -XMLPARSEAPI(void) -XML_ParserFree(XML_Parser parser); - -/* Returns a string describing the error. */ -XMLPARSEAPI(const XML_LChar *) -XML_ErrorString(enum XML_Error code); - -/* Return a string containing the version number of this expat */ -XMLPARSEAPI(const XML_LChar *) -XML_ExpatVersion(void); - -typedef struct { - int major; - int minor; - int micro; -} XML_Expat_Version; - -/* Return an XML_Expat_Version structure containing numeric version - number information for this version of expat. -*/ -XMLPARSEAPI(XML_Expat_Version) -XML_ExpatVersionInfo(void); - -/* Added in Expat 1.95.5. */ -enum XML_FeatureEnum { - XML_FEATURE_END = 0, - XML_FEATURE_UNICODE, - XML_FEATURE_UNICODE_WCHAR_T, - XML_FEATURE_DTD, - XML_FEATURE_CONTEXT_BYTES, - XML_FEATURE_MIN_SIZE, - XML_FEATURE_SIZEOF_XML_CHAR, - XML_FEATURE_SIZEOF_XML_LCHAR - /* Additional features must be added to the end of this enum. */ -}; - -typedef struct { - enum XML_FeatureEnum feature; - const XML_LChar *name; - long int value; -} XML_Feature; - -XMLPARSEAPI(const XML_Feature *) -XML_GetFeatureList(void); - - -/* Expat follows the GNU/Linux convention of odd number minor version for - beta/development releases and even number minor version for stable - releases. Micro is bumped with each release, and set to 0 with each - change to major or minor version. -*/ -#define XML_MAJOR_VERSION 1 -#define XML_MINOR_VERSION 95 -#define XML_MICRO_VERSION 8 - -#ifdef __cplusplus -} -#endif - -#endif /* not XmlParse_INCLUDED */ diff --git a/headers/libs/expat/expat_config.h b/headers/libs/expat/expat_config.h deleted file mode 100644 index d4faafd1bb..0000000000 --- a/headers/libs/expat/expat_config.h +++ /dev/null @@ -1,93 +0,0 @@ -/* expat_config.h. Generated by configure. */ -/* expat_config.h.in. Generated from configure.in by autoheader. */ - -/* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */ -#define BYTEORDER 1234 - -/* Define to 1 if you have the `bcopy' function. */ -#define HAVE_BCOPY 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_CHECK_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_DLFCN_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_FCNTL_H 1 - -/* Define to 1 if you have the `getpagesize' function. */ -/* #undef HAVE_GETPAGESIZE */ - -/* Define to 1 if you have the header file. */ -#define HAVE_INTTYPES_H 1 - -/* Define to 1 if you have the `memmove' function. */ -#define HAVE_MEMMOVE 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_MEMORY_H 1 - -/* Define to 1 if you have a working `mmap' system call. */ -/* #undef HAVE_MMAP */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_STDINT_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_STDLIB_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRINGS_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRING_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TYPES_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "expat-bugs@mail.libexpat.org" - -/* Define to the full name of this package. */ -#define PACKAGE_NAME "expat" - -/* Define to the full name and version of this package. */ -#define PACKAGE_STRING "expat 1.95.8" - -/* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "expat" - -/* Define to the version of this package. */ -#define PACKAGE_VERSION "1.95.8" - -/* Define to 1 if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* whether byteorder is bigendian */ -/* #undef WORDS_BIGENDIAN */ - -/* Define to specify how much context to retain around the current parse - point. */ -#define XML_CONTEXT_BYTES 1024 - -/* Define to make parameter entity parsing functionality available. */ -#define XML_DTD 1 - -/* Define to make XML Namespaces functionality available. */ -#define XML_NS 1 - -/* Define to empty if `const' does not conform to ANSI C. */ -/* #undef const */ - -/* Define to `long' if does not define. */ -/* #undef off_t */ - -/* Define to `unsigned' if does not define. */ -/* #undef size_t */ diff --git a/headers/libs/expat/expat_external.h b/headers/libs/expat/expat_external.h deleted file mode 100644 index 7081403e9d..0000000000 --- a/headers/libs/expat/expat_external.h +++ /dev/null @@ -1,92 +0,0 @@ -/* Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd - See the file COPYING for copying permission. -*/ - -/* External API definitions */ - -#if defined(_MSC_EXTENSIONS) && !(defined(__BEOS__) || defined(__HAIKU__)) && !defined(__CYGWIN__) -#define XML_USE_MSC_EXTENSIONS 1 -#endif - -/* Expat tries very hard to make the API boundary very specifically - defined. There are two macros defined to control this boundary; - each of these can be defined before including this header to - achieve some different behavior, but doing so it not recommended or - tested frequently. - - XMLCALL - The calling convention to use for all calls across the - "library boundary." This will default to cdecl, and - try really hard to tell the compiler that's what we - want. - - XMLIMPORT - Whatever magic is needed to note that a function is - to be imported from a dynamically loaded library - (.dll, .so, or .sl, depending on your platform). - - The XMLCALL macro was added in Expat 1.95.7. The only one which is - expected to be directly useful in client code is XMLCALL. - - Note that on at least some Unix versions, the Expat library must be - compiled with the cdecl calling convention as the default since - system headers may assume the cdecl convention. -*/ -#ifndef XMLCALL -#if defined(XML_USE_MSC_EXTENSIONS) -#define XMLCALL __cdecl -#elif defined(__GNUC__) && defined(__i386) -#define XMLCALL __attribute__((cdecl)) -#else -/* For any platform which uses this definition and supports more than - one calling convention, we need to extend this definition to - declare the convention used on that platform, if it's possible to - do so. - - If this is the case for your platform, please file a bug report - with information on how to identify your platform via the C - pre-processor and how to specify the same calling convention as the - platform's malloc() implementation. -*/ -#define XMLCALL -#endif -#endif /* not defined XMLCALL */ - - -#if !defined(XML_STATIC) && !defined(XMLIMPORT) -#ifndef XML_BUILDING_EXPAT -/* using Expat from an application */ - -#ifdef XML_USE_MSC_EXTENSIONS -#define XMLIMPORT __declspec(dllimport) -#endif - -#endif -#endif /* not defined XML_STATIC */ - -/* If we didn't define it above, define it away: */ -#ifndef XMLIMPORT -#define XMLIMPORT -#endif - - -#define XMLPARSEAPI(type) XMLIMPORT type XMLCALL - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef XML_UNICODE_WCHAR_T -#define XML_UNICODE -#endif - -#ifdef XML_UNICODE /* Information is UTF-16 encoded. */ -#ifdef XML_UNICODE_WCHAR_T -typedef wchar_t XML_Char; -typedef wchar_t XML_LChar; -#else -typedef unsigned short XML_Char; -typedef char XML_LChar; -#endif /* XML_UNICODE_WCHAR_T */ -#else /* Information is UTF-8 encoded. */ -typedef char XML_Char; -typedef char XML_LChar; -#endif /* XML_UNICODE */ diff --git a/headers/libs/libc++/CMakeLists.txt b/headers/libs/libc++/CMakeLists.txt deleted file mode 100644 index e16dc8b4de..0000000000 --- a/headers/libs/libc++/CMakeLists.txt +++ /dev/null @@ -1,52 +0,0 @@ -if (NOT LIBCXX_INSTALL_SUPPORT_HEADERS) - set(LIBCXX_SUPPORT_HEADER_PATTERN PATTERN "support" EXCLUDE) -endif() - -set(LIBCXX_HEADER_PATTERN - PATTERN "*" - PATTERN "CMakeLists.txt" EXCLUDE - PATTERN ".svn" EXCLUDE - PATTERN "__config_site.in" EXCLUDE - ${LIBCXX_SUPPORT_HEADER_PATTERN} - ) - -file(COPY . - DESTINATION "${CMAKE_BINARY_DIR}/include/c++/v1" - FILES_MATCHING - ${LIBCXX_HEADER_PATTERN} - ) - -if (LIBCXX_INSTALL_HEADERS) - install(DIRECTORY . - DESTINATION include/c++/v1 - COMPONENT libcxx - FILES_MATCHING - ${LIBCXX_HEADER_PATTERN} - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ - ) - - if (LIBCXX_NEEDS_SITE_CONFIG) - set(UNIX_CAT cat) - if (WIN32) - set(UNIX_CAT type) - endif() - # Generate and install a custom __config header. The new header is created - # by prepending __config_site to the current __config header. - add_custom_command(OUTPUT ${LIBCXX_BINARY_DIR}/__generated_config - COMMAND ${CMAKE_COMMAND} -E copy ${LIBCXX_BINARY_DIR}/__config_site ${LIBCXX_BINARY_DIR}/__generated_config - COMMAND ${UNIX_CAT} ${LIBCXX_SOURCE_DIR}/include/__config >> ${LIBCXX_BINARY_DIR}/__generated_config - DEPENDS ${LIBCXX_SOURCE_DIR}/include/__config - ${LIBCXX_BINARY_DIR}/__config_site - ) - # Add a target that executes the generation commands. - add_custom_target(generate_config_header ALL - DEPENDS ${LIBCXX_BINARY_DIR}/__generated_config) - # Install the generated header as __config. - install(FILES ${LIBCXX_BINARY_DIR}/__generated_config - DESTINATION include/c++/v1 - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ - RENAME __config - COMPONENT libcxx) - endif() - -endif() diff --git a/headers/libs/libc++/__bit_reference b/headers/libs/libc++/__bit_reference deleted file mode 100644 index 5659ed0682..0000000000 --- a/headers/libs/libc++/__bit_reference +++ /dev/null @@ -1,1286 +0,0 @@ -// -*- C++ -*- -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP___BIT_REFERENCE -#define _LIBCPP___BIT_REFERENCE - -#include <__config> -#include - -#include <__undef_min_max> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -template class __bit_iterator; -template class __bit_const_reference; - -template -struct __has_storage_type -{ - static const bool value = false; -}; - -template ::value> -class __bit_reference -{ - typedef typename _Cp::__storage_type __storage_type; - typedef typename _Cp::__storage_pointer __storage_pointer; - - __storage_pointer __seg_; - __storage_type __mask_; - -#if defined(__clang__) || defined(__IBMCPP__) || defined(_LIBCPP_MSVC) - friend typename _Cp::__self; -#else - friend class _Cp::__self; -#endif - friend class __bit_const_reference<_Cp>; - friend class __bit_iterator<_Cp, false>; -public: - _LIBCPP_INLINE_VISIBILITY operator bool() const _NOEXCEPT - {return static_cast(*__seg_ & __mask_);} - _LIBCPP_INLINE_VISIBILITY bool operator ~() const _NOEXCEPT - {return !static_cast(*this);} - - _LIBCPP_INLINE_VISIBILITY - __bit_reference& operator=(bool __x) _NOEXCEPT - { - if (__x) - *__seg_ |= __mask_; - else - *__seg_ &= ~__mask_; - return *this; - } - - _LIBCPP_INLINE_VISIBILITY - __bit_reference& operator=(const __bit_reference& __x) _NOEXCEPT - {return operator=(static_cast(__x));} - - _LIBCPP_INLINE_VISIBILITY void flip() _NOEXCEPT {*__seg_ ^= __mask_;} - _LIBCPP_INLINE_VISIBILITY __bit_iterator<_Cp, false> operator&() const _NOEXCEPT - {return __bit_iterator<_Cp, false>(__seg_, static_cast(__ctz(__mask_)));} -private: - _LIBCPP_INLINE_VISIBILITY - __bit_reference(__storage_pointer __s, __storage_type __m) _NOEXCEPT - : __seg_(__s), __mask_(__m) {} -}; - -template -class __bit_reference<_Cp, false> -{ -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(__bit_reference<_Cp> __x, __bit_reference<_Cp> __y) _NOEXCEPT -{ - bool __t = __x; - __x = __y; - __y = __t; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(__bit_reference<_Cp> __x, __bit_reference<_Dp> __y) _NOEXCEPT -{ - bool __t = __x; - __x = __y; - __y = __t; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(__bit_reference<_Cp> __x, bool& __y) _NOEXCEPT -{ - bool __t = __x; - __x = __y; - __y = __t; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(bool& __x, __bit_reference<_Cp> __y) _NOEXCEPT -{ - bool __t = __x; - __x = __y; - __y = __t; -} - -template -class __bit_const_reference -{ - typedef typename _Cp::__storage_type __storage_type; - typedef typename _Cp::__const_storage_pointer __storage_pointer; - - __storage_pointer __seg_; - __storage_type __mask_; - -#if defined(__clang__) || defined(__IBMCPP__) || defined(_LIBCPP_MSVC) - friend typename _Cp::__self; -#else - friend class _Cp::__self; -#endif - friend class __bit_iterator<_Cp, true>; -public: - _LIBCPP_INLINE_VISIBILITY - __bit_const_reference(const __bit_reference<_Cp>& __x) _NOEXCEPT - : __seg_(__x.__seg_), __mask_(__x.__mask_) {} - - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR operator bool() const _NOEXCEPT - {return static_cast(*__seg_ & __mask_);} - - _LIBCPP_INLINE_VISIBILITY __bit_iterator<_Cp, true> operator&() const _NOEXCEPT - {return __bit_iterator<_Cp, true>(__seg_, static_cast(__ctz(__mask_)));} -private: - _LIBCPP_INLINE_VISIBILITY - _LIBCPP_CONSTEXPR - __bit_const_reference(__storage_pointer __s, __storage_type __m) _NOEXCEPT - : __seg_(__s), __mask_(__m) {} - - __bit_const_reference& operator=(const __bit_const_reference& __x); -}; - -// find - -template -__bit_iterator<_Cp, _IsConst> -__find_bool_true(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n) -{ - typedef __bit_iterator<_Cp, _IsConst> _It; - typedef typename _It::__storage_type __storage_type; - static const unsigned __bits_per_word = _It::__bits_per_word; - // do first partial word - if (__first.__ctz_ != 0) - { - __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); - __storage_type __dn = _VSTD::min(__clz_f, __n); - __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); - __storage_type __b = *__first.__seg_ & __m; - if (__b) - return _It(__first.__seg_, static_cast(_VSTD::__ctz(__b))); - if (__n == __dn) - return __first + __n; - __n -= __dn; - ++__first.__seg_; - } - // do middle whole words - for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word) - if (*__first.__seg_) - return _It(__first.__seg_, static_cast(_VSTD::__ctz(*__first.__seg_))); - // do last partial word - if (__n > 0) - { - __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); - __storage_type __b = *__first.__seg_ & __m; - if (__b) - return _It(__first.__seg_, static_cast(_VSTD::__ctz(__b))); - } - return _It(__first.__seg_, static_cast(__n)); -} - -template -__bit_iterator<_Cp, _IsConst> -__find_bool_false(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n) -{ - typedef __bit_iterator<_Cp, _IsConst> _It; - typedef typename _It::__storage_type __storage_type; - static const unsigned __bits_per_word = _It::__bits_per_word; - // do first partial word - if (__first.__ctz_ != 0) - { - __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); - __storage_type __dn = _VSTD::min(__clz_f, __n); - __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); - __storage_type __b = ~*__first.__seg_ & __m; - if (__b) - return _It(__first.__seg_, static_cast(_VSTD::__ctz(__b))); - if (__n == __dn) - return __first + __n; - __n -= __dn; - ++__first.__seg_; - } - // do middle whole words - for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word) - { - __storage_type __b = ~*__first.__seg_; - if (__b) - return _It(__first.__seg_, static_cast(_VSTD::__ctz(__b))); - } - // do last partial word - if (__n > 0) - { - __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); - __storage_type __b = ~*__first.__seg_ & __m; - if (__b) - return _It(__first.__seg_, static_cast(_VSTD::__ctz(__b))); - } - return _It(__first.__seg_, static_cast(__n)); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -__bit_iterator<_Cp, _IsConst> -find(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, const _Tp& __value_) -{ - if (static_cast(__value_)) - return __find_bool_true(__first, static_cast(__last - __first)); - return __find_bool_false(__first, static_cast(__last - __first)); -} - -// count - -template -typename __bit_iterator<_Cp, _IsConst>::difference_type -__count_bool_true(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n) -{ - typedef __bit_iterator<_Cp, _IsConst> _It; - typedef typename _It::__storage_type __storage_type; - typedef typename _It::difference_type difference_type; - static const unsigned __bits_per_word = _It::__bits_per_word; - difference_type __r = 0; - // do first partial word - if (__first.__ctz_ != 0) - { - __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); - __storage_type __dn = _VSTD::min(__clz_f, __n); - __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); - __r = _VSTD::__pop_count(*__first.__seg_ & __m); - __n -= __dn; - ++__first.__seg_; - } - // do middle whole words - for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word) - __r += _VSTD::__pop_count(*__first.__seg_); - // do last partial word - if (__n > 0) - { - __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); - __r += _VSTD::__pop_count(*__first.__seg_ & __m); - } - return __r; -} - -template -typename __bit_iterator<_Cp, _IsConst>::difference_type -__count_bool_false(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n) -{ - typedef __bit_iterator<_Cp, _IsConst> _It; - typedef typename _It::__storage_type __storage_type; - typedef typename _It::difference_type difference_type; - static const unsigned __bits_per_word = _It::__bits_per_word; - difference_type __r = 0; - // do first partial word - if (__first.__ctz_ != 0) - { - __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); - __storage_type __dn = _VSTD::min(__clz_f, __n); - __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); - __r = _VSTD::__pop_count(~*__first.__seg_ & __m); - __n -= __dn; - ++__first.__seg_; - } - // do middle whole words - for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word) - __r += _VSTD::__pop_count(~*__first.__seg_); - // do last partial word - if (__n > 0) - { - __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); - __r += _VSTD::__pop_count(~*__first.__seg_ & __m); - } - return __r; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename __bit_iterator<_Cp, _IsConst>::difference_type -count(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, const _Tp& __value_) -{ - if (static_cast(__value_)) - return __count_bool_true(__first, static_cast(__last - __first)); - return __count_bool_false(__first, static_cast(__last - __first)); -} - -// fill_n - -template -void -__fill_n_false(__bit_iterator<_Cp, false> __first, typename _Cp::size_type __n) -{ - typedef __bit_iterator<_Cp, false> _It; - typedef typename _It::__storage_type __storage_type; - static const unsigned __bits_per_word = _It::__bits_per_word; - // do first partial word - if (__first.__ctz_ != 0) - { - __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); - __storage_type __dn = _VSTD::min(__clz_f, __n); - __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); - *__first.__seg_ &= ~__m; - __n -= __dn; - ++__first.__seg_; - } - // do middle whole words - __storage_type __nw = __n / __bits_per_word; - _VSTD::memset(_VSTD::__to_raw_pointer(__first.__seg_), 0, __nw * sizeof(__storage_type)); - __n -= __nw * __bits_per_word; - // do last partial word - if (__n > 0) - { - __first.__seg_ += __nw; - __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); - *__first.__seg_ &= ~__m; - } -} - -template -void -__fill_n_true(__bit_iterator<_Cp, false> __first, typename _Cp::size_type __n) -{ - typedef __bit_iterator<_Cp, false> _It; - typedef typename _It::__storage_type __storage_type; - static const unsigned __bits_per_word = _It::__bits_per_word; - // do first partial word - if (__first.__ctz_ != 0) - { - __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); - __storage_type __dn = _VSTD::min(__clz_f, __n); - __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); - *__first.__seg_ |= __m; - __n -= __dn; - ++__first.__seg_; - } - // do middle whole words - __storage_type __nw = __n / __bits_per_word; - _VSTD::memset(_VSTD::__to_raw_pointer(__first.__seg_), -1, __nw * sizeof(__storage_type)); - __n -= __nw * __bits_per_word; - // do last partial word - if (__n > 0) - { - __first.__seg_ += __nw; - __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); - *__first.__seg_ |= __m; - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -fill_n(__bit_iterator<_Cp, false> __first, typename _Cp::size_type __n, bool __value_) -{ - if (__n > 0) - { - if (__value_) - __fill_n_true(__first, __n); - else - __fill_n_false(__first, __n); - } -} - -// fill - -template -inline _LIBCPP_INLINE_VISIBILITY -void -fill(__bit_iterator<_Cp, false> __first, __bit_iterator<_Cp, false> __last, bool __value_) -{ - _VSTD::fill_n(__first, static_cast(__last - __first), __value_); -} - -// copy - -template -__bit_iterator<_Cp, false> -__copy_aligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, - __bit_iterator<_Cp, false> __result) -{ - typedef __bit_iterator<_Cp, _IsConst> _In; - typedef typename _In::difference_type difference_type; - typedef typename _In::__storage_type __storage_type; - static const unsigned __bits_per_word = _In::__bits_per_word; - difference_type __n = __last - __first; - if (__n > 0) - { - // do first word - if (__first.__ctz_ != 0) - { - unsigned __clz = __bits_per_word - __first.__ctz_; - difference_type __dn = _VSTD::min(static_cast(__clz), __n); - __n -= __dn; - __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz - __dn)); - __storage_type __b = *__first.__seg_ & __m; - *__result.__seg_ &= ~__m; - *__result.__seg_ |= __b; - __result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word; - __result.__ctz_ = static_cast((__dn + __result.__ctz_) % __bits_per_word); - ++__first.__seg_; - // __first.__ctz_ = 0; - } - // __first.__ctz_ == 0; - // do middle words - __storage_type __nw = __n / __bits_per_word; - _VSTD::memmove(_VSTD::__to_raw_pointer(__result.__seg_), - _VSTD::__to_raw_pointer(__first.__seg_), - __nw * sizeof(__storage_type)); - __n -= __nw * __bits_per_word; - __result.__seg_ += __nw; - // do last word - if (__n > 0) - { - __first.__seg_ += __nw; - __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); - __storage_type __b = *__first.__seg_ & __m; - *__result.__seg_ &= ~__m; - *__result.__seg_ |= __b; - __result.__ctz_ = static_cast(__n); - } - } - return __result; -} - -template -__bit_iterator<_Cp, false> -__copy_unaligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, - __bit_iterator<_Cp, false> __result) -{ - typedef __bit_iterator<_Cp, _IsConst> _In; - typedef typename _In::difference_type difference_type; - typedef typename _In::__storage_type __storage_type; - static const unsigned __bits_per_word = _In::__bits_per_word; - difference_type __n = __last - __first; - if (__n > 0) - { - // do first word - if (__first.__ctz_ != 0) - { - unsigned __clz_f = __bits_per_word - __first.__ctz_; - difference_type __dn = _VSTD::min(static_cast(__clz_f), __n); - __n -= __dn; - __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); - __storage_type __b = *__first.__seg_ & __m; - unsigned __clz_r = __bits_per_word - __result.__ctz_; - __storage_type __ddn = _VSTD::min<__storage_type>(__dn, __clz_r); - __m = (~__storage_type(0) << __result.__ctz_) & (~__storage_type(0) >> (__clz_r - __ddn)); - *__result.__seg_ &= ~__m; - if (__result.__ctz_ > __first.__ctz_) - *__result.__seg_ |= __b << (__result.__ctz_ - __first.__ctz_); - else - *__result.__seg_ |= __b >> (__first.__ctz_ - __result.__ctz_); - __result.__seg_ += (__ddn + __result.__ctz_) / __bits_per_word; - __result.__ctz_ = static_cast((__ddn + __result.__ctz_) % __bits_per_word); - __dn -= __ddn; - if (__dn > 0) - { - __m = ~__storage_type(0) >> (__bits_per_word - __dn); - *__result.__seg_ &= ~__m; - *__result.__seg_ |= __b >> (__first.__ctz_ + __ddn); - __result.__ctz_ = static_cast(__dn); - } - ++__first.__seg_; - // __first.__ctz_ = 0; - } - // __first.__ctz_ == 0; - // do middle words - unsigned __clz_r = __bits_per_word - __result.__ctz_; - __storage_type __m = ~__storage_type(0) << __result.__ctz_; - for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first.__seg_) - { - __storage_type __b = *__first.__seg_; - *__result.__seg_ &= ~__m; - *__result.__seg_ |= __b << __result.__ctz_; - ++__result.__seg_; - *__result.__seg_ &= __m; - *__result.__seg_ |= __b >> __clz_r; - } - // do last word - if (__n > 0) - { - __m = ~__storage_type(0) >> (__bits_per_word - __n); - __storage_type __b = *__first.__seg_ & __m; - __storage_type __dn = _VSTD::min(__n, static_cast(__clz_r)); - __m = (~__storage_type(0) << __result.__ctz_) & (~__storage_type(0) >> (__clz_r - __dn)); - *__result.__seg_ &= ~__m; - *__result.__seg_ |= __b << __result.__ctz_; - __result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word; - __result.__ctz_ = static_cast((__dn + __result.__ctz_) % __bits_per_word); - __n -= __dn; - if (__n > 0) - { - __m = ~__storage_type(0) >> (__bits_per_word - __n); - *__result.__seg_ &= ~__m; - *__result.__seg_ |= __b >> __dn; - __result.__ctz_ = static_cast(__n); - } - } - } - return __result; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -__bit_iterator<_Cp, false> -copy(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) -{ - if (__first.__ctz_ == __result.__ctz_) - return __copy_aligned(__first, __last, __result); - return __copy_unaligned(__first, __last, __result); -} - -// copy_backward - -template -__bit_iterator<_Cp, false> -__copy_backward_aligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, - __bit_iterator<_Cp, false> __result) -{ - typedef __bit_iterator<_Cp, _IsConst> _In; - typedef typename _In::difference_type difference_type; - typedef typename _In::__storage_type __storage_type; - static const unsigned __bits_per_word = _In::__bits_per_word; - difference_type __n = __last - __first; - if (__n > 0) - { - // do first word - if (__last.__ctz_ != 0) - { - difference_type __dn = _VSTD::min(static_cast(__last.__ctz_), __n); - __n -= __dn; - unsigned __clz = __bits_per_word - __last.__ctz_; - __storage_type __m = (~__storage_type(0) << (__last.__ctz_ - __dn)) & (~__storage_type(0) >> __clz); - __storage_type __b = *__last.__seg_ & __m; - *__result.__seg_ &= ~__m; - *__result.__seg_ |= __b; - __result.__ctz_ = static_cast(((-__dn & (__bits_per_word - 1)) + - __result.__ctz_) % __bits_per_word); - // __last.__ctz_ = 0 - } - // __last.__ctz_ == 0 || __n == 0 - // __result.__ctz_ == 0 || __n == 0 - // do middle words - __storage_type __nw = __n / __bits_per_word; - __result.__seg_ -= __nw; - __last.__seg_ -= __nw; - _VSTD::memmove(_VSTD::__to_raw_pointer(__result.__seg_), - _VSTD::__to_raw_pointer(__last.__seg_), - __nw * sizeof(__storage_type)); - __n -= __nw * __bits_per_word; - // do last word - if (__n > 0) - { - __storage_type __m = ~__storage_type(0) << (__bits_per_word - __n); - __storage_type __b = *--__last.__seg_ & __m; - *--__result.__seg_ &= ~__m; - *__result.__seg_ |= __b; - __result.__ctz_ = static_cast(-__n & (__bits_per_word - 1)); - } - } - return __result; -} - -template -__bit_iterator<_Cp, false> -__copy_backward_unaligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, - __bit_iterator<_Cp, false> __result) -{ - typedef __bit_iterator<_Cp, _IsConst> _In; - typedef typename _In::difference_type difference_type; - typedef typename _In::__storage_type __storage_type; - static const unsigned __bits_per_word = _In::__bits_per_word; - difference_type __n = __last - __first; - if (__n > 0) - { - // do first word - if (__last.__ctz_ != 0) - { - difference_type __dn = _VSTD::min(static_cast(__last.__ctz_), __n); - __n -= __dn; - unsigned __clz_l = __bits_per_word - __last.__ctz_; - __storage_type __m = (~__storage_type(0) << (__last.__ctz_ - __dn)) & (~__storage_type(0) >> __clz_l); - __storage_type __b = *__last.__seg_ & __m; - unsigned __clz_r = __bits_per_word - __result.__ctz_; - __storage_type __ddn = _VSTD::min(__dn, static_cast(__result.__ctz_)); - if (__ddn > 0) - { - __m = (~__storage_type(0) << (__result.__ctz_ - __ddn)) & (~__storage_type(0) >> __clz_r); - *__result.__seg_ &= ~__m; - if (__result.__ctz_ > __last.__ctz_) - *__result.__seg_ |= __b << (__result.__ctz_ - __last.__ctz_); - else - *__result.__seg_ |= __b >> (__last.__ctz_ - __result.__ctz_); - __result.__ctz_ = static_cast(((-__ddn & (__bits_per_word - 1)) + - __result.__ctz_) % __bits_per_word); - __dn -= __ddn; - } - if (__dn > 0) - { - // __result.__ctz_ == 0 - --__result.__seg_; - __result.__ctz_ = static_cast(-__dn & (__bits_per_word - 1)); - __m = ~__storage_type(0) << __result.__ctz_; - *__result.__seg_ &= ~__m; - __last.__ctz_ -= __dn + __ddn; - *__result.__seg_ |= __b << (__result.__ctz_ - __last.__ctz_); - } - // __last.__ctz_ = 0 - } - // __last.__ctz_ == 0 || __n == 0 - // __result.__ctz_ != 0 || __n == 0 - // do middle words - unsigned __clz_r = __bits_per_word - __result.__ctz_; - __storage_type __m = ~__storage_type(0) >> __clz_r; - for (; __n >= __bits_per_word; __n -= __bits_per_word) - { - __storage_type __b = *--__last.__seg_; - *__result.__seg_ &= ~__m; - *__result.__seg_ |= __b >> __clz_r; - *--__result.__seg_ &= __m; - *__result.__seg_ |= __b << __result.__ctz_; - } - // do last word - if (__n > 0) - { - __m = ~__storage_type(0) << (__bits_per_word - __n); - __storage_type __b = *--__last.__seg_ & __m; - __clz_r = __bits_per_word - __result.__ctz_; - __storage_type __dn = _VSTD::min(__n, static_cast(__result.__ctz_)); - __m = (~__storage_type(0) << (__result.__ctz_ - __dn)) & (~__storage_type(0) >> __clz_r); - *__result.__seg_ &= ~__m; - *__result.__seg_ |= __b >> (__bits_per_word - __result.__ctz_); - __result.__ctz_ = static_cast(((-__dn & (__bits_per_word - 1)) + - __result.__ctz_) % __bits_per_word); - __n -= __dn; - if (__n > 0) - { - // __result.__ctz_ == 0 - --__result.__seg_; - __result.__ctz_ = static_cast(-__n & (__bits_per_word - 1)); - __m = ~__storage_type(0) << __result.__ctz_; - *__result.__seg_ &= ~__m; - *__result.__seg_ |= __b << (__result.__ctz_ - (__bits_per_word - __n - __dn)); - } - } - } - return __result; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -__bit_iterator<_Cp, false> -copy_backward(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) -{ - if (__last.__ctz_ == __result.__ctz_) - return __copy_backward_aligned(__first, __last, __result); - return __copy_backward_unaligned(__first, __last, __result); -} - -// move - -template -inline _LIBCPP_INLINE_VISIBILITY -__bit_iterator<_Cp, false> -move(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) -{ - return _VSTD::copy(__first, __last, __result); -} - -// move_backward - -template -inline _LIBCPP_INLINE_VISIBILITY -__bit_iterator<_Cp, false> -move_backward(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) -{ - return _VSTD::copy_backward(__first, __last, __result); -} - -// swap_ranges - -template -__bit_iterator<__C2, false> -__swap_ranges_aligned(__bit_iterator<__C1, false> __first, __bit_iterator<__C1, false> __last, - __bit_iterator<__C2, false> __result) -{ - typedef __bit_iterator<__C1, false> _I1; - typedef typename _I1::difference_type difference_type; - typedef typename _I1::__storage_type __storage_type; - static const unsigned __bits_per_word = _I1::__bits_per_word; - difference_type __n = __last - __first; - if (__n > 0) - { - // do first word - if (__first.__ctz_ != 0) - { - unsigned __clz = __bits_per_word - __first.__ctz_; - difference_type __dn = _VSTD::min(static_cast(__clz), __n); - __n -= __dn; - __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz - __dn)); - __storage_type __b1 = *__first.__seg_ & __m; - *__first.__seg_ &= ~__m; - __storage_type __b2 = *__result.__seg_ & __m; - *__result.__seg_ &= ~__m; - *__result.__seg_ |= __b1; - *__first.__seg_ |= __b2; - __result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word; - __result.__ctz_ = static_cast((__dn + __result.__ctz_) % __bits_per_word); - ++__first.__seg_; - // __first.__ctz_ = 0; - } - // __first.__ctz_ == 0; - // do middle words - for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first.__seg_, ++__result.__seg_) - swap(*__first.__seg_, *__result.__seg_); - // do last word - if (__n > 0) - { - __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); - __storage_type __b1 = *__first.__seg_ & __m; - *__first.__seg_ &= ~__m; - __storage_type __b2 = *__result.__seg_ & __m; - *__result.__seg_ &= ~__m; - *__result.__seg_ |= __b1; - *__first.__seg_ |= __b2; - __result.__ctz_ = static_cast(__n); - } - } - return __result; -} - -template -__bit_iterator<__C2, false> -__swap_ranges_unaligned(__bit_iterator<__C1, false> __first, __bit_iterator<__C1, false> __last, - __bit_iterator<__C2, false> __result) -{ - typedef __bit_iterator<__C1, false> _I1; - typedef typename _I1::difference_type difference_type; - typedef typename _I1::__storage_type __storage_type; - static const unsigned __bits_per_word = _I1::__bits_per_word; - difference_type __n = __last - __first; - if (__n > 0) - { - // do first word - if (__first.__ctz_ != 0) - { - unsigned __clz_f = __bits_per_word - __first.__ctz_; - difference_type __dn = _VSTD::min(static_cast(__clz_f), __n); - __n -= __dn; - __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); - __storage_type __b1 = *__first.__seg_ & __m; - *__first.__seg_ &= ~__m; - unsigned __clz_r = __bits_per_word - __result.__ctz_; - __storage_type __ddn = _VSTD::min<__storage_type>(__dn, __clz_r); - __m = (~__storage_type(0) << __result.__ctz_) & (~__storage_type(0) >> (__clz_r - __ddn)); - __storage_type __b2 = *__result.__seg_ & __m; - *__result.__seg_ &= ~__m; - if (__result.__ctz_ > __first.__ctz_) - { - unsigned __s = __result.__ctz_ - __first.__ctz_; - *__result.__seg_ |= __b1 << __s; - *__first.__seg_ |= __b2 >> __s; - } - else - { - unsigned __s = __first.__ctz_ - __result.__ctz_; - *__result.__seg_ |= __b1 >> __s; - *__first.__seg_ |= __b2 << __s; - } - __result.__seg_ += (__ddn + __result.__ctz_) / __bits_per_word; - __result.__ctz_ = static_cast((__ddn + __result.__ctz_) % __bits_per_word); - __dn -= __ddn; - if (__dn > 0) - { - __m = ~__storage_type(0) >> (__bits_per_word - __dn); - __b2 = *__result.__seg_ & __m; - *__result.__seg_ &= ~__m; - unsigned __s = __first.__ctz_ + __ddn; - *__result.__seg_ |= __b1 >> __s; - *__first.__seg_ |= __b2 << __s; - __result.__ctz_ = static_cast(__dn); - } - ++__first.__seg_; - // __first.__ctz_ = 0; - } - // __first.__ctz_ == 0; - // do middle words - __storage_type __m = ~__storage_type(0) << __result.__ctz_; - unsigned __clz_r = __bits_per_word - __result.__ctz_; - for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first.__seg_) - { - __storage_type __b1 = *__first.__seg_; - __storage_type __b2 = *__result.__seg_ & __m; - *__result.__seg_ &= ~__m; - *__result.__seg_ |= __b1 << __result.__ctz_; - *__first.__seg_ = __b2 >> __result.__ctz_; - ++__result.__seg_; - __b2 = *__result.__seg_ & ~__m; - *__result.__seg_ &= __m; - *__result.__seg_ |= __b1 >> __clz_r; - *__first.__seg_ |= __b2 << __clz_r; - } - // do last word - if (__n > 0) - { - __m = ~__storage_type(0) >> (__bits_per_word - __n); - __storage_type __b1 = *__first.__seg_ & __m; - *__first.__seg_ &= ~__m; - __storage_type __dn = _VSTD::min<__storage_type>(__n, __clz_r); - __m = (~__storage_type(0) << __result.__ctz_) & (~__storage_type(0) >> (__clz_r - __dn)); - __storage_type __b2 = *__result.__seg_ & __m; - *__result.__seg_ &= ~__m; - *__result.__seg_ |= __b1 << __result.__ctz_; - *__first.__seg_ |= __b2 >> __result.__ctz_; - __result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word; - __result.__ctz_ = static_cast((__dn + __result.__ctz_) % __bits_per_word); - __n -= __dn; - if (__n > 0) - { - __m = ~__storage_type(0) >> (__bits_per_word - __n); - __b2 = *__result.__seg_ & __m; - *__result.__seg_ &= ~__m; - *__result.__seg_ |= __b1 >> __dn; - *__first.__seg_ |= __b2 << __dn; - __result.__ctz_ = static_cast(__n); - } - } - } - return __result; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -__bit_iterator<__C2, false> -swap_ranges(__bit_iterator<__C1, false> __first1, __bit_iterator<__C1, false> __last1, - __bit_iterator<__C2, false> __first2) -{ - if (__first1.__ctz_ == __first2.__ctz_) - return __swap_ranges_aligned(__first1, __last1, __first2); - return __swap_ranges_unaligned(__first1, __last1, __first2); -} - -// rotate - -template -struct __bit_array -{ - typedef typename _Cp::difference_type difference_type; - typedef typename _Cp::__storage_type __storage_type; - typedef typename _Cp::__storage_pointer __storage_pointer; - typedef typename _Cp::iterator iterator; - static const unsigned __bits_per_word = _Cp::__bits_per_word; - static const unsigned _Np = 4; - - difference_type __size_; - __storage_type __word_[_Np]; - - _LIBCPP_INLINE_VISIBILITY static difference_type capacity() - {return static_cast(_Np * __bits_per_word);} - _LIBCPP_INLINE_VISIBILITY explicit __bit_array(difference_type __s) : __size_(__s) {} - _LIBCPP_INLINE_VISIBILITY iterator begin() - { - return iterator(pointer_traits<__storage_pointer>::pointer_to(__word_[0]), 0); - } - _LIBCPP_INLINE_VISIBILITY iterator end() - { - return iterator(pointer_traits<__storage_pointer>::pointer_to(__word_[0]) + __size_ / __bits_per_word, - static_cast(__size_ % __bits_per_word)); - } -}; - -template -__bit_iterator<_Cp, false> -rotate(__bit_iterator<_Cp, false> __first, __bit_iterator<_Cp, false> __middle, __bit_iterator<_Cp, false> __last) -{ - typedef __bit_iterator<_Cp, false> _I1; - typedef typename _I1::difference_type difference_type; - difference_type __d1 = __middle - __first; - difference_type __d2 = __last - __middle; - _I1 __r = __first + __d2; - while (__d1 != 0 && __d2 != 0) - { - if (__d1 <= __d2) - { - if (__d1 <= __bit_array<_Cp>::capacity()) - { - __bit_array<_Cp> __b(__d1); - _VSTD::copy(__first, __middle, __b.begin()); - _VSTD::copy(__b.begin(), __b.end(), _VSTD::copy(__middle, __last, __first)); - break; - } - else - { - __bit_iterator<_Cp, false> __mp = _VSTD::swap_ranges(__first, __middle, __middle); - __first = __middle; - __middle = __mp; - __d2 -= __d1; - } - } - else - { - if (__d2 <= __bit_array<_Cp>::capacity()) - { - __bit_array<_Cp> __b(__d2); - _VSTD::copy(__middle, __last, __b.begin()); - _VSTD::copy_backward(__b.begin(), __b.end(), _VSTD::copy_backward(__first, __middle, __last)); - break; - } - else - { - __bit_iterator<_Cp, false> __mp = __first + __d2; - _VSTD::swap_ranges(__first, __mp, __middle); - __first = __mp; - __d1 -= __d2; - } - } - } - return __r; -} - -// equal - -template -bool -__equal_unaligned(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, _IC1> __last1, - __bit_iterator<_Cp, _IC2> __first2) -{ - typedef __bit_iterator<_Cp, _IC1> _It; - typedef typename _It::difference_type difference_type; - typedef typename _It::__storage_type __storage_type; - static const unsigned __bits_per_word = _It::__bits_per_word; - difference_type __n = __last1 - __first1; - if (__n > 0) - { - // do first word - if (__first1.__ctz_ != 0) - { - unsigned __clz_f = __bits_per_word - __first1.__ctz_; - difference_type __dn = _VSTD::min(static_cast(__clz_f), __n); - __n -= __dn; - __storage_type __m = (~__storage_type(0) << __first1.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); - __storage_type __b = *__first1.__seg_ & __m; - unsigned __clz_r = __bits_per_word - __first2.__ctz_; - __storage_type __ddn = _VSTD::min<__storage_type>(__dn, __clz_r); - __m = (~__storage_type(0) << __first2.__ctz_) & (~__storage_type(0) >> (__clz_r - __ddn)); - if (__first2.__ctz_ > __first1.__ctz_) - { - if ((*__first2.__seg_ & __m) != (__b << (__first2.__ctz_ - __first1.__ctz_))) - return false; - } - else - { - if ((*__first2.__seg_ & __m) != (__b >> (__first1.__ctz_ - __first2.__ctz_))) - return false; - } - __first2.__seg_ += (__ddn + __first2.__ctz_) / __bits_per_word; - __first2.__ctz_ = static_cast((__ddn + __first2.__ctz_) % __bits_per_word); - __dn -= __ddn; - if (__dn > 0) - { - __m = ~__storage_type(0) >> (__bits_per_word - __dn); - if ((*__first2.__seg_ & __m) != (__b >> (__first1.__ctz_ + __ddn))) - return false; - __first2.__ctz_ = static_cast(__dn); - } - ++__first1.__seg_; - // __first1.__ctz_ = 0; - } - // __first1.__ctz_ == 0; - // do middle words - unsigned __clz_r = __bits_per_word - __first2.__ctz_; - __storage_type __m = ~__storage_type(0) << __first2.__ctz_; - for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first1.__seg_) - { - __storage_type __b = *__first1.__seg_; - if ((*__first2.__seg_ & __m) != (__b << __first2.__ctz_)) - return false; - ++__first2.__seg_; - if ((*__first2.__seg_ & ~__m) != (__b >> __clz_r)) - return false; - } - // do last word - if (__n > 0) - { - __m = ~__storage_type(0) >> (__bits_per_word - __n); - __storage_type __b = *__first1.__seg_ & __m; - __storage_type __dn = _VSTD::min(__n, static_cast(__clz_r)); - __m = (~__storage_type(0) << __first2.__ctz_) & (~__storage_type(0) >> (__clz_r - __dn)); - if ((*__first2.__seg_ & __m) != (__b << __first2.__ctz_)) - return false; - __first2.__seg_ += (__dn + __first2.__ctz_) / __bits_per_word; - __first2.__ctz_ = static_cast((__dn + __first2.__ctz_) % __bits_per_word); - __n -= __dn; - if (__n > 0) - { - __m = ~__storage_type(0) >> (__bits_per_word - __n); - if ((*__first2.__seg_ & __m) != (__b >> __dn)) - return false; - } - } - } - return true; -} - -template -bool -__equal_aligned(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, _IC1> __last1, - __bit_iterator<_Cp, _IC2> __first2) -{ - typedef __bit_iterator<_Cp, _IC1> _It; - typedef typename _It::difference_type difference_type; - typedef typename _It::__storage_type __storage_type; - static const unsigned __bits_per_word = _It::__bits_per_word; - difference_type __n = __last1 - __first1; - if (__n > 0) - { - // do first word - if (__first1.__ctz_ != 0) - { - unsigned __clz = __bits_per_word - __first1.__ctz_; - difference_type __dn = _VSTD::min(static_cast(__clz), __n); - __n -= __dn; - __storage_type __m = (~__storage_type(0) << __first1.__ctz_) & (~__storage_type(0) >> (__clz - __dn)); - if ((*__first2.__seg_ & __m) != (*__first1.__seg_ & __m)) - return false; - ++__first2.__seg_; - ++__first1.__seg_; - // __first1.__ctz_ = 0; - // __first2.__ctz_ = 0; - } - // __first1.__ctz_ == 0; - // __first2.__ctz_ == 0; - // do middle words - for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first1.__seg_, ++__first2.__seg_) - if (*__first2.__seg_ != *__first1.__seg_) - return false; - // do last word - if (__n > 0) - { - __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); - if ((*__first2.__seg_ & __m) != (*__first1.__seg_ & __m)) - return false; - } - } - return true; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -equal(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, _IC1> __last1, __bit_iterator<_Cp, _IC2> __first2) -{ - if (__first1.__ctz_ == __first2.__ctz_) - return __equal_aligned(__first1, __last1, __first2); - return __equal_unaligned(__first1, __last1, __first2); -} - -template -class __bit_iterator -{ -public: - typedef typename _Cp::difference_type difference_type; - typedef bool value_type; - typedef __bit_iterator pointer; - typedef typename conditional<_IsConst, __bit_const_reference<_Cp>, __bit_reference<_Cp> >::type reference; - typedef random_access_iterator_tag iterator_category; - -private: - typedef typename _Cp::__storage_type __storage_type; - typedef typename conditional<_IsConst, typename _Cp::__const_storage_pointer, - typename _Cp::__storage_pointer>::type __storage_pointer; - static const unsigned __bits_per_word = _Cp::__bits_per_word; - - __storage_pointer __seg_; - unsigned __ctz_; - -public: - _LIBCPP_INLINE_VISIBILITY __bit_iterator() _NOEXCEPT -#if _LIBCPP_STD_VER > 11 - : __seg_(nullptr), __ctz_(0) -#endif - {} - - _LIBCPP_INLINE_VISIBILITY - __bit_iterator(const __bit_iterator<_Cp, false>& __it) _NOEXCEPT - : __seg_(__it.__seg_), __ctz_(__it.__ctz_) {} - - _LIBCPP_INLINE_VISIBILITY reference operator*() const _NOEXCEPT - {return reference(__seg_, __storage_type(1) << __ctz_);} - - _LIBCPP_INLINE_VISIBILITY __bit_iterator& operator++() - { - if (__ctz_ != __bits_per_word-1) - ++__ctz_; - else - { - __ctz_ = 0; - ++__seg_; - } - return *this; - } - - _LIBCPP_INLINE_VISIBILITY __bit_iterator operator++(int) - { - __bit_iterator __tmp = *this; - ++(*this); - return __tmp; - } - - _LIBCPP_INLINE_VISIBILITY __bit_iterator& operator--() - { - if (__ctz_ != 0) - --__ctz_; - else - { - __ctz_ = __bits_per_word - 1; - --__seg_; - } - return *this; - } - - _LIBCPP_INLINE_VISIBILITY __bit_iterator operator--(int) - { - __bit_iterator __tmp = *this; - --(*this); - return __tmp; - } - - _LIBCPP_INLINE_VISIBILITY __bit_iterator& operator+=(difference_type __n) - { - if (__n >= 0) - __seg_ += (__n + __ctz_) / __bits_per_word; - else - __seg_ += static_cast(__n - __bits_per_word + __ctz_ + 1) - / static_cast(__bits_per_word); - __n &= (__bits_per_word - 1); - __ctz_ = static_cast((__n + __ctz_) % __bits_per_word); - return *this; - } - - _LIBCPP_INLINE_VISIBILITY __bit_iterator& operator-=(difference_type __n) - { - return *this += -__n; - } - - _LIBCPP_INLINE_VISIBILITY __bit_iterator operator+(difference_type __n) const - { - __bit_iterator __t(*this); - __t += __n; - return __t; - } - - _LIBCPP_INLINE_VISIBILITY __bit_iterator operator-(difference_type __n) const - { - __bit_iterator __t(*this); - __t -= __n; - return __t; - } - - _LIBCPP_INLINE_VISIBILITY - friend __bit_iterator operator+(difference_type __n, const __bit_iterator& __it) {return __it + __n;} - - _LIBCPP_INLINE_VISIBILITY - friend difference_type operator-(const __bit_iterator& __x, const __bit_iterator& __y) - {return (__x.__seg_ - __y.__seg_) * __bits_per_word + __x.__ctz_ - __y.__ctz_;} - - _LIBCPP_INLINE_VISIBILITY reference operator[](difference_type __n) const {return *(*this + __n);} - - _LIBCPP_INLINE_VISIBILITY friend bool operator==(const __bit_iterator& __x, const __bit_iterator& __y) - {return __x.__seg_ == __y.__seg_ && __x.__ctz_ == __y.__ctz_;} - - _LIBCPP_INLINE_VISIBILITY friend bool operator!=(const __bit_iterator& __x, const __bit_iterator& __y) - {return !(__x == __y);} - - _LIBCPP_INLINE_VISIBILITY friend bool operator<(const __bit_iterator& __x, const __bit_iterator& __y) - {return __x.__seg_ < __y.__seg_ || (__x.__seg_ == __y.__seg_ && __x.__ctz_ < __y.__ctz_);} - - _LIBCPP_INLINE_VISIBILITY friend bool operator>(const __bit_iterator& __x, const __bit_iterator& __y) - {return __y < __x;} - - _LIBCPP_INLINE_VISIBILITY friend bool operator<=(const __bit_iterator& __x, const __bit_iterator& __y) - {return !(__y < __x);} - - _LIBCPP_INLINE_VISIBILITY friend bool operator>=(const __bit_iterator& __x, const __bit_iterator& __y) - {return !(__x < __y);} - -private: - _LIBCPP_INLINE_VISIBILITY - __bit_iterator(__storage_pointer __s, unsigned __ctz) _NOEXCEPT - : __seg_(__s), __ctz_(__ctz) {} - -#if defined(__clang__) || defined(__IBMCPP__) || defined(_LIBCPP_MSVC) - friend typename _Cp::__self; -#else - friend class _Cp::__self; -#endif - friend class __bit_reference<_Cp>; - friend class __bit_const_reference<_Cp>; - friend class __bit_iterator<_Cp, true>; - template friend struct __bit_array; - template friend void __fill_n_false(__bit_iterator<_Dp, false> __first, typename _Dp::size_type __n); - template friend void __fill_n_true(__bit_iterator<_Dp, false> __first, typename _Dp::size_type __n); - template friend __bit_iterator<_Dp, false> __copy_aligned(__bit_iterator<_Dp, _IC> __first, - __bit_iterator<_Dp, _IC> __last, - __bit_iterator<_Dp, false> __result); - template friend __bit_iterator<_Dp, false> __copy_unaligned(__bit_iterator<_Dp, _IC> __first, - __bit_iterator<_Dp, _IC> __last, - __bit_iterator<_Dp, false> __result); - template friend __bit_iterator<_Dp, false> copy(__bit_iterator<_Dp, _IC> __first, - __bit_iterator<_Dp, _IC> __last, - __bit_iterator<_Dp, false> __result); - template friend __bit_iterator<_Dp, false> __copy_backward_aligned(__bit_iterator<_Dp, _IC> __first, - __bit_iterator<_Dp, _IC> __last, - __bit_iterator<_Dp, false> __result); - template friend __bit_iterator<_Dp, false> __copy_backward_unaligned(__bit_iterator<_Dp, _IC> __first, - __bit_iterator<_Dp, _IC> __last, - __bit_iterator<_Dp, false> __result); - template friend __bit_iterator<_Dp, false> copy_backward(__bit_iterator<_Dp, _IC> __first, - __bit_iterator<_Dp, _IC> __last, - __bit_iterator<_Dp, false> __result); - template friend __bit_iterator<__C2, false> __swap_ranges_aligned(__bit_iterator<__C1, false>, - __bit_iterator<__C1, false>, - __bit_iterator<__C2, false>); - template friend __bit_iterator<__C2, false> __swap_ranges_unaligned(__bit_iterator<__C1, false>, - __bit_iterator<__C1, false>, - __bit_iterator<__C2, false>); - template friend __bit_iterator<__C2, false> swap_ranges(__bit_iterator<__C1, false>, - __bit_iterator<__C1, false>, - __bit_iterator<__C2, false>); - template friend __bit_iterator<_Dp, false> rotate(__bit_iterator<_Dp, false>, - __bit_iterator<_Dp, false>, - __bit_iterator<_Dp, false>); - template friend bool __equal_aligned(__bit_iterator<_Dp, _IC1>, - __bit_iterator<_Dp, _IC1>, - __bit_iterator<_Dp, _IC2>); - template friend bool __equal_unaligned(__bit_iterator<_Dp, _IC1>, - __bit_iterator<_Dp, _IC1>, - __bit_iterator<_Dp, _IC2>); - template friend bool equal(__bit_iterator<_Dp, _IC1>, - __bit_iterator<_Dp, _IC1>, - __bit_iterator<_Dp, _IC2>); - template friend __bit_iterator<_Dp, _IC> __find_bool_true(__bit_iterator<_Dp, _IC>, - typename _Dp::size_type); - template friend __bit_iterator<_Dp, _IC> __find_bool_false(__bit_iterator<_Dp, _IC>, - typename _Dp::size_type); - template friend typename __bit_iterator<_Dp, _IC>::difference_type - __count_bool_true(__bit_iterator<_Dp, _IC>, typename _Dp::size_type); - template friend typename __bit_iterator<_Dp, _IC>::difference_type - __count_bool_false(__bit_iterator<_Dp, _IC>, typename _Dp::size_type); -}; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP___BIT_REFERENCE diff --git a/headers/libs/libc++/__config b/headers/libs/libc++/__config deleted file mode 100644 index 7f6fbf07b5..0000000000 --- a/headers/libs/libc++/__config +++ /dev/null @@ -1,825 +0,0 @@ -// -*- C++ -*- -//===--------------------------- __config ---------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CONFIG -#define _LIBCPP_CONFIG - -#if defined(_MSC_VER) && !defined(__clang__) -#define _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -#endif - -#ifndef _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -#pragma GCC system_header -#endif - -#ifdef __cplusplus - -#ifdef __GNUC__ -#define _GNUC_VER (__GNUC__ * 100 + __GNUC_MINOR__) -#else -#define _GNUC_VER 0 -#endif - -#define _LIBCPP_VERSION 3800 - -#ifndef _LIBCPP_ABI_VERSION -#define _LIBCPP_ABI_VERSION 1 -#endif - -#if defined(_LIBCPP_ABI_UNSTABLE) || _LIBCPP_ABI_VERSION >= 2 -// Change short string represention so that string data starts at offset 0, -// improving its alignment in some cases. -#define _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT -// Fix deque iterator type in order to support incomplete types. -#define _LIBCPP_ABI_INCOMPLETE_TYPES_IN_DEQUE -#endif - -#define _LIBCPP_CONCAT1(_LIBCPP_X,_LIBCPP_Y) _LIBCPP_X##_LIBCPP_Y -#define _LIBCPP_CONCAT(_LIBCPP_X,_LIBCPP_Y) _LIBCPP_CONCAT1(_LIBCPP_X,_LIBCPP_Y) - -#define _LIBCPP_NAMESPACE _LIBCPP_CONCAT(__,_LIBCPP_ABI_VERSION) - - -#ifndef __has_attribute -#define __has_attribute(__x) 0 -#endif -#ifndef __has_builtin -#define __has_builtin(__x) 0 -#endif -#ifndef __has_extension -#define __has_extension(__x) 0 -#endif -#ifndef __has_feature -#define __has_feature(__x) 0 -#endif -// '__is_identifier' returns '0' if '__x' is a reserved identifier provided by -// the compiler and '1' otherwise. -#ifndef __is_identifier -#define __is_identifier(__x) 1 -#endif - - -#ifdef __LITTLE_ENDIAN__ -#if __LITTLE_ENDIAN__ -#define _LIBCPP_LITTLE_ENDIAN 1 -#define _LIBCPP_BIG_ENDIAN 0 -#endif // __LITTLE_ENDIAN__ -#endif // __LITTLE_ENDIAN__ - -#ifdef __BIG_ENDIAN__ -#if __BIG_ENDIAN__ -#define _LIBCPP_LITTLE_ENDIAN 0 -#define _LIBCPP_BIG_ENDIAN 1 -#endif // __BIG_ENDIAN__ -#endif // __BIG_ENDIAN__ - -#ifdef __BYTE_ORDER__ -#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ -#define _LIBCPP_LITTLE_ENDIAN 1 -#define _LIBCPP_BIG_ENDIAN 0 -#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ -#define _LIBCPP_LITTLE_ENDIAN 0 -#define _LIBCPP_BIG_ENDIAN 1 -#endif // __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ -#endif // __BYTE_ORDER__ - -#ifdef __FreeBSD__ -# include -# if _BYTE_ORDER == _LITTLE_ENDIAN -# define _LIBCPP_LITTLE_ENDIAN 1 -# define _LIBCPP_BIG_ENDIAN 0 -# else // _BYTE_ORDER == _LITTLE_ENDIAN -# define _LIBCPP_LITTLE_ENDIAN 0 -# define _LIBCPP_BIG_ENDIAN 1 -# endif // _BYTE_ORDER == _LITTLE_ENDIAN -# ifndef __LONG_LONG_SUPPORTED -# define _LIBCPP_HAS_NO_LONG_LONG -# endif // __LONG_LONG_SUPPORTED -#endif // __FreeBSD__ - -#ifdef __NetBSD__ -# include -# if _BYTE_ORDER == _LITTLE_ENDIAN -# define _LIBCPP_LITTLE_ENDIAN 1 -# define _LIBCPP_BIG_ENDIAN 0 -# else // _BYTE_ORDER == _LITTLE_ENDIAN -# define _LIBCPP_LITTLE_ENDIAN 0 -# define _LIBCPP_BIG_ENDIAN 1 -# endif // _BYTE_ORDER == _LITTLE_ENDIAN -# define _LIBCPP_HAS_QUICK_EXIT -#endif // __NetBSD__ - -#ifdef _WIN32 -# define _LIBCPP_LITTLE_ENDIAN 1 -# define _LIBCPP_BIG_ENDIAN 0 -// Compiler intrinsics (MSVC) -#if defined(_MSC_VER) && _MSC_VER >= 1400 -# define _LIBCPP_HAS_IS_BASE_OF -# endif -# if defined(_MSC_VER) && !defined(__clang__) -# define _LIBCPP_MSVC // Using Microsoft Visual C++ compiler -# define _LIBCPP_TOSTRING2(x) #x -# define _LIBCPP_TOSTRING(x) _LIBCPP_TOSTRING2(x) -# define _LIBCPP_WARNING(x) __pragma(message(__FILE__ "(" _LIBCPP_TOSTRING(__LINE__) ") : warning note: " x)) -# endif -# // If mingw not explicitly detected, assume using MS C runtime only. -# ifndef __MINGW32__ -# define _LIBCPP_MSVCRT // Using Microsoft's C Runtime library -# endif -#endif // _WIN32 - -#ifdef __sun__ -# include -# ifdef _LITTLE_ENDIAN -# define _LIBCPP_LITTLE_ENDIAN 1 -# define _LIBCPP_BIG_ENDIAN 0 -# else -# define _LIBCPP_LITTLE_ENDIAN 0 -# define _LIBCPP_BIG_ENDIAN 1 -# endif -#endif // __sun__ - -#if defined(__CloudABI__) - // Certain architectures provide arc4random(). Prefer using - // arc4random() over /dev/{u,}random to make it possible to obtain - // random data even when using sandboxing mechanisms such as chroots, - // Capsicum, etc. -# define _LIBCPP_USING_ARC4_RANDOM -#elif defined(__native_client__) - // NaCl's sandbox (which PNaCl also runs in) doesn't allow filesystem access, - // including accesses to the special files under /dev. C++11's - // std::random_device is instead exposed through a NaCl syscall. -# define _LIBCPP_USING_NACL_RANDOM -#elif defined(_WIN32) -# define _LIBCPP_USING_WIN32_RANDOM -#else -# define _LIBCPP_USING_DEV_RANDOM -#endif - -#if !defined(_LIBCPP_LITTLE_ENDIAN) || !defined(_LIBCPP_BIG_ENDIAN) -# include -# if __BYTE_ORDER == __LITTLE_ENDIAN -# define _LIBCPP_LITTLE_ENDIAN 1 -# define _LIBCPP_BIG_ENDIAN 0 -# elif __BYTE_ORDER == __BIG_ENDIAN -# define _LIBCPP_LITTLE_ENDIAN 0 -# define _LIBCPP_BIG_ENDIAN 1 -# else // __BYTE_ORDER == __BIG_ENDIAN -# error unable to determine endian -# endif -#endif // !defined(_LIBCPP_LITTLE_ENDIAN) || !defined(_LIBCPP_BIG_ENDIAN) - -#ifdef _WIN32 - -// only really useful for a DLL -#ifdef _LIBCPP_DLL // this should be a compiler builtin define ideally... -# ifdef cxx_EXPORTS -# define _LIBCPP_HIDDEN -# define _LIBCPP_FUNC_VIS __declspec(dllexport) -# define _LIBCPP_TYPE_VIS __declspec(dllexport) -# else -# define _LIBCPP_HIDDEN -# define _LIBCPP_FUNC_VIS __declspec(dllimport) -# define _LIBCPP_TYPE_VIS __declspec(dllimport) -# endif -#else -# define _LIBCPP_HIDDEN -# define _LIBCPP_FUNC_VIS -# define _LIBCPP_TYPE_VIS -#endif - -#define _LIBCPP_TYPE_VIS_ONLY -#define _LIBCPP_FUNC_VIS_ONLY - -#ifndef _LIBCPP_INLINE_VISIBILITY -# ifdef _LIBCPP_MSVC -# define _LIBCPP_INLINE_VISIBILITY __forceinline -# else // MinGW GCC and Clang -# define _LIBCPP_INLINE_VISIBILITY __attribute__ ((__always_inline__)) -# endif -#endif - -#ifndef _LIBCPP_EXCEPTION_ABI -#define _LIBCPP_EXCEPTION_ABI _LIBCPP_TYPE_VIS -#endif - -#ifndef _LIBCPP_ALWAYS_INLINE -# ifdef _LIBCPP_MSVC -# define _LIBCPP_ALWAYS_INLINE __forceinline -# endif -#endif - -#endif // _WIN32 - -#ifndef _LIBCPP_HIDDEN -#define _LIBCPP_HIDDEN __attribute__ ((__visibility__("hidden"))) -#endif - -#ifndef _LIBCPP_FUNC_VIS -#define _LIBCPP_FUNC_VIS __attribute__ ((__visibility__("default"))) -#endif - -#ifndef _LIBCPP_TYPE_VIS -# if __has_attribute(__type_visibility__) -# define _LIBCPP_TYPE_VIS __attribute__ ((__type_visibility__("default"))) -# else -# define _LIBCPP_TYPE_VIS __attribute__ ((__visibility__("default"))) -# endif -#endif - -#ifndef _LIBCPP_TYPE_VIS_ONLY -# define _LIBCPP_TYPE_VIS_ONLY _LIBCPP_TYPE_VIS -#endif - -#ifndef _LIBCPP_FUNC_VIS_ONLY -# define _LIBCPP_FUNC_VIS_ONLY _LIBCPP_FUNC_VIS -#endif - -#ifndef _LIBCPP_INLINE_VISIBILITY -#define _LIBCPP_INLINE_VISIBILITY __attribute__ ((__visibility__("hidden"), __always_inline__)) -#endif - -#ifndef _LIBCPP_EXCEPTION_ABI -#define _LIBCPP_EXCEPTION_ABI __attribute__ ((__visibility__("default"))) -#endif - -#ifndef _LIBCPP_ALWAYS_INLINE -#define _LIBCPP_ALWAYS_INLINE __attribute__ ((__visibility__("hidden"), __always_inline__)) -#endif - -#if defined(__clang__) - -// _LIBCPP_ALTERNATE_STRING_LAYOUT is an old name for -// _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT left here for backward compatibility. -#if (defined(__APPLE__) && !defined(__i386__) && !defined(__x86_64__) && \ - !defined(__arm__)) || \ - defined(_LIBCPP_ALTERNATE_STRING_LAYOUT) -#define _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT -#endif - -#if __has_feature(cxx_alignas) -# define _ALIGNAS_TYPE(x) alignas(x) -# define _ALIGNAS(x) alignas(x) -#else -# define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x)))) -# define _ALIGNAS(x) __attribute__((__aligned__(x))) -#endif - -#if !__has_feature(cxx_alias_templates) -#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES -#endif - -#if __cplusplus < 201103L -typedef __char16_t char16_t; -typedef __char32_t char32_t; -#endif - -#if !(__has_feature(cxx_exceptions)) -#define _LIBCPP_NO_EXCEPTIONS -#endif - -#if !(__has_feature(cxx_rtti)) -#define _LIBCPP_NO_RTTI -#endif - -#if !(__has_feature(cxx_strong_enums)) -#define _LIBCPP_HAS_NO_STRONG_ENUMS -#endif - -#if !(__has_feature(cxx_decltype)) -#define _LIBCPP_HAS_NO_DECLTYPE -#endif - -#if __has_feature(cxx_attributes) -# define _LIBCPP_NORETURN [[noreturn]] -#else -# define _LIBCPP_NORETURN __attribute__ ((noreturn)) -#endif - -#define _LIBCPP_UNUSED __attribute__((__unused__)) - -#if !(__has_feature(cxx_defaulted_functions)) -#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS -#endif // !(__has_feature(cxx_defaulted_functions)) - -#if !(__has_feature(cxx_deleted_functions)) -#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS -#endif // !(__has_feature(cxx_deleted_functions)) - -#if !(__has_feature(cxx_lambdas)) -#define _LIBCPP_HAS_NO_LAMBDAS -#endif - -#if !(__has_feature(cxx_nullptr)) -#define _LIBCPP_HAS_NO_NULLPTR -#endif - -#if !(__has_feature(cxx_rvalue_references)) -#define _LIBCPP_HAS_NO_RVALUE_REFERENCES -#endif - -#if !(__has_feature(cxx_static_assert)) -#define _LIBCPP_HAS_NO_STATIC_ASSERT -#endif - -#if !(__has_feature(cxx_auto_type)) -#define _LIBCPP_HAS_NO_AUTO_TYPE -#endif - -#if !(__has_feature(cxx_access_control_sfinae)) || !__has_feature(cxx_trailing_return) -#define _LIBCPP_HAS_NO_ADVANCED_SFINAE -#endif - -#if !(__has_feature(cxx_variadic_templates)) -#define _LIBCPP_HAS_NO_VARIADICS -#endif - -#if !(__has_feature(cxx_trailing_return)) -#define _LIBCPP_HAS_NO_TRAILING_RETURN -#endif - -#if !(__has_feature(cxx_generalized_initializers)) -#define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS -#endif - -#if __has_feature(is_base_of) -# define _LIBCPP_HAS_IS_BASE_OF -#endif - -#if __has_feature(is_final) -# define _LIBCPP_HAS_IS_FINAL -#endif - -// Objective-C++ features (opt-in) -#if __has_feature(objc_arc) -#define _LIBCPP_HAS_OBJC_ARC -#endif - -#if __has_feature(objc_arc_weak) -#define _LIBCPP_HAS_OBJC_ARC_WEAK -#define _LIBCPP_HAS_NO_STRONG_ENUMS -#endif - -#if !(__has_feature(cxx_constexpr)) -#define _LIBCPP_HAS_NO_CONSTEXPR -#endif - -#if !(__has_feature(cxx_relaxed_constexpr)) -#define _LIBCPP_HAS_NO_CXX14_CONSTEXPR -#endif - -#if !(__has_feature(cxx_variable_templates)) -#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES -#endif - -#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L -#if defined(__FreeBSD__) -#define _LIBCPP_HAS_QUICK_EXIT -#define _LIBCPP_HAS_C11_FEATURES -#elif defined(__ANDROID__) -#define _LIBCPP_HAS_QUICK_EXIT -#elif defined(__linux__) -#include -#if __GLIBC_PREREQ(2, 15) -#define _LIBCPP_HAS_QUICK_EXIT -#endif -#if __GLIBC_PREREQ(2, 17) -#define _LIBCPP_HAS_C11_FEATURES -#endif -#endif -#endif - -#if (__has_feature(cxx_noexcept)) -# define _NOEXCEPT noexcept -# define _NOEXCEPT_(x) noexcept(x) -# define _NOEXCEPT_OR_FALSE(x) noexcept(x) -#else -# define _NOEXCEPT throw() -# define _NOEXCEPT_(x) -# define _NOEXCEPT_OR_FALSE(x) false -#endif - -#if __has_feature(underlying_type) -# define _LIBCPP_UNDERLYING_TYPE(T) __underlying_type(T) -#endif - -#if __has_feature(is_literal) -# define _LIBCPP_IS_LITERAL(T) __is_literal(T) -#endif - -// Inline namespaces are available in Clang regardless of C++ dialect. -#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std {inline namespace _LIBCPP_NAMESPACE { -#define _LIBCPP_END_NAMESPACE_STD } } -#define _VSTD std::_LIBCPP_NAMESPACE - -namespace std { - inline namespace _LIBCPP_NAMESPACE { - } -} - -#if !defined(_LIBCPP_HAS_NO_ASAN) && !__has_feature(address_sanitizer) -#define _LIBCPP_HAS_NO_ASAN -#endif - -#elif defined(__GNUC__) - -#define _ALIGNAS(x) __attribute__((__aligned__(x))) -#define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x)))) - -#define _LIBCPP_NORETURN __attribute__((noreturn)) - -#define _LIBCPP_UNUSED __attribute__((__unused__)) - -#if _GNUC_VER >= 407 -#define _LIBCPP_UNDERLYING_TYPE(T) __underlying_type(T) -#define _LIBCPP_IS_LITERAL(T) __is_literal_type(T) -#define _LIBCPP_HAS_IS_FINAL -#endif - -#if defined(__GNUC__) && _GNUC_VER >= 403 -# define _LIBCPP_HAS_IS_BASE_OF -#endif - -#if !__EXCEPTIONS -#define _LIBCPP_NO_EXCEPTIONS -#endif - -#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES - -// constexpr was added to GCC in 4.6. -#if _GNUC_VER < 406 -#define _LIBCPP_HAS_NO_CONSTEXPR -// Can only use constexpr in c++11 mode. -#elif !defined(__GXX_EXPERIMENTAL_CXX0X__) && __cplusplus < 201103L -#define _LIBCPP_HAS_NO_CONSTEXPR -#endif - -// Determine if GCC supports relaxed constexpr -#if !defined(__cpp_constexpr) || __cpp_constexpr < 201304L -#define _LIBCPP_HAS_NO_CXX14_CONSTEXPR -#endif - -// GCC 5 will support variable templates -#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES - -#define _NOEXCEPT throw() -#define _NOEXCEPT_(x) -#define _NOEXCEPT_OR_FALSE(x) false - -#ifndef __GXX_EXPERIMENTAL_CXX0X__ - -#define _LIBCPP_HAS_NO_ADVANCED_SFINAE -#define _LIBCPP_HAS_NO_DECLTYPE -#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS -#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS -#define _LIBCPP_HAS_NO_NULLPTR -#define _LIBCPP_HAS_NO_STATIC_ASSERT -#define _LIBCPP_HAS_NO_UNICODE_CHARS -#define _LIBCPP_HAS_NO_VARIADICS -#define _LIBCPP_HAS_NO_RVALUE_REFERENCES -#define _LIBCPP_HAS_NO_ALWAYS_INLINE_VARIADICS -#define _LIBCPP_HAS_NO_STRONG_ENUMS - -#else // __GXX_EXPERIMENTAL_CXX0X__ - -#define _LIBCPP_HAS_NO_TRAILING_RETURN -#define _LIBCPP_HAS_NO_ALWAYS_INLINE_VARIADICS - -#if _GNUC_VER < 403 -#define _LIBCPP_HAS_NO_RVALUE_REFERENCES -#endif - -#if _GNUC_VER < 403 -#define _LIBCPP_HAS_NO_STATIC_ASSERT -#endif - -#if _GNUC_VER < 404 -#define _LIBCPP_HAS_NO_DECLTYPE -#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS -#define _LIBCPP_HAS_NO_UNICODE_CHARS -#define _LIBCPP_HAS_NO_VARIADICS -#define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS -#endif // _GNUC_VER < 404 - -#if _GNUC_VER < 406 -#define _LIBCPP_HAS_NO_NULLPTR -#endif - -#if _GNUC_VER < 407 -#define _LIBCPP_HAS_NO_ADVANCED_SFINAE -#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS -#endif - -#endif // __GXX_EXPERIMENTAL_CXX0X__ - -#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { namespace _LIBCPP_NAMESPACE { -#define _LIBCPP_END_NAMESPACE_STD } } -#define _VSTD std::_LIBCPP_NAMESPACE - -namespace std { -namespace _LIBCPP_NAMESPACE { -} -using namespace _LIBCPP_NAMESPACE __attribute__((__strong__)); -} - -#if !defined(_LIBCPP_HAS_NO_ASAN) && !defined(__SANITIZE_ADDRESS__) -#define _LIBCPP_HAS_NO_ASAN -#endif - -#elif defined(_LIBCPP_MSVC) - -#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES -#define _LIBCPP_HAS_NO_CONSTEXPR -#define _LIBCPP_HAS_NO_CXX14_CONSTEXPR -#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES -#define _LIBCPP_HAS_NO_UNICODE_CHARS -#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS -#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS -#define __alignof__ __alignof -#define _LIBCPP_NORETURN __declspec(noreturn) -#define _LIBCPP_UNUSED -#define _ALIGNAS(x) __declspec(align(x)) -#define _LIBCPP_HAS_NO_VARIADICS - -#define _NOEXCEPT throw () -#define _NOEXCEPT_(x) -#define _NOEXCEPT_OR_FALSE(x) false - -#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { -#define _LIBCPP_END_NAMESPACE_STD } -#define _VSTD std - -# define _LIBCPP_WEAK -namespace std { -} - -#define _LIBCPP_HAS_NO_ASAN - -#elif defined(__IBMCPP__) - -#define _ALIGNAS(x) __attribute__((__aligned__(x))) -#define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x)))) -#define _ATTRIBUTE(x) __attribute__((x)) -#define _LIBCPP_NORETURN __attribute__((noreturn)) -#define _LIBCPP_UNUSED - -#define _NOEXCEPT throw() -#define _NOEXCEPT_(x) -#define _NOEXCEPT_OR_FALSE(x) false - -#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES -#define _LIBCPP_HAS_NO_ADVANCED_SFINAE -#define _LIBCPP_HAS_NO_ALWAYS_INLINE_VARIADICS -#define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS -#define _LIBCPP_HAS_NO_NULLPTR -#define _LIBCPP_HAS_NO_UNICODE_CHARS -#define _LIBCPP_HAS_IS_BASE_OF -#define _LIBCPP_HAS_IS_FINAL -#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES - -#if defined(_AIX) -#define __MULTILOCALE_API -#endif - -#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std {inline namespace _LIBCPP_NAMESPACE { -#define _LIBCPP_END_NAMESPACE_STD } } -#define _VSTD std::_LIBCPP_NAMESPACE - -namespace std { - inline namespace _LIBCPP_NAMESPACE { - } -} - -#define _LIBCPP_HAS_NO_ASAN - -#endif // __clang__ || __GNUC__ || _MSC_VER || __IBMCPP__ - -#ifdef _LIBCPP_HAS_NO_UNICODE_CHARS -typedef unsigned short char16_t; -typedef unsigned int char32_t; -#endif // _LIBCPP_HAS_NO_UNICODE_CHARS - -#ifndef __SIZEOF_INT128__ -#define _LIBCPP_HAS_NO_INT128 -#endif - -#ifdef _LIBCPP_HAS_NO_STATIC_ASSERT - -extern "C++" { -template struct __static_assert_test; -template <> struct __static_assert_test {}; -template struct __static_assert_check {}; -} -#define static_assert(__b, __m) \ - typedef __static_assert_check)> \ - _LIBCPP_CONCAT(__t, __LINE__) - -#endif // _LIBCPP_HAS_NO_STATIC_ASSERT - -#ifdef _LIBCPP_HAS_NO_DECLTYPE -// GCC 4.6 provides __decltype in all standard modes. -#if !__is_identifier(__decltype) || _GNUC_VER >= 406 -# define decltype(__x) __decltype(__x) -#else -# define decltype(__x) __typeof__(__x) -#endif -#endif - -#ifdef _LIBCPP_HAS_NO_CONSTEXPR -#define _LIBCPP_CONSTEXPR -#else -#define _LIBCPP_CONSTEXPR constexpr -#endif - -#ifdef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS -#define _LIBCPP_DEFAULT {} -#else -#define _LIBCPP_DEFAULT = default; -#endif - -#ifdef __GNUC__ -#define _NOALIAS __attribute__((__malloc__)) -#else -#define _NOALIAS -#endif - -#if __has_feature(cxx_explicit_conversions) || defined(__IBMCPP__) -# define _LIBCPP_EXPLICIT explicit -#else -# define _LIBCPP_EXPLICIT -#endif - -#if !__has_builtin(__builtin_operator_new) || !__has_builtin(__builtin_operator_delete) -# define _LIBCPP_HAS_NO_BUILTIN_OPERATOR_NEW_DELETE -#endif - -#ifdef _LIBCPP_HAS_NO_STRONG_ENUMS -#define _LIBCPP_DECLARE_STRONG_ENUM(x) struct _LIBCPP_TYPE_VIS x { enum __lx -#define _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(x) \ - __lx __v_; \ - _LIBCPP_ALWAYS_INLINE x(__lx __v) : __v_(__v) {} \ - _LIBCPP_ALWAYS_INLINE explicit x(int __v) : __v_(static_cast<__lx>(__v)) {} \ - _LIBCPP_ALWAYS_INLINE operator int() const {return __v_;} \ - }; -#else // _LIBCPP_HAS_NO_STRONG_ENUMS -#define _LIBCPP_DECLARE_STRONG_ENUM(x) enum class _LIBCPP_TYPE_VIS x -#define _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(x) -#endif // _LIBCPP_HAS_NO_STRONG_ENUMS - -#ifdef _LIBCPP_DEBUG -# if _LIBCPP_DEBUG == 0 -# define _LIBCPP_DEBUG_LEVEL 1 -# elif _LIBCPP_DEBUG == 1 -# define _LIBCPP_DEBUG_LEVEL 2 -# else -# error Supported values for _LIBCPP_DEBUG are 0 and 1 -# endif -# define _LIBCPP_EXTERN_TEMPLATE(...) -#endif - -#ifndef _LIBCPP_EXTERN_TEMPLATE -#define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__; -#endif - -#ifndef _LIBCPP_EXTERN_TEMPLATE2 -#define _LIBCPP_EXTERN_TEMPLATE2(...) extern template __VA_ARGS__; -#endif - -#if defined(__APPLE__) && defined(__LP64__) && !defined(__x86_64__) -#define _LIBCPP_NONUNIQUE_RTTI_BIT (1ULL << 63) -#endif - -#if defined(__APPLE__) || defined(__FreeBSD__) || defined(_WIN32) || \ - defined(__sun__) || defined(__NetBSD__) || defined(__CloudABI__) -#define _LIBCPP_LOCALE__L_EXTENSIONS 1 -#endif - -#if !defined(_WIN32) && !defined(__ANDROID__) && !defined(_NEWLIB_VERSION) && \ - !defined(__CloudABI__) -#define _LIBCPP_HAS_CATOPEN 1 -#endif - -#ifdef __FreeBSD__ -#define _DECLARE_C99_LDBL_MATH 1 -#endif - -#if defined(__APPLE__) || defined(__FreeBSD__) -#define _LIBCPP_HAS_DEFAULTRUNELOCALE -#endif - -#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__sun__) -#define _LIBCPP_WCTYPE_IS_MASK -#endif - -#ifndef _LIBCPP_TRIVIAL_PAIR_COPY_CTOR -# define _LIBCPP_TRIVIAL_PAIR_COPY_CTOR 1 -#endif - -#ifndef _LIBCPP_STD_VER -# if __cplusplus <= 201103L -# define _LIBCPP_STD_VER 11 -# elif __cplusplus <= 201402L -# define _LIBCPP_STD_VER 14 -# else -# define _LIBCPP_STD_VER 15 // current year, or date of c++17 ratification -# endif -#endif // _LIBCPP_STD_VER - -#if _LIBCPP_STD_VER > 11 -#define _LIBCPP_DEPRECATED [[deprecated]] -#else -#define _LIBCPP_DEPRECATED -#endif - -#if _LIBCPP_STD_VER <= 11 -#define _LIBCPP_EXPLICIT_AFTER_CXX11 -#define _LIBCPP_DEPRECATED_AFTER_CXX11 -#else -#define _LIBCPP_EXPLICIT_AFTER_CXX11 explicit -#define _LIBCPP_DEPRECATED_AFTER_CXX11 [[deprecated]] -#endif - -#if _LIBCPP_STD_VER > 11 && !defined(_LIBCPP_HAS_NO_CXX14_CONSTEXPR) -#define _LIBCPP_CONSTEXPR_AFTER_CXX11 constexpr -#else -#define _LIBCPP_CONSTEXPR_AFTER_CXX11 -#endif - -#ifdef _LIBCPP_HAS_NO_RVALUE_REFERENCES -# define _LIBCPP_EXPLICIT_MOVE(x) _VSTD::move(x) -#else -# define _LIBCPP_EXPLICIT_MOVE(x) (x) -#endif - -#ifndef _LIBCPP_HAS_NO_ASAN -extern "C" void __sanitizer_annotate_contiguous_container( - const void *, const void *, const void *, const void *); -#endif - -// Try to find out if RTTI is disabled. -// g++ and cl.exe have RTTI on by default and define a macro when it is. -// g++ only defines the macro in 4.3.2 and onwards. -#if !defined(_LIBCPP_NO_RTTI) -# if defined(__GNUC__) && ((__GNUC__ >= 5) || (__GNUC__ == 4 && \ - (__GNUC_MINOR__ >= 3 || __GNUC_PATCHLEVEL__ >= 2))) && !defined(__GXX_RTTI) -# define _LIBCPP_NO_RTTI -# elif (defined(_MSC_VER) && !defined(__clang__)) && !defined(_CPPRTTI) -# define _LIBCPP_NO_RTTI -# endif -#endif - -#ifndef _LIBCPP_WEAK -# define _LIBCPP_WEAK __attribute__((__weak__)) -#endif - -#if defined(_LIBCPP_HAS_NO_MONOTONIC_CLOCK) && !defined(_LIBCPP_HAS_NO_THREADS) -# error _LIBCPP_HAS_NO_MONOTONIC_CLOCK may only be defined when \ - _LIBCPP_HAS_NO_THREADS is defined. -#endif - -// Systems that use capability-based security (FreeBSD with Capsicum, -// Nuxi CloudABI) may only provide local filesystem access (using *at()). -// Functions like open(), rename(), unlink() and stat() should not be -// used, as they attempt to access the global filesystem namespace. -#ifdef __CloudABI__ -#define _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE -#endif - -// CloudABI is intended for running networked services. Processes do not -// have standard input and output channels. -#ifdef __CloudABI__ -#define _LIBCPP_HAS_NO_STDIN -#define _LIBCPP_HAS_NO_STDOUT -#endif - -#if defined(__ANDROID__) || defined(__CloudABI__) -#define _LIBCPP_PROVIDES_DEFAULT_RUNE_TABLE -#endif - -// Thread-unsafe functions such as strtok(), mbtowc() and localtime() -// are not available. -#ifdef __CloudABI__ -#define _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS -#endif - -#if __has_feature(cxx_atomic) || __has_extension(c_atomic) -#define _LIBCPP_HAS_C_ATOMIC_IMP -#elif _GNUC_VER > 407 -#define _LIBCPP_HAS_GCC_ATOMIC_IMP -#endif - -#if (!defined(_LIBCPP_HAS_C_ATOMIC_IMP) && !defined(_LIBCPP_HAS_GCC_ATOMIC_IMP)) \ - || defined(_LIBCPP_HAS_NO_THREADS) -#define _LIBCPP_HAS_NO_ATOMIC_HEADER -#endif - -#endif // __cplusplus - -#endif // _LIBCPP_CONFIG diff --git a/headers/libs/libc++/__config_site.in b/headers/libs/libc++/__config_site.in deleted file mode 100644 index 7a1d739f72..0000000000 --- a/headers/libs/libc++/__config_site.in +++ /dev/null @@ -1,22 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CONFIG_SITE -#define _LIBCPP_CONFIG_SITE - -#cmakedefine _LIBCPP_ABI_VERSION @_LIBCPP_ABI_VERSION@ -#cmakedefine _LIBCPP_ABI_UNSTABLE -#cmakedefine _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE -#cmakedefine _LIBCPP_HAS_NO_STDIN -#cmakedefine _LIBCPP_HAS_NO_STDOUT -#cmakedefine _LIBCPP_HAS_NO_THREADS -#cmakedefine _LIBCPP_HAS_NO_MONOTONIC_CLOCK -#cmakedefine _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS - -#endif diff --git a/headers/libs/libc++/__debug b/headers/libs/libc++/__debug deleted file mode 100644 index a21f9a8988..0000000000 --- a/headers/libs/libc++/__debug +++ /dev/null @@ -1,222 +0,0 @@ -// -*- C++ -*- -//===--------------------------- __debug ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_DEBUG_H -#define _LIBCPP_DEBUG_H - -#include <__config> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#if _LIBCPP_DEBUG_LEVEL >= 1 -# include -# include -# include -# ifndef _LIBCPP_ASSERT -# define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : (_VSTD::fprintf(stderr, "%s\n", m), _VSTD::abort())) -# endif -#endif - -#ifndef _LIBCPP_ASSERT -# define _LIBCPP_ASSERT(x, m) ((void)0) -#endif - -#if _LIBCPP_DEBUG_LEVEL >= 2 - -_LIBCPP_BEGIN_NAMESPACE_STD - -struct _LIBCPP_TYPE_VIS __c_node; - -struct _LIBCPP_TYPE_VIS __i_node -{ - void* __i_; - __i_node* __next_; - __c_node* __c_; - -#ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS - __i_node(const __i_node&) = delete; - __i_node& operator=(const __i_node&) = delete; -#else -private: - __i_node(const __i_node&); - __i_node& operator=(const __i_node&); -public: -#endif - _LIBCPP_INLINE_VISIBILITY - __i_node(void* __i, __i_node* __next, __c_node* __c) - : __i_(__i), __next_(__next), __c_(__c) {} - ~__i_node(); -}; - -struct _LIBCPP_TYPE_VIS __c_node -{ - void* __c_; - __c_node* __next_; - __i_node** beg_; - __i_node** end_; - __i_node** cap_; - -#ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS - __c_node(const __c_node&) = delete; - __c_node& operator=(const __c_node&) = delete; -#else -private: - __c_node(const __c_node&); - __c_node& operator=(const __c_node&); -public: -#endif - _LIBCPP_INLINE_VISIBILITY - __c_node(void* __c, __c_node* __next) - : __c_(__c), __next_(__next), beg_(nullptr), end_(nullptr), cap_(nullptr) {} - virtual ~__c_node(); - - virtual bool __dereferenceable(const void*) const = 0; - virtual bool __decrementable(const void*) const = 0; - virtual bool __addable(const void*, ptrdiff_t) const = 0; - virtual bool __subscriptable(const void*, ptrdiff_t) const = 0; - - void __add(__i_node* __i); - _LIBCPP_HIDDEN void __remove(__i_node* __i); -}; - -template -struct _C_node - : public __c_node -{ - _C_node(void* __c, __c_node* __n) - : __c_node(__c, __n) {} - - virtual bool __dereferenceable(const void*) const; - virtual bool __decrementable(const void*) const; - virtual bool __addable(const void*, ptrdiff_t) const; - virtual bool __subscriptable(const void*, ptrdiff_t) const; -}; - -template -bool -_C_node<_Cont>::__dereferenceable(const void* __i) const -{ - typedef typename _Cont::const_iterator iterator; - const iterator* __j = static_cast(__i); - _Cont* _Cp = static_cast<_Cont*>(__c_); - return _Cp->__dereferenceable(__j); -} - -template -bool -_C_node<_Cont>::__decrementable(const void* __i) const -{ - typedef typename _Cont::const_iterator iterator; - const iterator* __j = static_cast(__i); - _Cont* _Cp = static_cast<_Cont*>(__c_); - return _Cp->__decrementable(__j); -} - -template -bool -_C_node<_Cont>::__addable(const void* __i, ptrdiff_t __n) const -{ - typedef typename _Cont::const_iterator iterator; - const iterator* __j = static_cast(__i); - _Cont* _Cp = static_cast<_Cont*>(__c_); - return _Cp->__addable(__j, __n); -} - -template -bool -_C_node<_Cont>::__subscriptable(const void* __i, ptrdiff_t __n) const -{ - typedef typename _Cont::const_iterator iterator; - const iterator* __j = static_cast(__i); - _Cont* _Cp = static_cast<_Cont*>(__c_); - return _Cp->__subscriptable(__j, __n); -} - -class _LIBCPP_TYPE_VIS __libcpp_db -{ - __c_node** __cbeg_; - __c_node** __cend_; - size_t __csz_; - __i_node** __ibeg_; - __i_node** __iend_; - size_t __isz_; - - __libcpp_db(); -public: -#ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS - __libcpp_db(const __libcpp_db&) = delete; - __libcpp_db& operator=(const __libcpp_db&) = delete; -#else -private: - __libcpp_db(const __libcpp_db&); - __libcpp_db& operator=(const __libcpp_db&); -public: -#endif - ~__libcpp_db(); - - class __db_c_iterator; - class __db_c_const_iterator; - class __db_i_iterator; - class __db_i_const_iterator; - - __db_c_const_iterator __c_end() const; - __db_i_const_iterator __i_end() const; - - template - _LIBCPP_INLINE_VISIBILITY - void __insert_c(_Cont* __c) - { - __c_node* __n = __insert_c(static_cast(__c)); - ::new(__n) _C_node<_Cont>(__n->__c_, __n->__next_); - } - - void __insert_i(void* __i); - __c_node* __insert_c(void* __c); - void __erase_c(void* __c); - - void __insert_ic(void* __i, const void* __c); - void __iterator_copy(void* __i, const void* __i0); - void __erase_i(void* __i); - - void* __find_c_from_i(void* __i) const; - void __invalidate_all(void* __c); - __c_node* __find_c_and_lock(void* __c) const; - __c_node* __find_c(void* __c) const; - void unlock() const; - - void swap(void* __c1, void* __c2); - - - bool __dereferenceable(const void* __i) const; - bool __decrementable(const void* __i) const; - bool __addable(const void* __i, ptrdiff_t __n) const; - bool __subscriptable(const void* __i, ptrdiff_t __n) const; - bool __less_than_comparable(const void* __i, const void* __j) const; -private: - _LIBCPP_HIDDEN - __i_node* __insert_iterator(void* __i); - _LIBCPP_HIDDEN - __i_node* __find_iterator(const void* __i) const; - - friend _LIBCPP_FUNC_VIS __libcpp_db* __get_db(); -}; - -_LIBCPP_FUNC_VIS __libcpp_db* __get_db(); -_LIBCPP_FUNC_VIS const __libcpp_db* __get_const_db(); - - -_LIBCPP_END_NAMESPACE_STD - -#endif - -#endif // _LIBCPP_DEBUG_H - diff --git a/headers/libs/libc++/__functional_03 b/headers/libs/libc++/__functional_03 deleted file mode 100644 index 4edbb0996c..0000000000 --- a/headers/libs/libc++/__functional_03 +++ /dev/null @@ -1,1576 +0,0 @@ -// -*- C++ -*- -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_FUNCTIONAL_03 -#define _LIBCPP_FUNCTIONAL_03 - -// manual variadic expansion for - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -namespace __function { - -template class __base; - -template -class __base<_Rp()> -{ - __base(const __base&); - __base& operator=(const __base&); -public: - __base() {} - virtual ~__base() {} - virtual __base* __clone() const = 0; - virtual void __clone(__base*) const = 0; - virtual void destroy() = 0; - virtual void destroy_deallocate() = 0; - virtual _Rp operator()() = 0; -#ifndef _LIBCPP_NO_RTTI - virtual const void* target(const type_info&) const = 0; - virtual const std::type_info& target_type() const = 0; -#endif // _LIBCPP_NO_RTTI -}; - -template -class __base<_Rp(_A0)> -{ - __base(const __base&); - __base& operator=(const __base&); -public: - __base() {} - virtual ~__base() {} - virtual __base* __clone() const = 0; - virtual void __clone(__base*) const = 0; - virtual void destroy() = 0; - virtual void destroy_deallocate() = 0; - virtual _Rp operator()(_A0) = 0; -#ifndef _LIBCPP_NO_RTTI - virtual const void* target(const type_info&) const = 0; - virtual const std::type_info& target_type() const = 0; -#endif // _LIBCPP_NO_RTTI -}; - -template -class __base<_Rp(_A0, _A1)> -{ - __base(const __base&); - __base& operator=(const __base&); -public: - __base() {} - virtual ~__base() {} - virtual __base* __clone() const = 0; - virtual void __clone(__base*) const = 0; - virtual void destroy() = 0; - virtual void destroy_deallocate() = 0; - virtual _Rp operator()(_A0, _A1) = 0; -#ifndef _LIBCPP_NO_RTTI - virtual const void* target(const type_info&) const = 0; - virtual const std::type_info& target_type() const = 0; -#endif // _LIBCPP_NO_RTTI -}; - -template -class __base<_Rp(_A0, _A1, _A2)> -{ - __base(const __base&); - __base& operator=(const __base&); -public: - __base() {} - virtual ~__base() {} - virtual __base* __clone() const = 0; - virtual void __clone(__base*) const = 0; - virtual void destroy() = 0; - virtual void destroy_deallocate() = 0; - virtual _Rp operator()(_A0, _A1, _A2) = 0; -#ifndef _LIBCPP_NO_RTTI - virtual const void* target(const type_info&) const = 0; - virtual const std::type_info& target_type() const = 0; -#endif // _LIBCPP_NO_RTTI -}; - -template class __func; - -template -class __func<_Fp, _Alloc, _Rp()> - : public __base<_Rp()> -{ - __compressed_pair<_Fp, _Alloc> __f_; -public: - explicit __func(_Fp __f) : __f_(_VSTD::move(__f)) {} - explicit __func(_Fp __f, _Alloc __a) : __f_(_VSTD::move(__f), _VSTD::move(__a)) {} - virtual __base<_Rp()>* __clone() const; - virtual void __clone(__base<_Rp()>*) const; - virtual void destroy(); - virtual void destroy_deallocate(); - virtual _Rp operator()(); -#ifndef _LIBCPP_NO_RTTI - virtual const void* target(const type_info&) const; - virtual const std::type_info& target_type() const; -#endif // _LIBCPP_NO_RTTI -}; - -template -__base<_Rp()>* -__func<_Fp, _Alloc, _Rp()>::__clone() const -{ - typedef allocator_traits<_Alloc> __alloc_traits; - typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; - _Ap __a(__f_.second()); - typedef __allocator_destructor<_Ap> _Dp; - unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new (__hold.get()) __func(__f_.first(), _Alloc(__a)); - return __hold.release(); -} - -template -void -__func<_Fp, _Alloc, _Rp()>::__clone(__base<_Rp()>* __p) const -{ - ::new (__p) __func(__f_.first(), __f_.second()); -} - -template -void -__func<_Fp, _Alloc, _Rp()>::destroy() -{ - __f_.~__compressed_pair<_Fp, _Alloc>(); -} - -template -void -__func<_Fp, _Alloc, _Rp()>::destroy_deallocate() -{ - typedef allocator_traits<_Alloc> __alloc_traits; - typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; - _Ap __a(__f_.second()); - __f_.~__compressed_pair<_Fp, _Alloc>(); - __a.deallocate(this, 1); -} - -template -_Rp -__func<_Fp, _Alloc, _Rp()>::operator()() -{ - typedef __invoke_void_return_wrapper<_Rp> _Invoker; - return _Invoker::__call(__f_.first()); -} - -#ifndef _LIBCPP_NO_RTTI - -template -const void* -__func<_Fp, _Alloc, _Rp()>::target(const type_info& __ti) const -{ - if (__ti == typeid(_Fp)) - return &__f_.first(); - return (const void*)0; -} - -template -const std::type_info& -__func<_Fp, _Alloc, _Rp()>::target_type() const -{ - return typeid(_Fp); -} - -#endif // _LIBCPP_NO_RTTI - -template -class __func<_Fp, _Alloc, _Rp(_A0)> - : public __base<_Rp(_A0)> -{ - __compressed_pair<_Fp, _Alloc> __f_; -public: - _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f) : __f_(_VSTD::move(__f)) {} - _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f, _Alloc __a) - : __f_(_VSTD::move(__f), _VSTD::move(__a)) {} - virtual __base<_Rp(_A0)>* __clone() const; - virtual void __clone(__base<_Rp(_A0)>*) const; - virtual void destroy(); - virtual void destroy_deallocate(); - virtual _Rp operator()(_A0); -#ifndef _LIBCPP_NO_RTTI - virtual const void* target(const type_info&) const; - virtual const std::type_info& target_type() const; -#endif // _LIBCPP_NO_RTTI -}; - -template -__base<_Rp(_A0)>* -__func<_Fp, _Alloc, _Rp(_A0)>::__clone() const -{ - typedef allocator_traits<_Alloc> __alloc_traits; - typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; - _Ap __a(__f_.second()); - typedef __allocator_destructor<_Ap> _Dp; - unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new (__hold.get()) __func(__f_.first(), _Alloc(__a)); - return __hold.release(); -} - -template -void -__func<_Fp, _Alloc, _Rp(_A0)>::__clone(__base<_Rp(_A0)>* __p) const -{ - ::new (__p) __func(__f_.first(), __f_.second()); -} - -template -void -__func<_Fp, _Alloc, _Rp(_A0)>::destroy() -{ - __f_.~__compressed_pair<_Fp, _Alloc>(); -} - -template -void -__func<_Fp, _Alloc, _Rp(_A0)>::destroy_deallocate() -{ - typedef allocator_traits<_Alloc> __alloc_traits; - typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; - _Ap __a(__f_.second()); - __f_.~__compressed_pair<_Fp, _Alloc>(); - __a.deallocate(this, 1); -} - -template -_Rp -__func<_Fp, _Alloc, _Rp(_A0)>::operator()(_A0 __a0) -{ - typedef __invoke_void_return_wrapper<_Rp> _Invoker; - return _Invoker::__call(__f_.first(), __a0); -} - -#ifndef _LIBCPP_NO_RTTI - -template -const void* -__func<_Fp, _Alloc, _Rp(_A0)>::target(const type_info& __ti) const -{ - if (__ti == typeid(_Fp)) - return &__f_.first(); - return (const void*)0; -} - -template -const std::type_info& -__func<_Fp, _Alloc, _Rp(_A0)>::target_type() const -{ - return typeid(_Fp); -} - -#endif // _LIBCPP_NO_RTTI - -template -class __func<_Fp, _Alloc, _Rp(_A0, _A1)> - : public __base<_Rp(_A0, _A1)> -{ - __compressed_pair<_Fp, _Alloc> __f_; -public: - _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f) : __f_(_VSTD::move(__f)) {} - _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f, _Alloc __a) - : __f_(_VSTD::move(__f), _VSTD::move(__a)) {} - virtual __base<_Rp(_A0, _A1)>* __clone() const; - virtual void __clone(__base<_Rp(_A0, _A1)>*) const; - virtual void destroy(); - virtual void destroy_deallocate(); - virtual _Rp operator()(_A0, _A1); -#ifndef _LIBCPP_NO_RTTI - virtual const void* target(const type_info&) const; - virtual const std::type_info& target_type() const; -#endif // _LIBCPP_NO_RTTI -}; - -template -__base<_Rp(_A0, _A1)>* -__func<_Fp, _Alloc, _Rp(_A0, _A1)>::__clone() const -{ - typedef allocator_traits<_Alloc> __alloc_traits; - typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; - _Ap __a(__f_.second()); - typedef __allocator_destructor<_Ap> _Dp; - unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new (__hold.get()) __func(__f_.first(), _Alloc(__a)); - return __hold.release(); -} - -template -void -__func<_Fp, _Alloc, _Rp(_A0, _A1)>::__clone(__base<_Rp(_A0, _A1)>* __p) const -{ - ::new (__p) __func(__f_.first(), __f_.second()); -} - -template -void -__func<_Fp, _Alloc, _Rp(_A0, _A1)>::destroy() -{ - __f_.~__compressed_pair<_Fp, _Alloc>(); -} - -template -void -__func<_Fp, _Alloc, _Rp(_A0, _A1)>::destroy_deallocate() -{ - typedef allocator_traits<_Alloc> __alloc_traits; - typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; - _Ap __a(__f_.second()); - __f_.~__compressed_pair<_Fp, _Alloc>(); - __a.deallocate(this, 1); -} - -template -_Rp -__func<_Fp, _Alloc, _Rp(_A0, _A1)>::operator()(_A0 __a0, _A1 __a1) -{ - typedef __invoke_void_return_wrapper<_Rp> _Invoker; - return _Invoker::__call(__f_.first(), __a0, __a1); -} - -#ifndef _LIBCPP_NO_RTTI - -template -const void* -__func<_Fp, _Alloc, _Rp(_A0, _A1)>::target(const type_info& __ti) const -{ - if (__ti == typeid(_Fp)) - return &__f_.first(); - return (const void*)0; -} - -template -const std::type_info& -__func<_Fp, _Alloc, _Rp(_A0, _A1)>::target_type() const -{ - return typeid(_Fp); -} - -#endif // _LIBCPP_NO_RTTI - -template -class __func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)> - : public __base<_Rp(_A0, _A1, _A2)> -{ - __compressed_pair<_Fp, _Alloc> __f_; -public: - _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f) : __f_(_VSTD::move(__f)) {} - _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f, _Alloc __a) - : __f_(_VSTD::move(__f), _VSTD::move(__a)) {} - virtual __base<_Rp(_A0, _A1, _A2)>* __clone() const; - virtual void __clone(__base<_Rp(_A0, _A1, _A2)>*) const; - virtual void destroy(); - virtual void destroy_deallocate(); - virtual _Rp operator()(_A0, _A1, _A2); -#ifndef _LIBCPP_NO_RTTI - virtual const void* target(const type_info&) const; - virtual const std::type_info& target_type() const; -#endif // _LIBCPP_NO_RTTI -}; - -template -__base<_Rp(_A0, _A1, _A2)>* -__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::__clone() const -{ - typedef allocator_traits<_Alloc> __alloc_traits; - typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; - _Ap __a(__f_.second()); - typedef __allocator_destructor<_Ap> _Dp; - unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new (__hold.get()) __func(__f_.first(), _Alloc(__a)); - return __hold.release(); -} - -template -void -__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::__clone(__base<_Rp(_A0, _A1, _A2)>* __p) const -{ - ::new (__p) __func(__f_.first(), __f_.second()); -} - -template -void -__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::destroy() -{ - __f_.~__compressed_pair<_Fp, _Alloc>(); -} - -template -void -__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::destroy_deallocate() -{ - typedef allocator_traits<_Alloc> __alloc_traits; - typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; - _Ap __a(__f_.second()); - __f_.~__compressed_pair<_Fp, _Alloc>(); - __a.deallocate(this, 1); -} - -template -_Rp -__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::operator()(_A0 __a0, _A1 __a1, _A2 __a2) -{ - typedef __invoke_void_return_wrapper<_Rp> _Invoker; - return _Invoker::__call(__f_.first(), __a0, __a1, __a2); -} - -#ifndef _LIBCPP_NO_RTTI - -template -const void* -__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::target(const type_info& __ti) const -{ - if (__ti == typeid(_Fp)) - return &__f_.first(); - return (const void*)0; -} - -template -const std::type_info& -__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::target_type() const -{ - return typeid(_Fp); -} - -#endif // _LIBCPP_NO_RTTI - -} // __function - -template -class _LIBCPP_TYPE_VIS_ONLY function<_Rp()> -{ - typedef __function::__base<_Rp()> __base; - aligned_storage<3*sizeof(void*)>::type __buf_; - __base* __f_; - -public: - typedef _Rp result_type; - - // 20.7.16.2.1, construct/copy/destroy: - _LIBCPP_INLINE_VISIBILITY explicit function() : __f_(0) {} - _LIBCPP_INLINE_VISIBILITY function(nullptr_t) : __f_(0) {} - function(const function&); - template - function(_Fp, - typename enable_if::value>::type* = 0); - - template - _LIBCPP_INLINE_VISIBILITY - function(allocator_arg_t, const _Alloc&) : __f_(0) {} - template - _LIBCPP_INLINE_VISIBILITY - function(allocator_arg_t, const _Alloc&, nullptr_t) : __f_(0) {} - template - function(allocator_arg_t, const _Alloc&, const function&); - template - function(allocator_arg_t, const _Alloc& __a, _Fp __f, - typename enable_if::value>::type* = 0); - - function& operator=(const function&); - function& operator=(nullptr_t); - template - typename enable_if - < - !is_integral<_Fp>::value, - function& - >::type - operator=(_Fp); - - ~function(); - - // 20.7.16.2.2, function modifiers: - void swap(function&); - template - _LIBCPP_INLINE_VISIBILITY - void assign(_Fp __f, const _Alloc& __a) - {function(allocator_arg, __a, __f).swap(*this);} - - // 20.7.16.2.3, function capacity: - _LIBCPP_INLINE_VISIBILITY operator bool() const {return __f_;} - -private: - // deleted overloads close possible hole in the type system - template - bool operator==(const function<_R2()>&) const;// = delete; - template - bool operator!=(const function<_R2()>&) const;// = delete; -public: - // 20.7.16.2.4, function invocation: - _Rp operator()() const; - -#ifndef _LIBCPP_NO_RTTI - // 20.7.16.2.5, function target access: - const std::type_info& target_type() const; - template _Tp* target(); - template const _Tp* target() const; -#endif // _LIBCPP_NO_RTTI -}; - -template -function<_Rp()>::function(const function& __f) -{ - if (__f.__f_ == 0) - __f_ = 0; - else if (__f.__f_ == (const __base*)&__f.__buf_) - { - __f_ = (__base*)&__buf_; - __f.__f_->__clone(__f_); - } - else - __f_ = __f.__f_->__clone(); -} - -template -template -function<_Rp()>::function(allocator_arg_t, const _Alloc&, const function& __f) -{ - if (__f.__f_ == 0) - __f_ = 0; - else if (__f.__f_ == (const __base*)&__f.__buf_) - { - __f_ = (__base*)&__buf_; - __f.__f_->__clone(__f_); - } - else - __f_ = __f.__f_->__clone(); -} - -template -template -function<_Rp()>::function(_Fp __f, - typename enable_if::value>::type*) - : __f_(0) -{ - if (__function::__not_null(__f)) - { - typedef __function::__func<_Fp, allocator<_Fp>, _Rp()> _FF; - if (sizeof(_FF) <= sizeof(__buf_)) - { - __f_ = (__base*)&__buf_; - ::new (__f_) _FF(__f); - } - else - { - typedef allocator<_FF> _Ap; - _Ap __a; - typedef __allocator_destructor<_Ap> _Dp; - unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new (__hold.get()) _FF(__f, allocator<_Fp>(__a)); - __f_ = __hold.release(); - } - } -} - -template -template -function<_Rp()>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f, - typename enable_if::value>::type*) - : __f_(0) -{ - typedef allocator_traits<_Alloc> __alloc_traits; - if (__function::__not_null(__f)) - { - typedef __function::__func<_Fp, _Alloc, _Rp()> _FF; - if (sizeof(_FF) <= sizeof(__buf_)) - { - __f_ = (__base*)&__buf_; - ::new (__f_) _FF(__f, __a0); - } - else - { - typedef typename __rebind_alloc_helper<__alloc_traits, _FF>::type _Ap; - _Ap __a(__a0); - typedef __allocator_destructor<_Ap> _Dp; - unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new (__hold.get()) _FF(__f, _Alloc(__a)); - __f_ = __hold.release(); - } - } -} - -template -function<_Rp()>& -function<_Rp()>::operator=(const function& __f) -{ - function(__f).swap(*this); - return *this; -} - -template -function<_Rp()>& -function<_Rp()>::operator=(nullptr_t) -{ - if (__f_ == (__base*)&__buf_) - __f_->destroy(); - else if (__f_) - __f_->destroy_deallocate(); - __f_ = 0; - return *this; -} - -template -template -typename enable_if -< - !is_integral<_Fp>::value, - function<_Rp()>& ->::type -function<_Rp()>::operator=(_Fp __f) -{ - function(_VSTD::move(__f)).swap(*this); - return *this; -} - -template -function<_Rp()>::~function() -{ - if (__f_ == (__base*)&__buf_) - __f_->destroy(); - else if (__f_) - __f_->destroy_deallocate(); -} - -template -void -function<_Rp()>::swap(function& __f) -{ - if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_) - { - typename aligned_storage::type __tempbuf; - __base* __t = (__base*)&__tempbuf; - __f_->__clone(__t); - __f_->destroy(); - __f_ = 0; - __f.__f_->__clone((__base*)&__buf_); - __f.__f_->destroy(); - __f.__f_ = 0; - __f_ = (__base*)&__buf_; - __t->__clone((__base*)&__f.__buf_); - __t->destroy(); - __f.__f_ = (__base*)&__f.__buf_; - } - else if (__f_ == (__base*)&__buf_) - { - __f_->__clone((__base*)&__f.__buf_); - __f_->destroy(); - __f_ = __f.__f_; - __f.__f_ = (__base*)&__f.__buf_; - } - else if (__f.__f_ == (__base*)&__f.__buf_) - { - __f.__f_->__clone((__base*)&__buf_); - __f.__f_->destroy(); - __f.__f_ = __f_; - __f_ = (__base*)&__buf_; - } - else - _VSTD::swap(__f_, __f.__f_); -} - -template -_Rp -function<_Rp()>::operator()() const -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - if (__f_ == 0) - throw bad_function_call(); -#endif // _LIBCPP_NO_EXCEPTIONS - return (*__f_)(); -} - -#ifndef _LIBCPP_NO_RTTI - -template -const std::type_info& -function<_Rp()>::target_type() const -{ - if (__f_ == 0) - return typeid(void); - return __f_->target_type(); -} - -template -template -_Tp* -function<_Rp()>::target() -{ - if (__f_ == 0) - return (_Tp*)0; - return (_Tp*)__f_->target(typeid(_Tp)); -} - -template -template -const _Tp* -function<_Rp()>::target() const -{ - if (__f_ == 0) - return (const _Tp*)0; - return (const _Tp*)__f_->target(typeid(_Tp)); -} - -#endif // _LIBCPP_NO_RTTI - -template -class _LIBCPP_TYPE_VIS_ONLY function<_Rp(_A0)> - : public unary_function<_A0, _Rp> -{ - typedef __function::__base<_Rp(_A0)> __base; - aligned_storage<3*sizeof(void*)>::type __buf_; - __base* __f_; - -public: - typedef _Rp result_type; - - // 20.7.16.2.1, construct/copy/destroy: - _LIBCPP_INLINE_VISIBILITY explicit function() : __f_(0) {} - _LIBCPP_INLINE_VISIBILITY function(nullptr_t) : __f_(0) {} - function(const function&); - template - function(_Fp, - typename enable_if::value>::type* = 0); - - template - _LIBCPP_INLINE_VISIBILITY - function(allocator_arg_t, const _Alloc&) : __f_(0) {} - template - _LIBCPP_INLINE_VISIBILITY - function(allocator_arg_t, const _Alloc&, nullptr_t) : __f_(0) {} - template - function(allocator_arg_t, const _Alloc&, const function&); - template - function(allocator_arg_t, const _Alloc& __a, _Fp __f, - typename enable_if::value>::type* = 0); - - function& operator=(const function&); - function& operator=(nullptr_t); - template - typename enable_if - < - !is_integral<_Fp>::value, - function& - >::type - operator=(_Fp); - - ~function(); - - // 20.7.16.2.2, function modifiers: - void swap(function&); - template - _LIBCPP_INLINE_VISIBILITY - void assign(_Fp __f, const _Alloc& __a) - {function(allocator_arg, __a, __f).swap(*this);} - - // 20.7.16.2.3, function capacity: - _LIBCPP_INLINE_VISIBILITY operator bool() const {return __f_;} - -private: - // deleted overloads close possible hole in the type system - template - bool operator==(const function<_R2(_B0)>&) const;// = delete; - template - bool operator!=(const function<_R2(_B0)>&) const;// = delete; -public: - // 20.7.16.2.4, function invocation: - _Rp operator()(_A0) const; - -#ifndef _LIBCPP_NO_RTTI - // 20.7.16.2.5, function target access: - const std::type_info& target_type() const; - template _Tp* target(); - template const _Tp* target() const; -#endif // _LIBCPP_NO_RTTI -}; - -template -function<_Rp(_A0)>::function(const function& __f) -{ - if (__f.__f_ == 0) - __f_ = 0; - else if (__f.__f_ == (const __base*)&__f.__buf_) - { - __f_ = (__base*)&__buf_; - __f.__f_->__clone(__f_); - } - else - __f_ = __f.__f_->__clone(); -} - -template -template -function<_Rp(_A0)>::function(allocator_arg_t, const _Alloc&, const function& __f) -{ - if (__f.__f_ == 0) - __f_ = 0; - else if (__f.__f_ == (const __base*)&__f.__buf_) - { - __f_ = (__base*)&__buf_; - __f.__f_->__clone(__f_); - } - else - __f_ = __f.__f_->__clone(); -} - -template -template -function<_Rp(_A0)>::function(_Fp __f, - typename enable_if::value>::type*) - : __f_(0) -{ - if (__function::__not_null(__f)) - { - typedef __function::__func<_Fp, allocator<_Fp>, _Rp(_A0)> _FF; - if (sizeof(_FF) <= sizeof(__buf_)) - { - __f_ = (__base*)&__buf_; - ::new (__f_) _FF(__f); - } - else - { - typedef allocator<_FF> _Ap; - _Ap __a; - typedef __allocator_destructor<_Ap> _Dp; - unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new (__hold.get()) _FF(__f, allocator<_Fp>(__a)); - __f_ = __hold.release(); - } - } -} - -template -template -function<_Rp(_A0)>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f, - typename enable_if::value>::type*) - : __f_(0) -{ - typedef allocator_traits<_Alloc> __alloc_traits; - if (__function::__not_null(__f)) - { - typedef __function::__func<_Fp, _Alloc, _Rp(_A0)> _FF; - if (sizeof(_FF) <= sizeof(__buf_)) - { - __f_ = (__base*)&__buf_; - ::new (__f_) _FF(__f, __a0); - } - else - { - typedef typename __rebind_alloc_helper<__alloc_traits, _FF>::type _Ap; - _Ap __a(__a0); - typedef __allocator_destructor<_Ap> _Dp; - unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new (__hold.get()) _FF(__f, _Alloc(__a)); - __f_ = __hold.release(); - } - } -} - -template -function<_Rp(_A0)>& -function<_Rp(_A0)>::operator=(const function& __f) -{ - function(__f).swap(*this); - return *this; -} - -template -function<_Rp(_A0)>& -function<_Rp(_A0)>::operator=(nullptr_t) -{ - if (__f_ == (__base*)&__buf_) - __f_->destroy(); - else if (__f_) - __f_->destroy_deallocate(); - __f_ = 0; - return *this; -} - -template -template -typename enable_if -< - !is_integral<_Fp>::value, - function<_Rp(_A0)>& ->::type -function<_Rp(_A0)>::operator=(_Fp __f) -{ - function(_VSTD::move(__f)).swap(*this); - return *this; -} - -template -function<_Rp(_A0)>::~function() -{ - if (__f_ == (__base*)&__buf_) - __f_->destroy(); - else if (__f_) - __f_->destroy_deallocate(); -} - -template -void -function<_Rp(_A0)>::swap(function& __f) -{ - if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_) - { - typename aligned_storage::type __tempbuf; - __base* __t = (__base*)&__tempbuf; - __f_->__clone(__t); - __f_->destroy(); - __f_ = 0; - __f.__f_->__clone((__base*)&__buf_); - __f.__f_->destroy(); - __f.__f_ = 0; - __f_ = (__base*)&__buf_; - __t->__clone((__base*)&__f.__buf_); - __t->destroy(); - __f.__f_ = (__base*)&__f.__buf_; - } - else if (__f_ == (__base*)&__buf_) - { - __f_->__clone((__base*)&__f.__buf_); - __f_->destroy(); - __f_ = __f.__f_; - __f.__f_ = (__base*)&__f.__buf_; - } - else if (__f.__f_ == (__base*)&__f.__buf_) - { - __f.__f_->__clone((__base*)&__buf_); - __f.__f_->destroy(); - __f.__f_ = __f_; - __f_ = (__base*)&__buf_; - } - else - _VSTD::swap(__f_, __f.__f_); -} - -template -_Rp -function<_Rp(_A0)>::operator()(_A0 __a0) const -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - if (__f_ == 0) - throw bad_function_call(); -#endif // _LIBCPP_NO_EXCEPTIONS - return (*__f_)(__a0); -} - -#ifndef _LIBCPP_NO_RTTI - -template -const std::type_info& -function<_Rp(_A0)>::target_type() const -{ - if (__f_ == 0) - return typeid(void); - return __f_->target_type(); -} - -template -template -_Tp* -function<_Rp(_A0)>::target() -{ - if (__f_ == 0) - return (_Tp*)0; - return (_Tp*)__f_->target(typeid(_Tp)); -} - -template -template -const _Tp* -function<_Rp(_A0)>::target() const -{ - if (__f_ == 0) - return (const _Tp*)0; - return (const _Tp*)__f_->target(typeid(_Tp)); -} - -#endif // _LIBCPP_NO_RTTI - -template -class _LIBCPP_TYPE_VIS_ONLY function<_Rp(_A0, _A1)> - : public binary_function<_A0, _A1, _Rp> -{ - typedef __function::__base<_Rp(_A0, _A1)> __base; - aligned_storage<3*sizeof(void*)>::type __buf_; - __base* __f_; - -public: - typedef _Rp result_type; - - // 20.7.16.2.1, construct/copy/destroy: - _LIBCPP_INLINE_VISIBILITY explicit function() : __f_(0) {} - _LIBCPP_INLINE_VISIBILITY function(nullptr_t) : __f_(0) {} - function(const function&); - template - function(_Fp, - typename enable_if::value>::type* = 0); - - template - _LIBCPP_INLINE_VISIBILITY - function(allocator_arg_t, const _Alloc&) : __f_(0) {} - template - _LIBCPP_INLINE_VISIBILITY - function(allocator_arg_t, const _Alloc&, nullptr_t) : __f_(0) {} - template - function(allocator_arg_t, const _Alloc&, const function&); - template - function(allocator_arg_t, const _Alloc& __a, _Fp __f, - typename enable_if::value>::type* = 0); - - function& operator=(const function&); - function& operator=(nullptr_t); - template - typename enable_if - < - !is_integral<_Fp>::value, - function& - >::type - operator=(_Fp); - - ~function(); - - // 20.7.16.2.2, function modifiers: - void swap(function&); - template - _LIBCPP_INLINE_VISIBILITY - void assign(_Fp __f, const _Alloc& __a) - {function(allocator_arg, __a, __f).swap(*this);} - - // 20.7.16.2.3, function capacity: - operator bool() const {return __f_;} - -private: - // deleted overloads close possible hole in the type system - template - bool operator==(const function<_R2(_B0, _B1)>&) const;// = delete; - template - bool operator!=(const function<_R2(_B0, _B1)>&) const;// = delete; -public: - // 20.7.16.2.4, function invocation: - _Rp operator()(_A0, _A1) const; - -#ifndef _LIBCPP_NO_RTTI - // 20.7.16.2.5, function target access: - const std::type_info& target_type() const; - template _Tp* target(); - template const _Tp* target() const; -#endif // _LIBCPP_NO_RTTI -}; - -template -function<_Rp(_A0, _A1)>::function(const function& __f) -{ - if (__f.__f_ == 0) - __f_ = 0; - else if (__f.__f_ == (const __base*)&__f.__buf_) - { - __f_ = (__base*)&__buf_; - __f.__f_->__clone(__f_); - } - else - __f_ = __f.__f_->__clone(); -} - -template -template -function<_Rp(_A0, _A1)>::function(allocator_arg_t, const _Alloc&, const function& __f) -{ - if (__f.__f_ == 0) - __f_ = 0; - else if (__f.__f_ == (const __base*)&__f.__buf_) - { - __f_ = (__base*)&__buf_; - __f.__f_->__clone(__f_); - } - else - __f_ = __f.__f_->__clone(); -} - -template -template -function<_Rp(_A0, _A1)>::function(_Fp __f, - typename enable_if::value>::type*) - : __f_(0) -{ - if (__function::__not_null(__f)) - { - typedef __function::__func<_Fp, allocator<_Fp>, _Rp(_A0, _A1)> _FF; - if (sizeof(_FF) <= sizeof(__buf_)) - { - __f_ = (__base*)&__buf_; - ::new (__f_) _FF(__f); - } - else - { - typedef allocator<_FF> _Ap; - _Ap __a; - typedef __allocator_destructor<_Ap> _Dp; - unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new (__hold.get()) _FF(__f, allocator<_Fp>(__a)); - __f_ = __hold.release(); - } - } -} - -template -template -function<_Rp(_A0, _A1)>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f, - typename enable_if::value>::type*) - : __f_(0) -{ - typedef allocator_traits<_Alloc> __alloc_traits; - if (__function::__not_null(__f)) - { - typedef __function::__func<_Fp, _Alloc, _Rp(_A0, _A1)> _FF; - if (sizeof(_FF) <= sizeof(__buf_)) - { - __f_ = (__base*)&__buf_; - ::new (__f_) _FF(__f, __a0); - } - else - { - typedef typename __rebind_alloc_helper<__alloc_traits, _FF>::type _Ap; - _Ap __a(__a0); - typedef __allocator_destructor<_Ap> _Dp; - unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new (__hold.get()) _FF(__f, _Alloc(__a)); - __f_ = __hold.release(); - } - } -} - -template -function<_Rp(_A0, _A1)>& -function<_Rp(_A0, _A1)>::operator=(const function& __f) -{ - function(__f).swap(*this); - return *this; -} - -template -function<_Rp(_A0, _A1)>& -function<_Rp(_A0, _A1)>::operator=(nullptr_t) -{ - if (__f_ == (__base*)&__buf_) - __f_->destroy(); - else if (__f_) - __f_->destroy_deallocate(); - __f_ = 0; - return *this; -} - -template -template -typename enable_if -< - !is_integral<_Fp>::value, - function<_Rp(_A0, _A1)>& ->::type -function<_Rp(_A0, _A1)>::operator=(_Fp __f) -{ - function(_VSTD::move(__f)).swap(*this); - return *this; -} - -template -function<_Rp(_A0, _A1)>::~function() -{ - if (__f_ == (__base*)&__buf_) - __f_->destroy(); - else if (__f_) - __f_->destroy_deallocate(); -} - -template -void -function<_Rp(_A0, _A1)>::swap(function& __f) -{ - if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_) - { - typename aligned_storage::type __tempbuf; - __base* __t = (__base*)&__tempbuf; - __f_->__clone(__t); - __f_->destroy(); - __f_ = 0; - __f.__f_->__clone((__base*)&__buf_); - __f.__f_->destroy(); - __f.__f_ = 0; - __f_ = (__base*)&__buf_; - __t->__clone((__base*)&__f.__buf_); - __t->destroy(); - __f.__f_ = (__base*)&__f.__buf_; - } - else if (__f_ == (__base*)&__buf_) - { - __f_->__clone((__base*)&__f.__buf_); - __f_->destroy(); - __f_ = __f.__f_; - __f.__f_ = (__base*)&__f.__buf_; - } - else if (__f.__f_ == (__base*)&__f.__buf_) - { - __f.__f_->__clone((__base*)&__buf_); - __f.__f_->destroy(); - __f.__f_ = __f_; - __f_ = (__base*)&__buf_; - } - else - _VSTD::swap(__f_, __f.__f_); -} - -template -_Rp -function<_Rp(_A0, _A1)>::operator()(_A0 __a0, _A1 __a1) const -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - if (__f_ == 0) - throw bad_function_call(); -#endif // _LIBCPP_NO_EXCEPTIONS - return (*__f_)(__a0, __a1); -} - -#ifndef _LIBCPP_NO_RTTI - -template -const std::type_info& -function<_Rp(_A0, _A1)>::target_type() const -{ - if (__f_ == 0) - return typeid(void); - return __f_->target_type(); -} - -template -template -_Tp* -function<_Rp(_A0, _A1)>::target() -{ - if (__f_ == 0) - return (_Tp*)0; - return (_Tp*)__f_->target(typeid(_Tp)); -} - -template -template -const _Tp* -function<_Rp(_A0, _A1)>::target() const -{ - if (__f_ == 0) - return (const _Tp*)0; - return (const _Tp*)__f_->target(typeid(_Tp)); -} - -#endif // _LIBCPP_NO_RTTI - -template -class _LIBCPP_TYPE_VIS_ONLY function<_Rp(_A0, _A1, _A2)> -{ - typedef __function::__base<_Rp(_A0, _A1, _A2)> __base; - aligned_storage<3*sizeof(void*)>::type __buf_; - __base* __f_; - -public: - typedef _Rp result_type; - - // 20.7.16.2.1, construct/copy/destroy: - _LIBCPP_INLINE_VISIBILITY explicit function() : __f_(0) {} - _LIBCPP_INLINE_VISIBILITY function(nullptr_t) : __f_(0) {} - function(const function&); - template - function(_Fp, - typename enable_if::value>::type* = 0); - - template - _LIBCPP_INLINE_VISIBILITY - function(allocator_arg_t, const _Alloc&) : __f_(0) {} - template - _LIBCPP_INLINE_VISIBILITY - function(allocator_arg_t, const _Alloc&, nullptr_t) : __f_(0) {} - template - function(allocator_arg_t, const _Alloc&, const function&); - template - function(allocator_arg_t, const _Alloc& __a, _Fp __f, - typename enable_if::value>::type* = 0); - - function& operator=(const function&); - function& operator=(nullptr_t); - template - typename enable_if - < - !is_integral<_Fp>::value, - function& - >::type - operator=(_Fp); - - ~function(); - - // 20.7.16.2.2, function modifiers: - void swap(function&); - template - _LIBCPP_INLINE_VISIBILITY - void assign(_Fp __f, const _Alloc& __a) - {function(allocator_arg, __a, __f).swap(*this);} - - // 20.7.16.2.3, function capacity: - _LIBCPP_INLINE_VISIBILITY operator bool() const {return __f_;} - -private: - // deleted overloads close possible hole in the type system - template - bool operator==(const function<_R2(_B0, _B1, _B2)>&) const;// = delete; - template - bool operator!=(const function<_R2(_B0, _B1, _B2)>&) const;// = delete; -public: - // 20.7.16.2.4, function invocation: - _Rp operator()(_A0, _A1, _A2) const; - -#ifndef _LIBCPP_NO_RTTI - // 20.7.16.2.5, function target access: - const std::type_info& target_type() const; - template _Tp* target(); - template const _Tp* target() const; -#endif // _LIBCPP_NO_RTTI -}; - -template -function<_Rp(_A0, _A1, _A2)>::function(const function& __f) -{ - if (__f.__f_ == 0) - __f_ = 0; - else if (__f.__f_ == (const __base*)&__f.__buf_) - { - __f_ = (__base*)&__buf_; - __f.__f_->__clone(__f_); - } - else - __f_ = __f.__f_->__clone(); -} - -template -template -function<_Rp(_A0, _A1, _A2)>::function(allocator_arg_t, const _Alloc&, - const function& __f) -{ - if (__f.__f_ == 0) - __f_ = 0; - else if (__f.__f_ == (const __base*)&__f.__buf_) - { - __f_ = (__base*)&__buf_; - __f.__f_->__clone(__f_); - } - else - __f_ = __f.__f_->__clone(); -} - -template -template -function<_Rp(_A0, _A1, _A2)>::function(_Fp __f, - typename enable_if::value>::type*) - : __f_(0) -{ - if (__function::__not_null(__f)) - { - typedef __function::__func<_Fp, allocator<_Fp>, _Rp(_A0, _A1, _A2)> _FF; - if (sizeof(_FF) <= sizeof(__buf_)) - { - __f_ = (__base*)&__buf_; - ::new (__f_) _FF(__f); - } - else - { - typedef allocator<_FF> _Ap; - _Ap __a; - typedef __allocator_destructor<_Ap> _Dp; - unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new (__hold.get()) _FF(__f, allocator<_Fp>(__a)); - __f_ = __hold.release(); - } - } -} - -template -template -function<_Rp(_A0, _A1, _A2)>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f, - typename enable_if::value>::type*) - : __f_(0) -{ - typedef allocator_traits<_Alloc> __alloc_traits; - if (__function::__not_null(__f)) - { - typedef __function::__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)> _FF; - if (sizeof(_FF) <= sizeof(__buf_)) - { - __f_ = (__base*)&__buf_; - ::new (__f_) _FF(__f, __a0); - } - else - { - typedef typename __rebind_alloc_helper<__alloc_traits, _FF>::type _Ap; - _Ap __a(__a0); - typedef __allocator_destructor<_Ap> _Dp; - unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new (__hold.get()) _FF(__f, _Alloc(__a)); - __f_ = __hold.release(); - } - } -} - -template -function<_Rp(_A0, _A1, _A2)>& -function<_Rp(_A0, _A1, _A2)>::operator=(const function& __f) -{ - function(__f).swap(*this); - return *this; -} - -template -function<_Rp(_A0, _A1, _A2)>& -function<_Rp(_A0, _A1, _A2)>::operator=(nullptr_t) -{ - if (__f_ == (__base*)&__buf_) - __f_->destroy(); - else if (__f_) - __f_->destroy_deallocate(); - __f_ = 0; - return *this; -} - -template -template -typename enable_if -< - !is_integral<_Fp>::value, - function<_Rp(_A0, _A1, _A2)>& ->::type -function<_Rp(_A0, _A1, _A2)>::operator=(_Fp __f) -{ - function(_VSTD::move(__f)).swap(*this); - return *this; -} - -template -function<_Rp(_A0, _A1, _A2)>::~function() -{ - if (__f_ == (__base*)&__buf_) - __f_->destroy(); - else if (__f_) - __f_->destroy_deallocate(); -} - -template -void -function<_Rp(_A0, _A1, _A2)>::swap(function& __f) -{ - if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_) - { - typename aligned_storage::type __tempbuf; - __base* __t = (__base*)&__tempbuf; - __f_->__clone(__t); - __f_->destroy(); - __f_ = 0; - __f.__f_->__clone((__base*)&__buf_); - __f.__f_->destroy(); - __f.__f_ = 0; - __f_ = (__base*)&__buf_; - __t->__clone((__base*)&__f.__buf_); - __t->destroy(); - __f.__f_ = (__base*)&__f.__buf_; - } - else if (__f_ == (__base*)&__buf_) - { - __f_->__clone((__base*)&__f.__buf_); - __f_->destroy(); - __f_ = __f.__f_; - __f.__f_ = (__base*)&__f.__buf_; - } - else if (__f.__f_ == (__base*)&__f.__buf_) - { - __f.__f_->__clone((__base*)&__buf_); - __f.__f_->destroy(); - __f.__f_ = __f_; - __f_ = (__base*)&__buf_; - } - else - _VSTD::swap(__f_, __f.__f_); -} - -template -_Rp -function<_Rp(_A0, _A1, _A2)>::operator()(_A0 __a0, _A1 __a1, _A2 __a2) const -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - if (__f_ == 0) - throw bad_function_call(); -#endif // _LIBCPP_NO_EXCEPTIONS - return (*__f_)(__a0, __a1, __a2); -} - -#ifndef _LIBCPP_NO_RTTI - -template -const std::type_info& -function<_Rp(_A0, _A1, _A2)>::target_type() const -{ - if (__f_ == 0) - return typeid(void); - return __f_->target_type(); -} - -template -template -_Tp* -function<_Rp(_A0, _A1, _A2)>::target() -{ - if (__f_ == 0) - return (_Tp*)0; - return (_Tp*)__f_->target(typeid(_Tp)); -} - -template -template -const _Tp* -function<_Rp(_A0, _A1, _A2)>::target() const -{ - if (__f_ == 0) - return (const _Tp*)0; - return (const _Tp*)__f_->target(typeid(_Tp)); -} - -#endif // _LIBCPP_NO_RTTI - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator==(const function<_Fp>& __f, nullptr_t) {return !__f;} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator==(nullptr_t, const function<_Fp>& __f) {return !__f;} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(const function<_Fp>& __f, nullptr_t) {return (bool)__f;} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(nullptr_t, const function<_Fp>& __f) {return (bool)__f;} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(function<_Fp>& __x, function<_Fp>& __y) -{return __x.swap(__y);} - -#endif // _LIBCPP_FUNCTIONAL_03 diff --git a/headers/libs/libc++/__functional_base b/headers/libs/libc++/__functional_base deleted file mode 100644 index ef9cc03235..0000000000 --- a/headers/libs/libc++/__functional_base +++ /dev/null @@ -1,793 +0,0 @@ -// -*- C++ -*- -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_FUNCTIONAL_BASE -#define _LIBCPP_FUNCTIONAL_BASE - -#include <__config> -#include -#include -#include -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -template -struct _LIBCPP_TYPE_VIS_ONLY unary_function -{ - typedef _Arg argument_type; - typedef _Result result_type; -}; - -template -struct _LIBCPP_TYPE_VIS_ONLY binary_function -{ - typedef _Arg1 first_argument_type; - typedef _Arg2 second_argument_type; - typedef _Result result_type; -}; - -template struct _LIBCPP_TYPE_VIS_ONLY hash; - -template -struct __has_result_type -{ -private: - struct __two {char __lx; char __lxx;}; - template static __two __test(...); - template static char __test(typename _Up::result_type* = 0); -public: - static const bool value = sizeof(__test<_Tp>(0)) == 1; -}; - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY less : binary_function<_Tp, _Tp, bool> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator()(const _Tp& __x, const _Tp& __y) const - {return __x < __y;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY less -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_T1&& __t, _T2&& __u) const - _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) < _VSTD::forward<_T2>(__u))) - -> decltype (_VSTD::forward<_T1>(__t) < _VSTD::forward<_T2>(__u)) - { return _VSTD::forward<_T1>(__t) < _VSTD::forward<_T2>(__u); } - typedef void is_transparent; -}; -#endif - -// addressof - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp* -addressof(_Tp& __x) _NOEXCEPT -{ - return (_Tp*)&reinterpret_cast(__x); -} - -#if defined(_LIBCPP_HAS_OBJC_ARC) && !defined(_LIBCPP_PREDEFINED_OBJC_ARC_ADDRESSOF) -// Objective-C++ Automatic Reference Counting uses qualified pointers -// that require special addressof() signatures. When -// _LIBCPP_PREDEFINED_OBJC_ARC_ADDRESSOF is defined, the compiler -// itself is providing these definitions. Otherwise, we provide them. -template -inline _LIBCPP_INLINE_VISIBILITY -__strong _Tp* -addressof(__strong _Tp& __x) _NOEXCEPT -{ - return &__x; -} - -#ifdef _LIBCPP_HAS_OBJC_ARC_WEAK -template -inline _LIBCPP_INLINE_VISIBILITY -__weak _Tp* -addressof(__weak _Tp& __x) _NOEXCEPT -{ - return &__x; -} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -__autoreleasing _Tp* -addressof(__autoreleasing _Tp& __x) _NOEXCEPT -{ - return &__x; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -__unsafe_unretained _Tp* -addressof(__unsafe_unretained _Tp& __x) _NOEXCEPT -{ - return &__x; -} -#endif - - -// __weak_result_type - -template -struct __derives_from_unary_function -{ -private: - struct __two {char __lx; char __lxx;}; - static __two __test(...); - template - static unary_function<_Ap, _Rp> - __test(const volatile unary_function<_Ap, _Rp>*); -public: - static const bool value = !is_same::value; - typedef decltype(__test((_Tp*)0)) type; -}; - -template -struct __derives_from_binary_function -{ -private: - struct __two {char __lx; char __lxx;}; - static __two __test(...); - template - static binary_function<_A1, _A2, _Rp> - __test(const volatile binary_function<_A1, _A2, _Rp>*); -public: - static const bool value = !is_same::value; - typedef decltype(__test((_Tp*)0)) type; -}; - -template ::value> -struct __maybe_derive_from_unary_function // bool is true - : public __derives_from_unary_function<_Tp>::type -{ -}; - -template -struct __maybe_derive_from_unary_function<_Tp, false> -{ -}; - -template ::value> -struct __maybe_derive_from_binary_function // bool is true - : public __derives_from_binary_function<_Tp>::type -{ -}; - -template -struct __maybe_derive_from_binary_function<_Tp, false> -{ -}; - -template ::value> -struct __weak_result_type_imp // bool is true - : public __maybe_derive_from_unary_function<_Tp>, - public __maybe_derive_from_binary_function<_Tp> -{ - typedef typename _Tp::result_type result_type; -}; - -template -struct __weak_result_type_imp<_Tp, false> - : public __maybe_derive_from_unary_function<_Tp>, - public __maybe_derive_from_binary_function<_Tp> -{ -}; - -template -struct __weak_result_type - : public __weak_result_type_imp<_Tp> -{ -}; - -// 0 argument case - -template -struct __weak_result_type<_Rp ()> -{ - typedef _Rp result_type; -}; - -template -struct __weak_result_type<_Rp (&)()> -{ - typedef _Rp result_type; -}; - -template -struct __weak_result_type<_Rp (*)()> -{ - typedef _Rp result_type; -}; - -// 1 argument case - -template -struct __weak_result_type<_Rp (_A1)> - : public unary_function<_A1, _Rp> -{ -}; - -template -struct __weak_result_type<_Rp (&)(_A1)> - : public unary_function<_A1, _Rp> -{ -}; - -template -struct __weak_result_type<_Rp (*)(_A1)> - : public unary_function<_A1, _Rp> -{ -}; - -template -struct __weak_result_type<_Rp (_Cp::*)()> - : public unary_function<_Cp*, _Rp> -{ -}; - -template -struct __weak_result_type<_Rp (_Cp::*)() const> - : public unary_function -{ -}; - -template -struct __weak_result_type<_Rp (_Cp::*)() volatile> - : public unary_function -{ -}; - -template -struct __weak_result_type<_Rp (_Cp::*)() const volatile> - : public unary_function -{ -}; - -// 2 argument case - -template -struct __weak_result_type<_Rp (_A1, _A2)> - : public binary_function<_A1, _A2, _Rp> -{ -}; - -template -struct __weak_result_type<_Rp (*)(_A1, _A2)> - : public binary_function<_A1, _A2, _Rp> -{ -}; - -template -struct __weak_result_type<_Rp (&)(_A1, _A2)> - : public binary_function<_A1, _A2, _Rp> -{ -}; - -template -struct __weak_result_type<_Rp (_Cp::*)(_A1)> - : public binary_function<_Cp*, _A1, _Rp> -{ -}; - -template -struct __weak_result_type<_Rp (_Cp::*)(_A1) const> - : public binary_function -{ -}; - -template -struct __weak_result_type<_Rp (_Cp::*)(_A1) volatile> - : public binary_function -{ -}; - -template -struct __weak_result_type<_Rp (_Cp::*)(_A1) const volatile> - : public binary_function -{ -}; - - -#ifndef _LIBCPP_HAS_NO_VARIADICS -// 3 or more arguments - -template -struct __weak_result_type<_Rp (_A1, _A2, _A3, _A4...)> -{ - typedef _Rp result_type; -}; - -template -struct __weak_result_type<_Rp (&)(_A1, _A2, _A3, _A4...)> -{ - typedef _Rp result_type; -}; - -template -struct __weak_result_type<_Rp (*)(_A1, _A2, _A3, _A4...)> -{ - typedef _Rp result_type; -}; - -template -struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...)> -{ - typedef _Rp result_type; -}; - -template -struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) const> -{ - typedef _Rp result_type; -}; - -template -struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) volatile> -{ - typedef _Rp result_type; -}; - -template -struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) const volatile> -{ - typedef _Rp result_type; -}; - -#endif // _LIBCPP_HAS_NO_VARIADICS - -// __invoke - -#ifndef _LIBCPP_HAS_NO_VARIADICS - -// bullets 1 and 2 - -template -inline _LIBCPP_INLINE_VISIBILITY -auto -__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) - -> decltype((_VSTD::forward<_A0>(__a0).*__f)(_VSTD::forward<_Args>(__args)...)) -{ - return (_VSTD::forward<_A0>(__a0).*__f)(_VSTD::forward<_Args>(__args)...); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -auto -__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) - -> decltype(((*_VSTD::forward<_A0>(__a0)).*__f)(_VSTD::forward<_Args>(__args)...)) -{ - return ((*_VSTD::forward<_A0>(__a0)).*__f)(_VSTD::forward<_Args>(__args)...); -} - -// bullets 3 and 4 - -template -inline _LIBCPP_INLINE_VISIBILITY -auto -__invoke(_Fp&& __f, _A0&& __a0) - -> decltype(_VSTD::forward<_A0>(__a0).*__f) -{ - return _VSTD::forward<_A0>(__a0).*__f; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -auto -__invoke(_Fp&& __f, _A0&& __a0) - -> decltype((*_VSTD::forward<_A0>(__a0)).*__f) -{ - return (*_VSTD::forward<_A0>(__a0)).*__f; -} - -// bullet 5 - -template -inline _LIBCPP_INLINE_VISIBILITY -auto -__invoke(_Fp&& __f, _Args&& ...__args) - -> decltype(_VSTD::forward<_Fp>(__f)(_VSTD::forward<_Args>(__args)...)) -{ - return _VSTD::forward<_Fp>(__f)(_VSTD::forward<_Args>(__args)...); -} -template -struct __invoke_return -{ - typedef decltype(__invoke(_VSTD::declval<_Tp>(), _VSTD::declval<_Args>()...)) type; -}; - -#else // _LIBCPP_HAS_NO_VARIADICS - -#include <__functional_base_03> - -#endif // _LIBCPP_HAS_NO_VARIADICS - - -template -struct __invoke_void_return_wrapper -{ -#ifndef _LIBCPP_HAS_NO_VARIADICS - template - static _Ret __call(_Args&&... __args) { - return __invoke(_VSTD::forward<_Args>(__args)...); - } -#else - template - static _Ret __call(_Fn __f) { - return __invoke(__f); - } - - template - static _Ret __call(_Fn __f, _A0& __a0) { - return __invoke(__f, __a0); - } - - template - static _Ret __call(_Fn __f, _A0& __a0, _A1& __a1) { - return __invoke(__f, __a0, __a1); - } - - template - static _Ret __call(_Fn __f, _A0& __a0, _A1& __a1, _A2& __a2){ - return __invoke(__f, __a0, __a1, __a2); - } -#endif -}; - -template <> -struct __invoke_void_return_wrapper -{ -#ifndef _LIBCPP_HAS_NO_VARIADICS - template - static void __call(_Args&&... __args) { - __invoke(_VSTD::forward<_Args>(__args)...); - } -#else - template - static void __call(_Fn __f) { - __invoke(__f); - } - - template - static void __call(_Fn __f, _A0& __a0) { - __invoke(__f, __a0); - } - - template - static void __call(_Fn __f, _A0& __a0, _A1& __a1) { - __invoke(__f, __a0, __a1); - } - - template - static void __call(_Fn __f, _A0& __a0, _A1& __a1, _A2& __a2) { - __invoke(__f, __a0, __a1, __a2); - } -#endif -}; - -template -class _LIBCPP_TYPE_VIS_ONLY reference_wrapper - : public __weak_result_type<_Tp> -{ -public: - // types - typedef _Tp type; -private: - type* __f_; - -public: - // construct/copy/destroy - _LIBCPP_INLINE_VISIBILITY reference_wrapper(type& __f) _NOEXCEPT - : __f_(_VSTD::addressof(__f)) {} -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - private: reference_wrapper(type&&); public: // = delete; // do not bind to temps -#endif - - // access - _LIBCPP_INLINE_VISIBILITY operator type& () const _NOEXCEPT {return *__f_;} - _LIBCPP_INLINE_VISIBILITY type& get() const _NOEXCEPT {return *__f_;} - -#ifndef _LIBCPP_HAS_NO_VARIADICS - // invoke - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_of::type - operator() (_ArgTypes&&... __args) const { - return __invoke(get(), _VSTD::forward<_ArgTypes>(__args)...); - } -#else - - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return::type - operator() () const { - return __invoke(get()); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return0::type - operator() (_A0& __a0) const { - return __invoke(get(), __a0); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return0::type - operator() (_A0 const& __a0) const { - return __invoke(get(), __a0); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return1::type - operator() (_A0& __a0, _A1& __a1) const { - return __invoke(get(), __a0, __a1); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return1::type - operator() (_A0 const& __a0, _A1& __a1) const { - return __invoke(get(), __a0, __a1); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return1::type - operator() (_A0& __a0, _A1 const& __a1) const { - return __invoke(get(), __a0, __a1); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return1::type - operator() (_A0 const& __a0, _A1 const& __a1) const { - return __invoke(get(), __a0, __a1); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return2::type - operator() (_A0& __a0, _A1& __a1, _A2& __a2) const { - return __invoke(get(), __a0, __a1, __a2); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return2::type - operator() (_A0 const& __a0, _A1& __a1, _A2& __a2) const { - return __invoke(get(), __a0, __a1, __a2); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return2::type - operator() (_A0& __a0, _A1 const& __a1, _A2& __a2) const { - return __invoke(get(), __a0, __a1, __a2); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return2::type - operator() (_A0& __a0, _A1& __a1, _A2 const& __a2) const { - return __invoke(get(), __a0, __a1, __a2); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return2::type - operator() (_A0 const& __a0, _A1 const& __a1, _A2& __a2) const { - return __invoke(get(), __a0, __a1, __a2); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return2::type - operator() (_A0 const& __a0, _A1& __a1, _A2 const& __a2) const { - return __invoke(get(), __a0, __a1, __a2); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return2::type - operator() (_A0& __a0, _A1 const& __a1, _A2 const& __a2) const { - return __invoke(get(), __a0, __a1, __a2); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return2::type - operator() (_A0 const& __a0, _A1 const& __a1, _A2 const& __a2) const { - return __invoke(get(), __a0, __a1, __a2); - } -#endif // _LIBCPP_HAS_NO_VARIADICS -}; - -template struct __is_reference_wrapper_impl : public false_type {}; -template struct __is_reference_wrapper_impl > : public true_type {}; -template struct __is_reference_wrapper - : public __is_reference_wrapper_impl::type> {}; - -template -inline _LIBCPP_INLINE_VISIBILITY -reference_wrapper<_Tp> -ref(_Tp& __t) _NOEXCEPT -{ - return reference_wrapper<_Tp>(__t); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -reference_wrapper<_Tp> -ref(reference_wrapper<_Tp> __t) _NOEXCEPT -{ - return ref(__t.get()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -reference_wrapper -cref(const _Tp& __t) _NOEXCEPT -{ - return reference_wrapper(__t); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -reference_wrapper -cref(reference_wrapper<_Tp> __t) _NOEXCEPT -{ - return cref(__t.get()); -} - -#ifndef _LIBCPP_HAS_NO_VARIADICS -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -#ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS - -template void ref(const _Tp&&) = delete; -template void cref(const _Tp&&) = delete; - -#else // _LIBCPP_HAS_NO_DELETED_FUNCTIONS - -template void ref(const _Tp&&);// = delete; -template void cref(const _Tp&&);// = delete; - -#endif // _LIBCPP_HAS_NO_DELETED_FUNCTIONS - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -#endif // _LIBCPP_HAS_NO_VARIADICS - -#if _LIBCPP_STD_VER > 11 -template -struct __is_transparent -{ -private: - struct __two {char __lx; char __lxx;}; - template static __two __test(...); - template static char __test(typename _Up::is_transparent* = 0); -public: - static const bool value = sizeof(__test<_Tp1>(0)) == 1; -}; -#endif - -// allocator_arg_t - -struct _LIBCPP_TYPE_VIS_ONLY allocator_arg_t { }; - -#if defined(_LIBCPP_HAS_NO_CONSTEXPR) || defined(_LIBCPP_BUILDING_MEMORY) -extern const allocator_arg_t allocator_arg; -#else -constexpr allocator_arg_t allocator_arg = allocator_arg_t(); -#endif - -// uses_allocator - -template -struct __has_allocator_type -{ -private: - struct __two {char __lx; char __lxx;}; - template static __two __test(...); - template static char __test(typename _Up::allocator_type* = 0); -public: - static const bool value = sizeof(__test<_Tp>(0)) == 1; -}; - -template ::value> -struct __uses_allocator - : public integral_constant::value> -{ -}; - -template -struct __uses_allocator<_Tp, _Alloc, false> - : public false_type -{ -}; - -template -struct _LIBCPP_TYPE_VIS_ONLY uses_allocator - : public __uses_allocator<_Tp, _Alloc> -{ -}; - -#ifndef _LIBCPP_HAS_NO_VARIADICS - -// allocator construction - -template -struct __uses_alloc_ctor_imp -{ - static const bool __ua = uses_allocator<_Tp, _Alloc>::value; - static const bool __ic = - is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value; - static const int value = __ua ? 2 - __ic : 0; -}; - -template -struct __uses_alloc_ctor - : integral_constant::value> - {}; - -template -inline _LIBCPP_INLINE_VISIBILITY -void __user_alloc_construct_impl (integral_constant, _Tp *__storage, const _Allocator &, _Args &&... __args ) -{ - new (__storage) _Tp (_VSTD::forward<_Args>(__args)...); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void __user_alloc_construct_impl (integral_constant, _Tp *__storage, const _Allocator &__a, _Args &&... __args ) -{ - new (__storage) _Tp (allocator_arg, __a, _VSTD::forward<_Args>(__args)...); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void __user_alloc_construct_impl (integral_constant, _Tp *__storage, const _Allocator &__a, _Args &&... __args ) -{ - new (__storage) _Tp (_VSTD::forward<_Args>(__args)..., __a); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void __user_alloc_construct (_Tp *__storage, const _Allocator &__a, _Args &&... __args) -{ - __user_alloc_construct_impl( - __uses_alloc_ctor<_Tp, _Allocator>(), - __storage, __a, _VSTD::forward<_Args>(__args)... - ); -} -#endif // _LIBCPP_HAS_NO_VARIADICS - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_FUNCTIONAL_BASE diff --git a/headers/libs/libc++/__functional_base_03 b/headers/libs/libc++/__functional_base_03 deleted file mode 100644 index 8407dcfa39..0000000000 --- a/headers/libs/libc++/__functional_base_03 +++ /dev/null @@ -1,224 +0,0 @@ -// -*- C++ -*- -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_FUNCTIONAL_BASE_03 -#define _LIBCPP_FUNCTIONAL_BASE_03 - -// manual variadic expansion for - -// __invoke - -template -struct __enable_invoke_imp; - -template -struct __enable_invoke_imp<_Ret, _T1, true, true> { - typedef _Ret _Bullet1; - typedef _Bullet1 type; -}; - -template -struct __enable_invoke_imp<_Ret, _T1, true, false> { - typedef _Ret _Bullet2; - typedef _Bullet2 type; -}; - -template -struct __enable_invoke_imp<_Ret, _T1, false, true> { - typedef typename add_lvalue_reference< - typename __apply_cv<_T1, _Ret>::type - >::type _Bullet3; - typedef _Bullet3 type; -}; - -template -struct __enable_invoke_imp<_Ret, _T1, false, false> { - typedef typename add_lvalue_reference< - typename __apply_cv()), _Ret>::type - >::type _Bullet4; - typedef _Bullet4 type; -}; - -template -struct __enable_invoke_imp<_Ret, _T1*, false, false> { - typedef typename add_lvalue_reference< - typename __apply_cv<_T1, _Ret>::type - >::type _Bullet4; - typedef _Bullet4 type; -}; - -template , - class _Ret = typename _Traits::_ReturnType, - class _Class = typename _Traits::_ClassType> -struct __enable_invoke : __enable_invoke_imp< - _Ret, _T1, - is_member_function_pointer<_Fn>::value, - is_base_of<_Class, typename remove_reference<_T1>::type>::value> -{ -}; - -__nat __invoke(__any, ...); - -// first bullet - -template -inline _LIBCPP_INLINE_VISIBILITY -typename __enable_invoke<_Fn, _T1>::_Bullet1 -__invoke(_Fn __f, _T1& __t1) { - return (__t1.*__f)(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename __enable_invoke<_Fn, _T1>::_Bullet1 -__invoke(_Fn __f, _T1& __t1, _A0& __a0) { - return (__t1.*__f)(__a0); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename __enable_invoke<_Fn, _T1>::_Bullet1 -__invoke(_Fn __f, _T1& __t1, _A0& __a0, _A1& __a1) { - return (__t1.*__f)(__a0, __a1); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename __enable_invoke<_Fn, _T1>::_Bullet1 -__invoke(_Fn __f, _T1& __t1, _A0& __a0, _A1& __a1, _A2& __a2) { - return (__t1.*__f)(__a0, __a1, __a2); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename __enable_invoke<_Fn, _T1>::_Bullet2 -__invoke(_Fn __f, _T1& __t1) { - return ((*__t1).*__f)(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename __enable_invoke<_Fn, _T1>::_Bullet2 -__invoke(_Fn __f, _T1& __t1, _A0& __a0) { - return ((*__t1).*__f)(__a0); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename __enable_invoke<_Fn, _T1>::_Bullet2 -__invoke(_Fn __f, _T1& __t1, _A0& __a0, _A1& __a1) { - return ((*__t1).*__f)(__a0, __a1); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename __enable_invoke<_Fn, _T1>::_Bullet2 -__invoke(_Fn __f, _T1& __t1, _A0& __a0, _A1& __a1, _A2& __a2) { - return ((*__t1).*__f)(__a0, __a1, __a2); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename __enable_invoke<_Fn, _T1>::_Bullet3 -__invoke(_Fn __f, _T1& __t1) { - return __t1.*__f; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename __enable_invoke<_Fn, _T1>::_Bullet4 -__invoke(_Fn __f, _T1& __t1) { - return (*__t1).*__f; -} - -// fifth bullet - -template -inline _LIBCPP_INLINE_VISIBILITY -decltype(_VSTD::declval<_Fp&>()()) -__invoke(_Fp& __f) -{ - return __f(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -decltype(_VSTD::declval<_Fp&>()(_VSTD::declval<_A0&>())) -__invoke(_Fp& __f, _A0& __a0) -{ - return __f(__a0); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -decltype(_VSTD::declval<_Fp&>()(_VSTD::declval<_A0&>(), _VSTD::declval<_A1&>())) -__invoke(_Fp& __f, _A0& __a0, _A1& __a1) -{ - return __f(__a0, __a1); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -decltype(_VSTD::declval<_Fp&>()(_VSTD::declval<_A0&>(), _VSTD::declval<_A1&>(), _VSTD::declval<_A2&>())) -__invoke(_Fp& __f, _A0& __a0, _A1& __a1, _A2& __a2) -{ - return __f(__a0, __a1, __a2); -} - -template >::value> -struct __invoke_return -{ - typedef typename __weak_result_type<_Fp>::result_type type; -}; - -template -struct __invoke_return<_Fp, false> -{ - typedef decltype(__invoke(_VSTD::declval<_Fp&>())) type; -}; - -template -struct __invoke_return0 -{ - typedef decltype(__invoke(_VSTD::declval<_Tp&>(), _VSTD::declval<_A0&>())) type; -}; - -template -struct __invoke_return0<_Rp _Tp::*, _A0> -{ - typedef typename __enable_invoke<_Rp _Tp::*, _A0>::type type; -}; - -template -struct __invoke_return1 -{ - typedef decltype(__invoke(_VSTD::declval<_Tp&>(), _VSTD::declval<_A0&>(), - _VSTD::declval<_A1&>())) type; -}; - -template -struct __invoke_return1<_Rp _Class::*, _A0, _A1> { - typedef typename __enable_invoke<_Rp _Class::*, _A0>::type type; -}; - -template -struct __invoke_return2 -{ - typedef decltype(__invoke(_VSTD::declval<_Tp&>(), _VSTD::declval<_A0&>(), - _VSTD::declval<_A1&>(), - _VSTD::declval<_A2&>())) type; -}; - -template -struct __invoke_return2<_Ret _Class::*, _A0, _A1, _A2> { - typedef typename __enable_invoke<_Ret _Class::*, _A0>::type type; -}; -#endif // _LIBCPP_FUNCTIONAL_BASE_03 diff --git a/headers/libs/libc++/__hash_table b/headers/libs/libc++/__hash_table deleted file mode 100644 index 6ea388bf30..0000000000 --- a/headers/libs/libc++/__hash_table +++ /dev/null @@ -1,2461 +0,0 @@ -// -*- C++ -*- -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP__HASH_TABLE -#define _LIBCPP__HASH_TABLE - -#include <__config> -#include -#include -#include -#include -#include - -#include <__undef_min_max> -#include <__undef___deallocate> - -#include <__debug> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -_LIBCPP_FUNC_VIS -size_t __next_prime(size_t __n); - -template -struct __hash_node_base -{ - typedef __hash_node_base __first_node; - - _NodePtr __next_; - - _LIBCPP_INLINE_VISIBILITY __hash_node_base() _NOEXCEPT : __next_(nullptr) {} -}; - -template -struct __hash_node - : public __hash_node_base - < - typename pointer_traits<_VoidPtr>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind<__hash_node<_Tp, _VoidPtr> > -#else - rebind<__hash_node<_Tp, _VoidPtr> >::other -#endif - > -{ - typedef _Tp value_type; - - size_t __hash_; - value_type __value_; -}; - -inline _LIBCPP_INLINE_VISIBILITY -bool -__is_hash_power2(size_t __bc) -{ - return __bc > 2 && !(__bc & (__bc - 1)); -} - -inline _LIBCPP_INLINE_VISIBILITY -size_t -__constrain_hash(size_t __h, size_t __bc) -{ - return !(__bc & (__bc - 1)) ? __h & (__bc - 1) : __h % __bc; -} - -inline _LIBCPP_INLINE_VISIBILITY -size_t -__next_hash_pow2(size_t __n) -{ - return size_t(1) << (std::numeric_limits::digits - __clz(__n-1)); -} - -template class __hash_table; -template class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator; -template class _LIBCPP_TYPE_VIS_ONLY __hash_map_iterator; -template class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator; - -template -class _LIBCPP_TYPE_VIS_ONLY __hash_iterator -{ - typedef _NodePtr __node_pointer; - - __node_pointer __node_; - -public: - typedef forward_iterator_tag iterator_category; - typedef typename pointer_traits<__node_pointer>::element_type::value_type value_type; - typedef typename pointer_traits<__node_pointer>::difference_type difference_type; - typedef value_type& reference; - typedef typename pointer_traits<__node_pointer>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind -#else - rebind::other -#endif - pointer; - - _LIBCPP_INLINE_VISIBILITY __hash_iterator() _NOEXCEPT -#if _LIBCPP_STD_VER > 11 - : __node_(nullptr) -#endif - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_i(this); -#endif - } - -#if _LIBCPP_DEBUG_LEVEL >= 2 - - _LIBCPP_INLINE_VISIBILITY - __hash_iterator(const __hash_iterator& __i) - : __node_(__i.__node_) - { - __get_db()->__iterator_copy(this, &__i); - } - - _LIBCPP_INLINE_VISIBILITY - ~__hash_iterator() - { - __get_db()->__erase_i(this); - } - - _LIBCPP_INLINE_VISIBILITY - __hash_iterator& operator=(const __hash_iterator& __i) - { - if (this != &__i) - { - __get_db()->__iterator_copy(this, &__i); - __node_ = __i.__node_; - } - return *this; - } - -#endif // _LIBCPP_DEBUG_LEVEL >= 2 - - _LIBCPP_INLINE_VISIBILITY - reference operator*() const - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to dereference a non-dereferenceable unordered container iterator"); -#endif - return __node_->__value_; - } - _LIBCPP_INLINE_VISIBILITY - pointer operator->() const - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to dereference a non-dereferenceable unordered container iterator"); -#endif - return pointer_traits::pointer_to(__node_->__value_); - } - - _LIBCPP_INLINE_VISIBILITY - __hash_iterator& operator++() - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to increment non-incrementable unordered container iterator"); -#endif - __node_ = __node_->__next_; - return *this; - } - - _LIBCPP_INLINE_VISIBILITY - __hash_iterator operator++(int) - { - __hash_iterator __t(*this); - ++(*this); - return __t; - } - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(const __hash_iterator& __x, const __hash_iterator& __y) - { - return __x.__node_ == __y.__node_; - } - friend _LIBCPP_INLINE_VISIBILITY - bool operator!=(const __hash_iterator& __x, const __hash_iterator& __y) - {return !(__x == __y);} - -private: -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_INLINE_VISIBILITY - __hash_iterator(__node_pointer __node, const void* __c) _NOEXCEPT - : __node_(__node) - { - __get_db()->__insert_ic(this, __c); - } -#else - _LIBCPP_INLINE_VISIBILITY - __hash_iterator(__node_pointer __node) _NOEXCEPT - : __node_(__node) - {} -#endif - - template friend class __hash_table; - template friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator; - template friend class _LIBCPP_TYPE_VIS_ONLY __hash_map_iterator; - template friend class _LIBCPP_TYPE_VIS_ONLY unordered_map; - template friend class _LIBCPP_TYPE_VIS_ONLY unordered_multimap; -}; - -template -class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator -{ - typedef _ConstNodePtr __node_pointer; - - __node_pointer __node_; - - typedef typename remove_const< - typename pointer_traits<__node_pointer>::element_type - >::type __node; - -public: - typedef forward_iterator_tag iterator_category; - typedef typename __node::value_type value_type; - typedef typename pointer_traits<__node_pointer>::difference_type difference_type; - typedef const value_type& reference; - typedef typename pointer_traits<__node_pointer>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind -#else - rebind::other -#endif - pointer; - typedef typename pointer_traits<__node_pointer>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind<__node> -#else - rebind<__node>::other -#endif - __non_const_node_pointer; - typedef __hash_iterator<__non_const_node_pointer> __non_const_iterator; - - _LIBCPP_INLINE_VISIBILITY __hash_const_iterator() _NOEXCEPT -#if _LIBCPP_STD_VER > 11 - : __node_(nullptr) -#endif - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_i(this); -#endif - } - _LIBCPP_INLINE_VISIBILITY - __hash_const_iterator(const __non_const_iterator& __x) _NOEXCEPT - : __node_(__x.__node_) - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__iterator_copy(this, &__x); -#endif - } - -#if _LIBCPP_DEBUG_LEVEL >= 2 - - _LIBCPP_INLINE_VISIBILITY - __hash_const_iterator(const __hash_const_iterator& __i) - : __node_(__i.__node_) - { - __get_db()->__iterator_copy(this, &__i); - } - - _LIBCPP_INLINE_VISIBILITY - ~__hash_const_iterator() - { - __get_db()->__erase_i(this); - } - - _LIBCPP_INLINE_VISIBILITY - __hash_const_iterator& operator=(const __hash_const_iterator& __i) - { - if (this != &__i) - { - __get_db()->__iterator_copy(this, &__i); - __node_ = __i.__node_; - } - return *this; - } - -#endif // _LIBCPP_DEBUG_LEVEL >= 2 - - _LIBCPP_INLINE_VISIBILITY - reference operator*() const - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to dereference a non-dereferenceable unordered container const_iterator"); -#endif - return __node_->__value_; - } - _LIBCPP_INLINE_VISIBILITY - pointer operator->() const - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to dereference a non-dereferenceable unordered container const_iterator"); -#endif - return pointer_traits::pointer_to(__node_->__value_); - } - - _LIBCPP_INLINE_VISIBILITY - __hash_const_iterator& operator++() - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to increment non-incrementable unordered container const_iterator"); -#endif - __node_ = __node_->__next_; - return *this; - } - - _LIBCPP_INLINE_VISIBILITY - __hash_const_iterator operator++(int) - { - __hash_const_iterator __t(*this); - ++(*this); - return __t; - } - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(const __hash_const_iterator& __x, const __hash_const_iterator& __y) - { - return __x.__node_ == __y.__node_; - } - friend _LIBCPP_INLINE_VISIBILITY - bool operator!=(const __hash_const_iterator& __x, const __hash_const_iterator& __y) - {return !(__x == __y);} - -private: -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_INLINE_VISIBILITY - __hash_const_iterator(__node_pointer __node, const void* __c) _NOEXCEPT - : __node_(__node) - { - __get_db()->__insert_ic(this, __c); - } -#else - _LIBCPP_INLINE_VISIBILITY - __hash_const_iterator(__node_pointer __node) _NOEXCEPT - : __node_(__node) - {} -#endif - - template friend class __hash_table; - template friend class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator; - template friend class _LIBCPP_TYPE_VIS_ONLY unordered_map; - template friend class _LIBCPP_TYPE_VIS_ONLY unordered_multimap; -}; - -template class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator; - -template -class _LIBCPP_TYPE_VIS_ONLY __hash_local_iterator -{ - typedef _NodePtr __node_pointer; - - __node_pointer __node_; - size_t __bucket_; - size_t __bucket_count_; - - typedef pointer_traits<__node_pointer> __pointer_traits; -public: - typedef forward_iterator_tag iterator_category; - typedef typename __pointer_traits::element_type::value_type value_type; - typedef typename __pointer_traits::difference_type difference_type; - typedef value_type& reference; - typedef typename __pointer_traits::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind -#else - rebind::other -#endif - pointer; - - _LIBCPP_INLINE_VISIBILITY __hash_local_iterator() _NOEXCEPT - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_i(this); -#endif - } - -#if _LIBCPP_DEBUG_LEVEL >= 2 - - _LIBCPP_INLINE_VISIBILITY - __hash_local_iterator(const __hash_local_iterator& __i) - : __node_(__i.__node_), - __bucket_(__i.__bucket_), - __bucket_count_(__i.__bucket_count_) - { - __get_db()->__iterator_copy(this, &__i); - } - - _LIBCPP_INLINE_VISIBILITY - ~__hash_local_iterator() - { - __get_db()->__erase_i(this); - } - - _LIBCPP_INLINE_VISIBILITY - __hash_local_iterator& operator=(const __hash_local_iterator& __i) - { - if (this != &__i) - { - __get_db()->__iterator_copy(this, &__i); - __node_ = __i.__node_; - __bucket_ = __i.__bucket_; - __bucket_count_ = __i.__bucket_count_; - } - return *this; - } - -#endif // _LIBCPP_DEBUG_LEVEL >= 2 - - _LIBCPP_INLINE_VISIBILITY - reference operator*() const - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to dereference a non-dereferenceable unordered container local_iterator"); -#endif - return __node_->__value_; - } - _LIBCPP_INLINE_VISIBILITY - pointer operator->() const - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to dereference a non-dereferenceable unordered container local_iterator"); -#endif - return pointer_traits::pointer_to(__node_->__value_); - } - - _LIBCPP_INLINE_VISIBILITY - __hash_local_iterator& operator++() - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to increment non-incrementable unordered container local_iterator"); -#endif - __node_ = __node_->__next_; - if (__node_ != nullptr && __constrain_hash(__node_->__hash_, __bucket_count_) != __bucket_) - __node_ = nullptr; - return *this; - } - - _LIBCPP_INLINE_VISIBILITY - __hash_local_iterator operator++(int) - { - __hash_local_iterator __t(*this); - ++(*this); - return __t; - } - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(const __hash_local_iterator& __x, const __hash_local_iterator& __y) - { - return __x.__node_ == __y.__node_; - } - friend _LIBCPP_INLINE_VISIBILITY - bool operator!=(const __hash_local_iterator& __x, const __hash_local_iterator& __y) - {return !(__x == __y);} - -private: -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_INLINE_VISIBILITY - __hash_local_iterator(__node_pointer __node, size_t __bucket, - size_t __bucket_count, const void* __c) _NOEXCEPT - : __node_(__node), - __bucket_(__bucket), - __bucket_count_(__bucket_count) - { - __get_db()->__insert_ic(this, __c); - if (__node_ != nullptr) - __node_ = __node_->__next_; - } -#else - _LIBCPP_INLINE_VISIBILITY - __hash_local_iterator(__node_pointer __node, size_t __bucket, - size_t __bucket_count) _NOEXCEPT - : __node_(__node), - __bucket_(__bucket), - __bucket_count_(__bucket_count) - { - if (__node_ != nullptr) - __node_ = __node_->__next_; - } -#endif - template friend class __hash_table; - template friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator; - template friend class _LIBCPP_TYPE_VIS_ONLY __hash_map_iterator; -}; - -template -class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator -{ - typedef _ConstNodePtr __node_pointer; - - __node_pointer __node_; - size_t __bucket_; - size_t __bucket_count_; - - typedef pointer_traits<__node_pointer> __pointer_traits; - typedef typename __pointer_traits::element_type __node; - typedef typename remove_const<__node>::type __non_const_node; - typedef typename pointer_traits<__node_pointer>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind<__non_const_node> -#else - rebind<__non_const_node>::other -#endif - __non_const_node_pointer; - typedef __hash_local_iterator<__non_const_node_pointer> - __non_const_iterator; -public: - typedef forward_iterator_tag iterator_category; - typedef typename remove_const< - typename __pointer_traits::element_type::value_type - >::type value_type; - typedef typename __pointer_traits::difference_type difference_type; - typedef const value_type& reference; - typedef typename __pointer_traits::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind -#else - rebind::other -#endif - pointer; - - _LIBCPP_INLINE_VISIBILITY __hash_const_local_iterator() _NOEXCEPT - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_i(this); -#endif - } - - _LIBCPP_INLINE_VISIBILITY - __hash_const_local_iterator(const __non_const_iterator& __x) _NOEXCEPT - : __node_(__x.__node_), - __bucket_(__x.__bucket_), - __bucket_count_(__x.__bucket_count_) - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__iterator_copy(this, &__x); -#endif - } - -#if _LIBCPP_DEBUG_LEVEL >= 2 - - _LIBCPP_INLINE_VISIBILITY - __hash_const_local_iterator(const __hash_const_local_iterator& __i) - : __node_(__i.__node_), - __bucket_(__i.__bucket_), - __bucket_count_(__i.__bucket_count_) - { - __get_db()->__iterator_copy(this, &__i); - } - - _LIBCPP_INLINE_VISIBILITY - ~__hash_const_local_iterator() - { - __get_db()->__erase_i(this); - } - - _LIBCPP_INLINE_VISIBILITY - __hash_const_local_iterator& operator=(const __hash_const_local_iterator& __i) - { - if (this != &__i) - { - __get_db()->__iterator_copy(this, &__i); - __node_ = __i.__node_; - __bucket_ = __i.__bucket_; - __bucket_count_ = __i.__bucket_count_; - } - return *this; - } - -#endif // _LIBCPP_DEBUG_LEVEL >= 2 - - _LIBCPP_INLINE_VISIBILITY - reference operator*() const - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to dereference a non-dereferenceable unordered container const_local_iterator"); -#endif - return __node_->__value_; - } - _LIBCPP_INLINE_VISIBILITY - pointer operator->() const - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to dereference a non-dereferenceable unordered container const_local_iterator"); -#endif - return pointer_traits::pointer_to(__node_->__value_); - } - - _LIBCPP_INLINE_VISIBILITY - __hash_const_local_iterator& operator++() - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to increment non-incrementable unordered container const_local_iterator"); -#endif - __node_ = __node_->__next_; - if (__node_ != nullptr && __constrain_hash(__node_->__hash_, __bucket_count_) != __bucket_) - __node_ = nullptr; - return *this; - } - - _LIBCPP_INLINE_VISIBILITY - __hash_const_local_iterator operator++(int) - { - __hash_const_local_iterator __t(*this); - ++(*this); - return __t; - } - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(const __hash_const_local_iterator& __x, const __hash_const_local_iterator& __y) - { - return __x.__node_ == __y.__node_; - } - friend _LIBCPP_INLINE_VISIBILITY - bool operator!=(const __hash_const_local_iterator& __x, const __hash_const_local_iterator& __y) - {return !(__x == __y);} - -private: -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_INLINE_VISIBILITY - __hash_const_local_iterator(__node_pointer __node, size_t __bucket, - size_t __bucket_count, const void* __c) _NOEXCEPT - : __node_(__node), - __bucket_(__bucket), - __bucket_count_(__bucket_count) - { - __get_db()->__insert_ic(this, __c); - if (__node_ != nullptr) - __node_ = __node_->__next_; - } -#else - _LIBCPP_INLINE_VISIBILITY - __hash_const_local_iterator(__node_pointer __node, size_t __bucket, - size_t __bucket_count) _NOEXCEPT - : __node_(__node), - __bucket_(__bucket), - __bucket_count_(__bucket_count) - { - if (__node_ != nullptr) - __node_ = __node_->__next_; - } -#endif - template friend class __hash_table; - template friend class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator; -}; - -template -class __bucket_list_deallocator -{ - typedef _Alloc allocator_type; - typedef allocator_traits __alloc_traits; - typedef typename __alloc_traits::size_type size_type; - - __compressed_pair __data_; -public: - typedef typename __alloc_traits::pointer pointer; - - _LIBCPP_INLINE_VISIBILITY - __bucket_list_deallocator() - _NOEXCEPT_(is_nothrow_default_constructible::value) - : __data_(0) {} - - _LIBCPP_INLINE_VISIBILITY - __bucket_list_deallocator(const allocator_type& __a, size_type __size) - _NOEXCEPT_(is_nothrow_copy_constructible::value) - : __data_(__size, __a) {} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - - _LIBCPP_INLINE_VISIBILITY - __bucket_list_deallocator(__bucket_list_deallocator&& __x) - _NOEXCEPT_(is_nothrow_move_constructible::value) - : __data_(_VSTD::move(__x.__data_)) - { - __x.size() = 0; - } - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - _LIBCPP_INLINE_VISIBILITY - size_type& size() _NOEXCEPT {return __data_.first();} - _LIBCPP_INLINE_VISIBILITY - size_type size() const _NOEXCEPT {return __data_.first();} - - _LIBCPP_INLINE_VISIBILITY - allocator_type& __alloc() _NOEXCEPT {return __data_.second();} - _LIBCPP_INLINE_VISIBILITY - const allocator_type& __alloc() const _NOEXCEPT {return __data_.second();} - - _LIBCPP_INLINE_VISIBILITY - void operator()(pointer __p) _NOEXCEPT - { - __alloc_traits::deallocate(__alloc(), __p, size()); - } -}; - -template class __hash_map_node_destructor; - -template -class __hash_node_destructor -{ - typedef _Alloc allocator_type; - typedef allocator_traits __alloc_traits; - typedef typename __alloc_traits::value_type::value_type value_type; -public: - typedef typename __alloc_traits::pointer pointer; -private: - - allocator_type& __na_; - - __hash_node_destructor& operator=(const __hash_node_destructor&); - -public: - bool __value_constructed; - - _LIBCPP_INLINE_VISIBILITY - explicit __hash_node_destructor(allocator_type& __na, - bool __constructed = false) _NOEXCEPT - : __na_(__na), - __value_constructed(__constructed) - {} - - _LIBCPP_INLINE_VISIBILITY - void operator()(pointer __p) _NOEXCEPT - { - if (__value_constructed) - __alloc_traits::destroy(__na_, _VSTD::addressof(__p->__value_)); - if (__p) - __alloc_traits::deallocate(__na_, __p, 1); - } - - template friend class __hash_map_node_destructor; -}; - -template -class __hash_table -{ -public: - typedef _Tp value_type; - typedef _Hash hasher; - typedef _Equal key_equal; - typedef _Alloc allocator_type; - -private: - typedef allocator_traits __alloc_traits; -public: - typedef value_type& reference; - typedef const value_type& const_reference; - typedef typename __alloc_traits::pointer pointer; - typedef typename __alloc_traits::const_pointer const_pointer; - typedef typename __alloc_traits::size_type size_type; - typedef typename __alloc_traits::difference_type difference_type; -public: - // Create __node - typedef __hash_node __node; - typedef typename __rebind_alloc_helper<__alloc_traits, __node>::type __node_allocator; - typedef allocator_traits<__node_allocator> __node_traits; - typedef typename __node_traits::pointer __node_pointer; - typedef typename __node_traits::pointer __node_const_pointer; - typedef __hash_node_base<__node_pointer> __first_node; - typedef typename pointer_traits<__node_pointer>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind<__first_node> -#else - rebind<__first_node>::other -#endif - __node_base_pointer; - -private: - - typedef typename __rebind_alloc_helper<__node_traits, __node_pointer>::type __pointer_allocator; - typedef __bucket_list_deallocator<__pointer_allocator> __bucket_list_deleter; - typedef unique_ptr<__node_pointer[], __bucket_list_deleter> __bucket_list; - typedef allocator_traits<__pointer_allocator> __pointer_alloc_traits; - typedef typename __bucket_list_deleter::pointer __node_pointer_pointer; - - // --- Member data begin --- - __bucket_list __bucket_list_; - __compressed_pair<__first_node, __node_allocator> __p1_; - __compressed_pair __p2_; - __compressed_pair __p3_; - // --- Member data end --- - - _LIBCPP_INLINE_VISIBILITY - size_type& size() _NOEXCEPT {return __p2_.first();} -public: - _LIBCPP_INLINE_VISIBILITY - size_type size() const _NOEXCEPT {return __p2_.first();} - - _LIBCPP_INLINE_VISIBILITY - hasher& hash_function() _NOEXCEPT {return __p2_.second();} - _LIBCPP_INLINE_VISIBILITY - const hasher& hash_function() const _NOEXCEPT {return __p2_.second();} - - _LIBCPP_INLINE_VISIBILITY - float& max_load_factor() _NOEXCEPT {return __p3_.first();} - _LIBCPP_INLINE_VISIBILITY - float max_load_factor() const _NOEXCEPT {return __p3_.first();} - - _LIBCPP_INLINE_VISIBILITY - key_equal& key_eq() _NOEXCEPT {return __p3_.second();} - _LIBCPP_INLINE_VISIBILITY - const key_equal& key_eq() const _NOEXCEPT {return __p3_.second();} - - _LIBCPP_INLINE_VISIBILITY - __node_allocator& __node_alloc() _NOEXCEPT {return __p1_.second();} - _LIBCPP_INLINE_VISIBILITY - const __node_allocator& __node_alloc() const _NOEXCEPT - {return __p1_.second();} - -public: - typedef __hash_iterator<__node_pointer> iterator; - typedef __hash_const_iterator<__node_pointer> const_iterator; - typedef __hash_local_iterator<__node_pointer> local_iterator; - typedef __hash_const_local_iterator<__node_pointer> const_local_iterator; - - _LIBCPP_INLINE_VISIBILITY - __hash_table() - _NOEXCEPT_( - is_nothrow_default_constructible<__bucket_list>::value && - is_nothrow_default_constructible<__first_node>::value && - is_nothrow_default_constructible<__node_allocator>::value && - is_nothrow_default_constructible::value && - is_nothrow_default_constructible::value); - _LIBCPP_INLINE_VISIBILITY - __hash_table(const hasher& __hf, const key_equal& __eql); - __hash_table(const hasher& __hf, const key_equal& __eql, - const allocator_type& __a); - explicit __hash_table(const allocator_type& __a); - __hash_table(const __hash_table& __u); - __hash_table(const __hash_table& __u, const allocator_type& __a); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - __hash_table(__hash_table&& __u) - _NOEXCEPT_( - is_nothrow_move_constructible<__bucket_list>::value && - is_nothrow_move_constructible<__first_node>::value && - is_nothrow_move_constructible<__node_allocator>::value && - is_nothrow_move_constructible::value && - is_nothrow_move_constructible::value); - __hash_table(__hash_table&& __u, const allocator_type& __a); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - ~__hash_table(); - - __hash_table& operator=(const __hash_table& __u); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - __hash_table& operator=(__hash_table&& __u) - _NOEXCEPT_( - __node_traits::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable<__node_allocator>::value && - is_nothrow_move_assignable::value && - is_nothrow_move_assignable::value); -#endif - template - void __assign_unique(_InputIterator __first, _InputIterator __last); - template - void __assign_multi(_InputIterator __first, _InputIterator __last); - - _LIBCPP_INLINE_VISIBILITY - size_type max_size() const _NOEXCEPT - { - return allocator_traits<__pointer_allocator>::max_size( - __bucket_list_.get_deleter().__alloc()); - } - - pair __node_insert_unique(__node_pointer __nd); - iterator __node_insert_multi(__node_pointer __nd); - iterator __node_insert_multi(const_iterator __p, - __node_pointer __nd); - -#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS) - template - pair __emplace_unique(_Args&&... __args); - template - iterator __emplace_multi(_Args&&... __args); - template - iterator __emplace_hint_multi(const_iterator __p, _Args&&... __args); -#endif // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS) - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - template - _LIBCPP_INLINE_VISIBILITY - pair __insert_unique_value(_ValueTp&& __x); -#else - _LIBCPP_INLINE_VISIBILITY - pair __insert_unique_value(const value_type& __x); -#endif - - pair __insert_unique(const value_type& __x); - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - pair __insert_unique(value_type&& __x); - template - pair __insert_unique(_Pp&& __x); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - template - iterator __insert_multi(_Pp&& __x); - template - iterator __insert_multi(const_iterator __p, _Pp&& __x); -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES - iterator __insert_multi(const value_type& __x); - iterator __insert_multi(const_iterator __p, const value_type& __x); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - void clear() _NOEXCEPT; - void rehash(size_type __n); - _LIBCPP_INLINE_VISIBILITY void reserve(size_type __n) - {rehash(static_cast(ceil(__n / max_load_factor())));} - - _LIBCPP_INLINE_VISIBILITY - size_type bucket_count() const _NOEXCEPT - { - return __bucket_list_.get_deleter().size(); - } - - _LIBCPP_INLINE_VISIBILITY - iterator begin() _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - iterator end() _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - const_iterator begin() const _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - const_iterator end() const _NOEXCEPT; - - template - _LIBCPP_INLINE_VISIBILITY - size_type bucket(const _Key& __k) const - { - _LIBCPP_ASSERT(bucket_count() > 0, - "unordered container::bucket(key) called when bucket_count() == 0"); - return __constrain_hash(hash_function()(__k), bucket_count()); - } - - template - iterator find(const _Key& __x); - template - const_iterator find(const _Key& __x) const; - - typedef __hash_node_destructor<__node_allocator> _Dp; - typedef unique_ptr<__node, _Dp> __node_holder; - - iterator erase(const_iterator __p); - iterator erase(const_iterator __first, const_iterator __last); - template - size_type __erase_unique(const _Key& __k); - template - size_type __erase_multi(const _Key& __k); - __node_holder remove(const_iterator __p) _NOEXCEPT; - - template - _LIBCPP_INLINE_VISIBILITY - size_type __count_unique(const _Key& __k) const; - template - size_type __count_multi(const _Key& __k) const; - - template - pair - __equal_range_unique(const _Key& __k); - template - pair - __equal_range_unique(const _Key& __k) const; - - template - pair - __equal_range_multi(const _Key& __k); - template - pair - __equal_range_multi(const _Key& __k) const; - - void swap(__hash_table& __u) -#if _LIBCPP_STD_VER <= 11 - _NOEXCEPT_( - __is_nothrow_swappable::value && __is_nothrow_swappable::value - && (!allocator_traits<__pointer_allocator>::propagate_on_container_swap::value - || __is_nothrow_swappable<__pointer_allocator>::value) - && (!__node_traits::propagate_on_container_swap::value - || __is_nothrow_swappable<__node_allocator>::value) - ); -#else - _NOEXCEPT_(__is_nothrow_swappable::value && __is_nothrow_swappable::value); -#endif - - _LIBCPP_INLINE_VISIBILITY - size_type max_bucket_count() const _NOEXCEPT - {return __pointer_alloc_traits::max_size(__bucket_list_.get_deleter().__alloc());} - size_type bucket_size(size_type __n) const; - _LIBCPP_INLINE_VISIBILITY float load_factor() const _NOEXCEPT - { - size_type __bc = bucket_count(); - return __bc != 0 ? (float)size() / __bc : 0.f; - } - _LIBCPP_INLINE_VISIBILITY void max_load_factor(float __mlf) _NOEXCEPT - { - _LIBCPP_ASSERT(__mlf > 0, - "unordered container::max_load_factor(lf) called with lf <= 0"); - max_load_factor() = _VSTD::max(__mlf, load_factor()); - } - - _LIBCPP_INLINE_VISIBILITY - local_iterator - begin(size_type __n) - { - _LIBCPP_ASSERT(__n < bucket_count(), - "unordered container::begin(n) called with n >= bucket_count()"); -#if _LIBCPP_DEBUG_LEVEL >= 2 - return local_iterator(__bucket_list_[__n], __n, bucket_count(), this); -#else - return local_iterator(__bucket_list_[__n], __n, bucket_count()); -#endif - } - - _LIBCPP_INLINE_VISIBILITY - local_iterator - end(size_type __n) - { - _LIBCPP_ASSERT(__n < bucket_count(), - "unordered container::end(n) called with n >= bucket_count()"); -#if _LIBCPP_DEBUG_LEVEL >= 2 - return local_iterator(nullptr, __n, bucket_count(), this); -#else - return local_iterator(nullptr, __n, bucket_count()); -#endif - } - - _LIBCPP_INLINE_VISIBILITY - const_local_iterator - cbegin(size_type __n) const - { - _LIBCPP_ASSERT(__n < bucket_count(), - "unordered container::cbegin(n) called with n >= bucket_count()"); -#if _LIBCPP_DEBUG_LEVEL >= 2 - return const_local_iterator(__bucket_list_[__n], __n, bucket_count(), this); -#else - return const_local_iterator(__bucket_list_[__n], __n, bucket_count()); -#endif - } - - _LIBCPP_INLINE_VISIBILITY - const_local_iterator - cend(size_type __n) const - { - _LIBCPP_ASSERT(__n < bucket_count(), - "unordered container::cend(n) called with n >= bucket_count()"); -#if _LIBCPP_DEBUG_LEVEL >= 2 - return const_local_iterator(nullptr, __n, bucket_count(), this); -#else - return const_local_iterator(nullptr, __n, bucket_count()); -#endif - } - -#if _LIBCPP_DEBUG_LEVEL >= 2 - - bool __dereferenceable(const const_iterator* __i) const; - bool __decrementable(const const_iterator* __i) const; - bool __addable(const const_iterator* __i, ptrdiff_t __n) const; - bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const; - -#endif // _LIBCPP_DEBUG_LEVEL >= 2 - -private: - void __rehash(size_type __n); - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -#ifndef _LIBCPP_HAS_NO_VARIADICS - template - __node_holder __construct_node(_Args&& ...__args); -#endif // _LIBCPP_HAS_NO_VARIADICS - __node_holder __construct_node(value_type&& __v, size_t __hash); -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES - __node_holder __construct_node(const value_type& __v); -#endif - __node_holder __construct_node(const value_type& __v, size_t __hash); - - _LIBCPP_INLINE_VISIBILITY - void __copy_assign_alloc(const __hash_table& __u) - {__copy_assign_alloc(__u, integral_constant());} - void __copy_assign_alloc(const __hash_table& __u, true_type); - _LIBCPP_INLINE_VISIBILITY - void __copy_assign_alloc(const __hash_table&, false_type) {} - - void __move_assign(__hash_table& __u, false_type); - void __move_assign(__hash_table& __u, true_type) - _NOEXCEPT_( - is_nothrow_move_assignable<__node_allocator>::value && - is_nothrow_move_assignable::value && - is_nothrow_move_assignable::value); - _LIBCPP_INLINE_VISIBILITY - void __move_assign_alloc(__hash_table& __u) - _NOEXCEPT_( - !__node_traits::propagate_on_container_move_assignment::value || - (is_nothrow_move_assignable<__pointer_allocator>::value && - is_nothrow_move_assignable<__node_allocator>::value)) - {__move_assign_alloc(__u, integral_constant());} - _LIBCPP_INLINE_VISIBILITY - void __move_assign_alloc(__hash_table& __u, true_type) - _NOEXCEPT_( - is_nothrow_move_assignable<__pointer_allocator>::value && - is_nothrow_move_assignable<__node_allocator>::value) - { - __bucket_list_.get_deleter().__alloc() = - _VSTD::move(__u.__bucket_list_.get_deleter().__alloc()); - __node_alloc() = _VSTD::move(__u.__node_alloc()); - } - _LIBCPP_INLINE_VISIBILITY - void __move_assign_alloc(__hash_table&, false_type) _NOEXCEPT {} - - void __deallocate(__node_pointer __np) _NOEXCEPT; - __node_pointer __detach() _NOEXCEPT; - - template friend class _LIBCPP_TYPE_VIS_ONLY unordered_map; - template friend class _LIBCPP_TYPE_VIS_ONLY unordered_multimap; -}; - -template -inline -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table() - _NOEXCEPT_( - is_nothrow_default_constructible<__bucket_list>::value && - is_nothrow_default_constructible<__first_node>::value && - is_nothrow_default_constructible::value && - is_nothrow_default_constructible::value) - : __p2_(0), - __p3_(1.0f) -{ -} - -template -inline -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const hasher& __hf, - const key_equal& __eql) - : __bucket_list_(nullptr, __bucket_list_deleter()), - __p1_(), - __p2_(0, __hf), - __p3_(1.0f, __eql) -{ -} - -template -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const hasher& __hf, - const key_equal& __eql, - const allocator_type& __a) - : __bucket_list_(nullptr, __bucket_list_deleter(__pointer_allocator(__a), 0)), - __p1_(__node_allocator(__a)), - __p2_(0, __hf), - __p3_(1.0f, __eql) -{ -} - -template -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const allocator_type& __a) - : __bucket_list_(nullptr, __bucket_list_deleter(__pointer_allocator(__a), 0)), - __p1_(__node_allocator(__a)), - __p2_(0), - __p3_(1.0f) -{ -} - -template -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const __hash_table& __u) - : __bucket_list_(nullptr, - __bucket_list_deleter(allocator_traits<__pointer_allocator>:: - select_on_container_copy_construction( - __u.__bucket_list_.get_deleter().__alloc()), 0)), - __p1_(allocator_traits<__node_allocator>:: - select_on_container_copy_construction(__u.__node_alloc())), - __p2_(0, __u.hash_function()), - __p3_(__u.__p3_) -{ -} - -template -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const __hash_table& __u, - const allocator_type& __a) - : __bucket_list_(nullptr, __bucket_list_deleter(__pointer_allocator(__a), 0)), - __p1_(__node_allocator(__a)), - __p2_(0, __u.hash_function()), - __p3_(__u.__p3_) -{ -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(__hash_table&& __u) - _NOEXCEPT_( - is_nothrow_move_constructible<__bucket_list>::value && - is_nothrow_move_constructible<__first_node>::value && - is_nothrow_move_constructible::value && - is_nothrow_move_constructible::value) - : __bucket_list_(_VSTD::move(__u.__bucket_list_)), - __p1_(_VSTD::move(__u.__p1_)), - __p2_(_VSTD::move(__u.__p2_)), - __p3_(_VSTD::move(__u.__p3_)) -{ - if (size() > 0) - { - __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash_, bucket_count())] = - static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())); - __u.__p1_.first().__next_ = nullptr; - __u.size() = 0; - } -} - -template -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(__hash_table&& __u, - const allocator_type& __a) - : __bucket_list_(nullptr, __bucket_list_deleter(__pointer_allocator(__a), 0)), - __p1_(__node_allocator(__a)), - __p2_(0, _VSTD::move(__u.hash_function())), - __p3_(_VSTD::move(__u.__p3_)) -{ - if (__a == allocator_type(__u.__node_alloc())) - { - __bucket_list_.reset(__u.__bucket_list_.release()); - __bucket_list_.get_deleter().size() = __u.__bucket_list_.get_deleter().size(); - __u.__bucket_list_.get_deleter().size() = 0; - if (__u.size() > 0) - { - __p1_.first().__next_ = __u.__p1_.first().__next_; - __u.__p1_.first().__next_ = nullptr; - __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash_, bucket_count())] = - static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())); - size() = __u.size(); - __u.size() = 0; - } - } -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -__hash_table<_Tp, _Hash, _Equal, _Alloc>::~__hash_table() -{ - __deallocate(__p1_.first().__next_); -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__erase_c(this); -#endif -} - -template -void -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__copy_assign_alloc( - const __hash_table& __u, true_type) -{ - if (__node_alloc() != __u.__node_alloc()) - { - clear(); - __bucket_list_.reset(); - __bucket_list_.get_deleter().size() = 0; - } - __bucket_list_.get_deleter().__alloc() = __u.__bucket_list_.get_deleter().__alloc(); - __node_alloc() = __u.__node_alloc(); -} - -template -__hash_table<_Tp, _Hash, _Equal, _Alloc>& -__hash_table<_Tp, _Hash, _Equal, _Alloc>::operator=(const __hash_table& __u) -{ - if (this != &__u) - { - __copy_assign_alloc(__u); - hash_function() = __u.hash_function(); - key_eq() = __u.key_eq(); - max_load_factor() = __u.max_load_factor(); - __assign_multi(__u.begin(), __u.end()); - } - return *this; -} - -template -void -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__deallocate(__node_pointer __np) - _NOEXCEPT -{ - __node_allocator& __na = __node_alloc(); - while (__np != nullptr) - { - __node_pointer __next = __np->__next_; -#if _LIBCPP_DEBUG_LEVEL >= 2 - __c_node* __c = __get_db()->__find_c_and_lock(this); - for (__i_node** __p = __c->end_; __p != __c->beg_; ) - { - --__p; - iterator* __i = static_cast((*__p)->__i_); - if (__i->__node_ == __np) - { - (*__p)->__c_ = nullptr; - if (--__c->end_ != __p) - memmove(__p, __p+1, (__c->end_ - __p)*sizeof(__i_node*)); - } - } - __get_db()->unlock(); -#endif - __node_traits::destroy(__na, _VSTD::addressof(__np->__value_)); - __node_traits::deallocate(__na, __np, 1); - __np = __next; - } -} - -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_pointer -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__detach() _NOEXCEPT -{ - size_type __bc = bucket_count(); - for (size_type __i = 0; __i < __bc; ++__i) - __bucket_list_[__i] = nullptr; - size() = 0; - __node_pointer __cache = __p1_.first().__next_; - __p1_.first().__next_ = nullptr; - return __cache; -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__move_assign( - __hash_table& __u, true_type) - _NOEXCEPT_( - is_nothrow_move_assignable<__node_allocator>::value && - is_nothrow_move_assignable::value && - is_nothrow_move_assignable::value) -{ - clear(); - __bucket_list_.reset(__u.__bucket_list_.release()); - __bucket_list_.get_deleter().size() = __u.__bucket_list_.get_deleter().size(); - __u.__bucket_list_.get_deleter().size() = 0; - __move_assign_alloc(__u); - size() = __u.size(); - hash_function() = _VSTD::move(__u.hash_function()); - max_load_factor() = __u.max_load_factor(); - key_eq() = _VSTD::move(__u.key_eq()); - __p1_.first().__next_ = __u.__p1_.first().__next_; - if (size() > 0) - { - __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash_, bucket_count())] = - static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())); - __u.__p1_.first().__next_ = nullptr; - __u.size() = 0; - } -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->swap(this, &__u); -#endif -} - -template -void -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__move_assign( - __hash_table& __u, false_type) -{ - if (__node_alloc() == __u.__node_alloc()) - __move_assign(__u, true_type()); - else - { - hash_function() = _VSTD::move(__u.hash_function()); - key_eq() = _VSTD::move(__u.key_eq()); - max_load_factor() = __u.max_load_factor(); - if (bucket_count() != 0) - { - __node_pointer __cache = __detach(); -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - const_iterator __i = __u.begin(); - while (__cache != nullptr && __u.size() != 0) - { - __cache->__value_ = _VSTD::move(__u.remove(__i++)->__value_); - __node_pointer __next = __cache->__next_; - __node_insert_multi(__cache); - __cache = __next; - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - __deallocate(__cache); - throw; - } -#endif // _LIBCPP_NO_EXCEPTIONS - __deallocate(__cache); - } - const_iterator __i = __u.begin(); - while (__u.size() != 0) - { - __node_holder __h = - __construct_node(_VSTD::move(__u.remove(__i++)->__value_)); - __node_insert_multi(__h.get()); - __h.release(); - } - } -} - -template -inline -__hash_table<_Tp, _Hash, _Equal, _Alloc>& -__hash_table<_Tp, _Hash, _Equal, _Alloc>::operator=(__hash_table&& __u) - _NOEXCEPT_( - __node_traits::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable<__node_allocator>::value && - is_nothrow_move_assignable::value && - is_nothrow_move_assignable::value) -{ - __move_assign(__u, integral_constant()); - return *this; -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -template -void -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__assign_unique(_InputIterator __first, - _InputIterator __last) -{ - if (bucket_count() != 0) - { - __node_pointer __cache = __detach(); -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - for (; __cache != nullptr && __first != __last; ++__first) - { - __cache->__value_ = *__first; - __node_pointer __next = __cache->__next_; - __node_insert_unique(__cache); - __cache = __next; - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - __deallocate(__cache); - throw; - } -#endif // _LIBCPP_NO_EXCEPTIONS - __deallocate(__cache); - } - for (; __first != __last; ++__first) - __insert_unique(*__first); -} - -template -template -void -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__assign_multi(_InputIterator __first, - _InputIterator __last) -{ - if (bucket_count() != 0) - { - __node_pointer __cache = __detach(); -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - for (; __cache != nullptr && __first != __last; ++__first) - { - __cache->__value_ = *__first; - __node_pointer __next = __cache->__next_; - __node_insert_multi(__cache); - __cache = __next; - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - __deallocate(__cache); - throw; - } -#endif // _LIBCPP_NO_EXCEPTIONS - __deallocate(__cache); - } - for (; __first != __last; ++__first) - __insert_multi(*__first); -} - -template -inline -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator -__hash_table<_Tp, _Hash, _Equal, _Alloc>::begin() _NOEXCEPT -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - return iterator(__p1_.first().__next_, this); -#else - return iterator(__p1_.first().__next_); -#endif -} - -template -inline -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator -__hash_table<_Tp, _Hash, _Equal, _Alloc>::end() _NOEXCEPT -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - return iterator(nullptr, this); -#else - return iterator(nullptr); -#endif -} - -template -inline -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator -__hash_table<_Tp, _Hash, _Equal, _Alloc>::begin() const _NOEXCEPT -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - return const_iterator(__p1_.first().__next_, this); -#else - return const_iterator(__p1_.first().__next_); -#endif -} - -template -inline -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator -__hash_table<_Tp, _Hash, _Equal, _Alloc>::end() const _NOEXCEPT -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - return const_iterator(nullptr, this); -#else - return const_iterator(nullptr); -#endif -} - -template -void -__hash_table<_Tp, _Hash, _Equal, _Alloc>::clear() _NOEXCEPT -{ - if (size() > 0) - { - __deallocate(__p1_.first().__next_); - __p1_.first().__next_ = nullptr; - size_type __bc = bucket_count(); - for (size_type __i = 0; __i < __bc; ++__i) - __bucket_list_[__i] = nullptr; - size() = 0; - } -} - -template -pair::iterator, bool> -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_unique(__node_pointer __nd) -{ - __nd->__hash_ = hash_function()(__nd->__value_); - size_type __bc = bucket_count(); - bool __inserted = false; - __node_pointer __ndptr; - size_t __chash; - if (__bc != 0) - { - __chash = __constrain_hash(__nd->__hash_, __bc); - __ndptr = __bucket_list_[__chash]; - if (__ndptr != nullptr) - { - for (__ndptr = __ndptr->__next_; __ndptr != nullptr && - __constrain_hash(__ndptr->__hash_, __bc) == __chash; - __ndptr = __ndptr->__next_) - { - if (key_eq()(__ndptr->__value_, __nd->__value_)) - goto __done; - } - } - } - { - if (size()+1 > __bc * max_load_factor() || __bc == 0) - { - rehash(_VSTD::max(2 * __bc + !__is_hash_power2(__bc), - size_type(ceil(float(size() + 1) / max_load_factor())))); - __bc = bucket_count(); - __chash = __constrain_hash(__nd->__hash_, __bc); - } - // insert_after __bucket_list_[__chash], or __first_node if bucket is null - __node_pointer __pn = __bucket_list_[__chash]; - if (__pn == nullptr) - { - __pn = static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())); - __nd->__next_ = __pn->__next_; - __pn->__next_ = __nd; - // fix up __bucket_list_ - __bucket_list_[__chash] = __pn; - if (__nd->__next_ != nullptr) - __bucket_list_[__constrain_hash(__nd->__next_->__hash_, __bc)] = __nd; - } - else - { - __nd->__next_ = __pn->__next_; - __pn->__next_ = __nd; - } - __ndptr = __nd; - // increment size - ++size(); - __inserted = true; - } -__done: -#if _LIBCPP_DEBUG_LEVEL >= 2 - return pair(iterator(__ndptr, this), __inserted); -#else - return pair(iterator(__ndptr), __inserted); -#endif -} - -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_multi(__node_pointer __cp) -{ - __cp->__hash_ = hash_function()(__cp->__value_); - size_type __bc = bucket_count(); - if (size()+1 > __bc * max_load_factor() || __bc == 0) - { - rehash(_VSTD::max(2 * __bc + !__is_hash_power2(__bc), - size_type(ceil(float(size() + 1) / max_load_factor())))); - __bc = bucket_count(); - } - size_t __chash = __constrain_hash(__cp->__hash_, __bc); - __node_pointer __pn = __bucket_list_[__chash]; - if (__pn == nullptr) - { - __pn = static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())); - __cp->__next_ = __pn->__next_; - __pn->__next_ = __cp; - // fix up __bucket_list_ - __bucket_list_[__chash] = __pn; - if (__cp->__next_ != nullptr) - __bucket_list_[__constrain_hash(__cp->__next_->__hash_, __bc)] = __cp; - } - else - { - for (bool __found = false; __pn->__next_ != nullptr && - __constrain_hash(__pn->__next_->__hash_, __bc) == __chash; - __pn = __pn->__next_) - { - // __found key_eq() action - // false false loop - // true true loop - // false true set __found to true - // true false break - if (__found != (__pn->__next_->__hash_ == __cp->__hash_ && - key_eq()(__pn->__next_->__value_, __cp->__value_))) - { - if (!__found) - __found = true; - else - break; - } - } - __cp->__next_ = __pn->__next_; - __pn->__next_ = __cp; - if (__cp->__next_ != nullptr) - { - size_t __nhash = __constrain_hash(__cp->__next_->__hash_, __bc); - if (__nhash != __chash) - __bucket_list_[__nhash] = __cp; - } - } - ++size(); -#if _LIBCPP_DEBUG_LEVEL >= 2 - return iterator(__cp, this); -#else - return iterator(__cp); -#endif -} - -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_multi( - const_iterator __p, __node_pointer __cp) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, - "unordered container::emplace_hint(const_iterator, args...) called with an iterator not" - " referring to this unordered container"); -#endif - if (__p != end() && key_eq()(*__p, __cp->__value_)) - { - __node_pointer __np = __p.__node_; - __cp->__hash_ = __np->__hash_; - size_type __bc = bucket_count(); - if (size()+1 > __bc * max_load_factor() || __bc == 0) - { - rehash(_VSTD::max(2 * __bc + !__is_hash_power2(__bc), - size_type(ceil(float(size() + 1) / max_load_factor())))); - __bc = bucket_count(); - } - size_t __chash = __constrain_hash(__cp->__hash_, __bc); - __node_pointer __pp = __bucket_list_[__chash]; - while (__pp->__next_ != __np) - __pp = __pp->__next_; - __cp->__next_ = __np; - __pp->__next_ = __cp; - ++size(); -#if _LIBCPP_DEBUG_LEVEL >= 2 - return iterator(__cp, this); -#else - return iterator(__cp); -#endif - } - return __node_insert_multi(__cp); -} - -template -pair::iterator, bool> -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_unique(const value_type& __x) -{ - return __insert_unique_value(__x); -} - - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -template -template -_LIBCPP_INLINE_VISIBILITY -pair::iterator, bool> -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_unique_value(_ValueTp&& __x) -#else -template -_LIBCPP_INLINE_VISIBILITY -pair::iterator, bool> -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_unique_value(const value_type& __x) -#endif -{ -#if defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) - typedef const value_type& _ValueTp; -#endif - size_t __hash = hash_function()(__x); - size_type __bc = bucket_count(); - bool __inserted = false; - __node_pointer __nd; - size_t __chash; - if (__bc != 0) - { - __chash = __constrain_hash(__hash, __bc); - __nd = __bucket_list_[__chash]; - if (__nd != nullptr) - { - for (__nd = __nd->__next_; __nd != nullptr && - __constrain_hash(__nd->__hash_, __bc) == __chash; - __nd = __nd->__next_) - { - if (key_eq()(__nd->__value_, __x)) - goto __done; - } - } - } - { - __node_holder __h = __construct_node(_VSTD::forward<_ValueTp>(__x), __hash); - if (size()+1 > __bc * max_load_factor() || __bc == 0) - { - rehash(_VSTD::max(2 * __bc + !__is_hash_power2(__bc), - size_type(ceil(float(size() + 1) / max_load_factor())))); - __bc = bucket_count(); - __chash = __constrain_hash(__hash, __bc); - } - // insert_after __bucket_list_[__chash], or __first_node if bucket is null - __node_pointer __pn = __bucket_list_[__chash]; - if (__pn == nullptr) - { - __pn = static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())); - __h->__next_ = __pn->__next_; - __pn->__next_ = __h.get(); - // fix up __bucket_list_ - __bucket_list_[__chash] = __pn; - if (__h->__next_ != nullptr) - __bucket_list_[__constrain_hash(__h->__next_->__hash_, __bc)] = __h.get(); - } - else - { - __h->__next_ = __pn->__next_; - __pn->__next_ = __h.get(); - } - __nd = __h.release(); - // increment size - ++size(); - __inserted = true; - } -__done: -#if _LIBCPP_DEBUG_LEVEL >= 2 - return pair(iterator(__nd, this), __inserted); -#else - return pair(iterator(__nd), __inserted); -#endif -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -#ifndef _LIBCPP_HAS_NO_VARIADICS - -template -template -pair::iterator, bool> -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_unique(_Args&&... __args) -{ - __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...); - pair __r = __node_insert_unique(__h.get()); - if (__r.second) - __h.release(); - return __r; -} - -template -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_multi(_Args&&... __args) -{ - __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...); - iterator __r = __node_insert_multi(__h.get()); - __h.release(); - return __r; -} - -template -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_hint_multi( - const_iterator __p, _Args&&... __args) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, - "unordered container::emplace_hint(const_iterator, args...) called with an iterator not" - " referring to this unordered container"); -#endif - __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...); - iterator __r = __node_insert_multi(__p, __h.get()); - __h.release(); - return __r; -} - -#endif // _LIBCPP_HAS_NO_VARIADICS - -template -pair::iterator, bool> -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_unique(value_type&& __x) -{ - return __insert_unique_value(_VSTD::move(__x)); -} - -template -template -pair::iterator, bool> -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_unique(_Pp&& __x) -{ - __node_holder __h = __construct_node(_VSTD::forward<_Pp>(__x)); - pair __r = __node_insert_unique(__h.get()); - if (__r.second) - __h.release(); - return __r; -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_multi(_Pp&& __x) -{ - __node_holder __h = __construct_node(_VSTD::forward<_Pp>(__x)); - iterator __r = __node_insert_multi(__h.get()); - __h.release(); - return __r; -} - -template -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_multi(const_iterator __p, - _Pp&& __x) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, - "unordered container::insert(const_iterator, rvalue) called with an iterator not" - " referring to this unordered container"); -#endif - __node_holder __h = __construct_node(_VSTD::forward<_Pp>(__x)); - iterator __r = __node_insert_multi(__p, __h.get()); - __h.release(); - return __r; -} - -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_multi(const value_type& __x) -{ - __node_holder __h = __construct_node(__x); - iterator __r = __node_insert_multi(__h.get()); - __h.release(); - return __r; -} - -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_multi(const_iterator __p, - const value_type& __x) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, - "unordered container::insert(const_iterator, lvalue) called with an iterator not" - " referring to this unordered container"); -#endif - __node_holder __h = __construct_node(__x); - iterator __r = __node_insert_multi(__p, __h.get()); - __h.release(); - return __r; -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -__hash_table<_Tp, _Hash, _Equal, _Alloc>::rehash(size_type __n) -{ - if (__n == 1) - __n = 2; - else if (__n & (__n - 1)) - __n = __next_prime(__n); - size_type __bc = bucket_count(); - if (__n > __bc) - __rehash(__n); - else if (__n < __bc) - { - __n = _VSTD::max - ( - __n, - __is_hash_power2(__bc) ? __next_hash_pow2(size_t(ceil(float(size()) / max_load_factor()))) : - __next_prime(size_t(ceil(float(size()) / max_load_factor()))) - ); - if (__n < __bc) - __rehash(__n); - } -} - -template -void -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__rehash(size_type __nbc) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__invalidate_all(this); -#endif // _LIBCPP_DEBUG_LEVEL >= 2 - __pointer_allocator& __npa = __bucket_list_.get_deleter().__alloc(); - __bucket_list_.reset(__nbc > 0 ? - __pointer_alloc_traits::allocate(__npa, __nbc) : nullptr); - __bucket_list_.get_deleter().size() = __nbc; - if (__nbc > 0) - { - for (size_type __i = 0; __i < __nbc; ++__i) - __bucket_list_[__i] = nullptr; - __node_pointer __pp(static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first()))); - __node_pointer __cp = __pp->__next_; - if (__cp != nullptr) - { - size_type __chash = __constrain_hash(__cp->__hash_, __nbc); - __bucket_list_[__chash] = __pp; - size_type __phash = __chash; - for (__pp = __cp, __cp = __cp->__next_; __cp != nullptr; - __cp = __pp->__next_) - { - __chash = __constrain_hash(__cp->__hash_, __nbc); - if (__chash == __phash) - __pp = __cp; - else - { - if (__bucket_list_[__chash] == nullptr) - { - __bucket_list_[__chash] = __pp; - __pp = __cp; - __phash = __chash; - } - else - { - __node_pointer __np = __cp; - for (; __np->__next_ != nullptr && - key_eq()(__cp->__value_, __np->__next_->__value_); - __np = __np->__next_) - ; - __pp->__next_ = __np->__next_; - __np->__next_ = __bucket_list_[__chash]->__next_; - __bucket_list_[__chash]->__next_ = __cp; - - } - } - } - } - } -} - -template -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator -__hash_table<_Tp, _Hash, _Equal, _Alloc>::find(const _Key& __k) -{ - size_t __hash = hash_function()(__k); - size_type __bc = bucket_count(); - if (__bc != 0) - { - size_t __chash = __constrain_hash(__hash, __bc); - __node_pointer __nd = __bucket_list_[__chash]; - if (__nd != nullptr) - { - for (__nd = __nd->__next_; __nd != nullptr && - __constrain_hash(__nd->__hash_, __bc) == __chash; - __nd = __nd->__next_) - { - if (key_eq()(__nd->__value_, __k)) -#if _LIBCPP_DEBUG_LEVEL >= 2 - return iterator(__nd, this); -#else - return iterator(__nd); -#endif - } - } - } - return end(); -} - -template -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator -__hash_table<_Tp, _Hash, _Equal, _Alloc>::find(const _Key& __k) const -{ - size_t __hash = hash_function()(__k); - size_type __bc = bucket_count(); - if (__bc != 0) - { - size_t __chash = __constrain_hash(__hash, __bc); - __node_const_pointer __nd = __bucket_list_[__chash]; - if (__nd != nullptr) - { - for (__nd = __nd->__next_; __nd != nullptr && - __constrain_hash(__nd->__hash_, __bc) == __chash; - __nd = __nd->__next_) - { - if (key_eq()(__nd->__value_, __k)) -#if _LIBCPP_DEBUG_LEVEL >= 2 - return const_iterator(__nd, this); -#else - return const_iterator(__nd); -#endif - } - } - - } - return end(); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -#ifndef _LIBCPP_HAS_NO_VARIADICS - -template -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__construct_node(_Args&& ...__args) -{ - __node_allocator& __na = __node_alloc(); - __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); - __node_traits::construct(__na, _VSTD::addressof(__h->__value_), _VSTD::forward<_Args>(__args)...); - __h.get_deleter().__value_constructed = true; - __h->__hash_ = hash_function()(__h->__value_); - __h->__next_ = nullptr; - return __h; -} - -#endif // _LIBCPP_HAS_NO_VARIADICS - -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__construct_node(value_type&& __v, - size_t __hash) -{ - __node_allocator& __na = __node_alloc(); - __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); - __node_traits::construct(__na, _VSTD::addressof(__h->__value_), _VSTD::move(__v)); - __h.get_deleter().__value_constructed = true; - __h->__hash_ = __hash; - __h->__next_ = nullptr; - return __h; -} - -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__construct_node(const value_type& __v) -{ - __node_allocator& __na = __node_alloc(); - __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); - __node_traits::construct(__na, _VSTD::addressof(__h->__value_), __v); - __h.get_deleter().__value_constructed = true; - __h->__hash_ = hash_function()(__h->__value_); - __h->__next_ = nullptr; - return _LIBCPP_EXPLICIT_MOVE(__h); // explicitly moved for C++03 -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__construct_node(const value_type& __v, - size_t __hash) -{ - __node_allocator& __na = __node_alloc(); - __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); - __node_traits::construct(__na, _VSTD::addressof(__h->__value_), __v); - __h.get_deleter().__value_constructed = true; - __h->__hash_ = __hash; - __h->__next_ = nullptr; - return _LIBCPP_EXPLICIT_MOVE(__h); // explicitly moved for C++03 -} - -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator -__hash_table<_Tp, _Hash, _Equal, _Alloc>::erase(const_iterator __p) -{ - __node_pointer __np = __p.__node_; -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, - "unordered container erase(iterator) called with an iterator not" - " referring to this container"); - _LIBCPP_ASSERT(__p != end(), - "unordered container erase(iterator) called with a non-dereferenceable iterator"); - iterator __r(__np, this); -#else - iterator __r(__np); -#endif - ++__r; - remove(__p); - return __r; -} - -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator -__hash_table<_Tp, _Hash, _Equal, _Alloc>::erase(const_iterator __first, - const_iterator __last) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__first) == this, - "unodered container::erase(iterator, iterator) called with an iterator not" - " referring to this unodered container"); - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__last) == this, - "unodered container::erase(iterator, iterator) called with an iterator not" - " referring to this unodered container"); -#endif - for (const_iterator __p = __first; __first != __last; __p = __first) - { - ++__first; - erase(__p); - } - __node_pointer __np = __last.__node_; -#if _LIBCPP_DEBUG_LEVEL >= 2 - return iterator (__np, this); -#else - return iterator (__np); -#endif -} - -template -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__erase_unique(const _Key& __k) -{ - iterator __i = find(__k); - if (__i == end()) - return 0; - erase(__i); - return 1; -} - -template -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__erase_multi(const _Key& __k) -{ - size_type __r = 0; - iterator __i = find(__k); - if (__i != end()) - { - iterator __e = end(); - do - { - erase(__i++); - ++__r; - } while (__i != __e && key_eq()(*__i, __k)); - } - return __r; -} - -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder -__hash_table<_Tp, _Hash, _Equal, _Alloc>::remove(const_iterator __p) _NOEXCEPT -{ - // current node - __node_pointer __cn = __p.__node_; - size_type __bc = bucket_count(); - size_t __chash = __constrain_hash(__cn->__hash_, __bc); - // find previous node - __node_pointer __pn = __bucket_list_[__chash]; - for (; __pn->__next_ != __cn; __pn = __pn->__next_) - ; - // Fix up __bucket_list_ - // if __pn is not in same bucket (before begin is not in same bucket) && - // if __cn->__next_ is not in same bucket (nullptr is not in same bucket) - if (__pn == static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())) - || __constrain_hash(__pn->__hash_, __bc) != __chash) - { - if (__cn->__next_ == nullptr || __constrain_hash(__cn->__next_->__hash_, __bc) != __chash) - __bucket_list_[__chash] = nullptr; - } - // if __cn->__next_ is not in same bucket (nullptr is in same bucket) - if (__cn->__next_ != nullptr) - { - size_t __nhash = __constrain_hash(__cn->__next_->__hash_, __bc); - if (__nhash != __chash) - __bucket_list_[__nhash] = __pn; - } - // remove __cn - __pn->__next_ = __cn->__next_; - __cn->__next_ = nullptr; - --size(); -#if _LIBCPP_DEBUG_LEVEL >= 2 - __c_node* __c = __get_db()->__find_c_and_lock(this); - for (__i_node** __p = __c->end_; __p != __c->beg_; ) - { - --__p; - iterator* __i = static_cast((*__p)->__i_); - if (__i->__node_ == __cn) - { - (*__p)->__c_ = nullptr; - if (--__c->end_ != __p) - memmove(__p, __p+1, (__c->end_ - __p)*sizeof(__i_node*)); - } - } - __get_db()->unlock(); -#endif - return __node_holder(__cn, _Dp(__node_alloc(), true)); -} - -template -template -inline -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__count_unique(const _Key& __k) const -{ - return static_cast(find(__k) != end()); -} - -template -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__count_multi(const _Key& __k) const -{ - size_type __r = 0; - const_iterator __i = find(__k); - if (__i != end()) - { - const_iterator __e = end(); - do - { - ++__i; - ++__r; - } while (__i != __e && key_eq()(*__i, __k)); - } - return __r; -} - -template -template -pair::iterator, - typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator> -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_unique( - const _Key& __k) -{ - iterator __i = find(__k); - iterator __j = __i; - if (__i != end()) - ++__j; - return pair(__i, __j); -} - -template -template -pair::const_iterator, - typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator> -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_unique( - const _Key& __k) const -{ - const_iterator __i = find(__k); - const_iterator __j = __i; - if (__i != end()) - ++__j; - return pair(__i, __j); -} - -template -template -pair::iterator, - typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator> -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_multi( - const _Key& __k) -{ - iterator __i = find(__k); - iterator __j = __i; - if (__i != end()) - { - iterator __e = end(); - do - { - ++__j; - } while (__j != __e && key_eq()(*__j, __k)); - } - return pair(__i, __j); -} - -template -template -pair::const_iterator, - typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator> -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_multi( - const _Key& __k) const -{ - const_iterator __i = find(__k); - const_iterator __j = __i; - if (__i != end()) - { - const_iterator __e = end(); - do - { - ++__j; - } while (__j != __e && key_eq()(*__j, __k)); - } - return pair(__i, __j); -} - -template -void -__hash_table<_Tp, _Hash, _Equal, _Alloc>::swap(__hash_table& __u) -#if _LIBCPP_STD_VER <= 11 - _NOEXCEPT_( - __is_nothrow_swappable::value && __is_nothrow_swappable::value - && (!allocator_traits<__pointer_allocator>::propagate_on_container_swap::value - || __is_nothrow_swappable<__pointer_allocator>::value) - && (!__node_traits::propagate_on_container_swap::value - || __is_nothrow_swappable<__node_allocator>::value) - ) -#else - _NOEXCEPT_(__is_nothrow_swappable::value && __is_nothrow_swappable::value) -#endif -{ - { - __node_pointer_pointer __npp = __bucket_list_.release(); - __bucket_list_.reset(__u.__bucket_list_.release()); - __u.__bucket_list_.reset(__npp); - } - _VSTD::swap(__bucket_list_.get_deleter().size(), __u.__bucket_list_.get_deleter().size()); - __swap_allocator(__bucket_list_.get_deleter().__alloc(), - __u.__bucket_list_.get_deleter().__alloc()); - __swap_allocator(__node_alloc(), __u.__node_alloc()); - _VSTD::swap(__p1_.first().__next_, __u.__p1_.first().__next_); - __p2_.swap(__u.__p2_); - __p3_.swap(__u.__p3_); - if (size() > 0) - __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash_, bucket_count())] = - static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())); - if (__u.size() > 0) - __u.__bucket_list_[__constrain_hash(__u.__p1_.first().__next_->__hash_, __u.bucket_count())] = - static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__u.__p1_.first())); -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->swap(this, &__u); -#endif -} - -template -typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type -__hash_table<_Tp, _Hash, _Equal, _Alloc>::bucket_size(size_type __n) const -{ - _LIBCPP_ASSERT(__n < bucket_count(), - "unordered container::bucket_size(n) called with n >= bucket_count()"); - __node_const_pointer __np = __bucket_list_[__n]; - size_type __bc = bucket_count(); - size_type __r = 0; - if (__np != nullptr) - { - for (__np = __np->__next_; __np != nullptr && - __constrain_hash(__np->__hash_, __bc) == __n; - __np = __np->__next_, ++__r) - ; - } - return __r; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(__hash_table<_Tp, _Hash, _Equal, _Alloc>& __x, - __hash_table<_Tp, _Hash, _Equal, _Alloc>& __y) - _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) -{ - __x.swap(__y); -} - -#if _LIBCPP_DEBUG_LEVEL >= 2 - -template -bool -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__dereferenceable(const const_iterator* __i) const -{ - return __i->__node_ != nullptr; -} - -template -bool -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__decrementable(const const_iterator*) const -{ - return false; -} - -template -bool -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__addable(const const_iterator*, ptrdiff_t) const -{ - return false; -} - -template -bool -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__subscriptable(const const_iterator*, ptrdiff_t) const -{ - return false; -} - -#endif // _LIBCPP_DEBUG_LEVEL >= 2 -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP__HASH_TABLE diff --git a/headers/libs/libc++/__locale b/headers/libs/libc++/__locale deleted file mode 100644 index 19895582ca..0000000000 --- a/headers/libs/libc++/__locale +++ /dev/null @@ -1,1475 +0,0 @@ -// -*- C++ -*- -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP___LOCALE -#define _LIBCPP___LOCALE - -#include <__config> -#include -#include -#include -#include -#include -#include -#include -#if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__) -# include -#elif defined(_AIX) -# include -#elif defined(__ANDROID__) -// Android gained the locale aware functions in L (API level 21) -# include -# if __ANDROID_API__ <= 20 -# include -# endif -#elif defined(__sun__) -# include -# include -#elif defined(_NEWLIB_VERSION) -# include -#elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) \ - || defined(__EMSCRIPTEN__) || defined(__IBMCPP__)) -# include -#endif // __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun__ || __EMSCRIPTEN__ || __IBMCPP__ - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -class _LIBCPP_TYPE_VIS locale; - -template -_LIBCPP_INLINE_VISIBILITY -bool -has_facet(const locale&) _NOEXCEPT; - -template -_LIBCPP_INLINE_VISIBILITY -const _Facet& -use_facet(const locale&); - -class _LIBCPP_TYPE_VIS locale -{ -public: - // types: - class _LIBCPP_TYPE_VIS facet; - class _LIBCPP_TYPE_VIS id; - - typedef int category; - static const category // values assigned here are for exposition only - none = 0, - collate = LC_COLLATE_MASK, - ctype = LC_CTYPE_MASK, - monetary = LC_MONETARY_MASK, - numeric = LC_NUMERIC_MASK, - time = LC_TIME_MASK, - messages = LC_MESSAGES_MASK, - all = collate | ctype | monetary | numeric | time | messages; - - // construct/copy/destroy: - locale() _NOEXCEPT; - locale(const locale&) _NOEXCEPT; - explicit locale(const char*); - explicit locale(const string&); - locale(const locale&, const char*, category); - locale(const locale&, const string&, category); - template - _LIBCPP_INLINE_VISIBILITY locale(const locale&, _Facet*); - locale(const locale&, const locale&, category); - - ~locale(); - - const locale& operator=(const locale&) _NOEXCEPT; - - template locale combine(const locale&) const; - - // locale operations: - string name() const; - bool operator==(const locale&) const; - bool operator!=(const locale& __y) const {return !(*this == __y);} - template - bool operator()(const basic_string<_CharT, _Traits, _Allocator>&, - const basic_string<_CharT, _Traits, _Allocator>&) const; - - // global locale objects: - static locale global(const locale&); - static const locale& classic(); - -private: - class __imp; - __imp* __locale_; - - void __install_ctor(const locale&, facet*, long); - static locale& __global(); - bool has_facet(id&) const; - const facet* use_facet(id&) const; - - template friend bool has_facet(const locale&) _NOEXCEPT; - template friend const _Facet& use_facet(const locale&); -}; - -class _LIBCPP_TYPE_VIS locale::facet - : public __shared_count -{ -protected: - _LIBCPP_INLINE_VISIBILITY - explicit facet(size_t __refs = 0) - : __shared_count(static_cast(__refs)-1) {} - - virtual ~facet(); - -// facet(const facet&) = delete; // effectively done in __shared_count -// void operator=(const facet&) = delete; -private: - virtual void __on_zero_shared() _NOEXCEPT; -}; - -class _LIBCPP_TYPE_VIS locale::id -{ - once_flag __flag_; - int32_t __id_; - - static int32_t __next_id; -public: - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR id() :__id_(0) {} -private: - void __init(); - void operator=(const id&); // = delete; - id(const id&); // = delete; -public: // only needed for tests - long __get(); - - friend class locale; - friend class locale::__imp; -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -locale::locale(const locale& __other, _Facet* __f) -{ - __install_ctor(__other, __f, __f ? __f->id.__get() : 0); -} - -template -locale -locale::combine(const locale& __other) const -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - if (!_VSTD::has_facet<_Facet>(__other)) - throw runtime_error("locale::combine: locale missing facet"); -#endif // _LIBCPP_NO_EXCEPTIONS - return locale(*this, &const_cast<_Facet&>(_VSTD::use_facet<_Facet>(__other))); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -has_facet(const locale& __l) _NOEXCEPT -{ - return __l.has_facet(_Facet::id); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -const _Facet& -use_facet(const locale& __l) -{ - return static_cast(*__l.use_facet(_Facet::id)); -} - -// template class collate; - -template -class _LIBCPP_TYPE_VIS_ONLY collate - : public locale::facet -{ -public: - typedef _CharT char_type; - typedef basic_string string_type; - - _LIBCPP_INLINE_VISIBILITY - explicit collate(size_t __refs = 0) - : locale::facet(__refs) {} - - _LIBCPP_INLINE_VISIBILITY - int compare(const char_type* __lo1, const char_type* __hi1, - const char_type* __lo2, const char_type* __hi2) const - { - return do_compare(__lo1, __hi1, __lo2, __hi2); - } - - _LIBCPP_INLINE_VISIBILITY - string_type transform(const char_type* __lo, const char_type* __hi) const - { - return do_transform(__lo, __hi); - } - - _LIBCPP_INLINE_VISIBILITY - long hash(const char_type* __lo, const char_type* __hi) const - { - return do_hash(__lo, __hi); - } - - static locale::id id; - -protected: - ~collate(); - virtual int do_compare(const char_type* __lo1, const char_type* __hi1, - const char_type* __lo2, const char_type* __hi2) const; - virtual string_type do_transform(const char_type* __lo, const char_type* __hi) const - {return string_type(__lo, __hi);} - virtual long do_hash(const char_type* __lo, const char_type* __hi) const; -}; - -template locale::id collate<_CharT>::id; - -template -collate<_CharT>::~collate() -{ -} - -template -int -collate<_CharT>::do_compare(const char_type* __lo1, const char_type* __hi1, - const char_type* __lo2, const char_type* __hi2) const -{ - for (; __lo2 != __hi2; ++__lo1, ++__lo2) - { - if (__lo1 == __hi1 || *__lo1 < *__lo2) - return -1; - if (*__lo2 < *__lo1) - return 1; - } - return __lo1 != __hi1; -} - -template -long -collate<_CharT>::do_hash(const char_type* __lo, const char_type* __hi) const -{ - size_t __h = 0; - const size_t __sr = __CHAR_BIT__ * sizeof(size_t) - 8; - const size_t __mask = size_t(0xF) << (__sr + 4); - for(const char_type* __p = __lo; __p != __hi; ++__p) - { - __h = (__h << 4) + static_cast(*__p); - size_t __g = __h & __mask; - __h ^= __g | (__g >> __sr); - } - return static_cast(__h); -} - -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS collate) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS collate) - -// template class collate_byname; - -template class _LIBCPP_TYPE_VIS_ONLY collate_byname; - -template <> -class _LIBCPP_TYPE_VIS collate_byname - : public collate -{ - locale_t __l; -public: - typedef char char_type; - typedef basic_string string_type; - - explicit collate_byname(const char* __n, size_t __refs = 0); - explicit collate_byname(const string& __n, size_t __refs = 0); - -protected: - ~collate_byname(); - virtual int do_compare(const char_type* __lo1, const char_type* __hi1, - const char_type* __lo2, const char_type* __hi2) const; - virtual string_type do_transform(const char_type* __lo, const char_type* __hi) const; -}; - -template <> -class _LIBCPP_TYPE_VIS collate_byname - : public collate -{ - locale_t __l; -public: - typedef wchar_t char_type; - typedef basic_string string_type; - - explicit collate_byname(const char* __n, size_t __refs = 0); - explicit collate_byname(const string& __n, size_t __refs = 0); - -protected: - ~collate_byname(); - - virtual int do_compare(const char_type* __lo1, const char_type* __hi1, - const char_type* __lo2, const char_type* __hi2) const; - virtual string_type do_transform(const char_type* __lo, const char_type* __hi) const; -}; - -template -bool -locale::operator()(const basic_string<_CharT, _Traits, _Allocator>& __x, - const basic_string<_CharT, _Traits, _Allocator>& __y) const -{ - return _VSTD::use_facet<_VSTD::collate<_CharT> >(*this).compare( - __x.data(), __x.data() + __x.size(), - __y.data(), __y.data() + __y.size()) < 0; -} - -// template class ctype - -class _LIBCPP_TYPE_VIS ctype_base -{ -public: -#ifdef __GLIBC__ - typedef unsigned short mask; - static const mask space = _ISspace; - static const mask print = _ISprint; - static const mask cntrl = _IScntrl; - static const mask upper = _ISupper; - static const mask lower = _ISlower; - static const mask alpha = _ISalpha; - static const mask digit = _ISdigit; - static const mask punct = _ISpunct; - static const mask xdigit = _ISxdigit; - static const mask blank = _ISblank; -#elif defined(_WIN32) - typedef unsigned short mask; - static const mask space = _SPACE; - static const mask print = _BLANK|_PUNCT|_ALPHA|_DIGIT; - static const mask cntrl = _CONTROL; - static const mask upper = _UPPER; - static const mask lower = _LOWER; - static const mask alpha = _ALPHA; - static const mask digit = _DIGIT; - static const mask punct = _PUNCT; - static const mask xdigit = _HEX; - static const mask blank = _BLANK; -# define _LIBCPP_CTYPE_MASK_IS_COMPOSITE_PRINT -#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__EMSCRIPTEN__) || defined(__NetBSD__) -# ifdef __APPLE__ - typedef __uint32_t mask; -# elif defined(__FreeBSD__) - typedef unsigned long mask; -# elif defined(__EMSCRIPTEN__) || defined(__NetBSD__) - typedef unsigned short mask; -# endif - static const mask space = _CTYPE_S; - static const mask print = _CTYPE_R; - static const mask cntrl = _CTYPE_C; - static const mask upper = _CTYPE_U; - static const mask lower = _CTYPE_L; - static const mask alpha = _CTYPE_A; - static const mask digit = _CTYPE_D; - static const mask punct = _CTYPE_P; - static const mask xdigit = _CTYPE_X; - -# if defined(__NetBSD__) - static const mask blank = _CTYPE_BL; -# else - static const mask blank = _CTYPE_B; -# endif -#elif defined(__sun__) || defined(_AIX) - typedef unsigned int mask; - static const mask space = _ISSPACE; - static const mask print = _ISPRINT; - static const mask cntrl = _ISCNTRL; - static const mask upper = _ISUPPER; - static const mask lower = _ISLOWER; - static const mask alpha = _ISALPHA; - static const mask digit = _ISDIGIT; - static const mask punct = _ISPUNCT; - static const mask xdigit = _ISXDIGIT; - static const mask blank = _ISBLANK; -#elif defined(_NEWLIB_VERSION) - // Same type as Newlib's _ctype_ array in newlib/libc/include/ctype.h. - typedef char mask; - static const mask space = _S; - static const mask print = _P | _U | _L | _N | _B; - static const mask cntrl = _C; - static const mask upper = _U; - static const mask lower = _L; - static const mask alpha = _U | _L; - static const mask digit = _N; - static const mask punct = _P; - static const mask xdigit = _X | _N; - static const mask blank = _B; -# define _LIBCPP_CTYPE_MASK_IS_COMPOSITE_PRINT -# define _LIBCPP_CTYPE_MASK_IS_COMPOSITE_ALPHA -# define _LIBCPP_CTYPE_MASK_IS_COMPOSITE_XDIGIT -#else - typedef unsigned long mask; - static const mask space = 1<<0; - static const mask print = 1<<1; - static const mask cntrl = 1<<2; - static const mask upper = 1<<3; - static const mask lower = 1<<4; - static const mask alpha = 1<<5; - static const mask digit = 1<<6; - static const mask punct = 1<<7; - static const mask xdigit = 1<<8; - static const mask blank = 1<<9; -#endif - static const mask alnum = alpha | digit; - static const mask graph = alnum | punct; - - _LIBCPP_ALWAYS_INLINE ctype_base() {} -}; - -template class _LIBCPP_TYPE_VIS_ONLY ctype; - -template <> -class _LIBCPP_TYPE_VIS ctype - : public locale::facet, - public ctype_base -{ -public: - typedef wchar_t char_type; - - _LIBCPP_ALWAYS_INLINE - explicit ctype(size_t __refs = 0) - : locale::facet(__refs) {} - - _LIBCPP_ALWAYS_INLINE - bool is(mask __m, char_type __c) const - { - return do_is(__m, __c); - } - - _LIBCPP_ALWAYS_INLINE - const char_type* is(const char_type* __low, const char_type* __high, mask* __vec) const - { - return do_is(__low, __high, __vec); - } - - _LIBCPP_ALWAYS_INLINE - const char_type* scan_is(mask __m, const char_type* __low, const char_type* __high) const - { - return do_scan_is(__m, __low, __high); - } - - _LIBCPP_ALWAYS_INLINE - const char_type* scan_not(mask __m, const char_type* __low, const char_type* __high) const - { - return do_scan_not(__m, __low, __high); - } - - _LIBCPP_ALWAYS_INLINE - char_type toupper(char_type __c) const - { - return do_toupper(__c); - } - - _LIBCPP_ALWAYS_INLINE - const char_type* toupper(char_type* __low, const char_type* __high) const - { - return do_toupper(__low, __high); - } - - _LIBCPP_ALWAYS_INLINE - char_type tolower(char_type __c) const - { - return do_tolower(__c); - } - - _LIBCPP_ALWAYS_INLINE - const char_type* tolower(char_type* __low, const char_type* __high) const - { - return do_tolower(__low, __high); - } - - _LIBCPP_ALWAYS_INLINE - char_type widen(char __c) const - { - return do_widen(__c); - } - - _LIBCPP_ALWAYS_INLINE - const char* widen(const char* __low, const char* __high, char_type* __to) const - { - return do_widen(__low, __high, __to); - } - - _LIBCPP_ALWAYS_INLINE - char narrow(char_type __c, char __dfault) const - { - return do_narrow(__c, __dfault); - } - - _LIBCPP_ALWAYS_INLINE - const char_type* narrow(const char_type* __low, const char_type* __high, char __dfault, char* __to) const - { - return do_narrow(__low, __high, __dfault, __to); - } - - static locale::id id; - -protected: - ~ctype(); - virtual bool do_is(mask __m, char_type __c) const; - virtual const char_type* do_is(const char_type* __low, const char_type* __high, mask* __vec) const; - virtual const char_type* do_scan_is(mask __m, const char_type* __low, const char_type* __high) const; - virtual const char_type* do_scan_not(mask __m, const char_type* __low, const char_type* __high) const; - virtual char_type do_toupper(char_type) const; - virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const; - virtual char_type do_tolower(char_type) const; - virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const; - virtual char_type do_widen(char) const; - virtual const char* do_widen(const char* __low, const char* __high, char_type* __dest) const; - virtual char do_narrow(char_type, char __dfault) const; - virtual const char_type* do_narrow(const char_type* __low, const char_type* __high, char __dfault, char* __dest) const; -}; - -template <> -class _LIBCPP_TYPE_VIS ctype - : public locale::facet, public ctype_base -{ - const mask* __tab_; - bool __del_; -public: - typedef char char_type; - - explicit ctype(const mask* __tab = 0, bool __del = false, size_t __refs = 0); - - _LIBCPP_ALWAYS_INLINE - bool is(mask __m, char_type __c) const - { - return isascii(__c) ? (__tab_[static_cast(__c)] & __m) !=0 : false; - } - - _LIBCPP_ALWAYS_INLINE - const char_type* is(const char_type* __low, const char_type* __high, mask* __vec) const - { - for (; __low != __high; ++__low, ++__vec) - *__vec = isascii(*__low) ? __tab_[static_cast(*__low)] : 0; - return __low; - } - - _LIBCPP_ALWAYS_INLINE - const char_type* scan_is (mask __m, const char_type* __low, const char_type* __high) const - { - for (; __low != __high; ++__low) - if (isascii(*__low) && (__tab_[static_cast(*__low)] & __m)) - break; - return __low; - } - - _LIBCPP_ALWAYS_INLINE - const char_type* scan_not(mask __m, const char_type* __low, const char_type* __high) const - { - for (; __low != __high; ++__low) - if (!(isascii(*__low) && (__tab_[static_cast(*__low)] & __m))) - break; - return __low; - } - - _LIBCPP_ALWAYS_INLINE - char_type toupper(char_type __c) const - { - return do_toupper(__c); - } - - _LIBCPP_ALWAYS_INLINE - const char_type* toupper(char_type* __low, const char_type* __high) const - { - return do_toupper(__low, __high); - } - - _LIBCPP_ALWAYS_INLINE - char_type tolower(char_type __c) const - { - return do_tolower(__c); - } - - _LIBCPP_ALWAYS_INLINE - const char_type* tolower(char_type* __low, const char_type* __high) const - { - return do_tolower(__low, __high); - } - - _LIBCPP_ALWAYS_INLINE - char_type widen(char __c) const - { - return do_widen(__c); - } - - _LIBCPP_ALWAYS_INLINE - const char* widen(const char* __low, const char* __high, char_type* __to) const - { - return do_widen(__low, __high, __to); - } - - _LIBCPP_ALWAYS_INLINE - char narrow(char_type __c, char __dfault) const - { - return do_narrow(__c, __dfault); - } - - _LIBCPP_ALWAYS_INLINE - const char* narrow(const char_type* __low, const char_type* __high, char __dfault, char* __to) const - { - return do_narrow(__low, __high, __dfault, __to); - } - - static locale::id id; - -#ifdef _CACHED_RUNES - static const size_t table_size = _CACHED_RUNES; -#else - static const size_t table_size = 256; // FIXME: Don't hardcode this. -#endif - _LIBCPP_ALWAYS_INLINE const mask* table() const _NOEXCEPT {return __tab_;} - static const mask* classic_table() _NOEXCEPT; -#if defined(__GLIBC__) || defined(__EMSCRIPTEN__) - static const int* __classic_upper_table() _NOEXCEPT; - static const int* __classic_lower_table() _NOEXCEPT; -#endif -#if defined(__NetBSD__) - static const short* __classic_upper_table() _NOEXCEPT; - static const short* __classic_lower_table() _NOEXCEPT; -#endif - -protected: - ~ctype(); - virtual char_type do_toupper(char_type __c) const; - virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const; - virtual char_type do_tolower(char_type __c) const; - virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const; - virtual char_type do_widen(char __c) const; - virtual const char* do_widen(const char* __low, const char* __high, char_type* __to) const; - virtual char do_narrow(char_type __c, char __dfault) const; - virtual const char* do_narrow(const char_type* __low, const char_type* __high, char __dfault, char* __to) const; -}; - -// template class ctype_byname; - -template class _LIBCPP_TYPE_VIS_ONLY ctype_byname; - -template <> -class _LIBCPP_TYPE_VIS ctype_byname - : public ctype -{ - locale_t __l; - -public: - explicit ctype_byname(const char*, size_t = 0); - explicit ctype_byname(const string&, size_t = 0); - -protected: - ~ctype_byname(); - virtual char_type do_toupper(char_type) const; - virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const; - virtual char_type do_tolower(char_type) const; - virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const; -}; - -template <> -class _LIBCPP_TYPE_VIS ctype_byname - : public ctype -{ - locale_t __l; - -public: - explicit ctype_byname(const char*, size_t = 0); - explicit ctype_byname(const string&, size_t = 0); - -protected: - ~ctype_byname(); - virtual bool do_is(mask __m, char_type __c) const; - virtual const char_type* do_is(const char_type* __low, const char_type* __high, mask* __vec) const; - virtual const char_type* do_scan_is(mask __m, const char_type* __low, const char_type* __high) const; - virtual const char_type* do_scan_not(mask __m, const char_type* __low, const char_type* __high) const; - virtual char_type do_toupper(char_type) const; - virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const; - virtual char_type do_tolower(char_type) const; - virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const; - virtual char_type do_widen(char) const; - virtual const char* do_widen(const char* __low, const char* __high, char_type* __dest) const; - virtual char do_narrow(char_type, char __dfault) const; - virtual const char_type* do_narrow(const char_type* __low, const char_type* __high, char __dfault, char* __dest) const; -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -isspace(_CharT __c, const locale& __loc) -{ - return use_facet >(__loc).is(ctype_base::space, __c); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -isprint(_CharT __c, const locale& __loc) -{ - return use_facet >(__loc).is(ctype_base::print, __c); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -iscntrl(_CharT __c, const locale& __loc) -{ - return use_facet >(__loc).is(ctype_base::cntrl, __c); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -isupper(_CharT __c, const locale& __loc) -{ - return use_facet >(__loc).is(ctype_base::upper, __c); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -islower(_CharT __c, const locale& __loc) -{ - return use_facet >(__loc).is(ctype_base::lower, __c); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -isalpha(_CharT __c, const locale& __loc) -{ - return use_facet >(__loc).is(ctype_base::alpha, __c); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -isdigit(_CharT __c, const locale& __loc) -{ - return use_facet >(__loc).is(ctype_base::digit, __c); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -ispunct(_CharT __c, const locale& __loc) -{ - return use_facet >(__loc).is(ctype_base::punct, __c); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -isxdigit(_CharT __c, const locale& __loc) -{ - return use_facet >(__loc).is(ctype_base::xdigit, __c); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -isalnum(_CharT __c, const locale& __loc) -{ - return use_facet >(__loc).is(ctype_base::alnum, __c); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -isgraph(_CharT __c, const locale& __loc) -{ - return use_facet >(__loc).is(ctype_base::graph, __c); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_CharT -toupper(_CharT __c, const locale& __loc) -{ - return use_facet >(__loc).toupper(__c); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_CharT -tolower(_CharT __c, const locale& __loc) -{ - return use_facet >(__loc).tolower(__c); -} - -// codecvt_base - -class _LIBCPP_TYPE_VIS codecvt_base -{ -public: - _LIBCPP_ALWAYS_INLINE codecvt_base() {} - enum result {ok, partial, error, noconv}; -}; - -// template class codecvt; - -template class _LIBCPP_TYPE_VIS_ONLY codecvt; - -// template <> class codecvt - -template <> -class _LIBCPP_TYPE_VIS codecvt - : public locale::facet, - public codecvt_base -{ -public: - typedef char intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - _LIBCPP_ALWAYS_INLINE - explicit codecvt(size_t __refs = 0) - : locale::facet(__refs) {} - - _LIBCPP_ALWAYS_INLINE - result out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const - { - return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); - } - - _LIBCPP_ALWAYS_INLINE - result unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const - { - return do_unshift(__st, __to, __to_end, __to_nxt); - } - - _LIBCPP_ALWAYS_INLINE - result in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const - { - return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); - } - - _LIBCPP_ALWAYS_INLINE - int encoding() const _NOEXCEPT - { - return do_encoding(); - } - - _LIBCPP_ALWAYS_INLINE - bool always_noconv() const _NOEXCEPT - { - return do_always_noconv(); - } - - _LIBCPP_ALWAYS_INLINE - int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const - { - return do_length(__st, __frm, __end, __mx); - } - - _LIBCPP_ALWAYS_INLINE - int max_length() const _NOEXCEPT - { - return do_max_length(); - } - - static locale::id id; - -protected: - _LIBCPP_ALWAYS_INLINE - explicit codecvt(const char*, size_t __refs = 0) - : locale::facet(__refs) {} - - ~codecvt(); - - virtual result do_out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual result do_in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; - virtual result do_unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const _NOEXCEPT; - virtual bool do_always_noconv() const _NOEXCEPT; - virtual int do_length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const; - virtual int do_max_length() const _NOEXCEPT; -}; - -// template <> class codecvt - -template <> -class _LIBCPP_TYPE_VIS codecvt - : public locale::facet, - public codecvt_base -{ - locale_t __l; -public: - typedef wchar_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - explicit codecvt(size_t __refs = 0); - - _LIBCPP_ALWAYS_INLINE - result out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const - { - return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); - } - - _LIBCPP_ALWAYS_INLINE - result unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const - { - return do_unshift(__st, __to, __to_end, __to_nxt); - } - - _LIBCPP_ALWAYS_INLINE - result in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const - { - return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); - } - - _LIBCPP_ALWAYS_INLINE - int encoding() const _NOEXCEPT - { - return do_encoding(); - } - - _LIBCPP_ALWAYS_INLINE - bool always_noconv() const _NOEXCEPT - { - return do_always_noconv(); - } - - _LIBCPP_ALWAYS_INLINE - int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const - { - return do_length(__st, __frm, __end, __mx); - } - - _LIBCPP_ALWAYS_INLINE - int max_length() const _NOEXCEPT - { - return do_max_length(); - } - - static locale::id id; - -protected: - explicit codecvt(const char*, size_t __refs = 0); - - ~codecvt(); - - virtual result do_out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual result do_in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; - virtual result do_unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const _NOEXCEPT; - virtual bool do_always_noconv() const _NOEXCEPT; - virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const; - virtual int do_max_length() const _NOEXCEPT; -}; - -// template <> class codecvt - -template <> -class _LIBCPP_TYPE_VIS codecvt - : public locale::facet, - public codecvt_base -{ -public: - typedef char16_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - _LIBCPP_ALWAYS_INLINE - explicit codecvt(size_t __refs = 0) - : locale::facet(__refs) {} - - _LIBCPP_ALWAYS_INLINE - result out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const - { - return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); - } - - _LIBCPP_ALWAYS_INLINE - result unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const - { - return do_unshift(__st, __to, __to_end, __to_nxt); - } - - _LIBCPP_ALWAYS_INLINE - result in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const - { - return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); - } - - _LIBCPP_ALWAYS_INLINE - int encoding() const _NOEXCEPT - { - return do_encoding(); - } - - _LIBCPP_ALWAYS_INLINE - bool always_noconv() const _NOEXCEPT - { - return do_always_noconv(); - } - - _LIBCPP_ALWAYS_INLINE - int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const - { - return do_length(__st, __frm, __end, __mx); - } - - _LIBCPP_ALWAYS_INLINE - int max_length() const _NOEXCEPT - { - return do_max_length(); - } - - static locale::id id; - -protected: - _LIBCPP_ALWAYS_INLINE - explicit codecvt(const char*, size_t __refs = 0) - : locale::facet(__refs) {} - - ~codecvt(); - - virtual result do_out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual result do_in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; - virtual result do_unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const _NOEXCEPT; - virtual bool do_always_noconv() const _NOEXCEPT; - virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const; - virtual int do_max_length() const _NOEXCEPT; -}; - -// template <> class codecvt - -template <> -class _LIBCPP_TYPE_VIS codecvt - : public locale::facet, - public codecvt_base -{ -public: - typedef char32_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - _LIBCPP_ALWAYS_INLINE - explicit codecvt(size_t __refs = 0) - : locale::facet(__refs) {} - - _LIBCPP_ALWAYS_INLINE - result out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const - { - return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); - } - - _LIBCPP_ALWAYS_INLINE - result unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const - { - return do_unshift(__st, __to, __to_end, __to_nxt); - } - - _LIBCPP_ALWAYS_INLINE - result in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const - { - return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); - } - - _LIBCPP_ALWAYS_INLINE - int encoding() const _NOEXCEPT - { - return do_encoding(); - } - - _LIBCPP_ALWAYS_INLINE - bool always_noconv() const _NOEXCEPT - { - return do_always_noconv(); - } - - _LIBCPP_ALWAYS_INLINE - int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const - { - return do_length(__st, __frm, __end, __mx); - } - - _LIBCPP_ALWAYS_INLINE - int max_length() const _NOEXCEPT - { - return do_max_length(); - } - - static locale::id id; - -protected: - _LIBCPP_ALWAYS_INLINE - explicit codecvt(const char*, size_t __refs = 0) - : locale::facet(__refs) {} - - ~codecvt(); - - virtual result do_out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual result do_in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; - virtual result do_unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const _NOEXCEPT; - virtual bool do_always_noconv() const _NOEXCEPT; - virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const; - virtual int do_max_length() const _NOEXCEPT; -}; - -// template class codecvt_byname - -template -class _LIBCPP_TYPE_VIS_ONLY codecvt_byname - : public codecvt<_InternT, _ExternT, _StateT> -{ -public: - _LIBCPP_ALWAYS_INLINE - explicit codecvt_byname(const char* __nm, size_t __refs = 0) - : codecvt<_InternT, _ExternT, _StateT>(__nm, __refs) {} - _LIBCPP_ALWAYS_INLINE - explicit codecvt_byname(const string& __nm, size_t __refs = 0) - : codecvt<_InternT, _ExternT, _StateT>(__nm.c_str(), __refs) {} -protected: - ~codecvt_byname(); -}; - -template -codecvt_byname<_InternT, _ExternT, _StateT>::~codecvt_byname() -{ -} - -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS codecvt_byname) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS codecvt_byname) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS codecvt_byname) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS codecvt_byname) - -_LIBCPP_FUNC_VIS void __throw_runtime_error(const char*); - -template -struct __narrow_to_utf8 -{ - template - _OutputIterator - operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const; -}; - -template <> -struct __narrow_to_utf8<8> -{ - template - _LIBCPP_ALWAYS_INLINE - _OutputIterator - operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const - { - for (; __wb < __we; ++__wb, ++__s) - *__s = *__wb; - return __s; - } -}; - -template <> -struct __narrow_to_utf8<16> - : public codecvt -{ - _LIBCPP_ALWAYS_INLINE - __narrow_to_utf8() : codecvt(1) {} - - ~__narrow_to_utf8(); - - template - _LIBCPP_ALWAYS_INLINE - _OutputIterator - operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const - { - result __r = ok; - mbstate_t __mb; - while (__wb < __we && __r != error) - { - const int __sz = 32; - char __buf[__sz]; - char* __bn; - const char16_t* __wn = (const char16_t*)__wb; - __r = do_out(__mb, (const char16_t*)__wb, (const char16_t*)__we, __wn, - __buf, __buf+__sz, __bn); - if (__r == codecvt_base::error || __wn == (const char16_t*)__wb) - __throw_runtime_error("locale not supported"); - for (const char* __p = __buf; __p < __bn; ++__p, ++__s) - *__s = *__p; - __wb = (const _CharT*)__wn; - } - return __s; - } -}; - -template <> -struct __narrow_to_utf8<32> - : public codecvt -{ - _LIBCPP_ALWAYS_INLINE - __narrow_to_utf8() : codecvt(1) {} - - ~__narrow_to_utf8(); - - template - _LIBCPP_ALWAYS_INLINE - _OutputIterator - operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const - { - result __r = ok; - mbstate_t __mb; - while (__wb < __we && __r != error) - { - const int __sz = 32; - char __buf[__sz]; - char* __bn; - const char32_t* __wn = (const char32_t*)__wb; - __r = do_out(__mb, (const char32_t*)__wb, (const char32_t*)__we, __wn, - __buf, __buf+__sz, __bn); - if (__r == codecvt_base::error || __wn == (const char32_t*)__wb) - __throw_runtime_error("locale not supported"); - for (const char* __p = __buf; __p < __bn; ++__p, ++__s) - *__s = *__p; - __wb = (const _CharT*)__wn; - } - return __s; - } -}; - -template -struct __widen_from_utf8 -{ - template - _OutputIterator - operator()(_OutputIterator __s, const char* __nb, const char* __ne) const; -}; - -template <> -struct __widen_from_utf8<8> -{ - template - _LIBCPP_ALWAYS_INLINE - _OutputIterator - operator()(_OutputIterator __s, const char* __nb, const char* __ne) const - { - for (; __nb < __ne; ++__nb, ++__s) - *__s = *__nb; - return __s; - } -}; - -template <> -struct __widen_from_utf8<16> - : public codecvt -{ - _LIBCPP_ALWAYS_INLINE - __widen_from_utf8() : codecvt(1) {} - - ~__widen_from_utf8(); - - template - _LIBCPP_ALWAYS_INLINE - _OutputIterator - operator()(_OutputIterator __s, const char* __nb, const char* __ne) const - { - result __r = ok; - mbstate_t __mb; - while (__nb < __ne && __r != error) - { - const int __sz = 32; - char16_t __buf[__sz]; - char16_t* __bn; - const char* __nn = __nb; - __r = do_in(__mb, __nb, __ne - __nb > __sz ? __nb+__sz : __ne, __nn, - __buf, __buf+__sz, __bn); - if (__r == codecvt_base::error || __nn == __nb) - __throw_runtime_error("locale not supported"); - for (const char16_t* __p = __buf; __p < __bn; ++__p, ++__s) - *__s = (wchar_t)*__p; - __nb = __nn; - } - return __s; - } -}; - -template <> -struct __widen_from_utf8<32> - : public codecvt -{ - _LIBCPP_ALWAYS_INLINE - __widen_from_utf8() : codecvt(1) {} - - ~__widen_from_utf8(); - - template - _LIBCPP_ALWAYS_INLINE - _OutputIterator - operator()(_OutputIterator __s, const char* __nb, const char* __ne) const - { - result __r = ok; - mbstate_t __mb; - while (__nb < __ne && __r != error) - { - const int __sz = 32; - char32_t __buf[__sz]; - char32_t* __bn; - const char* __nn = __nb; - __r = do_in(__mb, __nb, __ne - __nb > __sz ? __nb+__sz : __ne, __nn, - __buf, __buf+__sz, __bn); - if (__r == codecvt_base::error || __nn == __nb) - __throw_runtime_error("locale not supported"); - for (const char32_t* __p = __buf; __p < __bn; ++__p, ++__s) - *__s = (wchar_t)*__p; - __nb = __nn; - } - return __s; - } -}; - -// template class numpunct - -template class _LIBCPP_TYPE_VIS_ONLY numpunct; - -template <> -class _LIBCPP_TYPE_VIS numpunct - : public locale::facet -{ -public: - typedef char char_type; - typedef basic_string string_type; - - explicit numpunct(size_t __refs = 0); - - _LIBCPP_ALWAYS_INLINE char_type decimal_point() const {return do_decimal_point();} - _LIBCPP_ALWAYS_INLINE char_type thousands_sep() const {return do_thousands_sep();} - _LIBCPP_ALWAYS_INLINE string grouping() const {return do_grouping();} - _LIBCPP_ALWAYS_INLINE string_type truename() const {return do_truename();} - _LIBCPP_ALWAYS_INLINE string_type falsename() const {return do_falsename();} - - static locale::id id; - -protected: - ~numpunct(); - virtual char_type do_decimal_point() const; - virtual char_type do_thousands_sep() const; - virtual string do_grouping() const; - virtual string_type do_truename() const; - virtual string_type do_falsename() const; - - char_type __decimal_point_; - char_type __thousands_sep_; - string __grouping_; -}; - -template <> -class _LIBCPP_TYPE_VIS numpunct - : public locale::facet -{ -public: - typedef wchar_t char_type; - typedef basic_string string_type; - - explicit numpunct(size_t __refs = 0); - - _LIBCPP_ALWAYS_INLINE char_type decimal_point() const {return do_decimal_point();} - _LIBCPP_ALWAYS_INLINE char_type thousands_sep() const {return do_thousands_sep();} - _LIBCPP_ALWAYS_INLINE string grouping() const {return do_grouping();} - _LIBCPP_ALWAYS_INLINE string_type truename() const {return do_truename();} - _LIBCPP_ALWAYS_INLINE string_type falsename() const {return do_falsename();} - - static locale::id id; - -protected: - ~numpunct(); - virtual char_type do_decimal_point() const; - virtual char_type do_thousands_sep() const; - virtual string do_grouping() const; - virtual string_type do_truename() const; - virtual string_type do_falsename() const; - - char_type __decimal_point_; - char_type __thousands_sep_; - string __grouping_; -}; - -// template class numpunct_byname - -template class _LIBCPP_TYPE_VIS_ONLY numpunct_byname; - -template <> -class _LIBCPP_TYPE_VIS numpunct_byname -: public numpunct -{ -public: - typedef char char_type; - typedef basic_string string_type; - - explicit numpunct_byname(const char* __nm, size_t __refs = 0); - explicit numpunct_byname(const string& __nm, size_t __refs = 0); - -protected: - ~numpunct_byname(); - -private: - void __init(const char*); -}; - -template <> -class _LIBCPP_TYPE_VIS numpunct_byname -: public numpunct -{ -public: - typedef wchar_t char_type; - typedef basic_string string_type; - - explicit numpunct_byname(const char* __nm, size_t __refs = 0); - explicit numpunct_byname(const string& __nm, size_t __refs = 0); - -protected: - ~numpunct_byname(); - -private: - void __init(const char*); -}; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP___LOCALE diff --git a/headers/libs/libc++/__mutex_base b/headers/libs/libc++/__mutex_base deleted file mode 100644 index b019b4760d..0000000000 --- a/headers/libs/libc++/__mutex_base +++ /dev/null @@ -1,410 +0,0 @@ -// -*- C++ -*- -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP___MUTEX_BASE -#define _LIBCPP___MUTEX_BASE - -#include <__config> -#include -#include -#ifndef _LIBCPP_HAS_NO_THREADS -#include -#endif - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -#ifndef _LIBCPP_HAS_NO_THREADS - -class _LIBCPP_TYPE_VIS mutex -{ - pthread_mutex_t __m_; - -public: - _LIBCPP_INLINE_VISIBILITY -#ifndef _LIBCPP_HAS_NO_CONSTEXPR - constexpr mutex() _NOEXCEPT : __m_(PTHREAD_MUTEX_INITIALIZER) {} -#else - mutex() _NOEXCEPT {__m_ = (pthread_mutex_t)PTHREAD_MUTEX_INITIALIZER;} -#endif - ~mutex(); - -private: - mutex(const mutex&);// = delete; - mutex& operator=(const mutex&);// = delete; - -public: - void lock(); - bool try_lock() _NOEXCEPT; - void unlock() _NOEXCEPT; - - typedef pthread_mutex_t* native_handle_type; - _LIBCPP_INLINE_VISIBILITY native_handle_type native_handle() {return &__m_;} -}; - -struct _LIBCPP_TYPE_VIS defer_lock_t {}; -struct _LIBCPP_TYPE_VIS try_to_lock_t {}; -struct _LIBCPP_TYPE_VIS adopt_lock_t {}; - -#if defined(_LIBCPP_HAS_NO_CONSTEXPR) || defined(_LIBCPP_BUILDING_MUTEX) - -extern const defer_lock_t defer_lock; -extern const try_to_lock_t try_to_lock; -extern const adopt_lock_t adopt_lock; - -#else - -constexpr defer_lock_t defer_lock = defer_lock_t(); -constexpr try_to_lock_t try_to_lock = try_to_lock_t(); -constexpr adopt_lock_t adopt_lock = adopt_lock_t(); - -#endif - -template -class _LIBCPP_TYPE_VIS_ONLY lock_guard -{ -public: - typedef _Mutex mutex_type; - -private: - mutex_type& __m_; -public: - - _LIBCPP_INLINE_VISIBILITY - explicit lock_guard(mutex_type& __m) - : __m_(__m) {__m_.lock();} - _LIBCPP_INLINE_VISIBILITY - lock_guard(mutex_type& __m, adopt_lock_t) - : __m_(__m) {} - _LIBCPP_INLINE_VISIBILITY - ~lock_guard() {__m_.unlock();} - -private: - lock_guard(lock_guard const&);// = delete; - lock_guard& operator=(lock_guard const&);// = delete; -}; - -template -class _LIBCPP_TYPE_VIS_ONLY unique_lock -{ -public: - typedef _Mutex mutex_type; - -private: - mutex_type* __m_; - bool __owns_; - -public: - _LIBCPP_INLINE_VISIBILITY - unique_lock() _NOEXCEPT : __m_(nullptr), __owns_(false) {} - _LIBCPP_INLINE_VISIBILITY - explicit unique_lock(mutex_type& __m) - : __m_(&__m), __owns_(true) {__m_->lock();} - _LIBCPP_INLINE_VISIBILITY - unique_lock(mutex_type& __m, defer_lock_t) _NOEXCEPT - : __m_(&__m), __owns_(false) {} - _LIBCPP_INLINE_VISIBILITY - unique_lock(mutex_type& __m, try_to_lock_t) - : __m_(&__m), __owns_(__m.try_lock()) {} - _LIBCPP_INLINE_VISIBILITY - unique_lock(mutex_type& __m, adopt_lock_t) - : __m_(&__m), __owns_(true) {} - template - _LIBCPP_INLINE_VISIBILITY - unique_lock(mutex_type& __m, const chrono::time_point<_Clock, _Duration>& __t) - : __m_(&__m), __owns_(__m.try_lock_until(__t)) {} - template - _LIBCPP_INLINE_VISIBILITY - unique_lock(mutex_type& __m, const chrono::duration<_Rep, _Period>& __d) - : __m_(&__m), __owns_(__m.try_lock_for(__d)) {} - _LIBCPP_INLINE_VISIBILITY - ~unique_lock() - { - if (__owns_) - __m_->unlock(); - } - -private: - unique_lock(unique_lock const&); // = delete; - unique_lock& operator=(unique_lock const&); // = delete; - -public: -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - unique_lock(unique_lock&& __u) _NOEXCEPT - : __m_(__u.__m_), __owns_(__u.__owns_) - {__u.__m_ = nullptr; __u.__owns_ = false;} - _LIBCPP_INLINE_VISIBILITY - unique_lock& operator=(unique_lock&& __u) _NOEXCEPT - { - if (__owns_) - __m_->unlock(); - __m_ = __u.__m_; - __owns_ = __u.__owns_; - __u.__m_ = nullptr; - __u.__owns_ = false; - return *this; - } - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - void lock(); - bool try_lock(); - - template - bool try_lock_for(const chrono::duration<_Rep, _Period>& __d); - template - bool try_lock_until(const chrono::time_point<_Clock, _Duration>& __t); - - void unlock(); - - _LIBCPP_INLINE_VISIBILITY - void swap(unique_lock& __u) _NOEXCEPT - { - _VSTD::swap(__m_, __u.__m_); - _VSTD::swap(__owns_, __u.__owns_); - } - _LIBCPP_INLINE_VISIBILITY - mutex_type* release() _NOEXCEPT - { - mutex_type* __m = __m_; - __m_ = nullptr; - __owns_ = false; - return __m; - } - - _LIBCPP_INLINE_VISIBILITY - bool owns_lock() const _NOEXCEPT {return __owns_;} - _LIBCPP_INLINE_VISIBILITY - _LIBCPP_EXPLICIT - operator bool () const _NOEXCEPT {return __owns_;} - _LIBCPP_INLINE_VISIBILITY - mutex_type* mutex() const _NOEXCEPT {return __m_;} -}; - -template -void -unique_lock<_Mutex>::lock() -{ - if (__m_ == nullptr) - __throw_system_error(EPERM, "unique_lock::lock: references null mutex"); - if (__owns_) - __throw_system_error(EDEADLK, "unique_lock::lock: already locked"); - __m_->lock(); - __owns_ = true; -} - -template -bool -unique_lock<_Mutex>::try_lock() -{ - if (__m_ == nullptr) - __throw_system_error(EPERM, "unique_lock::try_lock: references null mutex"); - if (__owns_) - __throw_system_error(EDEADLK, "unique_lock::try_lock: already locked"); - __owns_ = __m_->try_lock(); - return __owns_; -} - -template -template -bool -unique_lock<_Mutex>::try_lock_for(const chrono::duration<_Rep, _Period>& __d) -{ - if (__m_ == nullptr) - __throw_system_error(EPERM, "unique_lock::try_lock_for: references null mutex"); - if (__owns_) - __throw_system_error(EDEADLK, "unique_lock::try_lock_for: already locked"); - __owns_ = __m_->try_lock_for(__d); - return __owns_; -} - -template -template -bool -unique_lock<_Mutex>::try_lock_until(const chrono::time_point<_Clock, _Duration>& __t) -{ - if (__m_ == nullptr) - __throw_system_error(EPERM, "unique_lock::try_lock_until: references null mutex"); - if (__owns_) - __throw_system_error(EDEADLK, "unique_lock::try_lock_until: already locked"); - __owns_ = __m_->try_lock_until(__t); - return __owns_; -} - -template -void -unique_lock<_Mutex>::unlock() -{ - if (!__owns_) - __throw_system_error(EPERM, "unique_lock::unlock: not locked"); - __m_->unlock(); - __owns_ = false; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(unique_lock<_Mutex>& __x, unique_lock<_Mutex>& __y) _NOEXCEPT - {__x.swap(__y);} - -//enum class cv_status -_LIBCPP_DECLARE_STRONG_ENUM(cv_status) -{ - no_timeout, - timeout -}; -_LIBCPP_DECLARE_STRONG_ENUM_EPILOG(cv_status) - -class _LIBCPP_TYPE_VIS condition_variable -{ - pthread_cond_t __cv_; -public: - _LIBCPP_INLINE_VISIBILITY -#ifndef _LIBCPP_HAS_NO_CONSTEXPR - constexpr condition_variable() : __cv_(PTHREAD_COND_INITIALIZER) {} -#else - condition_variable() {__cv_ = (pthread_cond_t)PTHREAD_COND_INITIALIZER;} -#endif - ~condition_variable(); - -private: - condition_variable(const condition_variable&); // = delete; - condition_variable& operator=(const condition_variable&); // = delete; - -public: - void notify_one() _NOEXCEPT; - void notify_all() _NOEXCEPT; - - void wait(unique_lock& __lk) _NOEXCEPT; - template - void wait(unique_lock& __lk, _Predicate __pred); - - template - cv_status - wait_until(unique_lock& __lk, - const chrono::time_point<_Clock, _Duration>& __t); - - template - bool - wait_until(unique_lock& __lk, - const chrono::time_point<_Clock, _Duration>& __t, - _Predicate __pred); - - template - cv_status - wait_for(unique_lock& __lk, - const chrono::duration<_Rep, _Period>& __d); - - template - bool - _LIBCPP_INLINE_VISIBILITY - wait_for(unique_lock& __lk, - const chrono::duration<_Rep, _Period>& __d, - _Predicate __pred); - - typedef pthread_cond_t* native_handle_type; - _LIBCPP_INLINE_VISIBILITY native_handle_type native_handle() {return &__cv_;} - -private: - void __do_timed_wait(unique_lock& __lk, - chrono::time_point) _NOEXCEPT; -}; -#endif // !_LIBCPP_HAS_NO_THREADS - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - chrono::__is_duration<_To>::value, - _To ->::type -__ceil(chrono::duration<_Rep, _Period> __d) -{ - using namespace chrono; - _To __r = duration_cast<_To>(__d); - if (__r < __d) - ++__r; - return __r; -} - -#ifndef _LIBCPP_HAS_NO_THREADS -template -void -condition_variable::wait(unique_lock& __lk, _Predicate __pred) -{ - while (!__pred()) - wait(__lk); -} - -template -cv_status -condition_variable::wait_until(unique_lock& __lk, - const chrono::time_point<_Clock, _Duration>& __t) -{ - using namespace chrono; - wait_for(__lk, __t - _Clock::now()); - return _Clock::now() < __t ? cv_status::no_timeout : cv_status::timeout; -} - -template -bool -condition_variable::wait_until(unique_lock& __lk, - const chrono::time_point<_Clock, _Duration>& __t, - _Predicate __pred) -{ - while (!__pred()) - { - if (wait_until(__lk, __t) == cv_status::timeout) - return __pred(); - } - return true; -} - -template -cv_status -condition_variable::wait_for(unique_lock& __lk, - const chrono::duration<_Rep, _Period>& __d) -{ - using namespace chrono; - if (__d <= __d.zero()) - return cv_status::timeout; - typedef time_point > __sys_tpf; - typedef time_point __sys_tpi; - __sys_tpf _Max = __sys_tpi::max(); - system_clock::time_point __s_now = system_clock::now(); - steady_clock::time_point __c_now = steady_clock::now(); - if (_Max - __d > __s_now) - __do_timed_wait(__lk, __s_now + __ceil(__d)); - else - __do_timed_wait(__lk, __sys_tpi::max()); - return steady_clock::now() - __c_now < __d ? cv_status::no_timeout : - cv_status::timeout; -} - -template -inline -bool -condition_variable::wait_for(unique_lock& __lk, - const chrono::duration<_Rep, _Period>& __d, - _Predicate __pred) -{ - return wait_until(__lk, chrono::steady_clock::now() + __d, - _VSTD::move(__pred)); -} - -#endif // !_LIBCPP_HAS_NO_THREADS - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP___MUTEX_BASE diff --git a/headers/libs/libc++/__nullptr b/headers/libs/libc++/__nullptr deleted file mode 100644 index 95415a6325..0000000000 --- a/headers/libs/libc++/__nullptr +++ /dev/null @@ -1,66 +0,0 @@ -// -*- C++ -*- -//===--------------------------- __nullptr --------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_NULLPTR -#define _LIBCPP_NULLPTR - -#include <__config> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#ifdef _LIBCPP_HAS_NO_NULLPTR - -_LIBCPP_BEGIN_NAMESPACE_STD - -struct _LIBCPP_TYPE_VIS_ONLY nullptr_t -{ - void* __lx; - - struct __nat {int __for_bool_;}; - - _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR nullptr_t() : __lx(0) {} - _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR nullptr_t(int __nat::*) : __lx(0) {} - - _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR operator int __nat::*() const {return 0;} - - template - _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR - operator _Tp* () const {return 0;} - - template - _LIBCPP_ALWAYS_INLINE - operator _Tp _Up::* () const {return 0;} - - friend _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR bool operator==(nullptr_t, nullptr_t) {return true;} - friend _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR bool operator!=(nullptr_t, nullptr_t) {return false;} - friend _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR bool operator<(nullptr_t, nullptr_t) {return false;} - friend _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR bool operator<=(nullptr_t, nullptr_t) {return true;} - friend _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR bool operator>(nullptr_t, nullptr_t) {return false;} - friend _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR bool operator>=(nullptr_t, nullptr_t) {return true;} -}; - -inline _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR nullptr_t __get_nullptr_t() {return nullptr_t(0);} - -#define nullptr _VSTD::__get_nullptr_t() - -_LIBCPP_END_NAMESPACE_STD - -#else // _LIBCPP_HAS_NO_NULLPTR - -namespace std -{ - typedef decltype(nullptr) nullptr_t; -} - -#endif // _LIBCPP_HAS_NO_NULLPTR - -#endif // _LIBCPP_NULLPTR diff --git a/headers/libs/libc++/__refstring b/headers/libs/libc++/__refstring deleted file mode 100644 index 61ccc75122..0000000000 --- a/headers/libs/libc++/__refstring +++ /dev/null @@ -1,139 +0,0 @@ -//===------------------------ __refstring ---------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP___REFSTRING -#define _LIBCPP___REFSTRING - -#include <__config> -#include -#include -#ifdef __APPLE__ -#include -#include -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -class _LIBCPP_HIDDEN __libcpp_refstring -{ -private: - const char* str_; - - typedef int count_t; - - struct _Rep_base - { - std::size_t len; - std::size_t cap; - count_t count; - }; - - static - _Rep_base* - rep_from_data(const char *data_) _NOEXCEPT - { - char *data = const_cast(data_); - return reinterpret_cast<_Rep_base *>(data - sizeof(_Rep_base)); - } - static - char * - data_from_rep(_Rep_base *rep) _NOEXCEPT - { - char *data = reinterpret_cast(rep); - return data + sizeof(*rep); - } - -#ifdef __APPLE__ - static - const char* - compute_gcc_empty_string_storage() _NOEXCEPT - { - void* handle = dlopen("/usr/lib/libstdc++.6.dylib", RTLD_NOLOAD); - if (handle == nullptr) - return nullptr; - void* sym = dlsym(handle, "_ZNSs4_Rep20_S_empty_rep_storageE"); - if (sym == nullptr) - return nullptr; - return data_from_rep(reinterpret_cast<_Rep_base *>(sym)); - } - - static - const char* - get_gcc_empty_string_storage() _NOEXCEPT - { - static const char* p = compute_gcc_empty_string_storage(); - return p; - } - - bool - uses_refcount() const - { - return str_ != get_gcc_empty_string_storage(); - } -#else - bool - uses_refcount() const - { - return true; - } -#endif - -public: - explicit __libcpp_refstring(const char* msg) { - std::size_t len = strlen(msg); - _Rep_base* rep = static_cast<_Rep_base *>(::operator new(sizeof(*rep) + len + 1)); - rep->len = len; - rep->cap = len; - rep->count = 0; - char *data = data_from_rep(rep); - std::memcpy(data, msg, len + 1); - str_ = data; - } - - __libcpp_refstring(const __libcpp_refstring& s) _NOEXCEPT : str_(s.str_) - { - if (uses_refcount()) - __sync_add_and_fetch(&rep_from_data(str_)->count, 1); - } - - __libcpp_refstring& operator=(const __libcpp_refstring& s) _NOEXCEPT - { - bool adjust_old_count = uses_refcount(); - struct _Rep_base *old_rep = rep_from_data(str_); - str_ = s.str_; - if (uses_refcount()) - __sync_add_and_fetch(&rep_from_data(str_)->count, 1); - if (adjust_old_count) - { - if (__sync_add_and_fetch(&old_rep->count, count_t(-1)) < 0) - { - ::operator delete(old_rep); - } - } - return *this; - } - - ~__libcpp_refstring() - { - if (uses_refcount()) - { - _Rep_base* rep = rep_from_data(str_); - if (__sync_add_and_fetch(&rep->count, count_t(-1)) < 0) - { - ::operator delete(rep); - } - } - } - - const char* c_str() const _NOEXCEPT {return str_;} -}; - -_LIBCPP_END_NAMESPACE_STD - -#endif //_LIBCPP___REFSTRING diff --git a/headers/libs/libc++/__split_buffer b/headers/libs/libc++/__split_buffer deleted file mode 100644 index 79d1aa1d7c..0000000000 --- a/headers/libs/libc++/__split_buffer +++ /dev/null @@ -1,640 +0,0 @@ -// -*- C++ -*- -#ifndef _LIBCPP_SPLIT_BUFFER -#define _LIBCPP_SPLIT_BUFFER - -#include <__config> -#include -#include - -#include <__undef_min_max> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -template -class __split_buffer_common -{ -protected: - void __throw_length_error() const; - void __throw_out_of_range() const; -}; - -template > -struct __split_buffer - : private __split_buffer_common -{ -private: - __split_buffer(const __split_buffer&); - __split_buffer& operator=(const __split_buffer&); -public: - typedef _Tp value_type; - typedef _Allocator allocator_type; - typedef typename remove_reference::type __alloc_rr; - typedef allocator_traits<__alloc_rr> __alloc_traits; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef typename __alloc_traits::size_type size_type; - typedef typename __alloc_traits::difference_type difference_type; - typedef typename __alloc_traits::pointer pointer; - typedef typename __alloc_traits::const_pointer const_pointer; - typedef pointer iterator; - typedef const_pointer const_iterator; - - pointer __first_; - pointer __begin_; - pointer __end_; - __compressed_pair __end_cap_; - - typedef typename add_lvalue_reference::type __alloc_ref; - typedef typename add_lvalue_reference::type __alloc_const_ref; - - _LIBCPP_INLINE_VISIBILITY __alloc_rr& __alloc() _NOEXCEPT {return __end_cap_.second();} - _LIBCPP_INLINE_VISIBILITY const __alloc_rr& __alloc() const _NOEXCEPT {return __end_cap_.second();} - _LIBCPP_INLINE_VISIBILITY pointer& __end_cap() _NOEXCEPT {return __end_cap_.first();} - _LIBCPP_INLINE_VISIBILITY const pointer& __end_cap() const _NOEXCEPT {return __end_cap_.first();} - - _LIBCPP_INLINE_VISIBILITY - __split_buffer() - _NOEXCEPT_(is_nothrow_default_constructible::value); - _LIBCPP_INLINE_VISIBILITY - explicit __split_buffer(__alloc_rr& __a); - _LIBCPP_INLINE_VISIBILITY - explicit __split_buffer(const __alloc_rr& __a); - __split_buffer(size_type __cap, size_type __start, __alloc_rr& __a); - ~__split_buffer(); - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - __split_buffer(__split_buffer&& __c) - _NOEXCEPT_(is_nothrow_move_constructible::value); - __split_buffer(__split_buffer&& __c, const __alloc_rr& __a); - __split_buffer& operator=(__split_buffer&& __c) - _NOEXCEPT_((__alloc_traits::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable::value) || - !__alloc_traits::propagate_on_container_move_assignment::value); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - _LIBCPP_INLINE_VISIBILITY iterator begin() _NOEXCEPT {return __begin_;} - _LIBCPP_INLINE_VISIBILITY const_iterator begin() const _NOEXCEPT {return __begin_;} - _LIBCPP_INLINE_VISIBILITY iterator end() _NOEXCEPT {return __end_;} - _LIBCPP_INLINE_VISIBILITY const_iterator end() const _NOEXCEPT {return __end_;} - - _LIBCPP_INLINE_VISIBILITY - void clear() _NOEXCEPT - {__destruct_at_end(__begin_);} - _LIBCPP_INLINE_VISIBILITY size_type size() const {return static_cast(__end_ - __begin_);} - _LIBCPP_INLINE_VISIBILITY bool empty() const {return __end_ == __begin_;} - _LIBCPP_INLINE_VISIBILITY size_type capacity() const {return static_cast(__end_cap() - __first_);} - _LIBCPP_INLINE_VISIBILITY size_type __front_spare() const {return static_cast(__begin_ - __first_);} - _LIBCPP_INLINE_VISIBILITY size_type __back_spare() const {return static_cast(__end_cap() - __end_);} - - _LIBCPP_INLINE_VISIBILITY reference front() {return *__begin_;} - _LIBCPP_INLINE_VISIBILITY const_reference front() const {return *__begin_;} - _LIBCPP_INLINE_VISIBILITY reference back() {return *(__end_ - 1);} - _LIBCPP_INLINE_VISIBILITY const_reference back() const {return *(__end_ - 1);} - - void reserve(size_type __n); - void shrink_to_fit() _NOEXCEPT; - void push_front(const_reference __x); - _LIBCPP_INLINE_VISIBILITY void push_back(const_reference __x); -#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) - void push_front(value_type&& __x); - void push_back(value_type&& __x); -#if !defined(_LIBCPP_HAS_NO_VARIADICS) - template - void emplace_back(_Args&&... __args); -#endif // !defined(_LIBCPP_HAS_NO_VARIADICS) -#endif // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) - - _LIBCPP_INLINE_VISIBILITY void pop_front() {__destruct_at_begin(__begin_+1);} - _LIBCPP_INLINE_VISIBILITY void pop_back() {__destruct_at_end(__end_-1);} - - void __construct_at_end(size_type __n); - void __construct_at_end(size_type __n, const_reference __x); - template - typename enable_if - < - __is_input_iterator<_InputIter>::value && - !__is_forward_iterator<_InputIter>::value, - void - >::type - __construct_at_end(_InputIter __first, _InputIter __last); - template - typename enable_if - < - __is_forward_iterator<_ForwardIterator>::value, - void - >::type - __construct_at_end(_ForwardIterator __first, _ForwardIterator __last); - - _LIBCPP_INLINE_VISIBILITY void __destruct_at_begin(pointer __new_begin) - {__destruct_at_begin(__new_begin, is_trivially_destructible());} - _LIBCPP_INLINE_VISIBILITY - void __destruct_at_begin(pointer __new_begin, false_type); - _LIBCPP_INLINE_VISIBILITY - void __destruct_at_begin(pointer __new_begin, true_type); - - _LIBCPP_INLINE_VISIBILITY - void __destruct_at_end(pointer __new_last) _NOEXCEPT - {__destruct_at_end(__new_last, false_type());} - _LIBCPP_INLINE_VISIBILITY - void __destruct_at_end(pointer __new_last, false_type) _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - void __destruct_at_end(pointer __new_last, true_type) _NOEXCEPT; - - void swap(__split_buffer& __x) - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value|| - __is_nothrow_swappable<__alloc_rr>::value); - - bool __invariants() const; - -private: - _LIBCPP_INLINE_VISIBILITY - void __move_assign_alloc(__split_buffer& __c, true_type) - _NOEXCEPT_(is_nothrow_move_assignable::value) - { - __alloc() = _VSTD::move(__c.__alloc()); - } - - _LIBCPP_INLINE_VISIBILITY - void __move_assign_alloc(__split_buffer&, false_type) _NOEXCEPT - {} -}; - -template -bool -__split_buffer<_Tp, _Allocator>::__invariants() const -{ - if (__first_ == nullptr) - { - if (__begin_ != nullptr) - return false; - if (__end_ != nullptr) - return false; - if (__end_cap() != nullptr) - return false; - } - else - { - if (__begin_ < __first_) - return false; - if (__end_ < __begin_) - return false; - if (__end_cap() < __end_) - return false; - } - return true; -} - -// Default constructs __n objects starting at __end_ -// throws if construction throws -// Precondition: __n > 0 -// Precondition: size() + __n <= capacity() -// Postcondition: size() == size() + __n -template -void -__split_buffer<_Tp, _Allocator>::__construct_at_end(size_type __n) -{ - __alloc_rr& __a = this->__alloc(); - do - { - __alloc_traits::construct(__a, _VSTD::__to_raw_pointer(this->__end_)); - ++this->__end_; - --__n; - } while (__n > 0); -} - -// Copy constructs __n objects starting at __end_ from __x -// throws if construction throws -// Precondition: __n > 0 -// Precondition: size() + __n <= capacity() -// Postcondition: size() == old size() + __n -// Postcondition: [i] == __x for all i in [size() - __n, __n) -template -void -__split_buffer<_Tp, _Allocator>::__construct_at_end(size_type __n, const_reference __x) -{ - __alloc_rr& __a = this->__alloc(); - do - { - __alloc_traits::construct(__a, _VSTD::__to_raw_pointer(this->__end_), __x); - ++this->__end_; - --__n; - } while (__n > 0); -} - -template -template -typename enable_if -< - __is_input_iterator<_InputIter>::value && - !__is_forward_iterator<_InputIter>::value, - void ->::type -__split_buffer<_Tp, _Allocator>::__construct_at_end(_InputIter __first, _InputIter __last) -{ - __alloc_rr& __a = this->__alloc(); - for (; __first != __last; ++__first) - { - if (__end_ == __end_cap()) - { - size_type __old_cap = __end_cap() - __first_; - size_type __new_cap = _VSTD::max(2 * __old_cap, 8); - __split_buffer __buf(__new_cap, 0, __a); - for (pointer __p = __begin_; __p != __end_; ++__p, ++__buf.__end_) - __alloc_traits::construct(__buf.__alloc(), - _VSTD::__to_raw_pointer(__buf.__end_), _VSTD::move(*__p)); - swap(__buf); - } - __alloc_traits::construct(__a, _VSTD::__to_raw_pointer(this->__end_), *__first); - ++this->__end_; - } -} - -template -template -typename enable_if -< - __is_forward_iterator<_ForwardIterator>::value, - void ->::type -__split_buffer<_Tp, _Allocator>::__construct_at_end(_ForwardIterator __first, _ForwardIterator __last) -{ - __alloc_rr& __a = this->__alloc(); - for (; __first != __last; ++__first) - { - __alloc_traits::construct(__a, _VSTD::__to_raw_pointer(this->__end_), *__first); - ++this->__end_; - } -} - -template -inline -void -__split_buffer<_Tp, _Allocator>::__destruct_at_begin(pointer __new_begin, false_type) -{ - while (__begin_ != __new_begin) - __alloc_traits::destroy(__alloc(), __to_raw_pointer(__begin_++)); -} - -template -inline -void -__split_buffer<_Tp, _Allocator>::__destruct_at_begin(pointer __new_begin, true_type) -{ - __begin_ = __new_begin; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -__split_buffer<_Tp, _Allocator>::__destruct_at_end(pointer __new_last, false_type) _NOEXCEPT -{ - while (__new_last != __end_) - __alloc_traits::destroy(__alloc(), __to_raw_pointer(--__end_)); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -__split_buffer<_Tp, _Allocator>::__destruct_at_end(pointer __new_last, true_type) _NOEXCEPT -{ - __end_ = __new_last; -} - -template -__split_buffer<_Tp, _Allocator>::__split_buffer(size_type __cap, size_type __start, __alloc_rr& __a) - : __end_cap_(nullptr, __a) -{ - __first_ = __cap != 0 ? __alloc_traits::allocate(__alloc(), __cap) : nullptr; - __begin_ = __end_ = __first_ + __start; - __end_cap() = __first_ + __cap; -} - -template -inline -__split_buffer<_Tp, _Allocator>::__split_buffer() - _NOEXCEPT_(is_nothrow_default_constructible::value) - : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr) -{ -} - -template -inline -__split_buffer<_Tp, _Allocator>::__split_buffer(__alloc_rr& __a) - : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr, __a) -{ -} - -template -inline -__split_buffer<_Tp, _Allocator>::__split_buffer(const __alloc_rr& __a) - : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr, __a) -{ -} - -template -__split_buffer<_Tp, _Allocator>::~__split_buffer() -{ - clear(); - if (__first_) - __alloc_traits::deallocate(__alloc(), __first_, capacity()); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -__split_buffer<_Tp, _Allocator>::__split_buffer(__split_buffer&& __c) - _NOEXCEPT_(is_nothrow_move_constructible::value) - : __first_(_VSTD::move(__c.__first_)), - __begin_(_VSTD::move(__c.__begin_)), - __end_(_VSTD::move(__c.__end_)), - __end_cap_(_VSTD::move(__c.__end_cap_)) -{ - __c.__first_ = nullptr; - __c.__begin_ = nullptr; - __c.__end_ = nullptr; - __c.__end_cap() = nullptr; -} - -template -__split_buffer<_Tp, _Allocator>::__split_buffer(__split_buffer&& __c, const __alloc_rr& __a) - : __end_cap_(__a) -{ - if (__a == __c.__alloc()) - { - __first_ = __c.__first_; - __begin_ = __c.__begin_; - __end_ = __c.__end_; - __end_cap() = __c.__end_cap(); - __c.__first_ = nullptr; - __c.__begin_ = nullptr; - __c.__end_ = nullptr; - __c.__end_cap() = nullptr; - } - else - { - size_type __cap = __c.size(); - __first_ = __alloc_traits::allocate(__alloc(), __cap); - __begin_ = __end_ = __first_; - __end_cap() = __first_ + __cap; - typedef move_iterator _Ip; - __construct_at_end(_Ip(__c.begin()), _Ip(__c.end())); - } -} - -template -__split_buffer<_Tp, _Allocator>& -__split_buffer<_Tp, _Allocator>::operator=(__split_buffer&& __c) - _NOEXCEPT_((__alloc_traits::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable::value) || - !__alloc_traits::propagate_on_container_move_assignment::value) -{ - clear(); - shrink_to_fit(); - __first_ = __c.__first_; - __begin_ = __c.__begin_; - __end_ = __c.__end_; - __end_cap() = __c.__end_cap(); - __move_assign_alloc(__c, - integral_constant()); - __c.__first_ = __c.__begin_ = __c.__end_ = __c.__end_cap() = nullptr; - return *this; -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -__split_buffer<_Tp, _Allocator>::swap(__split_buffer& __x) - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value|| - __is_nothrow_swappable<__alloc_rr>::value) -{ - _VSTD::swap(__first_, __x.__first_); - _VSTD::swap(__begin_, __x.__begin_); - _VSTD::swap(__end_, __x.__end_); - _VSTD::swap(__end_cap(), __x.__end_cap()); - __swap_allocator(__alloc(), __x.__alloc()); -} - -template -void -__split_buffer<_Tp, _Allocator>::reserve(size_type __n) -{ - if (__n < capacity()) - { - __split_buffer __t(__n, 0, __alloc()); - __t.__construct_at_end(move_iterator(__begin_), - move_iterator(__end_)); - _VSTD::swap(__first_, __t.__first_); - _VSTD::swap(__begin_, __t.__begin_); - _VSTD::swap(__end_, __t.__end_); - _VSTD::swap(__end_cap(), __t.__end_cap()); - } -} - -template -void -__split_buffer<_Tp, _Allocator>::shrink_to_fit() _NOEXCEPT -{ - if (capacity() > size()) - { -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - __split_buffer __t(size(), 0, __alloc()); - __t.__construct_at_end(move_iterator(__begin_), - move_iterator(__end_)); - __t.__end_ = __t.__begin_ + (__end_ - __begin_); - _VSTD::swap(__first_, __t.__first_); - _VSTD::swap(__begin_, __t.__begin_); - _VSTD::swap(__end_, __t.__end_); - _VSTD::swap(__end_cap(), __t.__end_cap()); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - } -#endif // _LIBCPP_NO_EXCEPTIONS - } -} - -template -void -__split_buffer<_Tp, _Allocator>::push_front(const_reference __x) -{ - if (__begin_ == __first_) - { - if (__end_ < __end_cap()) - { - difference_type __d = __end_cap() - __end_; - __d = (__d + 1) / 2; - __begin_ = _VSTD::move_backward(__begin_, __end_, __end_ + __d); - __end_ += __d; - } - else - { - size_type __c = max(2 * static_cast(__end_cap() - __first_), 1); - __split_buffer __t(__c, (__c + 3) / 4, __alloc()); - __t.__construct_at_end(move_iterator(__begin_), - move_iterator(__end_)); - _VSTD::swap(__first_, __t.__first_); - _VSTD::swap(__begin_, __t.__begin_); - _VSTD::swap(__end_, __t.__end_); - _VSTD::swap(__end_cap(), __t.__end_cap()); - } - } - __alloc_traits::construct(__alloc(), _VSTD::__to_raw_pointer(__begin_-1), __x); - --__begin_; -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -__split_buffer<_Tp, _Allocator>::push_front(value_type&& __x) -{ - if (__begin_ == __first_) - { - if (__end_ < __end_cap()) - { - difference_type __d = __end_cap() - __end_; - __d = (__d + 1) / 2; - __begin_ = _VSTD::move_backward(__begin_, __end_, __end_ + __d); - __end_ += __d; - } - else - { - size_type __c = max(2 * static_cast(__end_cap() - __first_), 1); - __split_buffer __t(__c, (__c + 3) / 4, __alloc()); - __t.__construct_at_end(move_iterator(__begin_), - move_iterator(__end_)); - _VSTD::swap(__first_, __t.__first_); - _VSTD::swap(__begin_, __t.__begin_); - _VSTD::swap(__end_, __t.__end_); - _VSTD::swap(__end_cap(), __t.__end_cap()); - } - } - __alloc_traits::construct(__alloc(), _VSTD::__to_raw_pointer(__begin_-1), - _VSTD::move(__x)); - --__begin_; -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline _LIBCPP_INLINE_VISIBILITY -void -__split_buffer<_Tp, _Allocator>::push_back(const_reference __x) -{ - if (__end_ == __end_cap()) - { - if (__begin_ > __first_) - { - difference_type __d = __begin_ - __first_; - __d = (__d + 1) / 2; - __end_ = _VSTD::move(__begin_, __end_, __begin_ - __d); - __begin_ -= __d; - } - else - { - size_type __c = max(2 * static_cast(__end_cap() - __first_), 1); - __split_buffer __t(__c, __c / 4, __alloc()); - __t.__construct_at_end(move_iterator(__begin_), - move_iterator(__end_)); - _VSTD::swap(__first_, __t.__first_); - _VSTD::swap(__begin_, __t.__begin_); - _VSTD::swap(__end_, __t.__end_); - _VSTD::swap(__end_cap(), __t.__end_cap()); - } - } - __alloc_traits::construct(__alloc(), _VSTD::__to_raw_pointer(__end_), __x); - ++__end_; -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -__split_buffer<_Tp, _Allocator>::push_back(value_type&& __x) -{ - if (__end_ == __end_cap()) - { - if (__begin_ > __first_) - { - difference_type __d = __begin_ - __first_; - __d = (__d + 1) / 2; - __end_ = _VSTD::move(__begin_, __end_, __begin_ - __d); - __begin_ -= __d; - } - else - { - size_type __c = max(2 * static_cast(__end_cap() - __first_), 1); - __split_buffer __t(__c, __c / 4, __alloc()); - __t.__construct_at_end(move_iterator(__begin_), - move_iterator(__end_)); - _VSTD::swap(__first_, __t.__first_); - _VSTD::swap(__begin_, __t.__begin_); - _VSTD::swap(__end_, __t.__end_); - _VSTD::swap(__end_cap(), __t.__end_cap()); - } - } - __alloc_traits::construct(__alloc(), _VSTD::__to_raw_pointer(__end_), - _VSTD::move(__x)); - ++__end_; -} - -#ifndef _LIBCPP_HAS_NO_VARIADICS - -template -template -void -__split_buffer<_Tp, _Allocator>::emplace_back(_Args&&... __args) -{ - if (__end_ == __end_cap()) - { - if (__begin_ > __first_) - { - difference_type __d = __begin_ - __first_; - __d = (__d + 1) / 2; - __end_ = _VSTD::move(__begin_, __end_, __begin_ - __d); - __begin_ -= __d; - } - else - { - size_type __c = max(2 * static_cast(__end_cap() - __first_), 1); - __split_buffer __t(__c, __c / 4, __alloc()); - __t.__construct_at_end(move_iterator(__begin_), - move_iterator(__end_)); - _VSTD::swap(__first_, __t.__first_); - _VSTD::swap(__begin_, __t.__begin_); - _VSTD::swap(__end_, __t.__end_); - _VSTD::swap(__end_cap(), __t.__end_cap()); - } - } - __alloc_traits::construct(__alloc(), _VSTD::__to_raw_pointer(__end_), - _VSTD::forward<_Args>(__args)...); - ++__end_; -} - -#endif // _LIBCPP_HAS_NO_VARIADICS - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(__split_buffer<_Tp, _Allocator>& __x, __split_buffer<_Tp, _Allocator>& __y) - _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) -{ - __x.swap(__y); -} - - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_SPLIT_BUFFER diff --git a/headers/libs/libc++/__sso_allocator b/headers/libs/libc++/__sso_allocator deleted file mode 100644 index ca3b937c01..0000000000 --- a/headers/libs/libc++/__sso_allocator +++ /dev/null @@ -1,79 +0,0 @@ -// -*- C++ -*- -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP___SSO_ALLOCATOR -#define _LIBCPP___SSO_ALLOCATOR - -#include <__config> -#include -#include - -#include <__undef___deallocate> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -template class _LIBCPP_HIDDEN __sso_allocator; - -template -class _LIBCPP_HIDDEN __sso_allocator -{ -public: - typedef const void* const_pointer; - typedef void value_type; -}; - -template -class _LIBCPP_HIDDEN __sso_allocator -{ - typename aligned_storage::type buf_; - bool __allocated_; -public: - typedef size_t size_type; - typedef _Tp* pointer; - typedef _Tp value_type; - - _LIBCPP_INLINE_VISIBILITY __sso_allocator() throw() : __allocated_(false) {} - _LIBCPP_INLINE_VISIBILITY __sso_allocator(const __sso_allocator&) throw() : __allocated_(false) {} - template _LIBCPP_INLINE_VISIBILITY __sso_allocator(const __sso_allocator<_Up, _Np>&) throw() - : __allocated_(false) {} -private: - __sso_allocator& operator=(const __sso_allocator&); -public: - _LIBCPP_INLINE_VISIBILITY pointer allocate(size_type __n, typename __sso_allocator::const_pointer = 0) - { - if (!__allocated_ && __n <= _Np) - { - __allocated_ = true; - return (pointer)&buf_; - } - return static_cast(_VSTD::__allocate(__n * sizeof(_Tp))); - } - _LIBCPP_INLINE_VISIBILITY void deallocate(pointer __p, size_type) - { - if (__p == (pointer)&buf_) - __allocated_ = false; - else - _VSTD::__deallocate(__p); - } - _LIBCPP_INLINE_VISIBILITY size_type max_size() const throw() {return size_type(~0) / sizeof(_Tp);} - - _LIBCPP_INLINE_VISIBILITY - bool operator==(__sso_allocator& __a) const {return &buf_ == &__a.buf_;} - _LIBCPP_INLINE_VISIBILITY - bool operator!=(__sso_allocator& __a) const {return &buf_ != &__a.buf_;} -}; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP___SSO_ALLOCATOR diff --git a/headers/libs/libc++/__std_stream b/headers/libs/libc++/__std_stream deleted file mode 100644 index f867cd23bd..0000000000 --- a/headers/libs/libc++/__std_stream +++ /dev/null @@ -1,358 +0,0 @@ -// -*- C++ -*- -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP___STD_STREAM -#define _LIBCPP___STD_STREAM - -#include <__config> -#include -#include -#include <__locale> -#include - -#include <__undef_min_max> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -static const int __limit = 8; - -// __stdinbuf - -template -class _LIBCPP_HIDDEN __stdinbuf - : public basic_streambuf<_CharT, char_traits<_CharT> > -{ -public: - typedef _CharT char_type; - typedef char_traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - typedef typename traits_type::state_type state_type; - - __stdinbuf(FILE* __fp, state_type* __st); - -protected: - virtual int_type underflow(); - virtual int_type uflow(); - virtual int_type pbackfail(int_type __c = traits_type::eof()); - virtual void imbue(const locale& __loc); - -private: - - FILE* __file_; - const codecvt* __cv_; - state_type* __st_; - int __encoding_; - int_type __last_consumed_; - bool __last_consumed_is_next_; - bool __always_noconv_; - - __stdinbuf(const __stdinbuf&); - __stdinbuf& operator=(const __stdinbuf&); - - int_type __getchar(bool __consume); -}; - -template -__stdinbuf<_CharT>::__stdinbuf(FILE* __fp, state_type* __st) - : __file_(__fp), - __st_(__st), - __last_consumed_(traits_type::eof()), - __last_consumed_is_next_(false) -{ - imbue(this->getloc()); -} - -template -void -__stdinbuf<_CharT>::imbue(const locale& __loc) -{ - __cv_ = &use_facet >(__loc); - __encoding_ = __cv_->encoding(); - __always_noconv_ = __cv_->always_noconv(); - if (__encoding_ > __limit) - __throw_runtime_error("unsupported locale for standard input"); -} - -template -typename __stdinbuf<_CharT>::int_type -__stdinbuf<_CharT>::underflow() -{ - return __getchar(false); -} - -template -typename __stdinbuf<_CharT>::int_type -__stdinbuf<_CharT>::uflow() -{ - return __getchar(true); -} - -template -typename __stdinbuf<_CharT>::int_type -__stdinbuf<_CharT>::__getchar(bool __consume) -{ - if (__last_consumed_is_next_) - { - int_type __result = __last_consumed_; - if (__consume) - { - __last_consumed_ = traits_type::eof(); - __last_consumed_is_next_ = false; - } - return __result; - } - char __extbuf[__limit]; - int __nread = _VSTD::max(1, __encoding_); - for (int __i = 0; __i < __nread; ++__i) - { - int __c = getc(__file_); - if (__c == EOF) - return traits_type::eof(); - __extbuf[__i] = static_cast(__c); - } - char_type __1buf; - if (__always_noconv_) - __1buf = static_cast(__extbuf[0]); - else - { - const char* __enxt; - char_type* __inxt; - codecvt_base::result __r; - do - { - state_type __sv_st = *__st_; - __r = __cv_->in(*__st_, __extbuf, __extbuf + __nread, __enxt, - &__1buf, &__1buf + 1, __inxt); - switch (__r) - { - case _VSTD::codecvt_base::ok: - break; - case codecvt_base::partial: - *__st_ = __sv_st; - if (__nread == sizeof(__extbuf)) - return traits_type::eof(); - { - int __c = getc(__file_); - if (__c == EOF) - return traits_type::eof(); - __extbuf[__nread] = static_cast(__c); - } - ++__nread; - break; - case codecvt_base::error: - return traits_type::eof(); - case _VSTD::codecvt_base::noconv: - __1buf = static_cast(__extbuf[0]); - break; - } - } while (__r == _VSTD::codecvt_base::partial); - } - if (!__consume) - { - for (int __i = __nread; __i > 0;) - { - if (ungetc(traits_type::to_int_type(__extbuf[--__i]), __file_) == EOF) - return traits_type::eof(); - } - } - else - __last_consumed_ = traits_type::to_int_type(__1buf); - return traits_type::to_int_type(__1buf); -} - -template -typename __stdinbuf<_CharT>::int_type -__stdinbuf<_CharT>::pbackfail(int_type __c) -{ - if (traits_type::eq_int_type(__c, traits_type::eof())) - { - if (!__last_consumed_is_next_) - { - __c = __last_consumed_; - __last_consumed_is_next_ = !traits_type::eq_int_type(__last_consumed_, - traits_type::eof()); - } - return __c; - } - if (__last_consumed_is_next_) - { - char __extbuf[__limit]; - char* __enxt; - const char_type __ci = traits_type::to_char_type(__last_consumed_); - const char_type* __inxt; - switch (__cv_->out(*__st_, &__ci, &__ci + 1, __inxt, - __extbuf, __extbuf + sizeof(__extbuf), __enxt)) - { - case _VSTD::codecvt_base::ok: - break; - case _VSTD::codecvt_base::noconv: - __extbuf[0] = static_cast(__last_consumed_); - __enxt = __extbuf + 1; - break; - case codecvt_base::partial: - case codecvt_base::error: - return traits_type::eof(); - } - while (__enxt > __extbuf) - if (ungetc(*--__enxt, __file_) == EOF) - return traits_type::eof(); - } - __last_consumed_ = __c; - __last_consumed_is_next_ = true; - return __c; -} - -// __stdoutbuf - -template -class _LIBCPP_HIDDEN __stdoutbuf - : public basic_streambuf<_CharT, char_traits<_CharT> > -{ -public: - typedef _CharT char_type; - typedef char_traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - typedef typename traits_type::state_type state_type; - - __stdoutbuf(FILE* __fp, state_type* __st); - -protected: - virtual int_type overflow (int_type __c = traits_type::eof()); - virtual streamsize xsputn(const char_type* __s, streamsize __n); - virtual int sync(); - virtual void imbue(const locale& __loc); - -private: - FILE* __file_; - const codecvt* __cv_; - state_type* __st_; - bool __always_noconv_; - - __stdoutbuf(const __stdoutbuf&); - __stdoutbuf& operator=(const __stdoutbuf&); -}; - -template -__stdoutbuf<_CharT>::__stdoutbuf(FILE* __fp, state_type* __st) - : __file_(__fp), - __cv_(&use_facet >(this->getloc())), - __st_(__st), - __always_noconv_(__cv_->always_noconv()) -{ -} - -template -typename __stdoutbuf<_CharT>::int_type -__stdoutbuf<_CharT>::overflow(int_type __c) -{ - char __extbuf[__limit]; - char_type __1buf; - if (!traits_type::eq_int_type(__c, traits_type::eof())) - { - __1buf = traits_type::to_char_type(__c); - if (__always_noconv_) - { - if (fwrite(&__1buf, sizeof(char_type), 1, __file_) != 1) - return traits_type::eof(); - } - else - { - char* __extbe = __extbuf; - codecvt_base::result __r; - char_type* pbase = &__1buf; - char_type* pptr = pbase + 1; - do - { - const char_type* __e; - __r = __cv_->out(*__st_, pbase, pptr, __e, - __extbuf, - __extbuf + sizeof(__extbuf), - __extbe); - if (__e == pbase) - return traits_type::eof(); - if (__r == codecvt_base::noconv) - { - if (fwrite(pbase, 1, 1, __file_) != 1) - return traits_type::eof(); - } - else if (__r == codecvt_base::ok || __r == codecvt_base::partial) - { - size_t __nmemb = static_cast(__extbe - __extbuf); - if (fwrite(__extbuf, 1, __nmemb, __file_) != __nmemb) - return traits_type::eof(); - if (__r == codecvt_base::partial) - { - pbase = (char_type*)__e; - } - } - else - return traits_type::eof(); - } while (__r == codecvt_base::partial); - } - } - return traits_type::not_eof(__c); -} - -template -streamsize -__stdoutbuf<_CharT>::xsputn(const char_type* __s, streamsize __n) -{ - if (__always_noconv_) - return fwrite(__s, sizeof(char_type), __n, __file_); - streamsize __i = 0; - for (; __i < __n; ++__i, ++__s) - if (overflow(traits_type::to_int_type(*__s)) == traits_type::eof()) - break; - return __i; -} - -template -int -__stdoutbuf<_CharT>::sync() -{ - char __extbuf[__limit]; - codecvt_base::result __r; - do - { - char* __extbe; - __r = __cv_->unshift(*__st_, __extbuf, - __extbuf + sizeof(__extbuf), - __extbe); - size_t __nmemb = static_cast(__extbe - __extbuf); - if (fwrite(__extbuf, 1, __nmemb, __file_) != __nmemb) - return -1; - } while (__r == codecvt_base::partial); - if (__r == codecvt_base::error) - return -1; - if (fflush(__file_)) - return -1; - return 0; -} - -template -void -__stdoutbuf<_CharT>::imbue(const locale& __loc) -{ - sync(); - __cv_ = &use_facet >(__loc); - __always_noconv_ = __cv_->always_noconv(); -} - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP___STD_STREAM diff --git a/headers/libs/libc++/__tree b/headers/libs/libc++/__tree deleted file mode 100644 index 6391609b39..0000000000 --- a/headers/libs/libc++/__tree +++ /dev/null @@ -1,2297 +0,0 @@ -// -*- C++ -*- -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP___TREE -#define _LIBCPP___TREE - -#include <__config> -#include -#include -#include -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -template class __tree; -template - class _LIBCPP_TYPE_VIS_ONLY __tree_iterator; -template - class _LIBCPP_TYPE_VIS_ONLY __tree_const_iterator; - -/* - -_NodePtr algorithms - -The algorithms taking _NodePtr are red black tree algorithms. Those -algorithms taking a parameter named __root should assume that __root -points to a proper red black tree (unless otherwise specified). - -Each algorithm herein assumes that __root->__parent_ points to a non-null -structure which has a member __left_ which points back to __root. No other -member is read or written to at __root->__parent_. - -__root->__parent_ will be referred to below (in comments only) as end_node. -end_node->__left_ is an externably accessible lvalue for __root, and can be -changed by node insertion and removal (without explicit reference to end_node). - -All nodes (with the exception of end_node), even the node referred to as -__root, have a non-null __parent_ field. - -*/ - -// Returns: true if __x is a left child of its parent, else false -// Precondition: __x != nullptr. -template -inline _LIBCPP_INLINE_VISIBILITY -bool -__tree_is_left_child(_NodePtr __x) _NOEXCEPT -{ - return __x == __x->__parent_->__left_; -} - -// Determintes if the subtree rooted at __x is a proper red black subtree. If -// __x is a proper subtree, returns the black height (null counts as 1). If -// __x is an improper subtree, returns 0. -template -unsigned -__tree_sub_invariant(_NodePtr __x) -{ - if (__x == nullptr) - return 1; - // parent consistency checked by caller - // check __x->__left_ consistency - if (__x->__left_ != nullptr && __x->__left_->__parent_ != __x) - return 0; - // check __x->__right_ consistency - if (__x->__right_ != nullptr && __x->__right_->__parent_ != __x) - return 0; - // check __x->__left_ != __x->__right_ unless both are nullptr - if (__x->__left_ == __x->__right_ && __x->__left_ != nullptr) - return 0; - // If this is red, neither child can be red - if (!__x->__is_black_) - { - if (__x->__left_ && !__x->__left_->__is_black_) - return 0; - if (__x->__right_ && !__x->__right_->__is_black_) - return 0; - } - unsigned __h = __tree_sub_invariant(__x->__left_); - if (__h == 0) - return 0; // invalid left subtree - if (__h != __tree_sub_invariant(__x->__right_)) - return 0; // invalid or different height right subtree - return __h + __x->__is_black_; // return black height of this node -} - -// Determintes if the red black tree rooted at __root is a proper red black tree. -// __root == nullptr is a proper tree. Returns true is __root is a proper -// red black tree, else returns false. -template -bool -__tree_invariant(_NodePtr __root) -{ - if (__root == nullptr) - return true; - // check __x->__parent_ consistency - if (__root->__parent_ == nullptr) - return false; - if (!__tree_is_left_child(__root)) - return false; - // root must be black - if (!__root->__is_black_) - return false; - // do normal node checks - return __tree_sub_invariant(__root) != 0; -} - -// Returns: pointer to the left-most node under __x. -// Precondition: __x != nullptr. -template -inline _LIBCPP_INLINE_VISIBILITY -_NodePtr -__tree_min(_NodePtr __x) _NOEXCEPT -{ - while (__x->__left_ != nullptr) - __x = __x->__left_; - return __x; -} - -// Returns: pointer to the right-most node under __x. -// Precondition: __x != nullptr. -template -inline _LIBCPP_INLINE_VISIBILITY -_NodePtr -__tree_max(_NodePtr __x) _NOEXCEPT -{ - while (__x->__right_ != nullptr) - __x = __x->__right_; - return __x; -} - -// Returns: pointer to the next in-order node after __x. -// Precondition: __x != nullptr. -template -_NodePtr -__tree_next(_NodePtr __x) _NOEXCEPT -{ - if (__x->__right_ != nullptr) - return __tree_min(__x->__right_); - while (!__tree_is_left_child(__x)) - __x = __x->__parent_; - return __x->__parent_; -} - -// Returns: pointer to the previous in-order node before __x. -// Precondition: __x != nullptr. -template -_NodePtr -__tree_prev(_NodePtr __x) _NOEXCEPT -{ - if (__x->__left_ != nullptr) - return __tree_max(__x->__left_); - while (__tree_is_left_child(__x)) - __x = __x->__parent_; - return __x->__parent_; -} - -// Returns: pointer to a node which has no children -// Precondition: __x != nullptr. -template -_NodePtr -__tree_leaf(_NodePtr __x) _NOEXCEPT -{ - while (true) - { - if (__x->__left_ != nullptr) - { - __x = __x->__left_; - continue; - } - if (__x->__right_ != nullptr) - { - __x = __x->__right_; - continue; - } - break; - } - return __x; -} - -// Effects: Makes __x->__right_ the subtree root with __x as its left child -// while preserving in-order order. -// Precondition: __x->__right_ != nullptr -template -void -__tree_left_rotate(_NodePtr __x) _NOEXCEPT -{ - _NodePtr __y = __x->__right_; - __x->__right_ = __y->__left_; - if (__x->__right_ != nullptr) - __x->__right_->__parent_ = __x; - __y->__parent_ = __x->__parent_; - if (__tree_is_left_child(__x)) - __x->__parent_->__left_ = __y; - else - __x->__parent_->__right_ = __y; - __y->__left_ = __x; - __x->__parent_ = __y; -} - -// Effects: Makes __x->__left_ the subtree root with __x as its right child -// while preserving in-order order. -// Precondition: __x->__left_ != nullptr -template -void -__tree_right_rotate(_NodePtr __x) _NOEXCEPT -{ - _NodePtr __y = __x->__left_; - __x->__left_ = __y->__right_; - if (__x->__left_ != nullptr) - __x->__left_->__parent_ = __x; - __y->__parent_ = __x->__parent_; - if (__tree_is_left_child(__x)) - __x->__parent_->__left_ = __y; - else - __x->__parent_->__right_ = __y; - __y->__right_ = __x; - __x->__parent_ = __y; -} - -// Effects: Rebalances __root after attaching __x to a leaf. -// Precondition: __root != nulptr && __x != nullptr. -// __x has no children. -// __x == __root or == a direct or indirect child of __root. -// If __x were to be unlinked from __root (setting __root to -// nullptr if __root == __x), __tree_invariant(__root) == true. -// Postcondition: __tree_invariant(end_node->__left_) == true. end_node->__left_ -// may be different than the value passed in as __root. -template -void -__tree_balance_after_insert(_NodePtr __root, _NodePtr __x) _NOEXCEPT -{ - __x->__is_black_ = __x == __root; - while (__x != __root && !__x->__parent_->__is_black_) - { - // __x->__parent_ != __root because __x->__parent_->__is_black == false - if (__tree_is_left_child(__x->__parent_)) - { - _NodePtr __y = __x->__parent_->__parent_->__right_; - if (__y != nullptr && !__y->__is_black_) - { - __x = __x->__parent_; - __x->__is_black_ = true; - __x = __x->__parent_; - __x->__is_black_ = __x == __root; - __y->__is_black_ = true; - } - else - { - if (!__tree_is_left_child(__x)) - { - __x = __x->__parent_; - __tree_left_rotate(__x); - } - __x = __x->__parent_; - __x->__is_black_ = true; - __x = __x->__parent_; - __x->__is_black_ = false; - __tree_right_rotate(__x); - break; - } - } - else - { - _NodePtr __y = __x->__parent_->__parent_->__left_; - if (__y != nullptr && !__y->__is_black_) - { - __x = __x->__parent_; - __x->__is_black_ = true; - __x = __x->__parent_; - __x->__is_black_ = __x == __root; - __y->__is_black_ = true; - } - else - { - if (__tree_is_left_child(__x)) - { - __x = __x->__parent_; - __tree_right_rotate(__x); - } - __x = __x->__parent_; - __x->__is_black_ = true; - __x = __x->__parent_; - __x->__is_black_ = false; - __tree_left_rotate(__x); - break; - } - } - } -} - -// Precondition: __root != nullptr && __z != nullptr. -// __tree_invariant(__root) == true. -// __z == __root or == a direct or indirect child of __root. -// Effects: unlinks __z from the tree rooted at __root, rebalancing as needed. -// Postcondition: __tree_invariant(end_node->__left_) == true && end_node->__left_ -// nor any of its children refer to __z. end_node->__left_ -// may be different than the value passed in as __root. -template -void -__tree_remove(_NodePtr __root, _NodePtr __z) _NOEXCEPT -{ - // __z will be removed from the tree. Client still needs to destruct/deallocate it - // __y is either __z, or if __z has two children, __tree_next(__z). - // __y will have at most one child. - // __y will be the initial hole in the tree (make the hole at a leaf) - _NodePtr __y = (__z->__left_ == nullptr || __z->__right_ == nullptr) ? - __z : __tree_next(__z); - // __x is __y's possibly null single child - _NodePtr __x = __y->__left_ != nullptr ? __y->__left_ : __y->__right_; - // __w is __x's possibly null uncle (will become __x's sibling) - _NodePtr __w = nullptr; - // link __x to __y's parent, and find __w - if (__x != nullptr) - __x->__parent_ = __y->__parent_; - if (__tree_is_left_child(__y)) - { - __y->__parent_->__left_ = __x; - if (__y != __root) - __w = __y->__parent_->__right_; - else - __root = __x; // __w == nullptr - } - else - { - __y->__parent_->__right_ = __x; - // __y can't be root if it is a right child - __w = __y->__parent_->__left_; - } - bool __removed_black = __y->__is_black_; - // If we didn't remove __z, do so now by splicing in __y for __z, - // but copy __z's color. This does not impact __x or __w. - if (__y != __z) - { - // __z->__left_ != nulptr but __z->__right_ might == __x == nullptr - __y->__parent_ = __z->__parent_; - if (__tree_is_left_child(__z)) - __y->__parent_->__left_ = __y; - else - __y->__parent_->__right_ = __y; - __y->__left_ = __z->__left_; - __y->__left_->__parent_ = __y; - __y->__right_ = __z->__right_; - if (__y->__right_ != nullptr) - __y->__right_->__parent_ = __y; - __y->__is_black_ = __z->__is_black_; - if (__root == __z) - __root = __y; - } - // There is no need to rebalance if we removed a red, or if we removed - // the last node. - if (__removed_black && __root != nullptr) - { - // Rebalance: - // __x has an implicit black color (transferred from the removed __y) - // associated with it, no matter what its color is. - // If __x is __root (in which case it can't be null), it is supposed - // to be black anyway, and if it is doubly black, then the double - // can just be ignored. - // If __x is red (in which case it can't be null), then it can absorb - // the implicit black just by setting its color to black. - // Since __y was black and only had one child (which __x points to), __x - // is either red with no children, else null, otherwise __y would have - // different black heights under left and right pointers. - // if (__x == __root || __x != nullptr && !__x->__is_black_) - if (__x != nullptr) - __x->__is_black_ = true; - else - { - // Else __x isn't root, and is "doubly black", even though it may - // be null. __w can not be null here, else the parent would - // see a black height >= 2 on the __x side and a black height - // of 1 on the __w side (__w must be a non-null black or a red - // with a non-null black child). - while (true) - { - if (!__tree_is_left_child(__w)) // if x is left child - { - if (!__w->__is_black_) - { - __w->__is_black_ = true; - __w->__parent_->__is_black_ = false; - __tree_left_rotate(__w->__parent_); - // __x is still valid - // reset __root only if necessary - if (__root == __w->__left_) - __root = __w; - // reset sibling, and it still can't be null - __w = __w->__left_->__right_; - } - // __w->__is_black_ is now true, __w may have null children - if ((__w->__left_ == nullptr || __w->__left_->__is_black_) && - (__w->__right_ == nullptr || __w->__right_->__is_black_)) - { - __w->__is_black_ = false; - __x = __w->__parent_; - // __x can no longer be null - if (__x == __root || !__x->__is_black_) - { - __x->__is_black_ = true; - break; - } - // reset sibling, and it still can't be null - __w = __tree_is_left_child(__x) ? - __x->__parent_->__right_ : - __x->__parent_->__left_; - // continue; - } - else // __w has a red child - { - if (__w->__right_ == nullptr || __w->__right_->__is_black_) - { - // __w left child is non-null and red - __w->__left_->__is_black_ = true; - __w->__is_black_ = false; - __tree_right_rotate(__w); - // __w is known not to be root, so root hasn't changed - // reset sibling, and it still can't be null - __w = __w->__parent_; - } - // __w has a right red child, left child may be null - __w->__is_black_ = __w->__parent_->__is_black_; - __w->__parent_->__is_black_ = true; - __w->__right_->__is_black_ = true; - __tree_left_rotate(__w->__parent_); - break; - } - } - else - { - if (!__w->__is_black_) - { - __w->__is_black_ = true; - __w->__parent_->__is_black_ = false; - __tree_right_rotate(__w->__parent_); - // __x is still valid - // reset __root only if necessary - if (__root == __w->__right_) - __root = __w; - // reset sibling, and it still can't be null - __w = __w->__right_->__left_; - } - // __w->__is_black_ is now true, __w may have null children - if ((__w->__left_ == nullptr || __w->__left_->__is_black_) && - (__w->__right_ == nullptr || __w->__right_->__is_black_)) - { - __w->__is_black_ = false; - __x = __w->__parent_; - // __x can no longer be null - if (!__x->__is_black_ || __x == __root) - { - __x->__is_black_ = true; - break; - } - // reset sibling, and it still can't be null - __w = __tree_is_left_child(__x) ? - __x->__parent_->__right_ : - __x->__parent_->__left_; - // continue; - } - else // __w has a red child - { - if (__w->__left_ == nullptr || __w->__left_->__is_black_) - { - // __w right child is non-null and red - __w->__right_->__is_black_ = true; - __w->__is_black_ = false; - __tree_left_rotate(__w); - // __w is known not to be root, so root hasn't changed - // reset sibling, and it still can't be null - __w = __w->__parent_; - } - // __w has a left red child, right child may be null - __w->__is_black_ = __w->__parent_->__is_black_; - __w->__parent_->__is_black_ = true; - __w->__left_->__is_black_ = true; - __tree_right_rotate(__w->__parent_); - break; - } - } - } - } - } -} - -template class __map_node_destructor; - -template -class __tree_node_destructor -{ - typedef _Allocator allocator_type; - typedef allocator_traits __alloc_traits; - typedef typename __alloc_traits::value_type::value_type value_type; -public: - typedef typename __alloc_traits::pointer pointer; -private: - - allocator_type& __na_; - - __tree_node_destructor& operator=(const __tree_node_destructor&); - -public: - bool __value_constructed; - - _LIBCPP_INLINE_VISIBILITY - explicit __tree_node_destructor(allocator_type& __na, bool __val = false) _NOEXCEPT - : __na_(__na), - __value_constructed(__val) - {} - - _LIBCPP_INLINE_VISIBILITY - void operator()(pointer __p) _NOEXCEPT - { - if (__value_constructed) - __alloc_traits::destroy(__na_, _VSTD::addressof(__p->__value_)); - if (__p) - __alloc_traits::deallocate(__na_, __p, 1); - } - - template friend class __map_node_destructor; -}; - -// node - -template -class __tree_end_node -{ -public: - typedef _Pointer pointer; - pointer __left_; - - _LIBCPP_INLINE_VISIBILITY - __tree_end_node() _NOEXCEPT : __left_() {} -}; - -template -class __tree_node_base - : public __tree_end_node - < - typename pointer_traits<_VoidPtr>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind<__tree_node_base<_VoidPtr> > -#else - rebind<__tree_node_base<_VoidPtr> >::other -#endif - > -{ - __tree_node_base(const __tree_node_base&); - __tree_node_base& operator=(const __tree_node_base&); -public: - typedef typename pointer_traits<_VoidPtr>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind<__tree_node_base> -#else - rebind<__tree_node_base>::other -#endif - pointer; - typedef typename pointer_traits<_VoidPtr>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind -#else - rebind::other -#endif - const_pointer; - typedef __tree_end_node base; - - pointer __right_; - pointer __parent_; - bool __is_black_; - - _LIBCPP_INLINE_VISIBILITY - __tree_node_base() _NOEXCEPT - : __right_(), __parent_(), __is_black_(false) {} -}; - -template -class __tree_node - : public __tree_node_base<_VoidPtr> -{ -public: - typedef __tree_node_base<_VoidPtr> base; - typedef _Tp value_type; - - value_type __value_; - -#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS) - template - _LIBCPP_INLINE_VISIBILITY - explicit __tree_node(_Args&& ...__args) - : __value_(_VSTD::forward<_Args>(__args)...) {} -#else // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS) - _LIBCPP_INLINE_VISIBILITY - explicit __tree_node(const value_type& __v) - : __value_(__v) {} -#endif // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS) -}; - -template class _LIBCPP_TYPE_VIS_ONLY __map_iterator; -template class _LIBCPP_TYPE_VIS_ONLY __map_const_iterator; - -template -class _LIBCPP_TYPE_VIS_ONLY __tree_iterator -{ - typedef _NodePtr __node_pointer; - typedef typename pointer_traits<__node_pointer>::element_type __node; - - __node_pointer __ptr_; - - typedef pointer_traits<__node_pointer> __pointer_traits; -public: - typedef bidirectional_iterator_tag iterator_category; - typedef _Tp value_type; - typedef _DiffType difference_type; - typedef value_type& reference; - typedef typename pointer_traits<__node_pointer>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind -#else - rebind::other -#endif - pointer; - - _LIBCPP_INLINE_VISIBILITY __tree_iterator() _NOEXCEPT -#if _LIBCPP_STD_VER > 11 - : __ptr_(nullptr) -#endif - {} - - _LIBCPP_INLINE_VISIBILITY reference operator*() const {return __ptr_->__value_;} - _LIBCPP_INLINE_VISIBILITY pointer operator->() const - {return pointer_traits::pointer_to(__ptr_->__value_);} - - _LIBCPP_INLINE_VISIBILITY - __tree_iterator& operator++() { - __ptr_ = static_cast<__node_pointer>( - __tree_next(static_cast(__ptr_))); - return *this; - } - _LIBCPP_INLINE_VISIBILITY - __tree_iterator operator++(int) - {__tree_iterator __t(*this); ++(*this); return __t;} - - _LIBCPP_INLINE_VISIBILITY - __tree_iterator& operator--() { - __ptr_ = static_cast<__node_pointer>( - __tree_prev(static_cast(__ptr_))); - return *this; - } - _LIBCPP_INLINE_VISIBILITY - __tree_iterator operator--(int) - {__tree_iterator __t(*this); --(*this); return __t;} - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(const __tree_iterator& __x, const __tree_iterator& __y) - {return __x.__ptr_ == __y.__ptr_;} - friend _LIBCPP_INLINE_VISIBILITY - bool operator!=(const __tree_iterator& __x, const __tree_iterator& __y) - {return !(__x == __y);} - -private: - _LIBCPP_INLINE_VISIBILITY - explicit __tree_iterator(__node_pointer __p) _NOEXCEPT : __ptr_(__p) {} - template friend class __tree; - template friend class _LIBCPP_TYPE_VIS_ONLY __tree_const_iterator; - template friend class _LIBCPP_TYPE_VIS_ONLY __map_iterator; - template friend class _LIBCPP_TYPE_VIS_ONLY map; - template friend class _LIBCPP_TYPE_VIS_ONLY multimap; - template friend class _LIBCPP_TYPE_VIS_ONLY set; - template friend class _LIBCPP_TYPE_VIS_ONLY multiset; -}; - -template -class _LIBCPP_TYPE_VIS_ONLY __tree_const_iterator -{ - typedef _ConstNodePtr __node_pointer; - typedef typename pointer_traits<__node_pointer>::element_type __node; - - __node_pointer __ptr_; - - typedef pointer_traits<__node_pointer> __pointer_traits; -public: - typedef bidirectional_iterator_tag iterator_category; - typedef _Tp value_type; - typedef _DiffType difference_type; - typedef const value_type& reference; - typedef typename pointer_traits<__node_pointer>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind -#else - rebind::other -#endif - pointer; - - _LIBCPP_INLINE_VISIBILITY __tree_const_iterator() _NOEXCEPT -#if _LIBCPP_STD_VER > 11 - : __ptr_(nullptr) -#endif - {} - -private: - typedef typename remove_const<__node>::type __non_const_node; - typedef typename pointer_traits<__node_pointer>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind<__non_const_node> -#else - rebind<__non_const_node>::other -#endif - __non_const_node_pointer; - typedef __tree_iterator - __non_const_iterator; -public: - _LIBCPP_INLINE_VISIBILITY - __tree_const_iterator(__non_const_iterator __p) _NOEXCEPT - : __ptr_(__p.__ptr_) {} - - _LIBCPP_INLINE_VISIBILITY reference operator*() const {return __ptr_->__value_;} - _LIBCPP_INLINE_VISIBILITY pointer operator->() const - {return pointer_traits::pointer_to(__ptr_->__value_);} - - _LIBCPP_INLINE_VISIBILITY - __tree_const_iterator& operator++() { - typedef typename pointer_traits<__node_pointer>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind -#else - rebind::other -#endif - __node_base_pointer; - - __ptr_ = static_cast<__node_pointer>( - __tree_next(static_cast<__node_base_pointer>(__ptr_))); - return *this; - } - - _LIBCPP_INLINE_VISIBILITY - __tree_const_iterator operator++(int) - {__tree_const_iterator __t(*this); ++(*this); return __t;} - - _LIBCPP_INLINE_VISIBILITY - __tree_const_iterator& operator--() { - typedef typename pointer_traits<__node_pointer>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind -#else - rebind::other -#endif - __node_base_pointer; - - __ptr_ = static_cast<__node_pointer>( - __tree_prev(static_cast<__node_base_pointer>(__ptr_))); - return *this; - } - - _LIBCPP_INLINE_VISIBILITY - __tree_const_iterator operator--(int) - {__tree_const_iterator __t(*this); --(*this); return __t;} - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(const __tree_const_iterator& __x, const __tree_const_iterator& __y) - {return __x.__ptr_ == __y.__ptr_;} - friend _LIBCPP_INLINE_VISIBILITY - bool operator!=(const __tree_const_iterator& __x, const __tree_const_iterator& __y) - {return !(__x == __y);} - -private: - _LIBCPP_INLINE_VISIBILITY - explicit __tree_const_iterator(__node_pointer __p) _NOEXCEPT - : __ptr_(__p) {} - template friend class __tree; - template friend class _LIBCPP_TYPE_VIS_ONLY map; - template friend class _LIBCPP_TYPE_VIS_ONLY multimap; - template friend class _LIBCPP_TYPE_VIS_ONLY set; - template friend class _LIBCPP_TYPE_VIS_ONLY multiset; - template friend class _LIBCPP_TYPE_VIS_ONLY __map_const_iterator; -}; - -template -class __tree -{ -public: - typedef _Tp value_type; - typedef _Compare value_compare; - typedef _Allocator allocator_type; - typedef allocator_traits __alloc_traits; - typedef typename __alloc_traits::pointer pointer; - typedef typename __alloc_traits::const_pointer const_pointer; - typedef typename __alloc_traits::size_type size_type; - typedef typename __alloc_traits::difference_type difference_type; - - typedef typename __alloc_traits::void_pointer __void_pointer; - - typedef __tree_node __node; - typedef __tree_node_base<__void_pointer> __node_base; - typedef typename __rebind_alloc_helper<__alloc_traits, __node>::type __node_allocator; - typedef allocator_traits<__node_allocator> __node_traits; - typedef typename __node_traits::pointer __node_pointer; - typedef typename __node_traits::pointer __node_const_pointer; - typedef typename __node_base::pointer __node_base_pointer; - typedef typename __node_base::pointer __node_base_const_pointer; -private: - typedef typename __node_base::base __end_node_t; - typedef typename pointer_traits<__node_pointer>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind<__end_node_t> -#else - rebind<__end_node_t>::other -#endif - __end_node_ptr; - typedef typename pointer_traits<__node_pointer>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind<__end_node_t> -#else - rebind<__end_node_t>::other -#endif - __end_node_const_ptr; - - __node_pointer __begin_node_; - __compressed_pair<__end_node_t, __node_allocator> __pair1_; - __compressed_pair __pair3_; - -public: - _LIBCPP_INLINE_VISIBILITY - __node_pointer __end_node() _NOEXCEPT - { - return static_cast<__node_pointer> - ( - pointer_traits<__end_node_ptr>::pointer_to(__pair1_.first()) - ); - } - _LIBCPP_INLINE_VISIBILITY - __node_const_pointer __end_node() const _NOEXCEPT - { - return static_cast<__node_const_pointer> - ( - pointer_traits<__end_node_const_ptr>::pointer_to(const_cast<__end_node_t&>(__pair1_.first())) - ); - } - _LIBCPP_INLINE_VISIBILITY - __node_allocator& __node_alloc() _NOEXCEPT {return __pair1_.second();} -private: - _LIBCPP_INLINE_VISIBILITY - const __node_allocator& __node_alloc() const _NOEXCEPT - {return __pair1_.second();} - _LIBCPP_INLINE_VISIBILITY - __node_pointer& __begin_node() _NOEXCEPT {return __begin_node_;} - _LIBCPP_INLINE_VISIBILITY - const __node_pointer& __begin_node() const _NOEXCEPT {return __begin_node_;} -public: - _LIBCPP_INLINE_VISIBILITY - allocator_type __alloc() const _NOEXCEPT - {return allocator_type(__node_alloc());} -private: - _LIBCPP_INLINE_VISIBILITY - size_type& size() _NOEXCEPT {return __pair3_.first();} -public: - _LIBCPP_INLINE_VISIBILITY - const size_type& size() const _NOEXCEPT {return __pair3_.first();} - _LIBCPP_INLINE_VISIBILITY - value_compare& value_comp() _NOEXCEPT {return __pair3_.second();} - _LIBCPP_INLINE_VISIBILITY - const value_compare& value_comp() const _NOEXCEPT - {return __pair3_.second();} -public: - _LIBCPP_INLINE_VISIBILITY - __node_pointer __root() _NOEXCEPT - {return static_cast<__node_pointer> (__end_node()->__left_);} - _LIBCPP_INLINE_VISIBILITY - __node_const_pointer __root() const _NOEXCEPT - {return static_cast<__node_const_pointer>(__end_node()->__left_);} - - typedef __tree_iterator iterator; - typedef __tree_const_iterator const_iterator; - - explicit __tree(const value_compare& __comp) - _NOEXCEPT_( - is_nothrow_default_constructible<__node_allocator>::value && - is_nothrow_copy_constructible::value); - explicit __tree(const allocator_type& __a); - __tree(const value_compare& __comp, const allocator_type& __a); - __tree(const __tree& __t); - __tree& operator=(const __tree& __t); - template - void __assign_unique(_InputIterator __first, _InputIterator __last); - template - void __assign_multi(_InputIterator __first, _InputIterator __last); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - __tree(__tree&& __t) - _NOEXCEPT_( - is_nothrow_move_constructible<__node_allocator>::value && - is_nothrow_move_constructible::value); - __tree(__tree&& __t, const allocator_type& __a); - __tree& operator=(__tree&& __t) - _NOEXCEPT_( - __node_traits::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable::value && - is_nothrow_move_assignable<__node_allocator>::value); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - ~__tree(); - - _LIBCPP_INLINE_VISIBILITY - iterator begin() _NOEXCEPT {return iterator(__begin_node());} - _LIBCPP_INLINE_VISIBILITY - const_iterator begin() const _NOEXCEPT {return const_iterator(__begin_node());} - _LIBCPP_INLINE_VISIBILITY - iterator end() _NOEXCEPT {return iterator(__end_node());} - _LIBCPP_INLINE_VISIBILITY - const_iterator end() const _NOEXCEPT {return const_iterator(__end_node());} - - _LIBCPP_INLINE_VISIBILITY - size_type max_size() const _NOEXCEPT - {return __node_traits::max_size(__node_alloc());} - - void clear() _NOEXCEPT; - - void swap(__tree& __t) - _NOEXCEPT_( - __is_nothrow_swappable::value -#if _LIBCPP_STD_VER <= 11 - && (!__node_traits::propagate_on_container_swap::value || - __is_nothrow_swappable<__node_allocator>::value) -#endif - ); - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -#ifndef _LIBCPP_HAS_NO_VARIADICS - template - pair - __emplace_unique(_Args&&... __args); - template - iterator - __emplace_multi(_Args&&... __args); - - template - iterator - __emplace_hint_unique(const_iterator __p, _Args&&... __args); - template - iterator - __emplace_hint_multi(const_iterator __p, _Args&&... __args); -#endif // _LIBCPP_HAS_NO_VARIADICS - - template - pair __insert_unique(_Vp&& __v); - template - iterator __insert_unique(const_iterator __p, _Vp&& __v); - template - iterator __insert_multi(_Vp&& __v); - template - iterator __insert_multi(const_iterator __p, _Vp&& __v); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - pair __insert_unique(const value_type& __v); - iterator __insert_unique(const_iterator __p, const value_type& __v); - iterator __insert_multi(const value_type& __v); - iterator __insert_multi(const_iterator __p, const value_type& __v); - - pair __node_insert_unique(__node_pointer __nd); - iterator __node_insert_unique(const_iterator __p, - __node_pointer __nd); - - iterator __node_insert_multi(__node_pointer __nd); - iterator __node_insert_multi(const_iterator __p, __node_pointer __nd); - - iterator erase(const_iterator __p); - iterator erase(const_iterator __f, const_iterator __l); - template - size_type __erase_unique(const _Key& __k); - template - size_type __erase_multi(const _Key& __k); - - void __insert_node_at(__node_base_pointer __parent, - __node_base_pointer& __child, - __node_base_pointer __new_node); - - template - iterator find(const _Key& __v); - template - const_iterator find(const _Key& __v) const; - - template - size_type __count_unique(const _Key& __k) const; - template - size_type __count_multi(const _Key& __k) const; - - template - _LIBCPP_INLINE_VISIBILITY - iterator lower_bound(const _Key& __v) - {return __lower_bound(__v, __root(), __end_node());} - template - iterator __lower_bound(const _Key& __v, - __node_pointer __root, - __node_pointer __result); - template - _LIBCPP_INLINE_VISIBILITY - const_iterator lower_bound(const _Key& __v) const - {return __lower_bound(__v, __root(), __end_node());} - template - const_iterator __lower_bound(const _Key& __v, - __node_const_pointer __root, - __node_const_pointer __result) const; - template - _LIBCPP_INLINE_VISIBILITY - iterator upper_bound(const _Key& __v) - {return __upper_bound(__v, __root(), __end_node());} - template - iterator __upper_bound(const _Key& __v, - __node_pointer __root, - __node_pointer __result); - template - _LIBCPP_INLINE_VISIBILITY - const_iterator upper_bound(const _Key& __v) const - {return __upper_bound(__v, __root(), __end_node());} - template - const_iterator __upper_bound(const _Key& __v, - __node_const_pointer __root, - __node_const_pointer __result) const; - template - pair - __equal_range_unique(const _Key& __k); - template - pair - __equal_range_unique(const _Key& __k) const; - - template - pair - __equal_range_multi(const _Key& __k); - template - pair - __equal_range_multi(const _Key& __k) const; - - typedef __tree_node_destructor<__node_allocator> _Dp; - typedef unique_ptr<__node, _Dp> __node_holder; - - __node_holder remove(const_iterator __p) _NOEXCEPT; -private: - typename __node_base::pointer& - __find_leaf_low(typename __node_base::pointer& __parent, const value_type& __v); - typename __node_base::pointer& - __find_leaf_high(typename __node_base::pointer& __parent, const value_type& __v); - typename __node_base::pointer& - __find_leaf(const_iterator __hint, - typename __node_base::pointer& __parent, const value_type& __v); - template - typename __node_base::pointer& - __find_equal(typename __node_base::pointer& __parent, const _Key& __v); - template - typename __node_base::pointer& - __find_equal(const_iterator __hint, typename __node_base::pointer& __parent, - const _Key& __v); - -#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS) - template - __node_holder __construct_node(_Args&& ...__args); -#else // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS) - __node_holder __construct_node(const value_type& __v); -#endif - - void destroy(__node_pointer __nd) _NOEXCEPT; - - _LIBCPP_INLINE_VISIBILITY - void __copy_assign_alloc(const __tree& __t) - {__copy_assign_alloc(__t, integral_constant());} - - _LIBCPP_INLINE_VISIBILITY - void __copy_assign_alloc(const __tree& __t, true_type) - {__node_alloc() = __t.__node_alloc();} - _LIBCPP_INLINE_VISIBILITY - void __copy_assign_alloc(const __tree& __t, false_type) {} - - void __move_assign(__tree& __t, false_type); - void __move_assign(__tree& __t, true_type) - _NOEXCEPT_(is_nothrow_move_assignable::value && - is_nothrow_move_assignable<__node_allocator>::value); - - _LIBCPP_INLINE_VISIBILITY - void __move_assign_alloc(__tree& __t) - _NOEXCEPT_( - !__node_traits::propagate_on_container_move_assignment::value || - is_nothrow_move_assignable<__node_allocator>::value) - {__move_assign_alloc(__t, integral_constant());} - - _LIBCPP_INLINE_VISIBILITY - void __move_assign_alloc(__tree& __t, true_type) - _NOEXCEPT_(is_nothrow_move_assignable<__node_allocator>::value) - {__node_alloc() = _VSTD::move(__t.__node_alloc());} - _LIBCPP_INLINE_VISIBILITY - void __move_assign_alloc(__tree& __t, false_type) _NOEXCEPT {} - - __node_pointer __detach(); - static __node_pointer __detach(__node_pointer); - - template friend class _LIBCPP_TYPE_VIS_ONLY map; - template friend class _LIBCPP_TYPE_VIS_ONLY multimap; -}; - -template -__tree<_Tp, _Compare, _Allocator>::__tree(const value_compare& __comp) - _NOEXCEPT_( - is_nothrow_default_constructible<__node_allocator>::value && - is_nothrow_copy_constructible::value) - : __pair3_(0, __comp) -{ - __begin_node() = __end_node(); -} - -template -__tree<_Tp, _Compare, _Allocator>::__tree(const allocator_type& __a) - : __begin_node_(__node_pointer()), - __pair1_(__node_allocator(__a)), - __pair3_(0) -{ - __begin_node() = __end_node(); -} - -template -__tree<_Tp, _Compare, _Allocator>::__tree(const value_compare& __comp, - const allocator_type& __a) - : __begin_node_(__node_pointer()), - __pair1_(__node_allocator(__a)), - __pair3_(0, __comp) -{ - __begin_node() = __end_node(); -} - -// Precondition: size() != 0 -template -typename __tree<_Tp, _Compare, _Allocator>::__node_pointer -__tree<_Tp, _Compare, _Allocator>::__detach() -{ - __node_pointer __cache = __begin_node(); - __begin_node() = __end_node(); - __end_node()->__left_->__parent_ = nullptr; - __end_node()->__left_ = nullptr; - size() = 0; - // __cache->__left_ == nullptr - if (__cache->__right_ != nullptr) - __cache = static_cast<__node_pointer>(__cache->__right_); - // __cache->__left_ == nullptr - // __cache->__right_ == nullptr - return __cache; -} - -// Precondition: __cache != nullptr -// __cache->left_ == nullptr -// __cache->right_ == nullptr -// This is no longer a red-black tree -template -typename __tree<_Tp, _Compare, _Allocator>::__node_pointer -__tree<_Tp, _Compare, _Allocator>::__detach(__node_pointer __cache) -{ - if (__cache->__parent_ == nullptr) - return nullptr; - if (__tree_is_left_child(static_cast<__node_base_pointer>(__cache))) - { - __cache->__parent_->__left_ = nullptr; - __cache = static_cast<__node_pointer>(__cache->__parent_); - if (__cache->__right_ == nullptr) - return __cache; - return static_cast<__node_pointer>(__tree_leaf(__cache->__right_)); - } - // __cache is right child - __cache->__parent_->__right_ = nullptr; - __cache = static_cast<__node_pointer>(__cache->__parent_); - if (__cache->__left_ == nullptr) - return __cache; - return static_cast<__node_pointer>(__tree_leaf(__cache->__left_)); -} - -template -__tree<_Tp, _Compare, _Allocator>& -__tree<_Tp, _Compare, _Allocator>::operator=(const __tree& __t) -{ - if (this != &__t) - { - value_comp() = __t.value_comp(); - __copy_assign_alloc(__t); - __assign_multi(__t.begin(), __t.end()); - } - return *this; -} - -template -template -void -__tree<_Tp, _Compare, _Allocator>::__assign_unique(_InputIterator __first, _InputIterator __last) -{ - if (size() != 0) - { - __node_pointer __cache = __detach(); -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - for (; __cache != nullptr && __first != __last; ++__first) - { - __cache->__value_ = *__first; - __node_pointer __next = __detach(__cache); - __node_insert_unique(__cache); - __cache = __next; - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - while (__cache->__parent_ != nullptr) - __cache = static_cast<__node_pointer>(__cache->__parent_); - destroy(__cache); - throw; - } -#endif // _LIBCPP_NO_EXCEPTIONS - if (__cache != nullptr) - { - while (__cache->__parent_ != nullptr) - __cache = static_cast<__node_pointer>(__cache->__parent_); - destroy(__cache); - } - } - for (; __first != __last; ++__first) - __insert_unique(*__first); -} - -template -template -void -__tree<_Tp, _Compare, _Allocator>::__assign_multi(_InputIterator __first, _InputIterator __last) -{ - if (size() != 0) - { - __node_pointer __cache = __detach(); -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - for (; __cache != nullptr && __first != __last; ++__first) - { - __cache->__value_ = *__first; - __node_pointer __next = __detach(__cache); - __node_insert_multi(__cache); - __cache = __next; - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - while (__cache->__parent_ != nullptr) - __cache = static_cast<__node_pointer>(__cache->__parent_); - destroy(__cache); - throw; - } -#endif // _LIBCPP_NO_EXCEPTIONS - if (__cache != nullptr) - { - while (__cache->__parent_ != nullptr) - __cache = static_cast<__node_pointer>(__cache->__parent_); - destroy(__cache); - } - } - for (; __first != __last; ++__first) - __insert_multi(*__first); -} - -template -__tree<_Tp, _Compare, _Allocator>::__tree(const __tree& __t) - : __begin_node_(__node_pointer()), - __pair1_(__node_traits::select_on_container_copy_construction(__t.__node_alloc())), - __pair3_(0, __t.value_comp()) -{ - __begin_node() = __end_node(); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -__tree<_Tp, _Compare, _Allocator>::__tree(__tree&& __t) - _NOEXCEPT_( - is_nothrow_move_constructible<__node_allocator>::value && - is_nothrow_move_constructible::value) - : __begin_node_(_VSTD::move(__t.__begin_node_)), - __pair1_(_VSTD::move(__t.__pair1_)), - __pair3_(_VSTD::move(__t.__pair3_)) -{ - if (size() == 0) - __begin_node() = __end_node(); - else - { - __end_node()->__left_->__parent_ = static_cast<__node_base_pointer>(__end_node()); - __t.__begin_node() = __t.__end_node(); - __t.__end_node()->__left_ = nullptr; - __t.size() = 0; - } -} - -template -__tree<_Tp, _Compare, _Allocator>::__tree(__tree&& __t, const allocator_type& __a) - : __pair1_(__node_allocator(__a)), - __pair3_(0, _VSTD::move(__t.value_comp())) -{ - if (__a == __t.__alloc()) - { - if (__t.size() == 0) - __begin_node() = __end_node(); - else - { - __begin_node() = __t.__begin_node(); - __end_node()->__left_ = __t.__end_node()->__left_; - __end_node()->__left_->__parent_ = static_cast<__node_base_pointer>(__end_node()); - size() = __t.size(); - __t.__begin_node() = __t.__end_node(); - __t.__end_node()->__left_ = nullptr; - __t.size() = 0; - } - } - else - { - __begin_node() = __end_node(); - } -} - -template -void -__tree<_Tp, _Compare, _Allocator>::__move_assign(__tree& __t, true_type) - _NOEXCEPT_(is_nothrow_move_assignable::value && - is_nothrow_move_assignable<__node_allocator>::value) -{ - destroy(static_cast<__node_pointer>(__end_node()->__left_)); - __begin_node_ = __t.__begin_node_; - __pair1_.first() = __t.__pair1_.first(); - __move_assign_alloc(__t); - __pair3_ = _VSTD::move(__t.__pair3_); - if (size() == 0) - __begin_node() = __end_node(); - else - { - __end_node()->__left_->__parent_ = static_cast<__node_base_pointer>(__end_node()); - __t.__begin_node() = __t.__end_node(); - __t.__end_node()->__left_ = nullptr; - __t.size() = 0; - } -} - -template -void -__tree<_Tp, _Compare, _Allocator>::__move_assign(__tree& __t, false_type) -{ - if (__node_alloc() == __t.__node_alloc()) - __move_assign(__t, true_type()); - else - { - value_comp() = _VSTD::move(__t.value_comp()); - const_iterator __e = end(); - if (size() != 0) - { - __node_pointer __cache = __detach(); -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - while (__cache != nullptr && __t.size() != 0) - { - __cache->__value_ = _VSTD::move(__t.remove(__t.begin())->__value_); - __node_pointer __next = __detach(__cache); - __node_insert_multi(__cache); - __cache = __next; - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - while (__cache->__parent_ != nullptr) - __cache = static_cast<__node_pointer>(__cache->__parent_); - destroy(__cache); - throw; - } -#endif // _LIBCPP_NO_EXCEPTIONS - if (__cache != nullptr) - { - while (__cache->__parent_ != nullptr) - __cache = static_cast<__node_pointer>(__cache->__parent_); - destroy(__cache); - } - } - while (__t.size() != 0) - __insert_multi(__e, _VSTD::move(__t.remove(__t.begin())->__value_)); - } -} - -template -__tree<_Tp, _Compare, _Allocator>& -__tree<_Tp, _Compare, _Allocator>::operator=(__tree&& __t) - _NOEXCEPT_( - __node_traits::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable::value && - is_nothrow_move_assignable<__node_allocator>::value) - -{ - __move_assign(__t, integral_constant()); - return *this; -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -__tree<_Tp, _Compare, _Allocator>::~__tree() -{ - destroy(__root()); -} - -template -void -__tree<_Tp, _Compare, _Allocator>::destroy(__node_pointer __nd) _NOEXCEPT -{ - if (__nd != nullptr) - { - destroy(static_cast<__node_pointer>(__nd->__left_)); - destroy(static_cast<__node_pointer>(__nd->__right_)); - __node_allocator& __na = __node_alloc(); - __node_traits::destroy(__na, _VSTD::addressof(__nd->__value_)); - __node_traits::deallocate(__na, __nd, 1); - } -} - -template -void -__tree<_Tp, _Compare, _Allocator>::swap(__tree& __t) - _NOEXCEPT_( - __is_nothrow_swappable::value -#if _LIBCPP_STD_VER <= 11 - && (!__node_traits::propagate_on_container_swap::value || - __is_nothrow_swappable<__node_allocator>::value) -#endif - ) -{ - using _VSTD::swap; - swap(__begin_node_, __t.__begin_node_); - swap(__pair1_.first(), __t.__pair1_.first()); - __swap_allocator(__node_alloc(), __t.__node_alloc()); - __pair3_.swap(__t.__pair3_); - if (size() == 0) - __begin_node() = __end_node(); - else - __end_node()->__left_->__parent_ = static_cast<__node_base_pointer>(__end_node()); - if (__t.size() == 0) - __t.__begin_node() = __t.__end_node(); - else - __t.__end_node()->__left_->__parent_ = static_cast<__node_base_pointer>(__t.__end_node()); -} - -template -void -__tree<_Tp, _Compare, _Allocator>::clear() _NOEXCEPT -{ - destroy(__root()); - size() = 0; - __begin_node() = __end_node(); - __end_node()->__left_ = nullptr; -} - -// Find lower_bound place to insert -// Set __parent to parent of null leaf -// Return reference to null leaf -template -typename __tree<_Tp, _Compare, _Allocator>::__node_base::pointer& -__tree<_Tp, _Compare, _Allocator>::__find_leaf_low(typename __node_base::pointer& __parent, - const value_type& __v) -{ - __node_pointer __nd = __root(); - if (__nd != nullptr) - { - while (true) - { - if (value_comp()(__nd->__value_, __v)) - { - if (__nd->__right_ != nullptr) - __nd = static_cast<__node_pointer>(__nd->__right_); - else - { - __parent = static_cast<__node_base_pointer>(__nd); - return __parent->__right_; - } - } - else - { - if (__nd->__left_ != nullptr) - __nd = static_cast<__node_pointer>(__nd->__left_); - else - { - __parent = static_cast<__node_base_pointer>(__nd); - return __parent->__left_; - } - } - } - } - __parent = static_cast<__node_base_pointer>(__end_node()); - return __parent->__left_; -} - -// Find upper_bound place to insert -// Set __parent to parent of null leaf -// Return reference to null leaf -template -typename __tree<_Tp, _Compare, _Allocator>::__node_base::pointer& -__tree<_Tp, _Compare, _Allocator>::__find_leaf_high(typename __node_base::pointer& __parent, - const value_type& __v) -{ - __node_pointer __nd = __root(); - if (__nd != nullptr) - { - while (true) - { - if (value_comp()(__v, __nd->__value_)) - { - if (__nd->__left_ != nullptr) - __nd = static_cast<__node_pointer>(__nd->__left_); - else - { - __parent = static_cast<__node_base_pointer>(__nd); - return __parent->__left_; - } - } - else - { - if (__nd->__right_ != nullptr) - __nd = static_cast<__node_pointer>(__nd->__right_); - else - { - __parent = static_cast<__node_base_pointer>(__nd); - return __parent->__right_; - } - } - } - } - __parent = static_cast<__node_base_pointer>(__end_node()); - return __parent->__left_; -} - -// Find leaf place to insert closest to __hint -// First check prior to __hint. -// Next check after __hint. -// Next do O(log N) search. -// Set __parent to parent of null leaf -// Return reference to null leaf -template -typename __tree<_Tp, _Compare, _Allocator>::__node_base::pointer& -__tree<_Tp, _Compare, _Allocator>::__find_leaf(const_iterator __hint, - typename __node_base::pointer& __parent, - const value_type& __v) -{ - if (__hint == end() || !value_comp()(*__hint, __v)) // check before - { - // __v <= *__hint - const_iterator __prior = __hint; - if (__prior == begin() || !value_comp()(__v, *--__prior)) - { - // *prev(__hint) <= __v <= *__hint - if (__hint.__ptr_->__left_ == nullptr) - { - __parent = static_cast<__node_base_pointer>(__hint.__ptr_); - return __parent->__left_; - } - else - { - __parent = static_cast<__node_base_pointer>(__prior.__ptr_); - return __parent->__right_; - } - } - // __v < *prev(__hint) - return __find_leaf_high(__parent, __v); - } - // else __v > *__hint - return __find_leaf_low(__parent, __v); -} - -// Find place to insert if __v doesn't exist -// Set __parent to parent of null leaf -// Return reference to null leaf -// If __v exists, set parent to node of __v and return reference to node of __v -template -template -typename __tree<_Tp, _Compare, _Allocator>::__node_base::pointer& -__tree<_Tp, _Compare, _Allocator>::__find_equal(typename __node_base::pointer& __parent, - const _Key& __v) -{ - __node_pointer __nd = __root(); - if (__nd != nullptr) - { - while (true) - { - if (value_comp()(__v, __nd->__value_)) - { - if (__nd->__left_ != nullptr) - __nd = static_cast<__node_pointer>(__nd->__left_); - else - { - __parent = static_cast<__node_base_pointer>(__nd); - return __parent->__left_; - } - } - else if (value_comp()(__nd->__value_, __v)) - { - if (__nd->__right_ != nullptr) - __nd = static_cast<__node_pointer>(__nd->__right_); - else - { - __parent = static_cast<__node_base_pointer>(__nd); - return __parent->__right_; - } - } - else - { - __parent = static_cast<__node_base_pointer>(__nd); - return __parent; - } - } - } - __parent = static_cast<__node_base_pointer>(__end_node()); - return __parent->__left_; -} - -// Find place to insert if __v doesn't exist -// First check prior to __hint. -// Next check after __hint. -// Next do O(log N) search. -// Set __parent to parent of null leaf -// Return reference to null leaf -// If __v exists, set parent to node of __v and return reference to node of __v -template -template -typename __tree<_Tp, _Compare, _Allocator>::__node_base::pointer& -__tree<_Tp, _Compare, _Allocator>::__find_equal(const_iterator __hint, - typename __node_base::pointer& __parent, - const _Key& __v) -{ - if (__hint == end() || value_comp()(__v, *__hint)) // check before - { - // __v < *__hint - const_iterator __prior = __hint; - if (__prior == begin() || value_comp()(*--__prior, __v)) - { - // *prev(__hint) < __v < *__hint - if (__hint.__ptr_->__left_ == nullptr) - { - __parent = static_cast<__node_base_pointer>(__hint.__ptr_); - return __parent->__left_; - } - else - { - __parent = static_cast<__node_base_pointer>(__prior.__ptr_); - return __parent->__right_; - } - } - // __v <= *prev(__hint) - return __find_equal(__parent, __v); - } - else if (value_comp()(*__hint, __v)) // check after - { - // *__hint < __v - const_iterator __next = _VSTD::next(__hint); - if (__next == end() || value_comp()(__v, *__next)) - { - // *__hint < __v < *_VSTD::next(__hint) - if (__hint.__ptr_->__right_ == nullptr) - { - __parent = static_cast<__node_base_pointer>(__hint.__ptr_); - return __parent->__right_; - } - else - { - __parent = static_cast<__node_base_pointer>(__next.__ptr_); - return __parent->__left_; - } - } - // *next(__hint) <= __v - return __find_equal(__parent, __v); - } - // else __v == *__hint - __parent = static_cast<__node_base_pointer>(__hint.__ptr_); - return __parent; -} - -template -void -__tree<_Tp, _Compare, _Allocator>::__insert_node_at(__node_base_pointer __parent, - __node_base_pointer& __child, - __node_base_pointer __new_node) -{ - __new_node->__left_ = nullptr; - __new_node->__right_ = nullptr; - __new_node->__parent_ = __parent; - __child = __new_node; - if (__begin_node()->__left_ != nullptr) - __begin_node() = static_cast<__node_pointer>(__begin_node()->__left_); - __tree_balance_after_insert(__end_node()->__left_, __child); - ++size(); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -#ifndef _LIBCPP_HAS_NO_VARIADICS - -template -template -typename __tree<_Tp, _Compare, _Allocator>::__node_holder -__tree<_Tp, _Compare, _Allocator>::__construct_node(_Args&& ...__args) -{ - __node_allocator& __na = __node_alloc(); - __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); - __node_traits::construct(__na, _VSTD::addressof(__h->__value_), _VSTD::forward<_Args>(__args)...); - __h.get_deleter().__value_constructed = true; - return __h; -} - -template -template -pair::iterator, bool> -__tree<_Tp, _Compare, _Allocator>::__emplace_unique(_Args&&... __args) -{ - __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...); - __node_base_pointer __parent; - __node_base_pointer& __child = __find_equal(__parent, __h->__value_); - __node_pointer __r = static_cast<__node_pointer>(__child); - bool __inserted = false; - if (__child == nullptr) - { - __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); - __r = __h.release(); - __inserted = true; - } - return pair(iterator(__r), __inserted); -} - -template -template -typename __tree<_Tp, _Compare, _Allocator>::iterator -__tree<_Tp, _Compare, _Allocator>::__emplace_hint_unique(const_iterator __p, _Args&&... __args) -{ - __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...); - __node_base_pointer __parent; - __node_base_pointer& __child = __find_equal(__p, __parent, __h->__value_); - __node_pointer __r = static_cast<__node_pointer>(__child); - if (__child == nullptr) - { - __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); - __r = __h.release(); - } - return iterator(__r); -} - -template -template -typename __tree<_Tp, _Compare, _Allocator>::iterator -__tree<_Tp, _Compare, _Allocator>::__emplace_multi(_Args&&... __args) -{ - __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...); - __node_base_pointer __parent; - __node_base_pointer& __child = __find_leaf_high(__parent, __h->__value_); - __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); - return iterator(static_cast<__node_pointer>(__h.release())); -} - -template -template -typename __tree<_Tp, _Compare, _Allocator>::iterator -__tree<_Tp, _Compare, _Allocator>::__emplace_hint_multi(const_iterator __p, - _Args&&... __args) -{ - __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...); - __node_base_pointer __parent; - __node_base_pointer& __child = __find_leaf(__p, __parent, __h->__value_); - __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); - return iterator(static_cast<__node_pointer>(__h.release())); -} - -#endif // _LIBCPP_HAS_NO_VARIADICS - -template -template -pair::iterator, bool> -__tree<_Tp, _Compare, _Allocator>::__insert_unique(_Vp&& __v) -{ - __node_holder __h = __construct_node(_VSTD::forward<_Vp>(__v)); - pair __r = __node_insert_unique(__h.get()); - if (__r.second) - __h.release(); - return __r; -} - -template -template -typename __tree<_Tp, _Compare, _Allocator>::iterator -__tree<_Tp, _Compare, _Allocator>::__insert_unique(const_iterator __p, _Vp&& __v) -{ - __node_holder __h = __construct_node(_VSTD::forward<_Vp>(__v)); - iterator __r = __node_insert_unique(__p, __h.get()); - if (__r.__ptr_ == __h.get()) - __h.release(); - return __r; -} - -template -template -typename __tree<_Tp, _Compare, _Allocator>::iterator -__tree<_Tp, _Compare, _Allocator>::__insert_multi(_Vp&& __v) -{ - __node_holder __h = __construct_node(_VSTD::forward<_Vp>(__v)); - __node_base_pointer __parent; - __node_base_pointer& __child = __find_leaf_high(__parent, __h->__value_); - __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); - return iterator(__h.release()); -} - -template -template -typename __tree<_Tp, _Compare, _Allocator>::iterator -__tree<_Tp, _Compare, _Allocator>::__insert_multi(const_iterator __p, _Vp&& __v) -{ - __node_holder __h = __construct_node(_VSTD::forward<_Vp>(__v)); - __node_base_pointer __parent; - __node_base_pointer& __child = __find_leaf(__p, __parent, __h->__value_); - __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); - return iterator(__h.release()); -} - -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -typename __tree<_Tp, _Compare, _Allocator>::__node_holder -__tree<_Tp, _Compare, _Allocator>::__construct_node(const value_type& __v) -{ - __node_allocator& __na = __node_alloc(); - __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); - __node_traits::construct(__na, _VSTD::addressof(__h->__value_), __v); - __h.get_deleter().__value_constructed = true; - return _LIBCPP_EXPLICIT_MOVE(__h); // explicitly moved for C++03 -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -pair::iterator, bool> -__tree<_Tp, _Compare, _Allocator>::__insert_unique(const value_type& __v) -{ - __node_base_pointer __parent; - __node_base_pointer& __child = __find_equal(__parent, __v); - __node_pointer __r = static_cast<__node_pointer>(__child); - bool __inserted = false; - if (__child == nullptr) - { - __node_holder __h = __construct_node(__v); - __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); - __r = __h.release(); - __inserted = true; - } - return pair(iterator(__r), __inserted); -} - -template -typename __tree<_Tp, _Compare, _Allocator>::iterator -__tree<_Tp, _Compare, _Allocator>::__insert_unique(const_iterator __p, const value_type& __v) -{ - __node_base_pointer __parent; - __node_base_pointer& __child = __find_equal(__p, __parent, __v); - __node_pointer __r = static_cast<__node_pointer>(__child); - if (__child == nullptr) - { - __node_holder __h = __construct_node(__v); - __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); - __r = __h.release(); - } - return iterator(__r); -} - -template -typename __tree<_Tp, _Compare, _Allocator>::iterator -__tree<_Tp, _Compare, _Allocator>::__insert_multi(const value_type& __v) -{ - __node_base_pointer __parent; - __node_base_pointer& __child = __find_leaf_high(__parent, __v); - __node_holder __h = __construct_node(__v); - __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); - return iterator(__h.release()); -} - -template -typename __tree<_Tp, _Compare, _Allocator>::iterator -__tree<_Tp, _Compare, _Allocator>::__insert_multi(const_iterator __p, const value_type& __v) -{ - __node_base_pointer __parent; - __node_base_pointer& __child = __find_leaf(__p, __parent, __v); - __node_holder __h = __construct_node(__v); - __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); - return iterator(__h.release()); -} - -template -pair::iterator, bool> -__tree<_Tp, _Compare, _Allocator>::__node_insert_unique(__node_pointer __nd) -{ - __node_base_pointer __parent; - __node_base_pointer& __child = __find_equal(__parent, __nd->__value_); - __node_pointer __r = static_cast<__node_pointer>(__child); - bool __inserted = false; - if (__child == nullptr) - { - __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__nd)); - __r = __nd; - __inserted = true; - } - return pair(iterator(__r), __inserted); -} - -template -typename __tree<_Tp, _Compare, _Allocator>::iterator -__tree<_Tp, _Compare, _Allocator>::__node_insert_unique(const_iterator __p, - __node_pointer __nd) -{ - __node_base_pointer __parent; - __node_base_pointer& __child = __find_equal(__p, __parent, __nd->__value_); - __node_pointer __r = static_cast<__node_pointer>(__child); - if (__child == nullptr) - { - __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__nd)); - __r = __nd; - } - return iterator(__r); -} - -template -typename __tree<_Tp, _Compare, _Allocator>::iterator -__tree<_Tp, _Compare, _Allocator>::__node_insert_multi(__node_pointer __nd) -{ - __node_base_pointer __parent; - __node_base_pointer& __child = __find_leaf_high(__parent, __nd->__value_); - __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__nd)); - return iterator(__nd); -} - -template -typename __tree<_Tp, _Compare, _Allocator>::iterator -__tree<_Tp, _Compare, _Allocator>::__node_insert_multi(const_iterator __p, - __node_pointer __nd) -{ - __node_base_pointer __parent; - __node_base_pointer& __child = __find_leaf(__p, __parent, __nd->__value_); - __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__nd)); - return iterator(__nd); -} - -template -typename __tree<_Tp, _Compare, _Allocator>::iterator -__tree<_Tp, _Compare, _Allocator>::erase(const_iterator __p) -{ - __node_pointer __np = __p.__ptr_; - iterator __r(__np); - ++__r; - if (__begin_node() == __np) - __begin_node() = __r.__ptr_; - --size(); - __node_allocator& __na = __node_alloc(); - __tree_remove(__end_node()->__left_, - static_cast<__node_base_pointer>(__np)); - __node_traits::destroy(__na, const_cast(_VSTD::addressof(*__p))); - __node_traits::deallocate(__na, __np, 1); - return __r; -} - -template -typename __tree<_Tp, _Compare, _Allocator>::iterator -__tree<_Tp, _Compare, _Allocator>::erase(const_iterator __f, const_iterator __l) -{ - while (__f != __l) - __f = erase(__f); - return iterator(__l.__ptr_); -} - -template -template -typename __tree<_Tp, _Compare, _Allocator>::size_type -__tree<_Tp, _Compare, _Allocator>::__erase_unique(const _Key& __k) -{ - iterator __i = find(__k); - if (__i == end()) - return 0; - erase(__i); - return 1; -} - -template -template -typename __tree<_Tp, _Compare, _Allocator>::size_type -__tree<_Tp, _Compare, _Allocator>::__erase_multi(const _Key& __k) -{ - pair __p = __equal_range_multi(__k); - size_type __r = 0; - for (; __p.first != __p.second; ++__r) - __p.first = erase(__p.first); - return __r; -} - -template -template -typename __tree<_Tp, _Compare, _Allocator>::iterator -__tree<_Tp, _Compare, _Allocator>::find(const _Key& __v) -{ - iterator __p = __lower_bound(__v, __root(), __end_node()); - if (__p != end() && !value_comp()(__v, *__p)) - return __p; - return end(); -} - -template -template -typename __tree<_Tp, _Compare, _Allocator>::const_iterator -__tree<_Tp, _Compare, _Allocator>::find(const _Key& __v) const -{ - const_iterator __p = __lower_bound(__v, __root(), __end_node()); - if (__p != end() && !value_comp()(__v, *__p)) - return __p; - return end(); -} - -template -template -typename __tree<_Tp, _Compare, _Allocator>::size_type -__tree<_Tp, _Compare, _Allocator>::__count_unique(const _Key& __k) const -{ - __node_const_pointer __result = __end_node(); - __node_const_pointer __rt = __root(); - while (__rt != nullptr) - { - if (value_comp()(__k, __rt->__value_)) - { - __result = __rt; - __rt = static_cast<__node_const_pointer>(__rt->__left_); - } - else if (value_comp()(__rt->__value_, __k)) - __rt = static_cast<__node_const_pointer>(__rt->__right_); - else - return 1; - } - return 0; -} - -template -template -typename __tree<_Tp, _Compare, _Allocator>::size_type -__tree<_Tp, _Compare, _Allocator>::__count_multi(const _Key& __k) const -{ - __node_const_pointer __result = __end_node(); - __node_const_pointer __rt = __root(); - while (__rt != nullptr) - { - if (value_comp()(__k, __rt->__value_)) - { - __result = __rt; - __rt = static_cast<__node_const_pointer>(__rt->__left_); - } - else if (value_comp()(__rt->__value_, __k)) - __rt = static_cast<__node_const_pointer>(__rt->__right_); - else - return _VSTD::distance( - __lower_bound(__k, static_cast<__node_const_pointer>(__rt->__left_), __rt), - __upper_bound(__k, static_cast<__node_const_pointer>(__rt->__right_), __result) - ); - } - return 0; -} - -template -template -typename __tree<_Tp, _Compare, _Allocator>::iterator -__tree<_Tp, _Compare, _Allocator>::__lower_bound(const _Key& __v, - __node_pointer __root, - __node_pointer __result) -{ - while (__root != nullptr) - { - if (!value_comp()(__root->__value_, __v)) - { - __result = __root; - __root = static_cast<__node_pointer>(__root->__left_); - } - else - __root = static_cast<__node_pointer>(__root->__right_); - } - return iterator(__result); -} - -template -template -typename __tree<_Tp, _Compare, _Allocator>::const_iterator -__tree<_Tp, _Compare, _Allocator>::__lower_bound(const _Key& __v, - __node_const_pointer __root, - __node_const_pointer __result) const -{ - while (__root != nullptr) - { - if (!value_comp()(__root->__value_, __v)) - { - __result = __root; - __root = static_cast<__node_const_pointer>(__root->__left_); - } - else - __root = static_cast<__node_const_pointer>(__root->__right_); - } - return const_iterator(__result); -} - -template -template -typename __tree<_Tp, _Compare, _Allocator>::iterator -__tree<_Tp, _Compare, _Allocator>::__upper_bound(const _Key& __v, - __node_pointer __root, - __node_pointer __result) -{ - while (__root != nullptr) - { - if (value_comp()(__v, __root->__value_)) - { - __result = __root; - __root = static_cast<__node_pointer>(__root->__left_); - } - else - __root = static_cast<__node_pointer>(__root->__right_); - } - return iterator(__result); -} - -template -template -typename __tree<_Tp, _Compare, _Allocator>::const_iterator -__tree<_Tp, _Compare, _Allocator>::__upper_bound(const _Key& __v, - __node_const_pointer __root, - __node_const_pointer __result) const -{ - while (__root != nullptr) - { - if (value_comp()(__v, __root->__value_)) - { - __result = __root; - __root = static_cast<__node_const_pointer>(__root->__left_); - } - else - __root = static_cast<__node_const_pointer>(__root->__right_); - } - return const_iterator(__result); -} - -template -template -pair::iterator, - typename __tree<_Tp, _Compare, _Allocator>::iterator> -__tree<_Tp, _Compare, _Allocator>::__equal_range_unique(const _Key& __k) -{ - typedef pair _Pp; - __node_pointer __result = __end_node(); - __node_pointer __rt = __root(); - while (__rt != nullptr) - { - if (value_comp()(__k, __rt->__value_)) - { - __result = __rt; - __rt = static_cast<__node_pointer>(__rt->__left_); - } - else if (value_comp()(__rt->__value_, __k)) - __rt = static_cast<__node_pointer>(__rt->__right_); - else - return _Pp(iterator(__rt), - iterator( - __rt->__right_ != nullptr ? - static_cast<__node_pointer>(__tree_min(__rt->__right_)) - : __result)); - } - return _Pp(iterator(__result), iterator(__result)); -} - -template -template -pair::const_iterator, - typename __tree<_Tp, _Compare, _Allocator>::const_iterator> -__tree<_Tp, _Compare, _Allocator>::__equal_range_unique(const _Key& __k) const -{ - typedef pair _Pp; - __node_const_pointer __result = __end_node(); - __node_const_pointer __rt = __root(); - while (__rt != nullptr) - { - if (value_comp()(__k, __rt->__value_)) - { - __result = __rt; - __rt = static_cast<__node_const_pointer>(__rt->__left_); - } - else if (value_comp()(__rt->__value_, __k)) - __rt = static_cast<__node_const_pointer>(__rt->__right_); - else - return _Pp(const_iterator(__rt), - const_iterator( - __rt->__right_ != nullptr ? - static_cast<__node_const_pointer>(__tree_min(__rt->__right_)) - : __result)); - } - return _Pp(const_iterator(__result), const_iterator(__result)); -} - -template -template -pair::iterator, - typename __tree<_Tp, _Compare, _Allocator>::iterator> -__tree<_Tp, _Compare, _Allocator>::__equal_range_multi(const _Key& __k) -{ - typedef pair _Pp; - __node_pointer __result = __end_node(); - __node_pointer __rt = __root(); - while (__rt != nullptr) - { - if (value_comp()(__k, __rt->__value_)) - { - __result = __rt; - __rt = static_cast<__node_pointer>(__rt->__left_); - } - else if (value_comp()(__rt->__value_, __k)) - __rt = static_cast<__node_pointer>(__rt->__right_); - else - return _Pp(__lower_bound(__k, static_cast<__node_pointer>(__rt->__left_), __rt), - __upper_bound(__k, static_cast<__node_pointer>(__rt->__right_), __result)); - } - return _Pp(iterator(__result), iterator(__result)); -} - -template -template -pair::const_iterator, - typename __tree<_Tp, _Compare, _Allocator>::const_iterator> -__tree<_Tp, _Compare, _Allocator>::__equal_range_multi(const _Key& __k) const -{ - typedef pair _Pp; - __node_const_pointer __result = __end_node(); - __node_const_pointer __rt = __root(); - while (__rt != nullptr) - { - if (value_comp()(__k, __rt->__value_)) - { - __result = __rt; - __rt = static_cast<__node_const_pointer>(__rt->__left_); - } - else if (value_comp()(__rt->__value_, __k)) - __rt = static_cast<__node_const_pointer>(__rt->__right_); - else - return _Pp(__lower_bound(__k, static_cast<__node_const_pointer>(__rt->__left_), __rt), - __upper_bound(__k, static_cast<__node_const_pointer>(__rt->__right_), __result)); - } - return _Pp(const_iterator(__result), const_iterator(__result)); -} - -template -typename __tree<_Tp, _Compare, _Allocator>::__node_holder -__tree<_Tp, _Compare, _Allocator>::remove(const_iterator __p) _NOEXCEPT -{ - __node_pointer __np = __p.__ptr_; - if (__begin_node() == __np) - { - if (__np->__right_ != nullptr) - __begin_node() = static_cast<__node_pointer>(__np->__right_); - else - __begin_node() = static_cast<__node_pointer>(__np->__parent_); - } - --size(); - __tree_remove(__end_node()->__left_, - static_cast<__node_base_pointer>(__np)); - return __node_holder(__np, _Dp(__node_alloc(), true)); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(__tree<_Tp, _Compare, _Allocator>& __x, - __tree<_Tp, _Compare, _Allocator>& __y) - _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) -{ - __x.swap(__y); -} - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP___TREE diff --git a/headers/libs/libc++/__tuple b/headers/libs/libc++/__tuple deleted file mode 100644 index 57581e8428..0000000000 --- a/headers/libs/libc++/__tuple +++ /dev/null @@ -1,348 +0,0 @@ -// -*- C++ -*- -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP___TUPLE -#define _LIBCPP___TUPLE - -#include <__config> -#include -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - - -_LIBCPP_BEGIN_NAMESPACE_STD - -template class _LIBCPP_TYPE_VIS_ONLY tuple_size; - -template -class _LIBCPP_TYPE_VIS_ONLY tuple_size - : public tuple_size<_Tp> {}; - -template -class _LIBCPP_TYPE_VIS_ONLY tuple_size - : public tuple_size<_Tp> {}; - -template -class _LIBCPP_TYPE_VIS_ONLY tuple_size - : public tuple_size<_Tp> {}; - -template class _LIBCPP_TYPE_VIS_ONLY tuple_element; - -template -class _LIBCPP_TYPE_VIS_ONLY tuple_element<_Ip, const _Tp> -{ -public: - typedef typename add_const::type>::type type; -}; - -template -class _LIBCPP_TYPE_VIS_ONLY tuple_element<_Ip, volatile _Tp> -{ -public: - typedef typename add_volatile::type>::type type; -}; - -template -class _LIBCPP_TYPE_VIS_ONLY tuple_element<_Ip, const volatile _Tp> -{ -public: - typedef typename add_cv::type>::type type; -}; - -template struct __tuple_like : false_type {}; - -template struct __tuple_like : public __tuple_like<_Tp> {}; -template struct __tuple_like : public __tuple_like<_Tp> {}; -template struct __tuple_like : public __tuple_like<_Tp> {}; - -// tuple specializations - -#if !defined(_LIBCPP_HAS_NO_VARIADICS) -template class _LIBCPP_TYPE_VIS_ONLY tuple; - -template struct __tuple_like > : true_type {}; - -template -_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -typename tuple_element<_Ip, tuple<_Tp...> >::type& -get(tuple<_Tp...>&) _NOEXCEPT; - -template -_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -const typename tuple_element<_Ip, tuple<_Tp...> >::type& -get(const tuple<_Tp...>&) _NOEXCEPT; - -template -_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -typename tuple_element<_Ip, tuple<_Tp...> >::type&& -get(tuple<_Tp...>&&) _NOEXCEPT; -#endif - -// pair specializations - -template struct _LIBCPP_TYPE_VIS_ONLY pair; - -template struct __tuple_like > : true_type {}; - -template -_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -typename tuple_element<_Ip, pair<_T1, _T2> >::type& -get(pair<_T1, _T2>&) _NOEXCEPT; - -template -_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -const typename tuple_element<_Ip, pair<_T1, _T2> >::type& -get(const pair<_T1, _T2>&) _NOEXCEPT; - -#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) -template -_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -typename tuple_element<_Ip, pair<_T1, _T2> >::type&& -get(pair<_T1, _T2>&&) _NOEXCEPT; -#endif - -// array specializations - -template struct _LIBCPP_TYPE_VIS_ONLY array; - -template struct __tuple_like > : true_type {}; - -template -_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -_Tp& -get(array<_Tp, _Size>&) _NOEXCEPT; - -template -_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -const _Tp& -get(const array<_Tp, _Size>&) _NOEXCEPT; - -#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) -template -_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -_Tp&& -get(array<_Tp, _Size>&&) _NOEXCEPT; -#endif - -#if !defined(_LIBCPP_HAS_NO_VARIADICS) - -// __make_tuple_indices - -template struct __tuple_indices {}; - -template -struct __make_indices_imp; - -template -struct __make_indices_imp<_Sp, __tuple_indices<_Indices...>, _Ep> -{ - typedef typename __make_indices_imp<_Sp+1, __tuple_indices<_Indices..., _Sp>, _Ep>::type type; -}; - -template -struct __make_indices_imp<_Ep, __tuple_indices<_Indices...>, _Ep> -{ - typedef __tuple_indices<_Indices...> type; -}; - -template -struct __make_tuple_indices -{ - static_assert(_Sp <= _Ep, "__make_tuple_indices input error"); - typedef typename __make_indices_imp<_Sp, __tuple_indices<>, _Ep>::type type; -}; - -// __tuple_types - -template struct __tuple_types {}; - -template -class _LIBCPP_TYPE_VIS_ONLY tuple_element<_Ip, __tuple_types<> > -{ -public: - static_assert(_Ip == 0, "tuple_element index out of range"); - static_assert(_Ip != 0, "tuple_element index out of range"); -}; - -template -class _LIBCPP_TYPE_VIS_ONLY tuple_element<0, __tuple_types<_Hp, _Tp...> > -{ -public: - typedef _Hp type; -}; - -template -class _LIBCPP_TYPE_VIS_ONLY tuple_element<_Ip, __tuple_types<_Hp, _Tp...> > -{ -public: - typedef typename tuple_element<_Ip-1, __tuple_types<_Tp...> >::type type; -}; - -template -class _LIBCPP_TYPE_VIS_ONLY tuple_size<__tuple_types<_Tp...> > - : public integral_constant -{ -}; - -template struct __tuple_like<__tuple_types<_Tp...> > : true_type {}; - -// __make_tuple_types - -// __make_tuple_types<_Tuple<_Types...>, _Ep, _Sp>::type is a -// __tuple_types<_Types...> using only those _Types in the range [_Sp, _Ep). -// _Sp defaults to 0 and _Ep defaults to tuple_size<_Tuple>. If _Tuple is a -// lvalue_reference type, then __tuple_types<_Types&...> is the result. - -template -struct __make_tuple_types_imp; - -template -struct __make_tuple_types_imp<__tuple_types<_Types...>, _Tp, _Sp, _Ep> -{ - typedef typename remove_reference<_Tp>::type _Tpr; - typedef typename __make_tuple_types_imp<__tuple_types<_Types..., - typename conditional::value, - typename tuple_element<_Sp, _Tpr>::type&, - typename tuple_element<_Sp, _Tpr>::type>::type>, - _Tp, _Sp+1, _Ep>::type type; -}; - -template -struct __make_tuple_types_imp<__tuple_types<_Types...>, _Tp, _Ep, _Ep> -{ - typedef __tuple_types<_Types...> type; -}; - -template ::type>::value, size_t _Sp = 0> -struct __make_tuple_types -{ - static_assert(_Sp <= _Ep, "__make_tuple_types input error"); - typedef typename __make_tuple_types_imp<__tuple_types<>, _Tp, _Sp, _Ep>::type type; -}; - -// __tuple_convertible - -template -struct __tuple_convertible_imp : public false_type {}; - -template -struct __tuple_convertible_imp<__tuple_types<_Tp0, _Tp...>, __tuple_types<_Up0, _Up...> > - : public integral_constant::value && - __tuple_convertible_imp<__tuple_types<_Tp...>, __tuple_types<_Up...> >::value> {}; - -template <> -struct __tuple_convertible_imp<__tuple_types<>, __tuple_types<> > - : public true_type {}; - -template -struct __tuple_convertible_apply : public false_type {}; - -template -struct __tuple_convertible_apply - : public __tuple_convertible_imp< - typename __make_tuple_types<_Tp>::type - , typename __make_tuple_types<_Up>::type - > -{}; - -template ::type>::value, - bool = __tuple_like<_Up>::value> -struct __tuple_convertible - : public false_type {}; - -template -struct __tuple_convertible<_Tp, _Up, true, true> - : public __tuple_convertible_apply::type>::value == - tuple_size<_Up>::value, _Tp, _Up> -{}; - -// __tuple_constructible - -template -struct __tuple_constructible_imp : public false_type {}; - -template -struct __tuple_constructible_imp<__tuple_types<_Tp0, _Tp...>, __tuple_types<_Up0, _Up...> > - : public integral_constant::value && - __tuple_constructible_imp<__tuple_types<_Tp...>, __tuple_types<_Up...> >::value> {}; - -template <> -struct __tuple_constructible_imp<__tuple_types<>, __tuple_types<> > - : public true_type {}; - -template -struct __tuple_constructible_apply : public false_type {}; - -template -struct __tuple_constructible_apply - : public __tuple_constructible_imp< - typename __make_tuple_types<_Tp>::type - , typename __make_tuple_types<_Up>::type - > -{}; - -template ::type>::value, - bool = __tuple_like<_Up>::value> -struct __tuple_constructible - : public false_type {}; - -template -struct __tuple_constructible<_Tp, _Up, true, true> - : public __tuple_constructible_apply::type>::value == - tuple_size<_Up>::value, _Tp, _Up> -{}; - -// __tuple_assignable - -template -struct __tuple_assignable_imp : public false_type {}; - -template -struct __tuple_assignable_imp<__tuple_types<_Tp0, _Tp...>, __tuple_types<_Up0, _Up...> > - : public integral_constant::value && - __tuple_assignable_imp<__tuple_types<_Tp...>, __tuple_types<_Up...> >::value> {}; - -template <> -struct __tuple_assignable_imp<__tuple_types<>, __tuple_types<> > - : public true_type {}; - -template -struct __tuple_assignable_apply : public false_type {}; - -template -struct __tuple_assignable_apply - : __tuple_assignable_imp< - typename __make_tuple_types<_Tp>::type - , typename __make_tuple_types<_Up>::type - > -{}; - -template ::type>::value, - bool = __tuple_like<_Up>::value> -struct __tuple_assignable - : public false_type {}; - -template -struct __tuple_assignable<_Tp, _Up, true, true> - : public __tuple_assignable_apply::type>::value == - tuple_size<_Up>::value, _Tp, _Up> -{}; - -#endif // _LIBCPP_HAS_NO_VARIADICS - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP___TUPLE diff --git a/headers/libs/libc++/__undef___deallocate b/headers/libs/libc++/__undef___deallocate deleted file mode 100644 index 2b4ad99dad..0000000000 --- a/headers/libs/libc++/__undef___deallocate +++ /dev/null @@ -1,18 +0,0 @@ -// -*- C++ -*- -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifdef __deallocate -#if defined(_MSC_VER) && !defined(__clang__) -_LIBCPP_WARNING("macro __deallocate is incompatible with C++. #undefining __deallocate") -#else -#warning: macro __deallocate is incompatible with C++. #undefining __deallocate -#endif -#undef __deallocate -#endif diff --git a/headers/libs/libc++/__undef_min_max b/headers/libs/libc++/__undef_min_max deleted file mode 100644 index 5df9412c64..0000000000 --- a/headers/libs/libc++/__undef_min_max +++ /dev/null @@ -1,29 +0,0 @@ -// -*- C++ -*- -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifdef min -#if defined(_MSC_VER) && ! defined(__clang__) -_LIBCPP_WARNING("macro min is incompatible with C++. Try #define NOMINMAX " - "before any Windows header. #undefing min") -#else -#warning: macro min is incompatible with C++. #undefing min -#endif -#undef min -#endif - -#ifdef max -#if defined(_MSC_VER) && ! defined(__clang__) -_LIBCPP_WARNING("macro max is incompatible with C++. Try #define NOMINMAX " - "before any Windows header. #undefing max") -#else -#warning: macro max is incompatible with C++. #undefing max -#endif -#undef max -#endif diff --git a/headers/libs/libc++/algorithm b/headers/libs/libc++/algorithm deleted file mode 100644 index 9c05119893..0000000000 --- a/headers/libs/libc++/algorithm +++ /dev/null @@ -1,5777 +0,0 @@ -// -*- C++ -*- -//===-------------------------- algorithm ---------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_ALGORITHM -#define _LIBCPP_ALGORITHM - -/* - algorithm synopsis - -#include - -namespace std -{ - -template - bool - all_of(InputIterator first, InputIterator last, Predicate pred); - -template - bool - any_of(InputIterator first, InputIterator last, Predicate pred); - -template - bool - none_of(InputIterator first, InputIterator last, Predicate pred); - -template - Function - for_each(InputIterator first, InputIterator last, Function f); - -template - InputIterator - find(InputIterator first, InputIterator last, const T& value); - -template - InputIterator - find_if(InputIterator first, InputIterator last, Predicate pred); - -template - InputIterator - find_if_not(InputIterator first, InputIterator last, Predicate pred); - -template - ForwardIterator1 - find_end(ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2); - -template - ForwardIterator1 - find_end(ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred); - -template - ForwardIterator1 - find_first_of(ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2); - -template - ForwardIterator1 - find_first_of(ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred); - -template - ForwardIterator - adjacent_find(ForwardIterator first, ForwardIterator last); - -template - ForwardIterator - adjacent_find(ForwardIterator first, ForwardIterator last, BinaryPredicate pred); - -template - typename iterator_traits::difference_type - count(InputIterator first, InputIterator last, const T& value); - -template - typename iterator_traits::difference_type - count_if(InputIterator first, InputIterator last, Predicate pred); - -template - pair - mismatch(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2); - -template - pair - mismatch(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2); // **C++14** - -template - pair - mismatch(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, BinaryPredicate pred); - -template - pair - mismatch(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, - BinaryPredicate pred); // **C++14** - -template - bool - equal(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2); - -template - bool - equal(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2); // **C++14** - -template - bool - equal(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, BinaryPredicate pred); - -template - bool - equal(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, - BinaryPredicate pred); // **C++14** - -template - bool - is_permutation(ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2); - -template - bool - is_permutation(ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2); // **C++14** - -template - bool - is_permutation(ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, BinaryPredicate pred); - -template - bool - is_permutation(ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2, - BinaryPredicate pred); // **C++14** - -template - ForwardIterator1 - search(ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2); - -template - ForwardIterator1 - search(ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred); - -template - ForwardIterator - search_n(ForwardIterator first, ForwardIterator last, Size count, const T& value); - -template - ForwardIterator - search_n(ForwardIterator first, ForwardIterator last, - Size count, const T& value, BinaryPredicate pred); - -template - OutputIterator - copy(InputIterator first, InputIterator last, OutputIterator result); - -template - OutputIterator - copy_if(InputIterator first, InputIterator last, - OutputIterator result, Predicate pred); - -template - OutputIterator - copy_n(InputIterator first, Size n, OutputIterator result); - -template - BidirectionalIterator2 - copy_backward(BidirectionalIterator1 first, BidirectionalIterator1 last, - BidirectionalIterator2 result); - -template - ForwardIterator2 - swap_ranges(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2); - -template - void - iter_swap(ForwardIterator1 a, ForwardIterator2 b); - -template - OutputIterator - transform(InputIterator first, InputIterator last, OutputIterator result, UnaryOperation op); - -template - OutputIterator - transform(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, - OutputIterator result, BinaryOperation binary_op); - -template - void - replace(ForwardIterator first, ForwardIterator last, const T& old_value, const T& new_value); - -template - void - replace_if(ForwardIterator first, ForwardIterator last, Predicate pred, const T& new_value); - -template - OutputIterator - replace_copy(InputIterator first, InputIterator last, OutputIterator result, - const T& old_value, const T& new_value); - -template - OutputIterator - replace_copy_if(InputIterator first, InputIterator last, OutputIterator result, Predicate pred, const T& new_value); - -template - void - fill(ForwardIterator first, ForwardIterator last, const T& value); - -template - OutputIterator - fill_n(OutputIterator first, Size n, const T& value); - -template - void - generate(ForwardIterator first, ForwardIterator last, Generator gen); - -template - OutputIterator - generate_n(OutputIterator first, Size n, Generator gen); - -template - ForwardIterator - remove(ForwardIterator first, ForwardIterator last, const T& value); - -template - ForwardIterator - remove_if(ForwardIterator first, ForwardIterator last, Predicate pred); - -template - OutputIterator - remove_copy(InputIterator first, InputIterator last, OutputIterator result, const T& value); - -template - OutputIterator - remove_copy_if(InputIterator first, InputIterator last, OutputIterator result, Predicate pred); - -template - ForwardIterator - unique(ForwardIterator first, ForwardIterator last); - -template - ForwardIterator - unique(ForwardIterator first, ForwardIterator last, BinaryPredicate pred); - -template - OutputIterator - unique_copy(InputIterator first, InputIterator last, OutputIterator result); - -template - OutputIterator - unique_copy(InputIterator first, InputIterator last, OutputIterator result, BinaryPredicate pred); - -template - void - reverse(BidirectionalIterator first, BidirectionalIterator last); - -template - OutputIterator - reverse_copy(BidirectionalIterator first, BidirectionalIterator last, OutputIterator result); - -template - ForwardIterator - rotate(ForwardIterator first, ForwardIterator middle, ForwardIterator last); - -template - OutputIterator - rotate_copy(ForwardIterator first, ForwardIterator middle, ForwardIterator last, OutputIterator result); - -template - void - random_shuffle(RandomAccessIterator first, RandomAccessIterator last); // deprecated in C++14 - -template - void - random_shuffle(RandomAccessIterator first, RandomAccessIterator last, - RandomNumberGenerator& rand); // deprecated in C++14 - -template - void shuffle(RandomAccessIterator first, RandomAccessIterator last, - UniformRandomNumberGenerator&& g); - -template - bool - is_partitioned(InputIterator first, InputIterator last, Predicate pred); - -template - ForwardIterator - partition(ForwardIterator first, ForwardIterator last, Predicate pred); - -template - pair - partition_copy(InputIterator first, InputIterator last, - OutputIterator1 out_true, OutputIterator2 out_false, - Predicate pred); - -template - ForwardIterator - stable_partition(ForwardIterator first, ForwardIterator last, Predicate pred); - -template - ForwardIterator - partition_point(ForwardIterator first, ForwardIterator last, Predicate pred); - -template - bool - is_sorted(ForwardIterator first, ForwardIterator last); - -template - bool - is_sorted(ForwardIterator first, ForwardIterator last, Compare comp); - -template - ForwardIterator - is_sorted_until(ForwardIterator first, ForwardIterator last); - -template - ForwardIterator - is_sorted_until(ForwardIterator first, ForwardIterator last, Compare comp); - -template - void - sort(RandomAccessIterator first, RandomAccessIterator last); - -template - void - sort(RandomAccessIterator first, RandomAccessIterator last, Compare comp); - -template - void - stable_sort(RandomAccessIterator first, RandomAccessIterator last); - -template - void - stable_sort(RandomAccessIterator first, RandomAccessIterator last, Compare comp); - -template - void - partial_sort(RandomAccessIterator first, RandomAccessIterator middle, RandomAccessIterator last); - -template - void - partial_sort(RandomAccessIterator first, RandomAccessIterator middle, RandomAccessIterator last, Compare comp); - -template - RandomAccessIterator - partial_sort_copy(InputIterator first, InputIterator last, - RandomAccessIterator result_first, RandomAccessIterator result_last); - -template - RandomAccessIterator - partial_sort_copy(InputIterator first, InputIterator last, - RandomAccessIterator result_first, RandomAccessIterator result_last, Compare comp); - -template - void - nth_element(RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last); - -template - void - nth_element(RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last, Compare comp); - -template - ForwardIterator - lower_bound(ForwardIterator first, ForwardIterator last, const T& value); - -template - ForwardIterator - lower_bound(ForwardIterator first, ForwardIterator last, const T& value, Compare comp); - -template - ForwardIterator - upper_bound(ForwardIterator first, ForwardIterator last, const T& value); - -template - ForwardIterator - upper_bound(ForwardIterator first, ForwardIterator last, const T& value, Compare comp); - -template - pair - equal_range(ForwardIterator first, ForwardIterator last, const T& value); - -template - pair - equal_range(ForwardIterator first, ForwardIterator last, const T& value, Compare comp); - -template - bool - binary_search(ForwardIterator first, ForwardIterator last, const T& value); - -template - bool - binary_search(ForwardIterator first, ForwardIterator last, const T& value, Compare comp); - -template - OutputIterator - merge(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, OutputIterator result); - -template - OutputIterator - merge(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp); - -template - void - inplace_merge(BidirectionalIterator first, BidirectionalIterator middle, BidirectionalIterator last); - -template - void - inplace_merge(BidirectionalIterator first, BidirectionalIterator middle, BidirectionalIterator last, Compare comp); - -template - bool - includes(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2); - -template - bool - includes(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, Compare comp); - -template - OutputIterator - set_union(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, OutputIterator result); - -template - OutputIterator - set_union(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp); - -template - OutputIterator - set_intersection(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, OutputIterator result); - -template - OutputIterator - set_intersection(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp); - -template - OutputIterator - set_difference(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, OutputIterator result); - -template - OutputIterator - set_difference(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp); - -template - OutputIterator - set_symmetric_difference(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, OutputIterator result); - -template - OutputIterator - set_symmetric_difference(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp); - -template - void - push_heap(RandomAccessIterator first, RandomAccessIterator last); - -template - void - push_heap(RandomAccessIterator first, RandomAccessIterator last, Compare comp); - -template - void - pop_heap(RandomAccessIterator first, RandomAccessIterator last); - -template - void - pop_heap(RandomAccessIterator first, RandomAccessIterator last, Compare comp); - -template - void - make_heap(RandomAccessIterator first, RandomAccessIterator last); - -template - void - make_heap(RandomAccessIterator first, RandomAccessIterator last, Compare comp); - -template - void - sort_heap(RandomAccessIterator first, RandomAccessIterator last); - -template - void - sort_heap(RandomAccessIterator first, RandomAccessIterator last, Compare comp); - -template - bool - is_heap(RandomAccessIterator first, RandomAccessiterator last); - -template - bool - is_heap(RandomAccessIterator first, RandomAccessiterator last, Compare comp); - -template - RandomAccessIterator - is_heap_until(RandomAccessIterator first, RandomAccessiterator last); - -template - RandomAccessIterator - is_heap_until(RandomAccessIterator first, RandomAccessiterator last, Compare comp); - -template - ForwardIterator - min_element(ForwardIterator first, ForwardIterator last); // constexpr in C++14 - -template - ForwardIterator - min_element(ForwardIterator first, ForwardIterator last, Compare comp); // constexpr in C++14 - -template - const T& - min(const T& a, const T& b); // constexpr in C++14 - -template - const T& - min(const T& a, const T& b, Compare comp); // constexpr in C++14 - -template - T - min(initializer_list t); // constexpr in C++14 - -template - T - min(initializer_list t, Compare comp); // constexpr in C++14 - -template - ForwardIterator - max_element(ForwardIterator first, ForwardIterator last); // constexpr in C++14 - -template - ForwardIterator - max_element(ForwardIterator first, ForwardIterator last, Compare comp); // constexpr in C++14 - -template - const T& - max(const T& a, const T& b); // constexpr in C++14 - -template - const T& - max(const T& a, const T& b, Compare comp); // constexpr in C++14 - -template - T - max(initializer_list t); // constexpr in C++14 - -template - T - max(initializer_list t, Compare comp); // constexpr in C++14 - -template - pair - minmax_element(ForwardIterator first, ForwardIterator last); // constexpr in C++14 - -template - pair - minmax_element(ForwardIterator first, ForwardIterator last, Compare comp); // constexpr in C++14 - -template - pair - minmax(const T& a, const T& b); // constexpr in C++14 - -template - pair - minmax(const T& a, const T& b, Compare comp); // constexpr in C++14 - -template - pair - minmax(initializer_list t); // constexpr in C++14 - -template - pair - minmax(initializer_list t, Compare comp); // constexpr in C++14 - -template - bool - lexicographical_compare(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2); - -template - bool - lexicographical_compare(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, Compare comp); - -template - bool - next_permutation(BidirectionalIterator first, BidirectionalIterator last); - -template - bool - next_permutation(BidirectionalIterator first, BidirectionalIterator last, Compare comp); - -template - bool - prev_permutation(BidirectionalIterator first, BidirectionalIterator last); - -template - bool - prev_permutation(BidirectionalIterator first, BidirectionalIterator last, Compare comp); - -} // std - -*/ - -#include <__config> -#include -#include -#include -#include -#include -#include -#include - -#if defined(__IBMCPP__) -#include "support/ibm/support.h" -#endif -#if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__) -#include "support/win32/support.h" -#endif - -#include <__undef_min_max> - -#include <__debug> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -// I'd like to replace these with _VSTD::equal_to, but can't because: -// * That only works with C++14 and later, and -// * We haven't included here. -template -struct __equal_to -{ - _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;} - _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T2& __y) const {return __x == __y;} - _LIBCPP_INLINE_VISIBILITY bool operator()(const _T2& __x, const _T1& __y) const {return __x == __y;} - _LIBCPP_INLINE_VISIBILITY bool operator()(const _T2& __x, const _T2& __y) const {return __x == __y;} -}; - -template -struct __equal_to<_T1, _T1> -{ - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 - bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;} -}; - -template -struct __equal_to -{ - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 - bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;} -}; - -template -struct __equal_to<_T1, const _T1> -{ - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 - bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;} -}; - -template -struct __less -{ - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 - bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} - - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 - bool operator()(const _T1& __x, const _T2& __y) const {return __x < __y;} - - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 - bool operator()(const _T2& __x, const _T1& __y) const {return __x < __y;} - - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 - bool operator()(const _T2& __x, const _T2& __y) const {return __x < __y;} -}; - -template -struct __less<_T1, _T1> -{ - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 - bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} -}; - -template -struct __less -{ - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 - bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} -}; - -template -struct __less<_T1, const _T1> -{ - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 - bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} -}; - -template -class __negate -{ -private: - _Predicate __p_; -public: - _LIBCPP_INLINE_VISIBILITY __negate() {} - - _LIBCPP_INLINE_VISIBILITY - explicit __negate(_Predicate __p) : __p_(__p) {} - - template - _LIBCPP_INLINE_VISIBILITY - bool operator()(const _T1& __x) {return !__p_(__x);} - - template - _LIBCPP_INLINE_VISIBILITY - bool operator()(const _T1& __x, const _T2& __y) {return !__p_(__x, __y);} -}; - -#ifdef _LIBCPP_DEBUG - -template -struct __debug_less -{ - _Compare __comp_; - __debug_less(_Compare& __c) : __comp_(__c) {} - template - bool operator()(const _Tp& __x, const _Up& __y) - { - bool __r = __comp_(__x, __y); - if (__r) - _LIBCPP_ASSERT(!__comp_(__y, __x), "Comparator does not induce a strict weak ordering"); - return __r; - } -}; - -#endif // _LIBCPP_DEBUG - -// Precondition: __x != 0 -inline _LIBCPP_INLINE_VISIBILITY -unsigned -__ctz(unsigned __x) -{ - return static_cast(__builtin_ctz(__x)); -} - -inline _LIBCPP_INLINE_VISIBILITY -unsigned long -__ctz(unsigned long __x) -{ - return static_cast(__builtin_ctzl(__x)); -} - -inline _LIBCPP_INLINE_VISIBILITY -unsigned long long -__ctz(unsigned long long __x) -{ - return static_cast(__builtin_ctzll(__x)); -} - -// Precondition: __x != 0 -inline _LIBCPP_INLINE_VISIBILITY -unsigned -__clz(unsigned __x) -{ - return static_cast(__builtin_clz(__x)); -} - -inline _LIBCPP_INLINE_VISIBILITY -unsigned long -__clz(unsigned long __x) -{ - return static_cast(__builtin_clzl (__x)); -} - -inline _LIBCPP_INLINE_VISIBILITY -unsigned long long -__clz(unsigned long long __x) -{ - return static_cast(__builtin_clzll(__x)); -} - -inline _LIBCPP_INLINE_VISIBILITY int __pop_count(unsigned __x) {return __builtin_popcount (__x);} -inline _LIBCPP_INLINE_VISIBILITY int __pop_count(unsigned long __x) {return __builtin_popcountl (__x);} -inline _LIBCPP_INLINE_VISIBILITY int __pop_count(unsigned long long __x) {return __builtin_popcountll(__x);} - -// all_of - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) -{ - for (; __first != __last; ++__first) - if (!__pred(*__first)) - return false; - return true; -} - -// any_of - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) -{ - for (; __first != __last; ++__first) - if (__pred(*__first)) - return true; - return false; -} - -// none_of - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -none_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) -{ - for (; __first != __last; ++__first) - if (__pred(*__first)) - return false; - return true; -} - -// for_each - -template -inline _LIBCPP_INLINE_VISIBILITY -_Function -for_each(_InputIterator __first, _InputIterator __last, _Function __f) -{ - for (; __first != __last; ++__first) - __f(*__first); - return _LIBCPP_EXPLICIT_MOVE(__f); // explicitly moved for (emulated) C++03 -} - -// find - -template -inline _LIBCPP_INLINE_VISIBILITY -_InputIterator -find(_InputIterator __first, _InputIterator __last, const _Tp& __value_) -{ - for (; __first != __last; ++__first) - if (*__first == __value_) - break; - return __first; -} - -// find_if - -template -inline _LIBCPP_INLINE_VISIBILITY -_InputIterator -find_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) -{ - for (; __first != __last; ++__first) - if (__pred(*__first)) - break; - return __first; -} - -// find_if_not - -template -inline _LIBCPP_INLINE_VISIBILITY -_InputIterator -find_if_not(_InputIterator __first, _InputIterator __last, _Predicate __pred) -{ - for (; __first != __last; ++__first) - if (!__pred(*__first)) - break; - return __first; -} - -// find_end - -template -_ForwardIterator1 -__find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred, - forward_iterator_tag, forward_iterator_tag) -{ - // modeled after search algorithm - _ForwardIterator1 __r = __last1; // __last1 is the "default" answer - if (__first2 == __last2) - return __r; - while (true) - { - while (true) - { - if (__first1 == __last1) // if source exhausted return last correct answer - return __r; // (or __last1 if never found) - if (__pred(*__first1, *__first2)) - break; - ++__first1; - } - // *__first1 matches *__first2, now match elements after here - _ForwardIterator1 __m1 = __first1; - _ForwardIterator2 __m2 = __first2; - while (true) - { - if (++__m2 == __last2) - { // Pattern exhaused, record answer and search for another one - __r = __first1; - ++__first1; - break; - } - if (++__m1 == __last1) // Source exhausted, return last answer - return __r; - if (!__pred(*__m1, *__m2)) // mismatch, restart with a new __first - { - ++__first1; - break; - } // else there is a match, check next elements - } - } -} - -template -_BidirectionalIterator1 -__find_end(_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, - _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, _BinaryPredicate __pred, - bidirectional_iterator_tag, bidirectional_iterator_tag) -{ - // modeled after search algorithm (in reverse) - if (__first2 == __last2) - return __last1; // Everything matches an empty sequence - _BidirectionalIterator1 __l1 = __last1; - _BidirectionalIterator2 __l2 = __last2; - --__l2; - while (true) - { - // Find last element in sequence 1 that matchs *(__last2-1), with a mininum of loop checks - while (true) - { - if (__first1 == __l1) // return __last1 if no element matches *__first2 - return __last1; - if (__pred(*--__l1, *__l2)) - break; - } - // *__l1 matches *__l2, now match elements before here - _BidirectionalIterator1 __m1 = __l1; - _BidirectionalIterator2 __m2 = __l2; - while (true) - { - if (__m2 == __first2) // If pattern exhausted, __m1 is the answer (works for 1 element pattern) - return __m1; - if (__m1 == __first1) // Otherwise if source exhaused, pattern not found - return __last1; - if (!__pred(*--__m1, *--__m2)) // if there is a mismatch, restart with a new __l1 - { - break; - } // else there is a match, check next elements - } - } -} - -template -_LIBCPP_CONSTEXPR_AFTER_CXX11 _RandomAccessIterator1 -__find_end(_RandomAccessIterator1 __first1, _RandomAccessIterator1 __last1, - _RandomAccessIterator2 __first2, _RandomAccessIterator2 __last2, _BinaryPredicate __pred, - random_access_iterator_tag, random_access_iterator_tag) -{ - // Take advantage of knowing source and pattern lengths. Stop short when source is smaller than pattern - typename iterator_traits<_RandomAccessIterator2>::difference_type __len2 = __last2 - __first2; - if (__len2 == 0) - return __last1; - typename iterator_traits<_RandomAccessIterator1>::difference_type __len1 = __last1 - __first1; - if (__len1 < __len2) - return __last1; - const _RandomAccessIterator1 __s = __first1 + (__len2 - 1); // End of pattern match can't go before here - _RandomAccessIterator1 __l1 = __last1; - _RandomAccessIterator2 __l2 = __last2; - --__l2; - while (true) - { - while (true) - { - if (__s == __l1) - return __last1; - if (__pred(*--__l1, *__l2)) - break; - } - _RandomAccessIterator1 __m1 = __l1; - _RandomAccessIterator2 __m2 = __l2; - while (true) - { - if (__m2 == __first2) - return __m1; - // no need to check range on __m1 because __s guarantees we have enough source - if (!__pred(*--__m1, *--__m2)) - { - break; - } - } - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator1 -find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred) -{ - return _VSTD::__find_end::type> - (__first1, __last1, __first2, __last2, __pred, - typename iterator_traits<_ForwardIterator1>::iterator_category(), - typename iterator_traits<_ForwardIterator2>::iterator_category()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator1 -find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2) -{ - typedef typename iterator_traits<_ForwardIterator1>::value_type __v1; - typedef typename iterator_traits<_ForwardIterator2>::value_type __v2; - return _VSTD::find_end(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>()); -} - -// find_first_of - -template -_LIBCPP_CONSTEXPR_AFTER_CXX11 _ForwardIterator1 -__find_first_of_ce(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred) -{ - for (; __first1 != __last1; ++__first1) - for (_ForwardIterator2 __j = __first2; __j != __last2; ++__j) - if (__pred(*__first1, *__j)) - return __first1; - return __last1; -} - - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator1 -find_first_of(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred) -{ - return _VSTD::__find_first_of_ce(__first1, __last1, __first2, __last2, __pred); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator1 -find_first_of(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2) -{ - typedef typename iterator_traits<_ForwardIterator1>::value_type __v1; - typedef typename iterator_traits<_ForwardIterator2>::value_type __v2; - return _VSTD::__find_first_of_ce(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>()); -} - -// adjacent_find - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator -adjacent_find(_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __pred) -{ - if (__first != __last) - { - _ForwardIterator __i = __first; - while (++__i != __last) - { - if (__pred(*__first, *__i)) - return __first; - __first = __i; - } - } - return __last; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator -adjacent_find(_ForwardIterator __first, _ForwardIterator __last) -{ - typedef typename iterator_traits<_ForwardIterator>::value_type __v; - return _VSTD::adjacent_find(__first, __last, __equal_to<__v>()); -} - -// count - -template -inline _LIBCPP_INLINE_VISIBILITY -typename iterator_traits<_InputIterator>::difference_type -count(_InputIterator __first, _InputIterator __last, const _Tp& __value_) -{ - typename iterator_traits<_InputIterator>::difference_type __r(0); - for (; __first != __last; ++__first) - if (*__first == __value_) - ++__r; - return __r; -} - -// count_if - -template -inline _LIBCPP_INLINE_VISIBILITY -typename iterator_traits<_InputIterator>::difference_type -count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) -{ - typename iterator_traits<_InputIterator>::difference_type __r(0); - for (; __first != __last; ++__first) - if (__pred(*__first)) - ++__r; - return __r; -} - -// mismatch - -template -inline _LIBCPP_INLINE_VISIBILITY -pair<_InputIterator1, _InputIterator2> -mismatch(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _BinaryPredicate __pred) -{ - for (; __first1 != __last1; ++__first1, (void) ++__first2) - if (!__pred(*__first1, *__first2)) - break; - return pair<_InputIterator1, _InputIterator2>(__first1, __first2); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -pair<_InputIterator1, _InputIterator2> -mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2) -{ - typedef typename iterator_traits<_InputIterator1>::value_type __v1; - typedef typename iterator_traits<_InputIterator2>::value_type __v2; - return _VSTD::mismatch(__first1, __last1, __first2, __equal_to<__v1, __v2>()); -} - -#if _LIBCPP_STD_VER > 11 -template -inline _LIBCPP_INLINE_VISIBILITY -pair<_InputIterator1, _InputIterator2> -mismatch(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _BinaryPredicate __pred) -{ - for (; __first1 != __last1 && __first2 != __last2; ++__first1, (void) ++__first2) - if (!__pred(*__first1, *__first2)) - break; - return pair<_InputIterator1, _InputIterator2>(__first1, __first2); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -pair<_InputIterator1, _InputIterator2> -mismatch(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2) -{ - typedef typename iterator_traits<_InputIterator1>::value_type __v1; - typedef typename iterator_traits<_InputIterator2>::value_type __v2; - return _VSTD::mismatch(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>()); -} -#endif - -// equal - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _BinaryPredicate __pred) -{ - for (; __first1 != __last1; ++__first1, (void) ++__first2) - if (!__pred(*__first1, *__first2)) - return false; - return true; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2) -{ - typedef typename iterator_traits<_InputIterator1>::value_type __v1; - typedef typename iterator_traits<_InputIterator2>::value_type __v2; - return _VSTD::equal(__first1, __last1, __first2, __equal_to<__v1, __v2>()); -} - -#if _LIBCPP_STD_VER > 11 -template -inline _LIBCPP_INLINE_VISIBILITY -bool -__equal(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _BinaryPredicate __pred, - input_iterator_tag, input_iterator_tag ) -{ - for (; __first1 != __last1 && __first2 != __last2; ++__first1, (void) ++__first2) - if (!__pred(*__first1, *__first2)) - return false; - return __first1 == __last1 && __first2 == __last2; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -__equal(_RandomAccessIterator1 __first1, _RandomAccessIterator1 __last1, - _RandomAccessIterator2 __first2, _RandomAccessIterator2 __last2, _BinaryPredicate __pred, - random_access_iterator_tag, random_access_iterator_tag ) -{ - if ( _VSTD::distance(__first1, __last1) != _VSTD::distance(__first2, __last2)) - return false; - return _VSTD::equal<_RandomAccessIterator1, _RandomAccessIterator2, - typename add_lvalue_reference<_BinaryPredicate>::type> - (__first1, __last1, __first2, __pred ); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -equal(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _BinaryPredicate __pred ) -{ - return _VSTD::__equal::type> - (__first1, __last1, __first2, __last2, __pred, - typename iterator_traits<_InputIterator1>::iterator_category(), - typename iterator_traits<_InputIterator2>::iterator_category()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -equal(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2) -{ - typedef typename iterator_traits<_InputIterator1>::value_type __v1; - typedef typename iterator_traits<_InputIterator2>::value_type __v2; - return _VSTD::__equal(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>(), - typename iterator_traits<_InputIterator1>::iterator_category(), - typename iterator_traits<_InputIterator2>::iterator_category()); -} -#endif - -// is_permutation - -template -bool -is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _BinaryPredicate __pred) -{ - // shorten sequences as much as possible by lopping of any equal parts - for (; __first1 != __last1; ++__first1, (void) ++__first2) - if (!__pred(*__first1, *__first2)) - goto __not_done; - return true; -__not_done: - // __first1 != __last1 && *__first1 != *__first2 - typedef typename iterator_traits<_ForwardIterator1>::difference_type _D1; - _D1 __l1 = _VSTD::distance(__first1, __last1); - if (__l1 == _D1(1)) - return false; - _ForwardIterator2 __last2 = _VSTD::next(__first2, __l1); - // For each element in [f1, l1) see if there are the same number of - // equal elements in [f2, l2) - for (_ForwardIterator1 __i = __first1; __i != __last1; ++__i) - { - // Have we already counted the number of *__i in [f1, l1)? - for (_ForwardIterator1 __j = __first1; __j != __i; ++__j) - if (__pred(*__j, *__i)) - goto __next_iter; - { - // Count number of *__i in [f2, l2) - _D1 __c2 = 0; - for (_ForwardIterator2 __j = __first2; __j != __last2; ++__j) - if (__pred(*__i, *__j)) - ++__c2; - if (__c2 == 0) - return false; - // Count number of *__i in [__i, l1) (we can start with 1) - _D1 __c1 = 1; - for (_ForwardIterator1 __j = _VSTD::next(__i); __j != __last1; ++__j) - if (__pred(*__i, *__j)) - ++__c1; - if (__c1 != __c2) - return false; - } -__next_iter:; - } - return true; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2) -{ - typedef typename iterator_traits<_ForwardIterator1>::value_type __v1; - typedef typename iterator_traits<_ForwardIterator2>::value_type __v2; - return _VSTD::is_permutation(__first1, __last1, __first2, __equal_to<__v1, __v2>()); -} - -#if _LIBCPP_STD_VER > 11 -template -bool -__is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2, - _BinaryPredicate __pred, - forward_iterator_tag, forward_iterator_tag ) -{ - // shorten sequences as much as possible by lopping of any equal parts - for (; __first1 != __last1 && __first2 != __last2; ++__first1, (void) ++__first2) - if (!__pred(*__first1, *__first2)) - goto __not_done; - return __first1 == __last1 && __first2 == __last2; -__not_done: - // __first1 != __last1 && __first2 != __last2 && *__first1 != *__first2 - typedef typename iterator_traits<_ForwardIterator1>::difference_type _D1; - _D1 __l1 = _VSTD::distance(__first1, __last1); - - typedef typename iterator_traits<_ForwardIterator2>::difference_type _D2; - _D2 __l2 = _VSTD::distance(__first2, __last2); - if (__l1 != __l2) - return false; - - // For each element in [f1, l1) see if there are the same number of - // equal elements in [f2, l2) - for (_ForwardIterator1 __i = __first1; __i != __last1; ++__i) - { - // Have we already counted the number of *__i in [f1, l1)? - for (_ForwardIterator1 __j = __first1; __j != __i; ++__j) - if (__pred(*__j, *__i)) - goto __next_iter; - { - // Count number of *__i in [f2, l2) - _D1 __c2 = 0; - for (_ForwardIterator2 __j = __first2; __j != __last2; ++__j) - if (__pred(*__i, *__j)) - ++__c2; - if (__c2 == 0) - return false; - // Count number of *__i in [__i, l1) (we can start with 1) - _D1 __c1 = 1; - for (_ForwardIterator1 __j = _VSTD::next(__i); __j != __last1; ++__j) - if (__pred(*__i, *__j)) - ++__c1; - if (__c1 != __c2) - return false; - } -__next_iter:; - } - return true; -} - -template -bool -__is_permutation(_RandomAccessIterator1 __first1, _RandomAccessIterator2 __last1, - _RandomAccessIterator1 __first2, _RandomAccessIterator2 __last2, - _BinaryPredicate __pred, - random_access_iterator_tag, random_access_iterator_tag ) -{ - if ( _VSTD::distance(__first1, __last1) != _VSTD::distance(__first2, __last2)) - return false; - return _VSTD::is_permutation<_RandomAccessIterator1, _RandomAccessIterator2, - typename add_lvalue_reference<_BinaryPredicate>::type> - (__first1, __last1, __first2, __pred ); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2, - _BinaryPredicate __pred ) -{ - return _VSTD::__is_permutation::type> - (__first1, __last1, __first2, __last2, __pred, - typename iterator_traits<_ForwardIterator1>::iterator_category(), - typename iterator_traits<_ForwardIterator2>::iterator_category()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2) -{ - typedef typename iterator_traits<_ForwardIterator1>::value_type __v1; - typedef typename iterator_traits<_ForwardIterator2>::value_type __v2; - return _VSTD::__is_permutation(__first1, __last1, __first2, __last2, - __equal_to<__v1, __v2>(), - typename iterator_traits<_ForwardIterator1>::iterator_category(), - typename iterator_traits<_ForwardIterator2>::iterator_category()); -} -#endif - -// search - -template -_ForwardIterator1 -__search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred, - forward_iterator_tag, forward_iterator_tag) -{ - if (__first2 == __last2) - return __first1; // Everything matches an empty sequence - while (true) - { - // Find first element in sequence 1 that matchs *__first2, with a mininum of loop checks - while (true) - { - if (__first1 == __last1) // return __last1 if no element matches *__first2 - return __last1; - if (__pred(*__first1, *__first2)) - break; - ++__first1; - } - // *__first1 matches *__first2, now match elements after here - _ForwardIterator1 __m1 = __first1; - _ForwardIterator2 __m2 = __first2; - while (true) - { - if (++__m2 == __last2) // If pattern exhausted, __first1 is the answer (works for 1 element pattern) - return __first1; - if (++__m1 == __last1) // Otherwise if source exhaused, pattern not found - return __last1; - if (!__pred(*__m1, *__m2)) // if there is a mismatch, restart with a new __first1 - { - ++__first1; - break; - } // else there is a match, check next elements - } - } -} - -template -_LIBCPP_CONSTEXPR_AFTER_CXX11 _RandomAccessIterator1 -__search(_RandomAccessIterator1 __first1, _RandomAccessIterator1 __last1, - _RandomAccessIterator2 __first2, _RandomAccessIterator2 __last2, _BinaryPredicate __pred, - random_access_iterator_tag, random_access_iterator_tag) -{ - typedef typename std::iterator_traits<_RandomAccessIterator1>::difference_type _D1; - typedef typename std::iterator_traits<_RandomAccessIterator2>::difference_type _D2; - // Take advantage of knowing source and pattern lengths. Stop short when source is smaller than pattern - _D2 __len2 = __last2 - __first2; - if (__len2 == 0) - return __first1; - _D1 __len1 = __last1 - __first1; - if (__len1 < __len2) - return __last1; - const _RandomAccessIterator1 __s = __last1 - (__len2 - 1); // Start of pattern match can't go beyond here - while (true) - { -#if !_LIBCPP_UNROLL_LOOPS - while (true) - { - if (__first1 == __s) - return __last1; - if (__pred(*__first1, *__first2)) - break; - ++__first1; - } -#else // !_LIBCPP_UNROLL_LOOPS - for (_D1 __loop_unroll = (__s - __first1) / 4; __loop_unroll > 0; --__loop_unroll) - { - if (__pred(*__first1, *__first2)) - goto __phase2; - if (__pred(*++__first1, *__first2)) - goto __phase2; - if (__pred(*++__first1, *__first2)) - goto __phase2; - if (__pred(*++__first1, *__first2)) - goto __phase2; - ++__first1; - } - switch (__s - __first1) - { - case 3: - if (__pred(*__first1, *__first2)) - break; - ++__first1; - case 2: - if (__pred(*__first1, *__first2)) - break; - ++__first1; - case 1: - if (__pred(*__first1, *__first2)) - break; - case 0: - return __last1; - } - __phase2: -#endif // !_LIBCPP_UNROLL_LOOPS - _RandomAccessIterator1 __m1 = __first1; - _RandomAccessIterator2 __m2 = __first2; -#if !_LIBCPP_UNROLL_LOOPS - while (true) - { - if (++__m2 == __last2) - return __first1; - ++__m1; // no need to check range on __m1 because __s guarantees we have enough source - if (!__pred(*__m1, *__m2)) - { - ++__first1; - break; - } - } -#else // !_LIBCPP_UNROLL_LOOPS - ++__m2; - ++__m1; - for (_D2 __loop_unroll = (__last2 - __m2) / 4; __loop_unroll > 0; --__loop_unroll) - { - if (!__pred(*__m1, *__m2)) - goto __continue; - if (!__pred(*++__m1, *++__m2)) - goto __continue; - if (!__pred(*++__m1, *++__m2)) - goto __continue; - if (!__pred(*++__m1, *++__m2)) - goto __continue; - ++__m1; - ++__m2; - } - switch (__last2 - __m2) - { - case 3: - if (!__pred(*__m1, *__m2)) - break; - ++__m1; - ++__m2; - case 2: - if (!__pred(*__m1, *__m2)) - break; - ++__m1; - ++__m2; - case 1: - if (!__pred(*__m1, *__m2)) - break; - case 0: - return __first1; - } - __continue: - ++__first1; -#endif // !_LIBCPP_UNROLL_LOOPS - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator1 -search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred) -{ - return _VSTD::__search::type> - (__first1, __last1, __first2, __last2, __pred, - typename std::iterator_traits<_ForwardIterator1>::iterator_category(), - typename std::iterator_traits<_ForwardIterator2>::iterator_category()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator1 -search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, - _ForwardIterator2 __first2, _ForwardIterator2 __last2) -{ - typedef typename std::iterator_traits<_ForwardIterator1>::value_type __v1; - typedef typename std::iterator_traits<_ForwardIterator2>::value_type __v2; - return _VSTD::search(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>()); -} - -// search_n - -template -_ForwardIterator -__search_n(_ForwardIterator __first, _ForwardIterator __last, - _Size __count, const _Tp& __value_, _BinaryPredicate __pred, forward_iterator_tag) -{ - if (__count <= 0) - return __first; - while (true) - { - // Find first element in sequence that matchs __value_, with a mininum of loop checks - while (true) - { - if (__first == __last) // return __last if no element matches __value_ - return __last; - if (__pred(*__first, __value_)) - break; - ++__first; - } - // *__first matches __value_, now match elements after here - _ForwardIterator __m = __first; - _Size __c(0); - while (true) - { - if (++__c == __count) // If pattern exhausted, __first is the answer (works for 1 element pattern) - return __first; - if (++__m == __last) // Otherwise if source exhaused, pattern not found - return __last; - if (!__pred(*__m, __value_)) // if there is a mismatch, restart with a new __first - { - __first = __m; - ++__first; - break; - } // else there is a match, check next elements - } - } -} - -template -_RandomAccessIterator -__search_n(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Size __count, const _Tp& __value_, _BinaryPredicate __pred, random_access_iterator_tag) -{ - if (__count <= 0) - return __first; - _Size __len = static_cast<_Size>(__last - __first); - if (__len < __count) - return __last; - const _RandomAccessIterator __s = __last - (__count - 1); // Start of pattern match can't go beyond here - while (true) - { - // Find first element in sequence that matchs __value_, with a mininum of loop checks - while (true) - { - if (__first >= __s) // return __last if no element matches __value_ - return __last; - if (__pred(*__first, __value_)) - break; - ++__first; - } - // *__first matches __value_, now match elements after here - _RandomAccessIterator __m = __first; - _Size __c(0); - while (true) - { - if (++__c == __count) // If pattern exhausted, __first is the answer (works for 1 element pattern) - return __first; - ++__m; // no need to check range on __m because __s guarantees we have enough source - if (!__pred(*__m, __value_)) // if there is a mismatch, restart with a new __first - { - __first = __m; - ++__first; - break; - } // else there is a match, check next elements - } - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator -search_n(_ForwardIterator __first, _ForwardIterator __last, - _Size __count, const _Tp& __value_, _BinaryPredicate __pred) -{ - return _VSTD::__search_n::type> - (__first, __last, __convert_to_integral(__count), __value_, __pred, - typename iterator_traits<_ForwardIterator>::iterator_category()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator -search_n(_ForwardIterator __first, _ForwardIterator __last, _Size __count, const _Tp& __value_) -{ - typedef typename iterator_traits<_ForwardIterator>::value_type __v; - return _VSTD::search_n(__first, __last, __convert_to_integral(__count), - __value_, __equal_to<__v, _Tp>()); -} - -// copy - -template -struct __libcpp_is_trivial_iterator -{ - static const bool value = is_pointer<_Iter>::value; -}; - -template -struct __libcpp_is_trivial_iterator > -{ - static const bool value = is_pointer<_Iter>::value; -}; - -template -struct __libcpp_is_trivial_iterator<__wrap_iter<_Iter> > -{ - static const bool value = is_pointer<_Iter>::value; -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -_Iter -__unwrap_iter(_Iter __i) -{ - return __i; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_trivially_copy_assignable<_Tp>::value, - _Tp* ->::type -__unwrap_iter(move_iterator<_Tp*> __i) -{ - return __i.base(); -} - -#if _LIBCPP_DEBUG_LEVEL < 2 - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_trivially_copy_assignable<_Tp>::value, - _Tp* ->::type -__unwrap_iter(__wrap_iter<_Tp*> __i) -{ - return __i.base(); -} - -#endif // _LIBCPP_DEBUG_LEVEL < 2 - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -__copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result) -{ - for (; __first != __last; ++__first, (void) ++__result) - *__result = *__first; - return __result; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_same::type, _Up>::value && - is_trivially_copy_assignable<_Up>::value, - _Up* ->::type -__copy(_Tp* __first, _Tp* __last, _Up* __result) -{ - const size_t __n = static_cast(__last - __first); - if (__n > 0) - _VSTD::memmove(__result, __first, __n * sizeof(_Up)); - return __result + __n; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result) -{ - return _VSTD::__copy(__unwrap_iter(__first), __unwrap_iter(__last), __unwrap_iter(__result)); -} - -// copy_backward - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -__copy_backward(_BidirectionalIterator __first, _BidirectionalIterator __last, _OutputIterator __result) -{ - while (__first != __last) - *--__result = *--__last; - return __result; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_same::type, _Up>::value && - is_trivially_copy_assignable<_Up>::value, - _Up* ->::type -__copy_backward(_Tp* __first, _Tp* __last, _Up* __result) -{ - const size_t __n = static_cast(__last - __first); - if (__n > 0) - { - __result -= __n; - _VSTD::memmove(__result, __first, __n * sizeof(_Up)); - } - return __result; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_BidirectionalIterator2 -copy_backward(_BidirectionalIterator1 __first, _BidirectionalIterator1 __last, - _BidirectionalIterator2 __result) -{ - return _VSTD::__copy_backward(__unwrap_iter(__first), __unwrap_iter(__last), __unwrap_iter(__result)); -} - -// copy_if - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -copy_if(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _Predicate __pred) -{ - for (; __first != __last; ++__first) - { - if (__pred(*__first)) - { - *__result = *__first; - ++__result; - } - } - return __result; -} - -// copy_n - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - __is_input_iterator<_InputIterator>::value && - !__is_random_access_iterator<_InputIterator>::value, - _OutputIterator ->::type -copy_n(_InputIterator __first, _Size __orig_n, _OutputIterator __result) -{ - typedef decltype(__convert_to_integral(__orig_n)) _IntegralSize; - _IntegralSize __n = __orig_n; - if (__n > 0) - { - *__result = *__first; - ++__result; - for (--__n; __n > 0; --__n) - { - ++__first; - *__result = *__first; - ++__result; - } - } - return __result; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - __is_random_access_iterator<_InputIterator>::value, - _OutputIterator ->::type -copy_n(_InputIterator __first, _Size __orig_n, _OutputIterator __result) -{ - typedef decltype(__convert_to_integral(__orig_n)) _IntegralSize; - _IntegralSize __n = __orig_n; - return _VSTD::copy(__first, __first + __n, __result); -} - -// move - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -__move(_InputIterator __first, _InputIterator __last, _OutputIterator __result) -{ - for (; __first != __last; ++__first, (void) ++__result) - *__result = _VSTD::move(*__first); - return __result; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_same::type, _Up>::value && - is_trivially_copy_assignable<_Up>::value, - _Up* ->::type -__move(_Tp* __first, _Tp* __last, _Up* __result) -{ - const size_t __n = static_cast(__last - __first); - if (__n > 0) - _VSTD::memmove(__result, __first, __n * sizeof(_Up)); - return __result + __n; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -move(_InputIterator __first, _InputIterator __last, _OutputIterator __result) -{ - return _VSTD::__move(__unwrap_iter(__first), __unwrap_iter(__last), __unwrap_iter(__result)); -} - -// move_backward - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -__move_backward(_InputIterator __first, _InputIterator __last, _OutputIterator __result) -{ - while (__first != __last) - *--__result = _VSTD::move(*--__last); - return __result; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_same::type, _Up>::value && - is_trivially_copy_assignable<_Up>::value, - _Up* ->::type -__move_backward(_Tp* __first, _Tp* __last, _Up* __result) -{ - const size_t __n = static_cast(__last - __first); - if (__n > 0) - { - __result -= __n; - _VSTD::memmove(__result, __first, __n * sizeof(_Up)); - } - return __result; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_BidirectionalIterator2 -move_backward(_BidirectionalIterator1 __first, _BidirectionalIterator1 __last, - _BidirectionalIterator2 __result) -{ - return _VSTD::__move_backward(__unwrap_iter(__first), __unwrap_iter(__last), __unwrap_iter(__result)); -} - -// iter_swap - -// moved to for better swap / noexcept support - -// transform - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -transform(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _UnaryOperation __op) -{ - for (; __first != __last; ++__first, (void) ++__result) - *__result = __op(*__first); - return __result; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -transform(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, - _OutputIterator __result, _BinaryOperation __binary_op) -{ - for (; __first1 != __last1; ++__first1, (void) ++__first2, ++__result) - *__result = __binary_op(*__first1, *__first2); - return __result; -} - -// replace - -template -inline _LIBCPP_INLINE_VISIBILITY -void -replace(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __old_value, const _Tp& __new_value) -{ - for (; __first != __last; ++__first) - if (*__first == __old_value) - *__first = __new_value; -} - -// replace_if - -template -inline _LIBCPP_INLINE_VISIBILITY -void -replace_if(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, const _Tp& __new_value) -{ - for (; __first != __last; ++__first) - if (__pred(*__first)) - *__first = __new_value; -} - -// replace_copy - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -replace_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, - const _Tp& __old_value, const _Tp& __new_value) -{ - for (; __first != __last; ++__first, (void) ++__result) - if (*__first == __old_value) - *__result = __new_value; - else - *__result = *__first; - return __result; -} - -// replace_copy_if - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -replace_copy_if(_InputIterator __first, _InputIterator __last, _OutputIterator __result, - _Predicate __pred, const _Tp& __new_value) -{ - for (; __first != __last; ++__first, (void) ++__result) - if (__pred(*__first)) - *__result = __new_value; - else - *__result = *__first; - return __result; -} - -// fill_n - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -__fill_n(_OutputIterator __first, _Size __n, const _Tp& __value_) -{ - for (; __n > 0; ++__first, (void) --__n) - *__first = __value_; - return __first; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && sizeof(_Tp) == 1 && - !is_same<_Tp, bool>::value && - is_integral<_Up>::value && sizeof(_Up) == 1, - _Tp* ->::type -__fill_n(_Tp* __first, _Size __n,_Up __value_) -{ - if (__n > 0) - _VSTD::memset(__first, (unsigned char)__value_, (size_t)(__n)); - return __first + __n; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -fill_n(_OutputIterator __first, _Size __n, const _Tp& __value_) -{ - return _VSTD::__fill_n(__first, __convert_to_integral(__n), __value_); -} - -// fill - -template -inline _LIBCPP_INLINE_VISIBILITY -void -__fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, forward_iterator_tag) -{ - for (; __first != __last; ++__first) - *__first = __value_; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -__fill(_RandomAccessIterator __first, _RandomAccessIterator __last, const _Tp& __value_, random_access_iterator_tag) -{ - _VSTD::fill_n(__first, __last - __first, __value_); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_) -{ - _VSTD::__fill(__first, __last, __value_, typename iterator_traits<_ForwardIterator>::iterator_category()); -} - -// generate - -template -inline _LIBCPP_INLINE_VISIBILITY -void -generate(_ForwardIterator __first, _ForwardIterator __last, _Generator __gen) -{ - for (; __first != __last; ++__first) - *__first = __gen(); -} - -// generate_n - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -generate_n(_OutputIterator __first, _Size __orig_n, _Generator __gen) -{ - typedef decltype(__convert_to_integral(__orig_n)) _IntegralSize; - _IntegralSize __n = __orig_n; - for (; __n > 0; ++__first, (void) --__n) - *__first = __gen(); - return __first; -} - -// remove - -template -_ForwardIterator -remove(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_) -{ - __first = _VSTD::find(__first, __last, __value_); - if (__first != __last) - { - _ForwardIterator __i = __first; - while (++__i != __last) - { - if (!(*__i == __value_)) - { - *__first = _VSTD::move(*__i); - ++__first; - } - } - } - return __first; -} - -// remove_if - -template -_ForwardIterator -remove_if(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred) -{ - __first = _VSTD::find_if<_ForwardIterator, typename add_lvalue_reference<_Predicate>::type> - (__first, __last, __pred); - if (__first != __last) - { - _ForwardIterator __i = __first; - while (++__i != __last) - { - if (!__pred(*__i)) - { - *__first = _VSTD::move(*__i); - ++__first; - } - } - } - return __first; -} - -// remove_copy - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -remove_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, const _Tp& __value_) -{ - for (; __first != __last; ++__first) - { - if (!(*__first == __value_)) - { - *__result = *__first; - ++__result; - } - } - return __result; -} - -// remove_copy_if - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -remove_copy_if(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred) -{ - for (; __first != __last; ++__first) - { - if (!__pred(*__first)) - { - *__result = *__first; - ++__result; - } - } - return __result; -} - -// unique - -template -_ForwardIterator -unique(_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __pred) -{ - __first = _VSTD::adjacent_find<_ForwardIterator, typename add_lvalue_reference<_BinaryPredicate>::type> - (__first, __last, __pred); - if (__first != __last) - { - // ... a a ? ... - // f i - _ForwardIterator __i = __first; - for (++__i; ++__i != __last;) - if (!__pred(*__first, *__i)) - *++__first = _VSTD::move(*__i); - ++__first; - } - return __first; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator -unique(_ForwardIterator __first, _ForwardIterator __last) -{ - typedef typename iterator_traits<_ForwardIterator>::value_type __v; - return _VSTD::unique(__first, __last, __equal_to<__v>()); -} - -// unique_copy - -template -_OutputIterator -__unique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryPredicate __pred, - input_iterator_tag, output_iterator_tag) -{ - if (__first != __last) - { - typename iterator_traits<_InputIterator>::value_type __t(*__first); - *__result = __t; - ++__result; - while (++__first != __last) - { - if (!__pred(__t, *__first)) - { - __t = *__first; - *__result = __t; - ++__result; - } - } - } - return __result; -} - -template -_OutputIterator -__unique_copy(_ForwardIterator __first, _ForwardIterator __last, _OutputIterator __result, _BinaryPredicate __pred, - forward_iterator_tag, output_iterator_tag) -{ - if (__first != __last) - { - _ForwardIterator __i = __first; - *__result = *__i; - ++__result; - while (++__first != __last) - { - if (!__pred(*__i, *__first)) - { - *__result = *__first; - ++__result; - __i = __first; - } - } - } - return __result; -} - -template -_ForwardIterator -__unique_copy(_InputIterator __first, _InputIterator __last, _ForwardIterator __result, _BinaryPredicate __pred, - input_iterator_tag, forward_iterator_tag) -{ - if (__first != __last) - { - *__result = *__first; - while (++__first != __last) - if (!__pred(*__result, *__first)) - *++__result = *__first; - ++__result; - } - return __result; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -unique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryPredicate __pred) -{ - return _VSTD::__unique_copy::type> - (__first, __last, __result, __pred, - typename iterator_traits<_InputIterator>::iterator_category(), - typename iterator_traits<_OutputIterator>::iterator_category()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -unique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result) -{ - typedef typename iterator_traits<_InputIterator>::value_type __v; - return _VSTD::unique_copy(__first, __last, __result, __equal_to<__v>()); -} - -// reverse - -template -inline _LIBCPP_INLINE_VISIBILITY -void -__reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, bidirectional_iterator_tag) -{ - while (__first != __last) - { - if (__first == --__last) - break; - _VSTD::iter_swap(__first, __last); - ++__first; - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -__reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag) -{ - if (__first != __last) - for (; __first < --__last; ++__first) - _VSTD::iter_swap(__first, __last); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -reverse(_BidirectionalIterator __first, _BidirectionalIterator __last) -{ - _VSTD::__reverse(__first, __last, typename iterator_traits<_BidirectionalIterator>::iterator_category()); -} - -// reverse_copy - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last, _OutputIterator __result) -{ - for (; __first != __last; ++__result) - *__result = *--__last; - return __result; -} - -// rotate - -template -_ForwardIterator -__rotate_left(_ForwardIterator __first, _ForwardIterator __last) -{ - typedef typename iterator_traits<_ForwardIterator>::value_type value_type; - value_type __tmp = _VSTD::move(*__first); - _ForwardIterator __lm1 = _VSTD::move(_VSTD::next(__first), __last, __first); - *__lm1 = _VSTD::move(__tmp); - return __lm1; -} - -template -_BidirectionalIterator -__rotate_right(_BidirectionalIterator __first, _BidirectionalIterator __last) -{ - typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type; - _BidirectionalIterator __lm1 = _VSTD::prev(__last); - value_type __tmp = _VSTD::move(*__lm1); - _BidirectionalIterator __fp1 = _VSTD::move_backward(__first, __lm1, __last); - *__first = _VSTD::move(__tmp); - return __fp1; -} - -template -_ForwardIterator -__rotate_forward(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last) -{ - _ForwardIterator __i = __middle; - while (true) - { - swap(*__first, *__i); - ++__first; - if (++__i == __last) - break; - if (__first == __middle) - __middle = __i; - } - _ForwardIterator __r = __first; - if (__first != __middle) - { - __i = __middle; - while (true) - { - swap(*__first, *__i); - ++__first; - if (++__i == __last) - { - if (__first == __middle) - break; - __i = __middle; - } - else if (__first == __middle) - __middle = __i; - } - } - return __r; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_Integral -__gcd(_Integral __x, _Integral __y) -{ - do - { - _Integral __t = __x % __y; - __x = __y; - __y = __t; - } while (__y); - return __x; -} - -template -_RandomAccessIterator -__rotate_gcd(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last) -{ - typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; - typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; - - const difference_type __m1 = __middle - __first; - const difference_type __m2 = __last - __middle; - if (__m1 == __m2) - { - _VSTD::swap_ranges(__first, __middle, __middle); - return __middle; - } - const difference_type __g = _VSTD::__gcd(__m1, __m2); - for (_RandomAccessIterator __p = __first + __g; __p != __first;) - { - value_type __t(_VSTD::move(*--__p)); - _RandomAccessIterator __p1 = __p; - _RandomAccessIterator __p2 = __p1 + __m1; - do - { - *__p1 = _VSTD::move(*__p2); - __p1 = __p2; - const difference_type __d = __last - __p2; - if (__m1 < __d) - __p2 += __m1; - else - __p2 = __first + (__m1 - __d); - } while (__p2 != __p); - *__p1 = _VSTD::move(__t); - } - return __first + __m2; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator -__rotate(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last, - _VSTD::forward_iterator_tag) -{ - typedef typename _VSTD::iterator_traits<_ForwardIterator>::value_type value_type; - if (_VSTD::is_trivially_move_assignable::value) - { - if (_VSTD::next(__first) == __middle) - return _VSTD::__rotate_left(__first, __last); - } - return _VSTD::__rotate_forward(__first, __middle, __last); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_BidirectionalIterator -__rotate(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, - _VSTD::bidirectional_iterator_tag) -{ - typedef typename _VSTD::iterator_traits<_BidirectionalIterator>::value_type value_type; - if (_VSTD::is_trivially_move_assignable::value) - { - if (_VSTD::next(__first) == __middle) - return _VSTD::__rotate_left(__first, __last); - if (_VSTD::next(__middle) == __last) - return _VSTD::__rotate_right(__first, __last); - } - return _VSTD::__rotate_forward(__first, __middle, __last); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_RandomAccessIterator -__rotate(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, - _VSTD::random_access_iterator_tag) -{ - typedef typename _VSTD::iterator_traits<_RandomAccessIterator>::value_type value_type; - if (_VSTD::is_trivially_move_assignable::value) - { - if (_VSTD::next(__first) == __middle) - return _VSTD::__rotate_left(__first, __last); - if (_VSTD::next(__middle) == __last) - return _VSTD::__rotate_right(__first, __last); - return _VSTD::__rotate_gcd(__first, __middle, __last); - } - return _VSTD::__rotate_forward(__first, __middle, __last); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator -rotate(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last) -{ - if (__first == __middle) - return __last; - if (__middle == __last) - return __first; - return _VSTD::__rotate(__first, __middle, __last, - typename _VSTD::iterator_traits<_ForwardIterator>::iterator_category()); -} - -// rotate_copy - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last, _OutputIterator __result) -{ - return _VSTD::copy(__first, __middle, _VSTD::copy(__middle, __last, __result)); -} - -// min_element - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -_ForwardIterator -min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) -{ - if (__first != __last) - { - _ForwardIterator __i = __first; - while (++__i != __last) - if (__comp(*__i, *__first)) - __first = __i; - } - return __first; -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -_ForwardIterator -min_element(_ForwardIterator __first, _ForwardIterator __last) -{ - return _VSTD::min_element(__first, __last, - __less::value_type>()); -} - -// min - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -const _Tp& -min(const _Tp& __a, const _Tp& __b, _Compare __comp) -{ - return __comp(__b, __a) ? __b : __a; -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -const _Tp& -min(const _Tp& __a, const _Tp& __b) -{ - return _VSTD::min(__a, __b, __less<_Tp>()); -} - -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -_Tp -min(initializer_list<_Tp> __t, _Compare __comp) -{ - return *_VSTD::min_element(__t.begin(), __t.end(), __comp); -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -_Tp -min(initializer_list<_Tp> __t) -{ - return *_VSTD::min_element(__t.begin(), __t.end(), __less<_Tp>()); -} - -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -// max_element - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -_ForwardIterator -max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) -{ - if (__first != __last) - { - _ForwardIterator __i = __first; - while (++__i != __last) - if (__comp(*__first, *__i)) - __first = __i; - } - return __first; -} - - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -_ForwardIterator -max_element(_ForwardIterator __first, _ForwardIterator __last) -{ - return _VSTD::max_element(__first, __last, - __less::value_type>()); -} - -// max - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -const _Tp& -max(const _Tp& __a, const _Tp& __b, _Compare __comp) -{ - return __comp(__a, __b) ? __b : __a; -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -const _Tp& -max(const _Tp& __a, const _Tp& __b) -{ - return _VSTD::max(__a, __b, __less<_Tp>()); -} - -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -_Tp -max(initializer_list<_Tp> __t, _Compare __comp) -{ - return *_VSTD::max_element(__t.begin(), __t.end(), __comp); -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -_Tp -max(initializer_list<_Tp> __t) -{ - return *_VSTD::max_element(__t.begin(), __t.end(), __less<_Tp>()); -} - -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -// minmax_element - -template -_LIBCPP_CONSTEXPR_AFTER_CXX11 -std::pair<_ForwardIterator, _ForwardIterator> -minmax_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) -{ - std::pair<_ForwardIterator, _ForwardIterator> __result(__first, __first); - if (__first != __last) - { - if (++__first != __last) - { - if (__comp(*__first, *__result.first)) - __result.first = __first; - else - __result.second = __first; - while (++__first != __last) - { - _ForwardIterator __i = __first; - if (++__first == __last) - { - if (__comp(*__i, *__result.first)) - __result.first = __i; - else if (!__comp(*__i, *__result.second)) - __result.second = __i; - break; - } - else - { - if (__comp(*__first, *__i)) - { - if (__comp(*__first, *__result.first)) - __result.first = __first; - if (!__comp(*__i, *__result.second)) - __result.second = __i; - } - else - { - if (__comp(*__i, *__result.first)) - __result.first = __i; - if (!__comp(*__first, *__result.second)) - __result.second = __first; - } - } - } - } - } - return __result; -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -std::pair<_ForwardIterator, _ForwardIterator> -minmax_element(_ForwardIterator __first, _ForwardIterator __last) -{ - return _VSTD::minmax_element(__first, __last, - __less::value_type>()); -} - -// minmax - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -pair -minmax(const _Tp& __a, const _Tp& __b, _Compare __comp) -{ - return __comp(__b, __a) ? pair(__b, __a) : - pair(__a, __b); -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -pair -minmax(const _Tp& __a, const _Tp& __b) -{ - return _VSTD::minmax(__a, __b, __less<_Tp>()); -} - -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -pair<_Tp, _Tp> -minmax(initializer_list<_Tp> __t, _Compare __comp) -{ - typedef typename initializer_list<_Tp>::const_iterator _Iter; - _Iter __first = __t.begin(); - _Iter __last = __t.end(); - std::pair<_Tp, _Tp> __result(*__first, *__first); - - ++__first; - if (__t.size() % 2 == 0) - { - if (__comp(*__first, __result.first)) - __result.first = *__first; - else - __result.second = *__first; - ++__first; - } - - while (__first != __last) - { - _Tp __prev = *__first++; - if (__comp(*__first, __prev)) { - if ( __comp(*__first, __result.first)) __result.first = *__first; - if (!__comp(__prev, __result.second)) __result.second = __prev; - } - else { - if ( __comp(__prev, __result.first)) __result.first = __prev; - if (!__comp(*__first, __result.second)) __result.second = *__first; - } - - __first++; - } - return __result; -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -pair<_Tp, _Tp> -minmax(initializer_list<_Tp> __t) -{ - return _VSTD::minmax(__t, __less<_Tp>()); -} - -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -// random_shuffle - -// __independent_bits_engine - -template -struct __log2_imp -{ - static const size_t value = _Xp & ((unsigned long long)(1) << _Rp) ? _Rp - : __log2_imp<_Xp, _Rp - 1>::value; -}; - -template -struct __log2_imp<_Xp, 0> -{ - static const size_t value = 0; -}; - -template -struct __log2_imp<0, _Rp> -{ - static const size_t value = _Rp + 1; -}; - -template -struct __log2 -{ - static const size_t value = __log2_imp<_Xp, - sizeof(_UI) * __CHAR_BIT__ - 1>::value; -}; - -template -class __independent_bits_engine -{ -public: - // types - typedef _UIntType result_type; - -private: - typedef typename _Engine::result_type _Engine_result_type; - typedef typename conditional - < - sizeof(_Engine_result_type) <= sizeof(result_type), - result_type, - _Engine_result_type - >::type _Working_result_type; - - _Engine& __e_; - size_t __w_; - size_t __w0_; - size_t __n_; - size_t __n0_; - _Working_result_type __y0_; - _Working_result_type __y1_; - _Engine_result_type __mask0_; - _Engine_result_type __mask1_; - -#ifdef _LIBCPP_HAS_NO_CONSTEXPR - static const _Working_result_type _Rp = _Engine::_Max - _Engine::_Min - + _Working_result_type(1); -#else - static _LIBCPP_CONSTEXPR const _Working_result_type _Rp = _Engine::max() - _Engine::min() - + _Working_result_type(1); -#endif - static _LIBCPP_CONSTEXPR const size_t __m = __log2<_Working_result_type, _Rp>::value; - static _LIBCPP_CONSTEXPR const size_t _WDt = numeric_limits<_Working_result_type>::digits; - static _LIBCPP_CONSTEXPR const size_t _EDt = numeric_limits<_Engine_result_type>::digits; - -public: - // constructors and seeding functions - __independent_bits_engine(_Engine& __e, size_t __w); - - // generating functions - result_type operator()() {return __eval(integral_constant());} - -private: - result_type __eval(false_type); - result_type __eval(true_type); -}; - -template -__independent_bits_engine<_Engine, _UIntType> - ::__independent_bits_engine(_Engine& __e, size_t __w) - : __e_(__e), - __w_(__w) -{ - __n_ = __w_ / __m + (__w_ % __m != 0); - __w0_ = __w_ / __n_; - if (_Rp == 0) - __y0_ = _Rp; - else if (__w0_ < _WDt) - __y0_ = (_Rp >> __w0_) << __w0_; - else - __y0_ = 0; - if (_Rp - __y0_ > __y0_ / __n_) - { - ++__n_; - __w0_ = __w_ / __n_; - if (__w0_ < _WDt) - __y0_ = (_Rp >> __w0_) << __w0_; - else - __y0_ = 0; - } - __n0_ = __n_ - __w_ % __n_; - if (__w0_ < _WDt - 1) - __y1_ = (_Rp >> (__w0_ + 1)) << (__w0_ + 1); - else - __y1_ = 0; - __mask0_ = __w0_ > 0 ? _Engine_result_type(~0) >> (_EDt - __w0_) : - _Engine_result_type(0); - __mask1_ = __w0_ < _EDt - 1 ? - _Engine_result_type(~0) >> (_EDt - (__w0_ + 1)) : - _Engine_result_type(~0); -} - -template -inline -_UIntType -__independent_bits_engine<_Engine, _UIntType>::__eval(false_type) -{ - return static_cast(__e_() & __mask0_); -} - -template -_UIntType -__independent_bits_engine<_Engine, _UIntType>::__eval(true_type) -{ - result_type _Sp = 0; - for (size_t __k = 0; __k < __n0_; ++__k) - { - _Engine_result_type __u; - do - { - __u = __e_() - _Engine::min(); - } while (__u >= __y0_); - if (__w0_ < _WDt) - _Sp <<= __w0_; - else - _Sp = 0; - _Sp += __u & __mask0_; - } - for (size_t __k = __n0_; __k < __n_; ++__k) - { - _Engine_result_type __u; - do - { - __u = __e_() - _Engine::min(); - } while (__u >= __y1_); - if (__w0_ < _WDt - 1) - _Sp <<= __w0_ + 1; - else - _Sp = 0; - _Sp += __u & __mask1_; - } - return _Sp; -} - -// uniform_int_distribution - -template -class uniform_int_distribution -{ -public: - // types - typedef _IntType result_type; - - class param_type - { - result_type __a_; - result_type __b_; - public: - typedef uniform_int_distribution distribution_type; - - explicit param_type(result_type __a = 0, - result_type __b = numeric_limits::max()) - : __a_(__a), __b_(__b) {} - - result_type a() const {return __a_;} - result_type b() const {return __b_;} - - friend bool operator==(const param_type& __x, const param_type& __y) - {return __x.__a_ == __y.__a_ && __x.__b_ == __y.__b_;} - friend bool operator!=(const param_type& __x, const param_type& __y) - {return !(__x == __y);} - }; - -private: - param_type __p_; - -public: - // constructors and reset functions - explicit uniform_int_distribution(result_type __a = 0, - result_type __b = numeric_limits::max()) - : __p_(param_type(__a, __b)) {} - explicit uniform_int_distribution(const param_type& __p) : __p_(__p) {} - void reset() {} - - // generating functions - template result_type operator()(_URNG& __g) - {return (*this)(__g, __p_);} - template result_type operator()(_URNG& __g, const param_type& __p); - - // property functions - result_type a() const {return __p_.a();} - result_type b() const {return __p_.b();} - - param_type param() const {return __p_;} - void param(const param_type& __p) {__p_ = __p;} - - result_type min() const {return a();} - result_type max() const {return b();} - - friend bool operator==(const uniform_int_distribution& __x, - const uniform_int_distribution& __y) - {return __x.__p_ == __y.__p_;} - friend bool operator!=(const uniform_int_distribution& __x, - const uniform_int_distribution& __y) - {return !(__x == __y);} -}; - -template -template -typename uniform_int_distribution<_IntType>::result_type -uniform_int_distribution<_IntType>::operator()(_URNG& __g, const param_type& __p) -{ - typedef typename conditional::type _UIntType; - const _UIntType _Rp = __p.b() - __p.a() + _UIntType(1); - if (_Rp == 1) - return __p.a(); - const size_t _Dt = numeric_limits<_UIntType>::digits; - typedef __independent_bits_engine<_URNG, _UIntType> _Eng; - if (_Rp == 0) - return static_cast(_Eng(__g, _Dt)()); - size_t __w = _Dt - __clz(_Rp) - 1; - if ((_Rp & (std::numeric_limits<_UIntType>::max() >> (_Dt - __w))) != 0) - ++__w; - _Eng __e(__g, __w); - _UIntType __u; - do - { - __u = __e(); - } while (__u >= _Rp); - return static_cast(__u + __p.a()); -} - -class _LIBCPP_TYPE_VIS __rs_default; - -_LIBCPP_FUNC_VIS __rs_default __rs_get(); - -class _LIBCPP_TYPE_VIS __rs_default -{ - static unsigned __c_; - - __rs_default(); -public: - typedef uint_fast32_t result_type; - - static const result_type _Min = 0; - static const result_type _Max = 0xFFFFFFFF; - - __rs_default(const __rs_default&); - ~__rs_default(); - - result_type operator()(); - - static _LIBCPP_CONSTEXPR result_type min() {return _Min;} - static _LIBCPP_CONSTEXPR result_type max() {return _Max;} - - friend _LIBCPP_FUNC_VIS __rs_default __rs_get(); -}; - -_LIBCPP_FUNC_VIS __rs_default __rs_get(); - -template -void -random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last) -{ - typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; - typedef uniform_int_distribution _Dp; - typedef typename _Dp::param_type _Pp; - difference_type __d = __last - __first; - if (__d > 1) - { - _Dp __uid; - __rs_default __g = __rs_get(); - for (--__last, --__d; __first < __last; ++__first, --__d) - { - difference_type __i = __uid(__g, _Pp(0, __d)); - if (__i != difference_type(0)) - swap(*__first, *(__first + __i)); - } - } -} - -template -void -random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _RandomNumberGenerator&& __rand) -#else - _RandomNumberGenerator& __rand) -#endif -{ - typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; - difference_type __d = __last - __first; - if (__d > 1) - { - for (--__last; __first < __last; ++__first, --__d) - { - difference_type __i = __rand(__d); - swap(*__first, *(__first + __i)); - } - } -} - -template - void shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _UniformRandomNumberGenerator&& __g) -#else - _UniformRandomNumberGenerator& __g) -#endif -{ - typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; - typedef uniform_int_distribution _Dp; - typedef typename _Dp::param_type _Pp; - difference_type __d = __last - __first; - if (__d > 1) - { - _Dp __uid; - for (--__last, --__d; __first < __last; ++__first, --__d) - { - difference_type __i = __uid(__g, _Pp(0, __d)); - if (__i != difference_type(0)) - swap(*__first, *(__first + __i)); - } - } -} - -template -bool -is_partitioned(_InputIterator __first, _InputIterator __last, _Predicate __pred) -{ - for (; __first != __last; ++__first) - if (!__pred(*__first)) - break; - if ( __first == __last ) - return true; - ++__first; - for (; __first != __last; ++__first) - if (__pred(*__first)) - return false; - return true; -} - -// partition - -template -_ForwardIterator -__partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, forward_iterator_tag) -{ - while (true) - { - if (__first == __last) - return __first; - if (!__pred(*__first)) - break; - ++__first; - } - for (_ForwardIterator __p = __first; ++__p != __last;) - { - if (__pred(*__p)) - { - swap(*__first, *__p); - ++__first; - } - } - return __first; -} - -template -_BidirectionalIterator -__partition(_BidirectionalIterator __first, _BidirectionalIterator __last, _Predicate __pred, - bidirectional_iterator_tag) -{ - while (true) - { - while (true) - { - if (__first == __last) - return __first; - if (!__pred(*__first)) - break; - ++__first; - } - do - { - if (__first == --__last) - return __first; - } while (!__pred(*__last)); - swap(*__first, *__last); - ++__first; - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator -partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred) -{ - return _VSTD::__partition::type> - (__first, __last, __pred, typename iterator_traits<_ForwardIterator>::iterator_category()); -} - -// partition_copy - -template -pair<_OutputIterator1, _OutputIterator2> -partition_copy(_InputIterator __first, _InputIterator __last, - _OutputIterator1 __out_true, _OutputIterator2 __out_false, - _Predicate __pred) -{ - for (; __first != __last; ++__first) - { - if (__pred(*__first)) - { - *__out_true = *__first; - ++__out_true; - } - else - { - *__out_false = *__first; - ++__out_false; - } - } - return pair<_OutputIterator1, _OutputIterator2>(__out_true, __out_false); -} - -// partition_point - -template -_ForwardIterator -partition_point(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred) -{ - typedef typename iterator_traits<_ForwardIterator>::difference_type difference_type; - difference_type __len = _VSTD::distance(__first, __last); - while (__len != 0) - { - difference_type __l2 = __len / 2; - _ForwardIterator __m = __first; - _VSTD::advance(__m, __l2); - if (__pred(*__m)) - { - __first = ++__m; - __len -= __l2 + 1; - } - else - __len = __l2; - } - return __first; -} - -// stable_partition - -template -_ForwardIterator -__stable_partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, - _Distance __len, _Pair __p, forward_iterator_tag __fit) -{ - // *__first is known to be false - // __len >= 1 - if (__len == 1) - return __first; - if (__len == 2) - { - _ForwardIterator __m = __first; - if (__pred(*++__m)) - { - swap(*__first, *__m); - return __m; - } - return __first; - } - if (__len <= __p.second) - { // The buffer is big enough to use - typedef typename iterator_traits<_ForwardIterator>::value_type value_type; - __destruct_n __d(0); - unique_ptr __h(__p.first, __d); - // Move the falses into the temporary buffer, and the trues to the front of the line - // Update __first to always point to the end of the trues - value_type* __t = __p.first; - ::new(__t) value_type(_VSTD::move(*__first)); - __d.__incr((value_type*)0); - ++__t; - _ForwardIterator __i = __first; - while (++__i != __last) - { - if (__pred(*__i)) - { - *__first = _VSTD::move(*__i); - ++__first; - } - else - { - ::new(__t) value_type(_VSTD::move(*__i)); - __d.__incr((value_type*)0); - ++__t; - } - } - // All trues now at start of range, all falses in buffer - // Move falses back into range, but don't mess up __first which points to first false - __i = __first; - for (value_type* __t2 = __p.first; __t2 < __t; ++__t2, ++__i) - *__i = _VSTD::move(*__t2); - // __h destructs moved-from values out of the temp buffer, but doesn't deallocate buffer - return __first; - } - // Else not enough buffer, do in place - // __len >= 3 - _ForwardIterator __m = __first; - _Distance __len2 = __len / 2; // __len2 >= 2 - _VSTD::advance(__m, __len2); - // recurse on [__first, __m), *__first know to be false - // F????????????????? - // f m l - typedef typename add_lvalue_reference<_Predicate>::type _PredRef; - _ForwardIterator __first_false = __stable_partition<_PredRef>(__first, __m, __pred, __len2, __p, __fit); - // TTTFFFFF?????????? - // f ff m l - // recurse on [__m, __last], except increase __m until *(__m) is false, *__last know to be true - _ForwardIterator __m1 = __m; - _ForwardIterator __second_false = __last; - _Distance __len_half = __len - __len2; - while (__pred(*__m1)) - { - if (++__m1 == __last) - goto __second_half_done; - --__len_half; - } - // TTTFFFFFTTTF?????? - // f ff m m1 l - __second_false = __stable_partition<_PredRef>(__m1, __last, __pred, __len_half, __p, __fit); -__second_half_done: - // TTTFFFFFTTTTTFFFFF - // f ff m sf l - return _VSTD::rotate(__first_false, __m, __second_false); - // TTTTTTTTFFFFFFFFFF - // | -} - -struct __return_temporary_buffer -{ - template - _LIBCPP_INLINE_VISIBILITY void operator()(_Tp* __p) const {_VSTD::return_temporary_buffer(__p);} -}; - -template -_ForwardIterator -__stable_partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, - forward_iterator_tag) -{ - const unsigned __alloc_limit = 3; // might want to make this a function of trivial assignment - // Either prove all true and return __first or point to first false - while (true) - { - if (__first == __last) - return __first; - if (!__pred(*__first)) - break; - ++__first; - } - // We now have a reduced range [__first, __last) - // *__first is known to be false - typedef typename iterator_traits<_ForwardIterator>::difference_type difference_type; - typedef typename iterator_traits<_ForwardIterator>::value_type value_type; - difference_type __len = _VSTD::distance(__first, __last); - pair __p(0, 0); - unique_ptr __h; - if (__len >= __alloc_limit) - { - __p = _VSTD::get_temporary_buffer(__len); - __h.reset(__p.first); - } - return __stable_partition::type> - (__first, __last, __pred, __len, __p, forward_iterator_tag()); -} - -template -_BidirectionalIterator -__stable_partition(_BidirectionalIterator __first, _BidirectionalIterator __last, _Predicate __pred, - _Distance __len, _Pair __p, bidirectional_iterator_tag __bit) -{ - // *__first is known to be false - // *__last is known to be true - // __len >= 2 - if (__len == 2) - { - swap(*__first, *__last); - return __last; - } - if (__len == 3) - { - _BidirectionalIterator __m = __first; - if (__pred(*++__m)) - { - swap(*__first, *__m); - swap(*__m, *__last); - return __last; - } - swap(*__m, *__last); - swap(*__first, *__m); - return __m; - } - if (__len <= __p.second) - { // The buffer is big enough to use - typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type; - __destruct_n __d(0); - unique_ptr __h(__p.first, __d); - // Move the falses into the temporary buffer, and the trues to the front of the line - // Update __first to always point to the end of the trues - value_type* __t = __p.first; - ::new(__t) value_type(_VSTD::move(*__first)); - __d.__incr((value_type*)0); - ++__t; - _BidirectionalIterator __i = __first; - while (++__i != __last) - { - if (__pred(*__i)) - { - *__first = _VSTD::move(*__i); - ++__first; - } - else - { - ::new(__t) value_type(_VSTD::move(*__i)); - __d.__incr((value_type*)0); - ++__t; - } - } - // move *__last, known to be true - *__first = _VSTD::move(*__i); - __i = ++__first; - // All trues now at start of range, all falses in buffer - // Move falses back into range, but don't mess up __first which points to first false - for (value_type* __t2 = __p.first; __t2 < __t; ++__t2, ++__i) - *__i = _VSTD::move(*__t2); - // __h destructs moved-from values out of the temp buffer, but doesn't deallocate buffer - return __first; - } - // Else not enough buffer, do in place - // __len >= 4 - _BidirectionalIterator __m = __first; - _Distance __len2 = __len / 2; // __len2 >= 2 - _VSTD::advance(__m, __len2); - // recurse on [__first, __m-1], except reduce __m-1 until *(__m-1) is true, *__first know to be false - // F????????????????T - // f m l - _BidirectionalIterator __m1 = __m; - _BidirectionalIterator __first_false = __first; - _Distance __len_half = __len2; - while (!__pred(*--__m1)) - { - if (__m1 == __first) - goto __first_half_done; - --__len_half; - } - // F???TFFF?????????T - // f m1 m l - typedef typename add_lvalue_reference<_Predicate>::type _PredRef; - __first_false = __stable_partition<_PredRef>(__first, __m1, __pred, __len_half, __p, __bit); -__first_half_done: - // TTTFFFFF?????????T - // f ff m l - // recurse on [__m, __last], except increase __m until *(__m) is false, *__last know to be true - __m1 = __m; - _BidirectionalIterator __second_false = __last; - ++__second_false; - __len_half = __len - __len2; - while (__pred(*__m1)) - { - if (++__m1 == __last) - goto __second_half_done; - --__len_half; - } - // TTTFFFFFTTTF?????T - // f ff m m1 l - __second_false = __stable_partition<_PredRef>(__m1, __last, __pred, __len_half, __p, __bit); -__second_half_done: - // TTTFFFFFTTTTTFFFFF - // f ff m sf l - return _VSTD::rotate(__first_false, __m, __second_false); - // TTTTTTTTFFFFFFFFFF - // | -} - -template -_BidirectionalIterator -__stable_partition(_BidirectionalIterator __first, _BidirectionalIterator __last, _Predicate __pred, - bidirectional_iterator_tag) -{ - typedef typename iterator_traits<_BidirectionalIterator>::difference_type difference_type; - typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type; - const difference_type __alloc_limit = 4; // might want to make this a function of trivial assignment - // Either prove all true and return __first or point to first false - while (true) - { - if (__first == __last) - return __first; - if (!__pred(*__first)) - break; - ++__first; - } - // __first points to first false, everything prior to __first is already set. - // Either prove [__first, __last) is all false and return __first, or point __last to last true - do - { - if (__first == --__last) - return __first; - } while (!__pred(*__last)); - // We now have a reduced range [__first, __last] - // *__first is known to be false - // *__last is known to be true - // __len >= 2 - difference_type __len = _VSTD::distance(__first, __last) + 1; - pair __p(0, 0); - unique_ptr __h; - if (__len >= __alloc_limit) - { - __p = _VSTD::get_temporary_buffer(__len); - __h.reset(__p.first); - } - return __stable_partition::type> - (__first, __last, __pred, __len, __p, bidirectional_iterator_tag()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator -stable_partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred) -{ - return __stable_partition::type> - (__first, __last, __pred, typename iterator_traits<_ForwardIterator>::iterator_category()); -} - -// is_sorted_until - -template -_ForwardIterator -is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) -{ - if (__first != __last) - { - _ForwardIterator __i = __first; - while (++__i != __last) - { - if (__comp(*__i, *__first)) - return __i; - __first = __i; - } - } - return __last; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator -is_sorted_until(_ForwardIterator __first, _ForwardIterator __last) -{ - return _VSTD::is_sorted_until(__first, __last, __less::value_type>()); -} - -// is_sorted - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -is_sorted(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) -{ - return _VSTD::is_sorted_until(__first, __last, __comp) == __last; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -is_sorted(_ForwardIterator __first, _ForwardIterator __last) -{ - return _VSTD::is_sorted(__first, __last, __less::value_type>()); -} - -// sort - -// stable, 2-3 compares, 0-2 swaps - -template -unsigned -__sort3(_ForwardIterator __x, _ForwardIterator __y, _ForwardIterator __z, _Compare __c) -{ - unsigned __r = 0; - if (!__c(*__y, *__x)) // if x <= y - { - if (!__c(*__z, *__y)) // if y <= z - return __r; // x <= y && y <= z - // x <= y && y > z - swap(*__y, *__z); // x <= z && y < z - __r = 1; - if (__c(*__y, *__x)) // if x > y - { - swap(*__x, *__y); // x < y && y <= z - __r = 2; - } - return __r; // x <= y && y < z - } - if (__c(*__z, *__y)) // x > y, if y > z - { - swap(*__x, *__z); // x < y && y < z - __r = 1; - return __r; - } - swap(*__x, *__y); // x > y && y <= z - __r = 1; // x < y && x <= z - if (__c(*__z, *__y)) // if y > z - { - swap(*__y, *__z); // x <= y && y < z - __r = 2; - } - return __r; -} // x <= y && y <= z - -// stable, 3-6 compares, 0-5 swaps - -template -unsigned -__sort4(_ForwardIterator __x1, _ForwardIterator __x2, _ForwardIterator __x3, - _ForwardIterator __x4, _Compare __c) -{ - unsigned __r = __sort3<_Compare>(__x1, __x2, __x3, __c); - if (__c(*__x4, *__x3)) - { - swap(*__x3, *__x4); - ++__r; - if (__c(*__x3, *__x2)) - { - swap(*__x2, *__x3); - ++__r; - if (__c(*__x2, *__x1)) - { - swap(*__x1, *__x2); - ++__r; - } - } - } - return __r; -} - -// stable, 4-10 compares, 0-9 swaps - -template -unsigned -__sort5(_ForwardIterator __x1, _ForwardIterator __x2, _ForwardIterator __x3, - _ForwardIterator __x4, _ForwardIterator __x5, _Compare __c) -{ - unsigned __r = __sort4<_Compare>(__x1, __x2, __x3, __x4, __c); - if (__c(*__x5, *__x4)) - { - swap(*__x4, *__x5); - ++__r; - if (__c(*__x4, *__x3)) - { - swap(*__x3, *__x4); - ++__r; - if (__c(*__x3, *__x2)) - { - swap(*__x2, *__x3); - ++__r; - if (__c(*__x2, *__x1)) - { - swap(*__x1, *__x2); - ++__r; - } - } - } - } - return __r; -} - -// Assumes size > 0 -template -void -__selection_sort(_BirdirectionalIterator __first, _BirdirectionalIterator __last, _Compare __comp) -{ - _BirdirectionalIterator __lm1 = __last; - for (--__lm1; __first != __lm1; ++__first) - { - _BirdirectionalIterator __i = _VSTD::min_element<_BirdirectionalIterator, - typename add_lvalue_reference<_Compare>::type> - (__first, __last, __comp); - if (__i != __first) - swap(*__first, *__i); - } -} - -template -void -__insertion_sort(_BirdirectionalIterator __first, _BirdirectionalIterator __last, _Compare __comp) -{ - typedef typename iterator_traits<_BirdirectionalIterator>::value_type value_type; - if (__first != __last) - { - _BirdirectionalIterator __i = __first; - for (++__i; __i != __last; ++__i) - { - _BirdirectionalIterator __j = __i; - value_type __t(_VSTD::move(*__j)); - for (_BirdirectionalIterator __k = __i; __k != __first && __comp(__t, *--__k); --__j) - *__j = _VSTD::move(*__k); - *__j = _VSTD::move(__t); - } - } -} - -template -void -__insertion_sort_3(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) -{ - typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; - _RandomAccessIterator __j = __first+2; - __sort3<_Compare>(__first, __first+1, __j, __comp); - for (_RandomAccessIterator __i = __j+1; __i != __last; ++__i) - { - if (__comp(*__i, *__j)) - { - value_type __t(_VSTD::move(*__i)); - _RandomAccessIterator __k = __j; - __j = __i; - do - { - *__j = _VSTD::move(*__k); - __j = __k; - } while (__j != __first && __comp(__t, *--__k)); - *__j = _VSTD::move(__t); - } - __j = __i; - } -} - -template -bool -__insertion_sort_incomplete(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) -{ - switch (__last - __first) - { - case 0: - case 1: - return true; - case 2: - if (__comp(*--__last, *__first)) - swap(*__first, *__last); - return true; - case 3: - _VSTD::__sort3<_Compare>(__first, __first+1, --__last, __comp); - return true; - case 4: - _VSTD::__sort4<_Compare>(__first, __first+1, __first+2, --__last, __comp); - return true; - case 5: - _VSTD::__sort5<_Compare>(__first, __first+1, __first+2, __first+3, --__last, __comp); - return true; - } - typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; - _RandomAccessIterator __j = __first+2; - __sort3<_Compare>(__first, __first+1, __j, __comp); - const unsigned __limit = 8; - unsigned __count = 0; - for (_RandomAccessIterator __i = __j+1; __i != __last; ++__i) - { - if (__comp(*__i, *__j)) - { - value_type __t(_VSTD::move(*__i)); - _RandomAccessIterator __k = __j; - __j = __i; - do - { - *__j = _VSTD::move(*__k); - __j = __k; - } while (__j != __first && __comp(__t, *--__k)); - *__j = _VSTD::move(__t); - if (++__count == __limit) - return ++__i == __last; - } - __j = __i; - } - return true; -} - -template -void -__insertion_sort_move(_BirdirectionalIterator __first1, _BirdirectionalIterator __last1, - typename iterator_traits<_BirdirectionalIterator>::value_type* __first2, _Compare __comp) -{ - typedef typename iterator_traits<_BirdirectionalIterator>::value_type value_type; - if (__first1 != __last1) - { - __destruct_n __d(0); - unique_ptr __h(__first2, __d); - value_type* __last2 = __first2; - ::new(__last2) value_type(_VSTD::move(*__first1)); - __d.__incr((value_type*)0); - for (++__last2; ++__first1 != __last1; ++__last2) - { - value_type* __j2 = __last2; - value_type* __i2 = __j2; - if (__comp(*__first1, *--__i2)) - { - ::new(__j2) value_type(_VSTD::move(*__i2)); - __d.__incr((value_type*)0); - for (--__j2; __i2 != __first2 && __comp(*__first1, *--__i2); --__j2) - *__j2 = _VSTD::move(*__i2); - *__j2 = _VSTD::move(*__first1); - } - else - { - ::new(__j2) value_type(_VSTD::move(*__first1)); - __d.__incr((value_type*)0); - } - } - __h.release(); - } -} - -template -void -__sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) -{ - // _Compare is known to be a reference type - typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; - typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; - const difference_type __limit = is_trivially_copy_constructible::value && - is_trivially_copy_assignable::value ? 30 : 6; - while (true) - { - __restart: - difference_type __len = __last - __first; - switch (__len) - { - case 0: - case 1: - return; - case 2: - if (__comp(*--__last, *__first)) - swap(*__first, *__last); - return; - case 3: - _VSTD::__sort3<_Compare>(__first, __first+1, --__last, __comp); - return; - case 4: - _VSTD::__sort4<_Compare>(__first, __first+1, __first+2, --__last, __comp); - return; - case 5: - _VSTD::__sort5<_Compare>(__first, __first+1, __first+2, __first+3, --__last, __comp); - return; - } - if (__len <= __limit) - { - _VSTD::__insertion_sort_3<_Compare>(__first, __last, __comp); - return; - } - // __len > 5 - _RandomAccessIterator __m = __first; - _RandomAccessIterator __lm1 = __last; - --__lm1; - unsigned __n_swaps; - { - difference_type __delta; - if (__len >= 1000) - { - __delta = __len/2; - __m += __delta; - __delta /= 2; - __n_swaps = _VSTD::__sort5<_Compare>(__first, __first + __delta, __m, __m+__delta, __lm1, __comp); - } - else - { - __delta = __len/2; - __m += __delta; - __n_swaps = _VSTD::__sort3<_Compare>(__first, __m, __lm1, __comp); - } - } - // *__m is median - // partition [__first, __m) < *__m and *__m <= [__m, __last) - // (this inhibits tossing elements equivalent to __m around unnecessarily) - _RandomAccessIterator __i = __first; - _RandomAccessIterator __j = __lm1; - // j points beyond range to be tested, *__m is known to be <= *__lm1 - // The search going up is known to be guarded but the search coming down isn't. - // Prime the downward search with a guard. - if (!__comp(*__i, *__m)) // if *__first == *__m - { - // *__first == *__m, *__first doesn't go in first part - // manually guard downward moving __j against __i - while (true) - { - if (__i == --__j) - { - // *__first == *__m, *__m <= all other elements - // Parition instead into [__first, __i) == *__first and *__first < [__i, __last) - ++__i; // __first + 1 - __j = __last; - if (!__comp(*__first, *--__j)) // we need a guard if *__first == *(__last-1) - { - while (true) - { - if (__i == __j) - return; // [__first, __last) all equivalent elements - if (__comp(*__first, *__i)) - { - swap(*__i, *__j); - ++__n_swaps; - ++__i; - break; - } - ++__i; - } - } - // [__first, __i) == *__first and *__first < [__j, __last) and __j == __last - 1 - if (__i == __j) - return; - while (true) - { - while (!__comp(*__first, *__i)) - ++__i; - while (__comp(*__first, *--__j)) - ; - if (__i >= __j) - break; - swap(*__i, *__j); - ++__n_swaps; - ++__i; - } - // [__first, __i) == *__first and *__first < [__i, __last) - // The first part is sorted, sort the secod part - // _VSTD::__sort<_Compare>(__i, __last, __comp); - __first = __i; - goto __restart; - } - if (__comp(*__j, *__m)) - { - swap(*__i, *__j); - ++__n_swaps; - break; // found guard for downward moving __j, now use unguarded partition - } - } - } - // It is known that *__i < *__m - ++__i; - // j points beyond range to be tested, *__m is known to be <= *__lm1 - // if not yet partitioned... - if (__i < __j) - { - // known that *(__i - 1) < *__m - // known that __i <= __m - while (true) - { - // __m still guards upward moving __i - while (__comp(*__i, *__m)) - ++__i; - // It is now known that a guard exists for downward moving __j - while (!__comp(*--__j, *__m)) - ; - if (__i > __j) - break; - swap(*__i, *__j); - ++__n_swaps; - // It is known that __m != __j - // If __m just moved, follow it - if (__m == __i) - __m = __j; - ++__i; - } - } - // [__first, __i) < *__m and *__m <= [__i, __last) - if (__i != __m && __comp(*__m, *__i)) - { - swap(*__i, *__m); - ++__n_swaps; - } - // [__first, __i) < *__i and *__i <= [__i+1, __last) - // If we were given a perfect partition, see if insertion sort is quick... - if (__n_swaps == 0) - { - bool __fs = _VSTD::__insertion_sort_incomplete<_Compare>(__first, __i, __comp); - if (_VSTD::__insertion_sort_incomplete<_Compare>(__i+1, __last, __comp)) - { - if (__fs) - return; - __last = __i; - continue; - } - else - { - if (__fs) - { - __first = ++__i; - continue; - } - } - } - // sort smaller range with recursive call and larger with tail recursion elimination - if (__i - __first < __last - __i) - { - _VSTD::__sort<_Compare>(__first, __i, __comp); - // _VSTD::__sort<_Compare>(__i+1, __last, __comp); - __first = ++__i; - } - else - { - _VSTD::__sort<_Compare>(__i+1, __last, __comp); - // _VSTD::__sort<_Compare>(__first, __i, __comp); - __last = __i; - } - } -} - -// This forwarder keeps the top call and the recursive calls using the same instantiation, forcing a reference _Compare -template -inline _LIBCPP_INLINE_VISIBILITY -void -sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - __sort<_Comp_ref>(__first, __last, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - __sort<_Comp_ref>(__first, __last, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -sort(_RandomAccessIterator __first, _RandomAccessIterator __last) -{ - _VSTD::sort(__first, __last, __less::value_type>()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -sort(_Tp** __first, _Tp** __last) -{ - _VSTD::sort((size_t*)__first, (size_t*)__last, __less()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -sort(__wrap_iter<_Tp*> __first, __wrap_iter<_Tp*> __last) -{ - _VSTD::sort(__first.base(), __last.base()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -sort(__wrap_iter<_Tp*> __first, __wrap_iter<_Tp*> __last, _Compare __comp) -{ - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - _VSTD::sort<_Tp*, _Comp_ref>(__first.base(), __last.base(), __comp); -} - -#ifdef _LIBCPP_MSVC -#pragma warning( push ) -#pragma warning( disable: 4231) -#endif // _LIBCPP_MSVC -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, char*>(char*, char*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, wchar_t*>(wchar_t*, wchar_t*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, signed char*>(signed char*, signed char*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, unsigned char*>(unsigned char*, unsigned char*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, short*>(short*, short*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, unsigned short*>(unsigned short*, unsigned short*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, int*>(int*, int*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, unsigned*>(unsigned*, unsigned*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, long*>(long*, long*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, unsigned long*>(unsigned long*, unsigned long*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, long long*>(long long*, long long*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, unsigned long long*>(unsigned long long*, unsigned long long*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, float*>(float*, float*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, double*>(double*, double*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less&, long double*>(long double*, long double*, __less&)) - -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less&, char*>(char*, char*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less&, wchar_t*>(wchar_t*, wchar_t*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less&, signed char*>(signed char*, signed char*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less&, unsigned char*>(unsigned char*, unsigned char*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less&, short*>(short*, short*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less&, unsigned short*>(unsigned short*, unsigned short*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less&, int*>(int*, int*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less&, unsigned*>(unsigned*, unsigned*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less&, long*>(long*, long*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less&, unsigned long*>(unsigned long*, unsigned long*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less&, long long*>(long long*, long long*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less&, unsigned long long*>(unsigned long long*, unsigned long long*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less&, float*>(float*, float*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less&, double*>(double*, double*, __less&)) -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less&, long double*>(long double*, long double*, __less&)) - -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS unsigned __sort5<__less&, long double*>(long double*, long double*, long double*, long double*, long double*, __less&)) -#ifdef _LIBCPP_MSVC -#pragma warning( pop ) -#endif // _LIBCPP_MSVC - -// lower_bound - -template -_ForwardIterator -__lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp) -{ - typedef typename iterator_traits<_ForwardIterator>::difference_type difference_type; - difference_type __len = _VSTD::distance(__first, __last); - while (__len != 0) - { - difference_type __l2 = __len / 2; - _ForwardIterator __m = __first; - _VSTD::advance(__m, __l2); - if (__comp(*__m, __value_)) - { - __first = ++__m; - __len -= __l2 + 1; - } - else - __len = __l2; - } - return __first; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator -lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - return __lower_bound<_Comp_ref>(__first, __last, __value_, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - return __lower_bound<_Comp_ref>(__first, __last, __value_, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator -lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_) -{ - return _VSTD::lower_bound(__first, __last, __value_, - __less::value_type, _Tp>()); -} - -// upper_bound - -template -_ForwardIterator -__upper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp) -{ - typedef typename iterator_traits<_ForwardIterator>::difference_type difference_type; - difference_type __len = _VSTD::distance(__first, __last); - while (__len != 0) - { - difference_type __l2 = __len / 2; - _ForwardIterator __m = __first; - _VSTD::advance(__m, __l2); - if (__comp(__value_, *__m)) - __len = __l2; - else - { - __first = ++__m; - __len -= __l2 + 1; - } - } - return __first; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator -upper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - return __upper_bound<_Comp_ref>(__first, __last, __value_, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - return __upper_bound<_Comp_ref>(__first, __last, __value_, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ForwardIterator -upper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_) -{ - return _VSTD::upper_bound(__first, __last, __value_, - __less<_Tp, typename iterator_traits<_ForwardIterator>::value_type>()); -} - -// equal_range - -template -pair<_ForwardIterator, _ForwardIterator> -__equal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp) -{ - typedef typename iterator_traits<_ForwardIterator>::difference_type difference_type; - difference_type __len = _VSTD::distance(__first, __last); - while (__len != 0) - { - difference_type __l2 = __len / 2; - _ForwardIterator __m = __first; - _VSTD::advance(__m, __l2); - if (__comp(*__m, __value_)) - { - __first = ++__m; - __len -= __l2 + 1; - } - else if (__comp(__value_, *__m)) - { - __last = __m; - __len = __l2; - } - else - { - _ForwardIterator __mp1 = __m; - return pair<_ForwardIterator, _ForwardIterator> - ( - __lower_bound<_Compare>(__first, __m, __value_, __comp), - __upper_bound<_Compare>(++__mp1, __last, __value_, __comp) - ); - } - } - return pair<_ForwardIterator, _ForwardIterator>(__first, __first); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -pair<_ForwardIterator, _ForwardIterator> -equal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - return __equal_range<_Comp_ref>(__first, __last, __value_, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - return __equal_range<_Comp_ref>(__first, __last, __value_, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -pair<_ForwardIterator, _ForwardIterator> -equal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_) -{ - return _VSTD::equal_range(__first, __last, __value_, - __less::value_type, _Tp>()); -} - -// binary_search - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -__binary_search(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp) -{ - __first = __lower_bound<_Compare>(__first, __last, __value_, __comp); - return __first != __last && !__comp(__value_, *__first); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -binary_search(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - return __binary_search<_Comp_ref>(__first, __last, __value_, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - return __binary_search<_Comp_ref>(__first, __last, __value_, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -binary_search(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_) -{ - return _VSTD::binary_search(__first, __last, __value_, - __less::value_type, _Tp>()); -} - -// merge - -template -_OutputIterator -__merge(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) -{ - for (; __first1 != __last1; ++__result) - { - if (__first2 == __last2) - return _VSTD::copy(__first1, __last1, __result); - if (__comp(*__first2, *__first1)) - { - *__result = *__first2; - ++__first2; - } - else - { - *__result = *__first1; - ++__first1; - } - } - return _VSTD::copy(__first2, __last2, __result); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -merge(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - return _VSTD::__merge<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - return _VSTD::__merge<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -merge(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) -{ - typedef typename iterator_traits<_InputIterator1>::value_type __v1; - typedef typename iterator_traits<_InputIterator2>::value_type __v2; - return merge(__first1, __last1, __first2, __last2, __result, __less<__v1, __v2>()); -} - -// inplace_merge - -template -void __half_inplace_merge(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _OutputIterator __result, _Compare __comp) -{ - for (; __first1 != __last1; ++__result) - { - if (__first2 == __last2) - { - _VSTD::move(__first1, __last1, __result); - return; - } - - if (__comp(*__first2, *__first1)) - { - *__result = _VSTD::move(*__first2); - ++__first2; - } - else - { - *__result = _VSTD::move(*__first1); - ++__first1; - } - } - // __first2 through __last2 are already in the right spot. -} - -template -void -__buffered_inplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, - _Compare __comp, typename iterator_traits<_BidirectionalIterator>::difference_type __len1, - typename iterator_traits<_BidirectionalIterator>::difference_type __len2, - typename iterator_traits<_BidirectionalIterator>::value_type* __buff) -{ - typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type; - __destruct_n __d(0); - unique_ptr __h2(__buff, __d); - if (__len1 <= __len2) - { - value_type* __p = __buff; - for (_BidirectionalIterator __i = __first; __i != __middle; __d.__incr((value_type*)0), (void) ++__i, ++__p) - ::new(__p) value_type(_VSTD::move(*__i)); - __half_inplace_merge(__buff, __p, __middle, __last, __first, __comp); - } - else - { - value_type* __p = __buff; - for (_BidirectionalIterator __i = __middle; __i != __last; __d.__incr((value_type*)0), (void) ++__i, ++__p) - ::new(__p) value_type(_VSTD::move(*__i)); - typedef reverse_iterator<_BidirectionalIterator> _RBi; - typedef reverse_iterator _Rv; - __half_inplace_merge(_Rv(__p), _Rv(__buff), - _RBi(__middle), _RBi(__first), - _RBi(__last), __negate<_Compare>(__comp)); - } -} - -template -void -__inplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, - _Compare __comp, typename iterator_traits<_BidirectionalIterator>::difference_type __len1, - typename iterator_traits<_BidirectionalIterator>::difference_type __len2, - typename iterator_traits<_BidirectionalIterator>::value_type* __buff, ptrdiff_t __buff_size) -{ - typedef typename iterator_traits<_BidirectionalIterator>::difference_type difference_type; - while (true) - { - // if __middle == __last, we're done - if (__len2 == 0) - return; - if (__len1 <= __buff_size || __len2 <= __buff_size) - return __buffered_inplace_merge<_Compare> - (__first, __middle, __last, __comp, __len1, __len2, __buff); - // shrink [__first, __middle) as much as possible (with no moves), returning if it shrinks to 0 - for (; true; ++__first, (void) --__len1) - { - if (__len1 == 0) - return; - if (__comp(*__middle, *__first)) - break; - } - // __first < __middle < __last - // *__first > *__middle - // partition [__first, __m1) [__m1, __middle) [__middle, __m2) [__m2, __last) such that - // all elements in: - // [__first, __m1) <= [__middle, __m2) - // [__middle, __m2) < [__m1, __middle) - // [__m1, __middle) <= [__m2, __last) - // and __m1 or __m2 is in the middle of its range - _BidirectionalIterator __m1; // "median" of [__first, __middle) - _BidirectionalIterator __m2; // "median" of [__middle, __last) - difference_type __len11; // distance(__first, __m1) - difference_type __len21; // distance(__middle, __m2) - // binary search smaller range - if (__len1 < __len2) - { // __len >= 1, __len2 >= 2 - __len21 = __len2 / 2; - __m2 = __middle; - _VSTD::advance(__m2, __len21); - __m1 = __upper_bound<_Compare>(__first, __middle, *__m2, __comp); - __len11 = _VSTD::distance(__first, __m1); - } - else - { - if (__len1 == 1) - { // __len1 >= __len2 && __len2 > 0, therefore __len2 == 1 - // It is known *__first > *__middle - swap(*__first, *__middle); - return; - } - // __len1 >= 2, __len2 >= 1 - __len11 = __len1 / 2; - __m1 = __first; - _VSTD::advance(__m1, __len11); - __m2 = __lower_bound<_Compare>(__middle, __last, *__m1, __comp); - __len21 = _VSTD::distance(__middle, __m2); - } - difference_type __len12 = __len1 - __len11; // distance(__m1, __middle) - difference_type __len22 = __len2 - __len21; // distance(__m2, __last) - // [__first, __m1) [__m1, __middle) [__middle, __m2) [__m2, __last) - // swap middle two partitions - __middle = _VSTD::rotate(__m1, __middle, __m2); - // __len12 and __len21 now have swapped meanings - // merge smaller range with recurisve call and larger with tail recursion elimination - if (__len11 + __len21 < __len12 + __len22) - { - __inplace_merge<_Compare>(__first, __m1, __middle, __comp, __len11, __len21, __buff, __buff_size); -// __inplace_merge<_Compare>(__middle, __m2, __last, __comp, __len12, __len22, __buff, __buff_size); - __first = __middle; - __middle = __m2; - __len1 = __len12; - __len2 = __len22; - } - else - { - __inplace_merge<_Compare>(__middle, __m2, __last, __comp, __len12, __len22, __buff, __buff_size); -// __inplace_merge<_Compare>(__first, __m1, __middle, __comp, __len11, __len21, __buff, __buff_size); - __last = __middle; - __middle = __m1; - __len1 = __len11; - __len2 = __len21; - } - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -inplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, - _Compare __comp) -{ - typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type; - typedef typename iterator_traits<_BidirectionalIterator>::difference_type difference_type; - difference_type __len1 = _VSTD::distance(__first, __middle); - difference_type __len2 = _VSTD::distance(__middle, __last); - difference_type __buf_size = _VSTD::min(__len1, __len2); - pair __buf = _VSTD::get_temporary_buffer(__buf_size); - unique_ptr __h(__buf.first); - -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - return _VSTD::__inplace_merge<_Comp_ref>(__first, __middle, __last, __c, __len1, __len2, - __buf.first, __buf.second); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - return _VSTD::__inplace_merge<_Comp_ref>(__first, __middle, __last, __comp, __len1, __len2, - __buf.first, __buf.second); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -inplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last) -{ - _VSTD::inplace_merge(__first, __middle, __last, - __less::value_type>()); -} - -// stable_sort - -template -void -__merge_move_construct(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - typename iterator_traits<_InputIterator1>::value_type* __result, _Compare __comp) -{ - typedef typename iterator_traits<_InputIterator1>::value_type value_type; - __destruct_n __d(0); - unique_ptr __h(__result, __d); - for (; true; ++__result) - { - if (__first1 == __last1) - { - for (; __first2 != __last2; ++__first2, ++__result, __d.__incr((value_type*)0)) - ::new (__result) value_type(_VSTD::move(*__first2)); - __h.release(); - return; - } - if (__first2 == __last2) - { - for (; __first1 != __last1; ++__first1, ++__result, __d.__incr((value_type*)0)) - ::new (__result) value_type(_VSTD::move(*__first1)); - __h.release(); - return; - } - if (__comp(*__first2, *__first1)) - { - ::new (__result) value_type(_VSTD::move(*__first2)); - __d.__incr((value_type*)0); - ++__first2; - } - else - { - ::new (__result) value_type(_VSTD::move(*__first1)); - __d.__incr((value_type*)0); - ++__first1; - } - } -} - -template -void -__merge_move_assign(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, - _OutputIterator __result, _Compare __comp) -{ - for (; __first1 != __last1; ++__result) - { - if (__first2 == __last2) - { - for (; __first1 != __last1; ++__first1, ++__result) - *__result = _VSTD::move(*__first1); - return; - } - if (__comp(*__first2, *__first1)) - { - *__result = _VSTD::move(*__first2); - ++__first2; - } - else - { - *__result = _VSTD::move(*__first1); - ++__first1; - } - } - for (; __first2 != __last2; ++__first2, ++__result) - *__result = _VSTD::move(*__first2); -} - -template -void -__stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp, - typename iterator_traits<_RandomAccessIterator>::difference_type __len, - typename iterator_traits<_RandomAccessIterator>::value_type* __buff, ptrdiff_t __buff_size); - -template -void -__stable_sort_move(_RandomAccessIterator __first1, _RandomAccessIterator __last1, _Compare __comp, - typename iterator_traits<_RandomAccessIterator>::difference_type __len, - typename iterator_traits<_RandomAccessIterator>::value_type* __first2) -{ - typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; - switch (__len) - { - case 0: - return; - case 1: - ::new(__first2) value_type(_VSTD::move(*__first1)); - return; - case 2: - __destruct_n __d(0); - unique_ptr __h2(__first2, __d); - if (__comp(*--__last1, *__first1)) - { - ::new(__first2) value_type(_VSTD::move(*__last1)); - __d.__incr((value_type*)0); - ++__first2; - ::new(__first2) value_type(_VSTD::move(*__first1)); - } - else - { - ::new(__first2) value_type(_VSTD::move(*__first1)); - __d.__incr((value_type*)0); - ++__first2; - ::new(__first2) value_type(_VSTD::move(*__last1)); - } - __h2.release(); - return; - } - if (__len <= 8) - { - __insertion_sort_move<_Compare>(__first1, __last1, __first2, __comp); - return; - } - typename iterator_traits<_RandomAccessIterator>::difference_type __l2 = __len / 2; - _RandomAccessIterator __m = __first1 + __l2; - __stable_sort<_Compare>(__first1, __m, __comp, __l2, __first2, __l2); - __stable_sort<_Compare>(__m, __last1, __comp, __len - __l2, __first2 + __l2, __len - __l2); - __merge_move_construct<_Compare>(__first1, __m, __m, __last1, __first2, __comp); -} - -template -struct __stable_sort_switch -{ - static const unsigned value = 128*is_trivially_copy_assignable<_Tp>::value; -}; - -template -void -__stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp, - typename iterator_traits<_RandomAccessIterator>::difference_type __len, - typename iterator_traits<_RandomAccessIterator>::value_type* __buff, ptrdiff_t __buff_size) -{ - typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; - typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; - switch (__len) - { - case 0: - case 1: - return; - case 2: - if (__comp(*--__last, *__first)) - swap(*__first, *__last); - return; - } - if (__len <= static_cast(__stable_sort_switch::value)) - { - __insertion_sort<_Compare>(__first, __last, __comp); - return; - } - typename iterator_traits<_RandomAccessIterator>::difference_type __l2 = __len / 2; - _RandomAccessIterator __m = __first + __l2; - if (__len <= __buff_size) - { - __destruct_n __d(0); - unique_ptr __h2(__buff, __d); - __stable_sort_move<_Compare>(__first, __m, __comp, __l2, __buff); - __d.__set(__l2, (value_type*)0); - __stable_sort_move<_Compare>(__m, __last, __comp, __len - __l2, __buff + __l2); - __d.__set(__len, (value_type*)0); - __merge_move_assign<_Compare>(__buff, __buff + __l2, __buff + __l2, __buff + __len, __first, __comp); -// __merge<_Compare>(move_iterator(__buff), -// move_iterator(__buff + __l2), -// move_iterator<_RandomAccessIterator>(__buff + __l2), -// move_iterator<_RandomAccessIterator>(__buff + __len), -// __first, __comp); - return; - } - __stable_sort<_Compare>(__first, __m, __comp, __l2, __buff, __buff_size); - __stable_sort<_Compare>(__m, __last, __comp, __len - __l2, __buff, __buff_size); - __inplace_merge<_Compare>(__first, __m, __last, __comp, __l2, __len - __l2, __buff, __buff_size); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) -{ - typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; - typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; - difference_type __len = __last - __first; - pair __buf(0, 0); - unique_ptr __h; - if (__len > static_cast(__stable_sort_switch::value)) - { - __buf = _VSTD::get_temporary_buffer(__len); - __h.reset(__buf.first); - } -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - __stable_sort<_Comp_ref>(__first, __last, __c, __len, __buf.first, __buf.second); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - __stable_sort<_Comp_ref>(__first, __last, __comp, __len, __buf.first, __buf.second); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) -{ - _VSTD::stable_sort(__first, __last, __less::value_type>()); -} - -// is_heap_until - -template -_RandomAccessIterator -is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) -{ - typedef typename _VSTD::iterator_traits<_RandomAccessIterator>::difference_type difference_type; - difference_type __len = __last - __first; - difference_type __p = 0; - difference_type __c = 1; - _RandomAccessIterator __pp = __first; - while (__c < __len) - { - _RandomAccessIterator __cp = __first + __c; - if (__comp(*__pp, *__cp)) - return __cp; - ++__c; - ++__cp; - if (__c == __len) - return __last; - if (__comp(*__pp, *__cp)) - return __cp; - ++__p; - ++__pp; - __c = 2 * __p + 1; - } - return __last; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_RandomAccessIterator -is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last) -{ - return _VSTD::is_heap_until(__first, __last, __less::value_type>()); -} - -// is_heap - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) -{ - return _VSTD::is_heap_until(__first, __last, __comp) == __last; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) -{ - return _VSTD::is_heap(__first, __last, __less::value_type>()); -} - -// push_heap - -template -void -__sift_up(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp, - typename iterator_traits<_RandomAccessIterator>::difference_type __len) -{ - typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; - if (__len > 1) - { - __len = (__len - 2) / 2; - _RandomAccessIterator __ptr = __first + __len; - if (__comp(*__ptr, *--__last)) - { - value_type __t(_VSTD::move(*__last)); - do - { - *__last = _VSTD::move(*__ptr); - __last = __ptr; - if (__len == 0) - break; - __len = (__len - 1) / 2; - __ptr = __first + __len; - } while (__comp(*__ptr, __t)); - *__last = _VSTD::move(__t); - } - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - __sift_up<_Comp_ref>(__first, __last, __c, __last - __first); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - __sift_up<_Comp_ref>(__first, __last, __comp, __last - __first); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) -{ - _VSTD::push_heap(__first, __last, __less::value_type>()); -} - -// pop_heap - -template -void -__sift_down(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp, - typename iterator_traits<_RandomAccessIterator>::difference_type __len, - _RandomAccessIterator __start) -{ - typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; - typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; - // left-child of __start is at 2 * __start + 1 - // right-child of __start is at 2 * __start + 2 - difference_type __child = __start - __first; - - if (__len < 2 || (__len - 2) / 2 < __child) - return; - - __child = 2 * __child + 1; - _RandomAccessIterator __child_i = __first + __child; - - if ((__child + 1) < __len && __comp(*__child_i, *(__child_i + 1))) { - // right-child exists and is greater than left-child - ++__child_i; - ++__child; - } - - // check if we are in heap-order - if (__comp(*__child_i, *__start)) - // we are, __start is larger than it's largest child - return; - - value_type __top(_VSTD::move(*__start)); - do - { - // we are not in heap-order, swap the parent with it's largest child - *__start = _VSTD::move(*__child_i); - __start = __child_i; - - if ((__len - 2) / 2 < __child) - break; - - // recompute the child based off of the updated parent - __child = 2 * __child + 1; - __child_i = __first + __child; - - if ((__child + 1) < __len && __comp(*__child_i, *(__child_i + 1))) { - // right-child exists and is greater than left-child - ++__child_i; - ++__child; - } - - // check if we are in heap-order - } while (!__comp(*__child_i, __top)); - *__start = _VSTD::move(__top); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -__pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp, - typename iterator_traits<_RandomAccessIterator>::difference_type __len) -{ - if (__len > 1) - { - swap(*__first, *--__last); - __sift_down<_Compare>(__first, __last, __comp, __len - 1, __first); - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - __pop_heap<_Comp_ref>(__first, __last, __c, __last - __first); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - __pop_heap<_Comp_ref>(__first, __last, __comp, __last - __first); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) -{ - _VSTD::pop_heap(__first, __last, __less::value_type>()); -} - -// make_heap - -template -void -__make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) -{ - typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; - difference_type __n = __last - __first; - if (__n > 1) - { - // start from the first parent, there is no need to consider children - for (difference_type __start = (__n - 2) / 2; __start >= 0; --__start) - { - __sift_down<_Compare>(__first, __last, __comp, __n, __first + __start); - } - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - __make_heap<_Comp_ref>(__first, __last, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - __make_heap<_Comp_ref>(__first, __last, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) -{ - _VSTD::make_heap(__first, __last, __less::value_type>()); -} - -// sort_heap - -template -void -__sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) -{ - typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; - for (difference_type __n = __last - __first; __n > 1; --__last, --__n) - __pop_heap<_Compare>(__first, __last, __comp, __n); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - __sort_heap<_Comp_ref>(__first, __last, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - __sort_heap<_Comp_ref>(__first, __last, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) -{ - _VSTD::sort_heap(__first, __last, __less::value_type>()); -} - -// partial_sort - -template -void -__partial_sort(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, - _Compare __comp) -{ - __make_heap<_Compare>(__first, __middle, __comp); - typename iterator_traits<_RandomAccessIterator>::difference_type __len = __middle - __first; - for (_RandomAccessIterator __i = __middle; __i != __last; ++__i) - { - if (__comp(*__i, *__first)) - { - swap(*__i, *__first); - __sift_down<_Compare>(__first, __middle, __comp, __len, __first); - } - } - __sort_heap<_Compare>(__first, __middle, __comp); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -partial_sort(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, - _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - __partial_sort<_Comp_ref>(__first, __middle, __last, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - __partial_sort<_Comp_ref>(__first, __middle, __last, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -partial_sort(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last) -{ - _VSTD::partial_sort(__first, __middle, __last, - __less::value_type>()); -} - -// partial_sort_copy - -template -_RandomAccessIterator -__partial_sort_copy(_InputIterator __first, _InputIterator __last, - _RandomAccessIterator __result_first, _RandomAccessIterator __result_last, _Compare __comp) -{ - _RandomAccessIterator __r = __result_first; - if (__r != __result_last) - { - for (; __first != __last && __r != __result_last; (void) ++__first, ++__r) - *__r = *__first; - __make_heap<_Compare>(__result_first, __r, __comp); - typename iterator_traits<_RandomAccessIterator>::difference_type __len = __r - __result_first; - for (; __first != __last; ++__first) - if (__comp(*__first, *__result_first)) - { - *__result_first = *__first; - __sift_down<_Compare>(__result_first, __r, __comp, __len, __result_first); - } - __sort_heap<_Compare>(__result_first, __r, __comp); - } - return __r; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_RandomAccessIterator -partial_sort_copy(_InputIterator __first, _InputIterator __last, - _RandomAccessIterator __result_first, _RandomAccessIterator __result_last, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - return __partial_sort_copy<_Comp_ref>(__first, __last, __result_first, __result_last, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - return __partial_sort_copy<_Comp_ref>(__first, __last, __result_first, __result_last, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_RandomAccessIterator -partial_sort_copy(_InputIterator __first, _InputIterator __last, - _RandomAccessIterator __result_first, _RandomAccessIterator __result_last) -{ - return _VSTD::partial_sort_copy(__first, __last, __result_first, __result_last, - __less::value_type>()); -} - -// nth_element - -template -void -__nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Compare __comp) -{ - // _Compare is known to be a reference type - typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; - const difference_type __limit = 7; - while (true) - { - __restart: - if (__nth == __last) - return; - difference_type __len = __last - __first; - switch (__len) - { - case 0: - case 1: - return; - case 2: - if (__comp(*--__last, *__first)) - swap(*__first, *__last); - return; - case 3: - { - _RandomAccessIterator __m = __first; - _VSTD::__sort3<_Compare>(__first, ++__m, --__last, __comp); - return; - } - } - if (__len <= __limit) - { - __selection_sort<_Compare>(__first, __last, __comp); - return; - } - // __len > __limit >= 3 - _RandomAccessIterator __m = __first + __len/2; - _RandomAccessIterator __lm1 = __last; - unsigned __n_swaps = _VSTD::__sort3<_Compare>(__first, __m, --__lm1, __comp); - // *__m is median - // partition [__first, __m) < *__m and *__m <= [__m, __last) - // (this inhibits tossing elements equivalent to __m around unnecessarily) - _RandomAccessIterator __i = __first; - _RandomAccessIterator __j = __lm1; - // j points beyond range to be tested, *__lm1 is known to be <= *__m - // The search going up is known to be guarded but the search coming down isn't. - // Prime the downward search with a guard. - if (!__comp(*__i, *__m)) // if *__first == *__m - { - // *__first == *__m, *__first doesn't go in first part - // manually guard downward moving __j against __i - while (true) - { - if (__i == --__j) - { - // *__first == *__m, *__m <= all other elements - // Parition instead into [__first, __i) == *__first and *__first < [__i, __last) - ++__i; // __first + 1 - __j = __last; - if (!__comp(*__first, *--__j)) // we need a guard if *__first == *(__last-1) - { - while (true) - { - if (__i == __j) - return; // [__first, __last) all equivalent elements - if (__comp(*__first, *__i)) - { - swap(*__i, *__j); - ++__n_swaps; - ++__i; - break; - } - ++__i; - } - } - // [__first, __i) == *__first and *__first < [__j, __last) and __j == __last - 1 - if (__i == __j) - return; - while (true) - { - while (!__comp(*__first, *__i)) - ++__i; - while (__comp(*__first, *--__j)) - ; - if (__i >= __j) - break; - swap(*__i, *__j); - ++__n_swaps; - ++__i; - } - // [__first, __i) == *__first and *__first < [__i, __last) - // The first part is sorted, - if (__nth < __i) - return; - // __nth_element the secod part - // __nth_element<_Compare>(__i, __nth, __last, __comp); - __first = __i; - goto __restart; - } - if (__comp(*__j, *__m)) - { - swap(*__i, *__j); - ++__n_swaps; - break; // found guard for downward moving __j, now use unguarded partition - } - } - } - ++__i; - // j points beyond range to be tested, *__lm1 is known to be <= *__m - // if not yet partitioned... - if (__i < __j) - { - // known that *(__i - 1) < *__m - while (true) - { - // __m still guards upward moving __i - while (__comp(*__i, *__m)) - ++__i; - // It is now known that a guard exists for downward moving __j - while (!__comp(*--__j, *__m)) - ; - if (__i >= __j) - break; - swap(*__i, *__j); - ++__n_swaps; - // It is known that __m != __j - // If __m just moved, follow it - if (__m == __i) - __m = __j; - ++__i; - } - } - // [__first, __i) < *__m and *__m <= [__i, __last) - if (__i != __m && __comp(*__m, *__i)) - { - swap(*__i, *__m); - ++__n_swaps; - } - // [__first, __i) < *__i and *__i <= [__i+1, __last) - if (__nth == __i) - return; - if (__n_swaps == 0) - { - // We were given a perfectly partitioned sequence. Coincidence? - if (__nth < __i) - { - // Check for [__first, __i) already sorted - __j = __m = __first; - while (++__j != __i) - { - if (__comp(*__j, *__m)) - // not yet sorted, so sort - goto not_sorted; - __m = __j; - } - // [__first, __i) sorted - return; - } - else - { - // Check for [__i, __last) already sorted - __j = __m = __i; - while (++__j != __last) - { - if (__comp(*__j, *__m)) - // not yet sorted, so sort - goto not_sorted; - __m = __j; - } - // [__i, __last) sorted - return; - } - } -not_sorted: - // __nth_element on range containing __nth - if (__nth < __i) - { - // __nth_element<_Compare>(__first, __nth, __i, __comp); - __last = __i; - } - else - { - // __nth_element<_Compare>(__i+1, __nth, __last, __comp); - __first = ++__i; - } - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - __nth_element<_Comp_ref>(__first, __nth, __last, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - __nth_element<_Comp_ref>(__first, __nth, __last, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last) -{ - _VSTD::nth_element(__first, __nth, __last, __less::value_type>()); -} - -// includes - -template -bool -__includes(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, - _Compare __comp) -{ - for (; __first2 != __last2; ++__first1) - { - if (__first1 == __last1 || __comp(*__first2, *__first1)) - return false; - if (!__comp(*__first1, *__first2)) - ++__first2; - } - return true; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -includes(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, - _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - return __includes<_Comp_ref>(__first1, __last1, __first2, __last2, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - return __includes<_Comp_ref>(__first1, __last1, __first2, __last2, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -includes(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2) -{ - return _VSTD::includes(__first1, __last1, __first2, __last2, - __less::value_type, - typename iterator_traits<_InputIterator2>::value_type>()); -} - -// set_union - -template -_OutputIterator -__set_union(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) -{ - for (; __first1 != __last1; ++__result) - { - if (__first2 == __last2) - return _VSTD::copy(__first1, __last1, __result); - if (__comp(*__first2, *__first1)) - { - *__result = *__first2; - ++__first2; - } - else - { - *__result = *__first1; - if (!__comp(*__first1, *__first2)) - ++__first2; - ++__first1; - } - } - return _VSTD::copy(__first2, __last2, __result); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -set_union(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - return __set_union<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - return __set_union<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -set_union(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) -{ - return _VSTD::set_union(__first1, __last1, __first2, __last2, __result, - __less::value_type, - typename iterator_traits<_InputIterator2>::value_type>()); -} - -// set_intersection - -template -_OutputIterator -__set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) -{ - while (__first1 != __last1 && __first2 != __last2) - { - if (__comp(*__first1, *__first2)) - ++__first1; - else - { - if (!__comp(*__first2, *__first1)) - { - *__result = *__first1; - ++__result; - ++__first1; - } - ++__first2; - } - } - return __result; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - return __set_intersection<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - return __set_intersection<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) -{ - return _VSTD::set_intersection(__first1, __last1, __first2, __last2, __result, - __less::value_type, - typename iterator_traits<_InputIterator2>::value_type>()); -} - -// set_difference - -template -_OutputIterator -__set_difference(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) -{ - while (__first1 != __last1) - { - if (__first2 == __last2) - return _VSTD::copy(__first1, __last1, __result); - if (__comp(*__first1, *__first2)) - { - *__result = *__first1; - ++__result; - ++__first1; - } - else - { - if (!__comp(*__first2, *__first1)) - ++__first1; - ++__first2; - } - } - return __result; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -set_difference(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - return __set_difference<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - return __set_difference<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -set_difference(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) -{ - return _VSTD::set_difference(__first1, __last1, __first2, __last2, __result, - __less::value_type, - typename iterator_traits<_InputIterator2>::value_type>()); -} - -// set_symmetric_difference - -template -_OutputIterator -__set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) -{ - while (__first1 != __last1) - { - if (__first2 == __last2) - return _VSTD::copy(__first1, __last1, __result); - if (__comp(*__first1, *__first2)) - { - *__result = *__first1; - ++__result; - ++__first1; - } - else - { - if (__comp(*__first2, *__first1)) - { - *__result = *__first2; - ++__result; - } - else - ++__first1; - ++__first2; - } - } - return _VSTD::copy(__first2, __last2, __result); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - return __set_symmetric_difference<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - return __set_symmetric_difference<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_OutputIterator -set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) -{ - return _VSTD::set_symmetric_difference(__first1, __last1, __first2, __last2, __result, - __less::value_type, - typename iterator_traits<_InputIterator2>::value_type>()); -} - -// lexicographical_compare - -template -bool -__lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp) -{ - for (; __first2 != __last2; ++__first1, (void) ++__first2) - { - if (__first1 == __last1 || __comp(*__first1, *__first2)) - return true; - if (__comp(*__first2, *__first1)) - return false; - } - return false; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - return __lexicographical_compare<_Comp_ref>(__first1, __last1, __first2, __last2, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - return __lexicographical_compare<_Comp_ref>(__first1, __last1, __first2, __last2, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _InputIterator2 __last2) -{ - return _VSTD::lexicographical_compare(__first1, __last1, __first2, __last2, - __less::value_type, - typename iterator_traits<_InputIterator2>::value_type>()); -} - -// next_permutation - -template -bool -__next_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp) -{ - _BidirectionalIterator __i = __last; - if (__first == __last || __first == --__i) - return false; - while (true) - { - _BidirectionalIterator __ip1 = __i; - if (__comp(*--__i, *__ip1)) - { - _BidirectionalIterator __j = __last; - while (!__comp(*__i, *--__j)) - ; - swap(*__i, *__j); - _VSTD::reverse(__ip1, __last); - return true; - } - if (__i == __first) - { - _VSTD::reverse(__first, __last); - return false; - } - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -next_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - return __next_permutation<_Comp_ref>(__first, __last, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - return __next_permutation<_Comp_ref>(__first, __last, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -next_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last) -{ - return _VSTD::next_permutation(__first, __last, - __less::value_type>()); -} - -// prev_permutation - -template -bool -__prev_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp) -{ - _BidirectionalIterator __i = __last; - if (__first == __last || __first == --__i) - return false; - while (true) - { - _BidirectionalIterator __ip1 = __i; - if (__comp(*__ip1, *--__i)) - { - _BidirectionalIterator __j = __last; - while (!__comp(*--__j, *__i)) - ; - swap(*__i, *__j); - _VSTD::reverse(__ip1, __last); - return true; - } - if (__i == __first) - { - _VSTD::reverse(__first, __last); - return false; - } - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -prev_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp) -{ -#ifdef _LIBCPP_DEBUG - typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref; - __debug_less<_Compare> __c(__comp); - return __prev_permutation<_Comp_ref>(__first, __last, __c); -#else // _LIBCPP_DEBUG - typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; - return __prev_permutation<_Comp_ref>(__first, __last, __comp); -#endif // _LIBCPP_DEBUG -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -prev_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last) -{ - return _VSTD::prev_permutation(__first, __last, - __less::value_type>()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value, - _Tp ->::type -__rotate_left(_Tp __t, _Tp __n = 1) -{ - const unsigned __bits = static_cast(sizeof(_Tp) * __CHAR_BIT__ - 1); - __n &= __bits; - return static_cast<_Tp>((__t << __n) | (static_cast::type>(__t) >> (__bits - __n))); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value, - _Tp ->::type -__rotate_right(_Tp __t, _Tp __n = 1) -{ - const unsigned __bits = static_cast(sizeof(_Tp) * __CHAR_BIT__ - 1); - __n &= __bits; - return static_cast<_Tp>((__t << (__bits - __n)) | (static_cast::type>(__t) >> __n)); -} - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_ALGORITHM diff --git a/headers/libs/libc++/array b/headers/libs/libc++/array deleted file mode 100644 index 2e02a43ed5..0000000000 --- a/headers/libs/libc++/array +++ /dev/null @@ -1,331 +0,0 @@ -// -*- C++ -*- -//===---------------------------- array -----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_ARRAY -#define _LIBCPP_ARRAY - -/* - array synopsis - -namespace std -{ -template -struct array -{ - // types: - typedef T & reference; - typedef const T & const_reference; - typedef implementation defined iterator; - typedef implementation defined const_iterator; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef T value_type; - typedef T* pointer; - typedef const T* const_pointer; - typedef std::reverse_iterator reverse_iterator; - typedef std::reverse_iterator const_reverse_iterator; - - // No explicit construct/copy/destroy for aggregate type - void fill(const T& u); - void swap(array& a) noexcept(noexcept(swap(declval(), declval()))); - - // iterators: - iterator begin() noexcept; - const_iterator begin() const noexcept; - iterator end() noexcept; - const_iterator end() const noexcept; - - reverse_iterator rbegin() noexcept; - const_reverse_iterator rbegin() const noexcept; - reverse_iterator rend() noexcept; - const_reverse_iterator rend() const noexcept; - - const_iterator cbegin() const noexcept; - const_iterator cend() const noexcept; - const_reverse_iterator crbegin() const noexcept; - const_reverse_iterator crend() const noexcept; - - // capacity: - constexpr size_type size() const noexcept; - constexpr size_type max_size() const noexcept; - constexpr bool empty() const noexcept; - - // element access: - reference operator[](size_type n); - const_reference operator[](size_type n) const; // constexpr in C++14 - const_reference at(size_type n) const; // constexpr in C++14 - reference at(size_type n); - - reference front(); - const_reference front() const; // constexpr in C++14 - reference back(); - const_reference back() const; // constexpr in C++14 - - T* data() noexcept; - const T* data() const noexcept; -}; - -template - bool operator==(const array& x, const array& y); -template - bool operator!=(const array& x, const array& y); -template - bool operator<(const array& x, const array& y); -template - bool operator>(const array& x, const array& y); -template - bool operator<=(const array& x, const array& y); -template - bool operator>=(const array& x, const array& y); - -template - void swap(array& x, array& y) noexcept(noexcept(x.swap(y))); - -template class tuple_size; -template class tuple_element; -template struct tuple_size>; -template struct tuple_element>; -template T& get(array&) noexcept; // constexpr in C++14 -template const T& get(const array&) noexcept; // constexpr in C++14 -template T&& get(array&&) noexcept; // constexpr in C++14 - -} // std - -*/ - -#include <__config> -#include <__tuple> -#include -#include -#include -#include -#include -#if defined(_LIBCPP_NO_EXCEPTIONS) - #include -#endif - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -template -struct _LIBCPP_TYPE_VIS_ONLY array -{ - // types: - typedef array __self; - typedef _Tp value_type; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef value_type* iterator; - typedef const value_type* const_iterator; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef std::reverse_iterator reverse_iterator; - typedef std::reverse_iterator const_reverse_iterator; - - value_type __elems_[_Size > 0 ? _Size : 1]; - - // No explicit construct/copy/destroy for aggregate type - _LIBCPP_INLINE_VISIBILITY void fill(const value_type& __u) - {_VSTD::fill_n(__elems_, _Size, __u);} - _LIBCPP_INLINE_VISIBILITY - void swap(array& __a) _NOEXCEPT_(__is_nothrow_swappable<_Tp>::value) - {_VSTD::swap_ranges(__elems_, __elems_ + _Size, __a.__elems_);} - - // iterators: - _LIBCPP_INLINE_VISIBILITY - iterator begin() _NOEXCEPT {return iterator(__elems_);} - _LIBCPP_INLINE_VISIBILITY - const_iterator begin() const _NOEXCEPT {return const_iterator(__elems_);} - _LIBCPP_INLINE_VISIBILITY - iterator end() _NOEXCEPT {return iterator(__elems_ + _Size);} - _LIBCPP_INLINE_VISIBILITY - const_iterator end() const _NOEXCEPT {return const_iterator(__elems_ + _Size);} - - _LIBCPP_INLINE_VISIBILITY - reverse_iterator rbegin() _NOEXCEPT {return reverse_iterator(end());} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator rbegin() const _NOEXCEPT {return const_reverse_iterator(end());} - _LIBCPP_INLINE_VISIBILITY - reverse_iterator rend() _NOEXCEPT {return reverse_iterator(begin());} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator rend() const _NOEXCEPT {return const_reverse_iterator(begin());} - - _LIBCPP_INLINE_VISIBILITY - const_iterator cbegin() const _NOEXCEPT {return begin();} - _LIBCPP_INLINE_VISIBILITY - const_iterator cend() const _NOEXCEPT {return end();} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator crbegin() const _NOEXCEPT {return rbegin();} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator crend() const _NOEXCEPT {return rend();} - - // capacity: - _LIBCPP_INLINE_VISIBILITY - _LIBCPP_CONSTEXPR size_type size() const _NOEXCEPT {return _Size;} - _LIBCPP_INLINE_VISIBILITY - _LIBCPP_CONSTEXPR size_type max_size() const _NOEXCEPT {return _Size;} - _LIBCPP_INLINE_VISIBILITY - _LIBCPP_CONSTEXPR bool empty() const _NOEXCEPT {return _Size == 0;} - - // element access: - _LIBCPP_INLINE_VISIBILITY reference operator[](size_type __n) {return __elems_[__n];} - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 const_reference operator[](size_type __n) const {return __elems_[__n];} - reference at(size_type __n); - _LIBCPP_CONSTEXPR_AFTER_CXX11 const_reference at(size_type __n) const; - - _LIBCPP_INLINE_VISIBILITY reference front() {return __elems_[0];} - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 const_reference front() const {return __elems_[0];} - _LIBCPP_INLINE_VISIBILITY reference back() {return __elems_[_Size > 0 ? _Size-1 : 0];} - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 const_reference back() const {return __elems_[_Size > 0 ? _Size-1 : 0];} - - _LIBCPP_INLINE_VISIBILITY - value_type* data() _NOEXCEPT {return __elems_;} - _LIBCPP_INLINE_VISIBILITY - const value_type* data() const _NOEXCEPT {return __elems_;} -}; - -template -typename array<_Tp, _Size>::reference -array<_Tp, _Size>::at(size_type __n) -{ - if (__n >= _Size) -#ifndef _LIBCPP_NO_EXCEPTIONS - throw out_of_range("array::at"); -#else - assert(!"array::at out_of_range"); -#endif - return __elems_[__n]; -} - -template -_LIBCPP_CONSTEXPR_AFTER_CXX11 -typename array<_Tp, _Size>::const_reference -array<_Tp, _Size>::at(size_type __n) const -{ - if (__n >= _Size) -#ifndef _LIBCPP_NO_EXCEPTIONS - throw out_of_range("array::at"); -#else - assert(!"array::at out_of_range"); -#endif - return __elems_[__n]; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator==(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y) -{ - return _VSTD::equal(__x.__elems_, __x.__elems_ + _Size, __y.__elems_); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y) -{ - return !(__x == __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator<(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y) -{ - return _VSTD::lexicographical_compare(__x.__elems_, __x.__elems_ + _Size, __y.__elems_, __y.__elems_ + _Size); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator>(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y) -{ - return __y < __x; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator<=(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y) -{ - return !(__y < __x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator>=(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y) -{ - return !(__x < __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - __is_swappable<_Tp>::value, - void ->::type -swap(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y) - _NOEXCEPT_(__is_nothrow_swappable<_Tp>::value) -{ - __x.swap(__y); -} - -template -class _LIBCPP_TYPE_VIS_ONLY tuple_size > - : public integral_constant {}; - -template -class _LIBCPP_TYPE_VIS_ONLY tuple_element<_Ip, array<_Tp, _Size> > -{ -public: - typedef _Tp type; -}; - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -_Tp& -get(array<_Tp, _Size>& __a) _NOEXCEPT -{ - static_assert(_Ip < _Size, "Index out of bounds in std::get<> (std::array)"); - return __a.__elems_[_Ip]; -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -const _Tp& -get(const array<_Tp, _Size>& __a) _NOEXCEPT -{ - static_assert(_Ip < _Size, "Index out of bounds in std::get<> (const std::array)"); - return __a.__elems_[_Ip]; -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -_Tp&& -get(array<_Tp, _Size>&& __a) _NOEXCEPT -{ - static_assert(_Ip < _Size, "Index out of bounds in std::get<> (std::array &&)"); - return _VSTD::move(__a.__elems_[_Ip]); -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_ARRAY diff --git a/headers/libs/libc++/atomic b/headers/libs/libc++/atomic deleted file mode 100644 index b5d5a27b04..0000000000 --- a/headers/libs/libc++/atomic +++ /dev/null @@ -1,1799 +0,0 @@ -// -*- C++ -*- -//===--------------------------- atomic -----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_ATOMIC -#define _LIBCPP_ATOMIC - -/* - atomic synopsis - -namespace std -{ - -// order and consistency - -typedef enum memory_order -{ - memory_order_relaxed, - memory_order_consume, // load-consume - memory_order_acquire, // load-acquire - memory_order_release, // store-release - memory_order_acq_rel, // store-release load-acquire - memory_order_seq_cst // store-release load-acquire -} memory_order; - -template T kill_dependency(T y) noexcept; - -// lock-free property - -#define ATOMIC_BOOL_LOCK_FREE unspecified -#define ATOMIC_CHAR_LOCK_FREE unspecified -#define ATOMIC_CHAR16_T_LOCK_FREE unspecified -#define ATOMIC_CHAR32_T_LOCK_FREE unspecified -#define ATOMIC_WCHAR_T_LOCK_FREE unspecified -#define ATOMIC_SHORT_LOCK_FREE unspecified -#define ATOMIC_INT_LOCK_FREE unspecified -#define ATOMIC_LONG_LOCK_FREE unspecified -#define ATOMIC_LLONG_LOCK_FREE unspecified -#define ATOMIC_POINTER_LOCK_FREE unspecified - -// flag type and operations - -typedef struct atomic_flag -{ - bool test_and_set(memory_order m = memory_order_seq_cst) volatile noexcept; - bool test_and_set(memory_order m = memory_order_seq_cst) noexcept; - void clear(memory_order m = memory_order_seq_cst) volatile noexcept; - void clear(memory_order m = memory_order_seq_cst) noexcept; - atomic_flag() noexcept = default; - atomic_flag(const atomic_flag&) = delete; - atomic_flag& operator=(const atomic_flag&) = delete; - atomic_flag& operator=(const atomic_flag&) volatile = delete; -} atomic_flag; - -bool - atomic_flag_test_and_set(volatile atomic_flag* obj) noexcept; - -bool - atomic_flag_test_and_set(atomic_flag* obj) noexcept; - -bool - atomic_flag_test_and_set_explicit(volatile atomic_flag* obj, - memory_order m) noexcept; - -bool - atomic_flag_test_and_set_explicit(atomic_flag* obj, memory_order m) noexcept; - -void - atomic_flag_clear(volatile atomic_flag* obj) noexcept; - -void - atomic_flag_clear(atomic_flag* obj) noexcept; - -void - atomic_flag_clear_explicit(volatile atomic_flag* obj, memory_order m) noexcept; - -void - atomic_flag_clear_explicit(atomic_flag* obj, memory_order m) noexcept; - -#define ATOMIC_FLAG_INIT see below -#define ATOMIC_VAR_INIT(value) see below - -template -struct atomic -{ - bool is_lock_free() const volatile noexcept; - bool is_lock_free() const noexcept; - void store(T desr, memory_order m = memory_order_seq_cst) volatile noexcept; - void store(T desr, memory_order m = memory_order_seq_cst) noexcept; - T load(memory_order m = memory_order_seq_cst) const volatile noexcept; - T load(memory_order m = memory_order_seq_cst) const noexcept; - operator T() const volatile noexcept; - operator T() const noexcept; - T exchange(T desr, memory_order m = memory_order_seq_cst) volatile noexcept; - T exchange(T desr, memory_order m = memory_order_seq_cst) noexcept; - bool compare_exchange_weak(T& expc, T desr, - memory_order s, memory_order f) volatile noexcept; - bool compare_exchange_weak(T& expc, T desr, memory_order s, memory_order f) noexcept; - bool compare_exchange_strong(T& expc, T desr, - memory_order s, memory_order f) volatile noexcept; - bool compare_exchange_strong(T& expc, T desr, - memory_order s, memory_order f) noexcept; - bool compare_exchange_weak(T& expc, T desr, - memory_order m = memory_order_seq_cst) volatile noexcept; - bool compare_exchange_weak(T& expc, T desr, - memory_order m = memory_order_seq_cst) noexcept; - bool compare_exchange_strong(T& expc, T desr, - memory_order m = memory_order_seq_cst) volatile noexcept; - bool compare_exchange_strong(T& expc, T desr, - memory_order m = memory_order_seq_cst) noexcept; - - atomic() noexcept = default; - constexpr atomic(T desr) noexcept; - atomic(const atomic&) = delete; - atomic& operator=(const atomic&) = delete; - atomic& operator=(const atomic&) volatile = delete; - T operator=(T) volatile noexcept; - T operator=(T) noexcept; -}; - -template <> -struct atomic -{ - bool is_lock_free() const volatile noexcept; - bool is_lock_free() const noexcept; - void store(integral desr, memory_order m = memory_order_seq_cst) volatile noexcept; - void store(integral desr, memory_order m = memory_order_seq_cst) noexcept; - integral load(memory_order m = memory_order_seq_cst) const volatile noexcept; - integral load(memory_order m = memory_order_seq_cst) const noexcept; - operator integral() const volatile noexcept; - operator integral() const noexcept; - integral exchange(integral desr, - memory_order m = memory_order_seq_cst) volatile noexcept; - integral exchange(integral desr, memory_order m = memory_order_seq_cst) noexcept; - bool compare_exchange_weak(integral& expc, integral desr, - memory_order s, memory_order f) volatile noexcept; - bool compare_exchange_weak(integral& expc, integral desr, - memory_order s, memory_order f) noexcept; - bool compare_exchange_strong(integral& expc, integral desr, - memory_order s, memory_order f) volatile noexcept; - bool compare_exchange_strong(integral& expc, integral desr, - memory_order s, memory_order f) noexcept; - bool compare_exchange_weak(integral& expc, integral desr, - memory_order m = memory_order_seq_cst) volatile noexcept; - bool compare_exchange_weak(integral& expc, integral desr, - memory_order m = memory_order_seq_cst) noexcept; - bool compare_exchange_strong(integral& expc, integral desr, - memory_order m = memory_order_seq_cst) volatile noexcept; - bool compare_exchange_strong(integral& expc, integral desr, - memory_order m = memory_order_seq_cst) noexcept; - - integral - fetch_add(integral op, memory_order m = memory_order_seq_cst) volatile noexcept; - integral fetch_add(integral op, memory_order m = memory_order_seq_cst) noexcept; - integral - fetch_sub(integral op, memory_order m = memory_order_seq_cst) volatile noexcept; - integral fetch_sub(integral op, memory_order m = memory_order_seq_cst) noexcept; - integral - fetch_and(integral op, memory_order m = memory_order_seq_cst) volatile noexcept; - integral fetch_and(integral op, memory_order m = memory_order_seq_cst) noexcept; - integral - fetch_or(integral op, memory_order m = memory_order_seq_cst) volatile noexcept; - integral fetch_or(integral op, memory_order m = memory_order_seq_cst) noexcept; - integral - fetch_xor(integral op, memory_order m = memory_order_seq_cst) volatile noexcept; - integral fetch_xor(integral op, memory_order m = memory_order_seq_cst) noexcept; - - atomic() noexcept = default; - constexpr atomic(integral desr) noexcept; - atomic(const atomic&) = delete; - atomic& operator=(const atomic&) = delete; - atomic& operator=(const atomic&) volatile = delete; - integral operator=(integral desr) volatile noexcept; - integral operator=(integral desr) noexcept; - - integral operator++(int) volatile noexcept; - integral operator++(int) noexcept; - integral operator--(int) volatile noexcept; - integral operator--(int) noexcept; - integral operator++() volatile noexcept; - integral operator++() noexcept; - integral operator--() volatile noexcept; - integral operator--() noexcept; - integral operator+=(integral op) volatile noexcept; - integral operator+=(integral op) noexcept; - integral operator-=(integral op) volatile noexcept; - integral operator-=(integral op) noexcept; - integral operator&=(integral op) volatile noexcept; - integral operator&=(integral op) noexcept; - integral operator|=(integral op) volatile noexcept; - integral operator|=(integral op) noexcept; - integral operator^=(integral op) volatile noexcept; - integral operator^=(integral op) noexcept; -}; - -template -struct atomic -{ - bool is_lock_free() const volatile noexcept; - bool is_lock_free() const noexcept; - void store(T* desr, memory_order m = memory_order_seq_cst) volatile noexcept; - void store(T* desr, memory_order m = memory_order_seq_cst) noexcept; - T* load(memory_order m = memory_order_seq_cst) const volatile noexcept; - T* load(memory_order m = memory_order_seq_cst) const noexcept; - operator T*() const volatile noexcept; - operator T*() const noexcept; - T* exchange(T* desr, memory_order m = memory_order_seq_cst) volatile noexcept; - T* exchange(T* desr, memory_order m = memory_order_seq_cst) noexcept; - bool compare_exchange_weak(T*& expc, T* desr, - memory_order s, memory_order f) volatile noexcept; - bool compare_exchange_weak(T*& expc, T* desr, - memory_order s, memory_order f) noexcept; - bool compare_exchange_strong(T*& expc, T* desr, - memory_order s, memory_order f) volatile noexcept; - bool compare_exchange_strong(T*& expc, T* desr, - memory_order s, memory_order f) noexcept; - bool compare_exchange_weak(T*& expc, T* desr, - memory_order m = memory_order_seq_cst) volatile noexcept; - bool compare_exchange_weak(T*& expc, T* desr, - memory_order m = memory_order_seq_cst) noexcept; - bool compare_exchange_strong(T*& expc, T* desr, - memory_order m = memory_order_seq_cst) volatile noexcept; - bool compare_exchange_strong(T*& expc, T* desr, - memory_order m = memory_order_seq_cst) noexcept; - T* fetch_add(ptrdiff_t op, memory_order m = memory_order_seq_cst) volatile noexcept; - T* fetch_add(ptrdiff_t op, memory_order m = memory_order_seq_cst) noexcept; - T* fetch_sub(ptrdiff_t op, memory_order m = memory_order_seq_cst) volatile noexcept; - T* fetch_sub(ptrdiff_t op, memory_order m = memory_order_seq_cst) noexcept; - - atomic() noexcept = default; - constexpr atomic(T* desr) noexcept; - atomic(const atomic&) = delete; - atomic& operator=(const atomic&) = delete; - atomic& operator=(const atomic&) volatile = delete; - - T* operator=(T*) volatile noexcept; - T* operator=(T*) noexcept; - T* operator++(int) volatile noexcept; - T* operator++(int) noexcept; - T* operator--(int) volatile noexcept; - T* operator--(int) noexcept; - T* operator++() volatile noexcept; - T* operator++() noexcept; - T* operator--() volatile noexcept; - T* operator--() noexcept; - T* operator+=(ptrdiff_t op) volatile noexcept; - T* operator+=(ptrdiff_t op) noexcept; - T* operator-=(ptrdiff_t op) volatile noexcept; - T* operator-=(ptrdiff_t op) noexcept; -}; - - -template - bool - atomic_is_lock_free(const volatile atomic* obj) noexcept; - -template - bool - atomic_is_lock_free(const atomic* obj) noexcept; - -template - void - atomic_init(volatile atomic* obj, T desr) noexcept; - -template - void - atomic_init(atomic* obj, T desr) noexcept; - -template - void - atomic_store(volatile atomic* obj, T desr) noexcept; - -template - void - atomic_store(atomic* obj, T desr) noexcept; - -template - void - atomic_store_explicit(volatile atomic* obj, T desr, memory_order m) noexcept; - -template - void - atomic_store_explicit(atomic* obj, T desr, memory_order m) noexcept; - -template - T - atomic_load(const volatile atomic* obj) noexcept; - -template - T - atomic_load(const atomic* obj) noexcept; - -template - T - atomic_load_explicit(const volatile atomic* obj, memory_order m) noexcept; - -template - T - atomic_load_explicit(const atomic* obj, memory_order m) noexcept; - -template - T - atomic_exchange(volatile atomic* obj, T desr) noexcept; - -template - T - atomic_exchange(atomic* obj, T desr) noexcept; - -template - T - atomic_exchange_explicit(volatile atomic* obj, T desr, memory_order m) noexcept; - -template - T - atomic_exchange_explicit(atomic* obj, T desr, memory_order m) noexcept; - -template - bool - atomic_compare_exchange_weak(volatile atomic* obj, T* expc, T desr) noexcept; - -template - bool - atomic_compare_exchange_weak(atomic* obj, T* expc, T desr) noexcept; - -template - bool - atomic_compare_exchange_strong(volatile atomic* obj, T* expc, T desr) noexcept; - -template - bool - atomic_compare_exchange_strong(atomic* obj, T* expc, T desr) noexcept; - -template - bool - atomic_compare_exchange_weak_explicit(volatile atomic* obj, T* expc, - T desr, - memory_order s, memory_order f) noexcept; - -template - bool - atomic_compare_exchange_weak_explicit(atomic* obj, T* expc, T desr, - memory_order s, memory_order f) noexcept; - -template - bool - atomic_compare_exchange_strong_explicit(volatile atomic* obj, - T* expc, T desr, - memory_order s, memory_order f) noexcept; - -template - bool - atomic_compare_exchange_strong_explicit(atomic* obj, T* expc, - T desr, - memory_order s, memory_order f) noexcept; - -template - Integral - atomic_fetch_add(volatile atomic* obj, Integral op) noexcept; - -template - Integral - atomic_fetch_add(atomic* obj, Integral op) noexcept; - -template - Integral - atomic_fetch_add_explicit(volatile atomic* obj, Integral op, - memory_order m) noexcept; -template - Integral - atomic_fetch_add_explicit(atomic* obj, Integral op, - memory_order m) noexcept; -template - Integral - atomic_fetch_sub(volatile atomic* obj, Integral op) noexcept; - -template - Integral - atomic_fetch_sub(atomic* obj, Integral op) noexcept; - -template - Integral - atomic_fetch_sub_explicit(volatile atomic* obj, Integral op, - memory_order m) noexcept; -template - Integral - atomic_fetch_sub_explicit(atomic* obj, Integral op, - memory_order m) noexcept; -template - Integral - atomic_fetch_and(volatile atomic* obj, Integral op) noexcept; - -template - Integral - atomic_fetch_and(atomic* obj, Integral op) noexcept; - -template - Integral - atomic_fetch_and_explicit(volatile atomic* obj, Integral op, - memory_order m) noexcept; -template - Integral - atomic_fetch_and_explicit(atomic* obj, Integral op, - memory_order m) noexcept; -template - Integral - atomic_fetch_or(volatile atomic* obj, Integral op) noexcept; - -template - Integral - atomic_fetch_or(atomic* obj, Integral op) noexcept; - -template - Integral - atomic_fetch_or_explicit(volatile atomic* obj, Integral op, - memory_order m) noexcept; -template - Integral - atomic_fetch_or_explicit(atomic* obj, Integral op, - memory_order m) noexcept; -template - Integral - atomic_fetch_xor(volatile atomic* obj, Integral op) noexcept; - -template - Integral - atomic_fetch_xor(atomic* obj, Integral op) noexcept; - -template - Integral - atomic_fetch_xor_explicit(volatile atomic* obj, Integral op, - memory_order m) noexcept; -template - Integral - atomic_fetch_xor_explicit(atomic* obj, Integral op, - memory_order m) noexcept; - -template - T* - atomic_fetch_add(volatile atomic* obj, ptrdiff_t op) noexcept; - -template - T* - atomic_fetch_add(atomic* obj, ptrdiff_t op) noexcept; - -template - T* - atomic_fetch_add_explicit(volatile atomic* obj, ptrdiff_t op, - memory_order m) noexcept; -template - T* - atomic_fetch_add_explicit(atomic* obj, ptrdiff_t op, memory_order m) noexcept; - -template - T* - atomic_fetch_sub(volatile atomic* obj, ptrdiff_t op) noexcept; - -template - T* - atomic_fetch_sub(atomic* obj, ptrdiff_t op) noexcept; - -template - T* - atomic_fetch_sub_explicit(volatile atomic* obj, ptrdiff_t op, - memory_order m) noexcept; -template - T* - atomic_fetch_sub_explicit(atomic* obj, ptrdiff_t op, memory_order m) noexcept; - -// Atomics for standard typedef types - -typedef atomic atomic_bool; -typedef atomic atomic_char; -typedef atomic atomic_schar; -typedef atomic atomic_uchar; -typedef atomic atomic_short; -typedef atomic atomic_ushort; -typedef atomic atomic_int; -typedef atomic atomic_uint; -typedef atomic atomic_long; -typedef atomic atomic_ulong; -typedef atomic atomic_llong; -typedef atomic atomic_ullong; -typedef atomic atomic_char16_t; -typedef atomic atomic_char32_t; -typedef atomic atomic_wchar_t; - -typedef atomic atomic_int_least8_t; -typedef atomic atomic_uint_least8_t; -typedef atomic atomic_int_least16_t; -typedef atomic atomic_uint_least16_t; -typedef atomic atomic_int_least32_t; -typedef atomic atomic_uint_least32_t; -typedef atomic atomic_int_least64_t; -typedef atomic atomic_uint_least64_t; - -typedef atomic atomic_int_fast8_t; -typedef atomic atomic_uint_fast8_t; -typedef atomic atomic_int_fast16_t; -typedef atomic atomic_uint_fast16_t; -typedef atomic atomic_int_fast32_t; -typedef atomic atomic_uint_fast32_t; -typedef atomic atomic_int_fast64_t; -typedef atomic atomic_uint_fast64_t; - -typedef atomic atomic_intptr_t; -typedef atomic atomic_uintptr_t; -typedef atomic atomic_size_t; -typedef atomic atomic_ptrdiff_t; -typedef atomic atomic_intmax_t; -typedef atomic atomic_uintmax_t; - -// fences - -void atomic_thread_fence(memory_order m) noexcept; -void atomic_signal_fence(memory_order m) noexcept; - -} // std - -*/ - -#include <__config> -#include -#include -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#ifdef _LIBCPP_HAS_NO_THREADS -#error is not supported on this single threaded system -#endif -#if !defined(_LIBCPP_HAS_C_ATOMIC_IMP) && !defined(_LIBCPP_HAS_GCC_ATOMIC_IMP) -#error is not implemented -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -typedef enum memory_order -{ - memory_order_relaxed, memory_order_consume, memory_order_acquire, - memory_order_release, memory_order_acq_rel, memory_order_seq_cst -} memory_order; - -#if defined(_LIBCPP_HAS_GCC_ATOMIC_IMP) -namespace __gcc_atomic { -template -struct __gcc_atomic_t { - _LIBCPP_INLINE_VISIBILITY -#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS - __gcc_atomic_t() _NOEXCEPT = default; -#else - __gcc_atomic_t() _NOEXCEPT : __a_value() {} -#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS - _LIBCPP_CONSTEXPR explicit __gcc_atomic_t(_Tp value) _NOEXCEPT - : __a_value(value) {} - _Tp __a_value; -}; -#define _Atomic(x) __gcc_atomic::__gcc_atomic_t - -template _Tp __create(); - -template -typename enable_if__a_value = __create<_Td>()), char>::type - __test_atomic_assignable(int); -template -__two __test_atomic_assignable(...); - -template -struct __can_assign { - static const bool value = - sizeof(__test_atomic_assignable<_Tp, _Td>(1)) == sizeof(char); -}; - -static inline _LIBCPP_CONSTEXPR int __to_gcc_order(memory_order __order) { - // Avoid switch statement to make this a constexpr. - return __order == memory_order_relaxed ? __ATOMIC_RELAXED: - (__order == memory_order_acquire ? __ATOMIC_ACQUIRE: - (__order == memory_order_release ? __ATOMIC_RELEASE: - (__order == memory_order_seq_cst ? __ATOMIC_SEQ_CST: - (__order == memory_order_acq_rel ? __ATOMIC_ACQ_REL: - __ATOMIC_CONSUME)))); -} - -static inline _LIBCPP_CONSTEXPR int __to_gcc_failure_order(memory_order __order) { - // Avoid switch statement to make this a constexpr. - return __order == memory_order_relaxed ? __ATOMIC_RELAXED: - (__order == memory_order_acquire ? __ATOMIC_ACQUIRE: - (__order == memory_order_release ? __ATOMIC_RELAXED: - (__order == memory_order_seq_cst ? __ATOMIC_SEQ_CST: - (__order == memory_order_acq_rel ? __ATOMIC_ACQUIRE: - __ATOMIC_CONSUME)))); -} - -} // namespace __gcc_atomic - -template -static inline -typename enable_if< - __gcc_atomic::__can_assign::value>::type -__c11_atomic_init(volatile _Atomic(_Tp)* __a, _Tp __val) { - __a->__a_value = __val; -} - -template -static inline -typename enable_if< - !__gcc_atomic::__can_assign::value && - __gcc_atomic::__can_assign< _Atomic(_Tp)*, _Tp>::value>::type -__c11_atomic_init(volatile _Atomic(_Tp)* __a, _Tp __val) { - // [atomics.types.generic]p1 guarantees _Tp is trivially copyable. Because - // the default operator= in an object is not volatile, a byte-by-byte copy - // is required. - volatile char* to = reinterpret_cast(&__a->__a_value); - volatile char* end = to + sizeof(_Tp); - char* from = reinterpret_cast(&__val); - while (to != end) { - *to++ = *from++; - } -} - -template -static inline void __c11_atomic_init(_Atomic(_Tp)* __a, _Tp __val) { - __a->__a_value = __val; -} - -static inline void __c11_atomic_thread_fence(memory_order __order) { - __atomic_thread_fence(__gcc_atomic::__to_gcc_order(__order)); -} - -static inline void __c11_atomic_signal_fence(memory_order __order) { - __atomic_signal_fence(__gcc_atomic::__to_gcc_order(__order)); -} - -template -static inline void __c11_atomic_store(volatile _Atomic(_Tp)* __a, _Tp __val, - memory_order __order) { - return __atomic_store(&__a->__a_value, &__val, - __gcc_atomic::__to_gcc_order(__order)); -} - -template -static inline void __c11_atomic_store(_Atomic(_Tp)* __a, _Tp __val, - memory_order __order) { - __atomic_store(&__a->__a_value, &__val, - __gcc_atomic::__to_gcc_order(__order)); -} - -template -static inline _Tp __c11_atomic_load(volatile _Atomic(_Tp)* __a, - memory_order __order) { - _Tp __ret; - __atomic_load(&__a->__a_value, &__ret, - __gcc_atomic::__to_gcc_order(__order)); - return __ret; -} - -template -static inline _Tp __c11_atomic_load(_Atomic(_Tp)* __a, memory_order __order) { - _Tp __ret; - __atomic_load(&__a->__a_value, &__ret, - __gcc_atomic::__to_gcc_order(__order)); - return __ret; -} - -template -static inline _Tp __c11_atomic_exchange(volatile _Atomic(_Tp)* __a, - _Tp __value, memory_order __order) { - _Tp __ret; - __atomic_exchange(&__a->__a_value, &__value, &__ret, - __gcc_atomic::__to_gcc_order(__order)); - return __ret; -} - -template -static inline _Tp __c11_atomic_exchange(_Atomic(_Tp)* __a, _Tp __value, - memory_order __order) { - _Tp __ret; - __atomic_exchange(&__a->__a_value, &__value, &__ret, - __gcc_atomic::__to_gcc_order(__order)); - return __ret; -} - -template -static inline bool __c11_atomic_compare_exchange_strong( - volatile _Atomic(_Tp)* __a, _Tp* __expected, _Tp __value, - memory_order __success, memory_order __failure) { - return __atomic_compare_exchange(&__a->__a_value, __expected, &__value, - false, - __gcc_atomic::__to_gcc_order(__success), - __gcc_atomic::__to_gcc_failure_order(__failure)); -} - -template -static inline bool __c11_atomic_compare_exchange_strong( - _Atomic(_Tp)* __a, _Tp* __expected, _Tp __value, memory_order __success, - memory_order __failure) { - return __atomic_compare_exchange(&__a->__a_value, __expected, &__value, - false, - __gcc_atomic::__to_gcc_order(__success), - __gcc_atomic::__to_gcc_failure_order(__failure)); -} - -template -static inline bool __c11_atomic_compare_exchange_weak( - volatile _Atomic(_Tp)* __a, _Tp* __expected, _Tp __value, - memory_order __success, memory_order __failure) { - return __atomic_compare_exchange(&__a->__a_value, __expected, &__value, - true, - __gcc_atomic::__to_gcc_order(__success), - __gcc_atomic::__to_gcc_failure_order(__failure)); -} - -template -static inline bool __c11_atomic_compare_exchange_weak( - _Atomic(_Tp)* __a, _Tp* __expected, _Tp __value, memory_order __success, - memory_order __failure) { - return __atomic_compare_exchange(&__a->__a_value, __expected, &__value, - true, - __gcc_atomic::__to_gcc_order(__success), - __gcc_atomic::__to_gcc_failure_order(__failure)); -} - -template -struct __skip_amt { enum {value = 1}; }; - -template -struct __skip_amt<_Tp*> { enum {value = sizeof(_Tp)}; }; - -// FIXME: Haven't figured out what the spec says about using arrays with -// atomic_fetch_add. Force a failure rather than creating bad behavior. -template -struct __skip_amt<_Tp[]> { }; -template -struct __skip_amt<_Tp[n]> { }; - -template -static inline _Tp __c11_atomic_fetch_add(volatile _Atomic(_Tp)* __a, - _Td __delta, memory_order __order) { - return __atomic_fetch_add(&__a->__a_value, __delta * __skip_amt<_Tp>::value, - __gcc_atomic::__to_gcc_order(__order)); -} - -template -static inline _Tp __c11_atomic_fetch_add(_Atomic(_Tp)* __a, _Td __delta, - memory_order __order) { - return __atomic_fetch_add(&__a->__a_value, __delta * __skip_amt<_Tp>::value, - __gcc_atomic::__to_gcc_order(__order)); -} - -template -static inline _Tp __c11_atomic_fetch_sub(volatile _Atomic(_Tp)* __a, - _Td __delta, memory_order __order) { - return __atomic_fetch_sub(&__a->__a_value, __delta * __skip_amt<_Tp>::value, - __gcc_atomic::__to_gcc_order(__order)); -} - -template -static inline _Tp __c11_atomic_fetch_sub(_Atomic(_Tp)* __a, _Td __delta, - memory_order __order) { - return __atomic_fetch_sub(&__a->__a_value, __delta * __skip_amt<_Tp>::value, - __gcc_atomic::__to_gcc_order(__order)); -} - -template -static inline _Tp __c11_atomic_fetch_and(volatile _Atomic(_Tp)* __a, - _Tp __pattern, memory_order __order) { - return __atomic_fetch_and(&__a->__a_value, __pattern, - __gcc_atomic::__to_gcc_order(__order)); -} - -template -static inline _Tp __c11_atomic_fetch_and(_Atomic(_Tp)* __a, - _Tp __pattern, memory_order __order) { - return __atomic_fetch_and(&__a->__a_value, __pattern, - __gcc_atomic::__to_gcc_order(__order)); -} - -template -static inline _Tp __c11_atomic_fetch_or(volatile _Atomic(_Tp)* __a, - _Tp __pattern, memory_order __order) { - return __atomic_fetch_or(&__a->__a_value, __pattern, - __gcc_atomic::__to_gcc_order(__order)); -} - -template -static inline _Tp __c11_atomic_fetch_or(_Atomic(_Tp)* __a, _Tp __pattern, - memory_order __order) { - return __atomic_fetch_or(&__a->__a_value, __pattern, - __gcc_atomic::__to_gcc_order(__order)); -} - -template -static inline _Tp __c11_atomic_fetch_xor(volatile _Atomic(_Tp)* __a, - _Tp __pattern, memory_order __order) { - return __atomic_fetch_xor(&__a->__a_value, __pattern, - __gcc_atomic::__to_gcc_order(__order)); -} - -template -static inline _Tp __c11_atomic_fetch_xor(_Atomic(_Tp)* __a, _Tp __pattern, - memory_order __order) { - return __atomic_fetch_xor(&__a->__a_value, __pattern, - __gcc_atomic::__to_gcc_order(__order)); -} -#endif // _LIBCPP_HAS_GCC_ATOMIC_IMP - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp -kill_dependency(_Tp __y) _NOEXCEPT -{ - return __y; -} - -// general atomic - -template ::value && !is_same<_Tp, bool>::value> -struct __atomic_base // false -{ - mutable _Atomic(_Tp) __a_; - - _LIBCPP_INLINE_VISIBILITY - bool is_lock_free() const volatile _NOEXCEPT - { -#if defined(_LIBCPP_HAS_C_ATOMIC_IMP) - return __c11_atomic_is_lock_free(sizeof(_Tp)); -#else - return __atomic_is_lock_free(sizeof(_Tp), 0); -#endif - } - _LIBCPP_INLINE_VISIBILITY - bool is_lock_free() const _NOEXCEPT - {return static_cast<__atomic_base const volatile*>(this)->is_lock_free();} - _LIBCPP_INLINE_VISIBILITY - void store(_Tp __d, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT - {__c11_atomic_store(&__a_, __d, __m);} - _LIBCPP_INLINE_VISIBILITY - void store(_Tp __d, memory_order __m = memory_order_seq_cst) _NOEXCEPT - {__c11_atomic_store(&__a_, __d, __m);} - _LIBCPP_INLINE_VISIBILITY - _Tp load(memory_order __m = memory_order_seq_cst) const volatile _NOEXCEPT - {return __c11_atomic_load(&__a_, __m);} - _LIBCPP_INLINE_VISIBILITY - _Tp load(memory_order __m = memory_order_seq_cst) const _NOEXCEPT - {return __c11_atomic_load(&__a_, __m);} - _LIBCPP_INLINE_VISIBILITY - operator _Tp() const volatile _NOEXCEPT {return load();} - _LIBCPP_INLINE_VISIBILITY - operator _Tp() const _NOEXCEPT {return load();} - _LIBCPP_INLINE_VISIBILITY - _Tp exchange(_Tp __d, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT - {return __c11_atomic_exchange(&__a_, __d, __m);} - _LIBCPP_INLINE_VISIBILITY - _Tp exchange(_Tp __d, memory_order __m = memory_order_seq_cst) _NOEXCEPT - {return __c11_atomic_exchange(&__a_, __d, __m);} - _LIBCPP_INLINE_VISIBILITY - bool compare_exchange_weak(_Tp& __e, _Tp __d, - memory_order __s, memory_order __f) volatile _NOEXCEPT - {return __c11_atomic_compare_exchange_weak(&__a_, &__e, __d, __s, __f);} - _LIBCPP_INLINE_VISIBILITY - bool compare_exchange_weak(_Tp& __e, _Tp __d, - memory_order __s, memory_order __f) _NOEXCEPT - {return __c11_atomic_compare_exchange_weak(&__a_, &__e, __d, __s, __f);} - _LIBCPP_INLINE_VISIBILITY - bool compare_exchange_strong(_Tp& __e, _Tp __d, - memory_order __s, memory_order __f) volatile _NOEXCEPT - {return __c11_atomic_compare_exchange_strong(&__a_, &__e, __d, __s, __f);} - _LIBCPP_INLINE_VISIBILITY - bool compare_exchange_strong(_Tp& __e, _Tp __d, - memory_order __s, memory_order __f) _NOEXCEPT - {return __c11_atomic_compare_exchange_strong(&__a_, &__e, __d, __s, __f);} - _LIBCPP_INLINE_VISIBILITY - bool compare_exchange_weak(_Tp& __e, _Tp __d, - memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT - {return __c11_atomic_compare_exchange_weak(&__a_, &__e, __d, __m, __m);} - _LIBCPP_INLINE_VISIBILITY - bool compare_exchange_weak(_Tp& __e, _Tp __d, - memory_order __m = memory_order_seq_cst) _NOEXCEPT - {return __c11_atomic_compare_exchange_weak(&__a_, &__e, __d, __m, __m);} - _LIBCPP_INLINE_VISIBILITY - bool compare_exchange_strong(_Tp& __e, _Tp __d, - memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT - {return __c11_atomic_compare_exchange_strong(&__a_, &__e, __d, __m, __m);} - _LIBCPP_INLINE_VISIBILITY - bool compare_exchange_strong(_Tp& __e, _Tp __d, - memory_order __m = memory_order_seq_cst) _NOEXCEPT - {return __c11_atomic_compare_exchange_strong(&__a_, &__e, __d, __m, __m);} - - _LIBCPP_INLINE_VISIBILITY -#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS - __atomic_base() _NOEXCEPT = default; -#else - __atomic_base() _NOEXCEPT : __a_() {} -#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS - - _LIBCPP_INLINE_VISIBILITY - _LIBCPP_CONSTEXPR __atomic_base(_Tp __d) _NOEXCEPT : __a_(__d) {} -#ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS - __atomic_base(const __atomic_base&) = delete; - __atomic_base& operator=(const __atomic_base&) = delete; - __atomic_base& operator=(const __atomic_base&) volatile = delete; -#else // _LIBCPP_HAS_NO_DELETED_FUNCTIONS -private: - __atomic_base(const __atomic_base&); - __atomic_base& operator=(const __atomic_base&); - __atomic_base& operator=(const __atomic_base&) volatile; -#endif // _LIBCPP_HAS_NO_DELETED_FUNCTIONS -}; - -// atomic - -template -struct __atomic_base<_Tp, true> - : public __atomic_base<_Tp, false> -{ - typedef __atomic_base<_Tp, false> __base; - _LIBCPP_INLINE_VISIBILITY - __atomic_base() _NOEXCEPT _LIBCPP_DEFAULT - _LIBCPP_INLINE_VISIBILITY - _LIBCPP_CONSTEXPR __atomic_base(_Tp __d) _NOEXCEPT : __base(__d) {} - - _LIBCPP_INLINE_VISIBILITY - _Tp fetch_add(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT - {return __c11_atomic_fetch_add(&this->__a_, __op, __m);} - _LIBCPP_INLINE_VISIBILITY - _Tp fetch_add(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT - {return __c11_atomic_fetch_add(&this->__a_, __op, __m);} - _LIBCPP_INLINE_VISIBILITY - _Tp fetch_sub(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT - {return __c11_atomic_fetch_sub(&this->__a_, __op, __m);} - _LIBCPP_INLINE_VISIBILITY - _Tp fetch_sub(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT - {return __c11_atomic_fetch_sub(&this->__a_, __op, __m);} - _LIBCPP_INLINE_VISIBILITY - _Tp fetch_and(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT - {return __c11_atomic_fetch_and(&this->__a_, __op, __m);} - _LIBCPP_INLINE_VISIBILITY - _Tp fetch_and(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT - {return __c11_atomic_fetch_and(&this->__a_, __op, __m);} - _LIBCPP_INLINE_VISIBILITY - _Tp fetch_or(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT - {return __c11_atomic_fetch_or(&this->__a_, __op, __m);} - _LIBCPP_INLINE_VISIBILITY - _Tp fetch_or(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT - {return __c11_atomic_fetch_or(&this->__a_, __op, __m);} - _LIBCPP_INLINE_VISIBILITY - _Tp fetch_xor(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT - {return __c11_atomic_fetch_xor(&this->__a_, __op, __m);} - _LIBCPP_INLINE_VISIBILITY - _Tp fetch_xor(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT - {return __c11_atomic_fetch_xor(&this->__a_, __op, __m);} - - _LIBCPP_INLINE_VISIBILITY - _Tp operator++(int) volatile _NOEXCEPT {return fetch_add(_Tp(1));} - _LIBCPP_INLINE_VISIBILITY - _Tp operator++(int) _NOEXCEPT {return fetch_add(_Tp(1));} - _LIBCPP_INLINE_VISIBILITY - _Tp operator--(int) volatile _NOEXCEPT {return fetch_sub(_Tp(1));} - _LIBCPP_INLINE_VISIBILITY - _Tp operator--(int) _NOEXCEPT {return fetch_sub(_Tp(1));} - _LIBCPP_INLINE_VISIBILITY - _Tp operator++() volatile _NOEXCEPT {return fetch_add(_Tp(1)) + _Tp(1);} - _LIBCPP_INLINE_VISIBILITY - _Tp operator++() _NOEXCEPT {return fetch_add(_Tp(1)) + _Tp(1);} - _LIBCPP_INLINE_VISIBILITY - _Tp operator--() volatile _NOEXCEPT {return fetch_sub(_Tp(1)) - _Tp(1);} - _LIBCPP_INLINE_VISIBILITY - _Tp operator--() _NOEXCEPT {return fetch_sub(_Tp(1)) - _Tp(1);} - _LIBCPP_INLINE_VISIBILITY - _Tp operator+=(_Tp __op) volatile _NOEXCEPT {return fetch_add(__op) + __op;} - _LIBCPP_INLINE_VISIBILITY - _Tp operator+=(_Tp __op) _NOEXCEPT {return fetch_add(__op) + __op;} - _LIBCPP_INLINE_VISIBILITY - _Tp operator-=(_Tp __op) volatile _NOEXCEPT {return fetch_sub(__op) - __op;} - _LIBCPP_INLINE_VISIBILITY - _Tp operator-=(_Tp __op) _NOEXCEPT {return fetch_sub(__op) - __op;} - _LIBCPP_INLINE_VISIBILITY - _Tp operator&=(_Tp __op) volatile _NOEXCEPT {return fetch_and(__op) & __op;} - _LIBCPP_INLINE_VISIBILITY - _Tp operator&=(_Tp __op) _NOEXCEPT {return fetch_and(__op) & __op;} - _LIBCPP_INLINE_VISIBILITY - _Tp operator|=(_Tp __op) volatile _NOEXCEPT {return fetch_or(__op) | __op;} - _LIBCPP_INLINE_VISIBILITY - _Tp operator|=(_Tp __op) _NOEXCEPT {return fetch_or(__op) | __op;} - _LIBCPP_INLINE_VISIBILITY - _Tp operator^=(_Tp __op) volatile _NOEXCEPT {return fetch_xor(__op) ^ __op;} - _LIBCPP_INLINE_VISIBILITY - _Tp operator^=(_Tp __op) _NOEXCEPT {return fetch_xor(__op) ^ __op;} -}; - -// atomic - -template -struct atomic - : public __atomic_base<_Tp> -{ - typedef __atomic_base<_Tp> __base; - _LIBCPP_INLINE_VISIBILITY - atomic() _NOEXCEPT _LIBCPP_DEFAULT - _LIBCPP_INLINE_VISIBILITY - _LIBCPP_CONSTEXPR atomic(_Tp __d) _NOEXCEPT : __base(__d) {} - - _LIBCPP_INLINE_VISIBILITY - _Tp operator=(_Tp __d) volatile _NOEXCEPT - {__base::store(__d); return __d;} - _LIBCPP_INLINE_VISIBILITY - _Tp operator=(_Tp __d) _NOEXCEPT - {__base::store(__d); return __d;} -}; - -// atomic - -template -struct atomic<_Tp*> - : public __atomic_base<_Tp*> -{ - typedef __atomic_base<_Tp*> __base; - _LIBCPP_INLINE_VISIBILITY - atomic() _NOEXCEPT _LIBCPP_DEFAULT - _LIBCPP_INLINE_VISIBILITY - _LIBCPP_CONSTEXPR atomic(_Tp* __d) _NOEXCEPT : __base(__d) {} - - _LIBCPP_INLINE_VISIBILITY - _Tp* operator=(_Tp* __d) volatile _NOEXCEPT - {__base::store(__d); return __d;} - _LIBCPP_INLINE_VISIBILITY - _Tp* operator=(_Tp* __d) _NOEXCEPT - {__base::store(__d); return __d;} - - _LIBCPP_INLINE_VISIBILITY - _Tp* fetch_add(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) - volatile _NOEXCEPT - {return __c11_atomic_fetch_add(&this->__a_, __op, __m);} - _LIBCPP_INLINE_VISIBILITY - _Tp* fetch_add(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT - {return __c11_atomic_fetch_add(&this->__a_, __op, __m);} - _LIBCPP_INLINE_VISIBILITY - _Tp* fetch_sub(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) - volatile _NOEXCEPT - {return __c11_atomic_fetch_sub(&this->__a_, __op, __m);} - _LIBCPP_INLINE_VISIBILITY - _Tp* fetch_sub(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT - {return __c11_atomic_fetch_sub(&this->__a_, __op, __m);} - - _LIBCPP_INLINE_VISIBILITY - _Tp* operator++(int) volatile _NOEXCEPT {return fetch_add(1);} - _LIBCPP_INLINE_VISIBILITY - _Tp* operator++(int) _NOEXCEPT {return fetch_add(1);} - _LIBCPP_INLINE_VISIBILITY - _Tp* operator--(int) volatile _NOEXCEPT {return fetch_sub(1);} - _LIBCPP_INLINE_VISIBILITY - _Tp* operator--(int) _NOEXCEPT {return fetch_sub(1);} - _LIBCPP_INLINE_VISIBILITY - _Tp* operator++() volatile _NOEXCEPT {return fetch_add(1) + 1;} - _LIBCPP_INLINE_VISIBILITY - _Tp* operator++() _NOEXCEPT {return fetch_add(1) + 1;} - _LIBCPP_INLINE_VISIBILITY - _Tp* operator--() volatile _NOEXCEPT {return fetch_sub(1) - 1;} - _LIBCPP_INLINE_VISIBILITY - _Tp* operator--() _NOEXCEPT {return fetch_sub(1) - 1;} - _LIBCPP_INLINE_VISIBILITY - _Tp* operator+=(ptrdiff_t __op) volatile _NOEXCEPT {return fetch_add(__op) + __op;} - _LIBCPP_INLINE_VISIBILITY - _Tp* operator+=(ptrdiff_t __op) _NOEXCEPT {return fetch_add(__op) + __op;} - _LIBCPP_INLINE_VISIBILITY - _Tp* operator-=(ptrdiff_t __op) volatile _NOEXCEPT {return fetch_sub(__op) - __op;} - _LIBCPP_INLINE_VISIBILITY - _Tp* operator-=(ptrdiff_t __op) _NOEXCEPT {return fetch_sub(__op) - __op;} -}; - -// atomic_is_lock_free - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -atomic_is_lock_free(const volatile atomic<_Tp>* __o) _NOEXCEPT -{ - return __o->is_lock_free(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -atomic_is_lock_free(const atomic<_Tp>* __o) _NOEXCEPT -{ - return __o->is_lock_free(); -} - -// atomic_init - -template -inline _LIBCPP_INLINE_VISIBILITY -void -atomic_init(volatile atomic<_Tp>* __o, _Tp __d) _NOEXCEPT -{ - __c11_atomic_init(&__o->__a_, __d); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -atomic_init(atomic<_Tp>* __o, _Tp __d) _NOEXCEPT -{ - __c11_atomic_init(&__o->__a_, __d); -} - -// atomic_store - -template -inline _LIBCPP_INLINE_VISIBILITY -void -atomic_store(volatile atomic<_Tp>* __o, _Tp __d) _NOEXCEPT -{ - __o->store(__d); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -atomic_store(atomic<_Tp>* __o, _Tp __d) _NOEXCEPT -{ - __o->store(__d); -} - -// atomic_store_explicit - -template -inline _LIBCPP_INLINE_VISIBILITY -void -atomic_store_explicit(volatile atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT -{ - __o->store(__d, __m); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -atomic_store_explicit(atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT -{ - __o->store(__d, __m); -} - -// atomic_load - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp -atomic_load(const volatile atomic<_Tp>* __o) _NOEXCEPT -{ - return __o->load(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp -atomic_load(const atomic<_Tp>* __o) _NOEXCEPT -{ - return __o->load(); -} - -// atomic_load_explicit - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp -atomic_load_explicit(const volatile atomic<_Tp>* __o, memory_order __m) _NOEXCEPT -{ - return __o->load(__m); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp -atomic_load_explicit(const atomic<_Tp>* __o, memory_order __m) _NOEXCEPT -{ - return __o->load(__m); -} - -// atomic_exchange - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp -atomic_exchange(volatile atomic<_Tp>* __o, _Tp __d) _NOEXCEPT -{ - return __o->exchange(__d); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp -atomic_exchange(atomic<_Tp>* __o, _Tp __d) _NOEXCEPT -{ - return __o->exchange(__d); -} - -// atomic_exchange_explicit - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp -atomic_exchange_explicit(volatile atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT -{ - return __o->exchange(__d, __m); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp -atomic_exchange_explicit(atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT -{ - return __o->exchange(__d, __m); -} - -// atomic_compare_exchange_weak - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -atomic_compare_exchange_weak(volatile atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT -{ - return __o->compare_exchange_weak(*__e, __d); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -atomic_compare_exchange_weak(atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT -{ - return __o->compare_exchange_weak(*__e, __d); -} - -// atomic_compare_exchange_strong - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -atomic_compare_exchange_strong(volatile atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT -{ - return __o->compare_exchange_strong(*__e, __d); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -atomic_compare_exchange_strong(atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT -{ - return __o->compare_exchange_strong(*__e, __d); -} - -// atomic_compare_exchange_weak_explicit - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -atomic_compare_exchange_weak_explicit(volatile atomic<_Tp>* __o, _Tp* __e, - _Tp __d, - memory_order __s, memory_order __f) _NOEXCEPT -{ - return __o->compare_exchange_weak(*__e, __d, __s, __f); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -atomic_compare_exchange_weak_explicit(atomic<_Tp>* __o, _Tp* __e, _Tp __d, - memory_order __s, memory_order __f) _NOEXCEPT -{ - return __o->compare_exchange_weak(*__e, __d, __s, __f); -} - -// atomic_compare_exchange_strong_explicit - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -atomic_compare_exchange_strong_explicit(volatile atomic<_Tp>* __o, - _Tp* __e, _Tp __d, - memory_order __s, memory_order __f) _NOEXCEPT -{ - return __o->compare_exchange_strong(*__e, __d, __s, __f); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -atomic_compare_exchange_strong_explicit(atomic<_Tp>* __o, _Tp* __e, - _Tp __d, - memory_order __s, memory_order __f) _NOEXCEPT -{ - return __o->compare_exchange_strong(*__e, __d, __s, __f); -} - -// atomic_fetch_add - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_add(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT -{ - return __o->fetch_add(__op); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_add(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT -{ - return __o->fetch_add(__op); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp* -atomic_fetch_add(volatile atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT -{ - return __o->fetch_add(__op); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp* -atomic_fetch_add(atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT -{ - return __o->fetch_add(__op); -} - -// atomic_fetch_add_explicit - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_add_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT -{ - return __o->fetch_add(__op, __m); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_add_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT -{ - return __o->fetch_add(__op, __m); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp* -atomic_fetch_add_explicit(volatile atomic<_Tp*>* __o, ptrdiff_t __op, - memory_order __m) _NOEXCEPT -{ - return __o->fetch_add(__op, __m); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp* -atomic_fetch_add_explicit(atomic<_Tp*>* __o, ptrdiff_t __op, memory_order __m) _NOEXCEPT -{ - return __o->fetch_add(__op, __m); -} - -// atomic_fetch_sub - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_sub(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT -{ - return __o->fetch_sub(__op); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_sub(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT -{ - return __o->fetch_sub(__op); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp* -atomic_fetch_sub(volatile atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT -{ - return __o->fetch_sub(__op); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp* -atomic_fetch_sub(atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT -{ - return __o->fetch_sub(__op); -} - -// atomic_fetch_sub_explicit - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_sub_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT -{ - return __o->fetch_sub(__op, __m); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_sub_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT -{ - return __o->fetch_sub(__op, __m); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp* -atomic_fetch_sub_explicit(volatile atomic<_Tp*>* __o, ptrdiff_t __op, - memory_order __m) _NOEXCEPT -{ - return __o->fetch_sub(__op, __m); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp* -atomic_fetch_sub_explicit(atomic<_Tp*>* __o, ptrdiff_t __op, memory_order __m) _NOEXCEPT -{ - return __o->fetch_sub(__op, __m); -} - -// atomic_fetch_and - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_and(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT -{ - return __o->fetch_and(__op); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_and(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT -{ - return __o->fetch_and(__op); -} - -// atomic_fetch_and_explicit - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_and_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT -{ - return __o->fetch_and(__op, __m); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_and_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT -{ - return __o->fetch_and(__op, __m); -} - -// atomic_fetch_or - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_or(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT -{ - return __o->fetch_or(__op); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_or(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT -{ - return __o->fetch_or(__op); -} - -// atomic_fetch_or_explicit - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_or_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT -{ - return __o->fetch_or(__op, __m); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_or_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT -{ - return __o->fetch_or(__op, __m); -} - -// atomic_fetch_xor - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_xor(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT -{ - return __o->fetch_xor(__op); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_xor(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT -{ - return __o->fetch_xor(__op); -} - -// atomic_fetch_xor_explicit - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_xor_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT -{ - return __o->fetch_xor(__op, __m); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value && !is_same<_Tp, bool>::value, - _Tp ->::type -atomic_fetch_xor_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT -{ - return __o->fetch_xor(__op, __m); -} - -// flag type and operations - -typedef struct atomic_flag -{ - _Atomic(bool) __a_; - - _LIBCPP_INLINE_VISIBILITY - bool test_and_set(memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT - {return __c11_atomic_exchange(&__a_, true, __m);} - _LIBCPP_INLINE_VISIBILITY - bool test_and_set(memory_order __m = memory_order_seq_cst) _NOEXCEPT - {return __c11_atomic_exchange(&__a_, true, __m);} - _LIBCPP_INLINE_VISIBILITY - void clear(memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT - {__c11_atomic_store(&__a_, false, __m);} - _LIBCPP_INLINE_VISIBILITY - void clear(memory_order __m = memory_order_seq_cst) _NOEXCEPT - {__c11_atomic_store(&__a_, false, __m);} - - _LIBCPP_INLINE_VISIBILITY -#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS - atomic_flag() _NOEXCEPT = default; -#else - atomic_flag() _NOEXCEPT : __a_() {} -#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS - - _LIBCPP_INLINE_VISIBILITY - atomic_flag(bool __b) _NOEXCEPT : __a_(__b) {} - -#ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS - atomic_flag(const atomic_flag&) = delete; - atomic_flag& operator=(const atomic_flag&) = delete; - atomic_flag& operator=(const atomic_flag&) volatile = delete; -#else // _LIBCPP_HAS_NO_DELETED_FUNCTIONS -private: - atomic_flag(const atomic_flag&); - atomic_flag& operator=(const atomic_flag&); - atomic_flag& operator=(const atomic_flag&) volatile; -#endif // _LIBCPP_HAS_NO_DELETED_FUNCTIONS -} atomic_flag; - -inline _LIBCPP_INLINE_VISIBILITY -bool -atomic_flag_test_and_set(volatile atomic_flag* __o) _NOEXCEPT -{ - return __o->test_and_set(); -} - -inline _LIBCPP_INLINE_VISIBILITY -bool -atomic_flag_test_and_set(atomic_flag* __o) _NOEXCEPT -{ - return __o->test_and_set(); -} - -inline _LIBCPP_INLINE_VISIBILITY -bool -atomic_flag_test_and_set_explicit(volatile atomic_flag* __o, memory_order __m) _NOEXCEPT -{ - return __o->test_and_set(__m); -} - -inline _LIBCPP_INLINE_VISIBILITY -bool -atomic_flag_test_and_set_explicit(atomic_flag* __o, memory_order __m) _NOEXCEPT -{ - return __o->test_and_set(__m); -} - -inline _LIBCPP_INLINE_VISIBILITY -void -atomic_flag_clear(volatile atomic_flag* __o) _NOEXCEPT -{ - __o->clear(); -} - -inline _LIBCPP_INLINE_VISIBILITY -void -atomic_flag_clear(atomic_flag* __o) _NOEXCEPT -{ - __o->clear(); -} - -inline _LIBCPP_INLINE_VISIBILITY -void -atomic_flag_clear_explicit(volatile atomic_flag* __o, memory_order __m) _NOEXCEPT -{ - __o->clear(__m); -} - -inline _LIBCPP_INLINE_VISIBILITY -void -atomic_flag_clear_explicit(atomic_flag* __o, memory_order __m) _NOEXCEPT -{ - __o->clear(__m); -} - -// fences - -inline _LIBCPP_INLINE_VISIBILITY -void -atomic_thread_fence(memory_order __m) _NOEXCEPT -{ - __c11_atomic_thread_fence(__m); -} - -inline _LIBCPP_INLINE_VISIBILITY -void -atomic_signal_fence(memory_order __m) _NOEXCEPT -{ - __c11_atomic_signal_fence(__m); -} - -// Atomics for standard typedef types - -typedef atomic atomic_bool; -typedef atomic atomic_char; -typedef atomic atomic_schar; -typedef atomic atomic_uchar; -typedef atomic atomic_short; -typedef atomic atomic_ushort; -typedef atomic atomic_int; -typedef atomic atomic_uint; -typedef atomic atomic_long; -typedef atomic atomic_ulong; -typedef atomic atomic_llong; -typedef atomic atomic_ullong; -typedef atomic atomic_char16_t; -typedef atomic atomic_char32_t; -typedef atomic atomic_wchar_t; - -typedef atomic atomic_int_least8_t; -typedef atomic atomic_uint_least8_t; -typedef atomic atomic_int_least16_t; -typedef atomic atomic_uint_least16_t; -typedef atomic atomic_int_least32_t; -typedef atomic atomic_uint_least32_t; -typedef atomic atomic_int_least64_t; -typedef atomic atomic_uint_least64_t; - -typedef atomic atomic_int_fast8_t; -typedef atomic atomic_uint_fast8_t; -typedef atomic atomic_int_fast16_t; -typedef atomic atomic_uint_fast16_t; -typedef atomic atomic_int_fast32_t; -typedef atomic atomic_uint_fast32_t; -typedef atomic atomic_int_fast64_t; -typedef atomic atomic_uint_fast64_t; - -typedef atomic atomic_intptr_t; -typedef atomic atomic_uintptr_t; -typedef atomic atomic_size_t; -typedef atomic atomic_ptrdiff_t; -typedef atomic atomic_intmax_t; -typedef atomic atomic_uintmax_t; - -#define ATOMIC_FLAG_INIT {false} -#define ATOMIC_VAR_INIT(__v) {__v} - -#define ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE -#define ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE -#define ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE -#define ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE -#define ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE -#define ATOMIC_SHORT_LOCK_FREE __GCC_ATOMIC_SHORT_LOCK_FREE -#define ATOMIC_INT_LOCK_FREE __GCC_ATOMIC_INT_LOCK_FREE -#define ATOMIC_LONG_LOCK_FREE __GCC_ATOMIC_LONG_LOCK_FREE -#define ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE -#define ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_ATOMIC diff --git a/headers/libs/libc++/atomic_support.h b/headers/libs/libc++/atomic_support.h deleted file mode 100644 index dbf3b9c81e..0000000000 --- a/headers/libs/libc++/atomic_support.h +++ /dev/null @@ -1,149 +0,0 @@ -#ifndef ATOMIC_SUPPORT_H -#define ATOMIC_SUPPORT_H - -#include "__config" -#include "memory" // for __libcpp_relaxed_load - -#if defined(__clang__) && __has_builtin(__atomic_load_n) \ - && __has_builtin(__atomic_store_n) \ - && __has_builtin(__atomic_add_fetch) \ - && __has_builtin(__atomic_compare_exchange_n) \ - && defined(__ATOMIC_RELAXED) \ - && defined(__ATOMIC_CONSUME) \ - && defined(__ATOMIC_ACQUIRE) \ - && defined(__ATOMIC_RELEASE) \ - && defined(__ATOMIC_ACQ_REL) \ - && defined(__ATOMIC_SEQ_CST) -# define _LIBCPP_HAS_ATOMIC_BUILTINS -#elif !defined(__clang__) && defined(_GNUC_VER) && _GNUC_VER >= 407 -# define _LIBCPP_HAS_ATOMIC_BUILTINS -#endif - -#if !defined(_LIBCPP_HAS_ATOMIC_BUILTINS) && !defined(_LIBCPP_HAS_NO_THREADS) -# if defined(_MSC_VER) && !defined(__clang__) - _LIBCPP_WARNING("Building libc++ without __atomic builtins is unsupported") -# else -# warning Building libc++ without __atomic builtins is unsupported -# endif -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -namespace { - -#if defined(_LIBCPP_HAS_ATOMIC_BUILTINS) && !defined(_LIBCPP_HAS_NO_THREADS) - -enum __libcpp_atomic_order { - _AO_Relaxed = __ATOMIC_RELAXED, - _AO_Consume = __ATOMIC_CONSUME, - _AO_Aquire = __ATOMIC_ACQUIRE, - _AO_Release = __ATOMIC_RELEASE, - _AO_Acq_Rel = __ATOMIC_ACQ_REL, - _AO_Seq = __ATOMIC_SEQ_CST -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -void __libcpp_atomic_store(_ValueType* __dest, _FromType __val, - int __order = _AO_Seq) -{ - __atomic_store_n(__dest, __val, __order); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void __libcpp_relaxed_store(_ValueType* __dest, _FromType __val) -{ - __atomic_store_n(__dest, __val, _AO_Relaxed); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ValueType __libcpp_atomic_load(_ValueType const* __val, - int __order = _AO_Seq) -{ - return __atomic_load_n(__val, __order); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ValueType __libcpp_atomic_add(_ValueType* __val, _AddType __a, - int __order = _AO_Seq) -{ - return __atomic_add_fetch(__val, __a, __order); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool __libcpp_atomic_compare_exchange(_ValueType* __val, - _ValueType* __expected, _ValueType __after, - int __success_order = _AO_Seq, - int __fail_order = _AO_Seq) -{ - return __atomic_compare_exchange_n(__val, __expected, __after, true, - __success_order, __fail_order); -} - -#else // _LIBCPP_HAS_NO_THREADS - -enum __libcpp_atomic_order { - _AO_Relaxed, - _AO_Consume, - _AO_Acquire, - _AO_Release, - _AO_Acq_Rel, - _AO_Seq -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -void __libcpp_atomic_store(_ValueType* __dest, _FromType __val, - int = 0) -{ - *__dest = __val; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void __libcpp_relaxed_store(_ValueType* __dest, _FromType __val) -{ - *__dest = __val; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ValueType __libcpp_atomic_load(_ValueType const* __val, - int = 0) -{ - return *__val; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_ValueType __libcpp_atomic_add(_ValueType* __val, _AddType __a, - int = 0) -{ - return *__val += __a; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool __libcpp_atomic_compare_exchange(_ValueType* __val, - _ValueType* __expected, _ValueType __after, - int = 0, int = 0) -{ - if (*__val == *__expected) { - *__val = __after; - return true; - } - *__expected = *__val; - return false; -} - -#endif // _LIBCPP_HAS_NO_THREADS - -} // end namespace - -_LIBCPP_END_NAMESPACE_STD - -#endif // ATOMIC_SUPPORT_H diff --git a/headers/libs/libc++/bitset b/headers/libs/libc++/bitset deleted file mode 100644 index b7d95a811f..0000000000 --- a/headers/libs/libc++/bitset +++ /dev/null @@ -1,1122 +0,0 @@ -// -*- C++ -*- -//===---------------------------- bitset ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_BITSET -#define _LIBCPP_BITSET - -/* - bitset synopsis - -namespace std -{ - -namespace std { - -template -class bitset -{ -public: - // bit reference: - class reference - { - friend class bitset; - reference() noexcept; - public: - ~reference() noexcept; - reference& operator=(bool x) noexcept; // for b[i] = x; - reference& operator=(const reference&) noexcept; // for b[i] = b[j]; - bool operator~() const noexcept; // flips the bit - operator bool() const noexcept; // for x = b[i]; - reference& flip() noexcept; // for b[i].flip(); - }; - - // 23.3.5.1 constructors: - constexpr bitset() noexcept; - constexpr bitset(unsigned long long val) noexcept; - template - explicit bitset(const charT* str, - typename basic_string::size_type n = basic_string::npos, - charT zero = charT('0'), charT one = charT('1')); - template - explicit bitset(const basic_string& str, - typename basic_string::size_type pos = 0, - typename basic_string::size_type n = - basic_string::npos, - charT zero = charT('0'), charT one = charT('1')); - - // 23.3.5.2 bitset operations: - bitset& operator&=(const bitset& rhs) noexcept; - bitset& operator|=(const bitset& rhs) noexcept; - bitset& operator^=(const bitset& rhs) noexcept; - bitset& operator<<=(size_t pos) noexcept; - bitset& operator>>=(size_t pos) noexcept; - bitset& set() noexcept; - bitset& set(size_t pos, bool val = true); - bitset& reset() noexcept; - bitset& reset(size_t pos); - bitset operator~() const noexcept; - bitset& flip() noexcept; - bitset& flip(size_t pos); - - // element access: - constexpr bool operator[](size_t pos) const; // for b[i]; - reference operator[](size_t pos); // for b[i]; - unsigned long to_ulong() const; - unsigned long long to_ullong() const; - template - basic_string to_string(charT zero = charT('0'), charT one = charT('1')) const; - template - basic_string > to_string(charT zero = charT('0'), charT one = charT('1')) const; - template - basic_string, allocator > to_string(charT zero = charT('0'), charT one = charT('1')) const; - basic_string, allocator > to_string(char zero = '0', char one = '1') const; - size_t count() const noexcept; - constexpr size_t size() const noexcept; - bool operator==(const bitset& rhs) const noexcept; - bool operator!=(const bitset& rhs) const noexcept; - bool test(size_t pos) const; - bool all() const noexcept; - bool any() const noexcept; - bool none() const noexcept; - bitset operator<<(size_t pos) const noexcept; - bitset operator>>(size_t pos) const noexcept; -}; - -// 23.3.5.3 bitset operators: -template -bitset operator&(const bitset&, const bitset&) noexcept; - -template -bitset operator|(const bitset&, const bitset&) noexcept; - -template -bitset operator^(const bitset&, const bitset&) noexcept; - -template -basic_istream& -operator>>(basic_istream& is, bitset& x); - -template -basic_ostream& -operator<<(basic_ostream& os, const bitset& x); - -template struct hash>; - -} // std - -*/ - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#include <__config> -#include <__bit_reference> -#include -#include -#include -#include -#include -#include <__functional_base> -#if defined(_LIBCPP_NO_EXCEPTIONS) - #include -#endif - -#include <__undef_min_max> - -_LIBCPP_BEGIN_NAMESPACE_STD - -template -class __bitset; - -template -struct __has_storage_type<__bitset<_N_words, _Size> > -{ - static const bool value = true; -}; - -template -class __bitset -{ -public: - typedef ptrdiff_t difference_type; - typedef size_t size_type; - typedef size_type __storage_type; -protected: - typedef __bitset __self; - typedef __storage_type* __storage_pointer; - typedef const __storage_type* __const_storage_pointer; - static const unsigned __bits_per_word = static_cast(sizeof(__storage_type) * CHAR_BIT); - - friend class __bit_reference<__bitset>; - friend class __bit_const_reference<__bitset>; - friend class __bit_iterator<__bitset, false>; - friend class __bit_iterator<__bitset, true>; - friend struct __bit_array<__bitset>; - - __storage_type __first_[_N_words]; - - typedef __bit_reference<__bitset> reference; - typedef __bit_const_reference<__bitset> const_reference; - typedef __bit_iterator<__bitset, false> iterator; - typedef __bit_iterator<__bitset, true> const_iterator; - - _LIBCPP_INLINE_VISIBILITY - _LIBCPP_CONSTEXPR __bitset() _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - explicit _LIBCPP_CONSTEXPR __bitset(unsigned long long __v) _NOEXCEPT; - - _LIBCPP_INLINE_VISIBILITY reference __make_ref(size_t __pos) _NOEXCEPT - {return reference(__first_ + __pos / __bits_per_word, __storage_type(1) << __pos % __bits_per_word);} - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR const_reference __make_ref(size_t __pos) const _NOEXCEPT - {return const_reference(__first_ + __pos / __bits_per_word, __storage_type(1) << __pos % __bits_per_word);} - _LIBCPP_INLINE_VISIBILITY iterator __make_iter(size_t __pos) _NOEXCEPT - {return iterator(__first_ + __pos / __bits_per_word, __pos % __bits_per_word);} - _LIBCPP_INLINE_VISIBILITY const_iterator __make_iter(size_t __pos) const _NOEXCEPT - {return const_iterator(__first_ + __pos / __bits_per_word, __pos % __bits_per_word);} - - _LIBCPP_INLINE_VISIBILITY - void operator&=(const __bitset& __v) _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - void operator|=(const __bitset& __v) _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - void operator^=(const __bitset& __v) _NOEXCEPT; - - void flip() _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY unsigned long to_ulong() const - {return to_ulong(integral_constant());} - _LIBCPP_INLINE_VISIBILITY unsigned long long to_ullong() const - {return to_ullong(integral_constant());} - - bool all() const _NOEXCEPT; - bool any() const _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - size_t __hash_code() const _NOEXCEPT; -private: -#ifdef _LIBCPP_HAS_NO_CONSTEXPR - void __init(unsigned long long __v, false_type) _NOEXCEPT; - void __init(unsigned long long __v, true_type) _NOEXCEPT; -#endif // _LIBCPP_HAS_NO_CONSTEXPR - unsigned long to_ulong(false_type) const; - _LIBCPP_INLINE_VISIBILITY - unsigned long to_ulong(true_type) const; - unsigned long long to_ullong(false_type) const; - _LIBCPP_INLINE_VISIBILITY - unsigned long long to_ullong(true_type) const; - _LIBCPP_INLINE_VISIBILITY - unsigned long long to_ullong(true_type, false_type) const; - unsigned long long to_ullong(true_type, true_type) const; -}; - -template -inline -_LIBCPP_CONSTEXPR -__bitset<_N_words, _Size>::__bitset() _NOEXCEPT -#ifndef _LIBCPP_HAS_NO_CONSTEXPR - : __first_{0} -#endif -{ -#ifdef _LIBCPP_HAS_NO_CONSTEXPR - _VSTD::fill_n(__first_, _N_words, __storage_type(0)); -#endif -} - -#ifdef _LIBCPP_HAS_NO_CONSTEXPR - -template -void -__bitset<_N_words, _Size>::__init(unsigned long long __v, false_type) _NOEXCEPT -{ - __storage_type __t[sizeof(unsigned long long) / sizeof(__storage_type)]; - for (size_t __i = 0; __i < sizeof(__t)/sizeof(__t[0]); ++__i, __v >>= __bits_per_word) - __t[__i] = static_cast<__storage_type>(__v); - _VSTD::copy(__t, __t + sizeof(__t)/sizeof(__t[0]), __first_); - _VSTD::fill(__first_ + sizeof(__t)/sizeof(__t[0]), __first_ + sizeof(__first_)/sizeof(__first_[0]), - __storage_type(0)); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -__bitset<_N_words, _Size>::__init(unsigned long long __v, true_type) _NOEXCEPT -{ - __first_[0] = __v; - _VSTD::fill(__first_ + 1, __first_ + sizeof(__first_)/sizeof(__first_[0]), __storage_type(0)); -} - -#endif // _LIBCPP_HAS_NO_CONSTEXPR - -template -inline -_LIBCPP_CONSTEXPR -__bitset<_N_words, _Size>::__bitset(unsigned long long __v) _NOEXCEPT -#ifndef _LIBCPP_HAS_NO_CONSTEXPR -#if __SIZEOF_SIZE_T__ == 8 - : __first_{__v} -#elif __SIZEOF_SIZE_T__ == 4 - : __first_{__v, __v >> __bits_per_word} -#else -#error This constructor has not been ported to this platform -#endif -#endif -{ -#ifdef _LIBCPP_HAS_NO_CONSTEXPR - __init(__v, integral_constant()); -#endif -} - -template -inline -void -__bitset<_N_words, _Size>::operator&=(const __bitset& __v) _NOEXCEPT -{ - for (size_type __i = 0; __i < _N_words; ++__i) - __first_[__i] &= __v.__first_[__i]; -} - -template -inline -void -__bitset<_N_words, _Size>::operator|=(const __bitset& __v) _NOEXCEPT -{ - for (size_type __i = 0; __i < _N_words; ++__i) - __first_[__i] |= __v.__first_[__i]; -} - -template -inline -void -__bitset<_N_words, _Size>::operator^=(const __bitset& __v) _NOEXCEPT -{ - for (size_type __i = 0; __i < _N_words; ++__i) - __first_[__i] ^= __v.__first_[__i]; -} - -template -void -__bitset<_N_words, _Size>::flip() _NOEXCEPT -{ - // do middle whole words - size_type __n = _Size; - __storage_pointer __p = __first_; - for (; __n >= __bits_per_word; ++__p, __n -= __bits_per_word) - *__p = ~*__p; - // do last partial word - if (__n > 0) - { - __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); - __storage_type __b = *__p & __m; - *__p &= ~__m; - *__p |= ~__b & __m; - } -} - -template -unsigned long -__bitset<_N_words, _Size>::to_ulong(false_type) const -{ - const_iterator __e = __make_iter(_Size); - const_iterator __i = _VSTD::find(__make_iter(sizeof(unsigned long) * CHAR_BIT), __e, true); - if (__i != __e) -#ifndef _LIBCPP_NO_EXCEPTIONS - throw overflow_error("bitset to_ulong overflow error"); -#else - assert(!"bitset to_ulong overflow error"); -#endif - return __first_[0]; -} - -template -inline -unsigned long -__bitset<_N_words, _Size>::to_ulong(true_type) const -{ - return __first_[0]; -} - -template -unsigned long long -__bitset<_N_words, _Size>::to_ullong(false_type) const -{ - const_iterator __e = __make_iter(_Size); - const_iterator __i = _VSTD::find(__make_iter(sizeof(unsigned long long) * CHAR_BIT), __e, true); - if (__i != __e) -#ifndef _LIBCPP_NO_EXCEPTIONS - throw overflow_error("bitset to_ullong overflow error"); -#else - assert(!"bitset to_ullong overflow error"); -#endif - return to_ullong(true_type()); -} - -template -inline -unsigned long long -__bitset<_N_words, _Size>::to_ullong(true_type) const -{ - return to_ullong(true_type(), integral_constant()); -} - -template -inline -unsigned long long -__bitset<_N_words, _Size>::to_ullong(true_type, false_type) const -{ - return __first_[0]; -} - -template -unsigned long long -__bitset<_N_words, _Size>::to_ullong(true_type, true_type) const -{ - unsigned long long __r = __first_[0]; - for (std::size_t __i = 1; __i < sizeof(unsigned long long) / sizeof(__storage_type); ++__i) - __r |= static_cast(__first_[__i]) << (sizeof(__storage_type) * CHAR_BIT); - return __r; -} - -template -bool -__bitset<_N_words, _Size>::all() const _NOEXCEPT -{ - // do middle whole words - size_type __n = _Size; - __const_storage_pointer __p = __first_; - for (; __n >= __bits_per_word; ++__p, __n -= __bits_per_word) - if (~*__p) - return false; - // do last partial word - if (__n > 0) - { - __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); - if (~*__p & __m) - return false; - } - return true; -} - -template -bool -__bitset<_N_words, _Size>::any() const _NOEXCEPT -{ - // do middle whole words - size_type __n = _Size; - __const_storage_pointer __p = __first_; - for (; __n >= __bits_per_word; ++__p, __n -= __bits_per_word) - if (*__p) - return true; - // do last partial word - if (__n > 0) - { - __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); - if (*__p & __m) - return true; - } - return false; -} - -template -inline -size_t -__bitset<_N_words, _Size>::__hash_code() const _NOEXCEPT -{ - size_t __h = 0; - for (size_type __i = 0; __i < _N_words; ++__i) - __h ^= __first_[__i]; - return __h; -} - -template -class __bitset<1, _Size> -{ -public: - typedef ptrdiff_t difference_type; - typedef size_t size_type; - typedef size_type __storage_type; -protected: - typedef __bitset __self; - typedef __storage_type* __storage_pointer; - typedef const __storage_type* __const_storage_pointer; - static const unsigned __bits_per_word = static_cast(sizeof(__storage_type) * CHAR_BIT); - - friend class __bit_reference<__bitset>; - friend class __bit_const_reference<__bitset>; - friend class __bit_iterator<__bitset, false>; - friend class __bit_iterator<__bitset, true>; - friend struct __bit_array<__bitset>; - - __storage_type __first_; - - typedef __bit_reference<__bitset> reference; - typedef __bit_const_reference<__bitset> const_reference; - typedef __bit_iterator<__bitset, false> iterator; - typedef __bit_iterator<__bitset, true> const_iterator; - - _LIBCPP_INLINE_VISIBILITY - _LIBCPP_CONSTEXPR __bitset() _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - explicit _LIBCPP_CONSTEXPR __bitset(unsigned long long __v) _NOEXCEPT; - - _LIBCPP_INLINE_VISIBILITY reference __make_ref(size_t __pos) _NOEXCEPT - {return reference(&__first_, __storage_type(1) << __pos);} - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR const_reference __make_ref(size_t __pos) const _NOEXCEPT - {return const_reference(&__first_, __storage_type(1) << __pos);} - _LIBCPP_INLINE_VISIBILITY iterator __make_iter(size_t __pos) _NOEXCEPT - {return iterator(&__first_ + __pos / __bits_per_word, __pos % __bits_per_word);} - _LIBCPP_INLINE_VISIBILITY const_iterator __make_iter(size_t __pos) const _NOEXCEPT - {return const_iterator(&__first_ + __pos / __bits_per_word, __pos % __bits_per_word);} - - _LIBCPP_INLINE_VISIBILITY - void operator&=(const __bitset& __v) _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - void operator|=(const __bitset& __v) _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - void operator^=(const __bitset& __v) _NOEXCEPT; - - _LIBCPP_INLINE_VISIBILITY - void flip() _NOEXCEPT; - - _LIBCPP_INLINE_VISIBILITY - unsigned long to_ulong() const; - _LIBCPP_INLINE_VISIBILITY - unsigned long long to_ullong() const; - - _LIBCPP_INLINE_VISIBILITY - bool all() const _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - bool any() const _NOEXCEPT; - - _LIBCPP_INLINE_VISIBILITY - size_t __hash_code() const _NOEXCEPT; -}; - -template -inline -_LIBCPP_CONSTEXPR -__bitset<1, _Size>::__bitset() _NOEXCEPT - : __first_(0) -{ -} - -template -inline -_LIBCPP_CONSTEXPR -__bitset<1, _Size>::__bitset(unsigned long long __v) _NOEXCEPT - : __first_(static_cast<__storage_type>(__v)) -{ -} - -template -inline -void -__bitset<1, _Size>::operator&=(const __bitset& __v) _NOEXCEPT -{ - __first_ &= __v.__first_; -} - -template -inline -void -__bitset<1, _Size>::operator|=(const __bitset& __v) _NOEXCEPT -{ - __first_ |= __v.__first_; -} - -template -inline -void -__bitset<1, _Size>::operator^=(const __bitset& __v) _NOEXCEPT -{ - __first_ ^= __v.__first_; -} - -template -inline -void -__bitset<1, _Size>::flip() _NOEXCEPT -{ - __storage_type __m = ~__storage_type(0) >> (__bits_per_word - _Size); - __first_ = ~__first_; - __first_ &= __m; -} - -template -inline -unsigned long -__bitset<1, _Size>::to_ulong() const -{ - return __first_; -} - -template -inline -unsigned long long -__bitset<1, _Size>::to_ullong() const -{ - return __first_; -} - -template -inline -bool -__bitset<1, _Size>::all() const _NOEXCEPT -{ - __storage_type __m = ~__storage_type(0) >> (__bits_per_word - _Size); - return !(~__first_ & __m); -} - -template -inline -bool -__bitset<1, _Size>::any() const _NOEXCEPT -{ - __storage_type __m = ~__storage_type(0) >> (__bits_per_word - _Size); - return __first_ & __m; -} - -template -inline -size_t -__bitset<1, _Size>::__hash_code() const _NOEXCEPT -{ - return __first_; -} - -template <> -class __bitset<0, 0> -{ -public: - typedef ptrdiff_t difference_type; - typedef size_t size_type; - typedef size_type __storage_type; -protected: - typedef __bitset __self; - typedef __storage_type* __storage_pointer; - typedef const __storage_type* __const_storage_pointer; - static const unsigned __bits_per_word = static_cast(sizeof(__storage_type) * CHAR_BIT); - - friend class __bit_reference<__bitset>; - friend class __bit_const_reference<__bitset>; - friend class __bit_iterator<__bitset, false>; - friend class __bit_iterator<__bitset, true>; - friend struct __bit_array<__bitset>; - - typedef __bit_reference<__bitset> reference; - typedef __bit_const_reference<__bitset> const_reference; - typedef __bit_iterator<__bitset, false> iterator; - typedef __bit_iterator<__bitset, true> const_iterator; - - _LIBCPP_INLINE_VISIBILITY - _LIBCPP_CONSTEXPR __bitset() _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - explicit _LIBCPP_CONSTEXPR __bitset(unsigned long long) _NOEXCEPT; - - _LIBCPP_INLINE_VISIBILITY reference __make_ref(size_t) _NOEXCEPT - {return reference(0, 1);} - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR const_reference __make_ref(size_t) const _NOEXCEPT - {return const_reference(0, 1);} - _LIBCPP_INLINE_VISIBILITY iterator __make_iter(size_t) _NOEXCEPT - {return iterator(0, 0);} - _LIBCPP_INLINE_VISIBILITY const_iterator __make_iter(size_t) const _NOEXCEPT - {return const_iterator(0, 0);} - - _LIBCPP_INLINE_VISIBILITY void operator&=(const __bitset&) _NOEXCEPT {} - _LIBCPP_INLINE_VISIBILITY void operator|=(const __bitset&) _NOEXCEPT {} - _LIBCPP_INLINE_VISIBILITY void operator^=(const __bitset&) _NOEXCEPT {} - - _LIBCPP_INLINE_VISIBILITY void flip() _NOEXCEPT {} - - _LIBCPP_INLINE_VISIBILITY unsigned long to_ulong() const {return 0;} - _LIBCPP_INLINE_VISIBILITY unsigned long long to_ullong() const {return 0;} - - _LIBCPP_INLINE_VISIBILITY bool all() const _NOEXCEPT {return true;} - _LIBCPP_INLINE_VISIBILITY bool any() const _NOEXCEPT {return false;} - - _LIBCPP_INLINE_VISIBILITY size_t __hash_code() const _NOEXCEPT {return 0;} -}; - -inline -_LIBCPP_CONSTEXPR -__bitset<0, 0>::__bitset() _NOEXCEPT -{ -} - -inline -_LIBCPP_CONSTEXPR -__bitset<0, 0>::__bitset(unsigned long long) _NOEXCEPT -{ -} - -template class _LIBCPP_TYPE_VIS_ONLY bitset; -template struct _LIBCPP_TYPE_VIS_ONLY hash >; - -template -class _LIBCPP_TYPE_VIS_ONLY bitset - : private __bitset<_Size == 0 ? 0 : (_Size - 1) / (sizeof(size_t) * CHAR_BIT) + 1, _Size> -{ -public: - static const unsigned __n_words = _Size == 0 ? 0 : (_Size - 1) / (sizeof(size_t) * CHAR_BIT) + 1; - typedef __bitset<__n_words, _Size> base; - -public: - typedef typename base::reference reference; - typedef typename base::const_reference const_reference; - - // 23.3.5.1 constructors: - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR bitset() _NOEXCEPT {} - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR - bitset(unsigned long long __v) _NOEXCEPT : base(__v) {} - template - explicit bitset(const _CharT* __str, - typename basic_string<_CharT>::size_type __n = basic_string<_CharT>::npos, - _CharT __zero = _CharT('0'), _CharT __one = _CharT('1')); - template - explicit bitset(const basic_string<_CharT,_Traits,_Allocator>& __str, - typename basic_string<_CharT,_Traits,_Allocator>::size_type __pos = 0, - typename basic_string<_CharT,_Traits,_Allocator>::size_type __n = - (basic_string<_CharT,_Traits,_Allocator>::npos), - _CharT __zero = _CharT('0'), _CharT __one = _CharT('1')); - - // 23.3.5.2 bitset operations: - _LIBCPP_INLINE_VISIBILITY - bitset& operator&=(const bitset& __rhs) _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - bitset& operator|=(const bitset& __rhs) _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - bitset& operator^=(const bitset& __rhs) _NOEXCEPT; - bitset& operator<<=(size_t __pos) _NOEXCEPT; - bitset& operator>>=(size_t __pos) _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - bitset& set() _NOEXCEPT; - bitset& set(size_t __pos, bool __val = true); - _LIBCPP_INLINE_VISIBILITY - bitset& reset() _NOEXCEPT; - bitset& reset(size_t __pos); - _LIBCPP_INLINE_VISIBILITY - bitset operator~() const _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - bitset& flip() _NOEXCEPT; - bitset& flip(size_t __pos); - - // element access: - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR - const_reference operator[](size_t __p) const {return base::__make_ref(__p);} - _LIBCPP_INLINE_VISIBILITY reference operator[](size_t __p) {return base::__make_ref(__p);} - _LIBCPP_INLINE_VISIBILITY - unsigned long to_ulong() const; - _LIBCPP_INLINE_VISIBILITY - unsigned long long to_ullong() const; - template - basic_string<_CharT, _Traits, _Allocator> to_string(_CharT __zero = _CharT('0'), - _CharT __one = _CharT('1')) const; - template - _LIBCPP_INLINE_VISIBILITY - basic_string<_CharT, _Traits, allocator<_CharT> > to_string(_CharT __zero = _CharT('0'), - _CharT __one = _CharT('1')) const; - template - _LIBCPP_INLINE_VISIBILITY - basic_string<_CharT, char_traits<_CharT>, allocator<_CharT> > to_string(_CharT __zero = _CharT('0'), - _CharT __one = _CharT('1')) const; - _LIBCPP_INLINE_VISIBILITY - basic_string, allocator > to_string(char __zero = '0', - char __one = '1') const; - _LIBCPP_INLINE_VISIBILITY - size_t count() const _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR size_t size() const _NOEXCEPT {return _Size;} - _LIBCPP_INLINE_VISIBILITY - bool operator==(const bitset& __rhs) const _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - bool operator!=(const bitset& __rhs) const _NOEXCEPT; - bool test(size_t __pos) const; - _LIBCPP_INLINE_VISIBILITY - bool all() const _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - bool any() const _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY bool none() const _NOEXCEPT {return !any();} - _LIBCPP_INLINE_VISIBILITY - bitset operator<<(size_t __pos) const _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - bitset operator>>(size_t __pos) const _NOEXCEPT; - -private: - - _LIBCPP_INLINE_VISIBILITY - size_t __hash_code() const _NOEXCEPT {return base::__hash_code();} - - friend struct hash; -}; - -template -template -bitset<_Size>::bitset(const _CharT* __str, - typename basic_string<_CharT>::size_type __n, - _CharT __zero, _CharT __one) -{ - size_t __rlen = _VSTD::min(__n, char_traits<_CharT>::length(__str)); - for (size_t __i = 0; __i < __rlen; ++__i) - if (__str[__i] != __zero && __str[__i] != __one) -#ifndef _LIBCPP_NO_EXCEPTIONS - throw invalid_argument("bitset string ctor has invalid argument"); -#else - assert(!"bitset string ctor has invalid argument"); -#endif - size_t _Mp = _VSTD::min(__rlen, _Size); - size_t __i = 0; - for (; __i < _Mp; ++__i) - { - _CharT __c = __str[_Mp - 1 - __i]; - if (__c == __zero) - (*this)[__i] = false; - else - (*this)[__i] = true; - } - _VSTD::fill(base::__make_iter(__i), base::__make_iter(_Size), false); -} - -template -template -bitset<_Size>::bitset(const basic_string<_CharT,_Traits,_Allocator>& __str, - typename basic_string<_CharT,_Traits,_Allocator>::size_type __pos, - typename basic_string<_CharT,_Traits,_Allocator>::size_type __n, - _CharT __zero, _CharT __one) -{ - if (__pos > __str.size()) -#ifndef _LIBCPP_NO_EXCEPTIONS - throw out_of_range("bitset string pos out of range"); -#else - assert(!"bitset string pos out of range"); -#endif - size_t __rlen = _VSTD::min(__n, __str.size() - __pos); - for (size_t __i = __pos; __i < __pos + __rlen; ++__i) - if (!_Traits::eq(__str[__i], __zero) && !_Traits::eq(__str[__i], __one)) -#ifndef _LIBCPP_NO_EXCEPTIONS - throw invalid_argument("bitset string ctor has invalid argument"); -#else - assert(!"bitset string ctor has invalid argument"); -#endif - size_t _Mp = _VSTD::min(__rlen, _Size); - size_t __i = 0; - for (; __i < _Mp; ++__i) - { - _CharT __c = __str[__pos + _Mp - 1 - __i]; - if (_Traits::eq(__c, __zero)) - (*this)[__i] = false; - else - (*this)[__i] = true; - } - _VSTD::fill(base::__make_iter(__i), base::__make_iter(_Size), false); -} - -template -inline -bitset<_Size>& -bitset<_Size>::operator&=(const bitset& __rhs) _NOEXCEPT -{ - base::operator&=(__rhs); - return *this; -} - -template -inline -bitset<_Size>& -bitset<_Size>::operator|=(const bitset& __rhs) _NOEXCEPT -{ - base::operator|=(__rhs); - return *this; -} - -template -inline -bitset<_Size>& -bitset<_Size>::operator^=(const bitset& __rhs) _NOEXCEPT -{ - base::operator^=(__rhs); - return *this; -} - -template -bitset<_Size>& -bitset<_Size>::operator<<=(size_t __pos) _NOEXCEPT -{ - __pos = _VSTD::min(__pos, _Size); - _VSTD::copy_backward(base::__make_iter(0), base::__make_iter(_Size - __pos), base::__make_iter(_Size)); - _VSTD::fill_n(base::__make_iter(0), __pos, false); - return *this; -} - -template -bitset<_Size>& -bitset<_Size>::operator>>=(size_t __pos) _NOEXCEPT -{ - __pos = _VSTD::min(__pos, _Size); - _VSTD::copy(base::__make_iter(__pos), base::__make_iter(_Size), base::__make_iter(0)); - _VSTD::fill_n(base::__make_iter(_Size - __pos), __pos, false); - return *this; -} - -template -inline -bitset<_Size>& -bitset<_Size>::set() _NOEXCEPT -{ - _VSTD::fill_n(base::__make_iter(0), _Size, true); - return *this; -} - -template -bitset<_Size>& -bitset<_Size>::set(size_t __pos, bool __val) -{ - if (__pos >= _Size) -#ifndef _LIBCPP_NO_EXCEPTIONS - throw out_of_range("bitset set argument out of range"); -#else - assert(!"bitset set argument out of range"); -#endif - (*this)[__pos] = __val; - return *this; -} - -template -inline -bitset<_Size>& -bitset<_Size>::reset() _NOEXCEPT -{ - _VSTD::fill_n(base::__make_iter(0), _Size, false); - return *this; -} - -template -bitset<_Size>& -bitset<_Size>::reset(size_t __pos) -{ - if (__pos >= _Size) -#ifndef _LIBCPP_NO_EXCEPTIONS - throw out_of_range("bitset reset argument out of range"); -#else - assert(!"bitset reset argument out of range"); -#endif - (*this)[__pos] = false; - return *this; -} - -template -inline -bitset<_Size> -bitset<_Size>::operator~() const _NOEXCEPT -{ - bitset __x(*this); - __x.flip(); - return __x; -} - -template -inline -bitset<_Size>& -bitset<_Size>::flip() _NOEXCEPT -{ - base::flip(); - return *this; -} - -template -bitset<_Size>& -bitset<_Size>::flip(size_t __pos) -{ - if (__pos >= _Size) -#ifndef _LIBCPP_NO_EXCEPTIONS - throw out_of_range("bitset flip argument out of range"); -#else - assert(!"bitset flip argument out of range"); -#endif - reference r = base::__make_ref(__pos); - r = ~r; - return *this; -} - -template -inline -unsigned long -bitset<_Size>::to_ulong() const -{ - return base::to_ulong(); -} - -template -inline -unsigned long long -bitset<_Size>::to_ullong() const -{ - return base::to_ullong(); -} - -template -template -basic_string<_CharT, _Traits, _Allocator> -bitset<_Size>::to_string(_CharT __zero, _CharT __one) const -{ - basic_string<_CharT, _Traits, _Allocator> __r(_Size, __zero); - for (size_t __i = 0; __i < _Size; ++__i) - { - if ((*this)[__i]) - __r[_Size - 1 - __i] = __one; - } - return __r; -} - -template -template -inline -basic_string<_CharT, _Traits, allocator<_CharT> > -bitset<_Size>::to_string(_CharT __zero, _CharT __one) const -{ - return to_string<_CharT, _Traits, allocator<_CharT> >(__zero, __one); -} - -template -template -inline -basic_string<_CharT, char_traits<_CharT>, allocator<_CharT> > -bitset<_Size>::to_string(_CharT __zero, _CharT __one) const -{ - return to_string<_CharT, char_traits<_CharT>, allocator<_CharT> >(__zero, __one); -} - -template -inline -basic_string, allocator > -bitset<_Size>::to_string(char __zero, char __one) const -{ - return to_string, allocator >(__zero, __one); -} - -template -inline -size_t -bitset<_Size>::count() const _NOEXCEPT -{ - return static_cast(_VSTD::count(base::__make_iter(0), base::__make_iter(_Size), true)); -} - -template -inline -bool -bitset<_Size>::operator==(const bitset& __rhs) const _NOEXCEPT -{ - return _VSTD::equal(base::__make_iter(0), base::__make_iter(_Size), __rhs.__make_iter(0)); -} - -template -inline -bool -bitset<_Size>::operator!=(const bitset& __rhs) const _NOEXCEPT -{ - return !(*this == __rhs); -} - -template -bool -bitset<_Size>::test(size_t __pos) const -{ - if (__pos >= _Size) -#ifndef _LIBCPP_NO_EXCEPTIONS - throw out_of_range("bitset test argument out of range"); -#else - assert(!"bitset test argument out of range"); -#endif - return (*this)[__pos]; -} - -template -inline -bool -bitset<_Size>::all() const _NOEXCEPT -{ - return base::all(); -} - -template -inline -bool -bitset<_Size>::any() const _NOEXCEPT -{ - return base::any(); -} - -template -inline -bitset<_Size> -bitset<_Size>::operator<<(size_t __pos) const _NOEXCEPT -{ - bitset __r = *this; - __r <<= __pos; - return __r; -} - -template -inline -bitset<_Size> -bitset<_Size>::operator>>(size_t __pos) const _NOEXCEPT -{ - bitset __r = *this; - __r >>= __pos; - return __r; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bitset<_Size> -operator&(const bitset<_Size>& __x, const bitset<_Size>& __y) _NOEXCEPT -{ - bitset<_Size> __r = __x; - __r &= __y; - return __r; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bitset<_Size> -operator|(const bitset<_Size>& __x, const bitset<_Size>& __y) _NOEXCEPT -{ - bitset<_Size> __r = __x; - __r |= __y; - return __r; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bitset<_Size> -operator^(const bitset<_Size>& __x, const bitset<_Size>& __y) _NOEXCEPT -{ - bitset<_Size> __r = __x; - __r ^= __y; - return __r; -} - -template -struct _LIBCPP_TYPE_VIS_ONLY hash > - : public unary_function, size_t> -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(const bitset<_Size>& __bs) const _NOEXCEPT - {return __bs.__hash_code();} -}; - -template -basic_istream<_CharT, _Traits>& -operator>>(basic_istream<_CharT, _Traits>& __is, bitset<_Size>& __x); - -template -basic_ostream<_CharT, _Traits>& -operator<<(basic_ostream<_CharT, _Traits>& __os, const bitset<_Size>& __x); - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_BITSET diff --git a/headers/libs/libc++/cassert b/headers/libs/libc++/cassert deleted file mode 100644 index 3775990640..0000000000 --- a/headers/libs/libc++/cassert +++ /dev/null @@ -1,25 +0,0 @@ -// -*- C++ -*- -//===-------------------------- cassert -----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -/* - cassert synopsis - -Macros: - - assert - -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif diff --git a/headers/libs/libc++/ccomplex b/headers/libs/libc++/ccomplex deleted file mode 100644 index 6ed116445e..0000000000 --- a/headers/libs/libc++/ccomplex +++ /dev/null @@ -1,29 +0,0 @@ -// -*- C++ -*- -//===--------------------------- ccomplex ---------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CCOMPLEX -#define _LIBCPP_CCOMPLEX - -/* - ccomplex synopsis - -#include - -*/ - -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -// hh 080623 Created - -#endif // _LIBCPP_CCOMPLEX diff --git a/headers/libs/libc++/cctype b/headers/libs/libc++/cctype deleted file mode 100644 index a68c2a0660..0000000000 --- a/headers/libs/libc++/cctype +++ /dev/null @@ -1,64 +0,0 @@ -// -*- C++ -*- -//===---------------------------- cctype ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CCTYPE -#define _LIBCPP_CCTYPE - -/* - cctype synopsis - -namespace std -{ - -int isalnum(int c); -int isalpha(int c); -int isblank(int c); // C99 -int iscntrl(int c); -int isdigit(int c); -int isgraph(int c); -int islower(int c); -int isprint(int c); -int ispunct(int c); -int isspace(int c); -int isupper(int c); -int isxdigit(int c); -int tolower(int c); -int toupper(int c); - -} // std -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -using ::isalnum; -using ::isalpha; -using ::isblank; -using ::iscntrl; -using ::isdigit; -using ::isgraph; -using ::islower; -using ::isprint; -using ::ispunct; -using ::isspace; -using ::isupper; -using ::isxdigit; -using ::tolower; -using ::toupper; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CCTYPE diff --git a/headers/libs/libc++/cerrno b/headers/libs/libc++/cerrno deleted file mode 100644 index bab13b8aa8..0000000000 --- a/headers/libs/libc++/cerrno +++ /dev/null @@ -1,33 +0,0 @@ -// -*- C++ -*- -//===-------------------------- cerrno ------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CERRNO -#define _LIBCPP_CERRNO - -/* - cerrno synopsis - -Macros: - - EDOM - EILSEQ // C99 - ERANGE - errno - -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#endif // _LIBCPP_CERRNO diff --git a/headers/libs/libc++/cfenv b/headers/libs/libc++/cfenv deleted file mode 100644 index 4fc630419b..0000000000 --- a/headers/libs/libc++/cfenv +++ /dev/null @@ -1,82 +0,0 @@ -// -*- C++ -*- -//===---------------------------- cfenv -----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CFENV -#define _LIBCPP_CFENV - -/* - cfenv synopsis - -This entire header is C99 / C++0X - -Macros: - - FE_DIVBYZERO - FE_INEXACT - FE_INVALID - FE_OVERFLOW - FE_UNDERFLOW - FE_ALL_EXCEPT - FE_DOWNWARD - FE_TONEAREST - FE_TOWARDZERO - FE_UPWARD - FE_DFL_ENV - -namespace std -{ - -Types: - - fenv_t - fexcept_t - -int feclearexcept(int excepts); -int fegetexceptflag(fexcept_t* flagp, int excepts); -int feraiseexcept(int excepts); -int fesetexceptflag(const fexcept_t* flagp, int excepts); -int fetestexcept(int excepts); -int fegetround(); -int fesetround(int round); -int fegetenv(fenv_t* envp); -int feholdexcept(fenv_t* envp); -int fesetenv(const fenv_t* envp); -int feupdateenv(const fenv_t* envp); - -} // std -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -using ::fenv_t; -using ::fexcept_t; - -using ::feclearexcept; -using ::fegetexceptflag; -using ::feraiseexcept; -using ::fesetexceptflag; -using ::fetestexcept; -using ::fegetround; -using ::fesetround; -using ::fegetenv; -using ::feholdexcept; -using ::fesetenv; -using ::feupdateenv; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CFENV diff --git a/headers/libs/libc++/cfloat b/headers/libs/libc++/cfloat deleted file mode 100644 index 176fa9de3c..0000000000 --- a/headers/libs/libc++/cfloat +++ /dev/null @@ -1,70 +0,0 @@ -// -*- C++ -*- -//===--------------------------- cfloat -----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CFLOAT -#define _LIBCPP_CFLOAT - -/* - cfloat synopsis - -Macros: - - FLT_ROUNDS - FLT_EVAL_METHOD // C99 - FLT_RADIX - - FLT_MANT_DIG - DBL_MANT_DIG - LDBL_MANT_DIG - - DECIMAL_DIG // C99 - - FLT_DIG - DBL_DIG - LDBL_DIG - - FLT_MIN_EXP - DBL_MIN_EXP - LDBL_MIN_EXP - - FLT_MIN_10_EXP - DBL_MIN_10_EXP - LDBL_MIN_10_EXP - - FLT_MAX_EXP - DBL_MAX_EXP - LDBL_MAX_EXP - - FLT_MAX_10_EXP - DBL_MAX_10_EXP - LDBL_MAX_10_EXP - - FLT_MAX - DBL_MAX - LDBL_MAX - - FLT_EPSILON - DBL_EPSILON - LDBL_EPSILON - - FLT_MIN - DBL_MIN - LDBL_MIN - -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#endif // _LIBCPP_CFLOAT diff --git a/headers/libs/libc++/chrono b/headers/libs/libc++/chrono deleted file mode 100644 index aac05870f5..0000000000 --- a/headers/libs/libc++/chrono +++ /dev/null @@ -1,1154 +0,0 @@ -// -*- C++ -*- -//===---------------------------- chrono ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CHRONO -#define _LIBCPP_CHRONO - -/* - chrono synopsis - -namespace std -{ -namespace chrono -{ - -template -constexpr -ToDuration -duration_cast(const duration& fd); - -template struct treat_as_floating_point : is_floating_point {}; - -template -struct duration_values -{ -public: - static constexpr Rep zero(); - static constexpr Rep max(); - static constexpr Rep min(); -}; - -// duration - -template > -class duration -{ - static_assert(!__is_duration::value, "A duration representation can not be a duration"); - static_assert(__is_ratio::value, "Second template parameter of duration must be a std::ratio"); - static_assert(Period::num > 0, "duration period must be positive"); -public: - typedef Rep rep; - typedef Period period; - - constexpr duration() = default; - template - constexpr explicit duration(const Rep2& r, - typename enable_if - < - is_convertible::value && - (treat_as_floating_point::value || - !treat_as_floating_point::value && !treat_as_floating_point::value) - >::type* = 0); - - // conversions - template - constexpr duration(const duration& d, - typename enable_if - < - treat_as_floating_point::value || - ratio_divide::type::den == 1 - >::type* = 0); - - // observer - - constexpr rep count() const; - - // arithmetic - - constexpr duration operator+() const; - constexpr duration operator-() const; - duration& operator++(); - duration operator++(int); - duration& operator--(); - duration operator--(int); - - duration& operator+=(const duration& d); - duration& operator-=(const duration& d); - - duration& operator*=(const rep& rhs); - duration& operator/=(const rep& rhs); - - // special values - - static constexpr duration zero(); - static constexpr duration min(); - static constexpr duration max(); -}; - -typedef duration nanoseconds; -typedef duration microseconds; -typedef duration milliseconds; -typedef duration seconds; -typedef duration< long, ratio< 60> > minutes; -typedef duration< long, ratio<3600> > hours; - -template -class time_point -{ -public: - typedef Clock clock; - typedef Duration duration; - typedef typename duration::rep rep; - typedef typename duration::period period; -private: - duration d_; // exposition only - -public: - time_point(); // has value "epoch" // constexpr in C++14 - explicit time_point(const duration& d); // same as time_point() + d // constexpr in C++14 - - // conversions - template - time_point(const time_point& t); // constexpr in C++14 - - // observer - - duration time_since_epoch() const; // constexpr in C++14 - - // arithmetic - - time_point& operator+=(const duration& d); - time_point& operator-=(const duration& d); - - // special values - - static constexpr time_point min(); - static constexpr time_point max(); -}; - -} // chrono - -// common_type traits -template - struct common_type, chrono::duration>; - -template - struct common_type, chrono::time_point>; - -namespace chrono { - -// duration arithmetic -template - constexpr - typename common_type, duration>::type - operator+(const duration& lhs, const duration& rhs); -template - constexpr - typename common_type, duration>::type - operator-(const duration& lhs, const duration& rhs); -template - constexpr - duration::type, Period> - operator*(const duration& d, const Rep2& s); -template - constexpr - duration::type, Period> - operator*(const Rep1& s, const duration& d); -template - constexpr - duration::type, Period> - operator/(const duration& d, const Rep2& s); -template - constexpr - typename common_type::type - operator/(const duration& lhs, const duration& rhs); - -// duration comparisons -template - constexpr - bool operator==(const duration& lhs, const duration& rhs); -template - constexpr - bool operator!=(const duration& lhs, const duration& rhs); -template - constexpr - bool operator< (const duration& lhs, const duration& rhs); -template - constexpr - bool operator<=(const duration& lhs, const duration& rhs); -template - constexpr - bool operator> (const duration& lhs, const duration& rhs); -template - constexpr - bool operator>=(const duration& lhs, const duration& rhs); - -// duration_cast -template - ToDuration duration_cast(const duration& d); - -template - constexpr ToDuration floor(const duration& d); // C++17 -template - constexpr ToDuration ceil(const duration& d); // C++17 -template - constexpr ToDuration round(const duration& d); // C++17 - -// time_point arithmetic (all constexpr in C++14) -template - time_point>::type> - operator+(const time_point& lhs, const duration& rhs); -template - time_point, Duration2>::type> - operator+(const duration& lhs, const time_point& rhs); -template - time_point>::type> - operator-(const time_point& lhs, const duration& rhs); -template - typename common_type::type - operator-(const time_point& lhs, const time_point& rhs); - -// time_point comparisons (all constexpr in C++14) -template - bool operator==(const time_point& lhs, const time_point& rhs); -template - bool operator!=(const time_point& lhs, const time_point& rhs); -template - bool operator< (const time_point& lhs, const time_point& rhs); -template - bool operator<=(const time_point& lhs, const time_point& rhs); -template - bool operator> (const time_point& lhs, const time_point& rhs); -template - bool operator>=(const time_point& lhs, const time_point& rhs); - -// time_point_cast (constexpr in C++14) - -template - time_point time_point_cast(const time_point& t); - -template - constexpr time_point - floor(const time_point& tp); // C++17 - -template - constexpr time_point - ceil(const time_point& tp); // C++17 - -template - constexpr time_point - round(const time_point& tp); // C++17 - -template - constexpr duration abs(duration d); // C++17 -// Clocks - -class system_clock -{ -public: - typedef microseconds duration; - typedef duration::rep rep; - typedef duration::period period; - typedef chrono::time_point time_point; - static const bool is_steady = false; // constexpr in C++14 - - static time_point now() noexcept; - static time_t to_time_t (const time_point& __t) noexcept; - static time_point from_time_t(time_t __t) noexcept; -}; - -class steady_clock -{ -public: - typedef nanoseconds duration; - typedef duration::rep rep; - typedef duration::period period; - typedef chrono::time_point time_point; - static const bool is_steady = true; // constexpr in C++14 - - static time_point now() noexcept; -}; - -typedef steady_clock high_resolution_clock; - -} // chrono - -constexpr chrono::hours operator "" h(unsigned long long); // C++14 -constexpr chrono::duration> operator "" h(long double); // C++14 -constexpr chrono::minutes operator "" min(unsigned long long); // C++14 -constexpr chrono::duration> operator "" min(long double); // C++14 -constexpr chrono::seconds operator "" s(unsigned long long); // C++14 -constexpr chrono::duration operator "" s(long double); // C++14 -constexpr chrono::milliseconds operator "" ms(unsigned long long); // C++14 -constexpr chrono::duration operator "" ms(long double); // C++14 -constexpr chrono::microseconds operator "" us(unsigned long long); // C++14 -constexpr chrono::duration operator "" us(long double); // C++14 -constexpr chrono::nanoseconds operator "" ns(unsigned long long); // C++14 -constexpr chrono::duration operator "" ns(long double); // C++14 - -} // std -*/ - -#include <__config> -#include -#include -#include -#include - -#include <__undef_min_max> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -namespace chrono -{ - -template > class _LIBCPP_TYPE_VIS_ONLY duration; - -template -struct __is_duration : false_type {}; - -template -struct __is_duration > : true_type {}; - -template -struct __is_duration > : true_type {}; - -template -struct __is_duration > : true_type {}; - -template -struct __is_duration > : true_type {}; - -} // chrono - -template -struct _LIBCPP_TYPE_VIS_ONLY common_type, - chrono::duration<_Rep2, _Period2> > -{ - typedef chrono::duration::type, - typename __ratio_gcd<_Period1, _Period2>::type> type; -}; - -namespace chrono { - -// duration_cast - -template ::type, - bool = _Period::num == 1, - bool = _Period::den == 1> -struct __duration_cast; - -template -struct __duration_cast<_FromDuration, _ToDuration, _Period, true, true> -{ - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR - _ToDuration operator()(const _FromDuration& __fd) const - { - return _ToDuration(static_cast(__fd.count())); - } -}; - -template -struct __duration_cast<_FromDuration, _ToDuration, _Period, true, false> -{ - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR - _ToDuration operator()(const _FromDuration& __fd) const - { - typedef typename common_type::type _Ct; - return _ToDuration(static_cast( - static_cast<_Ct>(__fd.count()) / static_cast<_Ct>(_Period::den))); - } -}; - -template -struct __duration_cast<_FromDuration, _ToDuration, _Period, false, true> -{ - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR - _ToDuration operator()(const _FromDuration& __fd) const - { - typedef typename common_type::type _Ct; - return _ToDuration(static_cast( - static_cast<_Ct>(__fd.count()) * static_cast<_Ct>(_Period::num))); - } -}; - -template -struct __duration_cast<_FromDuration, _ToDuration, _Period, false, false> -{ - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR - _ToDuration operator()(const _FromDuration& __fd) const - { - typedef typename common_type::type _Ct; - return _ToDuration(static_cast( - static_cast<_Ct>(__fd.count()) * static_cast<_Ct>(_Period::num) - / static_cast<_Ct>(_Period::den))); - } -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -typename enable_if -< - __is_duration<_ToDuration>::value, - _ToDuration ->::type -duration_cast(const duration<_Rep, _Period>& __fd) -{ - return __duration_cast, _ToDuration>()(__fd); -} - -template -struct _LIBCPP_TYPE_VIS_ONLY treat_as_floating_point : is_floating_point<_Rep> {}; - -template -struct _LIBCPP_TYPE_VIS_ONLY duration_values -{ -public: - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR _Rep zero() {return _Rep(0);} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR _Rep max() {return numeric_limits<_Rep>::max();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR _Rep min() {return numeric_limits<_Rep>::lowest();} -}; - -#if _LIBCPP_STD_VER > 14 -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR -typename enable_if -< - __is_duration<_ToDuration>::value, - _ToDuration ->::type -floor(const duration<_Rep, _Period>& __d) -{ - _ToDuration __t = duration_cast<_ToDuration>(__d); - if (__t > __d) - __t = __t - _ToDuration{1}; - return __t; -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR -typename enable_if -< - __is_duration<_ToDuration>::value, - _ToDuration ->::type -ceil(const duration<_Rep, _Period>& __d) -{ - _ToDuration __t = duration_cast<_ToDuration>(__d); - if (__t < __d) - __t = __t + _ToDuration{1}; - return __t; -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR -typename enable_if -< - __is_duration<_ToDuration>::value, - _ToDuration ->::type -round(const duration<_Rep, _Period>& __d) -{ - _ToDuration __lower = floor<_ToDuration>(__d); - _ToDuration __upper = __lower + _ToDuration{1}; - auto __lowerDiff = __d - __lower; - auto __upperDiff = __upper - __d; - if (__lowerDiff < __upperDiff) - return __lower; - if (__lowerDiff > __upperDiff) - return __upper; - return __lower.count() & 1 ? __upper : __lower; -} -#endif - -// duration - -template -class _LIBCPP_TYPE_VIS_ONLY duration -{ - static_assert(!__is_duration<_Rep>::value, "A duration representation can not be a duration"); - static_assert(__is_ratio<_Period>::value, "Second template parameter of duration must be a std::ratio"); - static_assert(_Period::num > 0, "duration period must be positive"); - - template - struct __no_overflow - { - private: - static const intmax_t __gcd_n1_n2 = __static_gcd<_R1::num, _R2::num>::value; - static const intmax_t __gcd_d1_d2 = __static_gcd<_R1::den, _R2::den>::value; - static const intmax_t __n1 = _R1::num / __gcd_n1_n2; - static const intmax_t __d1 = _R1::den / __gcd_d1_d2; - static const intmax_t __n2 = _R2::num / __gcd_n1_n2; - static const intmax_t __d2 = _R2::den / __gcd_d1_d2; - static const intmax_t max = -((intmax_t(1) << (sizeof(intmax_t) * CHAR_BIT - 1)) + 1); - - template - struct __mul // __overflow == false - { - static const intmax_t value = _Xp * _Yp; - }; - - template - struct __mul<_Xp, _Yp, true> - { - static const intmax_t value = 1; - }; - - public: - static const bool value = (__n1 <= max / __d2) && (__n2 <= max / __d1); - typedef ratio<__mul<__n1, __d2, !value>::value, - __mul<__n2, __d1, !value>::value> type; - }; - -public: - typedef _Rep rep; - typedef _Period period; -private: - rep __rep_; -public: - - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR -#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS - duration() = default; -#else - duration() {} -#endif - - template - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR - explicit duration(const _Rep2& __r, - typename enable_if - < - is_convertible<_Rep2, rep>::value && - (treat_as_floating_point::value || - !treat_as_floating_point<_Rep2>::value) - >::type* = 0) - : __rep_(__r) {} - - // conversions - template - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR - duration(const duration<_Rep2, _Period2>& __d, - typename enable_if - < - __no_overflow<_Period2, period>::value && ( - treat_as_floating_point::value || - (__no_overflow<_Period2, period>::type::den == 1 && - !treat_as_floating_point<_Rep2>::value)) - >::type* = 0) - : __rep_(_VSTD::chrono::duration_cast(__d).count()) {} - - // observer - - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR rep count() const {return __rep_;} - - // arithmetic - - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR duration operator+() const {return *this;} - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR duration operator-() const {return duration(-__rep_);} - _LIBCPP_INLINE_VISIBILITY duration& operator++() {++__rep_; return *this;} - _LIBCPP_INLINE_VISIBILITY duration operator++(int) {return duration(__rep_++);} - _LIBCPP_INLINE_VISIBILITY duration& operator--() {--__rep_; return *this;} - _LIBCPP_INLINE_VISIBILITY duration operator--(int) {return duration(__rep_--);} - - _LIBCPP_INLINE_VISIBILITY duration& operator+=(const duration& __d) {__rep_ += __d.count(); return *this;} - _LIBCPP_INLINE_VISIBILITY duration& operator-=(const duration& __d) {__rep_ -= __d.count(); return *this;} - - _LIBCPP_INLINE_VISIBILITY duration& operator*=(const rep& rhs) {__rep_ *= rhs; return *this;} - _LIBCPP_INLINE_VISIBILITY duration& operator/=(const rep& rhs) {__rep_ /= rhs; return *this;} - _LIBCPP_INLINE_VISIBILITY duration& operator%=(const rep& rhs) {__rep_ %= rhs; return *this;} - _LIBCPP_INLINE_VISIBILITY duration& operator%=(const duration& rhs) {__rep_ %= rhs.count(); return *this;} - - // special values - - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR duration zero() {return duration(duration_values::zero());} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR duration min() {return duration(duration_values::min());} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR duration max() {return duration(duration_values::max());} -}; - -typedef duration nanoseconds; -typedef duration microseconds; -typedef duration milliseconds; -typedef duration seconds; -typedef duration< long, ratio< 60> > minutes; -typedef duration< long, ratio<3600> > hours; - -// Duration == - -template -struct __duration_eq -{ - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR - bool operator()(const _LhsDuration& __lhs, const _RhsDuration& __rhs) const - { - typedef typename common_type<_LhsDuration, _RhsDuration>::type _Ct; - return _Ct(__lhs).count() == _Ct(__rhs).count(); - } -}; - -template -struct __duration_eq<_LhsDuration, _LhsDuration> -{ - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR - bool operator()(const _LhsDuration& __lhs, const _LhsDuration& __rhs) const - {return __lhs.count() == __rhs.count();} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -bool -operator==(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) -{ - return __duration_eq, duration<_Rep2, _Period2> >()(__lhs, __rhs); -} - -// Duration != - -template -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -bool -operator!=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) -{ - return !(__lhs == __rhs); -} - -// Duration < - -template -struct __duration_lt -{ - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR - bool operator()(const _LhsDuration& __lhs, const _RhsDuration& __rhs) const - { - typedef typename common_type<_LhsDuration, _RhsDuration>::type _Ct; - return _Ct(__lhs).count() < _Ct(__rhs).count(); - } -}; - -template -struct __duration_lt<_LhsDuration, _LhsDuration> -{ - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR - bool operator()(const _LhsDuration& __lhs, const _LhsDuration& __rhs) const - {return __lhs.count() < __rhs.count();} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -bool -operator< (const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) -{ - return __duration_lt, duration<_Rep2, _Period2> >()(__lhs, __rhs); -} - -// Duration > - -template -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -bool -operator> (const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) -{ - return __rhs < __lhs; -} - -// Duration <= - -template -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -bool -operator<=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) -{ - return !(__rhs < __lhs); -} - -// Duration >= - -template -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -bool -operator>=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) -{ - return !(__lhs < __rhs); -} - -// Duration + - -template -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -typename common_type, duration<_Rep2, _Period2> >::type -operator+(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) -{ - typedef typename common_type, duration<_Rep2, _Period2> >::type _Cd; - return _Cd(_Cd(__lhs).count() + _Cd(__rhs).count()); -} - -// Duration - - -template -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -typename common_type, duration<_Rep2, _Period2> >::type -operator-(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) -{ - typedef typename common_type, duration<_Rep2, _Period2> >::type _Cd; - return _Cd(_Cd(__lhs).count() - _Cd(__rhs).count()); -} - -// Duration * - -template -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -typename enable_if -< - is_convertible<_Rep2, typename common_type<_Rep1, _Rep2>::type>::value, - duration::type, _Period> ->::type -operator*(const duration<_Rep1, _Period>& __d, const _Rep2& __s) -{ - typedef typename common_type<_Rep1, _Rep2>::type _Cr; - typedef duration<_Cr, _Period> _Cd; - return _Cd(_Cd(__d).count() * static_cast<_Cr>(__s)); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -typename enable_if -< - is_convertible<_Rep1, typename common_type<_Rep1, _Rep2>::type>::value, - duration::type, _Period> ->::type -operator*(const _Rep1& __s, const duration<_Rep2, _Period>& __d) -{ - return __d * __s; -} - -// Duration / - -template ::value> -struct __duration_divide_result -{ -}; - -template ::type>::value> -struct __duration_divide_imp -{ -}; - -template -struct __duration_divide_imp, _Rep2, true> -{ - typedef duration::type, _Period> type; -}; - -template -struct __duration_divide_result, _Rep2, false> - : __duration_divide_imp, _Rep2> -{ -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -typename __duration_divide_result, _Rep2>::type -operator/(const duration<_Rep1, _Period>& __d, const _Rep2& __s) -{ - typedef typename common_type<_Rep1, _Rep2>::type _Cr; - typedef duration<_Cr, _Period> _Cd; - return _Cd(_Cd(__d).count() / static_cast<_Cr>(__s)); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -typename common_type<_Rep1, _Rep2>::type -operator/(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) -{ - typedef typename common_type, duration<_Rep2, _Period2> >::type _Ct; - return _Ct(__lhs).count() / _Ct(__rhs).count(); -} - -// Duration % - -template -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -typename __duration_divide_result, _Rep2>::type -operator%(const duration<_Rep1, _Period>& __d, const _Rep2& __s) -{ - typedef typename common_type<_Rep1, _Rep2>::type _Cr; - typedef duration<_Cr, _Period> _Cd; - return _Cd(_Cd(__d).count() % static_cast<_Cr>(__s)); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -typename common_type, duration<_Rep2, _Period2> >::type -operator%(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) -{ - typedef typename common_type<_Rep1, _Rep2>::type _Cr; - typedef typename common_type, duration<_Rep2, _Period2> >::type _Cd; - return _Cd(static_cast<_Cr>(_Cd(__lhs).count()) % static_cast<_Cr>(_Cd(__rhs).count())); -} - -////////////////////////////////////////////////////////// -///////////////////// time_point ///////////////////////// -////////////////////////////////////////////////////////// - -template -class _LIBCPP_TYPE_VIS_ONLY time_point -{ - static_assert(__is_duration<_Duration>::value, - "Second template parameter of time_point must be a std::chrono::duration"); -public: - typedef _Clock clock; - typedef _Duration duration; - typedef typename duration::rep rep; - typedef typename duration::period period; -private: - duration __d_; - -public: - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 time_point() : __d_(duration::zero()) {} - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 explicit time_point(const duration& __d) : __d_(__d) {} - - // conversions - template - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 - time_point(const time_point& t, - typename enable_if - < - is_convertible<_Duration2, duration>::value - >::type* = 0) - : __d_(t.time_since_epoch()) {} - - // observer - - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 duration time_since_epoch() const {return __d_;} - - // arithmetic - - _LIBCPP_INLINE_VISIBILITY time_point& operator+=(const duration& __d) {__d_ += __d; return *this;} - _LIBCPP_INLINE_VISIBILITY time_point& operator-=(const duration& __d) {__d_ -= __d; return *this;} - - // special values - - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR time_point min() {return time_point(duration::min());} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR time_point max() {return time_point(duration::max());} -}; - -} // chrono - -template -struct _LIBCPP_TYPE_VIS_ONLY common_type, - chrono::time_point<_Clock, _Duration2> > -{ - typedef chrono::time_point<_Clock, typename common_type<_Duration1, _Duration2>::type> type; -}; - -namespace chrono { - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -time_point<_Clock, _ToDuration> -time_point_cast(const time_point<_Clock, _Duration>& __t) -{ - return time_point<_Clock, _ToDuration>(_VSTD::chrono::duration_cast<_ToDuration>(__t.time_since_epoch())); -} - -#if _LIBCPP_STD_VER > 14 -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR -typename enable_if -< - __is_duration<_ToDuration>::value, - time_point<_Clock, _ToDuration> ->::type -floor(const time_point<_Clock, _Duration>& __t) -{ - return time_point<_Clock, _ToDuration>{floor<_ToDuration>(__t.time_since_epoch())}; -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR -typename enable_if -< - __is_duration<_ToDuration>::value, - time_point<_Clock, _ToDuration> ->::type -ceil(const time_point<_Clock, _Duration>& __t) -{ - return time_point<_Clock, _ToDuration>{ceil<_ToDuration>(__t.time_since_epoch())}; -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR -typename enable_if -< - __is_duration<_ToDuration>::value, - time_point<_Clock, _ToDuration> ->::type -round(const time_point<_Clock, _Duration>& __t) -{ - return time_point<_Clock, _ToDuration>{round<_ToDuration>(__t.time_since_epoch())}; -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR -typename enable_if -< - numeric_limits<_Rep>::is_signed, - duration<_Rep, _Period> ->::type -abs(duration<_Rep, _Period> __d) -{ - return __d >= __d.zero() ? __d : -__d; -} -#endif - -// time_point == - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -bool -operator==(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) -{ - return __lhs.time_since_epoch() == __rhs.time_since_epoch(); -} - -// time_point != - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -bool -operator!=(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) -{ - return !(__lhs == __rhs); -} - -// time_point < - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -bool -operator<(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) -{ - return __lhs.time_since_epoch() < __rhs.time_since_epoch(); -} - -// time_point > - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -bool -operator>(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) -{ - return __rhs < __lhs; -} - -// time_point <= - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -bool -operator<=(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) -{ - return !(__rhs < __lhs); -} - -// time_point >= - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -bool -operator>=(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) -{ - return !(__lhs < __rhs); -} - -// time_point operator+(time_point x, duration y); - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -time_point<_Clock, typename common_type<_Duration1, duration<_Rep2, _Period2> >::type> -operator+(const time_point<_Clock, _Duration1>& __lhs, const duration<_Rep2, _Period2>& __rhs) -{ - typedef time_point<_Clock, typename common_type<_Duration1, duration<_Rep2, _Period2> >::type> _Tr; - return _Tr (__lhs.time_since_epoch() + __rhs); -} - -// time_point operator+(duration x, time_point y); - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -time_point<_Clock, typename common_type, _Duration2>::type> -operator+(const duration<_Rep1, _Period1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) -{ - return __rhs + __lhs; -} - -// time_point operator-(time_point x, duration y); - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -time_point<_Clock, typename common_type<_Duration1, duration<_Rep2, _Period2> >::type> -operator-(const time_point<_Clock, _Duration1>& __lhs, const duration<_Rep2, _Period2>& __rhs) -{ - return __lhs + (-__rhs); -} - -// duration operator-(time_point x, time_point y); - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -typename common_type<_Duration1, _Duration2>::type -operator-(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) -{ - return __lhs.time_since_epoch() - __rhs.time_since_epoch(); -} - -////////////////////////////////////////////////////////// -/////////////////////// clocks /////////////////////////// -////////////////////////////////////////////////////////// - -class _LIBCPP_TYPE_VIS system_clock -{ -public: - typedef microseconds duration; - typedef duration::rep rep; - typedef duration::period period; - typedef chrono::time_point time_point; - static _LIBCPP_CONSTEXPR_AFTER_CXX11 const bool is_steady = false; - - static time_point now() _NOEXCEPT; - static time_t to_time_t (const time_point& __t) _NOEXCEPT; - static time_point from_time_t(time_t __t) _NOEXCEPT; -}; - -#ifndef _LIBCPP_HAS_NO_MONOTONIC_CLOCK -class _LIBCPP_TYPE_VIS steady_clock -{ -public: - typedef nanoseconds duration; - typedef duration::rep rep; - typedef duration::period period; - typedef chrono::time_point time_point; - static _LIBCPP_CONSTEXPR_AFTER_CXX11 const bool is_steady = true; - - static time_point now() _NOEXCEPT; -}; - -typedef steady_clock high_resolution_clock; -#else -typedef system_clock high_resolution_clock; -#endif - -} // chrono - -#if _LIBCPP_STD_VER > 11 -// Suffixes for duration literals [time.duration.literals] -inline namespace literals -{ - inline namespace chrono_literals - { - - constexpr chrono::hours operator"" h(unsigned long long __h) - { - return chrono::hours(static_cast(__h)); - } - - constexpr chrono::duration> operator"" h(long double __h) - { - return chrono::duration>(__h); - } - - - constexpr chrono::minutes operator"" min(unsigned long long __m) - { - return chrono::minutes(static_cast(__m)); - } - - constexpr chrono::duration> operator"" min(long double __m) - { - return chrono::duration> (__m); - } - - - constexpr chrono::seconds operator"" s(unsigned long long __s) - { - return chrono::seconds(static_cast(__s)); - } - - constexpr chrono::duration operator"" s(long double __s) - { - return chrono::duration (__s); - } - - - constexpr chrono::milliseconds operator"" ms(unsigned long long __ms) - { - return chrono::milliseconds(static_cast(__ms)); - } - - constexpr chrono::duration operator"" ms(long double __ms) - { - return chrono::duration(__ms); - } - - - constexpr chrono::microseconds operator"" us(unsigned long long __us) - { - return chrono::microseconds(static_cast(__us)); - } - - constexpr chrono::duration operator"" us(long double __us) - { - return chrono::duration (__us); - } - - - constexpr chrono::nanoseconds operator"" ns(unsigned long long __ns) - { - return chrono::nanoseconds(static_cast(__ns)); - } - - constexpr chrono::duration operator"" ns(long double __ns) - { - return chrono::duration (__ns); - } - -}} - -namespace chrono { // hoist the literals into namespace std::chrono - using namespace literals::chrono_literals; -} - -#endif - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CHRONO diff --git a/headers/libs/libc++/cinttypes b/headers/libs/libc++/cinttypes deleted file mode 100644 index 3f61b0634b..0000000000 --- a/headers/libs/libc++/cinttypes +++ /dev/null @@ -1,258 +0,0 @@ -// -*- C++ -*- -//===--------------------------- cinttypes --------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CINTTYPES -#define _LIBCPP_CINTTYPES - -/* - cinttypes synopsis - -This entire header is C99 / C++0X - -#include // includes - -Macros: - - PRId8 - PRId16 - PRId32 - PRId64 - - PRIdLEAST8 - PRIdLEAST16 - PRIdLEAST32 - PRIdLEAST64 - - PRIdFAST8 - PRIdFAST16 - PRIdFAST32 - PRIdFAST64 - - PRIdMAX - PRIdPTR - - PRIi8 - PRIi16 - PRIi32 - PRIi64 - - PRIiLEAST8 - PRIiLEAST16 - PRIiLEAST32 - PRIiLEAST64 - - PRIiFAST8 - PRIiFAST16 - PRIiFAST32 - PRIiFAST64 - - PRIiMAX - PRIiPTR - - PRIo8 - PRIo16 - PRIo32 - PRIo64 - - PRIoLEAST8 - PRIoLEAST16 - PRIoLEAST32 - PRIoLEAST64 - - PRIoFAST8 - PRIoFAST16 - PRIoFAST32 - PRIoFAST64 - - PRIoMAX - PRIoPTR - - PRIu8 - PRIu16 - PRIu32 - PRIu64 - - PRIuLEAST8 - PRIuLEAST16 - PRIuLEAST32 - PRIuLEAST64 - - PRIuFAST8 - PRIuFAST16 - PRIuFAST32 - PRIuFAST64 - - PRIuMAX - PRIuPTR - - PRIx8 - PRIx16 - PRIx32 - PRIx64 - - PRIxLEAST8 - PRIxLEAST16 - PRIxLEAST32 - PRIxLEAST64 - - PRIxFAST8 - PRIxFAST16 - PRIxFAST32 - PRIxFAST64 - - PRIxMAX - PRIxPTR - - PRIX8 - PRIX16 - PRIX32 - PRIX64 - - PRIXLEAST8 - PRIXLEAST16 - PRIXLEAST32 - PRIXLEAST64 - - PRIXFAST8 - PRIXFAST16 - PRIXFAST32 - PRIXFAST64 - - PRIXMAX - PRIXPTR - - SCNd8 - SCNd16 - SCNd32 - SCNd64 - - SCNdLEAST8 - SCNdLEAST16 - SCNdLEAST32 - SCNdLEAST64 - - SCNdFAST8 - SCNdFAST16 - SCNdFAST32 - SCNdFAST64 - - SCNdMAX - SCNdPTR - - SCNi8 - SCNi16 - SCNi32 - SCNi64 - - SCNiLEAST8 - SCNiLEAST16 - SCNiLEAST32 - SCNiLEAST64 - - SCNiFAST8 - SCNiFAST16 - SCNiFAST32 - SCNiFAST64 - - SCNiMAX - SCNiPTR - - SCNo8 - SCNo16 - SCNo32 - SCNo64 - - SCNoLEAST8 - SCNoLEAST16 - SCNoLEAST32 - SCNoLEAST64 - - SCNoFAST8 - SCNoFAST16 - SCNoFAST32 - SCNoFAST64 - - SCNoMAX - SCNoPTR - - SCNu8 - SCNu16 - SCNu32 - SCNu64 - - SCNuLEAST8 - SCNuLEAST16 - SCNuLEAST32 - SCNuLEAST64 - - SCNuFAST8 - SCNuFAST16 - SCNuFAST32 - SCNuFAST64 - - SCNuMAX - SCNuPTR - - SCNx8 - SCNx16 - SCNx32 - SCNx64 - - SCNxLEAST8 - SCNxLEAST16 - SCNxLEAST32 - SCNxLEAST64 - - SCNxFAST8 - SCNxFAST16 - SCNxFAST32 - SCNxFAST64 - - SCNxMAX - SCNxPTR - -namespace std -{ - -Types: - - imaxdiv_t - -intmax_t imaxabs(intmax_t j); -imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom); -intmax_t strtoimax(const char* restrict nptr, char** restrict endptr, int base); -uintmax_t strtoumax(const char* restrict nptr, char** restrict endptr, int base); -intmax_t wcstoimax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); -uintmax_t wcstoumax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); - -} // std -*/ - -#include <__config> -#include -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -using::imaxdiv_t; -using::imaxabs; -using::imaxdiv; -using::strtoimax; -using::strtoumax; -using::wcstoimax; -using::wcstoumax; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CINTTYPES diff --git a/headers/libs/libc++/ciso646 b/headers/libs/libc++/ciso646 deleted file mode 100644 index b2efc72a9a..0000000000 --- a/headers/libs/libc++/ciso646 +++ /dev/null @@ -1,25 +0,0 @@ -// -*- C++ -*- -//===--------------------------- ciso646 ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CISO646 -#define _LIBCPP_CISO646 - -/* - ciso646 synopsis - -*/ - -#include <__config> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#endif // _LIBCPP_CISO646 diff --git a/headers/libs/libc++/climits b/headers/libs/libc++/climits deleted file mode 100644 index 81ffecdf6e..0000000000 --- a/headers/libs/libc++/climits +++ /dev/null @@ -1,48 +0,0 @@ -// -*- C++ -*- -//===--------------------------- climits ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CLIMITS -#define _LIBCPP_CLIMITS - -/* - climits synopsis - -Macros: - - CHAR_BIT - SCHAR_MIN - SCHAR_MAX - UCHAR_MAX - CHAR_MIN - CHAR_MAX - MB_LEN_MAX - SHRT_MIN - SHRT_MAX - USHRT_MAX - INT_MIN - INT_MAX - UINT_MAX - LONG_MIN - LONG_MAX - ULONG_MAX - LLONG_MIN // C99 - LLONG_MAX // C99 - ULLONG_MAX // C99 - -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#endif // _LIBCPP_CLIMITS diff --git a/headers/libs/libc++/clocale b/headers/libs/libc++/clocale deleted file mode 100644 index 05fa9c6edd..0000000000 --- a/headers/libs/libc++/clocale +++ /dev/null @@ -1,55 +0,0 @@ -// -*- C++ -*- -//===--------------------------- clocale ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CLOCALE -#define _LIBCPP_CLOCALE - -/* - clocale synopsis - -Macros: - - LC_ALL - LC_COLLATE - LC_CTYPE - LC_MONETARY - LC_NUMERIC - LC_TIME - NULL - -namespace std -{ - -struct lconv; -char* setlocale(int category, const char* locale); -lconv* localeconv(); - -} // std - -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -using ::lconv; -#ifndef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS -using ::setlocale; -#endif -using ::localeconv; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CLOCALE diff --git a/headers/libs/libc++/cmath b/headers/libs/libc++/cmath deleted file mode 100644 index ebbde18168..0000000000 --- a/headers/libs/libc++/cmath +++ /dev/null @@ -1,553 +0,0 @@ -// -*- C++ -*- -//===---------------------------- cmath -----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CMATH -#define _LIBCPP_CMATH - -/* - cmath synopsis - -Macros: - - HUGE_VAL - HUGE_VALF // C99 - HUGE_VALL // C99 - INFINITY // C99 - NAN // C99 - FP_INFINITE // C99 - FP_NAN // C99 - FP_NORMAL // C99 - FP_SUBNORMAL // C99 - FP_ZERO // C99 - FP_FAST_FMA // C99 - FP_FAST_FMAF // C99 - FP_FAST_FMAL // C99 - FP_ILOGB0 // C99 - FP_ILOGBNAN // C99 - MATH_ERRNO // C99 - MATH_ERREXCEPT // C99 - math_errhandling // C99 - -namespace std -{ - -Types: - - float_t // C99 - double_t // C99 - -// C90 - -floating_point abs(floating_point x); - -floating_point acos (arithmetic x); -float acosf(float x); -long double acosl(long double x); - -floating_point asin (arithmetic x); -float asinf(float x); -long double asinl(long double x); - -floating_point atan (arithmetic x); -float atanf(float x); -long double atanl(long double x); - -floating_point atan2 (arithmetic y, arithmetic x); -float atan2f(float y, float x); -long double atan2l(long double y, long double x); - -floating_point ceil (arithmetic x); -float ceilf(float x); -long double ceill(long double x); - -floating_point cos (arithmetic x); -float cosf(float x); -long double cosl(long double x); - -floating_point cosh (arithmetic x); -float coshf(float x); -long double coshl(long double x); - -floating_point exp (arithmetic x); -float expf(float x); -long double expl(long double x); - -floating_point fabs (arithmetic x); -float fabsf(float x); -long double fabsl(long double x); - -floating_point floor (arithmetic x); -float floorf(float x); -long double floorl(long double x); - -floating_point fmod (arithmetic x, arithmetic y); -float fmodf(float x, float y); -long double fmodl(long double x, long double y); - -floating_point frexp (arithmetic value, int* exp); -float frexpf(float value, int* exp); -long double frexpl(long double value, int* exp); - -floating_point ldexp (arithmetic value, int exp); -float ldexpf(float value, int exp); -long double ldexpl(long double value, int exp); - -floating_point log (arithmetic x); -float logf(float x); -long double logl(long double x); - -floating_point log10 (arithmetic x); -float log10f(float x); -long double log10l(long double x); - -floating_point modf (floating_point value, floating_point* iptr); -float modff(float value, float* iptr); -long double modfl(long double value, long double* iptr); - -floating_point pow (arithmetic x, arithmetic y); -float powf(float x, float y); -long double powl(long double x, long double y); - -floating_point sin (arithmetic x); -float sinf(float x); -long double sinl(long double x); - -floating_point sinh (arithmetic x); -float sinhf(float x); -long double sinhl(long double x); - -floating_point sqrt (arithmetic x); -float sqrtf(float x); -long double sqrtl(long double x); - -floating_point tan (arithmetic x); -float tanf(float x); -long double tanl(long double x); - -floating_point tanh (arithmetic x); -float tanhf(float x); -long double tanhl(long double x); - -// C99 - -bool signbit(arithmetic x); - -int fpclassify(arithmetic x); - -bool isfinite(arithmetic x); -bool isinf(arithmetic x); -bool isnan(arithmetic x); -bool isnormal(arithmetic x); - -bool isgreater(arithmetic x, arithmetic y); -bool isgreaterequal(arithmetic x, arithmetic y); -bool isless(arithmetic x, arithmetic y); -bool islessequal(arithmetic x, arithmetic y); -bool islessgreater(arithmetic x, arithmetic y); -bool isunordered(arithmetic x, arithmetic y); - -floating_point acosh (arithmetic x); -float acoshf(float x); -long double acoshl(long double x); - -floating_point asinh (arithmetic x); -float asinhf(float x); -long double asinhl(long double x); - -floating_point atanh (arithmetic x); -float atanhf(float x); -long double atanhl(long double x); - -floating_point cbrt (arithmetic x); -float cbrtf(float x); -long double cbrtl(long double x); - -floating_point copysign (arithmetic x, arithmetic y); -float copysignf(float x, float y); -long double copysignl(long double x, long double y); - -floating_point erf (arithmetic x); -float erff(float x); -long double erfl(long double x); - -floating_point erfc (arithmetic x); -float erfcf(float x); -long double erfcl(long double x); - -floating_point exp2 (arithmetic x); -float exp2f(float x); -long double exp2l(long double x); - -floating_point expm1 (arithmetic x); -float expm1f(float x); -long double expm1l(long double x); - -floating_point fdim (arithmetic x, arithmetic y); -float fdimf(float x, float y); -long double fdiml(long double x, long double y); - -floating_point fma (arithmetic x, arithmetic y, arithmetic z); -float fmaf(float x, float y, float z); -long double fmal(long double x, long double y, long double z); - -floating_point fmax (arithmetic x, arithmetic y); -float fmaxf(float x, float y); -long double fmaxl(long double x, long double y); - -floating_point fmin (arithmetic x, arithmetic y); -float fminf(float x, float y); -long double fminl(long double x, long double y); - -floating_point hypot (arithmetic x, arithmetic y); -float hypotf(float x, float y); -long double hypotl(long double x, long double y); - -int ilogb (arithmetic x); -int ilogbf(float x); -int ilogbl(long double x); - -floating_point lgamma (arithmetic x); -float lgammaf(float x); -long double lgammal(long double x); - -long long llrint (arithmetic x); -long long llrintf(float x); -long long llrintl(long double x); - -long long llround (arithmetic x); -long long llroundf(float x); -long long llroundl(long double x); - -floating_point log1p (arithmetic x); -float log1pf(float x); -long double log1pl(long double x); - -floating_point log2 (arithmetic x); -float log2f(float x); -long double log2l(long double x); - -floating_point logb (arithmetic x); -float logbf(float x); -long double logbl(long double x); - -long lrint (arithmetic x); -long lrintf(float x); -long lrintl(long double x); - -long lround (arithmetic x); -long lroundf(float x); -long lroundl(long double x); - -double nan (const char* str); -float nanf(const char* str); -long double nanl(const char* str); - -floating_point nearbyint (arithmetic x); -float nearbyintf(float x); -long double nearbyintl(long double x); - -floating_point nextafter (arithmetic x, arithmetic y); -float nextafterf(float x, float y); -long double nextafterl(long double x, long double y); - -floating_point nexttoward (arithmetic x, long double y); -float nexttowardf(float x, long double y); -long double nexttowardl(long double x, long double y); - -floating_point remainder (arithmetic x, arithmetic y); -float remainderf(float x, float y); -long double remainderl(long double x, long double y); - -floating_point remquo (arithmetic x, arithmetic y, int* pquo); -float remquof(float x, float y, int* pquo); -long double remquol(long double x, long double y, int* pquo); - -floating_point rint (arithmetic x); -float rintf(float x); -long double rintl(long double x); - -floating_point round (arithmetic x); -float roundf(float x); -long double roundl(long double x); - -floating_point scalbln (arithmetic x, long ex); -float scalblnf(float x, long ex); -long double scalblnl(long double x, long ex); - -floating_point scalbn (arithmetic x, int ex); -float scalbnf(float x, int ex); -long double scalbnl(long double x, int ex); - -floating_point tgamma (arithmetic x); -float tgammaf(float x); -long double tgammal(long double x); - -floating_point trunc (arithmetic x); -float truncf(float x); -long double truncl(long double x); - -} // std - -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -using ::signbit; -using ::fpclassify; -using ::isfinite; -using ::isinf; -using ::isnan; -using ::isnormal; -using ::isgreater; -using ::isgreaterequal; -using ::isless; -using ::islessequal; -using ::islessgreater; -using ::isunordered; -using ::isunordered; - -using ::float_t; -using ::double_t; - -#ifndef _AIX -using ::abs; -#endif - -#ifndef __sun__ -using ::acos; -using ::acosf; -using ::asin; -using ::asinf; -using ::atan; -using ::atanf; -using ::atan2; -using ::atan2f; -using ::ceil; -using ::ceilf; -using ::cos; -using ::cosf; -using ::cosh; -using ::coshf; -#endif // __sun__ - -using ::exp; -using ::expf; - -#ifndef __sun__ -using ::fabs; -using ::fabsf; -using ::floor; -using ::floorf; -#endif //__sun__ - -using ::fmod; -using ::fmodf; - -#ifndef __sun__ -using ::frexp; -using ::frexpf; -using ::ldexp; -using ::ldexpf; -#endif // __sun__ - -using ::log; -using ::logf; - -#ifndef __sun__ -using ::log10; -using ::log10f; -using ::modf; -using ::modff; -#endif // __sun__ - -using ::pow; -using ::powf; - -#ifndef __sun__ -using ::sin; -using ::sinf; -using ::sinh; -using ::sinhf; -#endif // __sun__ - -using ::sqrt; -using ::sqrtf; -using ::tan; -using ::tanf; - -#ifndef __sun__ -using ::tanh; -using ::tanhf; - -#ifndef _LIBCPP_MSVCRT -using ::acosh; -using ::acoshf; -using ::asinh; -using ::asinhf; -using ::atanh; -using ::atanhf; -using ::cbrt; -using ::cbrtf; -#endif - -using ::copysign; -using ::copysignf; - -#ifndef _LIBCPP_MSVCRT -using ::erf; -using ::erff; -using ::erfc; -using ::erfcf; -using ::exp2; -using ::exp2f; -using ::expm1; -using ::expm1f; -using ::fdim; -using ::fdimf; -using ::fmaf; -using ::fma; -using ::fmax; -using ::fmaxf; -using ::fmin; -using ::fminf; -using ::hypot; -using ::hypotf; -using ::ilogb; -using ::ilogbf; -using ::lgamma; -using ::lgammaf; -using ::llrint; -using ::llrintf; -using ::llround; -using ::llroundf; -using ::log1p; -using ::log1pf; -using ::log2; -using ::log2f; -using ::logb; -using ::logbf; -using ::lrint; -using ::lrintf; -using ::lround; -using ::lroundf; -#endif // _LIBCPP_MSVCRT -#endif // __sun__ - -#ifndef _LIBCPP_MSVCRT -using ::nan; -using ::nanf; -#endif // _LIBCPP_MSVCRT - -#ifndef __sun__ -#ifndef _LIBCPP_MSVCRT -using ::nearbyint; -using ::nearbyintf; -using ::nextafter; -using ::nextafterf; -using ::nexttoward; -using ::nexttowardf; -using ::remainder; -using ::remainderf; -using ::remquo; -using ::remquof; -using ::rint; -using ::rintf; -using ::round; -using ::roundf; -using ::scalbln; -using ::scalblnf; -using ::scalbn; -using ::scalbnf; -using ::tgamma; -using ::tgammaf; -using ::trunc; -using ::truncf; -#endif // !_LIBCPP_MSVCRT - -using ::acosl; -using ::asinl; -using ::atanl; -using ::atan2l; -using ::ceill; -using ::cosl; -using ::coshl; -using ::expl; -using ::fabsl; -using ::floorl; -using ::fmodl; -using ::frexpl; -using ::ldexpl; -using ::logl; -using ::log10l; -using ::modfl; -using ::powl; -using ::sinl; -using ::sinhl; -using ::sqrtl; -using ::tanl; - -#ifndef _LIBCPP_MSVCRT -using ::tanhl; -using ::acoshl; -using ::asinhl; -using ::atanhl; -using ::cbrtl; -#endif // !_LIBCPP_MSVCRT - -using ::copysignl; - -#ifndef _LIBCPP_MSVCRT -using ::erfl; -using ::erfcl; -using ::exp2l; -using ::expm1l; -using ::fdiml; -using ::fmal; -using ::fmaxl; -using ::fminl; -using ::hypotl; -using ::ilogbl; -using ::lgammal; -using ::llrintl; -using ::llroundl; -using ::log1pl; -using ::log2l; -using ::logbl; -using ::lrintl; -using ::lroundl; -using ::nanl; -using ::nearbyintl; -using ::nextafterl; -using ::nexttowardl; -using ::remainderl; -using ::remquol; -using ::rintl; -using ::roundl; -using ::scalblnl; -using ::scalbnl; -using ::tgammal; -using ::truncl; -#endif // !_LIBCPP_MSVCRT - -#else -using ::lgamma; -using ::lgammaf; -#endif // __sun__ - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CMATH diff --git a/headers/libs/libc++/codecvt b/headers/libs/libc++/codecvt deleted file mode 100644 index 6eff107cd1..0000000000 --- a/headers/libs/libc++/codecvt +++ /dev/null @@ -1,550 +0,0 @@ -// -*- C++ -*- -//===-------------------------- codecvt -----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CODECVT -#define _LIBCPP_CODECVT - -/* - codecvt synopsis - -namespace std -{ - -enum codecvt_mode -{ - consume_header = 4, - generate_header = 2, - little_endian = 1 -}; - -template -class codecvt_utf8 - : public codecvt -{ - explicit codecvt_utf8(size_t refs = 0); - ~codecvt_utf8(); -}; - -template -class codecvt_utf16 - : public codecvt -{ - explicit codecvt_utf16(size_t refs = 0); - ~codecvt_utf16(); -}; - -template -class codecvt_utf8_utf16 - : public codecvt -{ - explicit codecvt_utf8_utf16(size_t refs = 0); - ~codecvt_utf8_utf16(); -}; - -} // std - -*/ - -#include <__config> -#include <__locale> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -enum codecvt_mode -{ - consume_header = 4, - generate_header = 2, - little_endian = 1 -}; - -// codecvt_utf8 - -template class __codecvt_utf8; - -template <> -class _LIBCPP_TYPE_VIS __codecvt_utf8 - : public codecvt -{ - unsigned long _Maxcode_; - codecvt_mode _Mode_; -public: - typedef wchar_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - _LIBCPP_ALWAYS_INLINE - explicit __codecvt_utf8(size_t __refs, unsigned long _Maxcode, - codecvt_mode _Mode) - : codecvt(__refs), _Maxcode_(_Maxcode), - _Mode_(_Mode) {} -protected: - virtual result - do_out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual result - do_in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; - virtual result - do_unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const throw(); - virtual bool do_always_noconv() const throw(); - virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, - size_t __mx) const; - virtual int do_max_length() const throw(); -}; - -template <> -class _LIBCPP_TYPE_VIS __codecvt_utf8 - : public codecvt -{ - unsigned long _Maxcode_; - codecvt_mode _Mode_; -public: - typedef char16_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - _LIBCPP_ALWAYS_INLINE - explicit __codecvt_utf8(size_t __refs, unsigned long _Maxcode, - codecvt_mode _Mode) - : codecvt(__refs), _Maxcode_(_Maxcode), - _Mode_(_Mode) {} -protected: - virtual result - do_out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual result - do_in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; - virtual result - do_unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const throw(); - virtual bool do_always_noconv() const throw(); - virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, - size_t __mx) const; - virtual int do_max_length() const throw(); -}; - -template <> -class _LIBCPP_TYPE_VIS __codecvt_utf8 - : public codecvt -{ - unsigned long _Maxcode_; - codecvt_mode _Mode_; -public: - typedef char32_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - _LIBCPP_ALWAYS_INLINE - explicit __codecvt_utf8(size_t __refs, unsigned long _Maxcode, - codecvt_mode _Mode) - : codecvt(__refs), _Maxcode_(_Maxcode), - _Mode_(_Mode) {} -protected: - virtual result - do_out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual result - do_in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; - virtual result - do_unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const throw(); - virtual bool do_always_noconv() const throw(); - virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, - size_t __mx) const; - virtual int do_max_length() const throw(); -}; - -template -class _LIBCPP_TYPE_VIS_ONLY codecvt_utf8 - : public __codecvt_utf8<_Elem> -{ -public: - _LIBCPP_ALWAYS_INLINE - explicit codecvt_utf8(size_t __refs = 0) - : __codecvt_utf8<_Elem>(__refs, _Maxcode, _Mode) {} - - _LIBCPP_ALWAYS_INLINE - ~codecvt_utf8() {} -}; - -// codecvt_utf16 - -template class __codecvt_utf16; - -template <> -class _LIBCPP_TYPE_VIS __codecvt_utf16 - : public codecvt -{ - unsigned long _Maxcode_; - codecvt_mode _Mode_; -public: - typedef wchar_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - _LIBCPP_ALWAYS_INLINE - explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode, - codecvt_mode _Mode) - : codecvt(__refs), _Maxcode_(_Maxcode), - _Mode_(_Mode) {} -protected: - virtual result - do_out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual result - do_in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; - virtual result - do_unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const throw(); - virtual bool do_always_noconv() const throw(); - virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, - size_t __mx) const; - virtual int do_max_length() const throw(); -}; - -template <> -class _LIBCPP_TYPE_VIS __codecvt_utf16 - : public codecvt -{ - unsigned long _Maxcode_; - codecvt_mode _Mode_; -public: - typedef wchar_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - _LIBCPP_ALWAYS_INLINE - explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode, - codecvt_mode _Mode) - : codecvt(__refs), _Maxcode_(_Maxcode), - _Mode_(_Mode) {} -protected: - virtual result - do_out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual result - do_in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; - virtual result - do_unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const throw(); - virtual bool do_always_noconv() const throw(); - virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, - size_t __mx) const; - virtual int do_max_length() const throw(); -}; - -template <> -class _LIBCPP_TYPE_VIS __codecvt_utf16 - : public codecvt -{ - unsigned long _Maxcode_; - codecvt_mode _Mode_; -public: - typedef char16_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - _LIBCPP_ALWAYS_INLINE - explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode, - codecvt_mode _Mode) - : codecvt(__refs), _Maxcode_(_Maxcode), - _Mode_(_Mode) {} -protected: - virtual result - do_out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual result - do_in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; - virtual result - do_unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const throw(); - virtual bool do_always_noconv() const throw(); - virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, - size_t __mx) const; - virtual int do_max_length() const throw(); -}; - -template <> -class _LIBCPP_TYPE_VIS __codecvt_utf16 - : public codecvt -{ - unsigned long _Maxcode_; - codecvt_mode _Mode_; -public: - typedef char16_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - _LIBCPP_ALWAYS_INLINE - explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode, - codecvt_mode _Mode) - : codecvt(__refs), _Maxcode_(_Maxcode), - _Mode_(_Mode) {} -protected: - virtual result - do_out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual result - do_in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; - virtual result - do_unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const throw(); - virtual bool do_always_noconv() const throw(); - virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, - size_t __mx) const; - virtual int do_max_length() const throw(); -}; - -template <> -class _LIBCPP_TYPE_VIS __codecvt_utf16 - : public codecvt -{ - unsigned long _Maxcode_; - codecvt_mode _Mode_; -public: - typedef char32_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - _LIBCPP_ALWAYS_INLINE - explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode, - codecvt_mode _Mode) - : codecvt(__refs), _Maxcode_(_Maxcode), - _Mode_(_Mode) {} -protected: - virtual result - do_out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual result - do_in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; - virtual result - do_unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const throw(); - virtual bool do_always_noconv() const throw(); - virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, - size_t __mx) const; - virtual int do_max_length() const throw(); -}; - -template <> -class _LIBCPP_TYPE_VIS __codecvt_utf16 - : public codecvt -{ - unsigned long _Maxcode_; - codecvt_mode _Mode_; -public: - typedef char32_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - _LIBCPP_ALWAYS_INLINE - explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode, - codecvt_mode _Mode) - : codecvt(__refs), _Maxcode_(_Maxcode), - _Mode_(_Mode) {} -protected: - virtual result - do_out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual result - do_in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; - virtual result - do_unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const throw(); - virtual bool do_always_noconv() const throw(); - virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, - size_t __mx) const; - virtual int do_max_length() const throw(); -}; - -template -class _LIBCPP_TYPE_VIS_ONLY codecvt_utf16 - : public __codecvt_utf16<_Elem, _Mode & little_endian> -{ -public: - _LIBCPP_ALWAYS_INLINE - explicit codecvt_utf16(size_t __refs = 0) - : __codecvt_utf16<_Elem, _Mode & little_endian>(__refs, _Maxcode, _Mode) {} - - _LIBCPP_ALWAYS_INLINE - ~codecvt_utf16() {} -}; - -// codecvt_utf8_utf16 - -template class __codecvt_utf8_utf16; - -template <> -class _LIBCPP_TYPE_VIS __codecvt_utf8_utf16 - : public codecvt -{ - unsigned long _Maxcode_; - codecvt_mode _Mode_; -public: - typedef wchar_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - _LIBCPP_ALWAYS_INLINE - explicit __codecvt_utf8_utf16(size_t __refs, unsigned long _Maxcode, - codecvt_mode _Mode) - : codecvt(__refs), _Maxcode_(_Maxcode), - _Mode_(_Mode) {} -protected: - virtual result - do_out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual result - do_in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; - virtual result - do_unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const throw(); - virtual bool do_always_noconv() const throw(); - virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, - size_t __mx) const; - virtual int do_max_length() const throw(); -}; - -template <> -class _LIBCPP_TYPE_VIS __codecvt_utf8_utf16 - : public codecvt -{ - unsigned long _Maxcode_; - codecvt_mode _Mode_; -public: - typedef char32_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - _LIBCPP_ALWAYS_INLINE - explicit __codecvt_utf8_utf16(size_t __refs, unsigned long _Maxcode, - codecvt_mode _Mode) - : codecvt(__refs), _Maxcode_(_Maxcode), - _Mode_(_Mode) {} -protected: - virtual result - do_out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual result - do_in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; - virtual result - do_unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const throw(); - virtual bool do_always_noconv() const throw(); - virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, - size_t __mx) const; - virtual int do_max_length() const throw(); -}; - -template <> -class _LIBCPP_TYPE_VIS __codecvt_utf8_utf16 - : public codecvt -{ - unsigned long _Maxcode_; - codecvt_mode _Mode_; -public: - typedef char16_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - _LIBCPP_ALWAYS_INLINE - explicit __codecvt_utf8_utf16(size_t __refs, unsigned long _Maxcode, - codecvt_mode _Mode) - : codecvt(__refs), _Maxcode_(_Maxcode), - _Mode_(_Mode) {} -protected: - virtual result - do_out(state_type& __st, - const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual result - do_in(state_type& __st, - const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, - intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; - virtual result - do_unshift(state_type& __st, - extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const throw(); - virtual bool do_always_noconv() const throw(); - virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, - size_t __mx) const; - virtual int do_max_length() const throw(); -}; - -template -class _LIBCPP_TYPE_VIS_ONLY codecvt_utf8_utf16 - : public __codecvt_utf8_utf16<_Elem> -{ -public: - _LIBCPP_ALWAYS_INLINE - explicit codecvt_utf8_utf16(size_t __refs = 0) - : __codecvt_utf8_utf16<_Elem>(__refs, _Maxcode, _Mode) {} - - _LIBCPP_ALWAYS_INLINE - ~codecvt_utf8_utf16() {} -}; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CODECVT diff --git a/headers/libs/libc++/complex b/headers/libs/libc++/complex deleted file mode 100644 index 2943da1d77..0000000000 --- a/headers/libs/libc++/complex +++ /dev/null @@ -1,1567 +0,0 @@ -// -*- C++ -*- -//===--------------------------- complex ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_COMPLEX -#define _LIBCPP_COMPLEX - -/* - complex synopsis - -namespace std -{ - -template -class complex -{ -public: - typedef T value_type; - - complex(const T& re = T(), const T& im = T()); // constexpr in C++14 - complex(const complex&); // constexpr in C++14 - template complex(const complex&); // constexpr in C++14 - - T real() const; // constexpr in C++14 - T imag() const; // constexpr in C++14 - - void real(T); - void imag(T); - - complex& operator= (const T&); - complex& operator+=(const T&); - complex& operator-=(const T&); - complex& operator*=(const T&); - complex& operator/=(const T&); - - complex& operator=(const complex&); - template complex& operator= (const complex&); - template complex& operator+=(const complex&); - template complex& operator-=(const complex&); - template complex& operator*=(const complex&); - template complex& operator/=(const complex&); -}; - -template<> -class complex -{ -public: - typedef float value_type; - - constexpr complex(float re = 0.0f, float im = 0.0f); - explicit constexpr complex(const complex&); - explicit constexpr complex(const complex&); - - constexpr float real() const; - void real(float); - constexpr float imag() const; - void imag(float); - - complex& operator= (float); - complex& operator+=(float); - complex& operator-=(float); - complex& operator*=(float); - complex& operator/=(float); - - complex& operator=(const complex&); - template complex& operator= (const complex&); - template complex& operator+=(const complex&); - template complex& operator-=(const complex&); - template complex& operator*=(const complex&); - template complex& operator/=(const complex&); -}; - -template<> -class complex -{ -public: - typedef double value_type; - - constexpr complex(double re = 0.0, double im = 0.0); - constexpr complex(const complex&); - explicit constexpr complex(const complex&); - - constexpr double real() const; - void real(double); - constexpr double imag() const; - void imag(double); - - complex& operator= (double); - complex& operator+=(double); - complex& operator-=(double); - complex& operator*=(double); - complex& operator/=(double); - complex& operator=(const complex&); - - template complex& operator= (const complex&); - template complex& operator+=(const complex&); - template complex& operator-=(const complex&); - template complex& operator*=(const complex&); - template complex& operator/=(const complex&); -}; - -template<> -class complex -{ -public: - typedef long double value_type; - - constexpr complex(long double re = 0.0L, long double im = 0.0L); - constexpr complex(const complex&); - constexpr complex(const complex&); - - constexpr long double real() const; - void real(long double); - constexpr long double imag() const; - void imag(long double); - - complex& operator=(const complex&); - complex& operator= (long double); - complex& operator+=(long double); - complex& operator-=(long double); - complex& operator*=(long double); - complex& operator/=(long double); - - template complex& operator= (const complex&); - template complex& operator+=(const complex&); - template complex& operator-=(const complex&); - template complex& operator*=(const complex&); - template complex& operator/=(const complex&); -}; - -// 26.3.6 operators: -template complex operator+(const complex&, const complex&); -template complex operator+(const complex&, const T&); -template complex operator+(const T&, const complex&); -template complex operator-(const complex&, const complex&); -template complex operator-(const complex&, const T&); -template complex operator-(const T&, const complex&); -template complex operator*(const complex&, const complex&); -template complex operator*(const complex&, const T&); -template complex operator*(const T&, const complex&); -template complex operator/(const complex&, const complex&); -template complex operator/(const complex&, const T&); -template complex operator/(const T&, const complex&); -template complex operator+(const complex&); -template complex operator-(const complex&); -template bool operator==(const complex&, const complex&); // constexpr in C++14 -template bool operator==(const complex&, const T&); // constexpr in C++14 -template bool operator==(const T&, const complex&); // constexpr in C++14 -template bool operator!=(const complex&, const complex&); // constexpr in C++14 -template bool operator!=(const complex&, const T&); // constexpr in C++14 -template bool operator!=(const T&, const complex&); // constexpr in C++14 - -template - basic_istream& - operator>>(basic_istream&, complex&); -template - basic_ostream& - operator<<(basic_ostream&, const complex&); - -// 26.3.7 values: - -template T real(const complex&); // constexpr in C++14 - long double real(long double); // constexpr in C++14 - double real(double); // constexpr in C++14 -template double real(T); // constexpr in C++14 - float real(float); // constexpr in C++14 - -template T imag(const complex&); // constexpr in C++14 - long double imag(long double); // constexpr in C++14 - double imag(double); // constexpr in C++14 -template double imag(T); // constexpr in C++14 - float imag(float); // constexpr in C++14 - -template T abs(const complex&); - -template T arg(const complex&); - long double arg(long double); - double arg(double); -template double arg(T); - float arg(float); - -template T norm(const complex&); - long double norm(long double); - double norm(double); -template double norm(T); - float norm(float); - -template complex conj(const complex&); - complex conj(long double); - complex conj(double); -template complex conj(T); - complex conj(float); - -template complex proj(const complex&); - complex proj(long double); - complex proj(double); -template complex proj(T); - complex proj(float); - -template complex polar(const T&, const T& = 0); - -// 26.3.8 transcendentals: -template complex acos(const complex&); -template complex asin(const complex&); -template complex atan(const complex&); -template complex acosh(const complex&); -template complex asinh(const complex&); -template complex atanh(const complex&); -template complex cos (const complex&); -template complex cosh (const complex&); -template complex exp (const complex&); -template complex log (const complex&); -template complex log10(const complex&); - -template complex pow(const complex&, const T&); -template complex pow(const complex&, const complex&); -template complex pow(const T&, const complex&); - -template complex sin (const complex&); -template complex sinh (const complex&); -template complex sqrt (const complex&); -template complex tan (const complex&); -template complex tanh (const complex&); - -template - basic_istream& - operator>>(basic_istream& is, complex& x); - -template - basic_ostream& - operator<<(basic_ostream& o, const complex& x); - -} // std - -*/ - -#include <__config> -#include -#include -#include -#include -#if defined(_LIBCPP_NO_EXCEPTIONS) - #include -#endif - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -template class _LIBCPP_TYPE_VIS_ONLY complex; - -template complex<_Tp> operator*(const complex<_Tp>& __z, const complex<_Tp>& __w); -template complex<_Tp> operator/(const complex<_Tp>& __x, const complex<_Tp>& __y); - -template -class _LIBCPP_TYPE_VIS_ONLY complex -{ -public: - typedef _Tp value_type; -private: - value_type __re_; - value_type __im_; -public: - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 - complex(const value_type& __re = value_type(), const value_type& __im = value_type()) - : __re_(__re), __im_(__im) {} - template _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 - complex(const complex<_Xp>& __c) - : __re_(__c.real()), __im_(__c.imag()) {} - - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 value_type real() const {return __re_;} - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 value_type imag() const {return __im_;} - - _LIBCPP_INLINE_VISIBILITY void real(value_type __re) {__re_ = __re;} - _LIBCPP_INLINE_VISIBILITY void imag(value_type __im) {__im_ = __im;} - - _LIBCPP_INLINE_VISIBILITY complex& operator= (const value_type& __re) - {__re_ = __re; __im_ = value_type(); return *this;} - _LIBCPP_INLINE_VISIBILITY complex& operator+=(const value_type& __re) {__re_ += __re; return *this;} - _LIBCPP_INLINE_VISIBILITY complex& operator-=(const value_type& __re) {__re_ -= __re; return *this;} - _LIBCPP_INLINE_VISIBILITY complex& operator*=(const value_type& __re) {__re_ *= __re; __im_ *= __re; return *this;} - _LIBCPP_INLINE_VISIBILITY complex& operator/=(const value_type& __re) {__re_ /= __re; __im_ /= __re; return *this;} - - template _LIBCPP_INLINE_VISIBILITY complex& operator= (const complex<_Xp>& __c) - { - __re_ = __c.real(); - __im_ = __c.imag(); - return *this; - } - template _LIBCPP_INLINE_VISIBILITY complex& operator+=(const complex<_Xp>& __c) - { - __re_ += __c.real(); - __im_ += __c.imag(); - return *this; - } - template _LIBCPP_INLINE_VISIBILITY complex& operator-=(const complex<_Xp>& __c) - { - __re_ -= __c.real(); - __im_ -= __c.imag(); - return *this; - } - template _LIBCPP_INLINE_VISIBILITY complex& operator*=(const complex<_Xp>& __c) - { - *this = *this * complex(__c.real(), __c.imag()); - return *this; - } - template _LIBCPP_INLINE_VISIBILITY complex& operator/=(const complex<_Xp>& __c) - { - *this = *this / complex(__c.real(), __c.imag()); - return *this; - } -}; - -template<> class _LIBCPP_TYPE_VIS_ONLY complex; -template<> class _LIBCPP_TYPE_VIS_ONLY complex; - -template<> -class _LIBCPP_TYPE_VIS_ONLY complex -{ - float __re_; - float __im_; -public: - typedef float value_type; - - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR complex(float __re = 0.0f, float __im = 0.0f) - : __re_(__re), __im_(__im) {} - explicit _LIBCPP_CONSTEXPR complex(const complex& __c); - explicit _LIBCPP_CONSTEXPR complex(const complex& __c); - - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR float real() const {return __re_;} - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR float imag() const {return __im_;} - - _LIBCPP_INLINE_VISIBILITY void real(value_type __re) {__re_ = __re;} - _LIBCPP_INLINE_VISIBILITY void imag(value_type __im) {__im_ = __im;} - - _LIBCPP_INLINE_VISIBILITY complex& operator= (float __re) - {__re_ = __re; __im_ = value_type(); return *this;} - _LIBCPP_INLINE_VISIBILITY complex& operator+=(float __re) {__re_ += __re; return *this;} - _LIBCPP_INLINE_VISIBILITY complex& operator-=(float __re) {__re_ -= __re; return *this;} - _LIBCPP_INLINE_VISIBILITY complex& operator*=(float __re) {__re_ *= __re; __im_ *= __re; return *this;} - _LIBCPP_INLINE_VISIBILITY complex& operator/=(float __re) {__re_ /= __re; __im_ /= __re; return *this;} - - template _LIBCPP_INLINE_VISIBILITY complex& operator= (const complex<_Xp>& __c) - { - __re_ = __c.real(); - __im_ = __c.imag(); - return *this; - } - template _LIBCPP_INLINE_VISIBILITY complex& operator+=(const complex<_Xp>& __c) - { - __re_ += __c.real(); - __im_ += __c.imag(); - return *this; - } - template _LIBCPP_INLINE_VISIBILITY complex& operator-=(const complex<_Xp>& __c) - { - __re_ -= __c.real(); - __im_ -= __c.imag(); - return *this; - } - template _LIBCPP_INLINE_VISIBILITY complex& operator*=(const complex<_Xp>& __c) - { - *this = *this * complex(__c.real(), __c.imag()); - return *this; - } - template _LIBCPP_INLINE_VISIBILITY complex& operator/=(const complex<_Xp>& __c) - { - *this = *this / complex(__c.real(), __c.imag()); - return *this; - } -}; - -template<> -class _LIBCPP_TYPE_VIS_ONLY complex -{ - double __re_; - double __im_; -public: - typedef double value_type; - - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR complex(double __re = 0.0, double __im = 0.0) - : __re_(__re), __im_(__im) {} - _LIBCPP_CONSTEXPR complex(const complex& __c); - explicit _LIBCPP_CONSTEXPR complex(const complex& __c); - - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR double real() const {return __re_;} - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR double imag() const {return __im_;} - - _LIBCPP_INLINE_VISIBILITY void real(value_type __re) {__re_ = __re;} - _LIBCPP_INLINE_VISIBILITY void imag(value_type __im) {__im_ = __im;} - - _LIBCPP_INLINE_VISIBILITY complex& operator= (double __re) - {__re_ = __re; __im_ = value_type(); return *this;} - _LIBCPP_INLINE_VISIBILITY complex& operator+=(double __re) {__re_ += __re; return *this;} - _LIBCPP_INLINE_VISIBILITY complex& operator-=(double __re) {__re_ -= __re; return *this;} - _LIBCPP_INLINE_VISIBILITY complex& operator*=(double __re) {__re_ *= __re; __im_ *= __re; return *this;} - _LIBCPP_INLINE_VISIBILITY complex& operator/=(double __re) {__re_ /= __re; __im_ /= __re; return *this;} - - template _LIBCPP_INLINE_VISIBILITY complex& operator= (const complex<_Xp>& __c) - { - __re_ = __c.real(); - __im_ = __c.imag(); - return *this; - } - template _LIBCPP_INLINE_VISIBILITY complex& operator+=(const complex<_Xp>& __c) - { - __re_ += __c.real(); - __im_ += __c.imag(); - return *this; - } - template _LIBCPP_INLINE_VISIBILITY complex& operator-=(const complex<_Xp>& __c) - { - __re_ -= __c.real(); - __im_ -= __c.imag(); - return *this; - } - template _LIBCPP_INLINE_VISIBILITY complex& operator*=(const complex<_Xp>& __c) - { - *this = *this * complex(__c.real(), __c.imag()); - return *this; - } - template _LIBCPP_INLINE_VISIBILITY complex& operator/=(const complex<_Xp>& __c) - { - *this = *this / complex(__c.real(), __c.imag()); - return *this; - } -}; - -template<> -class _LIBCPP_TYPE_VIS_ONLY complex -{ - long double __re_; - long double __im_; -public: - typedef long double value_type; - - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR complex(long double __re = 0.0L, long double __im = 0.0L) - : __re_(__re), __im_(__im) {} - _LIBCPP_CONSTEXPR complex(const complex& __c); - _LIBCPP_CONSTEXPR complex(const complex& __c); - - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR long double real() const {return __re_;} - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR long double imag() const {return __im_;} - - _LIBCPP_INLINE_VISIBILITY void real(value_type __re) {__re_ = __re;} - _LIBCPP_INLINE_VISIBILITY void imag(value_type __im) {__im_ = __im;} - - _LIBCPP_INLINE_VISIBILITY complex& operator= (long double __re) - {__re_ = __re; __im_ = value_type(); return *this;} - _LIBCPP_INLINE_VISIBILITY complex& operator+=(long double __re) {__re_ += __re; return *this;} - _LIBCPP_INLINE_VISIBILITY complex& operator-=(long double __re) {__re_ -= __re; return *this;} - _LIBCPP_INLINE_VISIBILITY complex& operator*=(long double __re) {__re_ *= __re; __im_ *= __re; return *this;} - _LIBCPP_INLINE_VISIBILITY complex& operator/=(long double __re) {__re_ /= __re; __im_ /= __re; return *this;} - - template _LIBCPP_INLINE_VISIBILITY complex& operator= (const complex<_Xp>& __c) - { - __re_ = __c.real(); - __im_ = __c.imag(); - return *this; - } - template _LIBCPP_INLINE_VISIBILITY complex& operator+=(const complex<_Xp>& __c) - { - __re_ += __c.real(); - __im_ += __c.imag(); - return *this; - } - template _LIBCPP_INLINE_VISIBILITY complex& operator-=(const complex<_Xp>& __c) - { - __re_ -= __c.real(); - __im_ -= __c.imag(); - return *this; - } - template _LIBCPP_INLINE_VISIBILITY complex& operator*=(const complex<_Xp>& __c) - { - *this = *this * complex(__c.real(), __c.imag()); - return *this; - } - template _LIBCPP_INLINE_VISIBILITY complex& operator/=(const complex<_Xp>& __c) - { - *this = *this / complex(__c.real(), __c.imag()); - return *this; - } -}; - -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -complex::complex(const complex& __c) - : __re_(__c.real()), __im_(__c.imag()) {} - -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -complex::complex(const complex& __c) - : __re_(__c.real()), __im_(__c.imag()) {} - -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -complex::complex(const complex& __c) - : __re_(__c.real()), __im_(__c.imag()) {} - -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -complex::complex(const complex& __c) - : __re_(__c.real()), __im_(__c.imag()) {} - -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -complex::complex(const complex& __c) - : __re_(__c.real()), __im_(__c.imag()) {} - -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -complex::complex(const complex& __c) - : __re_(__c.real()), __im_(__c.imag()) {} - -// 26.3.6 operators: - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -operator+(const complex<_Tp>& __x, const complex<_Tp>& __y) -{ - complex<_Tp> __t(__x); - __t += __y; - return __t; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -operator+(const complex<_Tp>& __x, const _Tp& __y) -{ - complex<_Tp> __t(__x); - __t += __y; - return __t; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -operator+(const _Tp& __x, const complex<_Tp>& __y) -{ - complex<_Tp> __t(__y); - __t += __x; - return __t; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -operator-(const complex<_Tp>& __x, const complex<_Tp>& __y) -{ - complex<_Tp> __t(__x); - __t -= __y; - return __t; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -operator-(const complex<_Tp>& __x, const _Tp& __y) -{ - complex<_Tp> __t(__x); - __t -= __y; - return __t; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -operator-(const _Tp& __x, const complex<_Tp>& __y) -{ - complex<_Tp> __t(-__y); - __t += __x; - return __t; -} - -template -complex<_Tp> -operator*(const complex<_Tp>& __z, const complex<_Tp>& __w) -{ - _Tp __a = __z.real(); - _Tp __b = __z.imag(); - _Tp __c = __w.real(); - _Tp __d = __w.imag(); - _Tp __ac = __a * __c; - _Tp __bd = __b * __d; - _Tp __ad = __a * __d; - _Tp __bc = __b * __c; - _Tp __x = __ac - __bd; - _Tp __y = __ad + __bc; - if (isnan(__x) && isnan(__y)) - { - bool __recalc = false; - if (isinf(__a) || isinf(__b)) - { - __a = copysign(isinf(__a) ? _Tp(1) : _Tp(0), __a); - __b = copysign(isinf(__b) ? _Tp(1) : _Tp(0), __b); - if (isnan(__c)) - __c = copysign(_Tp(0), __c); - if (isnan(__d)) - __d = copysign(_Tp(0), __d); - __recalc = true; - } - if (isinf(__c) || isinf(__d)) - { - __c = copysign(isinf(__c) ? _Tp(1) : _Tp(0), __c); - __d = copysign(isinf(__d) ? _Tp(1) : _Tp(0), __d); - if (isnan(__a)) - __a = copysign(_Tp(0), __a); - if (isnan(__b)) - __b = copysign(_Tp(0), __b); - __recalc = true; - } - if (!__recalc && (isinf(__ac) || isinf(__bd) || - isinf(__ad) || isinf(__bc))) - { - if (isnan(__a)) - __a = copysign(_Tp(0), __a); - if (isnan(__b)) - __b = copysign(_Tp(0), __b); - if (isnan(__c)) - __c = copysign(_Tp(0), __c); - if (isnan(__d)) - __d = copysign(_Tp(0), __d); - __recalc = true; - } - if (__recalc) - { - __x = _Tp(INFINITY) * (__a * __c - __b * __d); - __y = _Tp(INFINITY) * (__a * __d + __b * __c); - } - } - return complex<_Tp>(__x, __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -operator*(const complex<_Tp>& __x, const _Tp& __y) -{ - complex<_Tp> __t(__x); - __t *= __y; - return __t; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -operator*(const _Tp& __x, const complex<_Tp>& __y) -{ - complex<_Tp> __t(__y); - __t *= __x; - return __t; -} - -template -complex<_Tp> -operator/(const complex<_Tp>& __z, const complex<_Tp>& __w) -{ - int __ilogbw = 0; - _Tp __a = __z.real(); - _Tp __b = __z.imag(); - _Tp __c = __w.real(); - _Tp __d = __w.imag(); - _Tp __logbw = logb(fmax(fabs(__c), fabs(__d))); - if (isfinite(__logbw)) - { - __ilogbw = static_cast(__logbw); - __c = scalbn(__c, -__ilogbw); - __d = scalbn(__d, -__ilogbw); - } - _Tp __denom = __c * __c + __d * __d; - _Tp __x = scalbn((__a * __c + __b * __d) / __denom, -__ilogbw); - _Tp __y = scalbn((__b * __c - __a * __d) / __denom, -__ilogbw); - if (isnan(__x) && isnan(__y)) - { - if ((__denom == _Tp(0)) && (!isnan(__a) || !isnan(__b))) - { - __x = copysign(_Tp(INFINITY), __c) * __a; - __y = copysign(_Tp(INFINITY), __c) * __b; - } - else if ((isinf(__a) || isinf(__b)) && isfinite(__c) && isfinite(__d)) - { - __a = copysign(isinf(__a) ? _Tp(1) : _Tp(0), __a); - __b = copysign(isinf(__b) ? _Tp(1) : _Tp(0), __b); - __x = _Tp(INFINITY) * (__a * __c + __b * __d); - __y = _Tp(INFINITY) * (__b * __c - __a * __d); - } - else if (isinf(__logbw) && __logbw > _Tp(0) && isfinite(__a) && isfinite(__b)) - { - __c = copysign(isinf(__c) ? _Tp(1) : _Tp(0), __c); - __d = copysign(isinf(__d) ? _Tp(1) : _Tp(0), __d); - __x = _Tp(0) * (__a * __c + __b * __d); - __y = _Tp(0) * (__b * __c - __a * __d); - } - } - return complex<_Tp>(__x, __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -operator/(const complex<_Tp>& __x, const _Tp& __y) -{ - return complex<_Tp>(__x.real() / __y, __x.imag() / __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -operator/(const _Tp& __x, const complex<_Tp>& __y) -{ - complex<_Tp> __t(__x); - __t /= __y; - return __t; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -operator+(const complex<_Tp>& __x) -{ - return __x; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -operator-(const complex<_Tp>& __x) -{ - return complex<_Tp>(-__x.real(), -__x.imag()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -bool -operator==(const complex<_Tp>& __x, const complex<_Tp>& __y) -{ - return __x.real() == __y.real() && __x.imag() == __y.imag(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -bool -operator==(const complex<_Tp>& __x, const _Tp& __y) -{ - return __x.real() == __y && __x.imag() == 0; -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -bool -operator==(const _Tp& __x, const complex<_Tp>& __y) -{ - return __x == __y.real() && 0 == __y.imag(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -bool -operator!=(const complex<_Tp>& __x, const complex<_Tp>& __y) -{ - return !(__x == __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -bool -operator!=(const complex<_Tp>& __x, const _Tp& __y) -{ - return !(__x == __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -bool -operator!=(const _Tp& __x, const complex<_Tp>& __y) -{ - return !(__x == __y); -} - -// 26.3.7 values: - -// real - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -_Tp -real(const complex<_Tp>& __c) -{ - return __c.real(); -} - -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -long double -real(long double __re) -{ - return __re; -} - -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -double -real(double __re) -{ - return __re; -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -typename enable_if -< - is_integral<_Tp>::value, - double ->::type -real(_Tp __re) -{ - return __re; -} - -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -float -real(float __re) -{ - return __re; -} - -// imag - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -_Tp -imag(const complex<_Tp>& __c) -{ - return __c.imag(); -} - -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -long double -imag(long double __re) -{ - return 0; -} - -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -double -imag(double __re) -{ - return 0; -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -typename enable_if -< - is_integral<_Tp>::value, - double ->::type -imag(_Tp __re) -{ - return 0; -} - -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -float -imag(float __re) -{ - return 0; -} - -// abs - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp -abs(const complex<_Tp>& __c) -{ - return hypot(__c.real(), __c.imag()); -} - -// arg - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp -arg(const complex<_Tp>& __c) -{ - return atan2(__c.imag(), __c.real()); -} - -inline _LIBCPP_INLINE_VISIBILITY -long double -arg(long double __re) -{ - return atan2l(0.L, __re); -} - -inline _LIBCPP_INLINE_VISIBILITY -double -arg(double __re) -{ - return atan2(0., __re); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value, - double ->::type -arg(_Tp __re) -{ - return atan2(0., __re); -} - -inline _LIBCPP_INLINE_VISIBILITY -float -arg(float __re) -{ - return atan2f(0.F, __re); -} - -// norm - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp -norm(const complex<_Tp>& __c) -{ - if (isinf(__c.real())) - return abs(__c.real()); - if (isinf(__c.imag())) - return abs(__c.imag()); - return __c.real() * __c.real() + __c.imag() * __c.imag(); -} - -inline _LIBCPP_INLINE_VISIBILITY -long double -norm(long double __re) -{ - return __re * __re; -} - -inline _LIBCPP_INLINE_VISIBILITY -double -norm(double __re) -{ - return __re * __re; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value, - double ->::type -norm(_Tp __re) -{ - return (double)__re * __re; -} - -inline _LIBCPP_INLINE_VISIBILITY -float -norm(float __re) -{ - return __re * __re; -} - -// conj - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -conj(const complex<_Tp>& __c) -{ - return complex<_Tp>(__c.real(), -__c.imag()); -} - -inline _LIBCPP_INLINE_VISIBILITY -complex -conj(long double __re) -{ - return complex(__re); -} - -inline _LIBCPP_INLINE_VISIBILITY -complex -conj(double __re) -{ - return complex(__re); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value, - complex ->::type -conj(_Tp __re) -{ - return complex(__re); -} - -inline _LIBCPP_INLINE_VISIBILITY -complex -conj(float __re) -{ - return complex(__re); -} - -// proj - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -proj(const complex<_Tp>& __c) -{ - std::complex<_Tp> __r = __c; - if (isinf(__c.real()) || isinf(__c.imag())) - __r = complex<_Tp>(INFINITY, copysign(_Tp(0), __c.imag())); - return __r; -} - -inline _LIBCPP_INLINE_VISIBILITY -complex -proj(long double __re) -{ - if (isinf(__re)) - __re = abs(__re); - return complex(__re); -} - -inline _LIBCPP_INLINE_VISIBILITY -complex -proj(double __re) -{ - if (isinf(__re)) - __re = abs(__re); - return complex(__re); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_integral<_Tp>::value, - complex ->::type -proj(_Tp __re) -{ - return complex(__re); -} - -inline _LIBCPP_INLINE_VISIBILITY -complex -proj(float __re) -{ - if (isinf(__re)) - __re = abs(__re); - return complex(__re); -} - -// polar - -template -complex<_Tp> -polar(const _Tp& __rho, const _Tp& __theta = _Tp(0)) -{ - if (isnan(__rho) || signbit(__rho)) - return complex<_Tp>(_Tp(NAN), _Tp(NAN)); - if (isnan(__theta)) - { - if (isinf(__rho)) - return complex<_Tp>(__rho, __theta); - return complex<_Tp>(__theta, __theta); - } - if (isinf(__theta)) - { - if (isinf(__rho)) - return complex<_Tp>(__rho, _Tp(NAN)); - return complex<_Tp>(_Tp(NAN), _Tp(NAN)); - } - _Tp __x = __rho * cos(__theta); - if (isnan(__x)) - __x = 0; - _Tp __y = __rho * sin(__theta); - if (isnan(__y)) - __y = 0; - return complex<_Tp>(__x, __y); -} - -// log - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -log(const complex<_Tp>& __x) -{ - return complex<_Tp>(log(abs(__x)), arg(__x)); -} - -// log10 - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -log10(const complex<_Tp>& __x) -{ - return log(__x) / log(_Tp(10)); -} - -// sqrt - -template -complex<_Tp> -sqrt(const complex<_Tp>& __x) -{ - if (isinf(__x.imag())) - return complex<_Tp>(_Tp(INFINITY), __x.imag()); - if (isinf(__x.real())) - { - if (__x.real() > _Tp(0)) - return complex<_Tp>(__x.real(), isnan(__x.imag()) ? __x.imag() : copysign(_Tp(0), __x.imag())); - return complex<_Tp>(isnan(__x.imag()) ? __x.imag() : _Tp(0), copysign(__x.real(), __x.imag())); - } - return polar(sqrt(abs(__x)), arg(__x) / _Tp(2)); -} - -// exp - -template -complex<_Tp> -exp(const complex<_Tp>& __x) -{ - _Tp __i = __x.imag(); - if (isinf(__x.real())) - { - if (__x.real() < _Tp(0)) - { - if (!isfinite(__i)) - __i = _Tp(1); - } - else if (__i == 0 || !isfinite(__i)) - { - if (isinf(__i)) - __i = _Tp(NAN); - return complex<_Tp>(__x.real(), __i); - } - } - else if (isnan(__x.real()) && __x.imag() == 0) - return __x; - _Tp __e = exp(__x.real()); - return complex<_Tp>(__e * cos(__i), __e * sin(__i)); -} - -// pow - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -pow(const complex<_Tp>& __x, const complex<_Tp>& __y) -{ - return exp(__y * log(__x)); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -complex::type> -pow(const complex<_Tp>& __x, const complex<_Up>& __y) -{ - typedef complex::type> result_type; - return _VSTD::pow(result_type(__x), result_type(__y)); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_arithmetic<_Up>::value, - complex::type> ->::type -pow(const complex<_Tp>& __x, const _Up& __y) -{ - typedef complex::type> result_type; - return _VSTD::pow(result_type(__x), result_type(__y)); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_arithmetic<_Tp>::value, - complex::type> ->::type -pow(const _Tp& __x, const complex<_Up>& __y) -{ - typedef complex::type> result_type; - return _VSTD::pow(result_type(__x), result_type(__y)); -} - -// asinh - -template -complex<_Tp> -asinh(const complex<_Tp>& __x) -{ - const _Tp __pi(atan2(+0., -0.)); - if (isinf(__x.real())) - { - if (isnan(__x.imag())) - return __x; - if (isinf(__x.imag())) - return complex<_Tp>(__x.real(), copysign(__pi * _Tp(0.25), __x.imag())); - return complex<_Tp>(__x.real(), copysign(_Tp(0), __x.imag())); - } - if (isnan(__x.real())) - { - if (isinf(__x.imag())) - return complex<_Tp>(__x.imag(), __x.real()); - if (__x.imag() == 0) - return __x; - return complex<_Tp>(__x.real(), __x.real()); - } - if (isinf(__x.imag())) - return complex<_Tp>(copysign(__x.imag(), __x.real()), copysign(__pi/_Tp(2), __x.imag())); - complex<_Tp> __z = log(__x + sqrt(pow(__x, _Tp(2)) + _Tp(1))); - return complex<_Tp>(copysign(__z.real(), __x.real()), copysign(__z.imag(), __x.imag())); -} - -// acosh - -template -complex<_Tp> -acosh(const complex<_Tp>& __x) -{ - const _Tp __pi(atan2(+0., -0.)); - if (isinf(__x.real())) - { - if (isnan(__x.imag())) - return complex<_Tp>(abs(__x.real()), __x.imag()); - if (isinf(__x.imag())) - { - if (__x.real() > 0) - return complex<_Tp>(__x.real(), copysign(__pi * _Tp(0.25), __x.imag())); - else - return complex<_Tp>(-__x.real(), copysign(__pi * _Tp(0.75), __x.imag())); - } - if (__x.real() < 0) - return complex<_Tp>(-__x.real(), copysign(__pi, __x.imag())); - return complex<_Tp>(__x.real(), copysign(_Tp(0), __x.imag())); - } - if (isnan(__x.real())) - { - if (isinf(__x.imag())) - return complex<_Tp>(abs(__x.imag()), __x.real()); - return complex<_Tp>(__x.real(), __x.real()); - } - if (isinf(__x.imag())) - return complex<_Tp>(abs(__x.imag()), copysign(__pi/_Tp(2), __x.imag())); - complex<_Tp> __z = log(__x + sqrt(pow(__x, _Tp(2)) - _Tp(1))); - return complex<_Tp>(copysign(__z.real(), _Tp(0)), copysign(__z.imag(), __x.imag())); -} - -// atanh - -template -complex<_Tp> -atanh(const complex<_Tp>& __x) -{ - const _Tp __pi(atan2(+0., -0.)); - if (isinf(__x.imag())) - { - return complex<_Tp>(copysign(_Tp(0), __x.real()), copysign(__pi/_Tp(2), __x.imag())); - } - if (isnan(__x.imag())) - { - if (isinf(__x.real()) || __x.real() == 0) - return complex<_Tp>(copysign(_Tp(0), __x.real()), __x.imag()); - return complex<_Tp>(__x.imag(), __x.imag()); - } - if (isnan(__x.real())) - { - return complex<_Tp>(__x.real(), __x.real()); - } - if (isinf(__x.real())) - { - return complex<_Tp>(copysign(_Tp(0), __x.real()), copysign(__pi/_Tp(2), __x.imag())); - } - if (abs(__x.real()) == _Tp(1) && __x.imag() == _Tp(0)) - { - return complex<_Tp>(copysign(_Tp(INFINITY), __x.real()), copysign(_Tp(0), __x.imag())); - } - complex<_Tp> __z = log((_Tp(1) + __x) / (_Tp(1) - __x)) / _Tp(2); - return complex<_Tp>(copysign(__z.real(), __x.real()), copysign(__z.imag(), __x.imag())); -} - -// sinh - -template -complex<_Tp> -sinh(const complex<_Tp>& __x) -{ - if (isinf(__x.real()) && !isfinite(__x.imag())) - return complex<_Tp>(__x.real(), _Tp(NAN)); - if (__x.real() == 0 && !isfinite(__x.imag())) - return complex<_Tp>(__x.real(), _Tp(NAN)); - if (__x.imag() == 0 && !isfinite(__x.real())) - return __x; - return complex<_Tp>(sinh(__x.real()) * cos(__x.imag()), cosh(__x.real()) * sin(__x.imag())); -} - -// cosh - -template -complex<_Tp> -cosh(const complex<_Tp>& __x) -{ - if (isinf(__x.real()) && !isfinite(__x.imag())) - return complex<_Tp>(abs(__x.real()), _Tp(NAN)); - if (__x.real() == 0 && !isfinite(__x.imag())) - return complex<_Tp>(_Tp(NAN), __x.real()); - if (__x.real() == 0 && __x.imag() == 0) - return complex<_Tp>(_Tp(1), __x.imag()); - if (__x.imag() == 0 && !isfinite(__x.real())) - return complex<_Tp>(abs(__x.real()), __x.imag()); - return complex<_Tp>(cosh(__x.real()) * cos(__x.imag()), sinh(__x.real()) * sin(__x.imag())); -} - -// tanh - -template -complex<_Tp> -tanh(const complex<_Tp>& __x) -{ - if (isinf(__x.real())) - { - if (!isfinite(__x.imag())) - return complex<_Tp>(_Tp(1), _Tp(0)); - return complex<_Tp>(_Tp(1), copysign(_Tp(0), sin(_Tp(2) * __x.imag()))); - } - if (isnan(__x.real()) && __x.imag() == 0) - return __x; - _Tp __2r(_Tp(2) * __x.real()); - _Tp __2i(_Tp(2) * __x.imag()); - _Tp __d(cosh(__2r) + cos(__2i)); - _Tp __2rsh(sinh(__2r)); - if (isinf(__2rsh) && isinf(__d)) - return complex<_Tp>(__2rsh > _Tp(0) ? _Tp(1) : _Tp(-1), - __2i > _Tp(0) ? _Tp(0) : _Tp(-0.)); - return complex<_Tp>(__2rsh/__d, sin(__2i)/__d); -} - -// asin - -template -complex<_Tp> -asin(const complex<_Tp>& __x) -{ - complex<_Tp> __z = asinh(complex<_Tp>(-__x.imag(), __x.real())); - return complex<_Tp>(__z.imag(), -__z.real()); -} - -// acos - -template -complex<_Tp> -acos(const complex<_Tp>& __x) -{ - const _Tp __pi(atan2(+0., -0.)); - if (isinf(__x.real())) - { - if (isnan(__x.imag())) - return complex<_Tp>(__x.imag(), __x.real()); - if (isinf(__x.imag())) - { - if (__x.real() < _Tp(0)) - return complex<_Tp>(_Tp(0.75) * __pi, -__x.imag()); - return complex<_Tp>(_Tp(0.25) * __pi, -__x.imag()); - } - if (__x.real() < _Tp(0)) - return complex<_Tp>(__pi, signbit(__x.imag()) ? -__x.real() : __x.real()); - return complex<_Tp>(_Tp(0), signbit(__x.imag()) ? __x.real() : -__x.real()); - } - if (isnan(__x.real())) - { - if (isinf(__x.imag())) - return complex<_Tp>(__x.real(), -__x.imag()); - return complex<_Tp>(__x.real(), __x.real()); - } - if (isinf(__x.imag())) - return complex<_Tp>(__pi/_Tp(2), -__x.imag()); - if (__x.real() == 0) - return complex<_Tp>(__pi/_Tp(2), -__x.imag()); - complex<_Tp> __z = log(__x + sqrt(pow(__x, _Tp(2)) - _Tp(1))); - if (signbit(__x.imag())) - return complex<_Tp>(abs(__z.imag()), abs(__z.real())); - return complex<_Tp>(abs(__z.imag()), -abs(__z.real())); -} - -// atan - -template -complex<_Tp> -atan(const complex<_Tp>& __x) -{ - complex<_Tp> __z = atanh(complex<_Tp>(-__x.imag(), __x.real())); - return complex<_Tp>(__z.imag(), -__z.real()); -} - -// sin - -template -complex<_Tp> -sin(const complex<_Tp>& __x) -{ - complex<_Tp> __z = sinh(complex<_Tp>(-__x.imag(), __x.real())); - return complex<_Tp>(__z.imag(), -__z.real()); -} - -// cos - -template -inline _LIBCPP_INLINE_VISIBILITY -complex<_Tp> -cos(const complex<_Tp>& __x) -{ - return cosh(complex<_Tp>(-__x.imag(), __x.real())); -} - -// tan - -template -complex<_Tp> -tan(const complex<_Tp>& __x) -{ - complex<_Tp> __z = tanh(complex<_Tp>(-__x.imag(), __x.real())); - return complex<_Tp>(__z.imag(), -__z.real()); -} - -template -basic_istream<_CharT, _Traits>& -operator>>(basic_istream<_CharT, _Traits>& __is, complex<_Tp>& __x) -{ - if (__is.good()) - { - ws(__is); - if (__is.peek() == _CharT('(')) - { - __is.get(); - _Tp __r; - __is >> __r; - if (!__is.fail()) - { - ws(__is); - _CharT __c = __is.peek(); - if (__c == _CharT(',')) - { - __is.get(); - _Tp __i; - __is >> __i; - if (!__is.fail()) - { - ws(__is); - __c = __is.peek(); - if (__c == _CharT(')')) - { - __is.get(); - __x = complex<_Tp>(__r, __i); - } - else - __is.setstate(ios_base::failbit); - } - else - __is.setstate(ios_base::failbit); - } - else if (__c == _CharT(')')) - { - __is.get(); - __x = complex<_Tp>(__r, _Tp(0)); - } - else - __is.setstate(ios_base::failbit); - } - else - __is.setstate(ios_base::failbit); - } - else - { - _Tp __r; - __is >> __r; - if (!__is.fail()) - __x = complex<_Tp>(__r, _Tp(0)); - else - __is.setstate(ios_base::failbit); - } - } - else - __is.setstate(ios_base::failbit); - return __is; -} - -template -basic_ostream<_CharT, _Traits>& -operator<<(basic_ostream<_CharT, _Traits>& __os, const complex<_Tp>& __x) -{ - basic_ostringstream<_CharT, _Traits> __s; - __s.flags(__os.flags()); - __s.imbue(__os.getloc()); - __s.precision(__os.precision()); - __s << '(' << __x.real() << ',' << __x.imag() << ')'; - return __os << __s.str(); -} - -#if _LIBCPP_STD_VER > 11 -// Literal suffix for complex number literals [complex.literals] -inline namespace literals -{ - inline namespace complex_literals - { - constexpr complex operator""il(long double __im) - { - return { 0.0l, __im }; - } - - constexpr complex operator""il(unsigned long long __im) - { - return { 0.0l, static_cast(__im) }; - } - - - constexpr complex operator""i(long double __im) - { - return { 0.0, static_cast(__im) }; - } - - constexpr complex operator""i(unsigned long long __im) - { - return { 0.0, static_cast(__im) }; - } - - - constexpr complex operator""if(long double __im) - { - return { 0.0f, static_cast(__im) }; - } - - constexpr complex operator""if(unsigned long long __im) - { - return { 0.0f, static_cast(__im) }; - } - } -} -#endif - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_COMPLEX diff --git a/headers/libs/libc++/complex.h b/headers/libs/libc++/complex.h deleted file mode 100644 index c2359665ad..0000000000 --- a/headers/libs/libc++/complex.h +++ /dev/null @@ -1,37 +0,0 @@ -// -*- C++ -*- -//===--------------------------- complex.h --------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_COMPLEX_H -#define _LIBCPP_COMPLEX_H - -/* - complex.h synopsis - -#include - -*/ - -#include <__config> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#ifdef __cplusplus - -#include - -#else // __cplusplus - -#include_next - -#endif // __cplusplus - -#endif // _LIBCPP_COMPLEX_H diff --git a/headers/libs/libc++/condition_variable b/headers/libs/libc++/condition_variable deleted file mode 100644 index 10e0077016..0000000000 --- a/headers/libs/libc++/condition_variable +++ /dev/null @@ -1,267 +0,0 @@ -// -*- C++ -*- -//===---------------------- condition_variable ----------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CONDITION_VARIABLE -#define _LIBCPP_CONDITION_VARIABLE - -/* - condition_variable synopsis - -namespace std -{ - -enum class cv_status { no_timeout, timeout }; - -class condition_variable -{ -public: - condition_variable(); - ~condition_variable(); - - condition_variable(const condition_variable&) = delete; - condition_variable& operator=(const condition_variable&) = delete; - - void notify_one() noexcept; - void notify_all() noexcept; - - void wait(unique_lock& lock); - template - void wait(unique_lock& lock, Predicate pred); - - template - cv_status - wait_until(unique_lock& lock, - const chrono::time_point& abs_time); - - template - bool - wait_until(unique_lock& lock, - const chrono::time_point& abs_time, - Predicate pred); - - template - cv_status - wait_for(unique_lock& lock, - const chrono::duration& rel_time); - - template - bool - wait_for(unique_lock& lock, - const chrono::duration& rel_time, - Predicate pred); - - typedef pthread_cond_t* native_handle_type; - native_handle_type native_handle(); -}; - -void notify_all_at_thread_exit(condition_variable& cond, unique_lock lk); - -class condition_variable_any -{ -public: - condition_variable_any(); - ~condition_variable_any(); - - condition_variable_any(const condition_variable_any&) = delete; - condition_variable_any& operator=(const condition_variable_any&) = delete; - - void notify_one() noexcept; - void notify_all() noexcept; - - template - void wait(Lock& lock); - template - void wait(Lock& lock, Predicate pred); - - template - cv_status - wait_until(Lock& lock, - const chrono::time_point& abs_time); - - template - bool - wait_until(Lock& lock, - const chrono::time_point& abs_time, - Predicate pred); - - template - cv_status - wait_for(Lock& lock, - const chrono::duration& rel_time); - - template - bool - wait_for(Lock& lock, - const chrono::duration& rel_time, - Predicate pred); -}; - -} // std - -*/ - -#include <__config> -#include <__mutex_base> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#ifndef _LIBCPP_HAS_NO_THREADS - -_LIBCPP_BEGIN_NAMESPACE_STD - -class _LIBCPP_TYPE_VIS condition_variable_any -{ - condition_variable __cv_; - shared_ptr __mut_; -public: - _LIBCPP_INLINE_VISIBILITY - condition_variable_any(); - - _LIBCPP_INLINE_VISIBILITY - void notify_one() _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - void notify_all() _NOEXCEPT; - - template - void wait(_Lock& __lock); - template - _LIBCPP_INLINE_VISIBILITY - void wait(_Lock& __lock, _Predicate __pred); - - template - cv_status - wait_until(_Lock& __lock, - const chrono::time_point<_Clock, _Duration>& __t); - - template - bool - _LIBCPP_INLINE_VISIBILITY - wait_until(_Lock& __lock, - const chrono::time_point<_Clock, _Duration>& __t, - _Predicate __pred); - - template - cv_status - _LIBCPP_INLINE_VISIBILITY - wait_for(_Lock& __lock, - const chrono::duration<_Rep, _Period>& __d); - - template - bool - _LIBCPP_INLINE_VISIBILITY - wait_for(_Lock& __lock, - const chrono::duration<_Rep, _Period>& __d, - _Predicate __pred); -}; - -inline -condition_variable_any::condition_variable_any() - : __mut_(make_shared()) {} - -inline -void -condition_variable_any::notify_one() _NOEXCEPT -{ - {lock_guard __lx(*__mut_);} - __cv_.notify_one(); -} - -inline -void -condition_variable_any::notify_all() _NOEXCEPT -{ - {lock_guard __lx(*__mut_);} - __cv_.notify_all(); -} - -struct __lock_external -{ - template - void operator()(_Lock* __m) {__m->lock();} -}; - -template -void -condition_variable_any::wait(_Lock& __lock) -{ - shared_ptr __mut = __mut_; - unique_lock __lk(*__mut); - __lock.unlock(); - unique_ptr<_Lock, __lock_external> __lxx(&__lock); - lock_guard > __lx(__lk, adopt_lock); - __cv_.wait(__lk); -} // __mut_.unlock(), __lock.lock() - -template -inline -void -condition_variable_any::wait(_Lock& __lock, _Predicate __pred) -{ - while (!__pred()) - wait(__lock); -} - -template -cv_status -condition_variable_any::wait_until(_Lock& __lock, - const chrono::time_point<_Clock, _Duration>& __t) -{ - shared_ptr __mut = __mut_; - unique_lock __lk(*__mut); - __lock.unlock(); - unique_ptr<_Lock, __lock_external> __lxx(&__lock); - lock_guard > __lx(__lk, adopt_lock); - return __cv_.wait_until(__lk, __t); -} // __mut_.unlock(), __lock.lock() - -template -inline -bool -condition_variable_any::wait_until(_Lock& __lock, - const chrono::time_point<_Clock, _Duration>& __t, - _Predicate __pred) -{ - while (!__pred()) - if (wait_until(__lock, __t) == cv_status::timeout) - return __pred(); - return true; -} - -template -inline -cv_status -condition_variable_any::wait_for(_Lock& __lock, - const chrono::duration<_Rep, _Period>& __d) -{ - return wait_until(__lock, chrono::steady_clock::now() + __d); -} - -template -inline -bool -condition_variable_any::wait_for(_Lock& __lock, - const chrono::duration<_Rep, _Period>& __d, - _Predicate __pred) -{ - return wait_until(__lock, chrono::steady_clock::now() + __d, - _VSTD::move(__pred)); -} - -_LIBCPP_FUNC_VIS -void notify_all_at_thread_exit(condition_variable& cond, unique_lock lk); - -_LIBCPP_END_NAMESPACE_STD - -#endif // !_LIBCPP_HAS_NO_THREADS - -#endif // _LIBCPP_CONDITION_VARIABLE diff --git a/headers/libs/libc++/config_elast.h b/headers/libs/libc++/config_elast.h deleted file mode 100644 index 9d6a76b0c0..0000000000 --- a/headers/libs/libc++/config_elast.h +++ /dev/null @@ -1,36 +0,0 @@ -//===----------------------- config_elast.h -------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CONFIG_ELAST -#define _LIBCPP_CONFIG_ELAST - -#if defined(_WIN32) -#include -#else -#include -#endif - -#if defined(ELAST) -#define _LIBCPP_ELAST ELAST -#elif defined(_NEWLIB_VERSION) -#define _LIBCPP_ELAST __ELASTERROR -#elif defined(__linux__) -#define _LIBCPP_ELAST 4095 -#elif defined(__APPLE__) -// No _LIBCPP_ELAST needed on Apple -#elif defined(__sun__) -#define _LIBCPP_ELAST ESTALE -#elif defined(_WIN32) -#define _LIBCPP_ELAST _sys_nerr -#else -// Warn here so that the person doing the libcxx port has an easier time: -#warning ELAST for this platform not yet implemented -#endif - -#endif // _LIBCPP_CONFIG_ELAST diff --git a/headers/libs/libc++/csetjmp b/headers/libs/libc++/csetjmp deleted file mode 100644 index 58a9c73ab5..0000000000 --- a/headers/libs/libc++/csetjmp +++ /dev/null @@ -1,48 +0,0 @@ -// -*- C++ -*- -//===--------------------------- csetjmp ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CSETJMP -#define _LIBCPP_CSETJMP - -/* - csetjmp synopsis - -Macros: - - setjmp - -namespace std -{ - -Types: - - jmp_buf - -void longjmp(jmp_buf env, int val); - -} // std - -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -using ::jmp_buf; -using ::longjmp; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CSETJMP diff --git a/headers/libs/libc++/csignal b/headers/libs/libc++/csignal deleted file mode 100644 index 9728266187..0000000000 --- a/headers/libs/libc++/csignal +++ /dev/null @@ -1,58 +0,0 @@ -// -*- C++ -*- -//===--------------------------- csignal ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CSIGNAL -#define _LIBCPP_CSIGNAL - -/* - csignal synopsis - -Macros: - - SIG_DFL - SIG_ERR - SIG_IGN - SIGABRT - SIGFPE - SIGILL - SIGINT - SIGSEGV - SIGTERM - -namespace std -{ - -Types: - - sig_atomic_t - -void (*signal(int sig, void (*func)(int)))(int); -int raise(int sig); - -} // std - -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -using ::sig_atomic_t; -using ::signal; -using ::raise; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CSIGNAL diff --git a/headers/libs/libc++/cstdarg b/headers/libs/libc++/cstdarg deleted file mode 100644 index c8b6999242..0000000000 --- a/headers/libs/libc++/cstdarg +++ /dev/null @@ -1,48 +0,0 @@ -// -*- C++ -*- -//===--------------------------- cstdarg ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CSTDARG -#define _LIBCPP_CSTDARG - -/* - cstdarg synopsis - -Macros: - - type va_arg(va_list ap, type); - void va_copy(va_list dest, va_list src); // C99 - void va_end(va_list ap); - void va_start(va_list ap, parmN); - -namespace std -{ - -Types: - - va_list - -} // std - -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -using ::va_list; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CSTDARG diff --git a/headers/libs/libc++/cstdbool b/headers/libs/libc++/cstdbool deleted file mode 100644 index 2c764a61f2..0000000000 --- a/headers/libs/libc++/cstdbool +++ /dev/null @@ -1,32 +0,0 @@ -// -*- C++ -*- -//===--------------------------- cstdbool ---------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CSTDBOOL -#define _LIBCPP_CSTDBOOL - -/* - cstdbool synopsis - -Macros: - - __bool_true_false_are_defined - -*/ - -#include <__config> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#undef __bool_true_false_are_defined -#define __bool_true_false_are_defined 1 - -#endif // _LIBCPP_CSTDBOOL diff --git a/headers/libs/libc++/cstddef b/headers/libs/libc++/cstddef deleted file mode 100644 index edd106c001..0000000000 --- a/headers/libs/libc++/cstddef +++ /dev/null @@ -1,60 +0,0 @@ -// -*- C++ -*- -//===--------------------------- cstddef ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CSTDDEF -#define _LIBCPP_CSTDDEF - -/* - cstddef synopsis - -Macros: - - offsetof(type,member-designator) - NULL - -namespace std -{ - -Types: - - ptrdiff_t - size_t - max_align_t - nullptr_t - -} // std - -*/ - -#include <__config> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -// Don't include our own ; we don't want to declare ::nullptr_t. -#include_next -#include <__nullptr> - -_LIBCPP_BEGIN_NAMESPACE_STD - -using ::ptrdiff_t; -using ::size_t; - -#if defined(__CLANG_MAX_ALIGN_T_DEFINED) || defined(_GCC_MAX_ALIGN_T) -// Re-use the compiler's max_align_t where possible. -using ::max_align_t; -#else -typedef long double max_align_t; -#endif - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CSTDDEF diff --git a/headers/libs/libc++/cstdint b/headers/libs/libc++/cstdint deleted file mode 100644 index 7a187d3ebf..0000000000 --- a/headers/libs/libc++/cstdint +++ /dev/null @@ -1,191 +0,0 @@ -// -*- C++ -*- -//===--------------------------- cstdint ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CSTDINT -#define _LIBCPP_CSTDINT - -/* - cstdint synopsis - -Macros: - - INT8_MIN - INT16_MIN - INT32_MIN - INT64_MIN - - INT8_MAX - INT16_MAX - INT32_MAX - INT64_MAX - - UINT8_MAX - UINT16_MAX - UINT32_MAX - UINT64_MAX - - INT_LEAST8_MIN - INT_LEAST16_MIN - INT_LEAST32_MIN - INT_LEAST64_MIN - - INT_LEAST8_MAX - INT_LEAST16_MAX - INT_LEAST32_MAX - INT_LEAST64_MAX - - UINT_LEAST8_MAX - UINT_LEAST16_MAX - UINT_LEAST32_MAX - UINT_LEAST64_MAX - - INT_FAST8_MIN - INT_FAST16_MIN - INT_FAST32_MIN - INT_FAST64_MIN - - INT_FAST8_MAX - INT_FAST16_MAX - INT_FAST32_MAX - INT_FAST64_MAX - - UINT_FAST8_MAX - UINT_FAST16_MAX - UINT_FAST32_MAX - UINT_FAST64_MAX - - INTPTR_MIN - INTPTR_MAX - UINTPTR_MAX - - INTMAX_MIN - INTMAX_MAX - - UINTMAX_MAX - - PTRDIFF_MIN - PTRDIFF_MAX - - SIG_ATOMIC_MIN - SIG_ATOMIC_MAX - - SIZE_MAX - - WCHAR_MIN - WCHAR_MAX - - WINT_MIN - WINT_MAX - - INT8_C(value) - INT16_C(value) - INT32_C(value) - INT64_C(value) - - UINT8_C(value) - UINT16_C(value) - UINT32_C(value) - UINT64_C(value) - - INTMAX_C(value) - UINTMAX_C(value) - -namespace std -{ - -Types: - - int8_t - int16_t - int32_t - int64_t - - uint8_t - uint16_t - uint32_t - uint64_t - - int_least8_t - int_least16_t - int_least32_t - int_least64_t - - uint_least8_t - uint_least16_t - uint_least32_t - uint_least64_t - - int_fast8_t - int_fast16_t - int_fast32_t - int_fast64_t - - uint_fast8_t - uint_fast16_t - uint_fast32_t - uint_fast64_t - - intptr_t - uintptr_t - - intmax_t - uintmax_t - -} // std -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -using::int8_t; -using::int16_t; -using::int32_t; -using::int64_t; - -using::uint8_t; -using::uint16_t; -using::uint32_t; -using::uint64_t; - -using::int_least8_t; -using::int_least16_t; -using::int_least32_t; -using::int_least64_t; - -using::uint_least8_t; -using::uint_least16_t; -using::uint_least32_t; -using::uint_least64_t; - -using::int_fast8_t; -using::int_fast16_t; -using::int_fast32_t; -using::int_fast64_t; - -using::uint_fast8_t; -using::uint_fast16_t; -using::uint_fast32_t; -using::uint_fast64_t; - -using::intptr_t; -using::uintptr_t; - -using::intmax_t; -using::uintmax_t; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CSTDINT diff --git a/headers/libs/libc++/cstdio b/headers/libs/libc++/cstdio deleted file mode 100644 index 50fdd34574..0000000000 --- a/headers/libs/libc++/cstdio +++ /dev/null @@ -1,174 +0,0 @@ -// -*- C++ -*- -//===---------------------------- cstdio ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CSTDIO -#define _LIBCPP_CSTDIO - -/* - cstdio synopsis - -Macros: - - BUFSIZ - EOF - FILENAME_MAX - FOPEN_MAX - L_tmpnam - NULL - SEEK_CUR - SEEK_END - SEEK_SET - TMP_MAX - _IOFBF - _IOLBF - _IONBF - stderr - stdin - stdout - -namespace std -{ - -Types: - -FILE -fpos_t -size_t - -int remove(const char* filename); -int rename(const char* old, const char* new); -FILE* tmpfile(void); -char* tmpnam(char* s); -int fclose(FILE* stream); -int fflush(FILE* stream); -FILE* fopen(const char* restrict filename, const char* restrict mode); -FILE* freopen(const char* restrict filename, const char * restrict mode, - FILE * restrict stream); -void setbuf(FILE* restrict stream, char* restrict buf); -int setvbuf(FILE* restrict stream, char* restrict buf, int mode, size_t size); -int fprintf(FILE* restrict stream, const char* restrict format, ...); -int fscanf(FILE* restrict stream, const char * restrict format, ...); -int printf(const char* restrict format, ...); -int scanf(const char* restrict format, ...); -int snprintf(char* restrict s, size_t n, const char* restrict format, ...); // C99 -int sprintf(char* restrict s, const char* restrict format, ...); -int sscanf(const char* restrict s, const char* restrict format, ...); -int vfprintf(FILE* restrict stream, const char* restrict format, va_list arg); -int vfscanf(FILE* restrict stream, const char* restrict format, va_list arg); // C99 -int vprintf(const char* restrict format, va_list arg); -int vscanf(const char* restrict format, va_list arg); // C99 -int vsnprintf(char* restrict s, size_t n, const char* restrict format, // C99 - va_list arg); -int vsprintf(char* restrict s, const char* restrict format, va_list arg); -int vsscanf(const char* restrict s, const char* restrict format, va_list arg); // C99 -int fgetc(FILE* stream); -char* fgets(char* restrict s, int n, FILE* restrict stream); -int fputc(int c, FILE* stream); -int fputs(const char* restrict s, FILE* restrict stream); -int getc(FILE* stream); -int getchar(void); -char* gets(char* s); // removed in C++14 -int putc(int c, FILE* stream); -int putchar(int c); -int puts(const char* s); -int ungetc(int c, FILE* stream); -size_t fread(void* restrict ptr, size_t size, size_t nmemb, - FILE* restrict stream); -size_t fwrite(const void* restrict ptr, size_t size, size_t nmemb, - FILE* restrict stream); -int fgetpos(FILE* restrict stream, fpos_t* restrict pos); -int fseek(FILE* stream, long offset, int whence); -int fsetpos(FILE*stream, const fpos_t* pos); -long ftell(FILE* stream); -void rewind(FILE* stream); -void clearerr(FILE* stream); -int feof(FILE* stream); -int ferror(FILE* stream); -void perror(const char* s); - -} // std -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -using ::FILE; -using ::fpos_t; -using ::size_t; - -using ::fclose; -using ::fflush; -using ::setbuf; -using ::setvbuf; -using ::fprintf; -using ::fscanf; -using ::snprintf; -using ::sprintf; -using ::sscanf; -#ifndef _LIBCPP_MSVCRT -using ::vfprintf; -using ::vfscanf; -using ::vsscanf; -#endif // _LIBCPP_MSVCRT -using ::vsnprintf; -using ::vsprintf; -using ::fgetc; -using ::fgets; -using ::fputc; -using ::fputs; -using ::getc; -using ::putc; -using ::ungetc; -using ::fread; -using ::fwrite; -using ::fgetpos; -using ::fseek; -using ::fsetpos; -using ::ftell; -using ::rewind; -using ::clearerr; -using ::feof; -using ::ferror; -using ::perror; - -#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE -using ::fopen; -using ::freopen; -using ::remove; -using ::rename; -using ::tmpfile; -using ::tmpnam; -#endif - -#ifndef _LIBCPP_HAS_NO_STDIN -using ::getchar; -#if _LIBCPP_STD_VER <= 11 -using ::gets; -#endif -using ::scanf; -using ::vscanf; -#endif - -#ifndef _LIBCPP_HAS_NO_STDOUT -using ::printf; -using ::putchar; -using ::puts; -using ::vprintf; -#endif - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CSTDIO diff --git a/headers/libs/libc++/cstdlib b/headers/libs/libc++/cstdlib deleted file mode 100644 index 10ed231078..0000000000 --- a/headers/libs/libc++/cstdlib +++ /dev/null @@ -1,158 +0,0 @@ -// -*- C++ -*- -//===--------------------------- cstdlib ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CSTDLIB -#define _LIBCPP_CSTDLIB - -/* - cstdlib synopsis - -Macros: - - EXIT_FAILURE - EXIT_SUCCESS - MB_CUR_MAX - NULL - RAND_MAX - -namespace std -{ - -Types: - - size_t - div_t - ldiv_t - lldiv_t // C99 - -double atof (const char* nptr); -int atoi (const char* nptr); -long atol (const char* nptr); -long long atoll(const char* nptr); // C99 -double strtod (const char* restrict nptr, char** restrict endptr); -float strtof (const char* restrict nptr, char** restrict endptr); // C99 -long double strtold (const char* restrict nptr, char** restrict endptr); // C99 -long strtol (const char* restrict nptr, char** restrict endptr, int base); -long long strtoll (const char* restrict nptr, char** restrict endptr, int base); // C99 -unsigned long strtoul (const char* restrict nptr, char** restrict endptr, int base); -unsigned long long strtoull(const char* restrict nptr, char** restrict endptr, int base); // C99 -int rand(void); -void srand(unsigned int seed); -void* calloc(size_t nmemb, size_t size); -void free(void* ptr); -void* malloc(size_t size); -void* realloc(void* ptr, size_t size); -void abort(void); -int atexit(void (*func)(void)); -void exit(int status); -void _Exit(int status); -char* getenv(const char* name); -int system(const char* string); -void* bsearch(const void* key, const void* base, size_t nmemb, size_t size, - int (*compar)(const void *, const void *)); -void qsort(void* base, size_t nmemb, size_t size, - int (*compar)(const void *, const void *)); -int abs( int j); -long abs( long j); -long long abs(long long j); // C++0X -long labs( long j); -long long llabs(long long j); // C99 -div_t div( int numer, int denom); -ldiv_t div( long numer, long denom); -lldiv_t div(long long numer, long long denom); // C++0X -ldiv_t ldiv( long numer, long denom); -lldiv_t lldiv(long long numer, long long denom); // C99 -int mblen(const char* s, size_t n); -int mbtowc(wchar_t* restrict pwc, const char* restrict s, size_t n); -int wctomb(char* s, wchar_t wchar); -size_t mbstowcs(wchar_t* restrict pwcs, const char* restrict s, size_t n); -size_t wcstombs(char* restrict s, const wchar_t* restrict pwcs, size_t n); -int at_quick_exit(void (*func)(void)) // C++11 -void quick_exit(int status); // C++11 -void *aligned_alloc(size_t alignment, size_t size); // C11 - -} // std - -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -using ::size_t; -using ::div_t; -using ::ldiv_t; -#ifndef _LIBCPP_HAS_NO_LONG_LONG -using ::lldiv_t; -#endif // _LIBCPP_HAS_NO_LONG_LONG -using ::atof; -using ::atoi; -using ::atol; -#ifndef _LIBCPP_HAS_NO_LONG_LONG -using ::atoll; -#endif // _LIBCPP_HAS_NO_LONG_LONG -using ::strtod; -using ::strtof; -using ::strtold; -using ::strtol; -#ifndef _LIBCPP_HAS_NO_LONG_LONG -using ::strtoll; -#endif // _LIBCPP_HAS_NO_LONG_LONG -using ::strtoul; -#ifndef _LIBCPP_HAS_NO_LONG_LONG -using ::strtoull; -#endif // _LIBCPP_HAS_NO_LONG_LONG -using ::rand; -using ::srand; -using ::calloc; -using ::free; -using ::malloc; -using ::realloc; -using ::abort; -using ::atexit; -using ::exit; -using ::_Exit; -using ::getenv; -using ::system; -using ::bsearch; -using ::qsort; -using ::abs; -using ::labs; -#ifndef _LIBCPP_HAS_NO_LONG_LONG -using ::llabs; -#endif // _LIBCPP_HAS_NO_LONG_LONG -using ::div; -using ::ldiv; -#ifndef _LIBCPP_HAS_NO_LONG_LONG -using ::lldiv; -#endif // _LIBCPP_HAS_NO_LONG_LONG -#ifndef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS -using ::mblen; -using ::mbtowc; -using ::wctomb; -#endif -using ::mbstowcs; -using ::wcstombs; -#ifdef _LIBCPP_HAS_QUICK_EXIT -using ::at_quick_exit; -using ::quick_exit; -#endif -#ifdef _LIBCPP_HAS_C11_FEATURES -using ::aligned_alloc; -#endif - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CSTDLIB diff --git a/headers/libs/libc++/cstring b/headers/libs/libc++/cstring deleted file mode 100644 index d60b9923c6..0000000000 --- a/headers/libs/libc++/cstring +++ /dev/null @@ -1,114 +0,0 @@ -// -*- C++ -*- -//===--------------------------- cstring ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CSTRING -#define _LIBCPP_CSTRING - -/* - cstring synopsis - -Macros: - - NULL - -namespace std -{ - -Types: - - size_t - -void* memcpy(void* restrict s1, const void* restrict s2, size_t n); -void* memmove(void* s1, const void* s2, size_t n); -char* strcpy (char* restrict s1, const char* restrict s2); -char* strncpy(char* restrict s1, const char* restrict s2, size_t n); -char* strcat (char* restrict s1, const char* restrict s2); -char* strncat(char* restrict s1, const char* restrict s2, size_t n); -int memcmp(const void* s1, const void* s2, size_t n); -int strcmp (const char* s1, const char* s2); -int strncmp(const char* s1, const char* s2, size_t n); -int strcoll(const char* s1, const char* s2); -size_t strxfrm(char* restrict s1, const char* restrict s2, size_t n); -const void* memchr(const void* s, int c, size_t n); - void* memchr( void* s, int c, size_t n); -const char* strchr(const char* s, int c); - char* strchr( char* s, int c); -size_t strcspn(const char* s1, const char* s2); -const char* strpbrk(const char* s1, const char* s2); - char* strpbrk( char* s1, const char* s2); -const char* strrchr(const char* s, int c); - char* strrchr( char* s, int c); -size_t strspn(const char* s1, const char* s2); -const char* strstr(const char* s1, const char* s2); - char* strstr( char* s1, const char* s2); -char* strtok(char* restrict s1, const char* restrict s2); -void* memset(void* s, int c, size_t n); -char* strerror(int errnum); -size_t strlen(const char* s); - -} // std - -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -using ::size_t; -using ::memcpy; -using ::memmove; -using ::strcpy; -using ::strncpy; -using ::strcat; -using ::strncat; -using ::memcmp; -using ::strcmp; -using ::strncmp; -using ::strcoll; -using ::strxfrm; - -using ::memchr; - -using ::strchr; - -using ::strcspn; - -using ::strpbrk; - -using ::strrchr; - -using ::strspn; - -using ::strstr; - -// MSVCRT, GNU libc and its derivates already have the correct prototype in #ifdef __cplusplus -#if !defined(__GLIBC__) && !defined(_LIBCPP_MSVCRT) && !defined(__sun__) && !defined(_STRING_H_CPLUSPLUS_98_CONFORMANCE_) -inline _LIBCPP_INLINE_VISIBILITY char* strchr( char* __s, int __c) {return ::strchr(__s, __c);} -inline _LIBCPP_INLINE_VISIBILITY char* strpbrk( char* __s1, const char* __s2) {return ::strpbrk(__s1, __s2);} -inline _LIBCPP_INLINE_VISIBILITY char* strrchr( char* __s, int __c) {return ::strrchr(__s, __c);} -inline _LIBCPP_INLINE_VISIBILITY void* memchr( void* __s, int __c, size_t __n) {return ::memchr(__s, __c, __n);} -inline _LIBCPP_INLINE_VISIBILITY char* strstr( char* __s1, const char* __s2) {return ::strstr(__s1, __s2);} -#endif - -#ifndef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS -using ::strtok; -#endif -using ::memset; -using ::strerror; -using ::strlen; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CSTRING diff --git a/headers/libs/libc++/ctgmath b/headers/libs/libc++/ctgmath deleted file mode 100644 index 535eb7dccd..0000000000 --- a/headers/libs/libc++/ctgmath +++ /dev/null @@ -1,29 +0,0 @@ -// -*- C++ -*- -//===-------------------------- ctgmath -----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CTGMATH -#define _LIBCPP_CTGMATH - -/* - ctgmath synopsis - -#include -#include - -*/ - -#include -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#endif // _LIBCPP_CTGMATH diff --git a/headers/libs/libc++/ctime b/headers/libs/libc++/ctime deleted file mode 100644 index da9e3290bb..0000000000 --- a/headers/libs/libc++/ctime +++ /dev/null @@ -1,74 +0,0 @@ -// -*- C++ -*- -//===---------------------------- ctime -----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CTIME -#define _LIBCPP_CTIME - -/* - ctime synopsis - -Macros: - - NULL - CLOCKS_PER_SEC - -namespace std -{ - -Types: - - clock_t - size_t - time_t - tm - -clock_t clock(); -double difftime(time_t time1, time_t time0); -time_t mktime(tm* timeptr); -time_t time(time_t* timer); -char* asctime(const tm* timeptr); -char* ctime(const time_t* timer); -tm* gmtime(const time_t* timer); -tm* localtime(const time_t* timer); -size_t strftime(char* restrict s, size_t maxsize, const char* restrict format, - const tm* restrict timeptr); - -} // std - -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -using ::clock_t; -using ::size_t; -using ::time_t; -using ::tm; -using ::clock; -using ::difftime; -using ::mktime; -using ::time; -#ifndef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS -using ::asctime; -using ::ctime; -using ::gmtime; -using ::localtime; -#endif -using ::strftime; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CTIME diff --git a/headers/libs/libc++/ctype.h b/headers/libs/libc++/ctype.h deleted file mode 100644 index 22d6c49be9..0000000000 --- a/headers/libs/libc++/ctype.h +++ /dev/null @@ -1,69 +0,0 @@ -// -*- C++ -*- -//===---------------------------- ctype.h ---------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CTYPE_H -#define _LIBCPP_CTYPE_H - -/* - ctype.h synopsis - -int isalnum(int c); -int isalpha(int c); -int isblank(int c); // C99 -int iscntrl(int c); -int isdigit(int c); -int isgraph(int c); -int islower(int c); -int isprint(int c); -int ispunct(int c); -int isspace(int c); -int isupper(int c); -int isxdigit(int c); -int tolower(int c); -int toupper(int c); -*/ - -#include <__config> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#include_next - -#ifdef __cplusplus - -#if defined(_LIBCPP_MSVCRT) -// We support including .h headers inside 'extern "C"' contexts, so switch -// back to C++ linkage before including these C++ headers. -extern "C++" { - #include "support/win32/support.h" - #include "support/win32/locale_win32.h" -} -#endif // _LIBCPP_MSVCRT - -#undef isalnum -#undef isalpha -#undef isblank -#undef iscntrl -#undef isdigit -#undef isgraph -#undef islower -#undef isprint -#undef ispunct -#undef isspace -#undef isupper -#undef isxdigit -#undef tolower -#undef toupper - -#endif - -#endif // _LIBCPP_CTYPE_H diff --git a/headers/libs/libc++/cwchar b/headers/libs/libc++/cwchar deleted file mode 100644 index ef4806db2b..0000000000 --- a/headers/libs/libc++/cwchar +++ /dev/null @@ -1,218 +0,0 @@ -// -*- C++ -*- -//===--------------------------- cwchar -----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CWCHAR -#define _LIBCPP_CWCHAR - -/* - cwchar synopsis - -Macros: - - NULL - WCHAR_MAX - WCHAR_MIN - WEOF - -namespace std -{ - -Types: - - mbstate_t - size_t - tm - wint_t - -int fwprintf(FILE* restrict stream, const wchar_t* restrict format, ...); -int fwscanf(FILE* restrict stream, const wchar_t* restrict format, ...); -int swprintf(wchar_t* restrict s, size_t n, const wchar_t* restrict format, ...); -int swscanf(const wchar_t* restrict s, const wchar_t* restrict format, ...); -int vfwprintf(FILE* restrict stream, const wchar_t* restrict format, va_list arg); -int vfwscanf(FILE* restrict stream, const wchar_t* restrict format, va_list arg); // C99 -int vswprintf(wchar_t* restrict s, size_t n, const wchar_t* restrict format, va_list arg); -int vswscanf(const wchar_t* restrict s, const wchar_t* restrict format, va_list arg); // C99 -int vwprintf(const wchar_t* restrict format, va_list arg); -int vwscanf(const wchar_t* restrict format, va_list arg); // C99 -int wprintf(const wchar_t* restrict format, ...); -int wscanf(const wchar_t* restrict format, ...); -wint_t fgetwc(FILE* stream); -wchar_t* fgetws(wchar_t* restrict s, int n, FILE* restrict stream); -wint_t fputwc(wchar_t c, FILE* stream); -int fputws(const wchar_t* restrict s, FILE* restrict stream); -int fwide(FILE* stream, int mode); -wint_t getwc(FILE* stream); -wint_t getwchar(); -wint_t putwc(wchar_t c, FILE* stream); -wint_t putwchar(wchar_t c); -wint_t ungetwc(wint_t c, FILE* stream); -double wcstod(const wchar_t* restrict nptr, wchar_t** restrict endptr); -float wcstof(const wchar_t* restrict nptr, wchar_t** restrict endptr); // C99 -long double wcstold(const wchar_t* restrict nptr, wchar_t** restrict endptr); // C99 -long wcstol(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); -long long wcstoll(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); // C99 -unsigned long wcstoul(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); -unsigned long long wcstoull(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); // C99 -wchar_t* wcscpy(wchar_t* restrict s1, const wchar_t* restrict s2); -wchar_t* wcsncpy(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); -wchar_t* wcscat(wchar_t* restrict s1, const wchar_t* restrict s2); -wchar_t* wcsncat(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); -int wcscmp(const wchar_t* s1, const wchar_t* s2); -int wcscoll(const wchar_t* s1, const wchar_t* s2); -int wcsncmp(const wchar_t* s1, const wchar_t* s2, size_t n); -size_t wcsxfrm(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); -const wchar_t* wcschr(const wchar_t* s, wchar_t c); - wchar_t* wcschr( wchar_t* s, wchar_t c); -size_t wcscspn(const wchar_t* s1, const wchar_t* s2); -size_t wcslen(const wchar_t* s); -const wchar_t* wcspbrk(const wchar_t* s1, const wchar_t* s2); - wchar_t* wcspbrk( wchar_t* s1, const wchar_t* s2); -const wchar_t* wcsrchr(const wchar_t* s, wchar_t c); - wchar_t* wcsrchr( wchar_t* s, wchar_t c); -size_t wcsspn(const wchar_t* s1, const wchar_t* s2); -const wchar_t* wcsstr(const wchar_t* s1, const wchar_t* s2); - wchar_t* wcsstr( wchar_t* s1, const wchar_t* s2); -wchar_t* wcstok(wchar_t* restrict s1, const wchar_t* restrict s2, wchar_t** restrict ptr); -const wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n); - wchar_t* wmemchr( wchar_t* s, wchar_t c, size_t n); -int wmemcmp(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); -wchar_t* wmemcpy(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); -wchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n); -wchar_t* wmemset(wchar_t* s, wchar_t c, size_t n); -size_t wcsftime(wchar_t* restrict s, size_t maxsize, const wchar_t* restrict format, - const tm* restrict timeptr); -wint_t btowc(int c); -int wctob(wint_t c); -int mbsinit(const mbstate_t* ps); -size_t mbrlen(const char* restrict s, size_t n, mbstate_t* restrict ps); -size_t mbrtowc(wchar_t* restrict pwc, const char* restrict s, size_t n, mbstate_t* restrict ps); -size_t wcrtomb(char* restrict s, wchar_t wc, mbstate_t* restrict ps); -size_t mbsrtowcs(wchar_t* restrict dst, const char** restrict src, size_t len, - mbstate_t* restrict ps); -size_t wcsrtombs(char* restrict dst, const wchar_t** restrict src, size_t len, - mbstate_t* restrict ps); - -} // std - -*/ - -#include <__config> -#include -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -using ::mbstate_t; -using ::size_t; -using ::tm; -using ::wint_t; -using ::FILE; -using ::fwprintf; -using ::fwscanf; -using ::swprintf; -using ::vfwprintf; -using ::vswprintf; -#ifndef _LIBCPP_MSVCRT -using ::swscanf; -using ::vfwscanf; -using ::vswscanf; -#endif // _LIBCPP_MSVCRT -using ::fgetwc; -using ::fgetws; -using ::fputwc; -using ::fputws; -using ::fwide; -using ::getwc; -using ::putwc; -using ::ungetwc; -using ::wcstod; -#ifndef _LIBCPP_MSVCRT -using ::wcstof; -using ::wcstold; -#endif // _LIBCPP_MSVCRT -using ::wcstol; -#ifndef _LIBCPP_HAS_NO_LONG_LONG -using ::wcstoll; -#endif // _LIBCPP_HAS_NO_LONG_LONG -using ::wcstoul; -#ifndef _LIBCPP_HAS_NO_LONG_LONG -using ::wcstoull; -#endif // _LIBCPP_HAS_NO_LONG_LONG -using ::wcscpy; -using ::wcsncpy; -using ::wcscat; -using ::wcsncat; -using ::wcscmp; -using ::wcscoll; -using ::wcsncmp; -using ::wcsxfrm; - -#ifdef _LIBCPP_WCHAR_H_HAS_CONST_OVERLOADS -using ::wcschr; -using ::wcspbrk; -using ::wcsrchr; -using ::wcsstr; -using ::wmemchr; -#else -inline _LIBCPP_INLINE_VISIBILITY const wchar_t* wcschr(const wchar_t* __s, wchar_t __c) {return ::wcschr(__s, __c);} -inline _LIBCPP_INLINE_VISIBILITY wchar_t* wcschr( wchar_t* __s, wchar_t __c) {return ::wcschr(__s, __c);} - -inline _LIBCPP_INLINE_VISIBILITY const wchar_t* wcspbrk(const wchar_t* __s1, const wchar_t* __s2) {return ::wcspbrk(__s1, __s2);} -inline _LIBCPP_INLINE_VISIBILITY wchar_t* wcspbrk( wchar_t* __s1, const wchar_t* __s2) {return ::wcspbrk(__s1, __s2);} - -inline _LIBCPP_INLINE_VISIBILITY const wchar_t* wcsrchr(const wchar_t* __s, wchar_t __c) {return ::wcsrchr(__s, __c);} -inline _LIBCPP_INLINE_VISIBILITY wchar_t* wcsrchr( wchar_t* __s, wchar_t __c) {return ::wcsrchr(__s, __c);} - -inline _LIBCPP_INLINE_VISIBILITY const wchar_t* wcsstr(const wchar_t* __s1, const wchar_t* __s2) {return ::wcsstr(__s1, __s2);} -inline _LIBCPP_INLINE_VISIBILITY wchar_t* wcsstr( wchar_t* __s1, const wchar_t* __s2) {return ::wcsstr(__s1, __s2);} - -inline _LIBCPP_INLINE_VISIBILITY const wchar_t* wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {return ::wmemchr(__s, __c, __n);} -inline _LIBCPP_INLINE_VISIBILITY wchar_t* wmemchr( wchar_t* __s, wchar_t __c, size_t __n) {return ::wmemchr(__s, __c, __n);} -#endif - -using ::wcscspn; -using ::wcslen; -using ::wcsspn; -using ::wcstok; -using ::wmemcmp; -using ::wmemcpy; -using ::wmemmove; -using ::wmemset; -using ::wcsftime; -using ::btowc; -using ::wctob; -using ::mbsinit; -using ::mbrlen; -using ::mbrtowc; -using ::wcrtomb; -using ::mbsrtowcs; -using ::wcsrtombs; - -#ifndef _LIBCPP_HAS_NO_STDIN -using ::getwchar; -#ifndef _LIBCPP_MSVCRT -using ::vwscanf; -#endif // _LIBCPP_MSVCRT -using ::wscanf; -#endif - -#ifndef _LIBCPP_HAS_NO_STDOUT -using ::putwchar; -using ::vwprintf; -using ::wprintf; -#endif - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CWCHAR diff --git a/headers/libs/libc++/cwctype b/headers/libs/libc++/cwctype deleted file mode 100644 index 25b2489edf..0000000000 --- a/headers/libs/libc++/cwctype +++ /dev/null @@ -1,87 +0,0 @@ -// -*- C++ -*- -//===--------------------------- cwctype ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_CWCTYPE -#define _LIBCPP_CWCTYPE - -/* - cwctype synopsis - -Macros: - - WEOF - -namespace std -{ - -Types: - - wint_t - wctrans_t - wctype_t - -int iswalnum(wint_t wc); -int iswalpha(wint_t wc); -int iswblank(wint_t wc); // C99 -int iswcntrl(wint_t wc); -int iswdigit(wint_t wc); -int iswgraph(wint_t wc); -int iswlower(wint_t wc); -int iswprint(wint_t wc); -int iswpunct(wint_t wc); -int iswspace(wint_t wc); -int iswupper(wint_t wc); -int iswxdigit(wint_t wc); -int iswctype(wint_t wc, wctype_t desc); -wctype_t wctype(const char* property); -wint_t towlower(wint_t wc); -wint_t towupper(wint_t wc); -wint_t towctrans(wint_t wc, wctrans_t desc); -wctrans_t wctrans(const char* property); - -} // std - -*/ - -#include <__config> -#include -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -using ::wint_t; -using ::wctrans_t; -using ::wctype_t; -using ::iswalnum; -using ::iswalpha; -using ::iswblank; -using ::iswcntrl; -using ::iswdigit; -using ::iswgraph; -using ::iswlower; -using ::iswprint; -using ::iswpunct; -using ::iswspace; -using ::iswupper; -using ::iswxdigit; -using ::iswctype; -using ::wctype; -using ::towlower; -using ::towupper; -using ::towctrans; -using ::wctrans; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_CWCTYPE diff --git a/headers/libs/libc++/deque b/headers/libs/libc++/deque deleted file mode 100644 index b0b778a56c..0000000000 --- a/headers/libs/libc++/deque +++ /dev/null @@ -1,2906 +0,0 @@ -// -*- C++ -*- -//===---------------------------- deque -----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_DEQUE -#define _LIBCPP_DEQUE - -/* - deque synopsis - -namespace std -{ - -template > -class deque -{ -public: - // types: - typedef T value_type; - typedef Allocator allocator_type; - - typedef typename allocator_type::reference reference; - typedef typename allocator_type::const_reference const_reference; - typedef implementation-defined iterator; - typedef implementation-defined const_iterator; - typedef typename allocator_type::size_type size_type; - typedef typename allocator_type::difference_type difference_type; - - typedef typename allocator_type::pointer pointer; - typedef typename allocator_type::const_pointer const_pointer; - typedef std::reverse_iterator reverse_iterator; - typedef std::reverse_iterator const_reverse_iterator; - - // construct/copy/destroy: - deque() noexcept(is_nothrow_default_constructible::value); - explicit deque(const allocator_type& a); - explicit deque(size_type n); - explicit deque(size_type n, const allocator_type& a); // C++14 - deque(size_type n, const value_type& v); - deque(size_type n, const value_type& v, const allocator_type& a); - template - deque(InputIterator f, InputIterator l); - template - deque(InputIterator f, InputIterator l, const allocator_type& a); - deque(const deque& c); - deque(deque&& c) - noexcept(is_nothrow_move_constructible::value); - deque(initializer_list il, const Allocator& a = allocator_type()); - deque(const deque& c, const allocator_type& a); - deque(deque&& c, const allocator_type& a); - ~deque(); - - deque& operator=(const deque& c); - deque& operator=(deque&& c) - noexcept( - allocator_type::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable::value); - deque& operator=(initializer_list il); - - template - void assign(InputIterator f, InputIterator l); - void assign(size_type n, const value_type& v); - void assign(initializer_list il); - - allocator_type get_allocator() const noexcept; - - // iterators: - - iterator begin() noexcept; - const_iterator begin() const noexcept; - iterator end() noexcept; - const_iterator end() const noexcept; - - reverse_iterator rbegin() noexcept; - const_reverse_iterator rbegin() const noexcept; - reverse_iterator rend() noexcept; - const_reverse_iterator rend() const noexcept; - - const_iterator cbegin() const noexcept; - const_iterator cend() const noexcept; - const_reverse_iterator crbegin() const noexcept; - const_reverse_iterator crend() const noexcept; - - // capacity: - size_type size() const noexcept; - size_type max_size() const noexcept; - void resize(size_type n); - void resize(size_type n, const value_type& v); - void shrink_to_fit(); - bool empty() const noexcept; - - // element access: - reference operator[](size_type i); - const_reference operator[](size_type i) const; - reference at(size_type i); - const_reference at(size_type i) const; - reference front(); - const_reference front() const; - reference back(); - const_reference back() const; - - // modifiers: - void push_front(const value_type& v); - void push_front(value_type&& v); - void push_back(const value_type& v); - void push_back(value_type&& v); - template void emplace_front(Args&&... args); - template void emplace_back(Args&&... args); - template iterator emplace(const_iterator p, Args&&... args); - iterator insert(const_iterator p, const value_type& v); - iterator insert(const_iterator p, value_type&& v); - iterator insert(const_iterator p, size_type n, const value_type& v); - template - iterator insert(const_iterator p, InputIterator f, InputIterator l); - iterator insert(const_iterator p, initializer_list il); - void pop_front(); - void pop_back(); - iterator erase(const_iterator p); - iterator erase(const_iterator f, const_iterator l); - void swap(deque& c) - noexcept(allocator_traits::is_always_equal::value); // C++17 - void clear() noexcept; -}; - -template - bool operator==(const deque& x, const deque& y); -template - bool operator< (const deque& x, const deque& y); -template - bool operator!=(const deque& x, const deque& y); -template - bool operator> (const deque& x, const deque& y); -template - bool operator>=(const deque& x, const deque& y); -template - bool operator<=(const deque& x, const deque& y); - -// specialized algorithms: -template - void swap(deque& x, deque& y) - noexcept(noexcept(x.swap(y))); - -} // std - -*/ - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#include <__config> -#include <__split_buffer> -#include -#include -#include -#include -#include - -#include <__undef_min_max> - -_LIBCPP_BEGIN_NAMESPACE_STD - -template class __deque_base; -template > class _LIBCPP_TYPE_VIS_ONLY deque; - -template -class _LIBCPP_TYPE_VIS_ONLY __deque_iterator; - -template -__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> -copy(_RAIter __f, - _RAIter __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0); - -template -_OutputIterator -copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - _OutputIterator __r); - -template -__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> -copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r); - -template -__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> -copy_backward(_RAIter __f, - _RAIter __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0); - -template -_OutputIterator -copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - _OutputIterator __r); - -template -__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> -copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r); - -template -__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> -move(_RAIter __f, - _RAIter __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0); - -template -_OutputIterator -move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - _OutputIterator __r); - -template -__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> -move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r); - -template -__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> -move_backward(_RAIter __f, - _RAIter __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0); - -template -_OutputIterator -move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - _OutputIterator __r); - -template -__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> -move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r); - -template -struct __deque_block_size { - static const _DiffType value = sizeof(_ValueType) < 256 ? 4096 / sizeof(_ValueType) : 16; -}; - -template ::value -#endif - > -class _LIBCPP_TYPE_VIS_ONLY __deque_iterator -{ - typedef _MapPointer __map_iterator; -public: - typedef _Pointer pointer; - typedef _DiffType difference_type; -private: - __map_iterator __m_iter_; - pointer __ptr_; - - static const difference_type __block_size; -public: - typedef _ValueType value_type; - typedef random_access_iterator_tag iterator_category; - typedef _Reference reference; - - _LIBCPP_INLINE_VISIBILITY __deque_iterator() _NOEXCEPT -#if _LIBCPP_STD_VER > 11 - : __m_iter_(nullptr), __ptr_(nullptr) -#endif - {} - - template - _LIBCPP_INLINE_VISIBILITY - __deque_iterator(const __deque_iterator& __it, - typename enable_if::value>::type* = 0) _NOEXCEPT - : __m_iter_(__it.__m_iter_), __ptr_(__it.__ptr_) {} - - _LIBCPP_INLINE_VISIBILITY reference operator*() const {return *__ptr_;} - _LIBCPP_INLINE_VISIBILITY pointer operator->() const {return __ptr_;} - - _LIBCPP_INLINE_VISIBILITY __deque_iterator& operator++() - { - if (++__ptr_ - *__m_iter_ == __block_size) - { - ++__m_iter_; - __ptr_ = *__m_iter_; - } - return *this; - } - - _LIBCPP_INLINE_VISIBILITY __deque_iterator operator++(int) - { - __deque_iterator __tmp = *this; - ++(*this); - return __tmp; - } - - _LIBCPP_INLINE_VISIBILITY __deque_iterator& operator--() - { - if (__ptr_ == *__m_iter_) - { - --__m_iter_; - __ptr_ = *__m_iter_ + __block_size; - } - --__ptr_; - return *this; - } - - _LIBCPP_INLINE_VISIBILITY __deque_iterator operator--(int) - { - __deque_iterator __tmp = *this; - --(*this); - return __tmp; - } - - _LIBCPP_INLINE_VISIBILITY __deque_iterator& operator+=(difference_type __n) - { - if (__n != 0) - { - __n += __ptr_ - *__m_iter_; - if (__n > 0) - { - __m_iter_ += __n / __block_size; - __ptr_ = *__m_iter_ + __n % __block_size; - } - else // (__n < 0) - { - difference_type __z = __block_size - 1 - __n; - __m_iter_ -= __z / __block_size; - __ptr_ = *__m_iter_ + (__block_size - 1 - __z % __block_size); - } - } - return *this; - } - - _LIBCPP_INLINE_VISIBILITY __deque_iterator& operator-=(difference_type __n) - { - return *this += -__n; - } - - _LIBCPP_INLINE_VISIBILITY __deque_iterator operator+(difference_type __n) const - { - __deque_iterator __t(*this); - __t += __n; - return __t; - } - - _LIBCPP_INLINE_VISIBILITY __deque_iterator operator-(difference_type __n) const - { - __deque_iterator __t(*this); - __t -= __n; - return __t; - } - - _LIBCPP_INLINE_VISIBILITY - friend __deque_iterator operator+(difference_type __n, const __deque_iterator& __it) - {return __it + __n;} - - _LIBCPP_INLINE_VISIBILITY - friend difference_type operator-(const __deque_iterator& __x, const __deque_iterator& __y) - { - if (__x != __y) - return (__x.__m_iter_ - __y.__m_iter_) * __block_size - + (__x.__ptr_ - *__x.__m_iter_) - - (__y.__ptr_ - *__y.__m_iter_); - return 0; - } - - _LIBCPP_INLINE_VISIBILITY reference operator[](difference_type __n) const - {return *(*this + __n);} - - _LIBCPP_INLINE_VISIBILITY friend - bool operator==(const __deque_iterator& __x, const __deque_iterator& __y) - {return __x.__ptr_ == __y.__ptr_;} - - _LIBCPP_INLINE_VISIBILITY friend - bool operator!=(const __deque_iterator& __x, const __deque_iterator& __y) - {return !(__x == __y);} - - _LIBCPP_INLINE_VISIBILITY friend - bool operator<(const __deque_iterator& __x, const __deque_iterator& __y) - {return __x.__m_iter_ < __y.__m_iter_ || - (__x.__m_iter_ == __y.__m_iter_ && __x.__ptr_ < __y.__ptr_);} - - _LIBCPP_INLINE_VISIBILITY friend - bool operator>(const __deque_iterator& __x, const __deque_iterator& __y) - {return __y < __x;} - - _LIBCPP_INLINE_VISIBILITY friend - bool operator<=(const __deque_iterator& __x, const __deque_iterator& __y) - {return !(__y < __x);} - - _LIBCPP_INLINE_VISIBILITY friend - bool operator>=(const __deque_iterator& __x, const __deque_iterator& __y) - {return !(__x < __y);} - -private: - _LIBCPP_INLINE_VISIBILITY __deque_iterator(__map_iterator __m, pointer __p) _NOEXCEPT - : __m_iter_(__m), __ptr_(__p) {} - - template friend class __deque_base; - template friend class _LIBCPP_TYPE_VIS_ONLY deque; - template - friend class _LIBCPP_TYPE_VIS_ONLY __deque_iterator; - - template - friend - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> - copy(_RAIter __f, - _RAIter __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*); - - template - friend - _OutputIterator - copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - _OutputIterator __r); - - template - friend - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> - copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r); - - template - friend - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> - copy_backward(_RAIter __f, - _RAIter __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*); - - template - friend - _OutputIterator - copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - _OutputIterator __r); - - template - friend - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> - copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r); - - template - friend - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> - move(_RAIter __f, - _RAIter __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*); - - template - friend - _OutputIterator - move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - _OutputIterator __r); - - template - friend - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> - move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r); - - template - friend - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> - move_backward(_RAIter __f, - _RAIter __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*); - - template - friend - _OutputIterator - move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - _OutputIterator __r); - - template - friend - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> - move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r); -}; - -template -const _DiffType __deque_iterator<_ValueType, _Pointer, _Reference, _MapPointer, - _DiffType, _BlockSize>::__block_size = - __deque_block_size<_ValueType, _DiffType>::value; - -// copy - -template -__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> -copy(_RAIter __f, - _RAIter __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*) -{ - typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type; - typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer; - const difference_type __block_size = __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::__block_size; - while (__f != __l) - { - pointer __rb = __r.__ptr_; - pointer __re = *__r.__m_iter_ + __block_size; - difference_type __bs = __re - __rb; - difference_type __n = __l - __f; - _RAIter __m = __l; - if (__n > __bs) - { - __n = __bs; - __m = __f + __n; - } - _VSTD::copy(__f, __m, __rb); - __f = __m; - __r += __n; - } - return __r; -} - -template -_OutputIterator -copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - _OutputIterator __r) -{ - typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type; - typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer; - const difference_type __block_size = __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::__block_size; - difference_type __n = __l - __f; - while (__n > 0) - { - pointer __fb = __f.__ptr_; - pointer __fe = *__f.__m_iter_ + __block_size; - difference_type __bs = __fe - __fb; - if (__bs > __n) - { - __bs = __n; - __fe = __fb + __bs; - } - __r = _VSTD::copy(__fb, __fe, __r); - __n -= __bs; - __f += __bs; - } - return __r; -} - -template -__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> -copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r) -{ - typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type; - typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer; - const difference_type __block_size = __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::__block_size; - difference_type __n = __l - __f; - while (__n > 0) - { - pointer __fb = __f.__ptr_; - pointer __fe = *__f.__m_iter_ + __block_size; - difference_type __bs = __fe - __fb; - if (__bs > __n) - { - __bs = __n; - __fe = __fb + __bs; - } - __r = _VSTD::copy(__fb, __fe, __r); - __n -= __bs; - __f += __bs; - } - return __r; -} - -// copy_backward - -template -__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> -copy_backward(_RAIter __f, - _RAIter __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*) -{ - typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type; - typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer; - while (__f != __l) - { - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __rp = _VSTD::prev(__r); - pointer __rb = *__rp.__m_iter_; - pointer __re = __rp.__ptr_ + 1; - difference_type __bs = __re - __rb; - difference_type __n = __l - __f; - _RAIter __m = __f; - if (__n > __bs) - { - __n = __bs; - __m = __l - __n; - } - _VSTD::copy_backward(__m, __l, __re); - __l = __m; - __r -= __n; - } - return __r; -} - -template -_OutputIterator -copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - _OutputIterator __r) -{ - typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type; - typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer; - difference_type __n = __l - __f; - while (__n > 0) - { - --__l; - pointer __lb = *__l.__m_iter_; - pointer __le = __l.__ptr_ + 1; - difference_type __bs = __le - __lb; - if (__bs > __n) - { - __bs = __n; - __lb = __le - __bs; - } - __r = _VSTD::copy_backward(__lb, __le, __r); - __n -= __bs; - __l -= __bs - 1; - } - return __r; -} - -template -__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> -copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r) -{ - typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type; - typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer; - difference_type __n = __l - __f; - while (__n > 0) - { - --__l; - pointer __lb = *__l.__m_iter_; - pointer __le = __l.__ptr_ + 1; - difference_type __bs = __le - __lb; - if (__bs > __n) - { - __bs = __n; - __lb = __le - __bs; - } - __r = _VSTD::copy_backward(__lb, __le, __r); - __n -= __bs; - __l -= __bs - 1; - } - return __r; -} - -// move - -template -__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> -move(_RAIter __f, - _RAIter __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*) -{ - typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type; - typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer; - const difference_type __block_size = __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::__block_size; - while (__f != __l) - { - pointer __rb = __r.__ptr_; - pointer __re = *__r.__m_iter_ + __block_size; - difference_type __bs = __re - __rb; - difference_type __n = __l - __f; - _RAIter __m = __l; - if (__n > __bs) - { - __n = __bs; - __m = __f + __n; - } - _VSTD::move(__f, __m, __rb); - __f = __m; - __r += __n; - } - return __r; -} - -template -_OutputIterator -move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - _OutputIterator __r) -{ - typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type; - typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer; - const difference_type __block_size = __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::__block_size; - difference_type __n = __l - __f; - while (__n > 0) - { - pointer __fb = __f.__ptr_; - pointer __fe = *__f.__m_iter_ + __block_size; - difference_type __bs = __fe - __fb; - if (__bs > __n) - { - __bs = __n; - __fe = __fb + __bs; - } - __r = _VSTD::move(__fb, __fe, __r); - __n -= __bs; - __f += __bs; - } - return __r; -} - -template -__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> -move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r) -{ - typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type; - typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer; - const difference_type __block_size = __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::__block_size; - difference_type __n = __l - __f; - while (__n > 0) - { - pointer __fb = __f.__ptr_; - pointer __fe = *__f.__m_iter_ + __block_size; - difference_type __bs = __fe - __fb; - if (__bs > __n) - { - __bs = __n; - __fe = __fb + __bs; - } - __r = _VSTD::move(__fb, __fe, __r); - __n -= __bs; - __f += __bs; - } - return __r; -} - -// move_backward - -template -__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> -move_backward(_RAIter __f, - _RAIter __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*) -{ - typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type; - typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer; - while (__f != __l) - { - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __rp = _VSTD::prev(__r); - pointer __rb = *__rp.__m_iter_; - pointer __re = __rp.__ptr_ + 1; - difference_type __bs = __re - __rb; - difference_type __n = __l - __f; - _RAIter __m = __f; - if (__n > __bs) - { - __n = __bs; - __m = __l - __n; - } - _VSTD::move_backward(__m, __l, __re); - __l = __m; - __r -= __n; - } - return __r; -} - -template -_OutputIterator -move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - _OutputIterator __r) -{ - typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type; - typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer; - difference_type __n = __l - __f; - while (__n > 0) - { - --__l; - pointer __lb = *__l.__m_iter_; - pointer __le = __l.__ptr_ + 1; - difference_type __bs = __le - __lb; - if (__bs > __n) - { - __bs = __n; - __lb = __le - __bs; - } - __r = _VSTD::move_backward(__lb, __le, __r); - __n -= __bs; - __l -= __bs - 1; - } - return __r; -} - -template -__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> -move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f, - __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l, - __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r) -{ - typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type; - typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer; - difference_type __n = __l - __f; - while (__n > 0) - { - --__l; - pointer __lb = *__l.__m_iter_; - pointer __le = __l.__ptr_ + 1; - difference_type __bs = __le - __lb; - if (__bs > __n) - { - __bs = __n; - __lb = __le - __bs; - } - __r = _VSTD::move_backward(__lb, __le, __r); - __n -= __bs; - __l -= __bs - 1; - } - return __r; -} - -template -class __deque_base_common -{ -protected: - void __throw_length_error() const; - void __throw_out_of_range() const; -}; - -template -void -__deque_base_common<__b>::__throw_length_error() const -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - throw length_error("deque"); -#endif -} - -template -void -__deque_base_common<__b>::__throw_out_of_range() const -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - throw out_of_range("deque"); -#endif -} - -template -class __deque_base - : protected __deque_base_common -{ - __deque_base(const __deque_base& __c); - __deque_base& operator=(const __deque_base& __c); -protected: - typedef _Tp value_type; - typedef _Allocator allocator_type; - typedef allocator_traits __alloc_traits; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef typename __alloc_traits::size_type size_type; - typedef typename __alloc_traits::difference_type difference_type; - typedef typename __alloc_traits::pointer pointer; - typedef typename __alloc_traits::const_pointer const_pointer; - - static const difference_type __block_size; - - typedef typename __rebind_alloc_helper<__alloc_traits, pointer>::type __pointer_allocator; - typedef allocator_traits<__pointer_allocator> __map_traits; - typedef typename __map_traits::pointer __map_pointer; - typedef typename __rebind_alloc_helper<__alloc_traits, const_pointer>::type __const_pointer_allocator; - typedef typename allocator_traits<__const_pointer_allocator>::const_pointer __map_const_pointer; - typedef __split_buffer __map; - - typedef __deque_iterator iterator; - typedef __deque_iterator const_iterator; - - __map __map_; - size_type __start_; - __compressed_pair __size_; - - iterator begin() _NOEXCEPT; - const_iterator begin() const _NOEXCEPT; - iterator end() _NOEXCEPT; - const_iterator end() const _NOEXCEPT; - - _LIBCPP_INLINE_VISIBILITY size_type& size() {return __size_.first();} - _LIBCPP_INLINE_VISIBILITY - const size_type& size() const _NOEXCEPT {return __size_.first();} - _LIBCPP_INLINE_VISIBILITY allocator_type& __alloc() {return __size_.second();} - _LIBCPP_INLINE_VISIBILITY - const allocator_type& __alloc() const _NOEXCEPT {return __size_.second();} - - _LIBCPP_INLINE_VISIBILITY - __deque_base() - _NOEXCEPT_(is_nothrow_default_constructible::value); - _LIBCPP_INLINE_VISIBILITY - explicit __deque_base(const allocator_type& __a); -public: - ~__deque_base(); - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - - __deque_base(__deque_base&& __c) - _NOEXCEPT_(is_nothrow_move_constructible::value); - __deque_base(__deque_base&& __c, const allocator_type& __a); - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - void swap(__deque_base& __c) -#if _LIBCPP_STD_VER >= 14 - _NOEXCEPT; -#else - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || - __is_nothrow_swappable::value); -#endif -protected: - void clear() _NOEXCEPT; - - bool __invariants() const; - - _LIBCPP_INLINE_VISIBILITY - void __move_assign(__deque_base& __c) - _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable::value) - { - __map_ = _VSTD::move(__c.__map_); - __start_ = __c.__start_; - size() = __c.size(); - __move_assign_alloc(__c); - __c.__start_ = __c.size() = 0; - } - - _LIBCPP_INLINE_VISIBILITY - void __move_assign_alloc(__deque_base& __c) - _NOEXCEPT_(!__alloc_traits::propagate_on_container_move_assignment::value || - is_nothrow_move_assignable::value) - {__move_assign_alloc(__c, integral_constant());} - -private: - _LIBCPP_INLINE_VISIBILITY - void __move_assign_alloc(__deque_base& __c, true_type) - _NOEXCEPT_(is_nothrow_move_assignable::value) - { - __alloc() = _VSTD::move(__c.__alloc()); - } - - _LIBCPP_INLINE_VISIBILITY - void __move_assign_alloc(__deque_base&, false_type) _NOEXCEPT - {} -}; - -template -const typename __deque_base<_Tp, _Allocator>::difference_type - __deque_base<_Tp, _Allocator>::__block_size = - __deque_block_size::value; - -template -bool -__deque_base<_Tp, _Allocator>::__invariants() const -{ - if (!__map_.__invariants()) - return false; - if (__map_.size() >= size_type(-1) / __block_size) - return false; - for (typename __map::const_iterator __i = __map_.begin(), __e = __map_.end(); - __i != __e; ++__i) - if (*__i == nullptr) - return false; - if (__map_.size() != 0) - { - if (size() >= __map_.size() * __block_size) - return false; - if (__start_ >= __map_.size() * __block_size - size()) - return false; - } - else - { - if (size() != 0) - return false; - if (__start_ != 0) - return false; - } - return true; -} - -template -typename __deque_base<_Tp, _Allocator>::iterator -__deque_base<_Tp, _Allocator>::begin() _NOEXCEPT -{ - __map_pointer __mp = __map_.begin() + __start_ / __block_size; - return iterator(__mp, __map_.empty() ? 0 : *__mp + __start_ % __block_size); -} - -template -typename __deque_base<_Tp, _Allocator>::const_iterator -__deque_base<_Tp, _Allocator>::begin() const _NOEXCEPT -{ - __map_const_pointer __mp = static_cast<__map_const_pointer>(__map_.begin() + __start_ / __block_size); - return const_iterator(__mp, __map_.empty() ? 0 : *__mp + __start_ % __block_size); -} - -template -typename __deque_base<_Tp, _Allocator>::iterator -__deque_base<_Tp, _Allocator>::end() _NOEXCEPT -{ - size_type __p = size() + __start_; - __map_pointer __mp = __map_.begin() + __p / __block_size; - return iterator(__mp, __map_.empty() ? 0 : *__mp + __p % __block_size); -} - -template -typename __deque_base<_Tp, _Allocator>::const_iterator -__deque_base<_Tp, _Allocator>::end() const _NOEXCEPT -{ - size_type __p = size() + __start_; - __map_const_pointer __mp = static_cast<__map_const_pointer>(__map_.begin() + __p / __block_size); - return const_iterator(__mp, __map_.empty() ? 0 : *__mp + __p % __block_size); -} - -template -inline -__deque_base<_Tp, _Allocator>::__deque_base() - _NOEXCEPT_(is_nothrow_default_constructible::value) - : __start_(0), __size_(0) {} - -template -inline -__deque_base<_Tp, _Allocator>::__deque_base(const allocator_type& __a) - : __map_(__pointer_allocator(__a)), __start_(0), __size_(0, __a) {} - -template -__deque_base<_Tp, _Allocator>::~__deque_base() -{ - clear(); - typename __map::iterator __i = __map_.begin(); - typename __map::iterator __e = __map_.end(); - for (; __i != __e; ++__i) - __alloc_traits::deallocate(__alloc(), *__i, __block_size); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -__deque_base<_Tp, _Allocator>::__deque_base(__deque_base&& __c) - _NOEXCEPT_(is_nothrow_move_constructible::value) - : __map_(_VSTD::move(__c.__map_)), - __start_(_VSTD::move(__c.__start_)), - __size_(_VSTD::move(__c.__size_)) -{ - __c.__start_ = 0; - __c.size() = 0; -} - -template -__deque_base<_Tp, _Allocator>::__deque_base(__deque_base&& __c, const allocator_type& __a) - : __map_(_VSTD::move(__c.__map_), __pointer_allocator(__a)), - __start_(_VSTD::move(__c.__start_)), - __size_(_VSTD::move(__c.size()), __a) -{ - if (__a == __c.__alloc()) - { - __c.__start_ = 0; - __c.size() = 0; - } - else - { - __map_.clear(); - __start_ = 0; - size() = 0; - } -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -__deque_base<_Tp, _Allocator>::swap(__deque_base& __c) -#if _LIBCPP_STD_VER >= 14 - _NOEXCEPT -#else - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || - __is_nothrow_swappable::value) -#endif -{ - __map_.swap(__c.__map_); - _VSTD::swap(__start_, __c.__start_); - _VSTD::swap(size(), __c.size()); - __swap_allocator(__alloc(), __c.__alloc()); -} - -template -void -__deque_base<_Tp, _Allocator>::clear() _NOEXCEPT -{ - allocator_type& __a = __alloc(); - for (iterator __i = begin(), __e = end(); __i != __e; ++__i) - __alloc_traits::destroy(__a, _VSTD::addressof(*__i)); - size() = 0; - while (__map_.size() > 2) - { - __alloc_traits::deallocate(__a, __map_.front(), __block_size); - __map_.pop_front(); - } - switch (__map_.size()) - { - case 1: - __start_ = __block_size / 2; - break; - case 2: - __start_ = __block_size; - break; - } -} - -template */> -class _LIBCPP_TYPE_VIS_ONLY deque - : private __deque_base<_Tp, _Allocator> -{ -public: - // types: - - typedef _Tp value_type; - typedef _Allocator allocator_type; - - typedef __deque_base __base; - - typedef typename __base::__alloc_traits __alloc_traits; - typedef typename __base::reference reference; - typedef typename __base::const_reference const_reference; - typedef typename __base::iterator iterator; - typedef typename __base::const_iterator const_iterator; - typedef typename __base::size_type size_type; - typedef typename __base::difference_type difference_type; - - typedef typename __base::pointer pointer; - typedef typename __base::const_pointer const_pointer; - typedef _VSTD::reverse_iterator reverse_iterator; - typedef _VSTD::reverse_iterator const_reverse_iterator; - - // construct/copy/destroy: - _LIBCPP_INLINE_VISIBILITY - deque() - _NOEXCEPT_(is_nothrow_default_constructible::value) - {} - _LIBCPP_INLINE_VISIBILITY explicit deque(const allocator_type& __a) : __base(__a) {} - explicit deque(size_type __n); -#if _LIBCPP_STD_VER > 11 - explicit deque(size_type __n, const _Allocator& __a); -#endif - deque(size_type __n, const value_type& __v); - deque(size_type __n, const value_type& __v, const allocator_type& __a); - template - deque(_InputIter __f, _InputIter __l, - typename enable_if<__is_input_iterator<_InputIter>::value>::type* = 0); - template - deque(_InputIter __f, _InputIter __l, const allocator_type& __a, - typename enable_if<__is_input_iterator<_InputIter>::value>::type* = 0); - deque(const deque& __c); - deque(const deque& __c, const allocator_type& __a); -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - deque(initializer_list __il); - deque(initializer_list __il, const allocator_type& __a); -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - - deque& operator=(const deque& __c); -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - _LIBCPP_INLINE_VISIBILITY - deque& operator=(initializer_list __il) {assign(__il); return *this;} -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - deque(deque&& __c) _NOEXCEPT_(is_nothrow_move_constructible<__base>::value); - _LIBCPP_INLINE_VISIBILITY - deque(deque&& __c, const allocator_type& __a); - _LIBCPP_INLINE_VISIBILITY - deque& operator=(deque&& __c) - _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable::value); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - template - void assign(_InputIter __f, _InputIter __l, - typename enable_if<__is_input_iterator<_InputIter>::value && - !__is_random_access_iterator<_InputIter>::value>::type* = 0); - template - void assign(_RAIter __f, _RAIter __l, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0); - void assign(size_type __n, const value_type& __v); -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - _LIBCPP_INLINE_VISIBILITY - void assign(initializer_list __il) {assign(__il.begin(), __il.end());} -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - - _LIBCPP_INLINE_VISIBILITY - allocator_type get_allocator() const _NOEXCEPT; - - // iterators: - - _LIBCPP_INLINE_VISIBILITY - iterator begin() _NOEXCEPT {return __base::begin();} - _LIBCPP_INLINE_VISIBILITY - const_iterator begin() const _NOEXCEPT {return __base::begin();} - _LIBCPP_INLINE_VISIBILITY - iterator end() _NOEXCEPT {return __base::end();} - _LIBCPP_INLINE_VISIBILITY - const_iterator end() const _NOEXCEPT {return __base::end();} - - _LIBCPP_INLINE_VISIBILITY - reverse_iterator rbegin() _NOEXCEPT - {return reverse_iterator(__base::end());} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator rbegin() const _NOEXCEPT - {return const_reverse_iterator(__base::end());} - _LIBCPP_INLINE_VISIBILITY - reverse_iterator rend() _NOEXCEPT - {return reverse_iterator(__base::begin());} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator rend() const _NOEXCEPT - {return const_reverse_iterator(__base::begin());} - - _LIBCPP_INLINE_VISIBILITY - const_iterator cbegin() const _NOEXCEPT - {return __base::begin();} - _LIBCPP_INLINE_VISIBILITY - const_iterator cend() const _NOEXCEPT - {return __base::end();} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator crbegin() const _NOEXCEPT - {return const_reverse_iterator(__base::end());} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator crend() const _NOEXCEPT - {return const_reverse_iterator(__base::begin());} - - // capacity: - _LIBCPP_INLINE_VISIBILITY - size_type size() const _NOEXCEPT {return __base::size();} - _LIBCPP_INLINE_VISIBILITY - size_type max_size() const _NOEXCEPT - {return __alloc_traits::max_size(__base::__alloc());} - void resize(size_type __n); - void resize(size_type __n, const value_type& __v); - void shrink_to_fit() _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - bool empty() const _NOEXCEPT {return __base::size() == 0;} - - // element access: - _LIBCPP_INLINE_VISIBILITY - reference operator[](size_type __i); - _LIBCPP_INLINE_VISIBILITY - const_reference operator[](size_type __i) const; - _LIBCPP_INLINE_VISIBILITY - reference at(size_type __i); - _LIBCPP_INLINE_VISIBILITY - const_reference at(size_type __i) const; - _LIBCPP_INLINE_VISIBILITY - reference front(); - _LIBCPP_INLINE_VISIBILITY - const_reference front() const; - _LIBCPP_INLINE_VISIBILITY - reference back(); - _LIBCPP_INLINE_VISIBILITY - const_reference back() const; - - // 23.2.2.3 modifiers: - void push_front(const value_type& __v); - void push_back(const value_type& __v); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -#ifndef _LIBCPP_HAS_NO_VARIADICS - template void emplace_front(_Args&&... __args); - template void emplace_back(_Args&&... __args); - template iterator emplace(const_iterator __p, _Args&&... __args); -#endif // _LIBCPP_HAS_NO_VARIADICS - void push_front(value_type&& __v); - void push_back(value_type&& __v); - iterator insert(const_iterator __p, value_type&& __v); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - iterator insert(const_iterator __p, const value_type& __v); - iterator insert(const_iterator __p, size_type __n, const value_type& __v); - template - iterator insert(const_iterator __p, _InputIter __f, _InputIter __l, - typename enable_if<__is_input_iterator<_InputIter>::value - &&!__is_forward_iterator<_InputIter>::value>::type* = 0); - template - iterator insert(const_iterator __p, _ForwardIterator __f, _ForwardIterator __l, - typename enable_if<__is_forward_iterator<_ForwardIterator>::value - &&!__is_bidirectional_iterator<_ForwardIterator>::value>::type* = 0); - template - iterator insert(const_iterator __p, _BiIter __f, _BiIter __l, - typename enable_if<__is_bidirectional_iterator<_BiIter>::value>::type* = 0); -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - _LIBCPP_INLINE_VISIBILITY - iterator insert(const_iterator __p, initializer_list __il) - {return insert(__p, __il.begin(), __il.end());} -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - void pop_front(); - void pop_back(); - iterator erase(const_iterator __p); - iterator erase(const_iterator __f, const_iterator __l); - - _LIBCPP_INLINE_VISIBILITY - void swap(deque& __c) -#if _LIBCPP_STD_VER >= 14 - _NOEXCEPT; -#else - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || - __is_nothrow_swappable::value); -#endif - _LIBCPP_INLINE_VISIBILITY - void clear() _NOEXCEPT; - - _LIBCPP_INLINE_VISIBILITY - bool __invariants() const {return __base::__invariants();} -private: - typedef typename __base::__map_const_pointer __map_const_pointer; - - _LIBCPP_INLINE_VISIBILITY - static size_type __recommend_blocks(size_type __n) - { - return __n / __base::__block_size + (__n % __base::__block_size != 0); - } - _LIBCPP_INLINE_VISIBILITY - size_type __capacity() const - { - return __base::__map_.size() == 0 ? 0 : __base::__map_.size() * __base::__block_size - 1; - } - _LIBCPP_INLINE_VISIBILITY - size_type __front_spare() const - { - return __base::__start_; - } - _LIBCPP_INLINE_VISIBILITY - size_type __back_spare() const - { - return __capacity() - (__base::__start_ + __base::size()); - } - - template - void __append(_InpIter __f, _InpIter __l, - typename enable_if<__is_input_iterator<_InpIter>::value && - !__is_forward_iterator<_InpIter>::value>::type* = 0); - template - void __append(_ForIter __f, _ForIter __l, - typename enable_if<__is_forward_iterator<_ForIter>::value>::type* = 0); - void __append(size_type __n); - void __append(size_type __n, const value_type& __v); - void __erase_to_end(const_iterator __f); - void __add_front_capacity(); - void __add_front_capacity(size_type __n); - void __add_back_capacity(); - void __add_back_capacity(size_type __n); - iterator __move_and_check(iterator __f, iterator __l, iterator __r, - const_pointer& __vt); - iterator __move_backward_and_check(iterator __f, iterator __l, iterator __r, - const_pointer& __vt); - void __move_construct_and_check(iterator __f, iterator __l, - iterator __r, const_pointer& __vt); - void __move_construct_backward_and_check(iterator __f, iterator __l, - iterator __r, const_pointer& __vt); - - _LIBCPP_INLINE_VISIBILITY - void __copy_assign_alloc(const deque& __c) - {__copy_assign_alloc(__c, integral_constant());} - - _LIBCPP_INLINE_VISIBILITY - void __copy_assign_alloc(const deque& __c, true_type) - { - if (__base::__alloc() != __c.__alloc()) - { - clear(); - shrink_to_fit(); - } - __base::__alloc() = __c.__alloc(); - __base::__map_.__alloc() = __c.__map_.__alloc(); - } - - _LIBCPP_INLINE_VISIBILITY - void __copy_assign_alloc(const deque&, false_type) - {} - - void __move_assign(deque& __c, true_type) - _NOEXCEPT_(is_nothrow_move_assignable::value); - void __move_assign(deque& __c, false_type); -}; - -template -deque<_Tp, _Allocator>::deque(size_type __n) -{ - if (__n > 0) - __append(__n); -} - -#if _LIBCPP_STD_VER > 11 -template -deque<_Tp, _Allocator>::deque(size_type __n, const _Allocator& __a) - : __base(__a) -{ - if (__n > 0) - __append(__n); -} -#endif - -template -deque<_Tp, _Allocator>::deque(size_type __n, const value_type& __v) -{ - if (__n > 0) - __append(__n, __v); -} - -template -deque<_Tp, _Allocator>::deque(size_type __n, const value_type& __v, const allocator_type& __a) - : __base(__a) -{ - if (__n > 0) - __append(__n, __v); -} - -template -template -deque<_Tp, _Allocator>::deque(_InputIter __f, _InputIter __l, - typename enable_if<__is_input_iterator<_InputIter>::value>::type*) -{ - __append(__f, __l); -} - -template -template -deque<_Tp, _Allocator>::deque(_InputIter __f, _InputIter __l, const allocator_type& __a, - typename enable_if<__is_input_iterator<_InputIter>::value>::type*) - : __base(__a) -{ - __append(__f, __l); -} - -template -deque<_Tp, _Allocator>::deque(const deque& __c) - : __base(__alloc_traits::select_on_container_copy_construction(__c.__alloc())) -{ - __append(__c.begin(), __c.end()); -} - -template -deque<_Tp, _Allocator>::deque(const deque& __c, const allocator_type& __a) - : __base(__a) -{ - __append(__c.begin(), __c.end()); -} - -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -template -deque<_Tp, _Allocator>::deque(initializer_list __il) -{ - __append(__il.begin(), __il.end()); -} - -template -deque<_Tp, _Allocator>::deque(initializer_list __il, const allocator_type& __a) - : __base(__a) -{ - __append(__il.begin(), __il.end()); -} - -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -template -deque<_Tp, _Allocator>& -deque<_Tp, _Allocator>::operator=(const deque& __c) -{ - if (this != &__c) - { - __copy_assign_alloc(__c); - assign(__c.begin(), __c.end()); - } - return *this; -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline -deque<_Tp, _Allocator>::deque(deque&& __c) - _NOEXCEPT_(is_nothrow_move_constructible<__base>::value) - : __base(_VSTD::move(__c)) -{ -} - -template -inline -deque<_Tp, _Allocator>::deque(deque&& __c, const allocator_type& __a) - : __base(_VSTD::move(__c), __a) -{ - if (__a != __c.__alloc()) - { - typedef move_iterator _Ip; - assign(_Ip(__c.begin()), _Ip(__c.end())); - } -} - -template -inline -deque<_Tp, _Allocator>& -deque<_Tp, _Allocator>::operator=(deque&& __c) - _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable::value) -{ - __move_assign(__c, integral_constant()); - return *this; -} - -template -void -deque<_Tp, _Allocator>::__move_assign(deque& __c, false_type) -{ - if (__base::__alloc() != __c.__alloc()) - { - typedef move_iterator _Ip; - assign(_Ip(__c.begin()), _Ip(__c.end())); - } - else - __move_assign(__c, true_type()); -} - -template -void -deque<_Tp, _Allocator>::__move_assign(deque& __c, true_type) - _NOEXCEPT_(is_nothrow_move_assignable::value) -{ - clear(); - shrink_to_fit(); - __base::__move_assign(__c); -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -template -void -deque<_Tp, _Allocator>::assign(_InputIter __f, _InputIter __l, - typename enable_if<__is_input_iterator<_InputIter>::value && - !__is_random_access_iterator<_InputIter>::value>::type*) -{ - iterator __i = __base::begin(); - iterator __e = __base::end(); - for (; __f != __l && __i != __e; ++__f, (void) ++__i) - *__i = *__f; - if (__f != __l) - __append(__f, __l); - else - __erase_to_end(__i); -} - -template -template -void -deque<_Tp, _Allocator>::assign(_RAIter __f, _RAIter __l, - typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*) -{ - if (static_cast(__l - __f) > __base::size()) - { - _RAIter __m = __f + __base::size(); - _VSTD::copy(__f, __m, __base::begin()); - __append(__m, __l); - } - else - __erase_to_end(_VSTD::copy(__f, __l, __base::begin())); -} - -template -void -deque<_Tp, _Allocator>::assign(size_type __n, const value_type& __v) -{ - if (__n > __base::size()) - { - _VSTD::fill_n(__base::begin(), __base::size(), __v); - __n -= __base::size(); - __append(__n, __v); - } - else - __erase_to_end(_VSTD::fill_n(__base::begin(), __n, __v)); -} - -template -inline -_Allocator -deque<_Tp, _Allocator>::get_allocator() const _NOEXCEPT -{ - return __base::__alloc(); -} - -template -void -deque<_Tp, _Allocator>::resize(size_type __n) -{ - if (__n > __base::size()) - __append(__n - __base::size()); - else if (__n < __base::size()) - __erase_to_end(__base::begin() + __n); -} - -template -void -deque<_Tp, _Allocator>::resize(size_type __n, const value_type& __v) -{ - if (__n > __base::size()) - __append(__n - __base::size(), __v); - else if (__n < __base::size()) - __erase_to_end(__base::begin() + __n); -} - -template -void -deque<_Tp, _Allocator>::shrink_to_fit() _NOEXCEPT -{ - allocator_type& __a = __base::__alloc(); - if (empty()) - { - while (__base::__map_.size() > 0) - { - __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size); - __base::__map_.pop_back(); - } - __base::__start_ = 0; - } - else - { - if (__front_spare() >= __base::__block_size) - { - __alloc_traits::deallocate(__a, __base::__map_.front(), __base::__block_size); - __base::__map_.pop_front(); - __base::__start_ -= __base::__block_size; - } - if (__back_spare() >= __base::__block_size) - { - __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size); - __base::__map_.pop_back(); - } - } - __base::__map_.shrink_to_fit(); -} - -template -inline -typename deque<_Tp, _Allocator>::reference -deque<_Tp, _Allocator>::operator[](size_type __i) -{ - size_type __p = __base::__start_ + __i; - return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size); -} - -template -inline -typename deque<_Tp, _Allocator>::const_reference -deque<_Tp, _Allocator>::operator[](size_type __i) const -{ - size_type __p = __base::__start_ + __i; - return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size); -} - -template -inline -typename deque<_Tp, _Allocator>::reference -deque<_Tp, _Allocator>::at(size_type __i) -{ - if (__i >= __base::size()) - __base::__throw_out_of_range(); - size_type __p = __base::__start_ + __i; - return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size); -} - -template -inline -typename deque<_Tp, _Allocator>::const_reference -deque<_Tp, _Allocator>::at(size_type __i) const -{ - if (__i >= __base::size()) - __base::__throw_out_of_range(); - size_type __p = __base::__start_ + __i; - return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size); -} - -template -inline -typename deque<_Tp, _Allocator>::reference -deque<_Tp, _Allocator>::front() -{ - return *(*(__base::__map_.begin() + __base::__start_ / __base::__block_size) - + __base::__start_ % __base::__block_size); -} - -template -inline -typename deque<_Tp, _Allocator>::const_reference -deque<_Tp, _Allocator>::front() const -{ - return *(*(__base::__map_.begin() + __base::__start_ / __base::__block_size) - + __base::__start_ % __base::__block_size); -} - -template -inline -typename deque<_Tp, _Allocator>::reference -deque<_Tp, _Allocator>::back() -{ - size_type __p = __base::size() + __base::__start_ - 1; - return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size); -} - -template -inline -typename deque<_Tp, _Allocator>::const_reference -deque<_Tp, _Allocator>::back() const -{ - size_type __p = __base::size() + __base::__start_ - 1; - return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size); -} - -template -void -deque<_Tp, _Allocator>::push_back(const value_type& __v) -{ - allocator_type& __a = __base::__alloc(); - if (__back_spare() == 0) - __add_back_capacity(); - // __back_spare() >= 1 - __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), __v); - ++__base::size(); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -deque<_Tp, _Allocator>::push_back(value_type&& __v) -{ - allocator_type& __a = __base::__alloc(); - if (__back_spare() == 0) - __add_back_capacity(); - // __back_spare() >= 1 - __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), _VSTD::move(__v)); - ++__base::size(); -} - -#ifndef _LIBCPP_HAS_NO_VARIADICS - -template -template -void -deque<_Tp, _Allocator>::emplace_back(_Args&&... __args) -{ - allocator_type& __a = __base::__alloc(); - if (__back_spare() == 0) - __add_back_capacity(); - // __back_spare() >= 1 - __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), _VSTD::forward<_Args>(__args)...); - ++__base::size(); -} - -#endif // _LIBCPP_HAS_NO_VARIADICS -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -deque<_Tp, _Allocator>::push_front(const value_type& __v) -{ - allocator_type& __a = __base::__alloc(); - if (__front_spare() == 0) - __add_front_capacity(); - // __front_spare() >= 1 - __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), __v); - --__base::__start_; - ++__base::size(); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -deque<_Tp, _Allocator>::push_front(value_type&& __v) -{ - allocator_type& __a = __base::__alloc(); - if (__front_spare() == 0) - __add_front_capacity(); - // __front_spare() >= 1 - __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), _VSTD::move(__v)); - --__base::__start_; - ++__base::size(); -} - -#ifndef _LIBCPP_HAS_NO_VARIADICS - -template -template -void -deque<_Tp, _Allocator>::emplace_front(_Args&&... __args) -{ - allocator_type& __a = __base::__alloc(); - if (__front_spare() == 0) - __add_front_capacity(); - // __front_spare() >= 1 - __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), _VSTD::forward<_Args>(__args)...); - --__base::__start_; - ++__base::size(); -} - -#endif // _LIBCPP_HAS_NO_VARIADICS -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -typename deque<_Tp, _Allocator>::iterator -deque<_Tp, _Allocator>::insert(const_iterator __p, const value_type& __v) -{ - size_type __pos = __p - __base::begin(); - size_type __to_end = __base::size() - __pos; - allocator_type& __a = __base::__alloc(); - if (__pos < __to_end) - { // insert by shifting things backward - if (__front_spare() == 0) - __add_front_capacity(); - // __front_spare() >= 1 - if (__pos == 0) - { - __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), __v); - --__base::__start_; - ++__base::size(); - } - else - { - const_pointer __vt = pointer_traits::pointer_to(__v); - iterator __b = __base::begin(); - iterator __bm1 = _VSTD::prev(__b); - if (__vt == pointer_traits::pointer_to(*__b)) - __vt = pointer_traits::pointer_to(*__bm1); - __alloc_traits::construct(__a, _VSTD::addressof(*__bm1), _VSTD::move(*__b)); - --__base::__start_; - ++__base::size(); - if (__pos > 1) - __b = __move_and_check(_VSTD::next(__b), __b + __pos, __b, __vt); - *__b = *__vt; - } - } - else - { // insert by shifting things forward - if (__back_spare() == 0) - __add_back_capacity(); - // __back_capacity >= 1 - size_type __de = __base::size() - __pos; - if (__de == 0) - { - __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), __v); - ++__base::size(); - } - else - { - const_pointer __vt = pointer_traits::pointer_to(__v); - iterator __e = __base::end(); - iterator __em1 = _VSTD::prev(__e); - if (__vt == pointer_traits::pointer_to(*__em1)) - __vt = pointer_traits::pointer_to(*__e); - __alloc_traits::construct(__a, _VSTD::addressof(*__e), _VSTD::move(*__em1)); - ++__base::size(); - if (__de > 1) - __e = __move_backward_and_check(__e - __de, __em1, __e, __vt); - *--__e = *__vt; - } - } - return __base::begin() + __pos; -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -typename deque<_Tp, _Allocator>::iterator -deque<_Tp, _Allocator>::insert(const_iterator __p, value_type&& __v) -{ - size_type __pos = __p - __base::begin(); - size_type __to_end = __base::size() - __pos; - allocator_type& __a = __base::__alloc(); - if (__pos < __to_end) - { // insert by shifting things backward - if (__front_spare() == 0) - __add_front_capacity(); - // __front_spare() >= 1 - if (__pos == 0) - { - __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), _VSTD::move(__v)); - --__base::__start_; - ++__base::size(); - } - else - { - iterator __b = __base::begin(); - iterator __bm1 = _VSTD::prev(__b); - __alloc_traits::construct(__a, _VSTD::addressof(*__bm1), _VSTD::move(*__b)); - --__base::__start_; - ++__base::size(); - if (__pos > 1) - __b = _VSTD::move(_VSTD::next(__b), __b + __pos, __b); - *__b = _VSTD::move(__v); - } - } - else - { // insert by shifting things forward - if (__back_spare() == 0) - __add_back_capacity(); - // __back_capacity >= 1 - size_type __de = __base::size() - __pos; - if (__de == 0) - { - __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), _VSTD::move(__v)); - ++__base::size(); - } - else - { - iterator __e = __base::end(); - iterator __em1 = _VSTD::prev(__e); - __alloc_traits::construct(__a, _VSTD::addressof(*__e), _VSTD::move(*__em1)); - ++__base::size(); - if (__de > 1) - __e = _VSTD::move_backward(__e - __de, __em1, __e); - *--__e = _VSTD::move(__v); - } - } - return __base::begin() + __pos; -} - -#ifndef _LIBCPP_HAS_NO_VARIADICS - -template -template -typename deque<_Tp, _Allocator>::iterator -deque<_Tp, _Allocator>::emplace(const_iterator __p, _Args&&... __args) -{ - size_type __pos = __p - __base::begin(); - size_type __to_end = __base::size() - __pos; - allocator_type& __a = __base::__alloc(); - if (__pos < __to_end) - { // insert by shifting things backward - if (__front_spare() == 0) - __add_front_capacity(); - // __front_spare() >= 1 - if (__pos == 0) - { - __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), _VSTD::forward<_Args>(__args)...); - --__base::__start_; - ++__base::size(); - } - else - { - value_type __tmp(_VSTD::forward<_Args>(__args)...); - iterator __b = __base::begin(); - iterator __bm1 = _VSTD::prev(__b); - __alloc_traits::construct(__a, _VSTD::addressof(*__bm1), _VSTD::move(*__b)); - --__base::__start_; - ++__base::size(); - if (__pos > 1) - __b = _VSTD::move(_VSTD::next(__b), __b + __pos, __b); - *__b = _VSTD::move(__tmp); - } - } - else - { // insert by shifting things forward - if (__back_spare() == 0) - __add_back_capacity(); - // __back_capacity >= 1 - size_type __de = __base::size() - __pos; - if (__de == 0) - { - __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), _VSTD::forward<_Args>(__args)...); - ++__base::size(); - } - else - { - value_type __tmp(_VSTD::forward<_Args>(__args)...); - iterator __e = __base::end(); - iterator __em1 = _VSTD::prev(__e); - __alloc_traits::construct(__a, _VSTD::addressof(*__e), _VSTD::move(*__em1)); - ++__base::size(); - if (__de > 1) - __e = _VSTD::move_backward(__e - __de, __em1, __e); - *--__e = _VSTD::move(__tmp); - } - } - return __base::begin() + __pos; -} - -#endif // _LIBCPP_HAS_NO_VARIADICS -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -typename deque<_Tp, _Allocator>::iterator -deque<_Tp, _Allocator>::insert(const_iterator __p, size_type __n, const value_type& __v) -{ - size_type __pos = __p - __base::begin(); - size_type __to_end = __base::size() - __pos; - allocator_type& __a = __base::__alloc(); - if (__pos < __to_end) - { // insert by shifting things backward - if (__n > __front_spare()) - __add_front_capacity(__n - __front_spare()); - // __n <= __front_spare() - iterator __old_begin = __base::begin(); - iterator __i = __old_begin; - if (__n > __pos) - { - for (size_type __m = __n - __pos; __m; --__m, --__base::__start_, ++__base::size()) - __alloc_traits::construct(__a, _VSTD::addressof(*--__i), __v); - __n = __pos; - } - if (__n > 0) - { - const_pointer __vt = pointer_traits::pointer_to(__v); - iterator __obn = __old_begin + __n; - __move_construct_backward_and_check(__old_begin, __obn, __i, __vt); - if (__n < __pos) - __old_begin = __move_and_check(__obn, __old_begin + __pos, __old_begin, __vt); - _VSTD::fill_n(__old_begin, __n, *__vt); - } - } - else - { // insert by shifting things forward - size_type __back_capacity = __back_spare(); - if (__n > __back_capacity) - __add_back_capacity(__n - __back_capacity); - // __n <= __back_capacity - iterator __old_end = __base::end(); - iterator __i = __old_end; - size_type __de = __base::size() - __pos; - if (__n > __de) - { - for (size_type __m = __n - __de; __m; --__m, ++__i, ++__base::size()) - __alloc_traits::construct(__a, _VSTD::addressof(*__i), __v); - __n = __de; - } - if (__n > 0) - { - const_pointer __vt = pointer_traits::pointer_to(__v); - iterator __oen = __old_end - __n; - __move_construct_and_check(__oen, __old_end, __i, __vt); - if (__n < __de) - __old_end = __move_backward_and_check(__old_end - __de, __oen, __old_end, __vt); - _VSTD::fill_n(__old_end - __n, __n, *__vt); - } - } - return __base::begin() + __pos; -} - -template -template -typename deque<_Tp, _Allocator>::iterator -deque<_Tp, _Allocator>::insert(const_iterator __p, _InputIter __f, _InputIter __l, - typename enable_if<__is_input_iterator<_InputIter>::value - &&!__is_forward_iterator<_InputIter>::value>::type*) -{ - __split_buffer __buf(__base::__alloc()); - __buf.__construct_at_end(__f, __l); - typedef typename __split_buffer::iterator __bi; - return insert(__p, move_iterator<__bi>(__buf.begin()), move_iterator<__bi>(__buf.end())); -} - -template -template -typename deque<_Tp, _Allocator>::iterator -deque<_Tp, _Allocator>::insert(const_iterator __p, _ForwardIterator __f, _ForwardIterator __l, - typename enable_if<__is_forward_iterator<_ForwardIterator>::value - &&!__is_bidirectional_iterator<_ForwardIterator>::value>::type*) -{ - size_type __n = _VSTD::distance(__f, __l); - __split_buffer __buf(__n, 0, __base::__alloc()); - __buf.__construct_at_end(__f, __l); - typedef typename __split_buffer::iterator __fwd; - return insert(__p, move_iterator<__fwd>(__buf.begin()), move_iterator<__fwd>(__buf.end())); -} - -template -template -typename deque<_Tp, _Allocator>::iterator -deque<_Tp, _Allocator>::insert(const_iterator __p, _BiIter __f, _BiIter __l, - typename enable_if<__is_bidirectional_iterator<_BiIter>::value>::type*) -{ - size_type __n = _VSTD::distance(__f, __l); - size_type __pos = __p - __base::begin(); - size_type __to_end = __base::size() - __pos; - allocator_type& __a = __base::__alloc(); - if (__pos < __to_end) - { // insert by shifting things backward - if (__n > __front_spare()) - __add_front_capacity(__n - __front_spare()); - // __n <= __front_spare() - iterator __old_begin = __base::begin(); - iterator __i = __old_begin; - _BiIter __m = __f; - if (__n > __pos) - { - __m = __pos < __n / 2 ? _VSTD::prev(__l, __pos) : _VSTD::next(__f, __n - __pos); - for (_BiIter __j = __m; __j != __f; --__base::__start_, ++__base::size()) - __alloc_traits::construct(__a, _VSTD::addressof(*--__i), *--__j); - __n = __pos; - } - if (__n > 0) - { - iterator __obn = __old_begin + __n; - for (iterator __j = __obn; __j != __old_begin;) - { - __alloc_traits::construct(__a, _VSTD::addressof(*--__i), _VSTD::move(*--__j)); - --__base::__start_; - ++__base::size(); - } - if (__n < __pos) - __old_begin = _VSTD::move(__obn, __old_begin + __pos, __old_begin); - _VSTD::copy(__m, __l, __old_begin); - } - } - else - { // insert by shifting things forward - size_type __back_capacity = __back_spare(); - if (__n > __back_capacity) - __add_back_capacity(__n - __back_capacity); - // __n <= __back_capacity - iterator __old_end = __base::end(); - iterator __i = __old_end; - _BiIter __m = __l; - size_type __de = __base::size() - __pos; - if (__n > __de) - { - __m = __de < __n / 2 ? _VSTD::next(__f, __de) : _VSTD::prev(__l, __n - __de); - for (_BiIter __j = __m; __j != __l; ++__i, (void) ++__j, ++__base::size()) - __alloc_traits::construct(__a, _VSTD::addressof(*__i), *__j); - __n = __de; - } - if (__n > 0) - { - iterator __oen = __old_end - __n; - for (iterator __j = __oen; __j != __old_end; ++__i, ++__j, ++__base::size()) - __alloc_traits::construct(__a, _VSTD::addressof(*__i), _VSTD::move(*__j)); - if (__n < __de) - __old_end = _VSTD::move_backward(__old_end - __de, __oen, __old_end); - _VSTD::copy_backward(__f, __m, __old_end); - } - } - return __base::begin() + __pos; -} - -template -template -void -deque<_Tp, _Allocator>::__append(_InpIter __f, _InpIter __l, - typename enable_if<__is_input_iterator<_InpIter>::value && - !__is_forward_iterator<_InpIter>::value>::type*) -{ - for (; __f != __l; ++__f) - push_back(*__f); -} - -template -template -void -deque<_Tp, _Allocator>::__append(_ForIter __f, _ForIter __l, - typename enable_if<__is_forward_iterator<_ForIter>::value>::type*) -{ - size_type __n = _VSTD::distance(__f, __l); - allocator_type& __a = __base::__alloc(); - size_type __back_capacity = __back_spare(); - if (__n > __back_capacity) - __add_back_capacity(__n - __back_capacity); - // __n <= __back_capacity - for (iterator __i = __base::end(); __f != __l; ++__i, (void) ++__f, ++__base::size()) - __alloc_traits::construct(__a, _VSTD::addressof(*__i), *__f); -} - -template -void -deque<_Tp, _Allocator>::__append(size_type __n) -{ - allocator_type& __a = __base::__alloc(); - size_type __back_capacity = __back_spare(); - if (__n > __back_capacity) - __add_back_capacity(__n - __back_capacity); - // __n <= __back_capacity - for (iterator __i = __base::end(); __n; --__n, ++__i, ++__base::size()) - __alloc_traits::construct(__a, _VSTD::addressof(*__i)); -} - -template -void -deque<_Tp, _Allocator>::__append(size_type __n, const value_type& __v) -{ - allocator_type& __a = __base::__alloc(); - size_type __back_capacity = __back_spare(); - if (__n > __back_capacity) - __add_back_capacity(__n - __back_capacity); - // __n <= __back_capacity - for (iterator __i = __base::end(); __n; --__n, ++__i, ++__base::size()) - __alloc_traits::construct(__a, _VSTD::addressof(*__i), __v); -} - -// Create front capacity for one block of elements. -// Strong guarantee. Either do it or don't touch anything. -template -void -deque<_Tp, _Allocator>::__add_front_capacity() -{ - allocator_type& __a = __base::__alloc(); - if (__back_spare() >= __base::__block_size) - { - __base::__start_ += __base::__block_size; - pointer __pt = __base::__map_.back(); - __base::__map_.pop_back(); - __base::__map_.push_front(__pt); - } - // Else if __base::__map_.size() < __base::__map_.capacity() then we need to allocate 1 buffer - else if (__base::__map_.size() < __base::__map_.capacity()) - { // we can put the new buffer into the map, but don't shift things around - // until all buffers are allocated. If we throw, we don't need to fix - // anything up (any added buffers are undetectible) - if (__base::__map_.__front_spare() > 0) - __base::__map_.push_front(__alloc_traits::allocate(__a, __base::__block_size)); - else - { - __base::__map_.push_back(__alloc_traits::allocate(__a, __base::__block_size)); - // Done allocating, reorder capacity - pointer __pt = __base::__map_.back(); - __base::__map_.pop_back(); - __base::__map_.push_front(__pt); - } - __base::__start_ = __base::__map_.size() == 1 ? - __base::__block_size / 2 : - __base::__start_ + __base::__block_size; - } - // Else need to allocate 1 buffer, *and* we need to reallocate __map_. - else - { - __split_buffer - __buf(max(2 * __base::__map_.capacity(), 1), - 0, __base::__map_.__alloc()); - - typedef __allocator_destructor<_Allocator> _Dp; - unique_ptr __hold( - __alloc_traits::allocate(__a, __base::__block_size), - _Dp(__a, __base::__block_size)); - __buf.push_back(__hold.get()); - __hold.release(); - - for (typename __base::__map_pointer __i = __base::__map_.begin(); - __i != __base::__map_.end(); ++__i) - __buf.push_back(*__i); - _VSTD::swap(__base::__map_.__first_, __buf.__first_); - _VSTD::swap(__base::__map_.__begin_, __buf.__begin_); - _VSTD::swap(__base::__map_.__end_, __buf.__end_); - _VSTD::swap(__base::__map_.__end_cap(), __buf.__end_cap()); - __base::__start_ = __base::__map_.size() == 1 ? - __base::__block_size / 2 : - __base::__start_ + __base::__block_size; - } -} - -// Create front capacity for __n elements. -// Strong guarantee. Either do it or don't touch anything. -template -void -deque<_Tp, _Allocator>::__add_front_capacity(size_type __n) -{ - allocator_type& __a = __base::__alloc(); - size_type __nb = __recommend_blocks(__n + __base::__map_.empty()); - // Number of unused blocks at back: - size_type __back_capacity = __back_spare() / __base::__block_size; - __back_capacity = _VSTD::min(__back_capacity, __nb); // don't take more than you need - __nb -= __back_capacity; // number of blocks need to allocate - // If __nb == 0, then we have sufficient capacity. - if (__nb == 0) - { - __base::__start_ += __base::__block_size * __back_capacity; - for (; __back_capacity > 0; --__back_capacity) - { - pointer __pt = __base::__map_.back(); - __base::__map_.pop_back(); - __base::__map_.push_front(__pt); - } - } - // Else if __nb <= __map_.capacity() - __map_.size() then we need to allocate __nb buffers - else if (__nb <= __base::__map_.capacity() - __base::__map_.size()) - { // we can put the new buffers into the map, but don't shift things around - // until all buffers are allocated. If we throw, we don't need to fix - // anything up (any added buffers are undetectible) - for (; __nb > 0; --__nb, __base::__start_ += __base::__block_size - (__base::__map_.size() == 1)) - { - if (__base::__map_.__front_spare() == 0) - break; - __base::__map_.push_front(__alloc_traits::allocate(__a, __base::__block_size)); - } - for (; __nb > 0; --__nb, ++__back_capacity) - __base::__map_.push_back(__alloc_traits::allocate(__a, __base::__block_size)); - // Done allocating, reorder capacity - __base::__start_ += __back_capacity * __base::__block_size; - for (; __back_capacity > 0; --__back_capacity) - { - pointer __pt = __base::__map_.back(); - __base::__map_.pop_back(); - __base::__map_.push_front(__pt); - } - } - // Else need to allocate __nb buffers, *and* we need to reallocate __map_. - else - { - size_type __ds = (__nb + __back_capacity) * __base::__block_size - __base::__map_.empty(); - __split_buffer - __buf(max(2* __base::__map_.capacity(), - __nb + __base::__map_.size()), - 0, __base::__map_.__alloc()); -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - for (; __nb > 0; --__nb) - __buf.push_back(__alloc_traits::allocate(__a, __base::__block_size)); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - for (typename __base::__map_pointer __i = __buf.begin(); - __i != __buf.end(); ++__i) - __alloc_traits::deallocate(__a, *__i, __base::__block_size); - throw; - } -#endif // _LIBCPP_NO_EXCEPTIONS - for (; __back_capacity > 0; --__back_capacity) - { - __buf.push_back(__base::__map_.back()); - __base::__map_.pop_back(); - } - for (typename __base::__map_pointer __i = __base::__map_.begin(); - __i != __base::__map_.end(); ++__i) - __buf.push_back(*__i); - _VSTD::swap(__base::__map_.__first_, __buf.__first_); - _VSTD::swap(__base::__map_.__begin_, __buf.__begin_); - _VSTD::swap(__base::__map_.__end_, __buf.__end_); - _VSTD::swap(__base::__map_.__end_cap(), __buf.__end_cap()); - __base::__start_ += __ds; - } -} - -// Create back capacity for one block of elements. -// Strong guarantee. Either do it or don't touch anything. -template -void -deque<_Tp, _Allocator>::__add_back_capacity() -{ - allocator_type& __a = __base::__alloc(); - if (__front_spare() >= __base::__block_size) - { - __base::__start_ -= __base::__block_size; - pointer __pt = __base::__map_.front(); - __base::__map_.pop_front(); - __base::__map_.push_back(__pt); - } - // Else if __nb <= __map_.capacity() - __map_.size() then we need to allocate __nb buffers - else if (__base::__map_.size() < __base::__map_.capacity()) - { // we can put the new buffer into the map, but don't shift things around - // until it is allocated. If we throw, we don't need to fix - // anything up (any added buffers are undetectible) - if (__base::__map_.__back_spare() != 0) - __base::__map_.push_back(__alloc_traits::allocate(__a, __base::__block_size)); - else - { - __base::__map_.push_front(__alloc_traits::allocate(__a, __base::__block_size)); - // Done allocating, reorder capacity - pointer __pt = __base::__map_.front(); - __base::__map_.pop_front(); - __base::__map_.push_back(__pt); - } - } - // Else need to allocate 1 buffer, *and* we need to reallocate __map_. - else - { - __split_buffer - __buf(max(2* __base::__map_.capacity(), 1), - __base::__map_.size(), - __base::__map_.__alloc()); - - typedef __allocator_destructor<_Allocator> _Dp; - unique_ptr __hold( - __alloc_traits::allocate(__a, __base::__block_size), - _Dp(__a, __base::__block_size)); - __buf.push_back(__hold.get()); - __hold.release(); - - for (typename __base::__map_pointer __i = __base::__map_.end(); - __i != __base::__map_.begin();) - __buf.push_front(*--__i); - _VSTD::swap(__base::__map_.__first_, __buf.__first_); - _VSTD::swap(__base::__map_.__begin_, __buf.__begin_); - _VSTD::swap(__base::__map_.__end_, __buf.__end_); - _VSTD::swap(__base::__map_.__end_cap(), __buf.__end_cap()); - } -} - -// Create back capacity for __n elements. -// Strong guarantee. Either do it or don't touch anything. -template -void -deque<_Tp, _Allocator>::__add_back_capacity(size_type __n) -{ - allocator_type& __a = __base::__alloc(); - size_type __nb = __recommend_blocks(__n + __base::__map_.empty()); - // Number of unused blocks at front: - size_type __front_capacity = __front_spare() / __base::__block_size; - __front_capacity = _VSTD::min(__front_capacity, __nb); // don't take more than you need - __nb -= __front_capacity; // number of blocks need to allocate - // If __nb == 0, then we have sufficient capacity. - if (__nb == 0) - { - __base::__start_ -= __base::__block_size * __front_capacity; - for (; __front_capacity > 0; --__front_capacity) - { - pointer __pt = __base::__map_.front(); - __base::__map_.pop_front(); - __base::__map_.push_back(__pt); - } - } - // Else if __nb <= __map_.capacity() - __map_.size() then we need to allocate __nb buffers - else if (__nb <= __base::__map_.capacity() - __base::__map_.size()) - { // we can put the new buffers into the map, but don't shift things around - // until all buffers are allocated. If we throw, we don't need to fix - // anything up (any added buffers are undetectible) - for (; __nb > 0; --__nb) - { - if (__base::__map_.__back_spare() == 0) - break; - __base::__map_.push_back(__alloc_traits::allocate(__a, __base::__block_size)); - } - for (; __nb > 0; --__nb, ++__front_capacity, __base::__start_ += - __base::__block_size - (__base::__map_.size() == 1)) - __base::__map_.push_front(__alloc_traits::allocate(__a, __base::__block_size)); - // Done allocating, reorder capacity - __base::__start_ -= __base::__block_size * __front_capacity; - for (; __front_capacity > 0; --__front_capacity) - { - pointer __pt = __base::__map_.front(); - __base::__map_.pop_front(); - __base::__map_.push_back(__pt); - } - } - // Else need to allocate __nb buffers, *and* we need to reallocate __map_. - else - { - size_type __ds = __front_capacity * __base::__block_size; - __split_buffer - __buf(max(2* __base::__map_.capacity(), - __nb + __base::__map_.size()), - __base::__map_.size() - __front_capacity, - __base::__map_.__alloc()); -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - for (; __nb > 0; --__nb) - __buf.push_back(__alloc_traits::allocate(__a, __base::__block_size)); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - for (typename __base::__map_pointer __i = __buf.begin(); - __i != __buf.end(); ++__i) - __alloc_traits::deallocate(__a, *__i, __base::__block_size); - throw; - } -#endif // _LIBCPP_NO_EXCEPTIONS - for (; __front_capacity > 0; --__front_capacity) - { - __buf.push_back(__base::__map_.front()); - __base::__map_.pop_front(); - } - for (typename __base::__map_pointer __i = __base::__map_.end(); - __i != __base::__map_.begin();) - __buf.push_front(*--__i); - _VSTD::swap(__base::__map_.__first_, __buf.__first_); - _VSTD::swap(__base::__map_.__begin_, __buf.__begin_); - _VSTD::swap(__base::__map_.__end_, __buf.__end_); - _VSTD::swap(__base::__map_.__end_cap(), __buf.__end_cap()); - __base::__start_ -= __ds; - } -} - -template -void -deque<_Tp, _Allocator>::pop_front() -{ - allocator_type& __a = __base::__alloc(); - __alloc_traits::destroy(__a, __to_raw_pointer(*(__base::__map_.begin() + - __base::__start_ / __base::__block_size) + - __base::__start_ % __base::__block_size)); - --__base::size(); - if (++__base::__start_ >= 2 * __base::__block_size) - { - __alloc_traits::deallocate(__a, __base::__map_.front(), __base::__block_size); - __base::__map_.pop_front(); - __base::__start_ -= __base::__block_size; - } -} - -template -void -deque<_Tp, _Allocator>::pop_back() -{ - allocator_type& __a = __base::__alloc(); - size_type __p = __base::size() + __base::__start_ - 1; - __alloc_traits::destroy(__a, __to_raw_pointer(*(__base::__map_.begin() + - __p / __base::__block_size) + - __p % __base::__block_size)); - --__base::size(); - if (__back_spare() >= 2 * __base::__block_size) - { - __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size); - __base::__map_.pop_back(); - } -} - -// move assign [__f, __l) to [__r, __r + (__l-__f)). -// If __vt points into [__f, __l), then subtract (__f - __r) from __vt. -template -typename deque<_Tp, _Allocator>::iterator -deque<_Tp, _Allocator>::__move_and_check(iterator __f, iterator __l, iterator __r, - const_pointer& __vt) -{ - // as if - // for (; __f != __l; ++__f, ++__r) - // *__r = _VSTD::move(*__f); - difference_type __n = __l - __f; - while (__n > 0) - { - pointer __fb = __f.__ptr_; - pointer __fe = *__f.__m_iter_ + __base::__block_size; - difference_type __bs = __fe - __fb; - if (__bs > __n) - { - __bs = __n; - __fe = __fb + __bs; - } - if (__fb <= __vt && __vt < __fe) - __vt = (const_iterator(static_cast<__map_const_pointer>(__f.__m_iter_), __vt) -= __f - __r).__ptr_; - __r = _VSTD::move(__fb, __fe, __r); - __n -= __bs; - __f += __bs; - } - return __r; -} - -// move assign [__f, __l) to [__r - (__l-__f), __r) backwards. -// If __vt points into [__f, __l), then add (__r - __l) to __vt. -template -typename deque<_Tp, _Allocator>::iterator -deque<_Tp, _Allocator>::__move_backward_and_check(iterator __f, iterator __l, iterator __r, - const_pointer& __vt) -{ - // as if - // while (__f != __l) - // *--__r = _VSTD::move(*--__l); - difference_type __n = __l - __f; - while (__n > 0) - { - --__l; - pointer __lb = *__l.__m_iter_; - pointer __le = __l.__ptr_ + 1; - difference_type __bs = __le - __lb; - if (__bs > __n) - { - __bs = __n; - __lb = __le - __bs; - } - if (__lb <= __vt && __vt < __le) - __vt = (const_iterator(static_cast<__map_const_pointer>(__l.__m_iter_), __vt) += __r - __l - 1).__ptr_; - __r = _VSTD::move_backward(__lb, __le, __r); - __n -= __bs; - __l -= __bs - 1; - } - return __r; -} - -// move construct [__f, __l) to [__r, __r + (__l-__f)). -// If __vt points into [__f, __l), then add (__r - __f) to __vt. -template -void -deque<_Tp, _Allocator>::__move_construct_and_check(iterator __f, iterator __l, - iterator __r, const_pointer& __vt) -{ - allocator_type& __a = __base::__alloc(); - // as if - // for (; __f != __l; ++__r, ++__f, ++__base::size()) - // __alloc_traits::construct(__a, _VSTD::addressof(*__r), _VSTD::move(*__f)); - difference_type __n = __l - __f; - while (__n > 0) - { - pointer __fb = __f.__ptr_; - pointer __fe = *__f.__m_iter_ + __base::__block_size; - difference_type __bs = __fe - __fb; - if (__bs > __n) - { - __bs = __n; - __fe = __fb + __bs; - } - if (__fb <= __vt && __vt < __fe) - __vt = (const_iterator(static_cast<__map_const_pointer>(__f.__m_iter_), __vt) += __r - __f).__ptr_; - for (; __fb != __fe; ++__fb, ++__r, ++__base::size()) - __alloc_traits::construct(__a, _VSTD::addressof(*__r), _VSTD::move(*__fb)); - __n -= __bs; - __f += __bs; - } -} - -// move construct [__f, __l) to [__r - (__l-__f), __r) backwards. -// If __vt points into [__f, __l), then subtract (__l - __r) from __vt. -template -void -deque<_Tp, _Allocator>::__move_construct_backward_and_check(iterator __f, iterator __l, - iterator __r, const_pointer& __vt) -{ - allocator_type& __a = __base::__alloc(); - // as if - // for (iterator __j = __l; __j != __f;) - // { - // __alloc_traitsconstruct(__a, _VSTD::addressof(*--__r), _VSTD::move(*--__j)); - // --__base::__start_; - // ++__base::size(); - // } - difference_type __n = __l - __f; - while (__n > 0) - { - --__l; - pointer __lb = *__l.__m_iter_; - pointer __le = __l.__ptr_ + 1; - difference_type __bs = __le - __lb; - if (__bs > __n) - { - __bs = __n; - __lb = __le - __bs; - } - if (__lb <= __vt && __vt < __le) - __vt = (const_iterator(static_cast<__map_const_pointer>(__l.__m_iter_), __vt) -= __l - __r + 1).__ptr_; - while (__le != __lb) - { - __alloc_traits::construct(__a, _VSTD::addressof(*--__r), _VSTD::move(*--__le)); - --__base::__start_; - ++__base::size(); - } - __n -= __bs; - __l -= __bs - 1; - } -} - -template -typename deque<_Tp, _Allocator>::iterator -deque<_Tp, _Allocator>::erase(const_iterator __f) -{ - iterator __b = __base::begin(); - difference_type __pos = __f - __b; - iterator __p = __b + __pos; - allocator_type& __a = __base::__alloc(); - if (__pos <= (__base::size() - 1) / 2) - { // erase from front - _VSTD::move_backward(__b, __p, _VSTD::next(__p)); - __alloc_traits::destroy(__a, _VSTD::addressof(*__b)); - --__base::size(); - ++__base::__start_; - if (__front_spare() >= 2 * __base::__block_size) - { - __alloc_traits::deallocate(__a, __base::__map_.front(), __base::__block_size); - __base::__map_.pop_front(); - __base::__start_ -= __base::__block_size; - } - } - else - { // erase from back - iterator __i = _VSTD::move(_VSTD::next(__p), __base::end(), __p); - __alloc_traits::destroy(__a, _VSTD::addressof(*__i)); - --__base::size(); - if (__back_spare() >= 2 * __base::__block_size) - { - __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size); - __base::__map_.pop_back(); - } - } - return __base::begin() + __pos; -} - -template -typename deque<_Tp, _Allocator>::iterator -deque<_Tp, _Allocator>::erase(const_iterator __f, const_iterator __l) -{ - difference_type __n = __l - __f; - iterator __b = __base::begin(); - difference_type __pos = __f - __b; - iterator __p = __b + __pos; - if (__n > 0) - { - allocator_type& __a = __base::__alloc(); - if (__pos <= (__base::size() - __n) / 2) - { // erase from front - iterator __i = _VSTD::move_backward(__b, __p, __p + __n); - for (; __b != __i; ++__b) - __alloc_traits::destroy(__a, _VSTD::addressof(*__b)); - __base::size() -= __n; - __base::__start_ += __n; - while (__front_spare() >= 2 * __base::__block_size) - { - __alloc_traits::deallocate(__a, __base::__map_.front(), __base::__block_size); - __base::__map_.pop_front(); - __base::__start_ -= __base::__block_size; - } - } - else - { // erase from back - iterator __i = _VSTD::move(__p + __n, __base::end(), __p); - for (iterator __e = __base::end(); __i != __e; ++__i) - __alloc_traits::destroy(__a, _VSTD::addressof(*__i)); - __base::size() -= __n; - while (__back_spare() >= 2 * __base::__block_size) - { - __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size); - __base::__map_.pop_back(); - } - } - } - return __base::begin() + __pos; -} - -template -void -deque<_Tp, _Allocator>::__erase_to_end(const_iterator __f) -{ - iterator __e = __base::end(); - difference_type __n = __e - __f; - if (__n > 0) - { - allocator_type& __a = __base::__alloc(); - iterator __b = __base::begin(); - difference_type __pos = __f - __b; - for (iterator __p = __b + __pos; __p != __e; ++__p) - __alloc_traits::destroy(__a, _VSTD::addressof(*__p)); - __base::size() -= __n; - while (__back_spare() >= 2 * __base::__block_size) - { - __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size); - __base::__map_.pop_back(); - } - } -} - -template -inline -void -deque<_Tp, _Allocator>::swap(deque& __c) -#if _LIBCPP_STD_VER >= 14 - _NOEXCEPT -#else - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || - __is_nothrow_swappable::value) -#endif -{ - __base::swap(__c); -} - -template -inline -void -deque<_Tp, _Allocator>::clear() _NOEXCEPT -{ - __base::clear(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator==(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y) -{ - const typename deque<_Tp, _Allocator>::size_type __sz = __x.size(); - return __sz == __y.size() && _VSTD::equal(__x.begin(), __x.end(), __y.begin()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y) -{ - return !(__x == __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator< (const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y) -{ - return _VSTD::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator> (const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y) -{ - return __y < __x; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator>=(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y) -{ - return !(__x < __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator<=(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y) -{ - return !(__y < __x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(deque<_Tp, _Allocator>& __x, deque<_Tp, _Allocator>& __y) - _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) -{ - __x.swap(__y); -} - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_DEQUE diff --git a/headers/libs/libc++/errno.h b/headers/libs/libc++/errno.h deleted file mode 100644 index ee6429110c..0000000000 --- a/headers/libs/libc++/errno.h +++ /dev/null @@ -1,398 +0,0 @@ -// -*- C++ -*- -//===-------------------------- errno.h -----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_ERRNO_H -#define _LIBCPP_ERRNO_H - -/* - errno.h synopsis - -Macros: - - EDOM - EILSEQ // C99 - ERANGE - errno - -*/ - -#include <__config> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#include_next - -#ifdef __cplusplus - -#if !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) - -#ifdef ELAST - -static const int __elast1 = ELAST+1; -static const int __elast2 = ELAST+2; - -#else - -static const int __elast1 = 104; -static const int __elast2 = 105; - -#endif - -#ifdef ENOTRECOVERABLE - -#define EOWNERDEAD __elast1 - -#ifdef ELAST -#undef ELAST -#define ELAST EOWNERDEAD -#endif - -#elif defined(EOWNERDEAD) - -#define ENOTRECOVERABLE __elast1 -#ifdef ELAST -#undef ELAST -#define ELAST ENOTRECOVERABLE -#endif - -#else // defined(EOWNERDEAD) - -#define EOWNERDEAD __elast1 -#define ENOTRECOVERABLE __elast2 -#ifdef ELAST -#undef ELAST -#define ELAST ENOTRECOVERABLE -#endif - -#endif // defined(EOWNERDEAD) - -#endif // !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) - -// supply errno values likely to be missing, particularly on Windows - -#ifndef EAFNOSUPPORT -#define EAFNOSUPPORT 9901 -#endif - -#ifndef EADDRINUSE -#define EADDRINUSE 9902 -#endif - -#ifndef EADDRNOTAVAIL -#define EADDRNOTAVAIL 9903 -#endif - -#ifndef EISCONN -#define EISCONN 9904 -#endif - -#ifndef EBADMSG -#define EBADMSG 9905 -#endif - -#ifndef ECONNABORTED -#define ECONNABORTED 9906 -#endif - -#ifndef EALREADY -#define EALREADY 9907 -#endif - -#ifndef ECONNREFUSED -#define ECONNREFUSED 9908 -#endif - -#ifndef ECONNRESET -#define ECONNRESET 9909 -#endif - -#ifndef EDESTADDRREQ -#define EDESTADDRREQ 9910 -#endif - -#ifndef EHOSTUNREACH -#define EHOSTUNREACH 9911 -#endif - -#ifndef EIDRM -#define EIDRM 9912 -#endif - -#ifndef EMSGSIZE -#define EMSGSIZE 9913 -#endif - -#ifndef ENETDOWN -#define ENETDOWN 9914 -#endif - -#ifndef ENETRESET -#define ENETRESET 9915 -#endif - -#ifndef ENETUNREACH -#define ENETUNREACH 9916 -#endif - -#ifndef ENOBUFS -#define ENOBUFS 9917 -#endif - -#ifndef ENOLINK -#define ENOLINK 9918 -#endif - -#ifndef ENODATA -#define ENODATA 9919 -#endif - -#ifndef ENOMSG -#define ENOMSG 9920 -#endif - -#ifndef ENOPROTOOPT -#define ENOPROTOOPT 9921 -#endif - -#ifndef ENOSR -#define ENOSR 9922 -#endif - -#ifndef ENOTSOCK -#define ENOTSOCK 9923 -#endif - -#ifndef ENOSTR -#define ENOSTR 9924 -#endif - -#ifndef ENOTCONN -#define ENOTCONN 9925 -#endif - -#ifndef ENOTSUP -#define ENOTSUP 9926 -#endif - -#ifndef ECANCELED -#define ECANCELED 9927 -#endif - -#ifndef EINPROGRESS -#define EINPROGRESS 9928 -#endif - -#ifndef EOPNOTSUPP -#define EOPNOTSUPP 9929 -#endif - -#ifndef EWOULDBLOCK -#define EWOULDBLOCK 9930 -#endif - -#ifndef EOWNERDEAD -#define EOWNERDEAD 9931 -#endif - -#ifndef EPROTO -#define EPROTO 9932 -#endif - -#ifndef EPROTONOSUPPORT -#define EPROTONOSUPPORT 9933 -#endif - -#ifndef ENOTRECOVERABLE -#define ENOTRECOVERABLE 9934 -#endif - -#ifndef ETIME -#define ETIME 9935 -#endif - -#ifndef ETXTBSY -#define ETXTBSY 9936 -#endif - -#ifndef ETIMEDOUT -#define ETIMEDOUT 9938 -#endif - -#ifndef ELOOP -#define ELOOP 9939 -#endif - -#ifndef EOVERFLOW -#define EOVERFLOW 9940 -#endif - -#ifndef EPROTOTYPE -#define EPROTOTYPE 9941 -#endif - -#ifndef ENOSYS -#define ENOSYS 9942 -#endif - -#ifndef EINVAL -#define EINVAL 9943 -#endif - -#ifndef ERANGE -#define ERANGE 9944 -#endif - -#ifndef EILSEQ -#define EILSEQ 9945 -#endif - -// Windows Mobile doesn't appear to define these: - -#ifndef E2BIG -#define E2BIG 9946 -#endif - -#ifndef EDOM -#define EDOM 9947 -#endif - -#ifndef EFAULT -#define EFAULT 9948 -#endif - -#ifndef EBADF -#define EBADF 9949 -#endif - -#ifndef EPIPE -#define EPIPE 9950 -#endif - -#ifndef EXDEV -#define EXDEV 9951 -#endif - -#ifndef EBUSY -#define EBUSY 9952 -#endif - -#ifndef ENOTEMPTY -#define ENOTEMPTY 9953 -#endif - -#ifndef ENOEXEC -#define ENOEXEC 9954 -#endif - -#ifndef EEXIST -#define EEXIST 9955 -#endif - -#ifndef EFBIG -#define EFBIG 9956 -#endif - -#ifndef ENAMETOOLONG -#define ENAMETOOLONG 9957 -#endif - -#ifndef ENOTTY -#define ENOTTY 9958 -#endif - -#ifndef EINTR -#define EINTR 9959 -#endif - -#ifndef ESPIPE -#define ESPIPE 9960 -#endif - -#ifndef EIO -#define EIO 9961 -#endif - -#ifndef EISDIR -#define EISDIR 9962 -#endif - -#ifndef ECHILD -#define ECHILD 9963 -#endif - -#ifndef ENOLCK -#define ENOLCK 9964 -#endif - -#ifndef ENOSPC -#define ENOSPC 9965 -#endif - -#ifndef ENXIO -#define ENXIO 9966 -#endif - -#ifndef ENODEV -#define ENODEV 9967 -#endif - -#ifndef ENOENT -#define ENOENT 9968 -#endif - -#ifndef ESRCH -#define ESRCH 9969 -#endif - -#ifndef ENOTDIR -#define ENOTDIR 9970 -#endif - -#ifndef ENOMEM -#define ENOMEM 9971 -#endif - -#ifndef EPERM -#define EPERM 9972 -#endif - -#ifndef EACCES -#define EACCES 9973 -#endif - -#ifndef EROFS -#define EROFS 9974 -#endif - -#ifndef EDEADLK -#define EDEADLK 9975 -#endif - -#ifndef EAGAIN -#define EAGAIN 9976 -#endif - -#ifndef ENFILE -#define ENFILE 9977 -#endif - -#ifndef EMFILE -#define EMFILE 9978 -#endif - -#ifndef EMLINK -#define EMLINK 9979 -#endif - -#endif // __cplusplus - -#endif // _LIBCPP_ERRNO_H diff --git a/headers/libs/libc++/exception b/headers/libs/libc++/exception deleted file mode 100644 index 5a905e7e58..0000000000 --- a/headers/libs/libc++/exception +++ /dev/null @@ -1,254 +0,0 @@ -// -*- C++ -*- -//===-------------------------- exception ---------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_EXCEPTION -#define _LIBCPP_EXCEPTION - -/* - exception synopsis - -namespace std -{ - -class exception -{ -public: - exception() noexcept; - exception(const exception&) noexcept; - exception& operator=(const exception&) noexcept; - virtual ~exception() noexcept; - virtual const char* what() const noexcept; -}; - -class bad_exception - : public exception -{ -public: - bad_exception() noexcept; - bad_exception(const bad_exception&) noexcept; - bad_exception& operator=(const bad_exception&) noexcept; - virtual ~bad_exception() noexcept; - virtual const char* what() const noexcept; -}; - -typedef void (*unexpected_handler)(); -unexpected_handler set_unexpected(unexpected_handler f ) noexcept; -unexpected_handler get_unexpected() noexcept; -[[noreturn]] void unexpected(); - -typedef void (*terminate_handler)(); -terminate_handler set_terminate(terminate_handler f ) noexcept; -terminate_handler get_terminate() noexcept; -[[noreturn]] void terminate() noexcept; - -bool uncaught_exception() noexcept; -int uncaught_exceptions() noexcept; // C++17 - -typedef unspecified exception_ptr; - -exception_ptr current_exception() noexcept; -void rethrow_exception [[noreturn]] (exception_ptr p); -template exception_ptr make_exception_ptr(E e) noexcept; - -class nested_exception -{ -public: - nested_exception() noexcept; - nested_exception(const nested_exception&) noexcept = default; - nested_exception& operator=(const nested_exception&) noexcept = default; - virtual ~nested_exception() = default; - - // access functions - [[noreturn]] void rethrow_nested() const; - exception_ptr nested_ptr() const noexcept; -}; - -template [[noreturn]] void throw_with_nested(T&& t); -template void rethrow_if_nested(const E& e); - -} // std - -*/ - -#include <__config> -#include -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -namespace std // purposefully not using versioning namespace -{ - -class _LIBCPP_EXCEPTION_ABI exception -{ -public: - _LIBCPP_INLINE_VISIBILITY exception() _NOEXCEPT {} - virtual ~exception() _NOEXCEPT; - virtual const char* what() const _NOEXCEPT; -}; - -class _LIBCPP_EXCEPTION_ABI bad_exception - : public exception -{ -public: - _LIBCPP_INLINE_VISIBILITY bad_exception() _NOEXCEPT {} - virtual ~bad_exception() _NOEXCEPT; - virtual const char* what() const _NOEXCEPT; -}; - -typedef void (*unexpected_handler)(); -_LIBCPP_FUNC_VIS unexpected_handler set_unexpected(unexpected_handler) _NOEXCEPT; -_LIBCPP_FUNC_VIS unexpected_handler get_unexpected() _NOEXCEPT; -_LIBCPP_NORETURN _LIBCPP_FUNC_VIS void unexpected(); - -typedef void (*terminate_handler)(); -_LIBCPP_FUNC_VIS terminate_handler set_terminate(terminate_handler) _NOEXCEPT; -_LIBCPP_FUNC_VIS terminate_handler get_terminate() _NOEXCEPT; -_LIBCPP_NORETURN _LIBCPP_FUNC_VIS void terminate() _NOEXCEPT; - -_LIBCPP_FUNC_VIS bool uncaught_exception() _NOEXCEPT; -_LIBCPP_FUNC_VIS int uncaught_exceptions() _NOEXCEPT; - -class _LIBCPP_TYPE_VIS exception_ptr; - -_LIBCPP_FUNC_VIS exception_ptr current_exception() _NOEXCEPT; -_LIBCPP_NORETURN _LIBCPP_FUNC_VIS void rethrow_exception(exception_ptr); - -class _LIBCPP_TYPE_VIS exception_ptr -{ - void* __ptr_; -public: - _LIBCPP_INLINE_VISIBILITY exception_ptr() _NOEXCEPT : __ptr_() {} - _LIBCPP_INLINE_VISIBILITY exception_ptr(nullptr_t) _NOEXCEPT : __ptr_() {} - exception_ptr(const exception_ptr&) _NOEXCEPT; - exception_ptr& operator=(const exception_ptr&) _NOEXCEPT; - ~exception_ptr() _NOEXCEPT; - - _LIBCPP_INLINE_VISIBILITY - _LIBCPP_EXPLICIT - operator bool() const _NOEXCEPT {return __ptr_ != nullptr;} - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(const exception_ptr& __x, const exception_ptr& __y) _NOEXCEPT - {return __x.__ptr_ == __y.__ptr_;} - friend _LIBCPP_INLINE_VISIBILITY - bool operator!=(const exception_ptr& __x, const exception_ptr& __y) _NOEXCEPT - {return !(__x == __y);} - - friend _LIBCPP_FUNC_VIS exception_ptr current_exception() _NOEXCEPT; - friend _LIBCPP_FUNC_VIS void rethrow_exception(exception_ptr); -}; - -template -exception_ptr -make_exception_ptr(_Ep __e) _NOEXCEPT -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { - throw __e; - } - catch (...) - { - return current_exception(); - } -#endif // _LIBCPP_NO_EXCEPTIONS -} - -// nested_exception - -class _LIBCPP_EXCEPTION_ABI nested_exception -{ - exception_ptr __ptr_; -public: - nested_exception() _NOEXCEPT; -// nested_exception(const nested_exception&) noexcept = default; -// nested_exception& operator=(const nested_exception&) noexcept = default; - virtual ~nested_exception() _NOEXCEPT; - - // access functions - _LIBCPP_NORETURN void rethrow_nested() const; - _LIBCPP_INLINE_VISIBILITY exception_ptr nested_ptr() const _NOEXCEPT {return __ptr_;} -}; - -template -struct __nested - : public _Tp, - public nested_exception -{ - _LIBCPP_INLINE_VISIBILITY explicit __nested(const _Tp& __t) : _Tp(__t) {} -}; - -template -_LIBCPP_NORETURN -void -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -throw_with_nested(_Tp&& __t, typename enable_if< - is_class::type>::value && - !is_base_of::type>::value - && !__libcpp_is_final::type>::value - >::type* = 0) -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES -throw_with_nested (_Tp& __t, typename enable_if< - is_class<_Tp>::value && !is_base_of::value - >::type* = 0) -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - throw __nested::type>(_VSTD::forward<_Tp>(__t)); -#endif -} - -template -_LIBCPP_NORETURN -void -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -throw_with_nested(_Tp&& __t, typename enable_if< - !is_class::type>::value || - is_base_of::type>::value - || __libcpp_is_final::type>::value - >::type* = 0) -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES -throw_with_nested (_Tp& __t, typename enable_if< - !is_class<_Tp>::value || is_base_of::value - >::type* = 0) -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - throw _VSTD::forward<_Tp>(__t); -#endif -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -rethrow_if_nested(const _Ep& __e, typename enable_if< - is_polymorphic<_Ep>::value - >::type* = 0) -{ - const nested_exception* __nep = dynamic_cast(&__e); - if (__nep) - __nep->rethrow_nested(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -rethrow_if_nested(const _Ep&, typename enable_if< - !is_polymorphic<_Ep>::value - >::type* = 0) -{ -} - -} // std - -#endif // _LIBCPP_EXCEPTION diff --git a/headers/libs/libc++/experimental/__config b/headers/libs/libc++/experimental/__config deleted file mode 100644 index f64a3a90cd..0000000000 --- a/headers/libs/libc++/experimental/__config +++ /dev/null @@ -1,32 +0,0 @@ -// -*- C++ -*- -//===--------------------------- __config ---------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_EXPERIMENTAL_CONFIG -#define _LIBCPP_EXPERIMENTAL_CONFIG - -#include <__config> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL namespace std { namespace experimental { -#define _LIBCPP_END_NAMESPACE_EXPERIMENTAL } } -#define _VSTD_EXPERIMENTAL std::experimental - -#define _LIBCPP_BEGIN_NAMESPACE_LFTS _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace fundamentals_v1 { -#define _LIBCPP_END_NAMESPACE_LFTS } } } -#define _VSTD_LFTS _VSTD_EXPERIMENTAL::fundamentals_v1 - -#define _LIBCPP_BEGIN_NAMESPACE_CHRONO_LFTS _LIBCPP_BEGIN_NAMESPACE_STD \ - namespace chrono { namespace experimental { inline namespace fundamentals_v1 { -#define _LIBCPP_END_NAMESPACE_CHRONO_LFTS _LIBCPP_END_NAMESPACE_STD } } } - -#endif diff --git a/headers/libs/libc++/experimental/algorithm b/headers/libs/libc++/experimental/algorithm deleted file mode 100644 index ffaa793b6d..0000000000 --- a/headers/libs/libc++/experimental/algorithm +++ /dev/null @@ -1,120 +0,0 @@ -// -*- C++ -*- -//===-------------------------- algorithm ---------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_EXPERIMENTAL_ALGORITHM -#define _LIBCPP_EXPERIMENTAL_ALGORITHM - -/* - experimental/algorithm synopsis - -#include - -namespace std { -namespace experimental { -inline namespace fundamentals_v1 { - -template -ForwardIterator search(ForwardIterator first, ForwardIterator last, - const Searcher &searcher); -template -SampleIterator sample(PopulationIterator first, PopulationIterator last, - SampleIterator out, Distance n, - UniformRandomNumberGenerator &&g); - -} // namespace fundamentals_v1 -} // namespace experimental -} // namespace std - -*/ - -#include -#include -#include - -#include <__undef_min_max> - -#include <__debug> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_LFTS - - -template -_LIBCPP_INLINE_VISIBILITY -_ForwardIterator search(_ForwardIterator __f, _ForwardIterator __l, const _Searcher &__s) -{ return __s(__f, __l); } - - -template -_LIBCPP_INLINE_VISIBILITY -_SampleIterator __sample(_PopulationIterator __first, - _PopulationIterator __last, _SampleIterator __out, - _Distance __n, - _UniformRandomNumberGenerator &&__g, - input_iterator_tag) { - - _Distance __k = 0; - for (; __first != __last && __k < __n; ++__first, (void)++__k) - __out[__k] = *__first; - _Distance __sz = __k; - for (; __first != __last; ++__first, (void)++__k) { - _Distance __r = _VSTD::uniform_int_distribution<_Distance>(0, __k)(__g); - if (__r < __sz) - __out[__r] = *__first; - } - return __out + _VSTD::min(__n, __k); -} - -template -_LIBCPP_INLINE_VISIBILITY -_SampleIterator __sample(_PopulationIterator __first, - _PopulationIterator __last, _SampleIterator __out, - _Distance __n, - _UniformRandomNumberGenerator &&__g, - forward_iterator_tag) { - _Distance __unsampled_sz = _VSTD::distance(__first, __last); - for (__n = _VSTD::min(__n, __unsampled_sz); __n != 0; ++__first) { - _Distance __r = - _VSTD::uniform_int_distribution<_Distance>(0, --__unsampled_sz)(__g); - if (__r < __n) { - *__out++ = *__first; - --__n; - } - } - return __out; -} - -template -_LIBCPP_INLINE_VISIBILITY -_SampleIterator sample(_PopulationIterator __first, - _PopulationIterator __last, _SampleIterator __out, - _Distance __n, _UniformRandomNumberGenerator &&__g) { - typedef typename iterator_traits<_PopulationIterator>::iterator_category - _PopCategory; - typedef typename iterator_traits<_PopulationIterator>::difference_type - _Difference; - typedef typename common_type<_Distance, _Difference>::type _CommonType; - _LIBCPP_ASSERT(__n >= 0, "N must be a positive number."); - return _VSTD_LFTS::__sample( - __first, __last, __out, _CommonType(__n), - _VSTD::forward<_UniformRandomNumberGenerator>(__g), - _PopCategory()); -} - -_LIBCPP_END_NAMESPACE_LFTS - -#endif /* _LIBCPP_EXPERIMENTAL_ALGORITHM */ diff --git a/headers/libs/libc++/experimental/any b/headers/libs/libc++/experimental/any deleted file mode 100644 index 603788484d..0000000000 --- a/headers/libs/libc++/experimental/any +++ /dev/null @@ -1,590 +0,0 @@ -// -*- C++ -*- -//===------------------------------ any -----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_EXPERIMENTAL_ANY -#define _LIBCPP_EXPERIMENTAL_ANY - -/* - experimental/any synopsis - -namespace std { -namespace experimental { -inline namespace fundamentals_v1 { - - class bad_any_cast : public bad_cast - { - public: - virtual const char* what() const noexcept; - }; - - class any - { - public: - - // 6.3.1 any construct/destruct - any() noexcept; - - any(const any& other); - any(any&& other) noexcept; - - template - any(ValueType&& value); - - ~any(); - - // 6.3.2 any assignments - any& operator=(const any& rhs); - any& operator=(any&& rhs) noexcept; - - template - any& operator=(ValueType&& rhs); - - // 6.3.3 any modifiers - void clear() noexcept; - void swap(any& rhs) noexcept; - - // 6.3.4 any observers - bool empty() const noexcept; - const type_info& type() const noexcept; - }; - - // 6.4 Non-member functions - void swap(any& x, any& y) noexcept; - - template - ValueType any_cast(const any& operand); - template - ValueType any_cast(any& operand); - template - ValueType any_cast(any&& operand); - - template - const ValueType* any_cast(const any* operand) noexcept; - template - ValueType* any_cast(any* operand) noexcept; - -} // namespace fundamentals_v1 -} // namespace experimental -} // namespace std - -*/ - -#include -#include -#include -#include -#include -#include -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_LFTS - -class _LIBCPP_EXCEPTION_ABI bad_any_cast : public bad_cast -{ -public: - virtual const char* what() const _NOEXCEPT; -}; - -#if _LIBCPP_STD_VER > 11 // C++ > 11 - -_LIBCPP_NORETURN _LIBCPP_INLINE_VISIBILITY -inline void __throw_bad_any_cast() -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - throw bad_any_cast(); -#else - assert(!"bad_any_cast"); -#endif -} - -// Forward declarations -class any; - -template -typename add_pointer::type>::type -any_cast(any const *) _NOEXCEPT; - -template -typename add_pointer<_ValueType>::type -any_cast(any *) _NOEXCEPT; - -namespace __any_imp -{ - typedef typename aligned_storage<3*sizeof(void*), alignment_of::value>::type - _Buffer; - - template - struct _IsSmallObject - : public integral_constant::value - % alignment_of<_Tp>::value == 0 - && is_nothrow_move_constructible<_Tp>::value - > - {}; - - enum class _Action - { - _Destroy, - _Copy, - _Move, - _Get, - _TypeInfo - }; - - template - struct _SmallHandler; - - template - struct _LargeHandler; - - template - using _Handler = typename conditional<_IsSmallObject<_Tp>::value - , _SmallHandler<_Tp> - , _LargeHandler<_Tp> - >::type; - template - using _EnableIfNotAny = typename - enable_if< - !is_same::type, any>::value - >::type; - -} // namespace __any_imp - -class any -{ -public: - // 6.3.1 any construct/destruct - _LIBCPP_INLINE_VISIBILITY - any() _NOEXCEPT : __h(nullptr) {} - - _LIBCPP_INLINE_VISIBILITY - any(any const & __other) : __h(nullptr) - { - if (__other.__h) __other.__call(_Action::_Copy, this); - } - - _LIBCPP_INLINE_VISIBILITY - any(any && __other) _NOEXCEPT : __h(nullptr) - { - if (__other.__h) __other.__call(_Action::_Move, this); - } - - template < - class _ValueType - , class = __any_imp::_EnableIfNotAny<_ValueType> - > - any(_ValueType && __value); - - _LIBCPP_INLINE_VISIBILITY - ~any() - { - this->clear(); - } - - // 6.3.2 any assignments - _LIBCPP_INLINE_VISIBILITY - any & operator=(any const & __rhs) - { - any(__rhs).swap(*this); - return *this; - } - - _LIBCPP_INLINE_VISIBILITY - any & operator=(any && __rhs) _NOEXCEPT - { - any(_VSTD::move(__rhs)).swap(*this); - return *this; - } - - template < - class _ValueType - , class = __any_imp::_EnableIfNotAny<_ValueType> - > - any & operator=(_ValueType && __rhs); - - // 6.3.3 any modifiers - _LIBCPP_INLINE_VISIBILITY - void clear() _NOEXCEPT - { - if (__h) this->__call(_Action::_Destroy); - } - - void swap(any & __rhs) _NOEXCEPT; - - // 6.3.4 any observers - _LIBCPP_INLINE_VISIBILITY - bool empty() const _NOEXCEPT - { - return __h == nullptr; - } - -#if !defined(_LIBCPP_NO_RTTI) - _LIBCPP_INLINE_VISIBILITY - const type_info & type() const _NOEXCEPT - { - if (__h) { - return *static_cast(this->__call(_Action::_TypeInfo)); - } else { - return typeid(void); - } - } -#endif - -private: - typedef __any_imp::_Action _Action; - - typedef void* (*_HandleFuncPtr)(_Action, any const *, any *, const type_info *); - - union _Storage - { - void * __ptr; - __any_imp::_Buffer __buf; - }; - - _LIBCPP_ALWAYS_INLINE - void * __call(_Action __a, any * __other = nullptr, - type_info const * __info = nullptr) const - { - return __h(__a, this, __other, __info); - } - - _LIBCPP_ALWAYS_INLINE - void * __call(_Action __a, any * __other = nullptr, - type_info const * __info = nullptr) - { - return __h(__a, this, __other, __info); - } - - template - friend struct __any_imp::_SmallHandler; - template - friend struct __any_imp::_LargeHandler; - - template - friend typename add_pointer::type>::type - any_cast(any const *) _NOEXCEPT; - - template - friend typename add_pointer<_ValueType>::type - any_cast(any *) _NOEXCEPT; - - _HandleFuncPtr __h; - _Storage __s; -}; - -namespace __any_imp -{ - - template - struct _LIBCPP_TYPE_VIS_ONLY _SmallHandler - { - _LIBCPP_INLINE_VISIBILITY - static void* __handle(_Action __act, any const * __this, any * __other, - type_info const * __info) - { - switch (__act) - { - case _Action::_Destroy: - __destroy(const_cast(*__this)); - return nullptr; - case _Action::_Copy: - __copy(*__this, *__other); - return nullptr; - case _Action::_Move: - __move(const_cast(*__this), *__other); - return nullptr; - case _Action::_Get: - return __get(const_cast(*__this), __info); - case _Action::_TypeInfo: - return __type_info(); - } - } - - template - _LIBCPP_INLINE_VISIBILITY - static void __create(any & __dest, _Up && __v) - { - ::new (static_cast(&__dest.__s.__buf)) _Tp(_VSTD::forward<_Up>(__v)); - __dest.__h = &_SmallHandler::__handle; - } - - private: - _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY - static void __destroy(any & __this) - { - _Tp & __value = *static_cast<_Tp *>(static_cast(&__this.__s.__buf)); - __value.~_Tp(); - __this.__h = nullptr; - } - - _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY - static void __copy(any const & __this, any & __dest) - { - _SmallHandler::__create(__dest, *static_cast<_Tp const *>( - static_cast(&__this.__s.__buf))); - } - - _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY - static void __move(any & __this, any & __dest) - { - _SmallHandler::__create(__dest, _VSTD::move( - *static_cast<_Tp*>(static_cast(&__this.__s.__buf)))); - __destroy(__this); - } - - _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY - static void* __get(any & __this, type_info const * __info) - { -#if !defined(_LIBCPP_NO_RTTI) - if (typeid(_Tp) == *__info) { - return static_cast(&__this.__s.__buf); - } - return nullptr; -#else - return static_cast(&__this.__s.__buf); -#endif - } - - _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY - static void* __type_info() - { -#if !defined(_LIBCPP_NO_RTTI) - return const_cast(static_cast(&typeid(_Tp))); -#else - return nullptr; -#endif - } - }; - - template - struct _LIBCPP_TYPE_VIS_ONLY _LargeHandler - { - _LIBCPP_INLINE_VISIBILITY - static void* __handle(_Action __act, any const * __this, any * __other, - type_info const * __info) - { - switch (__act) - { - case _Action::_Destroy: - __destroy(const_cast(*__this)); - return nullptr; - case _Action::_Copy: - __copy(*__this, *__other); - return nullptr; - case _Action::_Move: - __move(const_cast(*__this), *__other); - return nullptr; - case _Action::_Get: - return __get(const_cast(*__this), __info); - case _Action::_TypeInfo: - return __type_info(); - } - } - - template - _LIBCPP_INLINE_VISIBILITY - static void __create(any & __dest, _Up && __v) - { - typedef allocator<_Tp> _Alloc; - typedef __allocator_destructor<_Alloc> _Dp; - _Alloc __a; - unique_ptr<_Tp, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new ((void*)__hold.get()) _Tp(_VSTD::forward<_Up>(__v)); - __dest.__s.__ptr = __hold.release(); - __dest.__h = &_LargeHandler::__handle; - } - - private: - - _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY - static void __destroy(any & __this) - { - delete static_cast<_Tp*>(__this.__s.__ptr); - __this.__h = nullptr; - } - - _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY - static void __copy(any const & __this, any & __dest) - { - _LargeHandler::__create(__dest, *static_cast<_Tp const *>(__this.__s.__ptr)); - } - - _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY - static void __move(any & __this, any & __dest) - { - __dest.__s.__ptr = __this.__s.__ptr; - __dest.__h = &_LargeHandler::__handle; - __this.__h = nullptr; - } - - _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY - static void* __get(any & __this, type_info const * __info) - { -#if !defined(_LIBCPP_NO_RTTI) - if (typeid(_Tp) == *__info) { - return static_cast(__this.__s.__ptr); - } - return nullptr; -#else - return static_cast(__this.__s.__ptr); -#endif - } - - _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY - static void* __type_info() - { -#if !defined(_LIBCPP_NO_RTTI) - return const_cast(static_cast(&typeid(_Tp))); -#else - return nullptr; -#endif - } - }; - -} // namespace __any_imp - - -template -_LIBCPP_INLINE_VISIBILITY -any::any(_ValueType && __v) : __h(nullptr) -{ - typedef typename decay<_ValueType>::type _Tp; - static_assert(is_copy_constructible<_Tp>::value, - "_ValueType must be CopyConstructible."); - typedef __any_imp::_Handler<_Tp> _HandlerType; - _HandlerType::__create(*this, _VSTD::forward<_ValueType>(__v)); -} - -template -_LIBCPP_INLINE_VISIBILITY -any & any::operator=(_ValueType && __v) -{ - typedef typename decay<_ValueType>::type _Tp; - static_assert(is_copy_constructible<_Tp>::value, - "_ValueType must be CopyConstructible."); - any(_VSTD::forward<_ValueType>(__v)).swap(*this); - return *this; -} - -inline _LIBCPP_INLINE_VISIBILITY -void any::swap(any & __rhs) _NOEXCEPT -{ - if (__h && __rhs.__h) { - any __tmp; - __rhs.__call(_Action::_Move, &__tmp); - this->__call(_Action::_Move, &__rhs); - __tmp.__call(_Action::_Move, this); - } - else if (__h) { - this->__call(_Action::_Move, &__rhs); - } - else if (__rhs.__h) { - __rhs.__call(_Action::_Move, this); - } -} - -// 6.4 Non-member functions - -inline _LIBCPP_INLINE_VISIBILITY -void swap(any & __lhs, any & __rhs) _NOEXCEPT -{ - __lhs.swap(__rhs); -} - -template -_LIBCPP_INLINE_VISIBILITY -_ValueType any_cast(any const & __v) -{ - static_assert( - is_reference<_ValueType>::value - || is_copy_constructible<_ValueType>::value, - "_ValueType is required to be a reference or a CopyConstructible type."); - typedef typename add_const::type>::type - _Tp; - _Tp * __tmp = any_cast<_Tp>(&__v); - if (__tmp == nullptr) - __throw_bad_any_cast(); - return *__tmp; -} - -template -_LIBCPP_INLINE_VISIBILITY -_ValueType any_cast(any & __v) -{ - static_assert( - is_reference<_ValueType>::value - || is_copy_constructible<_ValueType>::value, - "_ValueType is required to be a reference or a CopyConstructible type."); - typedef typename remove_reference<_ValueType>::type _Tp; - _Tp * __tmp = any_cast<_Tp>(&__v); - if (__tmp == nullptr) - __throw_bad_any_cast(); - return *__tmp; -} - -template -_LIBCPP_INLINE_VISIBILITY -_ValueType any_cast(any && __v) -{ - static_assert( - is_reference<_ValueType>::value - || is_copy_constructible<_ValueType>::value, - "_ValueType is required to be a reference or a CopyConstructible type."); - typedef typename remove_reference<_ValueType>::type _Tp; - _Tp * __tmp = any_cast<_Tp>(&__v); - if (__tmp == nullptr) - __throw_bad_any_cast(); - return *__tmp; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename add_pointer::type>::type -any_cast(any const * __any) _NOEXCEPT -{ - static_assert(!is_reference<_ValueType>::value, - "_ValueType may not be a reference."); - return any_cast<_ValueType>(const_cast(__any)); -} - -template -_LIBCPP_INLINE_VISIBILITY -typename add_pointer<_ValueType>::type -any_cast(any * __any) _NOEXCEPT -{ - using __any_imp::_Action; - static_assert(!is_reference<_ValueType>::value, - "_ValueType may not be a reference."); - typedef typename add_pointer<_ValueType>::type _ReturnType; - if (__any && __any->__h) { - - return static_cast<_ReturnType>( - __any->__call(_Action::_Get, nullptr, -#if !defined(_LIBCPP_NO_RTTI) - &typeid(_ValueType) -#else - nullptr -#endif - )); - - } - return nullptr; -} - -#endif // _LIBCPP_STD_VER > 11 - -_LIBCPP_END_NAMESPACE_LFTS - -#endif // _LIBCPP_EXPERIMENTAL_ANY diff --git a/headers/libs/libc++/experimental/chrono b/headers/libs/libc++/experimental/chrono deleted file mode 100644 index ca9e5f852e..0000000000 --- a/headers/libs/libc++/experimental/chrono +++ /dev/null @@ -1,59 +0,0 @@ -// -*- C++ -*- -//===------------------------------ chrono ---------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_EXPERIMENTAL_CHRONO -#define _LIBCPP_EXPERIMENTAL_CHRONO - -/** - experimental/chrono synopsis - -// C++1y - -#include - -namespace std { -namespace chrono { -namespace experimental { -inline namespace fundamentals_v1 { - - // See C++14 20.12.4, customization traits - template constexpr bool treat_as_floating_point_v - = treat_as_floating_point::value; - -} // namespace fundamentals_v1 -} // namespace experimental -} // namespace chrono -} // namespace std - - */ - -#include -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#if _LIBCPP_STD_VER > 11 - -_LIBCPP_BEGIN_NAMESPACE_CHRONO_LFTS - -#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES - -template _LIBCPP_CONSTEXPR bool treat_as_floating_point_v - = treat_as_floating_point<_Rep>::value; - -#endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */ - -_LIBCPP_END_NAMESPACE_CHRONO_LFTS - -#endif /* _LIBCPP_STD_VER > 11 */ - -#endif /* _LIBCPP_EXPERIMENTAL_CHRONO */ diff --git a/headers/libs/libc++/experimental/dynarray b/headers/libs/libc++/experimental/dynarray deleted file mode 100644 index f40a6ca188..0000000000 --- a/headers/libs/libc++/experimental/dynarray +++ /dev/null @@ -1,316 +0,0 @@ -// -*- C++ -*- -//===-------------------------- dynarray ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_DYNARRAY -#define _LIBCPP_DYNARRAY - -#include <__config> -#if _LIBCPP_STD_VER > 11 - -/* - dynarray synopsis - -namespace std { namespace experimental { - -template< typename T > -class dynarray -{ - // types: - typedef T value_type; - typedef T& reference; - typedef const T& const_reference; - typedef T* pointer; - typedef const T* const_pointer; - typedef implementation-defined iterator; - typedef implementation-defined const_iterator; - typedef reverse_iterator reverse_iterator; - typedef reverse_iterator const_reverse_iterator; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - -public: - // construct/copy/destroy: - explicit dynarray(size_type c); - dynarray(size_type c, const T& v); - dynarray(const dynarray& d); - dynarray(initializer_list); - - template - dynarray(allocator_arg_t, const Alloc& a, size_type c, const Alloc& alloc); - template - dynarray(allocator_arg_t, const Alloc& a, size_type c, const T& v, const Alloc& alloc); - template - dynarray(allocator_arg_t, const Alloc& a, const dynarray& d, const Alloc& alloc); - template - dynarray(allocator_arg_t, const Alloc& a, initializer_list, const Alloc& alloc); - dynarray& operator=(const dynarray&) = delete; - ~dynarray(); - - // iterators: - iterator begin() noexcept; - const_iterator begin() const noexcept; - const_iterator cbegin() const noexcept; - iterator end() noexcept; - const_iterator end() const noexcept; - const_iterator cend() const noexcept; - - reverse_iterator rbegin() noexcept; - const_reverse_iterator rbegin() const noexcept; - const_reverse_iterator crbegin() const noexcept; - reverse_iterator rend() noexcept; - const_reverse_iterator rend() const noexcept; - const_reverse_iterator crend() const noexcept; - - // capacity: - size_type size() const noexcept; - size_type max_size() const noexcept; - bool empty() const noexcept; - - // element access: - reference operator[](size_type n); - const_reference operator[](size_type n) const; - - reference front(); - const_reference front() const; - reference back(); - const_reference back() const; - - const_reference at(size_type n) const; - reference at(size_type n); - - // data access: - T* data() noexcept; - const T* data() const noexcept; - - // mutating member functions: - void fill(const T& v); -}; - -}} // std::experimental - -*/ - -#include <__functional_base> -#include -#include -#include -#include -#include - -#include <__undef___deallocate> - -#if defined(_LIBCPP_NO_EXCEPTIONS) - #include -#endif - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -namespace std { namespace experimental { inline namespace __array_extensions_v1 { - -template -struct _LIBCPP_TYPE_VIS_ONLY dynarray -{ -public: - // types: - typedef dynarray __self; - typedef _Tp value_type; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef value_type* iterator; - typedef const value_type* const_iterator; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef std::reverse_iterator reverse_iterator; - typedef std::reverse_iterator const_reverse_iterator; - -private: - size_t __size_; - value_type * __base_; - _LIBCPP_ALWAYS_INLINE dynarray () noexcept : __size_(0), __base_(nullptr) {} - - static inline _LIBCPP_INLINE_VISIBILITY value_type* __allocate ( size_t count ) - { - if ( numeric_limits::max() / sizeof (value_type) <= count ) - { -#ifndef _LIBCPP_NO_EXCEPTIONS - throw bad_array_length(); -#else - assert(!"dynarray::allocation"); -#endif - } - return static_cast (_VSTD::__allocate (sizeof(value_type) * count)); - } - - static inline _LIBCPP_INLINE_VISIBILITY void __deallocate ( value_type* __ptr ) noexcept - { - _VSTD::__deallocate (static_cast (__ptr)); - } - -public: - - explicit dynarray(size_type __c); - dynarray(size_type __c, const value_type& __v); - dynarray(const dynarray& __d); - dynarray(initializer_list); - -// We're not implementing these right now. -// Updated with the resolution of LWG issue #2255 -// template -// dynarray(allocator_arg_t, const _Alloc& __alloc, size_type __c); -// template -// dynarray(allocator_arg_t, const _Alloc& __alloc, size_type __c, const value_type& __v); -// template -// dynarray(allocator_arg_t, const _Alloc& __alloc, const dynarray& __d); -// template -// dynarray(allocator_arg_t, const _Alloc& __alloc, initializer_list); - - dynarray& operator=(const dynarray&) = delete; - ~dynarray(); - - // iterators: - inline _LIBCPP_INLINE_VISIBILITY iterator begin() noexcept { return iterator(data()); } - inline _LIBCPP_INLINE_VISIBILITY const_iterator begin() const noexcept { return const_iterator(data()); } - inline _LIBCPP_INLINE_VISIBILITY const_iterator cbegin() const noexcept { return const_iterator(data()); } - inline _LIBCPP_INLINE_VISIBILITY iterator end() noexcept { return iterator(data() + __size_); } - inline _LIBCPP_INLINE_VISIBILITY const_iterator end() const noexcept { return const_iterator(data() + __size_); } - inline _LIBCPP_INLINE_VISIBILITY const_iterator cend() const noexcept { return const_iterator(data() + __size_); } - - inline _LIBCPP_INLINE_VISIBILITY reverse_iterator rbegin() noexcept { return reverse_iterator(end()); } - inline _LIBCPP_INLINE_VISIBILITY const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } - inline _LIBCPP_INLINE_VISIBILITY const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } - inline _LIBCPP_INLINE_VISIBILITY reverse_iterator rend() noexcept { return reverse_iterator(begin()); } - inline _LIBCPP_INLINE_VISIBILITY const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } - inline _LIBCPP_INLINE_VISIBILITY const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } - - // capacity: - inline _LIBCPP_INLINE_VISIBILITY size_type size() const noexcept { return __size_; } - inline _LIBCPP_INLINE_VISIBILITY size_type max_size() const noexcept { return __size_; } - inline _LIBCPP_INLINE_VISIBILITY bool empty() const noexcept { return __size_ == 0; } - - // element access: - inline _LIBCPP_INLINE_VISIBILITY reference operator[](size_type __n) { return data()[__n]; } - inline _LIBCPP_INLINE_VISIBILITY const_reference operator[](size_type __n) const { return data()[__n]; } - - inline _LIBCPP_INLINE_VISIBILITY reference front() { return data()[0]; } - inline _LIBCPP_INLINE_VISIBILITY const_reference front() const { return data()[0]; } - inline _LIBCPP_INLINE_VISIBILITY reference back() { return data()[__size_-1]; } - inline _LIBCPP_INLINE_VISIBILITY const_reference back() const { return data()[__size_-1]; } - - inline _LIBCPP_INLINE_VISIBILITY const_reference at(size_type __n) const; - inline _LIBCPP_INLINE_VISIBILITY reference at(size_type __n); - - // data access: - inline _LIBCPP_INLINE_VISIBILITY _Tp* data() noexcept { return __base_; } - inline _LIBCPP_INLINE_VISIBILITY const _Tp* data() const noexcept { return __base_; } - - // mutating member functions: - inline _LIBCPP_INLINE_VISIBILITY void fill(const value_type& __v) { fill_n(begin(), __size_, __v); } -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -dynarray<_Tp>::dynarray(size_type __c) : dynarray () -{ - __base_ = __allocate (__c); - value_type *__data = data (); - for ( __size_ = 0; __size_ < __c; ++__size_, ++__data ) - ::new (__data) value_type; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -dynarray<_Tp>::dynarray(size_type __c, const value_type& __v) : dynarray () -{ - __base_ = __allocate (__c); - value_type *__data = data (); - for ( __size_ = 0; __size_ < __c; ++__size_, ++__data ) - ::new (__data) value_type (__v); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -dynarray<_Tp>::dynarray(initializer_list __il) : dynarray () -{ - size_t sz = __il.size(); - __base_ = __allocate (sz); - value_type *__data = data (); - auto src = __il.begin(); - for ( __size_ = 0; __size_ < sz; ++__size_, ++__data, ++src ) - ::new (__data) value_type (*src); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -dynarray<_Tp>::dynarray(const dynarray& __d) : dynarray () -{ - size_t sz = __d.size(); - __base_ = __allocate (sz); - value_type *__data = data (); - auto src = __d.begin(); - for ( __size_ = 0; __size_ < sz; ++__size_, ++__data, ++src ) - ::new (__data) value_type (*src); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -dynarray<_Tp>::~dynarray() -{ - value_type *__data = data () + __size_; - for ( size_t i = 0; i < __size_; ++i ) - (--__data)->value_type::~value_type(); - __deallocate ( __base_ ); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename dynarray<_Tp>::reference -dynarray<_Tp>::at(size_type __n) -{ - if (__n >= __size_) - { -#ifndef _LIBCPP_NO_EXCEPTIONS - throw out_of_range("dynarray::at"); -#else - assert(!"dynarray::at out_of_range"); -#endif - } - return data()[__n]; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename dynarray<_Tp>::const_reference -dynarray<_Tp>::at(size_type __n) const -{ - if (__n >= __size_) - { -#ifndef _LIBCPP_NO_EXCEPTIONS - throw out_of_range("dynarray::at"); -#else - assert(!"dynarray::at out_of_range"); -#endif - } - return data()[__n]; -} - -}}} - - -_LIBCPP_BEGIN_NAMESPACE_STD -template -struct _LIBCPP_TYPE_VIS_ONLY uses_allocator, _Alloc> : true_type {}; -_LIBCPP_END_NAMESPACE_STD - -#endif // if _LIBCPP_STD_VER > 11 -#endif // _LIBCPP_DYNARRAY diff --git a/headers/libs/libc++/experimental/functional b/headers/libs/libc++/experimental/functional deleted file mode 100644 index c7a78695b8..0000000000 --- a/headers/libs/libc++/experimental/functional +++ /dev/null @@ -1,454 +0,0 @@ -// -*- C++ -*- -//===-------------------------- functional --------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_EXPERIMENTAL_FUNCTIONAL -#define _LIBCPP_EXPERIMENTAL_FUNCTIONAL - -/* - experimental/functional synopsis - -#include - -namespace std { -namespace experimental { -inline namespace fundamentals_v1 { - - // See C++14 20.9.9, Function object binders - template constexpr bool is_bind_expression_v - = is_bind_expression::value; - template constexpr int is_placeholder_v - = is_placeholder::value; - - // 4.2, Class template function - template class function; // undefined - template class function; - - template - void swap(function&, function&); - - template - bool operator==(const function&, nullptr_t) noexcept; - template - bool operator==(nullptr_t, const function&) noexcept; - template - bool operator!=(const function&, nullptr_t) noexcept; - template - bool operator!=(nullptr_t, const function&) noexcept; - - // 4.3, Searchers - template> - class default_searcher; - - template::value_type>, - class BinaryPredicate = equal_to<>> - class boyer_moore_searcher; - - template::value_type>, - class BinaryPredicate = equal_to<>> - class boyer_moore_horspool_searcher; - - template> - default_searcher - make_default_searcher(ForwardIterator pat_first, ForwardIterator pat_last, - BinaryPredicate pred = BinaryPredicate()); - - template::value_type>, - class BinaryPredicate = equal_to<>> - boyer_moore_searcher - make_boyer_moore_searcher( - RandomAccessIterator pat_first, RandomAccessIterator pat_last, - Hash hf = Hash(), BinaryPredicate pred = BinaryPredicate()); - - template::value_type>, - class BinaryPredicate = equal_to<>> - boyer_moore_horspool_searcher - make_boyer_moore_horspool_searcher( - RandomAccessIterator pat_first, RandomAccessIterator pat_last, - Hash hf = Hash(), BinaryPredicate pred = BinaryPredicate()); - - } // namespace fundamentals_v1 - } // namespace experimental - - template - struct uses_allocator, Alloc>; - -} // namespace std - -*/ - -#include -#include - -#include -#include -#include -#include -#include - -#include <__undef_min_max> - -#include <__debug> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_LFTS - -#if _LIBCPP_STD_VER > 11 -// default searcher -template> -_LIBCPP_TYPE_VIS -class default_searcher { -public: - _LIBCPP_INLINE_VISIBILITY - default_searcher(_ForwardIterator __f, _ForwardIterator __l, - _BinaryPredicate __p = _BinaryPredicate()) - : __first_(__f), __last_(__l), __pred_(__p) {} - - template - _LIBCPP_INLINE_VISIBILITY - _ForwardIterator2 operator () (_ForwardIterator2 __f, _ForwardIterator2 __l) const - { - return _VSTD::search(__f, __l, __first_, __last_, __pred_); - } - -private: - _ForwardIterator __first_; - _ForwardIterator __last_; - _BinaryPredicate __pred_; - }; - -template> -_LIBCPP_INLINE_VISIBILITY -default_searcher<_ForwardIterator, _BinaryPredicate> -make_default_searcher( _ForwardIterator __f, _ForwardIterator __l, _BinaryPredicate __p = _BinaryPredicate ()) -{ - return default_searcher<_ForwardIterator, _BinaryPredicate>(__f, __l, __p); -} - -template class _BMSkipTable; - -// General case for BM data searching; use a map -template -class _BMSkipTable<_Key, _Value, _Hash, _BinaryPredicate, false> { -public: // TODO private: - typedef _Value value_type; - typedef _Key key_type; - - const _Value __default_value_; - std::unordered_map<_Key, _Value, _Hash, _BinaryPredicate> __table; - -public: - _LIBCPP_INLINE_VISIBILITY - _BMSkipTable(std::size_t __sz, _Value __default, _Hash __hf, _BinaryPredicate __pred) - : __default_value_(__default), __table(__sz, __hf, __pred) {} - - _LIBCPP_INLINE_VISIBILITY - void insert(const key_type &__key, value_type __val) - { - __table [__key] = __val; // Would skip_.insert (val) be better here? - } - - _LIBCPP_INLINE_VISIBILITY - value_type operator [](const key_type & __key) const - { - auto __it = __table.find (__key); - return __it == __table.end() ? __default_value_ : __it->second; - } -}; - - -// Special case small numeric values; use an array -template -class _BMSkipTable<_Key, _Value, _Hash, _BinaryPredicate, true> { -private: - typedef _Value value_type; - typedef _Key key_type; - - typedef typename std::make_unsigned::type unsigned_key_type; - typedef std::array::max()> skip_map; - skip_map __table; - -public: - _LIBCPP_INLINE_VISIBILITY - _BMSkipTable(std::size_t /*__sz*/, _Value __default, _Hash /*__hf*/, _BinaryPredicate /*__pred*/) - { - std::fill_n(__table.begin(), __table.size(), __default); - } - - _LIBCPP_INLINE_VISIBILITY - void insert(key_type __key, value_type __val) - { - __table[static_cast(__key)] = __val; - } - - _LIBCPP_INLINE_VISIBILITY - value_type operator [](key_type __key) const - { - return __table[static_cast(__key)]; - } -}; - - -template ::value_type>, - class _BinaryPredicate = equal_to<>> -_LIBCPP_TYPE_VIS -class boyer_moore_searcher { -private: - typedef typename std::iterator_traits<_RandomAccessIterator1>::difference_type difference_type; - typedef typename std::iterator_traits<_RandomAccessIterator1>::value_type value_type; - typedef _BMSkipTable::value && // what about enums? - sizeof(value_type) == 1 && - is_same<_Hash, hash>::value && - is_same<_BinaryPredicate, equal_to<>>::value - > skip_table_type; - -public: - boyer_moore_searcher(_RandomAccessIterator1 __f, _RandomAccessIterator1 __l, - _Hash __hf = _Hash(), _BinaryPredicate __pred = _BinaryPredicate()) - : __first_(__f), __last_(__l), __pred_(__pred), - __pattern_length_(_VSTD::distance(__first_, __last_)), - __skip_{make_shared(__pattern_length_, -1, __hf, __pred_)}, - __suffix_{make_shared>(__pattern_length_ + 1)} - { - // build the skip table - for ( difference_type __i = 0; __f != __l; ++__f, (void) ++__i ) - __skip_->insert(*__f, __i); - - this->__build_suffix_table ( __first_, __last_, __pred_ ); - } - - template - _RandomAccessIterator2 - operator ()(_RandomAccessIterator2 __f, _RandomAccessIterator2 __l) const - { - static_assert ( std::is_same< - typename std::decay::value_type>::type, - typename std::decay::value_type>::type - >::value, - "Corpus and Pattern iterators must point to the same type" ); - - if (__f == __l ) return __l; // empty corpus - if (__first_ == __last_) return __f; // empty pattern - - // If the pattern is larger than the corpus, we can't find it! - if ( __pattern_length_ > _VSTD::distance (__f, __l)) - return __l; - - // Do the search - return this->__search(__f, __l); - } - -public: // TODO private: - _RandomAccessIterator1 __first_; - _RandomAccessIterator1 __last_; - _BinaryPredicate __pred_; - difference_type __pattern_length_; - shared_ptr __skip_; - shared_ptr> __suffix_; - - template - _RandomAccessIterator2 __search(_RandomAccessIterator2 __f, _RandomAccessIterator2 __l) const - { - _RandomAccessIterator2 __cur = __f; - const _RandomAccessIterator2 __last = __l - __pattern_length_; - const skip_table_type & __skip = *__skip_.get(); - const vector & __suffix = *__suffix_.get(); - - while (__cur <= __last) - { - - // Do we match right where we are? - difference_type __j = __pattern_length_; - while (__pred_(__first_ [__j-1], __cur [__j-1])) { - __j--; - // We matched - we're done! - if ( __j == 0 ) - return __cur; - } - - // Since we didn't match, figure out how far to skip forward - difference_type __k = __skip[__cur [ __j - 1 ]]; - difference_type __m = __j - __k - 1; - if (__k < __j && __m > __suffix[ __j ]) - __cur += __m; - else - __cur += __suffix[ __j ]; - } - - return __l; // We didn't find anything - } - - - template - void __compute_bm_prefix ( _Iterator __f, _Iterator __l, _BinaryPredicate __pred, _Container &__prefix ) - { - const std::size_t __count = _VSTD::distance(__f, __l); - - __prefix[0] = 0; - std::size_t __k = 0; - for ( std::size_t __i = 1; __i < __count; ++__i ) - { - while ( __k > 0 && !__pred ( __f[__k], __f[__i] )) - __k = __prefix [ __k - 1 ]; - - if ( __pred ( __f[__k], __f[__i] )) - __k++; - __prefix [ __i ] = __k; - } - } - - void __build_suffix_table(_RandomAccessIterator1 __f, _RandomAccessIterator1 __l, - _BinaryPredicate __pred) - { - const std::size_t __count = _VSTD::distance(__f, __l); - vector & __suffix = *__suffix_.get(); - if (__count > 0) - { - _VSTD::vector __scratch(__count); - - __compute_bm_prefix(__f, __l, __pred, __scratch); - for ( std::size_t __i = 0; __i <= __count; __i++ ) - __suffix[__i] = __count - __scratch[__count-1]; - - typedef _VSTD::reverse_iterator<_RandomAccessIterator1> _RevIter; - __compute_bm_prefix(_RevIter(__l), _RevIter(__f), __pred, __scratch); - - for ( std::size_t __i = 0; __i < __count; __i++ ) - { - const std::size_t __j = __count - __scratch[__i]; - const difference_type __k = __i - __scratch[__i] + 1; - - if (__suffix[__j] > __k) - __suffix[__j] = __k; - } - } - } - -}; - -template::value_type>, - class _BinaryPredicate = equal_to<>> -_LIBCPP_INLINE_VISIBILITY -boyer_moore_searcher<_RandomAccessIterator, _Hash, _BinaryPredicate> -make_boyer_moore_searcher( _RandomAccessIterator __f, _RandomAccessIterator __l, - _Hash __hf = _Hash(), _BinaryPredicate __p = _BinaryPredicate ()) -{ - return boyer_moore_searcher<_RandomAccessIterator, _Hash, _BinaryPredicate>(__f, __l, __hf, __p); -} - -// boyer-moore-horspool -template ::value_type>, - class _BinaryPredicate = equal_to<>> -_LIBCPP_TYPE_VIS -class boyer_moore_horspool_searcher { -private: - typedef typename std::iterator_traits<_RandomAccessIterator1>::difference_type difference_type; - typedef typename std::iterator_traits<_RandomAccessIterator1>::value_type value_type; - typedef _BMSkipTable::value && // what about enums? - sizeof(value_type) == 1 && - is_same<_Hash, hash>::value && - is_same<_BinaryPredicate, equal_to<>>::value - > skip_table_type; - -public: - boyer_moore_horspool_searcher(_RandomAccessIterator1 __f, _RandomAccessIterator1 __l, - _Hash __hf = _Hash(), _BinaryPredicate __pred = _BinaryPredicate()) - : __first_(__f), __last_(__l), __pred_(__pred), - __pattern_length_(_VSTD::distance(__first_, __last_)), - __skip_{_VSTD::make_shared(__pattern_length_, __pattern_length_, __hf, __pred_)} - { - // build the skip table - if ( __f != __l ) - { - __l = __l - 1; - for ( difference_type __i = 0; __f != __l; ++__f, (void) ++__i ) - __skip_->insert(*__f, __pattern_length_ - 1 - __i); - } - } - - template - _RandomAccessIterator2 - operator ()(_RandomAccessIterator2 __f, _RandomAccessIterator2 __l) const - { - static_assert ( std::is_same< - typename std::decay::value_type>::type, - typename std::decay::value_type>::type - >::value, - "Corpus and Pattern iterators must point to the same type" ); - - if (__f == __l ) return __l; // empty corpus - if (__first_ == __last_) return __f; // empty pattern - - // If the pattern is larger than the corpus, we can't find it! - if ( __pattern_length_ > _VSTD::distance (__f, __l)) - return __l; - - // Do the search - return this->__search(__f, __l); - } - -private: - _RandomAccessIterator1 __first_; - _RandomAccessIterator1 __last_; - _BinaryPredicate __pred_; - difference_type __pattern_length_; - shared_ptr __skip_; - - template - _RandomAccessIterator2 __search ( _RandomAccessIterator2 __f, _RandomAccessIterator2 __l ) const { - _RandomAccessIterator2 __cur = __f; - const _RandomAccessIterator2 __last = __l - __pattern_length_; - const skip_table_type & __skip = *__skip_.get(); - - while (__cur <= __last) - { - // Do we match right where we are? - difference_type __j = __pattern_length_; - while (__pred_(__first_[__j-1], __cur[__j-1])) - { - __j--; - // We matched - we're done! - if ( __j == 0 ) - return __cur; - } - __cur += __skip[__cur[__pattern_length_-1]]; - } - - return __l; - } -}; - -template::value_type>, - class _BinaryPredicate = equal_to<>> -_LIBCPP_INLINE_VISIBILITY -boyer_moore_horspool_searcher<_RandomAccessIterator, _Hash, _BinaryPredicate> -make_boyer_moore_horspool_searcher( _RandomAccessIterator __f, _RandomAccessIterator __l, - _Hash __hf = _Hash(), _BinaryPredicate __p = _BinaryPredicate ()) -{ - return boyer_moore_horspool_searcher<_RandomAccessIterator, _Hash, _BinaryPredicate>(__f, __l, __hf, __p); -} - -#endif // _LIBCPP_STD_VER > 11 - -_LIBCPP_END_NAMESPACE_LFTS - -#endif /* _LIBCPP_EXPERIMENTAL_FUNCTIONAL */ diff --git a/headers/libs/libc++/experimental/optional b/headers/libs/libc++/experimental/optional deleted file mode 100644 index a384882a1e..0000000000 --- a/headers/libs/libc++/experimental/optional +++ /dev/null @@ -1,894 +0,0 @@ -// -*- C++ -*- -//===-------------------------- optional ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_OPTIONAL -#define _LIBCPP_OPTIONAL - -/* - optional synopsis - -// C++1y - -namespace std { namespace experimental { inline namespace fundamentals_v1 { - - // 5.3, optional for object types - template class optional; - - // 5.4, In-place construction - struct in_place_t{}; - constexpr in_place_t in_place{}; - - // 5.5, No-value state indicator - struct nullopt_t{see below}; - constexpr nullopt_t nullopt(unspecified); - - // 5.6, Class bad_optional_access - class bad_optional_access; - - // 5.7, Relational operators - template - constexpr bool operator==(const optional&, const optional&); - template - constexpr bool operator!=(const optional&, const optional&); - template - constexpr bool operator<(const optional&, const optional&); - template - constexpr bool operator>(const optional&, const optional&); - template - constexpr bool operator<=(const optional&, const optional&); - template - constexpr bool operator>=(const optional&, const optional&); - - // 5.8, Comparison with nullopt - template constexpr bool operator==(const optional&, nullopt_t) noexcept; - template constexpr bool operator==(nullopt_t, const optional&) noexcept; - template constexpr bool operator!=(const optional&, nullopt_t) noexcept; - template constexpr bool operator!=(nullopt_t, const optional&) noexcept; - template constexpr bool operator<(const optional&, nullopt_t) noexcept; - template constexpr bool operator<(nullopt_t, const optional&) noexcept; - template constexpr bool operator<=(const optional&, nullopt_t) noexcept; - template constexpr bool operator<=(nullopt_t, const optional&) noexcept; - template constexpr bool operator>(const optional&, nullopt_t) noexcept; - template constexpr bool operator>(nullopt_t, const optional&) noexcept; - template constexpr bool operator>=(const optional&, nullopt_t) noexcept; - template constexpr bool operator>=(nullopt_t, const optional&) noexcept; - - // 5.9, Comparison with T - template constexpr bool operator==(const optional&, const T&); - template constexpr bool operator==(const T&, const optional&); - template constexpr bool operator!=(const optional&, const T&); - template constexpr bool operator!=(const T&, const optional&); - template constexpr bool operator<(const optional&, const T&); - template constexpr bool operator<(const T&, const optional&); - template constexpr bool operator<=(const optional&, const T&); - template constexpr bool operator<=(const T&, const optional&); - template constexpr bool operator>(const optional&, const T&); - template constexpr bool operator>(const T&, const optional&); - template constexpr bool operator>=(const optional&, const T&); - template constexpr bool operator>=(const T&, const optional&); - - // 5.10, Specialized algorithms - template void swap(optional&, optional&) noexcept(see below); - template constexpr optional make_optional(T&&); - - template - class optional - { - public: - typedef T value_type; - - // 5.3.1, Constructors - constexpr optional() noexcept; - constexpr optional(nullopt_t) noexcept; - optional(const optional&); - optional(optional&&) noexcept(see below); - constexpr optional(const T&); - constexpr optional(T&&); - template constexpr explicit optional(in_place_t, Args&&...); - template - constexpr explicit optional(in_place_t, initializer_list, Args&&...); - - // 5.3.2, Destructor - ~optional(); - - // 5.3.3, Assignment - optional& operator=(nullopt_t) noexcept; - optional& operator=(const optional&); - optional& operator=(optional&&) noexcept(see below); - template optional& operator=(U&&); - template void emplace(Args&&...); - template - void emplace(initializer_list, Args&&...); - - // 5.3.4, Swap - void swap(optional&) noexcept(see below); - - // 5.3.5, Observers - constexpr T const* operator ->() const; - constexpr T* operator ->(); - constexpr T const& operator *() const &; - constexpr T& operator *() &; - constexpr T&& operator *() &&; - constexpr const T&& operator *() const &&; - constexpr explicit operator bool() const noexcept; - constexpr T const& value() const &; - constexpr T& value() &; - constexpr T&& value() &&; - constexpr const T&& value() const &&; - template constexpr T value_or(U&&) const &; - template constexpr T value_or(U&&) &&; - - private: - T* val; // exposition only - }; - - } // namespace fundamentals_v1 - } // namespace experimental - - // 5.11, Hash support - template struct hash; - template struct hash>; - -} // namespace std - -*/ - -#include -#include -#include - -_LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL -class _LIBCPP_EXCEPTION_ABI bad_optional_access - : public std::logic_error -{ -public: - bad_optional_access() : std::logic_error("Bad optional Access") {} - -// Get the key function ~bad_optional_access() into the dylib - virtual ~bad_optional_access() _NOEXCEPT; -}; - -_LIBCPP_END_NAMESPACE_EXPERIMENTAL - - -#if _LIBCPP_STD_VER > 11 - -#include -#include -#include -#include <__functional_base> -#include <__undef_min_max> -#include <__debug> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_LFTS - -struct in_place_t {}; -constexpr in_place_t in_place{}; - -struct nullopt_t -{ - explicit constexpr nullopt_t(int) noexcept {} -}; - -constexpr nullopt_t nullopt{0}; - -template ::value> -class __optional_storage -{ -protected: - typedef _Tp value_type; - union - { - char __null_state_; - value_type __val_; - }; - bool __engaged_ = false; - - _LIBCPP_INLINE_VISIBILITY - ~__optional_storage() - { - if (__engaged_) - __val_.~value_type(); - } - - _LIBCPP_INLINE_VISIBILITY - constexpr __optional_storage() noexcept - : __null_state_('\0') {} - - _LIBCPP_INLINE_VISIBILITY - __optional_storage(const __optional_storage& __x) - : __engaged_(__x.__engaged_) - { - if (__engaged_) - ::new(_VSTD::addressof(__val_)) value_type(__x.__val_); - } - - _LIBCPP_INLINE_VISIBILITY - __optional_storage(__optional_storage&& __x) - noexcept(is_nothrow_move_constructible::value) - : __engaged_(__x.__engaged_) - { - if (__engaged_) - ::new(_VSTD::addressof(__val_)) value_type(_VSTD::move(__x.__val_)); - } - - _LIBCPP_INLINE_VISIBILITY - constexpr __optional_storage(const value_type& __v) - : __val_(__v), - __engaged_(true) {} - - _LIBCPP_INLINE_VISIBILITY - constexpr __optional_storage(value_type&& __v) - : __val_(_VSTD::move(__v)), - __engaged_(true) {} - - template - _LIBCPP_INLINE_VISIBILITY - constexpr - explicit __optional_storage(in_place_t, _Args&&... __args) - : __val_(_VSTD::forward<_Args>(__args)...), - __engaged_(true) {} -}; - -template -class __optional_storage<_Tp, true> -{ -protected: - typedef _Tp value_type; - union - { - char __null_state_; - value_type __val_; - }; - bool __engaged_ = false; - - _LIBCPP_INLINE_VISIBILITY - constexpr __optional_storage() noexcept - : __null_state_('\0') {} - - _LIBCPP_INLINE_VISIBILITY - __optional_storage(const __optional_storage& __x) - : __engaged_(__x.__engaged_) - { - if (__engaged_) - ::new(_VSTD::addressof(__val_)) value_type(__x.__val_); - } - - _LIBCPP_INLINE_VISIBILITY - __optional_storage(__optional_storage&& __x) - noexcept(is_nothrow_move_constructible::value) - : __engaged_(__x.__engaged_) - { - if (__engaged_) - ::new(_VSTD::addressof(__val_)) value_type(_VSTD::move(__x.__val_)); - } - - _LIBCPP_INLINE_VISIBILITY - constexpr __optional_storage(const value_type& __v) - : __val_(__v), - __engaged_(true) {} - - _LIBCPP_INLINE_VISIBILITY - constexpr __optional_storage(value_type&& __v) - : __val_(_VSTD::move(__v)), - __engaged_(true) {} - - template - _LIBCPP_INLINE_VISIBILITY - constexpr - explicit __optional_storage(in_place_t, _Args&&... __args) - : __val_(_VSTD::forward<_Args>(__args)...), - __engaged_(true) {} -}; - -template -class optional - : private __optional_storage<_Tp> -{ - typedef __optional_storage<_Tp> __base; -public: - typedef _Tp value_type; - - static_assert(!is_reference::value, - "Instantiation of optional with a reference type is ill-formed."); - static_assert(!is_same::type, in_place_t>::value, - "Instantiation of optional with a in_place_t type is ill-formed."); - static_assert(!is_same::type, nullopt_t>::value, - "Instantiation of optional with a nullopt_t type is ill-formed."); - static_assert(is_object::value, - "Instantiation of optional with a non-object type is undefined behavior."); - static_assert(is_nothrow_destructible::value, - "Instantiation of optional with an object type that is not noexcept destructible is undefined behavior."); - - _LIBCPP_INLINE_VISIBILITY constexpr optional() noexcept {} - _LIBCPP_INLINE_VISIBILITY optional(const optional&) = default; - _LIBCPP_INLINE_VISIBILITY optional(optional&&) = default; - _LIBCPP_INLINE_VISIBILITY ~optional() = default; - _LIBCPP_INLINE_VISIBILITY constexpr optional(nullopt_t) noexcept {} - _LIBCPP_INLINE_VISIBILITY constexpr optional(const value_type& __v) - : __base(__v) {} - _LIBCPP_INLINE_VISIBILITY constexpr optional(value_type&& __v) - : __base(_VSTD::move(__v)) {} - - template ::value - >::type - > - _LIBCPP_INLINE_VISIBILITY - constexpr - explicit optional(in_place_t, _Args&&... __args) - : __base(in_place, _VSTD::forward<_Args>(__args)...) {} - - template &, _Args...>::value - >::type - > - _LIBCPP_INLINE_VISIBILITY - constexpr - explicit optional(in_place_t, initializer_list<_Up> __il, _Args&&... __args) - : __base(in_place, __il, _VSTD::forward<_Args>(__args)...) {} - - _LIBCPP_INLINE_VISIBILITY - optional& operator=(nullopt_t) noexcept - { - if (this->__engaged_) - { - this->__val_.~value_type(); - this->__engaged_ = false; - } - return *this; - } - - _LIBCPP_INLINE_VISIBILITY - optional& - operator=(const optional& __opt) - { - if (this->__engaged_ == __opt.__engaged_) - { - if (this->__engaged_) - this->__val_ = __opt.__val_; - } - else - { - if (this->__engaged_) - this->__val_.~value_type(); - else - ::new(_VSTD::addressof(this->__val_)) value_type(__opt.__val_); - this->__engaged_ = __opt.__engaged_; - } - return *this; - } - - _LIBCPP_INLINE_VISIBILITY - optional& - operator=(optional&& __opt) - noexcept(is_nothrow_move_assignable::value && - is_nothrow_move_constructible::value) - { - if (this->__engaged_ == __opt.__engaged_) - { - if (this->__engaged_) - this->__val_ = _VSTD::move(__opt.__val_); - } - else - { - if (this->__engaged_) - this->__val_.~value_type(); - else - ::new(_VSTD::addressof(this->__val_)) value_type(_VSTD::move(__opt.__val_)); - this->__engaged_ = __opt.__engaged_; - } - return *this; - } - - template ::type, value_type>::value && - is_constructible::value && - is_assignable::value - >::type - > - _LIBCPP_INLINE_VISIBILITY - optional& - operator=(_Up&& __v) - { - if (this->__engaged_) - this->__val_ = _VSTD::forward<_Up>(__v); - else - { - ::new(_VSTD::addressof(this->__val_)) value_type(_VSTD::forward<_Up>(__v)); - this->__engaged_ = true; - } - return *this; - } - - template ::value - >::type - > - _LIBCPP_INLINE_VISIBILITY - void - emplace(_Args&&... __args) - { - *this = nullopt; - ::new(_VSTD::addressof(this->__val_)) value_type(_VSTD::forward<_Args>(__args)...); - this->__engaged_ = true; - } - - template &, _Args...>::value - >::type - > - _LIBCPP_INLINE_VISIBILITY - void - emplace(initializer_list<_Up> __il, _Args&&... __args) - { - *this = nullopt; - ::new(_VSTD::addressof(this->__val_)) value_type(__il, _VSTD::forward<_Args>(__args)...); - this->__engaged_ = true; - } - - _LIBCPP_INLINE_VISIBILITY - void - swap(optional& __opt) - noexcept(is_nothrow_move_constructible::value && - __is_nothrow_swappable::value) - { - using _VSTD::swap; - if (this->__engaged_ == __opt.__engaged_) - { - if (this->__engaged_) - swap(this->__val_, __opt.__val_); - } - else - { - if (this->__engaged_) - { - ::new(_VSTD::addressof(__opt.__val_)) value_type(_VSTD::move(this->__val_)); - this->__val_.~value_type(); - } - else - { - ::new(_VSTD::addressof(this->__val_)) value_type(_VSTD::move(__opt.__val_)); - __opt.__val_.~value_type(); - } - swap(this->__engaged_, __opt.__engaged_); - } - } - - _LIBCPP_INLINE_VISIBILITY - constexpr - value_type const* - operator->() const - { - _LIBCPP_ASSERT(this->__engaged_, "optional operator-> called for disengaged value"); - return __operator_arrow(__has_operator_addressof{}); - } - - _LIBCPP_INLINE_VISIBILITY - value_type* - operator->() - { - _LIBCPP_ASSERT(this->__engaged_, "optional operator-> called for disengaged value"); - return _VSTD::addressof(this->__val_); - } - - _LIBCPP_INLINE_VISIBILITY - constexpr - const value_type& - operator*() const - { - _LIBCPP_ASSERT(this->__engaged_, "optional operator* called for disengaged value"); - return this->__val_; - } - - _LIBCPP_INLINE_VISIBILITY - value_type& - operator*() - { - _LIBCPP_ASSERT(this->__engaged_, "optional operator* called for disengaged value"); - return this->__val_; - } - - _LIBCPP_INLINE_VISIBILITY - constexpr explicit operator bool() const noexcept {return this->__engaged_;} - - _LIBCPP_INLINE_VISIBILITY - constexpr value_type const& value() const - { - if (!this->__engaged_) - throw bad_optional_access(); - return this->__val_; - } - - _LIBCPP_INLINE_VISIBILITY - value_type& value() - { - if (!this->__engaged_) - throw bad_optional_access(); - return this->__val_; - } - - template - _LIBCPP_INLINE_VISIBILITY - constexpr value_type value_or(_Up&& __v) const& - { - static_assert(is_copy_constructible::value, - "optional::value_or: T must be copy constructible"); - static_assert(is_convertible<_Up, value_type>::value, - "optional::value_or: U must be convertible to T"); - return this->__engaged_ ? this->__val_ : - static_cast(_VSTD::forward<_Up>(__v)); - } - - template - _LIBCPP_INLINE_VISIBILITY - value_type value_or(_Up&& __v) && - { - static_assert(is_move_constructible::value, - "optional::value_or: T must be move constructible"); - static_assert(is_convertible<_Up, value_type>::value, - "optional::value_or: U must be convertible to T"); - return this->__engaged_ ? _VSTD::move(this->__val_) : - static_cast(_VSTD::forward<_Up>(__v)); - } - -private: - _LIBCPP_INLINE_VISIBILITY - value_type const* - __operator_arrow(true_type) const - { - return _VSTD::addressof(this->__val_); - } - - _LIBCPP_INLINE_VISIBILITY - constexpr - value_type const* - __operator_arrow(false_type) const - { - return &this->__val_; - } -}; - -// Comparisons between optionals -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator==(const optional<_Tp>& __x, const optional<_Tp>& __y) -{ - if (static_cast(__x) != static_cast(__y)) - return false; - if (!static_cast(__x)) - return true; - return *__x == *__y; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator!=(const optional<_Tp>& __x, const optional<_Tp>& __y) -{ - return !(__x == __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator<(const optional<_Tp>& __x, const optional<_Tp>& __y) -{ - if (!static_cast(__y)) - return false; - if (!static_cast(__x)) - return true; - return *__x < *__y; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator>(const optional<_Tp>& __x, const optional<_Tp>& __y) -{ - return __y < __x; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator<=(const optional<_Tp>& __x, const optional<_Tp>& __y) -{ - return !(__y < __x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator>=(const optional<_Tp>& __x, const optional<_Tp>& __y) -{ - return !(__x < __y); -} - - -// Comparisons with nullopt -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator==(const optional<_Tp>& __x, nullopt_t) noexcept -{ - return !static_cast(__x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator==(nullopt_t, const optional<_Tp>& __x) noexcept -{ - return !static_cast(__x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator!=(const optional<_Tp>& __x, nullopt_t) noexcept -{ - return static_cast(__x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator!=(nullopt_t, const optional<_Tp>& __x) noexcept -{ - return static_cast(__x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator<(const optional<_Tp>&, nullopt_t) noexcept -{ - return false; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator<(nullopt_t, const optional<_Tp>& __x) noexcept -{ - return static_cast(__x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator<=(const optional<_Tp>& __x, nullopt_t) noexcept -{ - return !static_cast(__x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator<=(nullopt_t, const optional<_Tp>& __x) noexcept -{ - return true; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator>(const optional<_Tp>& __x, nullopt_t) noexcept -{ - return static_cast(__x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator>(nullopt_t, const optional<_Tp>& __x) noexcept -{ - return false; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator>=(const optional<_Tp>&, nullopt_t) noexcept -{ - return true; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator>=(nullopt_t, const optional<_Tp>& __x) noexcept -{ - return !static_cast(__x); -} - -// Comparisons with T -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator==(const optional<_Tp>& __x, const _Tp& __v) -{ - return static_cast(__x) ? *__x == __v : false; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator==(const _Tp& __v, const optional<_Tp>& __x) -{ - return static_cast(__x) ? *__x == __v : false; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator!=(const optional<_Tp>& __x, const _Tp& __v) -{ - return static_cast(__x) ? !(*__x == __v) : true; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator!=(const _Tp& __v, const optional<_Tp>& __x) -{ - return static_cast(__x) ? !(*__x == __v) : true; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator<(const optional<_Tp>& __x, const _Tp& __v) -{ - return static_cast(__x) ? less<_Tp>{}(*__x, __v) : true; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator<(const _Tp& __v, const optional<_Tp>& __x) -{ - return static_cast(__x) ? less<_Tp>{}(__v, *__x) : false; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator<=(const optional<_Tp>& __x, const _Tp& __v) -{ - return !(__x > __v); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator<=(const _Tp& __v, const optional<_Tp>& __x) -{ - return !(__v > __x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator>(const optional<_Tp>& __x, const _Tp& __v) -{ - return static_cast(__x) ? __v < __x : false; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator>(const _Tp& __v, const optional<_Tp>& __x) -{ - return static_cast(__x) ? __x < __v : true; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator>=(const optional<_Tp>& __x, const _Tp& __v) -{ - return !(__x < __v); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -bool -operator>=(const _Tp& __v, const optional<_Tp>& __x) -{ - return !(__v < __x); -} - - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(optional<_Tp>& __x, optional<_Tp>& __y) noexcept(noexcept(__x.swap(__y))) -{ - __x.swap(__y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -constexpr -optional::type> -make_optional(_Tp&& __v) -{ - return optional::type>(_VSTD::forward<_Tp>(__v)); -} - -_LIBCPP_END_NAMESPACE_LFTS - -_LIBCPP_BEGIN_NAMESPACE_STD - -template -struct _LIBCPP_TYPE_VIS_ONLY hash > -{ - typedef std::experimental::optional<_Tp> argument_type; - typedef size_t result_type; - - _LIBCPP_INLINE_VISIBILITY - result_type operator()(const argument_type& __opt) const _NOEXCEPT - { - return static_cast(__opt) ? hash<_Tp>()(*__opt) : 0; - } -}; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_STD_VER > 11 - -#endif // _LIBCPP_OPTIONAL diff --git a/headers/libs/libc++/experimental/ratio b/headers/libs/libc++/experimental/ratio deleted file mode 100644 index 757f24e086..0000000000 --- a/headers/libs/libc++/experimental/ratio +++ /dev/null @@ -1,77 +0,0 @@ -// -*- C++ -*- -//===------------------------------ ratio ---------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_EXPERIMENTAL_RATIO -#define _LIBCPP_EXPERIMENTAL_RATIO - -/** - experimental/ratio synopsis - C++1y -#include - -namespace std { -namespace experimental { -inline namespace fundamentals_v1 { - - // See C++14 20.11.5, ratio comparison - template constexpr bool ratio_equal_v - = ratio_equal::value; - template constexpr bool ratio_not_equal_v - = ratio_not_equal::value; - template constexpr bool ratio_less_v - = ratio_less::value; - template constexpr bool ratio_less_equal_v - = ratio_less_equal::value; - template constexpr bool ratio_greater_v - = ratio_greater::value; - template constexpr bool ratio_greater_equal_v - = ratio_greater_equal::value; - -} // namespace fundamentals_v1 -} // namespace experimental -} // namespace std - -*/ - -#include - -#if _LIBCPP_STD_VER > 11 - -#include - -_LIBCPP_BEGIN_NAMESPACE_LFTS - -#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES - -template _LIBCPP_CONSTEXPR bool ratio_equal_v - = ratio_equal<_R1, _R2>::value; - -template _LIBCPP_CONSTEXPR bool ratio_not_equal_v - = ratio_not_equal<_R1, _R2>::value; - -template _LIBCPP_CONSTEXPR bool ratio_less_v - = ratio_less<_R1, _R2>::value; - -template _LIBCPP_CONSTEXPR bool ratio_less_equal_v - = ratio_less_equal<_R1, _R2>::value; - -template _LIBCPP_CONSTEXPR bool ratio_greater_v - = ratio_greater<_R1, _R2>::value; - -template _LIBCPP_CONSTEXPR bool ratio_greater_equal_v - = ratio_greater_equal<_R1, _R2>::value; - -#endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */ - -_LIBCPP_END_NAMESPACE_LFTS - -#endif /* _LIBCPP_STD_VER > 11 */ - -#endif // _LIBCPP_EXPERIMENTAL_RATIO diff --git a/headers/libs/libc++/experimental/string_view b/headers/libs/libc++/experimental/string_view deleted file mode 100644 index 2a20d7caa6..0000000000 --- a/headers/libs/libc++/experimental/string_view +++ /dev/null @@ -1,812 +0,0 @@ -// -*- C++ -*- -//===------------------------ string_view ---------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_LFTS_STRING_VIEW -#define _LIBCPP_LFTS_STRING_VIEW - -/* -string_view synopsis - -namespace std { - namespace experimental { - inline namespace library_fundamentals_v1 { - - // 7.2, Class template basic_string_view - template> - class basic_string_view; - - // 7.9, basic_string_view non-member comparison functions - template - constexpr bool operator==(basic_string_view x, - basic_string_view y) noexcept; - template - constexpr bool operator!=(basic_string_view x, - basic_string_view y) noexcept; - template - constexpr bool operator< (basic_string_view x, - basic_string_view y) noexcept; - template - constexpr bool operator> (basic_string_view x, - basic_string_view y) noexcept; - template - constexpr bool operator<=(basic_string_view x, - basic_string_view y) noexcept; - template - constexpr bool operator>=(basic_string_view x, - basic_string_view y) noexcept; - // see below, sufficient additional overloads of comparison functions - - // 7.10, Inserters and extractors - template - basic_ostream& - operator<<(basic_ostream& os, - basic_string_view str); - - // basic_string_view typedef names - typedef basic_string_view string_view; - typedef basic_string_view u16string_view; - typedef basic_string_view u32string_view; - typedef basic_string_view wstring_view; - - template> - class basic_string_view { - public: - // types - typedef traits traits_type; - typedef charT value_type; - typedef charT* pointer; - typedef const charT* const_pointer; - typedef charT& reference; - typedef const charT& const_reference; - typedef implementation-defined const_iterator; - typedef const_iterator iterator; - typedef reverse_iterator const_reverse_iterator; - typedef const_reverse_iterator reverse_iterator; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - static constexpr size_type npos = size_type(-1); - - // 7.3, basic_string_view constructors and assignment operators - constexpr basic_string_view() noexcept; - constexpr basic_string_view(const basic_string_view&) noexcept = default; - basic_string_view& operator=(const basic_string_view&) noexcept = default; - template - basic_string_view(const basic_string& str) noexcept; - constexpr basic_string_view(const charT* str); - constexpr basic_string_view(const charT* str, size_type len); - - // 7.4, basic_string_view iterator support - constexpr const_iterator begin() const noexcept; - constexpr const_iterator end() const noexcept; - constexpr const_iterator cbegin() const noexcept; - constexpr const_iterator cend() const noexcept; - const_reverse_iterator rbegin() const noexcept; - const_reverse_iterator rend() const noexcept; - const_reverse_iterator crbegin() const noexcept; - const_reverse_iterator crend() const noexcept; - - // 7.5, basic_string_view capacity - constexpr size_type size() const noexcept; - constexpr size_type length() const noexcept; - constexpr size_type max_size() const noexcept; - constexpr bool empty() const noexcept; - - // 7.6, basic_string_view element access - constexpr const_reference operator[](size_type pos) const; - constexpr const_reference at(size_type pos) const; - constexpr const_reference front() const; - constexpr const_reference back() const; - constexpr const_pointer data() const noexcept; - - // 7.7, basic_string_view modifiers - constexpr void clear() noexcept; - constexpr void remove_prefix(size_type n); - constexpr void remove_suffix(size_type n); - constexpr void swap(basic_string_view& s) noexcept; - - // 7.8, basic_string_view string operations - template - explicit operator basic_string() const; - template> - basic_string to_string( - const Allocator& a = Allocator()) const; - - size_type copy(charT* s, size_type n, size_type pos = 0) const; - - constexpr basic_string_view substr(size_type pos = 0, size_type n = npos) const; - constexpr int compare(basic_string_view s) const noexcept; - constexpr int compare(size_type pos1, size_type n1, basic_string_view s) const; - constexpr int compare(size_type pos1, size_type n1, - basic_string_view s, size_type pos2, size_type n2) const; - constexpr int compare(const charT* s) const; - constexpr int compare(size_type pos1, size_type n1, const charT* s) const; - constexpr int compare(size_type pos1, size_type n1, - const charT* s, size_type n2) const; - constexpr size_type find(basic_string_view s, size_type pos = 0) const noexcept; - constexpr size_type find(charT c, size_type pos = 0) const noexcept; - constexpr size_type find(const charT* s, size_type pos, size_type n) const; - constexpr size_type find(const charT* s, size_type pos = 0) const; - constexpr size_type rfind(basic_string_view s, size_type pos = npos) const noexcept; - constexpr size_type rfind(charT c, size_type pos = npos) const noexcept; - constexpr size_type rfind(const charT* s, size_type pos, size_type n) const; - constexpr size_type rfind(const charT* s, size_type pos = npos) const; - constexpr size_type find_first_of(basic_string_view s, size_type pos = 0) const noexcept; - constexpr size_type find_first_of(charT c, size_type pos = 0) const noexcept; - constexpr size_type find_first_of(const charT* s, size_type pos, size_type n) const; - constexpr size_type find_first_of(const charT* s, size_type pos = 0) const; - constexpr size_type find_last_of(basic_string_view s, size_type pos = npos) const noexcept; - constexpr size_type find_last_of(charT c, size_type pos = npos) const noexcept; - constexpr size_type find_last_of(const charT* s, size_type pos, size_type n) const; - constexpr size_type find_last_of(const charT* s, size_type pos = npos) const; - constexpr size_type find_first_not_of(basic_string_view s, size_type pos = 0) const noexcept; - constexpr size_type find_first_not_of(charT c, size_type pos = 0) const noexcept; - constexpr size_type find_first_not_of(const charT* s, size_type pos, size_type n) const; - constexpr size_type find_first_not_of(const charT* s, size_type pos = 0) const; - constexpr size_type find_last_not_of(basic_string_view s, size_type pos = npos) const noexcept; - constexpr size_type find_last_not_of(charT c, size_type pos = npos) const noexcept; - constexpr size_type find_last_not_of(const charT* s, size_type pos, size_type n) const; - constexpr size_type find_last_not_of(const charT* s, size_type pos = npos) const; - - private: - const_pointer data_; // exposition only - size_type size_; // exposition only - }; - - } // namespace fundamentals_v1 - } // namespace experimental - - // 7.11, Hash support - template struct hash; - template <> struct hash; - template <> struct hash; - template <> struct hash; - template <> struct hash; - -} // namespace std - - -*/ - -#include - -#include -#include -#include -#include -#include - -#include <__debug> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_LFTS - - template > - class _LIBCPP_TYPE_VIS_ONLY basic_string_view { - public: - // types - typedef _Traits traits_type; - typedef _CharT value_type; - typedef const _CharT* pointer; - typedef const _CharT* const_pointer; - typedef const _CharT& reference; - typedef const _CharT& const_reference; - typedef const_pointer const_iterator; // See [string.view.iterators] - typedef const_iterator iterator; - typedef _VSTD::reverse_iterator const_reverse_iterator; - typedef const_reverse_iterator reverse_iterator; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - static _LIBCPP_CONSTEXPR const size_type npos = -1; // size_type(-1); - - // [string.view.cons], construct/copy - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - basic_string_view() _NOEXCEPT : __data (nullptr), __size(0) {} - - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - basic_string_view(const basic_string_view&) _NOEXCEPT = default; - - _LIBCPP_INLINE_VISIBILITY - basic_string_view& operator=(const basic_string_view&) _NOEXCEPT = default; - - template - _LIBCPP_INLINE_VISIBILITY - basic_string_view(const basic_string<_CharT, _Traits, _Allocator>& __str) _NOEXCEPT - : __data (__str.data()), __size(__str.size()) {} - - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - basic_string_view(const _CharT* __s, size_type __len) - : __data(__s), __size(__len) - { -// _LIBCPP_ASSERT(__len == 0 || __s != nullptr, "string_view::string_view(_CharT *, size_t): recieved nullptr"); - } - - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - basic_string_view(const _CharT* __s) - : __data(__s), __size(_Traits::length(__s)) {} - - // [string.view.iterators], iterators - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - const_iterator begin() const _NOEXCEPT { return cbegin(); } - - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - const_iterator end() const _NOEXCEPT { return cend(); } - - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - const_iterator cbegin() const _NOEXCEPT { return __data; } - - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - const_iterator cend() const _NOEXCEPT { return __data + __size; } - - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator rbegin() const _NOEXCEPT { return const_reverse_iterator(cend()); } - - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator rend() const _NOEXCEPT { return const_reverse_iterator(cbegin()); } - - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator crbegin() const _NOEXCEPT { return const_reverse_iterator(cend()); } - - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator crend() const _NOEXCEPT { return const_reverse_iterator(cbegin()); } - - // [string.view.capacity], capacity - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - size_type size() const _NOEXCEPT { return __size; } - - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - size_type length() const _NOEXCEPT { return __size; } - - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - size_type max_size() const _NOEXCEPT { return _VSTD::numeric_limits::max(); } - - _LIBCPP_CONSTEXPR bool _LIBCPP_INLINE_VISIBILITY - empty() const _NOEXCEPT { return __size == 0; } - - // [string.view.access], element access - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - const_reference operator[](size_type __pos) const { return __data[__pos]; } - - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - const_reference at(size_type __pos) const - { - return __pos >= size() - ? (throw out_of_range("string_view::at"), __data[0]) - : __data[__pos]; - } - - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - const_reference front() const - { - return _LIBCPP_ASSERT(!empty(), "string_view::front(): string is empty"), __data[0]; - } - - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - const_reference back() const - { - return _LIBCPP_ASSERT(!empty(), "string_view::back(): string is empty"), __data[__size-1]; - } - - _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - const_pointer data() const _NOEXCEPT { return __data; } - - // [string.view.modifiers], modifiers: - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - void clear() _NOEXCEPT - { - __data = nullptr; - __size = 0; - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - void remove_prefix(size_type __n) _NOEXCEPT - { - _LIBCPP_ASSERT(__n <= size(), "remove_prefix() can't remove more than size()"); - __data += __n; - __size -= __n; - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - void remove_suffix(size_type __n) _NOEXCEPT - { - _LIBCPP_ASSERT(__n <= size(), "remove_suffix() can't remove more than size()"); - __size -= __n; - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - void swap(basic_string_view& __other) _NOEXCEPT - { - const value_type *__p = __data; - __data = __other.__data; - __other.__data = __p; - - size_type __sz = __size; - __size = __other.__size; - __other.__size = __sz; -// _VSTD::swap( __data, __other.__data ); -// _VSTD::swap( __size, __other.__size ); - } - - // [string.view.ops], string operations: - template - _LIBCPP_INLINE_VISIBILITY - _LIBCPP_EXPLICIT operator basic_string<_CharT, _Traits, _Allocator>() const - { return basic_string<_CharT, _Traits, _Allocator>( begin(), end()); } - - template > - _LIBCPP_INLINE_VISIBILITY - basic_string<_CharT, _Traits, _Allocator> - to_string( const _Allocator& __a = _Allocator()) const - { return basic_string<_CharT, _Traits, _Allocator> ( begin(), end(), __a ); } - - size_type copy(_CharT* __s, size_type __n, size_type __pos = 0) const - { - if ( __pos > size()) - throw out_of_range("string_view::copy"); - size_type __rlen = _VSTD::min( __n, size() - __pos ); - _VSTD::copy_n(begin() + __pos, __rlen, __s ); - return __rlen; - } - - _LIBCPP_CONSTEXPR - basic_string_view substr(size_type __pos = 0, size_type __n = npos) const - { -// if (__pos > size()) -// throw out_of_range("string_view::substr"); -// size_type __rlen = _VSTD::min( __n, size() - __pos ); -// return basic_string_view(data() + __pos, __rlen); - return __pos > size() - ? throw out_of_range("string_view::substr") - : basic_string_view(data() + __pos, _VSTD::min(__n, size() - __pos)); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 int compare(basic_string_view __sv) const _NOEXCEPT - { - size_type __rlen = _VSTD::min( size(), __sv.size()); - int __retval = _Traits::compare(data(), __sv.data(), __rlen); - if ( __retval == 0 ) // first __rlen chars matched - __retval = size() == __sv.size() ? 0 : ( size() < __sv.size() ? -1 : 1 ); - return __retval; - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - int compare(size_type __pos1, size_type __n1, basic_string_view __sv) const - { - return substr(__pos1, __n1).compare(__sv); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - int compare( size_type __pos1, size_type __n1, - basic_string_view _sv, size_type __pos2, size_type __n2) const - { - return substr(__pos1, __n1).compare(_sv.substr(__pos2, __n2)); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - int compare(const _CharT* __s) const - { - return compare(basic_string_view(__s)); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - int compare(size_type __pos1, size_type __n1, const _CharT* __s) const - { - return substr(__pos1, __n1).compare(basic_string_view(__s)); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - int compare(size_type __pos1, size_type __n1, const _CharT* __s, size_type __n2) const - { - return substr(__pos1, __n1).compare(basic_string_view(__s, __n2)); - } - - // find - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find(basic_string_view __s, size_type __pos = 0) const _NOEXCEPT - { - _LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, "string_view::find(): recieved nullptr"); - return _VSTD::__str_find - (data(), size(), __s.data(), __pos, __s.size()); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find(_CharT __c, size_type __pos = 0) const _NOEXCEPT - { - return _VSTD::__str_find - (data(), size(), __c, __pos); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find(const _CharT* __s, size_type __pos, size_type __n) const - { - _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string_view::find(): recieved nullptr"); - return _VSTD::__str_find - (data(), size(), __s, __pos, __n); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find(const _CharT* __s, size_type __pos = 0) const - { - _LIBCPP_ASSERT(__s != nullptr, "string_view::find(): recieved nullptr"); - return _VSTD::__str_find - (data(), size(), __s, __pos, traits_type::length(__s)); - } - - // rfind - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type rfind(basic_string_view __s, size_type __pos = npos) const _NOEXCEPT - { - _LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, "string_view::find(): recieved nullptr"); - return _VSTD::__str_rfind - (data(), size(), __s.data(), __pos, __s.size()); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type rfind(_CharT __c, size_type __pos = npos) const _NOEXCEPT - { - return _VSTD::__str_rfind - (data(), size(), __c, __pos); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type rfind(const _CharT* __s, size_type __pos, size_type __n) const - { - _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string_view::rfind(): recieved nullptr"); - return _VSTD::__str_rfind - (data(), size(), __s, __pos, __n); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type rfind(const _CharT* __s, size_type __pos=npos) const - { - _LIBCPP_ASSERT(__s != nullptr, "string_view::rfind(): recieved nullptr"); - return _VSTD::__str_rfind - (data(), size(), __s, __pos, traits_type::length(__s)); - } - - // find_first_of - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find_first_of(basic_string_view __s, size_type __pos = 0) const _NOEXCEPT - { - _LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, "string_view::find_first_of(): recieved nullptr"); - return _VSTD::__str_find_first_of - (data(), size(), __s.data(), __pos, __s.size()); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find_first_of(_CharT __c, size_type __pos = 0) const _NOEXCEPT - { return find(__c, __pos); } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find_first_of(const _CharT* __s, size_type __pos, size_type __n) const - { - _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string_view::find_first_of(): recieved nullptr"); - return _VSTD::__str_find_first_of - (data(), size(), __s, __pos, __n); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find_first_of(const _CharT* __s, size_type __pos=0) const - { - _LIBCPP_ASSERT(__s != nullptr, "string_view::find_first_of(): recieved nullptr"); - return _VSTD::__str_find_first_of - (data(), size(), __s, __pos, traits_type::length(__s)); - } - - // find_last_of - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find_last_of(basic_string_view __s, size_type __pos=npos) const _NOEXCEPT - { - _LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, "string_view::find_last_of(): recieved nullptr"); - return _VSTD::__str_find_last_of - (data(), size(), __s.data(), __pos, __s.size()); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find_last_of(_CharT __c, size_type __pos = npos) const _NOEXCEPT - { return rfind(__c, __pos); } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find_last_of(const _CharT* __s, size_type __pos, size_type __n) const - { - _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string_view::find_last_of(): recieved nullptr"); - return _VSTD::__str_find_last_of - (data(), size(), __s, __pos, __n); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find_last_of(const _CharT* __s, size_type __pos=npos) const - { - _LIBCPP_ASSERT(__s != nullptr, "string_view::find_last_of(): recieved nullptr"); - return _VSTD::__str_find_last_of - (data(), size(), __s, __pos, traits_type::length(__s)); - } - - // find_first_not_of - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find_first_not_of(basic_string_view __s, size_type __pos=0) const _NOEXCEPT - { - _LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, "string_view::find_first_not_of(): recieved nullptr"); - return _VSTD::__str_find_first_not_of - (data(), size(), __s.data(), __pos, __s.size()); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find_first_not_of(_CharT __c, size_type __pos=0) const _NOEXCEPT - { - return _VSTD::__str_find_first_not_of - (data(), size(), __c, __pos); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const - { - _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string_view::find_first_not_of(): recieved nullptr"); - return _VSTD::__str_find_first_not_of - (data(), size(), __s, __pos, __n); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find_first_not_of(const _CharT* __s, size_type __pos=0) const - { - _LIBCPP_ASSERT(__s != nullptr, "string_view::find_first_not_of(): recieved nullptr"); - return _VSTD::__str_find_first_not_of - (data(), size(), __s, __pos, traits_type::length(__s)); - } - - // find_last_not_of - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find_last_not_of(basic_string_view __s, size_type __pos=npos) const _NOEXCEPT - { - _LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, "string_view::find_last_not_of(): recieved nullptr"); - return _VSTD::__str_find_last_not_of - (data(), size(), __s.data(), __pos, __s.size()); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find_last_not_of(_CharT __c, size_type __pos=npos) const _NOEXCEPT - { - return _VSTD::__str_find_last_not_of - (data(), size(), __c, __pos); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const - { - _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string_view::find_last_not_of(): recieved nullptr"); - return _VSTD::__str_find_last_not_of - (data(), size(), __s, __pos, __n); - } - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - size_type find_last_not_of(const _CharT* __s, size_type __pos=npos) const - { - _LIBCPP_ASSERT(__s != nullptr, "string_view::find_last_not_of(): recieved nullptr"); - return _VSTD::__str_find_last_not_of - (data(), size(), __s, __pos, traits_type::length(__s)); - } - - private: - const value_type* __data; - size_type __size; - }; - - - // [string.view.comparison] - // operator == - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator==(basic_string_view<_CharT, _Traits> __lhs, - basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT - { - if ( __lhs.size() != __rhs.size()) return false; - return __lhs.compare(__rhs) == 0; - } - - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator==(basic_string_view<_CharT, _Traits> __lhs, - typename _VSTD::common_type >::type __rhs) _NOEXCEPT - { - if ( __lhs.size() != __rhs.size()) return false; - return __lhs.compare(__rhs) == 0; - } - - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator==(typename _VSTD::common_type >::type __lhs, - basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT - { - if ( __lhs.size() != __rhs.size()) return false; - return __lhs.compare(__rhs) == 0; - } - - - // operator != - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator!=(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT - { - if ( __lhs.size() != __rhs.size()) - return true; - return __lhs.compare(__rhs) != 0; - } - - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator!=(basic_string_view<_CharT, _Traits> __lhs, - typename _VSTD::common_type >::type __rhs) _NOEXCEPT - { - if ( __lhs.size() != __rhs.size()) - return true; - return __lhs.compare(__rhs) != 0; - } - - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator!=(typename _VSTD::common_type >::type __lhs, - basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT - { - if ( __lhs.size() != __rhs.size()) - return true; - return __lhs.compare(__rhs) != 0; - } - - - // operator < - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator<(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT - { - return __lhs.compare(__rhs) < 0; - } - - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator<(basic_string_view<_CharT, _Traits> __lhs, - typename _VSTD::common_type >::type __rhs) _NOEXCEPT - { - return __lhs.compare(__rhs) < 0; - } - - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator<(typename _VSTD::common_type >::type __lhs, - basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT - { - return __lhs.compare(__rhs) < 0; - } - - - // operator > - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator> (basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT - { - return __lhs.compare(__rhs) > 0; - } - - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator>(basic_string_view<_CharT, _Traits> __lhs, - typename _VSTD::common_type >::type __rhs) _NOEXCEPT - { - return __lhs.compare(__rhs) > 0; - } - - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator>(typename _VSTD::common_type >::type __lhs, - basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT - { - return __lhs.compare(__rhs) > 0; - } - - - // operator <= - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator<=(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT - { - return __lhs.compare(__rhs) <= 0; - } - - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator<=(basic_string_view<_CharT, _Traits> __lhs, - typename _VSTD::common_type >::type __rhs) _NOEXCEPT - { - return __lhs.compare(__rhs) <= 0; - } - - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator<=(typename _VSTD::common_type >::type __lhs, - basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT - { - return __lhs.compare(__rhs) <= 0; - } - - - // operator >= - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator>=(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT - { - return __lhs.compare(__rhs) >= 0; - } - - - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator>=(basic_string_view<_CharT, _Traits> __lhs, - typename _VSTD::common_type >::type __rhs) _NOEXCEPT - { - return __lhs.compare(__rhs) >= 0; - } - - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator>=(typename _VSTD::common_type >::type __lhs, - basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT - { - return __lhs.compare(__rhs) >= 0; - } - - - // [string.view.io] - template - basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, basic_string_view<_CharT, _Traits> __sv) - { - return _VSTD::__put_character_sequence(__os, __sv.data(), __sv.size()); - } - - typedef basic_string_view string_view; - typedef basic_string_view u16string_view; - typedef basic_string_view u32string_view; - typedef basic_string_view wstring_view; - -_LIBCPP_END_NAMESPACE_LFTS -_LIBCPP_BEGIN_NAMESPACE_STD - -// [string.view.hash] -// Shamelessly stolen from -template -struct _LIBCPP_TYPE_VIS_ONLY hash > - : public unary_function, size_t> -{ - size_t operator()(const std::experimental::basic_string_view<_CharT, _Traits>& __val) const _NOEXCEPT; -}; - -template -size_t -hash >::operator()( - const std::experimental::basic_string_view<_CharT, _Traits>& __val) const _NOEXCEPT -{ - return __do_string_hash(__val.data(), __val.data() + __val.size()); -} - -#if _LIBCPP_STD_VER > 11 -template -__quoted_output_proxy<_CharT, const _CharT *, _Traits> -quoted ( std::experimental::basic_string_view <_CharT, _Traits> __sv, - _CharT __delim = _CharT('"'), _CharT __escape=_CharT('\\')) -{ - return __quoted_output_proxy<_CharT, const _CharT *, _Traits> - ( __sv.data(), __sv.data() + __sv.size(), __delim, __escape ); -} -#endif - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_LFTS_STRING_VIEW diff --git a/headers/libs/libc++/experimental/system_error b/headers/libs/libc++/experimental/system_error deleted file mode 100644 index 2ec2385446..0000000000 --- a/headers/libs/libc++/experimental/system_error +++ /dev/null @@ -1,63 +0,0 @@ -// -*- C++ -*- -//===-------------------------- system_error ------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_EXPERIMENTAL_SYSTEM_ERROR -#define _LIBCPP_EXPERIMENTAL_SYSTEM_ERROR - -/** - experimental/system_error synopsis - -// C++1y - -#include - -namespace std { -namespace experimental { -inline namespace fundamentals_v1 { - - // See C++14 19.5, System error support - template constexpr bool is_error_code_enum_v - = is_error_code_enum::value; - template constexpr bool is_error_condition_enum_v - = is_error_condition_enum::value; - -} // namespace fundamentals_v1 -} // namespace experimental -} // namespace std - -*/ - -#include - -#if _LIBCPP_STD_VER > 11 - -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_LFTS - -#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES - -template _LIBCPP_CONSTEXPR bool is_error_code_enum_v - = is_error_code_enum<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_error_condition_enum_v - = is_error_condition_enum<_Tp>::value; - -#endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */ - -_LIBCPP_END_NAMESPACE_LFTS - -#endif /* _LIBCPP_STD_VER > 11 */ - -#endif /* _LIBCPP_EXPERIMENTAL_SYSTEM_ERROR */ diff --git a/headers/libs/libc++/experimental/tuple b/headers/libs/libc++/experimental/tuple deleted file mode 100644 index 50d1e0555b..0000000000 --- a/headers/libs/libc++/experimental/tuple +++ /dev/null @@ -1,81 +0,0 @@ -// -*- C++ -*- -//===----------------------------- tuple ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_EXPERIMENTAL_TUPLE -#define _LIBCPP_EXPERIMENTAL_TUPLE - -/* - experimental/tuple synopsis - -// C++1y - -#include - -namespace std { -namespace experimental { -inline namespace fundamentals_v1 { - - // See C++14 20.4.2.5, tuple helper classes - template constexpr size_t tuple_size_v - = tuple_size::value; - - // 3.2.2, Calling a function with a tuple of arguments - template - constexpr decltype(auto) apply(F&& f, Tuple&& t); - -} // namespace fundamentals_v1 -} // namespace experimental -} // namespace std - - */ - -# include - -#if _LIBCPP_STD_VER > 11 - -# include -# include -# include <__functional_base> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_LFTS - -#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES -template -_LIBCPP_CONSTEXPR size_t tuple_size_v = tuple_size<_Tp>::value; -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -decltype(auto) __apply_tuple_impl(_Fn && __f, _Tuple && __t, - integer_sequence) { - return _VSTD::__invoke( - _VSTD::forward<_Fn>(__f), - _VSTD::get<_Id>(_VSTD::forward<_Tuple>(__t))... - ); -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -decltype(auto) apply(_Fn && __f, _Tuple && __t) { - return _VSTD_LFTS::__apply_tuple_impl( - _VSTD::forward<_Fn>(__f), _VSTD::forward<_Tuple>(__t), - make_index_sequence::type>::value>() - ); -} - -_LIBCPP_END_NAMESPACE_LFTS - -#endif /* _LIBCPP_STD_VER > 11 */ - -#endif /* _LIBCPP_EXPERIMENTAL_TUPLE */ diff --git a/headers/libs/libc++/experimental/type_traits b/headers/libs/libc++/experimental/type_traits deleted file mode 100644 index ae49fc176c..0000000000 --- a/headers/libs/libc++/experimental/type_traits +++ /dev/null @@ -1,427 +0,0 @@ -// -*- C++ -*- -//===-------------------------- type_traits -------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_EXPERIMENTAL_TYPE_TRAITS -#define _LIBCPP_EXPERIMENTAL_TYPE_TRAITS - -/** - experimental/type_traits synopsis - -// C++1y -#include - -namespace std { -namespace experimental { -inline namespace fundamentals_v1 { - - // See C++14 20.10.4.1, primary type categories - template constexpr bool is_void_v - = is_void::value; - template constexpr bool is_null_pointer_v - = is_null_pointer::value; - template constexpr bool is_integral_v - = is_integral::value; - template constexpr bool is_floating_point_v - = is_floating_point::value; - template constexpr bool is_array_v - = is_array::value; - template constexpr bool is_pointer_v - = is_pointer::value; - template constexpr bool is_lvalue_reference_v - = is_lvalue_reference::value; - template constexpr bool is_rvalue_reference_v - = is_rvalue_reference::value; - template constexpr bool is_member_object_pointer_v - = is_member_object_pointer::value; - template constexpr bool is_member_function_pointer_v - = is_member_function_pointer::value; - template constexpr bool is_enum_v - = is_enum::value; - template constexpr bool is_union_v - = is_union::value; - template constexpr bool is_class_v - = is_class::value; - template constexpr bool is_function_v - = is_function::value; - - // See C++14 20.10.4.2, composite type categories - template constexpr bool is_reference_v - = is_reference::value; - template constexpr bool is_arithmetic_v - = is_arithmetic::value; - template constexpr bool is_fundamental_v - = is_fundamental::value; - template constexpr bool is_object_v - = is_object::value; - template constexpr bool is_scalar_v - = is_scalar::value; - template constexpr bool is_compound_v - = is_compound::value; - template constexpr bool is_member_pointer_v - = is_member_pointer::value; - - // See C++14 20.10.4.3, type properties - template constexpr bool is_const_v - = is_const::value; - template constexpr bool is_volatile_v - = is_volatile::value; - template constexpr bool is_trivial_v - = is_trivial::value; - template constexpr bool is_trivially_copyable_v - = is_trivially_copyable::value; - template constexpr bool is_standard_layout_v - = is_standard_layout::value; - template constexpr bool is_pod_v - = is_pod::value; - template constexpr bool is_literal_type_v - = is_literal_type::value; - template constexpr bool is_empty_v - = is_empty::value; - template constexpr bool is_polymorphic_v - = is_polymorphic::value; - template constexpr bool is_abstract_v - = is_abstract::value; - template constexpr bool is_final_v - = is_final::value; - template constexpr bool is_signed_v - = is_signed::value; - template constexpr bool is_unsigned_v - = is_unsigned::value; - template constexpr bool is_constructible_v - = is_constructible::value; - template constexpr bool is_default_constructible_v - = is_default_constructible::value; - template constexpr bool is_copy_constructible_v - = is_copy_constructible::value; - template constexpr bool is_move_constructible_v - = is_move_constructible::value; - template constexpr bool is_assignable_v - = is_assignable::value; - template constexpr bool is_copy_assignable_v - = is_copy_assignable::value; - template constexpr bool is_move_assignable_v - = is_move_assignable::value; - template constexpr bool is_destructible_v - = is_destructible::value; - template constexpr bool is_trivially_constructible_v - = is_trivially_constructible::value; - template constexpr bool is_trivially_default_constructible_v - = is_trivially_default_constructible::value; - template constexpr bool is_trivially_copy_constructible_v - = is_trivially_copy_constructible::value; - template constexpr bool is_trivially_move_constructible_v - = is_trivially_move_constructible::value; - template constexpr bool is_trivially_assignable_v - = is_trivially_assignable::value; - template constexpr bool is_trivially_copy_assignable_v - = is_trivially_copy_assignable::value; - template constexpr bool is_trivially_move_assignable_v - = is_trivially_move_assignable::value; - template constexpr bool is_trivially_destructible_v - = is_trivially_destructible::value; - template constexpr bool is_nothrow_constructible_v - = is_nothrow_constructible::value; - template constexpr bool is_nothrow_default_constructible_v - = is_nothrow_default_constructible::value; - template constexpr bool is_nothrow_copy_constructible_v - = is_nothrow_copy_constructible::value; - template constexpr bool is_nothrow_move_constructible_v - = is_nothrow_move_constructible::value; - template constexpr bool is_nothrow_assignable_v - = is_nothrow_assignable::value; - template constexpr bool is_nothrow_copy_assignable_v - = is_nothrow_copy_assignable::value; - template constexpr bool is_nothrow_move_assignable_v - = is_nothrow_move_assignable::value; - template constexpr bool is_nothrow_destructible_v - = is_nothrow_destructible::value; - template constexpr bool has_virtual_destructor_v - = has_virtual_destructor::value; - - // See C++14 20.10.5, type property queries - template constexpr size_t alignment_of_v - = alignment_of::value; - template constexpr size_t rank_v - = rank::value; - template constexpr size_t extent_v - = extent::value; - - // See C++14 20.10.6, type relations - template constexpr bool is_same_v - = is_same::value; - template constexpr bool is_base_of_v - = is_base_of::value; - template constexpr bool is_convertible_v - = is_convertible::value; - - // 3.3.2, Other type transformations - template class invocation_type; // not defined - template class invocation_type; - template class raw_invocation_type; // not defined - template class raw_invocation_type; - - template - using invocation_type_t = typename invocation_type::type; - template - using raw_invocation_type_t = typename raw_invocation_type::type; - -} // namespace fundamentals_v1 -} // namespace experimental -} // namespace std - - */ - -#include - -#if _LIBCPP_STD_VER > 11 - -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_LFTS - -#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES - -// C++14 20.10.4.1, primary type categories - -template _LIBCPP_CONSTEXPR bool is_void_v - = is_void<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_null_pointer_v - = is_null_pointer<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_integral_v - = is_integral<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_floating_point_v - = is_floating_point<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_array_v - = is_array<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_pointer_v - = is_pointer<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_lvalue_reference_v - = is_lvalue_reference<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_rvalue_reference_v - = is_rvalue_reference<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_member_object_pointer_v - = is_member_object_pointer<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_member_function_pointer_v - = is_member_function_pointer<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_enum_v - = is_enum<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_union_v - = is_union<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_class_v - = is_class<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_function_v - = is_function<_Tp>::value; - -// C++14 20.10.4.2, composite type categories - -template _LIBCPP_CONSTEXPR bool is_reference_v - = is_reference<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_arithmetic_v - = is_arithmetic<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_fundamental_v - = is_fundamental<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_object_v - = is_object<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_scalar_v - = is_scalar<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_compound_v - = is_compound<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_member_pointer_v - = is_member_pointer<_Tp>::value; - -// C++14 20.10.4.3, type properties - -template _LIBCPP_CONSTEXPR bool is_const_v - = is_const<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_volatile_v - = is_volatile<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_trivial_v - = is_trivial<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_trivially_copyable_v - = is_trivially_copyable<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_standard_layout_v - = is_standard_layout<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_pod_v - = is_pod<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_literal_type_v - = is_literal_type<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_empty_v - = is_empty<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_polymorphic_v - = is_polymorphic<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_abstract_v - = is_abstract<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_final_v - = is_final<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_signed_v - = is_signed<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_unsigned_v - = is_unsigned<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_constructible_v - = is_constructible<_Tp, _Ts...>::value; - -template _LIBCPP_CONSTEXPR bool is_default_constructible_v - = is_default_constructible<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_copy_constructible_v - = is_copy_constructible<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_move_constructible_v - = is_move_constructible<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_assignable_v - = is_assignable<_Tp, _Up>::value; - -template _LIBCPP_CONSTEXPR bool is_copy_assignable_v - = is_copy_assignable<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_move_assignable_v - = is_move_assignable<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_destructible_v - = is_destructible<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_trivially_constructible_v - = is_trivially_constructible<_Tp, _Ts...>::value; - -template _LIBCPP_CONSTEXPR bool is_trivially_default_constructible_v - = is_trivially_default_constructible<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_trivially_copy_constructible_v - = is_trivially_copy_constructible<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_trivially_move_constructible_v - = is_trivially_move_constructible<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_trivially_assignable_v - = is_trivially_assignable<_Tp, _Up>::value; - -template _LIBCPP_CONSTEXPR bool is_trivially_copy_assignable_v - = is_trivially_copy_assignable<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_trivially_move_assignable_v - = is_trivially_move_assignable<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_trivially_destructible_v - = is_trivially_destructible<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_nothrow_constructible_v - = is_nothrow_constructible<_Tp, _Ts...>::value; - -template _LIBCPP_CONSTEXPR bool is_nothrow_default_constructible_v - = is_nothrow_default_constructible<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_nothrow_copy_constructible_v - = is_nothrow_copy_constructible<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_nothrow_move_constructible_v - = is_nothrow_move_constructible<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_nothrow_assignable_v - = is_nothrow_assignable<_Tp, _Up>::value; - -template _LIBCPP_CONSTEXPR bool is_nothrow_copy_assignable_v - = is_nothrow_copy_assignable<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_nothrow_move_assignable_v - = is_nothrow_move_assignable<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool is_nothrow_destructible_v - = is_nothrow_destructible<_Tp>::value; - -template _LIBCPP_CONSTEXPR bool has_virtual_destructor_v - = has_virtual_destructor<_Tp>::value; - -// C++14 20.10.5, type properties queries - -template _LIBCPP_CONSTEXPR size_t alignment_of_v - = alignment_of<_Tp>::value; - -template _LIBCPP_CONSTEXPR size_t rank_v - = rank<_Tp>::value; - -template _LIBCPP_CONSTEXPR size_t extent_v - = extent<_Tp, _Id>::value; - -// C++14 20.10.6, type relations - -template _LIBCPP_CONSTEXPR bool is_same_v - = is_same<_Tp, _Up>::value; - -template _LIBCPP_CONSTEXPR bool is_base_of_v - = is_base_of<_Tp, _Up>::value; - -template _LIBCPP_CONSTEXPR bool is_convertible_v - = is_convertible<_Tp, _Up>::value; - -#endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */ - -// 3.3.2, Other type transformations -/* -template -class _LIBCPP_TYPE_VIS_ONLY raw_invocation_type; - -template -class _LIBCPP_TYPE_VIS_ONLY raw_invocation_type<_Fn(_Args...)>; - -template -class _LIBCPP_TYPE_VIS_ONLY invokation_type; - -template -class _LIBCPP_TYPE_VIS_ONLY invokation_type<_Fn(_Args...)>; - -template -using invokation_type_t = typename invokation_type<_Tp>::type; - -template -using raw_invocation_type_t = typename raw_invocation_type<_Tp>::type; -*/ - -_LIBCPP_END_NAMESPACE_LFTS - -#endif /* _LIBCPP_STD_VER > 11 */ - -#endif /* _LIBCPP_EXPERIMENTAL_TYPE_TRAITS */ diff --git a/headers/libs/libc++/experimental/utility b/headers/libs/libc++/experimental/utility deleted file mode 100644 index b5fca6c775..0000000000 --- a/headers/libs/libc++/experimental/utility +++ /dev/null @@ -1,47 +0,0 @@ -// -*- C++ -*- -//===-------------------------- utility ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_EXPERIMENTAL_UTILITY -#define _LIBCPP_EXPERIMENTAL_UTILITY - -/* - experimental/utility synopsis - -// C++1y - -#include - -namespace std { -namespace experimental { -inline namespace fundamentals_v1 { - - 3.1.2, erased-type placeholder - struct erased_type { }; - -} // namespace fundamentals_v1 -} // namespace experimental -} // namespace std - - */ - -#include -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_LFTS - - struct _LIBCPP_TYPE_VIS_ONLY erased_type { }; - -_LIBCPP_END_NAMESPACE_LFTS - -#endif /* _LIBCPP_EXPERIMENTAL_UTILITY */ diff --git a/headers/libs/libc++/ext/__hash b/headers/libs/libc++/ext/__hash deleted file mode 100644 index 5675d54055..0000000000 --- a/headers/libs/libc++/ext/__hash +++ /dev/null @@ -1,135 +0,0 @@ -// -*- C++ -*- -//===------------------------- hash_set ------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_EXT_HASH -#define _LIBCPP_EXT_HASH - -#pragma GCC system_header - -#include -#include - -namespace __gnu_cxx { -using namespace std; - -template struct _LIBCPP_TYPE_VIS_ONLY hash { }; - -template <> struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(const char *__c) const _NOEXCEPT - { - return __do_string_hash(__c, __c + strlen(__c)); - } -}; - -template <> struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(char *__c) const _NOEXCEPT - { - return __do_string_hash(__c, __c + strlen(__c)); - } -}; - -template <> struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(char __c) const _NOEXCEPT - { - return __c; - } -}; - -template <> struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(signed char __c) const _NOEXCEPT - { - return __c; - } -}; - -template <> struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(unsigned char __c) const _NOEXCEPT - { - return __c; - } -}; - -template <> struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(short __c) const _NOEXCEPT - { - return __c; - } -}; - -template <> struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(unsigned short __c) const _NOEXCEPT - { - return __c; - } -}; - -template <> struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(int __c) const _NOEXCEPT - { - return __c; - } -}; - -template <> struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(unsigned int __c) const _NOEXCEPT - { - return __c; - } -}; - -template <> struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(long __c) const _NOEXCEPT - { - return __c; - } -}; - -template <> struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(unsigned long __c) const _NOEXCEPT - { - return __c; - } -}; -} - -#endif // _LIBCPP_EXT_HASH diff --git a/headers/libs/libc++/ext/hash_map b/headers/libs/libc++/ext/hash_map deleted file mode 100644 index 0e4ab6910e..0000000000 --- a/headers/libs/libc++/ext/hash_map +++ /dev/null @@ -1,994 +0,0 @@ -// -*- C++ -*- -//===-------------------------- hash_map ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_HASH_MAP -#define _LIBCPP_HASH_MAP - -/* - - hash_map synopsis - -namespace __gnu_cxx -{ - -template , class Pred = equal_to, - class Alloc = allocator>> -class hash_map -{ -public: - // types - typedef Key key_type; - typedef T mapped_type; - typedef Hash hasher; - typedef Pred key_equal; - typedef Alloc allocator_type; - typedef pair value_type; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef typename allocator_traits::pointer pointer; - typedef typename allocator_traits::const_pointer const_pointer; - typedef typename allocator_traits::size_type size_type; - typedef typename allocator_traits::difference_type difference_type; - - typedef /unspecified/ iterator; - typedef /unspecified/ const_iterator; - - explicit hash_map(size_type n = 193, const hasher& hf = hasher(), - const key_equal& eql = key_equal(), - const allocator_type& a = allocator_type()); - template - hash_map(InputIterator f, InputIterator l, - size_type n = 193, const hasher& hf = hasher(), - const key_equal& eql = key_equal(), - const allocator_type& a = allocator_type()); - hash_map(const hash_map&); - ~hash_map(); - hash_map& operator=(const hash_map&); - - allocator_type get_allocator() const; - - bool empty() const; - size_type size() const; - size_type max_size() const; - - iterator begin(); - iterator end(); - const_iterator begin() const; - const_iterator end() const; - - pair insert(const value_type& obj); - template - void insert(InputIterator first, InputIterator last); - - void erase(const_iterator position); - size_type erase(const key_type& k); - void erase(const_iterator first, const_iterator last); - void clear(); - - void swap(hash_map&); - - hasher hash_funct() const; - key_equal key_eq() const; - - iterator find(const key_type& k); - const_iterator find(const key_type& k) const; - size_type count(const key_type& k) const; - pair equal_range(const key_type& k); - pair equal_range(const key_type& k) const; - - mapped_type& operator[](const key_type& k); - - size_type bucket_count() const; - size_type max_bucket_count() const; - - size_type elems_in_bucket(size_type n) const; - - void resize(size_type n); -}; - -template - void swap(hash_map& x, - hash_map& y); - -template - bool - operator==(const hash_map& x, - const hash_map& y); - -template - bool - operator!=(const hash_map& x, - const hash_map& y); - -template , class Pred = equal_to, - class Alloc = allocator>> -class hash_multimap -{ -public: - // types - typedef Key key_type; - typedef T mapped_type; - typedef Hash hasher; - typedef Pred key_equal; - typedef Alloc allocator_type; - typedef pair value_type; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef typename allocator_traits::pointer pointer; - typedef typename allocator_traits::const_pointer const_pointer; - typedef typename allocator_traits::size_type size_type; - typedef typename allocator_traits::difference_type difference_type; - - typedef /unspecified/ iterator; - typedef /unspecified/ const_iterator; - - explicit hash_multimap(size_type n = 193, const hasher& hf = hasher(), - const key_equal& eql = key_equal(), - const allocator_type& a = allocator_type()); - template - hash_multimap(InputIterator f, InputIterator l, - size_type n = 193, const hasher& hf = hasher(), - const key_equal& eql = key_equal(), - const allocator_type& a = allocator_type()); - explicit hash_multimap(const allocator_type&); - hash_multimap(const hash_multimap&); - ~hash_multimap(); - hash_multimap& operator=(const hash_multimap&); - - allocator_type get_allocator() const; - - bool empty() const; - size_type size() const; - size_type max_size() const; - - iterator begin(); - iterator end(); - const_iterator begin() const; - const_iterator end() const; - - iterator insert(const value_type& obj); - template - void insert(InputIterator first, InputIterator last); - - void erase(const_iterator position); - size_type erase(const key_type& k); - void erase(const_iterator first, const_iterator last); - void clear(); - - void swap(hash_multimap&); - - hasher hash_funct() const; - key_equal key_eq() const; - - iterator find(const key_type& k); - const_iterator find(const key_type& k) const; - size_type count(const key_type& k) const; - pair equal_range(const key_type& k); - pair equal_range(const key_type& k) const; - - size_type bucket_count() const; - size_type max_bucket_count() const; - - size_type elems_in_bucket(size_type n) const; - - void resize(size_type n); -}; - -template - void swap(hash_multimap& x, - hash_multimap& y); - -template - bool - operator==(const hash_multimap& x, - const hash_multimap& y); - -template - bool - operator!=(const hash_multimap& x, - const hash_multimap& y); - -} // __gnu_cxx - -*/ - -#include <__config> -#include <__hash_table> -#include -#include -#include -#include - -#if __DEPRECATED -#if defined(_MSC_VER) && ! defined(__clang__) - _LIBCPP_WARNING("Use of the header is deprecated. Migrate to ") -#else -# warning Use of the header is deprecated. Migrate to -#endif -#endif - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -namespace __gnu_cxx { - -using namespace std; - -template ::value && !__libcpp_is_final<_Hash>::value - > -class __hash_map_hasher - : private _Hash -{ -public: - _LIBCPP_INLINE_VISIBILITY __hash_map_hasher() : _Hash() {} - _LIBCPP_INLINE_VISIBILITY __hash_map_hasher(const _Hash& __h) : _Hash(__h) {} - _LIBCPP_INLINE_VISIBILITY const _Hash& hash_function() const {return *this;} - _LIBCPP_INLINE_VISIBILITY - size_t operator()(const _Tp& __x) const - {return static_cast(*this)(__x.first);} - _LIBCPP_INLINE_VISIBILITY - size_t operator()(const typename _Tp::first_type& __x) const - {return static_cast(*this)(__x);} -}; - -template -class __hash_map_hasher<_Tp, _Hash, false> -{ - _Hash __hash_; -public: - _LIBCPP_INLINE_VISIBILITY __hash_map_hasher() : __hash_() {} - _LIBCPP_INLINE_VISIBILITY __hash_map_hasher(const _Hash& __h) : __hash_(__h) {} - _LIBCPP_INLINE_VISIBILITY const _Hash& hash_function() const {return __hash_;} - _LIBCPP_INLINE_VISIBILITY - size_t operator()(const _Tp& __x) const - {return __hash_(__x.first);} - _LIBCPP_INLINE_VISIBILITY - size_t operator()(const typename _Tp::first_type& __x) const - {return __hash_(__x);} -}; - -template ::value && !__libcpp_is_final<_Pred>::value - > -class __hash_map_equal - : private _Pred -{ -public: - _LIBCPP_INLINE_VISIBILITY __hash_map_equal() : _Pred() {} - _LIBCPP_INLINE_VISIBILITY __hash_map_equal(const _Pred& __p) : _Pred(__p) {} - _LIBCPP_INLINE_VISIBILITY const _Pred& key_eq() const {return *this;} - _LIBCPP_INLINE_VISIBILITY - bool operator()(const _Tp& __x, const _Tp& __y) const - {return static_cast(*this)(__x.first, __y.first);} - _LIBCPP_INLINE_VISIBILITY - bool operator()(const typename _Tp::first_type& __x, const _Tp& __y) const - {return static_cast(*this)(__x, __y.first);} - _LIBCPP_INLINE_VISIBILITY - bool operator()(const _Tp& __x, const typename _Tp::first_type& __y) const - {return static_cast(*this)(__x.first, __y);} - _LIBCPP_INLINE_VISIBILITY - bool operator()(const typename _Tp::first_type& __x, - const typename _Tp::first_type& __y) const - {return static_cast(*this)(__x, __y);} -}; - -template -class __hash_map_equal<_Tp, _Pred, false> -{ - _Pred __pred_; -public: - _LIBCPP_INLINE_VISIBILITY __hash_map_equal() : __pred_() {} - _LIBCPP_INLINE_VISIBILITY __hash_map_equal(const _Pred& __p) : __pred_(__p) {} - _LIBCPP_INLINE_VISIBILITY const _Pred& key_eq() const {return __pred_;} - _LIBCPP_INLINE_VISIBILITY - bool operator()(const _Tp& __x, const _Tp& __y) const - {return __pred_(__x.first, __y.first);} - _LIBCPP_INLINE_VISIBILITY - bool operator()(const typename _Tp::first_type& __x, const _Tp& __y) const - {return __pred_(__x, __y.first);} - _LIBCPP_INLINE_VISIBILITY - bool operator()(const _Tp& __x, const typename _Tp::first_type& __y) const - {return __pred_(__x.first, __y);} - _LIBCPP_INLINE_VISIBILITY - bool operator()(const typename _Tp::first_type& __x, - const typename _Tp::first_type& __y) const - {return __pred_(__x, __y);} -}; - -template -class __hash_map_node_destructor -{ - typedef _Alloc allocator_type; - typedef allocator_traits __alloc_traits; - typedef typename __alloc_traits::value_type::value_type value_type; -public: - typedef typename __alloc_traits::pointer pointer; -private: - typedef typename value_type::first_type first_type; - typedef typename value_type::second_type second_type; - - allocator_type& __na_; - - __hash_map_node_destructor& operator=(const __hash_map_node_destructor&); - -public: - bool __first_constructed; - bool __second_constructed; - - _LIBCPP_INLINE_VISIBILITY - explicit __hash_map_node_destructor(allocator_type& __na) - : __na_(__na), - __first_constructed(false), - __second_constructed(false) - {} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - __hash_map_node_destructor(__hash_node_destructor&& __x) - : __na_(__x.__na_), - __first_constructed(__x.__value_constructed), - __second_constructed(__x.__value_constructed) - { - __x.__value_constructed = false; - } -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - __hash_map_node_destructor(const __hash_node_destructor& __x) - : __na_(__x.__na_), - __first_constructed(__x.__value_constructed), - __second_constructed(__x.__value_constructed) - { - const_cast(__x.__value_constructed) = false; - } -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - _LIBCPP_INLINE_VISIBILITY - void operator()(pointer __p) - { - if (__second_constructed) - __alloc_traits::destroy(__na_, _VSTD::addressof(__p->__value_.second)); - if (__first_constructed) - __alloc_traits::destroy(__na_, _VSTD::addressof(__p->__value_.first)); - if (__p) - __alloc_traits::deallocate(__na_, __p, 1); - } -}; - -template -class _LIBCPP_TYPE_VIS_ONLY __hash_map_iterator -{ - _HashIterator __i_; - - typedef pointer_traits __pointer_traits; - typedef const typename _HashIterator::value_type::first_type key_type; - typedef typename _HashIterator::value_type::second_type mapped_type; -public: - typedef forward_iterator_tag iterator_category; - typedef pair value_type; - typedef typename _HashIterator::difference_type difference_type; - typedef value_type& reference; - typedef typename __pointer_traits::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind -#else - rebind::other -#endif - pointer; - - _LIBCPP_INLINE_VISIBILITY __hash_map_iterator() {} - - _LIBCPP_INLINE_VISIBILITY __hash_map_iterator(_HashIterator __i) : __i_(__i) {} - - _LIBCPP_INLINE_VISIBILITY reference operator*() const {return *operator->();} - _LIBCPP_INLINE_VISIBILITY pointer operator->() const {return (pointer)__i_.operator->();} - - _LIBCPP_INLINE_VISIBILITY __hash_map_iterator& operator++() {++__i_; return *this;} - _LIBCPP_INLINE_VISIBILITY - __hash_map_iterator operator++(int) - { - __hash_map_iterator __t(*this); - ++(*this); - return __t; - } - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(const __hash_map_iterator& __x, const __hash_map_iterator& __y) - {return __x.__i_ == __y.__i_;} - friend _LIBCPP_INLINE_VISIBILITY - bool operator!=(const __hash_map_iterator& __x, const __hash_map_iterator& __y) - {return __x.__i_ != __y.__i_;} - - template friend class _LIBCPP_TYPE_VIS_ONLY hash_map; - template friend class _LIBCPP_TYPE_VIS_ONLY hash_multimap; - template friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator; - template friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator; - template friend class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator; -}; - -template -class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator -{ - _HashIterator __i_; - - typedef pointer_traits __pointer_traits; - typedef const typename _HashIterator::value_type::first_type key_type; - typedef typename _HashIterator::value_type::second_type mapped_type; -public: - typedef forward_iterator_tag iterator_category; - typedef pair value_type; - typedef typename _HashIterator::difference_type difference_type; - typedef const value_type& reference; - typedef typename __pointer_traits::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind -#else - rebind::other -#endif - pointer; - - _LIBCPP_INLINE_VISIBILITY __hash_map_const_iterator() {} - - _LIBCPP_INLINE_VISIBILITY - __hash_map_const_iterator(_HashIterator __i) : __i_(__i) {} - _LIBCPP_INLINE_VISIBILITY - __hash_map_const_iterator( - __hash_map_iterator __i) - : __i_(__i.__i_) {} - - _LIBCPP_INLINE_VISIBILITY - reference operator*() const {return *operator->();} - _LIBCPP_INLINE_VISIBILITY - pointer operator->() const {return (pointer)__i_.operator->();} - - _LIBCPP_INLINE_VISIBILITY - __hash_map_const_iterator& operator++() {++__i_; return *this;} - _LIBCPP_INLINE_VISIBILITY - __hash_map_const_iterator operator++(int) - { - __hash_map_const_iterator __t(*this); - ++(*this); - return __t; - } - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(const __hash_map_const_iterator& __x, const __hash_map_const_iterator& __y) - {return __x.__i_ == __y.__i_;} - friend _LIBCPP_INLINE_VISIBILITY - bool operator!=(const __hash_map_const_iterator& __x, const __hash_map_const_iterator& __y) - {return __x.__i_ != __y.__i_;} - - template friend class _LIBCPP_TYPE_VIS_ONLY hash_map; - template friend class _LIBCPP_TYPE_VIS_ONLY hash_multimap; - template friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator; - template friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator; -}; - -template , class _Pred = equal_to<_Key>, - class _Alloc = allocator > > -class _LIBCPP_TYPE_VIS_ONLY hash_map -{ -public: - // types - typedef _Key key_type; - typedef _Tp mapped_type; - typedef _Tp data_type; - typedef _Hash hasher; - typedef _Pred key_equal; - typedef _Alloc allocator_type; - typedef pair value_type; - typedef value_type& reference; - typedef const value_type& const_reference; - -private: - typedef pair __value_type; - typedef __hash_map_hasher<__value_type, hasher> __hasher; - typedef __hash_map_equal<__value_type, key_equal> __key_equal; - typedef typename __rebind_alloc_helper, __value_type>::type __allocator_type; - - typedef __hash_table<__value_type, __hasher, - __key_equal, __allocator_type> __table; - - __table __table_; - - typedef typename __table::__node_pointer __node_pointer; - typedef typename __table::__node_const_pointer __node_const_pointer; - typedef typename __table::__node_traits __node_traits; - typedef typename __table::__node_allocator __node_allocator; - typedef typename __table::__node __node; - typedef __hash_map_node_destructor<__node_allocator> _Dp; - typedef unique_ptr<__node, _Dp> __node_holder; - typedef allocator_traits __alloc_traits; -public: - typedef typename __alloc_traits::pointer pointer; - typedef typename __alloc_traits::const_pointer const_pointer; - typedef typename __alloc_traits::size_type size_type; - typedef typename __alloc_traits::difference_type difference_type; - - typedef __hash_map_iterator iterator; - typedef __hash_map_const_iterator const_iterator; - - _LIBCPP_INLINE_VISIBILITY hash_map() {__table_.rehash(193);} - explicit hash_map(size_type __n, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal()); - hash_map(size_type __n, const hasher& __hf, - const key_equal& __eql, - const allocator_type& __a); - template - hash_map(_InputIterator __first, _InputIterator __last); - template - hash_map(_InputIterator __first, _InputIterator __last, - size_type __n, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal()); - template - hash_map(_InputIterator __first, _InputIterator __last, - size_type __n, const hasher& __hf, - const key_equal& __eql, - const allocator_type& __a); - hash_map(const hash_map& __u); - - _LIBCPP_INLINE_VISIBILITY - allocator_type get_allocator() const - {return allocator_type(__table_.__node_alloc());} - - _LIBCPP_INLINE_VISIBILITY - bool empty() const {return __table_.size() == 0;} - _LIBCPP_INLINE_VISIBILITY - size_type size() const {return __table_.size();} - _LIBCPP_INLINE_VISIBILITY - size_type max_size() const {return __table_.max_size();} - - _LIBCPP_INLINE_VISIBILITY - iterator begin() {return __table_.begin();} - _LIBCPP_INLINE_VISIBILITY - iterator end() {return __table_.end();} - _LIBCPP_INLINE_VISIBILITY - const_iterator begin() const {return __table_.begin();} - _LIBCPP_INLINE_VISIBILITY - const_iterator end() const {return __table_.end();} - - _LIBCPP_INLINE_VISIBILITY - pair insert(const value_type& __x) - {return __table_.__insert_unique(__x);} - _LIBCPP_INLINE_VISIBILITY - iterator insert(const_iterator, const value_type& __x) {return insert(__x).first;} - template - void insert(_InputIterator __first, _InputIterator __last); - - _LIBCPP_INLINE_VISIBILITY - void erase(const_iterator __p) {__table_.erase(__p.__i_);} - _LIBCPP_INLINE_VISIBILITY - size_type erase(const key_type& __k) {return __table_.__erase_unique(__k);} - _LIBCPP_INLINE_VISIBILITY - void erase(const_iterator __first, const_iterator __last) - {__table_.erase(__first.__i_, __last.__i_);} - _LIBCPP_INLINE_VISIBILITY - void clear() {__table_.clear();} - - _LIBCPP_INLINE_VISIBILITY - void swap(hash_map& __u) {__table_.swap(__u.__table_);} - - _LIBCPP_INLINE_VISIBILITY - hasher hash_funct() const - {return __table_.hash_function().hash_function();} - _LIBCPP_INLINE_VISIBILITY - key_equal key_eq() const - {return __table_.key_eq().key_eq();} - - _LIBCPP_INLINE_VISIBILITY - iterator find(const key_type& __k) {return __table_.find(__k);} - _LIBCPP_INLINE_VISIBILITY - const_iterator find(const key_type& __k) const {return __table_.find(__k);} - _LIBCPP_INLINE_VISIBILITY - size_type count(const key_type& __k) const {return __table_.__count_unique(__k);} - _LIBCPP_INLINE_VISIBILITY - pair equal_range(const key_type& __k) - {return __table_.__equal_range_unique(__k);} - _LIBCPP_INLINE_VISIBILITY - pair equal_range(const key_type& __k) const - {return __table_.__equal_range_unique(__k);} - - mapped_type& operator[](const key_type& __k); - - _LIBCPP_INLINE_VISIBILITY - size_type bucket_count() const {return __table_.bucket_count();} - _LIBCPP_INLINE_VISIBILITY - size_type max_bucket_count() const {return __table_.max_bucket_count();} - - _LIBCPP_INLINE_VISIBILITY - size_type elems_in_bucket(size_type __n) const - {return __table_.bucket_size(__n);} - - _LIBCPP_INLINE_VISIBILITY - void resize(size_type __n) {__table_.rehash(__n);} - -private: - __node_holder __construct_node(const key_type& __k); -}; - -template -hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map( - size_type __n, const hasher& __hf, const key_equal& __eql) - : __table_(__hf, __eql) -{ - __table_.rehash(__n); -} - -template -hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map( - size_type __n, const hasher& __hf, const key_equal& __eql, - const allocator_type& __a) - : __table_(__hf, __eql, __a) -{ - __table_.rehash(__n); -} - -template -template -hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map( - _InputIterator __first, _InputIterator __last) -{ - __table_.rehash(193); - insert(__first, __last); -} - -template -template -hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map( - _InputIterator __first, _InputIterator __last, size_type __n, - const hasher& __hf, const key_equal& __eql) - : __table_(__hf, __eql) -{ - __table_.rehash(__n); - insert(__first, __last); -} - -template -template -hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map( - _InputIterator __first, _InputIterator __last, size_type __n, - const hasher& __hf, const key_equal& __eql, const allocator_type& __a) - : __table_(__hf, __eql, __a) -{ - __table_.rehash(__n); - insert(__first, __last); -} - -template -hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map( - const hash_map& __u) - : __table_(__u.__table_) -{ - __table_.rehash(__u.bucket_count()); - insert(__u.begin(), __u.end()); -} - -template -typename hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::__node_holder -hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::__construct_node(const key_type& __k) -{ - __node_allocator& __na = __table_.__node_alloc(); - __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); - __node_traits::construct(__na, _VSTD::addressof(__h->__value_.first), __k); - __h.get_deleter().__first_constructed = true; - __node_traits::construct(__na, _VSTD::addressof(__h->__value_.second)); - __h.get_deleter().__second_constructed = true; - return _LIBCPP_EXPLICIT_MOVE(__h); // explicitly moved for C++03 -} - -template -template -inline _LIBCPP_INLINE_VISIBILITY -void -hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(_InputIterator __first, - _InputIterator __last) -{ - for (; __first != __last; ++__first) - __table_.__insert_unique(*__first); -} - -template -_Tp& -hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::operator[](const key_type& __k) -{ - iterator __i = find(__k); - if (__i != end()) - return __i->second; - __node_holder __h = __construct_node(__k); - pair __r = __table_.__node_insert_unique(__h.get()); - __h.release(); - return __r.first->second; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, - hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) -{ - __x.swap(__y); -} - -template -bool -operator==(const hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, - const hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) -{ - if (__x.size() != __y.size()) - return false; - typedef typename hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::const_iterator - const_iterator; - for (const_iterator __i = __x.begin(), __ex = __x.end(), __ey = __y.end(); - __i != __ex; ++__i) - { - const_iterator __j = __y.find(__i->first); - if (__j == __ey || !(*__i == *__j)) - return false; - } - return true; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(const hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, - const hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) -{ - return !(__x == __y); -} - -template , class _Pred = equal_to<_Key>, - class _Alloc = allocator > > -class _LIBCPP_TYPE_VIS_ONLY hash_multimap -{ -public: - // types - typedef _Key key_type; - typedef _Tp mapped_type; - typedef _Tp data_type; - typedef _Hash hasher; - typedef _Pred key_equal; - typedef _Alloc allocator_type; - typedef pair value_type; - typedef value_type& reference; - typedef const value_type& const_reference; - -private: - typedef pair __value_type; - typedef __hash_map_hasher<__value_type, hasher> __hasher; - typedef __hash_map_equal<__value_type, key_equal> __key_equal; - typedef typename __rebind_alloc_helper, __value_type>::type __allocator_type; - - typedef __hash_table<__value_type, __hasher, - __key_equal, __allocator_type> __table; - - __table __table_; - - typedef typename __table::__node_traits __node_traits; - typedef typename __table::__node_allocator __node_allocator; - typedef typename __table::__node __node; - typedef __hash_map_node_destructor<__node_allocator> _Dp; - typedef unique_ptr<__node, _Dp> __node_holder; - typedef allocator_traits __alloc_traits; -public: - typedef typename __alloc_traits::pointer pointer; - typedef typename __alloc_traits::const_pointer const_pointer; - typedef typename __alloc_traits::size_type size_type; - typedef typename __alloc_traits::difference_type difference_type; - - typedef __hash_map_iterator iterator; - typedef __hash_map_const_iterator const_iterator; - - _LIBCPP_INLINE_VISIBILITY - hash_multimap() {__table_.rehash(193);} - explicit hash_multimap(size_type __n, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal()); - hash_multimap(size_type __n, const hasher& __hf, - const key_equal& __eql, - const allocator_type& __a); - template - hash_multimap(_InputIterator __first, _InputIterator __last); - template - hash_multimap(_InputIterator __first, _InputIterator __last, - size_type __n, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal()); - template - hash_multimap(_InputIterator __first, _InputIterator __last, - size_type __n, const hasher& __hf, - const key_equal& __eql, - const allocator_type& __a); - hash_multimap(const hash_multimap& __u); - - _LIBCPP_INLINE_VISIBILITY - allocator_type get_allocator() const - {return allocator_type(__table_.__node_alloc());} - - _LIBCPP_INLINE_VISIBILITY - bool empty() const {return __table_.size() == 0;} - _LIBCPP_INLINE_VISIBILITY - size_type size() const {return __table_.size();} - _LIBCPP_INLINE_VISIBILITY - size_type max_size() const {return __table_.max_size();} - - _LIBCPP_INLINE_VISIBILITY - iterator begin() {return __table_.begin();} - _LIBCPP_INLINE_VISIBILITY - iterator end() {return __table_.end();} - _LIBCPP_INLINE_VISIBILITY - const_iterator begin() const {return __table_.begin();} - _LIBCPP_INLINE_VISIBILITY - const_iterator end() const {return __table_.end();} - - _LIBCPP_INLINE_VISIBILITY - iterator insert(const value_type& __x) {return __table_.__insert_multi(__x);} - _LIBCPP_INLINE_VISIBILITY - iterator insert(const_iterator, const value_type& __x) {return insert(__x);} - template - void insert(_InputIterator __first, _InputIterator __last); - - _LIBCPP_INLINE_VISIBILITY - void erase(const_iterator __p) {__table_.erase(__p.__i_);} - _LIBCPP_INLINE_VISIBILITY - size_type erase(const key_type& __k) {return __table_.__erase_multi(__k);} - _LIBCPP_INLINE_VISIBILITY - void erase(const_iterator __first, const_iterator __last) - {__table_.erase(__first.__i_, __last.__i_);} - _LIBCPP_INLINE_VISIBILITY - void clear() {__table_.clear();} - - _LIBCPP_INLINE_VISIBILITY - void swap(hash_multimap& __u) {__table_.swap(__u.__table_);} - - _LIBCPP_INLINE_VISIBILITY - hasher hash_funct() const - {return __table_.hash_function().hash_function();} - _LIBCPP_INLINE_VISIBILITY - key_equal key_eq() const - {return __table_.key_eq().key_eq();} - - _LIBCPP_INLINE_VISIBILITY - iterator find(const key_type& __k) {return __table_.find(__k);} - _LIBCPP_INLINE_VISIBILITY - const_iterator find(const key_type& __k) const {return __table_.find(__k);} - _LIBCPP_INLINE_VISIBILITY - size_type count(const key_type& __k) const {return __table_.__count_multi(__k);} - _LIBCPP_INLINE_VISIBILITY - pair equal_range(const key_type& __k) - {return __table_.__equal_range_multi(__k);} - _LIBCPP_INLINE_VISIBILITY - pair equal_range(const key_type& __k) const - {return __table_.__equal_range_multi(__k);} - - _LIBCPP_INLINE_VISIBILITY - size_type bucket_count() const {return __table_.bucket_count();} - _LIBCPP_INLINE_VISIBILITY - size_type max_bucket_count() const {return __table_.max_bucket_count();} - - _LIBCPP_INLINE_VISIBILITY - size_type elems_in_bucket(size_type __n) const - {return __table_.bucket_size(__n);} - - _LIBCPP_INLINE_VISIBILITY - void resize(size_type __n) {__table_.rehash(__n);} -}; - -template -hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap( - size_type __n, const hasher& __hf, const key_equal& __eql) - : __table_(__hf, __eql) -{ - __table_.rehash(__n); -} - -template -hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap( - size_type __n, const hasher& __hf, const key_equal& __eql, - const allocator_type& __a) - : __table_(__hf, __eql, __a) -{ - __table_.rehash(__n); -} - -template -template -hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap( - _InputIterator __first, _InputIterator __last) -{ - __table_.rehash(193); - insert(__first, __last); -} - -template -template -hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap( - _InputIterator __first, _InputIterator __last, size_type __n, - const hasher& __hf, const key_equal& __eql) - : __table_(__hf, __eql) -{ - __table_.rehash(__n); - insert(__first, __last); -} - -template -template -hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap( - _InputIterator __first, _InputIterator __last, size_type __n, - const hasher& __hf, const key_equal& __eql, const allocator_type& __a) - : __table_(__hf, __eql, __a) -{ - __table_.rehash(__n); - insert(__first, __last); -} - -template -hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap( - const hash_multimap& __u) - : __table_(__u.__table_) -{ - __table_.rehash(__u.bucket_count()); - insert(__u.begin(), __u.end()); -} - -template -template -inline _LIBCPP_INLINE_VISIBILITY -void -hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(_InputIterator __first, - _InputIterator __last) -{ - for (; __first != __last; ++__first) - __table_.__insert_multi(*__first); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, - hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) -{ - __x.swap(__y); -} - -template -bool -operator==(const hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, - const hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) -{ - if (__x.size() != __y.size()) - return false; - typedef typename hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::const_iterator - const_iterator; - typedef pair _EqRng; - for (const_iterator __i = __x.begin(), __ex = __x.end(); __i != __ex;) - { - _EqRng __xeq = __x.equal_range(__i->first); - _EqRng __yeq = __y.equal_range(__i->first); - if (_VSTD::distance(__xeq.first, __xeq.second) != - _VSTD::distance(__yeq.first, __yeq.second) || - !_VSTD::is_permutation(__xeq.first, __xeq.second, __yeq.first)) - return false; - __i = __xeq.second; - } - return true; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(const hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, - const hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) -{ - return !(__x == __y); -} - -} // __gnu_cxx - -#endif // _LIBCPP_HASH_MAP diff --git a/headers/libs/libc++/ext/hash_set b/headers/libs/libc++/ext/hash_set deleted file mode 100644 index c4bb89843d..0000000000 --- a/headers/libs/libc++/ext/hash_set +++ /dev/null @@ -1,661 +0,0 @@ -// -*- C++ -*- -//===------------------------- hash_set ------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_HASH_SET -#define _LIBCPP_HASH_SET - -/* - - hash_set synopsis - -namespace __gnu_cxx -{ - -template , class Pred = equal_to, - class Alloc = allocator> -class hash_set -{ -public: - // types - typedef Value key_type; - typedef key_type value_type; - typedef Hash hasher; - typedef Pred key_equal; - typedef Alloc allocator_type; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef typename allocator_traits::pointer pointer; - typedef typename allocator_traits::const_pointer const_pointer; - typedef typename allocator_traits::size_type size_type; - typedef typename allocator_traits::difference_type difference_type; - - typedef /unspecified/ iterator; - typedef /unspecified/ const_iterator; - - explicit hash_set(size_type n = 193, const hasher& hf = hasher(), - const key_equal& eql = key_equal(), - const allocator_type& a = allocator_type()); - template - hash_set(InputIterator f, InputIterator l, - size_type n = 193, const hasher& hf = hasher(), - const key_equal& eql = key_equal(), - const allocator_type& a = allocator_type()); - hash_set(const hash_set&); - ~hash_set(); - hash_set& operator=(const hash_set&); - - allocator_type get_allocator() const; - - bool empty() const; - size_type size() const; - size_type max_size() const; - - iterator begin(); - iterator end(); - const_iterator begin() const; - const_iterator end() const; - - pair insert(const value_type& obj); - template - void insert(InputIterator first, InputIterator last); - - void erase(const_iterator position); - size_type erase(const key_type& k); - void erase(const_iterator first, const_iterator last); - void clear(); - - void swap(hash_set&); - - hasher hash_funct() const; - key_equal key_eq() const; - - iterator find(const key_type& k); - const_iterator find(const key_type& k) const; - size_type count(const key_type& k) const; - pair equal_range(const key_type& k); - pair equal_range(const key_type& k) const; - - size_type bucket_count() const; - size_type max_bucket_count() const; - - size_type elems_in_bucket(size_type n) const; - - void resize(size_type n); -}; - -template - void swap(hash_set& x, - hash_set& y); - -template - bool - operator==(const hash_set& x, - const hash_set& y); - -template - bool - operator!=(const hash_set& x, - const hash_set& y); - -template , class Pred = equal_to, - class Alloc = allocator> -class hash_multiset -{ -public: - // types - typedef Value key_type; - typedef key_type value_type; - typedef Hash hasher; - typedef Pred key_equal; - typedef Alloc allocator_type; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef typename allocator_traits::pointer pointer; - typedef typename allocator_traits::const_pointer const_pointer; - typedef typename allocator_traits::size_type size_type; - typedef typename allocator_traits::difference_type difference_type; - - typedef /unspecified/ iterator; - typedef /unspecified/ const_iterator; - - explicit hash_multiset(size_type n = 193, const hasher& hf = hasher(), - const key_equal& eql = key_equal(), - const allocator_type& a = allocator_type()); - template - hash_multiset(InputIterator f, InputIterator l, - size_type n = 193, const hasher& hf = hasher(), - const key_equal& eql = key_equal(), - const allocator_type& a = allocator_type()); - hash_multiset(const hash_multiset&); - ~hash_multiset(); - hash_multiset& operator=(const hash_multiset&); - - allocator_type get_allocator() const; - - bool empty() const; - size_type size() const; - size_type max_size() const; - - iterator begin(); - iterator end(); - const_iterator begin() const; - const_iterator end() const; - - iterator insert(const value_type& obj); - template - void insert(InputIterator first, InputIterator last); - - void erase(const_iterator position); - size_type erase(const key_type& k); - void erase(const_iterator first, const_iterator last); - void clear(); - - void swap(hash_multiset&); - - hasher hash_funct() const; - key_equal key_eq() const; - - iterator find(const key_type& k); - const_iterator find(const key_type& k) const; - size_type count(const key_type& k) const; - pair equal_range(const key_type& k); - pair equal_range(const key_type& k) const; - - size_type bucket_count() const; - size_type max_bucket_count() const; - - size_type elems_in_bucket(size_type n) const; - - void resize(size_type n); -}; - -template - void swap(hash_multiset& x, - hash_multiset& y); - -template - bool - operator==(const hash_multiset& x, - const hash_multiset& y); - -template - bool - operator!=(const hash_multiset& x, - const hash_multiset& y); -} // __gnu_cxx - -*/ - -#include <__config> -#include <__hash_table> -#include -#include - -#if __DEPRECATED -#if defined(_MSC_VER) && ! defined(__clang__) - _LIBCPP_WARNING("Use of the header is deprecated. Migrate to ") -#else -# warning Use of the header is deprecated. Migrate to -#endif -#endif - -namespace __gnu_cxx { - -using namespace std; - -template , class _Pred = equal_to<_Value>, - class _Alloc = allocator<_Value> > -class _LIBCPP_TYPE_VIS_ONLY hash_set -{ -public: - // types - typedef _Value key_type; - typedef key_type value_type; - typedef _Hash hasher; - typedef _Pred key_equal; - typedef _Alloc allocator_type; - typedef value_type& reference; - typedef const value_type& const_reference; - -private: - typedef __hash_table __table; - - __table __table_; - -public: - typedef typename __table::pointer pointer; - typedef typename __table::const_pointer const_pointer; - typedef typename __table::size_type size_type; - typedef typename __table::difference_type difference_type; - - typedef typename __table::const_iterator iterator; - typedef typename __table::const_iterator const_iterator; - - _LIBCPP_INLINE_VISIBILITY - hash_set() {__table_.rehash(193);} - explicit hash_set(size_type __n, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal()); - hash_set(size_type __n, const hasher& __hf, const key_equal& __eql, - const allocator_type& __a); - template - hash_set(_InputIterator __first, _InputIterator __last); - template - hash_set(_InputIterator __first, _InputIterator __last, - size_type __n, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal()); - template - hash_set(_InputIterator __first, _InputIterator __last, - size_type __n, const hasher& __hf, const key_equal& __eql, - const allocator_type& __a); - hash_set(const hash_set& __u); - - _LIBCPP_INLINE_VISIBILITY - allocator_type get_allocator() const - {return allocator_type(__table_.__node_alloc());} - - _LIBCPP_INLINE_VISIBILITY - bool empty() const {return __table_.size() == 0;} - _LIBCPP_INLINE_VISIBILITY - size_type size() const {return __table_.size();} - _LIBCPP_INLINE_VISIBILITY - size_type max_size() const {return __table_.max_size();} - - _LIBCPP_INLINE_VISIBILITY - iterator begin() {return __table_.begin();} - _LIBCPP_INLINE_VISIBILITY - iterator end() {return __table_.end();} - _LIBCPP_INLINE_VISIBILITY - const_iterator begin() const {return __table_.begin();} - _LIBCPP_INLINE_VISIBILITY - const_iterator end() const {return __table_.end();} - - _LIBCPP_INLINE_VISIBILITY - pair insert(const value_type& __x) - {return __table_.__insert_unique(__x);} - _LIBCPP_INLINE_VISIBILITY - iterator insert(const_iterator, const value_type& __x) {return insert(__x).first;} - template - void insert(_InputIterator __first, _InputIterator __last); - - _LIBCPP_INLINE_VISIBILITY - void erase(const_iterator __p) {__table_.erase(__p);} - _LIBCPP_INLINE_VISIBILITY - size_type erase(const key_type& __k) {return __table_.__erase_unique(__k);} - _LIBCPP_INLINE_VISIBILITY - void erase(const_iterator __first, const_iterator __last) - {__table_.erase(__first, __last);} - _LIBCPP_INLINE_VISIBILITY - void clear() {__table_.clear();} - - _LIBCPP_INLINE_VISIBILITY - void swap(hash_set& __u) {__table_.swap(__u.__table_);} - - _LIBCPP_INLINE_VISIBILITY - hasher hash_funct() const {return __table_.hash_function();} - _LIBCPP_INLINE_VISIBILITY - key_equal key_eq() const {return __table_.key_eq();} - - _LIBCPP_INLINE_VISIBILITY - iterator find(const key_type& __k) {return __table_.find(__k);} - _LIBCPP_INLINE_VISIBILITY - const_iterator find(const key_type& __k) const {return __table_.find(__k);} - _LIBCPP_INLINE_VISIBILITY - size_type count(const key_type& __k) const {return __table_.__count_unique(__k);} - _LIBCPP_INLINE_VISIBILITY - pair equal_range(const key_type& __k) - {return __table_.__equal_range_unique(__k);} - _LIBCPP_INLINE_VISIBILITY - pair equal_range(const key_type& __k) const - {return __table_.__equal_range_unique(__k);} - - _LIBCPP_INLINE_VISIBILITY - size_type bucket_count() const {return __table_.bucket_count();} - _LIBCPP_INLINE_VISIBILITY - size_type max_bucket_count() const {return __table_.max_bucket_count();} - - _LIBCPP_INLINE_VISIBILITY - size_type elems_in_bucket(size_type __n) const {return __table_.bucket_size(__n);} - - _LIBCPP_INLINE_VISIBILITY - void resize(size_type __n) {__table_.rehash(__n);} -}; - -template -hash_set<_Value, _Hash, _Pred, _Alloc>::hash_set(size_type __n, - const hasher& __hf, const key_equal& __eql) - : __table_(__hf, __eql) -{ - __table_.rehash(__n); -} - -template -hash_set<_Value, _Hash, _Pred, _Alloc>::hash_set(size_type __n, - const hasher& __hf, const key_equal& __eql, const allocator_type& __a) - : __table_(__hf, __eql, __a) -{ - __table_.rehash(__n); -} - -template -template -hash_set<_Value, _Hash, _Pred, _Alloc>::hash_set( - _InputIterator __first, _InputIterator __last) -{ - __table_.rehash(193); - insert(__first, __last); -} - -template -template -hash_set<_Value, _Hash, _Pred, _Alloc>::hash_set( - _InputIterator __first, _InputIterator __last, size_type __n, - const hasher& __hf, const key_equal& __eql) - : __table_(__hf, __eql) -{ - __table_.rehash(__n); - insert(__first, __last); -} - -template -template -hash_set<_Value, _Hash, _Pred, _Alloc>::hash_set( - _InputIterator __first, _InputIterator __last, size_type __n, - const hasher& __hf, const key_equal& __eql, const allocator_type& __a) - : __table_(__hf, __eql, __a) -{ - __table_.rehash(__n); - insert(__first, __last); -} - -template -hash_set<_Value, _Hash, _Pred, _Alloc>::hash_set( - const hash_set& __u) - : __table_(__u.__table_) -{ - __table_.rehash(__u.bucket_count()); - insert(__u.begin(), __u.end()); -} - -template -template -inline _LIBCPP_INLINE_VISIBILITY -void -hash_set<_Value, _Hash, _Pred, _Alloc>::insert(_InputIterator __first, - _InputIterator __last) -{ - for (; __first != __last; ++__first) - __table_.__insert_unique(*__first); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(hash_set<_Value, _Hash, _Pred, _Alloc>& __x, - hash_set<_Value, _Hash, _Pred, _Alloc>& __y) -{ - __x.swap(__y); -} - -template -bool -operator==(const hash_set<_Value, _Hash, _Pred, _Alloc>& __x, - const hash_set<_Value, _Hash, _Pred, _Alloc>& __y) -{ - if (__x.size() != __y.size()) - return false; - typedef typename hash_set<_Value, _Hash, _Pred, _Alloc>::const_iterator - const_iterator; - for (const_iterator __i = __x.begin(), __ex = __x.end(), __ey = __y.end(); - __i != __ex; ++__i) - { - const_iterator __j = __y.find(*__i); - if (__j == __ey || !(*__i == *__j)) - return false; - } - return true; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(const hash_set<_Value, _Hash, _Pred, _Alloc>& __x, - const hash_set<_Value, _Hash, _Pred, _Alloc>& __y) -{ - return !(__x == __y); -} - -template , class _Pred = equal_to<_Value>, - class _Alloc = allocator<_Value> > -class _LIBCPP_TYPE_VIS_ONLY hash_multiset -{ -public: - // types - typedef _Value key_type; - typedef key_type value_type; - typedef _Hash hasher; - typedef _Pred key_equal; - typedef _Alloc allocator_type; - typedef value_type& reference; - typedef const value_type& const_reference; - -private: - typedef __hash_table __table; - - __table __table_; - -public: - typedef typename __table::pointer pointer; - typedef typename __table::const_pointer const_pointer; - typedef typename __table::size_type size_type; - typedef typename __table::difference_type difference_type; - - typedef typename __table::const_iterator iterator; - typedef typename __table::const_iterator const_iterator; - - _LIBCPP_INLINE_VISIBILITY - hash_multiset() {__table_.rehash(193);} - explicit hash_multiset(size_type __n, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal()); - hash_multiset(size_type __n, const hasher& __hf, - const key_equal& __eql, const allocator_type& __a); - template - hash_multiset(_InputIterator __first, _InputIterator __last); - template - hash_multiset(_InputIterator __first, _InputIterator __last, - size_type __n, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal()); - template - hash_multiset(_InputIterator __first, _InputIterator __last, - size_type __n , const hasher& __hf, - const key_equal& __eql, const allocator_type& __a); - hash_multiset(const hash_multiset& __u); - - _LIBCPP_INLINE_VISIBILITY - allocator_type get_allocator() const - {return allocator_type(__table_.__node_alloc());} - - _LIBCPP_INLINE_VISIBILITY - bool empty() const {return __table_.size() == 0;} - _LIBCPP_INLINE_VISIBILITY - size_type size() const {return __table_.size();} - _LIBCPP_INLINE_VISIBILITY - size_type max_size() const {return __table_.max_size();} - - _LIBCPP_INLINE_VISIBILITY - iterator begin() {return __table_.begin();} - _LIBCPP_INLINE_VISIBILITY - iterator end() {return __table_.end();} - _LIBCPP_INLINE_VISIBILITY - const_iterator begin() const {return __table_.begin();} - _LIBCPP_INLINE_VISIBILITY - const_iterator end() const {return __table_.end();} - - _LIBCPP_INLINE_VISIBILITY - iterator insert(const value_type& __x) {return __table_.__insert_multi(__x);} - _LIBCPP_INLINE_VISIBILITY - iterator insert(const_iterator, const value_type& __x) {return insert(__x);} - template - void insert(_InputIterator __first, _InputIterator __last); - - _LIBCPP_INLINE_VISIBILITY - void erase(const_iterator __p) {__table_.erase(__p);} - _LIBCPP_INLINE_VISIBILITY - size_type erase(const key_type& __k) {return __table_.__erase_multi(__k);} - _LIBCPP_INLINE_VISIBILITY - void erase(const_iterator __first, const_iterator __last) - {__table_.erase(__first, __last);} - _LIBCPP_INLINE_VISIBILITY - void clear() {__table_.clear();} - - _LIBCPP_INLINE_VISIBILITY - void swap(hash_multiset& __u) {__table_.swap(__u.__table_);} - - _LIBCPP_INLINE_VISIBILITY - hasher hash_funct() const {return __table_.hash_function();} - _LIBCPP_INLINE_VISIBILITY - key_equal key_eq() const {return __table_.key_eq();} - - _LIBCPP_INLINE_VISIBILITY - iterator find(const key_type& __k) {return __table_.find(__k);} - _LIBCPP_INLINE_VISIBILITY - const_iterator find(const key_type& __k) const {return __table_.find(__k);} - _LIBCPP_INLINE_VISIBILITY - size_type count(const key_type& __k) const {return __table_.__count_multi(__k);} - _LIBCPP_INLINE_VISIBILITY - pair equal_range(const key_type& __k) - {return __table_.__equal_range_multi(__k);} - _LIBCPP_INLINE_VISIBILITY - pair equal_range(const key_type& __k) const - {return __table_.__equal_range_multi(__k);} - - _LIBCPP_INLINE_VISIBILITY - size_type bucket_count() const {return __table_.bucket_count();} - _LIBCPP_INLINE_VISIBILITY - size_type max_bucket_count() const {return __table_.max_bucket_count();} - - _LIBCPP_INLINE_VISIBILITY - size_type elems_in_bucket(size_type __n) const {return __table_.bucket_size(__n);} - - _LIBCPP_INLINE_VISIBILITY - void resize(size_type __n) {__table_.rehash(__n);} -}; - -template -hash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset( - size_type __n, const hasher& __hf, const key_equal& __eql) - : __table_(__hf, __eql) -{ - __table_.rehash(__n); -} - -template -hash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset( - size_type __n, const hasher& __hf, const key_equal& __eql, - const allocator_type& __a) - : __table_(__hf, __eql, __a) -{ - __table_.rehash(__n); -} - -template -template -hash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset( - _InputIterator __first, _InputIterator __last) -{ - __table_.rehash(193); - insert(__first, __last); -} - -template -template -hash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset( - _InputIterator __first, _InputIterator __last, size_type __n, - const hasher& __hf, const key_equal& __eql) - : __table_(__hf, __eql) -{ - __table_.rehash(__n); - insert(__first, __last); -} - -template -template -hash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset( - _InputIterator __first, _InputIterator __last, size_type __n, - const hasher& __hf, const key_equal& __eql, const allocator_type& __a) - : __table_(__hf, __eql, __a) -{ - __table_.rehash(__n); - insert(__first, __last); -} - -template -hash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset( - const hash_multiset& __u) - : __table_(__u.__table_) -{ - __table_.rehash(__u.bucket_count()); - insert(__u.begin(), __u.end()); -} - -template -template -inline _LIBCPP_INLINE_VISIBILITY -void -hash_multiset<_Value, _Hash, _Pred, _Alloc>::insert(_InputIterator __first, - _InputIterator __last) -{ - for (; __first != __last; ++__first) - __table_.__insert_multi(*__first); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(hash_multiset<_Value, _Hash, _Pred, _Alloc>& __x, - hash_multiset<_Value, _Hash, _Pred, _Alloc>& __y) -{ - __x.swap(__y); -} - -template -bool -operator==(const hash_multiset<_Value, _Hash, _Pred, _Alloc>& __x, - const hash_multiset<_Value, _Hash, _Pred, _Alloc>& __y) -{ - if (__x.size() != __y.size()) - return false; - typedef typename hash_multiset<_Value, _Hash, _Pred, _Alloc>::const_iterator - const_iterator; - typedef pair _EqRng; - for (const_iterator __i = __x.begin(), __ex = __x.end(); __i != __ex;) - { - _EqRng __xeq = __x.equal_range(*__i); - _EqRng __yeq = __y.equal_range(*__i); - if (_VSTD::distance(__xeq.first, __xeq.second) != - _VSTD::distance(__yeq.first, __yeq.second) || - !_VSTD::is_permutation(__xeq.first, __xeq.second, __yeq.first)) - return false; - __i = __xeq.second; - } - return true; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(const hash_multiset<_Value, _Hash, _Pred, _Alloc>& __x, - const hash_multiset<_Value, _Hash, _Pred, _Alloc>& __y) -{ - return !(__x == __y); -} - -} // __gnu_cxx - -#endif // _LIBCPP_HASH_SET diff --git a/headers/libs/libc++/float.h b/headers/libs/libc++/float.h deleted file mode 100644 index 1acfdc6188..0000000000 --- a/headers/libs/libc++/float.h +++ /dev/null @@ -1,83 +0,0 @@ -// -*- C++ -*- -//===--------------------------- float.h ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_FLOAT_H -#define _LIBCPP_FLOAT_H - -/* - float.h synopsis - -Macros: - - FLT_ROUNDS - FLT_EVAL_METHOD // C99 - FLT_RADIX - - FLT_MANT_DIG - DBL_MANT_DIG - LDBL_MANT_DIG - - DECIMAL_DIG // C99 - - FLT_DIG - DBL_DIG - LDBL_DIG - - FLT_MIN_EXP - DBL_MIN_EXP - LDBL_MIN_EXP - - FLT_MIN_10_EXP - DBL_MIN_10_EXP - LDBL_MIN_10_EXP - - FLT_MAX_EXP - DBL_MAX_EXP - LDBL_MAX_EXP - - FLT_MAX_10_EXP - DBL_MAX_10_EXP - LDBL_MAX_10_EXP - - FLT_MAX - DBL_MAX - LDBL_MAX - - FLT_EPSILON - DBL_EPSILON - LDBL_EPSILON - - FLT_MIN - DBL_MIN - LDBL_MIN - -*/ - -#include <__config> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#include_next - -#ifdef __cplusplus - -#ifndef FLT_EVAL_METHOD -#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ -#endif - -#ifndef DECIMAL_DIG -#define DECIMAL_DIG __DECIMAL_DIG__ -#endif - -#endif // __cplusplus - -#endif // _LIBCPP_FLOAT_H diff --git a/headers/libs/libc++/forward_list b/headers/libs/libc++/forward_list deleted file mode 100644 index 8a87fc5e1f..0000000000 --- a/headers/libs/libc++/forward_list +++ /dev/null @@ -1,1649 +0,0 @@ -// -*- C++ -*- -//===----------------------- forward_list ---------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_FORWARD_LIST -#define _LIBCPP_FORWARD_LIST - -/* - forward_list synopsis - -namespace std -{ - -template > -class forward_list -{ -public: - typedef T value_type; - typedef Allocator allocator_type; - - typedef value_type& reference; - typedef const value_type& const_reference; - typedef typename allocator_traits::pointer pointer; - typedef typename allocator_traits::const_pointer const_pointer; - typedef typename allocator_traits::size_type size_type; - typedef typename allocator_traits::difference_type difference_type; - - typedef
    iterator; - typedef
    const_iterator; - - forward_list() - noexcept(is_nothrow_default_constructible::value); - explicit forward_list(const allocator_type& a); - explicit forward_list(size_type n); - explicit forward_list(size_type n, const allocator_type& a); // C++14 - forward_list(size_type n, const value_type& v); - forward_list(size_type n, const value_type& v, const allocator_type& a); - template - forward_list(InputIterator first, InputIterator last); - template - forward_list(InputIterator first, InputIterator last, const allocator_type& a); - forward_list(const forward_list& x); - forward_list(const forward_list& x, const allocator_type& a); - forward_list(forward_list&& x) - noexcept(is_nothrow_move_constructible::value); - forward_list(forward_list&& x, const allocator_type& a); - forward_list(initializer_list il); - forward_list(initializer_list il, const allocator_type& a); - - ~forward_list(); - - forward_list& operator=(const forward_list& x); - forward_list& operator=(forward_list&& x) - noexcept( - allocator_type::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable::value); - forward_list& operator=(initializer_list il); - - template - void assign(InputIterator first, InputIterator last); - void assign(size_type n, const value_type& v); - void assign(initializer_list il); - - allocator_type get_allocator() const noexcept; - - iterator begin() noexcept; - const_iterator begin() const noexcept; - iterator end() noexcept; - const_iterator end() const noexcept; - - const_iterator cbegin() const noexcept; - const_iterator cend() const noexcept; - - iterator before_begin() noexcept; - const_iterator before_begin() const noexcept; - const_iterator cbefore_begin() const noexcept; - - bool empty() const noexcept; - size_type max_size() const noexcept; - - reference front(); - const_reference front() const; - - template void emplace_front(Args&&... args); - void push_front(const value_type& v); - void push_front(value_type&& v); - - void pop_front(); - - template - iterator emplace_after(const_iterator p, Args&&... args); - iterator insert_after(const_iterator p, const value_type& v); - iterator insert_after(const_iterator p, value_type&& v); - iterator insert_after(const_iterator p, size_type n, const value_type& v); - template - iterator insert_after(const_iterator p, - InputIterator first, InputIterator last); - iterator insert_after(const_iterator p, initializer_list il); - - iterator erase_after(const_iterator p); - iterator erase_after(const_iterator first, const_iterator last); - - void swap(forward_list& x) - noexcept(allocator_traits::is_always_equal::value); // C++17 - - void resize(size_type n); - void resize(size_type n, const value_type& v); - void clear() noexcept; - - void splice_after(const_iterator p, forward_list& x); - void splice_after(const_iterator p, forward_list&& x); - void splice_after(const_iterator p, forward_list& x, const_iterator i); - void splice_after(const_iterator p, forward_list&& x, const_iterator i); - void splice_after(const_iterator p, forward_list& x, - const_iterator first, const_iterator last); - void splice_after(const_iterator p, forward_list&& x, - const_iterator first, const_iterator last); - void remove(const value_type& v); - template void remove_if(Predicate pred); - void unique(); - template void unique(BinaryPredicate binary_pred); - void merge(forward_list& x); - void merge(forward_list&& x); - template void merge(forward_list& x, Compare comp); - template void merge(forward_list&& x, Compare comp); - void sort(); - template void sort(Compare comp); - void reverse() noexcept; -}; - -template - bool operator==(const forward_list& x, - const forward_list& y); - -template - bool operator< (const forward_list& x, - const forward_list& y); - -template - bool operator!=(const forward_list& x, - const forward_list& y); - -template - bool operator> (const forward_list& x, - const forward_list& y); - -template - bool operator>=(const forward_list& x, - const forward_list& y); - -template - bool operator<=(const forward_list& x, - const forward_list& y); - -template - void swap(forward_list& x, forward_list& y) - noexcept(noexcept(x.swap(y))); - -} // std - -*/ - -#include <__config> - -#include -#include -#include -#include -#include - -#include <__undef_min_max> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -template struct __forward_list_node; - -template -struct __forward_begin_node -{ - typedef _NodePtr pointer; - - pointer __next_; - - _LIBCPP_INLINE_VISIBILITY __forward_begin_node() : __next_(nullptr) {} -}; - -template -struct _LIBCPP_HIDDEN __begin_node_of -{ - typedef __forward_begin_node - < - typename pointer_traits<_VoidPtr>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind<__forward_list_node<_Tp, _VoidPtr> > -#else - rebind<__forward_list_node<_Tp, _VoidPtr> >::other -#endif - > type; -}; - -template -struct __forward_list_node - : public __begin_node_of<_Tp, _VoidPtr>::type -{ - typedef _Tp value_type; - - value_type __value_; -}; - -template > class _LIBCPP_TYPE_VIS_ONLY forward_list; -template class _LIBCPP_TYPE_VIS_ONLY __forward_list_const_iterator; - -template -class _LIBCPP_TYPE_VIS_ONLY __forward_list_iterator -{ - typedef _NodePtr __node_pointer; - - __node_pointer __ptr_; - - _LIBCPP_INLINE_VISIBILITY - explicit __forward_list_iterator(__node_pointer __p) _NOEXCEPT : __ptr_(__p) {} - - template friend class _LIBCPP_TYPE_VIS_ONLY forward_list; - template friend class _LIBCPP_TYPE_VIS_ONLY __forward_list_const_iterator; - -public: - typedef forward_iterator_tag iterator_category; - typedef typename pointer_traits<__node_pointer>::element_type::value_type - value_type; - typedef value_type& reference; - typedef typename pointer_traits<__node_pointer>::difference_type - difference_type; - typedef typename pointer_traits<__node_pointer>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind -#else - rebind::other -#endif - pointer; - - _LIBCPP_INLINE_VISIBILITY - __forward_list_iterator() _NOEXCEPT : __ptr_(nullptr) {} - - _LIBCPP_INLINE_VISIBILITY - reference operator*() const {return __ptr_->__value_;} - _LIBCPP_INLINE_VISIBILITY - pointer operator->() const {return pointer_traits::pointer_to(__ptr_->__value_);} - - _LIBCPP_INLINE_VISIBILITY - __forward_list_iterator& operator++() - { - __ptr_ = __ptr_->__next_; - return *this; - } - _LIBCPP_INLINE_VISIBILITY - __forward_list_iterator operator++(int) - { - __forward_list_iterator __t(*this); - ++(*this); - return __t; - } - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(const __forward_list_iterator& __x, - const __forward_list_iterator& __y) - {return __x.__ptr_ == __y.__ptr_;} - friend _LIBCPP_INLINE_VISIBILITY - bool operator!=(const __forward_list_iterator& __x, - const __forward_list_iterator& __y) - {return !(__x == __y);} -}; - -template -class _LIBCPP_TYPE_VIS_ONLY __forward_list_const_iterator -{ - typedef _NodeConstPtr __node_const_pointer; - - __node_const_pointer __ptr_; - - _LIBCPP_INLINE_VISIBILITY - explicit __forward_list_const_iterator(__node_const_pointer __p) _NOEXCEPT - : __ptr_(__p) {} - - typedef typename remove_const - < - typename pointer_traits<__node_const_pointer>::element_type - >::type __node; - typedef typename pointer_traits<__node_const_pointer>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind<__node> -#else - rebind<__node>::other -#endif - __node_pointer; - - template friend class forward_list; - -public: - typedef forward_iterator_tag iterator_category; - typedef typename __node::value_type value_type; - typedef const value_type& reference; - typedef typename pointer_traits<__node_const_pointer>::difference_type - difference_type; - typedef typename pointer_traits<__node_const_pointer>::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind -#else - rebind::other -#endif - pointer; - - _LIBCPP_INLINE_VISIBILITY - __forward_list_const_iterator() _NOEXCEPT : __ptr_(nullptr) {} - _LIBCPP_INLINE_VISIBILITY - __forward_list_const_iterator(__forward_list_iterator<__node_pointer> __p) _NOEXCEPT - : __ptr_(__p.__ptr_) {} - - _LIBCPP_INLINE_VISIBILITY - reference operator*() const {return __ptr_->__value_;} - _LIBCPP_INLINE_VISIBILITY - pointer operator->() const {return pointer_traits::pointer_to(__ptr_->__value_);} - - _LIBCPP_INLINE_VISIBILITY - __forward_list_const_iterator& operator++() - { - __ptr_ = __ptr_->__next_; - return *this; - } - _LIBCPP_INLINE_VISIBILITY - __forward_list_const_iterator operator++(int) - { - __forward_list_const_iterator __t(*this); - ++(*this); - return __t; - } - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(const __forward_list_const_iterator& __x, - const __forward_list_const_iterator& __y) - {return __x.__ptr_ == __y.__ptr_;} - friend _LIBCPP_INLINE_VISIBILITY - bool operator!=(const __forward_list_const_iterator& __x, - const __forward_list_const_iterator& __y) - {return !(__x == __y);} -}; - -template -class __forward_list_base -{ -protected: - typedef _Tp value_type; - typedef _Alloc allocator_type; - - typedef typename allocator_traits::void_pointer void_pointer; - typedef __forward_list_node __node; - typedef typename __begin_node_of::type __begin_node; - typedef typename __rebind_alloc_helper, __node>::type __node_allocator; - typedef allocator_traits<__node_allocator> __node_traits; - typedef typename __node_traits::pointer __node_pointer; - typedef typename __node_traits::pointer __node_const_pointer; - - typedef typename __rebind_alloc_helper, __begin_node>::type __begin_node_allocator; - typedef typename allocator_traits<__begin_node_allocator>::pointer __begin_node_pointer; - - __compressed_pair<__begin_node, __node_allocator> __before_begin_; - - _LIBCPP_INLINE_VISIBILITY - __node_pointer __before_begin() _NOEXCEPT - {return static_cast<__node_pointer>(pointer_traits<__begin_node_pointer>:: - pointer_to(__before_begin_.first()));} - _LIBCPP_INLINE_VISIBILITY - __node_const_pointer __before_begin() const _NOEXCEPT - {return static_cast<__node_const_pointer>(pointer_traits<__begin_node_pointer>:: - pointer_to(const_cast<__begin_node&>(__before_begin_.first())));} - - _LIBCPP_INLINE_VISIBILITY - __node_allocator& __alloc() _NOEXCEPT - {return __before_begin_.second();} - _LIBCPP_INLINE_VISIBILITY - const __node_allocator& __alloc() const _NOEXCEPT - {return __before_begin_.second();} - - typedef __forward_list_iterator<__node_pointer> iterator; - typedef __forward_list_const_iterator<__node_pointer> const_iterator; - - _LIBCPP_INLINE_VISIBILITY - __forward_list_base() - _NOEXCEPT_(is_nothrow_default_constructible<__node_allocator>::value) - : __before_begin_(__begin_node()) {} - _LIBCPP_INLINE_VISIBILITY - __forward_list_base(const allocator_type& __a) - : __before_begin_(__begin_node(), __node_allocator(__a)) {} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -public: - __forward_list_base(__forward_list_base&& __x) - _NOEXCEPT_(is_nothrow_move_constructible<__node_allocator>::value); - __forward_list_base(__forward_list_base&& __x, const allocator_type& __a); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -private: - __forward_list_base(const __forward_list_base&); - __forward_list_base& operator=(const __forward_list_base&); - -public: - ~__forward_list_base(); - -protected: - _LIBCPP_INLINE_VISIBILITY - void __copy_assign_alloc(const __forward_list_base& __x) - {__copy_assign_alloc(__x, integral_constant());} - - _LIBCPP_INLINE_VISIBILITY - void __move_assign_alloc(__forward_list_base& __x) - _NOEXCEPT_(!__node_traits::propagate_on_container_move_assignment::value || - is_nothrow_move_assignable<__node_allocator>::value) - {__move_assign_alloc(__x, integral_constant());} - -public: - void swap(__forward_list_base& __x) -#if _LIBCPP_STD_VER >= 14 - _NOEXCEPT; -#else - _NOEXCEPT_(!__node_traits::propagate_on_container_move_assignment::value || - __is_nothrow_swappable<__node_allocator>::value); -#endif -protected: - void clear() _NOEXCEPT; - -private: - _LIBCPP_INLINE_VISIBILITY - void __copy_assign_alloc(const __forward_list_base&, false_type) {} - _LIBCPP_INLINE_VISIBILITY - void __copy_assign_alloc(const __forward_list_base& __x, true_type) - { - if (__alloc() != __x.__alloc()) - clear(); - __alloc() = __x.__alloc(); - } - - _LIBCPP_INLINE_VISIBILITY - void __move_assign_alloc(__forward_list_base& __x, false_type) _NOEXCEPT - {} - _LIBCPP_INLINE_VISIBILITY - void __move_assign_alloc(__forward_list_base& __x, true_type) - _NOEXCEPT_(is_nothrow_move_assignable<__node_allocator>::value) - {__alloc() = _VSTD::move(__x.__alloc());} -}; - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline _LIBCPP_INLINE_VISIBILITY -__forward_list_base<_Tp, _Alloc>::__forward_list_base(__forward_list_base&& __x) - _NOEXCEPT_(is_nothrow_move_constructible<__node_allocator>::value) - : __before_begin_(_VSTD::move(__x.__before_begin_)) -{ - __x.__before_begin()->__next_ = nullptr; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -__forward_list_base<_Tp, _Alloc>::__forward_list_base(__forward_list_base&& __x, - const allocator_type& __a) - : __before_begin_(__begin_node(), __node_allocator(__a)) -{ - if (__alloc() == __x.__alloc()) - { - __before_begin()->__next_ = __x.__before_begin()->__next_; - __x.__before_begin()->__next_ = nullptr; - } -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -__forward_list_base<_Tp, _Alloc>::~__forward_list_base() -{ - clear(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -__forward_list_base<_Tp, _Alloc>::swap(__forward_list_base& __x) -#if _LIBCPP_STD_VER >= 14 - _NOEXCEPT -#else - _NOEXCEPT_(!__node_traits::propagate_on_container_move_assignment::value || - __is_nothrow_swappable<__node_allocator>::value) -#endif -{ - __swap_allocator(__alloc(), __x.__alloc(), - integral_constant()); - using _VSTD::swap; - swap(__before_begin()->__next_, __x.__before_begin()->__next_); -} - -template -void -__forward_list_base<_Tp, _Alloc>::clear() _NOEXCEPT -{ - __node_allocator& __a = __alloc(); - for (__node_pointer __p = __before_begin()->__next_; __p != nullptr;) - { - __node_pointer __next = __p->__next_; - __node_traits::destroy(__a, _VSTD::addressof(__p->__value_)); - __node_traits::deallocate(__a, __p, 1); - __p = __next; - } - __before_begin()->__next_ = nullptr; -} - -template */> -class _LIBCPP_TYPE_VIS_ONLY forward_list - : private __forward_list_base<_Tp, _Alloc> -{ - typedef __forward_list_base<_Tp, _Alloc> base; - typedef typename base::__node_allocator __node_allocator; - typedef typename base::__node __node; - typedef typename base::__node_traits __node_traits; - typedef typename base::__node_pointer __node_pointer; - -public: - typedef _Tp value_type; - typedef _Alloc allocator_type; - - typedef value_type& reference; - typedef const value_type& const_reference; - typedef typename allocator_traits::pointer pointer; - typedef typename allocator_traits::const_pointer const_pointer; - typedef typename allocator_traits::size_type size_type; - typedef typename allocator_traits::difference_type difference_type; - - typedef typename base::iterator iterator; - typedef typename base::const_iterator const_iterator; - - _LIBCPP_INLINE_VISIBILITY - forward_list() - _NOEXCEPT_(is_nothrow_default_constructible<__node_allocator>::value) - {} // = default; - explicit forward_list(const allocator_type& __a); - explicit forward_list(size_type __n); -#if _LIBCPP_STD_VER > 11 - explicit forward_list(size_type __n, const allocator_type& __a); -#endif - forward_list(size_type __n, const value_type& __v); - forward_list(size_type __n, const value_type& __v, const allocator_type& __a); - template - forward_list(_InputIterator __f, _InputIterator __l, - typename enable_if< - __is_input_iterator<_InputIterator>::value - >::type* = nullptr); - template - forward_list(_InputIterator __f, _InputIterator __l, - const allocator_type& __a, - typename enable_if< - __is_input_iterator<_InputIterator>::value - >::type* = nullptr); - forward_list(const forward_list& __x); - forward_list(const forward_list& __x, const allocator_type& __a); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - forward_list(forward_list&& __x) - _NOEXCEPT_(is_nothrow_move_constructible::value) - : base(_VSTD::move(__x)) {} - forward_list(forward_list&& __x, const allocator_type& __a); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - forward_list(initializer_list __il); - forward_list(initializer_list __il, const allocator_type& __a); -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - - // ~forward_list() = default; - - forward_list& operator=(const forward_list& __x); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - forward_list& operator=(forward_list&& __x) - _NOEXCEPT_( - __node_traits::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable::value); -#endif -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - forward_list& operator=(initializer_list __il); -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - - template - typename enable_if - < - __is_input_iterator<_InputIterator>::value, - void - >::type - assign(_InputIterator __f, _InputIterator __l); - void assign(size_type __n, const value_type& __v); -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - void assign(initializer_list __il); -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - - _LIBCPP_INLINE_VISIBILITY - allocator_type get_allocator() const _NOEXCEPT - {return allocator_type(base::__alloc());} - - _LIBCPP_INLINE_VISIBILITY - iterator begin() _NOEXCEPT - {return iterator(base::__before_begin()->__next_);} - _LIBCPP_INLINE_VISIBILITY - const_iterator begin() const _NOEXCEPT - {return const_iterator(base::__before_begin()->__next_);} - _LIBCPP_INLINE_VISIBILITY - iterator end() _NOEXCEPT - {return iterator(nullptr);} - _LIBCPP_INLINE_VISIBILITY - const_iterator end() const _NOEXCEPT - {return const_iterator(nullptr);} - - _LIBCPP_INLINE_VISIBILITY - const_iterator cbegin() const _NOEXCEPT - {return const_iterator(base::__before_begin()->__next_);} - _LIBCPP_INLINE_VISIBILITY - const_iterator cend() const _NOEXCEPT - {return const_iterator(nullptr);} - - _LIBCPP_INLINE_VISIBILITY - iterator before_begin() _NOEXCEPT - {return iterator(base::__before_begin());} - _LIBCPP_INLINE_VISIBILITY - const_iterator before_begin() const _NOEXCEPT - {return const_iterator(base::__before_begin());} - _LIBCPP_INLINE_VISIBILITY - const_iterator cbefore_begin() const _NOEXCEPT - {return const_iterator(base::__before_begin());} - - _LIBCPP_INLINE_VISIBILITY - bool empty() const _NOEXCEPT - {return base::__before_begin()->__next_ == nullptr;} - _LIBCPP_INLINE_VISIBILITY - size_type max_size() const _NOEXCEPT - {return numeric_limits::max();} - - _LIBCPP_INLINE_VISIBILITY - reference front() {return base::__before_begin()->__next_->__value_;} - _LIBCPP_INLINE_VISIBILITY - const_reference front() const {return base::__before_begin()->__next_->__value_;} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -#ifndef _LIBCPP_HAS_NO_VARIADICS - template void emplace_front(_Args&&... __args); -#endif - void push_front(value_type&& __v); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - void push_front(const value_type& __v); - - void pop_front(); - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -#ifndef _LIBCPP_HAS_NO_VARIADICS - template - iterator emplace_after(const_iterator __p, _Args&&... __args); -#endif // _LIBCPP_HAS_NO_VARIADICS - iterator insert_after(const_iterator __p, value_type&& __v); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - iterator insert_after(const_iterator __p, const value_type& __v); - iterator insert_after(const_iterator __p, size_type __n, const value_type& __v); - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if - < - __is_input_iterator<_InputIterator>::value, - iterator - >::type - insert_after(const_iterator __p, _InputIterator __f, _InputIterator __l); -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - iterator insert_after(const_iterator __p, initializer_list __il) - {return insert_after(__p, __il.begin(), __il.end());} -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - - iterator erase_after(const_iterator __p); - iterator erase_after(const_iterator __f, const_iterator __l); - - _LIBCPP_INLINE_VISIBILITY - void swap(forward_list& __x) -#if _LIBCPP_STD_VER >= 14 - _NOEXCEPT -#else - _NOEXCEPT_(!__node_traits::propagate_on_container_swap::value || - __is_nothrow_swappable<__node_allocator>::value) -#endif - {base::swap(__x);} - - void resize(size_type __n); - void resize(size_type __n, const value_type& __v); - _LIBCPP_INLINE_VISIBILITY - void clear() _NOEXCEPT {base::clear();} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - void splice_after(const_iterator __p, forward_list&& __x); - _LIBCPP_INLINE_VISIBILITY - void splice_after(const_iterator __p, forward_list&& __x, const_iterator __i); - _LIBCPP_INLINE_VISIBILITY - void splice_after(const_iterator __p, forward_list&& __x, - const_iterator __f, const_iterator __l); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - void splice_after(const_iterator __p, forward_list& __x); - void splice_after(const_iterator __p, forward_list& __x, const_iterator __i); - void splice_after(const_iterator __p, forward_list& __x, - const_iterator __f, const_iterator __l); - void remove(const value_type& __v); - template void remove_if(_Predicate __pred); - _LIBCPP_INLINE_VISIBILITY - void unique() {unique(__equal_to());} - template void unique(_BinaryPredicate __binary_pred); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - void merge(forward_list&& __x) {merge(__x, __less());} - template - _LIBCPP_INLINE_VISIBILITY - void merge(forward_list&& __x, _Compare __comp) - {merge(__x, _VSTD::move(__comp));} -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - void merge(forward_list& __x) {merge(__x, __less());} - template void merge(forward_list& __x, _Compare __comp); - _LIBCPP_INLINE_VISIBILITY - void sort() {sort(__less());} - template void sort(_Compare __comp); - void reverse() _NOEXCEPT; - -private: - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - void __move_assign(forward_list& __x, true_type) - _NOEXCEPT_(is_nothrow_move_assignable::value); - void __move_assign(forward_list& __x, false_type); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - template - static - __node_pointer - __merge(__node_pointer __f1, __node_pointer __f2, _Compare& __comp); - - template - static - __node_pointer - __sort(__node_pointer __f, difference_type __sz, _Compare& __comp); -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -forward_list<_Tp, _Alloc>::forward_list(const allocator_type& __a) - : base(__a) -{ -} - -template -forward_list<_Tp, _Alloc>::forward_list(size_type __n) -{ - if (__n > 0) - { - __node_allocator& __a = base::__alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __h(nullptr, _Dp(__a, 1)); - for (__node_pointer __p = base::__before_begin(); __n > 0; --__n, - __p = __p->__next_) - { - __h.reset(__node_traits::allocate(__a, 1)); - __node_traits::construct(__a, _VSTD::addressof(__h->__value_)); - __h->__next_ = nullptr; - __p->__next_ = __h.release(); - } - } -} - -#if _LIBCPP_STD_VER > 11 -template -forward_list<_Tp, _Alloc>::forward_list(size_type __n, const allocator_type& __a) - : base ( __a ) -{ - if (__n > 0) - { - __node_allocator& __a = base::__alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __h(nullptr, _Dp(__a, 1)); - for (__node_pointer __p = base::__before_begin(); __n > 0; --__n, - __p = __p->__next_) - { - __h.reset(__node_traits::allocate(__a, 1)); - __node_traits::construct(__a, _VSTD::addressof(__h->__value_)); - __h->__next_ = nullptr; - __p->__next_ = __h.release(); - } - } -} -#endif - -template -forward_list<_Tp, _Alloc>::forward_list(size_type __n, const value_type& __v) -{ - insert_after(cbefore_begin(), __n, __v); -} - -template -forward_list<_Tp, _Alloc>::forward_list(size_type __n, const value_type& __v, - const allocator_type& __a) - : base(__a) -{ - insert_after(cbefore_begin(), __n, __v); -} - -template -template -forward_list<_Tp, _Alloc>::forward_list(_InputIterator __f, _InputIterator __l, - typename enable_if< - __is_input_iterator<_InputIterator>::value - >::type*) -{ - insert_after(cbefore_begin(), __f, __l); -} - -template -template -forward_list<_Tp, _Alloc>::forward_list(_InputIterator __f, _InputIterator __l, - const allocator_type& __a, - typename enable_if< - __is_input_iterator<_InputIterator>::value - >::type*) - : base(__a) -{ - insert_after(cbefore_begin(), __f, __l); -} - -template -forward_list<_Tp, _Alloc>::forward_list(const forward_list& __x) - : base(allocator_type( - __node_traits::select_on_container_copy_construction(__x.__alloc()) - ) - ) -{ - insert_after(cbefore_begin(), __x.begin(), __x.end()); -} - -template -forward_list<_Tp, _Alloc>::forward_list(const forward_list& __x, - const allocator_type& __a) - : base(__a) -{ - insert_after(cbefore_begin(), __x.begin(), __x.end()); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -forward_list<_Tp, _Alloc>::forward_list(forward_list&& __x, - const allocator_type& __a) - : base(_VSTD::move(__x), __a) -{ - if (base::__alloc() != __x.__alloc()) - { - typedef move_iterator _Ip; - insert_after(cbefore_begin(), _Ip(__x.begin()), _Ip(__x.end())); - } -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -template -forward_list<_Tp, _Alloc>::forward_list(initializer_list __il) -{ - insert_after(cbefore_begin(), __il.begin(), __il.end()); -} - -template -forward_list<_Tp, _Alloc>::forward_list(initializer_list __il, - const allocator_type& __a) - : base(__a) -{ - insert_after(cbefore_begin(), __il.begin(), __il.end()); -} - -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -template -forward_list<_Tp, _Alloc>& -forward_list<_Tp, _Alloc>::operator=(const forward_list& __x) -{ - if (this != &__x) - { - base::__copy_assign_alloc(__x); - assign(__x.begin(), __x.end()); - } - return *this; -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -forward_list<_Tp, _Alloc>::__move_assign(forward_list& __x, true_type) - _NOEXCEPT_(is_nothrow_move_assignable::value) -{ - clear(); - base::__move_assign_alloc(__x); - base::__before_begin()->__next_ = __x.__before_begin()->__next_; - __x.__before_begin()->__next_ = nullptr; -} - -template -void -forward_list<_Tp, _Alloc>::__move_assign(forward_list& __x, false_type) -{ - if (base::__alloc() == __x.__alloc()) - __move_assign(__x, true_type()); - else - { - typedef move_iterator _Ip; - assign(_Ip(__x.begin()), _Ip(__x.end())); - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -forward_list<_Tp, _Alloc>& -forward_list<_Tp, _Alloc>::operator=(forward_list&& __x) - _NOEXCEPT_( - __node_traits::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable::value) -{ - __move_assign(__x, integral_constant()); - return *this; -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -template -inline _LIBCPP_INLINE_VISIBILITY -forward_list<_Tp, _Alloc>& -forward_list<_Tp, _Alloc>::operator=(initializer_list __il) -{ - assign(__il.begin(), __il.end()); - return *this; -} - -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -template -template -typename enable_if -< - __is_input_iterator<_InputIterator>::value, - void ->::type -forward_list<_Tp, _Alloc>::assign(_InputIterator __f, _InputIterator __l) -{ - iterator __i = before_begin(); - iterator __j = _VSTD::next(__i); - iterator __e = end(); - for (; __j != __e && __f != __l; ++__i, (void) ++__j, ++__f) - *__j = *__f; - if (__j == __e) - insert_after(__i, __f, __l); - else - erase_after(__i, __e); -} - -template -void -forward_list<_Tp, _Alloc>::assign(size_type __n, const value_type& __v) -{ - iterator __i = before_begin(); - iterator __j = _VSTD::next(__i); - iterator __e = end(); - for (; __j != __e && __n > 0; --__n, ++__i, ++__j) - *__j = __v; - if (__j == __e) - insert_after(__i, __n, __v); - else - erase_after(__i, __e); -} - -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -template -inline _LIBCPP_INLINE_VISIBILITY -void -forward_list<_Tp, _Alloc>::assign(initializer_list __il) -{ - assign(__il.begin(), __il.end()); -} - -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -#ifndef _LIBCPP_HAS_NO_VARIADICS - -template -template -void -forward_list<_Tp, _Alloc>::emplace_front(_Args&&... __args) -{ - __node_allocator& __a = base::__alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1)); - __node_traits::construct(__a, _VSTD::addressof(__h->__value_), - _VSTD::forward<_Args>(__args)...); - __h->__next_ = base::__before_begin()->__next_; - base::__before_begin()->__next_ = __h.release(); -} - -#endif // _LIBCPP_HAS_NO_VARIADICS - -template -void -forward_list<_Tp, _Alloc>::push_front(value_type&& __v) -{ - __node_allocator& __a = base::__alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1)); - __node_traits::construct(__a, _VSTD::addressof(__h->__value_), _VSTD::move(__v)); - __h->__next_ = base::__before_begin()->__next_; - base::__before_begin()->__next_ = __h.release(); -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -forward_list<_Tp, _Alloc>::push_front(const value_type& __v) -{ - __node_allocator& __a = base::__alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1)); - __node_traits::construct(__a, _VSTD::addressof(__h->__value_), __v); - __h->__next_ = base::__before_begin()->__next_; - base::__before_begin()->__next_ = __h.release(); -} - -template -void -forward_list<_Tp, _Alloc>::pop_front() -{ - __node_allocator& __a = base::__alloc(); - __node_pointer __p = base::__before_begin()->__next_; - base::__before_begin()->__next_ = __p->__next_; - __node_traits::destroy(__a, _VSTD::addressof(__p->__value_)); - __node_traits::deallocate(__a, __p, 1); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -#ifndef _LIBCPP_HAS_NO_VARIADICS - -template -template -typename forward_list<_Tp, _Alloc>::iterator -forward_list<_Tp, _Alloc>::emplace_after(const_iterator __p, _Args&&... __args) -{ - __node_pointer const __r = __p.__ptr_; - __node_allocator& __a = base::__alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1)); - __node_traits::construct(__a, _VSTD::addressof(__h->__value_), - _VSTD::forward<_Args>(__args)...); - __h->__next_ = __r->__next_; - __r->__next_ = __h.release(); - return iterator(__r->__next_); -} - -#endif // _LIBCPP_HAS_NO_VARIADICS - -template -typename forward_list<_Tp, _Alloc>::iterator -forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, value_type&& __v) -{ - __node_pointer const __r = __p.__ptr_; - __node_allocator& __a = base::__alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1)); - __node_traits::construct(__a, _VSTD::addressof(__h->__value_), _VSTD::move(__v)); - __h->__next_ = __r->__next_; - __r->__next_ = __h.release(); - return iterator(__r->__next_); -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -typename forward_list<_Tp, _Alloc>::iterator -forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, const value_type& __v) -{ - __node_pointer const __r = __p.__ptr_; - __node_allocator& __a = base::__alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1)); - __node_traits::construct(__a, _VSTD::addressof(__h->__value_), __v); - __h->__next_ = __r->__next_; - __r->__next_ = __h.release(); - return iterator(__r->__next_); -} - -template -typename forward_list<_Tp, _Alloc>::iterator -forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, size_type __n, - const value_type& __v) -{ - __node_pointer __r = __p.__ptr_; - if (__n > 0) - { - __node_allocator& __a = base::__alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1)); - __node_traits::construct(__a, _VSTD::addressof(__h->__value_), __v); - __node_pointer __first = __h.release(); - __node_pointer __last = __first; -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - for (--__n; __n != 0; --__n, __last = __last->__next_) - { - __h.reset(__node_traits::allocate(__a, 1)); - __node_traits::construct(__a, _VSTD::addressof(__h->__value_), __v); - __last->__next_ = __h.release(); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - while (__first != nullptr) - { - __node_pointer __next = __first->__next_; - __node_traits::destroy(__a, _VSTD::addressof(__first->__value_)); - __node_traits::deallocate(__a, __first, 1); - __first = __next; - } - throw; - } -#endif // _LIBCPP_NO_EXCEPTIONS - __last->__next_ = __r->__next_; - __r->__next_ = __first; - __r = __last; - } - return iterator(__r); -} - -template -template -typename enable_if -< - __is_input_iterator<_InputIterator>::value, - typename forward_list<_Tp, _Alloc>::iterator ->::type -forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, - _InputIterator __f, _InputIterator __l) -{ - __node_pointer __r = __p.__ptr_; - if (__f != __l) - { - __node_allocator& __a = base::__alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1)); - __node_traits::construct(__a, _VSTD::addressof(__h->__value_), *__f); - __node_pointer __first = __h.release(); - __node_pointer __last = __first; -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - for (++__f; __f != __l; ++__f, ((void)(__last = __last->__next_))) - { - __h.reset(__node_traits::allocate(__a, 1)); - __node_traits::construct(__a, _VSTD::addressof(__h->__value_), *__f); - __last->__next_ = __h.release(); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - while (__first != nullptr) - { - __node_pointer __next = __first->__next_; - __node_traits::destroy(__a, _VSTD::addressof(__first->__value_)); - __node_traits::deallocate(__a, __first, 1); - __first = __next; - } - throw; - } -#endif // _LIBCPP_NO_EXCEPTIONS - __last->__next_ = __r->__next_; - __r->__next_ = __first; - __r = __last; - } - return iterator(__r); -} - -template -typename forward_list<_Tp, _Alloc>::iterator -forward_list<_Tp, _Alloc>::erase_after(const_iterator __f) -{ - __node_pointer __p = __f.__ptr_; - __node_pointer __n = __p->__next_; - __p->__next_ = __n->__next_; - __node_allocator& __a = base::__alloc(); - __node_traits::destroy(__a, _VSTD::addressof(__n->__value_)); - __node_traits::deallocate(__a, __n, 1); - return iterator(__p->__next_); -} - -template -typename forward_list<_Tp, _Alloc>::iterator -forward_list<_Tp, _Alloc>::erase_after(const_iterator __f, const_iterator __l) -{ - __node_pointer __e = __l.__ptr_; - if (__f != __l) - { - __node_pointer __p = __f.__ptr_; - __node_pointer __n = __p->__next_; - if (__n != __e) - { - __p->__next_ = __e; - __node_allocator& __a = base::__alloc(); - do - { - __p = __n->__next_; - __node_traits::destroy(__a, _VSTD::addressof(__n->__value_)); - __node_traits::deallocate(__a, __n, 1); - __n = __p; - } while (__n != __e); - } - } - return iterator(__e); -} - -template -void -forward_list<_Tp, _Alloc>::resize(size_type __n) -{ - size_type __sz = 0; - iterator __p = before_begin(); - iterator __i = begin(); - iterator __e = end(); - for (; __i != __e && __sz < __n; ++__p, ++__i, ++__sz) - ; - if (__i != __e) - erase_after(__p, __e); - else - { - __n -= __sz; - if (__n > 0) - { - __node_allocator& __a = base::__alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __h(nullptr, _Dp(__a, 1)); - for (__node_pointer __ptr = __p.__ptr_; __n > 0; --__n, - __ptr = __ptr->__next_) - { - __h.reset(__node_traits::allocate(__a, 1)); - __node_traits::construct(__a, _VSTD::addressof(__h->__value_)); - __h->__next_ = nullptr; - __ptr->__next_ = __h.release(); - } - } - } -} - -template -void -forward_list<_Tp, _Alloc>::resize(size_type __n, const value_type& __v) -{ - size_type __sz = 0; - iterator __p = before_begin(); - iterator __i = begin(); - iterator __e = end(); - for (; __i != __e && __sz < __n; ++__p, ++__i, ++__sz) - ; - if (__i != __e) - erase_after(__p, __e); - else - { - __n -= __sz; - if (__n > 0) - { - __node_allocator& __a = base::__alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __h(nullptr, _Dp(__a, 1)); - for (__node_pointer __ptr = __p.__ptr_; __n > 0; --__n, - __ptr = __ptr->__next_) - { - __h.reset(__node_traits::allocate(__a, 1)); - __node_traits::construct(__a, _VSTD::addressof(__h->__value_), __v); - __h->__next_ = nullptr; - __ptr->__next_ = __h.release(); - } - } - } -} - -template -void -forward_list<_Tp, _Alloc>::splice_after(const_iterator __p, - forward_list& __x) -{ - if (!__x.empty()) - { - if (__p.__ptr_->__next_ != nullptr) - { - const_iterator __lm1 = __x.before_begin(); - while (__lm1.__ptr_->__next_ != nullptr) - ++__lm1; - __lm1.__ptr_->__next_ = __p.__ptr_->__next_; - } - __p.__ptr_->__next_ = __x.__before_begin()->__next_; - __x.__before_begin()->__next_ = nullptr; - } -} - -template -void -forward_list<_Tp, _Alloc>::splice_after(const_iterator __p, - forward_list& __x, - const_iterator __i) -{ - const_iterator __lm1 = _VSTD::next(__i); - if (__p != __i && __p != __lm1) - { - __i.__ptr_->__next_ = __lm1.__ptr_->__next_; - __lm1.__ptr_->__next_ = __p.__ptr_->__next_; - __p.__ptr_->__next_ = __lm1.__ptr_; - } -} - -template -void -forward_list<_Tp, _Alloc>::splice_after(const_iterator __p, - forward_list& __x, - const_iterator __f, const_iterator __l) -{ - if (__f != __l && __p != __f) - { - const_iterator __lm1 = __f; - while (__lm1.__ptr_->__next_ != __l.__ptr_) - ++__lm1; - if (__f != __lm1) - { - __lm1.__ptr_->__next_ = __p.__ptr_->__next_; - __p.__ptr_->__next_ = __f.__ptr_->__next_; - __f.__ptr_->__next_ = __l.__ptr_; - } - } -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline _LIBCPP_INLINE_VISIBILITY -void -forward_list<_Tp, _Alloc>::splice_after(const_iterator __p, - forward_list&& __x) -{ - splice_after(__p, __x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -forward_list<_Tp, _Alloc>::splice_after(const_iterator __p, - forward_list&& __x, - const_iterator __i) -{ - splice_after(__p, __x, __i); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -forward_list<_Tp, _Alloc>::splice_after(const_iterator __p, - forward_list&& __x, - const_iterator __f, const_iterator __l) -{ - splice_after(__p, __x, __f, __l); -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -forward_list<_Tp, _Alloc>::remove(const value_type& __v) -{ - forward_list<_Tp, _Alloc> __deleted_nodes; // collect the nodes we're removing - iterator __e = end(); - for (iterator __i = before_begin(); __i.__ptr_->__next_ != nullptr;) - { - if (__i.__ptr_->__next_->__value_ == __v) - { - iterator __j = _VSTD::next(__i, 2); - for (; __j != __e && *__j == __v; ++__j) - ; - __deleted_nodes.splice_after(__deleted_nodes.before_begin(), *this, __i, __j); - if (__j == __e) - break; - __i = __j; - } - else - ++__i; - } -} - -template -template -void -forward_list<_Tp, _Alloc>::remove_if(_Predicate __pred) -{ - iterator __e = end(); - for (iterator __i = before_begin(); __i.__ptr_->__next_ != nullptr;) - { - if (__pred(__i.__ptr_->__next_->__value_)) - { - iterator __j = _VSTD::next(__i, 2); - for (; __j != __e && __pred(*__j); ++__j) - ; - erase_after(__i, __j); - if (__j == __e) - break; - __i = __j; - } - else - ++__i; - } -} - -template -template -void -forward_list<_Tp, _Alloc>::unique(_BinaryPredicate __binary_pred) -{ - for (iterator __i = begin(), __e = end(); __i != __e;) - { - iterator __j = _VSTD::next(__i); - for (; __j != __e && __binary_pred(*__i, *__j); ++__j) - ; - if (__i.__ptr_->__next_ != __j.__ptr_) - erase_after(__i, __j); - __i = __j; - } -} - -template -template -void -forward_list<_Tp, _Alloc>::merge(forward_list& __x, _Compare __comp) -{ - if (this != &__x) - { - base::__before_begin()->__next_ = __merge(base::__before_begin()->__next_, - __x.__before_begin()->__next_, - __comp); - __x.__before_begin()->__next_ = nullptr; - } -} - -template -template -typename forward_list<_Tp, _Alloc>::__node_pointer -forward_list<_Tp, _Alloc>::__merge(__node_pointer __f1, __node_pointer __f2, - _Compare& __comp) -{ - if (__f1 == nullptr) - return __f2; - if (__f2 == nullptr) - return __f1; - __node_pointer __r; - if (__comp(__f2->__value_, __f1->__value_)) - { - __node_pointer __t = __f2; - while (__t->__next_ != nullptr && - __comp(__t->__next_->__value_, __f1->__value_)) - __t = __t->__next_; - __r = __f2; - __f2 = __t->__next_; - __t->__next_ = __f1; - } - else - __r = __f1; - __node_pointer __p = __f1; - __f1 = __f1->__next_; - while (__f1 != nullptr && __f2 != nullptr) - { - if (__comp(__f2->__value_, __f1->__value_)) - { - __node_pointer __t = __f2; - while (__t->__next_ != nullptr && - __comp(__t->__next_->__value_, __f1->__value_)) - __t = __t->__next_; - __p->__next_ = __f2; - __f2 = __t->__next_; - __t->__next_ = __f1; - } - __p = __f1; - __f1 = __f1->__next_; - } - if (__f2 != nullptr) - __p->__next_ = __f2; - return __r; -} - -template -template -inline _LIBCPP_INLINE_VISIBILITY -void -forward_list<_Tp, _Alloc>::sort(_Compare __comp) -{ - base::__before_begin()->__next_ = __sort(base::__before_begin()->__next_, - _VSTD::distance(begin(), end()), __comp); -} - -template -template -typename forward_list<_Tp, _Alloc>::__node_pointer -forward_list<_Tp, _Alloc>::__sort(__node_pointer __f1, difference_type __sz, - _Compare& __comp) -{ - switch (__sz) - { - case 0: - case 1: - return __f1; - case 2: - if (__comp(__f1->__next_->__value_, __f1->__value_)) - { - __node_pointer __t = __f1->__next_; - __t->__next_ = __f1; - __f1->__next_ = nullptr; - __f1 = __t; - } - return __f1; - } - difference_type __sz1 = __sz / 2; - difference_type __sz2 = __sz - __sz1; - __node_pointer __t = _VSTD::next(iterator(__f1), __sz1 - 1).__ptr_; - __node_pointer __f2 = __t->__next_; - __t->__next_ = nullptr; - return __merge(__sort(__f1, __sz1, __comp), - __sort(__f2, __sz2, __comp), __comp); -} - -template -void -forward_list<_Tp, _Alloc>::reverse() _NOEXCEPT -{ - __node_pointer __p = base::__before_begin()->__next_; - if (__p != nullptr) - { - __node_pointer __f = __p->__next_; - __p->__next_ = nullptr; - while (__f != nullptr) - { - __node_pointer __t = __f->__next_; - __f->__next_ = __p; - __p = __f; - __f = __t; - } - base::__before_begin()->__next_ = __p; - } -} - -template -bool operator==(const forward_list<_Tp, _Alloc>& __x, - const forward_list<_Tp, _Alloc>& __y) -{ - typedef forward_list<_Tp, _Alloc> _Cp; - typedef typename _Cp::const_iterator _Ip; - _Ip __ix = __x.begin(); - _Ip __ex = __x.end(); - _Ip __iy = __y.begin(); - _Ip __ey = __y.end(); - for (; __ix != __ex && __iy != __ey; ++__ix, ++__iy) - if (!(*__ix == *__iy)) - return false; - return (__ix == __ex) == (__iy == __ey); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool operator!=(const forward_list<_Tp, _Alloc>& __x, - const forward_list<_Tp, _Alloc>& __y) -{ - return !(__x == __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool operator< (const forward_list<_Tp, _Alloc>& __x, - const forward_list<_Tp, _Alloc>& __y) -{ - return _VSTD::lexicographical_compare(__x.begin(), __x.end(), - __y.begin(), __y.end()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool operator> (const forward_list<_Tp, _Alloc>& __x, - const forward_list<_Tp, _Alloc>& __y) -{ - return __y < __x; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool operator>=(const forward_list<_Tp, _Alloc>& __x, - const forward_list<_Tp, _Alloc>& __y) -{ - return !(__x < __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool operator<=(const forward_list<_Tp, _Alloc>& __x, - const forward_list<_Tp, _Alloc>& __y) -{ - return !(__y < __x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(forward_list<_Tp, _Alloc>& __x, forward_list<_Tp, _Alloc>& __y) - _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) -{ - __x.swap(__y); -} - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_FORWARD_LIST diff --git a/headers/libs/libc++/fstream b/headers/libs/libc++/fstream deleted file mode 100644 index 1f289eddc5..0000000000 --- a/headers/libs/libc++/fstream +++ /dev/null @@ -1,1457 +0,0 @@ -// -*- C++ -*- -//===------------------------- fstream ------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_FSTREAM -#define _LIBCPP_FSTREAM - -/* - fstream synopsis - -template > -class basic_filebuf - : public basic_streambuf -{ -public: - typedef charT char_type; - typedef traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - // 27.9.1.2 Constructors/destructor: - basic_filebuf(); - basic_filebuf(basic_filebuf&& rhs); - virtual ~basic_filebuf(); - - // 27.9.1.3 Assign/swap: - basic_filebuf& operator=(basic_filebuf&& rhs); - void swap(basic_filebuf& rhs); - - // 27.9.1.4 Members: - bool is_open() const; - basic_filebuf* open(const char* s, ios_base::openmode mode); - basic_filebuf* open(const string& s, ios_base::openmode mode); - basic_filebuf* close(); - -protected: - // 27.9.1.5 Overridden virtual functions: - virtual streamsize showmanyc(); - virtual int_type underflow(); - virtual int_type uflow(); - virtual int_type pbackfail(int_type c = traits_type::eof()); - virtual int_type overflow (int_type c = traits_type::eof()); - virtual basic_streambuf* setbuf(char_type* s, streamsize n); - virtual pos_type seekoff(off_type off, ios_base::seekdir way, - ios_base::openmode which = ios_base::in | ios_base::out); - virtual pos_type seekpos(pos_type sp, - ios_base::openmode which = ios_base::in | ios_base::out); - virtual int sync(); - virtual void imbue(const locale& loc); -}; - -template - void - swap(basic_filebuf& x, basic_filebuf& y); - -typedef basic_filebuf filebuf; -typedef basic_filebuf wfilebuf; - -template > -class basic_ifstream - : public basic_istream -{ -public: - typedef charT char_type; - typedef traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - basic_ifstream(); - explicit basic_ifstream(const char* s, ios_base::openmode mode = ios_base::in); - explicit basic_ifstream(const string& s, ios_base::openmode mode = ios_base::in); - basic_ifstream(basic_ifstream&& rhs); - - basic_ifstream& operator=(basic_ifstream&& rhs); - void swap(basic_ifstream& rhs); - - basic_filebuf* rdbuf() const; - bool is_open() const; - void open(const char* s, ios_base::openmode mode = ios_base::in); - void open(const string& s, ios_base::openmode mode = ios_base::in); - void close(); -}; - -template - void - swap(basic_ifstream& x, basic_ifstream& y); - -typedef basic_ifstream ifstream; -typedef basic_ifstream wifstream; - -template > -class basic_ofstream - : public basic_ostream -{ -public: - typedef charT char_type; - typedef traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - basic_ofstream(); - explicit basic_ofstream(const char* s, ios_base::openmode mode = ios_base::out); - explicit basic_ofstream(const string& s, ios_base::openmode mode = ios_base::out); - basic_ofstream(basic_ofstream&& rhs); - - basic_ofstream& operator=(basic_ofstream&& rhs); - void swap(basic_ofstream& rhs); - - basic_filebuf* rdbuf() const; - bool is_open() const; - void open(const char* s, ios_base::openmode mode = ios_base::out); - void open(const string& s, ios_base::openmode mode = ios_base::out); - void close(); -}; - -template - void - swap(basic_ofstream& x, basic_ofstream& y); - -typedef basic_ofstream ofstream; -typedef basic_ofstream wofstream; - -template > -class basic_fstream - : public basic_iostream -{ -public: - typedef charT char_type; - typedef traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - basic_fstream(); - explicit basic_fstream(const char* s, ios_base::openmode mode = ios_base::in|ios_base::out); - explicit basic_fstream(const string& s, ios_base::openmode mode = ios_base::in|ios_base::out); - basic_fstream(basic_fstream&& rhs); - - basic_fstream& operator=(basic_fstream&& rhs); - void swap(basic_fstream& rhs); - - basic_filebuf* rdbuf() const; - bool is_open() const; - void open(const char* s, ios_base::openmode mode = ios_base::in|ios_base::out); - void open(const string& s, ios_base::openmode mode = ios_base::in|ios_base::out); - void close(); -}; - -template - void swap(basic_fstream& x, basic_fstream& y); - -typedef basic_fstream fstream; -typedef basic_fstream wfstream; - -} // std - -*/ - -#include <__config> -#include -#include -#include <__locale> -#include - -#include <__undef_min_max> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -template -class _LIBCPP_TYPE_VIS_ONLY basic_filebuf - : public basic_streambuf<_CharT, _Traits> -{ -public: - typedef _CharT char_type; - typedef _Traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - typedef typename traits_type::state_type state_type; - - // 27.9.1.2 Constructors/destructor: - basic_filebuf(); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - basic_filebuf(basic_filebuf&& __rhs); -#endif - virtual ~basic_filebuf(); - - // 27.9.1.3 Assign/swap: -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - basic_filebuf& operator=(basic_filebuf&& __rhs); -#endif - void swap(basic_filebuf& __rhs); - - // 27.9.1.4 Members: - bool is_open() const; -#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE - basic_filebuf* open(const char* __s, ios_base::openmode __mode); - basic_filebuf* open(const string& __s, ios_base::openmode __mode); -#endif - basic_filebuf* close(); - -protected: - // 27.9.1.5 Overridden virtual functions: - virtual int_type underflow(); - virtual int_type pbackfail(int_type __c = traits_type::eof()); - virtual int_type overflow (int_type __c = traits_type::eof()); - virtual basic_streambuf* setbuf(char_type* __s, streamsize __n); - virtual pos_type seekoff(off_type __off, ios_base::seekdir __way, - ios_base::openmode __wch = ios_base::in | ios_base::out); - virtual pos_type seekpos(pos_type __sp, - ios_base::openmode __wch = ios_base::in | ios_base::out); - virtual int sync(); - virtual void imbue(const locale& __loc); - -private: - char* __extbuf_; - const char* __extbufnext_; - const char* __extbufend_; - char __extbuf_min_[8]; - size_t __ebs_; - char_type* __intbuf_; - size_t __ibs_; - FILE* __file_; - const codecvt* __cv_; - state_type __st_; - state_type __st_last_; - ios_base::openmode __om_; - ios_base::openmode __cm_; - bool __owns_eb_; - bool __owns_ib_; - bool __always_noconv_; - - bool __read_mode(); - void __write_mode(); -}; - -template -basic_filebuf<_CharT, _Traits>::basic_filebuf() - : __extbuf_(0), - __extbufnext_(0), - __extbufend_(0), - __ebs_(0), - __intbuf_(0), - __ibs_(0), - __file_(0), - __cv_(nullptr), - __st_(), - __st_last_(), - __om_(0), - __cm_(0), - __owns_eb_(false), - __owns_ib_(false), - __always_noconv_(false) -{ - if (has_facet >(this->getloc())) - { - __cv_ = &use_facet >(this->getloc()); - __always_noconv_ = __cv_->always_noconv(); - } - setbuf(0, 4096); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -basic_filebuf<_CharT, _Traits>::basic_filebuf(basic_filebuf&& __rhs) - : basic_streambuf<_CharT, _Traits>(__rhs) -{ - if (__rhs.__extbuf_ == __rhs.__extbuf_min_) - { - __extbuf_ = __extbuf_min_; - __extbufnext_ = __extbuf_ + (__rhs.__extbufnext_ - __rhs.__extbuf_); - __extbufend_ = __extbuf_ + (__rhs.__extbufend_ - __rhs.__extbuf_); - } - else - { - __extbuf_ = __rhs.__extbuf_; - __extbufnext_ = __rhs.__extbufnext_; - __extbufend_ = __rhs.__extbufend_; - } - __ebs_ = __rhs.__ebs_; - __intbuf_ = __rhs.__intbuf_; - __ibs_ = __rhs.__ibs_; - __file_ = __rhs.__file_; - __cv_ = __rhs.__cv_; - __st_ = __rhs.__st_; - __st_last_ = __rhs.__st_last_; - __om_ = __rhs.__om_; - __cm_ = __rhs.__cm_; - __owns_eb_ = __rhs.__owns_eb_; - __owns_ib_ = __rhs.__owns_ib_; - __always_noconv_ = __rhs.__always_noconv_; - if (__rhs.pbase()) - { - if (__rhs.pbase() == __rhs.__intbuf_) - this->setp(__intbuf_, __intbuf_ + (__rhs. epptr() - __rhs.pbase())); - else - this->setp((char_type*)__extbuf_, - (char_type*)__extbuf_ + (__rhs. epptr() - __rhs.pbase())); - this->pbump(__rhs. pptr() - __rhs.pbase()); - } - else if (__rhs.eback()) - { - if (__rhs.eback() == __rhs.__intbuf_) - this->setg(__intbuf_, __intbuf_ + (__rhs.gptr() - __rhs.eback()), - __intbuf_ + (__rhs.egptr() - __rhs.eback())); - else - this->setg((char_type*)__extbuf_, - (char_type*)__extbuf_ + (__rhs.gptr() - __rhs.eback()), - (char_type*)__extbuf_ + (__rhs.egptr() - __rhs.eback())); - } - __rhs.__extbuf_ = 0; - __rhs.__extbufnext_ = 0; - __rhs.__extbufend_ = 0; - __rhs.__ebs_ = 0; - __rhs.__intbuf_ = 0; - __rhs.__ibs_ = 0; - __rhs.__file_ = 0; - __rhs.__st_ = state_type(); - __rhs.__st_last_ = state_type(); - __rhs.__om_ = 0; - __rhs.__cm_ = 0; - __rhs.__owns_eb_ = false; - __rhs.__owns_ib_ = false; - __rhs.setg(0, 0, 0); - __rhs.setp(0, 0); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_filebuf<_CharT, _Traits>& -basic_filebuf<_CharT, _Traits>::operator=(basic_filebuf&& __rhs) -{ - close(); - swap(__rhs); - return *this; -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -basic_filebuf<_CharT, _Traits>::~basic_filebuf() -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - close(); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - } -#endif // _LIBCPP_NO_EXCEPTIONS - if (__owns_eb_) - delete [] __extbuf_; - if (__owns_ib_) - delete [] __intbuf_; -} - -template -void -basic_filebuf<_CharT, _Traits>::swap(basic_filebuf& __rhs) -{ - basic_streambuf::swap(__rhs); - if (__extbuf_ != __extbuf_min_ && __rhs.__extbuf_ != __rhs.__extbuf_min_) - { - _VSTD::swap(__extbuf_, __rhs.__extbuf_); - _VSTD::swap(__extbufnext_, __rhs.__extbufnext_); - _VSTD::swap(__extbufend_, __rhs.__extbufend_); - } - else - { - ptrdiff_t __ln = __extbufnext_ - __extbuf_; - ptrdiff_t __le = __extbufend_ - __extbuf_; - ptrdiff_t __rn = __rhs.__extbufnext_ - __rhs.__extbuf_; - ptrdiff_t __re = __rhs.__extbufend_ - __rhs.__extbuf_; - if (__extbuf_ == __extbuf_min_ && __rhs.__extbuf_ != __rhs.__extbuf_min_) - { - __extbuf_ = __rhs.__extbuf_; - __rhs.__extbuf_ = __rhs.__extbuf_min_; - } - else if (__extbuf_ != __extbuf_min_ && __rhs.__extbuf_ == __rhs.__extbuf_min_) - { - __rhs.__extbuf_ = __extbuf_; - __extbuf_ = __extbuf_min_; - } - __extbufnext_ = __extbuf_ + __rn; - __extbufend_ = __extbuf_ + __re; - __rhs.__extbufnext_ = __rhs.__extbuf_ + __ln; - __rhs.__extbufend_ = __rhs.__extbuf_ + __le; - } - _VSTD::swap(__ebs_, __rhs.__ebs_); - _VSTD::swap(__intbuf_, __rhs.__intbuf_); - _VSTD::swap(__ibs_, __rhs.__ibs_); - _VSTD::swap(__file_, __rhs.__file_); - _VSTD::swap(__cv_, __rhs.__cv_); - _VSTD::swap(__st_, __rhs.__st_); - _VSTD::swap(__st_last_, __rhs.__st_last_); - _VSTD::swap(__om_, __rhs.__om_); - _VSTD::swap(__cm_, __rhs.__cm_); - _VSTD::swap(__owns_eb_, __rhs.__owns_eb_); - _VSTD::swap(__owns_ib_, __rhs.__owns_ib_); - _VSTD::swap(__always_noconv_, __rhs.__always_noconv_); - if (this->eback() == (char_type*)__rhs.__extbuf_min_) - { - ptrdiff_t __n = this->gptr() - this->eback(); - ptrdiff_t __e = this->egptr() - this->eback(); - this->setg((char_type*)__extbuf_min_, - (char_type*)__extbuf_min_ + __n, - (char_type*)__extbuf_min_ + __e); - } - else if (this->pbase() == (char_type*)__rhs.__extbuf_min_) - { - ptrdiff_t __n = this->pptr() - this->pbase(); - ptrdiff_t __e = this->epptr() - this->pbase(); - this->setp((char_type*)__extbuf_min_, - (char_type*)__extbuf_min_ + __e); - this->pbump(__n); - } - if (__rhs.eback() == (char_type*)__extbuf_min_) - { - ptrdiff_t __n = __rhs.gptr() - __rhs.eback(); - ptrdiff_t __e = __rhs.egptr() - __rhs.eback(); - __rhs.setg((char_type*)__rhs.__extbuf_min_, - (char_type*)__rhs.__extbuf_min_ + __n, - (char_type*)__rhs.__extbuf_min_ + __e); - } - else if (__rhs.pbase() == (char_type*)__extbuf_min_) - { - ptrdiff_t __n = __rhs.pptr() - __rhs.pbase(); - ptrdiff_t __e = __rhs.epptr() - __rhs.pbase(); - __rhs.setp((char_type*)__rhs.__extbuf_min_, - (char_type*)__rhs.__extbuf_min_ + __e); - __rhs.pbump(__n); - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(basic_filebuf<_CharT, _Traits>& __x, basic_filebuf<_CharT, _Traits>& __y) -{ - __x.swap(__y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -basic_filebuf<_CharT, _Traits>::is_open() const -{ - return __file_ != 0; -} - -#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE -template -basic_filebuf<_CharT, _Traits>* -basic_filebuf<_CharT, _Traits>::open(const char* __s, ios_base::openmode __mode) -{ - basic_filebuf<_CharT, _Traits>* __rt = 0; - if (__file_ == 0) - { - __rt = this; - const char* __mdstr; - switch (__mode & ~ios_base::ate) - { - case ios_base::out: - case ios_base::out | ios_base::trunc: - __mdstr = "w"; - break; - case ios_base::out | ios_base::app: - case ios_base::app: - __mdstr = "a"; - break; - case ios_base::in: - __mdstr = "r"; - break; - case ios_base::in | ios_base::out: - __mdstr = "r+"; - break; - case ios_base::in | ios_base::out | ios_base::trunc: - __mdstr = "w+"; - break; - case ios_base::in | ios_base::out | ios_base::app: - case ios_base::in | ios_base::app: - __mdstr = "a+"; - break; - case ios_base::out | ios_base::binary: - case ios_base::out | ios_base::trunc | ios_base::binary: - __mdstr = "wb"; - break; - case ios_base::out | ios_base::app | ios_base::binary: - case ios_base::app | ios_base::binary: - __mdstr = "ab"; - break; - case ios_base::in | ios_base::binary: - __mdstr = "rb"; - break; - case ios_base::in | ios_base::out | ios_base::binary: - __mdstr = "r+b"; - break; - case ios_base::in | ios_base::out | ios_base::trunc | ios_base::binary: - __mdstr = "w+b"; - break; - case ios_base::in | ios_base::out | ios_base::app | ios_base::binary: - case ios_base::in | ios_base::app | ios_base::binary: - __mdstr = "a+b"; - break; - default: - __rt = 0; - break; - } - if (__rt) - { - __file_ = fopen(__s, __mdstr); - if (__file_) - { - __om_ = __mode; - if (__mode & ios_base::ate) - { - if (fseek(__file_, 0, SEEK_END)) - { - fclose(__file_); - __file_ = 0; - __rt = 0; - } - } - } - else - __rt = 0; - } - } - return __rt; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_filebuf<_CharT, _Traits>* -basic_filebuf<_CharT, _Traits>::open(const string& __s, ios_base::openmode __mode) -{ - return open(__s.c_str(), __mode); -} -#endif - -template -basic_filebuf<_CharT, _Traits>* -basic_filebuf<_CharT, _Traits>::close() -{ - basic_filebuf<_CharT, _Traits>* __rt = 0; - if (__file_) - { - __rt = this; - unique_ptr __h(__file_, fclose); - if (sync()) - __rt = 0; - if (fclose(__h.release()) == 0) - __file_ = 0; - else - __rt = 0; - } - return __rt; -} - -template -typename basic_filebuf<_CharT, _Traits>::int_type -basic_filebuf<_CharT, _Traits>::underflow() -{ - if (__file_ == 0) - return traits_type::eof(); - bool __initial = __read_mode(); - char_type __1buf; - if (this->gptr() == 0) - this->setg(&__1buf, &__1buf+1, &__1buf+1); - const size_t __unget_sz = __initial ? 0 : min((this->egptr() - this->eback()) / 2, 4); - int_type __c = traits_type::eof(); - if (this->gptr() == this->egptr()) - { - memmove(this->eback(), this->egptr() - __unget_sz, __unget_sz * sizeof(char_type)); - if (__always_noconv_) - { - size_t __nmemb = static_cast(this->egptr() - this->eback() - __unget_sz); - __nmemb = fread(this->eback() + __unget_sz, 1, __nmemb, __file_); - if (__nmemb != 0) - { - this->setg(this->eback(), - this->eback() + __unget_sz, - this->eback() + __unget_sz + __nmemb); - __c = traits_type::to_int_type(*this->gptr()); - } - } - else - { - memmove(__extbuf_, __extbufnext_, __extbufend_ - __extbufnext_); - __extbufnext_ = __extbuf_ + (__extbufend_ - __extbufnext_); - __extbufend_ = __extbuf_ + (__extbuf_ == __extbuf_min_ ? sizeof(__extbuf_min_) : __ebs_); - size_t __nmemb = _VSTD::min(static_cast(__ibs_ - __unget_sz), - static_cast(__extbufend_ - __extbufnext_)); - codecvt_base::result __r; - __st_last_ = __st_; - size_t __nr = fread((void*)__extbufnext_, 1, __nmemb, __file_); - if (__nr != 0) - { -#ifndef _LIBCPP_NO_EXCEPTIONS - if (!__cv_) - throw bad_cast(); -#endif - __extbufend_ = __extbufnext_ + __nr; - char_type* __inext; - __r = __cv_->in(__st_, __extbuf_, __extbufend_, __extbufnext_, - this->eback() + __unget_sz, - this->eback() + __ibs_, __inext); - if (__r == codecvt_base::noconv) - { - this->setg((char_type*)__extbuf_, (char_type*)__extbuf_, (char_type*)__extbufend_); - __c = traits_type::to_int_type(*this->gptr()); - } - else if (__inext != this->eback() + __unget_sz) - { - this->setg(this->eback(), this->eback() + __unget_sz, __inext); - __c = traits_type::to_int_type(*this->gptr()); - } - } - } - } - else - __c = traits_type::to_int_type(*this->gptr()); - if (this->eback() == &__1buf) - this->setg(0, 0, 0); - return __c; -} - -template -typename basic_filebuf<_CharT, _Traits>::int_type -basic_filebuf<_CharT, _Traits>::pbackfail(int_type __c) -{ - if (__file_ && this->eback() < this->gptr()) - { - if (traits_type::eq_int_type(__c, traits_type::eof())) - { - this->gbump(-1); - return traits_type::not_eof(__c); - } - if ((__om_ & ios_base::out) || - traits_type::eq(traits_type::to_char_type(__c), this->gptr()[-1])) - { - this->gbump(-1); - *this->gptr() = traits_type::to_char_type(__c); - return __c; - } - } - return traits_type::eof(); -} - -template -typename basic_filebuf<_CharT, _Traits>::int_type -basic_filebuf<_CharT, _Traits>::overflow(int_type __c) -{ - if (__file_ == 0) - return traits_type::eof(); - __write_mode(); - char_type __1buf; - char_type* __pb_save = this->pbase(); - char_type* __epb_save = this->epptr(); - if (!traits_type::eq_int_type(__c, traits_type::eof())) - { - if (this->pptr() == 0) - this->setp(&__1buf, &__1buf+1); - *this->pptr() = traits_type::to_char_type(__c); - this->pbump(1); - } - if (this->pptr() != this->pbase()) - { - if (__always_noconv_) - { - size_t __nmemb = static_cast(this->pptr() - this->pbase()); - if (fwrite(this->pbase(), sizeof(char_type), __nmemb, __file_) != __nmemb) - return traits_type::eof(); - } - else - { - char* __extbe = __extbuf_; - codecvt_base::result __r; - do - { -#ifndef _LIBCPP_NO_EXCEPTIONS - if (!__cv_) - throw bad_cast(); -#endif - const char_type* __e; - __r = __cv_->out(__st_, this->pbase(), this->pptr(), __e, - __extbuf_, __extbuf_ + __ebs_, __extbe); - if (__e == this->pbase()) - return traits_type::eof(); - if (__r == codecvt_base::noconv) - { - size_t __nmemb = static_cast(this->pptr() - this->pbase()); - if (fwrite(this->pbase(), 1, __nmemb, __file_) != __nmemb) - return traits_type::eof(); - } - else if (__r == codecvt_base::ok || __r == codecvt_base::partial) - { - size_t __nmemb = static_cast(__extbe - __extbuf_); - if (fwrite(__extbuf_, 1, __nmemb, __file_) != __nmemb) - return traits_type::eof(); - if (__r == codecvt_base::partial) - { - this->setp((char_type*)__e, this->pptr()); - this->pbump(this->epptr() - this->pbase()); - } - } - else - return traits_type::eof(); - } while (__r == codecvt_base::partial); - } - this->setp(__pb_save, __epb_save); - } - return traits_type::not_eof(__c); -} - -template -basic_streambuf<_CharT, _Traits>* -basic_filebuf<_CharT, _Traits>::setbuf(char_type* __s, streamsize __n) -{ - this->setg(0, 0, 0); - this->setp(0, 0); - if (__owns_eb_) - delete [] __extbuf_; - if (__owns_ib_) - delete [] __intbuf_; - __ebs_ = __n; - if (__ebs_ > sizeof(__extbuf_min_)) - { - if (__always_noconv_ && __s) - { - __extbuf_ = (char*)__s; - __owns_eb_ = false; - } - else - { - __extbuf_ = new char[__ebs_]; - __owns_eb_ = true; - } - } - else - { - __extbuf_ = __extbuf_min_; - __ebs_ = sizeof(__extbuf_min_); - __owns_eb_ = false; - } - if (!__always_noconv_) - { - __ibs_ = max(__n, sizeof(__extbuf_min_)); - if (__s && __ibs_ >= sizeof(__extbuf_min_)) - { - __intbuf_ = __s; - __owns_ib_ = false; - } - else - { - __intbuf_ = new char_type[__ibs_]; - __owns_ib_ = true; - } - } - else - { - __ibs_ = 0; - __intbuf_ = 0; - __owns_ib_ = false; - } - return this; -} - -template -typename basic_filebuf<_CharT, _Traits>::pos_type -basic_filebuf<_CharT, _Traits>::seekoff(off_type __off, ios_base::seekdir __way, - ios_base::openmode) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - if (!__cv_) - throw bad_cast(); -#endif - int __width = __cv_->encoding(); - if (__file_ == 0 || (__width <= 0 && __off != 0) || sync()) - return pos_type(off_type(-1)); - // __width > 0 || __off == 0 - int __whence; - switch (__way) - { - case ios_base::beg: - __whence = SEEK_SET; - break; - case ios_base::cur: - __whence = SEEK_CUR; - break; - case ios_base::end: - __whence = SEEK_END; - break; - default: - return pos_type(off_type(-1)); - } -#if defined(_WIN32) || defined(_NEWLIB_VERSION) - if (fseek(__file_, __width > 0 ? __width * __off : 0, __whence)) - return pos_type(off_type(-1)); - pos_type __r = ftell(__file_); -#else - if (fseeko(__file_, __width > 0 ? __width * __off : 0, __whence)) - return pos_type(off_type(-1)); - pos_type __r = ftello(__file_); -#endif - __r.state(__st_); - return __r; -} - -template -typename basic_filebuf<_CharT, _Traits>::pos_type -basic_filebuf<_CharT, _Traits>::seekpos(pos_type __sp, ios_base::openmode) -{ - if (__file_ == 0 || sync()) - return pos_type(off_type(-1)); -#if defined(_WIN32) || defined(_NEWLIB_VERSION) - if (fseek(__file_, __sp, SEEK_SET)) - return pos_type(off_type(-1)); -#else - if (fseeko(__file_, __sp, SEEK_SET)) - return pos_type(off_type(-1)); -#endif - __st_ = __sp.state(); - return __sp; -} - -template -int -basic_filebuf<_CharT, _Traits>::sync() -{ - if (__file_ == 0) - return 0; -#ifndef _LIBCPP_NO_EXCEPTIONS - if (!__cv_) - throw bad_cast(); -#endif - if (__cm_ & ios_base::out) - { - if (this->pptr() != this->pbase()) - if (overflow() == traits_type::eof()) - return -1; - codecvt_base::result __r; - do - { - char* __extbe; - __r = __cv_->unshift(__st_, __extbuf_, __extbuf_ + __ebs_, __extbe); - size_t __nmemb = static_cast(__extbe - __extbuf_); - if (fwrite(__extbuf_, 1, __nmemb, __file_) != __nmemb) - return -1; - } while (__r == codecvt_base::partial); - if (__r == codecvt_base::error) - return -1; - if (fflush(__file_)) - return -1; - } - else if (__cm_ & ios_base::in) - { - off_type __c; - state_type __state = __st_last_; - bool __update_st = false; - if (__always_noconv_) - __c = this->egptr() - this->gptr(); - else - { - int __width = __cv_->encoding(); - __c = __extbufend_ - __extbufnext_; - if (__width > 0) - __c += __width * (this->egptr() - this->gptr()); - else - { - if (this->gptr() != this->egptr()) - { - const int __off = __cv_->length(__state, __extbuf_, - __extbufnext_, - this->gptr() - this->eback()); - __c += __extbufnext_ - __extbuf_ - __off; - __update_st = true; - } - } - } -#if defined(_WIN32) || defined(_NEWLIB_VERSION) - if (fseek(__file_, -__c, SEEK_CUR)) - return -1; -#else - if (fseeko(__file_, -__c, SEEK_CUR)) - return -1; -#endif - if (__update_st) - __st_ = __state; - __extbufnext_ = __extbufend_ = __extbuf_; - this->setg(0, 0, 0); - __cm_ = 0; - } - return 0; -} - -template -void -basic_filebuf<_CharT, _Traits>::imbue(const locale& __loc) -{ - sync(); - __cv_ = &use_facet >(__loc); - bool __old_anc = __always_noconv_; - __always_noconv_ = __cv_->always_noconv(); - if (__old_anc != __always_noconv_) - { - this->setg(0, 0, 0); - this->setp(0, 0); - // invariant, char_type is char, else we couldn't get here - if (__always_noconv_) // need to dump __intbuf_ - { - if (__owns_eb_) - delete [] __extbuf_; - __owns_eb_ = __owns_ib_; - __ebs_ = __ibs_; - __extbuf_ = (char*)__intbuf_; - __ibs_ = 0; - __intbuf_ = 0; - __owns_ib_ = false; - } - else // need to obtain an __intbuf_. - { // If __extbuf_ is user-supplied, use it, else new __intbuf_ - if (!__owns_eb_ && __extbuf_ != __extbuf_min_) - { - __ibs_ = __ebs_; - __intbuf_ = (char_type*)__extbuf_; - __owns_ib_ = false; - __extbuf_ = new char[__ebs_]; - __owns_eb_ = true; - } - else - { - __ibs_ = __ebs_; - __intbuf_ = new char_type[__ibs_]; - __owns_ib_ = true; - } - } - } -} - -template -bool -basic_filebuf<_CharT, _Traits>::__read_mode() -{ - if (!(__cm_ & ios_base::in)) - { - this->setp(0, 0); - if (__always_noconv_) - this->setg((char_type*)__extbuf_, - (char_type*)__extbuf_ + __ebs_, - (char_type*)__extbuf_ + __ebs_); - else - this->setg(__intbuf_, __intbuf_ + __ibs_, __intbuf_ + __ibs_); - __cm_ = ios_base::in; - return true; - } - return false; -} - -template -void -basic_filebuf<_CharT, _Traits>::__write_mode() -{ - if (!(__cm_ & ios_base::out)) - { - this->setg(0, 0, 0); - if (__ebs_ > sizeof(__extbuf_min_)) - { - if (__always_noconv_) - this->setp((char_type*)__extbuf_, - (char_type*)__extbuf_ + (__ebs_ - 1)); - else - this->setp(__intbuf_, __intbuf_ + (__ibs_ - 1)); - } - else - this->setp(0, 0); - __cm_ = ios_base::out; - } -} - -// basic_ifstream - -template -class _LIBCPP_TYPE_VIS_ONLY basic_ifstream - : public basic_istream<_CharT, _Traits> -{ -public: - typedef _CharT char_type; - typedef _Traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - basic_ifstream(); -#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE - explicit basic_ifstream(const char* __s, ios_base::openmode __mode = ios_base::in); - explicit basic_ifstream(const string& __s, ios_base::openmode __mode = ios_base::in); -#endif -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - basic_ifstream(basic_ifstream&& __rhs); -#endif - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - basic_ifstream& operator=(basic_ifstream&& __rhs); -#endif - void swap(basic_ifstream& __rhs); - - basic_filebuf* rdbuf() const; - bool is_open() const; -#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE - void open(const char* __s, ios_base::openmode __mode = ios_base::in); - void open(const string& __s, ios_base::openmode __mode = ios_base::in); -#endif - void close(); - -private: - basic_filebuf __sb_; -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_ifstream<_CharT, _Traits>::basic_ifstream() - : basic_istream(&__sb_) -{ -} - -#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE -template -inline _LIBCPP_INLINE_VISIBILITY -basic_ifstream<_CharT, _Traits>::basic_ifstream(const char* __s, ios_base::openmode __mode) - : basic_istream(&__sb_) -{ - if (__sb_.open(__s, __mode | ios_base::in) == 0) - this->setstate(ios_base::failbit); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_ifstream<_CharT, _Traits>::basic_ifstream(const string& __s, ios_base::openmode __mode) - : basic_istream(&__sb_) -{ - if (__sb_.open(__s, __mode | ios_base::in) == 0) - this->setstate(ios_base::failbit); -} -#endif - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_ifstream<_CharT, _Traits>::basic_ifstream(basic_ifstream&& __rhs) - : basic_istream(_VSTD::move(__rhs)), - __sb_(_VSTD::move(__rhs.__sb_)) -{ - this->set_rdbuf(&__sb_); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_ifstream<_CharT, _Traits>& -basic_ifstream<_CharT, _Traits>::operator=(basic_ifstream&& __rhs) -{ - basic_istream::operator=(_VSTD::move(__rhs)); - __sb_ = _VSTD::move(__rhs.__sb_); - return *this; -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline _LIBCPP_INLINE_VISIBILITY -void -basic_ifstream<_CharT, _Traits>::swap(basic_ifstream& __rhs) -{ - basic_istream::swap(__rhs); - __sb_.swap(__rhs.__sb_); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(basic_ifstream<_CharT, _Traits>& __x, basic_ifstream<_CharT, _Traits>& __y) -{ - __x.swap(__y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_filebuf<_CharT, _Traits>* -basic_ifstream<_CharT, _Traits>::rdbuf() const -{ - return const_cast*>(&__sb_); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -basic_ifstream<_CharT, _Traits>::is_open() const -{ - return __sb_.is_open(); -} - -#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE -template -void -basic_ifstream<_CharT, _Traits>::open(const char* __s, ios_base::openmode __mode) -{ - if (__sb_.open(__s, __mode | ios_base::in)) - this->clear(); - else - this->setstate(ios_base::failbit); -} - -template -void -basic_ifstream<_CharT, _Traits>::open(const string& __s, ios_base::openmode __mode) -{ - if (__sb_.open(__s, __mode | ios_base::in)) - this->clear(); - else - this->setstate(ios_base::failbit); -} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -void -basic_ifstream<_CharT, _Traits>::close() -{ - if (__sb_.close() == 0) - this->setstate(ios_base::failbit); -} - -// basic_ofstream - -template -class _LIBCPP_TYPE_VIS_ONLY basic_ofstream - : public basic_ostream<_CharT, _Traits> -{ -public: - typedef _CharT char_type; - typedef _Traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - basic_ofstream(); - explicit basic_ofstream(const char* __s, ios_base::openmode __mode = ios_base::out); - explicit basic_ofstream(const string& __s, ios_base::openmode __mode = ios_base::out); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - basic_ofstream(basic_ofstream&& __rhs); -#endif - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - basic_ofstream& operator=(basic_ofstream&& __rhs); -#endif - void swap(basic_ofstream& __rhs); - - basic_filebuf* rdbuf() const; - bool is_open() const; -#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE - void open(const char* __s, ios_base::openmode __mode = ios_base::out); - void open(const string& __s, ios_base::openmode __mode = ios_base::out); -#endif - void close(); - -private: - basic_filebuf __sb_; -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_ofstream<_CharT, _Traits>::basic_ofstream() - : basic_ostream(&__sb_) -{ -} - -#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE -template -inline _LIBCPP_INLINE_VISIBILITY -basic_ofstream<_CharT, _Traits>::basic_ofstream(const char* __s, ios_base::openmode __mode) - : basic_ostream(&__sb_) -{ - if (__sb_.open(__s, __mode | ios_base::out) == 0) - this->setstate(ios_base::failbit); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_ofstream<_CharT, _Traits>::basic_ofstream(const string& __s, ios_base::openmode __mode) - : basic_ostream(&__sb_) -{ - if (__sb_.open(__s, __mode | ios_base::out) == 0) - this->setstate(ios_base::failbit); -} -#endif - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_ofstream<_CharT, _Traits>::basic_ofstream(basic_ofstream&& __rhs) - : basic_ostream(_VSTD::move(__rhs)), - __sb_(_VSTD::move(__rhs.__sb_)) -{ - this->set_rdbuf(&__sb_); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_ofstream<_CharT, _Traits>& -basic_ofstream<_CharT, _Traits>::operator=(basic_ofstream&& __rhs) -{ - basic_ostream::operator=(_VSTD::move(__rhs)); - __sb_ = _VSTD::move(__rhs.__sb_); - return *this; -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline _LIBCPP_INLINE_VISIBILITY -void -basic_ofstream<_CharT, _Traits>::swap(basic_ofstream& __rhs) -{ - basic_ostream::swap(__rhs); - __sb_.swap(__rhs.__sb_); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(basic_ofstream<_CharT, _Traits>& __x, basic_ofstream<_CharT, _Traits>& __y) -{ - __x.swap(__y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_filebuf<_CharT, _Traits>* -basic_ofstream<_CharT, _Traits>::rdbuf() const -{ - return const_cast*>(&__sb_); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -basic_ofstream<_CharT, _Traits>::is_open() const -{ - return __sb_.is_open(); -} - -#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE -template -void -basic_ofstream<_CharT, _Traits>::open(const char* __s, ios_base::openmode __mode) -{ - if (__sb_.open(__s, __mode | ios_base::out)) - this->clear(); - else - this->setstate(ios_base::failbit); -} - -template -void -basic_ofstream<_CharT, _Traits>::open(const string& __s, ios_base::openmode __mode) -{ - if (__sb_.open(__s, __mode | ios_base::out)) - this->clear(); - else - this->setstate(ios_base::failbit); -} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -void -basic_ofstream<_CharT, _Traits>::close() -{ - if (__sb_.close() == 0) - this->setstate(ios_base::failbit); -} - -// basic_fstream - -template -class _LIBCPP_TYPE_VIS_ONLY basic_fstream - : public basic_iostream<_CharT, _Traits> -{ -public: - typedef _CharT char_type; - typedef _Traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - basic_fstream(); -#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE - explicit basic_fstream(const char* __s, ios_base::openmode __mode = ios_base::in | ios_base::out); - explicit basic_fstream(const string& __s, ios_base::openmode __mode = ios_base::in | ios_base::out); -#endif -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - basic_fstream(basic_fstream&& __rhs); -#endif - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - basic_fstream& operator=(basic_fstream&& __rhs); -#endif - void swap(basic_fstream& __rhs); - - basic_filebuf* rdbuf() const; - bool is_open() const; -#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE - void open(const char* __s, ios_base::openmode __mode = ios_base::in | ios_base::out); - void open(const string& __s, ios_base::openmode __mode = ios_base::in | ios_base::out); -#endif - void close(); - -private: - basic_filebuf __sb_; -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_fstream<_CharT, _Traits>::basic_fstream() - : basic_iostream(&__sb_) -{ -} - -#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE -template -inline _LIBCPP_INLINE_VISIBILITY -basic_fstream<_CharT, _Traits>::basic_fstream(const char* __s, ios_base::openmode __mode) - : basic_iostream(&__sb_) -{ - if (__sb_.open(__s, __mode) == 0) - this->setstate(ios_base::failbit); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_fstream<_CharT, _Traits>::basic_fstream(const string& __s, ios_base::openmode __mode) - : basic_iostream(&__sb_) -{ - if (__sb_.open(__s, __mode) == 0) - this->setstate(ios_base::failbit); -} -#endif - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_fstream<_CharT, _Traits>::basic_fstream(basic_fstream&& __rhs) - : basic_iostream(_VSTD::move(__rhs)), - __sb_(_VSTD::move(__rhs.__sb_)) -{ - this->set_rdbuf(&__sb_); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_fstream<_CharT, _Traits>& -basic_fstream<_CharT, _Traits>::operator=(basic_fstream&& __rhs) -{ - basic_iostream::operator=(_VSTD::move(__rhs)); - __sb_ = _VSTD::move(__rhs.__sb_); - return *this; -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline _LIBCPP_INLINE_VISIBILITY -void -basic_fstream<_CharT, _Traits>::swap(basic_fstream& __rhs) -{ - basic_iostream::swap(__rhs); - __sb_.swap(__rhs.__sb_); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(basic_fstream<_CharT, _Traits>& __x, basic_fstream<_CharT, _Traits>& __y) -{ - __x.swap(__y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_filebuf<_CharT, _Traits>* -basic_fstream<_CharT, _Traits>::rdbuf() const -{ - return const_cast*>(&__sb_); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -basic_fstream<_CharT, _Traits>::is_open() const -{ - return __sb_.is_open(); -} - -#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE -template -void -basic_fstream<_CharT, _Traits>::open(const char* __s, ios_base::openmode __mode) -{ - if (__sb_.open(__s, __mode)) - this->clear(); - else - this->setstate(ios_base::failbit); -} - -template -void -basic_fstream<_CharT, _Traits>::open(const string& __s, ios_base::openmode __mode) -{ - if (__sb_.open(__s, __mode)) - this->clear(); - else - this->setstate(ios_base::failbit); -} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -void -basic_fstream<_CharT, _Traits>::close() -{ - if (__sb_.close() == 0) - this->setstate(ios_base::failbit); -} - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_FSTREAM diff --git a/headers/libs/libc++/functional b/headers/libs/libc++/functional deleted file mode 100644 index dbe9b01bbd..0000000000 --- a/headers/libs/libc++/functional +++ /dev/null @@ -1,2578 +0,0 @@ -// -*- C++ -*- -//===------------------------ functional ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_FUNCTIONAL -#define _LIBCPP_FUNCTIONAL - -/* - functional synopsis - -namespace std -{ - -template -struct unary_function -{ - typedef Arg argument_type; - typedef Result result_type; -}; - -template -struct binary_function -{ - typedef Arg1 first_argument_type; - typedef Arg2 second_argument_type; - typedef Result result_type; -}; - -template -class reference_wrapper - : public unary_function // if wrapping a unary functor - : public binary_function // if wraping a binary functor -{ -public: - // types - typedef T type; - typedef see below result_type; // Not always defined - - // construct/copy/destroy - reference_wrapper(T&) noexcept; - reference_wrapper(T&&) = delete; // do not bind to temps - reference_wrapper(const reference_wrapper& x) noexcept; - - // assignment - reference_wrapper& operator=(const reference_wrapper& x) noexcept; - - // access - operator T& () const noexcept; - T& get() const noexcept; - - // invoke - template - typename result_of::type - operator() (ArgTypes&&...) const; -}; - -template reference_wrapper ref(T& t) noexcept; -template void ref(const T&& t) = delete; -template reference_wrapper ref(reference_wrappert) noexcept; - -template reference_wrapper cref(const T& t) noexcept; -template void cref(const T&& t) = delete; -template reference_wrapper cref(reference_wrapper t) noexcept; - -template // in C++14 -struct plus : binary_function -{ - T operator()(const T& x, const T& y) const; -}; - -template // in C++14 -struct minus : binary_function -{ - T operator()(const T& x, const T& y) const; -}; - -template // in C++14 -struct multiplies : binary_function -{ - T operator()(const T& x, const T& y) const; -}; - -template // in C++14 -struct divides : binary_function -{ - T operator()(const T& x, const T& y) const; -}; - -template // in C++14 -struct modulus : binary_function -{ - T operator()(const T& x, const T& y) const; -}; - -template // in C++14 -struct negate : unary_function -{ - T operator()(const T& x) const; -}; - -template // in C++14 -struct equal_to : binary_function -{ - bool operator()(const T& x, const T& y) const; -}; - -template // in C++14 -struct not_equal_to : binary_function -{ - bool operator()(const T& x, const T& y) const; -}; - -template // in C++14 -struct greater : binary_function -{ - bool operator()(const T& x, const T& y) const; -}; - -template // in C++14 -struct less : binary_function -{ - bool operator()(const T& x, const T& y) const; -}; - -template // in C++14 -struct greater_equal : binary_function -{ - bool operator()(const T& x, const T& y) const; -}; - -template // in C++14 -struct less_equal : binary_function -{ - bool operator()(const T& x, const T& y) const; -}; - -template // in C++14 -struct logical_and : binary_function -{ - bool operator()(const T& x, const T& y) const; -}; - -template // in C++14 -struct logical_or : binary_function -{ - bool operator()(const T& x, const T& y) const; -}; - -template // in C++14 -struct logical_not : unary_function -{ - bool operator()(const T& x) const; -}; - -template // in C++14 -struct bit_and : unary_function -{ - bool operator()(const T& x, const T& y) const; -}; - -template // in C++14 -struct bit_or : unary_function -{ - bool operator()(const T& x, const T& y) const; -}; - -template // in C++14 -struct bit_xor : unary_function -{ - bool operator()(const T& x, const T& y) const; -}; - -template // C++14 -struct bit_xor : unary_function -{ - bool operator()(const T& x) const; -}; - -template -class unary_negate - : public unary_function -{ -public: - explicit unary_negate(const Predicate& pred); - bool operator()(const typename Predicate::argument_type& x) const; -}; - -template unary_negate not1(const Predicate& pred); - -template -class binary_negate - : public binary_function -{ -public: - explicit binary_negate(const Predicate& pred); - bool operator()(const typename Predicate::first_argument_type& x, - const typename Predicate::second_argument_type& y) const; -}; - -template binary_negate not2(const Predicate& pred); - -template struct is_bind_expression; -template struct is_placeholder; - -template - unspecified bind(Fn&&, BoundArgs&&...); -template - unspecified bind(Fn&&, BoundArgs&&...); - -namespace placeholders { - // M is the implementation-defined number of placeholders - extern unspecified _1; - extern unspecified _2; - . - . - . - extern unspecified _Mp; -} - -template -class binder1st - : public unary_function -{ -protected: - Operation op; - typename Operation::first_argument_type value; -public: - binder1st(const Operation& x, const typename Operation::first_argument_type y); - typename Operation::result_type operator()( typename Operation::second_argument_type& x) const; - typename Operation::result_type operator()(const typename Operation::second_argument_type& x) const; -}; - -template -binder1st bind1st(const Operation& op, const T& x); - -template -class binder2nd - : public unary_function -{ -protected: - Operation op; - typename Operation::second_argument_type value; -public: - binder2nd(const Operation& x, const typename Operation::second_argument_type y); - typename Operation::result_type operator()( typename Operation::first_argument_type& x) const; - typename Operation::result_type operator()(const typename Operation::first_argument_type& x) const; -}; - -template -binder2nd bind2nd(const Operation& op, const T& x); - -template -class pointer_to_unary_function : public unary_function -{ -public: - explicit pointer_to_unary_function(Result (*f)(Arg)); - Result operator()(Arg x) const; -}; - -template -pointer_to_unary_function ptr_fun(Result (*f)(Arg)); - -template -class pointer_to_binary_function : public binary_function -{ -public: - explicit pointer_to_binary_function(Result (*f)(Arg1, Arg2)); - Result operator()(Arg1 x, Arg2 y) const; -}; - -template -pointer_to_binary_function ptr_fun(Result (*f)(Arg1,Arg2)); - -template -class mem_fun_t : public unary_function -{ -public: - explicit mem_fun_t(S (T::*p)()); - S operator()(T* p) const; -}; - -template -class mem_fun1_t : public binary_function -{ -public: - explicit mem_fun1_t(S (T::*p)(A)); - S operator()(T* p, A x) const; -}; - -template mem_fun_t mem_fun(S (T::*f)()); -template mem_fun1_t mem_fun(S (T::*f)(A)); - -template -class mem_fun_ref_t : public unary_function -{ -public: - explicit mem_fun_ref_t(S (T::*p)()); - S operator()(T& p) const; -}; - -template -class mem_fun1_ref_t : public binary_function -{ -public: - explicit mem_fun1_ref_t(S (T::*p)(A)); - S operator()(T& p, A x) const; -}; - -template mem_fun_ref_t mem_fun_ref(S (T::*f)()); -template mem_fun1_ref_t mem_fun_ref(S (T::*f)(A)); - -template -class const_mem_fun_t : public unary_function -{ -public: - explicit const_mem_fun_t(S (T::*p)() const); - S operator()(const T* p) const; -}; - -template -class const_mem_fun1_t : public binary_function -{ -public: - explicit const_mem_fun1_t(S (T::*p)(A) const); - S operator()(const T* p, A x) const; -}; - -template const_mem_fun_t mem_fun(S (T::*f)() const); -template const_mem_fun1_t mem_fun(S (T::*f)(A) const); - -template -class const_mem_fun_ref_t : public unary_function -{ -public: - explicit const_mem_fun_ref_t(S (T::*p)() const); - S operator()(const T& p) const; -}; - -template -class const_mem_fun1_ref_t : public binary_function -{ -public: - explicit const_mem_fun1_ref_t(S (T::*p)(A) const); - S operator()(const T& p, A x) const; -}; - -template const_mem_fun_ref_t mem_fun_ref(S (T::*f)() const); -template const_mem_fun1_ref_t mem_fun_ref(S (T::*f)(A) const); - -template unspecified mem_fn(R T::*); - -class bad_function_call - : public exception -{ -}; - -template class function; // undefined - -template -class function - : public unary_function // iff sizeof...(ArgTypes) == 1 and - // ArgTypes contains T1 - : public binary_function // iff sizeof...(ArgTypes) == 2 and - // ArgTypes contains T1 and T2 -{ -public: - typedef R result_type; - - // construct/copy/destroy: - function() noexcept; - function(nullptr_t) noexcept; - function(const function&); - function(function&&) noexcept; - template - function(F); - template - function(allocator_arg_t, const Alloc&) noexcept; - template - function(allocator_arg_t, const Alloc&, nullptr_t) noexcept; - template - function(allocator_arg_t, const Alloc&, const function&); - template - function(allocator_arg_t, const Alloc&, function&&); - template - function(allocator_arg_t, const Alloc&, F); - - function& operator=(const function&); - function& operator=(function&&) noexcept; - function& operator=(nullptr_t) noexcept; - template - function& operator=(F&&); - template - function& operator=(reference_wrapper) noexcept; - - ~function(); - - // function modifiers: - void swap(function&) noexcept; - template - void assign(F&&, const Alloc&); - - // function capacity: - explicit operator bool() const noexcept; - - // function invocation: - R operator()(ArgTypes...) const; - - // function target access: - const std::type_info& target_type() const noexcept; - template T* target() noexcept; - template const T* target() const noexcept; -}; - -// Null pointer comparisons: -template - bool operator==(const function&, nullptr_t) noexcept; - -template - bool operator==(nullptr_t, const function&) noexcept; - -template - bool operator!=(const function&, nullptr_t) noexcept; - -template - bool operator!=(nullptr_t, const function&) noexcept; - -// specialized algorithms: -template - void swap(function&, function&) noexcept; - -template struct hash; - -template <> struct hash; -template <> struct hash; -template <> struct hash; -template <> struct hash; -template <> struct hash; -template <> struct hash; -template <> struct hash; -template <> struct hash; -template <> struct hash; -template <> struct hash; -template <> struct hash; -template <> struct hash; -template <> struct hash; -template <> struct hash; -template <> struct hash; - -template <> struct hash; -template <> struct hash; -template <> struct hash; - -template struct hash; - -} // std - -POLICY: For non-variadic implementations, the number of arguments is limited - to 3. It is hoped that the need for non-variadic implementations - will be minimal. - -*/ - -#include <__config> -#include -#include -#include -#include -#include - -#include <__functional_base> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY plus : binary_function<_Tp, _Tp, _Tp> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - _Tp operator()(const _Tp& __x, const _Tp& __y) const - {return __x + __y;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY plus -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_T1&& __t, _T2&& __u) const - _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) + _VSTD::forward<_T2>(__u))) - -> decltype (_VSTD::forward<_T1>(__t) + _VSTD::forward<_T2>(__u)) - { return _VSTD::forward<_T1>(__t) + _VSTD::forward<_T2>(__u); } - typedef void is_transparent; -}; -#endif - - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY minus : binary_function<_Tp, _Tp, _Tp> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - _Tp operator()(const _Tp& __x, const _Tp& __y) const - {return __x - __y;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY minus -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_T1&& __t, _T2&& __u) const - _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) - _VSTD::forward<_T2>(__u))) - -> decltype (_VSTD::forward<_T1>(__t) - _VSTD::forward<_T2>(__u)) - { return _VSTD::forward<_T1>(__t) - _VSTD::forward<_T2>(__u); } - typedef void is_transparent; -}; -#endif - - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY multiplies : binary_function<_Tp, _Tp, _Tp> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - _Tp operator()(const _Tp& __x, const _Tp& __y) const - {return __x * __y;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY multiplies -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_T1&& __t, _T2&& __u) const - _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) * _VSTD::forward<_T2>(__u))) - -> decltype (_VSTD::forward<_T1>(__t) * _VSTD::forward<_T2>(__u)) - { return _VSTD::forward<_T1>(__t) * _VSTD::forward<_T2>(__u); } - typedef void is_transparent; -}; -#endif - - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY divides : binary_function<_Tp, _Tp, _Tp> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - _Tp operator()(const _Tp& __x, const _Tp& __y) const - {return __x / __y;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY divides -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_T1&& __t, _T2&& __u) const - _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) / _VSTD::forward<_T2>(__u))) - -> decltype (_VSTD::forward<_T1>(__t) / _VSTD::forward<_T2>(__u)) - { return _VSTD::forward<_T1>(__t) / _VSTD::forward<_T2>(__u); } - typedef void is_transparent; -}; -#endif - - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY modulus : binary_function<_Tp, _Tp, _Tp> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - _Tp operator()(const _Tp& __x, const _Tp& __y) const - {return __x % __y;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY modulus -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_T1&& __t, _T2&& __u) const - _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) % _VSTD::forward<_T2>(__u))) - -> decltype (_VSTD::forward<_T1>(__t) % _VSTD::forward<_T2>(__u)) - { return _VSTD::forward<_T1>(__t) % _VSTD::forward<_T2>(__u); } - typedef void is_transparent; -}; -#endif - - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY negate : unary_function<_Tp, _Tp> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - _Tp operator()(const _Tp& __x) const - {return -__x;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY negate -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_Tp&& __x) const - _NOEXCEPT_(noexcept(- _VSTD::forward<_Tp>(__x))) - -> decltype (- _VSTD::forward<_Tp>(__x)) - { return - _VSTD::forward<_Tp>(__x); } - typedef void is_transparent; -}; -#endif - - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY equal_to : binary_function<_Tp, _Tp, bool> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator()(const _Tp& __x, const _Tp& __y) const - {return __x == __y;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY equal_to -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_T1&& __t, _T2&& __u) const - _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) == _VSTD::forward<_T2>(__u))) - -> decltype (_VSTD::forward<_T1>(__t) == _VSTD::forward<_T2>(__u)) - { return _VSTD::forward<_T1>(__t) == _VSTD::forward<_T2>(__u); } - typedef void is_transparent; -}; -#endif - - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY not_equal_to : binary_function<_Tp, _Tp, bool> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator()(const _Tp& __x, const _Tp& __y) const - {return __x != __y;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY not_equal_to -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_T1&& __t, _T2&& __u) const - _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) != _VSTD::forward<_T2>(__u))) - -> decltype (_VSTD::forward<_T1>(__t) != _VSTD::forward<_T2>(__u)) - { return _VSTD::forward<_T1>(__t) != _VSTD::forward<_T2>(__u); } - typedef void is_transparent; -}; -#endif - - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY greater : binary_function<_Tp, _Tp, bool> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator()(const _Tp& __x, const _Tp& __y) const - {return __x > __y;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY greater -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_T1&& __t, _T2&& __u) const - _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) > _VSTD::forward<_T2>(__u))) - -> decltype (_VSTD::forward<_T1>(__t) > _VSTD::forward<_T2>(__u)) - { return _VSTD::forward<_T1>(__t) > _VSTD::forward<_T2>(__u); } - typedef void is_transparent; -}; -#endif - - -// less in <__functional_base> - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY greater_equal : binary_function<_Tp, _Tp, bool> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator()(const _Tp& __x, const _Tp& __y) const - {return __x >= __y;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY greater_equal -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_T1&& __t, _T2&& __u) const - _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) >= _VSTD::forward<_T2>(__u))) - -> decltype (_VSTD::forward<_T1>(__t) >= _VSTD::forward<_T2>(__u)) - { return _VSTD::forward<_T1>(__t) >= _VSTD::forward<_T2>(__u); } - typedef void is_transparent; -}; -#endif - - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY less_equal : binary_function<_Tp, _Tp, bool> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator()(const _Tp& __x, const _Tp& __y) const - {return __x <= __y;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY less_equal -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_T1&& __t, _T2&& __u) const - _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) <= _VSTD::forward<_T2>(__u))) - -> decltype (_VSTD::forward<_T1>(__t) <= _VSTD::forward<_T2>(__u)) - { return _VSTD::forward<_T1>(__t) <= _VSTD::forward<_T2>(__u); } - typedef void is_transparent; -}; -#endif - - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY logical_and : binary_function<_Tp, _Tp, bool> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator()(const _Tp& __x, const _Tp& __y) const - {return __x && __y;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY logical_and -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_T1&& __t, _T2&& __u) const - _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) && _VSTD::forward<_T2>(__u))) - -> decltype (_VSTD::forward<_T1>(__t) && _VSTD::forward<_T2>(__u)) - { return _VSTD::forward<_T1>(__t) && _VSTD::forward<_T2>(__u); } - typedef void is_transparent; -}; -#endif - - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY logical_or : binary_function<_Tp, _Tp, bool> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator()(const _Tp& __x, const _Tp& __y) const - {return __x || __y;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY logical_or -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_T1&& __t, _T2&& __u) const - _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) || _VSTD::forward<_T2>(__u))) - -> decltype (_VSTD::forward<_T1>(__t) || _VSTD::forward<_T2>(__u)) - { return _VSTD::forward<_T1>(__t) || _VSTD::forward<_T2>(__u); } - typedef void is_transparent; -}; -#endif - - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY logical_not : unary_function<_Tp, bool> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator()(const _Tp& __x) const - {return !__x;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY logical_not -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_Tp&& __x) const - _NOEXCEPT_(noexcept(!_VSTD::forward<_Tp>(__x))) - -> decltype (!_VSTD::forward<_Tp>(__x)) - { return !_VSTD::forward<_Tp>(__x); } - typedef void is_transparent; -}; -#endif - - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY bit_and : binary_function<_Tp, _Tp, _Tp> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - _Tp operator()(const _Tp& __x, const _Tp& __y) const - {return __x & __y;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY bit_and -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_T1&& __t, _T2&& __u) const - _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) & _VSTD::forward<_T2>(__u))) - -> decltype (_VSTD::forward<_T1>(__t) & _VSTD::forward<_T2>(__u)) - { return _VSTD::forward<_T1>(__t) & _VSTD::forward<_T2>(__u); } - typedef void is_transparent; -}; -#endif - - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY bit_or : binary_function<_Tp, _Tp, _Tp> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - _Tp operator()(const _Tp& __x, const _Tp& __y) const - {return __x | __y;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY bit_or -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_T1&& __t, _T2&& __u) const - _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) | _VSTD::forward<_T2>(__u))) - -> decltype (_VSTD::forward<_T1>(__t) | _VSTD::forward<_T2>(__u)) - { return _VSTD::forward<_T1>(__t) | _VSTD::forward<_T2>(__u); } - typedef void is_transparent; -}; -#endif - - -#if _LIBCPP_STD_VER > 11 -template -#else -template -#endif -struct _LIBCPP_TYPE_VIS_ONLY bit_xor : binary_function<_Tp, _Tp, _Tp> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - _Tp operator()(const _Tp& __x, const _Tp& __y) const - {return __x ^ __y;} -}; - -#if _LIBCPP_STD_VER > 11 -template <> -struct _LIBCPP_TYPE_VIS_ONLY bit_xor -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_T1&& __t, _T2&& __u) const - _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) ^ _VSTD::forward<_T2>(__u))) - -> decltype (_VSTD::forward<_T1>(__t) ^ _VSTD::forward<_T2>(__u)) - { return _VSTD::forward<_T1>(__t) ^ _VSTD::forward<_T2>(__u); } - typedef void is_transparent; -}; -#endif - - -#if _LIBCPP_STD_VER > 11 -template -struct _LIBCPP_TYPE_VIS_ONLY bit_not : unary_function<_Tp, _Tp> -{ - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - _Tp operator()(const _Tp& __x) const - {return ~__x;} -}; - -template <> -struct _LIBCPP_TYPE_VIS_ONLY bit_not -{ - template - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - auto operator()(_Tp&& __x) const - _NOEXCEPT_(noexcept(~_VSTD::forward<_Tp>(__x))) - -> decltype (~_VSTD::forward<_Tp>(__x)) - { return ~_VSTD::forward<_Tp>(__x); } - typedef void is_transparent; -}; -#endif - -template -class _LIBCPP_TYPE_VIS_ONLY unary_negate - : public unary_function -{ - _Predicate __pred_; -public: - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - explicit unary_negate(const _Predicate& __pred) - : __pred_(__pred) {} - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator()(const typename _Predicate::argument_type& __x) const - {return !__pred_(__x);} -}; - -template -inline _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY -unary_negate<_Predicate> -not1(const _Predicate& __pred) {return unary_negate<_Predicate>(__pred);} - -template -class _LIBCPP_TYPE_VIS_ONLY binary_negate - : public binary_function -{ - _Predicate __pred_; -public: - _LIBCPP_INLINE_VISIBILITY explicit _LIBCPP_CONSTEXPR_AFTER_CXX11 - binary_negate(const _Predicate& __pred) : __pred_(__pred) {} - - _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY - bool operator()(const typename _Predicate::first_argument_type& __x, - const typename _Predicate::second_argument_type& __y) const - {return !__pred_(__x, __y);} -}; - -template -inline _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY -binary_negate<_Predicate> -not2(const _Predicate& __pred) {return binary_negate<_Predicate>(__pred);} - -template -class _LIBCPP_TYPE_VIS_ONLY binder1st - : public unary_function -{ -protected: - __Operation op; - typename __Operation::first_argument_type value; -public: - _LIBCPP_INLINE_VISIBILITY binder1st(const __Operation& __x, - const typename __Operation::first_argument_type __y) - : op(__x), value(__y) {} - _LIBCPP_INLINE_VISIBILITY typename __Operation::result_type operator() - (typename __Operation::second_argument_type& __x) const - {return op(value, __x);} - _LIBCPP_INLINE_VISIBILITY typename __Operation::result_type operator() - (const typename __Operation::second_argument_type& __x) const - {return op(value, __x);} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -binder1st<__Operation> -bind1st(const __Operation& __op, const _Tp& __x) - {return binder1st<__Operation>(__op, __x);} - -template -class _LIBCPP_TYPE_VIS_ONLY binder2nd - : public unary_function -{ -protected: - __Operation op; - typename __Operation::second_argument_type value; -public: - _LIBCPP_INLINE_VISIBILITY - binder2nd(const __Operation& __x, const typename __Operation::second_argument_type __y) - : op(__x), value(__y) {} - _LIBCPP_INLINE_VISIBILITY typename __Operation::result_type operator() - ( typename __Operation::first_argument_type& __x) const - {return op(__x, value);} - _LIBCPP_INLINE_VISIBILITY typename __Operation::result_type operator() - (const typename __Operation::first_argument_type& __x) const - {return op(__x, value);} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -binder2nd<__Operation> -bind2nd(const __Operation& __op, const _Tp& __x) - {return binder2nd<__Operation>(__op, __x);} - -template -class _LIBCPP_TYPE_VIS_ONLY pointer_to_unary_function - : public unary_function<_Arg, _Result> -{ - _Result (*__f_)(_Arg); -public: - _LIBCPP_INLINE_VISIBILITY explicit pointer_to_unary_function(_Result (*__f)(_Arg)) - : __f_(__f) {} - _LIBCPP_INLINE_VISIBILITY _Result operator()(_Arg __x) const - {return __f_(__x);} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -pointer_to_unary_function<_Arg,_Result> -ptr_fun(_Result (*__f)(_Arg)) - {return pointer_to_unary_function<_Arg,_Result>(__f);} - -template -class _LIBCPP_TYPE_VIS_ONLY pointer_to_binary_function - : public binary_function<_Arg1, _Arg2, _Result> -{ - _Result (*__f_)(_Arg1, _Arg2); -public: - _LIBCPP_INLINE_VISIBILITY explicit pointer_to_binary_function(_Result (*__f)(_Arg1, _Arg2)) - : __f_(__f) {} - _LIBCPP_INLINE_VISIBILITY _Result operator()(_Arg1 __x, _Arg2 __y) const - {return __f_(__x, __y);} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -pointer_to_binary_function<_Arg1,_Arg2,_Result> -ptr_fun(_Result (*__f)(_Arg1,_Arg2)) - {return pointer_to_binary_function<_Arg1,_Arg2,_Result>(__f);} - -template -class _LIBCPP_TYPE_VIS_ONLY mem_fun_t : public unary_function<_Tp*, _Sp> -{ - _Sp (_Tp::*__p_)(); -public: - _LIBCPP_INLINE_VISIBILITY explicit mem_fun_t(_Sp (_Tp::*__p)()) - : __p_(__p) {} - _LIBCPP_INLINE_VISIBILITY _Sp operator()(_Tp* __p) const - {return (__p->*__p_)();} -}; - -template -class _LIBCPP_TYPE_VIS_ONLY mem_fun1_t : public binary_function<_Tp*, _Ap, _Sp> -{ - _Sp (_Tp::*__p_)(_Ap); -public: - _LIBCPP_INLINE_VISIBILITY explicit mem_fun1_t(_Sp (_Tp::*__p)(_Ap)) - : __p_(__p) {} - _LIBCPP_INLINE_VISIBILITY _Sp operator()(_Tp* __p, _Ap __x) const - {return (__p->*__p_)(__x);} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -mem_fun_t<_Sp,_Tp> -mem_fun(_Sp (_Tp::*__f)()) - {return mem_fun_t<_Sp,_Tp>(__f);} - -template -inline _LIBCPP_INLINE_VISIBILITY -mem_fun1_t<_Sp,_Tp,_Ap> -mem_fun(_Sp (_Tp::*__f)(_Ap)) - {return mem_fun1_t<_Sp,_Tp,_Ap>(__f);} - -template -class _LIBCPP_TYPE_VIS_ONLY mem_fun_ref_t : public unary_function<_Tp, _Sp> -{ - _Sp (_Tp::*__p_)(); -public: - _LIBCPP_INLINE_VISIBILITY explicit mem_fun_ref_t(_Sp (_Tp::*__p)()) - : __p_(__p) {} - _LIBCPP_INLINE_VISIBILITY _Sp operator()(_Tp& __p) const - {return (__p.*__p_)();} -}; - -template -class _LIBCPP_TYPE_VIS_ONLY mem_fun1_ref_t : public binary_function<_Tp, _Ap, _Sp> -{ - _Sp (_Tp::*__p_)(_Ap); -public: - _LIBCPP_INLINE_VISIBILITY explicit mem_fun1_ref_t(_Sp (_Tp::*__p)(_Ap)) - : __p_(__p) {} - _LIBCPP_INLINE_VISIBILITY _Sp operator()(_Tp& __p, _Ap __x) const - {return (__p.*__p_)(__x);} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -mem_fun_ref_t<_Sp,_Tp> -mem_fun_ref(_Sp (_Tp::*__f)()) - {return mem_fun_ref_t<_Sp,_Tp>(__f);} - -template -inline _LIBCPP_INLINE_VISIBILITY -mem_fun1_ref_t<_Sp,_Tp,_Ap> -mem_fun_ref(_Sp (_Tp::*__f)(_Ap)) - {return mem_fun1_ref_t<_Sp,_Tp,_Ap>(__f);} - -template -class _LIBCPP_TYPE_VIS_ONLY const_mem_fun_t : public unary_function -{ - _Sp (_Tp::*__p_)() const; -public: - _LIBCPP_INLINE_VISIBILITY explicit const_mem_fun_t(_Sp (_Tp::*__p)() const) - : __p_(__p) {} - _LIBCPP_INLINE_VISIBILITY _Sp operator()(const _Tp* __p) const - {return (__p->*__p_)();} -}; - -template -class _LIBCPP_TYPE_VIS_ONLY const_mem_fun1_t : public binary_function -{ - _Sp (_Tp::*__p_)(_Ap) const; -public: - _LIBCPP_INLINE_VISIBILITY explicit const_mem_fun1_t(_Sp (_Tp::*__p)(_Ap) const) - : __p_(__p) {} - _LIBCPP_INLINE_VISIBILITY _Sp operator()(const _Tp* __p, _Ap __x) const - {return (__p->*__p_)(__x);} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -const_mem_fun_t<_Sp,_Tp> -mem_fun(_Sp (_Tp::*__f)() const) - {return const_mem_fun_t<_Sp,_Tp>(__f);} - -template -inline _LIBCPP_INLINE_VISIBILITY -const_mem_fun1_t<_Sp,_Tp,_Ap> -mem_fun(_Sp (_Tp::*__f)(_Ap) const) - {return const_mem_fun1_t<_Sp,_Tp,_Ap>(__f);} - -template -class _LIBCPP_TYPE_VIS_ONLY const_mem_fun_ref_t : public unary_function<_Tp, _Sp> -{ - _Sp (_Tp::*__p_)() const; -public: - _LIBCPP_INLINE_VISIBILITY explicit const_mem_fun_ref_t(_Sp (_Tp::*__p)() const) - : __p_(__p) {} - _LIBCPP_INLINE_VISIBILITY _Sp operator()(const _Tp& __p) const - {return (__p.*__p_)();} -}; - -template -class _LIBCPP_TYPE_VIS_ONLY const_mem_fun1_ref_t - : public binary_function<_Tp, _Ap, _Sp> -{ - _Sp (_Tp::*__p_)(_Ap) const; -public: - _LIBCPP_INLINE_VISIBILITY explicit const_mem_fun1_ref_t(_Sp (_Tp::*__p)(_Ap) const) - : __p_(__p) {} - _LIBCPP_INLINE_VISIBILITY _Sp operator()(const _Tp& __p, _Ap __x) const - {return (__p.*__p_)(__x);} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -const_mem_fun_ref_t<_Sp,_Tp> -mem_fun_ref(_Sp (_Tp::*__f)() const) - {return const_mem_fun_ref_t<_Sp,_Tp>(__f);} - -template -inline _LIBCPP_INLINE_VISIBILITY -const_mem_fun1_ref_t<_Sp,_Tp,_Ap> -mem_fun_ref(_Sp (_Tp::*__f)(_Ap) const) - {return const_mem_fun1_ref_t<_Sp,_Tp,_Ap>(__f);} - -//////////////////////////////////////////////////////////////////////////////// -// MEMFUN -//============================================================================== - -template -class __mem_fn - : public __weak_result_type<_Tp> -{ -public: - // types - typedef _Tp type; -private: - type __f_; - -public: - _LIBCPP_INLINE_VISIBILITY __mem_fn(type __f) _NOEXCEPT : __f_(__f) {} - -#ifndef _LIBCPP_HAS_NO_VARIADICS - // invoke - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return::type - operator() (_ArgTypes&&... __args) const { - return __invoke(__f_, _VSTD::forward<_ArgTypes>(__args)...); - } -#else - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return0::type - operator() (_A0& __a0) const { - return __invoke(__f_, __a0); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return0::type - operator() (_A0 const& __a0) const { - return __invoke(__f_, __a0); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return1::type - operator() (_A0& __a0, _A1& __a1) const { - return __invoke(__f_, __a0, __a1); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return1::type - operator() (_A0 const& __a0, _A1& __a1) const { - return __invoke(__f_, __a0, __a1); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return1::type - operator() (_A0& __a0, _A1 const& __a1) const { - return __invoke(__f_, __a0, __a1); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return1::type - operator() (_A0 const& __a0, _A1 const& __a1) const { - return __invoke(__f_, __a0, __a1); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return2::type - operator() (_A0& __a0, _A1& __a1, _A2& __a2) const { - return __invoke(__f_, __a0, __a1, __a2); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return2::type - operator() (_A0 const& __a0, _A1& __a1, _A2& __a2) const { - return __invoke(__f_, __a0, __a1, __a2); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return2::type - operator() (_A0& __a0, _A1 const& __a1, _A2& __a2) const { - return __invoke(__f_, __a0, __a1, __a2); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return2::type - operator() (_A0& __a0, _A1& __a1, _A2 const& __a2) const { - return __invoke(__f_, __a0, __a1, __a2); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return2::type - operator() (_A0 const& __a0, _A1 const& __a1, _A2& __a2) const { - return __invoke(__f_, __a0, __a1, __a2); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return2::type - operator() (_A0 const& __a0, _A1& __a1, _A2 const& __a2) const { - return __invoke(__f_, __a0, __a1, __a2); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return2::type - operator() (_A0& __a0, _A1 const& __a1, _A2 const& __a2) const { - return __invoke(__f_, __a0, __a1, __a2); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __invoke_return2::type - operator() (_A0 const& __a0, _A1 const& __a1, _A2 const& __a2) const { - return __invoke(__f_, __a0, __a1, __a2); - } -#endif -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -__mem_fn<_Rp _Tp::*> -mem_fn(_Rp _Tp::* __pm) _NOEXCEPT -{ - return __mem_fn<_Rp _Tp::*>(__pm); -} - -//////////////////////////////////////////////////////////////////////////////// -// FUNCTION -//============================================================================== - -// bad_function_call - -class _LIBCPP_EXCEPTION_ABI bad_function_call - : public exception -{ -}; - -template class _LIBCPP_TYPE_VIS_ONLY function; // undefined - -namespace __function -{ - -template -struct __maybe_derive_from_unary_function -{ -}; - -template -struct __maybe_derive_from_unary_function<_Rp(_A1)> - : public unary_function<_A1, _Rp> -{ -}; - -template -struct __maybe_derive_from_binary_function -{ -}; - -template -struct __maybe_derive_from_binary_function<_Rp(_A1, _A2)> - : public binary_function<_A1, _A2, _Rp> -{ -}; - -template -_LIBCPP_INLINE_VISIBILITY -bool __not_null(_Fp const&) { return true; } - -template -_LIBCPP_INLINE_VISIBILITY -bool __not_null(_Fp* __ptr) { return __ptr; } - -template -_LIBCPP_INLINE_VISIBILITY -bool __not_null(_Ret _Class::*__ptr) { return __ptr; } - -template -_LIBCPP_INLINE_VISIBILITY -bool __not_null(function<_Fp> const& __f) { return !!__f; } - -} // namespace __function - -#ifndef _LIBCPP_HAS_NO_VARIADICS - -namespace __function { - -template class __base; - -template -class __base<_Rp(_ArgTypes...)> -{ - __base(const __base&); - __base& operator=(const __base&); -public: - _LIBCPP_INLINE_VISIBILITY __base() {} - _LIBCPP_INLINE_VISIBILITY virtual ~__base() {} - virtual __base* __clone() const = 0; - virtual void __clone(__base*) const = 0; - virtual void destroy() _NOEXCEPT = 0; - virtual void destroy_deallocate() _NOEXCEPT = 0; - virtual _Rp operator()(_ArgTypes&& ...) = 0; -#ifndef _LIBCPP_NO_RTTI - virtual const void* target(const type_info&) const _NOEXCEPT = 0; - virtual const std::type_info& target_type() const _NOEXCEPT = 0; -#endif // _LIBCPP_NO_RTTI -}; - -template class __func; - -template -class __func<_Fp, _Alloc, _Rp(_ArgTypes...)> - : public __base<_Rp(_ArgTypes...)> -{ - __compressed_pair<_Fp, _Alloc> __f_; -public: - _LIBCPP_INLINE_VISIBILITY - explicit __func(_Fp&& __f) - : __f_(piecewise_construct, _VSTD::forward_as_tuple(_VSTD::move(__f)), - _VSTD::forward_as_tuple()) {} - _LIBCPP_INLINE_VISIBILITY - explicit __func(const _Fp& __f, const _Alloc& __a) - : __f_(piecewise_construct, _VSTD::forward_as_tuple(__f), - _VSTD::forward_as_tuple(__a)) {} - - _LIBCPP_INLINE_VISIBILITY - explicit __func(const _Fp& __f, _Alloc&& __a) - : __f_(piecewise_construct, _VSTD::forward_as_tuple(__f), - _VSTD::forward_as_tuple(_VSTD::move(__a))) {} - - _LIBCPP_INLINE_VISIBILITY - explicit __func(_Fp&& __f, _Alloc&& __a) - : __f_(piecewise_construct, _VSTD::forward_as_tuple(_VSTD::move(__f)), - _VSTD::forward_as_tuple(_VSTD::move(__a))) {} - virtual __base<_Rp(_ArgTypes...)>* __clone() const; - virtual void __clone(__base<_Rp(_ArgTypes...)>*) const; - virtual void destroy() _NOEXCEPT; - virtual void destroy_deallocate() _NOEXCEPT; - virtual _Rp operator()(_ArgTypes&& ... __arg); -#ifndef _LIBCPP_NO_RTTI - virtual const void* target(const type_info&) const _NOEXCEPT; - virtual const std::type_info& target_type() const _NOEXCEPT; -#endif // _LIBCPP_NO_RTTI -}; - -template -__base<_Rp(_ArgTypes...)>* -__func<_Fp, _Alloc, _Rp(_ArgTypes...)>::__clone() const -{ - typedef allocator_traits<_Alloc> __alloc_traits; - typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; - _Ap __a(__f_.second()); - typedef __allocator_destructor<_Ap> _Dp; - unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new (__hold.get()) __func(__f_.first(), _Alloc(__a)); - return __hold.release(); -} - -template -void -__func<_Fp, _Alloc, _Rp(_ArgTypes...)>::__clone(__base<_Rp(_ArgTypes...)>* __p) const -{ - ::new (__p) __func(__f_.first(), __f_.second()); -} - -template -void -__func<_Fp, _Alloc, _Rp(_ArgTypes...)>::destroy() _NOEXCEPT -{ - __f_.~__compressed_pair<_Fp, _Alloc>(); -} - -template -void -__func<_Fp, _Alloc, _Rp(_ArgTypes...)>::destroy_deallocate() _NOEXCEPT -{ - typedef allocator_traits<_Alloc> __alloc_traits; - typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; - _Ap __a(__f_.second()); - __f_.~__compressed_pair<_Fp, _Alloc>(); - __a.deallocate(this, 1); -} - -template -_Rp -__func<_Fp, _Alloc, _Rp(_ArgTypes...)>::operator()(_ArgTypes&& ... __arg) -{ - typedef __invoke_void_return_wrapper<_Rp> _Invoker; - return _Invoker::__call(__f_.first(), _VSTD::forward<_ArgTypes>(__arg)...); -} - -#ifndef _LIBCPP_NO_RTTI - -template -const void* -__func<_Fp, _Alloc, _Rp(_ArgTypes...)>::target(const type_info& __ti) const _NOEXCEPT -{ - if (__ti == typeid(_Fp)) - return &__f_.first(); - return (const void*)0; -} - -template -const std::type_info& -__func<_Fp, _Alloc, _Rp(_ArgTypes...)>::target_type() const _NOEXCEPT -{ - return typeid(_Fp); -} - -#endif // _LIBCPP_NO_RTTI - -} // __function - -template -class _LIBCPP_TYPE_VIS_ONLY function<_Rp(_ArgTypes...)> - : public __function::__maybe_derive_from_unary_function<_Rp(_ArgTypes...)>, - public __function::__maybe_derive_from_binary_function<_Rp(_ArgTypes...)> -{ - typedef __function::__base<_Rp(_ArgTypes...)> __base; - typename aligned_storage<3*sizeof(void*)>::type __buf_; - __base* __f_; - - template ::value && - __invokable<_Fp&, _ArgTypes...>::value> - struct __callable; - template - struct __callable<_Fp, true> - { - static const bool value = is_same::value || - is_convertible::type, - _Rp>::value; - }; - template - struct __callable<_Fp, false> - { - static const bool value = false; - }; -public: - typedef _Rp result_type; - - // construct/copy/destroy: - _LIBCPP_INLINE_VISIBILITY - function() _NOEXCEPT : __f_(0) {} - _LIBCPP_INLINE_VISIBILITY - function(nullptr_t) _NOEXCEPT : __f_(0) {} - function(const function&); - function(function&&) _NOEXCEPT; - template - function(_Fp, typename enable_if - < - __callable<_Fp>::value && - !is_same<_Fp, function>::value - >::type* = 0); - - template - _LIBCPP_INLINE_VISIBILITY - function(allocator_arg_t, const _Alloc&) _NOEXCEPT : __f_(0) {} - template - _LIBCPP_INLINE_VISIBILITY - function(allocator_arg_t, const _Alloc&, nullptr_t) _NOEXCEPT : __f_(0) {} - template - function(allocator_arg_t, const _Alloc&, const function&); - template - function(allocator_arg_t, const _Alloc&, function&&); - template - function(allocator_arg_t, const _Alloc& __a, _Fp __f, - typename enable_if<__callable<_Fp>::value>::type* = 0); - - function& operator=(const function&); - function& operator=(function&&) _NOEXCEPT; - function& operator=(nullptr_t) _NOEXCEPT; - template - typename enable_if - < - __callable::type>::value && - !is_same::type, function>::value, - function& - >::type - operator=(_Fp&&); - - ~function(); - - // function modifiers: - void swap(function&) _NOEXCEPT; - template - _LIBCPP_INLINE_VISIBILITY - void assign(_Fp&& __f, const _Alloc& __a) - {function(allocator_arg, __a, _VSTD::forward<_Fp>(__f)).swap(*this);} - - // function capacity: - _LIBCPP_INLINE_VISIBILITY - _LIBCPP_EXPLICIT operator bool() const _NOEXCEPT {return __f_;} - - // deleted overloads close possible hole in the type system - template - bool operator==(const function<_R2(_ArgTypes2...)>&) const = delete; - template - bool operator!=(const function<_R2(_ArgTypes2...)>&) const = delete; -public: - // function invocation: - _Rp operator()(_ArgTypes...) const; - -#ifndef _LIBCPP_NO_RTTI - // function target access: - const std::type_info& target_type() const _NOEXCEPT; - template _Tp* target() _NOEXCEPT; - template const _Tp* target() const _NOEXCEPT; -#endif // _LIBCPP_NO_RTTI -}; - -template -function<_Rp(_ArgTypes...)>::function(const function& __f) -{ - if (__f.__f_ == 0) - __f_ = 0; - else if (__f.__f_ == (const __base*)&__f.__buf_) - { - __f_ = (__base*)&__buf_; - __f.__f_->__clone(__f_); - } - else - __f_ = __f.__f_->__clone(); -} - -template -template -function<_Rp(_ArgTypes...)>::function(allocator_arg_t, const _Alloc&, - const function& __f) -{ - if (__f.__f_ == 0) - __f_ = 0; - else if (__f.__f_ == (const __base*)&__f.__buf_) - { - __f_ = (__base*)&__buf_; - __f.__f_->__clone(__f_); - } - else - __f_ = __f.__f_->__clone(); -} - -template -function<_Rp(_ArgTypes...)>::function(function&& __f) _NOEXCEPT -{ - if (__f.__f_ == 0) - __f_ = 0; - else if (__f.__f_ == (__base*)&__f.__buf_) - { - __f_ = (__base*)&__buf_; - __f.__f_->__clone(__f_); - } - else - { - __f_ = __f.__f_; - __f.__f_ = 0; - } -} - -template -template -function<_Rp(_ArgTypes...)>::function(allocator_arg_t, const _Alloc&, - function&& __f) -{ - if (__f.__f_ == 0) - __f_ = 0; - else if (__f.__f_ == (__base*)&__f.__buf_) - { - __f_ = (__base*)&__buf_; - __f.__f_->__clone(__f_); - } - else - { - __f_ = __f.__f_; - __f.__f_ = 0; - } -} - -template -template -function<_Rp(_ArgTypes...)>::function(_Fp __f, - typename enable_if - < - __callable<_Fp>::value && - !is_same<_Fp, function>::value - >::type*) - : __f_(0) -{ - if (__function::__not_null(__f)) - { - typedef __function::__func<_Fp, allocator<_Fp>, _Rp(_ArgTypes...)> _FF; - if (sizeof(_FF) <= sizeof(__buf_) && is_nothrow_copy_constructible<_Fp>::value) - { - __f_ = (__base*)&__buf_; - ::new (__f_) _FF(_VSTD::move(__f)); - } - else - { - typedef allocator<_FF> _Ap; - _Ap __a; - typedef __allocator_destructor<_Ap> _Dp; - unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new (__hold.get()) _FF(_VSTD::move(__f), allocator<_Fp>(__a)); - __f_ = __hold.release(); - } - } -} - -template -template -function<_Rp(_ArgTypes...)>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f, - typename enable_if<__callable<_Fp>::value>::type*) - : __f_(0) -{ - typedef allocator_traits<_Alloc> __alloc_traits; - if (__function::__not_null(__f)) - { - typedef __function::__func<_Fp, _Alloc, _Rp(_ArgTypes...)> _FF; - typedef typename __rebind_alloc_helper<__alloc_traits, _FF>::type _Ap; - _Ap __a(__a0); - if (sizeof(_FF) <= sizeof(__buf_) && - is_nothrow_copy_constructible<_Fp>::value && is_nothrow_copy_constructible<_Ap>::value) - { - __f_ = (__base*)&__buf_; - ::new (__f_) _FF(_VSTD::move(__f), _Alloc(__a)); - } - else - { - typedef __allocator_destructor<_Ap> _Dp; - unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new (__hold.get()) _FF(_VSTD::move(__f), _Alloc(__a)); - __f_ = __hold.release(); - } - } -} - -template -function<_Rp(_ArgTypes...)>& -function<_Rp(_ArgTypes...)>::operator=(const function& __f) -{ - function(__f).swap(*this); - return *this; -} - -template -function<_Rp(_ArgTypes...)>& -function<_Rp(_ArgTypes...)>::operator=(function&& __f) _NOEXCEPT -{ - if (__f_ == (__base*)&__buf_) - __f_->destroy(); - else if (__f_) - __f_->destroy_deallocate(); - __f_ = 0; - if (__f.__f_ == 0) - __f_ = 0; - else if (__f.__f_ == (__base*)&__f.__buf_) - { - __f_ = (__base*)&__buf_; - __f.__f_->__clone(__f_); - } - else - { - __f_ = __f.__f_; - __f.__f_ = 0; - } - return *this; -} - -template -function<_Rp(_ArgTypes...)>& -function<_Rp(_ArgTypes...)>::operator=(nullptr_t) _NOEXCEPT -{ - if (__f_ == (__base*)&__buf_) - __f_->destroy(); - else if (__f_) - __f_->destroy_deallocate(); - __f_ = 0; - return *this; -} - -template -template -typename enable_if -< - function<_Rp(_ArgTypes...)>::template __callable::type>::value && - !is_same::type, function<_Rp(_ArgTypes...)>>::value, - function<_Rp(_ArgTypes...)>& ->::type -function<_Rp(_ArgTypes...)>::operator=(_Fp&& __f) -{ - function(_VSTD::forward<_Fp>(__f)).swap(*this); - return *this; -} - -template -function<_Rp(_ArgTypes...)>::~function() -{ - if (__f_ == (__base*)&__buf_) - __f_->destroy(); - else if (__f_) - __f_->destroy_deallocate(); -} - -template -void -function<_Rp(_ArgTypes...)>::swap(function& __f) _NOEXCEPT -{ - if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_) - { - typename aligned_storage::type __tempbuf; - __base* __t = (__base*)&__tempbuf; - __f_->__clone(__t); - __f_->destroy(); - __f_ = 0; - __f.__f_->__clone((__base*)&__buf_); - __f.__f_->destroy(); - __f.__f_ = 0; - __f_ = (__base*)&__buf_; - __t->__clone((__base*)&__f.__buf_); - __t->destroy(); - __f.__f_ = (__base*)&__f.__buf_; - } - else if (__f_ == (__base*)&__buf_) - { - __f_->__clone((__base*)&__f.__buf_); - __f_->destroy(); - __f_ = __f.__f_; - __f.__f_ = (__base*)&__f.__buf_; - } - else if (__f.__f_ == (__base*)&__f.__buf_) - { - __f.__f_->__clone((__base*)&__buf_); - __f.__f_->destroy(); - __f.__f_ = __f_; - __f_ = (__base*)&__buf_; - } - else - _VSTD::swap(__f_, __f.__f_); -} - -template -_Rp -function<_Rp(_ArgTypes...)>::operator()(_ArgTypes... __arg) const -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - if (__f_ == 0) - throw bad_function_call(); -#endif // _LIBCPP_NO_EXCEPTIONS - return (*__f_)(_VSTD::forward<_ArgTypes>(__arg)...); -} - -#ifndef _LIBCPP_NO_RTTI - -template -const std::type_info& -function<_Rp(_ArgTypes...)>::target_type() const _NOEXCEPT -{ - if (__f_ == 0) - return typeid(void); - return __f_->target_type(); -} - -template -template -_Tp* -function<_Rp(_ArgTypes...)>::target() _NOEXCEPT -{ - if (__f_ == 0) - return (_Tp*)0; - return (_Tp*)__f_->target(typeid(_Tp)); -} - -template -template -const _Tp* -function<_Rp(_ArgTypes...)>::target() const _NOEXCEPT -{ - if (__f_ == 0) - return (const _Tp*)0; - return (const _Tp*)__f_->target(typeid(_Tp)); -} - -#endif // _LIBCPP_NO_RTTI - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator==(const function<_Rp(_ArgTypes...)>& __f, nullptr_t) _NOEXCEPT {return !__f;} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator==(nullptr_t, const function<_Rp(_ArgTypes...)>& __f) _NOEXCEPT {return !__f;} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(const function<_Rp(_ArgTypes...)>& __f, nullptr_t) _NOEXCEPT {return (bool)__f;} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(nullptr_t, const function<_Rp(_ArgTypes...)>& __f) _NOEXCEPT {return (bool)__f;} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(function<_Rp(_ArgTypes...)>& __x, function<_Rp(_ArgTypes...)>& __y) _NOEXCEPT -{return __x.swap(__y);} - -#else // _LIBCPP_HAS_NO_VARIADICS - -#include <__functional_03> - -#endif - -//////////////////////////////////////////////////////////////////////////////// -// BIND -//============================================================================== - -template struct __is_bind_expression : public false_type {}; -template struct _LIBCPP_TYPE_VIS_ONLY is_bind_expression - : public __is_bind_expression::type> {}; - -template struct __is_placeholder : public integral_constant {}; -template struct _LIBCPP_TYPE_VIS_ONLY is_placeholder - : public __is_placeholder::type> {}; - -namespace placeholders -{ - -template struct __ph {}; - -_LIBCPP_FUNC_VIS extern __ph<1> _1; -_LIBCPP_FUNC_VIS extern __ph<2> _2; -_LIBCPP_FUNC_VIS extern __ph<3> _3; -_LIBCPP_FUNC_VIS extern __ph<4> _4; -_LIBCPP_FUNC_VIS extern __ph<5> _5; -_LIBCPP_FUNC_VIS extern __ph<6> _6; -_LIBCPP_FUNC_VIS extern __ph<7> _7; -_LIBCPP_FUNC_VIS extern __ph<8> _8; -_LIBCPP_FUNC_VIS extern __ph<9> _9; -_LIBCPP_FUNC_VIS extern __ph<10> _10; - -} // placeholders - -template -struct __is_placeholder > - : public integral_constant {}; - - -#ifndef _LIBCPP_HAS_NO_VARIADICS - -template -inline _LIBCPP_INLINE_VISIBILITY -_Tp& -__mu(reference_wrapper<_Tp> __t, _Uj&) -{ - return __t.get(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename __invoke_of<_Ti&, _Uj...>::type -__mu_expand(_Ti& __ti, tuple<_Uj...>& __uj, __tuple_indices<_Indx...>) -{ - return __ti(_VSTD::forward<_Uj>(_VSTD::get<_Indx>(__uj))...); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename __lazy_enable_if -< - is_bind_expression<_Ti>::value, - __invoke_of<_Ti&, _Uj...> ->::type -__mu(_Ti& __ti, tuple<_Uj...>& __uj) -{ - typedef typename __make_tuple_indices::type __indices; - return __mu_expand(__ti, __uj, __indices()); -} - -template -struct __mu_return2 {}; - -template -struct __mu_return2 -{ - typedef typename tuple_element::value - 1, _Uj>::type type; -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - 0 < is_placeholder<_Ti>::value, - typename __mu_return2<0 < is_placeholder<_Ti>::value, _Ti, _Uj>::type ->::type -__mu(_Ti&, _Uj& __uj) -{ - const size_t _Indx = is_placeholder<_Ti>::value - 1; - return _VSTD::forward::type>(_VSTD::get<_Indx>(__uj)); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename enable_if -< - !is_bind_expression<_Ti>::value && - is_placeholder<_Ti>::value == 0 && - !__is_reference_wrapper<_Ti>::value, - _Ti& ->::type -__mu(_Ti& __ti, _Uj&) -{ - return __ti; -} - -template -struct ____mu_return; - -template -struct ____mu_return_invokable // false -{ - typedef __nat type; -}; - -template -struct ____mu_return_invokable -{ - typedef typename __invoke_of<_Ti&, _Uj...>::type type; -}; - -template -struct ____mu_return<_Ti, false, true, false, tuple<_Uj...> > - : public ____mu_return_invokable<__invokable<_Ti&, _Uj...>::value, _Ti, _Uj...> -{ -}; - -template -struct ____mu_return<_Ti, false, false, true, _TupleUj> -{ - typedef typename tuple_element::value - 1, - _TupleUj>::type&& type; -}; - -template -struct ____mu_return<_Ti, true, false, false, _TupleUj> -{ - typedef typename _Ti::type& type; -}; - -template -struct ____mu_return<_Ti, false, false, false, _TupleUj> -{ - typedef _Ti& type; -}; - -template -struct __mu_return - : public ____mu_return<_Ti, - __is_reference_wrapper<_Ti>::value, - is_bind_expression<_Ti>::value, - 0 < is_placeholder<_Ti>::value && - is_placeholder<_Ti>::value <= tuple_size<_TupleUj>::value, - _TupleUj> -{ -}; - -template -struct __is_valid_bind_return -{ - static const bool value = false; -}; - -template -struct __is_valid_bind_return<_Fp, tuple<_BoundArgs...>, _TupleUj> -{ - static const bool value = __invokable<_Fp, - typename __mu_return<_BoundArgs, _TupleUj>::type...>::value; -}; - -template -struct __is_valid_bind_return<_Fp, const tuple<_BoundArgs...>, _TupleUj> -{ - static const bool value = __invokable<_Fp, - typename __mu_return::type...>::value; -}; - -template ::value> -struct __bind_return; - -template -struct __bind_return<_Fp, tuple<_BoundArgs...>, _TupleUj, true> -{ - typedef typename __invoke_of - < - _Fp&, - typename __mu_return - < - _BoundArgs, - _TupleUj - >::type... - >::type type; -}; - -template -struct __bind_return<_Fp, const tuple<_BoundArgs...>, _TupleUj, true> -{ - typedef typename __invoke_of - < - _Fp&, - typename __mu_return - < - const _BoundArgs, - _TupleUj - >::type... - >::type type; -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -typename __bind_return<_Fp, _BoundArgs, _Args>::type -__apply_functor(_Fp& __f, _BoundArgs& __bound_args, __tuple_indices<_Indx...>, - _Args&& __args) -{ - return __invoke(__f, __mu(_VSTD::get<_Indx>(__bound_args), __args)...); -} - -template -class __bind - : public __weak_result_type::type> -{ -protected: - typedef typename decay<_Fp>::type _Fd; - typedef tuple::type...> _Td; -private: - _Fd __f_; - _Td __bound_args_; - - typedef typename __make_tuple_indices::type __indices; -public: -#ifdef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS - - _LIBCPP_INLINE_VISIBILITY - __bind(const __bind& __b) - : __f_(__b.__f_), - __bound_args_(__b.__bound_args_) {} - - _LIBCPP_INLINE_VISIBILITY - __bind& operator=(const __bind& __b) - { - __f_ = __b.__f_; - __bound_args_ = __b.__bound_args_; - return *this; - } - - _LIBCPP_INLINE_VISIBILITY - __bind(__bind&& __b) - : __f_(_VSTD::move(__b.__f_)), - __bound_args_(_VSTD::move(__b.__bound_args_)) {} - - _LIBCPP_INLINE_VISIBILITY - __bind& operator=(__bind&& __b) - { - __f_ = _VSTD::move(__b.__f_); - __bound_args_ = _VSTD::move(__b.__bound_args_); - return *this; - } - -#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS - - template ::value && - !is_same::type, - __bind>::value - >::type> - _LIBCPP_INLINE_VISIBILITY - explicit __bind(_Gp&& __f, _BA&& ...__bound_args) - : __f_(_VSTD::forward<_Gp>(__f)), - __bound_args_(_VSTD::forward<_BA>(__bound_args)...) {} - - template - _LIBCPP_INLINE_VISIBILITY - typename __bind_return<_Fd, _Td, tuple<_Args&&...> >::type - operator()(_Args&& ...__args) - { - return __apply_functor(__f_, __bound_args_, __indices(), - tuple<_Args&&...>(_VSTD::forward<_Args>(__args)...)); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename __bind_return >::type - operator()(_Args&& ...__args) const - { - return __apply_functor(__f_, __bound_args_, __indices(), - tuple<_Args&&...>(_VSTD::forward<_Args>(__args)...)); - } -}; - -template -struct __is_bind_expression<__bind<_Fp, _BoundArgs...> > : public true_type {}; - -template -class __bind_r - : public __bind<_Fp, _BoundArgs...> -{ - typedef __bind<_Fp, _BoundArgs...> base; - typedef typename base::_Fd _Fd; - typedef typename base::_Td _Td; -public: - typedef _Rp result_type; - -#ifdef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS - - _LIBCPP_INLINE_VISIBILITY - __bind_r(const __bind_r& __b) - : base(_VSTD::forward(__b)) {} - - _LIBCPP_INLINE_VISIBILITY - __bind_r& operator=(const __bind_r& __b) - { - base::operator=(_VSTD::forward(__b)); - return *this; - } - - _LIBCPP_INLINE_VISIBILITY - __bind_r(__bind_r&& __b) - : base(_VSTD::forward(__b)) {} - - _LIBCPP_INLINE_VISIBILITY - __bind_r& operator=(__bind_r&& __b) - { - base::operator=(_VSTD::forward(__b)); - return *this; - } - -#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS - - template ::value && - !is_same::type, - __bind_r>::value - >::type> - _LIBCPP_INLINE_VISIBILITY - explicit __bind_r(_Gp&& __f, _BA&& ...__bound_args) - : base(_VSTD::forward<_Gp>(__f), - _VSTD::forward<_BA>(__bound_args)...) {} - - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if - < - is_convertible >::type, - result_type>::value || is_void<_Rp>::value, - result_type - >::type - operator()(_Args&& ...__args) - { - typedef __invoke_void_return_wrapper<_Rp> _Invoker; - return _Invoker::__call(static_cast(*this), _VSTD::forward<_Args>(__args)...); - } - - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if - < - is_convertible >::type, - result_type>::value || is_void<_Rp>::value, - result_type - >::type - operator()(_Args&& ...__args) const - { - typedef __invoke_void_return_wrapper<_Rp> _Invoker; - return _Invoker::__call(static_cast(*this), _VSTD::forward<_Args>(__args)...); - } -}; - -template -struct __is_bind_expression<__bind_r<_Rp, _Fp, _BoundArgs...> > : public true_type {}; - -template -inline _LIBCPP_INLINE_VISIBILITY -__bind<_Fp, _BoundArgs...> -bind(_Fp&& __f, _BoundArgs&&... __bound_args) -{ - typedef __bind<_Fp, _BoundArgs...> type; - return type(_VSTD::forward<_Fp>(__f), _VSTD::forward<_BoundArgs>(__bound_args)...); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -__bind_r<_Rp, _Fp, _BoundArgs...> -bind(_Fp&& __f, _BoundArgs&&... __bound_args) -{ - typedef __bind_r<_Rp, _Fp, _BoundArgs...> type; - return type(_VSTD::forward<_Fp>(__f), _VSTD::forward<_BoundArgs>(__bound_args)...); -} - -#endif // _LIBCPP_HAS_NO_VARIADICS - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(bool __v) const _NOEXCEPT {return static_cast(__v);} -}; - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(char __v) const _NOEXCEPT {return static_cast(__v);} -}; - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(signed char __v) const _NOEXCEPT {return static_cast(__v);} -}; - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(unsigned char __v) const _NOEXCEPT {return static_cast(__v);} -}; - -#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(char16_t __v) const _NOEXCEPT {return static_cast(__v);} -}; - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(char32_t __v) const _NOEXCEPT {return static_cast(__v);} -}; - -#endif // _LIBCPP_HAS_NO_UNICODE_CHARS - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(wchar_t __v) const _NOEXCEPT {return static_cast(__v);} -}; - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(short __v) const _NOEXCEPT {return static_cast(__v);} -}; - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(unsigned short __v) const _NOEXCEPT {return static_cast(__v);} -}; - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(int __v) const _NOEXCEPT {return static_cast(__v);} -}; - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(unsigned int __v) const _NOEXCEPT {return static_cast(__v);} -}; - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(long __v) const _NOEXCEPT {return static_cast(__v);} -}; - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(unsigned long __v) const _NOEXCEPT {return static_cast(__v);} -}; - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public __scalar_hash -{ -}; - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public __scalar_hash -{ -}; - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public __scalar_hash -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(float __v) const _NOEXCEPT - { - // -0.0 and 0.0 should return same hash - if (__v == 0) - return 0; - return __scalar_hash::operator()(__v); - } -}; - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public __scalar_hash -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(double __v) const _NOEXCEPT - { - // -0.0 and 0.0 should return same hash - if (__v == 0) - return 0; - return __scalar_hash::operator()(__v); - } -}; - -template <> -struct _LIBCPP_TYPE_VIS_ONLY hash - : public __scalar_hash -{ - _LIBCPP_INLINE_VISIBILITY - size_t operator()(long double __v) const _NOEXCEPT - { - // -0.0 and 0.0 should return same hash - if (__v == 0) - return 0; -#if defined(__i386__) - // Zero out padding bits - union - { - long double __t; - struct - { - size_t __a; - size_t __b; - size_t __c; - size_t __d; - } __s; - } __u; - __u.__s.__a = 0; - __u.__s.__b = 0; - __u.__s.__c = 0; - __u.__s.__d = 0; - __u.__t = __v; - return __u.__s.__a ^ __u.__s.__b ^ __u.__s.__c ^ __u.__s.__d; -#elif defined(__x86_64__) - // Zero out padding bits - union - { - long double __t; - struct - { - size_t __a; - size_t __b; - } __s; - } __u; - __u.__s.__a = 0; - __u.__s.__b = 0; - __u.__t = __v; - return __u.__s.__a ^ __u.__s.__b; -#else - return __scalar_hash::operator()(__v); -#endif - } -}; - -#if _LIBCPP_STD_VER > 11 -template -struct _LIBCPP_TYPE_VIS_ONLY hash - : public unary_function<_Tp, size_t> -{ - static_assert(is_enum<_Tp>::value, "This hash only works for enumeration types"); - - _LIBCPP_INLINE_VISIBILITY - size_t operator()(_Tp __v) const _NOEXCEPT - { - typedef typename underlying_type<_Tp>::type type; - return hash{}(static_cast(__v)); - } -}; -#endif - - -#if _LIBCPP_STD_VER > 14 -template -result_of_t<_Fn&&(_Args&&...)> -invoke(_Fn&& __f, _Args&&... __args) { - return __invoke(_VSTD::forward<_Fn>(__f), _VSTD::forward<_Args>(__args)...); -} -#endif - -// struct hash in - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_FUNCTIONAL diff --git a/headers/libs/libc++/future b/headers/libs/libc++/future deleted file mode 100644 index ce15eafbf7..0000000000 --- a/headers/libs/libc++/future +++ /dev/null @@ -1,2604 +0,0 @@ -// -*- C++ -*- -//===--------------------------- future -----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_FUTURE -#define _LIBCPP_FUTURE - -/* - future synopsis - -namespace std -{ - -enum class future_errc -{ - future_already_retrieved = 1, - promise_already_satisfied, - no_state, - broken_promise -}; - -enum class launch -{ - async = 1, - deferred = 2, - any = async | deferred -}; - -enum class future_status -{ - ready, - timeout, - deferred -}; - -template <> struct is_error_code_enum : public true_type { }; -error_code make_error_code(future_errc e) noexcept; -error_condition make_error_condition(future_errc e) noexcept; - -const error_category& future_category() noexcept; - -class future_error - : public logic_error -{ -public: - future_error(error_code ec); // exposition only - - const error_code& code() const noexcept; - const char* what() const noexcept; -}; - -template -class promise -{ -public: - promise(); - template - promise(allocator_arg_t, const Allocator& a); - promise(promise&& rhs) noexcept; - promise(const promise& rhs) = delete; - ~promise(); - - // assignment - promise& operator=(promise&& rhs) noexcept; - promise& operator=(const promise& rhs) = delete; - void swap(promise& other) noexcept; - - // retrieving the result - future get_future(); - - // setting the result - void set_value(const R& r); - void set_value(R&& r); - void set_exception(exception_ptr p); - - // setting the result with deferred notification - void set_value_at_thread_exit(const R& r); - void set_value_at_thread_exit(R&& r); - void set_exception_at_thread_exit(exception_ptr p); -}; - -template -class promise -{ -public: - promise(); - template - promise(allocator_arg_t, const Allocator& a); - promise(promise&& rhs) noexcept; - promise(const promise& rhs) = delete; - ~promise(); - - // assignment - promise& operator=(promise&& rhs) noexcept; - promise& operator=(const promise& rhs) = delete; - void swap(promise& other) noexcept; - - // retrieving the result - future get_future(); - - // setting the result - void set_value(R& r); - void set_exception(exception_ptr p); - - // setting the result with deferred notification - void set_value_at_thread_exit(R&); - void set_exception_at_thread_exit(exception_ptr p); -}; - -template <> -class promise -{ -public: - promise(); - template - promise(allocator_arg_t, const Allocator& a); - promise(promise&& rhs) noexcept; - promise(const promise& rhs) = delete; - ~promise(); - - // assignment - promise& operator=(promise&& rhs) noexcept; - promise& operator=(const promise& rhs) = delete; - void swap(promise& other) noexcept; - - // retrieving the result - future get_future(); - - // setting the result - void set_value(); - void set_exception(exception_ptr p); - - // setting the result with deferred notification - void set_value_at_thread_exit(); - void set_exception_at_thread_exit(exception_ptr p); -}; - -template void swap(promise& x, promise& y) noexcept; - -template - struct uses_allocator, Alloc> : public true_type {}; - -template -class future -{ -public: - future() noexcept; - future(future&&) noexcept; - future(const future& rhs) = delete; - ~future(); - future& operator=(const future& rhs) = delete; - future& operator=(future&&) noexcept; - shared_future share(); - - // retrieving the value - R get(); - - // functions to check state - bool valid() const noexcept; - - void wait() const; - template - future_status - wait_for(const chrono::duration& rel_time) const; - template - future_status - wait_until(const chrono::time_point& abs_time) const; -}; - -template -class future -{ -public: - future() noexcept; - future(future&&) noexcept; - future(const future& rhs) = delete; - ~future(); - future& operator=(const future& rhs) = delete; - future& operator=(future&&) noexcept; - shared_future share(); - - // retrieving the value - R& get(); - - // functions to check state - bool valid() const noexcept; - - void wait() const; - template - future_status - wait_for(const chrono::duration& rel_time) const; - template - future_status - wait_until(const chrono::time_point& abs_time) const; -}; - -template <> -class future -{ -public: - future() noexcept; - future(future&&) noexcept; - future(const future& rhs) = delete; - ~future(); - future& operator=(const future& rhs) = delete; - future& operator=(future&&) noexcept; - shared_future share(); - - // retrieving the value - void get(); - - // functions to check state - bool valid() const noexcept; - - void wait() const; - template - future_status - wait_for(const chrono::duration& rel_time) const; - template - future_status - wait_until(const chrono::time_point& abs_time) const; -}; - -template -class shared_future -{ -public: - shared_future() noexcept; - shared_future(const shared_future& rhs); - shared_future(future&&) noexcept; - shared_future(shared_future&& rhs) noexcept; - ~shared_future(); - shared_future& operator=(const shared_future& rhs); - shared_future& operator=(shared_future&& rhs) noexcept; - - // retrieving the value - const R& get() const; - - // functions to check state - bool valid() const noexcept; - - void wait() const; - template - future_status - wait_for(const chrono::duration& rel_time) const; - template - future_status - wait_until(const chrono::time_point& abs_time) const; -}; - -template -class shared_future -{ -public: - shared_future() noexcept; - shared_future(const shared_future& rhs); - shared_future(future&&) noexcept; - shared_future(shared_future&& rhs) noexcept; - ~shared_future(); - shared_future& operator=(const shared_future& rhs); - shared_future& operator=(shared_future&& rhs) noexcept; - - // retrieving the value - R& get() const; - - // functions to check state - bool valid() const noexcept; - - void wait() const; - template - future_status - wait_for(const chrono::duration& rel_time) const; - template - future_status - wait_until(const chrono::time_point& abs_time) const; -}; - -template <> -class shared_future -{ -public: - shared_future() noexcept; - shared_future(const shared_future& rhs); - shared_future(future&&) noexcept; - shared_future(shared_future&& rhs) noexcept; - ~shared_future(); - shared_future& operator=(const shared_future& rhs); - shared_future& operator=(shared_future&& rhs) noexcept; - - // retrieving the value - void get() const; - - // functions to check state - bool valid() const noexcept; - - void wait() const; - template - future_status - wait_for(const chrono::duration& rel_time) const; - template - future_status - wait_until(const chrono::time_point& abs_time) const; -}; - -template - future::type(typename decay::type...)>::type> - async(F&& f, Args&&... args); - -template - future::type(typename decay::type...)>::type> - async(launch policy, F&& f, Args&&... args); - -template class packaged_task; // undefined - -template -class packaged_task -{ -public: - typedef R result_type; - - // construction and destruction - packaged_task() noexcept; - template - explicit packaged_task(F&& f); - template - packaged_task(allocator_arg_t, const Allocator& a, F&& f); - ~packaged_task(); - - // no copy - packaged_task(const packaged_task&) = delete; - packaged_task& operator=(const packaged_task&) = delete; - - // move support - packaged_task(packaged_task&& other) noexcept; - packaged_task& operator=(packaged_task&& other) noexcept; - void swap(packaged_task& other) noexcept; - - bool valid() const noexcept; - - // result retrieval - future get_future(); - - // execution - void operator()(ArgTypes... ); - void make_ready_at_thread_exit(ArgTypes...); - - void reset(); -}; - -template - void swap(packaged_task&) noexcept; - -template struct uses_allocator, Alloc>; - -} // std - -*/ - -#include <__config> -#include -#include -#include -#include -#include -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#ifdef _LIBCPP_HAS_NO_THREADS -#error is not supported on this single threaded system -#else // !_LIBCPP_HAS_NO_THREADS - -_LIBCPP_BEGIN_NAMESPACE_STD - -//enum class future_errc -_LIBCPP_DECLARE_STRONG_ENUM(future_errc) -{ - future_already_retrieved = 1, - promise_already_satisfied, - no_state, - broken_promise -}; -_LIBCPP_DECLARE_STRONG_ENUM_EPILOG(future_errc) - -template <> -struct _LIBCPP_TYPE_VIS_ONLY is_error_code_enum : public true_type {}; - -#ifdef _LIBCPP_HAS_NO_STRONG_ENUMS -template <> -struct _LIBCPP_TYPE_VIS_ONLY is_error_code_enum : public true_type { }; -#endif - -//enum class launch -_LIBCPP_DECLARE_STRONG_ENUM(launch) -{ - async = 1, - deferred = 2, - any = async | deferred -}; -_LIBCPP_DECLARE_STRONG_ENUM_EPILOG(launch) - -#ifndef _LIBCPP_HAS_NO_STRONG_ENUMS - -#ifdef _LIBCXX_UNDERLYING_TYPE -typedef underlying_type::type __launch_underlying_type; -#else -typedef int __launch_underlying_type; -#endif - -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -launch -operator&(launch __x, launch __y) -{ - return static_cast(static_cast<__launch_underlying_type>(__x) & - static_cast<__launch_underlying_type>(__y)); -} - -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -launch -operator|(launch __x, launch __y) -{ - return static_cast(static_cast<__launch_underlying_type>(__x) | - static_cast<__launch_underlying_type>(__y)); -} - -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -launch -operator^(launch __x, launch __y) -{ - return static_cast(static_cast<__launch_underlying_type>(__x) ^ - static_cast<__launch_underlying_type>(__y)); -} - -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR -launch -operator~(launch __x) -{ - return static_cast(~static_cast<__launch_underlying_type>(__x) & 3); -} - -inline _LIBCPP_INLINE_VISIBILITY -launch& -operator&=(launch& __x, launch __y) -{ - __x = __x & __y; return __x; -} - -inline _LIBCPP_INLINE_VISIBILITY -launch& -operator|=(launch& __x, launch __y) -{ - __x = __x | __y; return __x; -} - -inline _LIBCPP_INLINE_VISIBILITY -launch& -operator^=(launch& __x, launch __y) -{ - __x = __x ^ __y; return __x; -} - -#endif // !_LIBCPP_HAS_NO_STRONG_ENUMS - -//enum class future_status -_LIBCPP_DECLARE_STRONG_ENUM(future_status) -{ - ready, - timeout, - deferred -}; -_LIBCPP_DECLARE_STRONG_ENUM_EPILOG(future_status) - -_LIBCPP_FUNC_VIS -const error_category& future_category() _NOEXCEPT; - -inline _LIBCPP_INLINE_VISIBILITY -error_code -make_error_code(future_errc __e) _NOEXCEPT -{ - return error_code(static_cast(__e), future_category()); -} - -inline _LIBCPP_INLINE_VISIBILITY -error_condition -make_error_condition(future_errc __e) _NOEXCEPT -{ - return error_condition(static_cast(__e), future_category()); -} - -class _LIBCPP_EXCEPTION_ABI future_error - : public logic_error -{ - error_code __ec_; -public: - future_error(error_code __ec); - - _LIBCPP_INLINE_VISIBILITY - const error_code& code() const _NOEXCEPT {return __ec_;} - - virtual ~future_error() _NOEXCEPT; -}; - -inline _LIBCPP_ALWAYS_INLINE -void __throw_future_error(future_errc _Ev) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - throw future_error(make_error_code(_Ev)); -#else - assert(!"future_error"); -#endif -} - -class _LIBCPP_TYPE_VIS __assoc_sub_state - : public __shared_count -{ -protected: - exception_ptr __exception_; - mutable mutex __mut_; - mutable condition_variable __cv_; - unsigned __state_; - - virtual void __on_zero_shared() _NOEXCEPT; - void __sub_wait(unique_lock& __lk); -public: - enum - { - __constructed = 1, - __future_attached = 2, - ready = 4, - deferred = 8 - }; - - _LIBCPP_INLINE_VISIBILITY - __assoc_sub_state() : __state_(0) {} - - _LIBCPP_INLINE_VISIBILITY - bool __has_value() const - {return (__state_ & __constructed) || (__exception_ != nullptr);} - - _LIBCPP_INLINE_VISIBILITY - void __set_future_attached() - { - lock_guard __lk(__mut_); - __state_ |= __future_attached; - } - _LIBCPP_INLINE_VISIBILITY - bool __has_future_attached() const {return (__state_ & __future_attached) != 0;} - - _LIBCPP_INLINE_VISIBILITY - void __set_deferred() {__state_ |= deferred;} - - void __make_ready(); - _LIBCPP_INLINE_VISIBILITY - bool __is_ready() const {return (__state_ & ready) != 0;} - - void set_value(); - void set_value_at_thread_exit(); - - void set_exception(exception_ptr __p); - void set_exception_at_thread_exit(exception_ptr __p); - - void copy(); - - void wait(); - template - future_status - _LIBCPP_INLINE_VISIBILITY - wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const; - template - future_status - wait_until(const chrono::time_point<_Clock, _Duration>& __abs_time) const; - - virtual void __execute(); -}; - -template -future_status -__assoc_sub_state::wait_until(const chrono::time_point<_Clock, _Duration>& __abs_time) const -{ - unique_lock __lk(__mut_); - if (__state_ & deferred) - return future_status::deferred; - while (!(__state_ & ready) && _Clock::now() < __abs_time) - __cv_.wait_until(__lk, __abs_time); - if (__state_ & ready) - return future_status::ready; - return future_status::timeout; -} - -template -inline -future_status -__assoc_sub_state::wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const -{ - return wait_until(chrono::steady_clock::now() + __rel_time); -} - -template -class __assoc_state - : public __assoc_sub_state -{ - typedef __assoc_sub_state base; - typedef typename aligned_storage::value>::type _Up; -protected: - _Up __value_; - - virtual void __on_zero_shared() _NOEXCEPT; -public: - - template -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - void set_value(_Arg&& __arg); -#else - void set_value(_Arg& __arg); -#endif - - template -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - void set_value_at_thread_exit(_Arg&& __arg); -#else - void set_value_at_thread_exit(_Arg& __arg); -#endif - - _Rp move(); - typename add_lvalue_reference<_Rp>::type copy(); -}; - -template -void -__assoc_state<_Rp>::__on_zero_shared() _NOEXCEPT -{ - if (this->__state_ & base::__constructed) - reinterpret_cast<_Rp*>(&__value_)->~_Rp(); - delete this; -} - -template -template -void -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -__assoc_state<_Rp>::set_value(_Arg&& __arg) -#else -__assoc_state<_Rp>::set_value(_Arg& __arg) -#endif -{ - unique_lock __lk(this->__mut_); - if (this->__has_value()) - __throw_future_error(future_errc::promise_already_satisfied); - ::new(&__value_) _Rp(_VSTD::forward<_Arg>(__arg)); - this->__state_ |= base::__constructed | base::ready; - __cv_.notify_all(); -} - -template -template -void -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -__assoc_state<_Rp>::set_value_at_thread_exit(_Arg&& __arg) -#else -__assoc_state<_Rp>::set_value_at_thread_exit(_Arg& __arg) -#endif -{ - unique_lock __lk(this->__mut_); - if (this->__has_value()) - __throw_future_error(future_errc::promise_already_satisfied); - ::new(&__value_) _Rp(_VSTD::forward<_Arg>(__arg)); - this->__state_ |= base::__constructed; - __thread_local_data()->__make_ready_at_thread_exit(this); -} - -template -_Rp -__assoc_state<_Rp>::move() -{ - unique_lock __lk(this->__mut_); - this->__sub_wait(__lk); - if (this->__exception_ != nullptr) - rethrow_exception(this->__exception_); - return _VSTD::move(*reinterpret_cast<_Rp*>(&__value_)); -} - -template -typename add_lvalue_reference<_Rp>::type -__assoc_state<_Rp>::copy() -{ - unique_lock __lk(this->__mut_); - this->__sub_wait(__lk); - if (this->__exception_ != nullptr) - rethrow_exception(this->__exception_); - return *reinterpret_cast<_Rp*>(&__value_); -} - -template -class __assoc_state<_Rp&> - : public __assoc_sub_state -{ - typedef __assoc_sub_state base; - typedef _Rp* _Up; -protected: - _Up __value_; - - virtual void __on_zero_shared() _NOEXCEPT; -public: - - void set_value(_Rp& __arg); - void set_value_at_thread_exit(_Rp& __arg); - - _Rp& copy(); -}; - -template -void -__assoc_state<_Rp&>::__on_zero_shared() _NOEXCEPT -{ - delete this; -} - -template -void -__assoc_state<_Rp&>::set_value(_Rp& __arg) -{ - unique_lock __lk(this->__mut_); - if (this->__has_value()) - __throw_future_error(future_errc::promise_already_satisfied); - __value_ = _VSTD::addressof(__arg); - this->__state_ |= base::__constructed | base::ready; - __cv_.notify_all(); -} - -template -void -__assoc_state<_Rp&>::set_value_at_thread_exit(_Rp& __arg) -{ - unique_lock __lk(this->__mut_); - if (this->__has_value()) - __throw_future_error(future_errc::promise_already_satisfied); - __value_ = _VSTD::addressof(__arg); - this->__state_ |= base::__constructed; - __thread_local_data()->__make_ready_at_thread_exit(this); -} - -template -_Rp& -__assoc_state<_Rp&>::copy() -{ - unique_lock __lk(this->__mut_); - this->__sub_wait(__lk); - if (this->__exception_ != nullptr) - rethrow_exception(this->__exception_); - return *__value_; -} - -template -class __assoc_state_alloc - : public __assoc_state<_Rp> -{ - typedef __assoc_state<_Rp> base; - _Alloc __alloc_; - - virtual void __on_zero_shared() _NOEXCEPT; -public: - _LIBCPP_INLINE_VISIBILITY - explicit __assoc_state_alloc(const _Alloc& __a) - : __alloc_(__a) {} -}; - -template -void -__assoc_state_alloc<_Rp, _Alloc>::__on_zero_shared() _NOEXCEPT -{ - if (this->__state_ & base::__constructed) - reinterpret_cast<_Rp*>(_VSTD::addressof(this->__value_))->~_Rp(); - typedef typename __allocator_traits_rebind<_Alloc, __assoc_state_alloc>::type _Al; - typedef allocator_traits<_Al> _ATraits; - typedef pointer_traits _PTraits; - _Al __a(__alloc_); - this->~__assoc_state_alloc(); - __a.deallocate(_PTraits::pointer_to(*this), 1); -} - -template -class __assoc_state_alloc<_Rp&, _Alloc> - : public __assoc_state<_Rp&> -{ - typedef __assoc_state<_Rp&> base; - _Alloc __alloc_; - - virtual void __on_zero_shared() _NOEXCEPT; -public: - _LIBCPP_INLINE_VISIBILITY - explicit __assoc_state_alloc(const _Alloc& __a) - : __alloc_(__a) {} -}; - -template -void -__assoc_state_alloc<_Rp&, _Alloc>::__on_zero_shared() _NOEXCEPT -{ - typedef typename __allocator_traits_rebind<_Alloc, __assoc_state_alloc>::type _Al; - typedef allocator_traits<_Al> _ATraits; - typedef pointer_traits _PTraits; - _Al __a(__alloc_); - this->~__assoc_state_alloc(); - __a.deallocate(_PTraits::pointer_to(*this), 1); -} - -template -class __assoc_sub_state_alloc - : public __assoc_sub_state -{ - typedef __assoc_sub_state base; - _Alloc __alloc_; - - virtual void __on_zero_shared() _NOEXCEPT; -public: - _LIBCPP_INLINE_VISIBILITY - explicit __assoc_sub_state_alloc(const _Alloc& __a) - : __alloc_(__a) {} -}; - -template -void -__assoc_sub_state_alloc<_Alloc>::__on_zero_shared() _NOEXCEPT -{ - typedef typename __allocator_traits_rebind<_Alloc, __assoc_sub_state_alloc>::type _Al; - typedef allocator_traits<_Al> _ATraits; - typedef pointer_traits _PTraits; - _Al __a(__alloc_); - this->~__assoc_sub_state_alloc(); - __a.deallocate(_PTraits::pointer_to(*this), 1); -} - -template -class __deferred_assoc_state - : public __assoc_state<_Rp> -{ - typedef __assoc_state<_Rp> base; - - _Fp __func_; - -public: -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - explicit __deferred_assoc_state(_Fp&& __f); -#endif - - virtual void __execute(); -}; - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline -__deferred_assoc_state<_Rp, _Fp>::__deferred_assoc_state(_Fp&& __f) - : __func_(_VSTD::forward<_Fp>(__f)) -{ - this->__set_deferred(); -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -__deferred_assoc_state<_Rp, _Fp>::__execute() -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - this->set_value(__func_()); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->set_exception(current_exception()); - } -#endif // _LIBCPP_NO_EXCEPTIONS -} - -template -class __deferred_assoc_state - : public __assoc_sub_state -{ - typedef __assoc_sub_state base; - - _Fp __func_; - -public: -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - explicit __deferred_assoc_state(_Fp&& __f); -#endif - - virtual void __execute(); -}; - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline -__deferred_assoc_state::__deferred_assoc_state(_Fp&& __f) - : __func_(_VSTD::forward<_Fp>(__f)) -{ - this->__set_deferred(); -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -__deferred_assoc_state::__execute() -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - __func_(); - this->set_value(); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->set_exception(current_exception()); - } -#endif // _LIBCPP_NO_EXCEPTIONS -} - -template -class __async_assoc_state - : public __assoc_state<_Rp> -{ - typedef __assoc_state<_Rp> base; - - _Fp __func_; - - virtual void __on_zero_shared() _NOEXCEPT; -public: -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - explicit __async_assoc_state(_Fp&& __f); -#endif - - virtual void __execute(); -}; - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline -__async_assoc_state<_Rp, _Fp>::__async_assoc_state(_Fp&& __f) - : __func_(_VSTD::forward<_Fp>(__f)) -{ -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -__async_assoc_state<_Rp, _Fp>::__execute() -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - this->set_value(__func_()); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->set_exception(current_exception()); - } -#endif // _LIBCPP_NO_EXCEPTIONS -} - -template -void -__async_assoc_state<_Rp, _Fp>::__on_zero_shared() _NOEXCEPT -{ - this->wait(); - base::__on_zero_shared(); -} - -template -class __async_assoc_state - : public __assoc_sub_state -{ - typedef __assoc_sub_state base; - - _Fp __func_; - - virtual void __on_zero_shared() _NOEXCEPT; -public: -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - explicit __async_assoc_state(_Fp&& __f); -#endif - - virtual void __execute(); -}; - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline -__async_assoc_state::__async_assoc_state(_Fp&& __f) - : __func_(_VSTD::forward<_Fp>(__f)) -{ -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -__async_assoc_state::__execute() -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - __func_(); - this->set_value(); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->set_exception(current_exception()); - } -#endif // _LIBCPP_NO_EXCEPTIONS -} - -template -void -__async_assoc_state::__on_zero_shared() _NOEXCEPT -{ - this->wait(); - base::__on_zero_shared(); -} - -template class _LIBCPP_TYPE_VIS_ONLY promise; -template class _LIBCPP_TYPE_VIS_ONLY shared_future; - -// future - -template class _LIBCPP_TYPE_VIS_ONLY future; - -template -future<_Rp> -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -__make_deferred_assoc_state(_Fp&& __f); -#else -__make_deferred_assoc_state(_Fp __f); -#endif - -template -future<_Rp> -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -__make_async_assoc_state(_Fp&& __f); -#else -__make_async_assoc_state(_Fp __f); -#endif - -template -class _LIBCPP_TYPE_VIS_ONLY future -{ - __assoc_state<_Rp>* __state_; - - explicit future(__assoc_state<_Rp>* __state); - - template friend class promise; - template friend class shared_future; - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - template - friend future<_R1> __make_deferred_assoc_state(_Fp&& __f); - template - friend future<_R1> __make_async_assoc_state(_Fp&& __f); -#else - template - friend future<_R1> __make_deferred_assoc_state(_Fp __f); - template - friend future<_R1> __make_async_assoc_state(_Fp __f); -#endif - -public: - _LIBCPP_INLINE_VISIBILITY - future() _NOEXCEPT : __state_(nullptr) {} -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - future(future&& __rhs) _NOEXCEPT - : __state_(__rhs.__state_) {__rhs.__state_ = nullptr;} - future(const future&) = delete; - future& operator=(const future&) = delete; - _LIBCPP_INLINE_VISIBILITY - future& operator=(future&& __rhs) _NOEXCEPT - { - future(std::move(__rhs)).swap(*this); - return *this; - } -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES -private: - future(const future&); - future& operator=(const future&); -public: -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - ~future(); - _LIBCPP_INLINE_VISIBILITY - shared_future<_Rp> share(); - - // retrieving the value - _Rp get(); - - _LIBCPP_INLINE_VISIBILITY - void swap(future& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);} - - // functions to check state - _LIBCPP_INLINE_VISIBILITY - bool valid() const _NOEXCEPT {return __state_ != nullptr;} - - _LIBCPP_INLINE_VISIBILITY - void wait() const {__state_->wait();} - template - _LIBCPP_INLINE_VISIBILITY - future_status - wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const - {return __state_->wait_for(__rel_time);} - template - _LIBCPP_INLINE_VISIBILITY - future_status - wait_until(const chrono::time_point<_Clock, _Duration>& __abs_time) const - {return __state_->wait_until(__abs_time);} -}; - -template -future<_Rp>::future(__assoc_state<_Rp>* __state) - : __state_(__state) -{ - if (__state_->__has_future_attached()) - __throw_future_error(future_errc::future_already_retrieved); - __state_->__add_shared(); - __state_->__set_future_attached(); -} - -struct __release_shared_count -{ - void operator()(__shared_count* p) {p->__release_shared();} -}; - -template -future<_Rp>::~future() -{ - if (__state_) - __state_->__release_shared(); -} - -template -_Rp -future<_Rp>::get() -{ - unique_ptr<__shared_count, __release_shared_count> __(__state_); - __assoc_state<_Rp>* __s = __state_; - __state_ = nullptr; - return __s->move(); -} - -template -class _LIBCPP_TYPE_VIS_ONLY future<_Rp&> -{ - __assoc_state<_Rp&>* __state_; - - explicit future(__assoc_state<_Rp&>* __state); - - template friend class promise; - template friend class shared_future; - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - template - friend future<_R1> __make_deferred_assoc_state(_Fp&& __f); - template - friend future<_R1> __make_async_assoc_state(_Fp&& __f); -#else - template - friend future<_R1> __make_deferred_assoc_state(_Fp __f); - template - friend future<_R1> __make_async_assoc_state(_Fp __f); -#endif - -public: - _LIBCPP_INLINE_VISIBILITY - future() _NOEXCEPT : __state_(nullptr) {} -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - future(future&& __rhs) _NOEXCEPT - : __state_(__rhs.__state_) {__rhs.__state_ = nullptr;} - future(const future&) = delete; - future& operator=(const future&) = delete; - _LIBCPP_INLINE_VISIBILITY - future& operator=(future&& __rhs) _NOEXCEPT - { - future(std::move(__rhs)).swap(*this); - return *this; - } -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES -private: - future(const future&); - future& operator=(const future&); -public: -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - ~future(); - _LIBCPP_INLINE_VISIBILITY - shared_future<_Rp&> share(); - - // retrieving the value - _Rp& get(); - - _LIBCPP_INLINE_VISIBILITY - void swap(future& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);} - - // functions to check state - _LIBCPP_INLINE_VISIBILITY - bool valid() const _NOEXCEPT {return __state_ != nullptr;} - - _LIBCPP_INLINE_VISIBILITY - void wait() const {__state_->wait();} - template - _LIBCPP_INLINE_VISIBILITY - future_status - wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const - {return __state_->wait_for(__rel_time);} - template - _LIBCPP_INLINE_VISIBILITY - future_status - wait_until(const chrono::time_point<_Clock, _Duration>& __abs_time) const - {return __state_->wait_until(__abs_time);} -}; - -template -future<_Rp&>::future(__assoc_state<_Rp&>* __state) - : __state_(__state) -{ - if (__state_->__has_future_attached()) - __throw_future_error(future_errc::future_already_retrieved); - __state_->__add_shared(); - __state_->__set_future_attached(); -} - -template -future<_Rp&>::~future() -{ - if (__state_) - __state_->__release_shared(); -} - -template -_Rp& -future<_Rp&>::get() -{ - unique_ptr<__shared_count, __release_shared_count> __(__state_); - __assoc_state<_Rp&>* __s = __state_; - __state_ = nullptr; - return __s->copy(); -} - -template <> -class _LIBCPP_TYPE_VIS future -{ - __assoc_sub_state* __state_; - - explicit future(__assoc_sub_state* __state); - - template friend class promise; - template friend class shared_future; - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - template - friend future<_R1> __make_deferred_assoc_state(_Fp&& __f); - template - friend future<_R1> __make_async_assoc_state(_Fp&& __f); -#else - template - friend future<_R1> __make_deferred_assoc_state(_Fp __f); - template - friend future<_R1> __make_async_assoc_state(_Fp __f); -#endif - -public: - _LIBCPP_INLINE_VISIBILITY - future() _NOEXCEPT : __state_(nullptr) {} -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - future(future&& __rhs) _NOEXCEPT - : __state_(__rhs.__state_) {__rhs.__state_ = nullptr;} - future(const future&) = delete; - future& operator=(const future&) = delete; - _LIBCPP_INLINE_VISIBILITY - future& operator=(future&& __rhs) _NOEXCEPT - { - future(std::move(__rhs)).swap(*this); - return *this; - } -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES -private: - future(const future&); - future& operator=(const future&); -public: -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - ~future(); - _LIBCPP_INLINE_VISIBILITY - shared_future share(); - - // retrieving the value - void get(); - - _LIBCPP_INLINE_VISIBILITY - void swap(future& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);} - - // functions to check state - _LIBCPP_INLINE_VISIBILITY - bool valid() const _NOEXCEPT {return __state_ != nullptr;} - - _LIBCPP_INLINE_VISIBILITY - void wait() const {__state_->wait();} - template - _LIBCPP_INLINE_VISIBILITY - future_status - wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const - {return __state_->wait_for(__rel_time);} - template - _LIBCPP_INLINE_VISIBILITY - future_status - wait_until(const chrono::time_point<_Clock, _Duration>& __abs_time) const - {return __state_->wait_until(__abs_time);} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(future<_Rp>& __x, future<_Rp>& __y) _NOEXCEPT -{ - __x.swap(__y); -} - -// promise - -template class packaged_task; - -template -class _LIBCPP_TYPE_VIS_ONLY promise -{ - __assoc_state<_Rp>* __state_; - - _LIBCPP_INLINE_VISIBILITY - explicit promise(nullptr_t) _NOEXCEPT : __state_(nullptr) {} - - template friend class packaged_task; -public: - promise(); - template - promise(allocator_arg_t, const _Alloc& __a); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - promise(promise&& __rhs) _NOEXCEPT - : __state_(__rhs.__state_) {__rhs.__state_ = nullptr;} - promise(const promise& __rhs) = delete; -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES -private: - promise(const promise& __rhs); -public: -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - ~promise(); - - // assignment -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - promise& operator=(promise&& __rhs) _NOEXCEPT - { - promise(std::move(__rhs)).swap(*this); - return *this; - } - promise& operator=(const promise& __rhs) = delete; -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES -private: - promise& operator=(const promise& __rhs); -public: -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - void swap(promise& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);} - - // retrieving the result - future<_Rp> get_future(); - - // setting the result - void set_value(const _Rp& __r); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - void set_value(_Rp&& __r); -#endif - void set_exception(exception_ptr __p); - - // setting the result with deferred notification - void set_value_at_thread_exit(const _Rp& __r); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - void set_value_at_thread_exit(_Rp&& __r); -#endif - void set_exception_at_thread_exit(exception_ptr __p); -}; - -template -promise<_Rp>::promise() - : __state_(new __assoc_state<_Rp>) -{ -} - -template -template -promise<_Rp>::promise(allocator_arg_t, const _Alloc& __a0) -{ - typedef __assoc_state_alloc<_Rp, _Alloc> _State; - typedef typename __allocator_traits_rebind<_Alloc, _State>::type _A2; - typedef __allocator_destructor<_A2> _D2; - _A2 __a(__a0); - unique_ptr<_State, _D2> __hold(__a.allocate(1), _D2(__a, 1)); - ::new(static_cast(_VSTD::addressof(*__hold.get()))) _State(__a0); - __state_ = _VSTD::addressof(*__hold.release()); -} - -template -promise<_Rp>::~promise() -{ - if (__state_) - { - if (!__state_->__has_value() && __state_->use_count() > 1) - __state_->set_exception(make_exception_ptr( - future_error(make_error_code(future_errc::broken_promise)) - )); - __state_->__release_shared(); - } -} - -template -future<_Rp> -promise<_Rp>::get_future() -{ - if (__state_ == nullptr) - __throw_future_error(future_errc::no_state); - return future<_Rp>(__state_); -} - -template -void -promise<_Rp>::set_value(const _Rp& __r) -{ - if (__state_ == nullptr) - __throw_future_error(future_errc::no_state); - __state_->set_value(__r); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -promise<_Rp>::set_value(_Rp&& __r) -{ - if (__state_ == nullptr) - __throw_future_error(future_errc::no_state); - __state_->set_value(_VSTD::move(__r)); -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -promise<_Rp>::set_exception(exception_ptr __p) -{ - if (__state_ == nullptr) - __throw_future_error(future_errc::no_state); - __state_->set_exception(__p); -} - -template -void -promise<_Rp>::set_value_at_thread_exit(const _Rp& __r) -{ - if (__state_ == nullptr) - __throw_future_error(future_errc::no_state); - __state_->set_value_at_thread_exit(__r); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -promise<_Rp>::set_value_at_thread_exit(_Rp&& __r) -{ - if (__state_ == nullptr) - __throw_future_error(future_errc::no_state); - __state_->set_value_at_thread_exit(_VSTD::move(__r)); -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -promise<_Rp>::set_exception_at_thread_exit(exception_ptr __p) -{ - if (__state_ == nullptr) - __throw_future_error(future_errc::no_state); - __state_->set_exception_at_thread_exit(__p); -} - -// promise - -template -class _LIBCPP_TYPE_VIS_ONLY promise<_Rp&> -{ - __assoc_state<_Rp&>* __state_; - - _LIBCPP_INLINE_VISIBILITY - explicit promise(nullptr_t) _NOEXCEPT : __state_(nullptr) {} - - template friend class packaged_task; - -public: - promise(); - template - promise(allocator_arg_t, const _Allocator& __a); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - promise(promise&& __rhs) _NOEXCEPT - : __state_(__rhs.__state_) {__rhs.__state_ = nullptr;} - promise(const promise& __rhs) = delete; -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES -private: - promise(const promise& __rhs); -public: -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - ~promise(); - - // assignment -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - promise& operator=(promise&& __rhs) _NOEXCEPT - { - promise(std::move(__rhs)).swap(*this); - return *this; - } - promise& operator=(const promise& __rhs) = delete; -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES -private: - promise& operator=(const promise& __rhs); -public: -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - void swap(promise& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);} - - // retrieving the result - future<_Rp&> get_future(); - - // setting the result - void set_value(_Rp& __r); - void set_exception(exception_ptr __p); - - // setting the result with deferred notification - void set_value_at_thread_exit(_Rp&); - void set_exception_at_thread_exit(exception_ptr __p); -}; - -template -promise<_Rp&>::promise() - : __state_(new __assoc_state<_Rp&>) -{ -} - -template -template -promise<_Rp&>::promise(allocator_arg_t, const _Alloc& __a0) -{ - typedef __assoc_state_alloc<_Rp&, _Alloc> _State; - typedef typename __allocator_traits_rebind<_Alloc, _State>::type _A2; - typedef __allocator_destructor<_A2> _D2; - _A2 __a(__a0); - unique_ptr<_State, _D2> __hold(__a.allocate(1), _D2(__a, 1)); - ::new(static_cast(_VSTD::addressof(*__hold.get()))) _State(__a0); - __state_ = _VSTD::addressof(*__hold.release()); -} - -template -promise<_Rp&>::~promise() -{ - if (__state_) - { - if (!__state_->__has_value() && __state_->use_count() > 1) - __state_->set_exception(make_exception_ptr( - future_error(make_error_code(future_errc::broken_promise)) - )); - __state_->__release_shared(); - } -} - -template -future<_Rp&> -promise<_Rp&>::get_future() -{ - if (__state_ == nullptr) - __throw_future_error(future_errc::no_state); - return future<_Rp&>(__state_); -} - -template -void -promise<_Rp&>::set_value(_Rp& __r) -{ - if (__state_ == nullptr) - __throw_future_error(future_errc::no_state); - __state_->set_value(__r); -} - -template -void -promise<_Rp&>::set_exception(exception_ptr __p) -{ - if (__state_ == nullptr) - __throw_future_error(future_errc::no_state); - __state_->set_exception(__p); -} - -template -void -promise<_Rp&>::set_value_at_thread_exit(_Rp& __r) -{ - if (__state_ == nullptr) - __throw_future_error(future_errc::no_state); - __state_->set_value_at_thread_exit(__r); -} - -template -void -promise<_Rp&>::set_exception_at_thread_exit(exception_ptr __p) -{ - if (__state_ == nullptr) - __throw_future_error(future_errc::no_state); - __state_->set_exception_at_thread_exit(__p); -} - -// promise - -template <> -class _LIBCPP_TYPE_VIS promise -{ - __assoc_sub_state* __state_; - - _LIBCPP_INLINE_VISIBILITY - explicit promise(nullptr_t) _NOEXCEPT : __state_(nullptr) {} - - template friend class packaged_task; - -public: - promise(); - template - promise(allocator_arg_t, const _Allocator& __a); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - promise(promise&& __rhs) _NOEXCEPT - : __state_(__rhs.__state_) {__rhs.__state_ = nullptr;} - promise(const promise& __rhs) = delete; -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES -private: - promise(const promise& __rhs); -public: -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - ~promise(); - - // assignment -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - promise& operator=(promise&& __rhs) _NOEXCEPT - { - promise(std::move(__rhs)).swap(*this); - return *this; - } - promise& operator=(const promise& __rhs) = delete; -#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES -private: - promise& operator=(const promise& __rhs); -public: -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - void swap(promise& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);} - - // retrieving the result - future get_future(); - - // setting the result - void set_value(); - void set_exception(exception_ptr __p); - - // setting the result with deferred notification - void set_value_at_thread_exit(); - void set_exception_at_thread_exit(exception_ptr __p); -}; - -template -promise::promise(allocator_arg_t, const _Alloc& __a0) -{ - typedef __assoc_sub_state_alloc<_Alloc> _State; - typedef typename __allocator_traits_rebind<_Alloc, _State>::type _A2; - typedef __allocator_destructor<_A2> _D2; - _A2 __a(__a0); - unique_ptr<_State, _D2> __hold(__a.allocate(1), _D2(__a, 1)); - ::new(static_cast(_VSTD::addressof(*__hold.get()))) _State(__a0); - __state_ = _VSTD::addressof(*__hold.release()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(promise<_Rp>& __x, promise<_Rp>& __y) _NOEXCEPT -{ - __x.swap(__y); -} - -template - struct _LIBCPP_TYPE_VIS_ONLY uses_allocator, _Alloc> - : public true_type {}; - -#ifndef _LIBCPP_HAS_NO_VARIADICS - -// packaged_task - -template class __packaged_task_base; - -template -class __packaged_task_base<_Rp(_ArgTypes...)> -{ - __packaged_task_base(const __packaged_task_base&); - __packaged_task_base& operator=(const __packaged_task_base&); -public: - _LIBCPP_INLINE_VISIBILITY - __packaged_task_base() {} - _LIBCPP_INLINE_VISIBILITY - virtual ~__packaged_task_base() {} - virtual void __move_to(__packaged_task_base*) _NOEXCEPT = 0; - virtual void destroy() = 0; - virtual void destroy_deallocate() = 0; - virtual _Rp operator()(_ArgTypes&& ...) = 0; -}; - -template class __packaged_task_func; - -template -class __packaged_task_func<_Fp, _Alloc, _Rp(_ArgTypes...)> - : public __packaged_task_base<_Rp(_ArgTypes...)> -{ - __compressed_pair<_Fp, _Alloc> __f_; -public: - _LIBCPP_INLINE_VISIBILITY - explicit __packaged_task_func(const _Fp& __f) : __f_(__f) {} - _LIBCPP_INLINE_VISIBILITY - explicit __packaged_task_func(_Fp&& __f) : __f_(_VSTD::move(__f)) {} - _LIBCPP_INLINE_VISIBILITY - __packaged_task_func(const _Fp& __f, const _Alloc& __a) - : __f_(__f, __a) {} - _LIBCPP_INLINE_VISIBILITY - __packaged_task_func(_Fp&& __f, const _Alloc& __a) - : __f_(_VSTD::move(__f), __a) {} - virtual void __move_to(__packaged_task_base<_Rp(_ArgTypes...)>*) _NOEXCEPT; - virtual void destroy(); - virtual void destroy_deallocate(); - virtual _Rp operator()(_ArgTypes&& ... __args); -}; - -template -void -__packaged_task_func<_Fp, _Alloc, _Rp(_ArgTypes...)>::__move_to( - __packaged_task_base<_Rp(_ArgTypes...)>* __p) _NOEXCEPT -{ - ::new (__p) __packaged_task_func(_VSTD::move(__f_.first()), _VSTD::move(__f_.second())); -} - -template -void -__packaged_task_func<_Fp, _Alloc, _Rp(_ArgTypes...)>::destroy() -{ - __f_.~__compressed_pair<_Fp, _Alloc>(); -} - -template -void -__packaged_task_func<_Fp, _Alloc, _Rp(_ArgTypes...)>::destroy_deallocate() -{ - typedef typename __allocator_traits_rebind<_Alloc, __packaged_task_func>::type _Ap; - typedef allocator_traits<_Ap> _ATraits; - typedef pointer_traits _PTraits; - _Ap __a(__f_.second()); - __f_.~__compressed_pair<_Fp, _Alloc>(); - __a.deallocate(_PTraits::pointer_to(*this), 1); -} - -template -_Rp -__packaged_task_func<_Fp, _Alloc, _Rp(_ArgTypes...)>::operator()(_ArgTypes&& ... __arg) -{ - return __invoke(__f_.first(), _VSTD::forward<_ArgTypes>(__arg)...); -} - -template class __packaged_task_function; - -template -class __packaged_task_function<_Rp(_ArgTypes...)> -{ - typedef __packaged_task_base<_Rp(_ArgTypes...)> __base; - typename aligned_storage<3*sizeof(void*)>::type __buf_; - __base* __f_; - -public: - typedef _Rp result_type; - - // construct/copy/destroy: - _LIBCPP_INLINE_VISIBILITY - __packaged_task_function() _NOEXCEPT : __f_(nullptr) {} - template - __packaged_task_function(_Fp&& __f); - template - __packaged_task_function(allocator_arg_t, const _Alloc& __a, _Fp&& __f); - - __packaged_task_function(__packaged_task_function&&) _NOEXCEPT; - __packaged_task_function& operator=(__packaged_task_function&&) _NOEXCEPT; - - __packaged_task_function(const __packaged_task_function&) = delete; - __packaged_task_function& operator=(const __packaged_task_function&) = delete; - - ~__packaged_task_function(); - - void swap(__packaged_task_function&) _NOEXCEPT; - - _LIBCPP_INLINE_VISIBILITY - _Rp operator()(_ArgTypes...) const; -}; - -template -__packaged_task_function<_Rp(_ArgTypes...)>::__packaged_task_function(__packaged_task_function&& __f) _NOEXCEPT -{ - if (__f.__f_ == nullptr) - __f_ = nullptr; - else if (__f.__f_ == (__base*)&__f.__buf_) - { - __f_ = (__base*)&__buf_; - __f.__f_->__move_to(__f_); - } - else - { - __f_ = __f.__f_; - __f.__f_ = nullptr; - } -} - -template -template -__packaged_task_function<_Rp(_ArgTypes...)>::__packaged_task_function(_Fp&& __f) - : __f_(nullptr) -{ - typedef typename remove_reference::type>::type _FR; - typedef __packaged_task_func<_FR, allocator<_FR>, _Rp(_ArgTypes...)> _FF; - if (sizeof(_FF) <= sizeof(__buf_)) - { - __f_ = (__base*)&__buf_; - ::new (__f_) _FF(_VSTD::forward<_Fp>(__f)); - } - else - { - typedef allocator<_FF> _Ap; - _Ap __a; - typedef __allocator_destructor<_Ap> _Dp; - unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new (__hold.get()) _FF(_VSTD::forward<_Fp>(__f), allocator<_FR>(__a)); - __f_ = __hold.release(); - } -} - -template -template -__packaged_task_function<_Rp(_ArgTypes...)>::__packaged_task_function( - allocator_arg_t, const _Alloc& __a0, _Fp&& __f) - : __f_(nullptr) -{ - typedef typename remove_reference::type>::type _FR; - typedef __packaged_task_func<_FR, _Alloc, _Rp(_ArgTypes...)> _FF; - if (sizeof(_FF) <= sizeof(__buf_)) - { - __f_ = (__base*)&__buf_; - ::new (__f_) _FF(_VSTD::forward<_Fp>(__f)); - } - else - { - typedef typename __allocator_traits_rebind<_Alloc, _FF>::type _Ap; - _Ap __a(__a0); - typedef __allocator_destructor<_Ap> _Dp; - unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); - ::new (static_cast(_VSTD::addressof(*__hold.get()))) - _FF(_VSTD::forward<_Fp>(__f), _Alloc(__a)); - __f_ = _VSTD::addressof(*__hold.release()); - } -} - -template -__packaged_task_function<_Rp(_ArgTypes...)>& -__packaged_task_function<_Rp(_ArgTypes...)>::operator=(__packaged_task_function&& __f) _NOEXCEPT -{ - if (__f_ == (__base*)&__buf_) - __f_->destroy(); - else if (__f_) - __f_->destroy_deallocate(); - __f_ = nullptr; - if (__f.__f_ == nullptr) - __f_ = nullptr; - else if (__f.__f_ == (__base*)&__f.__buf_) - { - __f_ = (__base*)&__buf_; - __f.__f_->__move_to(__f_); - } - else - { - __f_ = __f.__f_; - __f.__f_ = nullptr; - } - return *this; -} - -template -__packaged_task_function<_Rp(_ArgTypes...)>::~__packaged_task_function() -{ - if (__f_ == (__base*)&__buf_) - __f_->destroy(); - else if (__f_) - __f_->destroy_deallocate(); -} - -template -void -__packaged_task_function<_Rp(_ArgTypes...)>::swap(__packaged_task_function& __f) _NOEXCEPT -{ - if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_) - { - typename aligned_storage::type __tempbuf; - __base* __t = (__base*)&__tempbuf; - __f_->__move_to(__t); - __f_->destroy(); - __f_ = nullptr; - __f.__f_->__move_to((__base*)&__buf_); - __f.__f_->destroy(); - __f.__f_ = nullptr; - __f_ = (__base*)&__buf_; - __t->__move_to((__base*)&__f.__buf_); - __t->destroy(); - __f.__f_ = (__base*)&__f.__buf_; - } - else if (__f_ == (__base*)&__buf_) - { - __f_->__move_to((__base*)&__f.__buf_); - __f_->destroy(); - __f_ = __f.__f_; - __f.__f_ = (__base*)&__f.__buf_; - } - else if (__f.__f_ == (__base*)&__f.__buf_) - { - __f.__f_->__move_to((__base*)&__buf_); - __f.__f_->destroy(); - __f.__f_ = __f_; - __f_ = (__base*)&__buf_; - } - else - _VSTD::swap(__f_, __f.__f_); -} - -template -inline -_Rp -__packaged_task_function<_Rp(_ArgTypes...)>::operator()(_ArgTypes... __arg) const -{ - return (*__f_)(_VSTD::forward<_ArgTypes>(__arg)...); -} - -template -class _LIBCPP_TYPE_VIS_ONLY packaged_task<_Rp(_ArgTypes...)> -{ -public: - typedef _Rp result_type; - -private: - __packaged_task_function __f_; - promise __p_; - -public: - // construction and destruction - _LIBCPP_INLINE_VISIBILITY - packaged_task() _NOEXCEPT : __p_(nullptr) {} - template ::type, - packaged_task - >::value - >::type - > - _LIBCPP_INLINE_VISIBILITY - explicit packaged_task(_Fp&& __f) : __f_(_VSTD::forward<_Fp>(__f)) {} - template ::type, - packaged_task - >::value - >::type - > - _LIBCPP_INLINE_VISIBILITY - packaged_task(allocator_arg_t, const _Allocator& __a, _Fp&& __f) - : __f_(allocator_arg, __a, _VSTD::forward<_Fp>(__f)), - __p_(allocator_arg, __a) {} - // ~packaged_task() = default; - - // no copy - packaged_task(const packaged_task&) = delete; - packaged_task& operator=(const packaged_task&) = delete; - - // move support - _LIBCPP_INLINE_VISIBILITY - packaged_task(packaged_task&& __other) _NOEXCEPT - : __f_(_VSTD::move(__other.__f_)), __p_(_VSTD::move(__other.__p_)) {} - _LIBCPP_INLINE_VISIBILITY - packaged_task& operator=(packaged_task&& __other) _NOEXCEPT - { - __f_ = _VSTD::move(__other.__f_); - __p_ = _VSTD::move(__other.__p_); - return *this; - } - _LIBCPP_INLINE_VISIBILITY - void swap(packaged_task& __other) _NOEXCEPT - { - __f_.swap(__other.__f_); - __p_.swap(__other.__p_); - } - - _LIBCPP_INLINE_VISIBILITY - bool valid() const _NOEXCEPT {return __p_.__state_ != nullptr;} - - // result retrieval - _LIBCPP_INLINE_VISIBILITY - future get_future() {return __p_.get_future();} - - // execution - void operator()(_ArgTypes... __args); - void make_ready_at_thread_exit(_ArgTypes... __args); - - void reset(); -}; - -template -void -packaged_task<_Rp(_ArgTypes...)>::operator()(_ArgTypes... __args) -{ - if (__p_.__state_ == nullptr) - __throw_future_error(future_errc::no_state); - if (__p_.__state_->__has_value()) - __throw_future_error(future_errc::promise_already_satisfied); -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - __p_.set_value(__f_(_VSTD::forward<_ArgTypes>(__args)...)); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - __p_.set_exception(current_exception()); - } -#endif // _LIBCPP_NO_EXCEPTIONS -} - -template -void -packaged_task<_Rp(_ArgTypes...)>::make_ready_at_thread_exit(_ArgTypes... __args) -{ - if (__p_.__state_ == nullptr) - __throw_future_error(future_errc::no_state); - if (__p_.__state_->__has_value()) - __throw_future_error(future_errc::promise_already_satisfied); -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - __p_.set_value_at_thread_exit(__f_(_VSTD::forward<_ArgTypes>(__args)...)); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - __p_.set_exception_at_thread_exit(current_exception()); - } -#endif // _LIBCPP_NO_EXCEPTIONS -} - -template -void -packaged_task<_Rp(_ArgTypes...)>::reset() -{ - if (!valid()) - __throw_future_error(future_errc::no_state); - __p_ = promise(); -} - -template -class _LIBCPP_TYPE_VIS_ONLY packaged_task -{ -public: - typedef void result_type; - -private: - __packaged_task_function __f_; - promise __p_; - -public: - // construction and destruction - _LIBCPP_INLINE_VISIBILITY - packaged_task() _NOEXCEPT : __p_(nullptr) {} - template ::type, - packaged_task - >::value - >::type - > - _LIBCPP_INLINE_VISIBILITY - explicit packaged_task(_Fp&& __f) : __f_(_VSTD::forward<_Fp>(__f)) {} - template ::type, - packaged_task - >::value - >::type - > - _LIBCPP_INLINE_VISIBILITY - packaged_task(allocator_arg_t, const _Allocator& __a, _Fp&& __f) - : __f_(allocator_arg, __a, _VSTD::forward<_Fp>(__f)), - __p_(allocator_arg, __a) {} - // ~packaged_task() = default; - - // no copy - packaged_task(const packaged_task&) = delete; - packaged_task& operator=(const packaged_task&) = delete; - - // move support - _LIBCPP_INLINE_VISIBILITY - packaged_task(packaged_task&& __other) _NOEXCEPT - : __f_(_VSTD::move(__other.__f_)), __p_(_VSTD::move(__other.__p_)) {} - _LIBCPP_INLINE_VISIBILITY - packaged_task& operator=(packaged_task&& __other) _NOEXCEPT - { - __f_ = _VSTD::move(__other.__f_); - __p_ = _VSTD::move(__other.__p_); - return *this; - } - _LIBCPP_INLINE_VISIBILITY - void swap(packaged_task& __other) _NOEXCEPT - { - __f_.swap(__other.__f_); - __p_.swap(__other.__p_); - } - - _LIBCPP_INLINE_VISIBILITY - bool valid() const _NOEXCEPT {return __p_.__state_ != nullptr;} - - // result retrieval - _LIBCPP_INLINE_VISIBILITY - future get_future() {return __p_.get_future();} - - // execution - void operator()(_ArgTypes... __args); - void make_ready_at_thread_exit(_ArgTypes... __args); - - void reset(); -}; - -template -void -packaged_task::operator()(_ArgTypes... __args) -{ - if (__p_.__state_ == nullptr) - __throw_future_error(future_errc::no_state); - if (__p_.__state_->__has_value()) - __throw_future_error(future_errc::promise_already_satisfied); -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - __f_(_VSTD::forward<_ArgTypes>(__args)...); - __p_.set_value(); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - __p_.set_exception(current_exception()); - } -#endif // _LIBCPP_NO_EXCEPTIONS -} - -template -void -packaged_task::make_ready_at_thread_exit(_ArgTypes... __args) -{ - if (__p_.__state_ == nullptr) - __throw_future_error(future_errc::no_state); - if (__p_.__state_->__has_value()) - __throw_future_error(future_errc::promise_already_satisfied); -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - __f_(_VSTD::forward<_ArgTypes>(__args)...); - __p_.set_value_at_thread_exit(); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - __p_.set_exception_at_thread_exit(current_exception()); - } -#endif // _LIBCPP_NO_EXCEPTIONS -} - -template -void -packaged_task::reset() -{ - if (!valid()) - __throw_future_error(future_errc::no_state); - __p_ = promise(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(packaged_task<_Callable>& __x, packaged_task<_Callable>& __y) _NOEXCEPT -{ - __x.swap(__y); -} - -template -struct _LIBCPP_TYPE_VIS_ONLY uses_allocator, _Alloc> - : public true_type {}; - -template -future<_Rp> -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -__make_deferred_assoc_state(_Fp&& __f) -#else -__make_deferred_assoc_state(_Fp __f) -#endif -{ - unique_ptr<__deferred_assoc_state<_Rp, _Fp>, __release_shared_count> - __h(new __deferred_assoc_state<_Rp, _Fp>(_VSTD::forward<_Fp>(__f))); - return future<_Rp>(__h.get()); -} - -template -future<_Rp> -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -__make_async_assoc_state(_Fp&& __f) -#else -__make_async_assoc_state(_Fp __f) -#endif -{ - unique_ptr<__async_assoc_state<_Rp, _Fp>, __release_shared_count> - __h(new __async_assoc_state<_Rp, _Fp>(_VSTD::forward<_Fp>(__f))); - _VSTD::thread(&__async_assoc_state<_Rp, _Fp>::__execute, __h.get()).detach(); - return future<_Rp>(__h.get()); -} - -template -class __async_func -{ - tuple<_Fp, _Args...> __f_; - -public: - typedef typename __invoke_of<_Fp, _Args...>::type _Rp; - - _LIBCPP_INLINE_VISIBILITY - explicit __async_func(_Fp&& __f, _Args&&... __args) - : __f_(_VSTD::move(__f), _VSTD::move(__args)...) {} - - _LIBCPP_INLINE_VISIBILITY - __async_func(__async_func&& __f) : __f_(_VSTD::move(__f.__f_)) {} - - _Rp operator()() - { - typedef typename __make_tuple_indices<1+sizeof...(_Args), 1>::type _Index; - return __execute(_Index()); - } -private: - template - _Rp - __execute(__tuple_indices<_Indices...>) - { - return __invoke(_VSTD::move(_VSTD::get<0>(__f_)), _VSTD::move(_VSTD::get<_Indices>(__f_))...); - } -}; - -inline _LIBCPP_INLINE_VISIBILITY bool __does_policy_contain(launch __policy, launch __value ) -{ return (int(__policy) & int(__value)) != 0; } - -template -future::type, typename decay<_Args>::type...>::type> -async(launch __policy, _Fp&& __f, _Args&&... __args) -{ - typedef __async_func::type, typename decay<_Args>::type...> _BF; - typedef typename _BF::_Rp _Rp; - -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif - if (__does_policy_contain(__policy, launch::async)) - return _VSTD::__make_async_assoc_state<_Rp>(_BF(__decay_copy(_VSTD::forward<_Fp>(__f)), - __decay_copy(_VSTD::forward<_Args>(__args))...)); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch ( ... ) { if (__policy == launch::async) throw ; } -#endif - - if (__does_policy_contain(__policy, launch::deferred)) - return _VSTD::__make_deferred_assoc_state<_Rp>(_BF(__decay_copy(_VSTD::forward<_Fp>(__f)), - __decay_copy(_VSTD::forward<_Args>(__args))...)); - return future<_Rp>{}; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -future::type, typename decay<_Args>::type...>::type> -async(_Fp&& __f, _Args&&... __args) -{ - return _VSTD::async(launch::any, _VSTD::forward<_Fp>(__f), - _VSTD::forward<_Args>(__args)...); -} - -#endif // _LIBCPP_HAS_NO_VARIADICS - -// shared_future - -template -class _LIBCPP_TYPE_VIS_ONLY shared_future -{ - __assoc_state<_Rp>* __state_; - -public: - _LIBCPP_INLINE_VISIBILITY - shared_future() _NOEXCEPT : __state_(nullptr) {} - _LIBCPP_INLINE_VISIBILITY - shared_future(const shared_future& __rhs) : __state_(__rhs.__state_) - {if (__state_) __state_->__add_shared();} -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - shared_future(future<_Rp>&& __f) _NOEXCEPT : __state_(__f.__state_) - {__f.__state_ = nullptr;} - _LIBCPP_INLINE_VISIBILITY - shared_future(shared_future&& __rhs) _NOEXCEPT : __state_(__rhs.__state_) - {__rhs.__state_ = nullptr;} -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - ~shared_future(); - shared_future& operator=(const shared_future& __rhs); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - shared_future& operator=(shared_future&& __rhs) _NOEXCEPT - { - shared_future(std::move(__rhs)).swap(*this); - return *this; - } -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - // retrieving the value - _LIBCPP_INLINE_VISIBILITY - const _Rp& get() const {return __state_->copy();} - - _LIBCPP_INLINE_VISIBILITY - void swap(shared_future& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);} - - // functions to check state - _LIBCPP_INLINE_VISIBILITY - bool valid() const _NOEXCEPT {return __state_ != nullptr;} - - _LIBCPP_INLINE_VISIBILITY - void wait() const {__state_->wait();} - template - _LIBCPP_INLINE_VISIBILITY - future_status - wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const - {return __state_->wait_for(__rel_time);} - template - _LIBCPP_INLINE_VISIBILITY - future_status - wait_until(const chrono::time_point<_Clock, _Duration>& __abs_time) const - {return __state_->wait_until(__abs_time);} -}; - -template -shared_future<_Rp>::~shared_future() -{ - if (__state_) - __state_->__release_shared(); -} - -template -shared_future<_Rp>& -shared_future<_Rp>::operator=(const shared_future& __rhs) -{ - if (__rhs.__state_) - __rhs.__state_->__add_shared(); - if (__state_) - __state_->__release_shared(); - __state_ = __rhs.__state_; - return *this; -} - -template -class _LIBCPP_TYPE_VIS_ONLY shared_future<_Rp&> -{ - __assoc_state<_Rp&>* __state_; - -public: - _LIBCPP_INLINE_VISIBILITY - shared_future() _NOEXCEPT : __state_(nullptr) {} - _LIBCPP_INLINE_VISIBILITY - shared_future(const shared_future& __rhs) : __state_(__rhs.__state_) - {if (__state_) __state_->__add_shared();} -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - shared_future(future<_Rp&>&& __f) _NOEXCEPT : __state_(__f.__state_) - {__f.__state_ = nullptr;} - _LIBCPP_INLINE_VISIBILITY - shared_future(shared_future&& __rhs) _NOEXCEPT : __state_(__rhs.__state_) - {__rhs.__state_ = nullptr;} -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - ~shared_future(); - shared_future& operator=(const shared_future& __rhs); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - shared_future& operator=(shared_future&& __rhs) _NOEXCEPT - { - shared_future(std::move(__rhs)).swap(*this); - return *this; - } -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - // retrieving the value - _LIBCPP_INLINE_VISIBILITY - _Rp& get() const {return __state_->copy();} - - _LIBCPP_INLINE_VISIBILITY - void swap(shared_future& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);} - - // functions to check state - _LIBCPP_INLINE_VISIBILITY - bool valid() const _NOEXCEPT {return __state_ != nullptr;} - - _LIBCPP_INLINE_VISIBILITY - void wait() const {__state_->wait();} - template - _LIBCPP_INLINE_VISIBILITY - future_status - wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const - {return __state_->wait_for(__rel_time);} - template - _LIBCPP_INLINE_VISIBILITY - future_status - wait_until(const chrono::time_point<_Clock, _Duration>& __abs_time) const - {return __state_->wait_until(__abs_time);} -}; - -template -shared_future<_Rp&>::~shared_future() -{ - if (__state_) - __state_->__release_shared(); -} - -template -shared_future<_Rp&>& -shared_future<_Rp&>::operator=(const shared_future& __rhs) -{ - if (__rhs.__state_) - __rhs.__state_->__add_shared(); - if (__state_) - __state_->__release_shared(); - __state_ = __rhs.__state_; - return *this; -} - -template <> -class _LIBCPP_TYPE_VIS shared_future -{ - __assoc_sub_state* __state_; - -public: - _LIBCPP_INLINE_VISIBILITY - shared_future() _NOEXCEPT : __state_(nullptr) {} - _LIBCPP_INLINE_VISIBILITY - shared_future(const shared_future& __rhs) : __state_(__rhs.__state_) - {if (__state_) __state_->__add_shared();} -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - shared_future(future&& __f) _NOEXCEPT : __state_(__f.__state_) - {__f.__state_ = nullptr;} - _LIBCPP_INLINE_VISIBILITY - shared_future(shared_future&& __rhs) _NOEXCEPT : __state_(__rhs.__state_) - {__rhs.__state_ = nullptr;} -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - ~shared_future(); - shared_future& operator=(const shared_future& __rhs); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - shared_future& operator=(shared_future&& __rhs) _NOEXCEPT - { - shared_future(std::move(__rhs)).swap(*this); - return *this; - } -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - // retrieving the value - _LIBCPP_INLINE_VISIBILITY - void get() const {__state_->copy();} - - _LIBCPP_INLINE_VISIBILITY - void swap(shared_future& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);} - - // functions to check state - _LIBCPP_INLINE_VISIBILITY - bool valid() const _NOEXCEPT {return __state_ != nullptr;} - - _LIBCPP_INLINE_VISIBILITY - void wait() const {__state_->wait();} - template - _LIBCPP_INLINE_VISIBILITY - future_status - wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const - {return __state_->wait_for(__rel_time);} - template - _LIBCPP_INLINE_VISIBILITY - future_status - wait_until(const chrono::time_point<_Clock, _Duration>& __abs_time) const - {return __state_->wait_until(__abs_time);} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(shared_future<_Rp>& __x, shared_future<_Rp>& __y) _NOEXCEPT -{ - __x.swap(__y); -} - -template -inline -shared_future<_Rp> -future<_Rp>::share() -{ - return shared_future<_Rp>(_VSTD::move(*this)); -} - -template -inline -shared_future<_Rp&> -future<_Rp&>::share() -{ - return shared_future<_Rp&>(_VSTD::move(*this)); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -inline -shared_future -future::share() -{ - return shared_future(_VSTD::move(*this)); -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -_LIBCPP_END_NAMESPACE_STD - -#endif // !_LIBCPP_HAS_NO_THREADS - -#endif // _LIBCPP_FUTURE diff --git a/headers/libs/libc++/initializer_list b/headers/libs/libc++/initializer_list deleted file mode 100644 index 663e49b6ee..0000000000 --- a/headers/libs/libc++/initializer_list +++ /dev/null @@ -1,118 +0,0 @@ -// -*- C++ -*- -//===----------------------- initializer_list -----------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_INITIALIZER_LIST -#define _LIBCPP_INITIALIZER_LIST - -/* - initializer_list synopsis - -namespace std -{ - -template -class initializer_list -{ -public: - typedef E value_type; - typedef const E& reference; - typedef const E& const_reference; - typedef size_t size_type; - - typedef const E* iterator; - typedef const E* const_iterator; - - initializer_list() noexcept; // constexpr in C++14 - - size_t size() const noexcept; // constexpr in C++14 - const E* begin() const noexcept; // constexpr in C++14 - const E* end() const noexcept; // constexpr in C++14 -}; - -template const E* begin(initializer_list il) noexcept; // constexpr in C++14 -template const E* end(initializer_list il) noexcept; // constexpr in C++14 - -} // std - -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -namespace std // purposefully not versioned -{ - -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -template -class _LIBCPP_TYPE_VIS_ONLY initializer_list -{ - const _Ep* __begin_; - size_t __size_; - - _LIBCPP_ALWAYS_INLINE - _LIBCPP_CONSTEXPR_AFTER_CXX11 - initializer_list(const _Ep* __b, size_t __s) _NOEXCEPT - : __begin_(__b), - __size_(__s) - {} -public: - typedef _Ep value_type; - typedef const _Ep& reference; - typedef const _Ep& const_reference; - typedef size_t size_type; - - typedef const _Ep* iterator; - typedef const _Ep* const_iterator; - - _LIBCPP_ALWAYS_INLINE - _LIBCPP_CONSTEXPR_AFTER_CXX11 - initializer_list() _NOEXCEPT : __begin_(nullptr), __size_(0) {} - - _LIBCPP_ALWAYS_INLINE - _LIBCPP_CONSTEXPR_AFTER_CXX11 - size_t size() const _NOEXCEPT {return __size_;} - - _LIBCPP_ALWAYS_INLINE - _LIBCPP_CONSTEXPR_AFTER_CXX11 - const _Ep* begin() const _NOEXCEPT {return __begin_;} - - _LIBCPP_ALWAYS_INLINE - _LIBCPP_CONSTEXPR_AFTER_CXX11 - const _Ep* end() const _NOEXCEPT {return __begin_ + __size_;} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR_AFTER_CXX11 -const _Ep* -begin(initializer_list<_Ep> __il) _NOEXCEPT -{ - return __il.begin(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_LIBCPP_CONSTEXPR_AFTER_CXX11 -const _Ep* -end(initializer_list<_Ep> __il) _NOEXCEPT -{ - return __il.end(); -} - -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -} // std - -#endif // _LIBCPP_INITIALIZER_LIST diff --git a/headers/libs/libc++/inttypes.h b/headers/libs/libc++/inttypes.h deleted file mode 100644 index 5c5618bef8..0000000000 --- a/headers/libs/libc++/inttypes.h +++ /dev/null @@ -1,251 +0,0 @@ -// -*- C++ -*- -//===--------------------------- inttypes.h -------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_INTTYPES_H -#define _LIBCPP_INTTYPES_H - -/* - inttypes.h synopsis - -This entire header is C99 / C++0X - -#include // includes - -Macros: - - PRId8 - PRId16 - PRId32 - PRId64 - - PRIdLEAST8 - PRIdLEAST16 - PRIdLEAST32 - PRIdLEAST64 - - PRIdFAST8 - PRIdFAST16 - PRIdFAST32 - PRIdFAST64 - - PRIdMAX - PRIdPTR - - PRIi8 - PRIi16 - PRIi32 - PRIi64 - - PRIiLEAST8 - PRIiLEAST16 - PRIiLEAST32 - PRIiLEAST64 - - PRIiFAST8 - PRIiFAST16 - PRIiFAST32 - PRIiFAST64 - - PRIiMAX - PRIiPTR - - PRIo8 - PRIo16 - PRIo32 - PRIo64 - - PRIoLEAST8 - PRIoLEAST16 - PRIoLEAST32 - PRIoLEAST64 - - PRIoFAST8 - PRIoFAST16 - PRIoFAST32 - PRIoFAST64 - - PRIoMAX - PRIoPTR - - PRIu8 - PRIu16 - PRIu32 - PRIu64 - - PRIuLEAST8 - PRIuLEAST16 - PRIuLEAST32 - PRIuLEAST64 - - PRIuFAST8 - PRIuFAST16 - PRIuFAST32 - PRIuFAST64 - - PRIuMAX - PRIuPTR - - PRIx8 - PRIx16 - PRIx32 - PRIx64 - - PRIxLEAST8 - PRIxLEAST16 - PRIxLEAST32 - PRIxLEAST64 - - PRIxFAST8 - PRIxFAST16 - PRIxFAST32 - PRIxFAST64 - - PRIxMAX - PRIxPTR - - PRIX8 - PRIX16 - PRIX32 - PRIX64 - - PRIXLEAST8 - PRIXLEAST16 - PRIXLEAST32 - PRIXLEAST64 - - PRIXFAST8 - PRIXFAST16 - PRIXFAST32 - PRIXFAST64 - - PRIXMAX - PRIXPTR - - SCNd8 - SCNd16 - SCNd32 - SCNd64 - - SCNdLEAST8 - SCNdLEAST16 - SCNdLEAST32 - SCNdLEAST64 - - SCNdFAST8 - SCNdFAST16 - SCNdFAST32 - SCNdFAST64 - - SCNdMAX - SCNdPTR - - SCNi8 - SCNi16 - SCNi32 - SCNi64 - - SCNiLEAST8 - SCNiLEAST16 - SCNiLEAST32 - SCNiLEAST64 - - SCNiFAST8 - SCNiFAST16 - SCNiFAST32 - SCNiFAST64 - - SCNiMAX - SCNiPTR - - SCNo8 - SCNo16 - SCNo32 - SCNo64 - - SCNoLEAST8 - SCNoLEAST16 - SCNoLEAST32 - SCNoLEAST64 - - SCNoFAST8 - SCNoFAST16 - SCNoFAST32 - SCNoFAST64 - - SCNoMAX - SCNoPTR - - SCNu8 - SCNu16 - SCNu32 - SCNu64 - - SCNuLEAST8 - SCNuLEAST16 - SCNuLEAST32 - SCNuLEAST64 - - SCNuFAST8 - SCNuFAST16 - SCNuFAST32 - SCNuFAST64 - - SCNuMAX - SCNuPTR - - SCNx8 - SCNx16 - SCNx32 - SCNx64 - - SCNxLEAST8 - SCNxLEAST16 - SCNxLEAST32 - SCNxLEAST64 - - SCNxFAST8 - SCNxFAST16 - SCNxFAST32 - SCNxFAST64 - - SCNxMAX - SCNxPTR - -Types: - - imaxdiv_t - -intmax_t imaxabs(intmax_t j); -imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom); -intmax_t strtoimax(const char* restrict nptr, char** restrict endptr, int base); -uintmax_t strtoumax(const char* restrict nptr, char** restrict endptr, int base); -intmax_t wcstoimax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); -uintmax_t wcstoumax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); - -*/ - -#include <__config> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#include_next - -#ifdef __cplusplus - -#include - -#undef imaxabs -#undef imaxdiv - -#endif // __cplusplus - -#endif // _LIBCPP_INTTYPES_H diff --git a/headers/libs/libc++/iomanip b/headers/libs/libc++/iomanip deleted file mode 100644 index a5042c7df8..0000000000 --- a/headers/libs/libc++/iomanip +++ /dev/null @@ -1,654 +0,0 @@ -// -*- C++ -*- -//===--------------------------- iomanip ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_IOMANIP -#define _LIBCPP_IOMANIP - -/* - iomanip synopsis - -namespace std { - -// types T1, T2, ... are unspecified implementation types -T1 resetiosflags(ios_base::fmtflags mask); -T2 setiosflags (ios_base::fmtflags mask); -T3 setbase(int base); -template T4 setfill(charT c); -T5 setprecision(int n); -T6 setw(int n); -template T7 get_money(moneyT& mon, bool intl = false); -template T8 put_money(const moneyT& mon, bool intl = false); -template T9 get_time(struct tm* tmb, const charT* fmt); -template T10 put_time(const struct tm* tmb, const charT* fmt); - -template - T11 quoted(const charT* s, charT delim=charT('"'), charT escape=charT('\\')); // C++14 - -template - T12 quoted(const basic_string& s, - charT delim=charT('"'), charT escape=charT('\\')); // C++14 - -template - T13 quoted(basic_string& s, - charT delim=charT('"'), charT escape=charT('\\')); // C++14 - -} // std - -*/ - -#include <__config> -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -// resetiosflags - -class __iom_t1 -{ - ios_base::fmtflags __mask_; -public: - _LIBCPP_INLINE_VISIBILITY - explicit __iom_t1(ios_base::fmtflags __m) : __mask_(__m) {} - - template - friend - _LIBCPP_INLINE_VISIBILITY - basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t1& __x) - { - __is.unsetf(__x.__mask_); - return __is; - } - - template - friend - _LIBCPP_INLINE_VISIBILITY - basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t1& __x) - { - __os.unsetf(__x.__mask_); - return __os; - } -}; - -inline _LIBCPP_INLINE_VISIBILITY -__iom_t1 -resetiosflags(ios_base::fmtflags __mask) -{ - return __iom_t1(__mask); -} - -// setiosflags - -class __iom_t2 -{ - ios_base::fmtflags __mask_; -public: - _LIBCPP_INLINE_VISIBILITY - explicit __iom_t2(ios_base::fmtflags __m) : __mask_(__m) {} - - template - friend - _LIBCPP_INLINE_VISIBILITY - basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t2& __x) - { - __is.setf(__x.__mask_); - return __is; - } - - template - friend - _LIBCPP_INLINE_VISIBILITY - basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t2& __x) - { - __os.setf(__x.__mask_); - return __os; - } -}; - -inline _LIBCPP_INLINE_VISIBILITY -__iom_t2 -setiosflags(ios_base::fmtflags __mask) -{ - return __iom_t2(__mask); -} - -// setbase - -class __iom_t3 -{ - int __base_; -public: - _LIBCPP_INLINE_VISIBILITY - explicit __iom_t3(int __b) : __base_(__b) {} - - template - friend - _LIBCPP_INLINE_VISIBILITY - basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t3& __x) - { - __is.setf(__x.__base_ == 8 ? ios_base::oct : - __x.__base_ == 10 ? ios_base::dec : - __x.__base_ == 16 ? ios_base::hex : - ios_base::fmtflags(0), ios_base::basefield); - return __is; - } - - template - friend - _LIBCPP_INLINE_VISIBILITY - basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t3& __x) - { - __os.setf(__x.__base_ == 8 ? ios_base::oct : - __x.__base_ == 10 ? ios_base::dec : - __x.__base_ == 16 ? ios_base::hex : - ios_base::fmtflags(0), ios_base::basefield); - return __os; - } -}; - -inline _LIBCPP_INLINE_VISIBILITY -__iom_t3 -setbase(int __base) -{ - return __iom_t3(__base); -} - -// setfill - -template -class __iom_t4 -{ - _CharT __fill_; -public: - _LIBCPP_INLINE_VISIBILITY - explicit __iom_t4(_CharT __c) : __fill_(__c) {} - - template - friend - _LIBCPP_INLINE_VISIBILITY - basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t4& __x) - { - __os.fill(__x.__fill_); - return __os; - } -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -__iom_t4<_CharT> -setfill(_CharT __c) -{ - return __iom_t4<_CharT>(__c); -} - -// setprecision - -class __iom_t5 -{ - int __n_; -public: - _LIBCPP_INLINE_VISIBILITY - explicit __iom_t5(int __n) : __n_(__n) {} - - template - friend - _LIBCPP_INLINE_VISIBILITY - basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t5& __x) - { - __is.precision(__x.__n_); - return __is; - } - - template - friend - _LIBCPP_INLINE_VISIBILITY - basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t5& __x) - { - __os.precision(__x.__n_); - return __os; - } -}; - -inline _LIBCPP_INLINE_VISIBILITY -__iom_t5 -setprecision(int __n) -{ - return __iom_t5(__n); -} - -// setw - -class __iom_t6 -{ - int __n_; -public: - _LIBCPP_INLINE_VISIBILITY - explicit __iom_t6(int __n) : __n_(__n) {} - - template - friend - _LIBCPP_INLINE_VISIBILITY - basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t6& __x) - { - __is.width(__x.__n_); - return __is; - } - - template - friend - _LIBCPP_INLINE_VISIBILITY - basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t6& __x) - { - __os.width(__x.__n_); - return __os; - } -}; - -inline _LIBCPP_INLINE_VISIBILITY -__iom_t6 -setw(int __n) -{ - return __iom_t6(__n); -} - -// get_money - -template class __iom_t7; - -template -basic_istream<_CharT, _Traits>& -operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t7<_MoneyT>& __x); - -template -class __iom_t7 -{ - _MoneyT& __mon_; - bool __intl_; -public: - _LIBCPP_INLINE_VISIBILITY - __iom_t7(_MoneyT& __mon, bool __intl) - : __mon_(__mon), __intl_(__intl) {} - - template - friend - basic_istream<_CharT, _Traits>& - operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t7<_Mp>& __x); -}; - -template -basic_istream<_CharT, _Traits>& -operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t7<_MoneyT>& __x) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - typename basic_istream<_CharT, _Traits>::sentry __s(__is); - if (__s) - { - typedef istreambuf_iterator<_CharT, _Traits> _Ip; - typedef money_get<_CharT, _Ip> _Fp; - ios_base::iostate __err = ios_base::goodbit; - const _Fp& __mf = use_facet<_Fp>(__is.getloc()); - __mf.get(_Ip(__is), _Ip(), __x.__intl_, __is, __err, __x.__mon_); - __is.setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - __is.__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return __is; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -__iom_t7<_MoneyT> -get_money(_MoneyT& __mon, bool __intl = false) -{ - return __iom_t7<_MoneyT>(__mon, __intl); -} - -// put_money - -template class __iom_t8; - -template -basic_ostream<_CharT, _Traits>& -operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t8<_MoneyT>& __x); - -template -class __iom_t8 -{ - const _MoneyT& __mon_; - bool __intl_; -public: - _LIBCPP_INLINE_VISIBILITY - __iom_t8(const _MoneyT& __mon, bool __intl) - : __mon_(__mon), __intl_(__intl) {} - - template - friend - basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t8<_Mp>& __x); -}; - -template -basic_ostream<_CharT, _Traits>& -operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t8<_MoneyT>& __x) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - typename basic_ostream<_CharT, _Traits>::sentry __s(__os); - if (__s) - { - typedef ostreambuf_iterator<_CharT, _Traits> _Op; - typedef money_put<_CharT, _Op> _Fp; - const _Fp& __mf = use_facet<_Fp>(__os.getloc()); - if (__mf.put(_Op(__os), __x.__intl_, __os, __os.fill(), __x.__mon_).failed()) - __os.setstate(ios_base::badbit); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - __os.__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return __os; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -__iom_t8<_MoneyT> -put_money(const _MoneyT& __mon, bool __intl = false) -{ - return __iom_t8<_MoneyT>(__mon, __intl); -} - -// get_time - -template class __iom_t9; - -template -basic_istream<_CharT, _Traits>& -operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t9<_CharT>& __x); - -template -class __iom_t9 -{ - tm* __tm_; - const _CharT* __fmt_; -public: - _LIBCPP_INLINE_VISIBILITY - __iom_t9(tm* __tm, const _CharT* __fmt) - : __tm_(__tm), __fmt_(__fmt) {} - - template - friend - basic_istream<_Cp, _Traits>& - operator>>(basic_istream<_Cp, _Traits>& __is, const __iom_t9<_Cp>& __x); -}; - -template -basic_istream<_CharT, _Traits>& -operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t9<_CharT>& __x) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - typename basic_istream<_CharT, _Traits>::sentry __s(__is); - if (__s) - { - typedef istreambuf_iterator<_CharT, _Traits> _Ip; - typedef time_get<_CharT, _Ip> _Fp; - ios_base::iostate __err = ios_base::goodbit; - const _Fp& __tf = use_facet<_Fp>(__is.getloc()); - __tf.get(_Ip(__is), _Ip(), __is, __err, __x.__tm_, - __x.__fmt_, __x.__fmt_ + _Traits::length(__x.__fmt_)); - __is.setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - __is.__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return __is; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -__iom_t9<_CharT> -get_time(tm* __tm, const _CharT* __fmt) -{ - return __iom_t9<_CharT>(__tm, __fmt); -} - -// put_time - -template class __iom_t10; - -template -basic_ostream<_CharT, _Traits>& -operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t10<_CharT>& __x); - -template -class __iom_t10 -{ - const tm* __tm_; - const _CharT* __fmt_; -public: - _LIBCPP_INLINE_VISIBILITY - __iom_t10(const tm* __tm, const _CharT* __fmt) - : __tm_(__tm), __fmt_(__fmt) {} - - template - friend - basic_ostream<_Cp, _Traits>& - operator<<(basic_ostream<_Cp, _Traits>& __os, const __iom_t10<_Cp>& __x); -}; - -template -basic_ostream<_CharT, _Traits>& -operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t10<_CharT>& __x) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - typename basic_ostream<_CharT, _Traits>::sentry __s(__os); - if (__s) - { - typedef ostreambuf_iterator<_CharT, _Traits> _Op; - typedef time_put<_CharT, _Op> _Fp; - const _Fp& __tf = use_facet<_Fp>(__os.getloc()); - if (__tf.put(_Op(__os), __os, __os.fill(), __x.__tm_, - __x.__fmt_, __x.__fmt_ + _Traits::length(__x.__fmt_)).failed()) - __os.setstate(ios_base::badbit); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - __os.__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return __os; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -__iom_t10<_CharT> -put_time(const tm* __tm, const _CharT* __fmt) -{ - return __iom_t10<_CharT>(__tm, __fmt); -} - -#if _LIBCPP_STD_VER > 11 - -template -std::basic_ostream<_CharT, _Traits> & -__quoted_output ( basic_ostream<_CharT, _Traits> &__os, - _ForwardIterator __first, _ForwardIterator __last, _CharT __delim, _CharT __escape ) -{ - _VSTD::basic_string<_CharT, _Traits> __str; - __str.push_back(__delim); - for ( ; __first != __last; ++ __first ) - { - if (_Traits::eq (*__first, __escape) || _Traits::eq (*__first, __delim)) - __str.push_back(__escape); - __str.push_back(*__first); - } - __str.push_back(__delim); - return __put_character_sequence(__os, __str.data(), __str.size()); -} - -template -basic_istream<_CharT, _Traits> & -__quoted_input ( basic_istream<_CharT, _Traits> &__is, _String & __string, _CharT __delim, _CharT __escape ) -{ - __string.clear (); - _CharT __c; - __is >> __c; - if ( __is.fail ()) - return __is; - - if (!_Traits::eq (__c, __delim)) // no delimiter, read the whole string - { - __is.unget (); - __is >> __string; - return __is; - } - - __save_flags<_CharT, _Traits> sf(__is); - noskipws (__is); - while (true) - { - __is >> __c; - if ( __is.fail ()) - break; - if (_Traits::eq (__c, __escape)) - { - __is >> __c; - if ( __is.fail ()) - break; - } - else if (_Traits::eq (__c, __delim)) - break; - __string.push_back ( __c ); - } - return __is; -} - - -template > -struct __quoted_output_proxy -{ - _Iter __first; - _Iter __last; - _CharT __delim; - _CharT __escape; - - __quoted_output_proxy(_Iter __f, _Iter __l, _CharT __d, _CharT __e) - : __first(__f), __last(__l), __delim(__d), __escape(__e) {} - // This would be a nice place for a string_ref -}; - -template -basic_ostream<_CharT, _Traits>& operator<<( - basic_ostream<_CharT, _Traits>& __os, - const __quoted_output_proxy<_CharT, _Iter, _Traits> & __proxy) -{ - return __quoted_output (__os, __proxy.__first, __proxy.__last, __proxy.__delim, __proxy.__escape); -} - -template -struct __quoted_proxy -{ - basic_string<_CharT, _Traits, _Allocator> &__string; - _CharT __delim; - _CharT __escape; - - __quoted_proxy(basic_string<_CharT, _Traits, _Allocator> &__s, _CharT __d, _CharT __e) - : __string(__s), __delim(__d), __escape(__e) {} -}; - -template -_LIBCPP_INLINE_VISIBILITY -basic_ostream<_CharT, _Traits>& operator<<( - basic_ostream<_CharT, _Traits>& __os, - const __quoted_proxy<_CharT, _Traits, _Allocator> & __proxy) -{ - return __quoted_output (__os, __proxy.__string.cbegin (), __proxy.__string.cend (), __proxy.__delim, __proxy.__escape); -} - -// extractor for non-const basic_string& proxies -template -_LIBCPP_INLINE_VISIBILITY -basic_istream<_CharT, _Traits>& operator>>( - basic_istream<_CharT, _Traits>& __is, - const __quoted_proxy<_CharT, _Traits, _Allocator> & __proxy) -{ - return __quoted_input ( __is, __proxy.__string, __proxy.__delim, __proxy.__escape ); -} - - -template -_LIBCPP_INLINE_VISIBILITY -__quoted_output_proxy<_CharT, const _CharT *> -quoted ( const _CharT *__s, _CharT __delim = _CharT('"'), _CharT __escape =_CharT('\\')) -{ - const _CharT *__end = __s; - while ( *__end ) ++__end; - return __quoted_output_proxy<_CharT, const _CharT *> ( __s, __end, __delim, __escape ); -} - -template -_LIBCPP_INLINE_VISIBILITY -__quoted_output_proxy<_CharT, typename basic_string <_CharT, _Traits, _Allocator>::const_iterator> -quoted ( const basic_string <_CharT, _Traits, _Allocator> &__s, _CharT __delim = _CharT('"'), _CharT __escape=_CharT('\\')) -{ - return __quoted_output_proxy<_CharT, - typename basic_string <_CharT, _Traits, _Allocator>::const_iterator> - ( __s.cbegin(), __s.cend (), __delim, __escape ); -} - -template -__quoted_proxy<_CharT, _Traits, _Allocator> -quoted ( basic_string <_CharT, _Traits, _Allocator> &__s, _CharT __delim = _CharT('"'), _CharT __escape=_CharT('\\')) -{ - return __quoted_proxy<_CharT, _Traits, _Allocator>( __s, __delim, __escape ); -} -#endif - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_IOMANIP diff --git a/headers/libs/libc++/ios b/headers/libs/libc++/ios deleted file mode 100644 index 1deb5f613c..0000000000 --- a/headers/libs/libc++/ios +++ /dev/null @@ -1,1028 +0,0 @@ -// -*- C++ -*- -//===---------------------------- ios -------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_IOS -#define _LIBCPP_IOS - -/* - ios synopsis - -#include - -namespace std -{ - -typedef OFF_T streamoff; -typedef SZ_T streamsize; -template class fpos; - -class ios_base -{ -public: - class failure; - - typedef T1 fmtflags; - static constexpr fmtflags boolalpha; - static constexpr fmtflags dec; - static constexpr fmtflags fixed; - static constexpr fmtflags hex; - static constexpr fmtflags internal; - static constexpr fmtflags left; - static constexpr fmtflags oct; - static constexpr fmtflags right; - static constexpr fmtflags scientific; - static constexpr fmtflags showbase; - static constexpr fmtflags showpoint; - static constexpr fmtflags showpos; - static constexpr fmtflags skipws; - static constexpr fmtflags unitbuf; - static constexpr fmtflags uppercase; - static constexpr fmtflags adjustfield; - static constexpr fmtflags basefield; - static constexpr fmtflags floatfield; - - typedef T2 iostate; - static constexpr iostate badbit; - static constexpr iostate eofbit; - static constexpr iostate failbit; - static constexpr iostate goodbit; - - typedef T3 openmode; - static constexpr openmode app; - static constexpr openmode ate; - static constexpr openmode binary; - static constexpr openmode in; - static constexpr openmode out; - static constexpr openmode trunc; - - typedef T4 seekdir; - static constexpr seekdir beg; - static constexpr seekdir cur; - static constexpr seekdir end; - - class Init; - - // 27.5.2.2 fmtflags state: - fmtflags flags() const; - fmtflags flags(fmtflags fmtfl); - fmtflags setf(fmtflags fmtfl); - fmtflags setf(fmtflags fmtfl, fmtflags mask); - void unsetf(fmtflags mask); - - streamsize precision() const; - streamsize precision(streamsize prec); - streamsize width() const; - streamsize width(streamsize wide); - - // 27.5.2.3 locales: - locale imbue(const locale& loc); - locale getloc() const; - - // 27.5.2.5 storage: - static int xalloc(); - long& iword(int index); - void*& pword(int index); - - // destructor - virtual ~ios_base(); - - // 27.5.2.6 callbacks; - enum event { erase_event, imbue_event, copyfmt_event }; - typedef void (*event_callback)(event, ios_base&, int index); - void register_callback(event_callback fn, int index); - - ios_base(const ios_base&) = delete; - ios_base& operator=(const ios_base&) = delete; - - static bool sync_with_stdio(bool sync = true); - -protected: - ios_base(); -}; - -template > -class basic_ios - : public ios_base -{ -public: - // types: - typedef charT char_type; - typedef typename traits::int_type int_type; // removed in C++17 - typedef typename traits::pos_type pos_type; // removed in C++17 - typedef typename traits::off_type off_type; // removed in C++17 - typedef traits traits_type; - - operator unspecified-bool-type() const; - bool operator!() const; - iostate rdstate() const; - void clear(iostate state = goodbit); - void setstate(iostate state); - bool good() const; - bool eof() const; - bool fail() const; - bool bad() const; - - iostate exceptions() const; - void exceptions(iostate except); - - // 27.5.4.1 Constructor/destructor: - explicit basic_ios(basic_streambuf* sb); - virtual ~basic_ios(); - - // 27.5.4.2 Members: - basic_ostream* tie() const; - basic_ostream* tie(basic_ostream* tiestr); - - basic_streambuf* rdbuf() const; - basic_streambuf* rdbuf(basic_streambuf* sb); - - basic_ios& copyfmt(const basic_ios& rhs); - - char_type fill() const; - char_type fill(char_type ch); - - locale imbue(const locale& loc); - - char narrow(char_type c, char dfault) const; - char_type widen(char c) const; - - basic_ios(const basic_ios& ) = delete; - basic_ios& operator=(const basic_ios&) = delete; - -protected: - basic_ios(); - void init(basic_streambuf* sb); - void move(basic_ios& rhs); - void swap(basic_ios& rhs) noexcept; - void set_rdbuf(basic_streambuf* sb); -}; - -// 27.5.5, manipulators: -ios_base& boolalpha (ios_base& str); -ios_base& noboolalpha(ios_base& str); -ios_base& showbase (ios_base& str); -ios_base& noshowbase (ios_base& str); -ios_base& showpoint (ios_base& str); -ios_base& noshowpoint(ios_base& str); -ios_base& showpos (ios_base& str); -ios_base& noshowpos (ios_base& str); -ios_base& skipws (ios_base& str); -ios_base& noskipws (ios_base& str); -ios_base& uppercase (ios_base& str); -ios_base& nouppercase(ios_base& str); -ios_base& unitbuf (ios_base& str); -ios_base& nounitbuf (ios_base& str); - -// 27.5.5.2 adjustfield: -ios_base& internal (ios_base& str); -ios_base& left (ios_base& str); -ios_base& right (ios_base& str); - -// 27.5.5.3 basefield: -ios_base& dec (ios_base& str); -ios_base& hex (ios_base& str); -ios_base& oct (ios_base& str); - -// 27.5.5.4 floatfield: -ios_base& fixed (ios_base& str); -ios_base& scientific (ios_base& str); -ios_base& hexfloat (ios_base& str); -ios_base& defaultfloat(ios_base& str); - -// 27.5.5.5 error reporting: -enum class io_errc -{ - stream = 1 -}; - -concept_map ErrorCodeEnum { }; -error_code make_error_code(io_errc e) noexcept; -error_condition make_error_condition(io_errc e) noexcept; -storage-class-specifier const error_category& iostream_category() noexcept; - -} // std - -*/ - -#include <__config> -#include -#include <__locale> -#include - -#if !defined(_LIBCPP_HAS_NO_ATOMIC_HEADER) -#include // for __xindex_ -#endif - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -typedef ptrdiff_t streamsize; - -class _LIBCPP_TYPE_VIS ios_base -{ -public: - class _LIBCPP_TYPE_VIS failure; - - typedef unsigned int fmtflags; - static const fmtflags boolalpha = 0x0001; - static const fmtflags dec = 0x0002; - static const fmtflags fixed = 0x0004; - static const fmtflags hex = 0x0008; - static const fmtflags internal = 0x0010; - static const fmtflags left = 0x0020; - static const fmtflags oct = 0x0040; - static const fmtflags right = 0x0080; - static const fmtflags scientific = 0x0100; - static const fmtflags showbase = 0x0200; - static const fmtflags showpoint = 0x0400; - static const fmtflags showpos = 0x0800; - static const fmtflags skipws = 0x1000; - static const fmtflags unitbuf = 0x2000; - static const fmtflags uppercase = 0x4000; - static const fmtflags adjustfield = left | right | internal; - static const fmtflags basefield = dec | oct | hex; - static const fmtflags floatfield = scientific | fixed; - - typedef unsigned int iostate; - static const iostate badbit = 0x1; - static const iostate eofbit = 0x2; - static const iostate failbit = 0x4; - static const iostate goodbit = 0x0; - - typedef unsigned int openmode; - static const openmode app = 0x01; - static const openmode ate = 0x02; - static const openmode binary = 0x04; - static const openmode in = 0x08; - static const openmode out = 0x10; - static const openmode trunc = 0x20; - - enum seekdir {beg, cur, end}; - -#if _LIBCPP_STD_VER <= 14 - typedef iostate io_state; - typedef openmode open_mode; - typedef seekdir seek_dir; - - typedef _VSTD::streamoff streamoff; - typedef _VSTD::streampos streampos; -#endif - - class _LIBCPP_TYPE_VIS Init; - - // 27.5.2.2 fmtflags state: - _LIBCPP_INLINE_VISIBILITY fmtflags flags() const; - _LIBCPP_INLINE_VISIBILITY fmtflags flags(fmtflags __fmtfl); - _LIBCPP_INLINE_VISIBILITY fmtflags setf(fmtflags __fmtfl); - _LIBCPP_INLINE_VISIBILITY fmtflags setf(fmtflags __fmtfl, fmtflags __mask); - _LIBCPP_INLINE_VISIBILITY void unsetf(fmtflags __mask); - - _LIBCPP_INLINE_VISIBILITY streamsize precision() const; - _LIBCPP_INLINE_VISIBILITY streamsize precision(streamsize __prec); - _LIBCPP_INLINE_VISIBILITY streamsize width() const; - _LIBCPP_INLINE_VISIBILITY streamsize width(streamsize __wide); - - // 27.5.2.3 locales: - locale imbue(const locale& __loc); - locale getloc() const; - - // 27.5.2.5 storage: - static int xalloc(); - long& iword(int __index); - void*& pword(int __index); - - // destructor - virtual ~ios_base(); - - // 27.5.2.6 callbacks; - enum event { erase_event, imbue_event, copyfmt_event }; - typedef void (*event_callback)(event, ios_base&, int __index); - void register_callback(event_callback __fn, int __index); - -private: - ios_base(const ios_base&); // = delete; - ios_base& operator=(const ios_base&); // = delete; - -public: - static bool sync_with_stdio(bool __sync = true); - - _LIBCPP_INLINE_VISIBILITY iostate rdstate() const; - void clear(iostate __state = goodbit); - _LIBCPP_INLINE_VISIBILITY void setstate(iostate __state); - - _LIBCPP_INLINE_VISIBILITY bool good() const; - _LIBCPP_INLINE_VISIBILITY bool eof() const; - _LIBCPP_INLINE_VISIBILITY bool fail() const; - _LIBCPP_INLINE_VISIBILITY bool bad() const; - - _LIBCPP_INLINE_VISIBILITY iostate exceptions() const; - _LIBCPP_INLINE_VISIBILITY void exceptions(iostate __iostate); - - void __set_badbit_and_consider_rethrow(); - void __set_failbit_and_consider_rethrow(); - -protected: - _LIBCPP_INLINE_VISIBILITY - ios_base() {// purposefully does no initialization - } - - void init(void* __sb); - _LIBCPP_ALWAYS_INLINE void* rdbuf() const {return __rdbuf_;} - - _LIBCPP_ALWAYS_INLINE - void rdbuf(void* __sb) - { - __rdbuf_ = __sb; - clear(); - } - - void __call_callbacks(event); - void copyfmt(const ios_base&); - void move(ios_base&); - void swap(ios_base&) _NOEXCEPT; - - _LIBCPP_ALWAYS_INLINE - void set_rdbuf(void* __sb) - { - __rdbuf_ = __sb; - } - -private: - // All data members must be scalars - fmtflags __fmtflags_; - streamsize __precision_; - streamsize __width_; - iostate __rdstate_; - iostate __exceptions_; - void* __rdbuf_; - void* __loc_; - event_callback* __fn_; - int* __index_; - size_t __event_size_; - size_t __event_cap_; -// TODO(EricWF): Enable this for both Clang and GCC. Currently it is only -// enabled with clang. -#if defined(_LIBCPP_HAS_C_ATOMIC_IMP) && !defined(_LIBCPP_HAS_NO_THREADS) - static atomic __xindex_; -#else - static int __xindex_; -#endif - long* __iarray_; - size_t __iarray_size_; - size_t __iarray_cap_; - void** __parray_; - size_t __parray_size_; - size_t __parray_cap_; -}; - -//enum class io_errc -_LIBCPP_DECLARE_STRONG_ENUM(io_errc) -{ - stream = 1 -}; -_LIBCPP_DECLARE_STRONG_ENUM_EPILOG(io_errc) - -template <> -struct _LIBCPP_TYPE_VIS_ONLY is_error_code_enum : public true_type { }; - -#ifdef _LIBCPP_HAS_NO_STRONG_ENUMS -template <> -struct _LIBCPP_TYPE_VIS_ONLY is_error_code_enum : public true_type { }; -#endif - -_LIBCPP_FUNC_VIS -const error_category& iostream_category() _NOEXCEPT; - -inline _LIBCPP_INLINE_VISIBILITY -error_code -make_error_code(io_errc __e) _NOEXCEPT -{ - return error_code(static_cast(__e), iostream_category()); -} - -inline _LIBCPP_INLINE_VISIBILITY -error_condition -make_error_condition(io_errc __e) _NOEXCEPT -{ - return error_condition(static_cast(__e), iostream_category()); -} - -class _LIBCPP_EXCEPTION_ABI ios_base::failure - : public system_error -{ -public: - explicit failure(const string& __msg, const error_code& __ec = io_errc::stream); - explicit failure(const char* __msg, const error_code& __ec = io_errc::stream); - virtual ~failure() throw(); -}; - -class _LIBCPP_TYPE_VIS ios_base::Init -{ -public: - Init(); - ~Init(); -}; - -// fmtflags - -inline _LIBCPP_INLINE_VISIBILITY -ios_base::fmtflags -ios_base::flags() const -{ - return __fmtflags_; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base::fmtflags -ios_base::flags(fmtflags __fmtfl) -{ - fmtflags __r = __fmtflags_; - __fmtflags_ = __fmtfl; - return __r; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base::fmtflags -ios_base::setf(fmtflags __fmtfl) -{ - fmtflags __r = __fmtflags_; - __fmtflags_ |= __fmtfl; - return __r; -} - -inline _LIBCPP_INLINE_VISIBILITY -void -ios_base::unsetf(fmtflags __mask) -{ - __fmtflags_ &= ~__mask; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base::fmtflags -ios_base::setf(fmtflags __fmtfl, fmtflags __mask) -{ - fmtflags __r = __fmtflags_; - unsetf(__mask); - __fmtflags_ |= __fmtfl & __mask; - return __r; -} - -// precision - -inline _LIBCPP_INLINE_VISIBILITY -streamsize -ios_base::precision() const -{ - return __precision_; -} - -inline _LIBCPP_INLINE_VISIBILITY -streamsize -ios_base::precision(streamsize __prec) -{ - streamsize __r = __precision_; - __precision_ = __prec; - return __r; -} - -// width - -inline _LIBCPP_INLINE_VISIBILITY -streamsize -ios_base::width() const -{ - return __width_; -} - -inline _LIBCPP_INLINE_VISIBILITY -streamsize -ios_base::width(streamsize __wide) -{ - streamsize __r = __width_; - __width_ = __wide; - return __r; -} - -// iostate - -inline _LIBCPP_INLINE_VISIBILITY -ios_base::iostate -ios_base::rdstate() const -{ - return __rdstate_; -} - -inline _LIBCPP_INLINE_VISIBILITY -void -ios_base::setstate(iostate __state) -{ - clear(__rdstate_ | __state); -} - -inline _LIBCPP_INLINE_VISIBILITY -bool -ios_base::good() const -{ - return __rdstate_ == 0; -} - -inline _LIBCPP_INLINE_VISIBILITY -bool -ios_base::eof() const -{ - return (__rdstate_ & eofbit) != 0; -} - -inline _LIBCPP_INLINE_VISIBILITY -bool -ios_base::fail() const -{ - return (__rdstate_ & (failbit | badbit)) != 0; -} - -inline _LIBCPP_INLINE_VISIBILITY -bool -ios_base::bad() const -{ - return (__rdstate_ & badbit) != 0; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base::iostate -ios_base::exceptions() const -{ - return __exceptions_; -} - -inline _LIBCPP_INLINE_VISIBILITY -void -ios_base::exceptions(iostate __iostate) -{ - __exceptions_ = __iostate; - clear(__rdstate_); -} - -template -class _LIBCPP_TYPE_VIS_ONLY basic_ios - : public ios_base -{ -public: - // types: - typedef _CharT char_type; - typedef _Traits traits_type; - - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - _LIBCPP_ALWAYS_INLINE - _LIBCPP_EXPLICIT - operator bool() const {return !fail();} - _LIBCPP_ALWAYS_INLINE bool operator!() const {return fail();} - _LIBCPP_ALWAYS_INLINE iostate rdstate() const {return ios_base::rdstate();} - _LIBCPP_ALWAYS_INLINE void clear(iostate __state = goodbit) {ios_base::clear(__state);} - _LIBCPP_ALWAYS_INLINE void setstate(iostate __state) {ios_base::setstate(__state);} - _LIBCPP_ALWAYS_INLINE bool good() const {return ios_base::good();} - _LIBCPP_ALWAYS_INLINE bool eof() const {return ios_base::eof();} - _LIBCPP_ALWAYS_INLINE bool fail() const {return ios_base::fail();} - _LIBCPP_ALWAYS_INLINE bool bad() const {return ios_base::bad();} - - _LIBCPP_ALWAYS_INLINE iostate exceptions() const {return ios_base::exceptions();} - _LIBCPP_ALWAYS_INLINE void exceptions(iostate __iostate) {ios_base::exceptions(__iostate);} - - // 27.5.4.1 Constructor/destructor: - _LIBCPP_INLINE_VISIBILITY - explicit basic_ios(basic_streambuf* __sb); - virtual ~basic_ios(); - - // 27.5.4.2 Members: - _LIBCPP_INLINE_VISIBILITY - basic_ostream* tie() const; - _LIBCPP_INLINE_VISIBILITY - basic_ostream* tie(basic_ostream* __tiestr); - - _LIBCPP_INLINE_VISIBILITY - basic_streambuf* rdbuf() const; - _LIBCPP_INLINE_VISIBILITY - basic_streambuf* rdbuf(basic_streambuf* __sb); - - basic_ios& copyfmt(const basic_ios& __rhs); - - _LIBCPP_INLINE_VISIBILITY - char_type fill() const; - _LIBCPP_INLINE_VISIBILITY - char_type fill(char_type __ch); - - _LIBCPP_INLINE_VISIBILITY - locale imbue(const locale& __loc); - - _LIBCPP_INLINE_VISIBILITY - char narrow(char_type __c, char __dfault) const; - _LIBCPP_INLINE_VISIBILITY - char_type widen(char __c) const; - -protected: - _LIBCPP_ALWAYS_INLINE - basic_ios() {// purposefully does no initialization - } - _LIBCPP_INLINE_VISIBILITY - void init(basic_streambuf* __sb); - - _LIBCPP_INLINE_VISIBILITY - void move(basic_ios& __rhs); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_ALWAYS_INLINE - void move(basic_ios&& __rhs) {move(__rhs);} -#endif - _LIBCPP_INLINE_VISIBILITY - void swap(basic_ios& __rhs) _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - void set_rdbuf(basic_streambuf* __sb); -private: - basic_ostream* __tie_; - mutable int_type __fill_; -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_ios<_CharT, _Traits>::basic_ios(basic_streambuf* __sb) -{ - init(__sb); -} - -template -basic_ios<_CharT, _Traits>::~basic_ios() -{ -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -basic_ios<_CharT, _Traits>::init(basic_streambuf* __sb) -{ - ios_base::init(__sb); - __tie_ = 0; - __fill_ = traits_type::eof(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_ostream<_CharT, _Traits>* -basic_ios<_CharT, _Traits>::tie() const -{ - return __tie_; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_ostream<_CharT, _Traits>* -basic_ios<_CharT, _Traits>::tie(basic_ostream* __tiestr) -{ - basic_ostream* __r = __tie_; - __tie_ = __tiestr; - return __r; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_streambuf<_CharT, _Traits>* -basic_ios<_CharT, _Traits>::rdbuf() const -{ - return static_cast*>(ios_base::rdbuf()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_streambuf<_CharT, _Traits>* -basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf* __sb) -{ - basic_streambuf* __r = rdbuf(); - ios_base::rdbuf(__sb); - return __r; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -locale -basic_ios<_CharT, _Traits>::imbue(const locale& __loc) -{ - locale __r = getloc(); - ios_base::imbue(__loc); - if (rdbuf()) - rdbuf()->pubimbue(__loc); - return __r; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -char -basic_ios<_CharT, _Traits>::narrow(char_type __c, char __dfault) const -{ - return use_facet >(getloc()).narrow(__c, __dfault); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_CharT -basic_ios<_CharT, _Traits>::widen(char __c) const -{ - return use_facet >(getloc()).widen(__c); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_CharT -basic_ios<_CharT, _Traits>::fill() const -{ - if (traits_type::eq_int_type(traits_type::eof(), __fill_)) - __fill_ = widen(' '); - return __fill_; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_CharT -basic_ios<_CharT, _Traits>::fill(char_type __ch) -{ - char_type __r = __fill_; - __fill_ = __ch; - return __r; -} - -template -basic_ios<_CharT, _Traits>& -basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs) -{ - if (this != &__rhs) - { - __call_callbacks(erase_event); - ios_base::copyfmt(__rhs); - __tie_ = __rhs.__tie_; - __fill_ = __rhs.__fill_; - __call_callbacks(copyfmt_event); - exceptions(__rhs.exceptions()); - } - return *this; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -basic_ios<_CharT, _Traits>::move(basic_ios& __rhs) -{ - ios_base::move(__rhs); - __tie_ = __rhs.__tie_; - __rhs.__tie_ = 0; - __fill_ = __rhs.__fill_; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -basic_ios<_CharT, _Traits>::swap(basic_ios& __rhs) _NOEXCEPT -{ - ios_base::swap(__rhs); - _VSTD::swap(__tie_, __rhs.__tie_); - _VSTD::swap(__fill_, __rhs.__fill_); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -basic_ios<_CharT, _Traits>::set_rdbuf(basic_streambuf* __sb) -{ - ios_base::set_rdbuf(__sb); -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -boolalpha(ios_base& __str) -{ - __str.setf(ios_base::boolalpha); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -noboolalpha(ios_base& __str) -{ - __str.unsetf(ios_base::boolalpha); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -showbase(ios_base& __str) -{ - __str.setf(ios_base::showbase); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -noshowbase(ios_base& __str) -{ - __str.unsetf(ios_base::showbase); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -showpoint(ios_base& __str) -{ - __str.setf(ios_base::showpoint); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -noshowpoint(ios_base& __str) -{ - __str.unsetf(ios_base::showpoint); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -showpos(ios_base& __str) -{ - __str.setf(ios_base::showpos); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -noshowpos(ios_base& __str) -{ - __str.unsetf(ios_base::showpos); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -skipws(ios_base& __str) -{ - __str.setf(ios_base::skipws); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -noskipws(ios_base& __str) -{ - __str.unsetf(ios_base::skipws); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -uppercase(ios_base& __str) -{ - __str.setf(ios_base::uppercase); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -nouppercase(ios_base& __str) -{ - __str.unsetf(ios_base::uppercase); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -unitbuf(ios_base& __str) -{ - __str.setf(ios_base::unitbuf); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -nounitbuf(ios_base& __str) -{ - __str.unsetf(ios_base::unitbuf); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -internal(ios_base& __str) -{ - __str.setf(ios_base::internal, ios_base::adjustfield); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -left(ios_base& __str) -{ - __str.setf(ios_base::left, ios_base::adjustfield); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -right(ios_base& __str) -{ - __str.setf(ios_base::right, ios_base::adjustfield); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -dec(ios_base& __str) -{ - __str.setf(ios_base::dec, ios_base::basefield); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -hex(ios_base& __str) -{ - __str.setf(ios_base::hex, ios_base::basefield); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -oct(ios_base& __str) -{ - __str.setf(ios_base::oct, ios_base::basefield); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -fixed(ios_base& __str) -{ - __str.setf(ios_base::fixed, ios_base::floatfield); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -scientific(ios_base& __str) -{ - __str.setf(ios_base::scientific, ios_base::floatfield); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -hexfloat(ios_base& __str) -{ - __str.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield); - return __str; -} - -inline _LIBCPP_INLINE_VISIBILITY -ios_base& -defaultfloat(ios_base& __str) -{ - __str.unsetf(ios_base::floatfield); - return __str; -} - -template -class __save_flags -{ - typedef basic_ios<_CharT, _Traits> __stream_type; - typedef typename __stream_type::fmtflags fmtflags; - - __stream_type& __stream_; - fmtflags __fmtflags_; - _CharT __fill_; - - __save_flags(const __save_flags&); - __save_flags& operator=(const __save_flags&); -public: - _LIBCPP_INLINE_VISIBILITY - explicit __save_flags(__stream_type& __stream) - : __stream_(__stream), - __fmtflags_(__stream.flags()), - __fill_(__stream.fill()) - {} - _LIBCPP_INLINE_VISIBILITY - ~__save_flags() - { - __stream_.flags(__fmtflags_); - __stream_.fill(__fill_); - } -}; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_IOS diff --git a/headers/libs/libc++/iosfwd b/headers/libs/libc++/iosfwd deleted file mode 100644 index eccfd349a4..0000000000 --- a/headers/libs/libc++/iosfwd +++ /dev/null @@ -1,199 +0,0 @@ -// -*- C++ -*- -//===--------------------------- iosfwd -----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_IOSFWD -#define _LIBCPP_IOSFWD - -/* - iosfwd synopsis - -namespace std -{ - -template struct char_traits; -template class allocator; - -class ios_base; -template > class basic_ios; - -template > class basic_streambuf; -template > class basic_istream; -template > class basic_ostream; -template > class basic_iostream; - -template , class Allocator = allocator > - class basic_stringbuf; -template , class Allocator = allocator > - class basic_istringstream; -template , class Allocator = allocator > - class basic_ostringstream; -template , class Allocator = allocator > - class basic_stringstream; - -template > class basic_filebuf; -template > class basic_ifstream; -template > class basic_ofstream; -template > class basic_fstream; - -template > class istreambuf_iterator; -template > class ostreambuf_iterator; - -typedef basic_ios ios; -typedef basic_ios wios; - -typedef basic_streambuf streambuf; -typedef basic_istream istream; -typedef basic_ostream ostream; -typedef basic_iostream iostream; - -typedef basic_stringbuf stringbuf; -typedef basic_istringstream istringstream; -typedef basic_ostringstream ostringstream; -typedef basic_stringstream stringstream; - -typedef basic_filebuf filebuf; -typedef basic_ifstream ifstream; -typedef basic_ofstream ofstream; -typedef basic_fstream fstream; - -typedef basic_streambuf wstreambuf; -typedef basic_istream wistream; -typedef basic_ostream wostream; -typedef basic_iostream wiostream; - -typedef basic_stringbuf wstringbuf; -typedef basic_istringstream wistringstream; -typedef basic_ostringstream wostringstream; -typedef basic_stringstream wstringstream; - -typedef basic_filebuf wfilebuf; -typedef basic_ifstream wifstream; -typedef basic_ofstream wofstream; -typedef basic_fstream wfstream; - -template class fpos; -typedef fpos::state_type> streampos; -typedef fpos::state_type> wstreampos; - -} // std - -*/ - -#include <__config> -#include // for mbstate_t - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -class _LIBCPP_TYPE_VIS ios_base; - -template struct _LIBCPP_TYPE_VIS_ONLY char_traits; -template class _LIBCPP_TYPE_VIS_ONLY allocator; - -template > - class _LIBCPP_TYPE_VIS_ONLY basic_ios; - -template > - class _LIBCPP_TYPE_VIS_ONLY basic_streambuf; -template > - class _LIBCPP_TYPE_VIS_ONLY basic_istream; -template > - class _LIBCPP_TYPE_VIS_ONLY basic_ostream; -template > - class _LIBCPP_TYPE_VIS_ONLY basic_iostream; - -template , - class _Allocator = allocator<_CharT> > - class _LIBCPP_TYPE_VIS_ONLY basic_stringbuf; -template , - class _Allocator = allocator<_CharT> > - class _LIBCPP_TYPE_VIS_ONLY basic_istringstream; -template , - class _Allocator = allocator<_CharT> > - class _LIBCPP_TYPE_VIS_ONLY basic_ostringstream; -template , - class _Allocator = allocator<_CharT> > - class _LIBCPP_TYPE_VIS_ONLY basic_stringstream; - -template > - class _LIBCPP_TYPE_VIS_ONLY basic_filebuf; -template > - class _LIBCPP_TYPE_VIS_ONLY basic_ifstream; -template > - class _LIBCPP_TYPE_VIS_ONLY basic_ofstream; -template > - class _LIBCPP_TYPE_VIS_ONLY basic_fstream; - -template > - class _LIBCPP_TYPE_VIS_ONLY istreambuf_iterator; -template > - class _LIBCPP_TYPE_VIS_ONLY ostreambuf_iterator; - -typedef basic_ios ios; -typedef basic_ios wios; - -typedef basic_streambuf streambuf; -typedef basic_istream istream; -typedef basic_ostream ostream; -typedef basic_iostream iostream; - -typedef basic_stringbuf stringbuf; -typedef basic_istringstream istringstream; -typedef basic_ostringstream ostringstream; -typedef basic_stringstream stringstream; - -typedef basic_filebuf filebuf; -typedef basic_ifstream ifstream; -typedef basic_ofstream ofstream; -typedef basic_fstream fstream; - -typedef basic_streambuf wstreambuf; -typedef basic_istream wistream; -typedef basic_ostream wostream; -typedef basic_iostream wiostream; - -typedef basic_stringbuf wstringbuf; -typedef basic_istringstream wistringstream; -typedef basic_ostringstream wostringstream; -typedef basic_stringstream wstringstream; - -typedef basic_filebuf wfilebuf; -typedef basic_ifstream wifstream; -typedef basic_ofstream wofstream; -typedef basic_fstream wfstream; - -template class _LIBCPP_TYPE_VIS_ONLY fpos; -typedef fpos streampos; -typedef fpos wstreampos; -#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS -typedef fpos u16streampos; -typedef fpos u32streampos; -#endif // _LIBCPP_HAS_NO_UNICODE_CHARS - -#if defined(_NEWLIB_VERSION) -// On newlib, off_t is 'long int' -typedef long int streamoff; // for char_traits in -#else -typedef long long streamoff; // for char_traits in -#endif - -template - class _Traits = char_traits<_CharT>, - class _Allocator = allocator<_CharT> > - class _LIBCPP_TYPE_VIS_ONLY basic_string; -typedef basic_string, allocator > string; -typedef basic_string, allocator > wstring; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_IOSFWD diff --git a/headers/libs/libc++/iostream b/headers/libs/libc++/iostream deleted file mode 100644 index 136a849777..0000000000 --- a/headers/libs/libc++/iostream +++ /dev/null @@ -1,64 +0,0 @@ -// -*- C++ -*- -//===--------------------------- iostream ---------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_IOSTREAM -#define _LIBCPP_IOSTREAM - -/* - iostream synopsis - -#include -#include -#include -#include - -namespace std { - -extern istream cin; -extern ostream cout; -extern ostream cerr; -extern ostream clog; -extern wistream wcin; -extern wostream wcout; -extern wostream wcerr; -extern wostream wclog; - -} // std - -*/ - -#include <__config> -#include -#include -#include -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -#ifndef _LIBCPP_HAS_NO_STDIN -extern _LIBCPP_FUNC_VIS istream cin; -extern _LIBCPP_FUNC_VIS wistream wcin; -#endif -#ifndef _LIBCPP_HAS_NO_STDOUT -extern _LIBCPP_FUNC_VIS ostream cout; -extern _LIBCPP_FUNC_VIS wostream wcout; -#endif -extern _LIBCPP_FUNC_VIS ostream cerr; -extern _LIBCPP_FUNC_VIS wostream wcerr; -extern _LIBCPP_FUNC_VIS ostream clog; -extern _LIBCPP_FUNC_VIS wostream wclog; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_IOSTREAM diff --git a/headers/libs/libc++/istream b/headers/libs/libc++/istream deleted file mode 100644 index 0bcc7eeaf6..0000000000 --- a/headers/libs/libc++/istream +++ /dev/null @@ -1,1733 +0,0 @@ -// -*- C++ -*- -//===--------------------------- istream ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_ISTREAM -#define _LIBCPP_ISTREAM - -/* - istream synopsis - -template > -class basic_istream - : virtual public basic_ios -{ -public: - // types (inherited from basic_ios (27.5.4)): - typedef charT char_type; - typedef traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - // 27.7.1.1.1 Constructor/destructor: - explicit basic_istream(basic_streambuf* sb); - basic_istream(basic_istream&& rhs); - virtual ~basic_istream(); - - // 27.7.1.1.2 Assign/swap: - basic_istream& operator=(basic_istream&& rhs); - void swap(basic_istream& rhs); - - // 27.7.1.1.3 Prefix/suffix: - class sentry; - - // 27.7.1.2 Formatted input: - basic_istream& operator>>(basic_istream& (*pf)(basic_istream&)); - basic_istream& operator>>(basic_ios& - (*pf)(basic_ios&)); - basic_istream& operator>>(ios_base& (*pf)(ios_base&)); - basic_istream& operator>>(basic_streambuf* sb); - basic_istream& operator>>(bool& n); - basic_istream& operator>>(short& n); - basic_istream& operator>>(unsigned short& n); - basic_istream& operator>>(int& n); - basic_istream& operator>>(unsigned int& n); - basic_istream& operator>>(long& n); - basic_istream& operator>>(unsigned long& n); - basic_istream& operator>>(long long& n); - basic_istream& operator>>(unsigned long long& n); - basic_istream& operator>>(float& f); - basic_istream& operator>>(double& f); - basic_istream& operator>>(long double& f); - basic_istream& operator>>(void*& p); - - // 27.7.1.3 Unformatted input: - streamsize gcount() const; - int_type get(); - basic_istream& get(char_type& c); - basic_istream& get(char_type* s, streamsize n); - basic_istream& get(char_type* s, streamsize n, char_type delim); - basic_istream& get(basic_streambuf& sb); - basic_istream& get(basic_streambuf& sb, char_type delim); - - basic_istream& getline(char_type* s, streamsize n); - basic_istream& getline(char_type* s, streamsize n, char_type delim); - - basic_istream& ignore(streamsize n = 1, int_type delim = traits_type::eof()); - int_type peek(); - basic_istream& read (char_type* s, streamsize n); - streamsize readsome(char_type* s, streamsize n); - - basic_istream& putback(char_type c); - basic_istream& unget(); - int sync(); - - pos_type tellg(); - basic_istream& seekg(pos_type); - basic_istream& seekg(off_type, ios_base::seekdir); -protected: - basic_istream(const basic_istream& rhs) = delete; - basic_istream(basic_istream&& rhs); - // 27.7.2.1.2 Assign/swap: - basic_istream& operator=(const basic_istream& rhs) = delete; - basic_istream& operator=(basic_istream&& rhs); - void swap(basic_istream& rhs); -}; - -// 27.7.1.2.3 character extraction templates: -template - basic_istream& operator>>(basic_istream&, charT&); - -template - basic_istream& operator>>(basic_istream&, unsigned char&); - -template - basic_istream& operator>>(basic_istream&, signed char&); - -template - basic_istream& operator>>(basic_istream&, charT*); - -template - basic_istream& operator>>(basic_istream&, unsigned char*); - -template - basic_istream& operator>>(basic_istream&, signed char*); - -template - void - swap(basic_istream& x, basic_istream& y); - -typedef basic_istream istream; -typedef basic_istream wistream; - -template > -class basic_iostream : - public basic_istream, - public basic_ostream -{ -public: - // types: - typedef charT char_type; - typedef traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - // constructor/destructor - explicit basic_iostream(basic_streambuf* sb); - basic_iostream(basic_iostream&& rhs); - virtual ~basic_iostream(); - - // assign/swap - basic_iostream& operator=(basic_iostream&& rhs); - void swap(basic_iostream& rhs); -}; - -template - void - swap(basic_iostream& x, basic_iostream& y); - -typedef basic_iostream iostream; -typedef basic_iostream wiostream; - -template - basic_istream& - ws(basic_istream& is); - -template - basic_istream& - operator>>(basic_istream&& is, T& x); - -} // std - -*/ - -#include <__config> -#include - -#include <__undef_min_max> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -template -class _LIBCPP_TYPE_VIS_ONLY basic_istream - : virtual public basic_ios<_CharT, _Traits> -{ - streamsize __gc_; -public: - // types (inherited from basic_ios (27.5.4)): - typedef _CharT char_type; - typedef _Traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - // 27.7.1.1.1 Constructor/destructor: - explicit basic_istream(basic_streambuf* __sb); - virtual ~basic_istream(); -protected: -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - basic_istream(basic_istream&& __rhs); -#endif - // 27.7.1.1.2 Assign/swap: -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - basic_istream& operator=(basic_istream&& __rhs); -#endif - void swap(basic_istream& __rhs); - -#if _LIBCPP_STD_VER > 11 -#ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS - basic_istream (const basic_istream& __rhs) = delete; - basic_istream& operator=(const basic_istream& __rhs) = delete; -#else - basic_istream (const basic_istream& __rhs); // not defined - basic_istream& operator=(const basic_istream& __rhs); // not defined -#endif -#endif -public: - - // 27.7.1.1.3 Prefix/suffix: - class _LIBCPP_TYPE_VIS_ONLY sentry; - - // 27.7.1.2 Formatted input: - basic_istream& operator>>(basic_istream& (*__pf)(basic_istream&)); - basic_istream& operator>>(basic_ios& - (*__pf)(basic_ios&)); - basic_istream& operator>>(ios_base& (*__pf)(ios_base&)); - basic_istream& operator>>(basic_streambuf* __sb); - basic_istream& operator>>(bool& __n); - basic_istream& operator>>(short& __n); - basic_istream& operator>>(unsigned short& __n); - basic_istream& operator>>(int& __n); - basic_istream& operator>>(unsigned int& __n); - basic_istream& operator>>(long& __n); - basic_istream& operator>>(unsigned long& __n); - basic_istream& operator>>(long long& __n); - basic_istream& operator>>(unsigned long long& __n); - basic_istream& operator>>(float& __f); - basic_istream& operator>>(double& __f); - basic_istream& operator>>(long double& __f); - basic_istream& operator>>(void*& __p); - - // 27.7.1.3 Unformatted input: - _LIBCPP_INLINE_VISIBILITY - streamsize gcount() const {return __gc_;} - int_type get(); - basic_istream& get(char_type& __c); - basic_istream& get(char_type* __s, streamsize __n); - basic_istream& get(char_type* __s, streamsize __n, char_type __dlm); - basic_istream& get(basic_streambuf& __sb); - basic_istream& get(basic_streambuf& __sb, char_type __dlm); - - basic_istream& getline(char_type* __s, streamsize __n); - basic_istream& getline(char_type* __s, streamsize __n, char_type __dlm); - - basic_istream& ignore(streamsize __n = 1, int_type __dlm = traits_type::eof()); - int_type peek(); - basic_istream& read (char_type* __s, streamsize __n); - streamsize readsome(char_type* __s, streamsize __n); - - basic_istream& putback(char_type __c); - basic_istream& unget(); - int sync(); - - pos_type tellg(); - basic_istream& seekg(pos_type __pos); - basic_istream& seekg(off_type __off, ios_base::seekdir __dir); -}; - -template -class _LIBCPP_TYPE_VIS_ONLY basic_istream<_CharT, _Traits>::sentry -{ - bool __ok_; - - sentry(const sentry&); // = delete; - sentry& operator=(const sentry&); // = delete; - -public: - explicit sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); -// ~sentry() = default; - - _LIBCPP_INLINE_VISIBILITY - _LIBCPP_EXPLICIT - operator bool() const {return __ok_;} -}; - -template -basic_istream<_CharT, _Traits>::sentry::sentry(basic_istream<_CharT, _Traits>& __is, - bool __noskipws) - : __ok_(false) -{ - if (__is.good()) - { - if (__is.tie()) - __is.tie()->flush(); - if (!__noskipws && (__is.flags() & ios_base::skipws)) - { - typedef istreambuf_iterator<_CharT, _Traits> _Ip; - const ctype<_CharT>& __ct = use_facet >(__is.getloc()); - _Ip __i(__is); - _Ip __eof; - for (; __i != __eof; ++__i) - if (!__ct.is(__ct.space, *__i)) - break; - if (__i == __eof) - __is.setstate(ios_base::failbit | ios_base::eofbit); - } - __ok_ = __is.good(); - } - else - __is.setstate(ios_base::failbit); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream<_CharT, _Traits>::basic_istream(basic_streambuf* __sb) - : __gc_(0) -{ - this->init(__sb); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream<_CharT, _Traits>::basic_istream(basic_istream&& __rhs) - : __gc_(__rhs.__gc_) -{ - __rhs.__gc_ = 0; - this->move(__rhs); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator=(basic_istream&& __rhs) -{ - swap(__rhs); - return *this; -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -basic_istream<_CharT, _Traits>::~basic_istream() -{ -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -basic_istream<_CharT, _Traits>::swap(basic_istream& __rhs) -{ - _VSTD::swap(__gc_, __rhs.__gc_); - basic_ios::swap(__rhs); -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator>>(unsigned short& __n) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __s(*this); - if (__s) - { - typedef istreambuf_iterator _Ip; - typedef num_get _Fp; - ios_base::iostate __err = ios_base::goodbit; - use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n); - this->setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator>>(unsigned int& __n) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __s(*this); - if (__s) - { - typedef istreambuf_iterator _Ip; - typedef num_get _Fp; - ios_base::iostate __err = ios_base::goodbit; - use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n); - this->setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator>>(long& __n) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __s(*this); - if (__s) - { - typedef istreambuf_iterator _Ip; - typedef num_get _Fp; - ios_base::iostate __err = ios_base::goodbit; - use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n); - this->setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator>>(unsigned long& __n) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __s(*this); - if (__s) - { - typedef istreambuf_iterator _Ip; - typedef num_get _Fp; - ios_base::iostate __err = ios_base::goodbit; - use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n); - this->setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator>>(long long& __n) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __s(*this); - if (__s) - { - typedef istreambuf_iterator _Ip; - typedef num_get _Fp; - ios_base::iostate __err = ios_base::goodbit; - use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n); - this->setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator>>(unsigned long long& __n) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __s(*this); - if (__s) - { - typedef istreambuf_iterator _Ip; - typedef num_get _Fp; - ios_base::iostate __err = ios_base::goodbit; - use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n); - this->setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator>>(float& __n) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __s(*this); - if (__s) - { - typedef istreambuf_iterator _Ip; - typedef num_get _Fp; - ios_base::iostate __err = ios_base::goodbit; - use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n); - this->setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator>>(double& __n) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __s(*this); - if (__s) - { - typedef istreambuf_iterator _Ip; - typedef num_get _Fp; - ios_base::iostate __err = ios_base::goodbit; - use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n); - this->setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator>>(long double& __n) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __s(*this); - if (__s) - { - typedef istreambuf_iterator _Ip; - typedef num_get _Fp; - ios_base::iostate __err = ios_base::goodbit; - use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n); - this->setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator>>(bool& __n) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __s(*this); - if (__s) - { - typedef istreambuf_iterator _Ip; - typedef num_get _Fp; - ios_base::iostate __err = ios_base::goodbit; - use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n); - this->setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator>>(void*& __n) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __s(*this); - if (__s) - { - typedef istreambuf_iterator _Ip; - typedef num_get _Fp; - ios_base::iostate __err = ios_base::goodbit; - use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n); - this->setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator>>(short& __n) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __s(*this); - if (__s) - { - typedef istreambuf_iterator _Ip; - typedef num_get _Fp; - ios_base::iostate __err = ios_base::goodbit; - long __temp; - use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __temp); - if (__temp < numeric_limits::min()) - { - __err |= ios_base::failbit; - __n = numeric_limits::min(); - } - else if (__temp > numeric_limits::max()) - { - __err |= ios_base::failbit; - __n = numeric_limits::max(); - } - else - __n = static_cast(__temp); - this->setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator>>(int& __n) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __s(*this); - if (__s) - { - typedef istreambuf_iterator _Ip; - typedef num_get _Fp; - ios_base::iostate __err = ios_base::goodbit; - long __temp; - use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __temp); - if (__temp < numeric_limits::min()) - { - __err |= ios_base::failbit; - __n = numeric_limits::min(); - } - else if (__temp > numeric_limits::max()) - { - __err |= ios_base::failbit; - __n = numeric_limits::max(); - } - else - __n = static_cast(__temp); - this->setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator>>(basic_istream& (*__pf)(basic_istream&)) -{ - return __pf(*this); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator>>(basic_ios& - (*__pf)(basic_ios&)) -{ - __pf(*this); - return *this; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator>>(ios_base& (*__pf)(ios_base&)) -{ - __pf(*this); - return *this; -} - -template -basic_istream<_CharT, _Traits>& -operator>>(basic_istream<_CharT, _Traits>& __is, _CharT* __s) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - typename basic_istream<_CharT, _Traits>::sentry __sen(__is); - if (__sen) - { - streamsize __n = __is.width(); - if (__n <= 0) - __n = numeric_limits::max() / sizeof(_CharT) - 1; - streamsize __c = 0; - const ctype<_CharT>& __ct = use_facet >(__is.getloc()); - ios_base::iostate __err = ios_base::goodbit; - while (__c < __n-1) - { - typename _Traits::int_type __i = __is.rdbuf()->sgetc(); - if (_Traits::eq_int_type(__i, _Traits::eof())) - { - __err |= ios_base::eofbit; - break; - } - _CharT __ch = _Traits::to_char_type(__i); - if (__ct.is(__ct.space, __ch)) - break; - *__s++ = __ch; - ++__c; - __is.rdbuf()->sbumpc(); - } - *__s = _CharT(); - __is.width(0); - if (__c == 0) - __err |= ios_base::failbit; - __is.setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - __is.__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return __is; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream& -operator>>(basic_istream& __is, unsigned char* __s) -{ - return __is >> (char*)__s; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream& -operator>>(basic_istream& __is, signed char* __s) -{ - return __is >> (char*)__s; -} - -template -basic_istream<_CharT, _Traits>& -operator>>(basic_istream<_CharT, _Traits>& __is, _CharT& __c) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - typename basic_istream<_CharT, _Traits>::sentry __sen(__is); - if (__sen) - { - typename _Traits::int_type __i = __is.rdbuf()->sbumpc(); - if (_Traits::eq_int_type(__i, _Traits::eof())) - __is.setstate(ios_base::eofbit | ios_base::failbit); - else - __c = _Traits::to_char_type(__i); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - __is.__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return __is; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream& -operator>>(basic_istream& __is, unsigned char& __c) -{ - return __is >> (char&)__c; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream& -operator>>(basic_istream& __is, signed char& __c) -{ - return __is >> (char&)__c; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::operator>>(basic_streambuf* __sb) -{ - __gc_ = 0; -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __s(*this, true); - if (__s) - { - if (__sb) - { -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - ios_base::iostate __err = ios_base::goodbit; - while (true) - { - typename traits_type::int_type __i = this->rdbuf()->sgetc(); - if (traits_type::eq_int_type(__i, _Traits::eof())) - { - __err |= ios_base::eofbit; - break; - } - if (traits_type::eq_int_type( - __sb->sputc(traits_type::to_char_type(__i)), - traits_type::eof())) - break; - ++__gc_; - this->rdbuf()->sbumpc(); - } - if (__gc_ == 0) - __err |= ios_base::failbit; - this->setstate(__err); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - if (__gc_ == 0) - this->__set_failbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - } - else - this->setstate(ios_base::failbit); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -typename basic_istream<_CharT, _Traits>::int_type -basic_istream<_CharT, _Traits>::get() -{ - __gc_ = 0; - int_type __r = traits_type::eof(); -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __s(*this, true); - if (__s) - { - __r = this->rdbuf()->sbumpc(); - if (traits_type::eq_int_type(__r, traits_type::eof())) - this->setstate(ios_base::failbit | ios_base::eofbit); - else - __gc_ = 1; - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return __r; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::get(char_type& __c) -{ - int_type __ch = get(); - if (__ch != traits_type::eof()) - __c = traits_type::to_char_type(__ch); - return *this; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::get(char_type* __s, streamsize __n, char_type __dlm) -{ - __gc_ = 0; -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __sen(*this, true); - if (__sen) - { - if (__n > 0) - { - ios_base::iostate __err = ios_base::goodbit; - while (__gc_ < __n-1) - { - int_type __i = this->rdbuf()->sgetc(); - if (traits_type::eq_int_type(__i, traits_type::eof())) - { - __err |= ios_base::eofbit; - break; - } - char_type __ch = traits_type::to_char_type(__i); - if (traits_type::eq(__ch, __dlm)) - break; - *__s++ = __ch; - ++__gc_; - this->rdbuf()->sbumpc(); - } - *__s = char_type(); - if (__gc_ == 0) - __err |= ios_base::failbit; - this->setstate(__err); - } - else - this->setstate(ios_base::failbit); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::get(char_type* __s, streamsize __n) -{ - return get(__s, __n, this->widen('\n')); -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::get(basic_streambuf& __sb, - char_type __dlm) -{ - __gc_ = 0; -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __sen(*this, true); - if (__sen) - { - ios_base::iostate __err = ios_base::goodbit; -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - while (true) - { - typename traits_type::int_type __i = this->rdbuf()->sgetc(); - if (traits_type::eq_int_type(__i, traits_type::eof())) - { - __err |= ios_base::eofbit; - break; - } - char_type __ch = traits_type::to_char_type(__i); - if (traits_type::eq(__ch, __dlm)) - break; - if (traits_type::eq_int_type(__sb.sputc(__ch), traits_type::eof())) - break; - ++__gc_; - this->rdbuf()->sbumpc(); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - } -#endif // _LIBCPP_NO_EXCEPTIONS - if (__gc_ == 0) - __err |= ios_base::failbit; - this->setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::get(basic_streambuf& __sb) -{ - return get(__sb, this->widen('\n')); -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::getline(char_type* __s, streamsize __n, char_type __dlm) -{ - __gc_ = 0; -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __sen(*this, true); - if (__sen) - { - ios_base::iostate __err = ios_base::goodbit; - while (true) - { - typename traits_type::int_type __i = this->rdbuf()->sgetc(); - if (traits_type::eq_int_type(__i, traits_type::eof())) - { - __err |= ios_base::eofbit; - break; - } - char_type __ch = traits_type::to_char_type(__i); - if (traits_type::eq(__ch, __dlm)) - { - this->rdbuf()->sbumpc(); - ++__gc_; - break; - } - if (__gc_ >= __n-1) - { - __err |= ios_base::failbit; - break; - } - *__s++ = __ch; - this->rdbuf()->sbumpc(); - ++__gc_; - } - if (__n > 0) - *__s = char_type(); - if (__gc_ == 0) - __err |= ios_base::failbit; - this->setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::getline(char_type* __s, streamsize __n) -{ - return getline(__s, __n, this->widen('\n')); -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::ignore(streamsize __n, int_type __dlm) -{ - __gc_ = 0; -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __sen(*this, true); - if (__sen) - { - ios_base::iostate __err = ios_base::goodbit; - if (__n == numeric_limits::max()) - { - while (true) - { - typename traits_type::int_type __i = this->rdbuf()->sbumpc(); - if (traits_type::eq_int_type(__i, traits_type::eof())) - { - __err |= ios_base::eofbit; - break; - } - ++__gc_; - if (traits_type::eq_int_type(__i, __dlm)) - break; - } - } - else - { - while (__gc_ < __n) - { - typename traits_type::int_type __i = this->rdbuf()->sbumpc(); - if (traits_type::eq_int_type(__i, traits_type::eof())) - { - __err |= ios_base::eofbit; - break; - } - ++__gc_; - if (traits_type::eq_int_type(__i, __dlm)) - break; - } - } - this->setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -typename basic_istream<_CharT, _Traits>::int_type -basic_istream<_CharT, _Traits>::peek() -{ - __gc_ = 0; - int_type __r = traits_type::eof(); -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __sen(*this, true); - if (__sen) - { - __r = this->rdbuf()->sgetc(); - if (traits_type::eq_int_type(__r, traits_type::eof())) - this->setstate(ios_base::eofbit); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return __r; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::read(char_type* __s, streamsize __n) -{ - __gc_ = 0; -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __sen(*this, true); - if (__sen) - { - __gc_ = this->rdbuf()->sgetn(__s, __n); - if (__gc_ != __n) - this->setstate(ios_base::failbit | ios_base::eofbit); - } - else - this->setstate(ios_base::failbit); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -streamsize -basic_istream<_CharT, _Traits>::readsome(char_type* __s, streamsize __n) -{ - __gc_ = 0; - streamsize __c = this->rdbuf()->in_avail(); - switch (__c) - { - case -1: - this->setstate(ios_base::eofbit); - break; - case 0: - break; - default: - read(__s, _VSTD::min(__c, __n)); - break; - } - return __gc_; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::putback(char_type __c) -{ - __gc_ = 0; -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - this->clear(this->rdstate() & ~ios_base::eofbit); - sentry __sen(*this, true); - if (__sen) - { - if (this->rdbuf() == 0 || this->rdbuf()->sputbackc(__c) == traits_type::eof()) - this->setstate(ios_base::badbit); - } - else - this->setstate(ios_base::failbit); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::unget() -{ - __gc_ = 0; -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - this->clear(this->rdstate() & ~ios_base::eofbit); - sentry __sen(*this, true); - if (__sen) - { - if (this->rdbuf() == 0 || this->rdbuf()->sungetc() == traits_type::eof()) - this->setstate(ios_base::badbit); - } - else - this->setstate(ios_base::failbit); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -int -basic_istream<_CharT, _Traits>::sync() -{ - int __r = 0; -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __sen(*this, true); - if (__sen) - { - if (this->rdbuf() == 0) - return -1; - if (this->rdbuf()->pubsync() == -1) - { - this->setstate(ios_base::badbit); - return -1; - } - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return __r; -} - -template -typename basic_istream<_CharT, _Traits>::pos_type -basic_istream<_CharT, _Traits>::tellg() -{ - pos_type __r(-1); -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - sentry __sen(*this, true); - if (__sen) - __r = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::in); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return __r; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::seekg(pos_type __pos) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - this->clear(this->rdstate() & ~ios_base::eofbit); - sentry __sen(*this, true); - if (__sen) - { - if (this->rdbuf()->pubseekpos(__pos, ios_base::in) == pos_type(-1)) - this->setstate(ios_base::failbit); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::seekg(off_type __off, ios_base::seekdir __dir) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - this->clear(this->rdstate() & ~ios_base::eofbit); - sentry __sen(*this, true); - if (__sen) - { - if (this->rdbuf()->pubseekoff(__off, __dir, ios_base::in) == pos_type(-1)) - this->setstate(ios_base::failbit); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - this->__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return *this; -} - -template -basic_istream<_CharT, _Traits>& -ws(basic_istream<_CharT, _Traits>& __is) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - typename basic_istream<_CharT, _Traits>::sentry __sen(__is, true); - if (__sen) - { - const ctype<_CharT>& __ct = use_facet >(__is.getloc()); - while (true) - { - typename _Traits::int_type __i = __is.rdbuf()->sgetc(); - if (_Traits::eq_int_type(__i, _Traits::eof())) - { - __is.setstate(ios_base::eofbit); - break; - } - if (!__ct.is(__ct.space, _Traits::to_char_type(__i))) - break; - __is.rdbuf()->sbumpc(); - } - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - __is.__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return __is; -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream<_CharT, _Traits>& -operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp& __x) -{ - __is >> __x; - return __is; -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -class _LIBCPP_TYPE_VIS_ONLY basic_iostream - : public basic_istream<_CharT, _Traits>, - public basic_ostream<_CharT, _Traits> -{ -public: - // types: - typedef _CharT char_type; - typedef _Traits traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - - // constructor/destructor - explicit basic_iostream(basic_streambuf* __sb); - virtual ~basic_iostream(); -protected: -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - basic_iostream(basic_iostream&& __rhs); -#endif - - // assign/swap -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - basic_iostream& operator=(basic_iostream&& __rhs); -#endif - void swap(basic_iostream& __rhs); -public: -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_iostream<_CharT, _Traits>::basic_iostream(basic_streambuf* __sb) - : basic_istream<_CharT, _Traits>(__sb) -{ -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_iostream<_CharT, _Traits>::basic_iostream(basic_iostream&& __rhs) - : basic_istream<_CharT, _Traits>(_VSTD::move(__rhs)) -{ -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_iostream<_CharT, _Traits>& -basic_iostream<_CharT, _Traits>::operator=(basic_iostream&& __rhs) -{ - swap(__rhs); - return *this; -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -basic_iostream<_CharT, _Traits>::~basic_iostream() -{ -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -basic_iostream<_CharT, _Traits>::swap(basic_iostream& __rhs) -{ - basic_istream::swap(__rhs); -} - -template -basic_istream<_CharT, _Traits>& -operator>>(basic_istream<_CharT, _Traits>& __is, - basic_string<_CharT, _Traits, _Allocator>& __str) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - typename basic_istream<_CharT, _Traits>::sentry __sen(__is); - if (__sen) - { - __str.clear(); - streamsize __n = __is.width(); - if (__n <= 0) - __n = __str.max_size(); - if (__n <= 0) - __n = numeric_limits::max(); - streamsize __c = 0; - const ctype<_CharT>& __ct = use_facet >(__is.getloc()); - ios_base::iostate __err = ios_base::goodbit; - while (__c < __n) - { - typename _Traits::int_type __i = __is.rdbuf()->sgetc(); - if (_Traits::eq_int_type(__i, _Traits::eof())) - { - __err |= ios_base::eofbit; - break; - } - _CharT __ch = _Traits::to_char_type(__i); - if (__ct.is(__ct.space, __ch)) - break; - __str.push_back(__ch); - ++__c; - __is.rdbuf()->sbumpc(); - } - __is.width(0); - if (__c == 0) - __err |= ios_base::failbit; - __is.setstate(__err); - } - else - __is.setstate(ios_base::failbit); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - __is.__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return __is; -} - -template -basic_istream<_CharT, _Traits>& -getline(basic_istream<_CharT, _Traits>& __is, - basic_string<_CharT, _Traits, _Allocator>& __str, _CharT __dlm) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - typename basic_istream<_CharT, _Traits>::sentry __sen(__is, true); - if (__sen) - { - __str.clear(); - ios_base::iostate __err = ios_base::goodbit; - streamsize __extr = 0; - while (true) - { - typename _Traits::int_type __i = __is.rdbuf()->sbumpc(); - if (_Traits::eq_int_type(__i, _Traits::eof())) - { - __err |= ios_base::eofbit; - break; - } - ++__extr; - _CharT __ch = _Traits::to_char_type(__i); - if (_Traits::eq(__ch, __dlm)) - break; - __str.push_back(__ch); - if (__str.size() == __str.max_size()) - { - __err |= ios_base::failbit; - break; - } - } - if (__extr == 0) - __err |= ios_base::failbit; - __is.setstate(__err); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - __is.__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return __is; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream<_CharT, _Traits>& -getline(basic_istream<_CharT, _Traits>& __is, - basic_string<_CharT, _Traits, _Allocator>& __str) -{ - return getline(__is, __str, __is.widen('\n')); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream<_CharT, _Traits>& -getline(basic_istream<_CharT, _Traits>&& __is, - basic_string<_CharT, _Traits, _Allocator>& __str, _CharT __dlm) -{ - return getline(__is, __str, __dlm); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -basic_istream<_CharT, _Traits>& -getline(basic_istream<_CharT, _Traits>&& __is, - basic_string<_CharT, _Traits, _Allocator>& __str) -{ - return getline(__is, __str, __is.widen('\n')); -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -basic_istream<_CharT, _Traits>& -operator>>(basic_istream<_CharT, _Traits>& __is, bitset<_Size>& __x) -{ -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - typename basic_istream<_CharT, _Traits>::sentry __sen(__is); - if (__sen) - { - basic_string<_CharT, _Traits> __str; - const ctype<_CharT>& __ct = use_facet >(__is.getloc()); - streamsize __c = 0; - ios_base::iostate __err = ios_base::goodbit; - _CharT __zero = __ct.widen('0'); - _CharT __one = __ct.widen('1'); - while (__c < _Size) - { - typename _Traits::int_type __i = __is.rdbuf()->sgetc(); - if (_Traits::eq_int_type(__i, _Traits::eof())) - { - __err |= ios_base::eofbit; - break; - } - _CharT __ch = _Traits::to_char_type(__i); - if (!_Traits::eq(__ch, __zero) && !_Traits::eq(__ch, __one)) - break; - __str.push_back(__ch); - ++__c; - __is.rdbuf()->sbumpc(); - } - __x = bitset<_Size>(__str); - if (__c == 0) - __err |= ios_base::failbit; - __is.setstate(__err); - } - else - __is.setstate(ios_base::failbit); -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - __is.__set_badbit_and_consider_rethrow(); - } -#endif // _LIBCPP_NO_EXCEPTIONS - return __is; -} - -_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_TYPE_VIS basic_istream) -_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_TYPE_VIS basic_istream) -_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_TYPE_VIS basic_iostream) - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_ISTREAM diff --git a/headers/libs/libc++/iterator b/headers/libs/libc++/iterator deleted file mode 100644 index 8dd6bd59c1..0000000000 --- a/headers/libs/libc++/iterator +++ /dev/null @@ -1,1614 +0,0 @@ -// -*- C++ -*- -//===-------------------------- iterator ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_ITERATOR -#define _LIBCPP_ITERATOR - -/* - iterator synopsis - -namespace std -{ - -template -struct iterator_traits -{ - typedef typename Iterator::difference_type difference_type; - typedef typename Iterator::value_type value_type; - typedef typename Iterator::pointer pointer; - typedef typename Iterator::reference reference; - typedef typename Iterator::iterator_category iterator_category; -}; - -template -struct iterator_traits -{ - typedef ptrdiff_t difference_type; - typedef T value_type; - typedef T* pointer; - typedef T& reference; - typedef random_access_iterator_tag iterator_category; -}; - -template -struct iterator_traits -{ - typedef ptrdiff_t difference_type; - typedef T value_type; - typedef const T* pointer; - typedef const T& reference; - typedef random_access_iterator_tag iterator_category; -}; - -template -struct iterator -{ - typedef T value_type; - typedef Distance difference_type; - typedef Pointer pointer; - typedef Reference reference; - typedef Category iterator_category; -}; - -struct input_iterator_tag {}; -struct output_iterator_tag {}; -struct forward_iterator_tag : public input_iterator_tag {}; -struct bidirectional_iterator_tag : public forward_iterator_tag {}; -struct random_access_iterator_tag : public bidirectional_iterator_tag {}; - -// extension: second argument not conforming to C++03 -template -void advance(InputIterator& i, - typename iterator_traits::difference_type n); - -template -typename iterator_traits::difference_type -distance(InputIterator first, InputIterator last); - -template -class reverse_iterator - : public iterator::iterator_category, - typename iterator_traits::value_type, - typename iterator_traits::difference_type, - typename iterator_traits::pointer, - typename iterator_traits::reference> -{ -protected: - Iterator current; -public: - typedef Iterator iterator_type; - typedef typename iterator_traits::difference_type difference_type; - typedef typename iterator_traits::reference reference; - typedef typename iterator_traits::pointer pointer; - - reverse_iterator(); - explicit reverse_iterator(Iterator x); - template reverse_iterator(const reverse_iterator& u); - Iterator base() const; - reference operator*() const; - pointer operator->() const; - reverse_iterator& operator++(); - reverse_iterator operator++(int); - reverse_iterator& operator--(); - reverse_iterator operator--(int); - reverse_iterator operator+ (difference_type n) const; - reverse_iterator& operator+=(difference_type n); - reverse_iterator operator- (difference_type n) const; - reverse_iterator& operator-=(difference_type n); - reference operator[](difference_type n) const; -}; - -template -bool -operator==(const reverse_iterator& x, const reverse_iterator& y); - -template -bool -operator<(const reverse_iterator& x, const reverse_iterator& y); - -template -bool -operator!=(const reverse_iterator& x, const reverse_iterator& y); - -template -bool -operator>(const reverse_iterator& x, const reverse_iterator& y); - -template -bool -operator>=(const reverse_iterator& x, const reverse_iterator& y); - -template -bool -operator<=(const reverse_iterator& x, const reverse_iterator& y); - -template -typename reverse_iterator::difference_type -operator-(const reverse_iterator& x, const reverse_iterator& y); - -template -reverse_iterator -operator+(typename reverse_iterator::difference_type n, const reverse_iterator& x); - -template reverse_iterator make_reverse_iterator(Iterator i); // C++14 - -template -class back_insert_iterator -{ -protected: - Container* container; -public: - typedef Container container_type; - typedef void value_type; - typedef void difference_type; - typedef back_insert_iterator& reference; - typedef void pointer; - - explicit back_insert_iterator(Container& x); - back_insert_iterator& operator=(const typename Container::value_type& value); - back_insert_iterator& operator*(); - back_insert_iterator& operator++(); - back_insert_iterator operator++(int); -}; - -template back_insert_iterator back_inserter(Container& x); - -template -class front_insert_iterator -{ -protected: - Container* container; -public: - typedef Container container_type; - typedef void value_type; - typedef void difference_type; - typedef front_insert_iterator& reference; - typedef void pointer; - - explicit front_insert_iterator(Container& x); - front_insert_iterator& operator=(const typename Container::value_type& value); - front_insert_iterator& operator*(); - front_insert_iterator& operator++(); - front_insert_iterator operator++(int); -}; - -template front_insert_iterator front_inserter(Container& x); - -template -class insert_iterator -{ -protected: - Container* container; - typename Container::iterator iter; -public: - typedef Container container_type; - typedef void value_type; - typedef void difference_type; - typedef insert_iterator& reference; - typedef void pointer; - - insert_iterator(Container& x, typename Container::iterator i); - insert_iterator& operator=(const typename Container::value_type& value); - insert_iterator& operator*(); - insert_iterator& operator++(); - insert_iterator& operator++(int); -}; - -template -insert_iterator inserter(Container& x, Iterator i); - -template , class Distance = ptrdiff_t> -class istream_iterator - : public iterator -{ -public: - typedef charT char_type; - typedef traits traits_type; - typedef basic_istream istream_type; - - constexpr istream_iterator(); - istream_iterator(istream_type& s); - istream_iterator(const istream_iterator& x); - ~istream_iterator(); - - const T& operator*() const; - const T* operator->() const; - istream_iterator& operator++(); - istream_iterator operator++(int); -}; - -template -bool operator==(const istream_iterator& x, - const istream_iterator& y); -template -bool operator!=(const istream_iterator& x, - const istream_iterator& y); - -template > -class ostream_iterator - : public iterator -{ -public: - typedef charT char_type; - typedef traits traits_type; - typedef basic_ostream ostream_type; - - ostream_iterator(ostream_type& s); - ostream_iterator(ostream_type& s, const charT* delimiter); - ostream_iterator(const ostream_iterator& x); - ~ostream_iterator(); - ostream_iterator& operator=(const T& value); - - ostream_iterator& operator*(); - ostream_iterator& operator++(); - ostream_iterator& operator++(int); -}; - -template > -class istreambuf_iterator - : public iterator -{ -public: - typedef charT char_type; - typedef traits traits_type; - typedef typename traits::int_type int_type; - typedef basic_streambuf streambuf_type; - typedef basic_istream istream_type; - - istreambuf_iterator() noexcept; - istreambuf_iterator(istream_type& s) noexcept; - istreambuf_iterator(streambuf_type* s) noexcept; - istreambuf_iterator(a-private-type) noexcept; - - charT operator*() const; - pointer operator->() const; - istreambuf_iterator& operator++(); - a-private-type operator++(int); - - bool equal(const istreambuf_iterator& b) const; -}; - -template -bool operator==(const istreambuf_iterator& a, - const istreambuf_iterator& b); -template -bool operator!=(const istreambuf_iterator& a, - const istreambuf_iterator& b); - -template > -class ostreambuf_iterator - : public iterator -{ -public: - typedef charT char_type; - typedef traits traits_type; - typedef basic_streambuf streambuf_type; - typedef basic_ostream ostream_type; - - ostreambuf_iterator(ostream_type& s) noexcept; - ostreambuf_iterator(streambuf_type* s) noexcept; - ostreambuf_iterator& operator=(charT c); - ostreambuf_iterator& operator*(); - ostreambuf_iterator& operator++(); - ostreambuf_iterator& operator++(int); - bool failed() const noexcept; -}; - -template auto begin(C& c) -> decltype(c.begin()); -template auto begin(const C& c) -> decltype(c.begin()); -template auto end(C& c) -> decltype(c.end()); -template auto end(const C& c) -> decltype(c.end()); -template T* begin(T (&array)[N]); -template T* end(T (&array)[N]); - -template auto cbegin(const C& c) -> decltype(std::begin(c)); // C++14 -template auto cend(const C& c) -> decltype(std::end(c)); // C++14 -template auto rbegin(C& c) -> decltype(c.rbegin()); // C++14 -template auto rbegin(const C& c) -> decltype(c.rbegin()); // C++14 -template auto rend(C& c) -> decltype(c.rend()); // C++14 -template auto rend(const C& c) -> decltype(c.rend()); // C++14 -template reverse_iterator rbegin(initializer_list il); // C++14 -template reverse_iterator rend(initializer_list il); // C++14 -template reverse_iterator rbegin(T (&array)[N]); // C++14 -template reverse_iterator rend(T (&array)[N]); // C++14 -template auto crbegin(const C& c) -> decltype(std::rbegin(c)); // C++14 -template auto crend(const C& c) -> decltype(std::rend(c)); // C++14 - -// 24.8, container access: -template constexpr auto size(const C& c) -> decltype(c.size()); // C++17 -template constexpr size_t size(const T (&array)[N]) noexcept; // C++17 -template constexpr auto empty(const C& c) -> decltype(c.empty()); // C++17 -template constexpr bool empty(const T (&array)[N]) noexcept; // C++17 -template constexpr bool empty(initializer_list il) noexcept; // C++17 -template constexpr auto data(C& c) -> decltype(c.data()); // C++17 -template constexpr auto data(const C& c) -> decltype(c.data()); // C++17 -template constexpr T* data(T (&array)[N]) noexcept; // C++17 -template constexpr const E* data(initializer_list il) noexcept; // C++17 - -} // std - -*/ - -#include <__config> -#include <__functional_base> -#include -#include -#include -#include -#ifdef __APPLE__ -#include -#endif - -#include <__debug> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -struct _LIBCPP_TYPE_VIS_ONLY input_iterator_tag {}; -struct _LIBCPP_TYPE_VIS_ONLY output_iterator_tag {}; -struct _LIBCPP_TYPE_VIS_ONLY forward_iterator_tag : public input_iterator_tag {}; -struct _LIBCPP_TYPE_VIS_ONLY bidirectional_iterator_tag : public forward_iterator_tag {}; -struct _LIBCPP_TYPE_VIS_ONLY random_access_iterator_tag : public bidirectional_iterator_tag {}; - -template -struct __has_iterator_category -{ -private: - struct __two {char __lx; char __lxx;}; - template static __two __test(...); - template static char __test(typename _Up::iterator_category* = 0); -public: - static const bool value = sizeof(__test<_Tp>(0)) == 1; -}; - -template struct __iterator_traits_impl {}; - -template -struct __iterator_traits_impl<_Iter, true> -{ - typedef typename _Iter::difference_type difference_type; - typedef typename _Iter::value_type value_type; - typedef typename _Iter::pointer pointer; - typedef typename _Iter::reference reference; - typedef typename _Iter::iterator_category iterator_category; -}; - -template struct __iterator_traits {}; - -template -struct __iterator_traits<_Iter, true> - : __iterator_traits_impl - < - _Iter, - is_convertible::value || - is_convertible::value - > -{}; - -// iterator_traits will only have the nested types if Iterator::iterator_category -// exists. Else iterator_traits will be an empty class. This is a -// conforming extension which allows some programs to compile and behave as -// the client expects instead of failing at compile time. - -template -struct _LIBCPP_TYPE_VIS_ONLY iterator_traits - : __iterator_traits<_Iter, __has_iterator_category<_Iter>::value> {}; - -template -struct _LIBCPP_TYPE_VIS_ONLY iterator_traits<_Tp*> -{ - typedef ptrdiff_t difference_type; - typedef typename remove_const<_Tp>::type value_type; - typedef _Tp* pointer; - typedef _Tp& reference; - typedef random_access_iterator_tag iterator_category; -}; - -template >::value> -struct __has_iterator_category_convertible_to - : public integral_constant::iterator_category, _Up>::value> -{}; - -template -struct __has_iterator_category_convertible_to<_Tp, _Up, false> : public false_type {}; - -template -struct __is_input_iterator : public __has_iterator_category_convertible_to<_Tp, input_iterator_tag> {}; - -template -struct __is_forward_iterator : public __has_iterator_category_convertible_to<_Tp, forward_iterator_tag> {}; - -template -struct __is_bidirectional_iterator : public __has_iterator_category_convertible_to<_Tp, bidirectional_iterator_tag> {}; - -template -struct __is_random_access_iterator : public __has_iterator_category_convertible_to<_Tp, random_access_iterator_tag> {}; - -template -struct _LIBCPP_TYPE_VIS_ONLY iterator -{ - typedef _Tp value_type; - typedef _Distance difference_type; - typedef _Pointer pointer; - typedef _Reference reference; - typedef _Category iterator_category; -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -void __advance(_InputIter& __i, - typename iterator_traits<_InputIter>::difference_type __n, input_iterator_tag) -{ - for (; __n > 0; --__n) - ++__i; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void __advance(_BiDirIter& __i, - typename iterator_traits<_BiDirIter>::difference_type __n, bidirectional_iterator_tag) -{ - if (__n >= 0) - for (; __n > 0; --__n) - ++__i; - else - for (; __n < 0; ++__n) - --__i; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void __advance(_RandIter& __i, - typename iterator_traits<_RandIter>::difference_type __n, random_access_iterator_tag) -{ - __i += __n; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void advance(_InputIter& __i, - typename iterator_traits<_InputIter>::difference_type __n) -{ - __advance(__i, __n, typename iterator_traits<_InputIter>::iterator_category()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename iterator_traits<_InputIter>::difference_type -__distance(_InputIter __first, _InputIter __last, input_iterator_tag) -{ - typename iterator_traits<_InputIter>::difference_type __r(0); - for (; __first != __last; ++__first) - ++__r; - return __r; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename iterator_traits<_RandIter>::difference_type -__distance(_RandIter __first, _RandIter __last, random_access_iterator_tag) -{ - return __last - __first; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename iterator_traits<_InputIter>::difference_type -distance(_InputIter __first, _InputIter __last) -{ - return __distance(__first, __last, typename iterator_traits<_InputIter>::iterator_category()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_InputIter -next(_InputIter __x, - typename iterator_traits<_InputIter>::difference_type __n = 1, - typename enable_if<__is_input_iterator<_InputIter>::value>::type* = 0) -{ - _VSTD::advance(__x, __n); - return __x; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_BidiretionalIter -prev(_BidiretionalIter __x, - typename iterator_traits<_BidiretionalIter>::difference_type __n = 1, - typename enable_if<__is_bidirectional_iterator<_BidiretionalIter>::value>::type* = 0) -{ - _VSTD::advance(__x, -__n); - return __x; -} - -template -class _LIBCPP_TYPE_VIS_ONLY reverse_iterator - : public iterator::iterator_category, - typename iterator_traits<_Iter>::value_type, - typename iterator_traits<_Iter>::difference_type, - typename iterator_traits<_Iter>::pointer, - typename iterator_traits<_Iter>::reference> -{ -private: - mutable _Iter __t; // no longer used as of LWG #2360, not removed due to ABI break -protected: - _Iter current; -public: - typedef _Iter iterator_type; - typedef typename iterator_traits<_Iter>::difference_type difference_type; - typedef typename iterator_traits<_Iter>::reference reference; - typedef typename iterator_traits<_Iter>::pointer pointer; - - _LIBCPP_INLINE_VISIBILITY reverse_iterator() : current() {} - _LIBCPP_INLINE_VISIBILITY explicit reverse_iterator(_Iter __x) : __t(__x), current(__x) {} - template _LIBCPP_INLINE_VISIBILITY reverse_iterator(const reverse_iterator<_Up>& __u) - : __t(__u.base()), current(__u.base()) {} - _LIBCPP_INLINE_VISIBILITY _Iter base() const {return current;} - _LIBCPP_INLINE_VISIBILITY reference operator*() const {_Iter __tmp = current; return *--__tmp;} - _LIBCPP_INLINE_VISIBILITY pointer operator->() const {return _VSTD::addressof(operator*());} - _LIBCPP_INLINE_VISIBILITY reverse_iterator& operator++() {--current; return *this;} - _LIBCPP_INLINE_VISIBILITY reverse_iterator operator++(int) - {reverse_iterator __tmp(*this); --current; return __tmp;} - _LIBCPP_INLINE_VISIBILITY reverse_iterator& operator--() {++current; return *this;} - _LIBCPP_INLINE_VISIBILITY reverse_iterator operator--(int) - {reverse_iterator __tmp(*this); ++current; return __tmp;} - _LIBCPP_INLINE_VISIBILITY reverse_iterator operator+ (difference_type __n) const - {return reverse_iterator(current - __n);} - _LIBCPP_INLINE_VISIBILITY reverse_iterator& operator+=(difference_type __n) - {current -= __n; return *this;} - _LIBCPP_INLINE_VISIBILITY reverse_iterator operator- (difference_type __n) const - {return reverse_iterator(current + __n);} - _LIBCPP_INLINE_VISIBILITY reverse_iterator& operator-=(difference_type __n) - {current += __n; return *this;} - _LIBCPP_INLINE_VISIBILITY reference operator[](difference_type __n) const - {return *(*this + __n);} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator==(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) -{ - return __x.base() == __y.base(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator<(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) -{ - return __x.base() > __y.base(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) -{ - return __x.base() != __y.base(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator>(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) -{ - return __x.base() < __y.base(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator>=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) -{ - return __x.base() <= __y.base(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator<=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) -{ - return __x.base() >= __y.base(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename reverse_iterator<_Iter1>::difference_type -operator-(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) -{ - return __y.base() - __x.base(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -reverse_iterator<_Iter> -operator+(typename reverse_iterator<_Iter>::difference_type __n, const reverse_iterator<_Iter>& __x) -{ - return reverse_iterator<_Iter>(__x.base() - __n); -} - -#if _LIBCPP_STD_VER > 11 -template -inline _LIBCPP_INLINE_VISIBILITY -reverse_iterator<_Iter> make_reverse_iterator(_Iter __i) -{ - return reverse_iterator<_Iter>(__i); -} -#endif - -template -class _LIBCPP_TYPE_VIS_ONLY back_insert_iterator - : public iterator&> -{ -protected: - _Container* container; -public: - typedef _Container container_type; - - _LIBCPP_INLINE_VISIBILITY explicit back_insert_iterator(_Container& __x) : container(_VSTD::addressof(__x)) {} - _LIBCPP_INLINE_VISIBILITY back_insert_iterator& operator=(const typename _Container::value_type& __value_) - {container->push_back(__value_); return *this;} -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY back_insert_iterator& operator=(typename _Container::value_type&& __value_) - {container->push_back(_VSTD::move(__value_)); return *this;} -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY back_insert_iterator& operator*() {return *this;} - _LIBCPP_INLINE_VISIBILITY back_insert_iterator& operator++() {return *this;} - _LIBCPP_INLINE_VISIBILITY back_insert_iterator operator++(int) {return *this;} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -back_insert_iterator<_Container> -back_inserter(_Container& __x) -{ - return back_insert_iterator<_Container>(__x); -} - -template -class _LIBCPP_TYPE_VIS_ONLY front_insert_iterator - : public iterator&> -{ -protected: - _Container* container; -public: - typedef _Container container_type; - - _LIBCPP_INLINE_VISIBILITY explicit front_insert_iterator(_Container& __x) : container(_VSTD::addressof(__x)) {} - _LIBCPP_INLINE_VISIBILITY front_insert_iterator& operator=(const typename _Container::value_type& __value_) - {container->push_front(__value_); return *this;} -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY front_insert_iterator& operator=(typename _Container::value_type&& __value_) - {container->push_front(_VSTD::move(__value_)); return *this;} -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY front_insert_iterator& operator*() {return *this;} - _LIBCPP_INLINE_VISIBILITY front_insert_iterator& operator++() {return *this;} - _LIBCPP_INLINE_VISIBILITY front_insert_iterator operator++(int) {return *this;} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -front_insert_iterator<_Container> -front_inserter(_Container& __x) -{ - return front_insert_iterator<_Container>(__x); -} - -template -class _LIBCPP_TYPE_VIS_ONLY insert_iterator - : public iterator&> -{ -protected: - _Container* container; - typename _Container::iterator iter; -public: - typedef _Container container_type; - - _LIBCPP_INLINE_VISIBILITY insert_iterator(_Container& __x, typename _Container::iterator __i) - : container(_VSTD::addressof(__x)), iter(__i) {} - _LIBCPP_INLINE_VISIBILITY insert_iterator& operator=(const typename _Container::value_type& __value_) - {iter = container->insert(iter, __value_); ++iter; return *this;} -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY insert_iterator& operator=(typename _Container::value_type&& __value_) - {iter = container->insert(iter, _VSTD::move(__value_)); ++iter; return *this;} -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY insert_iterator& operator*() {return *this;} - _LIBCPP_INLINE_VISIBILITY insert_iterator& operator++() {return *this;} - _LIBCPP_INLINE_VISIBILITY insert_iterator& operator++(int) {return *this;} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -insert_iterator<_Container> -inserter(_Container& __x, typename _Container::iterator __i) -{ - return insert_iterator<_Container>(__x, __i); -} - -template , class _Distance = ptrdiff_t> -class _LIBCPP_TYPE_VIS_ONLY istream_iterator - : public iterator -{ -public: - typedef _CharT char_type; - typedef _Traits traits_type; - typedef basic_istream<_CharT,_Traits> istream_type; -private: - istream_type* __in_stream_; - _Tp __value_; -public: - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR istream_iterator() : __in_stream_(0), __value_() {} - _LIBCPP_INLINE_VISIBILITY istream_iterator(istream_type& __s) : __in_stream_(&__s) - { - if (!(*__in_stream_ >> __value_)) - __in_stream_ = 0; - } - - _LIBCPP_INLINE_VISIBILITY const _Tp& operator*() const {return __value_;} - _LIBCPP_INLINE_VISIBILITY const _Tp* operator->() const {return &(operator*());} - _LIBCPP_INLINE_VISIBILITY istream_iterator& operator++() - { - if (!(*__in_stream_ >> __value_)) - __in_stream_ = 0; - return *this; - } - _LIBCPP_INLINE_VISIBILITY istream_iterator operator++(int) - {istream_iterator __t(*this); ++(*this); return __t;} - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(const istream_iterator& __x, const istream_iterator& __y) - {return __x.__in_stream_ == __y.__in_stream_;} - - friend _LIBCPP_INLINE_VISIBILITY - bool operator!=(const istream_iterator& __x, const istream_iterator& __y) - {return !(__x == __y);} -}; - -template > -class _LIBCPP_TYPE_VIS_ONLY ostream_iterator - : public iterator -{ -public: - typedef _CharT char_type; - typedef _Traits traits_type; - typedef basic_ostream<_CharT,_Traits> ostream_type; -private: - ostream_type* __out_stream_; - const char_type* __delim_; -public: - _LIBCPP_INLINE_VISIBILITY ostream_iterator(ostream_type& __s) - : __out_stream_(&__s), __delim_(0) {} - _LIBCPP_INLINE_VISIBILITY ostream_iterator(ostream_type& __s, const _CharT* __delimiter) - : __out_stream_(&__s), __delim_(__delimiter) {} - _LIBCPP_INLINE_VISIBILITY ostream_iterator& operator=(const _Tp& __value_) - { - *__out_stream_ << __value_; - if (__delim_) - *__out_stream_ << __delim_; - return *this; - } - - _LIBCPP_INLINE_VISIBILITY ostream_iterator& operator*() {return *this;} - _LIBCPP_INLINE_VISIBILITY ostream_iterator& operator++() {return *this;} - _LIBCPP_INLINE_VISIBILITY ostream_iterator& operator++(int) {return *this;} -}; - -template -class _LIBCPP_TYPE_VIS_ONLY istreambuf_iterator - : public iterator -{ -public: - typedef _CharT char_type; - typedef _Traits traits_type; - typedef typename _Traits::int_type int_type; - typedef basic_streambuf<_CharT,_Traits> streambuf_type; - typedef basic_istream<_CharT,_Traits> istream_type; -private: - mutable streambuf_type* __sbuf_; - - class __proxy - { - char_type __keep_; - streambuf_type* __sbuf_; - _LIBCPP_INLINE_VISIBILITY __proxy(char_type __c, streambuf_type* __s) - : __keep_(__c), __sbuf_(__s) {} - friend class istreambuf_iterator; - public: - _LIBCPP_INLINE_VISIBILITY char_type operator*() const {return __keep_;} - }; - - _LIBCPP_INLINE_VISIBILITY - bool __test_for_eof() const - { - if (__sbuf_ && traits_type::eq_int_type(__sbuf_->sgetc(), traits_type::eof())) - __sbuf_ = 0; - return __sbuf_ == 0; - } -public: - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR istreambuf_iterator() _NOEXCEPT : __sbuf_(0) {} - _LIBCPP_INLINE_VISIBILITY istreambuf_iterator(istream_type& __s) _NOEXCEPT - : __sbuf_(__s.rdbuf()) {} - _LIBCPP_INLINE_VISIBILITY istreambuf_iterator(streambuf_type* __s) _NOEXCEPT - : __sbuf_(__s) {} - _LIBCPP_INLINE_VISIBILITY istreambuf_iterator(const __proxy& __p) _NOEXCEPT - : __sbuf_(__p.__sbuf_) {} - - _LIBCPP_INLINE_VISIBILITY char_type operator*() const - {return static_cast(__sbuf_->sgetc());} - _LIBCPP_INLINE_VISIBILITY char_type* operator->() const {return nullptr;} - _LIBCPP_INLINE_VISIBILITY istreambuf_iterator& operator++() - { - __sbuf_->sbumpc(); - return *this; - } - _LIBCPP_INLINE_VISIBILITY __proxy operator++(int) - { - return __proxy(__sbuf_->sbumpc(), __sbuf_); - } - - _LIBCPP_INLINE_VISIBILITY bool equal(const istreambuf_iterator& __b) const - {return __test_for_eof() == __b.__test_for_eof();} -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -bool operator==(const istreambuf_iterator<_CharT,_Traits>& __a, - const istreambuf_iterator<_CharT,_Traits>& __b) - {return __a.equal(__b);} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool operator!=(const istreambuf_iterator<_CharT,_Traits>& __a, - const istreambuf_iterator<_CharT,_Traits>& __b) - {return !__a.equal(__b);} - -template -class _LIBCPP_TYPE_VIS_ONLY ostreambuf_iterator - : public iterator -{ -public: - typedef _CharT char_type; - typedef _Traits traits_type; - typedef basic_streambuf<_CharT,_Traits> streambuf_type; - typedef basic_ostream<_CharT,_Traits> ostream_type; -private: - streambuf_type* __sbuf_; -public: - _LIBCPP_INLINE_VISIBILITY ostreambuf_iterator(ostream_type& __s) _NOEXCEPT - : __sbuf_(__s.rdbuf()) {} - _LIBCPP_INLINE_VISIBILITY ostreambuf_iterator(streambuf_type* __s) _NOEXCEPT - : __sbuf_(__s) {} - _LIBCPP_INLINE_VISIBILITY ostreambuf_iterator& operator=(_CharT __c) - { - if (__sbuf_ && traits_type::eq_int_type(__sbuf_->sputc(__c), traits_type::eof())) - __sbuf_ = 0; - return *this; - } - _LIBCPP_INLINE_VISIBILITY ostreambuf_iterator& operator*() {return *this;} - _LIBCPP_INLINE_VISIBILITY ostreambuf_iterator& operator++() {return *this;} - _LIBCPP_INLINE_VISIBILITY ostreambuf_iterator& operator++(int) {return *this;} - _LIBCPP_INLINE_VISIBILITY bool failed() const _NOEXCEPT {return __sbuf_ == 0;} - -#if !defined(__APPLE__) || \ - (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \ - (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0) - - template - friend - _LIBCPP_HIDDEN - ostreambuf_iterator<_Ch, _Tr> - __pad_and_output(ostreambuf_iterator<_Ch, _Tr> __s, - const _Ch* __ob, const _Ch* __op, const _Ch* __oe, - ios_base& __iob, _Ch __fl); -#endif -}; - -template -class _LIBCPP_TYPE_VIS_ONLY move_iterator -{ -private: - _Iter __i; -public: - typedef _Iter iterator_type; - typedef typename iterator_traits::iterator_category iterator_category; - typedef typename iterator_traits::value_type value_type; - typedef typename iterator_traits::difference_type difference_type; - typedef typename iterator_traits::pointer pointer; -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - typedef value_type&& reference; -#else - typedef typename iterator_traits::reference reference; -#endif - - _LIBCPP_INLINE_VISIBILITY move_iterator() : __i() {} - _LIBCPP_INLINE_VISIBILITY explicit move_iterator(_Iter __x) : __i(__x) {} - template _LIBCPP_INLINE_VISIBILITY move_iterator(const move_iterator<_Up>& __u) - : __i(__u.base()) {} - _LIBCPP_INLINE_VISIBILITY _Iter base() const {return __i;} - _LIBCPP_INLINE_VISIBILITY reference operator*() const { - return static_cast(*__i); - } - _LIBCPP_INLINE_VISIBILITY pointer operator->() const { - typename iterator_traits::reference __ref = *__i; - return &__ref; - } - _LIBCPP_INLINE_VISIBILITY move_iterator& operator++() {++__i; return *this;} - _LIBCPP_INLINE_VISIBILITY move_iterator operator++(int) - {move_iterator __tmp(*this); ++__i; return __tmp;} - _LIBCPP_INLINE_VISIBILITY move_iterator& operator--() {--__i; return *this;} - _LIBCPP_INLINE_VISIBILITY move_iterator operator--(int) - {move_iterator __tmp(*this); --__i; return __tmp;} - _LIBCPP_INLINE_VISIBILITY move_iterator operator+ (difference_type __n) const - {return move_iterator(__i + __n);} - _LIBCPP_INLINE_VISIBILITY move_iterator& operator+=(difference_type __n) - {__i += __n; return *this;} - _LIBCPP_INLINE_VISIBILITY move_iterator operator- (difference_type __n) const - {return move_iterator(__i - __n);} - _LIBCPP_INLINE_VISIBILITY move_iterator& operator-=(difference_type __n) - {__i -= __n; return *this;} - _LIBCPP_INLINE_VISIBILITY reference operator[](difference_type __n) const - { - return static_cast(__i[__n]); - } -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator==(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) -{ - return __x.base() == __y.base(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator<(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) -{ - return __x.base() < __y.base(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) -{ - return __x.base() != __y.base(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator>(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) -{ - return __x.base() > __y.base(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator>=(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) -{ - return __x.base() >= __y.base(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator<=(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) -{ - return __x.base() <= __y.base(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename move_iterator<_Iter1>::difference_type -operator-(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) -{ - return __x.base() - __y.base(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -move_iterator<_Iter> -operator+(typename move_iterator<_Iter>::difference_type __n, const move_iterator<_Iter>& __x) -{ - return move_iterator<_Iter>(__x.base() + __n); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -move_iterator<_Iter> -make_move_iterator(_Iter __i) -{ - return move_iterator<_Iter>(__i); -} - -// __wrap_iter - -template class __wrap_iter; - -template -_LIBCPP_INLINE_VISIBILITY -bool -operator==(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT; - -template -_LIBCPP_INLINE_VISIBILITY -bool -operator<(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT; - -template -_LIBCPP_INLINE_VISIBILITY -bool -operator!=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT; - -template -_LIBCPP_INLINE_VISIBILITY -bool -operator>(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT; - -template -_LIBCPP_INLINE_VISIBILITY -bool -operator>=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT; - -template -_LIBCPP_INLINE_VISIBILITY -bool -operator<=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT; - -template -_LIBCPP_INLINE_VISIBILITY -typename __wrap_iter<_Iter1>::difference_type -operator-(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT; - -template -_LIBCPP_INLINE_VISIBILITY -__wrap_iter<_Iter> -operator+(typename __wrap_iter<_Iter>::difference_type, __wrap_iter<_Iter>) _NOEXCEPT; - -template _Op _LIBCPP_INLINE_VISIBILITY copy(_Ip, _Ip, _Op); -template _B2 _LIBCPP_INLINE_VISIBILITY copy_backward(_B1, _B1, _B2); -template _Op _LIBCPP_INLINE_VISIBILITY move(_Ip, _Ip, _Op); -template _B2 _LIBCPP_INLINE_VISIBILITY move_backward(_B1, _B1, _B2); - -template -_LIBCPP_INLINE_VISIBILITY -typename enable_if -< - is_trivially_copy_assignable<_Tp>::value, - _Tp* ->::type -__unwrap_iter(__wrap_iter<_Tp*>); - -template -class __wrap_iter -{ -public: - typedef _Iter iterator_type; - typedef typename iterator_traits::iterator_category iterator_category; - typedef typename iterator_traits::value_type value_type; - typedef typename iterator_traits::difference_type difference_type; - typedef typename iterator_traits::pointer pointer; - typedef typename iterator_traits::reference reference; -private: - iterator_type __i; -public: - _LIBCPP_INLINE_VISIBILITY __wrap_iter() _NOEXCEPT -#if _LIBCPP_STD_VER > 11 - : __i{} -#endif - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_i(this); -#endif - } - template _LIBCPP_INLINE_VISIBILITY __wrap_iter(const __wrap_iter<_Up>& __u, - typename enable_if::value>::type* = 0) _NOEXCEPT - : __i(__u.base()) - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__iterator_copy(this, &__u); -#endif - } -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_INLINE_VISIBILITY - __wrap_iter(const __wrap_iter& __x) - : __i(__x.base()) - { - __get_db()->__iterator_copy(this, &__x); - } - _LIBCPP_INLINE_VISIBILITY - __wrap_iter& operator=(const __wrap_iter& __x) - { - if (this != &__x) - { - __get_db()->__iterator_copy(this, &__x); - __i = __x.__i; - } - return *this; - } - _LIBCPP_INLINE_VISIBILITY - ~__wrap_iter() - { - __get_db()->__erase_i(this); - } -#endif - _LIBCPP_INLINE_VISIBILITY reference operator*() const _NOEXCEPT - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to dereference a non-dereferenceable iterator"); -#endif - return *__i; - } - _LIBCPP_INLINE_VISIBILITY pointer operator->() const _NOEXCEPT - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to dereference a non-dereferenceable iterator"); -#endif - return (pointer)&reinterpret_cast(*__i); - } - _LIBCPP_INLINE_VISIBILITY __wrap_iter& operator++() _NOEXCEPT - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to increment non-incrementable iterator"); -#endif - ++__i; - return *this; - } - _LIBCPP_INLINE_VISIBILITY __wrap_iter operator++(int) _NOEXCEPT - {__wrap_iter __tmp(*this); ++(*this); return __tmp;} - _LIBCPP_INLINE_VISIBILITY __wrap_iter& operator--() _NOEXCEPT - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__decrementable(this), - "Attempted to decrement non-decrementable iterator"); -#endif - --__i; - return *this; - } - _LIBCPP_INLINE_VISIBILITY __wrap_iter operator--(int) _NOEXCEPT - {__wrap_iter __tmp(*this); --(*this); return __tmp;} - _LIBCPP_INLINE_VISIBILITY __wrap_iter operator+ (difference_type __n) const _NOEXCEPT - {__wrap_iter __w(*this); __w += __n; return __w;} - _LIBCPP_INLINE_VISIBILITY __wrap_iter& operator+=(difference_type __n) _NOEXCEPT - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__addable(this, __n), - "Attempted to add/subtract iterator outside of valid range"); -#endif - __i += __n; - return *this; - } - _LIBCPP_INLINE_VISIBILITY __wrap_iter operator- (difference_type __n) const _NOEXCEPT - {return *this + (-__n);} - _LIBCPP_INLINE_VISIBILITY __wrap_iter& operator-=(difference_type __n) _NOEXCEPT - {*this += -__n; return *this;} - _LIBCPP_INLINE_VISIBILITY reference operator[](difference_type __n) const _NOEXCEPT - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__subscriptable(this, __n), - "Attempted to subscript iterator outside of valid range"); -#endif - return __i[__n]; - } - - _LIBCPP_INLINE_VISIBILITY iterator_type base() const _NOEXCEPT {return __i;} - -private: -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_INLINE_VISIBILITY __wrap_iter(const void* __p, iterator_type __x) : __i(__x) - { - __get_db()->__insert_ic(this, __p); - } -#else - _LIBCPP_INLINE_VISIBILITY __wrap_iter(iterator_type __x) _NOEXCEPT : __i(__x) {} -#endif - - template friend class __wrap_iter; - template friend class basic_string; - template friend class _LIBCPP_TYPE_VIS_ONLY vector; - - template - friend - bool - operator==(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT; - - template - friend - bool - operator<(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT; - - template - friend - bool - operator!=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT; - - template - friend - bool - operator>(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT; - - template - friend - bool - operator>=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT; - - template - friend - bool - operator<=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT; - - template - friend - typename __wrap_iter<_Iter1>::difference_type - operator-(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT; - - template - friend - __wrap_iter<_Iter1> - operator+(typename __wrap_iter<_Iter1>::difference_type, __wrap_iter<_Iter1>) _NOEXCEPT; - - template friend _Op copy(_Ip, _Ip, _Op); - template friend _B2 copy_backward(_B1, _B1, _B2); - template friend _Op move(_Ip, _Ip, _Op); - template friend _B2 move_backward(_B1, _B1, _B2); - - template - friend - typename enable_if - < - is_trivially_copy_assignable<_Tp>::value, - _Tp* - >::type - __unwrap_iter(__wrap_iter<_Tp*>); -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator==(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT -{ - return __x.base() == __y.base(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator<(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__less_than_comparable(&__x, &__y), - "Attempted to compare incomparable iterators"); -#endif - return __x.base() < __y.base(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT -{ - return !(__x == __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator>(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT -{ - return __y < __x; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator>=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT -{ - return !(__x < __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator<=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT -{ - return !(__y < __x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter1>& __y) _NOEXCEPT -{ - return !(__x == __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator>(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter1>& __y) _NOEXCEPT -{ - return __y < __x; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator>=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter1>& __y) _NOEXCEPT -{ - return !(__x < __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator<=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter1>& __y) _NOEXCEPT -{ - return !(__y < __x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename __wrap_iter<_Iter1>::difference_type -operator-(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__less_than_comparable(&__x, &__y), - "Attempted to subtract incompatible iterators"); -#endif - return __x.base() - __y.base(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -__wrap_iter<_Iter> -operator+(typename __wrap_iter<_Iter>::difference_type __n, - __wrap_iter<_Iter> __x) _NOEXCEPT -{ - __x += __n; - return __x; -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -_Tp* -begin(_Tp (&__array)[_Np]) -{ - return __array; -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -_Tp* -end(_Tp (&__array)[_Np]) -{ - return __array + _Np; -} - -#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_TRAILING_RETURN) - -template -inline _LIBCPP_INLINE_VISIBILITY -auto -begin(_Cp& __c) -> decltype(__c.begin()) -{ - return __c.begin(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -auto -begin(const _Cp& __c) -> decltype(__c.begin()) -{ - return __c.begin(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -auto -end(_Cp& __c) -> decltype(__c.end()) -{ - return __c.end(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -auto -end(const _Cp& __c) -> decltype(__c.end()) -{ - return __c.end(); -} - -#if _LIBCPP_STD_VER > 11 - -template -inline _LIBCPP_INLINE_VISIBILITY -reverse_iterator<_Tp*> rbegin(_Tp (&__array)[_Np]) -{ - return reverse_iterator<_Tp*>(__array + _Np); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -reverse_iterator<_Tp*> rend(_Tp (&__array)[_Np]) -{ - return reverse_iterator<_Tp*>(__array); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -reverse_iterator rbegin(initializer_list<_Ep> __il) -{ - return reverse_iterator(__il.end()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -reverse_iterator rend(initializer_list<_Ep> __il) -{ - return reverse_iterator(__il.begin()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -auto cbegin(const _Cp& __c) -> decltype(begin(__c)) -{ - return begin(__c); -} - -template -inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -auto cend(const _Cp& __c) -> decltype(end(__c)) -{ - return end(__c); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -auto rbegin(_Cp& __c) -> decltype(__c.rbegin()) -{ - return __c.rbegin(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -auto rbegin(const _Cp& __c) -> decltype(__c.rbegin()) -{ - return __c.rbegin(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -auto rend(_Cp& __c) -> decltype(__c.rend()) -{ - return __c.rend(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -auto rend(const _Cp& __c) -> decltype(__c.rend()) -{ - return __c.rend(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -auto crbegin(const _Cp& __c) -> decltype(rbegin(__c)) -{ - return rbegin(__c); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -auto crend(const _Cp& __c) -> decltype(rend(__c)) -{ - return rend(__c); -} - -#endif - - -#else // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_TRAILING_RETURN) - -template -inline _LIBCPP_INLINE_VISIBILITY -typename _Cp::iterator -begin(_Cp& __c) -{ - return __c.begin(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename _Cp::const_iterator -begin(const _Cp& __c) -{ - return __c.begin(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename _Cp::iterator -end(_Cp& __c) -{ - return __c.end(); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename _Cp::const_iterator -end(const _Cp& __c) -{ - return __c.end(); -} - -#endif // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_TRAILING_RETURN) - -#if _LIBCPP_STD_VER > 14 -template -constexpr auto size(const _Cont& __c) -> decltype(__c.size()) { return __c.size(); } - -template -constexpr size_t size(const _Tp (&__array)[_Sz]) noexcept { return _Sz; } - -template -constexpr auto empty(const _Cont& __c) -> decltype(__c.empty()) { return __c.empty(); } - -template -constexpr bool empty(const _Tp (&__array)[_Sz]) noexcept { return false; } - -template -constexpr bool empty(initializer_list<_Ep> __il) noexcept { return __il.size() == 0; } - -template constexpr -auto data(_Cont& __c) -> decltype(__c.data()) { return __c.data(); } - -template constexpr -auto data(const _Cont& __c) -> decltype(__c.data()) { return __c.data(); } - -template -constexpr _Tp* data(_Tp (&__array)[_Sz]) noexcept { return __array; } - -template -constexpr const _Ep* data(initializer_list<_Ep> __il) noexcept { return __il.begin(); } -#endif - - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_ITERATOR diff --git a/headers/libs/libc++/limits b/headers/libs/libc++/limits deleted file mode 100644 index ce967ea1b2..0000000000 --- a/headers/libs/libc++/limits +++ /dev/null @@ -1,813 +0,0 @@ -// -*- C++ -*- -//===---------------------------- limits ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_LIMITS -#define _LIBCPP_LIMITS - -/* - limits synopsis - -namespace std -{ - -template -class numeric_limits -{ -public: - static constexpr bool is_specialized = false; - static constexpr T min() noexcept; - static constexpr T max() noexcept; - static constexpr T lowest() noexcept; - - static constexpr int digits = 0; - static constexpr int digits10 = 0; - static constexpr int max_digits10 = 0; - static constexpr bool is_signed = false; - static constexpr bool is_integer = false; - static constexpr bool is_exact = false; - static constexpr int radix = 0; - static constexpr T epsilon() noexcept; - static constexpr T round_error() noexcept; - - static constexpr int min_exponent = 0; - static constexpr int min_exponent10 = 0; - static constexpr int max_exponent = 0; - static constexpr int max_exponent10 = 0; - - static constexpr bool has_infinity = false; - static constexpr bool has_quiet_NaN = false; - static constexpr bool has_signaling_NaN = false; - static constexpr float_denorm_style has_denorm = denorm_absent; - static constexpr bool has_denorm_loss = false; - static constexpr T infinity() noexcept; - static constexpr T quiet_NaN() noexcept; - static constexpr T signaling_NaN() noexcept; - static constexpr T denorm_min() noexcept; - - static constexpr bool is_iec559 = false; - static constexpr bool is_bounded = false; - static constexpr bool is_modulo = false; - - static constexpr bool traps = false; - static constexpr bool tinyness_before = false; - static constexpr float_round_style round_style = round_toward_zero; -}; - -enum float_round_style -{ - round_indeterminate = -1, - round_toward_zero = 0, - round_to_nearest = 1, - round_toward_infinity = 2, - round_toward_neg_infinity = 3 -}; - -enum float_denorm_style -{ - denorm_indeterminate = -1, - denorm_absent = 0, - denorm_present = 1 -}; - -template<> class numeric_limits; - -template<> class numeric_limits; -template<> class numeric_limits; -template<> class numeric_limits; -template<> class numeric_limits; -template<> class numeric_limits; -template<> class numeric_limits; - -template<> class numeric_limits; -template<> class numeric_limits; -template<> class numeric_limits; -template<> class numeric_limits; -template<> class numeric_limits; -template<> class numeric_limits; -template<> class numeric_limits; -template<> class numeric_limits; - -template<> class numeric_limits; -template<> class numeric_limits; -template<> class numeric_limits; - -} // std - -*/ - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#include <__config> -#include - -#include <__undef_min_max> - -#if defined(_LIBCPP_MSVCRT) -#include "support/win32/limits_win32.h" -#endif // _LIBCPP_MSVCRT - -#if defined(__IBMCPP__) -#include "support/ibm/limits.h" -#endif // __IBMCPP__ - -_LIBCPP_BEGIN_NAMESPACE_STD - -enum float_round_style -{ - round_indeterminate = -1, - round_toward_zero = 0, - round_to_nearest = 1, - round_toward_infinity = 2, - round_toward_neg_infinity = 3 -}; - -enum float_denorm_style -{ - denorm_indeterminate = -1, - denorm_absent = 0, - denorm_present = 1 -}; - -template ::value> -class __libcpp_numeric_limits -{ -protected: - typedef _Tp type; - - static _LIBCPP_CONSTEXPR const bool is_specialized = false; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return type();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return type();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return type();} - - static _LIBCPP_CONSTEXPR const int digits = 0; - static _LIBCPP_CONSTEXPR const int digits10 = 0; - static _LIBCPP_CONSTEXPR const int max_digits10 = 0; - static _LIBCPP_CONSTEXPR const bool is_signed = false; - static _LIBCPP_CONSTEXPR const bool is_integer = false; - static _LIBCPP_CONSTEXPR const bool is_exact = false; - static _LIBCPP_CONSTEXPR const int radix = 0; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return type();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return type();} - - static _LIBCPP_CONSTEXPR const int min_exponent = 0; - static _LIBCPP_CONSTEXPR const int min_exponent10 = 0; - static _LIBCPP_CONSTEXPR const int max_exponent = 0; - static _LIBCPP_CONSTEXPR const int max_exponent10 = 0; - - static _LIBCPP_CONSTEXPR const bool has_infinity = false; - static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = false; - static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = false; - static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = denorm_absent; - static _LIBCPP_CONSTEXPR const bool has_denorm_loss = false; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return type();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return type();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return type();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return type();} - - static _LIBCPP_CONSTEXPR const bool is_iec559 = false; - static _LIBCPP_CONSTEXPR const bool is_bounded = false; - static _LIBCPP_CONSTEXPR const bool is_modulo = false; - - static _LIBCPP_CONSTEXPR const bool traps = false; - static _LIBCPP_CONSTEXPR const bool tinyness_before = false; - static _LIBCPP_CONSTEXPR const float_round_style round_style = round_toward_zero; -}; - -template -struct __libcpp_compute_min -{ - static _LIBCPP_CONSTEXPR const _Tp value = _Tp(_Tp(1) << digits); -}; - -template -struct __libcpp_compute_min<_Tp, digits, false> -{ - static _LIBCPP_CONSTEXPR const _Tp value = _Tp(0); -}; - -template -class __libcpp_numeric_limits<_Tp, true> -{ -protected: - typedef _Tp type; - - static _LIBCPP_CONSTEXPR const bool is_specialized = true; - - static _LIBCPP_CONSTEXPR const bool is_signed = type(-1) < type(0); - static _LIBCPP_CONSTEXPR const int digits = static_cast(sizeof(type) * __CHAR_BIT__ - is_signed); - static _LIBCPP_CONSTEXPR const int digits10 = digits * 3 / 10; - static _LIBCPP_CONSTEXPR const int max_digits10 = 0; - static _LIBCPP_CONSTEXPR const type __min = __libcpp_compute_min::value; - static _LIBCPP_CONSTEXPR const type __max = is_signed ? type(type(~0) ^ __min) : type(~0); - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __min;} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __max;} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return min();} - - static _LIBCPP_CONSTEXPR const bool is_integer = true; - static _LIBCPP_CONSTEXPR const bool is_exact = true; - static _LIBCPP_CONSTEXPR const int radix = 2; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return type(0);} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return type(0);} - - static _LIBCPP_CONSTEXPR const int min_exponent = 0; - static _LIBCPP_CONSTEXPR const int min_exponent10 = 0; - static _LIBCPP_CONSTEXPR const int max_exponent = 0; - static _LIBCPP_CONSTEXPR const int max_exponent10 = 0; - - static _LIBCPP_CONSTEXPR const bool has_infinity = false; - static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = false; - static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = false; - static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = denorm_absent; - static _LIBCPP_CONSTEXPR const bool has_denorm_loss = false; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return type(0);} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return type(0);} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return type(0);} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return type(0);} - - static _LIBCPP_CONSTEXPR const bool is_iec559 = false; - static _LIBCPP_CONSTEXPR const bool is_bounded = true; - static _LIBCPP_CONSTEXPR const bool is_modulo = !_VSTD::is_signed<_Tp>::value; - -#if defined(__i386__) || defined(__x86_64__) || defined(__pnacl__) - static _LIBCPP_CONSTEXPR const bool traps = true; -#else - static _LIBCPP_CONSTEXPR const bool traps = false; -#endif - static _LIBCPP_CONSTEXPR const bool tinyness_before = false; - static _LIBCPP_CONSTEXPR const float_round_style round_style = round_toward_zero; -}; - -template <> -class __libcpp_numeric_limits -{ -protected: - typedef bool type; - - static _LIBCPP_CONSTEXPR const bool is_specialized = true; - - static _LIBCPP_CONSTEXPR const bool is_signed = false; - static _LIBCPP_CONSTEXPR const int digits = 1; - static _LIBCPP_CONSTEXPR const int digits10 = 0; - static _LIBCPP_CONSTEXPR const int max_digits10 = 0; - static _LIBCPP_CONSTEXPR const type __min = false; - static _LIBCPP_CONSTEXPR const type __max = true; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __min;} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __max;} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return min();} - - static _LIBCPP_CONSTEXPR const bool is_integer = true; - static _LIBCPP_CONSTEXPR const bool is_exact = true; - static _LIBCPP_CONSTEXPR const int radix = 2; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return type(0);} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return type(0);} - - static _LIBCPP_CONSTEXPR const int min_exponent = 0; - static _LIBCPP_CONSTEXPR const int min_exponent10 = 0; - static _LIBCPP_CONSTEXPR const int max_exponent = 0; - static _LIBCPP_CONSTEXPR const int max_exponent10 = 0; - - static _LIBCPP_CONSTEXPR const bool has_infinity = false; - static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = false; - static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = false; - static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = denorm_absent; - static _LIBCPP_CONSTEXPR const bool has_denorm_loss = false; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return type(0);} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return type(0);} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return type(0);} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return type(0);} - - static _LIBCPP_CONSTEXPR const bool is_iec559 = false; - static _LIBCPP_CONSTEXPR const bool is_bounded = true; - static _LIBCPP_CONSTEXPR const bool is_modulo = false; - - static _LIBCPP_CONSTEXPR const bool traps = false; - static _LIBCPP_CONSTEXPR const bool tinyness_before = false; - static _LIBCPP_CONSTEXPR const float_round_style round_style = round_toward_zero; -}; - -template <> -class __libcpp_numeric_limits -{ -protected: - typedef float type; - - static _LIBCPP_CONSTEXPR const bool is_specialized = true; - - static _LIBCPP_CONSTEXPR const bool is_signed = true; - static _LIBCPP_CONSTEXPR const int digits = __FLT_MANT_DIG__; - static _LIBCPP_CONSTEXPR const int digits10 = __FLT_DIG__; - static _LIBCPP_CONSTEXPR const int max_digits10 = 2+(digits * 30103)/100000; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __FLT_MIN__;} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __FLT_MAX__;} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return -max();} - - static _LIBCPP_CONSTEXPR const bool is_integer = false; - static _LIBCPP_CONSTEXPR const bool is_exact = false; - static _LIBCPP_CONSTEXPR const int radix = __FLT_RADIX__; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return __FLT_EPSILON__;} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return 0.5F;} - - static _LIBCPP_CONSTEXPR const int min_exponent = __FLT_MIN_EXP__; - static _LIBCPP_CONSTEXPR const int min_exponent10 = __FLT_MIN_10_EXP__; - static _LIBCPP_CONSTEXPR const int max_exponent = __FLT_MAX_EXP__; - static _LIBCPP_CONSTEXPR const int max_exponent10 = __FLT_MAX_10_EXP__; - - static _LIBCPP_CONSTEXPR const bool has_infinity = true; - static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = true; - static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = true; - static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = denorm_present; - static _LIBCPP_CONSTEXPR const bool has_denorm_loss = false; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return __builtin_huge_valf();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return __builtin_nanf("");} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansf("");} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __FLT_DENORM_MIN__;} - - static _LIBCPP_CONSTEXPR const bool is_iec559 = true; - static _LIBCPP_CONSTEXPR const bool is_bounded = true; - static _LIBCPP_CONSTEXPR const bool is_modulo = false; - - static _LIBCPP_CONSTEXPR const bool traps = false; - static _LIBCPP_CONSTEXPR const bool tinyness_before = false; - static _LIBCPP_CONSTEXPR const float_round_style round_style = round_to_nearest; -}; - -template <> -class __libcpp_numeric_limits -{ -protected: - typedef double type; - - static _LIBCPP_CONSTEXPR const bool is_specialized = true; - - static _LIBCPP_CONSTEXPR const bool is_signed = true; - static _LIBCPP_CONSTEXPR const int digits = __DBL_MANT_DIG__; - static _LIBCPP_CONSTEXPR const int digits10 = __DBL_DIG__; - static _LIBCPP_CONSTEXPR const int max_digits10 = 2+(digits * 30103)/100000; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __DBL_MIN__;} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __DBL_MAX__;} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return -max();} - - static _LIBCPP_CONSTEXPR const bool is_integer = false; - static _LIBCPP_CONSTEXPR const bool is_exact = false; - static _LIBCPP_CONSTEXPR const int radix = __FLT_RADIX__; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return __DBL_EPSILON__;} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return 0.5;} - - static _LIBCPP_CONSTEXPR const int min_exponent = __DBL_MIN_EXP__; - static _LIBCPP_CONSTEXPR const int min_exponent10 = __DBL_MIN_10_EXP__; - static _LIBCPP_CONSTEXPR const int max_exponent = __DBL_MAX_EXP__; - static _LIBCPP_CONSTEXPR const int max_exponent10 = __DBL_MAX_10_EXP__; - - static _LIBCPP_CONSTEXPR const bool has_infinity = true; - static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = true; - static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = true; - static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = denorm_present; - static _LIBCPP_CONSTEXPR const bool has_denorm_loss = false; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return __builtin_huge_val();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return __builtin_nan("");} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nans("");} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __DBL_DENORM_MIN__;} - - static _LIBCPP_CONSTEXPR const bool is_iec559 = true; - static _LIBCPP_CONSTEXPR const bool is_bounded = true; - static _LIBCPP_CONSTEXPR const bool is_modulo = false; - - static _LIBCPP_CONSTEXPR const bool traps = false; - static _LIBCPP_CONSTEXPR const bool tinyness_before = false; - static _LIBCPP_CONSTEXPR const float_round_style round_style = round_to_nearest; -}; - -template <> -class __libcpp_numeric_limits -{ -protected: - typedef long double type; - - static _LIBCPP_CONSTEXPR const bool is_specialized = true; - - static _LIBCPP_CONSTEXPR const bool is_signed = true; - static _LIBCPP_CONSTEXPR const int digits = __LDBL_MANT_DIG__; - static _LIBCPP_CONSTEXPR const int digits10 = __LDBL_DIG__; - static _LIBCPP_CONSTEXPR const int max_digits10 = 2+(digits * 30103)/100000; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __LDBL_MIN__;} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __LDBL_MAX__;} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return -max();} - - static _LIBCPP_CONSTEXPR const bool is_integer = false; - static _LIBCPP_CONSTEXPR const bool is_exact = false; - static _LIBCPP_CONSTEXPR const int radix = __FLT_RADIX__; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return __LDBL_EPSILON__;} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return 0.5;} - - static _LIBCPP_CONSTEXPR const int min_exponent = __LDBL_MIN_EXP__; - static _LIBCPP_CONSTEXPR const int min_exponent10 = __LDBL_MIN_10_EXP__; - static _LIBCPP_CONSTEXPR const int max_exponent = __LDBL_MAX_EXP__; - static _LIBCPP_CONSTEXPR const int max_exponent10 = __LDBL_MAX_10_EXP__; - - static _LIBCPP_CONSTEXPR const bool has_infinity = true; - static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = true; - static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = true; - static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = denorm_present; - static _LIBCPP_CONSTEXPR const bool has_denorm_loss = false; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return __builtin_huge_vall();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return __builtin_nanl("");} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;} - -#if (defined(__ppc__) || defined(__ppc64__)) - static _LIBCPP_CONSTEXPR const bool is_iec559 = false; -#else - static _LIBCPP_CONSTEXPR const bool is_iec559 = true; -#endif - static _LIBCPP_CONSTEXPR const bool is_bounded = true; - static _LIBCPP_CONSTEXPR const bool is_modulo = false; - - static _LIBCPP_CONSTEXPR const bool traps = false; - static _LIBCPP_CONSTEXPR const bool tinyness_before = false; - static _LIBCPP_CONSTEXPR const float_round_style round_style = round_to_nearest; -}; - -template -class _LIBCPP_TYPE_VIS_ONLY numeric_limits - : private __libcpp_numeric_limits::type> -{ - typedef __libcpp_numeric_limits::type> __base; - typedef typename __base::type type; -public: - static _LIBCPP_CONSTEXPR const bool is_specialized = __base::is_specialized; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __base::min();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __base::max();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return __base::lowest();} - - static _LIBCPP_CONSTEXPR const int digits = __base::digits; - static _LIBCPP_CONSTEXPR const int digits10 = __base::digits10; - static _LIBCPP_CONSTEXPR const int max_digits10 = __base::max_digits10; - static _LIBCPP_CONSTEXPR const bool is_signed = __base::is_signed; - static _LIBCPP_CONSTEXPR const bool is_integer = __base::is_integer; - static _LIBCPP_CONSTEXPR const bool is_exact = __base::is_exact; - static _LIBCPP_CONSTEXPR const int radix = __base::radix; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return __base::epsilon();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return __base::round_error();} - - static _LIBCPP_CONSTEXPR const int min_exponent = __base::min_exponent; - static _LIBCPP_CONSTEXPR const int min_exponent10 = __base::min_exponent10; - static _LIBCPP_CONSTEXPR const int max_exponent = __base::max_exponent; - static _LIBCPP_CONSTEXPR const int max_exponent10 = __base::max_exponent10; - - static _LIBCPP_CONSTEXPR const bool has_infinity = __base::has_infinity; - static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = __base::has_quiet_NaN; - static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = __base::has_signaling_NaN; - static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = __base::has_denorm; - static _LIBCPP_CONSTEXPR const bool has_denorm_loss = __base::has_denorm_loss; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return __base::infinity();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return __base::quiet_NaN();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __base::signaling_NaN();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __base::denorm_min();} - - static _LIBCPP_CONSTEXPR const bool is_iec559 = __base::is_iec559; - static _LIBCPP_CONSTEXPR const bool is_bounded = __base::is_bounded; - static _LIBCPP_CONSTEXPR const bool is_modulo = __base::is_modulo; - - static _LIBCPP_CONSTEXPR const bool traps = __base::traps; - static _LIBCPP_CONSTEXPR const bool tinyness_before = __base::tinyness_before; - static _LIBCPP_CONSTEXPR const float_round_style round_style = __base::round_style; -}; - -template - _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_specialized; -template - _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::digits; -template - _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::digits10; -template - _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::max_digits10; -template - _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_signed; -template - _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_integer; -template - _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_exact; -template - _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::radix; -template - _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::min_exponent; -template - _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::min_exponent10; -template - _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::max_exponent; -template - _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::max_exponent10; -template - _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::has_infinity; -template - _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::has_quiet_NaN; -template - _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::has_signaling_NaN; -template - _LIBCPP_CONSTEXPR const float_denorm_style numeric_limits<_Tp>::has_denorm; -template - _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::has_denorm_loss; -template - _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_iec559; -template - _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_bounded; -template - _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_modulo; -template - _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::traps; -template - _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::tinyness_before; -template - _LIBCPP_CONSTEXPR const float_round_style numeric_limits<_Tp>::round_style; - -template -class _LIBCPP_TYPE_VIS_ONLY numeric_limits - : private numeric_limits<_Tp> -{ - typedef numeric_limits<_Tp> __base; - typedef _Tp type; -public: - static _LIBCPP_CONSTEXPR const bool is_specialized = __base::is_specialized; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __base::min();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __base::max();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return __base::lowest();} - - static _LIBCPP_CONSTEXPR const int digits = __base::digits; - static _LIBCPP_CONSTEXPR const int digits10 = __base::digits10; - static _LIBCPP_CONSTEXPR const int max_digits10 = __base::max_digits10; - static _LIBCPP_CONSTEXPR const bool is_signed = __base::is_signed; - static _LIBCPP_CONSTEXPR const bool is_integer = __base::is_integer; - static _LIBCPP_CONSTEXPR const bool is_exact = __base::is_exact; - static _LIBCPP_CONSTEXPR const int radix = __base::radix; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return __base::epsilon();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return __base::round_error();} - - static _LIBCPP_CONSTEXPR const int min_exponent = __base::min_exponent; - static _LIBCPP_CONSTEXPR const int min_exponent10 = __base::min_exponent10; - static _LIBCPP_CONSTEXPR const int max_exponent = __base::max_exponent; - static _LIBCPP_CONSTEXPR const int max_exponent10 = __base::max_exponent10; - - static _LIBCPP_CONSTEXPR const bool has_infinity = __base::has_infinity; - static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = __base::has_quiet_NaN; - static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = __base::has_signaling_NaN; - static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = __base::has_denorm; - static _LIBCPP_CONSTEXPR const bool has_denorm_loss = __base::has_denorm_loss; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return __base::infinity();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return __base::quiet_NaN();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __base::signaling_NaN();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __base::denorm_min();} - - static _LIBCPP_CONSTEXPR const bool is_iec559 = __base::is_iec559; - static _LIBCPP_CONSTEXPR const bool is_bounded = __base::is_bounded; - static _LIBCPP_CONSTEXPR const bool is_modulo = __base::is_modulo; - - static _LIBCPP_CONSTEXPR const bool traps = __base::traps; - static _LIBCPP_CONSTEXPR const bool tinyness_before = __base::tinyness_before; - static _LIBCPP_CONSTEXPR const float_round_style round_style = __base::round_style; -}; - -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_specialized; -template - _LIBCPP_CONSTEXPR const int numeric_limits::digits; -template - _LIBCPP_CONSTEXPR const int numeric_limits::digits10; -template - _LIBCPP_CONSTEXPR const int numeric_limits::max_digits10; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_signed; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_integer; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_exact; -template - _LIBCPP_CONSTEXPR const int numeric_limits::radix; -template - _LIBCPP_CONSTEXPR const int numeric_limits::min_exponent; -template - _LIBCPP_CONSTEXPR const int numeric_limits::min_exponent10; -template - _LIBCPP_CONSTEXPR const int numeric_limits::max_exponent; -template - _LIBCPP_CONSTEXPR const int numeric_limits::max_exponent10; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::has_infinity; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::has_quiet_NaN; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::has_signaling_NaN; -template - _LIBCPP_CONSTEXPR const float_denorm_style numeric_limits::has_denorm; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::has_denorm_loss; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_iec559; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_bounded; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_modulo; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::traps; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::tinyness_before; -template - _LIBCPP_CONSTEXPR const float_round_style numeric_limits::round_style; - -template -class _LIBCPP_TYPE_VIS_ONLY numeric_limits - : private numeric_limits<_Tp> -{ - typedef numeric_limits<_Tp> __base; - typedef _Tp type; -public: - static _LIBCPP_CONSTEXPR const bool is_specialized = __base::is_specialized; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __base::min();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __base::max();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return __base::lowest();} - - static _LIBCPP_CONSTEXPR const int digits = __base::digits; - static _LIBCPP_CONSTEXPR const int digits10 = __base::digits10; - static _LIBCPP_CONSTEXPR const int max_digits10 = __base::max_digits10; - static _LIBCPP_CONSTEXPR const bool is_signed = __base::is_signed; - static _LIBCPP_CONSTEXPR const bool is_integer = __base::is_integer; - static _LIBCPP_CONSTEXPR const bool is_exact = __base::is_exact; - static _LIBCPP_CONSTEXPR const int radix = __base::radix; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return __base::epsilon();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return __base::round_error();} - - static _LIBCPP_CONSTEXPR const int min_exponent = __base::min_exponent; - static _LIBCPP_CONSTEXPR const int min_exponent10 = __base::min_exponent10; - static _LIBCPP_CONSTEXPR const int max_exponent = __base::max_exponent; - static _LIBCPP_CONSTEXPR const int max_exponent10 = __base::max_exponent10; - - static _LIBCPP_CONSTEXPR const bool has_infinity = __base::has_infinity; - static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = __base::has_quiet_NaN; - static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = __base::has_signaling_NaN; - static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = __base::has_denorm; - static _LIBCPP_CONSTEXPR const bool has_denorm_loss = __base::has_denorm_loss; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return __base::infinity();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return __base::quiet_NaN();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __base::signaling_NaN();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __base::denorm_min();} - - static _LIBCPP_CONSTEXPR const bool is_iec559 = __base::is_iec559; - static _LIBCPP_CONSTEXPR const bool is_bounded = __base::is_bounded; - static _LIBCPP_CONSTEXPR const bool is_modulo = __base::is_modulo; - - static _LIBCPP_CONSTEXPR const bool traps = __base::traps; - static _LIBCPP_CONSTEXPR const bool tinyness_before = __base::tinyness_before; - static _LIBCPP_CONSTEXPR const float_round_style round_style = __base::round_style; -}; - -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_specialized; -template - _LIBCPP_CONSTEXPR const int numeric_limits::digits; -template - _LIBCPP_CONSTEXPR const int numeric_limits::digits10; -template - _LIBCPP_CONSTEXPR const int numeric_limits::max_digits10; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_signed; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_integer; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_exact; -template - _LIBCPP_CONSTEXPR const int numeric_limits::radix; -template - _LIBCPP_CONSTEXPR const int numeric_limits::min_exponent; -template - _LIBCPP_CONSTEXPR const int numeric_limits::min_exponent10; -template - _LIBCPP_CONSTEXPR const int numeric_limits::max_exponent; -template - _LIBCPP_CONSTEXPR const int numeric_limits::max_exponent10; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::has_infinity; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::has_quiet_NaN; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::has_signaling_NaN; -template - _LIBCPP_CONSTEXPR const float_denorm_style numeric_limits::has_denorm; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::has_denorm_loss; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_iec559; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_bounded; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_modulo; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::traps; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::tinyness_before; -template - _LIBCPP_CONSTEXPR const float_round_style numeric_limits::round_style; - -template -class _LIBCPP_TYPE_VIS_ONLY numeric_limits - : private numeric_limits<_Tp> -{ - typedef numeric_limits<_Tp> __base; - typedef _Tp type; -public: - static _LIBCPP_CONSTEXPR const bool is_specialized = __base::is_specialized; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __base::min();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __base::max();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return __base::lowest();} - - static _LIBCPP_CONSTEXPR const int digits = __base::digits; - static _LIBCPP_CONSTEXPR const int digits10 = __base::digits10; - static _LIBCPP_CONSTEXPR const int max_digits10 = __base::max_digits10; - static _LIBCPP_CONSTEXPR const bool is_signed = __base::is_signed; - static _LIBCPP_CONSTEXPR const bool is_integer = __base::is_integer; - static _LIBCPP_CONSTEXPR const bool is_exact = __base::is_exact; - static _LIBCPP_CONSTEXPR const int radix = __base::radix; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return __base::epsilon();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return __base::round_error();} - - static _LIBCPP_CONSTEXPR const int min_exponent = __base::min_exponent; - static _LIBCPP_CONSTEXPR const int min_exponent10 = __base::min_exponent10; - static _LIBCPP_CONSTEXPR const int max_exponent = __base::max_exponent; - static _LIBCPP_CONSTEXPR const int max_exponent10 = __base::max_exponent10; - - static _LIBCPP_CONSTEXPR const bool has_infinity = __base::has_infinity; - static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = __base::has_quiet_NaN; - static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = __base::has_signaling_NaN; - static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = __base::has_denorm; - static _LIBCPP_CONSTEXPR const bool has_denorm_loss = __base::has_denorm_loss; - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return __base::infinity();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return __base::quiet_NaN();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __base::signaling_NaN();} - _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __base::denorm_min();} - - static _LIBCPP_CONSTEXPR const bool is_iec559 = __base::is_iec559; - static _LIBCPP_CONSTEXPR const bool is_bounded = __base::is_bounded; - static _LIBCPP_CONSTEXPR const bool is_modulo = __base::is_modulo; - - static _LIBCPP_CONSTEXPR const bool traps = __base::traps; - static _LIBCPP_CONSTEXPR const bool tinyness_before = __base::tinyness_before; - static _LIBCPP_CONSTEXPR const float_round_style round_style = __base::round_style; -}; - -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_specialized; -template - _LIBCPP_CONSTEXPR const int numeric_limits::digits; -template - _LIBCPP_CONSTEXPR const int numeric_limits::digits10; -template - _LIBCPP_CONSTEXPR const int numeric_limits::max_digits10; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_signed; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_integer; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_exact; -template - _LIBCPP_CONSTEXPR const int numeric_limits::radix; -template - _LIBCPP_CONSTEXPR const int numeric_limits::min_exponent; -template - _LIBCPP_CONSTEXPR const int numeric_limits::min_exponent10; -template - _LIBCPP_CONSTEXPR const int numeric_limits::max_exponent; -template - _LIBCPP_CONSTEXPR const int numeric_limits::max_exponent10; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::has_infinity; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::has_quiet_NaN; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::has_signaling_NaN; -template - _LIBCPP_CONSTEXPR const float_denorm_style numeric_limits::has_denorm; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::has_denorm_loss; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_iec559; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_bounded; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::is_modulo; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::traps; -template - _LIBCPP_CONSTEXPR const bool numeric_limits::tinyness_before; -template - _LIBCPP_CONSTEXPR const float_round_style numeric_limits::round_style; - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_LIMITS diff --git a/headers/libs/libc++/list b/headers/libs/libc++/list deleted file mode 100644 index 28d505582c..0000000000 --- a/headers/libs/libc++/list +++ /dev/null @@ -1,2329 +0,0 @@ -// -*- C++ -*- -//===---------------------------- list ------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_LIST -#define _LIBCPP_LIST - -/* - list synopsis - -namespace std -{ - -template > -class list -{ -public: - - // types: - typedef T value_type; - typedef Alloc allocator_type; - typedef typename allocator_type::reference reference; - typedef typename allocator_type::const_reference const_reference; - typedef typename allocator_type::pointer pointer; - typedef typename allocator_type::const_pointer const_pointer; - typedef implementation-defined iterator; - typedef implementation-defined const_iterator; - typedef implementation-defined size_type; - typedef implementation-defined difference_type; - typedef reverse_iterator reverse_iterator; - typedef reverse_iterator const_reverse_iterator; - - list() - noexcept(is_nothrow_default_constructible::value); - explicit list(const allocator_type& a); - explicit list(size_type n); - explicit list(size_type n, const allocator_type& a); // C++14 - list(size_type n, const value_type& value); - list(size_type n, const value_type& value, const allocator_type& a); - template - list(Iter first, Iter last); - template - list(Iter first, Iter last, const allocator_type& a); - list(const list& x); - list(const list&, const allocator_type& a); - list(list&& x) - noexcept(is_nothrow_move_constructible::value); - list(list&&, const allocator_type& a); - list(initializer_list); - list(initializer_list, const allocator_type& a); - - ~list(); - - list& operator=(const list& x); - list& operator=(list&& x) - noexcept( - allocator_type::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable::value); - list& operator=(initializer_list); - template - void assign(Iter first, Iter last); - void assign(size_type n, const value_type& t); - void assign(initializer_list); - - allocator_type get_allocator() const noexcept; - - iterator begin() noexcept; - const_iterator begin() const noexcept; - iterator end() noexcept; - const_iterator end() const noexcept; - reverse_iterator rbegin() noexcept; - const_reverse_iterator rbegin() const noexcept; - reverse_iterator rend() noexcept; - const_reverse_iterator rend() const noexcept; - const_iterator cbegin() const noexcept; - const_iterator cend() const noexcept; - const_reverse_iterator crbegin() const noexcept; - const_reverse_iterator crend() const noexcept; - - reference front(); - const_reference front() const; - reference back(); - const_reference back() const; - - bool empty() const noexcept; - size_type size() const noexcept; - size_type max_size() const noexcept; - - template - void emplace_front(Args&&... args); - void pop_front(); - template - void emplace_back(Args&&... args); - void pop_back(); - void push_front(const value_type& x); - void push_front(value_type&& x); - void push_back(const value_type& x); - void push_back(value_type&& x); - template - iterator emplace(const_iterator position, Args&&... args); - iterator insert(const_iterator position, const value_type& x); - iterator insert(const_iterator position, value_type&& x); - iterator insert(const_iterator position, size_type n, const value_type& x); - template - iterator insert(const_iterator position, Iter first, Iter last); - iterator insert(const_iterator position, initializer_list il); - - iterator erase(const_iterator position); - iterator erase(const_iterator position, const_iterator last); - - void resize(size_type sz); - void resize(size_type sz, const value_type& c); - - void swap(list&) - noexcept(allocator_traits::is_always_equal::value); // C++17 - void clear() noexcept; - - void splice(const_iterator position, list& x); - void splice(const_iterator position, list&& x); - void splice(const_iterator position, list& x, const_iterator i); - void splice(const_iterator position, list&& x, const_iterator i); - void splice(const_iterator position, list& x, const_iterator first, - const_iterator last); - void splice(const_iterator position, list&& x, const_iterator first, - const_iterator last); - - void remove(const value_type& value); - template void remove_if(Pred pred); - void unique(); - template - void unique(BinaryPredicate binary_pred); - void merge(list& x); - void merge(list&& x); - template - void merge(list& x, Compare comp); - template - void merge(list&& x, Compare comp); - void sort(); - template - void sort(Compare comp); - void reverse() noexcept; -}; - -template - bool operator==(const list& x, const list& y); -template - bool operator< (const list& x, const list& y); -template - bool operator!=(const list& x, const list& y); -template - bool operator> (const list& x, const list& y); -template - bool operator>=(const list& x, const list& y); -template - bool operator<=(const list& x, const list& y); - -template - void swap(list& x, list& y) - noexcept(noexcept(x.swap(y))); - -} // std - -*/ - -#include <__config> - -#include -#include -#include -#include -#include - -#include <__undef_min_max> - -#include <__debug> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -template struct __list_node; - -template -struct __list_node_base -{ - typedef typename __rebind_pointer<_VoidPtr, __list_node<_Tp, _VoidPtr> >::type - pointer; - typedef typename __rebind_pointer<_VoidPtr, __list_node_base>::type - __base_pointer; - - pointer __prev_; - pointer __next_; - - _LIBCPP_INLINE_VISIBILITY - __list_node_base() : __prev_(__self()), __next_(__self()) {} - - _LIBCPP_INLINE_VISIBILITY - pointer __self() - { - return static_cast(pointer_traits<__base_pointer>::pointer_to(*this)); - } -}; - -template -struct __list_node - : public __list_node_base<_Tp, _VoidPtr> -{ - _Tp __value_; -}; - -template > class _LIBCPP_TYPE_VIS_ONLY list; -template class __list_imp; -template class _LIBCPP_TYPE_VIS_ONLY __list_const_iterator; - -template -class _LIBCPP_TYPE_VIS_ONLY __list_iterator -{ - typedef typename __rebind_pointer<_VoidPtr, __list_node<_Tp, _VoidPtr> >::type - __node_pointer; - - __node_pointer __ptr_; - -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_INLINE_VISIBILITY - explicit __list_iterator(__node_pointer __p, const void* __c) _NOEXCEPT - : __ptr_(__p) - { - __get_db()->__insert_ic(this, __c); - } -#else - _LIBCPP_INLINE_VISIBILITY - explicit __list_iterator(__node_pointer __p) _NOEXCEPT : __ptr_(__p) {} -#endif - - - - template friend class list; - template friend class __list_imp; - template friend class __list_const_iterator; -public: - typedef bidirectional_iterator_tag iterator_category; - typedef _Tp value_type; - typedef value_type& reference; - typedef typename __rebind_pointer<_VoidPtr, value_type>::type pointer; - typedef typename pointer_traits::difference_type difference_type; - - _LIBCPP_INLINE_VISIBILITY - __list_iterator() _NOEXCEPT : __ptr_(nullptr) - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_i(this); -#endif - } - -#if _LIBCPP_DEBUG_LEVEL >= 2 - - _LIBCPP_INLINE_VISIBILITY - __list_iterator(const __list_iterator& __p) - : __ptr_(__p.__ptr_) - { - __get_db()->__iterator_copy(this, &__p); - } - - _LIBCPP_INLINE_VISIBILITY - ~__list_iterator() - { - __get_db()->__erase_i(this); - } - - _LIBCPP_INLINE_VISIBILITY - __list_iterator& operator=(const __list_iterator& __p) - { - if (this != &__p) - { - __get_db()->__iterator_copy(this, &__p); - __ptr_ = __p.__ptr_; - } - return *this; - } - -#endif // _LIBCPP_DEBUG_LEVEL >= 2 - - _LIBCPP_INLINE_VISIBILITY - reference operator*() const - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to dereference a non-dereferenceable list::iterator"); -#endif - return __ptr_->__value_; - } - _LIBCPP_INLINE_VISIBILITY - pointer operator->() const - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to dereference a non-dereferenceable list::iterator"); -#endif - return pointer_traits::pointer_to(__ptr_->__value_); - } - - _LIBCPP_INLINE_VISIBILITY - __list_iterator& operator++() - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to increment non-incrementable list::iterator"); -#endif - __ptr_ = __ptr_->__next_; - return *this; - } - _LIBCPP_INLINE_VISIBILITY - __list_iterator operator++(int) {__list_iterator __t(*this); ++(*this); return __t;} - - _LIBCPP_INLINE_VISIBILITY - __list_iterator& operator--() - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__decrementable(this), - "Attempted to decrement non-decrementable list::iterator"); -#endif - __ptr_ = __ptr_->__prev_; - return *this; - } - _LIBCPP_INLINE_VISIBILITY - __list_iterator operator--(int) {__list_iterator __t(*this); --(*this); return __t;} - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(const __list_iterator& __x, const __list_iterator& __y) - { - return __x.__ptr_ == __y.__ptr_; - } - friend _LIBCPP_INLINE_VISIBILITY - bool operator!=(const __list_iterator& __x, const __list_iterator& __y) - {return !(__x == __y);} -}; - -template -class _LIBCPP_TYPE_VIS_ONLY __list_const_iterator -{ - typedef typename __rebind_pointer<_VoidPtr, __list_node<_Tp, _VoidPtr> >::type - __node_pointer; - - __node_pointer __ptr_; - -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_INLINE_VISIBILITY - explicit __list_const_iterator(__node_pointer __p, const void* __c) _NOEXCEPT - : __ptr_(__p) - { - __get_db()->__insert_ic(this, __c); - } -#else - _LIBCPP_INLINE_VISIBILITY - explicit __list_const_iterator(__node_pointer __p) _NOEXCEPT : __ptr_(__p) {} -#endif - - template friend class list; - template friend class __list_imp; -public: - typedef bidirectional_iterator_tag iterator_category; - typedef _Tp value_type; - typedef const value_type& reference; - typedef typename __rebind_pointer<_VoidPtr, const value_type>::type pointer; - typedef typename pointer_traits::difference_type difference_type; - - _LIBCPP_INLINE_VISIBILITY - __list_const_iterator() _NOEXCEPT : __ptr_(nullptr) - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_i(this); -#endif - } - _LIBCPP_INLINE_VISIBILITY - __list_const_iterator(const __list_iterator<_Tp, _VoidPtr>& __p) _NOEXCEPT - : __ptr_(__p.__ptr_) - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__iterator_copy(this, &__p); -#endif - } - -#if _LIBCPP_DEBUG_LEVEL >= 2 - - _LIBCPP_INLINE_VISIBILITY - __list_const_iterator(const __list_const_iterator& __p) - : __ptr_(__p.__ptr_) - { - __get_db()->__iterator_copy(this, &__p); - } - - _LIBCPP_INLINE_VISIBILITY - ~__list_const_iterator() - { - __get_db()->__erase_i(this); - } - - _LIBCPP_INLINE_VISIBILITY - __list_const_iterator& operator=(const __list_const_iterator& __p) - { - if (this != &__p) - { - __get_db()->__iterator_copy(this, &__p); - __ptr_ = __p.__ptr_; - } - return *this; - } - -#endif // _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_INLINE_VISIBILITY - reference operator*() const - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to dereference a non-dereferenceable list::const_iterator"); -#endif - return __ptr_->__value_; - } - _LIBCPP_INLINE_VISIBILITY - pointer operator->() const - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to dereference a non-dereferenceable list::iterator"); -#endif - return pointer_traits::pointer_to(__ptr_->__value_); - } - - _LIBCPP_INLINE_VISIBILITY - __list_const_iterator& operator++() - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this), - "Attempted to increment non-incrementable list::const_iterator"); -#endif - __ptr_ = __ptr_->__next_; - return *this; - } - _LIBCPP_INLINE_VISIBILITY - __list_const_iterator operator++(int) {__list_const_iterator __t(*this); ++(*this); return __t;} - - _LIBCPP_INLINE_VISIBILITY - __list_const_iterator& operator--() - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__decrementable(this), - "Attempted to decrement non-decrementable list::const_iterator"); -#endif - __ptr_ = __ptr_->__prev_; - return *this; - } - _LIBCPP_INLINE_VISIBILITY - __list_const_iterator operator--(int) {__list_const_iterator __t(*this); --(*this); return __t;} - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(const __list_const_iterator& __x, const __list_const_iterator& __y) - { - return __x.__ptr_ == __y.__ptr_; - } - friend _LIBCPP_INLINE_VISIBILITY - bool operator!=(const __list_const_iterator& __x, const __list_const_iterator& __y) - {return !(__x == __y);} -}; - -template -class __list_imp -{ - __list_imp(const __list_imp&); - __list_imp& operator=(const __list_imp&); -protected: - typedef _Tp value_type; - typedef _Alloc allocator_type; - typedef allocator_traits __alloc_traits; - typedef typename __alloc_traits::size_type size_type; - typedef typename __alloc_traits::void_pointer __void_pointer; - typedef __list_iterator iterator; - typedef __list_const_iterator const_iterator; - typedef __list_node_base __node_base; - typedef __list_node __node; - typedef typename __rebind_alloc_helper<__alloc_traits, __node>::type __node_allocator; - typedef allocator_traits<__node_allocator> __node_alloc_traits; - typedef typename __node_alloc_traits::pointer __node_pointer; - typedef typename __node_alloc_traits::pointer __node_const_pointer; - typedef typename __alloc_traits::pointer pointer; - typedef typename __alloc_traits::const_pointer const_pointer; - typedef typename __alloc_traits::difference_type difference_type; - - typedef typename __rebind_alloc_helper<__alloc_traits, __node_base>::type __node_base_allocator; - typedef typename allocator_traits<__node_base_allocator>::pointer __node_base_pointer; - - __node_base __end_; - __compressed_pair __size_alloc_; - - _LIBCPP_INLINE_VISIBILITY - size_type& __sz() _NOEXCEPT {return __size_alloc_.first();} - _LIBCPP_INLINE_VISIBILITY - const size_type& __sz() const _NOEXCEPT - {return __size_alloc_.first();} - _LIBCPP_INLINE_VISIBILITY - __node_allocator& __node_alloc() _NOEXCEPT - {return __size_alloc_.second();} - _LIBCPP_INLINE_VISIBILITY - const __node_allocator& __node_alloc() const _NOEXCEPT - {return __size_alloc_.second();} - - static void __unlink_nodes(__node_pointer __f, __node_pointer __l) _NOEXCEPT; - - __list_imp() - _NOEXCEPT_(is_nothrow_default_constructible<__node_allocator>::value); - __list_imp(const allocator_type& __a); - ~__list_imp(); - void clear() _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - bool empty() const _NOEXCEPT {return __sz() == 0;} - - _LIBCPP_INLINE_VISIBILITY - iterator begin() _NOEXCEPT - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - return iterator(__end_.__next_, this); -#else - return iterator(__end_.__next_); -#endif - } - _LIBCPP_INLINE_VISIBILITY - const_iterator begin() const _NOEXCEPT - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - return const_iterator(__end_.__next_, this); -#else - return const_iterator(__end_.__next_); -#endif - } - _LIBCPP_INLINE_VISIBILITY - iterator end() _NOEXCEPT - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - return iterator(static_cast<__node_pointer>( - pointer_traits<__node_base_pointer>::pointer_to(__end_)), this); -#else - return iterator(static_cast<__node_pointer>( - pointer_traits<__node_base_pointer>::pointer_to(__end_))); -#endif - } - _LIBCPP_INLINE_VISIBILITY - const_iterator end() const _NOEXCEPT - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - return const_iterator(static_cast<__node_const_pointer>( - pointer_traits<__node_base_pointer>::pointer_to(const_cast<__node_base&>(__end_))), this); -#else - return const_iterator(static_cast<__node_const_pointer>( - pointer_traits<__node_base_pointer>::pointer_to(const_cast<__node_base&>(__end_)))); -#endif - } - - void swap(__list_imp& __c) -#if _LIBCPP_STD_VER >= 14 - _NOEXCEPT; -#else - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || - __is_nothrow_swappable::value); -#endif - - _LIBCPP_INLINE_VISIBILITY - void __copy_assign_alloc(const __list_imp& __c) - {__copy_assign_alloc(__c, integral_constant());} - - _LIBCPP_INLINE_VISIBILITY - void __move_assign_alloc(__list_imp& __c) - _NOEXCEPT_( - !__node_alloc_traits::propagate_on_container_move_assignment::value || - is_nothrow_move_assignable<__node_allocator>::value) - {__move_assign_alloc(__c, integral_constant());} - -private: - _LIBCPP_INLINE_VISIBILITY - void __copy_assign_alloc(const __list_imp& __c, true_type) - { - if (__node_alloc() != __c.__node_alloc()) - clear(); - __node_alloc() = __c.__node_alloc(); - } - - _LIBCPP_INLINE_VISIBILITY - void __copy_assign_alloc(const __list_imp& __c, false_type) - {} - - _LIBCPP_INLINE_VISIBILITY - void __move_assign_alloc(__list_imp& __c, true_type) - _NOEXCEPT_(is_nothrow_move_assignable<__node_allocator>::value) - { - __node_alloc() = _VSTD::move(__c.__node_alloc()); - } - - _LIBCPP_INLINE_VISIBILITY - void __move_assign_alloc(__list_imp& __c, false_type) - _NOEXCEPT - {} -}; - -// Unlink nodes [__f, __l] -template -inline _LIBCPP_INLINE_VISIBILITY -void -__list_imp<_Tp, _Alloc>::__unlink_nodes(__node_pointer __f, __node_pointer __l) - _NOEXCEPT -{ - __f->__prev_->__next_ = __l->__next_; - __l->__next_->__prev_ = __f->__prev_; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -__list_imp<_Tp, _Alloc>::__list_imp() - _NOEXCEPT_(is_nothrow_default_constructible<__node_allocator>::value) - : __size_alloc_(0) -{ -} - -template -inline _LIBCPP_INLINE_VISIBILITY -__list_imp<_Tp, _Alloc>::__list_imp(const allocator_type& __a) - : __size_alloc_(0, __node_allocator(__a)) -{ -} - -template -__list_imp<_Tp, _Alloc>::~__list_imp() -{ - clear(); -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__erase_c(this); -#endif -} - -template -void -__list_imp<_Tp, _Alloc>::clear() _NOEXCEPT -{ - if (!empty()) - { - __node_allocator& __na = __node_alloc(); - __node_pointer __f = __end_.__next_; - __node_pointer __l = static_cast<__node_pointer>( - pointer_traits<__node_base_pointer>::pointer_to(__end_)); - __unlink_nodes(__f, __l->__prev_); - __sz() = 0; - while (__f != __l) - { - __node_pointer __n = __f; - __f = __f->__next_; - __node_alloc_traits::destroy(__na, _VSTD::addressof(__n->__value_)); - __node_alloc_traits::deallocate(__na, __n, 1); - } -#if _LIBCPP_DEBUG_LEVEL >= 2 - __c_node* __c = __get_db()->__find_c_and_lock(this); - for (__i_node** __p = __c->end_; __p != __c->beg_; ) - { - --__p; - const_iterator* __i = static_cast((*__p)->__i_); - if (__i->__ptr_ != __l) - { - (*__p)->__c_ = nullptr; - if (--__c->end_ != __p) - memmove(__p, __p+1, (__c->end_ - __p)*sizeof(__i_node*)); - } - } - __get_db()->unlock(); -#endif - } -} - -template -void -__list_imp<_Tp, _Alloc>::swap(__list_imp& __c) -#if _LIBCPP_STD_VER >= 14 - _NOEXCEPT -#else - _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || - __is_nothrow_swappable::value) -#endif -{ - _LIBCPP_ASSERT(__alloc_traits::propagate_on_container_swap::value || - this->__node_alloc() == __c.__node_alloc(), - "list::swap: Either propagate_on_container_swap must be true" - " or the allocators must compare equal"); - using _VSTD::swap; - __swap_allocator(__node_alloc(), __c.__node_alloc()); - swap(__sz(), __c.__sz()); - swap(__end_, __c.__end_); - if (__sz() == 0) - __end_.__next_ = __end_.__prev_ = __end_.__self(); - else - __end_.__prev_->__next_ = __end_.__next_->__prev_ = __end_.__self(); - if (__c.__sz() == 0) - __c.__end_.__next_ = __c.__end_.__prev_ = __c.__end_.__self(); - else - __c.__end_.__prev_->__next_ = __c.__end_.__next_->__prev_ = __c.__end_.__self(); - -#if _LIBCPP_DEBUG_LEVEL >= 2 - __libcpp_db* __db = __get_db(); - __c_node* __cn1 = __db->__find_c_and_lock(this); - __c_node* __cn2 = __db->__find_c(&__c); - std::swap(__cn1->beg_, __cn2->beg_); - std::swap(__cn1->end_, __cn2->end_); - std::swap(__cn1->cap_, __cn2->cap_); - for (__i_node** __p = __cn1->end_; __p != __cn1->beg_;) - { - --__p; - const_iterator* __i = static_cast((*__p)->__i_); - if (__i->__ptr_ == static_cast<__node_pointer>( - pointer_traits<__node_base_pointer>::pointer_to(__c.__end_))) - { - __cn2->__add(*__p); - if (--__cn1->end_ != __p) - memmove(__p, __p+1, (__cn1->end_ - __p)*sizeof(__i_node*)); - } - else - (*__p)->__c_ = __cn1; - } - for (__i_node** __p = __cn2->end_; __p != __cn2->beg_;) - { - --__p; - const_iterator* __i = static_cast((*__p)->__i_); - if (__i->__ptr_ == static_cast<__node_pointer>( - pointer_traits<__node_base_pointer>::pointer_to(__end_))) - { - __cn1->__add(*__p); - if (--__cn2->end_ != __p) - memmove(__p, __p+1, (__cn2->end_ - __p)*sizeof(__i_node*)); - } - else - (*__p)->__c_ = __cn2; - } - __db->unlock(); -#endif -} - -template */> -class _LIBCPP_TYPE_VIS_ONLY list - : private __list_imp<_Tp, _Alloc> -{ - typedef __list_imp<_Tp, _Alloc> base; - typedef typename base::__node __node; - typedef typename base::__node_allocator __node_allocator; - typedef typename base::__node_pointer __node_pointer; - typedef typename base::__node_alloc_traits __node_alloc_traits; - typedef typename base::__node_base __node_base; - typedef typename base::__node_base_pointer __node_base_pointer; - -public: - typedef _Tp value_type; - typedef _Alloc allocator_type; - static_assert((is_same::value), - "Invalid allocator::value_type"); - typedef value_type& reference; - typedef const value_type& const_reference; - typedef typename base::pointer pointer; - typedef typename base::const_pointer const_pointer; - typedef typename base::size_type size_type; - typedef typename base::difference_type difference_type; - typedef typename base::iterator iterator; - typedef typename base::const_iterator const_iterator; - typedef _VSTD::reverse_iterator reverse_iterator; - typedef _VSTD::reverse_iterator const_reverse_iterator; - - _LIBCPP_INLINE_VISIBILITY - list() - _NOEXCEPT_(is_nothrow_default_constructible<__node_allocator>::value) - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_c(this); -#endif - } - _LIBCPP_INLINE_VISIBILITY - explicit list(const allocator_type& __a) : base(__a) - { -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_c(this); -#endif - } - explicit list(size_type __n); -#if _LIBCPP_STD_VER > 11 - explicit list(size_type __n, const allocator_type& __a); -#endif - list(size_type __n, const value_type& __x); - list(size_type __n, const value_type& __x, const allocator_type& __a); - template - list(_InpIter __f, _InpIter __l, - typename enable_if<__is_input_iterator<_InpIter>::value>::type* = 0); - template - list(_InpIter __f, _InpIter __l, const allocator_type& __a, - typename enable_if<__is_input_iterator<_InpIter>::value>::type* = 0); - - list(const list& __c); - list(const list& __c, const allocator_type& __a); - list& operator=(const list& __c); -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - list(initializer_list __il); - list(initializer_list __il, const allocator_type& __a); -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - list(list&& __c) - _NOEXCEPT_(is_nothrow_move_constructible<__node_allocator>::value); - list(list&& __c, const allocator_type& __a); - list& operator=(list&& __c) - _NOEXCEPT_( - __node_alloc_traits::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable<__node_allocator>::value); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - _LIBCPP_INLINE_VISIBILITY - list& operator=(initializer_list __il) - {assign(__il.begin(), __il.end()); return *this;} -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - - template - void assign(_InpIter __f, _InpIter __l, - typename enable_if<__is_input_iterator<_InpIter>::value>::type* = 0); - void assign(size_type __n, const value_type& __x); -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - _LIBCPP_INLINE_VISIBILITY - void assign(initializer_list __il) - {assign(__il.begin(), __il.end());} -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - - allocator_type get_allocator() const _NOEXCEPT; - - _LIBCPP_INLINE_VISIBILITY - size_type size() const _NOEXCEPT {return base::__sz();} - _LIBCPP_INLINE_VISIBILITY - bool empty() const _NOEXCEPT {return base::empty();} - _LIBCPP_INLINE_VISIBILITY - size_type max_size() const _NOEXCEPT - {return numeric_limits::max();} - - _LIBCPP_INLINE_VISIBILITY - iterator begin() _NOEXCEPT {return base::begin();} - _LIBCPP_INLINE_VISIBILITY - const_iterator begin() const _NOEXCEPT {return base::begin();} - _LIBCPP_INLINE_VISIBILITY - iterator end() _NOEXCEPT {return base::end();} - _LIBCPP_INLINE_VISIBILITY - const_iterator end() const _NOEXCEPT {return base::end();} - _LIBCPP_INLINE_VISIBILITY - const_iterator cbegin() const _NOEXCEPT {return base::begin();} - _LIBCPP_INLINE_VISIBILITY - const_iterator cend() const _NOEXCEPT {return base::end();} - - _LIBCPP_INLINE_VISIBILITY - reverse_iterator rbegin() _NOEXCEPT - {return reverse_iterator(end());} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator rbegin() const _NOEXCEPT - {return const_reverse_iterator(end());} - _LIBCPP_INLINE_VISIBILITY - reverse_iterator rend() _NOEXCEPT - {return reverse_iterator(begin());} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator rend() const _NOEXCEPT - {return const_reverse_iterator(begin());} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator crbegin() const _NOEXCEPT - {return const_reverse_iterator(end());} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator crend() const _NOEXCEPT - {return const_reverse_iterator(begin());} - - _LIBCPP_INLINE_VISIBILITY - reference front() - { - _LIBCPP_ASSERT(!empty(), "list::front called on empty list"); - return base::__end_.__next_->__value_; - } - _LIBCPP_INLINE_VISIBILITY - const_reference front() const - { - _LIBCPP_ASSERT(!empty(), "list::front called on empty list"); - return base::__end_.__next_->__value_; - } - _LIBCPP_INLINE_VISIBILITY - reference back() - { - _LIBCPP_ASSERT(!empty(), "list::back called on empty list"); - return base::__end_.__prev_->__value_; - } - _LIBCPP_INLINE_VISIBILITY - const_reference back() const - { - _LIBCPP_ASSERT(!empty(), "list::back called on empty list"); - return base::__end_.__prev_->__value_; - } - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - void push_front(value_type&& __x); - void push_back(value_type&& __x); -#ifndef _LIBCPP_HAS_NO_VARIADICS - template - void emplace_front(_Args&&... __args); - template - void emplace_back(_Args&&... __args); - template - iterator emplace(const_iterator __p, _Args&&... __args); -#endif // _LIBCPP_HAS_NO_VARIADICS - iterator insert(const_iterator __p, value_type&& __x); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - void push_front(const value_type& __x); - void push_back(const value_type& __x); - - iterator insert(const_iterator __p, const value_type& __x); - iterator insert(const_iterator __p, size_type __n, const value_type& __x); - template - iterator insert(const_iterator __p, _InpIter __f, _InpIter __l, - typename enable_if<__is_input_iterator<_InpIter>::value>::type* = 0); -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - _LIBCPP_INLINE_VISIBILITY - iterator insert(const_iterator __p, initializer_list __il) - {return insert(__p, __il.begin(), __il.end());} -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - - _LIBCPP_INLINE_VISIBILITY - void swap(list& __c) -#if _LIBCPP_STD_VER >= 14 - _NOEXCEPT -#else - _NOEXCEPT_(!__node_alloc_traits::propagate_on_container_swap::value || - __is_nothrow_swappable<__node_allocator>::value) -#endif - {base::swap(__c);} - _LIBCPP_INLINE_VISIBILITY - void clear() _NOEXCEPT {base::clear();} - - void pop_front(); - void pop_back(); - - iterator erase(const_iterator __p); - iterator erase(const_iterator __f, const_iterator __l); - - void resize(size_type __n); - void resize(size_type __n, const value_type& __x); - - void splice(const_iterator __p, list& __c); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - void splice(const_iterator __p, list&& __c) {splice(__p, __c);} -#endif - void splice(const_iterator __p, list& __c, const_iterator __i); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - void splice(const_iterator __p, list&& __c, const_iterator __i) - {splice(__p, __c, __i);} -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - void splice(const_iterator __p, list& __c, const_iterator __f, const_iterator __l); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - void splice(const_iterator __p, list&& __c, const_iterator __f, const_iterator __l) - {splice(__p, __c, __f, __l);} -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - void remove(const value_type& __x); - template void remove_if(_Pred __pred); - void unique(); - template - void unique(_BinaryPred __binary_pred); - void merge(list& __c); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - void merge(list&& __c) {merge(__c);} -#endif - template - void merge(list& __c, _Comp __comp); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - template - _LIBCPP_INLINE_VISIBILITY - void merge(list&& __c, _Comp __comp) {merge(__c, __comp);} -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - void sort(); - template - void sort(_Comp __comp); - - void reverse() _NOEXCEPT; - - bool __invariants() const; - -#if _LIBCPP_DEBUG_LEVEL >= 2 - - bool __dereferenceable(const const_iterator* __i) const; - bool __decrementable(const const_iterator* __i) const; - bool __addable(const const_iterator* __i, ptrdiff_t __n) const; - bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const; - -#endif // _LIBCPP_DEBUG_LEVEL >= 2 - -private: - static void __link_nodes (__node_pointer __p, __node_pointer __f, __node_pointer __l); - void __link_nodes_at_front(__node_pointer __f, __node_pointer __l); - void __link_nodes_at_back (__node_pointer __f, __node_pointer __l); - iterator __iterator(size_type __n); - template - static iterator __sort(iterator __f1, iterator __e2, size_type __n, _Comp& __comp); - - void __move_assign(list& __c, true_type) - _NOEXCEPT_(is_nothrow_move_assignable<__node_allocator>::value); - void __move_assign(list& __c, false_type); -}; - -// Link in nodes [__f, __l] just prior to __p -template -inline _LIBCPP_INLINE_VISIBILITY -void -list<_Tp, _Alloc>::__link_nodes(__node_pointer __p, __node_pointer __f, __node_pointer __l) -{ - __p->__prev_->__next_ = __f; - __f->__prev_ = __p->__prev_; - __p->__prev_ = __l; - __l->__next_ = __p; -} - -// Link in nodes [__f, __l] at the front of the list -template -inline _LIBCPP_INLINE_VISIBILITY -void -list<_Tp, _Alloc>::__link_nodes_at_front(__node_pointer __f, __node_pointer __l) -{ - __f->__prev_ = base::__end_.__self(); - __l->__next_ = base::__end_.__next_; - __l->__next_->__prev_ = __l; - base::__end_.__next_ = __f; -} - -// Link in nodes [__f, __l] at the front of the list -template -inline _LIBCPP_INLINE_VISIBILITY -void -list<_Tp, _Alloc>::__link_nodes_at_back(__node_pointer __f, __node_pointer __l) -{ - __l->__next_ = base::__end_.__self(); - __f->__prev_ = base::__end_.__prev_; - __f->__prev_->__next_ = __f; - base::__end_.__prev_ = __l; -} - - -template -inline _LIBCPP_INLINE_VISIBILITY -typename list<_Tp, _Alloc>::iterator -list<_Tp, _Alloc>::__iterator(size_type __n) -{ - return __n <= base::__sz() / 2 ? _VSTD::next(begin(), __n) - : _VSTD::prev(end(), base::__sz() - __n); -} - -template -list<_Tp, _Alloc>::list(size_type __n) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_c(this); -#endif - for (; __n > 0; --__n) -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - emplace_back(); -#else - push_back(value_type()); -#endif -} - -#if _LIBCPP_STD_VER > 11 -template -list<_Tp, _Alloc>::list(size_type __n, const allocator_type& __a) : base(__a) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_c(this); -#endif - for (; __n > 0; --__n) -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - emplace_back(); -#else - push_back(value_type()); -#endif -} -#endif - -template -list<_Tp, _Alloc>::list(size_type __n, const value_type& __x) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_c(this); -#endif - for (; __n > 0; --__n) - push_back(__x); -} - -template -list<_Tp, _Alloc>::list(size_type __n, const value_type& __x, const allocator_type& __a) - : base(__a) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_c(this); -#endif - for (; __n > 0; --__n) - push_back(__x); -} - -template -template -list<_Tp, _Alloc>::list(_InpIter __f, _InpIter __l, - typename enable_if<__is_input_iterator<_InpIter>::value>::type*) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_c(this); -#endif - for (; __f != __l; ++__f) - push_back(*__f); -} - -template -template -list<_Tp, _Alloc>::list(_InpIter __f, _InpIter __l, const allocator_type& __a, - typename enable_if<__is_input_iterator<_InpIter>::value>::type*) - : base(__a) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_c(this); -#endif - for (; __f != __l; ++__f) - push_back(*__f); -} - -template -list<_Tp, _Alloc>::list(const list& __c) - : base(allocator_type( - __node_alloc_traits::select_on_container_copy_construction( - __c.__node_alloc()))) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_c(this); -#endif - for (const_iterator __i = __c.begin(), __e = __c.end(); __i != __e; ++__i) - push_back(*__i); -} - -template -list<_Tp, _Alloc>::list(const list& __c, const allocator_type& __a) - : base(__a) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_c(this); -#endif - for (const_iterator __i = __c.begin(), __e = __c.end(); __i != __e; ++__i) - push_back(*__i); -} - -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -template -list<_Tp, _Alloc>::list(initializer_list __il, const allocator_type& __a) - : base(__a) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_c(this); -#endif - for (typename initializer_list::const_iterator __i = __il.begin(), - __e = __il.end(); __i != __e; ++__i) - push_back(*__i); -} - -template -list<_Tp, _Alloc>::list(initializer_list __il) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_c(this); -#endif - for (typename initializer_list::const_iterator __i = __il.begin(), - __e = __il.end(); __i != __e; ++__i) - push_back(*__i); -} - -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -template -inline _LIBCPP_INLINE_VISIBILITY -list<_Tp, _Alloc>& -list<_Tp, _Alloc>::operator=(const list& __c) -{ - if (this != &__c) - { - base::__copy_assign_alloc(__c); - assign(__c.begin(), __c.end()); - } - return *this; -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline _LIBCPP_INLINE_VISIBILITY -list<_Tp, _Alloc>::list(list&& __c) - _NOEXCEPT_(is_nothrow_move_constructible<__node_allocator>::value) - : base(allocator_type(_VSTD::move(__c.__node_alloc()))) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_c(this); -#endif - splice(end(), __c); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -list<_Tp, _Alloc>::list(list&& __c, const allocator_type& __a) - : base(__a) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - __get_db()->__insert_c(this); -#endif - if (__a == __c.get_allocator()) - splice(end(), __c); - else - { - typedef move_iterator _Ip; - assign(_Ip(__c.begin()), _Ip(__c.end())); - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -list<_Tp, _Alloc>& -list<_Tp, _Alloc>::operator=(list&& __c) - _NOEXCEPT_( - __node_alloc_traits::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable<__node_allocator>::value) -{ - __move_assign(__c, integral_constant()); - return *this; -} - -template -void -list<_Tp, _Alloc>::__move_assign(list& __c, false_type) -{ - if (base::__node_alloc() != __c.__node_alloc()) - { - typedef move_iterator _Ip; - assign(_Ip(__c.begin()), _Ip(__c.end())); - } - else - __move_assign(__c, true_type()); -} - -template -void -list<_Tp, _Alloc>::__move_assign(list& __c, true_type) - _NOEXCEPT_(is_nothrow_move_assignable<__node_allocator>::value) -{ - clear(); - base::__move_assign_alloc(__c); - splice(end(), __c); -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -template -void -list<_Tp, _Alloc>::assign(_InpIter __f, _InpIter __l, - typename enable_if<__is_input_iterator<_InpIter>::value>::type*) -{ - iterator __i = begin(); - iterator __e = end(); - for (; __f != __l && __i != __e; ++__f, ++__i) - *__i = *__f; - if (__i == __e) - insert(__e, __f, __l); - else - erase(__i, __e); -} - -template -void -list<_Tp, _Alloc>::assign(size_type __n, const value_type& __x) -{ - iterator __i = begin(); - iterator __e = end(); - for (; __n > 0 && __i != __e; --__n, ++__i) - *__i = __x; - if (__i == __e) - insert(__e, __n, __x); - else - erase(__i, __e); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -_Alloc -list<_Tp, _Alloc>::get_allocator() const _NOEXCEPT -{ - return allocator_type(base::__node_alloc()); -} - -template -typename list<_Tp, _Alloc>::iterator -list<_Tp, _Alloc>::insert(const_iterator __p, const value_type& __x) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, - "list::insert(iterator, x) called with an iterator not" - " referring to this list"); -#endif - __node_allocator& __na = base::__node_alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1)); - __hold->__prev_ = 0; - __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), __x); - __link_nodes(__p.__ptr_, __hold.get(), __hold.get()); - ++base::__sz(); -#if _LIBCPP_DEBUG_LEVEL >= 2 - return iterator(__hold.release(), this); -#else - return iterator(__hold.release()); -#endif -} - -template -typename list<_Tp, _Alloc>::iterator -list<_Tp, _Alloc>::insert(const_iterator __p, size_type __n, const value_type& __x) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, - "list::insert(iterator, n, x) called with an iterator not" - " referring to this list"); - iterator __r(__p.__ptr_, this); -#else - iterator __r(__p.__ptr_); -#endif - if (__n > 0) - { - size_type __ds = 0; - __node_allocator& __na = base::__node_alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1)); - __hold->__prev_ = 0; - __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), __x); - ++__ds; -#if _LIBCPP_DEBUG_LEVEL >= 2 - __r = iterator(__hold.get(), this); -#else - __r = iterator(__hold.get()); -#endif - __hold.release(); - iterator __e = __r; -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - for (--__n; __n != 0; --__n, ++__e, ++__ds) - { - __hold.reset(__node_alloc_traits::allocate(__na, 1)); - __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), __x); - __e.__ptr_->__next_ = __hold.get(); - __hold->__prev_ = __e.__ptr_; - __hold.release(); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - while (true) - { - __node_alloc_traits::destroy(__na, _VSTD::addressof(*__e)); - __node_pointer __prev = __e.__ptr_->__prev_; - __node_alloc_traits::deallocate(__na, __e.__ptr_, 1); - if (__prev == 0) - break; -#if _LIBCPP_DEBUG_LEVEL >= 2 - __e = iterator(__prev, this); -#else - __e = iterator(__prev); -#endif - } - throw; - } -#endif // _LIBCPP_NO_EXCEPTIONS - __link_nodes(__p.__ptr_, __r.__ptr_, __e.__ptr_); - base::__sz() += __ds; - } - return __r; -} - -template -template -typename list<_Tp, _Alloc>::iterator -list<_Tp, _Alloc>::insert(const_iterator __p, _InpIter __f, _InpIter __l, - typename enable_if<__is_input_iterator<_InpIter>::value>::type*) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, - "list::insert(iterator, range) called with an iterator not" - " referring to this list"); - iterator __r(__p.__ptr_, this); -#else - iterator __r(__p.__ptr_); -#endif - if (__f != __l) - { - size_type __ds = 0; - __node_allocator& __na = base::__node_alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1)); - __hold->__prev_ = 0; - __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), *__f); - ++__ds; -#if _LIBCPP_DEBUG_LEVEL >= 2 - __r = iterator(__hold.get(), this); -#else - __r = iterator(__hold.get()); -#endif - __hold.release(); - iterator __e = __r; -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - for (++__f; __f != __l; ++__f, (void) ++__e, (void) ++__ds) - { - __hold.reset(__node_alloc_traits::allocate(__na, 1)); - __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), *__f); - __e.__ptr_->__next_ = __hold.get(); - __hold->__prev_ = __e.__ptr_; - __hold.release(); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - while (true) - { - __node_alloc_traits::destroy(__na, _VSTD::addressof(*__e)); - __node_pointer __prev = __e.__ptr_->__prev_; - __node_alloc_traits::deallocate(__na, __e.__ptr_, 1); - if (__prev == 0) - break; -#if _LIBCPP_DEBUG_LEVEL >= 2 - __e = iterator(__prev, this); -#else - __e = iterator(__prev); -#endif - } - throw; - } -#endif // _LIBCPP_NO_EXCEPTIONS - __link_nodes(__p.__ptr_, __r.__ptr_, __e.__ptr_); - base::__sz() += __ds; - } - return __r; -} - -template -void -list<_Tp, _Alloc>::push_front(const value_type& __x) -{ - __node_allocator& __na = base::__node_alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1)); - __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), __x); - __link_nodes_at_front(__hold.get(), __hold.get()); - ++base::__sz(); - __hold.release(); -} - -template -void -list<_Tp, _Alloc>::push_back(const value_type& __x) -{ - __node_allocator& __na = base::__node_alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1)); - __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), __x); - __link_nodes_at_back(__hold.get(), __hold.get()); - ++base::__sz(); - __hold.release(); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -list<_Tp, _Alloc>::push_front(value_type&& __x) -{ - __node_allocator& __na = base::__node_alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1)); - __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), _VSTD::move(__x)); - __link_nodes_at_front(__hold.get(), __hold.get()); - ++base::__sz(); - __hold.release(); -} - -template -void -list<_Tp, _Alloc>::push_back(value_type&& __x) -{ - __node_allocator& __na = base::__node_alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1)); - __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), _VSTD::move(__x)); - __link_nodes_at_back(__hold.get(), __hold.get()); - ++base::__sz(); - __hold.release(); -} - -#ifndef _LIBCPP_HAS_NO_VARIADICS - -template -template -void -list<_Tp, _Alloc>::emplace_front(_Args&&... __args) -{ - __node_allocator& __na = base::__node_alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1)); - __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), _VSTD::forward<_Args>(__args)...); - __link_nodes_at_front(__hold.get(), __hold.get()); - ++base::__sz(); - __hold.release(); -} - -template -template -void -list<_Tp, _Alloc>::emplace_back(_Args&&... __args) -{ - __node_allocator& __na = base::__node_alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1)); - __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), _VSTD::forward<_Args>(__args)...); - __link_nodes_at_back(__hold.get(), __hold.get()); - ++base::__sz(); - __hold.release(); -} - -template -template -typename list<_Tp, _Alloc>::iterator -list<_Tp, _Alloc>::emplace(const_iterator __p, _Args&&... __args) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, - "list::emplace(iterator, args...) called with an iterator not" - " referring to this list"); -#endif - __node_allocator& __na = base::__node_alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1)); - __hold->__prev_ = 0; - __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), _VSTD::forward<_Args>(__args)...); - __link_nodes(__p.__ptr_, __hold.get(), __hold.get()); - ++base::__sz(); -#if _LIBCPP_DEBUG_LEVEL >= 2 - return iterator(__hold.release(), this); -#else - return iterator(__hold.release()); -#endif -} - -#endif // _LIBCPP_HAS_NO_VARIADICS - -template -typename list<_Tp, _Alloc>::iterator -list<_Tp, _Alloc>::insert(const_iterator __p, value_type&& __x) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, - "list::insert(iterator, x) called with an iterator not" - " referring to this list"); -#endif - __node_allocator& __na = base::__node_alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1)); - __hold->__prev_ = 0; - __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), _VSTD::move(__x)); - __link_nodes(__p.__ptr_, __hold.get(), __hold.get()); - ++base::__sz(); -#if _LIBCPP_DEBUG_LEVEL >= 2 - return iterator(__hold.release(), this); -#else - return iterator(__hold.release()); -#endif -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -void -list<_Tp, _Alloc>::pop_front() -{ - _LIBCPP_ASSERT(!empty(), "list::pop_front() called with empty list"); - __node_allocator& __na = base::__node_alloc(); - __node_pointer __n = base::__end_.__next_; - base::__unlink_nodes(__n, __n); - --base::__sz(); -#if _LIBCPP_DEBUG_LEVEL >= 2 - __c_node* __c = __get_db()->__find_c_and_lock(this); - for (__i_node** __p = __c->end_; __p != __c->beg_; ) - { - --__p; - iterator* __i = static_cast((*__p)->__i_); - if (__i->__ptr_ == __n) - { - (*__p)->__c_ = nullptr; - if (--__c->end_ != __p) - memmove(__p, __p+1, (__c->end_ - __p)*sizeof(__i_node*)); - } - } - __get_db()->unlock(); -#endif - __node_alloc_traits::destroy(__na, _VSTD::addressof(__n->__value_)); - __node_alloc_traits::deallocate(__na, __n, 1); -} - -template -void -list<_Tp, _Alloc>::pop_back() -{ - _LIBCPP_ASSERT(!empty(), "list::pop_back() called with empty list"); - __node_allocator& __na = base::__node_alloc(); - __node_pointer __n = base::__end_.__prev_; - base::__unlink_nodes(__n, __n); - --base::__sz(); -#if _LIBCPP_DEBUG_LEVEL >= 2 - __c_node* __c = __get_db()->__find_c_and_lock(this); - for (__i_node** __p = __c->end_; __p != __c->beg_; ) - { - --__p; - iterator* __i = static_cast((*__p)->__i_); - if (__i->__ptr_ == __n) - { - (*__p)->__c_ = nullptr; - if (--__c->end_ != __p) - memmove(__p, __p+1, (__c->end_ - __p)*sizeof(__i_node*)); - } - } - __get_db()->unlock(); -#endif - __node_alloc_traits::destroy(__na, _VSTD::addressof(__n->__value_)); - __node_alloc_traits::deallocate(__na, __n, 1); -} - -template -typename list<_Tp, _Alloc>::iterator -list<_Tp, _Alloc>::erase(const_iterator __p) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, - "list::erase(iterator) called with an iterator not" - " referring to this list"); -#endif - _LIBCPP_ASSERT(__p != end(), - "list::erase(iterator) called with a non-dereferenceable iterator"); - __node_allocator& __na = base::__node_alloc(); - __node_pointer __n = __p.__ptr_; - __node_pointer __r = __n->__next_; - base::__unlink_nodes(__n, __n); - --base::__sz(); -#if _LIBCPP_DEBUG_LEVEL >= 2 - __c_node* __c = __get_db()->__find_c_and_lock(this); - for (__i_node** __p = __c->end_; __p != __c->beg_; ) - { - --__p; - iterator* __i = static_cast((*__p)->__i_); - if (__i->__ptr_ == __n) - { - (*__p)->__c_ = nullptr; - if (--__c->end_ != __p) - memmove(__p, __p+1, (__c->end_ - __p)*sizeof(__i_node*)); - } - } - __get_db()->unlock(); -#endif - __node_alloc_traits::destroy(__na, _VSTD::addressof(__n->__value_)); - __node_alloc_traits::deallocate(__na, __n, 1); -#if _LIBCPP_DEBUG_LEVEL >= 2 - return iterator(__r, this); -#else - return iterator(__r); -#endif -} - -template -typename list<_Tp, _Alloc>::iterator -list<_Tp, _Alloc>::erase(const_iterator __f, const_iterator __l) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__f) == this, - "list::erase(iterator, iterator) called with an iterator not" - " referring to this list"); -#endif - if (__f != __l) - { - __node_allocator& __na = base::__node_alloc(); - base::__unlink_nodes(__f.__ptr_, __l.__ptr_->__prev_); - while (__f != __l) - { - __node_pointer __n = __f.__ptr_; - ++__f; - --base::__sz(); -#if _LIBCPP_DEBUG_LEVEL >= 2 - __c_node* __c = __get_db()->__find_c_and_lock(this); - for (__i_node** __p = __c->end_; __p != __c->beg_; ) - { - --__p; - iterator* __i = static_cast((*__p)->__i_); - if (__i->__ptr_ == __n) - { - (*__p)->__c_ = nullptr; - if (--__c->end_ != __p) - memmove(__p, __p+1, (__c->end_ - __p)*sizeof(__i_node*)); - } - } - __get_db()->unlock(); -#endif - __node_alloc_traits::destroy(__na, _VSTD::addressof(__n->__value_)); - __node_alloc_traits::deallocate(__na, __n, 1); - } - } -#if _LIBCPP_DEBUG_LEVEL >= 2 - return iterator(__l.__ptr_, this); -#else - return iterator(__l.__ptr_); -#endif -} - -template -void -list<_Tp, _Alloc>::resize(size_type __n) -{ - if (__n < base::__sz()) - erase(__iterator(__n), end()); - else if (__n > base::__sz()) - { - __n -= base::__sz(); - size_type __ds = 0; - __node_allocator& __na = base::__node_alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1)); - __hold->__prev_ = 0; - __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_)); - ++__ds; -#if _LIBCPP_DEBUG_LEVEL >= 2 - iterator __r = iterator(__hold.release(), this); -#else - iterator __r = iterator(__hold.release()); -#endif - iterator __e = __r; -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - for (--__n; __n != 0; --__n, ++__e, ++__ds) - { - __hold.reset(__node_alloc_traits::allocate(__na, 1)); - __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_)); - __e.__ptr_->__next_ = __hold.get(); - __hold->__prev_ = __e.__ptr_; - __hold.release(); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - while (true) - { - __node_alloc_traits::destroy(__na, _VSTD::addressof(*__e)); - __node_pointer __prev = __e.__ptr_->__prev_; - __node_alloc_traits::deallocate(__na, __e.__ptr_, 1); - if (__prev == 0) - break; -#if _LIBCPP_DEBUG_LEVEL >= 2 - __e = iterator(__prev, this); -#else - __e = iterator(__prev); -#endif - } - throw; - } -#endif // _LIBCPP_NO_EXCEPTIONS - __link_nodes_at_back(__r.__ptr_, __e.__ptr_); - base::__sz() += __ds; - } -} - -template -void -list<_Tp, _Alloc>::resize(size_type __n, const value_type& __x) -{ - if (__n < base::__sz()) - erase(__iterator(__n), end()); - else if (__n > base::__sz()) - { - __n -= base::__sz(); - size_type __ds = 0; - __node_allocator& __na = base::__node_alloc(); - typedef __allocator_destructor<__node_allocator> _Dp; - unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1)); - __hold->__prev_ = 0; - __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), __x); - ++__ds; -#if _LIBCPP_DEBUG_LEVEL >= 2 - iterator __r = iterator(__hold.release(), this); -#else - iterator __r = iterator(__hold.release()); -#endif - iterator __e = __r; -#ifndef _LIBCPP_NO_EXCEPTIONS - try - { -#endif // _LIBCPP_NO_EXCEPTIONS - for (--__n; __n != 0; --__n, ++__e, ++__ds) - { - __hold.reset(__node_alloc_traits::allocate(__na, 1)); - __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), __x); - __e.__ptr_->__next_ = __hold.get(); - __hold->__prev_ = __e.__ptr_; - __hold.release(); - } -#ifndef _LIBCPP_NO_EXCEPTIONS - } - catch (...) - { - while (true) - { - __node_alloc_traits::destroy(__na, _VSTD::addressof(*__e)); - __node_pointer __prev = __e.__ptr_->__prev_; - __node_alloc_traits::deallocate(__na, __e.__ptr_, 1); - if (__prev == 0) - break; -#if _LIBCPP_DEBUG_LEVEL >= 2 - __e = iterator(__prev, this); -#else - __e = iterator(__prev); -#endif - } - throw; - } -#endif // _LIBCPP_NO_EXCEPTIONS - __link_nodes(static_cast<__node_pointer>(pointer_traits<__node_base_pointer>:: - pointer_to(base::__end_)), __r.__ptr_, __e.__ptr_); - base::__sz() += __ds; - } -} - -template -void -list<_Tp, _Alloc>::splice(const_iterator __p, list& __c) -{ - _LIBCPP_ASSERT(this != &__c, - "list::splice(iterator, list) called with this == &list"); -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, - "list::splice(iterator, list) called with an iterator not" - " referring to this list"); -#endif - if (!__c.empty()) - { - __node_pointer __f = __c.__end_.__next_; - __node_pointer __l = __c.__end_.__prev_; - base::__unlink_nodes(__f, __l); - __link_nodes(__p.__ptr_, __f, __l); - base::__sz() += __c.__sz(); - __c.__sz() = 0; -#if _LIBCPP_DEBUG_LEVEL >= 2 - __libcpp_db* __db = __get_db(); - __c_node* __cn1 = __db->__find_c_and_lock(this); - __c_node* __cn2 = __db->__find_c(&__c); - for (__i_node** __p = __cn2->end_; __p != __cn2->beg_;) - { - --__p; - iterator* __i = static_cast((*__p)->__i_); - if (__i->__ptr_ != static_cast<__node_pointer>( - pointer_traits<__node_base_pointer>::pointer_to(__c.__end_))) - { - __cn1->__add(*__p); - (*__p)->__c_ = __cn1; - if (--__cn2->end_ != __p) - memmove(__p, __p+1, (__cn2->end_ - __p)*sizeof(__i_node*)); - } - } - __db->unlock(); -#endif - } -} - -template -void -list<_Tp, _Alloc>::splice(const_iterator __p, list& __c, const_iterator __i) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, - "list::splice(iterator, list, iterator) called with first iterator not" - " referring to this list"); - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__i) == &__c, - "list::splice(iterator, list, iterator) called with second iterator not" - " referring to list argument"); - _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(&__i), - "list::splice(iterator, list, iterator) called with second iterator not" - " derefereceable"); -#endif - if (__p.__ptr_ != __i.__ptr_ && __p.__ptr_ != __i.__ptr_->__next_) - { - __node_pointer __f = __i.__ptr_; - base::__unlink_nodes(__f, __f); - __link_nodes(__p.__ptr_, __f, __f); - --__c.__sz(); - ++base::__sz(); -#if _LIBCPP_DEBUG_LEVEL >= 2 - __libcpp_db* __db = __get_db(); - __c_node* __cn1 = __db->__find_c_and_lock(this); - __c_node* __cn2 = __db->__find_c(&__c); - for (__i_node** __p = __cn2->end_; __p != __cn2->beg_;) - { - --__p; - iterator* __j = static_cast((*__p)->__i_); - if (__j->__ptr_ == __f) - { - __cn1->__add(*__p); - (*__p)->__c_ = __cn1; - if (--__cn2->end_ != __p) - memmove(__p, __p+1, (__cn2->end_ - __p)*sizeof(__i_node*)); - } - } - __db->unlock(); -#endif - } -} - -template -void -list<_Tp, _Alloc>::splice(const_iterator __p, list& __c, const_iterator __f, const_iterator __l) -{ -#if _LIBCPP_DEBUG_LEVEL >= 2 - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, - "list::splice(iterator, list, iterator, iterator) called with first iterator not" - " referring to this list"); - _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__f) == &__c, - "list::splice(iterator, list, iterator, iterator) called with second iterator not" - " referring to list argument"); - if (this == &__c) - { - for (const_iterator __i = __f; __i != __l; ++__i) - _LIBCPP_ASSERT(__i != __p, - "list::splice(iterator, list, iterator, iterator)" - " called with the first iterator within the range" - " of the second and third iterators"); - } -#endif - if (__f != __l) - { - if (this != &__c) - { - size_type __s = _VSTD::distance(__f, __l); - __c.__sz() -= __s; - base::__sz() += __s; - } - __node_pointer __first = __f.__ptr_; - --__l; - __node_pointer __last = __l.__ptr_; - base::__unlink_nodes(__first, __last); - __link_nodes(__p.__ptr_, __first, __last); -#if _LIBCPP_DEBUG_LEVEL >= 2 - __libcpp_db* __db = __get_db(); - __c_node* __cn1 = __db->__find_c_and_lock(this); - __c_node* __cn2 = __db->__find_c(&__c); - for (__i_node** __p = __cn2->end_; __p != __cn2->beg_;) - { - --__p; - iterator* __j = static_cast((*__p)->__i_); - for (__node_pointer __k = __f.__ptr_; - __k != __l.__ptr_; __k = __k->__next_) - { - if (__j->__ptr_ == __k) - { - __cn1->__add(*__p); - (*__p)->__c_ = __cn1; - if (--__cn2->end_ != __p) - memmove(__p, __p+1, (__cn2->end_ - __p)*sizeof(__i_node*)); - } - } - } - __db->unlock(); -#endif - } -} - -template -void -list<_Tp, _Alloc>::remove(const value_type& __x) -{ - list<_Tp, _Alloc> __deleted_nodes; // collect the nodes we're removing - for (const_iterator __i = begin(), __e = end(); __i != __e;) - { - if (*__i == __x) - { - const_iterator __j = _VSTD::next(__i); - for (; __j != __e && *__j == __x; ++__j) - ; - __deleted_nodes.splice(__deleted_nodes.end(), *this, __i, __j); - __i = __j; - if (__i != __e) - ++__i; - } - else - ++__i; - } -} - -template -template -void -list<_Tp, _Alloc>::remove_if(_Pred __pred) -{ - for (iterator __i = begin(), __e = end(); __i != __e;) - { - if (__pred(*__i)) - { - iterator __j = _VSTD::next(__i); - for (; __j != __e && __pred(*__j); ++__j) - ; - __i = erase(__i, __j); - if (__i != __e) - ++__i; - } - else - ++__i; - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -list<_Tp, _Alloc>::unique() -{ - unique(__equal_to()); -} - -template -template -void -list<_Tp, _Alloc>::unique(_BinaryPred __binary_pred) -{ - for (iterator __i = begin(), __e = end(); __i != __e;) - { - iterator __j = _VSTD::next(__i); - for (; __j != __e && __binary_pred(*__i, *__j); ++__j) - ; - if (++__i != __j) - __i = erase(__i, __j); - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -list<_Tp, _Alloc>::merge(list& __c) -{ - merge(__c, __less()); -} - -template -template -void -list<_Tp, _Alloc>::merge(list& __c, _Comp __comp) -{ - if (this != &__c) - { - iterator __f1 = begin(); - iterator __e1 = end(); - iterator __f2 = __c.begin(); - iterator __e2 = __c.end(); - while (__f1 != __e1 && __f2 != __e2) - { - if (__comp(*__f2, *__f1)) - { - size_type __ds = 1; - iterator __m2 = _VSTD::next(__f2); - for (; __m2 != __e2 && __comp(*__m2, *__f1); ++__m2, ++__ds) - ; - base::__sz() += __ds; - __c.__sz() -= __ds; - __node_pointer __f = __f2.__ptr_; - __node_pointer __l = __m2.__ptr_->__prev_; - __f2 = __m2; - base::__unlink_nodes(__f, __l); - __m2 = _VSTD::next(__f1); - __link_nodes(__f1.__ptr_, __f, __l); - __f1 = __m2; - } - else - ++__f1; - } - splice(__e1, __c); -#if _LIBCPP_DEBUG_LEVEL >= 2 - __libcpp_db* __db = __get_db(); - __c_node* __cn1 = __db->__find_c_and_lock(this); - __c_node* __cn2 = __db->__find_c(&__c); - for (__i_node** __p = __cn2->end_; __p != __cn2->beg_;) - { - --__p; - iterator* __i = static_cast((*__p)->__i_); - if (__i->__ptr_ != static_cast<__node_pointer>( - pointer_traits<__node_base_pointer>::pointer_to(__c.__end_))) - { - __cn1->__add(*__p); - (*__p)->__c_ = __cn1; - if (--__cn2->end_ != __p) - memmove(__p, __p+1, (__cn2->end_ - __p)*sizeof(__i_node*)); - } - } - __db->unlock(); -#endif - } -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -list<_Tp, _Alloc>::sort() -{ - sort(__less()); -} - -template -template -inline _LIBCPP_INLINE_VISIBILITY -void -list<_Tp, _Alloc>::sort(_Comp __comp) -{ - __sort(begin(), end(), base::__sz(), __comp); -} - -template -template -typename list<_Tp, _Alloc>::iterator -list<_Tp, _Alloc>::__sort(iterator __f1, iterator __e2, size_type __n, _Comp& __comp) -{ - switch (__n) - { - case 0: - case 1: - return __f1; - case 2: - if (__comp(*--__e2, *__f1)) - { - __node_pointer __f = __e2.__ptr_; - base::__unlink_nodes(__f, __f); - __link_nodes(__f1.__ptr_, __f, __f); - return __e2; - } - return __f1; - } - size_type __n2 = __n / 2; - iterator __e1 = _VSTD::next(__f1, __n2); - iterator __r = __f1 = __sort(__f1, __e1, __n2, __comp); - iterator __f2 = __e1 = __sort(__e1, __e2, __n - __n2, __comp); - if (__comp(*__f2, *__f1)) - { - iterator __m2 = _VSTD::next(__f2); - for (; __m2 != __e2 && __comp(*__m2, *__f1); ++__m2) - ; - __node_pointer __f = __f2.__ptr_; - __node_pointer __l = __m2.__ptr_->__prev_; - __r = __f2; - __e1 = __f2 = __m2; - base::__unlink_nodes(__f, __l); - __m2 = _VSTD::next(__f1); - __link_nodes(__f1.__ptr_, __f, __l); - __f1 = __m2; - } - else - ++__f1; - while (__f1 != __e1 && __f2 != __e2) - { - if (__comp(*__f2, *__f1)) - { - iterator __m2 = _VSTD::next(__f2); - for (; __m2 != __e2 && __comp(*__m2, *__f1); ++__m2) - ; - __node_pointer __f = __f2.__ptr_; - __node_pointer __l = __m2.__ptr_->__prev_; - if (__e1 == __f2) - __e1 = __m2; - __f2 = __m2; - base::__unlink_nodes(__f, __l); - __m2 = _VSTD::next(__f1); - __link_nodes(__f1.__ptr_, __f, __l); - __f1 = __m2; - } - else - ++__f1; - } - return __r; -} - -template -void -list<_Tp, _Alloc>::reverse() _NOEXCEPT -{ - if (base::__sz() > 1) - { - iterator __e = end(); - for (iterator __i = begin(); __i.__ptr_ != __e.__ptr_;) - { - _VSTD::swap(__i.__ptr_->__prev_, __i.__ptr_->__next_); - __i.__ptr_ = __i.__ptr_->__prev_; - } - _VSTD::swap(__e.__ptr_->__prev_, __e.__ptr_->__next_); - } -} - -template -bool -list<_Tp, _Alloc>::__invariants() const -{ - return size() == _VSTD::distance(begin(), end()); -} - -#if _LIBCPP_DEBUG_LEVEL >= 2 - -template -bool -list<_Tp, _Alloc>::__dereferenceable(const const_iterator* __i) const -{ - return __i->__ptr_ != static_cast<__node_pointer>( - pointer_traits<__node_base_pointer>::pointer_to(const_cast<__node_base&>(this->__end_))); -} - -template -bool -list<_Tp, _Alloc>::__decrementable(const const_iterator* __i) const -{ - return !empty() && __i->__ptr_ != base::__end_.__next_; -} - -template -bool -list<_Tp, _Alloc>::__addable(const const_iterator* __i, ptrdiff_t __n) const -{ - return false; -} - -template -bool -list<_Tp, _Alloc>::__subscriptable(const const_iterator* __i, ptrdiff_t __n) const -{ - return false; -} - -#endif // _LIBCPP_DEBUG_LEVEL >= 2 - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator==(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) -{ - return __x.size() == __y.size() && _VSTD::equal(__x.begin(), __x.end(), __y.begin()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator< (const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) -{ - return _VSTD::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) -{ - return !(__x == __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator> (const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) -{ - return __y < __x; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator>=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) -{ - return !(__x < __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator<=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) -{ - return !(__y < __x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y) - _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) -{ - __x.swap(__y); -} - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_LIST diff --git a/headers/libs/libc++/locale b/headers/libs/libc++/locale deleted file mode 100644 index 84cb5a5ef6..0000000000 --- a/headers/libs/libc++/locale +++ /dev/null @@ -1,4469 +0,0 @@ -// -*- C++ -*- -//===-------------------------- locale ------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_LOCALE -#define _LIBCPP_LOCALE - -/* - locale synopsis - -namespace std -{ - -class locale -{ -public: - // types: - class facet; - class id; - - typedef int category; - static const category // values assigned here are for exposition only - none = 0x000, - collate = 0x010, - ctype = 0x020, - monetary = 0x040, - numeric = 0x080, - time = 0x100, - messages = 0x200, - all = collate | ctype | monetary | numeric | time | messages; - - // construct/copy/destroy: - locale() noexcept; - locale(const locale& other) noexcept; - explicit locale(const char* std_name); - explicit locale(const string& std_name); - locale(const locale& other, const char* std_name, category); - locale(const locale& other, const string& std_name, category); - template locale(const locale& other, Facet* f); - locale(const locale& other, const locale& one, category); - - ~locale(); // not virtual - - const locale& operator=(const locale& other) noexcept; - - template locale combine(const locale& other) const; - - // locale operations: - basic_string name() const; - bool operator==(const locale& other) const; - bool operator!=(const locale& other) const; - template - bool operator()(const basic_string& s1, - const basic_string& s2) const; - - // global locale objects: - static locale global(const locale&); - static const locale& classic(); -}; - -template const Facet& use_facet(const locale&); -template bool has_facet(const locale&) noexcept; - -// 22.3.3, convenience interfaces: -template bool isspace (charT c, const locale& loc); -template bool isprint (charT c, const locale& loc); -template bool iscntrl (charT c, const locale& loc); -template bool isupper (charT c, const locale& loc); -template bool islower (charT c, const locale& loc); -template bool isalpha (charT c, const locale& loc); -template bool isdigit (charT c, const locale& loc); -template bool ispunct (charT c, const locale& loc); -template bool isxdigit(charT c, const locale& loc); -template bool isalnum (charT c, const locale& loc); -template bool isgraph (charT c, const locale& loc); -template charT toupper(charT c, const locale& loc); -template charT tolower(charT c, const locale& loc); - -template, - class Byte_alloc = allocator> -class wstring_convert -{ -public: - typedef basic_string, Byte_alloc> byte_string; - typedef basic_string, Wide_alloc> wide_string; - typedef typename Codecvt::state_type state_type; - typedef typename wide_string::traits_type::int_type int_type; - - explicit wstring_convert(Codecvt* pcvt = new Codecvt); // explicit in C++14 - wstring_convert(Codecvt* pcvt, state_type state); - explicit wstring_convert(const byte_string& byte_err, // explicit in C++14 - const wide_string& wide_err = wide_string()); - wstring_convert(const wstring_convert&) = delete; // C++14 - wstring_convert & operator=(const wstring_convert &) = delete; // C++14 - ~wstring_convert(); - - wide_string from_bytes(char byte); - wide_string from_bytes(const char* ptr); - wide_string from_bytes(const byte_string& str); - wide_string from_bytes(const char* first, const char* last); - - byte_string to_bytes(Elem wchar); - byte_string to_bytes(const Elem* wptr); - byte_string to_bytes(const wide_string& wstr); - byte_string to_bytes(const Elem* first, const Elem* last); - - size_t converted() const; // noexcept in C++14 - state_type state() const; -}; - -template > -class wbuffer_convert - : public basic_streambuf -{ -public: - typedef typename Tr::state_type state_type; - - explicit wbuffer_convert(streambuf* bytebuf = 0, Codecvt* pcvt = new Codecvt, - state_type state = state_type()); // explicit in C++14 - wbuffer_convert(const wbuffer_convert&) = delete; // C++14 - wbuffer_convert & operator=(const wbuffer_convert &) = delete; // C++14 - ~wbuffer_convert(); // C++14 - - streambuf* rdbuf() const; - streambuf* rdbuf(streambuf* bytebuf); - - state_type state() const; -}; - -// 22.4.1 and 22.4.1.3, ctype: -class ctype_base; -template class ctype; -template <> class ctype; // specialization -template class ctype_byname; -template <> class ctype_byname; // specialization - -class codecvt_base; -template class codecvt; -template class codecvt_byname; - -// 22.4.2 and 22.4.3, numeric: -template class num_get; -template class num_put; -template class numpunct; -template class numpunct_byname; - -// 22.4.4, col lation: -template class collate; -template class collate_byname; - -// 22.4.5, date and time: -class time_base; -template class time_get; -template class time_get_byname; -template class time_put; -template class time_put_byname; - -// 22.4.6, money: -class money_base; -template class money_get; -template class money_put; -template class moneypunct; -template class moneypunct_byname; - -// 22.4.7, message retrieval: -class messages_base; -template class messages; -template class messages_byname; - -} // std - -*/ - -#include <__config> -#include <__locale> -#include -#include -#include -#include -#include -#include -#ifndef __APPLE__ -#include -#endif -#include -#include -#if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__) -#include -#elif defined(_NEWLIB_VERSION) -// FIXME: replace all the uses of _NEWLIB_VERSION with __NEWLIB__ preceded by an -// include of once https://sourceware.org/ml/newlib-cvs/2014-q3/msg00038.html -// has had a chance to bake for a bit -#include -#endif -#ifdef _LIBCPP_HAS_CATOPEN -#include -#endif - -#ifdef __APPLE__ -#include -#endif - -#include <__undef_min_max> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -#if defined(__APPLE__) || defined(__FreeBSD__) -# define _LIBCPP_GET_C_LOCALE 0 -#elif defined(__CloudABI__) || defined(__NetBSD__) -# define _LIBCPP_GET_C_LOCALE LC_C_LOCALE -#else -# define _LIBCPP_GET_C_LOCALE __cloc() - // Get the C locale object - _LIBCPP_FUNC_VIS locale_t __cloc(); -#define __cloc_defined -#endif - -typedef _VSTD::remove_pointer::type __locale_struct; -typedef _VSTD::unique_ptr<__locale_struct, decltype(&freelocale)> __locale_unique_ptr; -#ifndef _LIBCPP_LOCALE__L_EXTENSIONS -typedef _VSTD::unique_ptr<__locale_struct, decltype(&uselocale)> __locale_raii; -#endif - -// OSX has nice foo_l() functions that let you turn off use of the global -// locale. Linux, not so much. The following functions avoid the locale when -// that's possible and otherwise do the wrong thing. FIXME. -#if defined(__linux__) || defined(__EMSCRIPTEN__) || defined(_AIX) || \ - defined(_NEWLIB_VERSION) || defined(__GLIBC__) - -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS -decltype(MB_CUR_MAX_L(_VSTD::declval())) -inline _LIBCPP_INLINE_VISIBILITY -__mb_cur_max_l(locale_t __l) -{ - return MB_CUR_MAX_L(__l); -} -#else // _LIBCPP_LOCALE__L_EXTENSIONS -inline _LIBCPP_ALWAYS_INLINE -decltype(MB_CUR_MAX) __mb_cur_max_l(locale_t __l) -{ - __locale_raii __current(uselocale(__l), uselocale); - return MB_CUR_MAX; -} -#endif // _LIBCPP_LOCALE__L_EXTENSIONS - -inline _LIBCPP_ALWAYS_INLINE -wint_t __btowc_l(int __c, locale_t __l) -{ -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - return btowc_l(__c, __l); -#else - __locale_raii __current(uselocale(__l), uselocale); - return btowc(__c); -#endif -} - -inline _LIBCPP_ALWAYS_INLINE -int __wctob_l(wint_t __c, locale_t __l) -{ -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - return wctob_l(__c, __l); -#else - __locale_raii __current(uselocale(__l), uselocale); - return wctob(__c); -#endif -} - -inline _LIBCPP_ALWAYS_INLINE -size_t __wcsnrtombs_l(char *__dest, const wchar_t **__src, size_t __nwc, - size_t __len, mbstate_t *__ps, locale_t __l) -{ -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - return wcsnrtombs_l(__dest, __src, __nwc, __len, __ps, __l); -#else - __locale_raii __current(uselocale(__l), uselocale); - return wcsnrtombs(__dest, __src, __nwc, __len, __ps); -#endif -} - -inline _LIBCPP_ALWAYS_INLINE -size_t __wcrtomb_l(char *__s, wchar_t __wc, mbstate_t *__ps, locale_t __l) -{ -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - return wcrtomb_l(__s, __wc, __ps, __l); -#else - __locale_raii __current(uselocale(__l), uselocale); - return wcrtomb(__s, __wc, __ps); -#endif -} - -inline _LIBCPP_ALWAYS_INLINE -size_t __mbsnrtowcs_l(wchar_t * __dest, const char **__src, size_t __nms, - size_t __len, mbstate_t *__ps, locale_t __l) -{ -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - return mbsnrtowcs_l(__dest, __src, __nms, __len, __ps, __l); -#else - __locale_raii __current(uselocale(__l), uselocale); - return mbsnrtowcs(__dest, __src, __nms, __len, __ps); -#endif -} - -inline _LIBCPP_ALWAYS_INLINE -size_t __mbrtowc_l(wchar_t *__pwc, const char *__s, size_t __n, - mbstate_t *__ps, locale_t __l) -{ -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - return mbrtowc_l(__pwc, __s, __n, __ps, __l); -#else - __locale_raii __current(uselocale(__l), uselocale); - return mbrtowc(__pwc, __s, __n, __ps); -#endif -} - -inline _LIBCPP_ALWAYS_INLINE -int __mbtowc_l(wchar_t *__pwc, const char *__pmb, size_t __max, locale_t __l) -{ -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - return mbtowc_l(__pwc, __pmb, __max, __l); -#else - __locale_raii __current(uselocale(__l), uselocale); - return mbtowc(__pwc, __pmb, __max); -#endif -} - -inline _LIBCPP_ALWAYS_INLINE -size_t __mbrlen_l(const char *__s, size_t __n, mbstate_t *__ps, locale_t __l) -{ -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - return mbrlen_l(__s, __n, __ps, __l); -#else - __locale_raii __current(uselocale(__l), uselocale); - return mbrlen(__s, __n, __ps); -#endif -} - -inline _LIBCPP_ALWAYS_INLINE -lconv *__localeconv_l(locale_t __l) -{ -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - return localeconv_l(__l); -#else - __locale_raii __current(uselocale(__l), uselocale); - return localeconv(); -#endif -} - -inline _LIBCPP_ALWAYS_INLINE -size_t __mbsrtowcs_l(wchar_t *__dest, const char **__src, size_t __len, - mbstate_t *__ps, locale_t __l) -{ -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - return mbsrtowcs_l(__dest, __src, __len, __ps, __l); -#else - __locale_raii __current(uselocale(__l), uselocale); - return mbsrtowcs(__dest, __src, __len, __ps); -#endif -} - -inline -int __snprintf_l(char *__s, size_t __n, locale_t __l, const char *__format, ...) { - va_list __va; - va_start(__va, __format); -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - int __res = vsnprintf_l(__s, __n, __l, __format, __va); -#else - __locale_raii __current(uselocale(__l), uselocale); - int __res = vsnprintf(__s, __n, __format, __va); -#endif - va_end(__va); - return __res; -} - -inline -int __asprintf_l(char **__s, locale_t __l, const char *__format, ...) { - va_list __va; - va_start(__va, __format); -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - int __res = vasprintf_l(__s, __l, __format, __va); -#else - __locale_raii __current(uselocale(__l), uselocale); - int __res = vasprintf(__s, __format, __va); -#endif - va_end(__va); - return __res; -} - -inline -int __sscanf_l(const char *__s, locale_t __l, const char *__format, ...) { - va_list __va; - va_start(__va, __format); -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - int __res = vsscanf_l(__s, __l, __format, __va); -#else - __locale_raii __current(uselocale(__l), uselocale); - int __res = vsscanf(__s, __format, __va); -#endif - va_end(__va); - return __res; -} - -#endif // __linux__ - -// __scan_keyword -// Scans [__b, __e) until a match is found in the basic_strings range -// [__kb, __ke) or until it can be shown that there is no match in [__kb, __ke). -// __b will be incremented (visibly), consuming CharT until a match is found -// or proved to not exist. A keyword may be "", in which will match anything. -// If one keyword is a prefix of another, and the next CharT in the input -// might match another keyword, the algorithm will attempt to find the longest -// matching keyword. If the longer matching keyword ends up not matching, then -// no keyword match is found. If no keyword match is found, __ke is returned -// and failbit is set in __err. -// Else an iterator pointing to the matching keyword is found. If more than -// one keyword matches, an iterator to the first matching keyword is returned. -// If on exit __b == __e, eofbit is set in __err. If __case_sensitive is false, -// __ct is used to force to lower case before comparing characters. -// Examples: -// Keywords: "a", "abb" -// If the input is "a", the first keyword matches and eofbit is set. -// If the input is "abc", no match is found and "ab" are consumed. -template -_LIBCPP_HIDDEN -_ForwardIterator -__scan_keyword(_InputIterator& __b, _InputIterator __e, - _ForwardIterator __kb, _ForwardIterator __ke, - const _Ctype& __ct, ios_base::iostate& __err, - bool __case_sensitive = true) -{ - typedef typename iterator_traits<_InputIterator>::value_type _CharT; - size_t __nkw = static_cast(_VSTD::distance(__kb, __ke)); - const unsigned char __doesnt_match = '\0'; - const unsigned char __might_match = '\1'; - const unsigned char __does_match = '\2'; - unsigned char __statbuf[100]; - unsigned char* __status = __statbuf; - unique_ptr __stat_hold(0, free); - if (__nkw > sizeof(__statbuf)) - { - __status = (unsigned char*)malloc(__nkw); - if (__status == 0) - __throw_bad_alloc(); - __stat_hold.reset(__status); - } - size_t __n_might_match = __nkw; // At this point, any keyword might match - size_t __n_does_match = 0; // but none of them definitely do - // Initialize all statuses to __might_match, except for "" keywords are __does_match - unsigned char* __st = __status; - for (_ForwardIterator __ky = __kb; __ky != __ke; ++__ky, (void) ++__st) - { - if (!__ky->empty()) - *__st = __might_match; - else - { - *__st = __does_match; - --__n_might_match; - ++__n_does_match; - } - } - // While there might be a match, test keywords against the next CharT - for (size_t __indx = 0; __b != __e && __n_might_match > 0; ++__indx) - { - // Peek at the next CharT but don't consume it - _CharT __c = *__b; - if (!__case_sensitive) - __c = __ct.toupper(__c); - bool __consume = false; - // For each keyword which might match, see if the __indx character is __c - // If a match if found, consume __c - // If a match is found, and that is the last character in the keyword, - // then that keyword matches. - // If the keyword doesn't match this character, then change the keyword - // to doesn't match - __st = __status; - for (_ForwardIterator __ky = __kb; __ky != __ke; ++__ky, (void) ++__st) - { - if (*__st == __might_match) - { - _CharT __kc = (*__ky)[__indx]; - if (!__case_sensitive) - __kc = __ct.toupper(__kc); - if (__c == __kc) - { - __consume = true; - if (__ky->size() == __indx+1) - { - *__st = __does_match; - --__n_might_match; - ++__n_does_match; - } - } - else - { - *__st = __doesnt_match; - --__n_might_match; - } - } - } - // consume if we matched a character - if (__consume) - { - ++__b; - // If we consumed a character and there might be a matched keyword that - // was marked matched on a previous iteration, then such keywords - // which are now marked as not matching. - if (__n_might_match + __n_does_match > 1) - { - __st = __status; - for (_ForwardIterator __ky = __kb; __ky != __ke; ++__ky, (void) ++__st) - { - if (*__st == __does_match && __ky->size() != __indx+1) - { - *__st = __doesnt_match; - --__n_does_match; - } - } - } - } - } - // We've exited the loop because we hit eof and/or we have no more "might matches". - if (__b == __e) - __err |= ios_base::eofbit; - // Return the first matching result - for (__st = __status; __kb != __ke; ++__kb, (void) ++__st) - if (*__st == __does_match) - break; - if (__kb == __ke) - __err |= ios_base::failbit; - return __kb; -} - -struct _LIBCPP_TYPE_VIS __num_get_base -{ - static const int __num_get_buf_sz = 40; - - static int __get_base(ios_base&); - static const char __src[33]; -}; - -_LIBCPP_FUNC_VIS -void __check_grouping(const string& __grouping, unsigned* __g, unsigned* __g_end, - ios_base::iostate& __err); - -template -struct __num_get - : protected __num_get_base -{ - static string __stage2_int_prep(ios_base& __iob, _CharT* __atoms, _CharT& __thousands_sep); - static string __stage2_float_prep(ios_base& __iob, _CharT* __atoms, _CharT& __decimal_point, - _CharT& __thousands_sep); - static int __stage2_int_loop(_CharT __ct, int __base, char* __a, char*& __a_end, - unsigned& __dc, _CharT __thousands_sep, const string& __grouping, - unsigned* __g, unsigned*& __g_end, _CharT* __atoms); - static int __stage2_float_loop(_CharT __ct, bool& __in_units, char& __exp, - char* __a, char*& __a_end, - _CharT __decimal_point, _CharT __thousands_sep, - const string& __grouping, unsigned* __g, - unsigned*& __g_end, unsigned& __dc, _CharT* __atoms); -}; - -template -string -__num_get<_CharT>::__stage2_int_prep(ios_base& __iob, _CharT* __atoms, _CharT& __thousands_sep) -{ - locale __loc = __iob.getloc(); - use_facet >(__loc).widen(__src, __src + 26, __atoms); - const numpunct<_CharT>& __np = use_facet >(__loc); - __thousands_sep = __np.thousands_sep(); - return __np.grouping(); -} - -template -string -__num_get<_CharT>::__stage2_float_prep(ios_base& __iob, _CharT* __atoms, _CharT& __decimal_point, - _CharT& __thousands_sep) -{ - locale __loc = __iob.getloc(); - use_facet >(__loc).widen(__src, __src + 32, __atoms); - const numpunct<_CharT>& __np = use_facet >(__loc); - __decimal_point = __np.decimal_point(); - __thousands_sep = __np.thousands_sep(); - return __np.grouping(); -} - -template -int -__num_get<_CharT>::__stage2_int_loop(_CharT __ct, int __base, char* __a, char*& __a_end, - unsigned& __dc, _CharT __thousands_sep, const string& __grouping, - unsigned* __g, unsigned*& __g_end, _CharT* __atoms) -{ - if (__a_end == __a && (__ct == __atoms[24] || __ct == __atoms[25])) - { - *__a_end++ = __ct == __atoms[24] ? '+' : '-'; - __dc = 0; - return 0; - } - if (__grouping.size() != 0 && __ct == __thousands_sep) - { - if (__g_end-__g < __num_get_buf_sz) - { - *__g_end++ = __dc; - __dc = 0; - } - return 0; - } - ptrdiff_t __f = find(__atoms, __atoms + 26, __ct) - __atoms; - if (__f >= 24) - return -1; - switch (__base) - { - case 8: - case 10: - if (__f >= __base) - return -1; - break; - case 16: - if (__f < 22) - break; - if (__a_end != __a && __a_end - __a <= 2 && __a_end[-1] == '0') - { - __dc = 0; - *__a_end++ = __src[__f]; - return 0; - } - return -1; - } - *__a_end++ = __src[__f]; - ++__dc; - return 0; -} - -template -int -__num_get<_CharT>::__stage2_float_loop(_CharT __ct, bool& __in_units, char& __exp, char* __a, char*& __a_end, - _CharT __decimal_point, _CharT __thousands_sep, const string& __grouping, - unsigned* __g, unsigned*& __g_end, unsigned& __dc, _CharT* __atoms) -{ - if (__ct == __decimal_point) - { - if (!__in_units) - return -1; - __in_units = false; - *__a_end++ = '.'; - if (__grouping.size() != 0 && __g_end-__g < __num_get_buf_sz) - *__g_end++ = __dc; - return 0; - } - if (__ct == __thousands_sep && __grouping.size() != 0) - { - if (!__in_units) - return -1; - if (__g_end-__g < __num_get_buf_sz) - { - *__g_end++ = __dc; - __dc = 0; - } - return 0; - } - ptrdiff_t __f = find(__atoms, __atoms + 32, __ct) - __atoms; - if (__f >= 32) - return -1; - char __x = __src[__f]; - if (__x == '-' || __x == '+') - { - if (__a_end == __a || (__a_end[-1] & 0x5F) == (__exp & 0x7F)) - { - *__a_end++ = __x; - return 0; - } - return -1; - } - if (__x == 'x' || __x == 'X') - __exp = 'P'; - else if ((__x & 0x5F) == __exp) - { - __exp |= 0x80; - if (__in_units) - { - __in_units = false; - if (__grouping.size() != 0 && __g_end-__g < __num_get_buf_sz) - *__g_end++ = __dc; - } - } - *__a_end++ = __x; - if (__f >= 22) - return 0; - ++__dc; - return 0; -} - -_LIBCPP_EXTERN_TEMPLATE2(struct _LIBCPP_TYPE_VIS __num_get) -_LIBCPP_EXTERN_TEMPLATE2(struct _LIBCPP_TYPE_VIS __num_get) - -template > -class _LIBCPP_TYPE_VIS_ONLY num_get - : public locale::facet, - private __num_get<_CharT> -{ -public: - typedef _CharT char_type; - typedef _InputIterator iter_type; - - _LIBCPP_ALWAYS_INLINE - explicit num_get(size_t __refs = 0) - : locale::facet(__refs) {} - - _LIBCPP_ALWAYS_INLINE - iter_type get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, bool& __v) const - { - return do_get(__b, __e, __iob, __err, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, long& __v) const - { - return do_get(__b, __e, __iob, __err, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, long long& __v) const - { - return do_get(__b, __e, __iob, __err, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, unsigned short& __v) const - { - return do_get(__b, __e, __iob, __err, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, unsigned int& __v) const - { - return do_get(__b, __e, __iob, __err, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, unsigned long& __v) const - { - return do_get(__b, __e, __iob, __err, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, unsigned long long& __v) const - { - return do_get(__b, __e, __iob, __err, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, float& __v) const - { - return do_get(__b, __e, __iob, __err, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, double& __v) const - { - return do_get(__b, __e, __iob, __err, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, long double& __v) const - { - return do_get(__b, __e, __iob, __err, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, void*& __v) const - { - return do_get(__b, __e, __iob, __err, __v); - } - - static locale::id id; - -protected: - _LIBCPP_ALWAYS_INLINE - ~num_get() {} - - template - iter_type __do_get_floating_point - (iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, _Fp& __v) const; - - template - iter_type __do_get_signed - (iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, _Signed& __v) const; - - template - iter_type __do_get_unsigned - (iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, _Unsigned& __v) const; - - - virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, bool& __v) const; - - virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, long& __v) const - { return this->__do_get_signed ( __b, __e, __iob, __err, __v ); } - - virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, long long& __v) const - { return this->__do_get_signed ( __b, __e, __iob, __err, __v ); } - - virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, unsigned short& __v) const - { return this->__do_get_unsigned ( __b, __e, __iob, __err, __v ); } - - virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, unsigned int& __v) const - { return this->__do_get_unsigned ( __b, __e, __iob, __err, __v ); } - - virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, unsigned long& __v) const - { return this->__do_get_unsigned ( __b, __e, __iob, __err, __v ); } - - virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, unsigned long long& __v) const - { return this->__do_get_unsigned ( __b, __e, __iob, __err, __v ); } - - virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, float& __v) const - { return this->__do_get_floating_point ( __b, __e, __iob, __err, __v ); } - - virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, double& __v) const - { return this->__do_get_floating_point ( __b, __e, __iob, __err, __v ); } - - virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, long double& __v) const - { return this->__do_get_floating_point ( __b, __e, __iob, __err, __v ); } - - virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, void*& __v) const; -}; - -template -locale::id -num_get<_CharT, _InputIterator>::id; - -template -_Tp -__num_get_signed_integral(const char* __a, const char* __a_end, - ios_base::iostate& __err, int __base) -{ - if (__a != __a_end) - { - typename remove_reference::type __save_errno = errno; - errno = 0; - char *__p2; - long long __ll = strtoll_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE); - typename remove_reference::type __current_errno = errno; - if (__current_errno == 0) - errno = __save_errno; - if (__p2 != __a_end) - { - __err = ios_base::failbit; - return 0; - } - else if (__current_errno == ERANGE || - __ll < numeric_limits<_Tp>::min() || - numeric_limits<_Tp>::max() < __ll) - { - __err = ios_base::failbit; - if (__ll > 0) - return numeric_limits<_Tp>::max(); - else - return numeric_limits<_Tp>::min(); - } - return static_cast<_Tp>(__ll); - } - __err = ios_base::failbit; - return 0; -} - -template -_Tp -__num_get_unsigned_integral(const char* __a, const char* __a_end, - ios_base::iostate& __err, int __base) -{ - if (__a != __a_end) - { - if (*__a == '-') - { - __err = ios_base::failbit; - return 0; - } - typename remove_reference::type __save_errno = errno; - errno = 0; - char *__p2; - unsigned long long __ll = strtoull_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE); - typename remove_reference::type __current_errno = errno; - if (__current_errno == 0) - errno = __save_errno; - if (__p2 != __a_end) - { - __err = ios_base::failbit; - return 0; - } - else if (__current_errno == ERANGE || - numeric_limits<_Tp>::max() < __ll) - { - __err = ios_base::failbit; - return numeric_limits<_Tp>::max(); - } - return static_cast<_Tp>(__ll); - } - __err = ios_base::failbit; - return 0; -} - -template -_Tp -__num_get_float(const char* __a, const char* __a_end, ios_base::iostate& __err) -{ - if (__a != __a_end) - { - typename remove_reference::type __save_errno = errno; - errno = 0; - char *__p2; - long double __ld = strtold_l(__a, &__p2, _LIBCPP_GET_C_LOCALE); - typename remove_reference::type __current_errno = errno; - if (__current_errno == 0) - errno = __save_errno; - if (__p2 != __a_end) - { - __err = ios_base::failbit; - return 0; - } - else if (__current_errno == ERANGE) - __err = ios_base::failbit; - return static_cast<_Tp>(__ld); - } - __err = ios_base::failbit; - return 0; -} - -template -_InputIterator -num_get<_CharT, _InputIterator>::do_get(iter_type __b, iter_type __e, - ios_base& __iob, - ios_base::iostate& __err, - bool& __v) const -{ - if ((__iob.flags() & ios_base::boolalpha) == 0) - { - long __lv = -1; - __b = do_get(__b, __e, __iob, __err, __lv); - switch (__lv) - { - case 0: - __v = false; - break; - case 1: - __v = true; - break; - default: - __v = true; - __err = ios_base::failbit; - break; - } - return __b; - } - const ctype<_CharT>& __ct = use_facet >(__iob.getloc()); - const numpunct<_CharT>& __np = use_facet >(__iob.getloc()); - typedef typename numpunct<_CharT>::string_type string_type; - const string_type __names[2] = {__np.truename(), __np.falsename()}; - const string_type* __i = __scan_keyword(__b, __e, __names, __names+2, - __ct, __err); - __v = __i == __names; - return __b; -} - -// signed - -template -template -_InputIterator -num_get<_CharT, _InputIterator>::__do_get_signed(iter_type __b, iter_type __e, - ios_base& __iob, - ios_base::iostate& __err, - _Signed& __v) const -{ - // Stage 1 - int __base = this->__get_base(__iob); - // Stage 2 - char_type __atoms[26]; - char_type __thousands_sep; - string __grouping = this->__stage2_int_prep(__iob, __atoms, __thousands_sep); - string __buf; - __buf.resize(__buf.capacity()); - char* __a = &__buf[0]; - char* __a_end = __a; - unsigned __g[__num_get_base::__num_get_buf_sz]; - unsigned* __g_end = __g; - unsigned __dc = 0; - for (; __b != __e; ++__b) - { - if (__a_end == __a + __buf.size()) - { - size_t __tmp = __buf.size(); - __buf.resize(2*__buf.size()); - __buf.resize(__buf.capacity()); - __a = &__buf[0]; - __a_end = __a + __tmp; - } - if (this->__stage2_int_loop(*__b, __base, __a, __a_end, __dc, - __thousands_sep, __grouping, __g, __g_end, - __atoms)) - break; - } - if (__grouping.size() != 0 && __g_end-__g < __num_get_base::__num_get_buf_sz) - *__g_end++ = __dc; - // Stage 3 - __v = __num_get_signed_integral<_Signed>(__a, __a_end, __err, __base); - // Digit grouping checked - __check_grouping(__grouping, __g, __g_end, __err); - // EOF checked - if (__b == __e) - __err |= ios_base::eofbit; - return __b; -} - -// unsigned - -template -template -_InputIterator -num_get<_CharT, _InputIterator>::__do_get_unsigned(iter_type __b, iter_type __e, - ios_base& __iob, - ios_base::iostate& __err, - _Unsigned& __v) const -{ - // Stage 1 - int __base = this->__get_base(__iob); - // Stage 2 - char_type __atoms[26]; - char_type __thousands_sep; - string __grouping = this->__stage2_int_prep(__iob, __atoms, __thousands_sep); - string __buf; - __buf.resize(__buf.capacity()); - char* __a = &__buf[0]; - char* __a_end = __a; - unsigned __g[__num_get_base::__num_get_buf_sz]; - unsigned* __g_end = __g; - unsigned __dc = 0; - for (; __b != __e; ++__b) - { - if (__a_end == __a + __buf.size()) - { - size_t __tmp = __buf.size(); - __buf.resize(2*__buf.size()); - __buf.resize(__buf.capacity()); - __a = &__buf[0]; - __a_end = __a + __tmp; - } - if (this->__stage2_int_loop(*__b, __base, __a, __a_end, __dc, - __thousands_sep, __grouping, __g, __g_end, - __atoms)) - break; - } - if (__grouping.size() != 0 && __g_end-__g < __num_get_base::__num_get_buf_sz) - *__g_end++ = __dc; - // Stage 3 - __v = __num_get_unsigned_integral<_Unsigned>(__a, __a_end, __err, __base); - // Digit grouping checked - __check_grouping(__grouping, __g, __g_end, __err); - // EOF checked - if (__b == __e) - __err |= ios_base::eofbit; - return __b; -} - -// floating point - -template -template -_InputIterator -num_get<_CharT, _InputIterator>::__do_get_floating_point(iter_type __b, iter_type __e, - ios_base& __iob, - ios_base::iostate& __err, - _Fp& __v) const -{ - // Stage 1, nothing to do - // Stage 2 - char_type __atoms[32]; - char_type __decimal_point; - char_type __thousands_sep; - string __grouping = this->__stage2_float_prep(__iob, __atoms, - __decimal_point, - __thousands_sep); - string __buf; - __buf.resize(__buf.capacity()); - char* __a = &__buf[0]; - char* __a_end = __a; - unsigned __g[__num_get_base::__num_get_buf_sz]; - unsigned* __g_end = __g; - unsigned __dc = 0; - bool __in_units = true; - char __exp = 'E'; - for (; __b != __e; ++__b) - { - if (__a_end == __a + __buf.size()) - { - size_t __tmp = __buf.size(); - __buf.resize(2*__buf.size()); - __buf.resize(__buf.capacity()); - __a = &__buf[0]; - __a_end = __a + __tmp; - } - if (this->__stage2_float_loop(*__b, __in_units, __exp, __a, __a_end, - __decimal_point, __thousands_sep, - __grouping, __g, __g_end, - __dc, __atoms)) - break; - } - if (__grouping.size() != 0 && __in_units && __g_end-__g < __num_get_base::__num_get_buf_sz) - *__g_end++ = __dc; - // Stage 3 - __v = __num_get_float<_Fp>(__a, __a_end, __err); - // Digit grouping checked - __check_grouping(__grouping, __g, __g_end, __err); - // EOF checked - if (__b == __e) - __err |= ios_base::eofbit; - return __b; -} - -template -_InputIterator -num_get<_CharT, _InputIterator>::do_get(iter_type __b, iter_type __e, - ios_base& __iob, - ios_base::iostate& __err, - void*& __v) const -{ - // Stage 1 - int __base = 16; - // Stage 2 - char_type __atoms[26]; - char_type __thousands_sep = 0; - string __grouping; - use_facet >(__iob.getloc()).widen(__num_get_base::__src, - __num_get_base::__src + 26, __atoms); - string __buf; - __buf.resize(__buf.capacity()); - char* __a = &__buf[0]; - char* __a_end = __a; - unsigned __g[__num_get_base::__num_get_buf_sz]; - unsigned* __g_end = __g; - unsigned __dc = 0; - for (; __b != __e; ++__b) - { - if (__a_end == __a + __buf.size()) - { - size_t __tmp = __buf.size(); - __buf.resize(2*__buf.size()); - __buf.resize(__buf.capacity()); - __a = &__buf[0]; - __a_end = __a + __tmp; - } - if (this->__stage2_int_loop(*__b, __base, __a, __a_end, __dc, - __thousands_sep, __grouping, - __g, __g_end, __atoms)) - break; - } - // Stage 3 - __buf.resize(__a_end - __a); -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - if (sscanf_l(__buf.c_str(), _LIBCPP_GET_C_LOCALE, "%p", &__v) != 1) -#else - if (__sscanf_l(__buf.c_str(), _LIBCPP_GET_C_LOCALE, "%p", &__v) != 1) -#endif - __err = ios_base::failbit; - // EOF checked - if (__b == __e) - __err |= ios_base::eofbit; - return __b; -} - -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS num_get) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS num_get) - -struct _LIBCPP_TYPE_VIS __num_put_base -{ -protected: - static void __format_int(char* __fmt, const char* __len, bool __signd, - ios_base::fmtflags __flags); - static bool __format_float(char* __fmt, const char* __len, - ios_base::fmtflags __flags); - static char* __identify_padding(char* __nb, char* __ne, - const ios_base& __iob); -}; - -template -struct __num_put - : protected __num_put_base -{ - static void __widen_and_group_int(char* __nb, char* __np, char* __ne, - _CharT* __ob, _CharT*& __op, _CharT*& __oe, - const locale& __loc); - static void __widen_and_group_float(char* __nb, char* __np, char* __ne, - _CharT* __ob, _CharT*& __op, _CharT*& __oe, - const locale& __loc); -}; - -template -void -__num_put<_CharT>::__widen_and_group_int(char* __nb, char* __np, char* __ne, - _CharT* __ob, _CharT*& __op, _CharT*& __oe, - const locale& __loc) -{ - const ctype<_CharT>& __ct = use_facet > (__loc); - const numpunct<_CharT>& __npt = use_facet >(__loc); - string __grouping = __npt.grouping(); - if (__grouping.empty()) - { - __ct.widen(__nb, __ne, __ob); - __oe = __ob + (__ne - __nb); - } - else - { - __oe = __ob; - char* __nf = __nb; - if (*__nf == '-' || *__nf == '+') - *__oe++ = __ct.widen(*__nf++); - if (__ne - __nf >= 2 && __nf[0] == '0' && (__nf[1] == 'x' || - __nf[1] == 'X')) - { - *__oe++ = __ct.widen(*__nf++); - *__oe++ = __ct.widen(*__nf++); - } - reverse(__nf, __ne); - _CharT __thousands_sep = __npt.thousands_sep(); - unsigned __dc = 0; - unsigned __dg = 0; - for (char* __p = __nf; __p < __ne; ++__p) - { - if (static_cast(__grouping[__dg]) > 0 && - __dc == static_cast(__grouping[__dg])) - { - *__oe++ = __thousands_sep; - __dc = 0; - if (__dg < __grouping.size()-1) - ++__dg; - } - *__oe++ = __ct.widen(*__p); - ++__dc; - } - reverse(__ob + (__nf - __nb), __oe); - } - if (__np == __ne) - __op = __oe; - else - __op = __ob + (__np - __nb); -} - -template -void -__num_put<_CharT>::__widen_and_group_float(char* __nb, char* __np, char* __ne, - _CharT* __ob, _CharT*& __op, _CharT*& __oe, - const locale& __loc) -{ - const ctype<_CharT>& __ct = use_facet > (__loc); - const numpunct<_CharT>& __npt = use_facet >(__loc); - string __grouping = __npt.grouping(); - __oe = __ob; - char* __nf = __nb; - if (*__nf == '-' || *__nf == '+') - *__oe++ = __ct.widen(*__nf++); - char* __ns; - if (__ne - __nf >= 2 && __nf[0] == '0' && (__nf[1] == 'x' || - __nf[1] == 'X')) - { - *__oe++ = __ct.widen(*__nf++); - *__oe++ = __ct.widen(*__nf++); - for (__ns = __nf; __ns < __ne; ++__ns) - if (!isxdigit_l(*__ns, _LIBCPP_GET_C_LOCALE)) - break; - } - else - { - for (__ns = __nf; __ns < __ne; ++__ns) - if (!isdigit_l(*__ns, _LIBCPP_GET_C_LOCALE)) - break; - } - if (__grouping.empty()) - { - __ct.widen(__nf, __ns, __oe); - __oe += __ns - __nf; - } - else - { - reverse(__nf, __ns); - _CharT __thousands_sep = __npt.thousands_sep(); - unsigned __dc = 0; - unsigned __dg = 0; - for (char* __p = __nf; __p < __ns; ++__p) - { - if (__grouping[__dg] > 0 && __dc == static_cast(__grouping[__dg])) - { - *__oe++ = __thousands_sep; - __dc = 0; - if (__dg < __grouping.size()-1) - ++__dg; - } - *__oe++ = __ct.widen(*__p); - ++__dc; - } - reverse(__ob + (__nf - __nb), __oe); - } - for (__nf = __ns; __nf < __ne; ++__nf) - { - if (*__nf == '.') - { - *__oe++ = __npt.decimal_point(); - ++__nf; - break; - } - else - *__oe++ = __ct.widen(*__nf); - } - __ct.widen(__nf, __ne, __oe); - __oe += __ne - __nf; - if (__np == __ne) - __op = __oe; - else - __op = __ob + (__np - __nb); -} - -_LIBCPP_EXTERN_TEMPLATE2(struct _LIBCPP_TYPE_VIS __num_put) -_LIBCPP_EXTERN_TEMPLATE2(struct _LIBCPP_TYPE_VIS __num_put) - -template > -class _LIBCPP_TYPE_VIS_ONLY num_put - : public locale::facet, - private __num_put<_CharT> -{ -public: - typedef _CharT char_type; - typedef _OutputIterator iter_type; - - _LIBCPP_ALWAYS_INLINE - explicit num_put(size_t __refs = 0) - : locale::facet(__refs) {} - - _LIBCPP_ALWAYS_INLINE - iter_type put(iter_type __s, ios_base& __iob, char_type __fl, - bool __v) const - { - return do_put(__s, __iob, __fl, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type put(iter_type __s, ios_base& __iob, char_type __fl, - long __v) const - { - return do_put(__s, __iob, __fl, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type put(iter_type __s, ios_base& __iob, char_type __fl, - long long __v) const - { - return do_put(__s, __iob, __fl, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type put(iter_type __s, ios_base& __iob, char_type __fl, - unsigned long __v) const - { - return do_put(__s, __iob, __fl, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type put(iter_type __s, ios_base& __iob, char_type __fl, - unsigned long long __v) const - { - return do_put(__s, __iob, __fl, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type put(iter_type __s, ios_base& __iob, char_type __fl, - double __v) const - { - return do_put(__s, __iob, __fl, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type put(iter_type __s, ios_base& __iob, char_type __fl, - long double __v) const - { - return do_put(__s, __iob, __fl, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type put(iter_type __s, ios_base& __iob, char_type __fl, - const void* __v) const - { - return do_put(__s, __iob, __fl, __v); - } - - static locale::id id; - -protected: - _LIBCPP_ALWAYS_INLINE - ~num_put() {} - - virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl, - bool __v) const; - virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl, - long __v) const; - virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl, - long long __v) const; - virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl, - unsigned long) const; - virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl, - unsigned long long) const; - virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl, - double __v) const; - virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl, - long double __v) const; - virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl, - const void* __v) const; -}; - -template -locale::id -num_put<_CharT, _OutputIterator>::id; - -template -_LIBCPP_HIDDEN -_OutputIterator -__pad_and_output(_OutputIterator __s, - const _CharT* __ob, const _CharT* __op, const _CharT* __oe, - ios_base& __iob, _CharT __fl) -{ - streamsize __sz = __oe - __ob; - streamsize __ns = __iob.width(); - if (__ns > __sz) - __ns -= __sz; - else - __ns = 0; - for (;__ob < __op; ++__ob, ++__s) - *__s = *__ob; - for (; __ns; --__ns, ++__s) - *__s = __fl; - for (; __ob < __oe; ++__ob, ++__s) - *__s = *__ob; - __iob.width(0); - return __s; -} - -#if !defined(__APPLE__) || \ - (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \ - (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0) - -template -_LIBCPP_HIDDEN -ostreambuf_iterator<_CharT, _Traits> -__pad_and_output(ostreambuf_iterator<_CharT, _Traits> __s, - const _CharT* __ob, const _CharT* __op, const _CharT* __oe, - ios_base& __iob, _CharT __fl) -{ - if (__s.__sbuf_ == nullptr) - return __s; - streamsize __sz = __oe - __ob; - streamsize __ns = __iob.width(); - if (__ns > __sz) - __ns -= __sz; - else - __ns = 0; - streamsize __np = __op - __ob; - if (__np > 0) - { - if (__s.__sbuf_->sputn(__ob, __np) != __np) - { - __s.__sbuf_ = nullptr; - return __s; - } - } - if (__ns > 0) - { - basic_string<_CharT, _Traits> __sp(__ns, __fl); - if (__s.__sbuf_->sputn(__sp.data(), __ns) != __ns) - { - __s.__sbuf_ = nullptr; - return __s; - } - } - __np = __oe - __op; - if (__np > 0) - { - if (__s.__sbuf_->sputn(__op, __np) != __np) - { - __s.__sbuf_ = nullptr; - return __s; - } - } - __iob.width(0); - return __s; -} - -#endif - -template -_OutputIterator -num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob, - char_type __fl, bool __v) const -{ - if ((__iob.flags() & ios_base::boolalpha) == 0) - return do_put(__s, __iob, __fl, (unsigned long)__v); - const numpunct& __np = use_facet >(__iob.getloc()); - typedef typename numpunct::string_type string_type; -#if _LIBCPP_DEBUG_LEVEL >= 2 - string_type __tmp(__v ? __np.truename() : __np.falsename()); - string_type __nm = _VSTD::move(__tmp); -#else - string_type __nm = __v ? __np.truename() : __np.falsename(); -#endif - for (typename string_type::iterator __i = __nm.begin(); __i != __nm.end(); ++__i, ++__s) - *__s = *__i; - return __s; -} - -template -_OutputIterator -num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob, - char_type __fl, long __v) const -{ - // Stage 1 - Get number in narrow char - char __fmt[6] = {'%', 0}; - const char* __len = "l"; - this->__format_int(__fmt+1, __len, true, __iob.flags()); - const unsigned __nbuf = (numeric_limits::digits / 3) - + ((numeric_limits::digits % 3) != 0) - + 1; - char __nar[__nbuf]; -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - int __nc = snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v); -#else - int __nc = __snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v); -#endif - char* __ne = __nar + __nc; - char* __np = this->__identify_padding(__nar, __ne, __iob); - // Stage 2 - Widen __nar while adding thousands separators - char_type __o[2*(__nbuf-1) - 1]; - char_type* __op; // pad here - char_type* __oe; // end of output - this->__widen_and_group_int(__nar, __np, __ne, __o, __op, __oe, __iob.getloc()); - // [__o, __oe) contains thousands_sep'd wide number - // Stage 3 & 4 - return __pad_and_output(__s, __o, __op, __oe, __iob, __fl); -} - -template -_OutputIterator -num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob, - char_type __fl, long long __v) const -{ - // Stage 1 - Get number in narrow char - char __fmt[8] = {'%', 0}; - const char* __len = "ll"; - this->__format_int(__fmt+1, __len, true, __iob.flags()); - const unsigned __nbuf = (numeric_limits::digits / 3) - + ((numeric_limits::digits % 3) != 0) - + 2; - char __nar[__nbuf]; -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - int __nc = snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v); -#else - int __nc = __snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v); -#endif - char* __ne = __nar + __nc; - char* __np = this->__identify_padding(__nar, __ne, __iob); - // Stage 2 - Widen __nar while adding thousands separators - char_type __o[2*(__nbuf-1) - 1]; - char_type* __op; // pad here - char_type* __oe; // end of output - this->__widen_and_group_int(__nar, __np, __ne, __o, __op, __oe, __iob.getloc()); - // [__o, __oe) contains thousands_sep'd wide number - // Stage 3 & 4 - return __pad_and_output(__s, __o, __op, __oe, __iob, __fl); -} - -template -_OutputIterator -num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob, - char_type __fl, unsigned long __v) const -{ - // Stage 1 - Get number in narrow char - char __fmt[6] = {'%', 0}; - const char* __len = "l"; - this->__format_int(__fmt+1, __len, false, __iob.flags()); - const unsigned __nbuf = (numeric_limits::digits / 3) - + ((numeric_limits::digits % 3) != 0) - + 1; - char __nar[__nbuf]; -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - int __nc = snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v); -#else - int __nc = __snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v); -#endif - char* __ne = __nar + __nc; - char* __np = this->__identify_padding(__nar, __ne, __iob); - // Stage 2 - Widen __nar while adding thousands separators - char_type __o[2*(__nbuf-1) - 1]; - char_type* __op; // pad here - char_type* __oe; // end of output - this->__widen_and_group_int(__nar, __np, __ne, __o, __op, __oe, __iob.getloc()); - // [__o, __oe) contains thousands_sep'd wide number - // Stage 3 & 4 - return __pad_and_output(__s, __o, __op, __oe, __iob, __fl); -} - -template -_OutputIterator -num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob, - char_type __fl, unsigned long long __v) const -{ - // Stage 1 - Get number in narrow char - char __fmt[8] = {'%', 0}; - const char* __len = "ll"; - this->__format_int(__fmt+1, __len, false, __iob.flags()); - const unsigned __nbuf = (numeric_limits::digits / 3) - + ((numeric_limits::digits % 3) != 0) - + 1; - char __nar[__nbuf]; -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - int __nc = snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v); -#else - int __nc = __snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v); -#endif - char* __ne = __nar + __nc; - char* __np = this->__identify_padding(__nar, __ne, __iob); - // Stage 2 - Widen __nar while adding thousands separators - char_type __o[2*(__nbuf-1) - 1]; - char_type* __op; // pad here - char_type* __oe; // end of output - this->__widen_and_group_int(__nar, __np, __ne, __o, __op, __oe, __iob.getloc()); - // [__o, __oe) contains thousands_sep'd wide number - // Stage 3 & 4 - return __pad_and_output(__s, __o, __op, __oe, __iob, __fl); -} - -template -_OutputIterator -num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob, - char_type __fl, double __v) const -{ - // Stage 1 - Get number in narrow char - char __fmt[8] = {'%', 0}; - const char* __len = ""; - bool __specify_precision = this->__format_float(__fmt+1, __len, __iob.flags()); - const unsigned __nbuf = 30; - char __nar[__nbuf]; - char* __nb = __nar; - int __nc; - if (__specify_precision) -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - __nc = snprintf_l(__nb, __nbuf, _LIBCPP_GET_C_LOCALE, __fmt, - (int)__iob.precision(), __v); -#else - __nc = __snprintf_l(__nb, __nbuf, _LIBCPP_GET_C_LOCALE, __fmt, - (int)__iob.precision(), __v); -#endif - else -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - __nc = snprintf_l(__nb, __nbuf, _LIBCPP_GET_C_LOCALE, __fmt, __v); -#else - __nc = __snprintf_l(__nb, __nbuf, _LIBCPP_GET_C_LOCALE, __fmt, __v); -#endif - unique_ptr __nbh(0, free); - if (__nc > static_cast(__nbuf-1)) - { - if (__specify_precision) -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - __nc = asprintf_l(&__nb, _LIBCPP_GET_C_LOCALE, __fmt, (int)__iob.precision(), __v); -#else - __nc = __asprintf_l(&__nb, _LIBCPP_GET_C_LOCALE, __fmt, (int)__iob.precision(), __v); -#endif - else -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - __nc = asprintf_l(&__nb, _LIBCPP_GET_C_LOCALE, __fmt, __v); -#else - __nc = __asprintf_l(&__nb, _LIBCPP_GET_C_LOCALE, __fmt, (int)__iob.precision(), __v); -#endif - if (__nb == 0) - __throw_bad_alloc(); - __nbh.reset(__nb); - } - char* __ne = __nb + __nc; - char* __np = this->__identify_padding(__nb, __ne, __iob); - // Stage 2 - Widen __nar while adding thousands separators - char_type __o[2*(__nbuf-1) - 1]; - char_type* __ob = __o; - unique_ptr __obh(0, free); - if (__nb != __nar) - { - __ob = (char_type*)malloc(2*static_cast(__nc)*sizeof(char_type)); - if (__ob == 0) - __throw_bad_alloc(); - __obh.reset(__ob); - } - char_type* __op; // pad here - char_type* __oe; // end of output - this->__widen_and_group_float(__nb, __np, __ne, __ob, __op, __oe, __iob.getloc()); - // [__o, __oe) contains thousands_sep'd wide number - // Stage 3 & 4 - __s = __pad_and_output(__s, __ob, __op, __oe, __iob, __fl); - return __s; -} - -template -_OutputIterator -num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob, - char_type __fl, long double __v) const -{ - // Stage 1 - Get number in narrow char - char __fmt[8] = {'%', 0}; - const char* __len = "L"; - bool __specify_precision = this->__format_float(__fmt+1, __len, __iob.flags()); - const unsigned __nbuf = 30; - char __nar[__nbuf]; - char* __nb = __nar; - int __nc; - if (__specify_precision) -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - __nc = snprintf_l(__nb, __nbuf, _LIBCPP_GET_C_LOCALE, __fmt, - (int)__iob.precision(), __v); -#else - __nc = __snprintf_l(__nb, __nbuf, _LIBCPP_GET_C_LOCALE, __fmt, - (int)__iob.precision(), __v); -#endif - else -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - __nc = snprintf_l(__nb, __nbuf, _LIBCPP_GET_C_LOCALE, __fmt, __v); -#else - __nc = __snprintf_l(__nb, __nbuf, _LIBCPP_GET_C_LOCALE, __fmt, __v); -#endif - unique_ptr __nbh(0, free); - if (__nc > static_cast(__nbuf-1)) - { - if (__specify_precision) -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - __nc = asprintf_l(&__nb, _LIBCPP_GET_C_LOCALE, __fmt, (int)__iob.precision(), __v); -#else - __nc = __asprintf_l(&__nb, _LIBCPP_GET_C_LOCALE, __fmt, (int)__iob.precision(), __v); -#endif - else -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - __nc = asprintf_l(&__nb, _LIBCPP_GET_C_LOCALE, __fmt, __v); -#else - __nc = __asprintf_l(&__nb, _LIBCPP_GET_C_LOCALE, __fmt, __v); -#endif - if (__nb == 0) - __throw_bad_alloc(); - __nbh.reset(__nb); - } - char* __ne = __nb + __nc; - char* __np = this->__identify_padding(__nb, __ne, __iob); - // Stage 2 - Widen __nar while adding thousands separators - char_type __o[2*(__nbuf-1) - 1]; - char_type* __ob = __o; - unique_ptr __obh(0, free); - if (__nb != __nar) - { - __ob = (char_type*)malloc(2*static_cast(__nc)*sizeof(char_type)); - if (__ob == 0) - __throw_bad_alloc(); - __obh.reset(__ob); - } - char_type* __op; // pad here - char_type* __oe; // end of output - this->__widen_and_group_float(__nb, __np, __ne, __ob, __op, __oe, __iob.getloc()); - // [__o, __oe) contains thousands_sep'd wide number - // Stage 3 & 4 - __s = __pad_and_output(__s, __ob, __op, __oe, __iob, __fl); - return __s; -} - -template -_OutputIterator -num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob, - char_type __fl, const void* __v) const -{ - // Stage 1 - Get pointer in narrow char - char __fmt[6] = "%p"; - const unsigned __nbuf = 20; - char __nar[__nbuf]; -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - int __nc = snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v); -#else - int __nc = __snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v); -#endif - char* __ne = __nar + __nc; - char* __np = this->__identify_padding(__nar, __ne, __iob); - // Stage 2 - Widen __nar - char_type __o[2*(__nbuf-1) - 1]; - char_type* __op; // pad here - char_type* __oe; // end of output - const ctype& __ct = use_facet >(__iob.getloc()); - __ct.widen(__nar, __ne, __o); - __oe = __o + (__ne - __nar); - if (__np == __ne) - __op = __oe; - else - __op = __o + (__np - __nar); - // [__o, __oe) contains wide number - // Stage 3 & 4 - return __pad_and_output(__s, __o, __op, __oe, __iob, __fl); -} - -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS num_put) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS num_put) - -template -_LIBCPP_HIDDEN -int -__get_up_to_n_digits(_InputIterator& __b, _InputIterator __e, - ios_base::iostate& __err, const ctype<_CharT>& __ct, int __n) -{ - // Precondition: __n >= 1 - if (__b == __e) - { - __err |= ios_base::eofbit | ios_base::failbit; - return 0; - } - // get first digit - _CharT __c = *__b; - if (!__ct.is(ctype_base::digit, __c)) - { - __err |= ios_base::failbit; - return 0; - } - int __r = __ct.narrow(__c, 0) - '0'; - for (++__b, (void) --__n; __b != __e && __n > 0; ++__b, (void) --__n) - { - // get next digit - __c = *__b; - if (!__ct.is(ctype_base::digit, __c)) - return __r; - __r = __r * 10 + __ct.narrow(__c, 0) - '0'; - } - if (__b == __e) - __err |= ios_base::eofbit; - return __r; -} - -class _LIBCPP_TYPE_VIS time_base -{ -public: - enum dateorder {no_order, dmy, mdy, ymd, ydm}; -}; - -template -class _LIBCPP_TYPE_VIS_ONLY __time_get_c_storage -{ -protected: - typedef basic_string<_CharT> string_type; - - virtual const string_type* __weeks() const; - virtual const string_type* __months() const; - virtual const string_type* __am_pm() const; - virtual const string_type& __c() const; - virtual const string_type& __r() const; - virtual const string_type& __x() const; - virtual const string_type& __X() const; - - _LIBCPP_ALWAYS_INLINE - ~__time_get_c_storage() {} -}; - -template > -class _LIBCPP_TYPE_VIS_ONLY time_get - : public locale::facet, - public time_base, - private __time_get_c_storage<_CharT> -{ -public: - typedef _CharT char_type; - typedef _InputIterator iter_type; - typedef time_base::dateorder dateorder; - typedef basic_string string_type; - - _LIBCPP_ALWAYS_INLINE - explicit time_get(size_t __refs = 0) - : locale::facet(__refs) {} - - _LIBCPP_ALWAYS_INLINE - dateorder date_order() const - { - return this->do_date_order(); - } - - _LIBCPP_ALWAYS_INLINE - iter_type get_time(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, tm* __tm) const - { - return do_get_time(__b, __e, __iob, __err, __tm); - } - - _LIBCPP_ALWAYS_INLINE - iter_type get_date(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, tm* __tm) const - { - return do_get_date(__b, __e, __iob, __err, __tm); - } - - _LIBCPP_ALWAYS_INLINE - iter_type get_weekday(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, tm* __tm) const - { - return do_get_weekday(__b, __e, __iob, __err, __tm); - } - - _LIBCPP_ALWAYS_INLINE - iter_type get_monthname(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, tm* __tm) const - { - return do_get_monthname(__b, __e, __iob, __err, __tm); - } - - _LIBCPP_ALWAYS_INLINE - iter_type get_year(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, tm* __tm) const - { - return do_get_year(__b, __e, __iob, __err, __tm); - } - - _LIBCPP_ALWAYS_INLINE - iter_type get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, tm *__tm, - char __fmt, char __mod = 0) const - { - return do_get(__b, __e, __iob, __err, __tm, __fmt, __mod); - } - - iter_type get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, tm* __tm, - const char_type* __fmtb, const char_type* __fmte) const; - - static locale::id id; - -protected: - _LIBCPP_ALWAYS_INLINE - ~time_get() {} - - virtual dateorder do_date_order() const; - virtual iter_type do_get_time(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, tm* __tm) const; - virtual iter_type do_get_date(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, tm* __tm) const; - virtual iter_type do_get_weekday(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, tm* __tm) const; - virtual iter_type do_get_monthname(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, tm* __tm) const; - virtual iter_type do_get_year(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, tm* __tm) const; - virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, - ios_base::iostate& __err, tm* __tm, - char __fmt, char __mod) const; -private: - void __get_white_space(iter_type& __b, iter_type __e, - ios_base::iostate& __err, const ctype& __ct) const; - void __get_percent(iter_type& __b, iter_type __e, ios_base::iostate& __err, - const ctype& __ct) const; - - void __get_weekdayname(int& __m, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const; - void __get_monthname(int& __m, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const; - void __get_day(int& __d, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const; - void __get_month(int& __m, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const; - void __get_year(int& __y, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const; - void __get_year4(int& __y, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const; - void __get_hour(int& __d, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const; - void __get_12_hour(int& __h, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const; - void __get_am_pm(int& __h, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const; - void __get_minute(int& __m, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const; - void __get_second(int& __s, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const; - void __get_weekday(int& __w, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const; - void __get_day_year_num(int& __w, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const; -}; - -template -locale::id -time_get<_CharT, _InputIterator>::id; - -// time_get primitives - -template -void -time_get<_CharT, _InputIterator>::__get_weekdayname(int& __w, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const -{ - // Note: ignoring case comes from the POSIX strptime spec - const string_type* __wk = this->__weeks(); - ptrdiff_t __i = __scan_keyword(__b, __e, __wk, __wk+14, __ct, __err, false) - __wk; - if (__i < 14) - __w = __i % 7; -} - -template -void -time_get<_CharT, _InputIterator>::__get_monthname(int& __m, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const -{ - // Note: ignoring case comes from the POSIX strptime spec - const string_type* __month = this->__months(); - ptrdiff_t __i = __scan_keyword(__b, __e, __month, __month+24, __ct, __err, false) - __month; - if (__i < 24) - __m = __i % 12; -} - -template -void -time_get<_CharT, _InputIterator>::__get_day(int& __d, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const -{ - int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2); - if (!(__err & ios_base::failbit) && 1 <= __t && __t <= 31) - __d = __t; - else - __err |= ios_base::failbit; -} - -template -void -time_get<_CharT, _InputIterator>::__get_month(int& __m, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const -{ - int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2) - 1; - if (!(__err & ios_base::failbit) && __t <= 11) - __m = __t; - else - __err |= ios_base::failbit; -} - -template -void -time_get<_CharT, _InputIterator>::__get_year(int& __y, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const -{ - int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 4); - if (!(__err & ios_base::failbit)) - { - if (__t < 69) - __t += 2000; - else if (69 <= __t && __t <= 99) - __t += 1900; - __y = __t - 1900; - } -} - -template -void -time_get<_CharT, _InputIterator>::__get_year4(int& __y, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const -{ - int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 4); - if (!(__err & ios_base::failbit)) - __y = __t - 1900; -} - -template -void -time_get<_CharT, _InputIterator>::__get_hour(int& __h, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const -{ - int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2); - if (!(__err & ios_base::failbit) && __t <= 23) - __h = __t; - else - __err |= ios_base::failbit; -} - -template -void -time_get<_CharT, _InputIterator>::__get_12_hour(int& __h, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const -{ - int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2); - if (!(__err & ios_base::failbit) && 1 <= __t && __t <= 12) - __h = __t; - else - __err |= ios_base::failbit; -} - -template -void -time_get<_CharT, _InputIterator>::__get_minute(int& __m, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const -{ - int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2); - if (!(__err & ios_base::failbit) && __t <= 59) - __m = __t; - else - __err |= ios_base::failbit; -} - -template -void -time_get<_CharT, _InputIterator>::__get_second(int& __s, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const -{ - int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2); - if (!(__err & ios_base::failbit) && __t <= 60) - __s = __t; - else - __err |= ios_base::failbit; -} - -template -void -time_get<_CharT, _InputIterator>::__get_weekday(int& __w, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const -{ - int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 1); - if (!(__err & ios_base::failbit) && __t <= 6) - __w = __t; - else - __err |= ios_base::failbit; -} - -template -void -time_get<_CharT, _InputIterator>::__get_day_year_num(int& __d, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const -{ - int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 3); - if (!(__err & ios_base::failbit) && __t <= 365) - __d = __t; - else - __err |= ios_base::failbit; -} - -template -void -time_get<_CharT, _InputIterator>::__get_white_space(iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const -{ - for (; __b != __e && __ct.is(ctype_base::space, *__b); ++__b) - ; - if (__b == __e) - __err |= ios_base::eofbit; -} - -template -void -time_get<_CharT, _InputIterator>::__get_am_pm(int& __h, - iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const -{ - const string_type* __ap = this->__am_pm(); - if (__ap[0].size() + __ap[1].size() == 0) - { - __err |= ios_base::failbit; - return; - } - ptrdiff_t __i = __scan_keyword(__b, __e, __ap, __ap+2, __ct, __err, false) - __ap; - if (__i == 0 && __h == 12) - __h = 0; - else if (__i == 1 && __h < 12) - __h += 12; -} - -template -void -time_get<_CharT, _InputIterator>::__get_percent(iter_type& __b, iter_type __e, - ios_base::iostate& __err, - const ctype& __ct) const -{ - if (__b == __e) - { - __err |= ios_base::eofbit | ios_base::failbit; - return; - } - if (__ct.narrow(*__b, 0) != '%') - __err |= ios_base::failbit; - else if(++__b == __e) - __err |= ios_base::eofbit; -} - -// time_get end primitives - -template -_InputIterator -time_get<_CharT, _InputIterator>::get(iter_type __b, iter_type __e, - ios_base& __iob, - ios_base::iostate& __err, tm* __tm, - const char_type* __fmtb, const char_type* __fmte) const -{ - const ctype& __ct = use_facet >(__iob.getloc()); - __err = ios_base::goodbit; - while (__fmtb != __fmte && __err == ios_base::goodbit) - { - if (__b == __e) - { - __err = ios_base::failbit; - break; - } - if (__ct.narrow(*__fmtb, 0) == '%') - { - if (++__fmtb == __fmte) - { - __err = ios_base::failbit; - break; - } - char __cmd = __ct.narrow(*__fmtb, 0); - char __opt = '\0'; - if (__cmd == 'E' || __cmd == '0') - { - if (++__fmtb == __fmte) - { - __err = ios_base::failbit; - break; - } - __opt = __cmd; - __cmd = __ct.narrow(*__fmtb, 0); - } - __b = do_get(__b, __e, __iob, __err, __tm, __cmd, __opt); - ++__fmtb; - } - else if (__ct.is(ctype_base::space, *__fmtb)) - { - for (++__fmtb; __fmtb != __fmte && __ct.is(ctype_base::space, *__fmtb); ++__fmtb) - ; - for ( ; __b != __e && __ct.is(ctype_base::space, *__b); ++__b) - ; - } - else if (__ct.toupper(*__b) == __ct.toupper(*__fmtb)) - { - ++__b; - ++__fmtb; - } - else - __err = ios_base::failbit; - } - if (__b == __e) - __err |= ios_base::eofbit; - return __b; -} - -template -typename time_get<_CharT, _InputIterator>::dateorder -time_get<_CharT, _InputIterator>::do_date_order() const -{ - return mdy; -} - -template -_InputIterator -time_get<_CharT, _InputIterator>::do_get_time(iter_type __b, iter_type __e, - ios_base& __iob, - ios_base::iostate& __err, - tm* __tm) const -{ - const char_type __fmt[] = {'%', 'H', ':', '%', 'M', ':', '%', 'S'}; - return get(__b, __e, __iob, __err, __tm, __fmt, __fmt + sizeof(__fmt)/sizeof(__fmt[0])); -} - -template -_InputIterator -time_get<_CharT, _InputIterator>::do_get_date(iter_type __b, iter_type __e, - ios_base& __iob, - ios_base::iostate& __err, - tm* __tm) const -{ - const string_type& __fmt = this->__x(); - return get(__b, __e, __iob, __err, __tm, __fmt.data(), __fmt.data() + __fmt.size()); -} - -template -_InputIterator -time_get<_CharT, _InputIterator>::do_get_weekday(iter_type __b, iter_type __e, - ios_base& __iob, - ios_base::iostate& __err, - tm* __tm) const -{ - const ctype& __ct = use_facet >(__iob.getloc()); - __get_weekdayname(__tm->tm_wday, __b, __e, __err, __ct); - return __b; -} - -template -_InputIterator -time_get<_CharT, _InputIterator>::do_get_monthname(iter_type __b, iter_type __e, - ios_base& __iob, - ios_base::iostate& __err, - tm* __tm) const -{ - const ctype& __ct = use_facet >(__iob.getloc()); - __get_monthname(__tm->tm_mon, __b, __e, __err, __ct); - return __b; -} - -template -_InputIterator -time_get<_CharT, _InputIterator>::do_get_year(iter_type __b, iter_type __e, - ios_base& __iob, - ios_base::iostate& __err, - tm* __tm) const -{ - const ctype& __ct = use_facet >(__iob.getloc()); - __get_year(__tm->tm_year, __b, __e, __err, __ct); - return __b; -} - -template -_InputIterator -time_get<_CharT, _InputIterator>::do_get(iter_type __b, iter_type __e, - ios_base& __iob, - ios_base::iostate& __err, tm* __tm, - char __fmt, char) const -{ - __err = ios_base::goodbit; - const ctype& __ct = use_facet >(__iob.getloc()); - switch (__fmt) - { - case 'a': - case 'A': - __get_weekdayname(__tm->tm_wday, __b, __e, __err, __ct); - break; - case 'b': - case 'B': - case 'h': - __get_monthname(__tm->tm_mon, __b, __e, __err, __ct); - break; - case 'c': - { - const string_type& __fm = this->__c(); - __b = get(__b, __e, __iob, __err, __tm, __fm.data(), __fm.data() + __fm.size()); - } - break; - case 'd': - case 'e': - __get_day(__tm->tm_mday, __b, __e, __err, __ct); - break; - case 'D': - { - const char_type __fm[] = {'%', 'm', '/', '%', 'd', '/', '%', 'y'}; - __b = get(__b, __e, __iob, __err, __tm, __fm, __fm + sizeof(__fm)/sizeof(__fm[0])); - } - break; - case 'F': - { - const char_type __fm[] = {'%', 'Y', '-', '%', 'm', '-', '%', 'd'}; - __b = get(__b, __e, __iob, __err, __tm, __fm, __fm + sizeof(__fm)/sizeof(__fm[0])); - } - break; - case 'H': - __get_hour(__tm->tm_hour, __b, __e, __err, __ct); - break; - case 'I': - __get_12_hour(__tm->tm_hour, __b, __e, __err, __ct); - break; - case 'j': - __get_day_year_num(__tm->tm_yday, __b, __e, __err, __ct); - break; - case 'm': - __get_month(__tm->tm_mon, __b, __e, __err, __ct); - break; - case 'M': - __get_minute(__tm->tm_min, __b, __e, __err, __ct); - break; - case 'n': - case 't': - __get_white_space(__b, __e, __err, __ct); - break; - case 'p': - __get_am_pm(__tm->tm_hour, __b, __e, __err, __ct); - break; - case 'r': - { - const char_type __fm[] = {'%', 'I', ':', '%', 'M', ':', '%', 'S', ' ', '%', 'p'}; - __b = get(__b, __e, __iob, __err, __tm, __fm, __fm + sizeof(__fm)/sizeof(__fm[0])); - } - break; - case 'R': - { - const char_type __fm[] = {'%', 'H', ':', '%', 'M'}; - __b = get(__b, __e, __iob, __err, __tm, __fm, __fm + sizeof(__fm)/sizeof(__fm[0])); - } - break; - case 'S': - __get_second(__tm->tm_sec, __b, __e, __err, __ct); - break; - case 'T': - { - const char_type __fm[] = {'%', 'H', ':', '%', 'M', ':', '%', 'S'}; - __b = get(__b, __e, __iob, __err, __tm, __fm, __fm + sizeof(__fm)/sizeof(__fm[0])); - } - break; - case 'w': - __get_weekday(__tm->tm_wday, __b, __e, __err, __ct); - break; - case 'x': - return do_get_date(__b, __e, __iob, __err, __tm); - case 'X': - { - const string_type& __fm = this->__X(); - __b = get(__b, __e, __iob, __err, __tm, __fm.data(), __fm.data() + __fm.size()); - } - break; - case 'y': - __get_year(__tm->tm_year, __b, __e, __err, __ct); - break; - case 'Y': - __get_year4(__tm->tm_year, __b, __e, __err, __ct); - break; - case '%': - __get_percent(__b, __e, __err, __ct); - break; - default: - __err |= ios_base::failbit; - } - return __b; -} - -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS time_get) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS time_get) - -class _LIBCPP_TYPE_VIS __time_get -{ -protected: - locale_t __loc_; - - __time_get(const char* __nm); - __time_get(const string& __nm); - ~__time_get(); -}; - -template -class _LIBCPP_TYPE_VIS_ONLY __time_get_storage - : public __time_get -{ -protected: - typedef basic_string<_CharT> string_type; - - string_type __weeks_[14]; - string_type __months_[24]; - string_type __am_pm_[2]; - string_type __c_; - string_type __r_; - string_type __x_; - string_type __X_; - - explicit __time_get_storage(const char* __nm); - explicit __time_get_storage(const string& __nm); - - _LIBCPP_ALWAYS_INLINE ~__time_get_storage() {} - - time_base::dateorder __do_date_order() const; - -private: - void init(const ctype<_CharT>&); - string_type __analyze(char __fmt, const ctype<_CharT>&); -}; - -template > -class _LIBCPP_TYPE_VIS_ONLY time_get_byname - : public time_get<_CharT, _InputIterator>, - private __time_get_storage<_CharT> -{ -public: - typedef time_base::dateorder dateorder; - typedef _InputIterator iter_type; - typedef _CharT char_type; - typedef basic_string string_type; - - _LIBCPP_INLINE_VISIBILITY - explicit time_get_byname(const char* __nm, size_t __refs = 0) - : time_get<_CharT, _InputIterator>(__refs), - __time_get_storage<_CharT>(__nm) {} - _LIBCPP_INLINE_VISIBILITY - explicit time_get_byname(const string& __nm, size_t __refs = 0) - : time_get<_CharT, _InputIterator>(__refs), - __time_get_storage<_CharT>(__nm) {} - -protected: - _LIBCPP_INLINE_VISIBILITY - ~time_get_byname() {} - - _LIBCPP_INLINE_VISIBILITY - virtual dateorder do_date_order() const {return this->__do_date_order();} -private: - _LIBCPP_INLINE_VISIBILITY - virtual const string_type* __weeks() const {return this->__weeks_;} - _LIBCPP_INLINE_VISIBILITY - virtual const string_type* __months() const {return this->__months_;} - _LIBCPP_INLINE_VISIBILITY - virtual const string_type* __am_pm() const {return this->__am_pm_;} - _LIBCPP_INLINE_VISIBILITY - virtual const string_type& __c() const {return this->__c_;} - _LIBCPP_INLINE_VISIBILITY - virtual const string_type& __r() const {return this->__r_;} - _LIBCPP_INLINE_VISIBILITY - virtual const string_type& __x() const {return this->__x_;} - _LIBCPP_INLINE_VISIBILITY - virtual const string_type& __X() const {return this->__X_;} -}; - -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS time_get_byname) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS time_get_byname) - -class _LIBCPP_TYPE_VIS __time_put -{ - locale_t __loc_; -protected: - _LIBCPP_ALWAYS_INLINE __time_put() : __loc_(_LIBCPP_GET_C_LOCALE) {} - __time_put(const char* __nm); - __time_put(const string& __nm); - ~__time_put(); - void __do_put(char* __nb, char*& __ne, const tm* __tm, - char __fmt, char __mod) const; - void __do_put(wchar_t* __wb, wchar_t*& __we, const tm* __tm, - char __fmt, char __mod) const; -}; - -template > -class _LIBCPP_TYPE_VIS_ONLY time_put - : public locale::facet, - private __time_put -{ -public: - typedef _CharT char_type; - typedef _OutputIterator iter_type; - - _LIBCPP_ALWAYS_INLINE - explicit time_put(size_t __refs = 0) - : locale::facet(__refs) {} - - iter_type put(iter_type __s, ios_base& __iob, char_type __fl, const tm* __tm, - const char_type* __pb, const char_type* __pe) const; - - _LIBCPP_ALWAYS_INLINE - iter_type put(iter_type __s, ios_base& __iob, char_type __fl, - const tm* __tm, char __fmt, char __mod = 0) const - { - return do_put(__s, __iob, __fl, __tm, __fmt, __mod); - } - - static locale::id id; - -protected: - _LIBCPP_ALWAYS_INLINE - ~time_put() {} - virtual iter_type do_put(iter_type __s, ios_base&, char_type, const tm* __tm, - char __fmt, char __mod) const; - - _LIBCPP_ALWAYS_INLINE - explicit time_put(const char* __nm, size_t __refs) - : locale::facet(__refs), - __time_put(__nm) {} - _LIBCPP_ALWAYS_INLINE - explicit time_put(const string& __nm, size_t __refs) - : locale::facet(__refs), - __time_put(__nm) {} -}; - -template -locale::id -time_put<_CharT, _OutputIterator>::id; - -template -_OutputIterator -time_put<_CharT, _OutputIterator>::put(iter_type __s, ios_base& __iob, - char_type __fl, const tm* __tm, - const char_type* __pb, - const char_type* __pe) const -{ - const ctype& __ct = use_facet >(__iob.getloc()); - for (; __pb != __pe; ++__pb) - { - if (__ct.narrow(*__pb, 0) == '%') - { - if (++__pb == __pe) - { - *__s++ = __pb[-1]; - break; - } - char __mod = 0; - char __fmt = __ct.narrow(*__pb, 0); - if (__fmt == 'E' || __fmt == 'O') - { - if (++__pb == __pe) - { - *__s++ = __pb[-2]; - *__s++ = __pb[-1]; - break; - } - __mod = __fmt; - __fmt = __ct.narrow(*__pb, 0); - } - __s = do_put(__s, __iob, __fl, __tm, __fmt, __mod); - } - else - *__s++ = *__pb; - } - return __s; -} - -template -_OutputIterator -time_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base&, - char_type, const tm* __tm, - char __fmt, char __mod) const -{ - char_type __nar[100]; - char_type* __nb = __nar; - char_type* __ne = __nb + 100; - __do_put(__nb, __ne, __tm, __fmt, __mod); - return _VSTD::copy(__nb, __ne, __s); -} - -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS time_put) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS time_put) - -template > -class _LIBCPP_TYPE_VIS_ONLY time_put_byname - : public time_put<_CharT, _OutputIterator> -{ -public: - _LIBCPP_ALWAYS_INLINE - explicit time_put_byname(const char* __nm, size_t __refs = 0) - : time_put<_CharT, _OutputIterator>(__nm, __refs) {} - - _LIBCPP_ALWAYS_INLINE - explicit time_put_byname(const string& __nm, size_t __refs = 0) - : time_put<_CharT, _OutputIterator>(__nm, __refs) {} - -protected: - _LIBCPP_ALWAYS_INLINE - ~time_put_byname() {} -}; - -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS time_put_byname) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS time_put_byname) - -// money_base - -class _LIBCPP_TYPE_VIS money_base -{ -public: - enum part {none, space, symbol, sign, value}; - struct pattern {char field[4];}; - - _LIBCPP_ALWAYS_INLINE money_base() {} -}; - -// moneypunct - -template -class _LIBCPP_TYPE_VIS_ONLY moneypunct - : public locale::facet, - public money_base -{ -public: - typedef _CharT char_type; - typedef basic_string string_type; - - _LIBCPP_ALWAYS_INLINE - explicit moneypunct(size_t __refs = 0) - : locale::facet(__refs) {} - - _LIBCPP_ALWAYS_INLINE char_type decimal_point() const {return do_decimal_point();} - _LIBCPP_ALWAYS_INLINE char_type thousands_sep() const {return do_thousands_sep();} - _LIBCPP_ALWAYS_INLINE string grouping() const {return do_grouping();} - _LIBCPP_ALWAYS_INLINE string_type curr_symbol() const {return do_curr_symbol();} - _LIBCPP_ALWAYS_INLINE string_type positive_sign() const {return do_positive_sign();} - _LIBCPP_ALWAYS_INLINE string_type negative_sign() const {return do_negative_sign();} - _LIBCPP_ALWAYS_INLINE int frac_digits() const {return do_frac_digits();} - _LIBCPP_ALWAYS_INLINE pattern pos_format() const {return do_pos_format();} - _LIBCPP_ALWAYS_INLINE pattern neg_format() const {return do_neg_format();} - - static locale::id id; - static const bool intl = _International; - -protected: - _LIBCPP_ALWAYS_INLINE - ~moneypunct() {} - - virtual char_type do_decimal_point() const {return numeric_limits::max();} - virtual char_type do_thousands_sep() const {return numeric_limits::max();} - virtual string do_grouping() const {return string();} - virtual string_type do_curr_symbol() const {return string_type();} - virtual string_type do_positive_sign() const {return string_type();} - virtual string_type do_negative_sign() const {return string_type(1, '-');} - virtual int do_frac_digits() const {return 0;} - virtual pattern do_pos_format() const - {pattern __p = {{symbol, sign, none, value}}; return __p;} - virtual pattern do_neg_format() const - {pattern __p = {{symbol, sign, none, value}}; return __p;} -}; - -template -locale::id -moneypunct<_CharT, _International>::id; - -template -const bool -moneypunct<_CharT, _International>::intl; - -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS moneypunct) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS moneypunct) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS moneypunct) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS moneypunct) - -// moneypunct_byname - -template -class _LIBCPP_TYPE_VIS_ONLY moneypunct_byname - : public moneypunct<_CharT, _International> -{ -public: - typedef money_base::pattern pattern; - typedef _CharT char_type; - typedef basic_string string_type; - - _LIBCPP_ALWAYS_INLINE - explicit moneypunct_byname(const char* __nm, size_t __refs = 0) - : moneypunct<_CharT, _International>(__refs) {init(__nm);} - - _LIBCPP_ALWAYS_INLINE - explicit moneypunct_byname(const string& __nm, size_t __refs = 0) - : moneypunct<_CharT, _International>(__refs) {init(__nm.c_str());} - -protected: - _LIBCPP_ALWAYS_INLINE - ~moneypunct_byname() {} - - virtual char_type do_decimal_point() const {return __decimal_point_;} - virtual char_type do_thousands_sep() const {return __thousands_sep_;} - virtual string do_grouping() const {return __grouping_;} - virtual string_type do_curr_symbol() const {return __curr_symbol_;} - virtual string_type do_positive_sign() const {return __positive_sign_;} - virtual string_type do_negative_sign() const {return __negative_sign_;} - virtual int do_frac_digits() const {return __frac_digits_;} - virtual pattern do_pos_format() const {return __pos_format_;} - virtual pattern do_neg_format() const {return __neg_format_;} - -private: - char_type __decimal_point_; - char_type __thousands_sep_; - string __grouping_; - string_type __curr_symbol_; - string_type __positive_sign_; - string_type __negative_sign_; - int __frac_digits_; - pattern __pos_format_; - pattern __neg_format_; - - void init(const char*); -}; - -template<> void moneypunct_byname::init(const char*); -template<> void moneypunct_byname::init(const char*); -template<> void moneypunct_byname::init(const char*); -template<> void moneypunct_byname::init(const char*); - -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS moneypunct_byname) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS moneypunct_byname) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS moneypunct_byname) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS moneypunct_byname) - -// money_get - -template -class __money_get -{ -protected: - typedef _CharT char_type; - typedef basic_string string_type; - - _LIBCPP_ALWAYS_INLINE __money_get() {} - - static void __gather_info(bool __intl, const locale& __loc, - money_base::pattern& __pat, char_type& __dp, - char_type& __ts, string& __grp, - string_type& __sym, string_type& __psn, - string_type& __nsn, int& __fd); -}; - -template -void -__money_get<_CharT>::__gather_info(bool __intl, const locale& __loc, - money_base::pattern& __pat, char_type& __dp, - char_type& __ts, string& __grp, - string_type& __sym, string_type& __psn, - string_type& __nsn, int& __fd) -{ - if (__intl) - { - const moneypunct& __mp = - use_facet >(__loc); - __pat = __mp.neg_format(); - __nsn = __mp.negative_sign(); - __psn = __mp.positive_sign(); - __dp = __mp.decimal_point(); - __ts = __mp.thousands_sep(); - __grp = __mp.grouping(); - __sym = __mp.curr_symbol(); - __fd = __mp.frac_digits(); - } - else - { - const moneypunct& __mp = - use_facet >(__loc); - __pat = __mp.neg_format(); - __nsn = __mp.negative_sign(); - __psn = __mp.positive_sign(); - __dp = __mp.decimal_point(); - __ts = __mp.thousands_sep(); - __grp = __mp.grouping(); - __sym = __mp.curr_symbol(); - __fd = __mp.frac_digits(); - } -} - -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS __money_get) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS __money_get) - -template > -class _LIBCPP_TYPE_VIS_ONLY money_get - : public locale::facet, - private __money_get<_CharT> -{ -public: - typedef _CharT char_type; - typedef _InputIterator iter_type; - typedef basic_string string_type; - - _LIBCPP_ALWAYS_INLINE - explicit money_get(size_t __refs = 0) - : locale::facet(__refs) {} - - _LIBCPP_ALWAYS_INLINE - iter_type get(iter_type __b, iter_type __e, bool __intl, ios_base& __iob, - ios_base::iostate& __err, long double& __v) const - { - return do_get(__b, __e, __intl, __iob, __err, __v); - } - - _LIBCPP_ALWAYS_INLINE - iter_type get(iter_type __b, iter_type __e, bool __intl, ios_base& __iob, - ios_base::iostate& __err, string_type& __v) const - { - return do_get(__b, __e, __intl, __iob, __err, __v); - } - - static locale::id id; - -protected: - - _LIBCPP_ALWAYS_INLINE - ~money_get() {} - - virtual iter_type do_get(iter_type __b, iter_type __e, bool __intl, - ios_base& __iob, ios_base::iostate& __err, - long double& __v) const; - virtual iter_type do_get(iter_type __b, iter_type __e, bool __intl, - ios_base& __iob, ios_base::iostate& __err, - string_type& __v) const; - -private: - static bool __do_get(iter_type& __b, iter_type __e, - bool __intl, const locale& __loc, - ios_base::fmtflags __flags, ios_base::iostate& __err, - bool& __neg, const ctype& __ct, - unique_ptr& __wb, - char_type*& __wn, char_type* __we); -}; - -template -locale::id -money_get<_CharT, _InputIterator>::id; - -_LIBCPP_FUNC_VIS void __do_nothing(void*); - -template -_LIBCPP_HIDDEN -void -__double_or_nothing(unique_ptr<_Tp, void(*)(void*)>& __b, _Tp*& __n, _Tp*& __e) -{ - bool __owns = __b.get_deleter() != __do_nothing; - size_t __cur_cap = static_cast(__e-__b.get()) * sizeof(_Tp); - size_t __new_cap = __cur_cap < numeric_limits::max() / 2 ? - 2 * __cur_cap : numeric_limits::max(); - if (__new_cap == 0) - __new_cap = sizeof(_Tp); - size_t __n_off = static_cast(__n - __b.get()); - _Tp* __t = (_Tp*)realloc(__owns ? __b.get() : 0, __new_cap); - if (__t == 0) - __throw_bad_alloc(); - if (__owns) - __b.release(); - __b = unique_ptr<_Tp, void(*)(void*)>(__t, free); - __new_cap /= sizeof(_Tp); - __n = __b.get() + __n_off; - __e = __b.get() + __new_cap; -} - -// true == success -template -bool -money_get<_CharT, _InputIterator>::__do_get(iter_type& __b, iter_type __e, - bool __intl, const locale& __loc, - ios_base::fmtflags __flags, - ios_base::iostate& __err, - bool& __neg, - const ctype& __ct, - unique_ptr& __wb, - char_type*& __wn, char_type* __we) -{ - const unsigned __bz = 100; - unsigned __gbuf[__bz]; - unique_ptr __gb(__gbuf, __do_nothing); - unsigned* __gn = __gb.get(); - unsigned* __ge = __gn + __bz; - money_base::pattern __pat; - char_type __dp; - char_type __ts; - string __grp; - string_type __sym; - string_type __psn; - string_type __nsn; - // Capture the spaces read into money_base::{space,none} so they - // can be compared to initial spaces in __sym. - string_type __spaces; - int __fd; - __money_get<_CharT>::__gather_info(__intl, __loc, __pat, __dp, __ts, __grp, - __sym, __psn, __nsn, __fd); - const string_type* __trailing_sign = 0; - __wn = __wb.get(); - for (unsigned __p = 0; __p < 4 && __b != __e; ++__p) - { - switch (__pat.field[__p]) - { - case money_base::space: - if (__p != 3) - { - if (__ct.is(ctype_base::space, *__b)) - __spaces.push_back(*__b++); - else - { - __err |= ios_base::failbit; - return false; - } - } - // drop through - case money_base::none: - if (__p != 3) - { - while (__b != __e && __ct.is(ctype_base::space, *__b)) - __spaces.push_back(*__b++); - } - break; - case money_base::sign: - if (__psn.size() + __nsn.size() > 0) - { - if (__psn.size() == 0 || __nsn.size() == 0) - { // sign is optional - if (__psn.size() > 0) - { // __nsn.size() == 0 - if (*__b == __psn[0]) - { - ++__b; - if (__psn.size() > 1) - __trailing_sign = &__psn; - } - else - __neg = true; - } - else if (*__b == __nsn[0]) // __nsn.size() > 0 && __psn.size() == 0 - { - ++__b; - __neg = true; - if (__nsn.size() > 1) - __trailing_sign = &__nsn; - } - } - else // sign is required - { - if (*__b == __psn[0]) - { - ++__b; - if (__psn.size() > 1) - __trailing_sign = &__psn; - } - else if (*__b == __nsn[0]) - { - ++__b; - __neg = true; - if (__nsn.size() > 1) - __trailing_sign = &__nsn; - } - else - { - __err |= ios_base::failbit; - return false; - } - } - } - break; - case money_base::symbol: - { - bool __more_needed = __trailing_sign || - (__p < 2) || - (__p == 2 && __pat.field[3] != static_cast(money_base::none)); - bool __sb = (__flags & ios_base::showbase) != 0; - if (__sb || __more_needed) - { - typename string_type::const_iterator __sym_space_end = __sym.begin(); - if (__p > 0 && (__pat.field[__p - 1] == money_base::none || - __pat.field[__p - 1] == money_base::space)) { - // Match spaces we've already read against spaces at - // the beginning of __sym. - while (__sym_space_end != __sym.end() && - __ct.is(ctype_base::space, *__sym_space_end)) - ++__sym_space_end; - const size_t __num_spaces = __sym_space_end - __sym.begin(); - if (__num_spaces > __spaces.size() || - !equal(__spaces.end() - __num_spaces, __spaces.end(), - __sym.begin())) { - // No match. Put __sym_space_end back at the - // beginning of __sym, which will prevent a - // match in the next loop. - __sym_space_end = __sym.begin(); - } - } - typename string_type::const_iterator __sym_curr_char = __sym_space_end; - while (__sym_curr_char != __sym.end() && __b != __e && - *__b == *__sym_curr_char) { - ++__b; - ++__sym_curr_char; - } - if (__sb && __sym_curr_char != __sym.end()) - { - __err |= ios_base::failbit; - return false; - } - } - } - break; - case money_base::value: - { - unsigned __ng = 0; - for (; __b != __e; ++__b) - { - char_type __c = *__b; - if (__ct.is(ctype_base::digit, __c)) - { - if (__wn == __we) - __double_or_nothing(__wb, __wn, __we); - *__wn++ = __c; - ++__ng; - } - else if (__grp.size() > 0 && __ng > 0 && __c == __ts) - { - if (__gn == __ge) - __double_or_nothing(__gb, __gn, __ge); - *__gn++ = __ng; - __ng = 0; - } - else - break; - } - if (__gb.get() != __gn && __ng > 0) - { - if (__gn == __ge) - __double_or_nothing(__gb, __gn, __ge); - *__gn++ = __ng; - } - if (__fd > 0) - { - if (__b == __e || *__b != __dp) - { - __err |= ios_base::failbit; - return false; - } - for (++__b; __fd > 0; --__fd, ++__b) - { - if (__b == __e || !__ct.is(ctype_base::digit, *__b)) - { - __err |= ios_base::failbit; - return false; - } - if (__wn == __we) - __double_or_nothing(__wb, __wn, __we); - *__wn++ = *__b; - } - } - if (__wn == __wb.get()) - { - __err |= ios_base::failbit; - return false; - } - } - break; - } - } - if (__trailing_sign) - { - for (unsigned __i = 1; __i < __trailing_sign->size(); ++__i, ++__b) - { - if (__b == __e || *__b != (*__trailing_sign)[__i]) - { - __err |= ios_base::failbit; - return false; - } - } - } - if (__gb.get() != __gn) - { - ios_base::iostate __et = ios_base::goodbit; - __check_grouping(__grp, __gb.get(), __gn, __et); - if (__et) - { - __err |= ios_base::failbit; - return false; - } - } - return true; -} - -template -_InputIterator -money_get<_CharT, _InputIterator>::do_get(iter_type __b, iter_type __e, - bool __intl, ios_base& __iob, - ios_base::iostate& __err, - long double& __v) const -{ - const int __bz = 100; - char_type __wbuf[__bz]; - unique_ptr __wb(__wbuf, __do_nothing); - char_type* __wn; - char_type* __we = __wbuf + __bz; - locale __loc = __iob.getloc(); - const ctype& __ct = use_facet >(__loc); - bool __neg = false; - if (__do_get(__b, __e, __intl, __loc, __iob.flags(), __err, __neg, __ct, - __wb, __wn, __we)) - { - const char __src[] = "0123456789"; - char_type __atoms[sizeof(__src)-1]; - __ct.widen(__src, __src + (sizeof(__src)-1), __atoms); - char __nbuf[__bz]; - char* __nc = __nbuf; - unique_ptr __h(0, free); - if (__wn - __wb.get() > __bz-2) - { - __h.reset((char*)malloc(static_cast(__wn - __wb.get() + 2))); - if (__h.get() == 0) - __throw_bad_alloc(); - __nc = __h.get(); - } - if (__neg) - *__nc++ = '-'; - for (const char_type* __w = __wb.get(); __w < __wn; ++__w, ++__nc) - *__nc = __src[find(__atoms, _VSTD::end(__atoms), *__w) - __atoms]; - *__nc = char(); - if (sscanf(__nbuf, "%Lf", &__v) != 1) - __throw_runtime_error("money_get error"); - } - if (__b == __e) - __err |= ios_base::eofbit; - return __b; -} - -template -_InputIterator -money_get<_CharT, _InputIterator>::do_get(iter_type __b, iter_type __e, - bool __intl, ios_base& __iob, - ios_base::iostate& __err, - string_type& __v) const -{ - const int __bz = 100; - char_type __wbuf[__bz]; - unique_ptr __wb(__wbuf, __do_nothing); - char_type* __wn; - char_type* __we = __wbuf + __bz; - locale __loc = __iob.getloc(); - const ctype& __ct = use_facet >(__loc); - bool __neg = false; - if (__do_get(__b, __e, __intl, __loc, __iob.flags(), __err, __neg, __ct, - __wb, __wn, __we)) - { - __v.clear(); - if (__neg) - __v.push_back(__ct.widen('-')); - char_type __z = __ct.widen('0'); - char_type* __w; - for (__w = __wb.get(); __w < __wn-1; ++__w) - if (*__w != __z) - break; - __v.append(__w, __wn); - } - if (__b == __e) - __err |= ios_base::eofbit; - return __b; -} - -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS money_get) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS money_get) - -// money_put - -template -class __money_put -{ -protected: - typedef _CharT char_type; - typedef basic_string string_type; - - _LIBCPP_ALWAYS_INLINE __money_put() {} - - static void __gather_info(bool __intl, bool __neg, const locale& __loc, - money_base::pattern& __pat, char_type& __dp, - char_type& __ts, string& __grp, - string_type& __sym, string_type& __sn, - int& __fd); - static void __format(char_type* __mb, char_type*& __mi, char_type*& __me, - ios_base::fmtflags __flags, - const char_type* __db, const char_type* __de, - const ctype& __ct, bool __neg, - const money_base::pattern& __pat, char_type __dp, - char_type __ts, const string& __grp, - const string_type& __sym, const string_type& __sn, - int __fd); -}; - -template -void -__money_put<_CharT>::__gather_info(bool __intl, bool __neg, const locale& __loc, - money_base::pattern& __pat, char_type& __dp, - char_type& __ts, string& __grp, - string_type& __sym, string_type& __sn, - int& __fd) -{ - if (__intl) - { - const moneypunct& __mp = - use_facet >(__loc); - if (__neg) - { - __pat = __mp.neg_format(); - __sn = __mp.negative_sign(); - } - else - { - __pat = __mp.pos_format(); - __sn = __mp.positive_sign(); - } - __dp = __mp.decimal_point(); - __ts = __mp.thousands_sep(); - __grp = __mp.grouping(); - __sym = __mp.curr_symbol(); - __fd = __mp.frac_digits(); - } - else - { - const moneypunct& __mp = - use_facet >(__loc); - if (__neg) - { - __pat = __mp.neg_format(); - __sn = __mp.negative_sign(); - } - else - { - __pat = __mp.pos_format(); - __sn = __mp.positive_sign(); - } - __dp = __mp.decimal_point(); - __ts = __mp.thousands_sep(); - __grp = __mp.grouping(); - __sym = __mp.curr_symbol(); - __fd = __mp.frac_digits(); - } -} - -template -void -__money_put<_CharT>::__format(char_type* __mb, char_type*& __mi, char_type*& __me, - ios_base::fmtflags __flags, - const char_type* __db, const char_type* __de, - const ctype& __ct, bool __neg, - const money_base::pattern& __pat, char_type __dp, - char_type __ts, const string& __grp, - const string_type& __sym, const string_type& __sn, - int __fd) -{ - __me = __mb; - for (unsigned __p = 0; __p < 4; ++__p) - { - switch (__pat.field[__p]) - { - case money_base::none: - __mi = __me; - break; - case money_base::space: - __mi = __me; - *__me++ = __ct.widen(' '); - break; - case money_base::sign: - if (!__sn.empty()) - *__me++ = __sn[0]; - break; - case money_base::symbol: - if (!__sym.empty() && (__flags & ios_base::showbase)) - __me = _VSTD::copy(__sym.begin(), __sym.end(), __me); - break; - case money_base::value: - { - // remember start of value so we can reverse it - char_type* __t = __me; - // find beginning of digits - if (__neg) - ++__db; - // find end of digits - const char_type* __d; - for (__d = __db; __d < __de; ++__d) - if (!__ct.is(ctype_base::digit, *__d)) - break; - // print fractional part - if (__fd > 0) - { - int __f; - for (__f = __fd; __d > __db && __f > 0; --__f) - *__me++ = *--__d; - char_type __z = __f > 0 ? __ct.widen('0') : char_type(); - for (; __f > 0; --__f) - *__me++ = __z; - *__me++ = __dp; - } - // print units part - if (__d == __db) - { - *__me++ = __ct.widen('0'); - } - else - { - unsigned __ng = 0; - unsigned __ig = 0; - unsigned __gl = __grp.empty() ? numeric_limits::max() - : static_cast(__grp[__ig]); - while (__d != __db) - { - if (__ng == __gl) - { - *__me++ = __ts; - __ng = 0; - if (++__ig < __grp.size()) - __gl = __grp[__ig] == numeric_limits::max() ? - numeric_limits::max() : - static_cast(__grp[__ig]); - } - *__me++ = *--__d; - ++__ng; - } - } - // reverse it - reverse(__t, __me); - } - break; - } - } - // print rest of sign, if any - if (__sn.size() > 1) - __me = _VSTD::copy(__sn.begin()+1, __sn.end(), __me); - // set alignment - if ((__flags & ios_base::adjustfield) == ios_base::left) - __mi = __me; - else if ((__flags & ios_base::adjustfield) != ios_base::internal) - __mi = __mb; -} - -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS __money_put) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS __money_put) - -template > -class _LIBCPP_TYPE_VIS_ONLY money_put - : public locale::facet, - private __money_put<_CharT> -{ -public: - typedef _CharT char_type; - typedef _OutputIterator iter_type; - typedef basic_string string_type; - - _LIBCPP_ALWAYS_INLINE - explicit money_put(size_t __refs = 0) - : locale::facet(__refs) {} - - _LIBCPP_ALWAYS_INLINE - iter_type put(iter_type __s, bool __intl, ios_base& __iob, char_type __fl, - long double __units) const - { - return do_put(__s, __intl, __iob, __fl, __units); - } - - _LIBCPP_ALWAYS_INLINE - iter_type put(iter_type __s, bool __intl, ios_base& __iob, char_type __fl, - const string_type& __digits) const - { - return do_put(__s, __intl, __iob, __fl, __digits); - } - - static locale::id id; - -protected: - _LIBCPP_ALWAYS_INLINE - ~money_put() {} - - virtual iter_type do_put(iter_type __s, bool __intl, ios_base& __iob, - char_type __fl, long double __units) const; - virtual iter_type do_put(iter_type __s, bool __intl, ios_base& __iob, - char_type __fl, const string_type& __digits) const; -}; - -template -locale::id -money_put<_CharT, _OutputIterator>::id; - -template -_OutputIterator -money_put<_CharT, _OutputIterator>::do_put(iter_type __s, bool __intl, - ios_base& __iob, char_type __fl, - long double __units) const -{ - // convert to char - const size_t __bs = 100; - char __buf[__bs]; - char* __bb = __buf; - char_type __digits[__bs]; - char_type* __db = __digits; - size_t __n = static_cast(snprintf(__bb, __bs, "%.0Lf", __units)); - unique_ptr __hn(0, free); - unique_ptr __hd(0, free); - // secure memory for digit storage - if (__n > __bs-1) - { -#ifdef _LIBCPP_LOCALE__L_EXTENSIONS - __n = static_cast(asprintf_l(&__bb, _LIBCPP_GET_C_LOCALE, "%.0Lf", __units)); -#else - __n = __asprintf_l(&__bb, _LIBCPP_GET_C_LOCALE, "%.0Lf", __units); -#endif - if (__bb == 0) - __throw_bad_alloc(); - __hn.reset(__bb); - __hd.reset((char_type*)malloc(__n * sizeof(char_type))); - if (__hd == nullptr) - __throw_bad_alloc(); - __db = __hd.get(); - } - // gather info - locale __loc = __iob.getloc(); - const ctype& __ct = use_facet >(__loc); - __ct.widen(__bb, __bb + __n, __db); - bool __neg = __n > 0 && __bb[0] == '-'; - money_base::pattern __pat; - char_type __dp; - char_type __ts; - string __grp; - string_type __sym; - string_type __sn; - int __fd; - this->__gather_info(__intl, __neg, __loc, __pat, __dp, __ts, __grp, __sym, __sn, __fd); - // secure memory for formatting - char_type __mbuf[__bs]; - char_type* __mb = __mbuf; - unique_ptr __hw(0, free); - size_t __exn = static_cast(__n) > __fd ? - (__n - static_cast(__fd)) * 2 + __sn.size() + - __sym.size() + static_cast(__fd) + 1 - : __sn.size() + __sym.size() + static_cast(__fd) + 2; - if (__exn > __bs) - { - __hw.reset((char_type*)malloc(__exn * sizeof(char_type))); - __mb = __hw.get(); - if (__mb == 0) - __throw_bad_alloc(); - } - // format - char_type* __mi; - char_type* __me; - this->__format(__mb, __mi, __me, __iob.flags(), - __db, __db + __n, __ct, - __neg, __pat, __dp, __ts, __grp, __sym, __sn, __fd); - return __pad_and_output(__s, __mb, __mi, __me, __iob, __fl); -} - -template -_OutputIterator -money_put<_CharT, _OutputIterator>::do_put(iter_type __s, bool __intl, - ios_base& __iob, char_type __fl, - const string_type& __digits) const -{ - // gather info - locale __loc = __iob.getloc(); - const ctype& __ct = use_facet >(__loc); - bool __neg = __digits.size() > 0 && __digits[0] == __ct.widen('-'); - money_base::pattern __pat; - char_type __dp; - char_type __ts; - string __grp; - string_type __sym; - string_type __sn; - int __fd; - this->__gather_info(__intl, __neg, __loc, __pat, __dp, __ts, __grp, __sym, __sn, __fd); - // secure memory for formatting - char_type __mbuf[100]; - char_type* __mb = __mbuf; - unique_ptr __h(0, free); - size_t __exn = static_cast(__digits.size()) > __fd ? - (__digits.size() - static_cast(__fd)) * 2 + - __sn.size() + __sym.size() + static_cast(__fd) + 1 - : __sn.size() + __sym.size() + static_cast(__fd) + 2; - if (__exn > 100) - { - __h.reset((char_type*)malloc(__exn * sizeof(char_type))); - __mb = __h.get(); - if (__mb == 0) - __throw_bad_alloc(); - } - // format - char_type* __mi; - char_type* __me; - this->__format(__mb, __mi, __me, __iob.flags(), - __digits.data(), __digits.data() + __digits.size(), __ct, - __neg, __pat, __dp, __ts, __grp, __sym, __sn, __fd); - return __pad_and_output(__s, __mb, __mi, __me, __iob, __fl); -} - -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS money_put) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS money_put) - -// messages - -class _LIBCPP_TYPE_VIS messages_base -{ -public: - typedef ptrdiff_t catalog; - - _LIBCPP_ALWAYS_INLINE messages_base() {} -}; - -template -class _LIBCPP_TYPE_VIS_ONLY messages - : public locale::facet, - public messages_base -{ -public: - typedef _CharT char_type; - typedef basic_string<_CharT> string_type; - - _LIBCPP_ALWAYS_INLINE - explicit messages(size_t __refs = 0) - : locale::facet(__refs) {} - - _LIBCPP_ALWAYS_INLINE - catalog open(const basic_string& __nm, const locale& __loc) const - { - return do_open(__nm, __loc); - } - - _LIBCPP_ALWAYS_INLINE - string_type get(catalog __c, int __set, int __msgid, - const string_type& __dflt) const - { - return do_get(__c, __set, __msgid, __dflt); - } - - _LIBCPP_ALWAYS_INLINE - void close(catalog __c) const - { - do_close(__c); - } - - static locale::id id; - -protected: - _LIBCPP_ALWAYS_INLINE - ~messages() {} - - virtual catalog do_open(const basic_string&, const locale&) const; - virtual string_type do_get(catalog, int __set, int __msgid, - const string_type& __dflt) const; - virtual void do_close(catalog) const; -}; - -template -locale::id -messages<_CharT>::id; - -template -typename messages<_CharT>::catalog -messages<_CharT>::do_open(const basic_string& __nm, const locale&) const -{ -#ifdef _LIBCPP_HAS_CATOPEN - catalog __cat = (catalog)catopen(__nm.c_str(), NL_CAT_LOCALE); - if (__cat != -1) - __cat = static_cast((static_cast(__cat) >> 1)); - return __cat; -#else // !_LIBCPP_HAS_CATOPEN - return -1; -#endif // _LIBCPP_HAS_CATOPEN -} - -template -typename messages<_CharT>::string_type -messages<_CharT>::do_get(catalog __c, int __set, int __msgid, - const string_type& __dflt) const -{ -#ifdef _LIBCPP_HAS_CATOPEN - string __ndflt; - __narrow_to_utf8()(back_inserter(__ndflt), - __dflt.c_str(), - __dflt.c_str() + __dflt.size()); - if (__c != -1) - __c <<= 1; - nl_catd __cat = (nl_catd)__c; - char* __n = catgets(__cat, __set, __msgid, __ndflt.c_str()); - string_type __w; - __widen_from_utf8()(back_inserter(__w), - __n, __n + strlen(__n)); - return __w; -#else // !_LIBCPP_HAS_CATOPEN - return __dflt; -#endif // _LIBCPP_HAS_CATOPEN -} - -template -void -messages<_CharT>::do_close(catalog __c) const -{ -#ifdef _LIBCPP_HAS_CATOPEN - if (__c != -1) - __c <<= 1; - nl_catd __cat = (nl_catd)__c; - catclose(__cat); -#endif // _LIBCPP_HAS_CATOPEN -} - -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS messages) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS messages) - -template -class _LIBCPP_TYPE_VIS_ONLY messages_byname - : public messages<_CharT> -{ -public: - typedef messages_base::catalog catalog; - typedef basic_string<_CharT> string_type; - - _LIBCPP_ALWAYS_INLINE - explicit messages_byname(const char*, size_t __refs = 0) - : messages<_CharT>(__refs) {} - - _LIBCPP_ALWAYS_INLINE - explicit messages_byname(const string&, size_t __refs = 0) - : messages<_CharT>(__refs) {} - -protected: - _LIBCPP_ALWAYS_INLINE - ~messages_byname() {} -}; - -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS messages_byname) -_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_TYPE_VIS messages_byname) - -template, - class _Byte_alloc = allocator > -class _LIBCPP_TYPE_VIS_ONLY wstring_convert -{ -public: - typedef basic_string, _Byte_alloc> byte_string; - typedef basic_string<_Elem, char_traits<_Elem>, _Wide_alloc> wide_string; - typedef typename _Codecvt::state_type state_type; - typedef typename wide_string::traits_type::int_type int_type; - -private: - byte_string __byte_err_string_; - wide_string __wide_err_string_; - _Codecvt* __cvtptr_; - state_type __cvtstate_; - size_t __cvtcount_; - - wstring_convert(const wstring_convert& __wc); - wstring_convert& operator=(const wstring_convert& __wc); -public: - _LIBCPP_ALWAYS_INLINE - _LIBCPP_EXPLICIT_AFTER_CXX11 wstring_convert(_Codecvt* __pcvt = new _Codecvt); - _LIBCPP_ALWAYS_INLINE - wstring_convert(_Codecvt* __pcvt, state_type __state); - _LIBCPP_EXPLICIT_AFTER_CXX11 wstring_convert(const byte_string& __byte_err, - const wide_string& __wide_err = wide_string()); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_ALWAYS_INLINE - wstring_convert(wstring_convert&& __wc); -#endif - ~wstring_convert(); - - _LIBCPP_ALWAYS_INLINE - wide_string from_bytes(char __byte) - {return from_bytes(&__byte, &__byte+1);} - _LIBCPP_ALWAYS_INLINE - wide_string from_bytes(const char* __ptr) - {return from_bytes(__ptr, __ptr + char_traits::length(__ptr));} - _LIBCPP_ALWAYS_INLINE - wide_string from_bytes(const byte_string& __str) - {return from_bytes(__str.data(), __str.data() + __str.size());} - wide_string from_bytes(const char* __first, const char* __last); - - _LIBCPP_ALWAYS_INLINE - byte_string to_bytes(_Elem __wchar) - {return to_bytes(&__wchar, &__wchar+1);} - _LIBCPP_ALWAYS_INLINE - byte_string to_bytes(const _Elem* __wptr) - {return to_bytes(__wptr, __wptr + char_traits<_Elem>::length(__wptr));} - _LIBCPP_ALWAYS_INLINE - byte_string to_bytes(const wide_string& __wstr) - {return to_bytes(__wstr.data(), __wstr.data() + __wstr.size());} - byte_string to_bytes(const _Elem* __first, const _Elem* __last); - - _LIBCPP_ALWAYS_INLINE - size_t converted() const _NOEXCEPT {return __cvtcount_;} - _LIBCPP_ALWAYS_INLINE - state_type state() const {return __cvtstate_;} -}; - -template -inline -wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>:: - wstring_convert(_Codecvt* __pcvt) - : __cvtptr_(__pcvt), __cvtstate_(), __cvtcount_(0) -{ -} - -template -inline -wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>:: - wstring_convert(_Codecvt* __pcvt, state_type __state) - : __cvtptr_(__pcvt), __cvtstate_(__state), __cvtcount_(0) -{ -} - -template -wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>:: - wstring_convert(const byte_string& __byte_err, const wide_string& __wide_err) - : __byte_err_string_(__byte_err), __wide_err_string_(__wide_err), - __cvtstate_(), __cvtcount_(0) -{ - __cvtptr_ = new _Codecvt; -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -inline -wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>:: - wstring_convert(wstring_convert&& __wc) - : __byte_err_string_(_VSTD::move(__wc.__byte_err_string_)), - __wide_err_string_(_VSTD::move(__wc.__wide_err_string_)), - __cvtptr_(__wc.__cvtptr_), - __cvtstate_(__wc.__cvtstate_), __cvtcount_(__wc.__cvtstate_) -{ - __wc.__cvtptr_ = nullptr; -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::~wstring_convert() -{ - delete __cvtptr_; -} - -template -typename wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::wide_string -wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>:: - from_bytes(const char* __frm, const char* __frm_end) -{ - __cvtcount_ = 0; - if (__cvtptr_ != nullptr) - { - wide_string __ws(2*(__frm_end - __frm), _Elem()); - if (__frm != __frm_end) - __ws.resize(__ws.capacity()); - codecvt_base::result __r = codecvt_base::ok; - state_type __st = __cvtstate_; - if (__frm != __frm_end) - { - _Elem* __to = &__ws[0]; - _Elem* __to_end = __to + __ws.size(); - const char* __frm_nxt; - do - { - _Elem* __to_nxt; - __r = __cvtptr_->in(__st, __frm, __frm_end, __frm_nxt, - __to, __to_end, __to_nxt); - __cvtcount_ += __frm_nxt - __frm; - if (__frm_nxt == __frm) - { - __r = codecvt_base::error; - } - else if (__r == codecvt_base::noconv) - { - __ws.resize(__to - &__ws[0]); - // This only gets executed if _Elem is char - __ws.append((const _Elem*)__frm, (const _Elem*)__frm_end); - __frm = __frm_nxt; - __r = codecvt_base::ok; - } - else if (__r == codecvt_base::ok) - { - __ws.resize(__to_nxt - &__ws[0]); - __frm = __frm_nxt; - } - else if (__r == codecvt_base::partial) - { - ptrdiff_t __s = __to_nxt - &__ws[0]; - __ws.resize(2 * __s); - __to = &__ws[0] + __s; - __to_end = &__ws[0] + __ws.size(); - __frm = __frm_nxt; - } - } while (__r == codecvt_base::partial && __frm_nxt < __frm_end); - } - if (__r == codecvt_base::ok) - return __ws; - } -#ifndef _LIBCPP_NO_EXCEPTIONS - if (__wide_err_string_.empty()) - throw range_error("wstring_convert: from_bytes error"); -#endif // _LIBCPP_NO_EXCEPTIONS - return __wide_err_string_; -} - -template -typename wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::byte_string -wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>:: - to_bytes(const _Elem* __frm, const _Elem* __frm_end) -{ - __cvtcount_ = 0; - if (__cvtptr_ != nullptr) - { - byte_string __bs(2*(__frm_end - __frm), char()); - if (__frm != __frm_end) - __bs.resize(__bs.capacity()); - codecvt_base::result __r = codecvt_base::ok; - state_type __st = __cvtstate_; - if (__frm != __frm_end) - { - char* __to = &__bs[0]; - char* __to_end = __to + __bs.size(); - const _Elem* __frm_nxt; - do - { - char* __to_nxt; - __r = __cvtptr_->out(__st, __frm, __frm_end, __frm_nxt, - __to, __to_end, __to_nxt); - __cvtcount_ += __frm_nxt - __frm; - if (__frm_nxt == __frm) - { - __r = codecvt_base::error; - } - else if (__r == codecvt_base::noconv) - { - __bs.resize(__to - &__bs[0]); - // This only gets executed if _Elem is char - __bs.append((const char*)__frm, (const char*)__frm_end); - __frm = __frm_nxt; - __r = codecvt_base::ok; - } - else if (__r == codecvt_base::ok) - { - __bs.resize(__to_nxt - &__bs[0]); - __frm = __frm_nxt; - } - else if (__r == codecvt_base::partial) - { - ptrdiff_t __s = __to_nxt - &__bs[0]; - __bs.resize(2 * __s); - __to = &__bs[0] + __s; - __to_end = &__bs[0] + __bs.size(); - __frm = __frm_nxt; - } - } while (__r == codecvt_base::partial && __frm_nxt < __frm_end); - } - if (__r == codecvt_base::ok) - { - size_t __s = __bs.size(); - __bs.resize(__bs.capacity()); - char* __to = &__bs[0] + __s; - char* __to_end = __to + __bs.size(); - do - { - char* __to_nxt; - __r = __cvtptr_->unshift(__st, __to, __to_end, __to_nxt); - if (__r == codecvt_base::noconv) - { - __bs.resize(__to - &__bs[0]); - __r = codecvt_base::ok; - } - else if (__r == codecvt_base::ok) - { - __bs.resize(__to_nxt - &__bs[0]); - } - else if (__r == codecvt_base::partial) - { - ptrdiff_t __sp = __to_nxt - &__bs[0]; - __bs.resize(2 * __sp); - __to = &__bs[0] + __sp; - __to_end = &__bs[0] + __bs.size(); - } - } while (__r == codecvt_base::partial); - if (__r == codecvt_base::ok) - return __bs; - } - } -#ifndef _LIBCPP_NO_EXCEPTIONS - if (__byte_err_string_.empty()) - throw range_error("wstring_convert: to_bytes error"); -#endif // _LIBCPP_NO_EXCEPTIONS - return __byte_err_string_; -} - -template > -class _LIBCPP_TYPE_VIS_ONLY wbuffer_convert - : public basic_streambuf<_Elem, _Tr> -{ -public: - // types: - typedef _Elem char_type; - typedef _Tr traits_type; - typedef typename traits_type::int_type int_type; - typedef typename traits_type::pos_type pos_type; - typedef typename traits_type::off_type off_type; - typedef typename _Codecvt::state_type state_type; - -private: - char* __extbuf_; - const char* __extbufnext_; - const char* __extbufend_; - char __extbuf_min_[8]; - size_t __ebs_; - char_type* __intbuf_; - size_t __ibs_; - streambuf* __bufptr_; - _Codecvt* __cv_; - state_type __st_; - ios_base::openmode __cm_; - bool __owns_eb_; - bool __owns_ib_; - bool __always_noconv_; - - wbuffer_convert(const wbuffer_convert&); - wbuffer_convert& operator=(const wbuffer_convert&); -public: - _LIBCPP_EXPLICIT_AFTER_CXX11 wbuffer_convert(streambuf* __bytebuf = 0, - _Codecvt* __pcvt = new _Codecvt, state_type __state = state_type()); - ~wbuffer_convert(); - - _LIBCPP_INLINE_VISIBILITY - streambuf* rdbuf() const {return __bufptr_;} - _LIBCPP_INLINE_VISIBILITY - streambuf* rdbuf(streambuf* __bytebuf) - { - streambuf* __r = __bufptr_; - __bufptr_ = __bytebuf; - return __r; - } - - _LIBCPP_INLINE_VISIBILITY - state_type state() const {return __st_;} - -protected: - virtual int_type underflow(); - virtual int_type pbackfail(int_type __c = traits_type::eof()); - virtual int_type overflow (int_type __c = traits_type::eof()); - virtual basic_streambuf* setbuf(char_type* __s, - streamsize __n); - virtual pos_type seekoff(off_type __off, ios_base::seekdir __way, - ios_base::openmode __wch = ios_base::in | ios_base::out); - virtual pos_type seekpos(pos_type __sp, - ios_base::openmode __wch = ios_base::in | ios_base::out); - virtual int sync(); - -private: - bool __read_mode(); - void __write_mode(); - wbuffer_convert* __close(); -}; - -template -wbuffer_convert<_Codecvt, _Elem, _Tr>:: - wbuffer_convert(streambuf* __bytebuf, _Codecvt* __pcvt, state_type __state) - : __extbuf_(0), - __extbufnext_(0), - __extbufend_(0), - __ebs_(0), - __intbuf_(0), - __ibs_(0), - __bufptr_(__bytebuf), - __cv_(__pcvt), - __st_(__state), - __cm_(0), - __owns_eb_(false), - __owns_ib_(false), - __always_noconv_(__cv_ ? __cv_->always_noconv() : false) -{ - setbuf(0, 4096); -} - -template -wbuffer_convert<_Codecvt, _Elem, _Tr>::~wbuffer_convert() -{ - __close(); - delete __cv_; - if (__owns_eb_) - delete [] __extbuf_; - if (__owns_ib_) - delete [] __intbuf_; -} - -template -typename wbuffer_convert<_Codecvt, _Elem, _Tr>::int_type -wbuffer_convert<_Codecvt, _Elem, _Tr>::underflow() -{ - if (__cv_ == 0 || __bufptr_ == 0) - return traits_type::eof(); - bool __initial = __read_mode(); - char_type __1buf; - if (this->gptr() == 0) - this->setg(&__1buf, &__1buf+1, &__1buf+1); - const size_t __unget_sz = __initial ? 0 : min((this->egptr() - this->eback()) / 2, 4); - int_type __c = traits_type::eof(); - if (this->gptr() == this->egptr()) - { - memmove(this->eback(), this->egptr() - __unget_sz, __unget_sz * sizeof(char_type)); - if (__always_noconv_) - { - streamsize __nmemb = static_cast(this->egptr() - this->eback() - __unget_sz); - __nmemb = __bufptr_->sgetn((char*)this->eback() + __unget_sz, __nmemb); - if (__nmemb != 0) - { - this->setg(this->eback(), - this->eback() + __unget_sz, - this->eback() + __unget_sz + __nmemb); - __c = *this->gptr(); - } - } - else - { - memmove(__extbuf_, __extbufnext_, __extbufend_ - __extbufnext_); - __extbufnext_ = __extbuf_ + (__extbufend_ - __extbufnext_); - __extbufend_ = __extbuf_ + (__extbuf_ == __extbuf_min_ ? sizeof(__extbuf_min_) : __ebs_); - streamsize __nmemb = _VSTD::min(static_cast(this->egptr() - this->eback() - __unget_sz), - static_cast(__extbufend_ - __extbufnext_)); - codecvt_base::result __r; - state_type __svs = __st_; - streamsize __nr = __bufptr_->sgetn(const_cast(__extbufnext_), __nmemb); - if (__nr != 0) - { - __extbufend_ = __extbufnext_ + __nr; - char_type* __inext; - __r = __cv_->in(__st_, __extbuf_, __extbufend_, __extbufnext_, - this->eback() + __unget_sz, - this->egptr(), __inext); - if (__r == codecvt_base::noconv) - { - this->setg((char_type*)__extbuf_, (char_type*)__extbuf_, (char_type*)__extbufend_); - __c = *this->gptr(); - } - else if (__inext != this->eback() + __unget_sz) - { - this->setg(this->eback(), this->eback() + __unget_sz, __inext); - __c = *this->gptr(); - } - } - } - } - else - __c = *this->gptr(); - if (this->eback() == &__1buf) - this->setg(0, 0, 0); - return __c; -} - -template -typename wbuffer_convert<_Codecvt, _Elem, _Tr>::int_type -wbuffer_convert<_Codecvt, _Elem, _Tr>::pbackfail(int_type __c) -{ - if (__cv_ != 0 && __bufptr_ != 0 && this->eback() < this->gptr()) - { - if (traits_type::eq_int_type(__c, traits_type::eof())) - { - this->gbump(-1); - return traits_type::not_eof(__c); - } - if (traits_type::eq(traits_type::to_char_type(__c), this->gptr()[-1])) - { - this->gbump(-1); - *this->gptr() = traits_type::to_char_type(__c); - return __c; - } - } - return traits_type::eof(); -} - -template -typename wbuffer_convert<_Codecvt, _Elem, _Tr>::int_type -wbuffer_convert<_Codecvt, _Elem, _Tr>::overflow(int_type __c) -{ - if (__cv_ == 0 || __bufptr_ == 0) - return traits_type::eof(); - __write_mode(); - char_type __1buf; - char_type* __pb_save = this->pbase(); - char_type* __epb_save = this->epptr(); - if (!traits_type::eq_int_type(__c, traits_type::eof())) - { - if (this->pptr() == 0) - this->setp(&__1buf, &__1buf+1); - *this->pptr() = traits_type::to_char_type(__c); - this->pbump(1); - } - if (this->pptr() != this->pbase()) - { - if (__always_noconv_) - { - streamsize __nmemb = static_cast(this->pptr() - this->pbase()); - if (__bufptr_->sputn((const char*)this->pbase(), __nmemb) != __nmemb) - return traits_type::eof(); - } - else - { - char* __extbe = __extbuf_; - codecvt_base::result __r; - do - { - const char_type* __e; - __r = __cv_->out(__st_, this->pbase(), this->pptr(), __e, - __extbuf_, __extbuf_ + __ebs_, __extbe); - if (__e == this->pbase()) - return traits_type::eof(); - if (__r == codecvt_base::noconv) - { - streamsize __nmemb = static_cast(this->pptr() - this->pbase()); - if (__bufptr_->sputn((const char*)this->pbase(), __nmemb) != __nmemb) - return traits_type::eof(); - } - else if (__r == codecvt_base::ok || __r == codecvt_base::partial) - { - streamsize __nmemb = static_cast(__extbe - __extbuf_); - if (__bufptr_->sputn(__extbuf_, __nmemb) != __nmemb) - return traits_type::eof(); - if (__r == codecvt_base::partial) - { - this->setp((char_type*)__e, this->pptr()); - this->pbump(this->epptr() - this->pbase()); - } - } - else - return traits_type::eof(); - } while (__r == codecvt_base::partial); - } - this->setp(__pb_save, __epb_save); - } - return traits_type::not_eof(__c); -} - -template -basic_streambuf<_Elem, _Tr>* -wbuffer_convert<_Codecvt, _Elem, _Tr>::setbuf(char_type* __s, streamsize __n) -{ - this->setg(0, 0, 0); - this->setp(0, 0); - if (__owns_eb_) - delete [] __extbuf_; - if (__owns_ib_) - delete [] __intbuf_; - __ebs_ = __n; - if (__ebs_ > sizeof(__extbuf_min_)) - { - if (__always_noconv_ && __s) - { - __extbuf_ = (char*)__s; - __owns_eb_ = false; - } - else - { - __extbuf_ = new char[__ebs_]; - __owns_eb_ = true; - } - } - else - { - __extbuf_ = __extbuf_min_; - __ebs_ = sizeof(__extbuf_min_); - __owns_eb_ = false; - } - if (!__always_noconv_) - { - __ibs_ = max(__n, sizeof(__extbuf_min_)); - if (__s && __ibs_ >= sizeof(__extbuf_min_)) - { - __intbuf_ = __s; - __owns_ib_ = false; - } - else - { - __intbuf_ = new char_type[__ibs_]; - __owns_ib_ = true; - } - } - else - { - __ibs_ = 0; - __intbuf_ = 0; - __owns_ib_ = false; - } - return this; -} - -template -typename wbuffer_convert<_Codecvt, _Elem, _Tr>::pos_type -wbuffer_convert<_Codecvt, _Elem, _Tr>::seekoff(off_type __off, ios_base::seekdir __way, - ios_base::openmode __om) -{ - int __width = __cv_->encoding(); - if (__cv_ == 0 || __bufptr_ == 0 || (__width <= 0 && __off != 0) || sync()) - return pos_type(off_type(-1)); - // __width > 0 || __off == 0, now check __way - if (__way != ios_base::beg && __way != ios_base::cur && __way != ios_base::end) - return pos_type(off_type(-1)); - pos_type __r = __bufptr_->pubseekoff(__width * __off, __way, __om); - __r.state(__st_); - return __r; -} - -template -typename wbuffer_convert<_Codecvt, _Elem, _Tr>::pos_type -wbuffer_convert<_Codecvt, _Elem, _Tr>::seekpos(pos_type __sp, ios_base::openmode __wch) -{ - if (__cv_ == 0 || __bufptr_ == 0 || sync()) - return pos_type(off_type(-1)); - if (__bufptr_->pubseekpos(__sp, __wch) == pos_type(off_type(-1))) - return pos_type(off_type(-1)); - return __sp; -} - -template -int -wbuffer_convert<_Codecvt, _Elem, _Tr>::sync() -{ - if (__cv_ == 0 || __bufptr_ == 0) - return 0; - if (__cm_ & ios_base::out) - { - if (this->pptr() != this->pbase()) - if (overflow() == traits_type::eof()) - return -1; - codecvt_base::result __r; - do - { - char* __extbe; - __r = __cv_->unshift(__st_, __extbuf_, __extbuf_ + __ebs_, __extbe); - streamsize __nmemb = static_cast(__extbe - __extbuf_); - if (__bufptr_->sputn(__extbuf_, __nmemb) != __nmemb) - return -1; - } while (__r == codecvt_base::partial); - if (__r == codecvt_base::error) - return -1; - if (__bufptr_->pubsync()) - return -1; - } - else if (__cm_ & ios_base::in) - { - off_type __c; - if (__always_noconv_) - __c = this->egptr() - this->gptr(); - else - { - int __width = __cv_->encoding(); - __c = __extbufend_ - __extbufnext_; - if (__width > 0) - __c += __width * (this->egptr() - this->gptr()); - else - { - if (this->gptr() != this->egptr()) - { - reverse(this->gptr(), this->egptr()); - codecvt_base::result __r; - const char_type* __e = this->gptr(); - char* __extbe; - do - { - __r = __cv_->out(__st_, __e, this->egptr(), __e, - __extbuf_, __extbuf_ + __ebs_, __extbe); - switch (__r) - { - case codecvt_base::noconv: - __c += this->egptr() - this->gptr(); - break; - case codecvt_base::ok: - case codecvt_base::partial: - __c += __extbe - __extbuf_; - break; - default: - return -1; - } - } while (__r == codecvt_base::partial); - } - } - } - if (__bufptr_->pubseekoff(-__c, ios_base::cur, __cm_) == pos_type(off_type(-1))) - return -1; - this->setg(0, 0, 0); - __cm_ = 0; - } - return 0; -} - -template -bool -wbuffer_convert<_Codecvt, _Elem, _Tr>::__read_mode() -{ - if (!(__cm_ & ios_base::in)) - { - this->setp(0, 0); - if (__always_noconv_) - this->setg((char_type*)__extbuf_, - (char_type*)__extbuf_ + __ebs_, - (char_type*)__extbuf_ + __ebs_); - else - this->setg(__intbuf_, __intbuf_ + __ibs_, __intbuf_ + __ibs_); - __cm_ = ios_base::in; - return true; - } - return false; -} - -template -void -wbuffer_convert<_Codecvt, _Elem, _Tr>::__write_mode() -{ - if (!(__cm_ & ios_base::out)) - { - this->setg(0, 0, 0); - if (__ebs_ > sizeof(__extbuf_min_)) - { - if (__always_noconv_) - this->setp((char_type*)__extbuf_, - (char_type*)__extbuf_ + (__ebs_ - 1)); - else - this->setp(__intbuf_, __intbuf_ + (__ibs_ - 1)); - } - else - this->setp(0, 0); - __cm_ = ios_base::out; - } -} - -template -wbuffer_convert<_Codecvt, _Elem, _Tr>* -wbuffer_convert<_Codecvt, _Elem, _Tr>::__close() -{ - wbuffer_convert* __rt = 0; - if (__cv_ != 0 && __bufptr_ != 0) - { - __rt = this; - if ((__cm_ & ios_base::out) && sync()) - __rt = 0; - } - return __rt; -} - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_LOCALE diff --git a/headers/libs/libc++/map b/headers/libs/libc++/map deleted file mode 100644 index 561c3ddc93..0000000000 --- a/headers/libs/libc++/map +++ /dev/null @@ -1,2230 +0,0 @@ -// -*- C++ -*- -//===----------------------------- map ------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_MAP -#define _LIBCPP_MAP - -/* - - map synopsis - -namespace std -{ - -template , - class Allocator = allocator>> -class map -{ -public: - // types: - typedef Key key_type; - typedef T mapped_type; - typedef pair value_type; - typedef Compare key_compare; - typedef Allocator allocator_type; - typedef typename allocator_type::reference reference; - typedef typename allocator_type::const_reference const_reference; - typedef typename allocator_type::pointer pointer; - typedef typename allocator_type::const_pointer const_pointer; - typedef typename allocator_type::size_type size_type; - typedef typename allocator_type::difference_type difference_type; - - typedef implementation-defined iterator; - typedef implementation-defined const_iterator; - typedef std::reverse_iterator reverse_iterator; - typedef std::reverse_iterator const_reverse_iterator; - - class value_compare - : public binary_function - { - friend class map; - protected: - key_compare comp; - - value_compare(key_compare c); - public: - bool operator()(const value_type& x, const value_type& y) const; - }; - - // construct/copy/destroy: - map() - noexcept( - is_nothrow_default_constructible::value && - is_nothrow_default_constructible::value && - is_nothrow_copy_constructible::value); - explicit map(const key_compare& comp); - map(const key_compare& comp, const allocator_type& a); - template - map(InputIterator first, InputIterator last, - const key_compare& comp = key_compare()); - template - map(InputIterator first, InputIterator last, - const key_compare& comp, const allocator_type& a); - map(const map& m); - map(map&& m) - noexcept( - is_nothrow_move_constructible::value && - is_nothrow_move_constructible::value); - explicit map(const allocator_type& a); - map(const map& m, const allocator_type& a); - map(map&& m, const allocator_type& a); - map(initializer_list il, const key_compare& comp = key_compare()); - map(initializer_list il, const key_compare& comp, const allocator_type& a); - template - map(InputIterator first, InputIterator last, const allocator_type& a) - : map(first, last, Compare(), a) {} // C++14 - map(initializer_list il, const allocator_type& a) - : map(il, Compare(), a) {} // C++14 - ~map(); - - map& operator=(const map& m); - map& operator=(map&& m) - noexcept( - allocator_type::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable::value && - is_nothrow_move_assignable::value); - map& operator=(initializer_list il); - - // iterators: - iterator begin() noexcept; - const_iterator begin() const noexcept; - iterator end() noexcept; - const_iterator end() const noexcept; - - reverse_iterator rbegin() noexcept; - const_reverse_iterator rbegin() const noexcept; - reverse_iterator rend() noexcept; - const_reverse_iterator rend() const noexcept; - - const_iterator cbegin() const noexcept; - const_iterator cend() const noexcept; - const_reverse_iterator crbegin() const noexcept; - const_reverse_iterator crend() const noexcept; - - // capacity: - bool empty() const noexcept; - size_type size() const noexcept; - size_type max_size() const noexcept; - - // element access: - mapped_type& operator[](const key_type& k); - mapped_type& operator[](key_type&& k); - - mapped_type& at(const key_type& k); - const mapped_type& at(const key_type& k) const; - - // modifiers: - template - pair emplace(Args&&... args); - template - iterator emplace_hint(const_iterator position, Args&&... args); - pair insert(const value_type& v); - template - pair insert(P&& p); - iterator insert(const_iterator position, const value_type& v); - template - iterator insert(const_iterator position, P&& p); - template - void insert(InputIterator first, InputIterator last); - void insert(initializer_list il); - - template - pair try_emplace(const key_type& k, Args&&... args); // C++17 - template - pair try_emplace(key_type&& k, Args&&... args); // C++17 - template - iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args); // C++17 - template - iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args); // C++17 - template - pair insert_or_assign(const key_type& k, M&& obj); // C++17 - template - pair insert_or_assign(key_type&& k, M&& obj); // C++17 - template - iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj); // C++17 - template - iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj); // C++17 - - iterator erase(const_iterator position); - iterator erase(iterator position); // C++14 - size_type erase(const key_type& k); - iterator erase(const_iterator first, const_iterator last); - void clear() noexcept; - - void swap(map& m) - noexcept(allocator_traits::is_always_equal::value && - __is_nothrow_swappable::value); // C++17 - - // observers: - allocator_type get_allocator() const noexcept; - key_compare key_comp() const; - value_compare value_comp() const; - - // map operations: - iterator find(const key_type& k); - const_iterator find(const key_type& k) const; - template - iterator find(const K& x); // C++14 - template - const_iterator find(const K& x) const; // C++14 - template - size_type count(const K& x) const; // C++14 - - size_type count(const key_type& k) const; - iterator lower_bound(const key_type& k); - const_iterator lower_bound(const key_type& k) const; - template - iterator lower_bound(const K& x); // C++14 - template - const_iterator lower_bound(const K& x) const; // C++14 - - iterator upper_bound(const key_type& k); - const_iterator upper_bound(const key_type& k) const; - template - iterator upper_bound(const K& x); // C++14 - template - const_iterator upper_bound(const K& x) const; // C++14 - - pair equal_range(const key_type& k); - pair equal_range(const key_type& k) const; - template - pair equal_range(const K& x); // C++14 - template - pair equal_range(const K& x) const; // C++14 -}; - -template -bool -operator==(const map& x, - const map& y); - -template -bool -operator< (const map& x, - const map& y); - -template -bool -operator!=(const map& x, - const map& y); - -template -bool -operator> (const map& x, - const map& y); - -template -bool -operator>=(const map& x, - const map& y); - -template -bool -operator<=(const map& x, - const map& y); - -// specialized algorithms: -template -void -swap(map& x, map& y) - noexcept(noexcept(x.swap(y))); - -template , - class Allocator = allocator>> -class multimap -{ -public: - // types: - typedef Key key_type; - typedef T mapped_type; - typedef pair value_type; - typedef Compare key_compare; - typedef Allocator allocator_type; - typedef typename allocator_type::reference reference; - typedef typename allocator_type::const_reference const_reference; - typedef typename allocator_type::size_type size_type; - typedef typename allocator_type::difference_type difference_type; - typedef typename allocator_type::pointer pointer; - typedef typename allocator_type::const_pointer const_pointer; - - typedef implementation-defined iterator; - typedef implementation-defined const_iterator; - typedef std::reverse_iterator reverse_iterator; - typedef std::reverse_iterator const_reverse_iterator; - - class value_compare - : public binary_function - { - friend class multimap; - protected: - key_compare comp; - value_compare(key_compare c); - public: - bool operator()(const value_type& x, const value_type& y) const; - }; - - // construct/copy/destroy: - multimap() - noexcept( - is_nothrow_default_constructible::value && - is_nothrow_default_constructible::value && - is_nothrow_copy_constructible::value); - explicit multimap(const key_compare& comp); - multimap(const key_compare& comp, const allocator_type& a); - template - multimap(InputIterator first, InputIterator last, const key_compare& comp); - template - multimap(InputIterator first, InputIterator last, const key_compare& comp, - const allocator_type& a); - multimap(const multimap& m); - multimap(multimap&& m) - noexcept( - is_nothrow_move_constructible::value && - is_nothrow_move_constructible::value); - explicit multimap(const allocator_type& a); - multimap(const multimap& m, const allocator_type& a); - multimap(multimap&& m, const allocator_type& a); - multimap(initializer_list il, const key_compare& comp = key_compare()); - multimap(initializer_list il, const key_compare& comp, - const allocator_type& a); - template - multimap(InputIterator first, InputIterator last, const allocator_type& a) - : multimap(first, last, Compare(), a) {} // C++14 - multimap(initializer_list il, const allocator_type& a) - : multimap(il, Compare(), a) {} // C++14 - ~multimap(); - - multimap& operator=(const multimap& m); - multimap& operator=(multimap&& m) - noexcept( - allocator_type::propagate_on_container_move_assignment::value && - is_nothrow_move_assignable::value && - is_nothrow_move_assignable::value); - multimap& operator=(initializer_list il); - - // iterators: - iterator begin() noexcept; - const_iterator begin() const noexcept; - iterator end() noexcept; - const_iterator end() const noexcept; - - reverse_iterator rbegin() noexcept; - const_reverse_iterator rbegin() const noexcept; - reverse_iterator rend() noexcept; - const_reverse_iterator rend() const noexcept; - - const_iterator cbegin() const noexcept; - const_iterator cend() const noexcept; - const_reverse_iterator crbegin() const noexcept; - const_reverse_iterator crend() const noexcept; - - // capacity: - bool empty() const noexcept; - size_type size() const noexcept; - size_type max_size() const noexcept; - - // modifiers: - template - iterator emplace(Args&&... args); - template - iterator emplace_hint(const_iterator position, Args&&... args); - iterator insert(const value_type& v); - template - iterator insert(P&& p); - iterator insert(const_iterator position, const value_type& v); - template - iterator insert(const_iterator position, P&& p); - template - void insert(InputIterator first, InputIterator last); - void insert(initializer_list il); - - iterator erase(const_iterator position); - iterator erase(iterator position); // C++14 - size_type erase(const key_type& k); - iterator erase(const_iterator first, const_iterator last); - void clear() noexcept; - - void swap(multimap& m) - noexcept(allocator_traits::is_always_equal::value && - __is_nothrow_swappable::value); // C++17 - - // observers: - allocator_type get_allocator() const noexcept; - key_compare key_comp() const; - value_compare value_comp() const; - - // map operations: - iterator find(const key_type& k); - const_iterator find(const key_type& k) const; - template - iterator find(const K& x); // C++14 - template - const_iterator find(const K& x) const; // C++14 - template - size_type count(const K& x) const; // C++14 - - size_type count(const key_type& k) const; - iterator lower_bound(const key_type& k); - const_iterator lower_bound(const key_type& k) const; - template - iterator lower_bound(const K& x); // C++14 - template - const_iterator lower_bound(const K& x) const; // C++14 - - iterator upper_bound(const key_type& k); - const_iterator upper_bound(const key_type& k) const; - template - iterator upper_bound(const K& x); // C++14 - template - const_iterator upper_bound(const K& x) const; // C++14 - - pair equal_range(const key_type& k); - pair equal_range(const key_type& k) const; - template - pair equal_range(const K& x); // C++14 - template - pair equal_range(const K& x) const; // C++14 -}; - -template -bool -operator==(const multimap& x, - const multimap& y); - -template -bool -operator< (const multimap& x, - const multimap& y); - -template -bool -operator!=(const multimap& x, - const multimap& y); - -template -bool -operator> (const multimap& x, - const multimap& y); - -template -bool -operator>=(const multimap& x, - const multimap& y); - -template -bool -operator<=(const multimap& x, - const multimap& y); - -// specialized algorithms: -template -void -swap(multimap& x, - multimap& y) - noexcept(noexcept(x.swap(y))); - -} // std - -*/ - -#include <__config> -#include <__tree> -#include -#include -#include -#include -#include -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -template ::value && !__libcpp_is_final<_Compare>::value - > -class __map_value_compare - : private _Compare -{ -public: - _LIBCPP_INLINE_VISIBILITY - __map_value_compare() - _NOEXCEPT_(is_nothrow_default_constructible<_Compare>::value) - : _Compare() {} - _LIBCPP_INLINE_VISIBILITY - __map_value_compare(_Compare c) - _NOEXCEPT_(is_nothrow_copy_constructible<_Compare>::value) - : _Compare(c) {} - _LIBCPP_INLINE_VISIBILITY - const _Compare& key_comp() const _NOEXCEPT {return *this;} - _LIBCPP_INLINE_VISIBILITY - bool operator()(const _CP& __x, const _CP& __y) const - {return static_cast(*this)(__x.__cc.first, __y.__cc.first);} - _LIBCPP_INLINE_VISIBILITY - bool operator()(const _CP& __x, const _Key& __y) const - {return static_cast(*this)(__x.__cc.first, __y);} - _LIBCPP_INLINE_VISIBILITY - bool operator()(const _Key& __x, const _CP& __y) const - {return static_cast(*this)(__x, __y.__cc.first);} - void swap(__map_value_compare&__y) - _NOEXCEPT_(__is_nothrow_swappable<_Compare>::value) - { - using _VSTD::swap; - swap(static_cast(*this), static_cast(__y)); - } - -#if _LIBCPP_STD_VER > 11 - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value, bool>::type - operator () ( const _K2& __x, const _CP& __y ) const - {return static_cast(*this) (__x, __y.__cc.first);} - - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value, bool>::type - operator () (const _CP& __x, const _K2& __y) const - {return static_cast(*this) (__x.__cc.first, __y);} -#endif -}; - -template -class __map_value_compare<_Key, _CP, _Compare, false> -{ - _Compare comp; - -public: - _LIBCPP_INLINE_VISIBILITY - __map_value_compare() - _NOEXCEPT_(is_nothrow_default_constructible<_Compare>::value) - : comp() {} - _LIBCPP_INLINE_VISIBILITY - __map_value_compare(_Compare c) - _NOEXCEPT_(is_nothrow_copy_constructible<_Compare>::value) - : comp(c) {} - _LIBCPP_INLINE_VISIBILITY - const _Compare& key_comp() const _NOEXCEPT {return comp;} - - _LIBCPP_INLINE_VISIBILITY - bool operator()(const _CP& __x, const _CP& __y) const - {return comp(__x.__cc.first, __y.__cc.first);} - _LIBCPP_INLINE_VISIBILITY - bool operator()(const _CP& __x, const _Key& __y) const - {return comp(__x.__cc.first, __y);} - _LIBCPP_INLINE_VISIBILITY - bool operator()(const _Key& __x, const _CP& __y) const - {return comp(__x, __y.__cc.first);} - void swap(__map_value_compare&__y) - _NOEXCEPT_(__is_nothrow_swappable<_Compare>::value) - { - using _VSTD::swap; - swap(comp, __y.comp); - } - -#if _LIBCPP_STD_VER > 11 - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value, bool>::type - operator () ( const _K2& __x, const _CP& __y ) const - {return comp (__x, __y.__cc.first);} - - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value, bool>::type - operator () (const _CP& __x, const _K2& __y) const - {return comp (__x.__cc.first, __y);} -#endif -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(__map_value_compare<_Key, _CP, _Compare, __b>& __x, - __map_value_compare<_Key, _CP, _Compare, __b>& __y) - _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) -{ - __x.swap(__y); -} - -template -class __map_node_destructor -{ - typedef _Allocator allocator_type; - typedef allocator_traits __alloc_traits; - typedef typename __alloc_traits::value_type::value_type value_type; -public: - typedef typename __alloc_traits::pointer pointer; -private: - typedef typename value_type::value_type::first_type first_type; - typedef typename value_type::value_type::second_type second_type; - - allocator_type& __na_; - - __map_node_destructor& operator=(const __map_node_destructor&); - -public: - bool __first_constructed; - bool __second_constructed; - - _LIBCPP_INLINE_VISIBILITY - explicit __map_node_destructor(allocator_type& __na) _NOEXCEPT - : __na_(__na), - __first_constructed(false), - __second_constructed(false) - {} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - _LIBCPP_INLINE_VISIBILITY - __map_node_destructor(__tree_node_destructor&& __x) _NOEXCEPT - : __na_(__x.__na_), - __first_constructed(__x.__value_constructed), - __second_constructed(__x.__value_constructed) - { - __x.__value_constructed = false; - } -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - _LIBCPP_INLINE_VISIBILITY - void operator()(pointer __p) _NOEXCEPT - { - if (__second_constructed) - __alloc_traits::destroy(__na_, _VSTD::addressof(__p->__value_.__cc.second)); - if (__first_constructed) - __alloc_traits::destroy(__na_, _VSTD::addressof(__p->__value_.__cc.first)); - if (__p) - __alloc_traits::deallocate(__na_, __p, 1); - } -}; - -template - class map; -template - class multimap; -template class __map_const_iterator; - -#if __cplusplus >= 201103L - -template -union __value_type -{ - typedef _Key key_type; - typedef _Tp mapped_type; - typedef pair value_type; - typedef pair __nc_value_type; - - value_type __cc; - __nc_value_type __nc; - - template - _LIBCPP_INLINE_VISIBILITY - __value_type(_Args&& ...__args) - : __cc(std::forward<_Args>(__args)...) {} - - _LIBCPP_INLINE_VISIBILITY - __value_type(const __value_type& __v) - : __cc(__v.__cc) {} - - _LIBCPP_INLINE_VISIBILITY - __value_type(__value_type& __v) - : __cc(__v.__cc) {} - - _LIBCPP_INLINE_VISIBILITY - __value_type(__value_type&& __v) - : __nc(std::move(__v.__nc)) {} - - _LIBCPP_INLINE_VISIBILITY - __value_type& operator=(const __value_type& __v) - {__nc = __v.__cc; return *this;} - - _LIBCPP_INLINE_VISIBILITY - __value_type& operator=(__value_type&& __v) - {__nc = std::move(__v.__nc); return *this;} - - _LIBCPP_INLINE_VISIBILITY - ~__value_type() {__cc.~value_type();} -}; - -#else - -template -struct __value_type -{ - typedef _Key key_type; - typedef _Tp mapped_type; - typedef pair value_type; - - value_type __cc; - - _LIBCPP_INLINE_VISIBILITY - __value_type() {} - - template - _LIBCPP_INLINE_VISIBILITY - __value_type(const _A0& __a0) - : __cc(__a0) {} - - template - _LIBCPP_INLINE_VISIBILITY - __value_type(const _A0& __a0, const _A1& __a1) - : __cc(__a0, __a1) {} -}; - -#endif - -template -struct __extract_key_value_types; - -template -struct __extract_key_value_types<__value_type<_Key, _Tp> > -{ - typedef _Key const __key_type; - typedef _Tp __mapped_type; -}; - -template -class _LIBCPP_TYPE_VIS_ONLY __map_iterator -{ - _TreeIterator __i_; - - typedef typename _TreeIterator::__pointer_traits __pointer_traits; - typedef typename _TreeIterator::value_type __value_type; - typedef typename __extract_key_value_types<__value_type>::__key_type __key_type; - typedef typename __extract_key_value_types<__value_type>::__mapped_type __mapped_type; -public: - typedef bidirectional_iterator_tag iterator_category; - typedef pair<__key_type, __mapped_type> value_type; - typedef typename _TreeIterator::difference_type difference_type; - typedef value_type& reference; - typedef typename __pointer_traits::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind -#else - rebind::other -#endif - pointer; - - _LIBCPP_INLINE_VISIBILITY - __map_iterator() _NOEXCEPT {} - - _LIBCPP_INLINE_VISIBILITY - __map_iterator(_TreeIterator __i) _NOEXCEPT : __i_(__i) {} - - _LIBCPP_INLINE_VISIBILITY - reference operator*() const {return __i_->__cc;} - _LIBCPP_INLINE_VISIBILITY - pointer operator->() const {return pointer_traits::pointer_to(__i_->__cc);} - - _LIBCPP_INLINE_VISIBILITY - __map_iterator& operator++() {++__i_; return *this;} - _LIBCPP_INLINE_VISIBILITY - __map_iterator operator++(int) - { - __map_iterator __t(*this); - ++(*this); - return __t; - } - - _LIBCPP_INLINE_VISIBILITY - __map_iterator& operator--() {--__i_; return *this;} - _LIBCPP_INLINE_VISIBILITY - __map_iterator operator--(int) - { - __map_iterator __t(*this); - --(*this); - return __t; - } - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(const __map_iterator& __x, const __map_iterator& __y) - {return __x.__i_ == __y.__i_;} - friend - _LIBCPP_INLINE_VISIBILITY - bool operator!=(const __map_iterator& __x, const __map_iterator& __y) - {return __x.__i_ != __y.__i_;} - - template friend class _LIBCPP_TYPE_VIS_ONLY map; - template friend class _LIBCPP_TYPE_VIS_ONLY multimap; - template friend class _LIBCPP_TYPE_VIS_ONLY __map_const_iterator; -}; - -template -class _LIBCPP_TYPE_VIS_ONLY __map_const_iterator -{ - _TreeIterator __i_; - - typedef typename _TreeIterator::__pointer_traits __pointer_traits; - typedef typename _TreeIterator::value_type __value_type; - typedef typename __extract_key_value_types<__value_type>::__key_type __key_type; - typedef typename __extract_key_value_types<__value_type>::__mapped_type __mapped_type; -public: - typedef bidirectional_iterator_tag iterator_category; - typedef pair<__key_type, __mapped_type> value_type; - typedef typename _TreeIterator::difference_type difference_type; - typedef const value_type& reference; - typedef typename __pointer_traits::template -#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind -#else - rebind::other -#endif - pointer; - - _LIBCPP_INLINE_VISIBILITY - __map_const_iterator() _NOEXCEPT {} - - _LIBCPP_INLINE_VISIBILITY - __map_const_iterator(_TreeIterator __i) _NOEXCEPT : __i_(__i) {} - _LIBCPP_INLINE_VISIBILITY - __map_const_iterator(__map_iterator< - typename _TreeIterator::__non_const_iterator> __i) _NOEXCEPT - : __i_(__i.__i_) {} - - _LIBCPP_INLINE_VISIBILITY - reference operator*() const {return __i_->__cc;} - _LIBCPP_INLINE_VISIBILITY - pointer operator->() const {return pointer_traits::pointer_to(__i_->__cc);} - - _LIBCPP_INLINE_VISIBILITY - __map_const_iterator& operator++() {++__i_; return *this;} - _LIBCPP_INLINE_VISIBILITY - __map_const_iterator operator++(int) - { - __map_const_iterator __t(*this); - ++(*this); - return __t; - } - - _LIBCPP_INLINE_VISIBILITY - __map_const_iterator& operator--() {--__i_; return *this;} - _LIBCPP_INLINE_VISIBILITY - __map_const_iterator operator--(int) - { - __map_const_iterator __t(*this); - --(*this); - return __t; - } - - friend _LIBCPP_INLINE_VISIBILITY - bool operator==(const __map_const_iterator& __x, const __map_const_iterator& __y) - {return __x.__i_ == __y.__i_;} - friend _LIBCPP_INLINE_VISIBILITY - bool operator!=(const __map_const_iterator& __x, const __map_const_iterator& __y) - {return __x.__i_ != __y.__i_;} - - template friend class _LIBCPP_TYPE_VIS_ONLY map; - template friend class _LIBCPP_TYPE_VIS_ONLY multimap; - template friend class _LIBCPP_TYPE_VIS_ONLY __tree_const_iterator; -}; - -template , - class _Allocator = allocator > > -class _LIBCPP_TYPE_VIS_ONLY map -{ -public: - // types: - typedef _Key key_type; - typedef _Tp mapped_type; - typedef pair value_type; - typedef pair __nc_value_type; - typedef _Compare key_compare; - typedef _Allocator allocator_type; - typedef value_type& reference; - typedef const value_type& const_reference; - - class _LIBCPP_TYPE_VIS_ONLY value_compare - : public binary_function - { - friend class map; - protected: - key_compare comp; - - _LIBCPP_INLINE_VISIBILITY value_compare(key_compare c) : comp(c) {} - public: - _LIBCPP_INLINE_VISIBILITY - bool operator()(const value_type& __x, const value_type& __y) const - {return comp(__x.first, __y.first);} - }; - -private: - - typedef _VSTD::__value_type __value_type; - typedef __map_value_compare __vc; - typedef typename __rebind_alloc_helper, - __value_type>::type __allocator_type; - typedef __tree<__value_type, __vc, __allocator_type> __base; - typedef typename __base::__node_traits __node_traits; - typedef allocator_traits __alloc_traits; - - __base __tree_; - -public: - typedef typename __alloc_traits::pointer pointer; - typedef typename __alloc_traits::const_pointer const_pointer; - typedef typename __alloc_traits::size_type size_type; - typedef typename __alloc_traits::difference_type difference_type; - typedef __map_iterator iterator; - typedef __map_const_iterator const_iterator; - typedef _VSTD::reverse_iterator reverse_iterator; - typedef _VSTD::reverse_iterator const_reverse_iterator; - - _LIBCPP_INLINE_VISIBILITY - map() - _NOEXCEPT_( - is_nothrow_default_constructible::value && - is_nothrow_default_constructible::value && - is_nothrow_copy_constructible::value) - : __tree_(__vc(key_compare())) {} - - _LIBCPP_INLINE_VISIBILITY - explicit map(const key_compare& __comp) - _NOEXCEPT_( - is_nothrow_default_constructible::value && - is_nothrow_copy_constructible::value) - : __tree_(__vc(__comp)) {} - - _LIBCPP_INLINE_VISIBILITY - explicit map(const key_compare& __comp, const allocator_type& __a) - : __tree_(__vc(__comp), __a) {} - - template - _LIBCPP_INLINE_VISIBILITY - map(_InputIterator __f, _InputIterator __l, - const key_compare& __comp = key_compare()) - : __tree_(__vc(__comp)) - { - insert(__f, __l); - } - - template - _LIBCPP_INLINE_VISIBILITY - map(_InputIterator __f, _InputIterator __l, - const key_compare& __comp, const allocator_type& __a) - : __tree_(__vc(__comp), __a) - { - insert(__f, __l); - } - -#if _LIBCPP_STD_VER > 11 - template - _LIBCPP_INLINE_VISIBILITY - map(_InputIterator __f, _InputIterator __l, const allocator_type& __a) - : map(__f, __l, key_compare(), __a) {} -#endif - - _LIBCPP_INLINE_VISIBILITY - map(const map& __m) - : __tree_(__m.__tree_) - { - insert(__m.begin(), __m.end()); - } - - _LIBCPP_INLINE_VISIBILITY - map& operator=(const map& __m) - { -#if __cplusplus >= 201103L - __tree_ = __m.__tree_; -#else - if (this != &__m) { - __tree_.clear(); - __tree_.value_comp() = __m.__tree_.value_comp(); - __tree_.__copy_assign_alloc(__m.__tree_); - insert(__m.begin(), __m.end()); - } -#endif - return *this; - } - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - - _LIBCPP_INLINE_VISIBILITY - map(map&& __m) - _NOEXCEPT_(is_nothrow_move_constructible<__base>::value) - : __tree_(_VSTD::move(__m.__tree_)) - { - } - - map(map&& __m, const allocator_type& __a); - - _LIBCPP_INLINE_VISIBILITY - map& operator=(map&& __m) - _NOEXCEPT_(is_nothrow_move_assignable<__base>::value) - { - __tree_ = _VSTD::move(__m.__tree_); - return *this; - } - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - - _LIBCPP_INLINE_VISIBILITY - map(initializer_list __il, const key_compare& __comp = key_compare()) - : __tree_(__vc(__comp)) - { - insert(__il.begin(), __il.end()); - } - - _LIBCPP_INLINE_VISIBILITY - map(initializer_list __il, const key_compare& __comp, const allocator_type& __a) - : __tree_(__vc(__comp), __a) - { - insert(__il.begin(), __il.end()); - } - -#if _LIBCPP_STD_VER > 11 - _LIBCPP_INLINE_VISIBILITY - map(initializer_list __il, const allocator_type& __a) - : map(__il, key_compare(), __a) {} -#endif - - _LIBCPP_INLINE_VISIBILITY - map& operator=(initializer_list __il) - { - __tree_.__assign_unique(__il.begin(), __il.end()); - return *this; - } - -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - - _LIBCPP_INLINE_VISIBILITY - explicit map(const allocator_type& __a) - : __tree_(__a) - { - } - - _LIBCPP_INLINE_VISIBILITY - map(const map& __m, const allocator_type& __a) - : __tree_(__m.__tree_.value_comp(), __a) - { - insert(__m.begin(), __m.end()); - } - - _LIBCPP_INLINE_VISIBILITY - iterator begin() _NOEXCEPT {return __tree_.begin();} - _LIBCPP_INLINE_VISIBILITY - const_iterator begin() const _NOEXCEPT {return __tree_.begin();} - _LIBCPP_INLINE_VISIBILITY - iterator end() _NOEXCEPT {return __tree_.end();} - _LIBCPP_INLINE_VISIBILITY - const_iterator end() const _NOEXCEPT {return __tree_.end();} - - _LIBCPP_INLINE_VISIBILITY - reverse_iterator rbegin() _NOEXCEPT {return reverse_iterator(end());} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator rbegin() const _NOEXCEPT - {return const_reverse_iterator(end());} - _LIBCPP_INLINE_VISIBILITY - reverse_iterator rend() _NOEXCEPT - {return reverse_iterator(begin());} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator rend() const _NOEXCEPT - {return const_reverse_iterator(begin());} - - _LIBCPP_INLINE_VISIBILITY - const_iterator cbegin() const _NOEXCEPT {return begin();} - _LIBCPP_INLINE_VISIBILITY - const_iterator cend() const _NOEXCEPT {return end();} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator crbegin() const _NOEXCEPT {return rbegin();} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator crend() const _NOEXCEPT {return rend();} - - _LIBCPP_INLINE_VISIBILITY - bool empty() const _NOEXCEPT {return __tree_.size() == 0;} - _LIBCPP_INLINE_VISIBILITY - size_type size() const _NOEXCEPT {return __tree_.size();} - _LIBCPP_INLINE_VISIBILITY - size_type max_size() const _NOEXCEPT {return __tree_.max_size();} - - mapped_type& operator[](const key_type& __k); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - mapped_type& operator[](key_type&& __k); -#endif - - mapped_type& at(const key_type& __k); - const mapped_type& at(const key_type& __k) const; - - _LIBCPP_INLINE_VISIBILITY - allocator_type get_allocator() const _NOEXCEPT {return __tree_.__alloc();} - _LIBCPP_INLINE_VISIBILITY - key_compare key_comp() const {return __tree_.value_comp().key_comp();} - _LIBCPP_INLINE_VISIBILITY - value_compare value_comp() const {return value_compare(__tree_.value_comp().key_comp());} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -#ifndef _LIBCPP_HAS_NO_VARIADICS - - template - pair - emplace(_Args&& ...__args); - - template - iterator - emplace_hint(const_iterator __p, _Args&& ...__args); - -#endif // _LIBCPP_HAS_NO_VARIADICS - - template ::value>::type> - _LIBCPP_INLINE_VISIBILITY - pair insert(_Pp&& __p) - {return __tree_.__insert_unique(_VSTD::forward<_Pp>(__p));} - - template ::value>::type> - _LIBCPP_INLINE_VISIBILITY - iterator insert(const_iterator __pos, _Pp&& __p) - {return __tree_.__insert_unique(__pos.__i_, _VSTD::forward<_Pp>(__p));} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - _LIBCPP_INLINE_VISIBILITY - pair - insert(const value_type& __v) {return __tree_.__insert_unique(__v);} - - _LIBCPP_INLINE_VISIBILITY - iterator - insert(const_iterator __p, const value_type& __v) - {return __tree_.__insert_unique(__p.__i_, __v);} - - template - _LIBCPP_INLINE_VISIBILITY - void insert(_InputIterator __f, _InputIterator __l) - { - for (const_iterator __e = cend(); __f != __l; ++__f) - insert(__e.__i_, *__f); - } - -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - - _LIBCPP_INLINE_VISIBILITY - void insert(initializer_list __il) - {insert(__il.begin(), __il.end());} - -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - -#if _LIBCPP_STD_VER > 14 -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -#ifndef _LIBCPP_HAS_NO_VARIADICS - template - _LIBCPP_INLINE_VISIBILITY - pair try_emplace(const key_type& __k, _Args&&... __args) - { - iterator __p = lower_bound(__k); - if ( __p != end() && !key_comp()(__k, __p->first)) - return _VSTD::make_pair(__p, false); - else - return _VSTD::make_pair( - emplace_hint(__p, - _VSTD::piecewise_construct, _VSTD::forward_as_tuple(__k), - _VSTD::forward_as_tuple(_VSTD::forward<_Args>(__args)...)), - true); - } - - template - _LIBCPP_INLINE_VISIBILITY - pair try_emplace(key_type&& __k, _Args&&... __args) - { - iterator __p = lower_bound(__k); - if ( __p != end() && !key_comp()(__k, __p->first)) - return _VSTD::make_pair(__p, false); - else - return _VSTD::make_pair( - emplace_hint(__p, - _VSTD::piecewise_construct, _VSTD::forward_as_tuple(_VSTD::move(__k)), - _VSTD::forward_as_tuple(_VSTD::forward<_Args>(__args)...)), - true); - } - - template - _LIBCPP_INLINE_VISIBILITY - iterator try_emplace(const_iterator __h, const key_type& __k, _Args&&... __args) - { - iterator __p = lower_bound(__k); - if ( __p != end() && !key_comp()(__k, __p->first)) - return __p; - else - return emplace_hint(__p, - _VSTD::piecewise_construct, _VSTD::forward_as_tuple(__k), - _VSTD::forward_as_tuple(_VSTD::forward<_Args>(__args)...)); - } - - template - _LIBCPP_INLINE_VISIBILITY - iterator try_emplace(const_iterator __h, key_type&& __k, _Args&&... __args) - { - iterator __p = lower_bound(__k); - if ( __p != end() && !key_comp()(__k, __p->first)) - return __p; - else - return emplace_hint(__p, - _VSTD::piecewise_construct, _VSTD::forward_as_tuple(_VSTD::move(__k)), - _VSTD::forward_as_tuple(_VSTD::forward<_Args>(__args)...)); - } - - template - _LIBCPP_INLINE_VISIBILITY - pair insert_or_assign(const key_type& __k, _Vp&& __v) - { - iterator __p = lower_bound(__k); - if ( __p != end() && !key_comp()(__k, __p->first)) - { - __p->second = _VSTD::forward<_Vp>(__v); - return _VSTD::make_pair(__p, false); - } - return _VSTD::make_pair(emplace_hint(__p, __k, _VSTD::forward<_Vp>(__v)), true); - } - - template - _LIBCPP_INLINE_VISIBILITY - pair insert_or_assign(key_type&& __k, _Vp&& __v) - { - iterator __p = lower_bound(__k); - if ( __p != end() && !key_comp()(__k, __p->first)) - { - __p->second = _VSTD::forward<_Vp>(__v); - return _VSTD::make_pair(__p, false); - } - return _VSTD::make_pair(emplace_hint(__p, _VSTD::move(__k), _VSTD::forward<_Vp>(__v)), true); - } - - template - _LIBCPP_INLINE_VISIBILITY - iterator insert_or_assign(const_iterator __h, const key_type& __k, _Vp&& __v) - { - iterator __p = lower_bound(__k); - if ( __p != end() && !key_comp()(__k, __p->first)) - { - __p->second = _VSTD::forward<_Vp>(__v); - return __p; - } - return emplace_hint(__h, __k, _VSTD::forward<_Vp>(__v)); - } - - template - _LIBCPP_INLINE_VISIBILITY - iterator insert_or_assign(const_iterator __h, key_type&& __k, _Vp&& __v) - { - iterator __p = lower_bound(__k); - if ( __p != end() && !key_comp()(__k, __p->first)) - { - __p->second = _VSTD::forward<_Vp>(__v); - return __p; - } - return emplace_hint(__h, _VSTD::move(__k), _VSTD::forward<_Vp>(__v)); - } -#endif -#endif -#endif - - _LIBCPP_INLINE_VISIBILITY - iterator erase(const_iterator __p) {return __tree_.erase(__p.__i_);} - _LIBCPP_INLINE_VISIBILITY - iterator erase(iterator __p) {return __tree_.erase(__p.__i_);} - _LIBCPP_INLINE_VISIBILITY - size_type erase(const key_type& __k) - {return __tree_.__erase_unique(__k);} - _LIBCPP_INLINE_VISIBILITY - iterator erase(const_iterator __f, const_iterator __l) - {return __tree_.erase(__f.__i_, __l.__i_);} - _LIBCPP_INLINE_VISIBILITY - void clear() _NOEXCEPT {__tree_.clear();} - - _LIBCPP_INLINE_VISIBILITY - void swap(map& __m) - _NOEXCEPT_(__is_nothrow_swappable<__base>::value) - {__tree_.swap(__m.__tree_);} - - _LIBCPP_INLINE_VISIBILITY - iterator find(const key_type& __k) {return __tree_.find(__k);} - _LIBCPP_INLINE_VISIBILITY - const_iterator find(const key_type& __k) const {return __tree_.find(__k);} -#if _LIBCPP_STD_VER > 11 - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,iterator>::type - find(const _K2& __k) {return __tree_.find(__k);} - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,const_iterator>::type - find(const _K2& __k) const {return __tree_.find(__k);} -#endif - - _LIBCPP_INLINE_VISIBILITY - size_type count(const key_type& __k) const - {return __tree_.__count_unique(__k);} -#if _LIBCPP_STD_VER > 11 - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,size_type>::type - count(const _K2& __k) const {return __tree_.__count_unique(__k);} -#endif - _LIBCPP_INLINE_VISIBILITY - iterator lower_bound(const key_type& __k) - {return __tree_.lower_bound(__k);} - _LIBCPP_INLINE_VISIBILITY - const_iterator lower_bound(const key_type& __k) const - {return __tree_.lower_bound(__k);} -#if _LIBCPP_STD_VER > 11 - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,iterator>::type - lower_bound(const _K2& __k) {return __tree_.lower_bound(__k);} - - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,const_iterator>::type - lower_bound(const _K2& __k) const {return __tree_.lower_bound(__k);} -#endif - - _LIBCPP_INLINE_VISIBILITY - iterator upper_bound(const key_type& __k) - {return __tree_.upper_bound(__k);} - _LIBCPP_INLINE_VISIBILITY - const_iterator upper_bound(const key_type& __k) const - {return __tree_.upper_bound(__k);} -#if _LIBCPP_STD_VER > 11 - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,iterator>::type - upper_bound(const _K2& __k) {return __tree_.upper_bound(__k);} - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,const_iterator>::type - upper_bound(const _K2& __k) const {return __tree_.upper_bound(__k);} -#endif - - _LIBCPP_INLINE_VISIBILITY - pair equal_range(const key_type& __k) - {return __tree_.__equal_range_unique(__k);} - _LIBCPP_INLINE_VISIBILITY - pair equal_range(const key_type& __k) const - {return __tree_.__equal_range_unique(__k);} -#if _LIBCPP_STD_VER > 11 - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,pair>::type - equal_range(const _K2& __k) {return __tree_.__equal_range_unique(__k);} - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,pair>::type - equal_range(const _K2& __k) const {return __tree_.__equal_range_unique(__k);} -#endif - -private: - typedef typename __base::__node __node; - typedef typename __base::__node_allocator __node_allocator; - typedef typename __base::__node_pointer __node_pointer; - typedef typename __base::__node_const_pointer __node_const_pointer; - typedef typename __base::__node_base_pointer __node_base_pointer; - typedef typename __base::__node_base_const_pointer __node_base_const_pointer; - typedef __map_node_destructor<__node_allocator> _Dp; - typedef unique_ptr<__node, _Dp> __node_holder; - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - __node_holder __construct_node(); - template - __node_holder __construct_node(_A0&& __a0); - __node_holder __construct_node_with_key(key_type&& __k); -#ifndef _LIBCPP_HAS_NO_VARIADICS - template - __node_holder __construct_node(_A0&& __a0, _A1&& __a1, _Args&& ...__args); -#endif // _LIBCPP_HAS_NO_VARIADICS -#endif - __node_holder __construct_node_with_key(const key_type& __k); - - __node_base_pointer& - __find_equal_key(__node_base_pointer& __parent, const key_type& __k); - __node_base_const_pointer - __find_equal_key(__node_base_const_pointer& __parent, const key_type& __k) const; -}; - -// Find place to insert if __k doesn't exist -// Set __parent to parent of null leaf -// Return reference to null leaf -// If __k exists, set parent to node of __k and return reference to node of __k -template -typename map<_Key, _Tp, _Compare, _Allocator>::__node_base_pointer& -map<_Key, _Tp, _Compare, _Allocator>::__find_equal_key(__node_base_pointer& __parent, - const key_type& __k) -{ - __node_pointer __nd = __tree_.__root(); - if (__nd != nullptr) - { - while (true) - { - if (__tree_.value_comp().key_comp()(__k, __nd->__value_.__cc.first)) - { - if (__nd->__left_ != nullptr) - __nd = static_cast<__node_pointer>(__nd->__left_); - else - { - __parent = static_cast<__node_base_pointer>(__nd); - return __parent->__left_; - } - } - else if (__tree_.value_comp().key_comp()(__nd->__value_.__cc.first, __k)) - { - if (__nd->__right_ != nullptr) - __nd = static_cast<__node_pointer>(__nd->__right_); - else - { - __parent = static_cast<__node_base_pointer>(__nd); - return __parent->__right_; - } - } - else - { - __parent = static_cast<__node_base_pointer>(__nd); - return __parent; - } - } - } - __parent = static_cast<__node_base_pointer>(__tree_.__end_node()); - return __parent->__left_; -} - -// Find __k -// Set __parent to parent of null leaf and -// return reference to null leaf iv __k does not exist. -// If __k exists, set parent to node of __k and return reference to node of __k -template -typename map<_Key, _Tp, _Compare, _Allocator>::__node_base_const_pointer -map<_Key, _Tp, _Compare, _Allocator>::__find_equal_key(__node_base_const_pointer& __parent, - const key_type& __k) const -{ - __node_const_pointer __nd = __tree_.__root(); - if (__nd != nullptr) - { - while (true) - { - if (__tree_.value_comp().key_comp()(__k, __nd->__value_.__cc.first)) - { - if (__nd->__left_ != nullptr) - __nd = static_cast<__node_pointer>(__nd->__left_); - else - { - __parent = static_cast<__node_base_pointer>(__nd); - return const_cast(__parent->__left_); - } - } - else if (__tree_.value_comp().key_comp()(__nd->__value_.__cc.first, __k)) - { - if (__nd->__right_ != nullptr) - __nd = static_cast<__node_pointer>(__nd->__right_); - else - { - __parent = static_cast<__node_base_pointer>(__nd); - return const_cast(__parent->__right_); - } - } - else - { - __parent = static_cast<__node_base_pointer>(__nd); - return __parent; - } - } - } - __parent = static_cast<__node_base_pointer>(__tree_.__end_node()); - return const_cast(__parent->__left_); -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -map<_Key, _Tp, _Compare, _Allocator>::map(map&& __m, const allocator_type& __a) - : __tree_(_VSTD::move(__m.__tree_), __a) -{ - if (__a != __m.get_allocator()) - { - const_iterator __e = cend(); - while (!__m.empty()) - __tree_.__insert_unique(__e.__i_, - _VSTD::move(__m.__tree_.remove(__m.begin().__i_)->__value_)); - } -} - -template -typename map<_Key, _Tp, _Compare, _Allocator>::__node_holder -map<_Key, _Tp, _Compare, _Allocator>::__construct_node() -{ - __node_allocator& __na = __tree_.__node_alloc(); - __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); - __node_traits::construct(__na, _VSTD::addressof(__h->__value_.__cc.first)); - __h.get_deleter().__first_constructed = true; - __node_traits::construct(__na, _VSTD::addressof(__h->__value_.__cc.second)); - __h.get_deleter().__second_constructed = true; - return __h; -} - -template -template -typename map<_Key, _Tp, _Compare, _Allocator>::__node_holder -map<_Key, _Tp, _Compare, _Allocator>::__construct_node(_A0&& __a0) -{ - __node_allocator& __na = __tree_.__node_alloc(); - __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); - __node_traits::construct(__na, _VSTD::addressof(__h->__value_), _VSTD::forward<_A0>(__a0)); - __h.get_deleter().__first_constructed = true; - __h.get_deleter().__second_constructed = true; - return __h; -} - -template -typename map<_Key, _Tp, _Compare, _Allocator>::__node_holder -map<_Key, _Tp, _Compare, _Allocator>::__construct_node_with_key(key_type&& __k) -{ - __node_allocator& __na = __tree_.__node_alloc(); - __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); - __node_traits::construct(__na, _VSTD::addressof(__h->__value_.__cc.first), _VSTD::move(__k)); - __h.get_deleter().__first_constructed = true; - __node_traits::construct(__na, _VSTD::addressof(__h->__value_.__cc.second)); - __h.get_deleter().__second_constructed = true; - return __h; -} - -#ifndef _LIBCPP_HAS_NO_VARIADICS - -template -template -typename map<_Key, _Tp, _Compare, _Allocator>::__node_holder -map<_Key, _Tp, _Compare, _Allocator>::__construct_node(_A0&& __a0, _A1&& __a1, _Args&& ...__args) -{ - __node_allocator& __na = __tree_.__node_alloc(); - __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); - __node_traits::construct(__na, _VSTD::addressof(__h->__value_), - _VSTD::forward<_A0>(__a0), _VSTD::forward<_A1>(__a1), - _VSTD::forward<_Args>(__args)...); - __h.get_deleter().__first_constructed = true; - __h.get_deleter().__second_constructed = true; - return __h; -} - -#endif // _LIBCPP_HAS_NO_VARIADICS - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -typename map<_Key, _Tp, _Compare, _Allocator>::__node_holder -map<_Key, _Tp, _Compare, _Allocator>::__construct_node_with_key(const key_type& __k) -{ - __node_allocator& __na = __tree_.__node_alloc(); - __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); - __node_traits::construct(__na, _VSTD::addressof(__h->__value_.__cc.first), __k); - __h.get_deleter().__first_constructed = true; - __node_traits::construct(__na, _VSTD::addressof(__h->__value_.__cc.second)); - __h.get_deleter().__second_constructed = true; - return _LIBCPP_EXPLICIT_MOVE(__h); // explicitly moved for C++03 -} - -template -_Tp& -map<_Key, _Tp, _Compare, _Allocator>::operator[](const key_type& __k) -{ - __node_base_pointer __parent; - __node_base_pointer& __child = __find_equal_key(__parent, __k); - __node_pointer __r = static_cast<__node_pointer>(__child); - if (__child == nullptr) - { - __node_holder __h = __construct_node_with_key(__k); - __tree_.__insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); - __r = __h.release(); - } - return __r->__value_.__cc.second; -} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -_Tp& -map<_Key, _Tp, _Compare, _Allocator>::operator[](key_type&& __k) -{ - __node_base_pointer __parent; - __node_base_pointer& __child = __find_equal_key(__parent, __k); - __node_pointer __r = static_cast<__node_pointer>(__child); - if (__child == nullptr) - { - __node_holder __h = __construct_node_with_key(_VSTD::move(__k)); - __tree_.__insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); - __r = __h.release(); - } - return __r->__value_.__cc.second; -} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -_Tp& -map<_Key, _Tp, _Compare, _Allocator>::at(const key_type& __k) -{ - __node_base_pointer __parent; - __node_base_pointer& __child = __find_equal_key(__parent, __k); -#ifndef _LIBCPP_NO_EXCEPTIONS - if (__child == nullptr) - throw out_of_range("map::at: key not found"); -#endif // _LIBCPP_NO_EXCEPTIONS - return static_cast<__node_pointer>(__child)->__value_.__cc.second; -} - -template -const _Tp& -map<_Key, _Tp, _Compare, _Allocator>::at(const key_type& __k) const -{ - __node_base_const_pointer __parent; - __node_base_const_pointer __child = __find_equal_key(__parent, __k); -#ifndef _LIBCPP_NO_EXCEPTIONS - if (__child == nullptr) - throw out_of_range("map::at: key not found"); -#endif // _LIBCPP_NO_EXCEPTIONS - return static_cast<__node_const_pointer>(__child)->__value_.__cc.second; -} - -#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS) - -template -template -pair::iterator, bool> -map<_Key, _Tp, _Compare, _Allocator>::emplace(_Args&& ...__args) -{ - __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...); - pair __r = __tree_.__node_insert_unique(__h.get()); - if (__r.second) - __h.release(); - return __r; -} - -template -template -typename map<_Key, _Tp, _Compare, _Allocator>::iterator -map<_Key, _Tp, _Compare, _Allocator>::emplace_hint(const_iterator __p, - _Args&& ...__args) -{ - __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...); - iterator __r = __tree_.__node_insert_unique(__p.__i_, __h.get()); - if (__r.__i_.__ptr_ == __h.get()) - __h.release(); - return __r; -} - -#endif // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS) - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator==(const map<_Key, _Tp, _Compare, _Allocator>& __x, - const map<_Key, _Tp, _Compare, _Allocator>& __y) -{ - return __x.size() == __y.size() && _VSTD::equal(__x.begin(), __x.end(), __y.begin()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator< (const map<_Key, _Tp, _Compare, _Allocator>& __x, - const map<_Key, _Tp, _Compare, _Allocator>& __y) -{ - return _VSTD::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(const map<_Key, _Tp, _Compare, _Allocator>& __x, - const map<_Key, _Tp, _Compare, _Allocator>& __y) -{ - return !(__x == __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator> (const map<_Key, _Tp, _Compare, _Allocator>& __x, - const map<_Key, _Tp, _Compare, _Allocator>& __y) -{ - return __y < __x; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator>=(const map<_Key, _Tp, _Compare, _Allocator>& __x, - const map<_Key, _Tp, _Compare, _Allocator>& __y) -{ - return !(__x < __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator<=(const map<_Key, _Tp, _Compare, _Allocator>& __x, - const map<_Key, _Tp, _Compare, _Allocator>& __y) -{ - return !(__y < __x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(map<_Key, _Tp, _Compare, _Allocator>& __x, - map<_Key, _Tp, _Compare, _Allocator>& __y) - _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) -{ - __x.swap(__y); -} - -template , - class _Allocator = allocator > > -class _LIBCPP_TYPE_VIS_ONLY multimap -{ -public: - // types: - typedef _Key key_type; - typedef _Tp mapped_type; - typedef pair value_type; - typedef pair __nc_value_type; - typedef _Compare key_compare; - typedef _Allocator allocator_type; - typedef value_type& reference; - typedef const value_type& const_reference; - - class _LIBCPP_TYPE_VIS_ONLY value_compare - : public binary_function - { - friend class multimap; - protected: - key_compare comp; - - _LIBCPP_INLINE_VISIBILITY - value_compare(key_compare c) : comp(c) {} - public: - _LIBCPP_INLINE_VISIBILITY - bool operator()(const value_type& __x, const value_type& __y) const - {return comp(__x.first, __y.first);} - }; - -private: - - typedef _VSTD::__value_type __value_type; - typedef __map_value_compare __vc; - typedef typename __rebind_alloc_helper, - __value_type>::type __allocator_type; - typedef __tree<__value_type, __vc, __allocator_type> __base; - typedef typename __base::__node_traits __node_traits; - typedef allocator_traits __alloc_traits; - - __base __tree_; - -public: - typedef typename __alloc_traits::pointer pointer; - typedef typename __alloc_traits::const_pointer const_pointer; - typedef typename __alloc_traits::size_type size_type; - typedef typename __alloc_traits::difference_type difference_type; - typedef __map_iterator iterator; - typedef __map_const_iterator const_iterator; - typedef _VSTD::reverse_iterator reverse_iterator; - typedef _VSTD::reverse_iterator const_reverse_iterator; - - _LIBCPP_INLINE_VISIBILITY - multimap() - _NOEXCEPT_( - is_nothrow_default_constructible::value && - is_nothrow_default_constructible::value && - is_nothrow_copy_constructible::value) - : __tree_(__vc(key_compare())) {} - - _LIBCPP_INLINE_VISIBILITY - explicit multimap(const key_compare& __comp) - _NOEXCEPT_( - is_nothrow_default_constructible::value && - is_nothrow_copy_constructible::value) - : __tree_(__vc(__comp)) {} - - _LIBCPP_INLINE_VISIBILITY - explicit multimap(const key_compare& __comp, const allocator_type& __a) - : __tree_(__vc(__comp), __a) {} - - template - _LIBCPP_INLINE_VISIBILITY - multimap(_InputIterator __f, _InputIterator __l, - const key_compare& __comp = key_compare()) - : __tree_(__vc(__comp)) - { - insert(__f, __l); - } - - template - _LIBCPP_INLINE_VISIBILITY - multimap(_InputIterator __f, _InputIterator __l, - const key_compare& __comp, const allocator_type& __a) - : __tree_(__vc(__comp), __a) - { - insert(__f, __l); - } - -#if _LIBCPP_STD_VER > 11 - template - _LIBCPP_INLINE_VISIBILITY - multimap(_InputIterator __f, _InputIterator __l, const allocator_type& __a) - : multimap(__f, __l, key_compare(), __a) {} -#endif - - _LIBCPP_INLINE_VISIBILITY - multimap(const multimap& __m) - : __tree_(__m.__tree_.value_comp(), - __alloc_traits::select_on_container_copy_construction(__m.__tree_.__alloc())) - { - insert(__m.begin(), __m.end()); - } - - _LIBCPP_INLINE_VISIBILITY - multimap& operator=(const multimap& __m) - { -#if __cplusplus >= 201103L - __tree_ = __m.__tree_; -#else - if (this != &__m) { - __tree_.clear(); - __tree_.value_comp() = __m.__tree_.value_comp(); - __tree_.__copy_assign_alloc(__m.__tree_); - insert(__m.begin(), __m.end()); - } -#endif - return *this; - } - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - - _LIBCPP_INLINE_VISIBILITY - multimap(multimap&& __m) - _NOEXCEPT_(is_nothrow_move_constructible<__base>::value) - : __tree_(_VSTD::move(__m.__tree_)) - { - } - - multimap(multimap&& __m, const allocator_type& __a); - - _LIBCPP_INLINE_VISIBILITY - multimap& operator=(multimap&& __m) - _NOEXCEPT_(is_nothrow_move_assignable<__base>::value) - { - __tree_ = _VSTD::move(__m.__tree_); - return *this; - } - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - - _LIBCPP_INLINE_VISIBILITY - multimap(initializer_list __il, const key_compare& __comp = key_compare()) - : __tree_(__vc(__comp)) - { - insert(__il.begin(), __il.end()); - } - - _LIBCPP_INLINE_VISIBILITY - multimap(initializer_list __il, const key_compare& __comp, const allocator_type& __a) - : __tree_(__vc(__comp), __a) - { - insert(__il.begin(), __il.end()); - } - -#if _LIBCPP_STD_VER > 11 - _LIBCPP_INLINE_VISIBILITY - multimap(initializer_list __il, const allocator_type& __a) - : multimap(__il, key_compare(), __a) {} -#endif - - _LIBCPP_INLINE_VISIBILITY - multimap& operator=(initializer_list __il) - { - __tree_.__assign_multi(__il.begin(), __il.end()); - return *this; - } - -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - - _LIBCPP_INLINE_VISIBILITY - explicit multimap(const allocator_type& __a) - : __tree_(__a) - { - } - - _LIBCPP_INLINE_VISIBILITY - multimap(const multimap& __m, const allocator_type& __a) - : __tree_(__m.__tree_.value_comp(), __a) - { - insert(__m.begin(), __m.end()); - } - - _LIBCPP_INLINE_VISIBILITY - iterator begin() _NOEXCEPT {return __tree_.begin();} - _LIBCPP_INLINE_VISIBILITY - const_iterator begin() const _NOEXCEPT {return __tree_.begin();} - _LIBCPP_INLINE_VISIBILITY - iterator end() _NOEXCEPT {return __tree_.end();} - _LIBCPP_INLINE_VISIBILITY - const_iterator end() const _NOEXCEPT {return __tree_.end();} - - _LIBCPP_INLINE_VISIBILITY - reverse_iterator rbegin() _NOEXCEPT {return reverse_iterator(end());} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator rbegin() const _NOEXCEPT - {return const_reverse_iterator(end());} - _LIBCPP_INLINE_VISIBILITY - reverse_iterator rend() _NOEXCEPT {return reverse_iterator(begin());} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator rend() const _NOEXCEPT - {return const_reverse_iterator(begin());} - - _LIBCPP_INLINE_VISIBILITY - const_iterator cbegin() const _NOEXCEPT {return begin();} - _LIBCPP_INLINE_VISIBILITY - const_iterator cend() const _NOEXCEPT {return end();} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator crbegin() const _NOEXCEPT {return rbegin();} - _LIBCPP_INLINE_VISIBILITY - const_reverse_iterator crend() const _NOEXCEPT {return rend();} - - _LIBCPP_INLINE_VISIBILITY - bool empty() const _NOEXCEPT {return __tree_.size() == 0;} - _LIBCPP_INLINE_VISIBILITY - size_type size() const _NOEXCEPT {return __tree_.size();} - _LIBCPP_INLINE_VISIBILITY - size_type max_size() const _NOEXCEPT {return __tree_.max_size();} - - _LIBCPP_INLINE_VISIBILITY - allocator_type get_allocator() const _NOEXCEPT {return __tree_.__alloc();} - _LIBCPP_INLINE_VISIBILITY - key_compare key_comp() const {return __tree_.value_comp().key_comp();} - _LIBCPP_INLINE_VISIBILITY - value_compare value_comp() const - {return value_compare(__tree_.value_comp().key_comp());} - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -#ifndef _LIBCPP_HAS_NO_VARIADICS - - template - iterator - emplace(_Args&& ...__args); - - template - iterator - emplace_hint(const_iterator __p, _Args&& ...__args); - -#endif // _LIBCPP_HAS_NO_VARIADICS - - template ::value>::type> - _LIBCPP_INLINE_VISIBILITY - iterator insert(_Pp&& __p) - {return __tree_.__insert_multi(_VSTD::forward<_Pp>(__p));} - - template ::value>::type> - _LIBCPP_INLINE_VISIBILITY - iterator insert(const_iterator __pos, _Pp&& __p) - {return __tree_.__insert_multi(__pos.__i_, _VSTD::forward<_Pp>(__p));} - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - - _LIBCPP_INLINE_VISIBILITY - iterator insert(const value_type& __v) {return __tree_.__insert_multi(__v);} - - _LIBCPP_INLINE_VISIBILITY - iterator insert(const_iterator __p, const value_type& __v) - {return __tree_.__insert_multi(__p.__i_, __v);} - - template - _LIBCPP_INLINE_VISIBILITY - void insert(_InputIterator __f, _InputIterator __l) - { - for (const_iterator __e = cend(); __f != __l; ++__f) - __tree_.__insert_multi(__e.__i_, *__f); - } - -#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - - _LIBCPP_INLINE_VISIBILITY - void insert(initializer_list __il) - {insert(__il.begin(), __il.end());} - -#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS - - _LIBCPP_INLINE_VISIBILITY - iterator erase(const_iterator __p) {return __tree_.erase(__p.__i_);} - _LIBCPP_INLINE_VISIBILITY - iterator erase(iterator __p) {return __tree_.erase(__p.__i_);} - _LIBCPP_INLINE_VISIBILITY - size_type erase(const key_type& __k) {return __tree_.__erase_multi(__k);} - _LIBCPP_INLINE_VISIBILITY - iterator erase(const_iterator __f, const_iterator __l) - {return __tree_.erase(__f.__i_, __l.__i_);} - _LIBCPP_INLINE_VISIBILITY - void clear() {__tree_.clear();} - - _LIBCPP_INLINE_VISIBILITY - void swap(multimap& __m) - _NOEXCEPT_(__is_nothrow_swappable<__base>::value) - {__tree_.swap(__m.__tree_);} - - _LIBCPP_INLINE_VISIBILITY - iterator find(const key_type& __k) {return __tree_.find(__k);} - _LIBCPP_INLINE_VISIBILITY - const_iterator find(const key_type& __k) const {return __tree_.find(__k);} -#if _LIBCPP_STD_VER > 11 - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,iterator>::type - find(const _K2& __k) {return __tree_.find(__k);} - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,const_iterator>::type - find(const _K2& __k) const {return __tree_.find(__k);} -#endif - - _LIBCPP_INLINE_VISIBILITY - size_type count(const key_type& __k) const - {return __tree_.__count_multi(__k);} -#if _LIBCPP_STD_VER > 11 - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,size_type>::type - count(const _K2& __k) const {return __tree_.__count_multi(__k);} -#endif - _LIBCPP_INLINE_VISIBILITY - iterator lower_bound(const key_type& __k) - {return __tree_.lower_bound(__k);} - _LIBCPP_INLINE_VISIBILITY - const_iterator lower_bound(const key_type& __k) const - {return __tree_.lower_bound(__k);} -#if _LIBCPP_STD_VER > 11 - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,iterator>::type - lower_bound(const _K2& __k) {return __tree_.lower_bound(__k);} - - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,const_iterator>::type - lower_bound(const _K2& __k) const {return __tree_.lower_bound(__k);} -#endif - - _LIBCPP_INLINE_VISIBILITY - iterator upper_bound(const key_type& __k) - {return __tree_.upper_bound(__k);} - _LIBCPP_INLINE_VISIBILITY - const_iterator upper_bound(const key_type& __k) const - {return __tree_.upper_bound(__k);} -#if _LIBCPP_STD_VER > 11 - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,iterator>::type - upper_bound(const _K2& __k) {return __tree_.upper_bound(__k);} - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,const_iterator>::type - upper_bound(const _K2& __k) const {return __tree_.upper_bound(__k);} -#endif - - _LIBCPP_INLINE_VISIBILITY - pair equal_range(const key_type& __k) - {return __tree_.__equal_range_multi(__k);} - _LIBCPP_INLINE_VISIBILITY - pair equal_range(const key_type& __k) const - {return __tree_.__equal_range_multi(__k);} -#if _LIBCPP_STD_VER > 11 - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,pair>::type - equal_range(const _K2& __k) {return __tree_.__equal_range_multi(__k);} - template - _LIBCPP_INLINE_VISIBILITY - typename enable_if<__is_transparent<_Compare, _K2>::value,pair>::type - equal_range(const _K2& __k) const {return __tree_.__equal_range_multi(__k);} -#endif - -private: - typedef typename __base::__node __node; - typedef typename __base::__node_allocator __node_allocator; - typedef typename __base::__node_pointer __node_pointer; - typedef typename __base::__node_const_pointer __node_const_pointer; - typedef __map_node_destructor<__node_allocator> _Dp; - typedef unique_ptr<__node, _Dp> __node_holder; - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - __node_holder __construct_node(); - template - __node_holder - __construct_node(_A0&& __a0); -#ifndef _LIBCPP_HAS_NO_VARIADICS - template - __node_holder __construct_node(_A0&& __a0, _A1&& __a1, _Args&& ...__args); -#endif // _LIBCPP_HAS_NO_VARIADICS -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES -}; - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - -template -multimap<_Key, _Tp, _Compare, _Allocator>::multimap(multimap&& __m, const allocator_type& __a) - : __tree_(_VSTD::move(__m.__tree_), __a) -{ - if (__a != __m.get_allocator()) - { - const_iterator __e = cend(); - while (!__m.empty()) - __tree_.__insert_multi(__e.__i_, - _VSTD::move(__m.__tree_.remove(__m.begin().__i_)->__value_)); - } -} - -template -typename multimap<_Key, _Tp, _Compare, _Allocator>::__node_holder -multimap<_Key, _Tp, _Compare, _Allocator>::__construct_node() -{ - __node_allocator& __na = __tree_.__node_alloc(); - __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); - __node_traits::construct(__na, _VSTD::addressof(__h->__value_.__cc.first)); - __h.get_deleter().__first_constructed = true; - __node_traits::construct(__na, _VSTD::addressof(__h->__value_.__cc.second)); - __h.get_deleter().__second_constructed = true; - return __h; -} - -template -template -typename multimap<_Key, _Tp, _Compare, _Allocator>::__node_holder -multimap<_Key, _Tp, _Compare, _Allocator>::__construct_node(_A0&& __a0) -{ - __node_allocator& __na = __tree_.__node_alloc(); - __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); - __node_traits::construct(__na, _VSTD::addressof(__h->__value_), _VSTD::forward<_A0>(__a0)); - __h.get_deleter().__first_constructed = true; - __h.get_deleter().__second_constructed = true; - return __h; -} - -#ifndef _LIBCPP_HAS_NO_VARIADICS - -template -template -typename multimap<_Key, _Tp, _Compare, _Allocator>::__node_holder -multimap<_Key, _Tp, _Compare, _Allocator>::__construct_node(_A0&& __a0, _A1&& __a1, _Args&& ...__args) -{ - __node_allocator& __na = __tree_.__node_alloc(); - __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); - __node_traits::construct(__na, _VSTD::addressof(__h->__value_), - _VSTD::forward<_A0>(__a0), _VSTD::forward<_A1>(__a1), - _VSTD::forward<_Args>(__args)...); - __h.get_deleter().__first_constructed = true; - __h.get_deleter().__second_constructed = true; - return __h; -} - -#endif // _LIBCPP_HAS_NO_VARIADICS -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS) - -template -template -typename multimap<_Key, _Tp, _Compare, _Allocator>::iterator -multimap<_Key, _Tp, _Compare, _Allocator>::emplace(_Args&& ...__args) -{ - __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...); - iterator __r = __tree_.__node_insert_multi(__h.get()); - __h.release(); - return __r; -} - -template -template -typename multimap<_Key, _Tp, _Compare, _Allocator>::iterator -multimap<_Key, _Tp, _Compare, _Allocator>::emplace_hint(const_iterator __p, - _Args&& ...__args) -{ - __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...); - iterator __r = __tree_.__node_insert_multi(__p.__i_, __h.get()); - __h.release(); - return __r; -} - -#endif // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS) - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator==(const multimap<_Key, _Tp, _Compare, _Allocator>& __x, - const multimap<_Key, _Tp, _Compare, _Allocator>& __y) -{ - return __x.size() == __y.size() && _VSTD::equal(__x.begin(), __x.end(), __y.begin()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator< (const multimap<_Key, _Tp, _Compare, _Allocator>& __x, - const multimap<_Key, _Tp, _Compare, _Allocator>& __y) -{ - return _VSTD::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end()); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator!=(const multimap<_Key, _Tp, _Compare, _Allocator>& __x, - const multimap<_Key, _Tp, _Compare, _Allocator>& __y) -{ - return !(__x == __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator> (const multimap<_Key, _Tp, _Compare, _Allocator>& __x, - const multimap<_Key, _Tp, _Compare, _Allocator>& __y) -{ - return __y < __x; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator>=(const multimap<_Key, _Tp, _Compare, _Allocator>& __x, - const multimap<_Key, _Tp, _Compare, _Allocator>& __y) -{ - return !(__x < __y); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -bool -operator<=(const multimap<_Key, _Tp, _Compare, _Allocator>& __x, - const multimap<_Key, _Tp, _Compare, _Allocator>& __y) -{ - return !(__y < __x); -} - -template -inline _LIBCPP_INLINE_VISIBILITY -void -swap(multimap<_Key, _Tp, _Compare, _Allocator>& __x, - multimap<_Key, _Tp, _Compare, _Allocator>& __y) - _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) -{ - __x.swap(__y); -} - -_LIBCPP_END_NAMESPACE_STD - -#endif // _LIBCPP_MAP diff --git a/headers/libs/libc++/math.h b/headers/libs/libc++/math.h deleted file mode 100644 index 20205544d5..0000000000 --- a/headers/libs/libc++/math.h +++ /dev/null @@ -1,1419 +0,0 @@ -// -*- C++ -*- -//===---------------------------- math.h ----------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_MATH_H -#define _LIBCPP_MATH_H - -/* - math.h synopsis - -Macros: - - HUGE_VAL - HUGE_VALF // C99 - HUGE_VALL // C99 - INFINITY // C99 - NAN // C99 - FP_INFINITE // C99 - FP_NAN // C99 - FP_NORMAL // C99 - FP_SUBNORMAL // C99 - FP_ZERO // C99 - FP_FAST_FMA // C99 - FP_FAST_FMAF // C99 - FP_FAST_FMAL // C99 - FP_ILOGB0 // C99 - FP_ILOGBNAN // C99 - MATH_ERRNO // C99 - MATH_ERREXCEPT // C99 - math_errhandling // C99 - -Types: - - float_t // C99 - double_t // C99 - -// C90 - -floating_point abs(floating_point x); - -floating_point acos (arithmetic x); -float acosf(float x); -long double acosl(long double x); - -floating_point asin (arithmetic x); -float asinf(float x); -long double asinl(long double x); - -floating_point atan (arithmetic x); -float atanf(float x); -long double atanl(long double x); - -floating_point atan2 (arithmetic y, arithmetic x); -float atan2f(float y, float x); -long double atan2l(long double y, long double x); - -floating_point ceil (arithmetic x); -float ceilf(float x); -long double ceill(long double x); - -floating_point cos (arithmetic x); -float cosf(float x); -long double cosl(long double x); - -floating_point cosh (arithmetic x); -float coshf(float x); -long double coshl(long double x); - -floating_point exp (arithmetic x); -float expf(float x); -long double expl(long double x); - -floating_point fabs (arithmetic x); -float fabsf(float x); -long double fabsl(long double x); - -floating_point floor (arithmetic x); -float floorf(float x); -long double floorl(long double x); - -floating_point fmod (arithmetic x, arithmetic y); -float fmodf(float x, float y); -long double fmodl(long double x, long double y); - -floating_point frexp (arithmetic value, int* exp); -float frexpf(float value, int* exp); -long double frexpl(long double value, int* exp); - -floating_point ldexp (arithmetic value, int exp); -float ldexpf(float value, int exp); -long double ldexpl(long double value, int exp); - -floating_point log (arithmetic x); -float logf(float x); -long double logl(long double x); - -floating_point log10 (arithmetic x); -float log10f(float x); -long double log10l(long double x); - -floating_point modf (floating_point value, floating_point* iptr); -float modff(float value, float* iptr); -long double modfl(long double value, long double* iptr); - -floating_point pow (arithmetic x, arithmetic y); -float powf(float x, float y); -long double powl(long double x, long double y); - -floating_point sin (arithmetic x); -float sinf(float x); -long double sinl(long double x); - -floating_point sinh (arithmetic x); -float sinhf(float x); -long double sinhl(long double x); - -floating_point sqrt (arithmetic x); -float sqrtf(float x); -long double sqrtl(long double x); - -floating_point tan (arithmetic x); -float tanf(float x); -long double tanl(long double x); - -floating_point tanh (arithmetic x); -float tanhf(float x); -long double tanhl(long double x); - -// C99 - -bool signbit(arithmetic x); - -int fpclassify(arithmetic x); - -bool isfinite(arithmetic x); -bool isinf(arithmetic x); -bool isnan(arithmetic x); -bool isnormal(arithmetic x); - -bool isgreater(arithmetic x, arithmetic y); -bool isgreaterequal(arithmetic x, arithmetic y); -bool isless(arithmetic x, arithmetic y); -bool islessequal(arithmetic x, arithmetic y); -bool islessgreater(arithmetic x, arithmetic y); -bool isunordered(arithmetic x, arithmetic y); - -floating_point acosh (arithmetic x); -float acoshf(float x); -long double acoshl(long double x); - -floating_point asinh (arithmetic x); -float asinhf(float x); -long double asinhl(long double x); - -floating_point atanh (arithmetic x); -float atanhf(float x); -long double atanhl(long double x); - -floating_point cbrt (arithmetic x); -float cbrtf(float x); -long double cbrtl(long double x); - -floating_point copysign (arithmetic x, arithmetic y); -float copysignf(float x, float y); -long double copysignl(long double x, long double y); - -floating_point erf (arithmetic x); -float erff(float x); -long double erfl(long double x); - -floating_point erfc (arithmetic x); -float erfcf(float x); -long double erfcl(long double x); - -floating_point exp2 (arithmetic x); -float exp2f(float x); -long double exp2l(long double x); - -floating_point expm1 (arithmetic x); -float expm1f(float x); -long double expm1l(long double x); - -floating_point fdim (arithmetic x, arithmetic y); -float fdimf(float x, float y); -long double fdiml(long double x, long double y); - -floating_point fma (arithmetic x, arithmetic y, arithmetic z); -float fmaf(float x, float y, float z); -long double fmal(long double x, long double y, long double z); - -floating_point fmax (arithmetic x, arithmetic y); -float fmaxf(float x, float y); -long double fmaxl(long double x, long double y); - -floating_point fmin (arithmetic x, arithmetic y); -float fminf(float x, float y); -long double fminl(long double x, long double y); - -floating_point hypot (arithmetic x, arithmetic y); -float hypotf(float x, float y); -long double hypotl(long double x, long double y); - -int ilogb (arithmetic x); -int ilogbf(float x); -int ilogbl(long double x); - -floating_point lgamma (arithmetic x); -float lgammaf(float x); -long double lgammal(long double x); - -long long llrint (arithmetic x); -long long llrintf(float x); -long long llrintl(long double x); - -long long llround (arithmetic x); -long long llroundf(float x); -long long llroundl(long double x); - -floating_point log1p (arithmetic x); -float log1pf(float x); -long double log1pl(long double x); - -floating_point log2 (arithmetic x); -float log2f(float x); -long double log2l(long double x); - -floating_point logb (arithmetic x); -float logbf(float x); -long double logbl(long double x); - -long lrint (arithmetic x); -long lrintf(float x); -long lrintl(long double x); - -long lround (arithmetic x); -long lroundf(float x); -long lroundl(long double x); - -double nan (const char* str); -float nanf(const char* str); -long double nanl(const char* str); - -floating_point nearbyint (arithmetic x); -float nearbyintf(float x); -long double nearbyintl(long double x); - -floating_point nextafter (arithmetic x, arithmetic y); -float nextafterf(float x, float y); -long double nextafterl(long double x, long double y); - -floating_point nexttoward (arithmetic x, long double y); -float nexttowardf(float x, long double y); -long double nexttowardl(long double x, long double y); - -floating_point remainder (arithmetic x, arithmetic y); -float remainderf(float x, float y); -long double remainderl(long double x, long double y); - -floating_point remquo (arithmetic x, arithmetic y, int* pquo); -float remquof(float x, float y, int* pquo); -long double remquol(long double x, long double y, int* pquo); - -floating_point rint (arithmetic x); -float rintf(float x); -long double rintl(long double x); - -floating_point round (arithmetic x); -float roundf(float x); -long double roundl(long double x); - -floating_point scalbln (arithmetic x, long ex); -float scalblnf(float x, long ex); -long double scalblnl(long double x, long ex); - -floating_point scalbn (arithmetic x, int ex); -float scalbnf(float x, int ex); -long double scalbnl(long double x, int ex); - -floating_point tgamma (arithmetic x); -float tgammaf(float x); -long double tgammal(long double x); - -floating_point trunc (arithmetic x); -float truncf(float x); -long double truncl(long double x); - -*/ - -#include <__config> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -#include_next - -#ifdef __cplusplus - -// We support including .h headers inside 'extern "C"' contexts, so switch -// back to C++ linkage before including these C++ headers. -extern "C++" { - -#include - -#ifdef _LIBCPP_MSVCRT -#include "support/win32/math_win32.h" -#endif - -// signbit - -#ifdef signbit - -template -_LIBCPP_ALWAYS_INLINE -bool -__libcpp_signbit(_A1 __lcpp_x) _NOEXCEPT -{ - return signbit(__lcpp_x); -} - -#undef signbit - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, bool>::type -signbit(_A1 __lcpp_x) _NOEXCEPT -{ - return __libcpp_signbit((typename std::__promote<_A1>::type)__lcpp_x); -} - -#endif // signbit - -// fpclassify - -#ifdef fpclassify - -template -_LIBCPP_ALWAYS_INLINE -int -__libcpp_fpclassify(_A1 __lcpp_x) _NOEXCEPT -{ - return fpclassify(__lcpp_x); -} - -#undef fpclassify - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, int>::type -fpclassify(_A1 __lcpp_x) _NOEXCEPT -{ - return __libcpp_fpclassify((typename std::__promote<_A1>::type)__lcpp_x); -} - -#endif // fpclassify - -// isfinite - -#ifdef isfinite - -template -_LIBCPP_ALWAYS_INLINE -bool -__libcpp_isfinite(_A1 __lcpp_x) _NOEXCEPT -{ - return isfinite(__lcpp_x); -} - -#undef isfinite - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, bool>::type -isfinite(_A1 __lcpp_x) _NOEXCEPT -{ - return __libcpp_isfinite((typename std::__promote<_A1>::type)__lcpp_x); -} - -#endif // isfinite - -// isinf - -#ifdef isinf - -template -_LIBCPP_ALWAYS_INLINE -bool -__libcpp_isinf(_A1 __lcpp_x) _NOEXCEPT -{ - return isinf(__lcpp_x); -} - -#undef isinf - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, bool>::type -isinf(_A1 __lcpp_x) _NOEXCEPT -{ - return __libcpp_isinf((typename std::__promote<_A1>::type)__lcpp_x); -} - -#endif // isinf - -// isnan - -#ifdef isnan - -template -_LIBCPP_ALWAYS_INLINE -bool -__libcpp_isnan(_A1 __lcpp_x) _NOEXCEPT -{ - return isnan(__lcpp_x); -} - -#undef isnan - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, bool>::type -isnan(_A1 __lcpp_x) _NOEXCEPT -{ - return __libcpp_isnan((typename std::__promote<_A1>::type)__lcpp_x); -} - -#endif // isnan - -// isnormal - -#ifdef isnormal - -template -_LIBCPP_ALWAYS_INLINE -bool -__libcpp_isnormal(_A1 __lcpp_x) _NOEXCEPT -{ - return isnormal(__lcpp_x); -} - -#undef isnormal - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, bool>::type -isnormal(_A1 __lcpp_x) _NOEXCEPT -{ - return __libcpp_isnormal((typename std::__promote<_A1>::type)__lcpp_x); -} - -#endif // isnormal - -// isgreater - -#ifdef isgreater - -template -_LIBCPP_ALWAYS_INLINE -bool -__libcpp_isgreater(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - return isgreater(__lcpp_x, __lcpp_y); -} - -#undef isgreater - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value, - bool ->::type -isgreater(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2>::type type; - return __libcpp_isgreater((type)__lcpp_x, (type)__lcpp_y); -} - -#endif // isgreater - -// isgreaterequal - -#ifdef isgreaterequal - -template -_LIBCPP_ALWAYS_INLINE -bool -__libcpp_isgreaterequal(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - return isgreaterequal(__lcpp_x, __lcpp_y); -} - -#undef isgreaterequal - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value, - bool ->::type -isgreaterequal(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2>::type type; - return __libcpp_isgreaterequal((type)__lcpp_x, (type)__lcpp_y); -} - -#endif // isgreaterequal - -// isless - -#ifdef isless - -template -_LIBCPP_ALWAYS_INLINE -bool -__libcpp_isless(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - return isless(__lcpp_x, __lcpp_y); -} - -#undef isless - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value, - bool ->::type -isless(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2>::type type; - return __libcpp_isless((type)__lcpp_x, (type)__lcpp_y); -} - -#endif // isless - -// islessequal - -#ifdef islessequal - -template -_LIBCPP_ALWAYS_INLINE -bool -__libcpp_islessequal(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - return islessequal(__lcpp_x, __lcpp_y); -} - -#undef islessequal - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value, - bool ->::type -islessequal(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2>::type type; - return __libcpp_islessequal((type)__lcpp_x, (type)__lcpp_y); -} - -#endif // islessequal - -// islessgreater - -#ifdef islessgreater - -template -_LIBCPP_ALWAYS_INLINE -bool -__libcpp_islessgreater(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - return islessgreater(__lcpp_x, __lcpp_y); -} - -#undef islessgreater - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value, - bool ->::type -islessgreater(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2>::type type; - return __libcpp_islessgreater((type)__lcpp_x, (type)__lcpp_y); -} - -#endif // islessgreater - -// isunordered - -#ifdef isunordered - -template -_LIBCPP_ALWAYS_INLINE -bool -__libcpp_isunordered(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - return isunordered(__lcpp_x, __lcpp_y); -} - -#undef isunordered - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value, - bool ->::type -isunordered(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2>::type type; - return __libcpp_isunordered((type)__lcpp_x, (type)__lcpp_y); -} - -#endif // isunordered - -#ifndef __sun__ - -// abs - -#if !defined(_AIX) -inline _LIBCPP_INLINE_VISIBILITY -float -abs(float __lcpp_x) _NOEXCEPT {return fabsf(__lcpp_x);} - -inline _LIBCPP_INLINE_VISIBILITY -double -abs(double __lcpp_x) _NOEXCEPT {return fabs(__lcpp_x);} - -inline _LIBCPP_INLINE_VISIBILITY -long double -abs(long double __lcpp_x) _NOEXCEPT {return fabsl(__lcpp_x);} -#endif // !defined(_AIX) - -// acos - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float acos(float __lcpp_x) _NOEXCEPT {return acosf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double acos(long double __lcpp_x) _NOEXCEPT {return acosl(__lcpp_x);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -acos(_A1 __lcpp_x) _NOEXCEPT {return acos((double)__lcpp_x);} - -// asin - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float asin(float __lcpp_x) _NOEXCEPT {return asinf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double asin(long double __lcpp_x) _NOEXCEPT {return asinl(__lcpp_x);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -asin(_A1 __lcpp_x) _NOEXCEPT {return asin((double)__lcpp_x);} - -// atan - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float atan(float __lcpp_x) _NOEXCEPT {return atanf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double atan(long double __lcpp_x) _NOEXCEPT {return atanl(__lcpp_x);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -atan(_A1 __lcpp_x) _NOEXCEPT {return atan((double)__lcpp_x);} - -// atan2 - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float atan2(float __lcpp_y, float __lcpp_x) _NOEXCEPT {return atan2f(__lcpp_y, __lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double atan2(long double __lcpp_y, long double __lcpp_x) _NOEXCEPT {return atan2l(__lcpp_y, __lcpp_x);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::__lazy_enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value, - std::__promote<_A1, _A2> ->::type -atan2(_A1 __lcpp_y, _A2 __lcpp_x) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2>::type __result_type; - static_assert((!(std::is_same<_A1, __result_type>::value && - std::is_same<_A2, __result_type>::value)), ""); - return atan2((__result_type)__lcpp_y, (__result_type)__lcpp_x); -} - -// ceil - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float ceil(float __lcpp_x) _NOEXCEPT {return ceilf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double ceil(long double __lcpp_x) _NOEXCEPT {return ceill(__lcpp_x);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -ceil(_A1 __lcpp_x) _NOEXCEPT {return ceil((double)__lcpp_x);} - -// cos - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float cos(float __lcpp_x) _NOEXCEPT {return cosf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double cos(long double __lcpp_x) _NOEXCEPT {return cosl(__lcpp_x);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -cos(_A1 __lcpp_x) _NOEXCEPT {return cos((double)__lcpp_x);} - -// cosh - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float cosh(float __lcpp_x) _NOEXCEPT {return coshf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double cosh(long double __lcpp_x) _NOEXCEPT {return coshl(__lcpp_x);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -cosh(_A1 __lcpp_x) _NOEXCEPT {return cosh((double)__lcpp_x);} - -// exp - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float exp(float __lcpp_x) _NOEXCEPT {return expf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double exp(long double __lcpp_x) _NOEXCEPT {return expl(__lcpp_x);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -exp(_A1 __lcpp_x) _NOEXCEPT {return exp((double)__lcpp_x);} - -// fabs - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float fabs(float __lcpp_x) _NOEXCEPT {return fabsf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double fabs(long double __lcpp_x) _NOEXCEPT {return fabsl(__lcpp_x);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -fabs(_A1 __lcpp_x) _NOEXCEPT {return fabs((double)__lcpp_x);} - -// floor - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float floor(float __lcpp_x) _NOEXCEPT {return floorf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double floor(long double __lcpp_x) _NOEXCEPT {return floorl(__lcpp_x);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -floor(_A1 __lcpp_x) _NOEXCEPT {return floor((double)__lcpp_x);} - -// fmod - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float fmod(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return fmodf(__lcpp_x, __lcpp_y);} -inline _LIBCPP_INLINE_VISIBILITY long double fmod(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return fmodl(__lcpp_x, __lcpp_y);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::__lazy_enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value, - std::__promote<_A1, _A2> ->::type -fmod(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2>::type __result_type; - static_assert((!(std::is_same<_A1, __result_type>::value && - std::is_same<_A2, __result_type>::value)), ""); - return fmod((__result_type)__lcpp_x, (__result_type)__lcpp_y); -} - -// frexp - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float frexp(float __lcpp_x, int* __lcpp_e) _NOEXCEPT {return frexpf(__lcpp_x, __lcpp_e);} -inline _LIBCPP_INLINE_VISIBILITY long double frexp(long double __lcpp_x, int* __lcpp_e) _NOEXCEPT {return frexpl(__lcpp_x, __lcpp_e);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -frexp(_A1 __lcpp_x, int* __lcpp_e) _NOEXCEPT {return frexp((double)__lcpp_x, __lcpp_e);} - -// ldexp - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float ldexp(float __lcpp_x, int __lcpp_e) _NOEXCEPT {return ldexpf(__lcpp_x, __lcpp_e);} -inline _LIBCPP_INLINE_VISIBILITY long double ldexp(long double __lcpp_x, int __lcpp_e) _NOEXCEPT {return ldexpl(__lcpp_x, __lcpp_e);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -ldexp(_A1 __lcpp_x, int __lcpp_e) _NOEXCEPT {return ldexp((double)__lcpp_x, __lcpp_e);} - -// log - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float log(float __lcpp_x) _NOEXCEPT {return logf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double log(long double __lcpp_x) _NOEXCEPT {return logl(__lcpp_x);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -log(_A1 __lcpp_x) _NOEXCEPT {return log((double)__lcpp_x);} - -// log10 - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float log10(float __lcpp_x) _NOEXCEPT {return log10f(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double log10(long double __lcpp_x) _NOEXCEPT {return log10l(__lcpp_x);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -log10(_A1 __lcpp_x) _NOEXCEPT {return log10((double)__lcpp_x);} - -// modf - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float modf(float __lcpp_x, float* __lcpp_y) _NOEXCEPT {return modff(__lcpp_x, __lcpp_y);} -inline _LIBCPP_INLINE_VISIBILITY long double modf(long double __lcpp_x, long double* __lcpp_y) _NOEXCEPT {return modfl(__lcpp_x, __lcpp_y);} -#endif - -// pow - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float pow(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return powf(__lcpp_x, __lcpp_y);} -inline _LIBCPP_INLINE_VISIBILITY long double pow(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return powl(__lcpp_x, __lcpp_y);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::__lazy_enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value, - std::__promote<_A1, _A2> ->::type -pow(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2>::type __result_type; - static_assert((!(std::is_same<_A1, __result_type>::value && - std::is_same<_A2, __result_type>::value)), ""); - return pow((__result_type)__lcpp_x, (__result_type)__lcpp_y); -} - -// sin - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float sin(float __lcpp_x) _NOEXCEPT {return sinf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double sin(long double __lcpp_x) _NOEXCEPT {return sinl(__lcpp_x);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -sin(_A1 __lcpp_x) _NOEXCEPT {return sin((double)__lcpp_x);} - -// sinh - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float sinh(float __lcpp_x) _NOEXCEPT {return sinhf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double sinh(long double __lcpp_x) _NOEXCEPT {return sinhl(__lcpp_x);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -sinh(_A1 __lcpp_x) _NOEXCEPT {return sinh((double)__lcpp_x);} - -// sqrt - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float sqrt(float __lcpp_x) _NOEXCEPT {return sqrtf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double sqrt(long double __lcpp_x) _NOEXCEPT {return sqrtl(__lcpp_x);} -#endif - -#endif // __sun__ -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -sqrt(_A1 __lcpp_x) _NOEXCEPT {return sqrt((double)__lcpp_x);} -#ifndef __sun__ - -// tan - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float tan(float __lcpp_x) _NOEXCEPT {return tanf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double tan(long double __lcpp_x) _NOEXCEPT {return tanl(__lcpp_x);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -tan(_A1 __lcpp_x) _NOEXCEPT {return tan((double)__lcpp_x);} - -// tanh - -#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) -inline _LIBCPP_INLINE_VISIBILITY float tanh(float __lcpp_x) _NOEXCEPT {return tanhf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double tanh(long double __lcpp_x) _NOEXCEPT {return tanhl(__lcpp_x);} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -tanh(_A1 __lcpp_x) _NOEXCEPT {return tanh((double)__lcpp_x);} - -// acosh - -#ifndef _LIBCPP_MSVCRT -inline _LIBCPP_INLINE_VISIBILITY float acosh(float __lcpp_x) _NOEXCEPT {return acoshf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double acosh(long double __lcpp_x) _NOEXCEPT {return acoshl(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -acosh(_A1 __lcpp_x) _NOEXCEPT {return acosh((double)__lcpp_x);} -#endif - -// asinh - -#ifndef _LIBCPP_MSVCRT -inline _LIBCPP_INLINE_VISIBILITY float asinh(float __lcpp_x) _NOEXCEPT {return asinhf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double asinh(long double __lcpp_x) _NOEXCEPT {return asinhl(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -asinh(_A1 __lcpp_x) _NOEXCEPT {return asinh((double)__lcpp_x);} -#endif - -// atanh - -#ifndef _LIBCPP_MSVCRT -inline _LIBCPP_INLINE_VISIBILITY float atanh(float __lcpp_x) _NOEXCEPT {return atanhf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double atanh(long double __lcpp_x) _NOEXCEPT {return atanhl(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -atanh(_A1 __lcpp_x) _NOEXCEPT {return atanh((double)__lcpp_x);} -#endif - -// cbrt - -#ifndef _LIBCPP_MSVCRT -inline _LIBCPP_INLINE_VISIBILITY float cbrt(float __lcpp_x) _NOEXCEPT {return cbrtf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double cbrt(long double __lcpp_x) _NOEXCEPT {return cbrtl(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -cbrt(_A1 __lcpp_x) _NOEXCEPT {return cbrt((double)__lcpp_x);} -#endif - -// copysign - -#if !defined(_VC_CRT_MAJOR_VERSION) || (_VC_CRT_MAJOR_VERSION < 12) -inline _LIBCPP_INLINE_VISIBILITY float copysign(float __lcpp_x, - float __lcpp_y) _NOEXCEPT { - return copysignf(__lcpp_x, __lcpp_y); -} -inline _LIBCPP_INLINE_VISIBILITY long double -copysign(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT { - return copysignl(__lcpp_x, __lcpp_y); -} -#endif - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::__lazy_enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value, - std::__promote<_A1, _A2> ->::type -copysign(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2>::type __result_type; - static_assert((!(std::is_same<_A1, __result_type>::value && - std::is_same<_A2, __result_type>::value)), ""); - return copysign((__result_type)__lcpp_x, (__result_type)__lcpp_y); -} - -#ifndef _LIBCPP_MSVCRT - -// erf - -inline _LIBCPP_INLINE_VISIBILITY float erf(float __lcpp_x) _NOEXCEPT {return erff(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double erf(long double __lcpp_x) _NOEXCEPT {return erfl(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -erf(_A1 __lcpp_x) _NOEXCEPT {return erf((double)__lcpp_x);} - -// erfc - -inline _LIBCPP_INLINE_VISIBILITY float erfc(float __lcpp_x) _NOEXCEPT {return erfcf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double erfc(long double __lcpp_x) _NOEXCEPT {return erfcl(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -erfc(_A1 __lcpp_x) _NOEXCEPT {return erfc((double)__lcpp_x);} - -// exp2 - -inline _LIBCPP_INLINE_VISIBILITY float exp2(float __lcpp_x) _NOEXCEPT {return exp2f(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double exp2(long double __lcpp_x) _NOEXCEPT {return exp2l(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -exp2(_A1 __lcpp_x) _NOEXCEPT {return exp2((double)__lcpp_x);} - -// expm1 - -inline _LIBCPP_INLINE_VISIBILITY float expm1(float __lcpp_x) _NOEXCEPT {return expm1f(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double expm1(long double __lcpp_x) _NOEXCEPT {return expm1l(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -expm1(_A1 __lcpp_x) _NOEXCEPT {return expm1((double)__lcpp_x);} - -// fdim - -inline _LIBCPP_INLINE_VISIBILITY float fdim(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return fdimf(__lcpp_x, __lcpp_y);} -inline _LIBCPP_INLINE_VISIBILITY long double fdim(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return fdiml(__lcpp_x, __lcpp_y);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::__lazy_enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value, - std::__promote<_A1, _A2> ->::type -fdim(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2>::type __result_type; - static_assert((!(std::is_same<_A1, __result_type>::value && - std::is_same<_A2, __result_type>::value)), ""); - return fdim((__result_type)__lcpp_x, (__result_type)__lcpp_y); -} - -// fma - -inline _LIBCPP_INLINE_VISIBILITY float fma(float __lcpp_x, float __lcpp_y, float __lcpp_z) _NOEXCEPT {return fmaf(__lcpp_x, __lcpp_y, __lcpp_z);} -inline _LIBCPP_INLINE_VISIBILITY long double fma(long double __lcpp_x, long double __lcpp_y, long double __lcpp_z) _NOEXCEPT {return fmal(__lcpp_x, __lcpp_y, __lcpp_z);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::__lazy_enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value && - std::is_arithmetic<_A3>::value, - std::__promote<_A1, _A2, _A3> ->::type -fma(_A1 __lcpp_x, _A2 __lcpp_y, _A3 __lcpp_z) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2, _A3>::type __result_type; - static_assert((!(std::is_same<_A1, __result_type>::value && - std::is_same<_A2, __result_type>::value && - std::is_same<_A3, __result_type>::value)), ""); - return fma((__result_type)__lcpp_x, (__result_type)__lcpp_y, (__result_type)__lcpp_z); -} - -// fmax - -inline _LIBCPP_INLINE_VISIBILITY float fmax(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return fmaxf(__lcpp_x, __lcpp_y);} -inline _LIBCPP_INLINE_VISIBILITY long double fmax(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return fmaxl(__lcpp_x, __lcpp_y);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::__lazy_enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value, - std::__promote<_A1, _A2> ->::type -fmax(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2>::type __result_type; - static_assert((!(std::is_same<_A1, __result_type>::value && - std::is_same<_A2, __result_type>::value)), ""); - return fmax((__result_type)__lcpp_x, (__result_type)__lcpp_y); -} - -// fmin - -inline _LIBCPP_INLINE_VISIBILITY float fmin(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return fminf(__lcpp_x, __lcpp_y);} -inline _LIBCPP_INLINE_VISIBILITY long double fmin(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return fminl(__lcpp_x, __lcpp_y);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::__lazy_enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value, - std::__promote<_A1, _A2> ->::type -fmin(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2>::type __result_type; - static_assert((!(std::is_same<_A1, __result_type>::value && - std::is_same<_A2, __result_type>::value)), ""); - return fmin((__result_type)__lcpp_x, (__result_type)__lcpp_y); -} - -// hypot - -inline _LIBCPP_INLINE_VISIBILITY float hypot(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return hypotf(__lcpp_x, __lcpp_y);} -inline _LIBCPP_INLINE_VISIBILITY long double hypot(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return hypotl(__lcpp_x, __lcpp_y);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::__lazy_enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value, - std::__promote<_A1, _A2> ->::type -hypot(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2>::type __result_type; - static_assert((!(std::is_same<_A1, __result_type>::value && - std::is_same<_A2, __result_type>::value)), ""); - return hypot((__result_type)__lcpp_x, (__result_type)__lcpp_y); -} - -// ilogb - -inline _LIBCPP_INLINE_VISIBILITY int ilogb(float __lcpp_x) _NOEXCEPT {return ilogbf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY int ilogb(long double __lcpp_x) _NOEXCEPT {return ilogbl(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, int>::type -ilogb(_A1 __lcpp_x) _NOEXCEPT {return ilogb((double)__lcpp_x);} - -// lgamma - -inline _LIBCPP_INLINE_VISIBILITY float lgamma(float __lcpp_x) _NOEXCEPT {return lgammaf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double lgamma(long double __lcpp_x) _NOEXCEPT {return lgammal(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -lgamma(_A1 __lcpp_x) _NOEXCEPT {return lgamma((double)__lcpp_x);} - -// llrint - -inline _LIBCPP_INLINE_VISIBILITY long long llrint(float __lcpp_x) _NOEXCEPT {return llrintf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long long llrint(long double __lcpp_x) _NOEXCEPT {return llrintl(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, long long>::type -llrint(_A1 __lcpp_x) _NOEXCEPT {return llrint((double)__lcpp_x);} - -// llround - -inline _LIBCPP_INLINE_VISIBILITY long long llround(float __lcpp_x) _NOEXCEPT {return llroundf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long long llround(long double __lcpp_x) _NOEXCEPT {return llroundl(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, long long>::type -llround(_A1 __lcpp_x) _NOEXCEPT {return llround((double)__lcpp_x);} - -// log1p - -inline _LIBCPP_INLINE_VISIBILITY float log1p(float __lcpp_x) _NOEXCEPT {return log1pf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double log1p(long double __lcpp_x) _NOEXCEPT {return log1pl(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -log1p(_A1 __lcpp_x) _NOEXCEPT {return log1p((double)__lcpp_x);} - -// log2 - -inline _LIBCPP_INLINE_VISIBILITY float log2(float __lcpp_x) _NOEXCEPT {return log2f(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double log2(long double __lcpp_x) _NOEXCEPT {return log2l(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -log2(_A1 __lcpp_x) _NOEXCEPT {return log2((double)__lcpp_x);} - -// logb - -inline _LIBCPP_INLINE_VISIBILITY float logb(float __lcpp_x) _NOEXCEPT {return logbf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double logb(long double __lcpp_x) _NOEXCEPT {return logbl(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -logb(_A1 __lcpp_x) _NOEXCEPT {return logb((double)__lcpp_x);} - -// lrint - -inline _LIBCPP_INLINE_VISIBILITY long lrint(float __lcpp_x) _NOEXCEPT {return lrintf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long lrint(long double __lcpp_x) _NOEXCEPT {return lrintl(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, long>::type -lrint(_A1 __lcpp_x) _NOEXCEPT {return lrint((double)__lcpp_x);} - -// lround - -inline _LIBCPP_INLINE_VISIBILITY long lround(float __lcpp_x) _NOEXCEPT {return lroundf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long lround(long double __lcpp_x) _NOEXCEPT {return lroundl(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, long>::type -lround(_A1 __lcpp_x) _NOEXCEPT {return lround((double)__lcpp_x);} - -// nan - -// nearbyint - -inline _LIBCPP_INLINE_VISIBILITY float nearbyint(float __lcpp_x) _NOEXCEPT {return nearbyintf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double nearbyint(long double __lcpp_x) _NOEXCEPT {return nearbyintl(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -nearbyint(_A1 __lcpp_x) _NOEXCEPT {return nearbyint((double)__lcpp_x);} - -// nextafter - -inline _LIBCPP_INLINE_VISIBILITY float nextafter(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return nextafterf(__lcpp_x, __lcpp_y);} -inline _LIBCPP_INLINE_VISIBILITY long double nextafter(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return nextafterl(__lcpp_x, __lcpp_y);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::__lazy_enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value, - std::__promote<_A1, _A2> ->::type -nextafter(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2>::type __result_type; - static_assert((!(std::is_same<_A1, __result_type>::value && - std::is_same<_A2, __result_type>::value)), ""); - return nextafter((__result_type)__lcpp_x, (__result_type)__lcpp_y); -} - -// nexttoward - -inline _LIBCPP_INLINE_VISIBILITY float nexttoward(float __lcpp_x, long double __lcpp_y) _NOEXCEPT {return nexttowardf(__lcpp_x, __lcpp_y);} -inline _LIBCPP_INLINE_VISIBILITY long double nexttoward(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return nexttowardl(__lcpp_x, __lcpp_y);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -nexttoward(_A1 __lcpp_x, long double __lcpp_y) _NOEXCEPT {return nexttoward((double)__lcpp_x, __lcpp_y);} - -// remainder - -inline _LIBCPP_INLINE_VISIBILITY float remainder(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return remainderf(__lcpp_x, __lcpp_y);} -inline _LIBCPP_INLINE_VISIBILITY long double remainder(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return remainderl(__lcpp_x, __lcpp_y);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::__lazy_enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value, - std::__promote<_A1, _A2> ->::type -remainder(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2>::type __result_type; - static_assert((!(std::is_same<_A1, __result_type>::value && - std::is_same<_A2, __result_type>::value)), ""); - return remainder((__result_type)__lcpp_x, (__result_type)__lcpp_y); -} - -// remquo - -inline _LIBCPP_INLINE_VISIBILITY float remquo(float __lcpp_x, float __lcpp_y, int* __lcpp_z) _NOEXCEPT {return remquof(__lcpp_x, __lcpp_y, __lcpp_z);} -inline _LIBCPP_INLINE_VISIBILITY long double remquo(long double __lcpp_x, long double __lcpp_y, int* __lcpp_z) _NOEXCEPT {return remquol(__lcpp_x, __lcpp_y, __lcpp_z);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::__lazy_enable_if -< - std::is_arithmetic<_A1>::value && - std::is_arithmetic<_A2>::value, - std::__promote<_A1, _A2> ->::type -remquo(_A1 __lcpp_x, _A2 __lcpp_y, int* __lcpp_z) _NOEXCEPT -{ - typedef typename std::__promote<_A1, _A2>::type __result_type; - static_assert((!(std::is_same<_A1, __result_type>::value && - std::is_same<_A2, __result_type>::value)), ""); - return remquo((__result_type)__lcpp_x, (__result_type)__lcpp_y, __lcpp_z); -} - -// rint - -inline _LIBCPP_INLINE_VISIBILITY float rint(float __lcpp_x) _NOEXCEPT {return rintf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double rint(long double __lcpp_x) _NOEXCEPT {return rintl(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -rint(_A1 __lcpp_x) _NOEXCEPT {return rint((double)__lcpp_x);} - -// round - -inline _LIBCPP_INLINE_VISIBILITY float round(float __lcpp_x) _NOEXCEPT {return roundf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double round(long double __lcpp_x) _NOEXCEPT {return roundl(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -round(_A1 __lcpp_x) _NOEXCEPT {return round((double)__lcpp_x);} - -// scalbln - -inline _LIBCPP_INLINE_VISIBILITY float scalbln(float __lcpp_x, long __lcpp_y) _NOEXCEPT {return scalblnf(__lcpp_x, __lcpp_y);} -inline _LIBCPP_INLINE_VISIBILITY long double scalbln(long double __lcpp_x, long __lcpp_y) _NOEXCEPT {return scalblnl(__lcpp_x, __lcpp_y);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -scalbln(_A1 __lcpp_x, long __lcpp_y) _NOEXCEPT {return scalbln((double)__lcpp_x, __lcpp_y);} - -// scalbn - -inline _LIBCPP_INLINE_VISIBILITY float scalbn(float __lcpp_x, int __lcpp_y) _NOEXCEPT {return scalbnf(__lcpp_x, __lcpp_y);} -inline _LIBCPP_INLINE_VISIBILITY long double scalbn(long double __lcpp_x, int __lcpp_y) _NOEXCEPT {return scalbnl(__lcpp_x, __lcpp_y);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -scalbn(_A1 __lcpp_x, int __lcpp_y) _NOEXCEPT {return scalbn((double)__lcpp_x, __lcpp_y);} - -// tgamma - -inline _LIBCPP_INLINE_VISIBILITY float tgamma(float __lcpp_x) _NOEXCEPT {return tgammaf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double tgamma(long double __lcpp_x) _NOEXCEPT {return tgammal(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -tgamma(_A1 __lcpp_x) _NOEXCEPT {return tgamma((double)__lcpp_x);} - -// trunc - -inline _LIBCPP_INLINE_VISIBILITY float trunc(float __lcpp_x) _NOEXCEPT {return truncf(__lcpp_x);} -inline _LIBCPP_INLINE_VISIBILITY long double trunc(long double __lcpp_x) _NOEXCEPT {return truncl(__lcpp_x);} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename std::enable_if::value, double>::type -trunc(_A1 __lcpp_x) _NOEXCEPT {return trunc((double)__lcpp_x);} - -#endif // !_LIBCPP_MSVCRT -#endif // __sun__ - -} // extern "C++" - -#endif // __cplusplus - -#endif // _LIBCPP_MATH_H diff --git a/headers/libs/libc++/memory b/headers/libs/libc++/memory deleted file mode 100644 index a162eafe67..0000000000 --- a/headers/libs/libc++/memory +++ /dev/null @@ -1,5637 +0,0 @@ -// -*- C++ -*- -//===-------------------------- memory ------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP_MEMORY -#define _LIBCPP_MEMORY - -/* - memory synopsis - -namespace std -{ - -struct allocator_arg_t { }; -constexpr allocator_arg_t allocator_arg = allocator_arg_t(); - -template struct uses_allocator; - -template -struct pointer_traits -{ - typedef Ptr pointer; - typedef
    element_type; - typedef
    difference_type; - - template using rebind =
    ; - - static pointer pointer_to(
    ); -}; - -template -struct pointer_traits -{ - typedef T* pointer; - typedef T element_type; - typedef ptrdiff_t difference_type; - - template using rebind = U*; - - static pointer pointer_to(
    ) noexcept; -}; - -template -struct allocator_traits -{ - typedef Alloc allocator_type; - typedef typename allocator_type::value_type - value_type; - - typedef Alloc::pointer | value_type* pointer; - typedef Alloc::const_pointer - | pointer_traits::rebind - const_pointer; - typedef Alloc::void_pointer - | pointer_traits::rebind - void_pointer; - typedef Alloc::const_void_pointer - | pointer_traits::rebind - const_void_pointer; - typedef Alloc::difference_type - | pointer_traits::difference_type - difference_type; - typedef Alloc::size_type - | make_unsigned::type - size_type; - typedef Alloc::propagate_on_container_copy_assignment - | false_type propagate_on_container_copy_assignment; - typedef Alloc::propagate_on_container_move_assignment - | false_type propagate_on_container_move_assignment; - typedef Alloc::propagate_on_container_swap - | false_type propagate_on_container_swap; - typedef Alloc::is_always_equal - | is_empty is_always_equal; - - template using rebind_alloc = Alloc::rebind::other | Alloc; - template using rebind_traits = allocator_traits>; - - static pointer allocate(allocator_type& a, size_type n); - static pointer allocate(allocator_type& a, size_type n, const_void_pointer hint); - - static void deallocate(allocator_type& a, pointer p, size_type n) noexcept; - - template - static void construct(allocator_type& a, T* p, Args&&... args); - - template - static void destroy(allocator_type& a, T* p); - - static size_type max_size(const allocator_type& a); // noexcept in C++14 - - static allocator_type - select_on_container_copy_construction(const allocator_type& a); -}; - -template <> -class allocator -{ -public: - typedef void* pointer; - typedef const void* const_pointer; - typedef void value_type; - - template struct rebind {typedef allocator<_Up> other;}; -}; - -template -class allocator -{ -public: - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef T* pointer; - typedef const T* const_pointer; - typedef typename add_lvalue_reference::type reference; - typedef typename add_lvalue_reference::type const_reference; - typedef T value_type; - - template struct rebind {typedef allocator other;}; - - allocator() noexcept; - allocator(const allocator&) noexcept; - template allocator(const allocator&) noexcept; - ~allocator(); - pointer address(reference x) const noexcept; - const_pointer address(const_reference x) const noexcept; - pointer allocate(size_type, allocator::const_pointer hint = 0); - void deallocate(pointer p, size_type n) noexcept; - size_type max_size() const noexcept; - template - void construct(U* p, Args&&... args); - template - void destroy(U* p); -}; - -template -bool operator==(const allocator&, const allocator&) noexcept; - -template -bool operator!=(const allocator&, const allocator&) noexcept; - -template -class raw_storage_iterator - : public iterator // purposefully not C++03 -{ -public: - explicit raw_storage_iterator(OutputIterator x); - raw_storage_iterator& operator*(); - raw_storage_iterator& operator=(const T& element); - raw_storage_iterator& operator++(); - raw_storage_iterator operator++(int); -}; - -template pair get_temporary_buffer(ptrdiff_t n) noexcept; -template void return_temporary_buffer(T* p) noexcept; - -template T* addressof(T& r) noexcept; - -template -ForwardIterator -uninitialized_copy(InputIterator first, InputIterator last, ForwardIterator result); - -template -ForwardIterator -uninitialized_copy_n(InputIterator first, Size n, ForwardIterator result); - -template -void uninitialized_fill(ForwardIterator first, ForwardIterator last, const T& x); - -template -ForwardIterator -uninitialized_fill_n(ForwardIterator first, Size n, const T& x); - -template struct auto_ptr_ref {}; - -template -class auto_ptr -{ -public: - typedef X element_type; - - explicit auto_ptr(X* p =0) throw(); - auto_ptr(auto_ptr&) throw(); - template auto_ptr(auto_ptr&) throw(); - auto_ptr& operator=(auto_ptr&) throw(); - template auto_ptr& operator=(auto_ptr&) throw(); - auto_ptr& operator=(auto_ptr_ref r) throw(); - ~auto_ptr() throw(); - - typename add_lvalue_reference::type operator*() const throw(); - X* operator->() const throw(); - X* get() const throw(); - X* release() throw(); - void reset(X* p =0) throw(); - - auto_ptr(auto_ptr_ref) throw(); - template operator auto_ptr_ref() throw(); - template operator auto_ptr() throw(); -}; - -template -struct default_delete -{ - constexpr default_delete() noexcept = default; - template default_delete(const default_delete&) noexcept; - - void operator()(T*) const noexcept; -}; - -template -struct default_delete -{ - constexpr default_delete() noexcept = default; - void operator()(T*) const noexcept; - template void operator()(U*) const = delete; -}; - -template > -class unique_ptr -{ -public: - typedef see below pointer; - typedef T element_type; - typedef D deleter_type; - - // constructors - constexpr unique_ptr() noexcept; - explicit unique_ptr(pointer p) noexcept; - unique_ptr(pointer p, see below d1) noexcept; - unique_ptr(pointer p, see below d2) noexcept; - unique_ptr(unique_ptr&& u) noexcept; - unique_ptr(nullptr_t) noexcept : unique_ptr() { } - template - unique_ptr(unique_ptr&& u) noexcept; - template - unique_ptr(auto_ptr&& u) noexcept; - - // destructor - ~unique_ptr(); - - // assignment - unique_ptr& operator=(unique_ptr&& u) noexcept; - template unique_ptr& operator=(unique_ptr&& u) noexcept; - unique_ptr& operator=(nullptr_t) noexcept; - - // observers - typename add_lvalue_reference::type operator*() const; - pointer operator->() const noexcept; - pointer get() const noexcept; - deleter_type& get_deleter() noexcept; - const deleter_type& get_deleter() const noexcept; - explicit operator bool() const noexcept; - - // modifiers - pointer release() noexcept; - void reset(pointer p = pointer()) noexcept; - void swap(unique_ptr& u) noexcept; -}; - -template -class unique_ptr -{ -public: - typedef implementation-defined pointer; - typedef T element_type; - typedef D deleter_type; - - // constructors - constexpr unique_ptr() noexcept; - explicit unique_ptr(pointer p) noexcept; - unique_ptr(pointer p, see below d) noexcept; - unique_ptr(pointer p, see below d) noexcept; - unique_ptr(unique_ptr&& u) noexcept; - unique_ptr(nullptr_t) noexcept : unique_ptr() { } - - // destructor - ~unique_ptr(); - - // assignment - unique_ptr& operator=(unique_ptr&& u) noexcept; - unique_ptr& operator=(nullptr_t) noexcept; - - // observers - T& operator[](size_t i) const; - pointer get() const noexcept; - deleter_type& get_deleter() noexcept; - const deleter_type& get_deleter() const noexcept; - explicit operator bool() const noexcept; - - // modifiers - pointer release() noexcept; - void reset(pointer p = pointer()) noexcept; - void reset(nullptr_t) noexcept; - template void reset(U) = delete; - void swap(unique_ptr& u) noexcept; -}; - -template - void swap(unique_ptr& x, unique_ptr& y) noexcept; - -template - bool operator==(const unique_ptr& x, const unique_ptr& y); -template - bool operator!=(const unique_ptr& x, const unique_ptr& y); -template - bool operator<(const unique_ptr& x, const unique_ptr& y); -template - bool operator<=(const unique_ptr& x, const unique_ptr& y); -template - bool operator>(const unique_ptr& x, const unique_ptr& y); -template - bool operator>=(const unique_ptr& x, const unique_ptr& y); - -template - bool operator==(const unique_ptr& x, nullptr_t) noexcept; -template - bool operator==(nullptr_t, const unique_ptr& y) noexcept; -template - bool operator!=(const unique_ptr& x, nullptr_t) noexcept; -template - bool operator!=(nullptr_t, const unique_ptr& y) noexcept; - -template - bool operator<(const unique_ptr& x, nullptr_t); -template - bool operator<(nullptr_t, const unique_ptr& y); -template - bool operator<=(const unique_ptr& x, nullptr_t); -template - bool operator<=(nullptr_t, const unique_ptr& y); -template - bool operator>(const unique_ptr& x, nullptr_t); -template - bool operator>(nullptr_t, const unique_ptr& y); -template - bool operator>=(const unique_ptr& x, nullptr_t); -template - bool operator>=(nullptr_t, const unique_ptr& y); - -class bad_weak_ptr - : public std::exception -{ - bad_weak_ptr() noexcept; -}; - -template unique_ptr make_unique(Args&&... args); // C++14 -template unique_ptr make_unique(size_t n); // C++14 -template unspecified make_unique(Args&&...) = delete; // C++14, T == U[N] - -template -class shared_ptr -{ -public: - typedef T element_type; - - // constructors: - constexpr shared_ptr() noexcept; - template explicit shared_ptr(Y* p); - template shared_ptr(Y* p, D d); - template shared_ptr(Y* p, D d, A a); - template shared_ptr(nullptr_t p, D d); - template shared_ptr(nullptr_t p, D d, A a); - template shared_ptr(const shared_ptr& r, T *p) noexcept; - shared_ptr(const shared_ptr& r) noexcept; - template shared_ptr(const shared_ptr& r) noexcept; - shared_ptr(shared_ptr&& r) noexcept; - template shared_ptr(shared_ptr&& r) noexcept; - template explicit shared_ptr(const weak_ptr& r); - template shared_ptr(auto_ptr&& r); - template shared_ptr(unique_ptr&& r); - shared_ptr(nullptr_t) : shared_ptr() { } - - // destructor: - ~shared_ptr(); - - // assignment: - shared_ptr& operator=(const shared_ptr& r) noexcept; - template shared_ptr& operator=(const shared_ptr& r) noexcept; - shared_ptr& operator=(shared_ptr&& r) noexcept; - template shared_ptr& operator=(shared_ptr&& r); - template shared_ptr& operator=(auto_ptr&& r); - template shared_ptr& operator=(unique_ptr&& r); - - // modifiers: - void swap(shared_ptr& r) noexcept; - void reset() noexcept; - template void reset(Y* p); - template void reset(Y* p, D d); - template void reset(Y* p, D d, A a); - - // observers: - T* get() const noexcept; - T& operator*() const noexcept; - T* operator->() const noexcept; - long use_count() const noexcept; - bool unique() const noexcept; - explicit operator bool() const noexcept; - template bool owner_before(shared_ptr const& b) const; - template bool owner_before(weak_ptr const& b) const; -}; - -// shared_ptr comparisons: -template - bool operator==(shared_ptr const& a, shared_ptr const& b) noexcept; -template - bool operator!=(shared_ptr const& a, shared_ptr const& b) noexcept; -template - bool operator<(shared_ptr const& a, shared_ptr const& b) noexcept; -template - bool operator>(shared_ptr const& a, shared_ptr const& b) noexcept; -template - bool operator<=(shared_ptr const& a, shared_ptr const& b) noexcept; -template - bool operator>=(shared_ptr const& a, shared_ptr const& b) noexcept; - -template - bool operator==(const shared_ptr& x, nullptr_t) noexcept; -template - bool operator==(nullptr_t, const shared_ptr& y) noexcept; -template - bool operator!=(const shared_ptr& x, nullptr_t) noexcept; -template - bool operator!=(nullptr_t, const shared_ptr& y) noexcept; -template - bool operator<(const shared_ptr& x, nullptr_t) noexcept; -template -bool operator<(nullptr_t, const shared_ptr& y) noexcept; -template - bool operator<=(const shared_ptr& x, nullptr_t) noexcept; -template - bool operator<=(nullptr_t, const shared_ptr& y) noexcept; -template - bool operator>(const shared_ptr& x, nullptr_t) noexcept; -template - bool operator>(nullptr_t, const shared_ptr& y) noexcept; -template - bool operator>=(const shared_ptr& x, nullptr_t) noexcept; -template - bool operator>=(nullptr_t, const shared_ptr& y) noexcept; - -// shared_ptr specialized algorithms: -template void swap(shared_ptr& a, shared_ptr& b) noexcept; - -// shared_ptr casts: -template - shared_ptr static_pointer_cast(shared_ptr const& r) noexcept; -template - shared_ptr dynamic_pointer_cast(shared_ptr const& r) noexcept; -template - shared_ptr const_pointer_cast(shared_ptr const& r) noexcept; - -// shared_ptr I/O: -template - basic_ostream& operator<< (basic_ostream& os, shared_ptr const& p); - -// shared_ptr get_deleter: -template D* get_deleter(shared_ptr const& p) noexcept; - -template - shared_ptr make_shared(Args&&... args); -template - shared_ptr allocate_shared(const A& a, Args&&... args); - -template -class weak_ptr -{ -public: - typedef T element_type; - - // constructors - constexpr weak_ptr() noexcept; - template weak_ptr(shared_ptr const& r) noexcept; - weak_ptr(weak_ptr const& r) noexcept; - template weak_ptr(weak_ptr const& r) noexcept; - weak_ptr(weak_ptr&& r) noexcept; // C++14 - template weak_ptr(weak_ptr&& r) noexcept; // C++14 - - // destructor - ~weak_ptr(); - - // assignment - weak_ptr& operator=(weak_ptr const& r) noexcept; - template weak_ptr& operator=(weak_ptr const& r) noexcept; - template weak_ptr& operator=(shared_ptr const& r) noexcept; - weak_ptr& operator=(weak_ptr&& r) noexcept; // C++14 - template weak_ptr& operator=(weak_ptr&& r) noexcept; // C++14 - - // modifiers - void swap(weak_ptr& r) noexcept; - void reset() noexcept; - - // observers - long use_count() const noexcept; - bool expired() const noexcept; - shared_ptr lock() const noexcept; - template bool owner_before(shared_ptr const& b) const; - template bool owner_before(weak_ptr const& b) const; -}; - -// weak_ptr specialized algorithms: -template void swap(weak_ptr& a, weak_ptr& b) noexcept; - -// class owner_less: -template struct owner_less; - -template -struct owner_less> - : binary_function, shared_ptr, bool> -{ - typedef bool result_type; - bool operator()(shared_ptr const&, shared_ptr const&) const; - bool operator()(shared_ptr const&, weak_ptr const&) const; - bool operator()(weak_ptr const&, shared_ptr const&) const; -}; - -template -struct owner_less> - : binary_function, weak_ptr, bool> -{ - typedef bool result_type; - bool operator()(weak_ptr const&, weak_ptr const&) const; - bool operator()(shared_ptr const&, weak_ptr const&) const; - bool operator()(weak_ptr const&, shared_ptr const&) const; -}; - -template -class enable_shared_from_this -{ -protected: - constexpr enable_shared_from_this() noexcept; - enable_shared_from_this(enable_shared_from_this const&) noexcept; - enable_shared_from_this& operator=(enable_shared_from_this const&) noexcept; - ~enable_shared_from_this(); -public: - shared_ptr shared_from_this(); - shared_ptr shared_from_this() const; -}; - -template - bool atomic_is_lock_free(const shared_ptr* p); -template - shared_ptr atomic_load(const shared_ptr* p); -template - shared_ptr atomic_load_explicit(const shared_ptr* p, memory_order mo); -template - void atomic_store(shared_ptr* p, shared_ptr r); -template - void atomic_store_explicit(shared_ptr* p, shared_ptr r, memory_order mo); -template - shared_ptr atomic_exchange(shared_ptr* p, shared_ptr r); -template - shared_ptr - atomic_exchange_explicit(shared_ptr* p, shared_ptr r, memory_order mo); -template - bool - atomic_compare_exchange_weak(shared_ptr* p, shared_ptr* v, shared_ptr w); -template - bool - atomic_compare_exchange_strong( shared_ptr* p, shared_ptr* v, shared_ptr w); -template - bool - atomic_compare_exchange_weak_explicit(shared_ptr* p, shared_ptr* v, - shared_ptr w, memory_order success, - memory_order failure); -template - bool - atomic_compare_exchange_strong_explicit(shared_ptr* p, shared_ptr* v, - shared_ptr w, memory_order success, - memory_order failure); -// Hash support -template struct hash; -template struct hash >; -template struct hash >; - -// Pointer safety -enum class pointer_safety { relaxed, preferred, strict }; -void declare_reachable(void *p); -template T *undeclare_reachable(T *p); -void declare_no_pointers(char *p, size_t n); -void undeclare_no_pointers(char *p, size_t n); -pointer_safety get_pointer_safety() noexcept; - -void* align(size_t alignment, size_t size, void*& ptr, size_t& space); - -} // std - -*/ - -#include <__config> -#include -#include -#include -#include -#include -#include -#include -#include -#include <__functional_base> -#include -#include -#include -#if defined(_LIBCPP_NO_EXCEPTIONS) - #include -#endif - -#if !defined(_LIBCPP_HAS_NO_ATOMIC_HEADER) -# include -#endif - -#include <__undef_min_max> -#include <__undef___deallocate> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -#pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -template -inline _LIBCPP_ALWAYS_INLINE -_ValueType __libcpp_relaxed_load(_ValueType const* __value) { -#if !defined(_LIBCPP_HAS_NO_THREADS) && \ - defined(__ATOMIC_RELAXED) && \ - (__has_builtin(__atomic_load_n) || _GNUC_VER >= 407) - return __atomic_load_n(__value, __ATOMIC_RELAXED); -#else - return *__value; -#endif -} - -// addressof moved to <__functional_base> - -template class allocator; - -template <> -class _LIBCPP_TYPE_VIS_ONLY allocator -{ -public: - typedef void* pointer; - typedef const void* const_pointer; - typedef void value_type; - - template struct rebind {typedef allocator<_Up> other;}; -}; - -template <> -class _LIBCPP_TYPE_VIS_ONLY allocator -{ -public: - typedef const void* pointer; - typedef const void* const_pointer; - typedef const void value_type; - - template struct rebind {typedef allocator<_Up> other;}; -}; - -// pointer_traits - -template -struct __has_element_type -{ -private: - struct __two {char __lx; char __lxx;}; - template static __two __test(...); - template static char __test(typename _Up::element_type* = 0); -public: - static const bool value = sizeof(__test<_Tp>(0)) == 1; -}; - -template ::value> -struct __pointer_traits_element_type; - -template -struct __pointer_traits_element_type<_Ptr, true> -{ - typedef typename _Ptr::element_type type; -}; - -#ifndef _LIBCPP_HAS_NO_VARIADICS - -template