about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--dwm.h26
1 files changed, 13 insertions, 13 deletions
diff --git a/dwm.h b/dwm.h
index 9b497c9..b31a91d 100644
--- a/dwm.h
+++ b/dwm.h
@@ -4,32 +4,32 @@
  *
  * dynamic window manager is designed like any other X client as well. It is
  * driven through handling X events. In contrast to other X clients, a window
- * manager like dwm selects for SubstructureRedirectMask on the root window, to
- * receive events about window appearance and disappearance.  Only one X
- * connection at a time is allowed to select for this event mask.
+ * manager selects for SubstructureRedirectMask on the root window, to receive
+ * events about window (dis-)appearance.  Only one X connection at a time is
+ * allowed to select for this event mask.
  *
- * Calls to fetch an X event from the X event queue connection are blocking.
- * Due reading status text from standard input, a select-driven main loop has
- * been implemented which selects for reads on the X connection and
- * STDIN_FILENO to handle all data smoothly and without busy-loop quirks. The
- * event handlers of dwm are organized in an array which is accessed whenever a
- * new event has been fetched. This allows event dispatching in O(1) time.
+ * Calls to fetch an X event from the event queue are blocking.  Due reading
+ * status text from standard input, a select-driven main loop has been
+ * implemented which selects for reads on the X connection and STDIN_FILENO to
+ * handle all data smoothly. The event handlers of dwm are organized in an
+ * array which is accessed whenever a new event has been fetched. This allows
+ * event dispatching in O(1) time.
  *
  * Each child of the root window is called a client, except windows which have
  * set the override_redirect flag.  Clients are organized in a global
  * doubly-linked client list, the focus history is remembered through a global
  * stack list. Each client contains an array of Bools of the same size as the
  * global tags array to indicate the tags of a client.  For each client dwm
- * creates a small title window which is resized whenever the WM_NAME or
- * _NET_WM_NAME properties are updated or the client is resized.
+ * creates a small title window, which is resized whenever the (_NET_)WM_NAME
+ * properties are updated or the client is moved/resized.
  *
  * Keys and tagging rules are organized as arrays and defined in the config.h
  * file. These arrays are kept static in event.o and tag.o respectively,
  * because no other part of dwm needs access to them.  The current mode is
- * represented by the arrange function pointer which wether points to dofloat
+ * represented by the arrange function pointer, which wether points to dofloat
  * or dotile. 
  *
- * To understand everything else, start with reading main.c:main().
+ * To understand everything else, start reading main.c:main().
  */
 
 #include "config.h"
' href='#n67'>67
68
69




















                                                
                               



                              
                                                                 






































                                                                
                                                             

                                  
package commands

import (
	"errors"
	"strings"

	"git.sr.ht/~sircmpwn/aerc/widgets"

	"github.com/go-ini/ini"
)

type Set struct{}

func setUsage() string {
	return "set <category>.<option> <value>"
}

func init() {
	register(Set{})
}

func (Set) Aliases() []string {
	return []string{"set"}

}

func (Set) Complete(aerc *widgets.Aerc, args []string) []string {
	return nil
}

func SetCore(aerc *widgets.Aerc, args []string) error {
	if len(args) != 3 {
		return errors.New("Usage: " + setUsage())
	}

	config := aerc.Config()

	parameters := strings.Split(args[1], ".")

	if len(parameters) != 2 {
		return errors.New("Usage: " + setUsage())
	}

	category := parameters[0]
	option := parameters[1]
	value := args[2]

	new_file := ini.Empty()

	section, err := new_file.NewSection(category)

	if err != nil {
		return nil
	}

	if _, err := section.NewKey(option, value); err != nil {
		return err
	}

	if err := config.LoadConfig(new_file); err != nil {
		return err
	}

	return nil
}

func (Set) Execute(aerc *widgets.Aerc, args []string) error {
	return SetCore(aerc, args)
}