diff --git a/.gitignore b/.gitignore
index 5340e726..11335fd4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -185,4 +185,3 @@ tags.*
/Workspace/.swiftpm
.swiftpm
/NvimServer/.build
-bin/neovim/third-party/
diff --git a/bin/neovim/bin/prepare_libintl.sh b/bin/neovim/bin/prepare_libintl.sh
index 2aad6f70..e29825d7 100755
--- a/bin/neovim/bin/prepare_libintl.sh
+++ b/bin/neovim/bin/prepare_libintl.sh
@@ -41,14 +41,13 @@ main() {
popd >/dev/null
mkdir universal
- #cp -r "${arm64_bottle}/gettext/${version}/include" ./universal/
+ cp -r "${arm64_bottle}/gettext/${version}/include" ./universal/
mkdir universal/lib
lipo "${arm64_bottle}/gettext/${version}/lib/libintl.a" "${x86_64_bottle}/gettext/${version}/lib/libintl.a" -create -output ./universal/lib/libintl.a
pushd ./universal >/dev/null
ln -s /opt/homebrew/opt/gettext/bin .
ln -s /opt/homebrew/opt/gettext/share .
- ln -s /opt/homebrew/opt/gettext/include .
popd >/dev/null
popd >/dev/null
diff --git a/bin/neovim/third-party/gettext/bin b/bin/neovim/third-party/gettext/bin
new file mode 120000
index 00000000..3685ca43
--- /dev/null
+++ b/bin/neovim/third-party/gettext/bin
@@ -0,0 +1 @@
+/opt/homebrew/opt/gettext/bin
\ No newline at end of file
diff --git a/bin/neovim/third-party/gettext/include/autosprintf.h b/bin/neovim/third-party/gettext/include/autosprintf.h
new file mode 100644
index 00000000..de048dfa
--- /dev/null
+++ b/bin/neovim/third-party/gettext/include/autosprintf.h
@@ -0,0 +1,68 @@
+/* Class autosprintf - formatted output to an ostream.
+ Copyright (C) 2002, 2012-2016 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see . */
+
+#ifndef _AUTOSPRINTF_H
+#define _AUTOSPRINTF_H
+
+/* This feature is available in gcc versions 2.5 and later. */
+#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
+# define _AUTOSPRINTF_ATTRIBUTE_FORMAT() /* empty */
+#else
+/* The __-protected variants of 'format' and 'printf' attributes
+ are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
+# define _AUTOSPRINTF_ATTRIBUTE_FORMAT() \
+ __attribute__ ((__format__ (__printf__, 2, 3)))
+# else
+# define _AUTOSPRINTF_ATTRIBUTE_FORMAT() \
+ __attribute__ ((format (printf, 2, 3)))
+# endif
+#endif
+
+#include
+#include
+
+namespace gnu
+{
+ /* A temporary object, usually allocated on the stack, representing
+ the result of an asprintf() call. */
+ class autosprintf
+ {
+ public:
+ /* Constructor: takes a format string and the printf arguments. */
+ autosprintf (const char *format, ...)
+ _AUTOSPRINTF_ATTRIBUTE_FORMAT();
+ /* Copy constructor. */
+ autosprintf (const autosprintf& src);
+ /* Assignment operator. */
+ autosprintf& operator = (autosprintf temporary);
+ /* Destructor: frees the temporarily allocated string. */
+ ~autosprintf ();
+ /* Conversion to string. */
+ operator char * () const;
+ operator std::string () const;
+ /* Output to an ostream. */
+ friend inline std::ostream& operator<< (std::ostream& stream, const autosprintf& tmp)
+ {
+ stream << (tmp.str ? tmp.str : "(error in autosprintf)");
+ return stream;
+ }
+ private:
+ char *str;
+ };
+}
+
+#endif /* _AUTOSPRINTF_H */
diff --git a/bin/neovim/third-party/gettext/include/gettext-po.h b/bin/neovim/third-party/gettext/include/gettext-po.h
new file mode 100644
index 00000000..95da8cbe
--- /dev/null
+++ b/bin/neovim/third-party/gettext/include/gettext-po.h
@@ -0,0 +1,357 @@
+/* Public API for GNU gettext PO files - contained in libgettextpo.
+ Copyright (C) 2003-2008, 2010, 2012-2016, 2019-2023 Free Software Foundation, Inc.
+ Written by Bruno Haible , 2003.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see . */
+
+#ifndef _GETTEXT_PO_H
+#define _GETTEXT_PO_H 1
+
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* =========================== Meta Information ============================ */
+
+/* Version number: (major<<16) + (minor<<8) + subminor */
+#define LIBGETTEXTPO_VERSION 0x001604
+extern int libgettextpo_version;
+
+/* ================================= Types ================================= */
+
+/* A po_file_t represents the contents of a PO file. */
+typedef struct po_file *po_file_t;
+
+/* A po_message_iterator_t represents an iterator through a domain of a
+ PO file. */
+typedef struct po_message_iterator *po_message_iterator_t;
+
+/* A po_message_t represents a message in a PO file. */
+typedef struct po_message *po_message_t;
+
+/* A po_filepos_t represents a string's position within a source file. */
+typedef struct po_filepos *po_filepos_t;
+
+/* A po_error_handler handles error situations. */
+struct po_error_handler
+{
+ /* Signal an error. The error message is built from FORMAT and the following
+ arguments. ERRNUM, if nonzero, is an errno value.
+ Must increment the error_message_count variable declared in error.h.
+ Must not return if STATUS is nonzero. */
+ void (*error) (int status, int errnum,
+ const char *format, ...)
+#if ((__GNUC__ == 3 && __GNUC_MINOR__ >= 1) || __GNUC__ > 3) && !__STRICT_ANSI__
+ __attribute__ ((__format__ (__printf__, 3, 4)))
+#endif
+ ;
+
+ /* Signal an error. The error message is built from FORMAT and the following
+ arguments. The error location is at FILENAME line LINENO. ERRNUM, if
+ nonzero, is an errno value.
+ Must increment the error_message_count variable declared in error.h.
+ Must not return if STATUS is nonzero. */
+ void (*error_at_line) (int status, int errnum,
+ const char *filename, unsigned int lineno,
+ const char *format, ...)
+#if ((__GNUC__ == 3 && __GNUC_MINOR__ >= 1) || __GNUC__ > 3) && !__STRICT_ANSI__
+ __attribute__ ((__format__ (__printf__, 5, 6)))
+#endif
+ ;
+
+ /* Signal a multiline warning. The PREFIX applies to all lines of the
+ MESSAGE. Free the PREFIX and MESSAGE when done. */
+ void (*multiline_warning) (char *prefix, char *message);
+
+ /* Signal a multiline error. The PREFIX applies to all lines of the
+ MESSAGE. Free the PREFIX and MESSAGE when done.
+ Must increment the error_message_count variable declared in error.h if
+ PREFIX is non-NULL. */
+ void (*multiline_error) (char *prefix, char *message);
+};
+typedef const struct po_error_handler *po_error_handler_t;
+
+/* A po_xerror_handler handles warnings, error and fatal error situations. */
+#define PO_SEVERITY_WARNING 0 /* just a warning, tell the user */
+#define PO_SEVERITY_ERROR 1 /* an error, the operation cannot complete */
+#define PO_SEVERITY_FATAL_ERROR 2 /* an error, the operation must be aborted */
+struct po_xerror_handler
+{
+ /* Signal a problem of the given severity.
+ MESSAGE and/or FILENAME + LINENO indicate where the problem occurred.
+ If FILENAME is NULL, FILENAME and LINENO and COLUMN should be ignored.
+ If LINENO is (size_t)(-1), LINENO and COLUMN should be ignored.
+ If COLUMN is (size_t)(-1), it should be ignored.
+ MESSAGE_TEXT is the problem description (if MULTILINE_P is true,
+ multiple lines of text, each terminated with a newline, otherwise
+ usually a single line).
+ Must not return if SEVERITY is PO_SEVERITY_FATAL_ERROR. */
+ void (*xerror) (int severity,
+ po_message_t message,
+ const char *filename, size_t lineno, size_t column,
+ int multiline_p, const char *message_text);
+ /* Signal a problem that refers to two messages.
+ Similar to two calls to xerror.
+ If possible, a "..." can be appended to MESSAGE_TEXT1 and prepended to
+ MESSAGE_TEXT2. */
+ void (*xerror2) (int severity,
+ po_message_t message1,
+ const char *filename1, size_t lineno1, size_t column1,
+ int multiline_p1, const char *message_text1,
+ po_message_t message2,
+ const char *filename2, size_t lineno2, size_t column2,
+ int multiline_p2, const char *message_text2);
+};
+typedef const struct po_xerror_handler *po_xerror_handler_t;
+
+/* Memory allocation:
+ The memory allocations performed by these functions use xmalloc(),
+ therefore will cause a program exit if memory is exhausted.
+ The memory allocated by po_file_read, and implicitly returned through
+ the po_message_* functions, lasts until freed with po_file_free. */
+
+
+/* ============================= po_file_t API ============================= */
+
+/* Create an empty PO file representation in memory. */
+extern po_file_t po_file_create (void);
+
+/* Read a PO file into memory.
+ Return its contents. Upon failure, call function from handler. */
+#define po_file_read po_file_read_v3
+extern po_file_t po_file_read (const char *filename,
+ po_xerror_handler_t handler);
+
+/* Write an in-memory PO file to a file.
+ Upon failure, call function from handler. */
+#define po_file_write po_file_write_v2
+extern po_file_t po_file_write (po_file_t file, const char *filename,
+ po_xerror_handler_t handler);
+
+/* Free a PO file from memory. */
+extern void po_file_free (po_file_t file);
+
+/* Return the names of the domains covered by a PO file in memory. */
+extern const char * const * po_file_domains (po_file_t file);
+
+
+/* =========================== Header entry API ============================ */
+
+/* Return the header entry of a domain of a PO file in memory.
+ The domain NULL denotes the default domain.
+ Return NULL if there is no header entry. */
+extern const char * po_file_domain_header (po_file_t file, const char *domain);
+
+/* Return the value of a field in a header entry.
+ The return value is either a freshly allocated string, to be freed by the
+ caller, or NULL. */
+extern char * po_header_field (const char *header, const char *field);
+
+/* Return the header entry with a given field set to a given value. The field
+ is added if necessary.
+ The return value is a freshly allocated string. */
+extern char * po_header_set_field (const char *header, const char *field, const char *value);
+
+
+/* ======================= po_message_iterator_t API ======================= */
+
+/* Create an iterator for traversing a domain of a PO file in memory.
+ The domain NULL denotes the default domain. */
+extern po_message_iterator_t po_message_iterator (po_file_t file, const char *domain);
+
+/* Free an iterator. */
+extern void po_message_iterator_free (po_message_iterator_t iterator);
+
+/* Return the next message, and advance the iterator.
+ Return NULL at the end of the message list. */
+extern po_message_t po_next_message (po_message_iterator_t iterator);
+
+/* Insert a message in a PO file in memory, in the domain and at the position
+ indicated by the iterator. The iterator thereby advances past the freshly
+ inserted message. */
+extern void po_message_insert (po_message_iterator_t iterator, po_message_t message);
+
+
+/* =========================== po_message_t API ============================ */
+
+/* Return a freshly constructed message.
+ To finish initializing the message, you must set the msgid and msgstr. */
+extern po_message_t po_message_create (void);
+
+/* Return the context of a message, or NULL for a message not restricted to a
+ context. */
+extern const char * po_message_msgctxt (po_message_t message);
+
+/* Change the context of a message. NULL means a message not restricted to a
+ context. */
+extern void po_message_set_msgctxt (po_message_t message, const char *msgctxt);
+
+/* Return the msgid (untranslated English string) of a message. */
+extern const char * po_message_msgid (po_message_t message);
+
+/* Change the msgid (untranslated English string) of a message. */
+extern void po_message_set_msgid (po_message_t message, const char *msgid);
+
+/* Return the msgid_plural (untranslated English plural string) of a message,
+ or NULL for a message without plural. */
+extern const char * po_message_msgid_plural (po_message_t message);
+
+/* Change the msgid_plural (untranslated English plural string) of a message.
+ NULL means a message without plural. */
+extern void po_message_set_msgid_plural (po_message_t message, const char *msgid_plural);
+
+/* Return the msgstr (translation) of a message.
+ Return the empty string for an untranslated message. */
+extern const char * po_message_msgstr (po_message_t message);
+
+/* Change the msgstr (translation) of a message.
+ Use an empty string to denote an untranslated message. */
+extern void po_message_set_msgstr (po_message_t message, const char *msgstr);
+
+/* Return the msgstr[index] for a message with plural handling, or
+ NULL when the index is out of range or for a message without plural. */
+extern const char * po_message_msgstr_plural (po_message_t message, int index);
+
+/* Change the msgstr[index] for a message with plural handling.
+ Use a NULL value at the end to reduce the number of plural forms. */
+extern void po_message_set_msgstr_plural (po_message_t message, int index, const char *msgstr);
+
+/* Return the comments for a message. */
+extern const char * po_message_comments (po_message_t message);
+
+/* Change the comments for a message.
+ comments should be a multiline string, ending in a newline, or empty. */
+extern void po_message_set_comments (po_message_t message, const char *comments);
+
+/* Return the extracted comments for a message. */
+extern const char * po_message_extracted_comments (po_message_t message);
+
+/* Change the extracted comments for a message.
+ comments should be a multiline string, ending in a newline, or empty. */
+extern void po_message_set_extracted_comments (po_message_t message, const char *comments);
+
+/* Return the i-th file position for a message, or NULL if i is out of
+ range. */
+extern po_filepos_t po_message_filepos (po_message_t message, int i);
+
+/* Remove the i-th file position from a message.
+ The indices of all following file positions for the message are decremented
+ by one. */
+extern void po_message_remove_filepos (po_message_t message, int i);
+
+/* Add a file position to a message, if it is not already present for the
+ message.
+ file is the file name.
+ start_line is the line number where the string starts, or (size_t)(-1) if no
+ line number is available. */
+extern void po_message_add_filepos (po_message_t message, const char *file, size_t start_line);
+
+/* Return the previous context of a message, or NULL for none. */
+extern const char * po_message_prev_msgctxt (po_message_t message);
+
+/* Change the previous context of a message. NULL is allowed. */
+extern void po_message_set_prev_msgctxt (po_message_t message, const char *prev_msgctxt);
+
+/* Return the previous msgid (untranslated English string) of a message, or
+ NULL for none. */
+extern const char * po_message_prev_msgid (po_message_t message);
+
+/* Change the previous msgid (untranslated English string) of a message.
+ NULL is allowed. */
+extern void po_message_set_prev_msgid (po_message_t message, const char *prev_msgid);
+
+/* Return the previous msgid_plural (untranslated English plural string) of a
+ message, or NULL for none. */
+extern const char * po_message_prev_msgid_plural (po_message_t message);
+
+/* Change the previous msgid_plural (untranslated English plural string) of a
+ message. NULL is allowed. */
+extern void po_message_set_prev_msgid_plural (po_message_t message, const char *prev_msgid_plural);
+
+/* Return true if the message is marked obsolete. */
+extern int po_message_is_obsolete (po_message_t message);
+
+/* Change the obsolete mark of a message. */
+extern void po_message_set_obsolete (po_message_t message, int obsolete);
+
+/* Return true if the message is marked fuzzy. */
+extern int po_message_is_fuzzy (po_message_t message);
+
+/* Change the fuzzy mark of a message. */
+extern void po_message_set_fuzzy (po_message_t message, int fuzzy);
+
+/* Return true if the message is marked as being a format string of the given
+ type (e.g. "c-format"). */
+extern int po_message_is_format (po_message_t message, const char *format_type);
+
+/* Change the format string mark for a given type of a message. */
+extern void po_message_set_format (po_message_t message, const char *format_type, /*bool*/int value);
+
+/* If a numeric range of a message is set, return true and store the minimum
+ and maximum value in *MINP and *MAXP. */
+extern int po_message_is_range (po_message_t message, int *minp, int *maxp);
+
+/* Change the numeric range of a message. MIN and MAX must be non-negative,
+ with MIN < MAX. Use MIN = MAX = -1 to remove the numeric range of a
+ message. */
+extern void po_message_set_range (po_message_t message, int min, int max);
+
+
+/* =========================== po_filepos_t API ============================ */
+
+/* Return the file name. */
+extern const char * po_filepos_file (po_filepos_t filepos);
+
+/* Return the line number where the string starts, or (size_t)(-1) if no line
+ number is available. */
+extern size_t po_filepos_start_line (po_filepos_t filepos);
+
+
+/* ============================ Format type API ============================= */
+
+/* Return a NULL terminated array of the supported format types. */
+extern const char * const * po_format_list (void);
+
+/* Return the pretty name associated with a format type.
+ For example, for "csharp-format", return "C#".
+ Return NULL if the argument is not a supported format type. */
+extern const char * po_format_pretty_name (const char *format_type);
+
+
+/* ============================= Checking API ============================== */
+
+/* Test whether an entire file PO file is valid, like msgfmt does it.
+ If it is invalid, pass the reasons to the handler. */
+extern void po_file_check_all (po_file_t file, po_xerror_handler_t handler);
+
+/* Test a single message, to be inserted in a PO file in memory, like msgfmt
+ does it. If it is invalid, pass the reasons to the handler. The iterator
+ is not modified by this call; it only specifies the file and the domain. */
+extern void po_message_check_all (po_message_t message, po_message_iterator_t iterator, po_xerror_handler_t handler);
+
+/* Test whether the message translation is a valid format string if the message
+ is marked as being a format string. If it is invalid, pass the reasons to
+ the handler. */
+#define po_message_check_format po_message_check_format_v2
+extern void po_message_check_format (po_message_t message, po_xerror_handler_t handler);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GETTEXT_PO_H */
diff --git a/bin/neovim/third-party/gettext/include/libintl.h b/bin/neovim/third-party/gettext/include/libintl.h
new file mode 100644
index 00000000..5eff7710
--- /dev/null
+++ b/bin/neovim/third-party/gettext/include/libintl.h
@@ -0,0 +1,597 @@
+/* Message catalogs for internationalization.
+ Copyright (C) 1995-1997, 2000-2016, 2018-2023 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see . */
+
+#ifndef _LIBINTL_H
+#define _LIBINTL_H 1
+
+#include
+#if (defined __APPLE__ && defined __MACH__) && 1
+# include
+#endif
+
+/* The LC_MESSAGES locale category is the category used by the functions
+ gettext() and dgettext(). It is specified in POSIX, but not in ANSI C.
+ On systems that don't define it, use an arbitrary value instead.
+ On Solaris, defines __LOCALE_H (or _LOCALE_H in Solaris 2.5)
+ then includes (i.e. this file!) and then only defines
+ LC_MESSAGES. To avoid a redefinition warning, don't define LC_MESSAGES
+ in this case. */
+#if !defined LC_MESSAGES && !(defined __LOCALE_H || (defined _LOCALE_H && defined __sun))
+# define LC_MESSAGES 1729
+#endif
+
+/* We define an additional symbol to signal that we use the GNU
+ implementation of gettext. */
+#define __USE_GNU_GETTEXT 1
+
+/* Provide information about the supported file formats. Returns the
+ maximum minor revision number supported for a given major revision. */
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) \
+ ((major) == 0 || (major) == 1 ? 1 : -1)
+
+/* Resolve a platform specific conflict on DJGPP. GNU gettext takes
+ precedence over _conio_gettext. */
+#ifdef __DJGPP__
+# undef gettext
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Version number: (major<<16) + (minor<<8) + subminor */
+#define LIBINTL_VERSION 0x001604
+extern int libintl_version;
+
+
+/* We redirect the functions to those prefixed with "libintl_". This is
+ necessary, because some systems define gettext/textdomain/... in the C
+ library (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer).
+ If we used the unprefixed names, there would be cases where the
+ definition in the C library would override the one in the libintl.so
+ shared library. Recall that on ELF systems, the symbols are looked
+ up in the following order:
+ 1. in the executable,
+ 2. in the shared libraries specified on the link command line, in order,
+ 3. in the dependencies of the shared libraries specified on the link
+ command line,
+ 4. in the dlopen()ed shared libraries, in the order in which they were
+ dlopen()ed.
+ The definition in the C library would override the one in libintl.so if
+ either
+ * -lc is given on the link command line and -lintl isn't, or
+ * -lc is given on the link command line before -lintl, or
+ * libintl.so is a dependency of a dlopen()ed shared library but not
+ linked to the executable at link time.
+ Since Solaris gettext() behaves differently than GNU gettext(), this
+ would be unacceptable.
+
+ The redirection happens by default through macros in C, so that &gettext
+ is independent of the compilation unit, but through inline functions in
+ C++, in order not to interfere with the name mangling of class fields or
+ class methods called 'gettext'. */
+
+/* The user can define _INTL_REDIRECT_INLINE or _INTL_REDIRECT_MACROS.
+ If he doesn't, we choose the method. A third possible method is
+ _INTL_REDIRECT_ASM, supported only by GCC. */
+#if !(defined _INTL_REDIRECT_INLINE || defined _INTL_REDIRECT_MACROS)
+# if defined __GNUC__ && __GNUC__ >= 2 && !(defined __APPLE_CC__ && __APPLE_CC__ > 1) && !defined __MINGW32__ && !(__GNUC__ == 2 && defined _AIX) && (defined __STDC__ || defined __cplusplus)
+# define _INTL_REDIRECT_ASM
+# else
+# ifdef __cplusplus
+# define _INTL_REDIRECT_INLINE
+# else
+# define _INTL_REDIRECT_MACROS
+# endif
+# endif
+#endif
+/* Auxiliary macros. */
+#ifdef _INTL_REDIRECT_ASM
+# define _INTL_ASM(cname) __asm__ (_INTL_ASMNAME (__USER_LABEL_PREFIX__, #cname))
+# define _INTL_ASMNAME(prefix,cnamestring) _INTL_STRINGIFY (prefix) cnamestring
+# define _INTL_STRINGIFY(prefix) #prefix
+#else
+# define _INTL_ASM(cname)
+#endif
+
+/* _INTL_MAY_RETURN_STRING_ARG(n) declares that the given function may return
+ its n-th argument literally. This enables GCC to warn for example about
+ printf (gettext ("foo %y")). */
+#if defined __GNUC__ && __GNUC__ >= 3 && !(defined __APPLE_CC__ && __APPLE_CC__ > 1 && !(defined __clang__ && __clang__ && __clang_major__ >= 3) && defined __cplusplus)
+# define _INTL_MAY_RETURN_STRING_ARG(n) __attribute__ ((__format_arg__ (n)))
+#else
+# define _INTL_MAY_RETURN_STRING_ARG(n)
+#endif
+
+/* Look up MSGID in the current default message catalog for the current
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
+ text). */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_gettext (const char *__msgid)
+ _INTL_MAY_RETURN_STRING_ARG (1);
+static inline
+_INTL_MAY_RETURN_STRING_ARG (1)
+char *gettext (const char *__msgid)
+{
+ return libintl_gettext (__msgid);
+}
+#else
+# ifdef _INTL_REDIRECT_MACROS
+# define gettext libintl_gettext
+# endif
+extern char *gettext (const char *__msgid)
+ _INTL_ASM (libintl_gettext)
+ _INTL_MAY_RETURN_STRING_ARG (1);
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current
+ LC_MESSAGES locale. */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_dgettext (const char *__domainname, const char *__msgid)
+ _INTL_MAY_RETURN_STRING_ARG (2);
+static inline
+_INTL_MAY_RETURN_STRING_ARG (2)
+char *dgettext (const char *__domainname, const char *__msgid)
+{
+ return libintl_dgettext (__domainname, __msgid);
+}
+#else
+# ifdef _INTL_REDIRECT_MACROS
+# define dgettext libintl_dgettext
+# endif
+extern char *dgettext (const char *__domainname, const char *__msgid)
+ _INTL_ASM (libintl_dgettext)
+ _INTL_MAY_RETURN_STRING_ARG (2);
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+ locale. */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_dcgettext (const char *__domainname, const char *__msgid,
+ int __category)
+ _INTL_MAY_RETURN_STRING_ARG (2);
+static inline
+_INTL_MAY_RETURN_STRING_ARG (2)
+char *dcgettext (const char *__domainname, const char *__msgid, int __category)
+{
+ return libintl_dcgettext (__domainname, __msgid, __category);
+}
+#else
+# ifdef _INTL_REDIRECT_MACROS
+# define dcgettext libintl_dcgettext
+# endif
+extern char *dcgettext (const char *__domainname, const char *__msgid,
+ int __category)
+ _INTL_ASM (libintl_dcgettext)
+ _INTL_MAY_RETURN_STRING_ARG (2);
+#endif
+
+
+/* Similar to 'gettext' but select the plural form corresponding to the
+ number N. */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_ngettext (const char *__msgid1, const char *__msgid2,
+ unsigned long int __n)
+ _INTL_MAY_RETURN_STRING_ARG (1) _INTL_MAY_RETURN_STRING_ARG (2);
+static inline
+_INTL_MAY_RETURN_STRING_ARG (1) _INTL_MAY_RETURN_STRING_ARG (2)
+char *ngettext (const char *__msgid1, const char *__msgid2,
+ unsigned long int __n)
+{
+ return libintl_ngettext (__msgid1, __msgid2, __n);
+}
+#else
+# ifdef _INTL_REDIRECT_MACROS
+# define ngettext libintl_ngettext
+# endif
+extern char *ngettext (const char *__msgid1, const char *__msgid2,
+ unsigned long int __n)
+ _INTL_ASM (libintl_ngettext)
+ _INTL_MAY_RETURN_STRING_ARG (1) _INTL_MAY_RETURN_STRING_ARG (2);
+#endif
+
+/* Similar to 'dgettext' but select the plural form corresponding to the
+ number N. */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_dngettext (const char *__domainname, const char *__msgid1,
+ const char *__msgid2, unsigned long int __n)
+ _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
+static inline
+_INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3)
+char *dngettext (const char *__domainname, const char *__msgid1,
+ const char *__msgid2, unsigned long int __n)
+{
+ return libintl_dngettext (__domainname, __msgid1, __msgid2, __n);
+}
+#else
+# ifdef _INTL_REDIRECT_MACROS
+# define dngettext libintl_dngettext
+# endif
+extern char *dngettext (const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int __n)
+ _INTL_ASM (libintl_dngettext)
+ _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
+#endif
+
+/* Similar to 'dcgettext' but select the plural form corresponding to the
+ number N. */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_dcngettext (const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int __n, int __category)
+ _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
+static inline
+_INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3)
+char *dcngettext (const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int __n, int __category)
+{
+ return libintl_dcngettext (__domainname, __msgid1, __msgid2, __n, __category);
+}
+#else
+# ifdef _INTL_REDIRECT_MACROS
+# define dcngettext libintl_dcngettext
+# endif
+extern char *dcngettext (const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int __n, int __category)
+ _INTL_ASM (libintl_dcngettext)
+ _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
+#endif
+
+
+
+/* Set the current default message catalog to DOMAINNAME.
+ If DOMAINNAME is null, return the current default.
+ If DOMAINNAME is "", reset to the default of "messages". */
+# ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_textdomain (const char *__domainname);
+static inline char *textdomain (const char *__domainname)
+{
+ return libintl_textdomain (__domainname);
+}
+# else
+# ifdef _INTL_REDIRECT_MACROS
+# define textdomain libintl_textdomain
+# endif
+extern char *textdomain (const char *__domainname)
+ _INTL_ASM (libintl_textdomain);
+# endif
+
+/* Specify that the DOMAINNAME message catalog will be found
+ in DIRNAME rather than in the system locale data base. */
+# ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_bindtextdomain (const char *__domainname,
+ const char *__dirname);
+static inline char *bindtextdomain (const char *__domainname,
+ const char *__dirname)
+{
+ return libintl_bindtextdomain (__domainname, __dirname);
+}
+# else
+# ifdef _INTL_REDIRECT_MACROS
+# define bindtextdomain libintl_bindtextdomain
+# endif
+extern char *bindtextdomain (const char *__domainname, const char *__dirname)
+ _INTL_ASM (libintl_bindtextdomain);
+# endif
+
+# if defined _WIN32 && !defined __CYGWIN__
+/* Specify that the DOMAINNAME message catalog will be found
+ in WDIRNAME rather than in the system locale data base. */
+# ifdef _INTL_REDIRECT_INLINE
+extern wchar_t *libintl_wbindtextdomain (const char *__domainname,
+ const wchar_t *__wdirname);
+static inline wchar_t *wbindtextdomain (const char *__domainname,
+ const wchar_t *__wdirname)
+{
+ return libintl_wbindtextdomain (__domainname, __wdirname);
+}
+# else
+# ifdef _INTL_REDIRECT_MACROS
+# define wbindtextdomain libintl_wbindtextdomain
+# endif
+extern wchar_t *wbindtextdomain (const char *__domainname,
+ const wchar_t *__wdirname)
+ _INTL_ASM (libintl_wbindtextdomain);
+# endif
+# endif
+
+/* Specify the character encoding in which the messages from the
+ DOMAINNAME message catalog will be returned. */
+# ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_bind_textdomain_codeset (const char *__domainname,
+ const char *__codeset);
+static inline char *bind_textdomain_codeset (const char *__domainname,
+ const char *__codeset)
+{
+ return libintl_bind_textdomain_codeset (__domainname, __codeset);
+}
+# else
+# ifdef _INTL_REDIRECT_MACROS
+# define bind_textdomain_codeset libintl_bind_textdomain_codeset
+# endif
+extern char *bind_textdomain_codeset (const char *__domainname,
+ const char *__codeset)
+ _INTL_ASM (libintl_bind_textdomain_codeset);
+# endif
+
+
+
+/* Support for format strings with positions in *printf(), following the
+ POSIX/XSI specification.
+ Note: These replacements for the *printf() functions are visible only
+ in source files that #include or #include "gettext.h".
+ Packages that use *printf() in source files that don't refer to _()
+ or gettext() but for which the format string could be the return value
+ of _() or gettext() need to add this #include. Oh well. */
+
+/* Note: In C++ mode, it is not sufficient to redefine a symbol at the
+ preprocessor macro level, such as
+ #define sprintf libintl_sprintf
+ Some programs may reference std::sprintf after including .
+ Therefore we must make sure that std::libintl_sprintf is defined and
+ identical to ::libintl_sprintf.
+ The user can define _INTL_CXX_NO_CLOBBER_STD_NAMESPACE to avoid this.
+ In such cases, they will not benefit from the overrides when using
+ the 'std' namespace, and they will need to do the references to the
+ 'std' namespace *before* including or "gettext.h". */
+
+#if !1
+
+# include
+# include
+
+/* Get va_list. */
+# if (defined __STDC__ && __STDC__) || defined __cplusplus || defined _MSC_VER
+# include
+# else
+# include
+# endif
+
+# if !((defined fprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_fprintf) /* don't override gnulib */
+# undef fprintf
+# define fprintf libintl_fprintf
+extern int fprintf (FILE *, const char *, ...);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_fprintf; }
+# endif
+# endif
+# if !((defined vfprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_vfprintf) /* don't override gnulib */
+# undef vfprintf
+# define vfprintf libintl_vfprintf
+extern int vfprintf (FILE *, const char *, va_list);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_vfprintf; }
+# endif
+# endif
+
+# if !((defined printf && defined _GL_STDIO_H) || defined GNULIB_overrides_printf) /* don't override gnulib */
+# undef printf
+# if defined __NetBSD__ || defined __BEOS__ || defined __CYGWIN__ || defined __MINGW32__
+/* Don't break __attribute__((format(printf,M,N))).
+ This redefinition is only possible because the libc in NetBSD, Cygwin,
+ mingw does not have a function __printf__.
+ Alternatively, we could have done this redirection only when compiling with
+ __GNUC__, together with a symbol redirection:
+ extern int printf (const char *, ...)
+ __asm__ (#__USER_LABEL_PREFIX__ "libintl_printf");
+ But doing it now would introduce a binary incompatibility with already
+ distributed versions of libintl on these systems. */
+# define libintl_printf __printf__
+# endif
+# define printf libintl_printf
+extern int printf (const char *, ...);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_printf; }
+# endif
+# endif
+# if !((defined vprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_vprintf) /* don't override gnulib */
+# undef vprintf
+# define vprintf libintl_vprintf
+extern int vprintf (const char *, va_list);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_vprintf; }
+# endif
+# endif
+
+# if !((defined sprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_sprintf) /* don't override gnulib */
+# undef sprintf
+# define sprintf libintl_sprintf
+extern int sprintf (char *, const char *, ...);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_sprintf; }
+# endif
+# endif
+# if !((defined vsprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_vsprintf) /* don't override gnulib */
+# undef vsprintf
+# define vsprintf libintl_vsprintf
+extern int vsprintf (char *, const char *, va_list);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_vsprintf; }
+# endif
+# endif
+
+# if 1
+
+# if !((defined snprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_snprintf) /* don't override gnulib */
+# undef snprintf
+# define snprintf libintl_snprintf
+extern int snprintf (char *, size_t, const char *, ...);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_snprintf; }
+# endif
+# endif
+# if !((defined vsnprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_vsnprintf) /* don't override gnulib */
+# undef vsnprintf
+# define vsnprintf libintl_vsnprintf
+extern int vsnprintf (char *, size_t, const char *, va_list);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_vsnprintf; }
+# endif
+# endif
+
+# endif
+
+# if 1
+
+# if !((defined asprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_asprintf) /* don't override gnulib */
+# undef asprintf
+# define asprintf libintl_asprintf
+extern int asprintf (char **, const char *, ...);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_asprintf; }
+# endif
+# endif
+# if !((defined vasprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_vasprintf) /* don't override gnulib */
+# undef vasprintf
+# define vasprintf libintl_vasprintf
+extern int vasprintf (char **, const char *, va_list);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_vasprintf; }
+# endif
+# endif
+
+# endif
+
+# if 1
+
+# undef fwprintf
+# define fwprintf libintl_fwprintf
+extern int fwprintf (FILE *, const wchar_t *, ...);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_fwprintf; }
+# endif
+# undef vfwprintf
+# define vfwprintf libintl_vfwprintf
+extern int vfwprintf (FILE *, const wchar_t *, va_list);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_vfwprintf; }
+# endif
+
+# undef wprintf
+# define wprintf libintl_wprintf
+extern int wprintf (const wchar_t *, ...);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_wprintf; }
+# endif
+# undef vwprintf
+# define vwprintf libintl_vwprintf
+extern int vwprintf (const wchar_t *, va_list);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_vwprintf; }
+# endif
+
+# undef swprintf
+# define swprintf libintl_swprintf
+extern int swprintf (wchar_t *, size_t, const wchar_t *, ...);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_swprintf; }
+# endif
+# undef vswprintf
+# define vswprintf libintl_vswprintf
+extern int vswprintf (wchar_t *, size_t, const wchar_t *, va_list);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_vswprintf; }
+# endif
+
+# endif
+
+#endif
+
+
+/* Support for retrieving the name of a locale_t object. */
+#if 0
+
+# ifndef GNULIB_defined_newlocale /* don't override gnulib */
+# undef newlocale
+# define newlocale libintl_newlocale
+extern locale_t newlocale (int, const char *, locale_t);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_newlocale; }
+# endif
+# endif
+
+# ifndef GNULIB_defined_duplocale /* don't override gnulib */
+# undef duplocale
+# define duplocale libintl_duplocale
+extern locale_t duplocale (locale_t);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_duplocale; }
+# endif
+# endif
+
+# ifndef GNULIB_defined_freelocale /* don't override gnulib */
+# undef freelocale
+# define freelocale libintl_freelocale
+extern void freelocale (locale_t);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_freelocale; }
+# endif
+# endif
+
+#endif
+
+
+/* Support for the locale chosen by the user. */
+#if (defined __APPLE__ && defined __MACH__) || defined _WIN32 || defined __CYGWIN__
+
+# ifndef GNULIB_defined_setlocale /* don't override gnulib */
+# undef setlocale
+# define setlocale libintl_setlocale
+extern char *setlocale (int, const char *);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_setlocale; }
+# endif
+# endif
+
+# if 1
+
+# undef newlocale
+# define newlocale libintl_newlocale
+/* Declare newlocale() only if the system headers define the 'locale_t' type. */
+# if !(defined __CYGWIN__ && !defined LC_ALL_MASK)
+extern locale_t newlocale (int, const char *, locale_t);
+# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE
+namespace std { using ::libintl_newlocale; }
+# endif
+# endif
+
+# endif
+
+#endif
+
+
+/* Support for relocatable packages. */
+
+/* Sets the original and the current installation prefix of the package.
+ Relocation simply replaces a pathname starting with the original prefix
+ by the corresponding pathname with the current prefix instead. Both
+ prefixes should be directory names without trailing slash (i.e. use ""
+ instead of "/"). */
+#define libintl_set_relocation_prefix libintl_set_relocation_prefix
+extern void
+ libintl_set_relocation_prefix (const char *orig_prefix,
+ const char *curr_prefix);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* libintl.h */
diff --git a/bin/neovim/third-party/gettext/include/textstyle.h b/bin/neovim/third-party/gettext/include/textstyle.h
new file mode 100644
index 00000000..ce0bf6e0
--- /dev/null
+++ b/bin/neovim/third-party/gettext/include/textstyle.h
@@ -0,0 +1,707 @@
+/* Public API of the libtextstyle library.
+ Copyright (C) 2006-2007, 2019-2021 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see . */
+
+/* Written by Bruno Haible , 2006, 2019. */
+
+#ifndef _TEXTSTYLE_H
+#define _TEXTSTYLE_H
+
+#include
+#include
+#include
+#include
+#include
+
+/* Meta information. */
+#include
+
+/* ----------------------------- From ostream.h ----------------------------- */
+
+/* Describes the scope of a flush operation. */
+typedef enum
+{
+ /* Flushes buffers in this ostream_t.
+ Use this value if you want to write to the underlying ostream_t. */
+ FLUSH_THIS_STREAM = 0,
+ /* Flushes all buffers in the current process.
+ Use this value if you want to write to the same target through a
+ different file descriptor or a FILE stream. */
+ FLUSH_THIS_PROCESS = 1,
+ /* Flushes buffers in the current process and attempts to flush the buffers
+ in the kernel.
+ Use this value so that some other process (or the kernel itself)
+ may write to the same target. */
+ FLUSH_ALL = 2
+} ostream_flush_scope_t;
+
+
+/* An output stream is an object to which one can feed a sequence of bytes. */
+
+struct any_ostream_representation;
+typedef struct any_ostream_representation * ostream_t;
+
+/* Functions that invoke the methods. */
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void ostream_write_mem (ostream_t first_arg, const void *data, size_t len);
+extern void ostream_flush (ostream_t first_arg, ostream_flush_scope_t scope);
+extern void ostream_free (ostream_t first_arg);
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Write a string's contents to a stream. */
+extern void ostream_write_str (ostream_t stream, const char *string);
+
+/* Writes formatted output to a stream.
+ Returns the size of formatted output, or a negative value in case of an
+ error. */
+extern ptrdiff_t ostream_printf (ostream_t stream, const char *format, ...)
+#if (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) || __GNUC__ > 3
+ __attribute__ ((__format__ (__printf__, 2, 3)))
+#endif
+ ;
+extern ptrdiff_t ostream_vprintf (ostream_t stream,
+ const char *format, va_list args)
+#if (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) || __GNUC__ > 3
+ __attribute__ ((__format__ (__printf__, 2, 0)))
+#endif
+ ;
+
+#ifdef __cplusplus
+}
+#endif
+
+/* ------------------------- From styled-ostream.h ------------------------- */
+
+/* A styled output stream is an object to which one can feed a sequence of
+ bytes, marking some runs of text as belonging to specific CSS classes,
+ where the rendering of the CSS classes is defined through a CSS (cascading
+ style sheet). */
+
+/* styled_ostream_t is a subtype of ostream_t. */
+typedef ostream_t styled_ostream_t;
+
+/* Functions that invoke the methods. */
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void styled_ostream_write_mem (styled_ostream_t first_arg, const void *data, size_t len);
+extern void styled_ostream_flush (styled_ostream_t first_arg, ostream_flush_scope_t scope);
+extern void styled_ostream_free (styled_ostream_t first_arg);
+extern void styled_ostream_begin_use_class (styled_ostream_t first_arg, const char *classname);
+extern void styled_ostream_end_use_class (styled_ostream_t first_arg, const char *classname);
+extern const char *styled_ostream_get_hyperlink_ref (styled_ostream_t first_arg);
+extern const char *styled_ostream_get_hyperlink_id (styled_ostream_t first_arg);
+extern void styled_ostream_set_hyperlink (styled_ostream_t first_arg, const char *ref, const char *id);
+/* Like styled_ostream_flush (first_arg, FLUSH_THIS_STREAM), except that it
+ leaves the destination with the current text style enabled, instead
+ of with the default text style.
+ After calling this function, you can output strings without newlines(!)
+ to the underlying stream, and they will be rendered like strings passed
+ to 'ostream_write_mem', 'ostream_write_str', or 'ostream_write_printf'. */
+extern void styled_ostream_flush_to_current_style (styled_ostream_t stream);
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Test whether a given output stream is a styled_ostream. */
+extern bool is_instance_of_styled_ostream (ostream_t stream);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/* -------------------------- From file-ostream.h -------------------------- */
+
+/* file_ostream_t is a subtype of ostream_t. */
+typedef ostream_t file_ostream_t;
+
+/* Functions that invoke the methods. */
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void file_ostream_write_mem (file_ostream_t first_arg, const void *data, size_t len);
+extern void file_ostream_flush (file_ostream_t first_arg, ostream_flush_scope_t scope);
+extern void file_ostream_free (file_ostream_t first_arg);
+/* Accessors. */
+extern FILE *file_ostream_get_stdio_stream (file_ostream_t stream);
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Create an output stream referring to FP.
+ Note that the resulting stream must be closed before FP can be closed. */
+extern file_ostream_t file_ostream_create (FILE *fp);
+
+
+/* Test whether a given output stream is a file_ostream. */
+extern bool is_instance_of_file_ostream (ostream_t stream);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/* --------------------------- From fd-ostream.h --------------------------- */
+
+/* fd_ostream_t is a subtype of ostream_t. */
+typedef ostream_t fd_ostream_t;
+
+/* Functions that invoke the methods. */
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void fd_ostream_write_mem (fd_ostream_t first_arg, const void *data, size_t len);
+extern void fd_ostream_flush (fd_ostream_t first_arg, ostream_flush_scope_t scope);
+extern void fd_ostream_free (fd_ostream_t first_arg);
+/* Accessors. */
+extern int fd_ostream_get_descriptor (fd_ostream_t stream);
+extern const char *fd_ostream_get_filename (fd_ostream_t stream);
+extern bool fd_ostream_is_buffered (fd_ostream_t stream);
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Create an output stream referring to the file descriptor FD.
+ FILENAME is used only for error messages.
+ Note that the resulting stream must be closed before FD can be closed. */
+extern fd_ostream_t fd_ostream_create (int fd, const char *filename,
+ bool buffered);
+
+
+/* Test whether a given output stream is a fd_ostream. */
+extern bool is_instance_of_fd_ostream (ostream_t stream);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/* -------------------------- From term-ostream.h -------------------------- */
+
+/* Querying and setting of text attributes.
+ The stream has a notion of the current text attributes; they apply
+ implicitly to all following output. The attributes are automatically
+ reset when the stream is closed.
+ Note: Not all terminal types can actually render all attributes adequately.
+ For example, xterm cannot render POSTURE_ITALIC nor the combination of
+ WEIGHT_BOLD and UNDERLINE_ON. */
+
+/* Colors are represented by indices >= 0 in a stream dependent format. */
+typedef int term_color_t;
+/* The value -1 denotes the default (foreground or background) color. */
+enum
+{
+ COLOR_DEFAULT = -1 /* unknown */
+};
+
+typedef enum
+{
+ WEIGHT_NORMAL = 0,
+ WEIGHT_BOLD,
+ WEIGHT_DEFAULT = WEIGHT_NORMAL
+} term_weight_t;
+
+typedef enum
+{
+ POSTURE_NORMAL = 0,
+ POSTURE_ITALIC, /* same as oblique */
+ POSTURE_DEFAULT = POSTURE_NORMAL
+} term_posture_t;
+
+typedef enum
+{
+ UNDERLINE_OFF = 0,
+ UNDERLINE_ON,
+ UNDERLINE_DEFAULT = UNDERLINE_OFF
+} term_underline_t;
+
+/* The amount of control to take over the underlying tty in order to avoid
+ garbled output on the screen, due to interleaved output of escape sequences
+ and output from the kernel (such as when the kernel echoes user's input
+ or when the kernel prints '^C' after the user pressed Ctrl-C). */
+typedef enum
+{
+ TTYCTL_AUTO = 0, /* Automatic best-possible choice. */
+ TTYCTL_NONE, /* No control.
+ Result: Garbled output can occur, and the terminal can
+ be left in any state when the program is interrupted. */
+ TTYCTL_PARTIAL, /* Signal handling.
+ Result: Garbled output can occur, but the terminal will
+ be left in the default state when the program is
+ interrupted. */
+ TTYCTL_FULL /* Signal handling and disabling echo and flush-upon-signal.
+ Result: No garbled output, and the the terminal will
+ be left in the default state when the program is
+ interrupted. */
+} ttyctl_t;
+
+/* term_ostream_t is a subtype of ostream_t. */
+typedef ostream_t term_ostream_t;
+
+/* Functions that invoke the methods. */
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void term_ostream_write_mem (term_ostream_t first_arg, const void *data, size_t len);
+extern void term_ostream_flush (term_ostream_t first_arg, ostream_flush_scope_t scope);
+extern void term_ostream_free (term_ostream_t first_arg);
+extern term_color_t term_ostream_rgb_to_color (term_ostream_t first_arg, int red, int green, int blue);
+extern term_color_t term_ostream_get_color (term_ostream_t first_arg);
+extern void term_ostream_set_color (term_ostream_t first_arg, term_color_t color);
+extern term_color_t term_ostream_get_bgcolor (term_ostream_t first_arg);
+extern void term_ostream_set_bgcolor (term_ostream_t first_arg, term_color_t color);
+extern term_weight_t term_ostream_get_weight (term_ostream_t first_arg);
+extern void term_ostream_set_weight (term_ostream_t first_arg, term_weight_t weight);
+extern term_posture_t term_ostream_get_posture (term_ostream_t first_arg);
+extern void term_ostream_set_posture (term_ostream_t first_arg, term_posture_t posture);
+extern term_underline_t term_ostream_get_underline (term_ostream_t first_arg);
+extern void term_ostream_set_underline (term_ostream_t first_arg, term_underline_t underline);
+extern const char *term_ostream_get_hyperlink_ref (term_ostream_t first_arg);
+extern const char *term_ostream_get_hyperlink_id (term_ostream_t first_arg);
+extern void term_ostream_set_hyperlink (term_ostream_t first_arg, const char *ref, const char *id);
+/* Like term_ostream_flush (first_arg, FLUSH_THIS_STREAM), except that it
+ leaves the terminal with the current text attributes enabled, instead of
+ with the default text attributes.
+ After calling this function, you can output strings without newlines(!)
+ to the underlying file descriptor, and they will be rendered like strings
+ passed to 'ostream_write_mem', 'ostream_write_str', or
+ 'ostream_write_printf'. */
+extern void term_ostream_flush_to_current_style (term_ostream_t first_arg);
+/* Accessors. */
+extern int term_ostream_get_descriptor (term_ostream_t stream);
+extern const char *term_ostream_get_filename (term_ostream_t stream);
+extern ttyctl_t term_ostream_get_tty_control (term_ostream_t stream);
+extern ttyctl_t term_ostream_get_effective_tty_control (term_ostream_t stream);
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Create an output stream referring to the file descriptor FD.
+ FILENAME is used only for error messages.
+ TTY_CONTROL specifies the amount of control to take over the underlying tty.
+ The resulting stream will be line-buffered.
+ Note that the resulting stream must be closed before FD can be closed. */
+extern term_ostream_t
+ term_ostream_create (int fd, const char *filename, ttyctl_t tty_control);
+
+
+/* Test whether a given output stream is a term_ostream. */
+extern bool is_instance_of_term_ostream (ostream_t stream);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/* ------------------------- From memory-ostream.h ------------------------- */
+
+/* memory_ostream_t is a subtype of ostream_t. */
+typedef ostream_t memory_ostream_t;
+
+/* Functions that invoke the methods. */
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void memory_ostream_write_mem (memory_ostream_t first_arg, const void *data, size_t len);
+extern void memory_ostream_flush (memory_ostream_t first_arg, ostream_flush_scope_t scope);
+extern void memory_ostream_free (memory_ostream_t first_arg);
+extern void memory_ostream_contents (memory_ostream_t first_arg, const void **bufp, size_t *buflenp);
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Create an output stream that accumulates the output in a memory buffer. */
+extern memory_ostream_t memory_ostream_create (void);
+
+
+/* Test whether a given output stream is a memory_ostream. */
+extern bool is_instance_of_memory_ostream (ostream_t stream);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/* -------------------------- From iconv-ostream.h -------------------------- */
+
+#if LIBTEXTSTYLE_USES_ICONV
+
+/* iconv_ostream_t is a subtype of ostream_t. */
+typedef ostream_t iconv_ostream_t;
+
+/* Functions that invoke the methods. */
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void iconv_ostream_write_mem (iconv_ostream_t first_arg, const void *data, size_t len);
+extern void iconv_ostream_flush (iconv_ostream_t first_arg, ostream_flush_scope_t scope);
+extern void iconv_ostream_free (iconv_ostream_t first_arg);
+/* Accessors. */
+extern const char *iconv_ostream_get_from_encoding (iconv_ostream_t stream);
+extern const char *iconv_ostream_get_to_encoding (iconv_ostream_t stream);
+extern ostream_t iconv_ostream_get_destination (iconv_ostream_t stream);
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Create an output stream that converts from FROM_ENCODING to TO_ENCODING,
+ writing the result to DESTINATION. */
+extern iconv_ostream_t iconv_ostream_create (const char *from_encoding,
+ const char *to_encoding,
+ ostream_t destination);
+
+
+/* Test whether a given output stream is an iconv_ostream. */
+extern bool is_instance_of_iconv_ostream (ostream_t stream);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBTEXTSTYLE_USES_ICONV */
+
+/* -------------------------- From html-ostream.h -------------------------- */
+
+/* html_ostream_t is a subtype of ostream_t. */
+typedef ostream_t html_ostream_t;
+
+/* Functions that invoke the methods. */
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void html_ostream_write_mem (html_ostream_t first_arg, const void *data, size_t len);
+extern void html_ostream_flush (html_ostream_t first_arg, ostream_flush_scope_t scope);
+extern void html_ostream_free (html_ostream_t first_arg);
+extern void html_ostream_begin_span (html_ostream_t first_arg, const char *classname);
+extern void html_ostream_end_span (html_ostream_t first_arg, const char *classname);
+extern const char *html_ostream_get_hyperlink_ref (html_ostream_t first_arg);
+extern void html_ostream_set_hyperlink_ref (html_ostream_t first_arg, const char *ref);
+/* Like html_ostream_flush (first_arg, FLUSH_THIS_STREAM), except that it
+ leaves the destination with the current text style enabled, instead
+ of with the default text style.
+ After calling this function, you can output strings without newlines(!)
+ to the underlying stream, and they will be rendered like strings passed
+ to 'ostream_write_mem', 'ostream_write_str', or 'ostream_write_printf'. */
+extern void html_ostream_flush_to_current_style (html_ostream_t stream);
+/* Accessors. */
+extern ostream_t html_ostream_get_destination (html_ostream_t stream);
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Create an output stream that takes input in the UTF-8 encoding and
+ writes it in HTML form on DESTINATION.
+ This stream produces a sequence of lines. The caller is responsible
+ for opening the elements before and for closing them after
+ the use of this stream.
+ Note that the resulting stream must be closed before DESTINATION can be
+ closed. */
+extern html_ostream_t html_ostream_create (ostream_t destination);
+
+
+/* Test whether a given output stream is a html_ostream. */
+extern bool is_instance_of_html_ostream (ostream_t stream);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/* ----------------------- From term-styled-ostream.h ----------------------- */
+
+/* term_styled_ostream_t is a subtype of styled_ostream_t. */
+typedef styled_ostream_t term_styled_ostream_t;
+
+/* Functions that invoke the methods. */
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void term_styled_ostream_write_mem (term_styled_ostream_t first_arg, const void *data, size_t len);
+extern void term_styled_ostream_flush (term_styled_ostream_t first_arg, ostream_flush_scope_t scope);
+extern void term_styled_ostream_free (term_styled_ostream_t first_arg);
+extern void term_styled_ostream_begin_use_class (term_styled_ostream_t first_arg, const char *classname);
+extern void term_styled_ostream_end_use_class (term_styled_ostream_t first_arg, const char *classname);
+extern const char *term_styled_ostream_get_hyperlink_ref (term_styled_ostream_t first_arg);
+extern const char *term_styled_ostream_get_hyperlink_id (term_styled_ostream_t first_arg);
+extern void term_styled_ostream_set_hyperlink (term_styled_ostream_t first_arg, const char *ref, const char *id);
+extern void term_styled_ostream_flush_to_current_style (term_styled_ostream_t first_arg);
+/* Accessors. */
+extern term_ostream_t term_styled_ostream_get_destination (term_styled_ostream_t stream);
+extern const char *term_styled_ostream_get_css_filename (term_styled_ostream_t stream);
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Create an output stream referring to the file descriptor FD, styled with
+ the file CSS_FILENAME.
+ FILENAME is used only for error messages.
+ TTY_CONTROL specifies the amount of control to take over the underlying tty.
+ Note that the resulting stream must be closed before FD can be closed.
+ Return NULL upon failure. */
+extern term_styled_ostream_t
+ term_styled_ostream_create (int fd, const char *filename,
+ ttyctl_t tty_control,
+ const char *css_filename);
+
+
+/* Test whether a given output stream is a term_styled_ostream. */
+extern bool is_instance_of_term_styled_ostream (ostream_t stream);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/* ----------------------- From html-styled-ostream.h ----------------------- */
+
+/* html_styled_ostream_t is a subtype of styled_ostream_t. */
+typedef styled_ostream_t html_styled_ostream_t;
+
+/* Functions that invoke the methods. */
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void html_styled_ostream_write_mem (html_styled_ostream_t first_arg, const void *data, size_t len);
+extern void html_styled_ostream_flush (html_styled_ostream_t first_arg, ostream_flush_scope_t scope);
+extern void html_styled_ostream_free (html_styled_ostream_t first_arg);
+extern void html_styled_ostream_begin_use_class (html_styled_ostream_t first_arg, const char *classname);
+extern void html_styled_ostream_end_use_class (html_styled_ostream_t first_arg, const char *classname);
+extern const char *html_styled_ostream_get_hyperlink_ref (html_styled_ostream_t first_arg);
+extern const char *html_styled_ostream_get_hyperlink_id (html_styled_ostream_t first_arg);
+extern void html_styled_ostream_set_hyperlink (html_styled_ostream_t first_arg, const char *ref, const char *id);
+extern void html_styled_ostream_flush_to_current_style (html_styled_ostream_t first_arg);
+/* Accessors. */
+extern ostream_t html_styled_ostream_get_destination (html_styled_ostream_t stream);
+extern html_ostream_t html_styled_ostream_get_html_destination (html_styled_ostream_t stream);
+extern const char *html_styled_ostream_get_css_filename (html_styled_ostream_t stream);
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Create an output stream that takes input in the UTF-8 encoding and
+ writes it in HTML form on DESTINATION, styled with the file CSS_FILENAME.
+ Note that the resulting stream must be closed before DESTINATION can be
+ closed. */
+extern html_styled_ostream_t
+ html_styled_ostream_create (ostream_t destination,
+ const char *css_filename);
+
+
+/* Test whether a given output stream is a html_styled_ostream. */
+extern bool is_instance_of_html_styled_ostream (ostream_t stream);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/* ----------------------- From noop-styled-ostream.h ----------------------- */
+
+/* noop_styled_ostream_t is a subtype of styled_ostream_t. */
+typedef styled_ostream_t noop_styled_ostream_t;
+
+/* Functions that invoke the methods. */
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void noop_styled_ostream_write_mem (noop_styled_ostream_t first_arg, const void *data, size_t len);
+extern void noop_styled_ostream_flush (noop_styled_ostream_t first_arg, ostream_flush_scope_t scope);
+extern void noop_styled_ostream_free (noop_styled_ostream_t first_arg);
+extern void noop_styled_ostream_begin_use_class (noop_styled_ostream_t first_arg, const char *classname);
+extern void noop_styled_ostream_end_use_class (noop_styled_ostream_t first_arg, const char *classname);
+extern const char *noop_styled_ostream_get_hyperlink_ref (noop_styled_ostream_t first_arg);
+extern const char *noop_styled_ostream_get_hyperlink_id (noop_styled_ostream_t first_arg);
+extern void noop_styled_ostream_set_hyperlink (noop_styled_ostream_t first_arg, const char *ref, const char *id);
+extern void noop_styled_ostream_flush_to_current_style (noop_styled_ostream_t first_arg);
+/* Accessors. */
+extern ostream_t noop_styled_ostream_get_destination (noop_styled_ostream_t stream);
+extern bool noop_styled_ostream_is_owning_destination (noop_styled_ostream_t stream);
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Create an output stream that delegates to DESTINATION and that supports
+ the styling operations as no-ops.
+ If PASS_OWNERSHIP is true, closing the resulting stream will automatically
+ close the DESTINATION.
+ Note that if PASS_OWNERSHIP is false, the resulting stream must be closed
+ before DESTINATION can be closed. */
+extern noop_styled_ostream_t
+ noop_styled_ostream_create (ostream_t destination, bool pass_ownership);
+
+
+/* Test whether a given output stream is a noop_styled_ostream. */
+extern bool is_instance_of_noop_styled_ostream (ostream_t stream);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/* ------------------------------ From color.h ------------------------------ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Whether to output a test page. */
+extern LIBTEXTSTYLE_DLL_VARIABLE bool color_test_mode;
+
+/* Color option. */
+enum color_option { color_no, color_tty, color_yes, color_html };
+extern LIBTEXTSTYLE_DLL_VARIABLE enum color_option color_mode;
+
+/* Style to use when coloring. */
+extern LIBTEXTSTYLE_DLL_VARIABLE const char *style_file_name;
+
+/* --color argument handling. Return an error indicator. */
+extern bool handle_color_option (const char *option);
+
+/* --style argument handling. */
+extern void handle_style_option (const char *option);
+
+/* Print a color test page. */
+extern void print_color_test (void);
+
+/* Assign a default value to style_file_name if necessary.
+ STYLE_FILE_ENVVAR is an environment variable that, when set to a non-empty
+ value, specifies the style file to use. This environment variable is meant
+ to be set by the user.
+ STYLESDIR_ENVVAR is an environment variable that, when set to a non-empty
+ value, specifies the directory with the style files, or NULL. This is
+ necessary for running the testsuite before "make install".
+ STYLESDIR_AFTER_INSTALL is the directory with the style files after
+ "make install".
+ DEFAULT_STYLE_FILE is the file name of the default style file, relative to
+ STYLESDIR. */
+extern void style_file_prepare (const char *style_file_envvar,
+ const char *stylesdir_envvar,
+ const char *stylesdir_after_install,
+ const char *default_style_file);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/* ------------------------------ From misc.h ------------------------------ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Create an output stream referring to the file descriptor FD, styled with
+ the file CSS_FILENAME if possible.
+ FILENAME is used only for error messages.
+ TTY_CONTROL specifies the amount of control to take over the underlying tty.
+ Note that the resulting stream must be closed before FD can be closed. */
+extern styled_ostream_t
+ styled_ostream_create (int fd, const char *filename,
+ ttyctl_t tty_control,
+ const char *css_filename);
+
+/* Set the exit value upon failure within libtextstyle. */
+extern void libtextstyle_set_failure_exit_code (int exit_code);
+
+#ifdef __cplusplus
+}
+#endif
+
+/* ----------------------- Exported gnulib overrides ----------------------- */
+
+#if defined _WIN32 && ! defined __CYGWIN__
+
+# include
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+# if !((defined isatty && defined _GL_UNISTD_H) || defined GNULIB_overrides_isatty) /* don't override gnulib */
+extern int libtextstyle_isatty (int fd);
+# undef isatty
+# define isatty libtextstyle_isatty
+# endif
+
+# ifdef __cplusplus
+}
+# endif
+
+#endif
+
+/* ------------------------------------------------------------------------- */
+
+#endif /* _TEXTSTYLE_H */
diff --git a/bin/neovim/third-party/gettext/include/textstyle/stdbool.h b/bin/neovim/third-party/gettext/include/textstyle/stdbool.h
new file mode 100644
index 00000000..20347b94
--- /dev/null
+++ b/bin/neovim/third-party/gettext/include/textstyle/stdbool.h
@@ -0,0 +1,117 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#if !defined _GL_STDBOOL_H
+#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))
+#include
+#else
+/* Copyright (C) 2001-2003, 2006-2017, 2019 Free Software Foundation, Inc.
+ Written by Bruno Haible , 2001.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program; if not, see . */
+
+#ifndef _TEXTSTYLE_STDBOOL_H
+#define _TEXTSTYLE_STDBOOL_H
+
+/* ISO C 99 for platforms that lack it. */
+
+/* Usage suggestions:
+
+ Programs that use should be aware of some limitations
+ and standards compliance issues.
+
+ Standards compliance:
+
+ - must be #included before 'bool', 'false', 'true'
+ can be used.
+
+ - You cannot assume that sizeof (bool) == 1.
+
+ - Programs should not undefine the macros bool, true, and false,
+ as C99 lists that as an "obsolescent feature".
+
+ Limitations of this substitute, when used in a C89 environment:
+
+ - must be #included before the '_Bool' type can be used.
+
+ - You cannot assume that _Bool is a typedef; it might be a macro.
+
+ - Bit-fields of type 'bool' are not supported. Portable code
+ should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'.
+
+ - In C99, casts and automatic conversions to '_Bool' or 'bool' are
+ performed in such a way that every nonzero value gets converted
+ to 'true', and zero gets converted to 'false'. This doesn't work
+ with this substitute. With this substitute, only the values 0 and 1
+ give the expected result when converted to _Bool' or 'bool'.
+
+ - C99 allows the use of (_Bool)0.0 in constant expressions, but
+ this substitute cannot always provide this property.
+
+ Also, it is suggested that programs use 'bool' rather than '_Bool';
+ this isn't required, but 'bool' is more common. */
+
+
+/* 7.16. Boolean type and values */
+
+#ifdef __cplusplus
+ /* Assume the compiler has 'bool' and '_Bool'. */
+#else
+ /* is known to exist and work with the following compilers:
+ - GNU C 3.0 or newer, on any platform,
+ - Intel C,
+ - MSVC 12 (Visual Studio 2013) or newer,
+ - Sun C, on Solaris, if _STDC_C99 is defined,
+ - AIX xlc, if _ANSI_C_SOURCE is defined,
+ - HP C, on HP-UX 11.31 or newer.
+ It is know not to work with:
+ - Sun C, on Solaris, if __C99FEATURES__ is defined but _STDC_C99 is not,
+ - MIPSpro C 7.30, on IRIX. */
+# if (__GNUC__ >= 3) \
+ || defined __INTEL_COMPILER \
+ || (_MSC_VER >= 1800) \
+ || (defined __SUNPRO_C && defined _STDC_C99) \
+ || (defined _AIX && !defined __GNUC__ && defined _ANSI_C_SOURCE) \
+ || defined __HP_cc
+ /* Assume the compiler has . */
+# include
+# else
+ /* Need to define _Bool ourselves. As 'signed char' or as an enum type?
+ Use of a typedef, with SunPRO C, leads to a stupid
+ "warning: _Bool is a keyword in ISO C99".
+ Use of an enum type, with IRIX cc, leads to a stupid
+ "warning(1185): enumerated type mixed with another type".
+ Even the existence of an enum type, without a typedef,
+ "Invalid enumerator. (badenum)" with HP-UX cc on Tru64.
+ The only benefit of the enum, debuggability, is not important
+ with these compilers. So use 'signed char' and no enum. */
+# define _Bool signed char
+# define bool _Bool
+# endif
+#endif
+
+/* The other macros must be usable in preprocessor directives. */
+#ifdef __cplusplus
+# define false false
+# define true true
+#else
+# undef false
+# define false 0
+# undef true
+# define true 1
+#endif
+
+#define __bool_true_false_are_defined 1
+
+#endif /* _TEXTSTYLE_STDBOOL_H */
+#endif
+#endif
diff --git a/bin/neovim/third-party/gettext/include/textstyle/version.h b/bin/neovim/third-party/gettext/include/textstyle/version.h
new file mode 100644
index 00000000..d73d9508
--- /dev/null
+++ b/bin/neovim/third-party/gettext/include/textstyle/version.h
@@ -0,0 +1,44 @@
+/* Meta information about GNU libtextstyle.
+ Copyright (C) 2009-2010, 2019 Free Software Foundation, Inc.
+ Written by Bruno Haible , 2009.
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see . */
+
+#ifndef _TEXTSTYLE_VERSION_H
+#define _TEXTSTYLE_VERSION_H
+
+/* Get LIBTEXTSTYLE_DLL_VARIABLE. */
+#include
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Version number: (major<<16) + (minor<<8) + subminor. */
+#define _LIBTEXTSTYLE_VERSION 0x001604
+extern LIBTEXTSTYLE_DLL_VARIABLE const int _libtextstyle_version; /* Likewise */
+
+
+/* 1 if libtextstyle was built with iconv support, 0 if not. */
+#define LIBTEXTSTYLE_USES_ICONV 1
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _TEXTSTYLE_VERSION_H */
diff --git a/bin/neovim/third-party/gettext/include/textstyle/woe32dll.h b/bin/neovim/third-party/gettext/include/textstyle/woe32dll.h
new file mode 100644
index 00000000..195f897a
--- /dev/null
+++ b/bin/neovim/third-party/gettext/include/textstyle/woe32dll.h
@@ -0,0 +1,30 @@
+/* Support for variables in shared libraries on Windows platforms.
+ Copyright (C) 2009, 2019 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see . */
+
+/* Written by Bruno Haible , 2009. */
+
+#ifndef _TEXTSTYLE_WOE32DLL_H
+#define _TEXTSTYLE_WOE32DLL_H
+
+#ifdef IN_LIBTEXTSTYLE
+/* All code is collected in a single library, */
+# define LIBTEXTSTYLE_DLL_VARIABLE
+#else
+/* References from outside of libtextstyle. */
+# define LIBTEXTSTYLE_DLL_VARIABLE
+#endif
+
+#endif /* _TEXTSTYLE_WOE32DLL_H */
diff --git a/bin/neovim/third-party/gettext/lib/libintl.a b/bin/neovim/third-party/gettext/lib/libintl.a
new file mode 100644
index 00000000..29b025bb
--- /dev/null
+++ b/bin/neovim/third-party/gettext/lib/libintl.a
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:afd6b06f335a03b274474aa0362071bb5e79742883beeaef4d4e1a8b7ab8287c
+size 305656
diff --git a/bin/neovim/third-party/gettext/share b/bin/neovim/third-party/gettext/share
new file mode 120000
index 00000000..2a655ef5
--- /dev/null
+++ b/bin/neovim/third-party/gettext/share
@@ -0,0 +1 @@
+/opt/homebrew/opt/gettext/share
\ No newline at end of file