Files
harbour-core/harbour/contrib/hbgt/strcount.c
Viktor Szakats ec13203192 2010-06-19 12:23 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* 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.
2010-06-19 10:26:02 +00:00

56 lines
1.0 KiB
C

/*
* $Id$
*/
/*
* GT CLIPPER STANDARD HEADER
*
* File......: strcount.c
* Author....: Andy M Leighton
* BBS.......: The Dark Knight Returns
* Net/Node..: 050/069
* User Name.: Andy Leighton
* Date......: 23/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_STRCOUNT )
{
const char *s1, *s2;
HB_ISIZ count, p1, p2, l1, l2;
int match;
if (HB_ISCHAR(1) && HB_ISCHAR(2)) {
s1 = hb_parc(1);
s2 = hb_parc(2);
l1 = hb_parclen(1);
l2 = hb_parclen(2);
/* loop through s2 matching passed character (s1) with
each character of s1 */
for (count = 0, p2 = 0; p2 <= (l2 - l1); p2++)
{
match = 1;
for (p1 = 0; p1 < l1; p1++)
{
if (s1[p1] != s2[p2 + p1])
match = 0;
}
if (match)
count++;
}
hb_retnl(count); /* return result */
} else {
hb_retnl(-1); /* parameter mismatch - error -1 */
}
}