?RCS: $Id: d_bcopy.U 167 2013-05-08 17:58:00Z rmanfredi $ ?RCS: ?RCS: Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi ?RCS: ?RCS: You may redistribute only under the terms of the Artistic License, ?RCS: as specified in the README file that comes with the distribution. ?RCS: You may reuse parts of this distribution only within the terms of ?RCS: that same Artistic License; a copy of which may be found at the root ?RCS: of the source tree for dist 4.0. ?RCS: ?RCS: $Log: d_bcopy.U,v $ ?RCS: Revision 3.0.1.2 1993/10/16 13:48:04 ram ?RCS: patch12: added magic support for bcopy() ?RCS: ?RCS: Revision 3.0.1.1 1993/09/13 16:01:11 ram ?RCS: patch10: now only defines HAS_BCOPY, no macro remap on memcpy (WAD) ?RCS: ?RCS: Revision 3.0 1993/08/18 12:05:44 ram ?RCS: Baseline for dist 3.0 netwide release. ?RCS: ?MAKE:d_bcopy: Trylink cat ?MAKE: -pick add $@ %< ?S:d_bcopy: ?S: This variable conditionally defines the HAS_BCOPY symbol if ?S: the bcopy() routine is available to copy strings. ?S:. ?C:HAS_BCOPY: ?C: This symbol is defined if the bcopy() routine is available to ?C: copy blocks of memory. ?C:. ?H:#$d_bcopy HAS_BCOPY /**/ ?H:. ?M:bcopy: HAS_BCOPY ?M:#ifndef HAS_BCOPY ?M:#ifndef bcopy ?M:#define bcopy(s,d,l) memcpy((d),(s),(l)) ?M:#endif ?M:#endif ?M:. ?LINT:set d_bcopy : see if bcopy exists ?X: Test is over-complex to avoid gcc optimizing bcopy() away. $cat >try.c < static void init_data(char *a, unsigned len) { unsigned i; for (i = 0; i < len; i++) a[i] = i * 2 + 1; } static void recopy_data(char *src, char *dst, unsigned len) { bcopy(&src[3], &dst[0], len - 3); } int main(void) { static char src[20], dst[20]; init_data(src, sizeof src); recopy_data(src, dst, sizeof src); return dst[0] + dst[1]; } EOC cyn=bcopy set d_bcopy eval $trylink