1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-23 21:35:11 +03:00
Commit Graph

17333 Commits

Author SHA1 Message Date
David Herrmann
2ea8d19b21 terminal/screen: mark cursor dirty on enabled/disable
If we hide or show the cursor, we change visual attributes and have to
mark the underlying cell as dirty. Otherwise, the terminal will not be
redrawn.
2014-10-03 15:57:00 +02:00
David Herrmann
884964a963 terminal/idev: add helper to match keyboard shortcuts
Matching keyboard shortcuts on internationalized keyboards is actually
non-trivial. Matching the actual key is easy, but the modifiers can be
used by both, the matching and the translation step. Therefore, XKB
exports "consumed-modifiers" that we use to figure out whether a modifier
was already used by the translation step.

The new IDEV_KBDMATCH() helper can be used to match on any keyboard
shortcut and it will do the right thing.
2014-10-03 15:57:00 +02:00
David Herrmann
f8958c3495 terminal/screen: add keyboard mapping
Implement the feed_keyboard() handling by mapping XKB keys according to
DEC-VT behavior.

Public information on terminal key-mappings is pretty scarce. We only
implement the most basic mapping for now. Further improvements welcome!
2014-10-03 15:57:00 +02:00
David Herrmann
fe741a85c1 terminal/idev: don't map XKB_KEY_NoSymbol as ASCII 0
XKB_KEY_NoSymbol is defined as 0 but does not correspond to a VT key with
ASCII value 0. No such key exists, so don't try to find such a key.
2014-10-03 15:57:00 +02:00
David Herrmann
61d0326a5b terminal/unifont: add built-in fallback glyph
In case we cannot render a glyph, we want a fallback we can display
instead. If we rely on the font itself to provide the fallback character,
we have nothing to display if that character is not available. Therefore,
add a static fallback that we can use at any time.
2014-10-03 15:57:00 +02:00
David Herrmann
cb51a41fa6 terminal/subterm: use screen renderer
Don't hard-code the screen renderer but use the newly introduced
term_screen_draw() helper.
2014-10-03 15:57:00 +02:00
David Herrmann
be50221384 terminal: add screen renderer
We don't want to expose the term_screen internals for rendering.
Therefore, provide an iterator that allows external renderers to draw
terminals.
2014-10-03 15:57:00 +02:00
David Herrmann
1bfa594cf2 terminal/drm: clear 'applied' flag when changing state
If a pipe is enabled/disabled, we have to clear crtc->applied of the
linked CRTC. Otherwise, we will not run a deep modeset, but leave the crtc
in the pre-configured state.
2014-10-03 15:57:00 +02:00
David Herrmann
66695cc343 terminal/grdev: allow arbitrary fb-age contexts
Instead of limiting fb-aging to 64bit integers, allow any arbitrary
context together with a release function to free it once the FB is
destroyed.
2014-10-03 15:57:00 +02:00
David Herrmann
51cff8bded terminal/grdev: provide front and back buffer to renderers
We really want more sophisticated aging than just 64bit integers. So
always provide front *and* back buffers to renderers so they can compare
arbitrary aging information and decide whether to re-render.
2014-10-03 15:57:00 +02:00
David Herrmann
aec3f44651 terminal/drm: provide pipe->target() callback
Instead of looking for available back-buffers on each operation, set it to
NULL and wait for the next frame request. It will call back into the pipe
to request the back-buffer via ->target(), where we can do the same and
look for an available backbuffer.

This simplifies the code and avoids double lookups if we run short of
buffers.
2014-10-03 15:57:00 +02:00
David Herrmann
6a15ce2b3e terminal/grdev: simplify DRM event parsing
Coverity complained about this code and is partially right. We are not
really protected against integer overflows. Sure, unlikely, but lets just
avoid any overflows and properly protect our parser loop.
2014-10-03 15:57:00 +02:00
David Herrmann
f1f5b2a3bd terminal: make utf8 decoder return length
Lets return the parsed length in term_utf8_decode() instead of a buffer
pointer. Store the pointer in the passed argument.

