Ignore my earlier suggestion.
> (if (eq system-type 'cygwin)
> (add-hook 'org-mode-hook
> '(lambda ()
> (delete '("\\.x?html?\\'" . default) org-file-apps)
> (add-to-list 'org-file-apps '("\\.x?html?\\'" . "cygstart %s"))
> (delete '("\\.pdf\\'" . default) org-file-apps)
> (add-to-list 'org-file-apps '("\\.pdf\\'" . "cygstart %s"))
> (delete '("\\.odt\\'" . default) org-file-apps)
> (add-to-list 'org-file-apps '("\\.odt\\'" . "cygstart %s")))))
You can also remove the above settings.
----------------------------------------------------------------
Use the following setting instead.
`org-default-apps' uses the value of `org-file-apps-defaults-gnu' for
cygwin as well. You just need to remove the mailcap entry in that
variable and replace it with "cygstart" as below.
(eval-after-load 'org
'(when (eq system-type 'gnu/linux)
(setcdr (assq 'system org-file-apps-defaults-gnu ) "cygstart %s")
(setcdr (assq t org-file-apps-defaults-gnu ) "cygstart %s")))
----------------------------------------------------------------
As you rightly suggest, `org-default-apps' doesn't handle `system-type'
value of 'cygwin.