From: Jake Farrell Date: Sun, 6 Nov 2011 16:07:45 +0000 (+0000) Subject: Thrift-1382: Bundle install doesnot work because thrift crashes X-Git-Tag: 0.8.0~25 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=ceead00409628055eff057afd2d78565ddfa6eb1;p=common%2Fthrift.git Thrift-1382: Bundle install doesnot work because thrift crashes Client: ruby Patch: Jake Farrell Fixes strlcpy header include issue with ruby 1.9.x. git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1198394 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/lib/rb/ext/strlcpy.c b/lib/rb/ext/strlcpy.c new file mode 100644 index 00000000..39969504 --- /dev/null +++ b/lib/rb/ext/strlcpy.c @@ -0,0 +1,44 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#include + +#ifndef HAVE_STRLCPY +#define HAVE_STRLCPY + +size_t +strlcpy (char *dst, const char *src, size_t dst_sz) +{ + size_t n; + + for (n = 0; n < dst_sz; n++) { + if ((*dst++ = *src++) == '\0') + break; + } + + if (n < dst_sz) + return n; + if (n > 0) + *(dst - 1) = '\0'; + return n + strlen (src); +} +#else +extern size_t strlcpy(char *, const char *, size_t); +#endif + diff --git a/lib/rb/ext/struct.c b/lib/rb/ext/struct.c index 82345730..d719e339 100644 --- a/lib/rb/ext/struct.c +++ b/lib/rb/ext/struct.c @@ -21,33 +21,6 @@ #include "constants.h" #include "macros.h" -#ifndef HAVE_STRLCPY - -static -size_t -strlcpy (char *dst, const char *src, size_t dst_sz) -{ - size_t n; - - for (n = 0; n < dst_sz; n++) { - if ((*dst++ = *src++) == '\0') - break; - } - - if (n < dst_sz) - return n; - if (n > 0) - *(dst - 1) = '\0'; - return n + strlen (src); -} -#else -/* - Ruby 1.9.x includes the OpenBSD implementation of strlcpy. - See missing/strlcpy.c in Ruby 1.9 source - */ -extern size_t strlcpy(char *, const char *, size_t); -#endif - VALUE thrift_union_class; ID setfield_id;