Reuse, not rework
Home

License Awareness



Highly Reusable Software

By activity
Professions, Sciences, Humanities, Business, ...

User Interface
Text-based, GUI, Audio, Video, Keyboards, Mouse, Images,...

Text Strings
Conversions, tests, processing, manipulation,...

Math
Integer, Floating point, Matrix, Statistics, Boolean, ...

Processing
Algorithms, Memory, Process control, Debugging, ...

Stored Data
Data storage, Integrity, Encryption, Compression, ...

Communications
Networks, protocols, Interprocess, Remote, Client Server, ...

Hard World
Timing, Calendar and Clock, Audio, Video, Printer, Controls...

File System
Management, Filtering, File & Directory access, Viewers, ...


NAME

librock_countln - count consecutive characters up to and including next \0 \n

#License - #Source code - #Example Use -

SYNOPSIS

#include <librock/parse.h>

int librock_countln(
    const char *psz
);

DESCRIPTION

Returns count of consecutive characters up to and including next \0 \n IMPORTANT: this will go beyond \0 in a string. See example "Iterating Lines"

Typical use is to advance a pointer, replacing code like:

      while((*ptr != '\r')&&(*ptr != '\n')&&(*ptr != '\0')) ptr++;
      ptr++;
with:
      ptr += librock_countln(ptr);
Also used in parsing, where the count is needed to copy, compare, or write a limited number of characters starting at ptr. For example:
      fwrite(ptr,1,librock_countln(ptr),stdout);

LICENSE

  Copyright 1998-2002 Forrest J. Cavalier III, http://www.mibsoftware.com
  Open-source under MIT license. NO WARRANTY. Copies must retain this block.
  License text in <librock/license/mit.txt> librock_LIDESC_HC=cc598307414a9997b32b60a2e7a8e7c6a13d6438

USES

    librock_assert() // #ifdef librock_DEBUG

Source Code

./text/count.c (implementation, plus source of this manual page)

This software is part of Librock

Rapid reuse, without rework. Details
This page copyright (C) 2002-2004 Forrest J. Cavalier III, d-b-a Mib Software, Saylorsburg PA 18353, USA

Verbatim copying and distribution of this generated page is permitted in any medium provided that no changes are made.
(The source of this manual page may be covered by a more permissive license which allows modifications.)

Want to help? We welcome comments, patches. -- Need help? Request paid support.