X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Finclude%2Flibc-extension.hh;h=d2de8252d494b02ceb5b1e6f543ad79c3cbc7ffb;hb=9e781b7dc83b60a543ce218aa1a5f139f74c760f;hp=a6b5cf83928f4258c77c174e43768040ff7ae59b;hpb=58bcc84c9480dae1b21bc24d8396b91fe19e0131;p=lilypond.git diff --git a/flower/include/libc-extension.hh b/flower/include/libc-extension.hh index a6b5cf8392..d2de8252d4 100644 --- a/flower/include/libc-extension.hh +++ b/flower/include/libc-extension.hh @@ -1,117 +1,66 @@ /* - libc-extension.hh -- declare some string.h extensions + This file is part of LilyPond, the GNU music typesetter. - source file of the flowerlib + Copyright (C) 1997--2014 Han-Wen Nienhuys - (c) 1997--2005 Han-Wen Nienhuys + LilyPond 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. + + LilyPond 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 LilyPond. If not, see . */ #ifndef LIBC_EXTENSION_HH #define LIBC_EXTENSION_HH -#include -#include +#include +#include +using namespace std; #include "config.hh" char *strnlwr (char *start, int n); char *strnupr (char *start, int n); -#if ! HAVE_MEMMEM /* GNU extension. */ +#if ! HAVE_MEMMEM /* GNU extension. */ void *memmem (void const *haystack, int haystack_len, - void const *needle, int needle_len); + void const *needle, int needle_len); #endif /* HAVE_MEMMEM */ -#if ! HAVE_SNPRINTF /* GNU extension. */ -int snprintf (char *str, size_t n, char const *format, ...); -#endif - -#if ! HAVE_VSNPRINTF /* GNU extension. */ -int vsnprintf (char *str, size_t, char const *format, va_list args); -#endif - -#ifndef isinf -#if ! HAVE_ISINF /* BSD extension. */ -int isinf (double x); -#endif +#if ! HAVE_MEMRCHR +unsigned char *memrchr (unsigned char const *p, int n, char c); #endif -#ifdef __cplusplus -extern "C" { +#if ! HAVE_MEMREV +unsigned char *memrev (unsigned char *byte, int length_i); #endif -#if ! HAVE_FOPENCOOKIE /* GNU extension. */ +double my_round (double); -#include -#include +/* namespace std { */ -#if (! defined (__off64_t) && ! defined (__off64_t_defined)) || ! defined (__cplusplus) -#define off64_t unsigned long long +#if ! HAVE_SNPRINTF /* GNU extension. */ +int snprintf (char *str, size_t n, char const *format, ...); +__attribute__ ((format (printf, 3, 4))); #endif -#if HAVE_LIBIO_H -#include -#else - -#if 1 //! HAVE_FUNOPEN - -#define cookie_io_functions_t le_cookie_io_functions_t - typedef struct - { - ssize_t (*read) (void *, char *, size_t); - ssize_t (*write) (void *, char const *, size_t); - int (*seek) (void *, off64_t *, int); - int (*close) (void *); - } - cookie_io_functions_t; - -#else - - typedef struct - { - int (*read) (void *, char *, int); - int (*write) (void *, char const *, int); - fpos_t (*seek) (void *, fpos_t, int); - int (*close) (void *); - } - cookie_io_functions_t; - -#endif /* ! HAVE_FUNOPEN */ -#endif /* ! HAVE_LIBIO_H */ - - FILE *fopencookie (void *cookie, char const *modes, - cookie_io_functions_t io_funcs); - -#if ! HAVE_FUNOPEN - - int handle_cookie_io_fclose (FILE *); - int handle_cookie_io_fprintf (FILE *file, char const *format, ...); - int handle_cookie_io_putc (int c, FILE *file); - - /* FIXME: ttftool uses fclose fopencookie fprintf and putc only. if - ALIAS_FILE_TO_FILECOOKIE, blondly redefine those functions - to wrappers that check for and handle Memory_out_stream. */ -#ifdef ALIAS_FILE_TO_FILECOOKIE - -#define fclose handle_cookie_io_fclose -#define fprintf handle_cookie_io_fprintf -#ifdef putc -#define std_putc putc -#undef putc +#if ! HAVE_VSNPRINTF /* GNU extension. */ +int vsnprintf (char *str, size_t, char const *format, va_list args); #endif -#define putc handle_cookie_io_putc - -#endif /* ALIAS_FILE_TO_FILECOOKIE */ -#endif /* ! HAVE_FUNOPEN */ -#endif /* ! HAVE_FOPENCOOKIE */ -#ifdef __cplusplus -} /* extern "C" */ +#ifndef isinf +#if ! HAVE_ISINF /* BSD extension. */ +int isinf (double x); +#endif #endif -unsigned char *memrchr (unsigned char const *p, int n, char c); -unsigned char *strrev (unsigned char *byte, int length_i); - -double my_round (double); +/* }; */ #endif /* LIBC_EXTENSION_HH */