.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
-.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
-.\" USA.
+.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+.\" MA 02111, USA.
.\"
-.TH PCRS 3 "6 September 2001"
+.TH PCRS 3 "4 March 2002" "pcrs-0.0.1"
.SH NAME
pcrs - Perl-compatible regular substitution.
.SH SYNOPSIS
.br
-.BI "#include <pcrs.h>"
+.B "#include <pcrs.h>"
.PP
.br
.BI "pcrs_job *pcrs_compile(const char *" pattern ","
.SH FREEING JOBS
.RB "It is not sufficient to call " free() " on a " pcrs_job ", because it "
contains pointers to other dynamically allocated structures.
-.RB "Use " pcrs_free() " instead. It is safe to pass " NULL " pointers "
+.RB "Use " pcrs_free_job() " instead. It is safe to pass " NULL " pointers "
.RB "(or pointers to invalid " pcrs_job "s that contain " NULL " pointers"
-.RB "to dependant structures) to " pcrs_free() "."
+.RB "to dependant structures) to " pcrs_free_job() "."
.SS Return value
.RB "The value of the job's " next " pointer."
.IR command ", the"
.RB ' $ "' in a"
.IR substitute ", and, of course, itself. Note that the"
-.RB ' $ "'doesn't need to be quoted if it isn't followed by " [0-9+'`&] "."
+.RB ' $ "' doesn't need to be quoted if it isn't followed by " [0-9+'`&] "."
.RI "For quoting in the " pattern ", please refer to"
.BR PCRE(3) .
{
pcrs_job *job;
char *result;
- int newsize, err;
+ size_t newsize;
+ int err;
if (Argc != 3)
{
if (NULL == (job = pcrs_compile_command(Argv[1], &err)))
{
- printf("Compile error: %s (%d).\\n", pcrs_strerror(err), err);
+ fprintf(stderr, "%s: compile error: %s (%d).\\n", Argv[0], pcrs_strerror(err), err);
}
if (0 > (err = pcrs_execute(job, Argv[2], strlen(Argv[2]) + 1, &result, &newsize)))
{
- printf("Exec error: %s (%d).\\n", pcrs_strerror(err), err);
+ fprintf(stderr, "%s: Exec error: %s (%d).\\n", Argv[0], pcrs_strerror(err), err);
}
else
{
.SH LIMITATIONS
The number of matches that a global job can have is only limited by the
available memory. An initial storage for 40 matches is reserved, which
-is dynamically resized by the factor 1.6 if exhausted.
+is dynamically resized by the factor 1.6 whenever it is exhausted.
The number of capturing subpatterns is currently limited to 33, which
is a Bad Thing[tm]. It should be dynamically expanded until it reaches the