summary refs log tree commit diff stats
path: root/compiler/parampatterns.nim
Commit message (Expand)AuthorAgeFilesLines
* fixes #7524Araq2019-01-141-8/+7
* Allow taking address of skForVar variables (#8632)LemonBoy2018-08-141-1/+1
* guards.nim does compileAndreas Rumpf2018-05-111-26/+27
* refactoring: make FileIndex a distinct type; make line information an uint16;...Andreas Rumpf2018-04-211-1/+2
* make tests green againAndreas Rumpf2018-03-241-3/+8
* fixes the 'var T' checkingAndreas Rumpf2018-03-241-5/+2
* more checking for 'var T' as return type; refs #7373Andreas Rumpf2018-03-241-1/+29
* basic 'lent T' test worksAndreas Rumpf2018-01-211-1/+4
* deprecated unary '<'Andreas Rumpf2017-10-291-3/+3
* support the full range of type modifiers when declaring concept vars and test...Zahary Karadjov2017-03-241-0/+7
* fixes #4608Andreas Rumpf2016-10-181-0/+2
* some progress on #3832Andreas Rumpf2016-02-081-0/+3
* preparations for better handling of 'a[i]' in generics; stmt lists can be lva...Araq2015-09-121-1/+4
* added system.unsafeAddrAraq2015-08-041-9/+11
* fix #2585 properlyAraq2015-04-221-1/+3
* fixes #2585Araq2015-04-221-1/+1
* implemented a[^1] notationAraq2015-03-261-3/+4
* fixes #2346Araq2015-03-161-2/+6
* fixes #1809; implements overloading based on 'var T'Araq2015-03-141-19/+22
* nimsuggest improvementsAraq2015-01-301-1/+1
* Nimrod renamed to NimAraq2014-08-281-1/+1
* implemented builtin noncopying sliceAraq2014-05-021-1/+4
* case consistency improvementsAraq2014-01-111-1/+1
* case consistency: next stepsAraq2013-12-291-4/+4
* case consistency part 4Araq2013-12-271-2/+2
* implemented large parts of the 'not nil' checkingAraq2013-06-091-0/+2
* make some tests greenAraq2013-03-031-4/+7
* constraint now part of the parameter symbol and not of the typeAraq2012-12-051-2/+2
* term rewriting improvementsAraq2012-09-081-3/+56
* activated tests for tr macrosAraq2012-09-061-3/+4
* bugfixes and improvements for term rewriting macrosAraq2012-09-041-1/+1
* term rewriting macros fully implemented; still buggyAraq2012-09-031-0/+205
an class="cm"> * 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 layout is * represented by the lt pointer. * * To understand everything else, start reading main.c:main(). */ #include "config.h" #include <X11/Xlib.h> /* mask shorthands, used in event.c and client.c */ #define BUTTONMASK (ButtonPressMask | ButtonReleaseMask) enum { NetSupported, NetWMName, NetLast }; /* EWMH atoms */ enum { WMProtocols, WMDelete, WMState, WMLast }; /* default atoms */ enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */ enum { ColBorder, ColFG, ColBG, ColLast }; /* color */ typedef struct { int ascent; int descent; int height; XFontSet set; XFontStruct *xfont; } Fnt; typedef struct { int x, y, w, h; unsigned long norm[ColLast]; unsigned long sel[ColLast]; Drawable drawable; Fnt font; GC gc; } DC; /* draw context */ typedef struct Client Client; struct Client { char name[256]; int x, y, w, h; int rx, ry, rw, rh; /* revert geometry */ int basew, baseh, incw, inch, maxw, maxh, minw, minh; int minax, minay, maxax, maxay; long flags; unsigned int border; Bool isbanned, isfixed, ismax, isuntiled; Bool *tags; Client *next; Client *prev; Client *snext; Window win; }; typedef struct { const char *symbol; void (*arrange)(void); } Layout; extern const char *tags[]; /* all tags */ extern char stext[256]; /* status text */ extern int screen, sx, sy, sw, sh; /* screen geometry */ extern int wax, way, wah, waw; /* windowarea geometry */ extern unsigned int bh, blw; /* bar height, bar layout label width */ extern unsigned int ntags, numlockmask; /* number of tags, dynamic lock mask */ extern void (*handler[LASTEvent])(XEvent *); /* event handler */ extern Atom wmatom[WMLast], netatom[NetLast]; extern Bool selscreen, *seltag; /* seltag is array of Bool */ extern Client *clients, *sel, *stack; /* global client list and stack */ extern Cursor cursor[CurLast]; extern DC dc; /* global draw context */ extern Display *dpy; extern Layout *lt; extern Window root, barwin; /* client.c */ extern void attach(Client *c); /* attaches c to global client list */ extern void configure(Client *c); /* send synthetic configure event */ extern void detach(Client *c); /* detaches c from global client list */ extern void focus(Client *c); /* focus c, c may be NULL */ extern void killclient(const char *arg); /* kill c nicely */ extern void manage(Window w, XWindowAttributes *wa); /* manage new client */ extern void resize(Client *c, int x, int y, int w, int h, Bool sizehints); /* resize with given coordinates c*/ extern void toggletiled(const char *arg); /* toggles focused client between tiled/untiled state */ extern void updatesizehints(Client *c); /* update the size hint variables of c */ extern void updatetitle(Client *c); /* update the name of c */ extern void unmanage(Client *c); /* destroy c */ /* draw.c */ extern void drawstatus(void); /* draw the bar */ extern void drawtext(const char *text, unsigned long col[ColLast]); /* draw text */ extern unsigned int textw(const char *text); /* return the width of text in px*/ /* event.c */ extern void grabkeys(void); /* grab all keys defined in config.h */ /* layout.c */ extern void focusclient(const char *arg); /* focuses next(1)/previous(-1) visible client */ extern void incmasterw(const char *arg); /* increments the master width with arg's index value */ extern void incnmaster(const char *arg); /* increments nmaster with arg's index value */ extern void initlayouts(void); /* initialize layout array */ extern Client *nexttiled(Client *c); /* returns tiled successor of c */ extern void restack(void); /* restores z layers of all clients */ extern void setlayout(const char *arg); /* sets layout, -1 toggles */ extern void togglemax(const char *arg); /* toggles maximization of untiled client */ extern void untile(void); /* arranges all windows untiled */ extern void zoom(const char *arg); /* zooms the focused client to master area, arg is ignored */ /* main.c */ extern void quit(const char *arg); /* quit dwm nicely */ extern void sendevent(Window w, Atom a, long value); /* send synthetic event to w */ extern int xerror(Display *dsply, XErrorEvent *ee); /* dwm's X error handler */ /* tag.c */ extern void compileregs(void); /* initialize regexps of rules defined in config.h */ extern Bool isvisible(Client *c); /* returns True if client is visible */ extern void settags(Client *c, Client *trans); /* sets tags of c */ extern void tag(const char *arg); /* tags c with arg's index */ extern void toggletag(const char *arg); /* toggles c tags with arg's index */ extern void toggleview(const char *arg); /* toggles the tag with arg's index (in)visible */ extern void view(const char *arg); /* views the tag with arg's index */ /* util.c */ extern void *emallocz(unsigned int size); /* allocates zero-initialized memory, exits on error */ extern void eprint(const char *errstr, ...); /* prints errstr and exits with 1 */ extern void spawn(const char *arg); /* forks a new subprocess with arg's cmd */