This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Regtool can't set default value?

This does it:

regtool add '/root/SystemFileAssociations/text/shell/edit/command'
regtool set '/root/SystemFileAssociations/text/shell/edit/command/' -s "$EDITWITHEMACS"

(If $EDITWITHEMACS is set to a suitable value)

On 9/28/2015 12:54, Brian Inglis wrote:
David Dyer-Bennet <dd-b <at>> writes:

I'm not sure I'm understanding this right.  I'm trying to duplicate a
manual setup that works (for making text files in general have an edit
right-click option that invokes emacsclientw).

In that manual setup, (sorry, using cygwin path notation while referring
to regedit, of course in regedit the path shows in Windows notation)
I've set up /root/txtfile/shell/edit/command with a value named
"(Default)" of type REG_EXPAND_SQ whose data is a (windows-style of
course) path to emacsclientw.exe (plus some switches plus "%1" for the
file name at the end).  That works -- the right-click menu for a file
known to Windows as a txtfile (like foo.txt) has an "edit" entry, which
when clicked invokes emacsclientw.

I'm trying to create this in a script using cygwin regtool.  I can
create a key of /root/txtfile/shell/edit with a value of command having
the right data -- but that of course does not work.  I can create a key
of /root/txtfile/shell/edit/command with *two* values named (Default),
the second of which is my value -- but that also does not work.  (And I
can't delete the first value (Default) even in regedit.)

I clearly don't understand something about the data that Regedit
displays under the name (Default), and how to create, delete, get, and
set value to it.

How do I create this simple scenario using regtool?  (It's not actually
emacs-specific, if you look at the default Windows registry for
/root/txtfile/shell/open/command you'll find a value named "(Default)"
of type REG_EXPAND_SZ giving a path to notepad.exe.  If I wanted to
produce that using regtool, how would I do that?)

(If there's no way to do it with regtool, that's weird, and in
particular a huge deficit in regtool since configuring preferred
handling of various file-types seems like one of the things you'd really
want to be able to do.

(It *ought* to be possible for my script to write a .reg file that it
then feeds to regedit as an alternative way to do it, and if I can't
make regtool work I'll try that, but I don't need suggestions about
that, at least not yet -- I know how to do that, but am currently trying
to understand regtool, and will only give up if we determine fairly
authoritatively that regtool can't do what I need.)

Use regedit export and import and Cygwin ls /proc/registry as well as
regtool list on your entries to compare what works and what doesn't.
You will probably find that in your script you need to quote quotes (") and
backslashes (\), possibly multiple times, to get the path strings set
properly - exported .reg files contain backslashed quotes, so getting that
working in a script requires extra backslashes and/or quotes.
Testing scripts by running via bash -vx script can show useful info like
substitution results.
Somewhere I can't find just now documents that some tool(s) use "@" to name
(Default) - it is not actually named "(Default)".

Problem reports:
Unsubscribe info:

David Dyer-Bennet,;
Dragaera: Nikon DSLR photo list:

Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]