--- mc-4.6.1a/lib/mc.ext.in.extkde	2005-09-06 12:20:01.000000000 +0300
+++ mc-4.6.1a/lib/mc.ext.in	2006-04-23 13:54:54.000000000 +0300
@@ -216,14 +216,25 @@
 
 # C
 shell/.c
-	Open=%var{EDITOR:vi} %f
+	Include=editor
 
 # Fortran
 shell/.f
-	Open=%var{EDITOR:vi} %f
+	Include=editor
 	
 # Header
 regex/\.(h|hpp)$
+	Include=editor
+
+# Asm
+regex/\.([Ss]|[Aa]sm|ASM)$
+	Include=editor
+
+# C++
+regex/\.(C|cc|[Cc]pp|CPP)$
+	Inlude=editor
+
+include/editor
 	Open=%var{EDITOR:vi} %f
 
 # Object
@@ -248,9 +259,11 @@
 # GNU Info page
 type/^Info\ text
 	Open=info -f %f
+	#Open=pinfo %f
 
 shell/.info
 	Open=info -f %f
+	#Open=pinfo %f
 
 # Manual page
 # Exception - .so libraries are not manual pages
@@ -258,8 +271,8 @@
 	View=%view{ascii} file %f && nm %f
 
 regex/(([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])|\.man)$
