-// function to update pref file with recent searches
-
-function update_recent($array, $recent_value, $pref_name, $username, $data_dir) {
- $array = get_recent($pref_name, $username, $data_dir);
- array_push ($array, $recent_value);
- array_shift ($array);
- $recent_count = getPref($data_dir, $username, 'search_memory', 0);
- $n=0;
- for ($i=1;$i<=$recent_count;$i++) {
- setPref($data_dir, $username, "$pref_name" . "$i", $array[$n]);
- $n++;
+/* function to update recent pref arrays */
+function update_recent($what, $where, $mailbox, $username, $data_dir) {
+ $attributes = array();
+ $types = array('search_what', 'search_where', 'search_folder');
+ $input = array($what, $where, $mailbox);
+ $attributes = get_recent( $username, $data_dir);
+ reset($types);
+ $dupe = 'no';
+ for ($i=1;$i<=count($attributes['search_what']);$i++) {
+ if (isset($attributes['search_what'][$i])) {
+ if ($what == $attributes['search_what'][$i] &&
+ $where == $attributes['search_where'][$i] &&
+ $mailbox == $attributes['search_folder'][$i]) {
+ $dupe = 'yes';
+ }
+ }
+ }
+ if ($dupe == 'no') {
+ $i = 0;
+ foreach ($types as $key) {
+ array_push ($attributes[$key], $input[$i]);
+ array_shift ($attributes[$key]);
+ $i++;
+ }
+ $recent_count = getPref($data_dir, $username, 'search_memory', 0);
+ $n=0;
+ for ($i=1;$i<=$recent_count;$i++) {
+ reset($types);
+ foreach ($types as $key) {
+ setPref($data_dir, $username, $key.$i, $attributes[$key][$n]);
+ }
+ $n++;
+ }