Commit Graph

542 Commits

Author SHA1 Message Date
Julien Danjou 59ef5a0572 token: remove useless tokens
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-21 16:23:22 +02:00
Julien Danjou d261f9a3cc widgets: generic set/get for list
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-19 19:13:46 +02:00
Julien Danjou 8d7f69cf49 util: remove useless position Auto
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-19 17:34:44 +02:00
Julien Danjou a56997aefb draw: support for top margin
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-19 11:38:57 +02:00
Julien Danjou d96bcdc2a4 xutil: remove useless XUTIL_ANY_KEY define
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-19 11:00:28 +02:00
Julien Danjou da9f6bbceb xutil: remove XUTIL_ANY_MODIFIER
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-19 10:59:40 +02:00
Julien Danjou 65f5f964ef draw: better GError handling
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-18 14:32:05 +02:00
Julien Danjou 8173bd6ea9 draw: stop parsing Pango markup twice, store AttrList
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-18 14:29:50 +02:00
Julien Danjou 277aec7fcf refcount: unrefing does not invalid object
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-17 11:57:54 +02:00
Julien Danjou 4ea0f659e2 draw: do not delete image on text rendering
This is not our job.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-14 07:36:34 +02:00
Arnaud Fontaine 5c9cc7857d xutil: make xutil_lock_mask_get() asynchronous 2008-08-13 12:29:43 +02:00
Arnaud Fontaine 687dcf1d98 xembed: make xembed_info_get() asynchronous 2008-08-12 15:35:24 +02:00
Arnaud Fontaine 193a73c5d9 draw: make xcolor_init() asynchronous. 2008-08-12 14:53:57 +02:00
Arnaud Fontaine b655f6348c xutil: rename xutil functions according to the rest of code. 2008-08-11 18:05:35 +02:00
Julien Danjou be2bfdcfc5 screen: introduce screen objects
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-11 17:14:02 +02:00
Julien Danjou 33c0d77193 xutil: allow gettextprop() to be called without text
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-11 15:10:24 +02:00
Julien Danjou 53d60670a8 version: spell D-Bus correctly
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-11 12:08:16 +02:00
Julien Danjou fb093696bb clients: add icon_name support
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-11 11:41:42 +02:00
Julien Danjou 32167500c6 client: add support for WM_CLIENT_MACHINE
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-11 11:09:44 +02:00
Michael Gehring a921f60510 version: fix #include order
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-10 16:31:12 +02:00
Julien Danjou 874e62d849 titlebar: replace client_get() by client attribute
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-08 16:04:18 +02:00
Julien Danjou e5d828b369 statusbar: widgets is now an array
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-08 15:47:09 +02:00
Julien Danjou 9cb22b96eb lua: exports client.tags and tags.clients
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-07 16:39:45 +02:00
Julien Danjou 06fac9a151 lua: stop using version_string()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-31 17:48:27 +02:00
Julien Danjou 1cc071e24f client: add refcount for clients
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-31 17:29:45 +02:00
Julien Danjou c13cffe1eb draw: set_markup wants NONULL arg
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-30 10:35:37 +02:00
Kanru Chen f36acc7384 client: expose .urgent
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-29 16:02:36 +02:00
Julien Danjou 2555a72e63 xutil: use xcb_get_wm_transient_for instead of xutil fct
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-28 17:54:33 +02:00
Julien Danjou 3c32297e07 event: handle iconify request
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-28 17:13:30 +02:00
Julien Danjou 09fd61fdfa tasklist: use label to determine which objects are drawn
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-28 15:57:17 +02:00
Julien Danjou e3ed35e853 array: remove spurious semi colon
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-28 15:57:00 +02:00
Jay Bromley 982a8e4c52 client: return instance and class (FS#236)
The problem seems to be that while a function can return multiple
values, an index cannot.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-26 08:45:35 +02:00
Konstantin 7ec624cc14 util: fix freebsd support
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-25 19:55:19 +02:00
Julien Danjou f5f0663bf1 fix ARRAY_TYPE decl
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-24 16:25:11 +02:00
Julien Danjou 5876b3cc70 remove spurious semi colon
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-24 16:22:41 +02:00
Kanru Chen 700ace5197 length of static string s should be sizeof(s)-1
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-22 10:30:53 +02:00
Julien Danjou 88e69ba44f draw: export draw_text_markup_expand() and check for data before wipe
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-10 17:09:57 +02:00
Julien Danjou 5fc500a861 draw: draw_text takes len as arg
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-10 15:35:19 +02:00
Julien Danjou 36fd44d1a0 draw: add char len as arg of xcolor_init()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-10 15:30:16 +02:00
Julien Danjou 0e06789714 socket: stop strlen() twice
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-10 15:15:16 +02:00
Julien Danjou dbaa343c97 xutil: use sizeof() instead of strlen
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-10 15:12:32 +02:00
Julien Danjou 750040be68 draw: text extents now gets len as arg
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-10 15:06:09 +02:00
Julien Danjou 50ff37a17e draw: remove useless draw_circle
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-10 11:02:11 +02:00
Kanru Chen f22acbf45e draw: fix shadow stroke
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-09 15:23:47 +02:00
Julien Danjou 3f46ec2152 tasklist: use a callback for label
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-09 12:12:52 +02:00
Julien Danjou 0d761a1a8e token: remove useless tokens
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-09 11:41:44 +02:00
Julien Danjou e3bbf3f15d draw: bug fix on bg parsing
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-09 10:38:39 +02:00
Julien Danjou ddae6f76b2 draw: add support for border around text
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-09 10:25:29 +02:00
Julien Danjou 9c495c0dee draw: use only one iconv for all
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-09 08:48:51 +02:00
Julien Danjou 1009d6a992 client: add support for pid
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-08 18:34:32 +02:00
Julien Danjou fb13bff697 config: use XDG for loading config
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-08 14:07:56 +02:00
Julien Danjou 903e694611 util: add a_strsplit()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-08 14:07:34 +02:00
Julien Danjou 3de2bf3918 dbus: add client support
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-08 10:54:57 +02:00
Julien Danjou 63b0457fc4 version: enhance printing
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-02 18:41:08 +02:00
marco candrian 2b767c2352 widgets: use vector_t for the color-gradients course.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-02 13:59:30 +02:00
Pierre Habouzit 46ea7c45aa Get rid of the color name, and generate a #RGBA value on the fly if needed.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-02 11:09:10 +02:00
Pierre Habouzit 924078c898 Streamline xcolor_t.
Do not have a ->name char * field, but a char[32] instead.  This isn't a
big problem, the longest color in /etc/X11/rgb.txt is 23 chars long, and
if it becomes a problem one day, one could just strip the name and
generate an hexadecimal representation on the fly instead. But allocating
the name is asking for a lot of trouble.

Since we do not allocate anything anymore, just don't allocate anything
anymore at all, it avoids the mess of xcolor_copy/_wipe and fixes a lot of
sleeping bugs (p_dup were used e.g., which is wrong).

Pass xcolor_t *, xcolor_t becomes too big to be passed by value. Add
consts at some places.

xcolor_new allocates nothing, hence is renamed xcolor_init, has xcolor_t
as a first argument (OO-style, this is self), and doesn't touch the
structure at all if it returns false, which allow us to skip a lot of
intermediates values.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-02 10:36:46 +02:00
Julien Danjou 52ba1392c6 client: merge titlebar_{set,get} into index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 22:19:23 +02:00
Julien Danjou 8646d06fab client: merge coords function into index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 22:08:27 +02:00
Julien Danjou e4db1a3b86 client: merge class hints into index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 21:56:53 +02:00
Julien Danjou fc38d32052 client: merge floating placement into index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 21:46:43 +02:00
Julien Danjou 014214794a client: merge screen_{set,get} into index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 21:39:52 +02:00
Julien Danjou 2b1101daee client: merge honorsizehints into index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 19:59:36 +02:00
Julien Danjou d7c70c57b5 client: merge floating_{set,get} into index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 19:55:18 +02:00
Julien Danjou 495fd3d8e7 client: merge opacity into index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 19:52:25 +02:00
Julien Danjou 7e95166629 client: merge icon path into index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 19:49:14 +02:00
Julien Danjou 86df357a2b client: merge hide into index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 19:43:23 +02:00
Julien Danjou 3750b08248 statusbar: merge position_{set,get} into index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 17:00:31 +02:00
Julien Danjou 49f823dcb6 statusbar: merge colors_set() into index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 16:50:03 +02:00
Julien Danjou a816ce0440 util: position_tostr() return const
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 16:33:24 +02:00
Julien Danjou 48111308a0 draw: add draw_align_tostr()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 16:29:50 +02:00
Julien Danjou b72d5c7951 widget: visible is now part of index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 15:20:42 +02:00
Julien Danjou 4ddf692ee4 tag: layout use index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 15:06:20 +02:00
Julien Danjou 4e2e8a3653 draw: len is mandatory
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 15:05:00 +02:00
Julien Danjou 9b74cdbc0a draw: iso2utf now gets len as arg
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 14:44:19 +02:00
Julien Danjou 282dc95042 tag: use index for name
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 14:31:47 +02:00
Julien Danjou e012a4ba49 tag: use index for ncol
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 14:23:06 +02:00
Julien Danjou d328904d30 tag: use index for nmaster
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 14:17:07 +02:00
Julien Danjou ef7379c983 tag: remove mwfact_{get,set}, use {new,}index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 13:59:40 +02:00
Julien Danjou f750124d5c tag: add {new,}index, use it for selected
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 11:38:40 +02:00
Julien Danjou fc000acc8e xembed: remove useless comments
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-30 20:15:46 +02:00
Julien Danjou db49685413 atoms: autogenerate atom list
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-30 20:05:53 +02:00
Julien Danjou b584b19104 atoms: add all used atoms
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-30 18:55:14 +02:00
Julien Danjou 5daa38ac2d atom: new atom infra
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-30 18:25:01 +02:00
Julien Danjou 15111d8584 progressbar: use newindex API
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-30 17:42:36 +02:00
Julien Danjou 3ebca2181c draw: really copy colors
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-29 12:14:09 +02:00
Julien Danjou 35e948f53b draw: xcolor_t store color name
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-28 13:30:17 +02:00
Julien Danjou 823ed27b82 graph: use newindex API
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-28 13:02:42 +02:00
Pierre Habouzit 1b6543025c Don't be silly and use our metatable rather than duplicating the effort.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-28 07:56:35 +02:00
Julien Danjou 09647eef9b taglist: use newindex API
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-27 22:25:31 +02:00
Julien Danjou c4cc8da645 tasklist: use newindex API
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-27 22:15:54 +02:00
Julien Danjou c007cacd09 xutil: make atoms cache an array
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-27 12:08:19 +02:00
Julien Danjou ba13fba67c xutil: stop leaking atom when called with no cache
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-27 11:13:33 +02:00
Julien Danjou 0fddca87c3 draw: stop leaking image on double parsing
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-27 10:08:22 +02:00
Julien Danjou b63e10b7e8 xutil: stop leaking atom name, and don't dup on cache hit
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-27 10:06:31 +02:00
Pierre Habouzit cde80ab49a Move CLEANMASK to xutil.h, remove useless #Includes
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-26 22:47:56 +02:00
Lucas de Vries b1c48b6834 [statusbar] add colors_set 2008-06-26 17:12:41 +02:00
Julien Danjou 0012b8dfc0 draw: honor bg_resize
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-26 16:49:16 +02:00
Julien Danjou 7dbd06c8ca draw: markup bg image do not change the size
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-26 16:49:05 +02:00
Julien Danjou 094d0ebc50 widget: new widget index method
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-26 16:35:07 +02:00
Julien Danjou d5ed48ffdd widget: use __index to get method
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-25 16:37:51 +02:00
Julien Danjou 68f0eda193 iconbox: remove
This can be replaced by textbox.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-25 16:37:16 +02:00
Pierre Habouzit 4d7a7694ae Calling destructor on splice is wrong, take doesn't want it e.g.
Also fix one assert.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-25 11:04:56 +02:00
Pierre Habouzit b19aace542 Fix draw_align_fromstr calls.
Note that it's undefined to have side effects on an argument and pass this
argument again to another function.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-24 22:40:34 +02:00
Julien Danjou 0aff415f37 version: add GdkPixBuf version
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 21:01:24 +02:00
Julien Danjou a055634d4e draw: use len param in draw_align_fromstr()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 20:34:02 +02:00
Julien Danjou eb13ebcbf7 version: print compilation options
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 20:25:42 +02:00
Pierre Habouzit 17744fc81d Be more on the safe side.
it's useless to escape anything if text_len is 0, also some clients seem
to have a NULL name, so use NONULL(p->priv).

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 18:55:29 +02:00
Julien Danjou fdcc507329 draw: add resize for bg
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 18:07:47 +02:00
Julien Danjou 425c8ea635 util: tokenize a_strtobool() 2008-06-23 18:06:00 +02:00
Julien Danjou 9caa9fc96f draw: add background alignment
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 18:01:15 +02:00
Julien Danjou 236ccc165c placement: fix smart
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 17:30:35 +02:00
Pierre Habouzit 3513e43f0f fix stupid array bug: missing sizeof()
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 17:26:35 +02:00
Pierre Habouzit df89ea2887 Add type and memset safe alloca wrapper. 2008-06-23 16:40:43 +02:00
Pierre Habouzit ef4eae17c4 Split DO_ARRAY in two parts. 2008-06-23 16:40:43 +02:00
Julien Danjou fa2648bf15 Revert "Use gcc to find places needing a a_tokenize call."
Not needed anymore.

This reverts commit 7b7af60dcd.
2008-06-23 15:46:26 +02:00
Pierre Habouzit 3116c0d381 Add draw_parser_data_{init,wipe}.
Use it everywhere needed instead of wrong p_clear's, this fixes memory
leaks.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 15:23:49 +02:00
Julien Danjou cd21e6665b tasklist: tokenize
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 14:12:01 +02:00
Julien Danjou e880f7c11b taglist: use tokenize
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 14:09:00 +02:00
Julien Danjou 4c133bc646 iconbox: use tokenize
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 14:06:37 +02:00
Julien Danjou ab5119732d use more tokenizer, with len
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 14:01:33 +02:00
Julien Danjou f0a01c6131 util: remove useless fuzzy
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 13:41:26 +02:00
Julien Danjou 7803225553 draw: use tokenize() in markup parsing
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 13:39:47 +02:00
Julien Danjou 7dd1fa0e0b draw: rename on_event() to on_element()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 13:32:22 +02:00
Julien Danjou 28830c0dc9 textbox: use tokenize
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 13:24:03 +02:00
Julien Danjou 7aab504350 draw: store parser_data made by extents call
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 13:09:42 +02:00
Julien Danjou 00b119c1ac draw: remove draw_get_image_size()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 12:44:01 +02:00
Pierre Habouzit 7b7af60dcd Use gcc to find places needing a a_tokenize call.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 07:41:22 +02:00
Pierre Habouzit 8d7f45d76a And more gperf.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 07:41:22 +02:00
Pierre Habouzit 4d21d0fd98 Use more gperf stuff.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 07:41:22 +02:00
Pierre Habouzit f423719bd6 use gperf
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 07:41:22 +02:00
Pierre Habouzit c2df807ede Use gperf to tokenize some strings.
This makes the code way more readable, and also avoids a lot of strcmps.

Use it for draw_align_get_from_str as a proof of concept.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 07:41:22 +02:00
Michael Gehring 9206a60e88 cmake: consolidate version strings 2008-06-22 22:13:06 +02:00
Julien Danjou 46f03fd6a6 area_t: make it smaller, use arrays instead of lists.
Make area_t smaller so that it fits in an uint64_t using 4 {u,}int16_t's
for it. Note that xcb uses the very same structure, so we aren't loosing
any information while remaining very small.

This is better to use arrays in term of:
* memory access when iterating over area_t's;
* allocation because area_t's have no *next/*prev members anymore, which
  makes it a tiny structure (8 octets);
* allocation because we allocate area_t's by vector of'em rather than one
  by one.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 22:09:48 +02:00
Pierre Habouzit dc6373488f wipe elements overwritten by a splice
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 22:09:19 +02:00
Pierre Habouzit 3862a626c2 fix typo
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 18:58:52 +02:00
Julien Danjou 901d8db5b6 buffer: add various code documentation
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-22 18:43:04 +02:00
Pierre Habouzit b4b381e947 Finish markup parsing rewrite to avoid mallocs.
For that matter, use elements as a filter for elements we care about, and
let the hook implement whatever it needs without duplicating everything.

The resulting algorithm is still O(n²) where n is the number of filtered
elements (3 at most right now), which isn't bad if we don't need to get
too many elements, but at least it's not quadratic in the number of
attributes anymore.

Speedup improvements could be done using gperf btw.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 17:45:45 +02:00
Pierre Habouzit 37d69b8dcc markup substitutions enhancements.
Do not preemptively allocate a g_markup_escape_text for substitutions,
just remember what we want to substitute markup with, and substitute it in
the final buffer efficiently.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 16:58:56 +02:00
Pierre Habouzit 943e2035fa Rework the markup_parser_* allocation API.
We have a stack, don't be ashamed to use it.

Instead of:

    foo_t *foo;

    foo = foo_new();
    /* work with foo */
    foo_delete(&foo);

It's way better to:

    foo_t foo;

    foo_init(&foo);
    /* work with &foo */
    foo_wipe(&foo);

Remember: more mallocs == more fragmentation.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 16:17:12 +02:00
Pierre Habouzit c3e01fdd43 Add buffer_add_xmlescaped, and malloc--
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 16:02:13 +02:00
Pierre Habouzit 0ad600ef0a And use a buffer in the drawing stuff.
So that we don't stupidly call even more strlen's.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 15:27:06 +02:00
Pierre Habouzit 3fb0b5127e Remove lots and lots of useless mallocs.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 15:20:55 +02:00
Pierre Habouzit 5c601dfd19 Use extensible buffers in markup parsing.
This should avoid quite a few malloc calls.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 15:12:42 +02:00
Pierre Habouzit e25a50774b Add extensible buffers to awesome.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 15:04:09 +02:00
Pierre Habouzit 848a0b1987 add {un,}likely macros
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 14:58:37 +02:00
Pierre Habouzit ea646e7077 Make refcounting safer.
put *item to NULL on unref, as we cannot know if the pointer is valid
after an unref, so just segfault rather than hide a problem.

Also return *item on ref() it allow short versions like:
  foo_list_push(&list, foo_ref(&elem));
which is kind of readable _and_ handy.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 14:22:44 +02:00
Pierre Habouzit 2a5014383d No need to copy the parser each time it's allocated.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 14:22:44 +02:00
Pierre Habouzit f2fd90655e Add a simple array generic type.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 13:52:26 +02:00
Pierre Habouzit f055e4a13b Add p_grow.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 13:30:39 +02:00