Ignore:
Timestamp:
Jun 20, 2002, 10:46:29 PM (23 years ago)
Author:
umoeller
Message:

More pager fixes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/helpers/stringh.c

    r174 r178  
    10561056 *@@ strhBeautifyTitle:
    10571057 *      replaces all line breaks (0xd, 0xa) with spaces.
     1058 *      Returns the new length of the string or 0 on
     1059 *      errors.
    10581060 *
    10591061 *@@changed V0.9.12 (2001-05-17) [pr]: multiple line break chars. end up as only 1 space
    1060  */
    1061 
    1062 BOOL strhBeautifyTitle(PSZ psz)
    1063 {
    1064     BOOL rc = FALSE;
    1065     CHAR *p = psz;
    1066 
    1067     while(*p)
     1062 *@@changed V0.9.19 (2002-06-18) [umoeller]: now returning length
     1063 */
     1064
     1065ULONG strhBeautifyTitle(PSZ psz)
     1066{
     1067    ULONG   ulrc;
     1068    PSZ     p = psz;
     1069
     1070    while (*p)
     1071    {
    10681072        if (    (*p == '\r')
    10691073             || (*p == '\n')
    10701074           )
    10711075        {
    1072             rc = TRUE;
    1073             if (   (p != psz)
    1074                 && (p[-1] == ' ')
     1076            if (    (p != psz)
     1077                 && (p[-1] == ' ')
    10751078               )
    10761079                memmove(p, p + 1, strlen(p));
     
    10801083        else
    10811084            p++;
    1082 
    1083     return rc;
     1085    }
     1086
     1087    return (p - psz);
     1088}
     1089
     1090/*
     1091 *@@ strhBeautifyTitle:
     1092 *      like strhBeautifyTitle, but copies into
     1093 *      a new buffer. More efficient.
     1094 *
     1095 *@@added V0.9.19 (2002-06-18) [umoeller]
     1096 */
     1097
     1098ULONG strhBeautifyTitle2(PSZ pszTarget,     // out: beautified string
     1099                         PCSZ pcszSource)   // in: string to be beautified (can be NULL)
     1100{
     1101    ULONG   ulrc;
     1102    PCSZ    pSource = pcszSource;
     1103    PSZ     pTarget = pszTarget;
     1104    CHAR    c;
     1105    if (!pcszSource)
     1106    {
     1107        *pszTarget = '\0';
     1108        return 0;
     1109    }
     1110
     1111    while (c = *pSource++)
     1112    {
     1113        if (    (c == '\r')
     1114             || (c == '\n')
     1115           )
     1116        {
     1117            if (    (pTarget == pszTarget)
     1118                 || (pTarget[-1] != ' ')
     1119               )
     1120                *pTarget++ = ' ';
     1121        }
     1122        else
     1123            *pTarget++ = c;
     1124    }
     1125
     1126    // null-terminate
     1127    *pTarget = '\0';
     1128
     1129    return (pTarget - pszTarget);
    10841130}
    10851131
Note: See TracChangeset for help on using the changeset viewer.