diff --git a/harbour/source/tools/chareven.c b/harbour/source/tools/chareven.c new file mode 100644 index 0000000000..748cd1e11d --- /dev/null +++ b/harbour/source/tools/chareven.c @@ -0,0 +1,74 @@ +/* + * GT CLIPPER STANDARD HEADER + * + * File......: chareven.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. + * + * Modification history: + * --------------------- + * + * $Log$ + * Revision 1.1 1999/06/02 06:32:42 ajahja + * Adding GT Library + * + * + */ + +/* + * $DOC$ + * $FUNCNAME$ + * GT_CHAREVEN() + * $CATEGORY$ + * String + * $ONELINER$ + * Return a string of all the characters in even positions + * $SYNTAX$ + * GT_CharEven() --> cRet + * $ARGUMENTS$ + * - A character string to extract chars from + * $RETURNS$ + * cRet - A string of all the chars in even positions + * $DESCRIPTION$ + * Return a string consisting of all the characters in even + * positions in . + * + * NOTE: + * invalid parameters will return "" + * $EXAMPLES$ + * + * ? gt_CharEven("abcdefghijklm") // prints "bdfhjl" + * + * $END$ + */ + +#include + +HARBOUR +gt_charEven() +{ + char *s1, *s2; + int len, i; + + if (ISCHAR(1)) { + s1 = _parc(1); + len = _parclen(1); + + s2 = _xgrab(len / 2); // grab us some mem to work with + + for (i = 1; i <= len; i += 2) + s2[(i - 1)/2] = s1[i] & 0x7f; + + _retc(s2); + _xfree(s2); // free alloc'ed mem + } else { + _retc((char *) NULL); // parameter mismatch - error NullStr + } +} diff --git a/harbour/source/tools/charodd.c b/harbour/source/tools/charodd.c new file mode 100644 index 0000000000..48743a8c04 --- /dev/null +++ b/harbour/source/tools/charodd.c @@ -0,0 +1,74 @@ +/* + * GT CLIPPER STANDARD HEADER + * + * File......: charodd.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. + * + * Modification history: + * --------------------- + * + * $Log$ + * Revision 1.1 1999/06/02 06:32:42 ajahja + * Adding GT Library + * + * + */ + +/* + * $DOC$ + * $FUNCNAME$ + * GT_CHARODD() + * $CATEGORY$ + * String + * $ONELINER$ + * Return a string of all the characters in odd positions + * $SYNTAX$ + * GT_CharOdd() --> cRet + * $ARGUMENTS$ + * - A character string to extract chars from + * $RETURNS$ + * cRet - A string of all the chars in odd positions + * $DESCRIPTION$ + * Return a string consisting of all the characters in odd + * positions in . + * + * NOTE: + * invalid parameters will return "" + * $EXAMPLES$ + * + * ? gt_CharOdd("abcdefghijklm") // prints "acegikm" + * + * $END$ + */ + +#include + +HARBOUR +GT_charOdd() +{ + char *s1, *s2; + int len, i; + + if (ISCHAR(1)) { + s1 = _parc(1); + len = _parclen(1); + + s2 = _xgrab(len / 2); // grab us some mem to work with + + for (i = 0; i <= len; i += 2) + s2[i/2] = s1[i] & 0x7f; + + _retc(s2); + _xfree(s2); // free alloc'ed mem + } else { + _retc((char *) NULL); // parameter mismatch - error NullStr + } +}