;; -*- emacs-lisp -*-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; $Id: emacs_weird.el,v 1.7 2006-11-06 21:02:42 rscholz Exp $
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Einstellungen für "Weird stuff"
;;
;; Die offizielle Quelle dieser Datei ist
;;   <http://www.zonix.de/projects/emacs/config>
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; what-domain by Noah Friedman
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(require 'what-domain)


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; RFCView
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(require 'rfcview)
(setq auto-mode-alist (cons '("/rfc[0-9]+\\.txt" . rfcview-mode)
                            auto-mode-alist))

(autoload 'rfcview-mode "rfcview" nil t)


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; HTMLize <http://fly.srk.fer.hr/~hniksic/emacs/htmlize.el>
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(require 'htmlize)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Coffee <http://www.chez.com/emarsden/downloads/coffee.el>
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(require 'coffee)
(setq coffee-host "localhost")


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Norton Commander Mode <ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs>
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(autoload 'nc "nc" "Emulate MS-DOG file shell" t)
(setq nc-columns 1)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; MP3-Tools
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;(autoload 'mp3-edit-tag "mp3-tools" "MP3 Tag editor for Emacs" t)
;(autoload 'mp3-create-playlist "mp3-tools" "MP3 Playlist generator" t)


;; MP3 / CD
(defun zonix-now-playing ()
"Insert the information about the music I'm currently listening to into
the current buffer."
  (interactive)
  (shell-command-to-string (expand-file-name "~/bin/nowplaying")))

;; Buecher
(defun zonix-now-reading ()
"Insert the information about the book I'm reading (not right now...) to into
the current buffer."
  (with-temp-buffer
    (insert-file-contents "~/.nowreading")
    (buffer-string)))

;; Essen
(defun essen ()
  (interactive)
  (save-excursion
    (with-output-to-temp-buffer "*Essen*")
    (set-buffer "*Essen*")
    (setq buffer-read-only nil)
    (insert (shell-command-to-string (expand-file-name "~/bin/essen")))))

;; DSF  FIXME: doesn't work yet

(defvar dsf-path "/home/rscholz/dsf.txt")
(defvar dsf-section-alist nil)

(defun dsf-get-link-list ()
  (let ((FILE (with-temp-buffer (insert-file-contents dsf-path) (buffer-string)))
        (POS 0)
        TMP LIST)
    (while (setq TMP (string-match "\\^\\(.*\\)\\[\\(dsf .*\\)\\]$" 
                                   FILE POS))
      (setq LIST (cons (cons (match-string 2 FILE) (match-string 1 FILE)) LIST))
      (setq POS (1+ TMP)))
    LIST))

(defun dsf-get-section-alist ()
  (or dsf-section-alist
      (setq dsf-section-alist (dsf-get-link-list))))

(defun dsf-lookup-section (section)
  "Looks up DSF for SECTION, using your favorite Web browser."
  (interactive
   (list (completing-read "Lookup DSF for: "
                          (dsf-get-section-alist) nil t)))
  (cdr (assoc section (dsf-get-section-alist))))