]> git.sur5r.net Git - i3/i3/log
i3/i3
12 years agodebian: add debugging-releas-version.html to docs
Michael Stapelberg [Sun, 12 Feb 2012 11:21:08 +0000 (11:21 +0000)]
debian: add debugging-releas-version.html to docs

12 years agodocs/debugging: cover development version, add debugging-release-version
Michael Stapelberg [Sun, 12 Feb 2012 11:17:03 +0000 (11:17 +0000)]
docs/debugging: cover development version, add debugging-release-version

12 years agoMerge branch 'master' into next
Michael Stapelberg [Sun, 12 Feb 2012 10:21:01 +0000 (10:21 +0000)]
Merge branch 'master' into next

12 years agoMerge branch 'fixes-cfg-wizard'
Michael Stapelberg [Sun, 12 Feb 2012 10:20:56 +0000 (10:20 +0000)]
Merge branch 'fixes-cfg-wizard'

12 years agoFixed a memory leak
beauby [Fri, 10 Feb 2012 00:12:43 +0000 (01:12 +0100)]
Fixed a memory leak

12 years agoBugFix: keep the indentation of config.keycodes
beauby [Fri, 10 Feb 2012 00:11:00 +0000 (01:11 +0100)]
BugFix: keep the indentation of config.keycodes

12 years agoBugfix: insert ending double quote at the right position (Thanks mxf)
Michael Stapelberg [Fri, 10 Feb 2012 19:55:40 +0000 (19:55 +0000)]
Bugfix: insert ending double quote at the right position (Thanks mxf)

12 years agoBugfix: Correctly handle missing ending double quotes (+test) (Thanks mxf)
Michael Stapelberg [Fri, 10 Feb 2012 19:49:38 +0000 (19:49 +0000)]
Bugfix: Correctly handle missing ending double quotes (+test) (Thanks mxf)

12 years agoMerge branch 'master' into next
Michael Stapelberg [Fri, 10 Feb 2012 00:03:18 +0000 (00:03 +0000)]
Merge branch 'master' into next

Conflicts:
i3-config-wizard/main.c

12 years agoMerge branch 'fix-freebsd-getline'
Michael Stapelberg [Fri, 10 Feb 2012 00:02:20 +0000 (00:02 +0000)]
Merge branch 'fix-freebsd-getline'

12 years agoFixed the fgetln workaround
beauby [Thu, 9 Feb 2012 23:21:26 +0000 (00:21 +0100)]
Fixed the fgetln workaround

12 years agoBugfix: Properly handle workspace names with double quotes (+test) (Thanks kvapen)
Michael Stapelberg [Mon, 30 Jan 2012 16:55:06 +0000 (16:55 +0000)]
Bugfix: Properly handle workspace names with double quotes (+test) (Thanks kvapen)

12 years agoMerge branch 'master' into next
Michael Stapelberg [Tue, 7 Feb 2012 22:42:58 +0000 (17:42 -0500)]
Merge branch 'master' into next

12 years agoMerge branch 'fix-split'
Michael Stapelberg [Tue, 7 Feb 2012 22:42:41 +0000 (17:42 -0500)]
Merge branch 'fix-split'

12 years agoBugfix: Properly split when the current container is alone within a stacked/tabbed...
Michael Stapelberg [Mon, 30 Jan 2012 16:13:44 +0000 (16:13 +0000)]
Bugfix: Properly split when the current container is alone within a stacked/tabbed con (+test) (Thanks aksr)

Fixes: #630
12 years agoMerge branch 'master' into next
Michael Stapelberg [Tue, 7 Feb 2012 22:41:36 +0000 (17:41 -0500)]
Merge branch 'master' into next

12 years agoMerge branch 'fix-workspace_layout'
Michael Stapelberg [Tue, 7 Feb 2012 22:41:15 +0000 (17:41 -0500)]
Merge branch 'fix-workspace_layout'

