about summary refs log tree commit diff stats
Commit message (Expand)AuthorAgeFilesLines
...
* small changes to dwm.1, rearranged order within main event loopAnselm R.Garbe2006-08-213-11/+13
* applied Sanders patchAnselm R.Garbe2006-08-181-6/+2
* made a new client position strategy similiar to that one proposed by Sander, ...Anselm R.Garbe2006-08-181-7/+7
* fixed a bug reported by sanderAnselm R.Garbe2006-08-171-1/+1
* applied the shorter xprop commandAnselm R.Garbe2006-08-171-1/+1
* centering apps only if transient_for is not(!) setAnselm R.Garbe2006-08-171-9/+1
* fixed issue Sander reportedAnselm R.Garbe2006-08-171-4/+3
* corrected order of cleanup code Anselm R.Garbe2006-08-161-1/+1
* condition was insufficientAnselm R.Garbe2006-08-161-2/+2
* fixed issue reported by sanderAnselm R.Garbe2006-08-162-3/+6
* added general centralization rule for new clients (works around various borke...Anselm R.Garbe2006-08-162-2/+14
* removed leading ;Anselm R.Garbe2006-08-161-1/+1
* added sample command to config.default.h to highlight how to query class:inst...Anselm R.Garbe2006-08-161-0/+2
* applied another config.mk patch made by sanderAnselm R.Garbe2006-08-161-1/+1
* we close stdin as wellAnselm R.Garbe2006-08-161-3/+4
* simplified sort | uniq into sort -u (on my boxes all sort support -u)Anselm R.Garbe2006-08-161-1/+1
* fixing small bug in config.mkAnselm R.Garbe2006-08-151-2/+2
* adding forgetten whitespaceAnselm R.Garbe2006-08-151-1/+1
* added gmane archive to dwm.htmlAnselm R.Garbe2006-08-151-1/+1
* Added tag 0.9 for changeset fae61afa861755636c4a1070694209ace8efbb6cAnselm R.Garbe2006-08-151-0/+1
* prepared dwm-0.9 0.9Anselm R.Garbe2006-08-151-2/+2
* extended cleanupAnselm R.Garbe2006-08-152-2/+12
* applied Sanders changes to config.arg.hAnselm R.Garbe2006-08-151-18/+14
* applied jk_to_tab patchAnselm R.Garbe2006-08-153-53/+60
* changed main event loopAnselm R.Garbe2006-08-153-10/+21
* removed NUMLOCKMASK, added dynamically calculated numlockmask insteadAnselm R.Garbe2006-08-146-19/+29
* added Sander to LICENSE (since he has contributed/revised big portions)Anselm R.Garbe2006-08-141-0/+1
* applied viewsel.patchAnselm R.Garbe2006-08-141-2/+6
* applied sanders man page patch, removed button2 from bar clickAnselm R.Garbe2006-08-142-22/+24
* applied sanders tag()/toggletag() fixesAnselm R.Garbe2006-08-141-1/+4
* fixedAnselm R.Garbe2006-08-142-9/+5
* added missing arrangeAnselm R.Garbe2006-08-141-0/+1
* changed replacetag into toggletagAnselm R.Garbe2006-08-144-48/+55
* added some flicker preventionAnselm R.Garbe2006-08-141-1/+3
* remove unnecessary XSyncAnselm R.Garbe2006-08-141-1/+0
* changed order of selecting input at root windowAnselm R.Garbe2006-08-141-4/+4
* removed finished messageAnselm R.Garbe2006-08-141-1/+0
* added mappingnotify event for kb refreshesAnselm R.Garbe2006-08-141-0/+12
* removed unneecessary crapAnselm R.Garbe2006-08-142-7/+1
* applied the saner patch (removed the pathetic one)Anselm R.Garbe2006-08-141-7/+3
* pplied Sanders appendtag patchAnselm R.Garbe2006-08-142-2/+12
* some other small fixesAnselm R.Garbe2006-08-142-10/+12
* removed ungrabkeys again (because of sander's mail)Anselm R.Garbe2006-08-143-18/+0
* fixed string cuttingAnselm R.Garbe2006-08-141-6/+6
* fixed a core dumpAnselm R.Garbe2006-08-142-3/+4
* implemented ungrabkeys() which is called in cleanup()Anselm R.Garbe2006-08-143-0/+18
* implemented restack behavior (floats are on top in tiled mode)Anselm R.Garbe2006-08-146-34/+81
* fixed string cutting in draw.cAnselm R.Garbe2006-08-141-2/+10
* applied Sanders LD and resize patchesAnselm R.Garbe2006-08-143-4/+9
* removed viewnext/viewprevAnselm R.Garbe2006-08-146-65/+9
c.EmphStrong */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* 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 */
# example program: communicating between routines using channels

recipe producer [
  # produce numbers 1 to 5 on a channel
  default-space:address:array:location <- new location:type, 30:literal
  chan:address:channel <- next-ingredient
  # n = 0
  n:number <- copy 0:literal
  {
    done?:boolean <- lesser-than n:number, 5:literal
    break-unless done?:boolean
    # other threads might get between these prints
    $print [produce: ], n:number, [ 
]
    chan:address:channel <- write chan:address:channel, n:number
    n:number <- add n:number, 1:literal
    loop
  }
]

recipe consumer [
  # consume and print integers from a channel
  default-space:address:array:location <- new location:type, 30:literal
  chan:address:channel <- next-ingredient
  {
    # read an integer from the channel
    n:number, chan:address:channel <- read chan:address:channel
    # other threads might get between these prints
    $print [consume: ], n:number, [ 
]
    loop
  }
]

recipe main [
  default-space:address:array:location <- new location:type, 30:literal
  chan:address:channel <- new-channel 3:literal
  # create two background 'routines' that communicate by a channel
  routine1:number <- start-running producer:recipe, chan:address:channel
  routine2:number <- start-running consumer:recipe, chan:address:channel
  wait-for-routine routine1:number
  wait-for-routine routine2:number
]