2 FAR manager incremental search plugin, search as you type in editor.
3 Copyright (C) 1999-2019, Stanislav V. Mekhanoshin
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <https://www.gnu.org/licenses/>.
20 #if defined(__386__) || defined(_WIN32) || defined(__NT__)
21 extern void memmovel(void *dest
, const void *src
, size_t count
);
22 #if defined(__WATCOMC__)
24 #pragma aux memmovel parm[edi][esi][ecx] modify exact[ecx edi esi] = /*"cld"*/ \
26 #endif /* __WATCOMC__ */
28 #define memmovel memmove
31 #if defined(__386__) || defined(_WIN32) || defined(__NT__)
32 extern void zeromem(void *ptr
, size_t nLen
);
33 #if defined(__WATCOMC__)
34 #pragma aux zeromem parm[edi][ecx] modify exact[eax ecx edi] = /*"cld"*/ \
37 #endif /* __WATCOMC__ */
39 #define zeromem(ptr, nLen) memset((ptr), 0, (nLen))
43 static __inline
void setmem(void *pMem
, int b
, size_t nLength
)
53 #define memcpy(d, s, l) memmovel((d), (s), (l))
55 #if defined(__386__) || defined(_WIN32) || defined(__NT__)
56 extern void setmem(void *ptr
, int byte
, size_t nLen
);
57 #if defined(__WATCOMC__)
58 #pragma aux setmem parm[edi][eax][ecx] modify exact[eax ecx edi] = "rep stosb";
59 #endif /* __WATCOMC__ */
61 #define setmem(ptr, byte, nLen) memset((ptr), byte, (nLen))
65 extern size_t utoar(unsigned int nNum
, TCHAR
*sBuff
, size_t nBuffLen
);
66 // returning index to first byte
68 #pragma aux utoar parm[eax][edi][ecx] value[ecx] modify exact[eax ebx ecx edx edi] = \
71 "mov byte ptr [edi][ecx], 0" \
73 "Next: xor edx, edx" \
76 "mov byte ptr [edi][ecx], dl" \
85 #if defined(__386__) || defined(_WIN32) || defined(__NT__)
86 extern size_t sstrnlen(const char *str
, size_t count
);
87 #if defined(__WATCOMC__)
89 #pragma aux sstrnlen parm[edi][ecx] modify exact[eax ecx edi] value[edx] = /*"cld"*/ \
96 #endif /* __WATCOMC__ */
99 #if defined(WINPORT_DIRECT)
100 extern size_t lstrnlen(const TCHAR
*str
, size_t count
);