diff --git a/reactos/lib/crtdll/malloc/expand.c b/reactos/lib/crtdll/malloc/expand.c deleted file mode 100644 index eb60ed5792a..00000000000 --- a/reactos/lib/crtdll/malloc/expand.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "precomp.h" -#include - -/* - * @implemented - */ -void* _expand(void* pold, size_t size) -{ - return HeapReAlloc(GetProcessHeap(), HEAP_REALLOC_IN_PLACE_ONLY, pold, size); -} - -/* - * @implemented - */ -size_t _msize(void* pBlock) -{ - return HeapSize (GetProcessHeap(), 0, pBlock); -} diff --git a/reactos/lib/crtdll/malloc/heap.c b/reactos/lib/crtdll/malloc/heap.c deleted file mode 100644 index e55b8a1e3a9..00000000000 --- a/reactos/lib/crtdll/malloc/heap.c +++ /dev/null @@ -1,41 +0,0 @@ -#include "precomp.h" -#include - -/* - * @implemented - */ -int _heapchk(void) -{ - if (!HeapValidate(GetProcessHeap(), 0, NULL)) - return -1; - return 0; -} - -/* - * @implemented - */ -int _heapmin(void) -{ - if (!HeapCompact(GetProcessHeap(), 0)) - return -1; - return 0; -} - -/* - * @implemented - */ -int _heapset(unsigned int unFill) -{ - if (_heapchk() == -1) - return -1; - return 0; - -} - -/* - * @implemented - */ -int _heapwalk(struct _heapinfo* entry) -{ - return 0; -} diff --git a/reactos/lib/crtdll/quad/divdi3.c b/reactos/lib/crtdll/quad/divdi3.c deleted file mode 100644 index 44e037bd199..00000000000 --- a/reactos/lib/crtdll/quad/divdi3.c +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - * - * $Id$ - */ - -#include - -/* - * Divide two signed quads. - * ??? if -1/2 should produce -1 on this machine, this code is wrong - */ -quad_t -__divdi3(a, b) - quad_t a, b; -{ - u_quad_t ua, ub, uq; - int neg; - - if (a < 0) - ua = -(u_quad_t)a, neg = 1; - else - ua = a, neg = 0; - if (b < 0) - ub = -(u_quad_t)b, neg ^= 1; - else - ub = b; - uq = __qdivrem(ua, ub, (u_quad_t *)0); - return (neg ? -uq : uq); -} - - - diff --git a/reactos/lib/crtdll/quad/moddi3.c b/reactos/lib/crtdll/quad/moddi3.c deleted file mode 100644 index de457eb92e2..00000000000 --- a/reactos/lib/crtdll/quad/moddi3.c +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - * - * $Id$ - */ - -#include - -/* - * Return remainder after dividing two signed quads. - * - * XXX - * If -1/2 should produce -1 on this machine, this code is wrong. - */ -quad_t -__moddi3(a, b) - quad_t a, b; -{ - u_quad_t ua, ub, ur; - int neg; - - if (a < 0) - ua = -(u_quad_t)a, neg = 1; - else - ua = a, neg = 0; - if (b < 0) - ub = -(u_quad_t)b, neg ^= 1; - else - ub = b; - (void)__qdivrem(ua, ub, &ur); - return (neg ? -ur : ur); -} \ No newline at end of file diff --git a/reactos/lib/crtdll/quad/qdivrem.c b/reactos/lib/crtdll/quad/qdivrem.c deleted file mode 100644 index 99dfd505eac..00000000000 --- a/reactos/lib/crtdll/quad/qdivrem.c +++ /dev/null @@ -1,281 +0,0 @@ -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - * - * $Id$ - */ - -/* - * Multiprecision divide. This algorithm is from Knuth vol. 2 (2nd ed), - * section 4.3.1, pp. 257--259. - */ - -#include - -#define B (1 << HALF_BITS) /* digit base */ - -/* Combine two `digits' to make a single two-digit number. */ -#define COMBINE(a, b) (((u_long)(a) << HALF_BITS) | (b)) - -/* select a type for digits in base B: use unsigned short if they fit */ -//#if (ULONG_MAX == 0xffffffff && USHRT_MAX >= 0xffff) -//typedef unsigned short digit; -//#else -typedef u_long digit; -//#endif - -/* - * Shift p[0]..p[len] left `sh' bits, ignoring any bits that - * `fall out' the left (there never will be any such anyway). - * We may assume len >= 0. NOTE THAT THIS WRITES len+1 DIGITS. - */ -static void -shl(register digit *p, register int len, register int sh) -{ - register int i; - - for (i = 0; i < len; i++) - p[i] = LHALF(p[i] << sh) | (p[i + 1] >> (HALF_BITS - sh)); - p[i] = LHALF(p[i] << sh); -} - -/* - * __qdivrem(u, v, rem) returns u/v and, optionally, sets *rem to u%v. - * - * We do this in base 2-sup-HALF_BITS, so that all intermediate products - * fit within u_long. As a consequence, the maximum length dividend and - * divisor are 4 `digits' in this base (they are shorter if they have - * leading zeros). - */ -u_quad_t -__qdivrem(uq, vq, arq) - u_quad_t uq, vq, *arq; -{ - union uu tmp; - digit *u, *v, *q; - register digit v1, v2; - u_long qhat, rhat, t; - int m, n, d, j, i; - digit uspace[5], vspace[5], qspace[5]; - - /* - * Take care of special cases: divide by zero, and u < v. - */ - if (vq == 0) { - /* divide by zero. */ - static volatile const unsigned int zero = 0; - - tmp.ul[H] = tmp.ul[L] = 1 / zero; - if (arq) - *arq = uq; - return (tmp.q); - } - if (uq < vq) { - if (arq) - *arq = uq; - return (0); - } - u = &uspace[0]; - v = &vspace[0]; - q = &qspace[0]; - - /* - * Break dividend and divisor into digits in base B, then - * count leading zeros to determine m and n. When done, we - * will have: - * u = (u[1]u[2]...u[m+n]) sub B - * v = (v[1]v[2]...v[n]) sub B - * v[1] != 0 - * 1 < n <= 4 (if n = 1, we use a different division algorithm) - * m >= 0 (otherwise u < v, which we already checked) - * m + n = 4 - * and thus - * m = 4 - n <= 2 - */ - tmp.uq = uq; - u[0] = 0; - u[1] = HHALF(tmp.ul[H]); - u[2] = LHALF(tmp.ul[H]); - u[3] = HHALF(tmp.ul[L]); - u[4] = LHALF(tmp.ul[L]); - tmp.uq = vq; - v[1] = HHALF(tmp.ul[H]); - v[2] = LHALF(tmp.ul[H]); - v[3] = HHALF(tmp.ul[L]); - v[4] = LHALF(tmp.ul[L]); - for (n = 4; v[1] == 0; v++) { - if (--n == 1) { - u_long rbj; /* r*B+u[j] (not root boy jim) */ - digit q1, q2, q3, q4; - - /* - * Change of plan, per exercise 16. - * r = 0; - * for j = 1..4: - * q[j] = floor((r*B + u[j]) / v), - * r = (r*B + u[j]) % v; - * We unroll this completely here. - */ - t = v[2]; /* nonzero, by definition */ - q1 = u[1] / t; - rbj = COMBINE(u[1] % t, u[2]); - q2 = rbj / t; - rbj = COMBINE(rbj % t, u[3]); - q3 = rbj / t; - rbj = COMBINE(rbj % t, u[4]); - q4 = rbj / t; - if (arq) - *arq = rbj % t; - tmp.ul[H] = COMBINE(q1, q2); - tmp.ul[L] = COMBINE(q3, q4); - return (tmp.q); - } - } - - /* - * By adjusting q once we determine m, we can guarantee that - * there is a complete four-digit quotient at &qspace[1] when - * we finally stop. - */ - for (m = 4 - n; u[1] == 0; u++) - m--; - for (i = 4 - m; --i >= 0;) - q[i] = 0; - q += 4 - m; - - /* - * Here we run Program D, translated from MIX to C and acquiring - * a few minor changes. - * - * D1: choose multiplier 1 << d to ensure v[1] >= B/2. - */ - d = 0; - for (t = v[1]; t < B / 2; t <<= 1) - d++; - if (d > 0) { - shl(&u[0], m + n, d); /* u <<= d */ - shl(&v[1], n - 1, d); /* v <<= d */ - } - /* - * D2: j = 0. - */ - j = 0; - v1 = v[1]; /* for D3 -- note that v[1..n] are constant */ - v2 = v[2]; /* for D3 */ - do { - register digit uj0, uj1, uj2; - - /* - * D3: Calculate qhat (\^q, in TeX notation). - * Let qhat = min((u[j]*B + u[j+1])/v[1], B-1), and - * let rhat = (u[j]*B + u[j+1]) mod v[1]. - * While rhat < B and v[2]*qhat > rhat*B+u[j+2], - * decrement qhat and increase rhat correspondingly. - * Note that if rhat >= B, v[2]*qhat < rhat*B. - */ - uj0 = u[j + 0]; /* for D3 only -- note that u[j+...] change */ - uj1 = u[j + 1]; /* for D3 only */ - uj2 = u[j + 2]; /* for D3 only */ - if (uj0 == v1) { - qhat = B; - rhat = uj1; - goto qhat_too_big; - } else { - u_long n = COMBINE(uj0, uj1); - qhat = n / v1; - rhat = n % v1; - } - while (v2 * qhat > COMBINE(rhat, uj2)) { - qhat_too_big: - qhat--; - if ((rhat += v1) >= B) - break; - } - /* - * D4: Multiply and subtract. - * The variable `t' holds any borrows across the loop. - * We split this up so that we do not require v[0] = 0, - * and to eliminate a final special case. - */ - for (t = 0, i = n; i > 0; i--) { - t = u[i + j] - v[i] * qhat - t; - u[i + j] = LHALF(t); - t = (B - HHALF(t)) & (B - 1); - } - t = u[j] - t; - u[j] = LHALF(t); - /* - * D5: test remainder. - * There is a borrow if and only if HHALF(t) is nonzero; - * in that (rare) case, qhat was too large (by exactly 1). - * Fix it by adding v[1..n] to u[j..j+n]. - */ - if (HHALF(t)) { - qhat--; - for (t = 0, i = n; i > 0; i--) { /* D6: add back. */ - t += u[i + j] + v[i]; - u[i + j] = LHALF(t); - t = HHALF(t); - } - u[j] = LHALF(u[j] + t); - } - q[j] = qhat; - } while (++j <= m); /* D7: loop on j. */ - - /* - * If caller wants the remainder, we have to calculate it as - * u[m..m+n] >> d (this is at most n digits and thus fits in - * u[m+1..m+n], but we may need more source digits). - */ - if (arq) { - if (d) { - for (i = m + n; i > m; --i) - u[i] = (u[i] >> d) | - LHALF(u[i - 1] << (HALF_BITS - d)); - u[i] = 0; - } - tmp.ul[H] = COMBINE(uspace[1], uspace[2]); - tmp.ul[L] = COMBINE(uspace[3], uspace[4]); - *arq = tmp.q; - } - - tmp.ul[H] = COMBINE(qspace[1], qspace[2]); - tmp.ul[L] = COMBINE(qspace[3], qspace[4]); - return (tmp.q); -} - - - - diff --git a/reactos/lib/crtdll/quad/udivdi3.c b/reactos/lib/crtdll/quad/udivdi3.c deleted file mode 100644 index fddc16f44e6..00000000000 --- a/reactos/lib/crtdll/quad/udivdi3.c +++ /dev/null @@ -1,52 +0,0 @@ - -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - * - * $Id$ - */ - -#include - -/* - * Divide two unsigned quads. - */ -u_quad_t -__udivdi3(a, b) - u_quad_t a, b; -{ - - return (__qdivrem(a, b, (u_quad_t *)0)); -} diff --git a/reactos/lib/crtdll/quad/umoddi3.c b/reactos/lib/crtdll/quad/umoddi3.c deleted file mode 100644 index cc007dde7ab..00000000000 --- a/reactos/lib/crtdll/quad/umoddi3.c +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - * - * $Id$ - */ - -#include - -/* - * Return remainder after dividing two unsigned quads. - */ -u_quad_t -__umoddi3(a, b) - u_quad_t a, b; -{ - u_quad_t r; - - (void)__qdivrem(a, b, &r); - return (r); -} - diff --git a/reactos/lib/crtdll/string/lasttok.c b/reactos/lib/crtdll/string/lasttok.c deleted file mode 100644 index 144f283c13d..00000000000 --- a/reactos/lib/crtdll/string/lasttok.c +++ /dev/null @@ -1,12 +0,0 @@ -#include - -/* - * This is a CRTDLL internal function to return the lasttoken - * bit of data used by strtok. The reason for it's existence is - * so that CRTDLL can use MSVCRT's implementation of strtok. - */ -char** _lasttoken() -{ - static char *lasttoken = NULL; - return &lasttoken; -} diff --git a/reactos/lib/crtdll/string/str_old.c b/reactos/lib/crtdll/string/str_old.c deleted file mode 100644 index 6b0a1e8ba5e..00000000000 --- a/reactos/lib/crtdll/string/str_old.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * string_old.c - * - * Oldnames from ANSI header string.h - * - * Some wrapper functions for those old name functions whose appropriate - * equivalents are not simply underscore prefixed. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warrenties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision: 1.4 $ - * $Author$ - * $Date$ - * - */ - -#include -#include - -int -strcasecmp (const char* sz1, const char* sz2) -{ - return _stricmp (sz1, sz2); -} - -int -strncasecmp (const char* sz1, const char* sz2, size_t sizeMaxCompare) -{ - return _strnicmp (sz1, sz2, sizeMaxCompare); -} - -int -wcscmpi (const wchar_t* ws1, const wchar_t* ws2) -{ - //return wcsicmp (ws1, ws2); - return 0; -} - diff --git a/reactos/lib/crtdll/string/strerror.c b/reactos/lib/crtdll/string/strerror.c deleted file mode 100644 index 30830f7295b..00000000000 --- a/reactos/lib/crtdll/string/strerror.c +++ /dev/null @@ -1,108 +0,0 @@ -/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ -#include -#include -#include -#include - - -char __syserr00[] = "No Error"; -char __syserr01[] = "Input to function out of range (EDOM)"; -char __syserr02[] = "Output of function out of range (ERANGE)"; -char __syserr03[] = "Argument list too long (E2BIG)"; -char __syserr04[] = "Permission denied (EACCES)"; -char __syserr05[] = "Resource temporarily unavailable (EAGAIN)"; -char __syserr06[] = "Bad file descriptor (EBADF)"; -char __syserr07[] = "Resource busy (EBUSY)"; -char __syserr08[] = "No child processes (ECHILD)"; -char __syserr09[] = "Resource deadlock avoided (EDEADLK)"; -char __syserr10[] = "File exists (EEXIST)"; -char __syserr11[] = "Bad address (EFAULT)"; -char __syserr12[] = "File too large (EFBIG)"; -char __syserr13[] = "Interrupted system call (EINTR)"; -char __syserr14[] = "Invalid argument (EINVAL)"; -char __syserr15[] = "Input or output error (EIO)"; -char __syserr16[] = "Is a directory (EISDIR)"; -char __syserr17[] = "Too many open files (EMFILE)"; -char __syserr18[] = "Too many links (EMLINK)"; -char __syserr19[] = "File name too long (ENAMETOOLONG)"; -char __syserr20[] = "Too many open files in system (ENFILE)"; -char __syserr21[] = "No such device (ENODEV)"; -char __syserr22[] = "No such file or directory (ENOENT)"; -char __syserr23[] = "Unable to execute file (ENOEXEC)"; -char __syserr24[] = "No locks available (ENOLCK)"; -char __syserr25[] = "Not enough memory (ENOMEM)"; -char __syserr26[] = "No space left on drive (ENOSPC)"; -char __syserr27[] = "Function not implemented (ENOSYS)"; -char __syserr28[] = "Not a directory (ENOTDIR)"; -char __syserr29[] = "Directory not empty (ENOTEMPTY)"; -char __syserr30[] = "Inappropriate I/O control operation (ENOTTY)"; -char __syserr31[] = "No such device or address (ENXIO)"; -char __syserr32[] = "Operation not permitted (EPERM)"; -char __syserr33[] = "Broken pipe (EPIPE)"; -char __syserr34[] = "Read-only file system (EROFS)"; -char __syserr35[] = "Invalid seek (ESPIPE)"; -char __syserr36[] = "No such process (ESRCH)"; -char __syserr37[] = "Improper link (EXDEV)"; -char __syserr38[] = "No more files (ENMFILE)"; - -const char *_sys_errlist[] = { -__syserr00, __syserr01, __syserr02, __syserr03, __syserr04, -__syserr05, __syserr06, __syserr07, __syserr08, __syserr09, -__syserr10, __syserr11, __syserr12, __syserr13, __syserr14, -__syserr15, __syserr16, __syserr17, __syserr18, __syserr19, -__syserr20, __syserr21, __syserr22, __syserr23, __syserr24, -__syserr25, __syserr26, __syserr27, __syserr28, __syserr29, -__syserr30, __syserr31, __syserr32, __syserr33, __syserr34, -__syserr35, __syserr36, __syserr37, __syserr38 -}; - -int __sys_nerr = sizeof(_sys_errlist) / sizeof(_sys_errlist[0]); - -int* _sys_nerr_dll = &__sys_nerr; - -/* - * @implemented - * - */ -char *strerror(int errnum) -{ - static char ebuf[40]; /* 64-bit number + slop */ - char *cp; - int v=1000000, lz=0; - - if (errnum >= 0 && errnum < __sys_nerr) - return((char *)_sys_errlist[errnum]); - - strcpy(ebuf, "Unknown error: "); - cp = ebuf + 15; - if (errnum < 0) - { - *cp++ = '-'; - errnum = -errnum; - } - while (v) - { - int d = errnum / v; - if (d || lz || (v == 1)) - { - *cp++ = d+'0'; - lz = 1; - } - errnum %= v; - v /= 10; - } - - return ebuf; -} - -/* - * @implemented - * - */ -char *_strerror(const char *s) -{ - if ( s == NULL ) - return strerror(errno); - - return strerror(atoi(s)); -} diff --git a/reactos/lib/crtdll/string/strtok.c b/reactos/lib/crtdll/string/strtok.c deleted file mode 100644 index ee4d192fffc..00000000000 --- a/reactos/lib/crtdll/string/strtok.c +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */ -#include - -/* - * @implemented - */ -char* strtok(char *s, const char *delim) -{ - const char *spanp; - int c, sc; - char *tok; - static char *last; - - - if (s == NULL && (s = last) == NULL) - return (NULL); - - /* - * Skip (span) leading delimiters (s += strspn(s, delim), sort of). - */ - cont: - c = *s++; - for (spanp = delim; (sc = *spanp++) != 0;) { - if (c == sc) - goto cont; - } - - if (c == 0) { /* no non-delimiter characters */ - last = NULL; - return (NULL); - } - tok = s - 1; - - /* - * Scan token (scan for delimiters: s += strcspn(s, delim), sort of). - * Note that delim must have one NUL; we stop if we see that, too. - */ - for (;;) { - c = *s++; - spanp = delim; - do { - if ((sc = *spanp++) == c) { - if (c == 0) - s = NULL; - else - s[-1] = 0; - last = s; - return (tok); - } - } while (sc != 0); - } - /* NOTREACHED */ -} diff --git a/reactos/lib/crtdll/tchar/strdec.c b/reactos/lib/crtdll/tchar/strdec.c deleted file mode 100644 index c2b2a90ca9f..00000000000 --- a/reactos/lib/crtdll/tchar/strdec.c +++ /dev/null @@ -1,10 +0,0 @@ -#include - -/* - * @implemented - */ -char * _strdec(const char *str1, const char *str2) -{ - return (char *) (( str1 >= str2 ) ? ( str1 ) : --str2); -} - diff --git a/reactos/lib/crtdll/tchar/strinc.c b/reactos/lib/crtdll/tchar/strinc.c deleted file mode 100644 index 91b48825a2b..00000000000 --- a/reactos/lib/crtdll/tchar/strinc.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -/* - * @implemented - */ -char * _strinc(const char *str) -{ - return (char *)(++str); -} diff --git a/reactos/lib/crtdll/tchar/strncnt.c b/reactos/lib/crtdll/tchar/strncnt.c deleted file mode 100644 index bbcd1def1cb..00000000000 --- a/reactos/lib/crtdll/tchar/strncnt.c +++ /dev/null @@ -1,10 +0,0 @@ -#include -#include - -/* - * @implemented - */ -size_t _strncnt( const char *str, size_t max) -{ - return strnlen(str,max); -} diff --git a/reactos/lib/crtdll/tchar/strnextc.c b/reactos/lib/crtdll/tchar/strnextc.c deleted file mode 100644 index b5bcd5eed64..00000000000 --- a/reactos/lib/crtdll/tchar/strnextc.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -/* - * @implemented - */ -int _strnextc(const char *str) -{ - return *(++str); -} diff --git a/reactos/lib/crtdll/tchar/strninc.c b/reactos/lib/crtdll/tchar/strninc.c deleted file mode 100644 index ccb77cc6006..00000000000 --- a/reactos/lib/crtdll/tchar/strninc.c +++ /dev/null @@ -1,10 +0,0 @@ -#include -#include - -/* - * @implemented - */ -char * _strninc(const char *str, size_t inc) -{ - return (char *)(str + inc); -} diff --git a/reactos/lib/crtdll/tchar/strspnp.c b/reactos/lib/crtdll/tchar/strspnp.c deleted file mode 100644 index b12844ebc73..00000000000 --- a/reactos/lib/crtdll/tchar/strspnp.c +++ /dev/null @@ -1,12 +0,0 @@ -#include -#include - - -/* - * @implemented - */ -char * _strspnp( const char * str1, const char * str2) -{ - return NULL; -} - diff --git a/reactos/lib/crtdll/wchar/wcstod.c b/reactos/lib/crtdll/wchar/wcstod.c deleted file mode 100644 index 360003eeec5..00000000000 --- a/reactos/lib/crtdll/wchar/wcstod.c +++ /dev/null @@ -1,98 +0,0 @@ -/* Copyright (C) 1996 DJ Delorie, see COPYING.DJ for details */ -/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */ -#include - - -/* - * @implemented - */ -double wcstod(const wchar_t* s, wchar_t** sret) -{ - long double r; /* result */ - int e; /* exponent */ - long double d; /* scale */ - int sign; /* +- 1.0 */ - int esign; - int i; - int flags=0; - - r = 0.0; - sign = 1; - e = 0; - esign = 1; - - while ((*s == L' ') || (*s == L'\t')) - s++; - - if (*s == L'+') - s++; - else if (*s == L'-') - { - sign = -1; - s++; - } - - while ((*s >= L'0') && (*s <= L'9')) - { - flags |= 1; - r *= 10.0; - r += *s - L'0'; - s++; - } - - if (*s == L'.') - { - d = 0.1L; - s++; - while ((*s >= L'0') && (*s <= L'9')) - { - flags |= 2; - r += d * (*s - L'0'); - s++; - d *= 0.1L; - } - } - - if (flags == 0) - { - if (sret) - *sret = (wchar_t *)s; - return 0; - } - - if ((*s == L'e') || (*s == L'E')) - { - s++; - if (*s == L'+') - s++; - else if (*s == L'-') - { - s++; - esign = -1; - } - if ((*s < L'0') || (*s > L'9')) - { - if (sret) - *sret = (wchar_t *)s; - return r; - } - - while ((*s >= L'0') && (*s <= L'9')) - { - e *= 10; - e += *s - L'0'; - s++; - } - } - - if (esign < 0) - for (i = 1; i <= e; i++) - r *= 0.1L; - else - for (i = 1; i <= e; i++) - r *= 10.0; - - if (sret) - *sret = (wchar_t *)s; - return r * sign; -} diff --git a/reactos/lib/crtdll/wchar/wcstok.c b/reactos/lib/crtdll/wchar/wcstok.c deleted file mode 100644 index a495e431d64..00000000000 --- a/reactos/lib/crtdll/wchar/wcstok.c +++ /dev/null @@ -1,54 +0,0 @@ -#include - -/* - * @implemented - */ -wchar_t *wcstok(wchar_t *s, const wchar_t *ct) -{ - const wchar_t *spanp; - int c, sc; - wchar_t *tok; - static wchar_t *last; - - if (s == NULL && (s = last) == NULL) - return (NULL); - - /* - * Skip (span) leading ctiters (s += strspn(s, ct), sort of). - */ - cont: - c = *s; - s++; - for (spanp = ct; (sc = *spanp) != 0;spanp++) { - if (c == sc) - goto cont; - } - - if (c == 0) { /* no non-ctiter characters */ - last = NULL; - return (NULL); - } - tok = s - 2; - - /* - * Scan token (scan for ctiters: s += strcspn(s, ct), sort of). - * Note that ct must have one NUL; we stop if we see that, too. - */ - for (;;) { - c = *s; - s+=2; - spanp = ct; - do { - if ((sc = *spanp) == c) { - if (c == 0) - s = NULL; - else - s[-1] = 0; - last = s; - return (tok); - } - spanp+=2; - } while (sc != 0); - } - /* NOTREACHED */ -} diff --git a/reactos/lib/crtdll/wchar/wcstol.c b/reactos/lib/crtdll/wchar/wcstol.c deleted file mode 100644 index d1a0b69c168..00000000000 --- a/reactos/lib/crtdll/wchar/wcstol.c +++ /dev/null @@ -1,64 +0,0 @@ -#include - - -/* - * @implemented - */ -long wcstol(const wchar_t* cp, wchar_t** endp, int base) -{ - long result = 0, value; - int sign = 1; - - if (*cp == L'-') { - sign = -1; - cp++; - } - - if (!base) { - base = 10; - if (*cp == L'0') { - base = 8; - cp++; - if ((*cp == L'x') && iswxdigit(cp[1])) { - cp++; - base = 16; - } - } - } - while (iswxdigit(*cp) && (value = iswdigit(*cp) ? *cp-L'0' : (iswlower(*cp) - ? towupper(*cp) : *cp)-L'A'+10) < base) { - result = result*base + value; - cp++; - } - if (endp) - *endp = (wchar_t*)cp; - return result * sign; -} - -/* - * @implemented - */ -unsigned long wcstoul(const wchar_t* cp, wchar_t** endp, int base) -{ - unsigned long result = 0, value; - - if (!base) { - base = 10; - if (*cp == L'0') { - base = 8; - cp++; - if ((*cp == L'x') && iswxdigit(cp[1])) { - cp++; - base = 16; - } - } - } - while (iswxdigit(*cp) && (value = iswdigit(*cp) ? *cp-L'0' : (iswlower(*cp) - ? towupper(*cp) : *cp)-L'A'+10) < base) { - result = result*base + value; - cp++; - } - if (endp) - *endp = (wchar_t*)cp; - return result; -} diff --git a/reactos/lib/crtdll/wchar/wcstombs.c b/reactos/lib/crtdll/wchar/wcstombs.c deleted file mode 100644 index 0cd1ba6e15c..00000000000 --- a/reactos/lib/crtdll/wchar/wcstombs.c +++ /dev/null @@ -1,10 +0,0 @@ -#include -#include - -/* - * @unimplemented - */ -size_t wcstombs( char *dst, const wchar_t *src, size_t len ) -{ - return 0; -} diff --git a/reactos/lib/crtdll/wchar/wlasttok.c b/reactos/lib/crtdll/wchar/wlasttok.c deleted file mode 100644 index 13658529db8..00000000000 --- a/reactos/lib/crtdll/wchar/wlasttok.c +++ /dev/null @@ -1,12 +0,0 @@ -#include - -/* - * This is a CRTDLL internal function to return the lasttoken - * bit of data used by wcstok. The reason for it's existence is - * so that CRTDLL can use MSVCRT's implementation of wcstok. - */ -wchar_t** _wlasttoken() -{ - static wchar_t *wlasttoken = NULL; - return &wlasttoken; -} diff --git a/reactos/lib/crtdll/wchar/wtoi.c b/reactos/lib/crtdll/wchar/wtoi.c deleted file mode 100644 index 40eadcbaaac..00000000000 --- a/reactos/lib/crtdll/wchar/wtoi.c +++ /dev/null @@ -1,26 +0,0 @@ -#include - - -/* - * @implemented - * - * this function is now forwarded to NTDLL._wtoi to reduce code duplication - */ -#if 0 -int _wtoi(const wchar_t* str) -{ - return (int)wcstol(str, 0, 10); -} -#endif - -/* - * @implemented - * - * this function is now forwarded to NTDLL._wtol to reduce code duplication - */ -#if 0 -long _wtol(const wchar_t* str) -{ - return (int)wcstol(str, 0, 10); -} -#endif