ncbi_ansi_ext.h
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:5k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: ncbi_ansi_ext.h,v $
  4.  * PRODUCTION Revision 1000.1  2004/04/12 17:06:04  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R6.12
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef CONNECT___NCBI_ANSI_EXT__H
  10. #define CONNECT___NCBI_ANSI_EXT__H
  11. /*  $Id: ncbi_ansi_ext.h,v 1000.1 2004/04/12 17:06:04 gouriano Exp $
  12.  * ===========================================================================
  13.  *
  14.  *                            PUBLIC DOMAIN NOTICE
  15.  *               National Center for Biotechnology Information
  16.  *
  17.  *  This software/database is a "United States Government Work" under the
  18.  *  terms of the United States Copyright Act.  It was written as part of
  19.  *  the author's official duties as a United States Government employee and
  20.  *  thus cannot be copyrighted.  This software/database is freely available
  21.  *  to the public for use. The National Library of Medicine and the U.S.
  22.  *  Government have not placed any restriction on its use or reproduction.
  23.  *
  24.  *  Although all reasonable efforts have been taken to ensure the accuracy
  25.  *  and reliability of the software and data, the NLM and the U.S.
  26.  *  Government do not and cannot warrant the performance or results that
  27.  *  may be obtained by using this software or data. The NLM and the U.S.
  28.  *  Government disclaim all warranties, express or implied, including
  29.  *  warranties of performance, merchantability or fitness for any particular
  30.  *  purpose.
  31.  *
  32.  *  Please cite the author in any work or product based on this material.
  33.  *
  34.  * ===========================================================================
  35.  *
  36.  * Author:  Anton Lavrentiev
  37.  *
  38.  * File Description:
  39.  *   Non-ANSI, yet widely used functions
  40.  *
  41.  */
  42. #include <connect/connect_export.h>
  43. #include "ncbi_config.h"
  44. #include <stddef.h>
  45. #include <string.h>
  46. #ifdef __cplusplus
  47. extern "C" {
  48. #endif
  49. #ifndef HAVE_STRDUP
  50. #  ifdef strdup
  51. #    undef strdup
  52. #  endif
  53. #  define strdup      NCBI_strdup
  54. /* Create a copy of string "str".
  55.  * Return an identical malloc'ed string, which must be explicitly freed 
  56.  * by free() when no longer needed.
  57.  */
  58. extern char* strdup(const char* str);
  59. #endif /*HAVE_STRDUP*/
  60. #ifndef HAVE_STRCASECMP
  61. #  ifdef strcasecmp
  62. #    undef strcasecmp
  63. #    undef strncasecmp
  64. #  endif
  65. #  define strcasecmp  NCBI_strcasecmp
  66. #  define strncasecmp NCBI_strncasecmp
  67. /* Compare "s1" and "s2", ignoring case.
  68.  * Return less than, equal to or greater than zero if
  69.  * "s1" is lexicographically less than, equal to or greater than "s2".
  70.  */
  71. extern NCBI_XCONNECT_EXPORT int strcasecmp(const char* s1, const char* s2);
  72. /* Compare not more than "n" characters of "s1" and "s2", ignoring case.
  73.  * Return less than, equal to or greater than zero if
  74.  * "s1" is lexicographically less than, equal to or greater than "s2".
  75.  */
  76. extern NCBI_XCONNECT_EXPORT int strncasecmp(const char* s1, const char* s2, size_t n);
  77. #endif/*HAVE_STRCASECMP*/
  78. #ifdef strupr
  79. #  undef strupr
  80. #  undef strlwr
  81. #endif
  82. #define strupr NCBI_strupr
  83. #define strlwr NCBI_strlwr
  84. /* Convert a string to uppercase, then return pointer to
  85.  * the altered string. Because the conversion is made in place, the
  86.  * returned pointer is the same as the passed one.
  87.  */
  88. extern NCBI_XCONNECT_EXPORT char* strupr(char* s);
  89. /* Convert a string to lowercase, then return pointer to
  90.  * the altered string. Because the conversion is made in place, the
  91.  * returned pointer is the same as the passed one.
  92.  */
  93. extern NCBI_XCONNECT_EXPORT char* strlwr(char* s);
  94. /* Copy not more than "n" characters from string "s2" into "s1"
  95.  * and return the result, which is always null-terminated.
  96.  * NOTE: The difference of this function from standard strncpy() is in
  97.  * that the result is always null-terminated and that the function
  98.  * does not pad "s1" with null bytes should "s2" be shorter than "n".
  99.  */
  100. extern NCBI_XCONNECT_EXPORT char* strncpy0(char* s1, const char* s2, size_t n);
  101. #ifdef __cplusplus
  102. } /* extern "C" */
  103. #endif
  104. /*
  105.  * --------------------------------------------------------------------------
  106.  * $Log: ncbi_ansi_ext.h,v $
  107.  * Revision 1000.1  2004/04/12 17:06:04  gouriano
  108.  * PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R6.12
  109.  *
  110.  * Revision 6.12  2004/03/12 23:25:37  gorelenk
  111.  * Added export prefixes.
  112.  *
  113.  * Revision 6.11  2002/10/28 15:41:25  lavr
  114.  * Header made private (moved from include/connect to here)
  115.  *
  116.  * Revision 6.10  2002/09/24 15:01:17  lavr
  117.  * File description indented uniformly
  118.  *
  119.  * Revision 6.9  2002/09/19 17:59:40  lavr
  120.  * Header file guard macro changed; log moved to the end
  121.  *
  122.  * Revision 6.8  2000/11/07 21:19:35  vakatov
  123.  * Compilation warning fixed;  plus, some code beautification...
  124.  *
  125.  * Revision 6.7  2000/10/18 21:15:19  lavr
  126.  * strupr and strlwr added
  127.  *
  128.  * Revision 6.6  2000/10/06 16:39:22  lavr
  129.  * <string.h> included and #defines now take care of functions declared
  130.  * through macros (needed on Linux to prevent macro redefinitions)
  131.  *
  132.  * Revision 6.5  2000/10/05 21:26:07  lavr
  133.  * ncbiconf.h removed
  134.  *
  135.  * Revision 6.4  2000/05/22 16:53:36  lavr
  136.  * Minor change
  137.  *
  138.  * Revision 6.3  2000/05/17 18:51:28  vakatov
  139.  * no HAVE_SIGACTION
  140.  *
  141.  * Revision 6.2  2000/05/17 16:09:57  lavr
  142.  * Define prototypes of functions, usually defined but hidden in ANSI mode
  143.  *
  144.  * Revision 6.1  2000/05/15 19:03:07  lavr
  145.  * Initial revision
  146.  *
  147.  * ==========================================================================
  148.  */
  149. #endif /* CONNECT___NCBI_ANSI_EXT__H */