Added (c) stuff and some formatting.
[squirrelmail.git] / functions / abook_local_file.php
index 8bc02405d6be3df8f7bf851e7501331864e74fbd..b5c7c8d7d08ee7e99058ab03a81047cf5c0457b6 100644 (file)
@@ -1,22 +1,25 @@
 <?php
 
-  /**
-   **  abook_local_file.php
-   **
-   **  Backend for addressbook as a pipe separated file
-   **
-   **  An array with the following elements must be passed to
-   **  the class constructor (elements marked ? are optional):
-   **
-   **     filename  => path to addressbook file
-   **   ? create    => if true: file is created if it does not exist.
-   **   ? umask     => umask set before opening file.
-   **
-   **  NOTE. This class should not be used directly. Use the
-   **        "AddressBook" class instead.
-   **
-   ** $Id$
-   **/
+   /**
+    **  abook_local_file.php
+    **
+    **  Copyright (c) 1999-2001 The Squirrelmail Development Team
+    **  Licensed under the GNU GPL. For full terms see the file COPYING.
+    **
+    **  Backend for addressbook as a pipe separated file
+    **
+    **  An array with the following elements must be passed to
+    **  the class constructor (elements marked ? are optional):
+    **
+    **     filename  => path to addressbook file
+    **   ? create    => if true: file is created if it does not exist.
+    **   ? umask     => umask set before opening file.
+    **
+    **  NOTE. This class should not be used directly. Use the
+    **        "AddressBook" class instead.
+    **
+    ** $Id$
+    **/
 
    class abook_local_file extends addressbook_backend {
      var $btype = 'local';
 
      // Overwrite the file with data from $rows
      // NOTE! Previous locks are broken by this function
-     function overwrite($rows) {
+     function overwrite(&$rows) {
        $newfh = @fopen($this->filename, 'w');
        if(!$newfh)
         return $this->set_error("$file: " . _("Open failed"));
        // To be replaced by advanded search expression parsing
        if(is_array($expr)) return;
 
-       // Make regexp from glob'ed expression 
-       $expr = ereg_replace('\?', '.', $expr);
-       $expr = ereg_replace('\*', '.*', $expr);
+       // Make regexp from glob'ed expression
+       // May want to quote other special characters like (, ), -, [, ], etc.
+       $expr = str_replace('?', '.', $expr);
+       $expr = str_replace('*', '.*', $expr);
 
        $res = array();
        if(!$this->open())
         return $this->set_error(_("Could not lock datafile"));
 
        // Read file into memory, ignoring nicknames to delete
-       $this->open();
        @rewind($this->filehandle);
        $i = 0;
        $rows = array();
        }
 
        // Write data back
-       if(!$this->overwrite(&$rows)) {
+       if(!$this->overwrite($rows)) {
         $this->unlock();
         return false;
        }
 
        // Read file into memory, modifying the data for the 
        // user identifyed by $alias
-       $this->open();
+       $this->open(true);
        @rewind($this->filehandle);
        $i = 0;
        $rows = array();
        }
 
        // Write data back
-       if(!$this->overwrite(&$rows)) {
+       if(!$this->overwrite($rows)) {
         $this->unlock();
         return false;
        }