-	Open=case %d/%f in */log/*|*/logs/*) cat %f ;; *) nroff @MAN_FLAGS@ @MANDOC@ %f ;; esac | %var{PAGER:more}
-	View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) cat %f ;; *) nroff @MAN_FLAGS@ @MANDOC@ %f ;; esac
+	Open=case %d/%f in */log/*|*/logs/*) cat %f ;; *) nroff -c -Tlatin1 -mandoc %f ;; esac | %var{PAGER:more}
+	View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) cat %f ;; *) nroff -c -Tlatin1 -mandoc %f ;; esac
 
 # Troff with me macros.
 # Exception - "read.me" is not a nroff file.
@@ -268,26 +281,26 @@
 	View=
 
 shell/.me
-	Open=nroff @MAN_FLAGS@ -me %f | %var{PAGER:more}
-	View=%view{ascii,nroff} nroff @MAN_FLAGS@ -me %f
+	Open=nroff -c -Tlatin1 -me %f | %var{PAGER:more}
+	View=%view{ascii,nroff} nroff -c -Tlatin1 -me %f
 
 # Troff with ms macros.
 shell/.ms
-	Open=nroff @MAN_FLAGS@ -ms %f | %var{PAGER:more}
-	View=%view{ascii,nroff} nroff @MAN_FLAGS@ -ms %f
+	Open=nroff -c -Tlatin1 -ms %f | %var{PAGER:more}
+	View=%view{ascii,nroff} nroff -c -Tlatin1 -ms %f
 
 # Manual page - compressed
 regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.g?[Zz]$
-	Open=case %d/%f in */log/*|*/logs/*) gzip -dc %f ;; *) gzip -dc %f | nroff @MAN_FLAGS@ @MANDOC@ ;; esac | %var{PAGER:more}
-	View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) gzip -dc %f ;; *) gzip -dc %f | nroff @MAN_FLAGS@ @MANDOC@ ;; esac
+	Open=case %d/%f in */log/*|*/logs/*) gzip -dc %f ;; *) gzip -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more}
+	View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) gzip -dc %f ;; *) gzip -dc %f | nroff -c -Tlatin1 -mandoc ;; esac
 
 regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.bz$
-	Open=case %d/%f in */log/*|*/logs/*) bzip -dc %f ;; *) bzip -dc %f | nroff @MAN_FLAGS@ @MANDOC@ ;; esac | %var{PAGER:more}
-	View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) bzip -dc %f ;; *) bzip -dc %f | nroff @MAN_FLAGS@ @MANDOC@ ;; esac
+	Open=case %d/%f in */log/*|*/logs/*) bzip -dc %f ;; *) bzip -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more}
+	View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) bzip -dc %f ;; *) bzip -dc %f | nroff -c -Tlatin1 -mandoc ;; esac
 
 regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.bz2$
-	Open=case %d/%f in */log/*|*/logs/*) bzip2 -dc %f ;; *) bzip2 -dc %f | nroff @MAN_FLAGS@ @MANDOC@ ;; esac | %var{PAGER:more}
-	View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) bzip2 -dc %f ;; *) bzip2 -dc %f | nroff @MAN_FLAGS@ @MANDOC@ ;; esac
+	Open=case %d/%f in */log/*|*/logs/*) bzip2 -dc %f ;; *) bzip2 -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more}
+	View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) bzip2 -dc %f ;; *) bzip2 -dc %f | nroff -c -Tlatin1 -mandoc ;; esac
 
 
 ### Images ###
@@ -319,6 +332,12 @@
 type/^Netpbm
 	Include=image
 
+type/^JNG
+	Include=image
+
+type/^MNG
+	Include=image
+
 shell/.xcf
 	Open=gimp %f
 
@@ -330,38 +349,41 @@
 	View=sxpm %f
 
 include/image
-	Open=if [ "$DISPLAY" = "" ]; then zgv %f; else (gqview %f &); fi
+	Open=if [ "$DISPLAY" = "" ]; then zgv %f; else (if [ "$DESKTOP_SESSION" = "kde" ]; then (kuickshow %f &); else (display %f &); fi); fi
 	View=%view{ascii} identify %f
-	#View=%view{ascii} asciiview %f
 
 
-### Sound files ###
+### Sound files ### 
 
 regex/\.([wW][aA][vV]|[sS][nN][dD]|[vV][oO][cC]|[aA][uU]|[sS][mM][pP]|[aA][iI][fF][fF]|[sS][nN][dD])$
-       Open=if [ "$DISPLAY" = "" ]; then play %f; else (xmms -e %f 1>/dev/null 2>&1 &); fi
+	Include=audio
 
 regex/\.([mM][oO][dD]|[sS]3[mM]|[xX][mM]|[iI][tT]|[mM][tT][mM]|669|[sS][tT][mM]|[uU][lL][tT]|[fF][aA][rR])$
        Open=mikmod %f
-       #Open=tracker %f
 
 regex/\.([wW][aA][wW]22)$
        Open=vplay -s 22 %f
 
 regex/\.([mM][pP]3)$
-	Open=if [ "$DISPLAY" = "" ]; then mpg123 %f; else (xmms %f &); fi
-	View=%view{ascii} mpg123 -vtn1 %f 2>&1 | sed -n '/^Title/,/^Comment/p;/^MPEG/,/^Audio/p'
+	Include=audio
+
+regex/\.([mM][kK][aA])$
+	Include=audio
 
 regex/\.([oO][gG][gG])$
-	Open=if [ "$DISPLAY" = "" ]; then ogg123 %f; else (xmms %f &); fi
+	Include=audio
 	View=%view{ascii} ogginfo %s
 
 regex/\.([mM][iI][dD][iI]?|[rR][mM][iI][dD]?)$
 	Open=timidity %f
 
 regex/\.([wW][mM][aA])$
-	Open=mplayer -vo null %f
+	Include=audio
 	View=%view{ascii} mplayer -quiet -slave -frames 0 -vo null -ao null -identify %f 2>/dev/null | tail +13 || file %f
 
+include/audio
+	Open=if [ "$DISPLAY" = "" ]; then mplayer %f; else (if [ "$DESKTOP_SESSION" = "kde" ]; then (amarok -ap %f >/dev/null 2>&1 &); else (xmms -e %f 1>/dev/null 2>&1 &); fi); fi
+	View=%view{ascii} mplayer -identify -vo null -ao null -frames 0 %f 2>&1 | sed -n '/^ID_/p'
 
 ### Play lists ###
 
@@ -386,36 +408,39 @@
 regex/\.([mM][pP]4|[mM][pP][eE]?[gG])$
 	Include=video
 
+regex/\.([mM][kK][vV])$
+	Include=video
+
 regex/\.([vV][oO][bB])$
 	Include=video
 
 regex/\.([wW][mM][vV])$
 	Include=video
 
+regex/\.([fF][lL][iIcC])$
+	Include=video
+
 regex/\.([oO][gG][mM])$
 	Include=video
 
 regex/\.([rR][aA]?[mM])$
-	Open=(realplay %f >/dev/null 2>&1 &)
+	Include=video
 
 include/video
 	Open=(mplayer %f >/dev/null 2>&1 &)
-	#Open=(gtv %f >/dev/null 2>&1 &)
-	#Open=(xanim %f >/dev/null 2>&1 &)
+	View=%view{ascii} mplayer -identify -vo null -ao null -frames 0 %f 2>&1 | sed -n '/^ID_/p'
 
 
 ### Documents ###
 
 # Postscript
 type/^PostScript
-	Open=(gv %f &)
+	Open=if [ "$DESKTOP_SESSION" = "kde" ]; then (kpdf %f &); else (evince %f >/dev/null 2>&1 &); fi
 	View=%view{ascii} ps2ascii %f
 
 # PDF
 type/^PDF
-	Open=(xpdf %f &)
-	#Open=(acroread %f &)
-	#Open=(ghostview %f &)
+	Open=if [ "$DESKTOP_SESSION" = "kde" ]; then (kpdf %f &); else (evince %f >/dev/null 2>&1 &); fi
 	View=%view{ascii} pdftotext %f -
 
 # The following code very ugly and should not be taken as example.
@@ -423,46 +448,88 @@
 
 # html
 regex/\.([hH][tT][mM][lL]?)$
-	Open=(if test -n "@X11_WWW@" && test -n "$DISPLAY"; then (@X11_WWW@ file://%d/%p &) 1>&2; else links %f || lynx -force_html %f || ${PAGER:-more} %f; fi) 2>/dev/null
-	View=%view{ascii} lynx -dump -force_html %f
+	Open=(if [ -n "$DISPLAY" ]; then (if [ "$DESKTOP_SESSION" = "kde" ]; then (konqueror %f &) 1>&2; else (if [ -e "/usr/bin/firefox" ] || [-e "/usr/local/bin/firefox" ]; then (firefox file://%d/%p &) 1>&2; else (mozilla file://%d/%p &) 1>&2; fi);  fi); else links %f || lynx -force_html %f || ${PAGER:-more} %f; fi) 2>/dev/null
+	View=%view{ascii} links -dump %f
 
 # StarOffice 5.2
-shell/.sdw
+regex/\.(sdw|vor|sdc|sda|sdd|sgl)$
 	Open=(ooffice %f &)
 
 # StarOffice 6 and OpenOffice.org formats
-regex/\.(odt|ott|sxw|stw|ods|ots|sxc|stc|odp|otp|sxi|sti|odg|otg|sxd|std|odb|odf|sxm|odm|sxg)$
-	Open=(ooffice %f &)
+# document
+regex/\.(odt|ott|sxw|stw)$
+	Open=if [ -e "/usr/bin/ooffice" ] || [ -e "/usr/local/bin/ooffice" ] ; then (ooffice %f &); else (kword %f >/dev/null 2>&1 &); fi
+	View=%view{ascii} unzip -p %f content.xml | o3totxt
+# table
+regex/\.(ods|ots|sxc|stc)$
+	Open=if [ -e "/usr/bin/ooffice" ] || [ -e "/usr/local/bin/ooffice" ] ; then (ooffice %f &); else (kspread %f >/dev/null 2>&1 &); fi
+	View=%view{ascii} unzip -p %f content.xml | o3totxt
+# present
+regex/\.(odp|otp|sxi|sti)$
+	Open=if [ -e "/usr/bin/ooffice" ] || [ -e "/usr/local/bin/ooffice" ] ; then (ooffice %f &); else (kpresenter %f >/dev/null 2>&1 &); fi
+	View=%view{ascii} unzip -p %f content.xml | o3totxt
+# vector pic
+regex/\.(odg|otg|sxd|std)$
+	Open=if [ -e "/usr/bin/ooffice" ] || [ -e "/usr/local/bin/ooffice" ] ; then (ooffice %f &); else (karbon %f >/dev/null 2>&1 &); fi
 	View=%view{ascii} unzip -p %f content.xml | o3totxt
+# other
+regex/\.(odb|odf|sxm|odm|sxg)$
+	Open=(ooffice %f &)
 
 # AbiWord
 shell/.abw
-	Open=(abiword %f &)
+	Open=if [ -e "/usr/bin/abiword" ] || [ -e "/usr/local/bin/abiword" ]; then (abiword %f >/dev/null 2>&1 &); else (kword %f >/dev/null 2>&1 &); fi
 
-# Microsoft Word Document
-regex/\.([Dd][oO][cCtT]|[Ww][rR][iI])$
-	Open=(abiword %f >/dev/null 2>&1 &)
+# Microsoft Word Document & RTF
+regex/\.([Dd][oO][cCtT]|[Ww][rR][iI]|[rR][tT][fF])$
+	Open=if [ -e "/usr/bin/ooffice" ] || [ -e "/usr/local/bin/ooffice" ] ; then (ooffice %f &); else (if [ "$DESKTOP_SESSION" = "kde" ]; then (kword %f >/dev/null 2>&1 &); else (abiword %f >/dev/null 2>&1 &); fi); fi
 	View=%view{ascii} catdoc -w %f || word2x -f text %f - || strings %f
 type/^Microsoft\ Word
-	Open=(abiword %f >/dev/null 2>&1 &)
+	Open=if [ -e "/usr/bin/ooffice" ] || [ -e "/usr/local/bin/ooffice" ] ; then (ooffice %f &); else (if [ "$DESKTOP_SESSION" = "kde" ]; then (kword %f >/dev/null 2>&1 &); else (abiword %f >/dev/null 2>&1 &); fi); fi
 	View=%view{ascii} catdoc -w %f || word2x -f text %f - || strings %f
 
-# RTF document
-regex/\.([rR][tT][fF])$
-	Open=(abiword %f >/dev/null 2>&1 &)
-
 # Microsoft Excel Worksheet
 regex/\.([xX][lL][sSwW])$
-	Open=(gnumeric %f >/dev/null 2>&1 &)
+	Open=if [ -e "/usr/bin/ooffice" ] || [ -e "/usr/local/bin/ooffice" ] ; then (ooffice %f &); else (if [ "$DESKTOP_SESSION" = "kde" ]; then (kspread %f >/dev/null 2>&1 &); else (gnumeric %f >/dev/null 2>&1 &); fi); fi
 	View=%view{ascii} xls2csv %f || strings %f
 type/^Microsoft\ Excel
-	Open=(gnumeric %f >/dev/null 2>&1 &)
+	Open=if [ -e "/usr/bin/ooffice" ] || [ -e "/usr/local/bin/ooffice" ] ; then (ooffice %f &); else (if [ "$DESKTOP_SESSION" = "kde" ]; then (kspread %f >/dev/null 2>&1 &); else (gnumeric %f >/dev/null 2>&1 &); fi); fi
 	View=%view{ascii} xls2csv %f || strings %f
 
 # Use OpenOffice.org to open any MS Office documents
 type/^Microsoft\ Office\ Document
 	Open=(ooffice %f &)
 
+# KOffice Suite (old formats)
+# KWord
+shell/.kwd
+	Open=(kword %f >/dev/null 2>&1 &)
+# KSpread
+shell/.ksp$
+	Open=(kspread %f >/dev/null 2>&1 &)
+# KPresenter
+shell/.kpr
+	Open=(kpresenter %f >/dev/null 2>&1 &)
+# Kivio
+shell/.fwl
+	Open=(kivio %f >/dev/null 2>&1 &)
+# KChart
+shell/.chrt
+	Open=(kchart %f >/dev/null 2>&1 &)
+# KPlato
+shell/.kplato
+	Open=(kplato %f >/dev/null 2>&1 &)
+# Kexi (database)
+shell/.kexi
+	Open=(kexi %f >/dev/null 2>&1 &)
+# KFormula
+shell/.kfo
+	Open=(kformula %f >/dev/null 2>&1 &)
+# Krita
+shell/.kra
+	Open=(krita %f >/dev/null 2>&1 &)
+
+	
 # Framemaker
 type/^FrameMaker
 	Open=fmclient -f %f
@@ -475,7 +542,7 @@
 # TeX
 regex/\.([Tt][Ee][Xx])$
 	Open=%var{EDITOR:vi} %f
-
+	
 
 ### Miscellaneous ###
 
