/contrib/cvs/diff/cmpbuf.c
https://bitbucket.org/freebsd/freebsd-head/ · C · 38 lines · 15 code · 6 blank · 17 comment · 4 complexity · 34844cce37cae63d77e476b540a91351 MD5 · raw file
- /* Buffer primitives for comparison operations.
- Copyright (C) 1993 Free Software Foundation, Inc.
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- */
- #include "system.h"
- #include "cmpbuf.h"
- /* Least common multiple of two buffer sizes A and B. */
- size_t
- buffer_lcm (a, b)
- size_t a, b;
- {
- size_t m, n, r;
- /* Yield reasonable values if buffer sizes are zero. */
- if (!a)
- return b ? b : 8 * 1024;
- if (!b)
- return a;
- /* n = gcd (a, b) */
- for (m = a, n = b; (r = m % n) != 0; m = n, n = r)
- continue;
- return a/n * b;
- }