;ELC   
;;; Compiled by root@loma.devel.redhat.com on Sun Feb 15 09:53:22 2004
;;; from file /usr/src/build/351973-noarch/BUILD/apel-10.6/filename.el
;;; in Emacs version 21.3.1
;;; with bytecomp version 2.85.4.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`filename.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\207" [require emu poe poem path-util] 2)
#@232 Apply initial ARGUMENT to sequence of FUNCTIONS.
FUNCTIONS is list of functions.

(poly-funcall '(f1 f2 .. fn) arg) is as same as
(fn .. (f2 (f1 arg)) ..).

For example, (poly-funcall '(car number-to-string) '(100)) returns
"100".
(defalias 'poly-funcall #[(functions argument) "\203 @	!A\211\204 	\207" [functions argument] 3 (#$ . 737)])
(put 'poly-funcall 'byte-optimizer 'byte-compile-inline-expand)
#@26 Limit size of file-name.
(defvar filename-limit-length 21 (#$ . 1154))
#@120 Alist list of characters vs. string as replacement.
List of characters represents characters not allowed as file-name.
(defvar filename-replacement-alist '(((32 9) . "_") ((33 34 35 36 37 38 39 40 41 42 47 58 59 60 62 63 91 92 93 96 123 124 125) . "_") (filename-control-p . "")) (#$ . 1232))
#@459 List of functions for file-name filter.

Example:
(setq filename-filters '(filename-special-filter
			 filename-eliminate-top-low-lines
			 filename-canonicalize-low-lines
			 filename-maybe-truncate-by-size
			 filename-eliminate-bottom-low-lines))

Moreover, if you want to convert Japanese filename to roman string by kakasi,

(if (exec-installed-p "kakasi")
    (setq file-name-filters
	  (append '(filename-japanese-to-roman-string) filename-filters)))
(defvar filename-filters nil (#$ . 1532))
(defalias 'filename-japanese-to-roman-string #[(str) "\212\301\302!q\210\303 \210c\210\304ed\305\306\211\211\307\310\311\312\313&\210\314 )\207" [str get-buffer-create " *temp kakasi*" erase-buffer call-process-region "kakasi" t "-Ha" "-Ka" "-Ja" "-Ea" "-ka" buffer-string] 12])
(defalias 'filename-control-p #[(character) "\302!\211\303W\206 	\304U)\207" [character code char-int 32 127] 3])
(defalias 'filename-special-filter #[(string) "G\306\211\307\n\fW\203x \310\n\"\311\f\203Q \f\204Q \312@@!\203; @@!\211\f\202E @@>\211\f\204 A\211\204  \f\203m 	\nO@AQ\n\210\313\\\211\202t \n\210\313\\+\202	 	\311OP,\207" [string dest i b len filename-replacement-alist 0 "" sref nil functionp 1 ret lst chr] 5])
(defalias 'filename-eliminate-top-low-lines #[(string) "\301\302\"\203 \303\225\304O\207\207" [string string-match "^_+" 0 nil] 3])
(defalias 'filename-canonicalize-low-lines #[(string) "\302\303\304	\"\203 	\305\211\224TOP	\305\225\306O\202 	P)\207" [dest string "" string-match "__+" 0 nil] 4])
(defalias 'filename-maybe-truncate-by-size #[(string) "G	V\203 \302\303	#\203 \304\211\224O\207\207" [string filename-limit-length string-match "_" 0] 4])
(defalias 'filename-eliminate-bottom-low-lines #[(string) "\301\302\"\203 \303\211\224O\207\207" [string string-match "_+$" 0] 3])
#@157 Return safety filename from STRING.
It refers variable `filename-filters' and default filters refers
`filename-limit-length', `filename-replacement-alist'.
(defalias 'replace-as-filename #[(string) "\205 	\211\203 @\n!A\211\204\f \n*\207" [string filename-filters argument functions] 4 (#$ . 3401)])
(byte-code "\301\300!\210\301\302!\210\303\304\305!\300\306\307!\310\311\"\210\312\304\305!\"\210\313!\311\232\203) \2024 \314\307\315\311\315\211\211\211\211&)#\210\304\305!\207" [product require apel-ver put provide filename product-find-by-name "APEL" product-run-checkers (10 6) product-add-feature product-version vector nil] 12)
