home *** CD-ROM | disk | FTP | other *** search
- /* File : strnrpt.c
- Author : Richard A. O'Keefe.
- Updated: 20 April 1984
- Defines: strnrpt()
-
- strnrpt(dst, n, src, k) "RePeaTs" the string src into dst k times,
- but will truncate the result at n characters if necessary. E.g.
- strnrpt(dst, 7, "hack ", 2) will move "hack ha" to dst WITHOUT the
- closing NUL. The result is the number of characters moved, not
- counting the closing NUL. Equivalent to strrpt-ing into an infinite
- buffer and then strnmov-ing the result.
- */
-
- #include "strings.h"
-
- int strnrpt(dst, n, src, k)
- register char *dst;
- register int n;
- char *src;
- int k;
- {
- char *save;
-
- for (save = dst; --k >= 0; dst--) {
- register char *p;
- for (p = src; ; ) {
- if (--n < 0) return dst-save;
- if (!(*dst++ = *p++)) break;
- }
- }
- return dst-save;
- }
-