mcwin32 icon indicating copy to clipboard operation
mcwin32 copied to clipboard

MC file plugins for win

Open eugenov opened this issue 3 years ago • 5 comments

mc has some plugins for handling files such as "plugin\archive.sh", "plugin\doc.sh" and such. All commands inside them are for unix. It will be very nice to make mc handle various types of files, but at least we need ability to pass file handling to win. Right now I can only launch executables.

eugenov avatar Nov 09 '21 12:11 eugenov

need an example use-case; scripts can always exec "start file-name" gaining win shell file association features.

adamyg avatar Nov 09 '21 16:11 adamyg

I.e. I have some *.pdf file, which opens with MS edge in Explorer. When I execute it in mc (with RETURN key), nothing happens. The same with *.doc, *.xls and other file formats with windows assosiations. I believe it's hard to implement archive processing inside mc in win, am I right?

eugenov avatar Nov 10 '21 07:11 eugenov

Hello,

Currently the workaround I found to open a file from mc in a external application is to run the following in mc command line:

$ start program %f

  • start is a DOS command -- type help start on a command window for details,
  • program is the name of the executable, with or without its extension. In the case of MS word, for instance, the executable is winword.exe and generally in the PATH, so winword should work.
  • %f is the mc macro for the currently selected file.

So providing a .doc or .docx file is selected in the active panel, the following should work :

$ start winword %f

or equivalently:

$ start winword followed by CTRL + RETURN to add the filename

@eugenov , regarding your initial question: when I just type RETURN on a word file I have the following error (I guess that you should see a similar error, but you must type CRL+o to see the full output of the command line)

image

I don't know much about its implementation, but I suppose that mc is able to execute a part of doc.sh. Here for instance It recognize that type of file is a msdoc, but can't execute wvHtml or elinks which are linux commands.

I agree with you it would be nice being able to directly open the files by typing RETURN. I think that the mc.ext file is meant to do that, but I hanven't figured out yet how to properly do that in windows...

atravert avatar Apr 01 '22 15:04 atravert

Hello,

Finally I found the following solution: in mc.ext the lines Open=... or View=... invoking doc.sh can be replaced by: Open=cmd /c start openprogram %p View=cmd /c start viewerprogram %p

where openprogram and viewerprogram are exe programs that can be found in the DOS PATH.

For instance for ms word/excel/powerpoint, one could use:

# Microsoft Word Document
regex/i/\.(do[ct]|wri|docx)$
	Open=cmd /c start winword %p
	View=cmd /c start winword %p
type/^Microsoft\ Word
	Open=cmd /c start winword %p
	View=cmd /c start winword %p


# Microsoft Excel Worksheet
regex/i/\.(xl[sw]|xlsx)$
	Open=cmd /c start excel %p
	View=cmd /c start excel %p
type/^Microsoft\ Excel
	Open=cmd /c start excel %p
	View=cmd /c start excel %p

# Microsoft PowerPoint Presentation
regex/i/\.(pp[ts]|pptx)$
	Open=cmd /c start powerpnt %p
	View=cmd /c start powerpnt %p

Finally, as start "" filename.ext makes WIN opening the file with the default program based on extension, one can put on top of mc.ext:

Open=cmd /c start "" %p

This will directly open the file with the default program.

@adamyg : I made few web search, but I did not find recipes to open/view files with mcwin32 (but maybe I did not use the correct keywords). It could be helpful to do so and/or change the default mc.ext so that files with current extensions could be directly opend/read with RETURN/ F3 keys ?

atravert avatar Apr 01 '22 20:04 atravert

The diagnostics reported is result of the logic within plugin/doc.sh (below); which is assuming a unix / open-office / abiword environment; shall consider reworking

  wvHtml "${MC_EXT_FILENAME}" --targetdir="$tmp" page.html -1
  elinks "$tmp/page.html"

adamyg avatar Jun 19 '22 07:06 adamyg