aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/net
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/net')
-rw-r--r--lisp/net/ldap.el43
-rw-r--r--lisp/net/quickurl.el10
-rw-r--r--lisp/net/rcirc.el7
-rw-r--r--lisp/net/tramp-sh.el42
-rw-r--r--lisp/net/trampver.el4
-rw-r--r--lisp/net/xesam.el8
6 files changed, 75 insertions, 39 deletions
diff --git a/lisp/net/ldap.el b/lisp/net/ldap.el
index 3ccad277ffb..2caf8dec30f 100644
--- a/lisp/net/ldap.el
+++ b/lisp/net/ldap.el
@@ -36,6 +36,8 @@
36(require 'custom) 36(require 'custom)
37(eval-when-compile (require 'cl)) 37(eval-when-compile (require 'cl))
38 38
39(autoload 'auth-source-search "auth-source")
40
39(defgroup ldap nil 41(defgroup ldap nil
40 "Lightweight Directory Access Protocol." 42 "Lightweight Directory Access Protocol."
41 :version "21.1" 43 :version "21.1"
@@ -480,6 +482,22 @@ Additional search parameters can be specified through
480 "Perform a search on a LDAP server. 482 "Perform a search on a LDAP server.
481SEARCH-PLIST is a property list describing the search request. 483SEARCH-PLIST is a property list describing the search request.
482Valid keys in that list are: 484Valid keys in that list are:
485
486 `auth-source', if non-nil, will use `auth-source-search' and
487will grab the :host, :secret, :base, and (:user or :binddn)
488tokens into the `host', `passwd', `base', and `binddn' parameters
489respectively if they are not provided in SEARCH-PLIST. So for
490instance *each* of these netrc lines has the same effect if you
491ask for the host \"ldapserver:2400\":
492
493 machine ldapserver:2400 login myDN secret myPassword base myBase
494 machine ldapserver:2400 binddn myDN secret myPassword port ldap
495 login myDN secret myPassword base myBase
496
497but if you have more than one in your netrc file, only the first
498matching one will be used. Note the \"port ldap\" part is NOT
499required.
500
483 `host' is a string naming one or more (blank-separated) LDAP servers to 501 `host' is a string naming one or more (blank-separated) LDAP servers to
484to try to connect to. Each host name may optionally be of the form HOST:PORT. 502to try to connect to. Each host name may optionally be of the form HOST:PORT.
485 `filter' is a filter string for the search as described in RFC 1558. 503 `filter' is a filter string for the search as described in RFC 1558.
@@ -500,19 +518,34 @@ not their associated values.
500its distinguished name DN. 518its distinguished name DN.
501The function returns a list of matching entries. Each entry is itself 519The function returns a list of matching entries. Each entry is itself
502an alist of attribute/value pairs." 520an alist of attribute/value pairs."
503 (let ((buf (get-buffer-create " *ldap-search*")) 521 (let* ((buf (get-buffer-create " *ldap-search*"))
504 (bufval (get-buffer-create " *ldap-value*")) 522 (bufval (get-buffer-create " *ldap-value*"))
505 (host (or (plist-get search-plist 'host) 523 (host (or (plist-get search-plist 'host)
506 ldap-default-host)) 524 ldap-default-host))
525 ;; find entries with port "ldap" that match the requested host if any
526 (asfound (when (plist-get search-plist 'auth-source)
527 (nth 0 (auth-source-search :host (or host t)
528 :create t))))
529 ;; if no host was requested, get it from the auth-source entry
530 (host (or host (plist-get asfound :host)))
531 ;; get the password from the auth-source
532 (passwd (or (plist-get search-plist 'passwd)
533 (plist-get asfound :secret)))
534 ;; convert the password from a function call if needed
535 (passwd (if (functionp passwd) (funcall passwd) passwd))
536 ;; get the binddn from the search-list or from the
537 ;; auth-source user or binddn tokens
538 (binddn (or (plist-get search-plist 'binddn)
539 (plist-get asfound :user)
540 (plist-get asfound :binddn)))
541 (base (or (plist-get search-plist 'base)
542 (plist-get asfound :base)
543 ldap-default-base))
507 (filter (plist-get search-plist 'filter)) 544 (filter (plist-get search-plist 'filter))
508 (attributes (plist-get search-plist 'attributes)) 545 (attributes (plist-get search-plist 'attributes))
509 (attrsonly (plist-get search-plist 'attrsonly)) 546 (attrsonly (plist-get search-plist 'attrsonly))
510 (base (or (plist-get search-plist 'base)
511 ldap-default-base))
512 (scope (plist-get search-plist 'scope)) 547 (scope (plist-get search-plist 'scope))
513 (binddn (plist-get search-plist 'binddn))
514 (auth (plist-get search-plist 'auth)) 548 (auth (plist-get search-plist 'auth))
515 (passwd (plist-get search-plist 'passwd))
516 (deref (plist-get search-plist 'deref)) 549 (deref (plist-get search-plist 'deref))
517 (timelimit (plist-get search-plist 'timelimit)) 550 (timelimit (plist-get search-plist 'timelimit))
518 (sizelimit (plist-get search-plist 'sizelimit)) 551 (sizelimit (plist-get search-plist 'sizelimit))
diff --git a/lisp/net/quickurl.el b/lisp/net/quickurl.el
index 4045a443640..c3da1707165 100644
--- a/lisp/net/quickurl.el
+++ b/lisp/net/quickurl.el
@@ -511,15 +511,15 @@ TYPE dictates what will be inserted, options are:
511 (with-current-buffer quickurl-list-last-buffer 511 (with-current-buffer quickurl-list-last-buffer
512 (insert 512 (insert
513 (case type 513 (case type
514 ('url (funcall quickurl-format-function url)) 514 (url (funcall quickurl-format-function url))
515 ('naked-url (quickurl-url-url url)) 515 (naked-url (quickurl-url-url url))
516 ('with-lookup (format "%s <URL:%s>" 516 (with-lookup (format "%s <URL:%s>"
517 (quickurl-url-keyword url) 517 (quickurl-url-keyword url)
518 (quickurl-url-url url))) 518 (quickurl-url-url url)))
519 ('with-desc (format "%S <URL:%s>" 519 (with-desc (format "%S <URL:%s>"
520 (quickurl-url-description url) 520 (quickurl-url-description url)
521 (quickurl-url-url url))) 521 (quickurl-url-url url)))
522 ('lookup (quickurl-url-keyword url))))) 522 (lookup (quickurl-url-keyword url)))))
523 (error "No URL details on that line")) 523 (error "No URL details on that line"))
524 url)) 524 url))
525 525
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
index 1e3ee91092d..71aa0dd22bc 100644
--- a/lisp/net/rcirc.el
+++ b/lisp/net/rcirc.el
@@ -548,7 +548,7 @@ If ARG is non-nil, instead prompt for connection parameters."
548 (add-hook 'auto-save-hook 'rcirc-log-write) 548 (add-hook 'auto-save-hook 'rcirc-log-write)
549 549
550 ;; identify 550 ;; identify
551 (when password 551 (unless (zerop (length password))
552 (rcirc-send-string process (concat "PASS " password))) 552 (rcirc-send-string process (concat "PASS " password)))
553 (rcirc-send-string process (concat "NICK " nick)) 553 (rcirc-send-string process (concat "NICK " nick))
554 (rcirc-send-string process (concat "USER " user-name 554 (rcirc-send-string process (concat "USER " user-name
@@ -2449,8 +2449,7 @@ keywords when no KEYWORD is given."
2449 (if rcirc-auto-authenticate-flag 2449 (if rcirc-auto-authenticate-flag
2450 (if rcirc-authenticate-before-join 2450 (if rcirc-authenticate-before-join
2451 (progn 2451 (progn
2452 (with-rcirc-process-buffer process 2452 (add-hook 'rcirc-authenticated-hook 'rcirc-join-channels-post-auth t t)
2453 (add-hook 'rcirc-authenticated-hook 'rcirc-join-channels-post-auth t t))
2454 (rcirc-authenticate)) 2453 (rcirc-authenticate))
2455 (rcirc-authenticate) 2454 (rcirc-authenticate)
2456 (rcirc-join-channels process rcirc-startup-channels)) 2455 (rcirc-join-channels process rcirc-startup-channels))
@@ -2515,7 +2514,7 @@ the only argument."
2515 (and ;; quakenet 2514 (and ;; quakenet
2516 (string= sender "Q") 2515 (string= sender "Q")
2517 (string= target rcirc-nick) 2516 (string= target rcirc-nick)
2518 (string-match message "\\`You are now logged in as .+\\.\\'"))) 2517 (string-match "\\`You are now logged in as .+\\.\\'" message)))
2519 (setq rcirc-user-authenticated t) 2518 (setq rcirc-user-authenticated t)
2520 (run-hook-with-args 'rcirc-authenticated-hook process) 2519 (run-hook-with-args 'rcirc-authenticated-hook process)
2521 (remove-hook 'rcirc-authenticated-hook 'rcirc-join-channels-post-auth t)))))) 2520 (remove-hook 'rcirc-authenticated-hook 'rcirc-join-channels-post-auth t))))))
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 63a4c19eccf..ec5c46b2897 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -90,7 +90,7 @@ detected as prompt when being sent on echoing hosts, therefore.")
90 (tramp-login-args (("%h") ("-l" "%u"))) 90 (tramp-login-args (("%h") ("-l" "%u")))
91 (tramp-remote-sh "/bin/sh") 91 (tramp-remote-sh "/bin/sh")
92 (tramp-copy-program "rcp") 92 (tramp-copy-program "rcp")
93 (tramp-copy-args (("%k" "-p") ("-r"))) 93 (tramp-copy-args (("-p" "%k") ("-r")))
94 (tramp-copy-keep-date t) 94 (tramp-copy-keep-date t)
95 (tramp-copy-recursive t))) 95 (tramp-copy-recursive t)))
96;;;###tramp-autoload 96;;;###tramp-autoload
@@ -100,7 +100,7 @@ detected as prompt when being sent on echoing hosts, therefore.")
100 (tramp-login-args (("%h") ("-l" "%u"))) 100 (tramp-login-args (("%h") ("-l" "%u")))
101 (tramp-remote-sh "/bin/sh") 101 (tramp-remote-sh "/bin/sh")
102 (tramp-copy-program "rcp") 102 (tramp-copy-program "rcp")
103 (tramp-copy-args (("%k" "-p"))) 103 (tramp-copy-args (("-p" "%k")))
104 (tramp-copy-keep-date t))) 104 (tramp-copy-keep-date t)))
105;;;###tramp-autoload 105;;;###tramp-autoload
106(add-to-list 'tramp-methods 106(add-to-list 'tramp-methods
@@ -110,7 +110,7 @@ detected as prompt when being sent on echoing hosts, therefore.")
110 (tramp-async-args (("-q"))) 110 (tramp-async-args (("-q")))
111 (tramp-remote-sh "/bin/sh") 111 (tramp-remote-sh "/bin/sh")
112 (tramp-copy-program "scp") 112 (tramp-copy-program "scp")
113 (tramp-copy-args (("-P" "%p") ("%k" "-p") ("-q") ("-r"))) 113 (tramp-copy-args (("-P" "%p") ("-p" "%k") ("-q") ("-r")))
114 (tramp-copy-keep-date t) 114 (tramp-copy-keep-date t)
115 (tramp-copy-recursive t) 115 (tramp-copy-recursive t)
116 (tramp-gw-args (("-o" "GlobalKnownHostsFile=/dev/null") 116 (tramp-gw-args (("-o" "GlobalKnownHostsFile=/dev/null")
@@ -126,7 +126,7 @@ detected as prompt when being sent on echoing hosts, therefore.")
126 (tramp-async-args (("-q"))) 126 (tramp-async-args (("-q")))
127 (tramp-remote-sh "/bin/sh") 127 (tramp-remote-sh "/bin/sh")
128 (tramp-copy-program "scp") 128 (tramp-copy-program "scp")
129 (tramp-copy-args (("-1") ("-P" "%p") ("%k" "-p") ("-q") ("-r"))) 129 (tramp-copy-args (("-1") ("-P" "%p") ("-p" "%k") ("-q") ("-r")))
130 (tramp-copy-keep-date t) 130 (tramp-copy-keep-date t)
131 (tramp-copy-recursive t) 131 (tramp-copy-recursive t)
132 (tramp-gw-args (("-o" "GlobalKnownHostsFile=/dev/null") 132 (tramp-gw-args (("-o" "GlobalKnownHostsFile=/dev/null")
@@ -142,7 +142,7 @@ detected as prompt when being sent on echoing hosts, therefore.")
142 (tramp-async-args (("-q"))) 142 (tramp-async-args (("-q")))
143 (tramp-remote-sh "/bin/sh") 143 (tramp-remote-sh "/bin/sh")
144 (tramp-copy-program "scp") 144 (tramp-copy-program "scp")
145 (tramp-copy-args (("-2") ("-P" "%p") ("%k" "-p") ("-q") ("-r"))) 145 (tramp-copy-args (("-2") ("-P" "%p") ("-p" "%k") ("-q") ("-r")))
146 (tramp-copy-keep-date t) 146 (tramp-copy-keep-date t)
147 (tramp-copy-recursive t) 147 (tramp-copy-recursive t)
148 (tramp-gw-args (("-o" "GlobalKnownHostsFile=/dev/null") 148 (tramp-gw-args (("-o" "GlobalKnownHostsFile=/dev/null")
@@ -160,7 +160,7 @@ detected as prompt when being sent on echoing hosts, therefore.")
160 (tramp-async-args (("-q"))) 160 (tramp-async-args (("-q")))
161 (tramp-remote-sh "/bin/sh") 161 (tramp-remote-sh "/bin/sh")
162 (tramp-copy-program "scp") 162 (tramp-copy-program "scp")
163 (tramp-copy-args (("-P" "%p") ("%k" "-p") ("-q") ("-r") 163 (tramp-copy-args (("-P" "%p") ("-p" "%k") ("-q") ("-r")
164 ("-o" "ControlPath=%t.%%r@%%h:%%p") 164 ("-o" "ControlPath=%t.%%r@%%h:%%p")
165 ("-o" "ControlMaster=auto"))) 165 ("-o" "ControlMaster=auto")))
166 (tramp-copy-keep-date t) 166 (tramp-copy-keep-date t)
@@ -179,7 +179,7 @@ detected as prompt when being sent on echoing hosts, therefore.")
179 (tramp-async-args (("-q"))) 179 (tramp-async-args (("-q")))
180 (tramp-remote-sh "/bin/sh") 180 (tramp-remote-sh "/bin/sh")
181 (tramp-copy-program "scp") 181 (tramp-copy-program "scp")
182 (tramp-copy-args (("-P" "%p") ("%k" "-p") ("-q") ("-r"))) 182 (tramp-copy-args (("-P" "%p") ("-p" "%k") ("-q") ("-r")))
183 (tramp-copy-keep-date t) 183 (tramp-copy-keep-date t)
184 (tramp-copy-recursive t) 184 (tramp-copy-recursive t)
185 (tramp-gw-args (("-o" "GlobalKnownHostsFile=/dev/null") 185 (tramp-gw-args (("-o" "GlobalKnownHostsFile=/dev/null")
@@ -202,7 +202,7 @@ detected as prompt when being sent on echoing hosts, therefore.")
202 (tramp-async-args (("-q"))) 202 (tramp-async-args (("-q")))
203 (tramp-remote-sh "/bin/sh") 203 (tramp-remote-sh "/bin/sh")
204 (tramp-copy-program "rsync") 204 (tramp-copy-program "rsync")
205 (tramp-copy-args (("-e" "ssh") ("%k" "-t") ("-r"))) 205 (tramp-copy-args (("-e" "ssh") ("-t" "%k") ("-r")))
206 (tramp-copy-keep-date t) 206 (tramp-copy-keep-date t)
207 (tramp-copy-keep-tmpfile t) 207 (tramp-copy-keep-tmpfile t)
208 (tramp-copy-recursive t))) 208 (tramp-copy-recursive t)))
@@ -217,7 +217,7 @@ detected as prompt when being sent on echoing hosts, therefore.")
217 (tramp-async-args (("-q"))) 217 (tramp-async-args (("-q")))
218 (tramp-remote-sh "/bin/sh") 218 (tramp-remote-sh "/bin/sh")
219 (tramp-copy-program "rsync") 219 (tramp-copy-program "rsync")
220 (tramp-copy-args (("%k" "-t") ("-r"))) 220 (tramp-copy-args (("-t" "%k") ("-r")))
221 (tramp-copy-env (("RSYNC_RSH") 221 (tramp-copy-env (("RSYNC_RSH")
222 (,(concat 222 (,(concat
223 "ssh" 223 "ssh"
@@ -353,7 +353,7 @@ detected as prompt when being sent on echoing hosts, therefore.")
353 (tramp-login-args (("-l" "%u") ("-P" "%p") ("-ssh") ("%h"))) 353 (tramp-login-args (("-l" "%u") ("-P" "%p") ("-ssh") ("%h")))
354 (tramp-remote-sh "/bin/sh") 354 (tramp-remote-sh "/bin/sh")
355 (tramp-copy-program "pscp") 355 (tramp-copy-program "pscp")
356 (tramp-copy-args (("-P" "%p") ("-scp") ("%k" "-p") 356 (tramp-copy-args (("-P" "%p") ("-scp") ("-p" "%k")
357 ("-q") ("-r"))) 357 ("-q") ("-r")))
358 (tramp-copy-keep-date t) 358 (tramp-copy-keep-date t)
359 (tramp-copy-recursive t) 359 (tramp-copy-recursive t)
@@ -366,7 +366,7 @@ detected as prompt when being sent on echoing hosts, therefore.")
366 (tramp-login-args (("-l" "%u") ("-P" "%p") ("-ssh") ("%h"))) 366 (tramp-login-args (("-l" "%u") ("-P" "%p") ("-ssh") ("%h")))
367 (tramp-remote-sh "/bin/sh") 367 (tramp-remote-sh "/bin/sh")
368 (tramp-copy-program "pscp") 368 (tramp-copy-program "pscp")
369 (tramp-copy-args (("-P" "%p") ("-sftp") ("%k" "-p") 369 (tramp-copy-args (("-P" "%p") ("-sftp") ("-p" "%k")
370 ("-q") ("-r"))) 370 ("-q") ("-r")))
371 (tramp-copy-keep-date t) 371 (tramp-copy-keep-date t)
372 (tramp-copy-recursive t) 372 (tramp-copy-recursive t)
@@ -378,7 +378,7 @@ detected as prompt when being sent on echoing hosts, therefore.")
378 (tramp-login-args (("%h") ("-l" "%u") ("sh" "-i"))) 378 (tramp-login-args (("%h") ("-l" "%u") ("sh" "-i")))
379 (tramp-remote-sh "/bin/sh -i") 379 (tramp-remote-sh "/bin/sh -i")
380 (tramp-copy-program "fcp") 380 (tramp-copy-program "fcp")
381 (tramp-copy-args (("%k" "-p"))) 381 (tramp-copy-args (("-p" "%k")))
382 (tramp-copy-keep-date t))) 382 (tramp-copy-keep-date t)))
383 383
384;;;###tramp-autoload 384;;;###tramp-autoload
@@ -2251,11 +2251,15 @@ The method used must be an out-of-band method."
2251 'identity) 2251 'identity)
2252 (if t2 (tramp-make-copy-program-file-name v) newname))) 2252 (if t2 (tramp-make-copy-program-file-name v) newname)))
2253 2253
2254 ;; Check for port number. Until now, there's no need for handling 2254 ;; Check for host and port number. We cannot use
2255 ;; like method, user, host. 2255 ;; `tramp-file-name-port', because this returns also
2256 (setq host (tramp-file-name-real-host v) 2256 ;; `tramp-default-port', which might clash with settings in
2257 port (tramp-file-name-port v) 2257 ;; "~/.ssh/config".
2258 port (or (and port (number-to-string port)) "")) 2258 (setq host (tramp-file-name-host v)
2259 port "")
2260 (when (string-match tramp-host-with-port-regexp host)
2261 (setq host (string-to-number (match-string 1 host))
2262 port (string-to-number (match-string 2 host))))
2259 2263
2260 ;; Compose copy command. 2264 ;; Compose copy command.
2261 (setq spec (format-spec-make 2265 (setq spec (format-spec-make
@@ -2270,7 +2274,7 @@ The method used must be an out-of-band method."
2270 copy-args 2274 copy-args
2271 (delete 2275 (delete
2272 ;; " " has either been a replacement of "%k" (when 2276 ;; " " has either been a replacement of "%k" (when
2273 ;; keep-date argument is non-nil), or a replacemtent 2277 ;; keep-date argument is non-nil), or a replacement
2274 ;; for the whole keep-date sublist. 2278 ;; for the whole keep-date sublist.
2275 " " 2279 " "
2276 (dolist 2280 (dolist
@@ -2281,7 +2285,7 @@ The method used must be an out-of-band method."
2281 (append 2285 (append
2282 copy-args 2286 copy-args
2283 (let ((y (mapcar (lambda (z) (format-spec z spec)) x))) 2287 (let ((y (mapcar (lambda (z) (format-spec z spec)) x)))
2284 (if (zerop (length (car y))) '(" ") y)))))) 2288 (if (member "" y) '(" ") y))))))
2285 copy-env 2289 copy-env
2286 (delq 2290 (delq
2287 nil 2291 nil
diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el
index 1f3064c7066..462b8f11397 100644
--- a/lisp/net/trampver.el
+++ b/lisp/net/trampver.el
@@ -31,7 +31,7 @@
31;; should be changed only there. 31;; should be changed only there.
32 32
33;;;###tramp-autoload 33;;;###tramp-autoload
34(defconst tramp-version "2.2.1-pre" 34(defconst tramp-version "2.2.1"
35 "This version of Tramp.") 35 "This version of Tramp.")
36 36
37;;;###tramp-autoload 37;;;###tramp-autoload
@@ -44,7 +44,7 @@
44 (= emacs-major-version 21) 44 (= emacs-major-version 21)
45 (>= emacs-minor-version 4))) 45 (>= emacs-minor-version 4)))
46 "ok" 46 "ok"
47 (format "Tramp 2.2.1-pre is not fit for %s" 47 (format "Tramp 2.2.1 is not fit for %s"
48 (when (string-match "^.*$" (emacs-version)) 48 (when (string-match "^.*$" (emacs-version))
49 (match-string 0 (emacs-version))))))) 49 (match-string 0 (emacs-version)))))))
50 (unless (string-match "\\`ok\\'" x) (error "%s" x))) 50 (unless (string-match "\\`ok\\'" x) (error "%s" x)))
diff --git a/lisp/net/xesam.el b/lisp/net/xesam.el
index 21a22749408..64c26cfb2c9 100644
--- a/lisp/net/xesam.el
+++ b/lisp/net/xesam.el
@@ -414,18 +414,18 @@ If there is no registered search engine at all, the function returns `nil'."
414 ;; Hopefully, this will change later. 414 ;; Hopefully, this will change later.
415 (setq hit-fields 415 (setq hit-fields
416 (case (intern vendor-id) 416 (case (intern vendor-id)
417 ('Beagle 417 (Beagle
418 '("xesam:mimeType" "xesam:url")) 418 '("xesam:mimeType" "xesam:url"))
419 ('Strigi 419 (Strigi
420 '("xesam:author" "xesam:cc" "xesam:charset" 420 '("xesam:author" "xesam:cc" "xesam:charset"
421 "xesam:contentType" "xesam:fileExtension" 421 "xesam:contentType" "xesam:fileExtension"
422 "xesam:id" "xesam:lineCount" "xesam:links" 422 "xesam:id" "xesam:lineCount" "xesam:links"
423 "xesam:mimeType" "xesam:name" "xesam:size" 423 "xesam:mimeType" "xesam:name" "xesam:size"
424 "xesam:sourceModified" "xesam:subject" "xesam:to" 424 "xesam:sourceModified" "xesam:subject" "xesam:to"
425 "xesam:url")) 425 "xesam:url"))
426 ('TrackerXesamSession 426 (TrackerXesamSession
427 '("xesam:relevancyRating" "xesam:url")) 427 '("xesam:relevancyRating" "xesam:url"))
428 ('Debbugs 428 (Debbugs
429 '("xesam:keyword" "xesam:owner" "xesam:title" 429 '("xesam:keyword" "xesam:owner" "xesam:title"
430 "xesam:url" "xesam:sourceModified" "xesam:mimeType" 430 "xesam:url" "xesam:sourceModified" "xesam:mimeType"
431 "debbugs:key")) 431 "debbugs:key"))