about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorarg@10ksloc.org <unknown>2006-07-21 10:18:12 +0200
committerarg@10ksloc.org <unknown>2006-07-21 10:18:12 +0200
commit67b3083dfd574cf2ecba1620361108b0adeda5dc (patch)
treefa5a6b09a42d4cf0b6e55e55991d75e70fc20758
parent0c7bcc24cbd0d721a4e7d152c05886ac30cc4af3 (diff)
downloaddwm-67b3083dfd574cf2ecba1620361108b0adeda5dc.tar.gz
s/0.5/0.6/ - my steps are wider than the reality
-rw-r--r--config.mk2
-rw-r--r--dwm.12
2 files changed, 2 insertions, 2 deletions
diff --git a/config.mk b/config.mk
index 1534466..605f462 100644
--- a/config.mk
+++ b/config.mk
@@ -7,7 +7,7 @@ MANPREFIX = ${PREFIX}/share/man
 X11INC = /usr/X11R6/include
 X11LIB = /usr/X11R6/lib
 
-VERSION = 0.6
+VERSION = 0.5
 
 # includes and libs
 LIBS = -L${PREFIX}/lib -L/usr/lib -lc -L${X11LIB} -lX11
diff --git a/dwm.1 b/dwm.1
index e300923..a023d4a 100644
--- a/dwm.1
+++ b/dwm.1
@@ -1,4 +1,4 @@
-.TH DWM 1 dwm-0.6
+.TH DWM 1 dwm-0.5
 .SH NAME
 dwm \- dynamic window manager
 .SH SYNOPSIS
Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
# Wrappers around interaction primitives that take a potentially fake object
# and are thus easier to test.

exclusive-container event [
  text:character
  keycode:number  # keys on keyboard without a unicode representation
  touch:touch-event  # mouse, track ball, etc.
  resize:resize-event
  # update the assume-console handler if you add more variants
]

container touch-event [
  type:number
  row:number
  column:number
]

container resize-event [
  width:number
  height:number
]

container console [
  index:number
  data:address:array:event
]

recipe new-fake-console [
  local-scope
  result:address:console <- new console:type
  buf:address:address:array:character <- get-address *result, data:offset
  *buf <- next-ingredient
  idx:address:number <- get-address *result, index:offset
  *idx <- copy 0
  reply result
]

recipe read-event [
  local-scope
  x:address:console <- next-ingredient
  {
    break-unless x
    idx:address:number <- get-address *x, index:offset
    buf:address:array:event <- get *x, data:offset
    {
      max:number <- length *buf
      done?:boolean <- greater-or-equal *idx, max
      break-unless done?
      dummy:address:event <- new event:type
      reply *dummy, x/same-as-ingredient:0, 1/found, 1/quit
    }
    result:event <- index *buf, *idx
    *idx <- add *idx, 1
    reply result, x/same-as-ingredient:0, 1/found, 0/quit
  }
  switch  # real event source is infrequent; avoid polling it too much
  result:event, found?:boolean <- check-for-interaction
  reply result, x/same-as-ingredient:0, found?, 0/quit
]

# variant of read-event for just keyboard events. Discards everything that
# isn't unicode, so no arrow keys, page-up/page-down, etc. But you still get
# newlines, tabs, ctrl-d..
recipe read-key [
  local-scope
  console:address <- next-ingredient
  x:event, console, found?:boolean, quit?:boolean <- read-event console
  reply-if quit?, 0, console/same-as-ingredient:0, found?, quit?
  reply-unless found?, 0, console/same-as-ingredient:0, found?, quit?
  c:address:character <- maybe-convert x, text:variant
  reply-unless c, 0, console/same-as-ingredient:0, 0/found, 0/quit
  reply *c, console/same-as-ingredient:0, 1/found, 0/quit
]

recipe send-keys-to-channel [
  local-scope
  console:address <- next-ingredient
  chan:address:channel <- next-ingredient
  screen:address <- next-ingredient
  {
    c:character, console, found?:boolean, quit?:boolean <- read-key console
    loop-unless found?
    break-if quit?
    assert c, [invalid event, expected text]
    screen <- print-character screen, c
    chan <- write chan, c
    loop
  }
  reply console/same-as-ingredient:0, chan/same-as-ingredient:1, screen/same-as-ingredient:2
]

recipe wait-for-event [
  local-scope
  console:address <- next-ingredient
  {
    _, console, found?:boolean <- read-event console
    loop-unless found?
  }
  reply console/same-as-ingredient:0
]

# use this helper to skip rendering if there's lots of other events queued up
recipe has-more-events? [
  local-scope
  console:address <- next-ingredient
  {
    break-unless console
    # fake consoles should be plenty fast; never skip
    reply 0/false
  }
  result:boolean <- interactions-left?
  reply result
]