This makes it adhere to the systemd coding-style, were we always avoid
returning pointers, but store them in output arguments. In this case, the
storage is not allocated, so it doesn't fit 100% to this idiom, but still
looks much nicer.
2014-10-03 15:57:00 +02:00
David Herrmann
db1a606610 terminal: fix back-buffer selection on DRM page-flip
We currently select front-buffers as new back-buffer if they happen to be
the last buffer in our framebuffer-array. Fix this by never selecting a
new front buffer as back buffer.
2014-10-03 15:57:00 +02:00
Zbigniew Jędrzejewski-Szmek
754fc0c720 fileio-label: return error when writing fails
The status of actually writing the file was totally ignored.
2014-10-03 08:58:40 -04:00
Jan Synacek
a62e83b48c journalctl: make --utc work everywhere
The --utc option was introduced by commit
9fd290443f.
Howerver, the implementation was incomplete.
2014-10-03 08:38:01 -04:00
Thomas Hindoe Paaboel Andersen
1c92ff85b7 bootchart: use 'n/a' if PRETTY_NAME is not found
Spotted with coverity. If parsing both /etc/os-release and
/usr/lib/os-release fails then null would be passed on. The calls
to parse the two files are allowed to fail. A empty /etc may not
have had the /etc/os-release symlink restored yet and we just
try again in the loop. If for whatever reason that does not happen
then we now pass on 'n/a' instead of null.
2014-10-03 08:31:53 -04:00
Tom Gundersen
7889087d6e man: fix sd_event_set_name compilation 2014-10-03 08:43:53 +02:00
Tom Gundersen
c3b128736d glib-event-glue: remove some unnecessary lines
Not needed in an example. Should still shorten the license, but should make sure it is still complete so people can copy-paste without problems.
2014-10-03 08:43:34 +02:00
Thomas Hindoe Paaboel Andersen
2ad8887a12 test-barrier: add checks after the barrier constructor
Coverity seems to think that we can later end up with the "them"
fd having a negative value. Even after a succesful barrier_create.
Add some test to verify that the constructor went well. If coverity
still complains then it must mean that it thinks the the value is
overwritten later.
2014-10-03 04:04:42 +02:00
Zbigniew Jędrzejewski-Szmek
043f62949e man: add sd_event_set_name(3) 2014-10-02 21:14:26 -04:00
Zbigniew Jędrzejewski-Szmek
ba4b35669e man: add sd_event_get_fd(3)
Example from Tom Gundersen is included using xi:include.
The copyright notice stands out a bit. Maybe it should be removed,
and the code placed in public domain.
2014-10-02 20:49:55 -04:00
Thomas Hindoe Paaboel Andersen
94956f8fba firstboot: silence coverity
CID#1237537
2014-10-02 21:37:33 +02:00
Lennart Poettering
2ff8abbd40 Revert "mount: order options before other arguments to mount"
This reverts commit 141a1ceaa6.

People should fix their libc's getopt(), instead of us using a weird
option ordering...
2014-10-02 21:02:03 +02:00
Lennart Poettering
cc19881a69 systemctl: remove spurious newline 2014-10-02 20:38:00 +02:00
Lennart Poettering
2c652b6bfe kdbus: don't clobber return values, use strjoin() instead of asprintf(), keep function invocations and variable declarations separate 2014-10-02 20:38:00 +02:00
Lennart Poettering
8e00bfc234 kdbus: make sure we never invoke free() on an uninitialized pointer on OOM 2014-10-02 20:38:00 +02:00
Lennart Poettering
c7eff5ec06 update TODO 2014-10-02 20:38:00 +02:00
Tom Gundersen
fe4b215625 sd-dhcp6: do basic sanity-checking of supplied DUID 2014-10-02 19:07:30 +02:00
Tom Gundersen
ebe207d4ac sd-dhcp6: specify the type explicitly when setting custom DUID
This would make it simple to verify that the data is on the right format when
the type is known.
2014-10-02 19:07:30 +02:00
Tom Gundersen
9547267dc5 sd-dhcp6: support custom DUID's up to the size specified in the RFC 2014-10-02 19:07:30 +02:00
Dan Williams
66eac1201a sd-dhcp6-client: support custom DUIDs
The caller may have an existing DUID that it wants to use, and may
want to use some other DUID generation scheme than systemd's
default DUID-EN.

