* src/vm/itemapi.c
- hb_itemGetNL() no longer works for date types.
INCOMPATIBLE. If you used it to retrieve date/time,
use hb_itemGetDL() instead.
! Fixed typo in prev addition.
* include/hbapi.h
* src/vm/arrays.c
+ Added hb_arrayGetNSize(), hb_arraySetNSize().
! Fixed old typo in TRACE() call of hb_arrayGetNInt().
* src/vm/extend.c
! Fixed typo in prev addition.
* src/rtl/filesys.c
! Applied fixed from Przemek to hb_fsReadAt()/hb_fsWriteAt()
code to be MT safe plus fix other problems.
; QUESTION: Shouls the same applied to hb_fsWriteLarge()/hb_fsReadLarge()
loops? (BTW inactive in 32-bit Harbour builds)
* contrib/hbct/screen2.c
! Type cleanup.
* contrib/hbct/pack.c
* contrib/xhb/hbxml.c
* contrib/xhb/hbxml.h
* contrib/hbgt/charmixg.c
* contrib/hbgt/charodd.c
* contrib/hbgt/strexpan.c
* contrib/hbgt/asciisgt.c
* contrib/hbgt/strright.c
* contrib/hbgt/strasint.c
* contrib/hbgt/strdiffg.c
* contrib/hbgt/chrtotal.c
* contrib/hbgt/strcount.c
* contrib/hbgt/strleft.c
* contrib/hbgt/chrfirst.c
* contrib/hbgt/chrcount.c
* contrib/hbgt/strpbrk.c
* contrib/hbgt/chareven.c
* contrib/hbgt/bitflags.c
* contrib/hbgt/strcspn.c
* contrib/hbgt/atdiff.c
* contrib/hbnf/proper.c
* contrib/hbnf/getenvrn.c
! Fixed to use Harbour size types.
* contrib/hbnf/dispc.c
! Started using Harbour type, but this is code is
deadly and needs further work. I still wonder how
to create code which mixes properly HB_FOFFSET and
HB_SIZE.
* contrib/xhb/cstructc.c
* Formatting.
50 lines
966 B
C
50 lines
966 B
C
/*
|
|
* $Id$
|
|
*/
|
|
|
|
/*
|
|
* GT CLIPPER STANDARD HEADER
|
|
*
|
|
* File......: strdiff.c
|
|
* Author....: Andy M Leighton
|
|
* BBS.......: The Dark Knight Returns
|
|
* Net/Node..: 050/069
|
|
* User Name.: Andy Leighton
|
|
* Date......: 24/05/93
|
|
* Revision..: 1.00
|
|
*
|
|
* This is an original work by Andy Leighton and is placed in the
|
|
* public domain.
|
|
*/
|
|
|
|
#include "hbapi.h"
|
|
|
|
HB_FUNC( GT_STRDIFF )
|
|
{
|
|
const char *s1, *s2;
|
|
HB_ISIZ pos, len;
|
|
|
|
if (HB_ISCHAR(1) && HB_ISCHAR(2)) {
|
|
s1 = hb_parc(1);
|
|
s2 = hb_parc(2);
|
|
len = hb_parclen(2);
|
|
|
|
/*
|
|
loop through comparing both strings
|
|
|
|
NOTE: pos starts at 1, so as to return a string index
|
|
for CLIPPER
|
|
*/
|
|
|
|
for (pos = 1; (pos <= len) && (*s1 == *s2); s2++, s1++)
|
|
pos++;
|
|
|
|
if (pos > len) /* strings match exactly!!! */
|
|
hb_retc_null();
|
|
else
|
|
hb_retc(s2);
|
|
} else {
|
|
hb_ret(); /* parameter mismatch - error return NIL */
|
|
}
|
|
}
|