imapext-2007

annotate src/osdep/dos/nl_dos.c @ 0:ada5e610ab86

imap-2007e
author yuuji@gentei.org
date Mon, 14 Sep 2009 15:17:45 +0900
parents
children
rev   line source
yuuji@0 1 /* ========================================================================
yuuji@0 2 * Copyright 1988-2006 University of Washington
yuuji@0 3 *
yuuji@0 4 * Licensed under the Apache License, Version 2.0 (the "License");
yuuji@0 5 * you may not use this file except in compliance with the License.
yuuji@0 6 * You may obtain a copy of the License at
yuuji@0 7 *
yuuji@0 8 * http://www.apache.org/licenses/LICENSE-2.0
yuuji@0 9 *
yuuji@0 10 *
yuuji@0 11 * ========================================================================
yuuji@0 12 */
yuuji@0 13
yuuji@0 14 /*
yuuji@0 15 * Program: Windows/TOPS-20 newline routines
yuuji@0 16 *
yuuji@0 17 * Author: Mark Crispin
yuuji@0 18 * Networks and Distributed Computing
yuuji@0 19 * Computing & Communications
yuuji@0 20 * University of Washington
yuuji@0 21 * Administration Building, AG-44
yuuji@0 22 * Seattle, WA 98195
yuuji@0 23 * Internet: MRC@CAC.Washington.EDU
yuuji@0 24 *
yuuji@0 25 * Date: 1 August 1988
yuuji@0 26 * Last Edited: 30 August 2006
yuuji@0 27 */
yuuji@0 28
yuuji@0 29 /* Copy string with CRLF newlines
yuuji@0 30 * Accepts: destination string
yuuji@0 31 * pointer to size of destination string buffer
yuuji@0 32 * source string
yuuji@0 33 * length of source string
yuuji@0 34 * Returns: length of copied string
yuuji@0 35 */
yuuji@0 36
yuuji@0 37 unsigned long strcrlfcpy (unsigned char **dst,unsigned long *dstl,
yuuji@0 38 unsigned char *src,unsigned long srcl)
yuuji@0 39 {
yuuji@0 40 /* flush destination buffer if too small */
yuuji@0 41 if (*dst && (srcl > *dstl)) fs_give ((void **) dst);
yuuji@0 42 if (!*dst) { /* make a new buffer if needed */
yuuji@0 43 *dst = (char *) fs_get ((size_t) (*dstl = srcl) + 1);
yuuji@0 44 if (dstl) *dstl = srcl; /* return new buffer length to main program */
yuuji@0 45 }
yuuji@0 46 /* copy strings */
yuuji@0 47 if (srcl) memcpy (*dst,src,(size_t) srcl);
yuuji@0 48 *(*dst + srcl) = '\0'; /* tie off destination */
yuuji@0 49 return srcl; /* return length */
yuuji@0 50 }
yuuji@0 51
yuuji@0 52
yuuji@0 53 /* Length of string after strcrlfcpy applied
yuuji@0 54 * Accepts: source string
yuuji@0 55 * Returns: length of string
yuuji@0 56 */
yuuji@0 57
yuuji@0 58 unsigned long strcrlflen (STRING *s)
yuuji@0 59 {
yuuji@0 60 return SIZE (s); /* no-brainer on DOS! */
yuuji@0 61 }

UW-IMAP'd extensions by yuuji