[BACK]Return to xstd.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/Attic/xstd.c between version 1.2 and 1.5

version 1.2, 2008/12/29 18:08:44 version 1.5, 2009/01/20 22:55:46
Line 16 
Line 16 
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR   * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.   * PERFORMANCE OF THIS SOFTWARE.
  */   */
   #include <assert.h>
 #include <err.h>  #include <err.h>
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  #include <string.h>
   
 #include "private.h"  #include "private.h"
   
   /*
    * Contains wrappers for common functions to simplify their general
    * usage throughout this codebase.
    */
   
 #ifdef __linux__  #ifdef __linux__
 extern  size_t           strlcat(char *, const char *, size_t);  extern  size_t           strlcat(char *, const char *, size_t);
 extern  size_t           strlcpy(char *, const char *, size_t);  extern  size_t           strlcpy(char *, const char *, size_t);
Line 29  extern size_t   strlcpy(char *, const char *, size_t);
Line 35  extern size_t   strlcpy(char *, const char *, size_t);
   
   
 int  int
   xstrncmp(const char *p1, const char *p2, size_t sz)
   {
   
           return(0 == strncmp(p1, p2, sz));
   }
   
   int
 xstrcmp(const char *p1, const char *p2)  xstrcmp(const char *p1, const char *p2)
 {  {
   
         return(0 == strcmp(p1, p2));          return(0 == strcmp(p1, p2));
 }  }
   
   
 int  int
 xstrlcat(char *dst, const char *src, size_t sz)  xstrlcat(char *dst, const char *src, size_t sz)
 {  {
Line 43  xstrlcat(char *dst, const char *src, size_t sz)
Line 55  xstrlcat(char *dst, const char *src, size_t sz)
         return(strlcat(dst, src, sz) < sz);          return(strlcat(dst, src, sz) < sz);
 }  }
   
   
 int  int
 xstrlcpy(char *dst, const char *src, size_t sz)  xstrlcpy(char *dst, const char *src, size_t sz)
 {  {
Line 51  xstrlcpy(char *dst, const char *src, size_t sz)
Line 62  xstrlcpy(char *dst, const char *src, size_t sz)
         return(strlcpy(dst, src, sz) < sz);          return(strlcpy(dst, src, sz) < sz);
 }  }
   
   
   
 void *  void *
 xcalloc(size_t num, size_t sz)  xcalloc(size_t num, size_t sz)
 {  {
Line 63  xcalloc(size_t num, size_t sz)
Line 72  xcalloc(size_t num, size_t sz)
         return(p);          return(p);
 }  }
   
   
 char *  char *
 xstrdup(const char *p)  xstrdup(const char *p)
 {  {
Line 74  xstrdup(const char *p)
Line 82  xstrdup(const char *p)
         return(pp);          return(pp);
 }  }
   
   int
   xstrlcats(char *buf, const struct mdoc_node *n, size_t sz)
   {
           char             *p;
   
           assert(sz > 0);
           assert(buf);
           *buf = 0;
   
           for ( ; n; n = n->next) {
                   assert(MDOC_TEXT == n->type);
                   p = n->data.text.string;
                   if ( ! xstrlcat(buf, p, sz))
                           return(0);
                   if (n->next && ! xstrlcat(buf, " ", sz))
                           return(0);
           }
   
           return(1);
   }
   
 #ifdef __linux__  #ifdef __linux__
 /*      $OpenBSD$       */  /*      $OpenBSD$       */
   
Line 125  strlcat(char *dst, const char *src, size_t siz)
Line 153  strlcat(char *dst, const char *src, size_t siz)
   
         return(dlen + (s - src));       /* count does not include NUL */          return(dlen + (s - src));       /* count does not include NUL */
 }  }
   
   
 size_t  size_t
 strlcpy(char *dst, const char *src, size_t siz)  strlcpy(char *dst, const char *src, size_t siz)

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.5

CVSweb