[tomegun: whitespace - we never use tabs]
2014-10-02 19:07:30 +02:00
Daniel Mack
995a1063db sd-bus: sync kdbus.h (ABI break!)
struct kdbus_cmd_match got a flags field, which systemd currently makes no
use of.
2014-10-02 17:15:39 +02:00
Michal Sekletar
893e72da6b virt: detect that we are running inside the docker container 2014-10-02 17:15:17 +02:00
Zbigniew Jędrzejewski-Szmek
aa08982d62 Fix order and document user unit dirs
Fixup for 718880ba0d 'add a transient user unit directory'.
2014-10-02 11:11:31 -04:00
Zbigniew Jędrzejewski-Szmek
4d5dec2389 Rename user_runtime to user_runtime_dir
This makes this function name similar to user_config_home() and makes
it match the name of the environment variable.
2014-10-02 11:10:35 -04:00
Steven Allen
718880ba0d add a transient user unit directory
This patch adds a transient user unit directory under
`$XDG_RUNTIME_DIR/systemd/user/` and stores transient user-instance
units (such as those created by `systemd-run --user`) under there
instead of putting them in $XDG_CONFIG_HOME/systemd/user/.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=67331
2014-10-02 10:37:30 -04:00
Jan Synacek
9fd290443f journalctl: add --utc option
Introduce option to display time in UTC.
2014-10-02 14:52:32 +02:00
Lennart Poettering
b344bcbbfd localectl: always print warnings with log_warning() instead of printf()
They really should got to stderr, not stdout.
2014-10-02 14:39:07 +02:00
Lennart Poettering
63229aa1ab localectl: count locale variables from 0, instead of VARIABLE_LANG
That way the we make our code safe regarding reordering of the variables
in the enum.
2014-10-02 14:39:07 +02:00
Daniel Mack
581fe6c817 sd-bus: sync kdbus.h (ABI break)
struct kdbus_cmd_conn_info takes a list of items now instead of a string.

Fix the only user in SD of that ioctl.
2014-10-02 13:04:04 +02:00
Torstein Husebø
4cf07da260 Correct a few typos 2014-10-02 11:46:23 +02:00
David Herrmann
fc80861622 barrier: fix up constructor error handling
We cannot rely on "errno" to be non-zero on failure, if we perform
multiple glibc calls. That is, if the first eventfd() call fails, but the
second succeeds, we cleanup the barrier but return 0.

Fix this by always testing the return value immediately. This should also
fix all the coverity warnings.
2014-10-02 08:40:43 +02:00
David Herrmann
dda57d9143 terminal: add helpers to retrieve page dimensions
Allow term users to retrieve the page dimensions of a terminal screen.
This is needed to properly calculate the grid dimensions when rendering.
2014-10-02 08:40:43 +02:00
David Herrmann
a30f142513 terminal: add term.h header for library users
Like all the other parts of libsystemd-terminal, split API of
term-internal.h into term.h so we can use it from systemd-consoled.
2014-10-02 08:40:43 +02:00
David Herrmann
056e86ee7f terminal: move unifont-map to datadir
Lets avoid putting stuff into /usr/shared/unifont/, but keep it in
/usr/share/systemd/. Upstream lacks interest in this, so don't bother for
now.
2014-10-02 08:40:43 +02:00
David Herrmann
fa96534573 terminal: add unifont_get_width/height()
Allow unifont users to retrieve the width and height of unifont glyphs. In
version 1 this is hard-coded as 8/16, but may be changed in the future.
2014-10-02 08:40:43 +02:00
David Herrmann
c2977e5cb8 terminal: move unifont-internal.h to unifont.h
All the definitions are for outside users, so drop the -internal suffix.
Internal definitions are in unifont-def.h and unifont.c, no need to share
those.
2014-10-02 08:40:43 +02:00
Simon McVittie
d20a3daaa7 sd-bus: use terms from the D-Bus Specification a bit more
D-Bus' type hierarchy as described in the spec is:

\- basic
   \- fixed type (u, i, etc.)
   \- string-like type (s, o, g)
\- container

Someone seems to have referred to basic types as "simple types" at
some point, but that term isn't defined in the D-Bus Specification,
and seems redundant.

So far I haven't renamed functions that use "trivial" in their names
to mean "fixed type", to avoid confusion about whether a struct of
constant length, like (iu), is a fixed type. The answer is that it is
fixed-length, but is not a "fixed type", so I can see that something
like bus_type_is_fixed() might be ambiguous.
2014-10-02 08:25:21 +02:00
Simon McVittie
e1ffdb90d9 PORTING-DBUS1: we use :1.%llu not :0.%llu for D-Bus unique bus names 2014-10-02 08:25:21 +02:00