12 years agoBugfix: Obey workspace_layout when re-inserting floating containers (+test) (Thanks...
Michael Stapelberg [Mon, 30 Jan 2012 16:03:51 +0000 (16:03 +0000)]
Bugfix: Obey workspace_layout when re-inserting floating containers (+test) (Thanks aksr)

The code wasn’t using con_attach and therefore didn’t obey workspace_layout.

Fixes: #631
12 years agoError message was missing a slash
Michael Stapelberg [Mon, 30 Jan 2012 15:53:46 +0000 (15:53 +0000)]
Error message was missing a slash

12 years agotests: Make i3 create its temporary files in /tmp/i3-testsuite
Michael Stapelberg [Mon, 30 Jan 2012 15:51:48 +0000 (15:51 +0000)]
tests: Make i3 create its temporary files in /tmp/i3-testsuite

This behavior can be avoided by passing dont_create_temp_dir => 1 to
launch_with_config (or activate_i3).

This commit fixes t/159-socketpaths.t being flaky on non-systemd computers.

12 years agorandr: Skip workspaces which are assigned to a different output when creating a new...
Michael Stapelberg [Tue, 7 Feb 2012 21:10:16 +0000 (21:10 +0000)]
randr: Skip workspaces which are assigned to a different output when creating a new workspace

If you had workspace 1, 2, 3, 4 on LVDS1 and you enabled HDMI2 (where workspace
1 to workspace 5 are assigned to HDMI2), i3 would look for a new workspace for
LVDS1 (since all workspaces were moved), create workspace 5, move that over due
to assignment and then create workspace 6. Effectively, you would end up with
an empty workspace 5.

12 years agoDon't migrate unfocused empty workspaces when disabling output.
Fernando Tarlá Cardoso Lemos [Sat, 28 Jan 2012 01:47:59 +0000 (23:47 -0200)]
Don't migrate unfocused empty workspaces when disabling output.

This is more similar to what happens when you close the last client
of an unfocused workspace (the workspace gets reaped).

12 years agodocs/ipc: remove the log_markers request (it was removed from the code)
Michael Stapelberg [Tue, 7 Feb 2012 20:43:58 +0000 (20:43 +0000)]
docs/ipc: remove the log_markers request (it was removed from the code)

12 years agodocs/ipc: added python library
Jure Ziberna [Mon, 6 Feb 2012 00:35:27 +0000 (01:35 +0100)]
docs/ipc: added python library

12 years agoFix the text alignment in the workspace indicator.
Fernando Tarlá Cardoso Lemos [Sun, 29 Jan 2012 22:07:19 +0000 (20:07 -0200)]
Fix the text alignment in the workspace indicator.

We now use 5px padding for the workspace text on both sides. Some
fonts will look off-by-one (e.g. fixed), but that's because X core
fonts have padding. This padding is per-char, varies wildly across
different fonts, and would be a major pain to offset for. Even if
we could take this padding into account, this would probably make
things look even worse for some fonts.

12 years agoi3bar: make the ws buttons a bit smaller (like before) and improve the centering
Michael Stapelberg [Sun, 29 Jan 2012 20:55:54 +0000 (20:55 +0000)]
i3bar: make the ws buttons a bit smaller (like before) and improve the centering

12 years agotestcases: requires Test::More >= 0.94 (for subtests)
Michael Stapelberg [Sun, 29 Jan 2012 18:03:03 +0000 (18:03 +0000)]
testcases: requires Test::More >= 0.94 (for subtests)

12 years agoMerge branch 'master' into next
Michael Stapelberg [Sun, 29 Jan 2012 18:02:48 +0000 (18:02 +0000)]
Merge branch 'master' into next

12 years agoMerge branch 'fix-floating-disappear'
Michael Stapelberg [Sun, 29 Jan 2012 18:02:44 +0000 (18:02 +0000)]
Merge branch 'fix-floating-disappear'

12 years agoFix coords of floating containers when the output is disabled.
Fernando Tarlá Cardoso Lemos [Sun, 29 Jan 2012 17:53:30 +0000 (15:53 -0200)]
Fix coords of floating containers when the output is disabled.

This prevents floating containers from "disappearing" when their
associated output is disabled. Thanks Michael for the advice.

12 years agocommands_parser: use safewrapper functions
Michael Stapelberg [Sat, 28 Jan 2012 10:35:18 +0000 (10:35 +0000)]
commands_parser: use safewrapper functions

12 years agoi3bar: correctly check errors when getting the _XEMBED_INFO property
Michael Stapelberg [Sat, 28 Jan 2012 10:22:43 +0000 (10:22 +0000)]
i3bar: correctly check errors when getting the _XEMBED_INFO property

This fixes a problem where starting gnome-settings-daemon (maybe other
programs, too) would leave an empty spot in i3bar’s tray area.

12 years agoFixed worspace clicking area for i3bar (branch next)
Marcelo Cerri [Thu, 26 Jan 2012 12:22:15 +0000 (10:22 -0200)]
Fixed worspace clicking area for i3bar (branch next)

12 years agoi3bar: make the space between workspace buttons 1 px again
Michael Stapelberg [Sat, 28 Jan 2012 10:05:51 +0000 (10:05 +0000)]
i3bar: make the space between workspace buttons 1 px again

12 years agomanpages: update i3-msg.man
Michael Stapelberg [Fri, 27 Jan 2012 22:39:51 +0000 (22:39 +0000)]
manpages: update i3-msg.man

12 years agoadd comments to src/commands.c
Michael Stapelberg [Fri, 27 Jan 2012 22:32:40 +0000 (22:32 +0000)]
add comments to src/commands.c

12 years agouserguide: document 'fullscreen global'
Michael Stapelberg [Fri, 27 Jan 2012 22:32:25 +0000 (22:32 +0000)]
userguide: document 'fullscreen global'

12 years agoRip out the old command parser, remove migration code
Michael Stapelberg [Fri, 27 Jan 2012 22:11:03 +0000 (22:11 +0000)]
Rip out the old command parser, remove migration code

12 years agoBugfix: Free old criteria matching window list (Thanks piroko)
Michael Stapelberg [Fri, 27 Jan 2012 21:47:55 +0000 (21:47 +0000)]
Bugfix: Free old criteria matching window list (Thanks piroko)

12 years agocomplete-run: make --valgrind, --strace, --coverage-testing work again
Michael Stapelberg [Fri, 27 Jan 2012 21:36:40 +0000 (21:36 +0000)]
complete-run: make --valgrind, --strace, --coverage-testing work again

12 years agoMerge branch 'master' into next
Michael Stapelberg [Fri, 27 Jan 2012 19:56:58 +0000 (19:56 +0000)]
Merge branch 'master' into next

Conflicts:
debian/changelog

12 years agodebian: add 4.1.2-2 upload to changelog
Michael Stapelberg [Fri, 27 Jan 2012 19:56:34 +0000 (19:56 +0000)]
debian: add 4.1.2-2 upload to changelog

12 years agoMerge branch 'master' into next
Michael Stapelberg [Fri, 27 Jan 2012 19:34:15 +0000 (19:34 +0000)]
Merge branch 'master' into next

Conflicts:
debian/changelog

12 years agoMerge branch 'release-4.1.2'
Michael Stapelberg [Fri, 27 Jan 2012 19:26:42 +0000 (19:26 +0000)]
Merge branch 'release-4.1.2'

12 years agoadd release notes for 4.1.2 4.1.2
Michael Stapelberg [Fri, 27 Jan 2012 19:13:56 +0000 (19:13 +0000)]
add release notes for 4.1.2

12 years agobump manpage version
Michael Stapelberg [Fri, 27 Jan 2012 19:09:48 +0000 (19:09 +0000)]
bump manpage version

12 years agoupdate debian/changelog
Michael Stapelberg [Fri, 27 Jan 2012 19:07:26 +0000 (19:07 +0000)]
update debian/changelog

12 years agoadd show-download-count.sh to git
Michael Stapelberg [Thu, 26 Jan 2012 20:53:19 +0000 (20:53 +0000)]
add show-download-count.sh to git

12 years agoAlso install /usr/share/applications/i3.desktop
Michael Stapelberg [Thu, 26 Jan 2012 10:26:17 +0000 (10:26 +0000)]
Also install /usr/share/applications/i3.desktop

With this file, you can use the following command to run i3 in GNOME:

    gconftool-2 -s /desktop/gnome/session/required_components/windowmanager i3 --type string

12 years agonew parser: correctly handle leading/trailing newlines (+test) (Thanks helgikrs)
Michael Stapelberg [Wed, 25 Jan 2012 22:00:32 +0000 (22:00 +0000)]
new parser: correctly handle leading/trailing newlines (+test) (Thanks helgikrs)

12 years agoAdd presentation slides from 2012-01-25
Michael Stapelberg [Wed, 25 Jan 2012 21:15:56 +0000 (21:15 +0000)]
Add presentation slides from 2012-01-25

12 years agodebian: add support for dpkg-buildpackage -j parallelism
Michael Stapelberg [Mon, 23 Jan 2012 22:20:10 +0000 (22:20 +0000)]
debian: add support for dpkg-buildpackage -j parallelism

See also http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=209008#202

12 years agorevert the debugging changes
Michael Stapelberg [Mon, 23 Jan 2012 22:19:46 +0000 (22:19 +0000)]
revert the debugging changes

Building a non-optimized (-O0 vs. -O2) Debian package required:

    echo 'export DEB_BUILD_OPTIONS=noopt' >> ~/.pbuilderrc

12 years agodebug commit for the autobuilder, please ignore
Michael Stapelberg [Mon, 23 Jan 2012 19:58:30 +0000 (19:58 +0000)]
debug commit for the autobuilder, please ignore

12 years agoForce redrawing the indicators after a move.
Fernando Tarlá Cardoso Lemos [Sun, 22 Jan 2012 15:15:35 +0000 (13:15 -0200)]
Force redrawing the indicators after a move.

Fixes a bug where splitting then moving in the other orientation
(e.g. v-splitting and moving right) would result in the old
indicators not disappearing.

12 years agoforce rendering in more cases
Michael Stapelberg [Sun, 22 Jan 2012 17:24:55 +0000 (17:24 +0000)]
force rendering in more cases

12 years agoForce re-rendering after changing the orientation of a split container
Michael Stapelberg [Sun, 22 Jan 2012 13:19:37 +0000 (13:19 +0000)]
Force re-rendering after changing the orientation of a split container

12 years agoImplement highlighting right/bottom borders of splitted windows
Michael Stapelberg [Sun, 22 Jan 2012 11:22:15 +0000 (11:22 +0000)]
Implement highlighting right/bottom borders of splitted windows

Fixes #299

12 years agomake in-place restarts use socket activation, too (for faster/less flaky tests)
Michael Stapelberg [Sat, 21 Jan 2012 23:03:09 +0000 (23:03 +0000)]
make in-place restarts use socket activation, too (for faster/less flaky tests)

12 years agoCorrectly restore focus after in-place restarts
Michael Stapelberg [Sat, 21 Jan 2012 18:35:15 +0000 (18:35 +0000)]
Correctly restore focus after in-place restarts

Note: This change requires two in-place restarts when you are upgrading
in-place from an old version.

Fixes #611

12 years agoMerge branch 'master' into next
Michael Stapelberg [Sat, 21 Jan 2012 15:08:36 +0000 (15:08 +0000)]
Merge branch 'master' into next

12 years agoMerge branch 'fix-randr-floating'
Michael Stapelberg [Sat, 21 Jan 2012 15:08:20 +0000 (15:08 +0000)]
Merge branch 'fix-randr-floating'

12 years agoBugfix: Fix coordinates when the rect of an output changes (Thanks Paul)
Michael Stapelberg [Sat, 21 Jan 2012 15:07:53 +0000 (15:07 +0000)]
Bugfix: Fix coordinates when the rect of an output changes (Thanks Paul)

Fixes #623

12 years agoi3-config-wizard: Mark the currently selected modifier with an arrow (Thanks jjfoerch)
Michael Stapelberg [Sat, 21 Jan 2012 14:32:35 +0000 (14:32 +0000)]
i3-config-wizard: Mark the currently selected modifier with an arrow (Thanks jjfoerch)

Boldface seems to be unrecognizable on some systems.

Fixes #607

12 years agoMerge branch 'master' into next
Michael Stapelberg [Sat, 21 Jan 2012 14:22:29 +0000 (14:22 +0000)]
Merge branch 'master' into next

Conflicts:
testcases/t/005-floating.t

12 years agoMerge branch 'fix-floating-pos'
Michael Stapelberg [Sat, 21 Jan 2012 14:21:34 +0000 (14:21 +0000)]
Merge branch 'fix-floating-pos'

12 years agoBugfix: Position floating windows exactly where their geometry specified (Thanks...
Michael Stapelberg [Sat, 21 Jan 2012 14:20:55 +0000 (14:20 +0000)]
Bugfix: Position floating windows exactly where their geometry specified (Thanks B-Con)

Fixes #619

12 years agoIgnore aspect ratio during fullscreen mode (fixes MPlayer subtitles) (Thanks mxf...
Michael Stapelberg [Sat, 21 Jan 2012 13:29:06 +0000 (13:29 +0000)]
Ignore aspect ratio during fullscreen mode (fixes MPlayer subtitles) (Thanks mxf, alexander)

Fixes: #594
12 years agoMerge branch 'master' into next
Michael Stapelberg [Sat, 21 Jan 2012 11:50:22 +0000 (11:50 +0000)]
Merge branch 'master' into next

Conflicts:
src/handlers.c

12 years agoMerge branch 'fix-fullscreen-enternotify'
Michael Stapelberg [Sat, 21 Jan 2012 11:49:52 +0000 (11:49 +0000)]
Merge branch 'fix-fullscreen-enternotify'

12 years agoBugfix: Force a new sequence number after UnmapNotify
Michael Stapelberg [Sat, 21 Jan 2012 11:47:18 +0000 (11:47 +0000)]
Bugfix: Force a new sequence number after UnmapNotify

This should fix the problem where (legitimate) EnterNotifys arrived with the
same sequence as the UnmapNotify and was ignored.

Fixes: #609
12 years agoFix prototype
Michael Stapelberg [Sat, 21 Jan 2012 11:49:35 +0000 (11:49 +0000)]
Fix prototype

12 years agoBugfix: Only ignore EnterNotify events after UnmapNotifies from managed windows
Michael Stapelberg [Tue, 17 Jan 2012 20:37:36 +0000 (20:37 +0000)]
Bugfix: Only ignore EnterNotify events after UnmapNotifies from managed windows

This should fix (some?) focus follows mouse problems.

Conflicts:

src/handlers.c

12 years agoDraw a separator line after each tab (doesn’t use extra space) (by Aaron Small)
Michael Stapelberg [Sat, 21 Jan 2012 11:07:10 +0000 (11:07 +0000)]
Draw a separator line after each tab (doesn’t use extra space) (by Aaron Small)

12 years agoBugfix: Redraw right border after rendering the window title (Thanks fernandotcl)
Michael Stapelberg [Sat, 21 Jan 2012 10:59:23 +0000 (10:59 +0000)]
Bugfix: Redraw right border after rendering the window title (Thanks fernandotcl)

Fixes #368

12 years agoi3bar: ignore the "socket_path" config option (redundant anyway)
Michael Stapelberg [Fri, 20 Jan 2012 22:29:10 +0000 (22:29 +0000)]
i3bar: ignore the "socket_path" config option (redundant anyway)

12 years agohandle the old bar color config syntax in a backwards-compatible way
Michael Stapelberg [Fri, 20 Jan 2012 22:26:17 +0000 (22:26 +0000)]
handle the old bar color config syntax in a backwards-compatible way

12 years agoBugfix: i3bar: Use the correct keys when reading the color config
Michael Stapelberg [Fri, 20 Jan 2012 22:03:52 +0000 (22:03 +0000)]
Bugfix: i3bar: Use the correct keys when reading the color config

12 years agoRe-implement bar borders (by Angelo Haller)
Michael Stapelberg [Fri, 20 Jan 2012 21:36:50 +0000 (21:36 +0000)]
Re-implement bar borders (by Angelo Haller)

This re-introduces borders around the workspace buttons in i3bar.
No additional pixels will be consumed (you will not lose any space for your
windows).

12 years agoMerge branch 'master' into next
Michael Stapelberg [Fri, 20 Jan 2012 18:14:34 +0000 (18:14 +0000)]
Merge branch 'master' into next

12 years agoMerge branch 'fix-xcb-compat'
Michael Stapelberg [Fri, 20 Jan 2012 18:14:12 +0000 (18:14 +0000)]
Merge branch 'fix-xcb-compat'

12 years agoFix xcb_compat.h to make i3 compile with older xcb versions (Thanks David Coppa)
Michael Stapelberg [Fri, 20 Jan 2012 18:13:52 +0000 (18:13 +0000)]
Fix xcb_compat.h to make i3 compile with older xcb versions (Thanks David Coppa)

12 years agoMerge branch 'master' into next
Michael Stapelberg [Fri, 20 Jan 2012 18:10:52 +0000 (18:10 +0000)]
Merge branch 'master' into next

12 years agoMerge branch 'fix-ewmh'
Michael Stapelberg [Fri, 20 Jan 2012 18:10:49 +0000 (18:10 +0000)]
Merge branch 'fix-ewmh'

12 years agoBugfix: Setup the _NET_SUPPORTING_WM_CHECK atom in a standards-compliant way
Michael Stapelberg [Fri, 20 Jan 2012 10:52:45 +0000 (10:52 +0000)]
Bugfix: Setup the _NET_SUPPORTING_WM_CHECK atom in a standards-compliant way

This makes chrome (and probably other apps, too) receive changes of the
_NET_ACTIVE_WINDOW and thus show its bookmark dialog properly.

Fixes: #544
12 years agoBugfix: Don’t increment 'walk' before checking it (Thanks MasterofJOKers)
Michael Stapelberg [Thu, 19 Jan 2012 19:01:47 +0000 (19:01 +0000)]
Bugfix: Don’t increment 'walk' before checking it (Thanks MasterofJOKers)

12 years agoMerge branch 'master' into next
Michael Stapelberg [Wed, 18 Jan 2012 19:18:22 +0000 (19:18 +0000)]
Merge branch 'master' into next

Conflicts:
src/handlers.c

12 years agoMerge branch 'fix-focus'
Michael Stapelberg [Wed, 18 Jan 2012 19:17:48 +0000 (19:17 +0000)]
Merge branch 'fix-focus'

12 years agoBugfix: Respect WM_HINTS.input for WM_TAKE_FOCUS clients
Michael Stapelberg [Wed, 18 Jan 2012 19:16:57 +0000 (19:16 +0000)]
Bugfix: Respect WM_HINTS.input for WM_TAKE_FOCUS clients

This fixes problems with Qt apps (like Quassel) and apparently Eclipse since
the last commit.

12 years agoMerge branch 'master' into next
Michael Stapelberg [Tue, 17 Jan 2012 23:39:04 +0000 (23:39 +0000)]
Merge branch 'master' into next

12 years agoMerge branch 'fix-take-focus'
Michael Stapelberg [Tue, 17 Jan 2012 23:34:52 +0000 (23:34 +0000)]
Merge branch 'fix-take-focus'

12 years agoBugfix: Either use SetInputFocus *or* send WM_TAKE_FOCUS, not both
Michael Stapelberg [Tue, 17 Jan 2012 23:33:33 +0000 (23:33 +0000)]
Bugfix: Either use SetInputFocus *or* send WM_TAKE_FOCUS, not both

This fixes problems with the Oracle JRE7, which checks the current focus after
receiving WM_TAKE_FOCUS and just does nothing when the focus is on one of its
windows. Hopefully it doesn’t introduce any regressions :).

12 years agoBugfix: Only ignore EnterNotify events after UnmapNotifies from managed windows
Michael Stapelberg [Tue, 17 Jan 2012 20:37:36 +0000 (20:37 +0000)]
Bugfix: Only ignore EnterNotify events after UnmapNotifies from managed windows

This should fix (some?) focus follows mouse problems.

12 years agohacking-howto: point out that the parser is not used for the configfile (yet) (Thanks...
Michael Stapelberg [Mon, 16 Jan 2012 23:41:24 +0000 (23:41 +0000)]
hacking-howto: point out that the parser is not used for the configfile (yet) (Thanks fernandotcl)

12 years agohacking-howto: describe the new commands parser
Michael Stapelberg [Mon, 16 Jan 2012 22:44:28 +0000 (22:44 +0000)]
hacking-howto: describe the new commands parser

12 years agoBugfix: Make generate-command-parser.pl compatible with perl 5.10
Michael Stapelberg [Mon, 16 Jan 2012 21:20:48 +0000 (21:20 +0000)]
Bugfix: Make generate-command-parser.pl compatible with perl 5.10

12 years agoMerge branch 'new-parser' into next
Michael Stapelberg [Sat, 14 Jan 2012 21:30:02 +0000 (21:30 +0000)]
Merge branch 'new-parser' into next

12 years agoImplement a new parser for commands. (+test)
Michael Stapelberg [Sat, 14 Jan 2012 19:53:29 +0000 (19:53 +0000)]
Implement a new parser for commands. (+test)

On the rationale of using a custom parser instead of a lex/yacc one, see this
quote from src/commands_parser.c:
     We use a hand-written parser instead of lex/yacc because our commands are
     easy for humans, not for computers. Thus, it’s quite hard to specify a
     context-free grammar for the commands. A PEG grammar would be easier, but
     there’s downsides to every PEG parser generator I have come accross so far.

     This parser is basically a state machine which looks for literals or strings
     and can push either on a stack. After identifying a literal or string, it
     will either transition to the current state, to a different state, or call a
     function (like cmd_move()).

     Special care has been taken that error messages are useful and the code is
     well testable (when compiled with -DTEST_PARSER it will output to stdout
     instead of actually calling any function).

During the migration phase (I plan to completely switch to this parser before
4.2 will be released), the new parser will parse every command you send to
i3 and save the resulting call stack. Then, the old parser will parse your
input and actually execute the commands. Afterwards, both call stacks will be
compared and any differences will be logged.

The new parser works with 100% of the test suite and produces identical call
stacks.

12 years agoRefactor the code out of src/cmdparse.y to src/commands.c
Michael Stapelberg [Sat, 14 Jan 2012 15:02:30 +0000 (15:02 +0000)]
Refactor the code out of src/cmdparse.y to src/commands.c

This is the first step towards our new parser.

12 years agocmdparse.l: [^t] is enough (Thanks f8l)
Michael Stapelberg [Tue, 10 Jan 2012 23:09:00 +0000 (23:09 +0000)]
cmdparse.l: [^t] is enough (Thanks f8l)