Bug #918 » lldiv.patch
| src/lib/libc/stdlib/lldiv.3 2008-01-15 16:26:51 +0100 | ||
|---|---|---|
| .\" Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org> | ||
| .\" All rights reserved. | ||
| .\" | ||
| .\" Redistribution and use in source and binary forms, with or without | ||
| .\" modification, are permitted provided that the following conditions | ||
| .\" are met: | ||
| .\" 1. Redistributions of source code must retain the above copyright | ||
| .\"    notice, this list of conditions and the following disclaimer. | ||
| .\" 2. Redistributions in binary form must reproduce the above copyright | ||
| .\"    notice, this list of conditions and the following disclaimer in the | ||
| .\"    documentation and/or other materials provided with the distribution. | ||
| .\" | ||
| .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| .\" SUCH DAMAGE. | ||
| .\" | ||
| .\" $FreeBSD: src/lib/libc/stdlib/lldiv.3,v 1.2 2001/11/21 16:19:50 ru Exp $ | ||
| .\" | ||
| .Dd November 14, 2001 | ||
| .Dt LLDIV 3 | ||
| .Os | ||
| .Sh NAME | ||
| .Nm lldiv | ||
| .Nd returns quotient and remainder | ||
| .Sh LIBRARY | ||
| .Lb libc | ||
| .Sh SYNOPSIS | ||
| .In stdlib.h | ||
| .Ft lldiv_t | ||
| .Fn lldiv "long long numer" "long long denom" | ||
| .Sh DESCRIPTION | ||
| The | ||
| .Fn lldiv | ||
| function computes the value of | ||
| .Fa numer | ||
| divided by | ||
| .Fa denom | ||
| and returns the stored result in the form of the | ||
| .Vt lldiv_t | ||
| type. | ||
| .Pp | ||
| The | ||
| .Vt lldiv_t | ||
| type is defined as: | ||
| .Bd -literal -offset indent | ||
| typedef struct { | ||
| 	long long quot; /* Quotient. */ | ||
| 	long long rem;  /* Remainder. */ | ||
| } lldiv_t; | ||
| .Ed | ||
| .Sh SEE ALSO | ||
| .Xr div 3 , | ||
| .Xr imaxdiv 3 , | ||
| .Xr ldiv 3 , | ||
| .Xr math 3 | ||
| .Sh STANDARDS | ||
| The | ||
| .Fn lldiv | ||
| function conforms to | ||
| .St -isoC-99 . | ||
| .Sh HISTORY | ||
| The | ||
| .Fn lldiv | ||
| function first appeared in | ||
| .Fx 5.0 . | ||
| -- /dev/null	2008-01-15 16:02:39 +0100 | ||
| ++ src/lib/libc/stdlib/lldiv.c	2008-01-15 16:28:49 +0100 | ||
| /*- | ||
|  * Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org> | ||
|  * All rights reserved. | ||
|  * | ||
|  * Redistribution and use in source and binary forms, with or without | ||
|  * modification, are permitted provided that the following conditions | ||
|  * are met: | ||
|  * 1. Redistributions of source code must retain the above copyright | ||
|  *    notice, this list of conditions and the following disclaimer. | ||
|  * 2. Redistributions in binary form must reproduce the above copyright | ||
|  *    notice, this list of conditions and the following disclaimer in the | ||
|  *    documentation and/or other materials provided with the distribution. | ||
|  * | ||
|  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||
|  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
|  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
|  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
|  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
|  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
|  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
|  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
|  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
|  * SUCH DAMAGE. | ||
|  * | ||
|  * $FreeBSD: src/lib/libc/stdlib/lldiv.c,v 1.1 2001/11/15 02:05:03 mike Exp $ | ||
|  */ | ||
| #include <stdlib.h>		/* lldiv_t */ | ||
| lldiv_t | ||
| lldiv(long long numer, long long denom) | ||
| { | ||
| 	lldiv_t retval; | ||
|  | ||
| 	/* see div.c for comments */ | ||
| 	retval.quot = numer / denom; | ||
| 	retval.rem = numer % denom; | ||
| 	if (numer >= 0 && retval.rem < 0) { | ||
| 		retval.quot++; | ||
| 		retval.rem -= denom; | ||
| 	} | ||
| 	return (retval); | ||
| } | ||
| -- src/include/stdlib.h.orig	2007-12-02 18:08:33 +0100 | ||
| ++ src/include/stdlib.h	2008-01-15 16:00:42 +0100 | ||
| 	long rem;		/* remainder */ | ||
| } ldiv_t; | ||
| #if __ISO_C_VISIBLE >= 1999 | ||
| typedef struct { | ||
|         long long quot; | ||
|         long long rem; | ||
| } lldiv_t; | ||
| #endif | ||
| #ifndef NULL | ||
| #define	NULL	0 | ||
| #endif | ||
| ... | ... | |
| char	*getenv(const char *); | ||
| long	 labs(long) __pure2; | ||
| ldiv_t	 ldiv(long, long) __pure2; | ||
| #if __ISO_C_VISIBLE >= 1999 | ||
| lldiv_t	 lldiv(long long, long long) __pure2; | ||
| #endif | ||
| void	*malloc(size_t); | ||
| void	 qsort(void *, size_t, size_t, int(*)(const void *, const void *)); | ||
| int	 rand(void); | ||
| -- /dev/null	2008-01-23 00:12:16 +0100 | ||
| ++ src/lib/libc/stdlib/imaxdiv.3	2008-01-23 00:26:29 +0100 | ||
| ... | ... | |
| .\" Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org> | ||
| .\" All rights reserved. | ||
| .\" | ||
| .\" Redistribution and use in source and binary forms, with or without | ||
| .\" modification, are permitted provided that the following conditions | ||
| .\" are met: | ||
| .\" 1. Redistributions of source code must retain the above copyright | ||
| .\"    notice, this list of conditions and the following disclaimer. | ||
| .\" 2. Redistributions in binary form must reproduce the above copyright | ||
| .\"    notice, this list of conditions and the following disclaimer in the | ||
| .\"    documentation and/or other materials provided with the distribution. | ||
| .\" | ||
| .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| .\" SUCH DAMAGE. | ||
| .\" | ||
| .\" $FreeBSD: src/lib/libc/stdlib/imaxdiv.3,v 1.2 2001/11/21 16:19:50 ru Exp $ | ||
| .\" | ||
| .Dd November 14, 2001 | ||
| .Dt IMAXDIV 3 | ||
| .Os | ||
| .Sh NAME | ||
| .Nm imaxdiv | ||
| .Nd returns quotient and remainder | ||
| .Sh LIBRARY | ||
| .Lb libc | ||
| .Sh SYNOPSIS | ||
| .In inttypes.h | ||
| .Ft imaxdiv_t | ||
| .Fn imaxdiv "intmax_t numer" "intmax_t denom" | ||
| .Sh DESCRIPTION | ||
| The | ||
| .Fn imaxdiv | ||
| function computes the value of | ||
| .Fa numer | ||
| divided by | ||
| .Fa denom | ||
| and returns the stored result in the form of the | ||
| .Vt imaxdiv_t | ||
| type. | ||
| .Pp | ||
| The | ||
| .Vt imaxdiv_t | ||
| type is defined as: | ||
| .Bd -literal -offset indent | ||
| typedef struct { | ||
| 	intmax_t quot; /* Quotient. */ | ||
| 	intmax_t rem;  /* Remainder. */ | ||
| } imaxdiv_t; | ||
| .Ed | ||
| .Sh SEE ALSO | ||
| .Xr div 3 , | ||
| .Xr ldiv 3 , | ||
| .Xr lldiv 3 , | ||
| .Xr math 3 | ||
| .Sh STANDARDS | ||
| The | ||
| .Fn imaxdiv | ||
| function conforms to | ||
| .St -isoC-99 . | ||
| .Sh HISTORY | ||
| The | ||
| .Fn imaxdiv | ||
| function first appeared in | ||
| .Fx 5.0 . | ||
| ... | ... | |
| -- /dev/null	2008-01-23 00:12:16 +0100 | ||
| ++ src/lib/libc/stdlib/imaxdiv.c	2008-01-23 00:30:49 +0100 | ||
| ... | ... | |
| /*- | ||
|  * Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org> | ||
|  * All rights reserved. | ||
|  * | ||
|  * Redistribution and use in source and binary forms, with or without | ||
|  * modification, are permitted provided that the following conditions | ||
|  * are met: | ||
|  * 1. Redistributions of source code must retain the above copyright | ||
|  *    notice, this list of conditions and the following disclaimer. | ||
|  * 2. Redistributions in binary form must reproduce the above copyright | ||
|  *    notice, this list of conditions and the following disclaimer in the | ||
|  *    documentation and/or other materials provided with the distribution. | ||
|  * | ||
|  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||
|  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
|  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
|  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
|  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
|  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
|  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
|  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
|  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
|  * SUCH DAMAGE. | ||
|  * | ||
|  * $FreeBSD: src/lib/libc/stdlib/imaxdiv.c,v 1.1 2001/11/15 02:05:03 mike Exp $ | ||
|  */ | ||
| #include <inttypes.h> | ||
| imaxdiv_t | ||
| imaxdiv(intmax_t numer, intmax_t denom) | ||
| { | ||
| 	imaxdiv_t retval; | ||
|  | ||
| 	/* see div.c for comments */ | ||
|  | ||
| 	retval.quot = numer / denom; | ||
| 	retval.rem = numer % denom; | ||
| 	if (numer >= 0 && retval.rem < 0) { | ||
| 		retval.quot++; | ||
| 		retval.rem -= denom; | ||
| 	} | ||
| 	return (retval); | ||
| } | ||
| ... | ... | |
| -- src/lib/libc/stdlib/Makefile.inc.orig	2007-12-02 04:00:18 +0100 | ||
| ++ src/lib/libc/stdlib/Makefile.inc	2008-01-23 00:42:00 +0100 | ||
| ... | ... | |
| MISRCS+=abort.c abs.c atexit.c atof.c atoi.c atol.c atoll.c bsearch.c calloc.c div.c \ | ||
| 	exit.c getenv.c getopt.c getopt_long.c getsubopt.c hcreate.c heapsort.c \ | ||
| 	imaxabs.c \ | ||
| 	labs.c ldiv.c llabs.c malloc.c merge.c putenv.c qsort.c radixsort.c rand.c \ | ||
| 	random.c reallocf.c realpath.c setenv.c strtod.c strtoimax.c strtol.c \ | ||
| 	imaxabs.c imaxdiv.c \ | ||
| 	labs.c ldiv.c lldiv.c llabs.c malloc.c merge.c putenv.c qsort.c radixsort.c \ | ||
| 	rand.c random.c reallocf.c realpath.c setenv.c strtod.c strtoimax.c strtol.c \ | ||
| 	strtoll.c strtonum.c strtoq.c strtoul.c strtoull.c strtoumax.c \ | ||
| 	strtouq.c system.c tdelete.c tfind.c tsearch.c twalk.c | ||
| ... | ... | |
| .if ${LIB} == "c" | ||
| MAN+=	abort.3 abs.3 alloca.3 atexit.3 atof.3 atoi.3 atol.3 bsearch.3 \ | ||
| 	div.3 exit.3 getenv.3 getopt.3 getopt_long.3 getsubopt.3 hcreate.3 \ | ||
| 	imaxabs.3 \ | ||
| 	labs.3 ldiv.3 llabs.3 malloc.3 memory.3 qsort.3 radixsort.3 rand.3 random.3 \ | ||
| 	realpath.3 strtod.3 strtol.3 strtonum.3 strtoul.3 system.3 tsearch.3 | ||
| 	imaxabs.3 imaxdiv.3 \ | ||
| 	labs.3 ldiv.3 lldiv.3 llabs.3 malloc.3 memory.3 qsort.3 radixsort.3 rand.3 \ | ||
| 	random.3 realpath.3 strtod.3 strtol.3 strtonum.3 strtoul.3 system.3 tsearch.3 | ||
| MLINKS+=atol.3 atoll.3 | ||
| MLINKS+=exit.3 _Exit.3 | ||
- « Previous
- 1
- 2
- Next »