34
34
mew-google-index-folder mew-google-index-all
35
35
mew-pick-canonicalize-pattern-google
36
36
mew-google-register mew-google-unregister)
37
(est "Hyperestraier" ,mew-prog-est
37
(est "Hyper Estraier" ,mew-prog-est
38
38
mew-search-with-est mew-search-virtual-with-est
39
39
mew-est-index-folder mew-est-index-all
40
40
mew-pick-canonicalize-pattern-est
302
302
(setq flds (cdr flds))
303
303
(mew-search-spotlight pattern path)
304
304
(goto-char (point-min))
305
(while (looking-at regex)
306
(setq rttl (1+ rttl))
307
(setq crnt (match-string 1))
308
(delete-region (match-beginning 0) (match-beginning 2))
309
(when (not (string= crnt prev))
311
(insert "CD:" mew-folder-local crnt "\n"))
306
(when (looking-at regex)
307
(setq rttl (1+ rttl))
308
(setq crnt (match-string 1))
309
(delete-region (match-beginning 0) (match-beginning 2))
310
(when (not (string= crnt prev))
312
(insert "CD:" mew-folder-local crnt "\n"))
315
316
mew-cs-text-for-read mew-cs-text-for-write
316
317
(write-region (point-min) (point-max) file (> n 1) 'no-msg))
396
397
(mew-search-google pattern path)
397
398
(goto-char (point-min))
398
(while (looking-at regex)
399
(setq rttl (1+ rttl))
400
(setq crnt (match-string 1))
401
(delete-region (match-beginning 0) (match-beginning 2))
402
(when (not (string= crnt prev))
404
(insert "CD:" mew-folder-local crnt "\n"))
400
(when (looking-at regex)
401
(setq rttl (1+ rttl))
402
(setq crnt (match-string 1))
403
(delete-region (match-beginning 0) (match-beginning 2))
404
(when (not (string= crnt prev))
406
(insert "CD:" mew-folder-local crnt "\n"))
408
410
mew-cs-text-for-read mew-cs-text-for-write
409
411
(write-region (point-min) (point-max) file nil 'no-msg))
478
480
(mew-search-wds pattern path)
479
481
(goto-char (point-min))
480
(while (looking-at regex)
481
(setq rttl (1+ rttl))
482
(setq crnt (match-string 1))
483
(delete-region (match-beginning 0) (match-beginning 2))
484
(when (not (string= crnt prev))
486
(insert "CD:" mew-folder-local crnt "\n"))
483
(when (looking-at regex)
484
(setq rttl (1+ rttl))
485
(setq crnt (match-string 1))
486
(delete-region (match-beginning 0) (match-beginning 2))
487
(when (not (string= crnt prev))
489
(insert "CD:" mew-folder-local crnt "\n"))
490
493
mew-cs-text-for-read mew-cs-text-for-write
535
538
(defun mew-est-input-filter ()
536
(read-string "Hyperestraier filter: "))
539
(read-string "Hyper Estraier filter: "))
538
541
(defvar mew-search-est-db "casket")
539
542
(defvar mew-prog-est-update "mewest")
541
544
(defun mew-search-est (pattern path filter)
542
(setq pattern (mew-cs-encode-string pattern 'utf-8))
545
(setq pattern (mew-cs-encode-string pattern mew-cs-est))
543
546
(if (string= filter "")
544
547
(setq filter nil)
545
(setq filter (mew-cs-encode-string filter 'utf-8))
548
(setq filter (mew-cs-encode-string filter mew-cs-est))
546
549
(setq filter (let ((mew-inherit-pick-omit-and t))
547
550
(mew-pick-parse (mew-pick-lex filter))))
548
551
(setq filter (mapcar 'mew-pick-filter-est-kyvl filter)))
549
552
(let* ((ent (mew-search-get-ent mew-search-method))
550
553
(prog (mew-search-get-prog ent))
551
554
(casket (expand-file-name mew-search-est-db mew-conf-path))
552
maildir len attr args)
555
(setq maildir (file-truename (expand-file-name mew-home)))
556
(setq len (length (file-name-as-directory maildir)))
557
(setq path (substring (file-truename path) len))
558
(setq path (file-name-as-directory path))
559
(setq attr (format "@uri STRINC %s" (mew-q-encode-string path ?%)))
561
((string-match "^ *ANDNOT " pattern)
562
(setq pattern (concat "[UVSET] " pattern)))
563
((string-match "^ *$" pattern)
564
(setq pattern "[UVSET]")))
565
(setq args (list "-vu" "-max" "-1" "-ord" "@cdate NUMA" casket pattern))
566
(setq filter (nreverse filter))
568
(setq args (cons "-attr" (cons (car filter) args)))
569
(setq filter (cdr filter)))
570
(setq args (cons "-attr" (cons attr args)))
571
(apply 'call-process prog nil t nil "search" args)))))
555
;; mew-home is not good for Zaurus
561
(expand-file-name mew-mail-path)))))))
563
(setq path (file-truename (file-name-as-directory path)))
564
(when (string-match pregex path)
565
(setq path (substring path (match-end 0)))
568
(setq attr (format "@uri STRINC %s" (mew-q-encode-string path ?%)))
570
((string-match "^ *ANDNOT " pattern)
571
(setq pattern (concat "[UVSET] " pattern)))
572
((string-match "^ *$" pattern)
573
(setq pattern "[UVSET]")))
574
(setq args (list "-vu" "-max" "-1" "-ord" "@cdate NUMA" casket pattern))
575
(unless (eq mew-cs-est 'utf-8)
576
(setq args (cons (mew-cs-to-charset mew-cs-est) args))
577
(setq args (cons "-ic" args)))
578
(setq filter (nreverse filter))
580
(setq args (cons "-attr" (cons (car filter) args)))
581
(setq filter (cdr filter)))
582
(setq args (cons "-attr" (cons attr args)))
583
(apply 'call-process prog nil t nil "search" args))))))
573
585
(defun mew-search-with-est (pattern folder filter)
574
586
(let* ((path (mew-expand-folder folder))
647
659
(message "Another Hyper Estraier indexer is running"))
648
660
((string-match "\.\.\.failed" string)
649
661
(message "Hyper Estraier indexing ...failed"))
650
((string-match "\.\.\.done" string)
662
((string-match "old messages\.\.\.done" string)
663
(message "Hyper Estraier purging ...done"))
664
((string-match "new messages\.\.\.done" string)
651
665
(message "Hyper Estraier indexing ...done"))))
653
667
(defun mew-est-index-sentinel (process event)