Not found [cups_]strl{cat|cpy} in Fedora 5

Emanuel Moura dos Santos ems at terra.com.br
Tue Jun 20 12:12:05 PDT 2006


Hi,

I'm using Fedora core 5. The script ./configure not found functions strlcat and strlcpy (or cups_strlcat/cpy) required for compile DDK. I found these in my system:

/usr/include/openssl/buffer.h:
    size_t BUF_strlcpy(char *dst,const char *src,size_t siz);
    size_t BUF_strlcat(char *dst,const char *src,size_t siz);

/usr/include/glib-2.0/glib/gstrfuncs.h:
    gsize g_strlcpy(gchar *dest,const gchar *src,gsize dest_size);
    gsize g_strlcat(gchar *dest,const gchar *src,gsize dest_size);

/usr/include/pppd/pppd.h:
    size_t strlcpy __P((char *, const char *, size_t));
    size_t strlcat __P((char *, const char *, size_t));

I did not obtain to use none of these.

I wrote the following code:

#include <string.h>

size_t cups_strlcpy(char *dest,const char *src,size_t dest_maxsize)
{
    strncpy(dest,src,dest_maxsize);
    dest[dest_maxsize-1] = 0;
    return strlen(dest) + 1;
}

size_t cups_strlcat(char *dest,const char *src,size_t dest_maxsize)
{
    size_t dest_len = strlen(dest);
    if(dest_len < dest_maxsize - 1) {
        return dest_len +
               cups_strlcpy(&dest[dest_len],src,dest_maxsize-dest_len);
    } else return dest_maxsize;
}

Now, I successfully compile DDK.

The algorithm for the functions above is correct?





More information about the cups-devel mailing list