Move all doc build stuff to doc/source/GNUmakefile, leaving a 'make dok'
[privoxy.git] / doc / pcrs.3
index 8fe90f9..2a96d5a 100644 (file)
 .\"
 .\" 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 "," 
@@ -276,9 +276,9 @@ were made, which is limited to 0 or 1 for non-global searches.
 .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."
@@ -310,7 +310,7 @@ The quote character is (surprise!) '\fB\\\fR'. It quotes the delimiter in a
 .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) .
@@ -405,7 +405,8 @@ int main(int Argc, char **Argv)
 {
    pcrs_job *job;
    char *result;
-   int newsize, err;
+   size_t newsize;
+   int err;
 
    if (Argc != 3)
    {
@@ -415,21 +416,22 @@ int main(int Argc, char **Argv)
 
    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
+   {
+      printf("Result: *%s*\\n", result);
+      free(result);
    }
-
-   /* Will tolerate NULL result */
-   printf("Result: *%s*\\n", result);
 
    pcrs_free_job(job);
-   if (result) free(result);
-
    return(err < 0);
+
 }
 
 .fi
@@ -438,7 +440,7 @@ int main(int Argc, char **Argv)
 .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