13399 Commits

Author SHA1 Message Date
Ryan Lortie
d54e80358e gutils: stop g_get_home_dir() from reading passwd
In the case that the "HOME" environment variable is set (as it is under
normal circumstances), we don't really need to be opening /etc/passwd.

For historical reasons (ie: how we used to ignore $HOME) and due to the
grouping of many unrelated things together (reading username, hostname,
home directory, tmpdir, etc.) into one function we were still opening
/etc/passwd in g_get_home_dir(), even if $HOME was set.

Since earlier commits removed code from it, all that remains in
g_get_any_init_do() is the logic for dealing with $HOME and reading the
password database.

We now split the logic to deal with $HOME into g_get_home_dir().  With
only the password database functionality remaining, g_get_any_init_do()
is renamed to g_get_user_database_entry() and modified not to set global
variables but rather return a struct.  If g_get_home_dir() cannot find
$HOME, it falls back to calling g_get_user_database_entry() and using
the home directory from there.

Use of the 'g_utils_global' lock is further reduced by using
g_once_init_enter() to protect the critical sections in each of
g_get_user_database_entry() and g_get_home_dir().

Finally, the g_get_user_name() and g_get_real_name() functions are
modified to use the new regime.
2013-02-04 14:50:55 +01:00
Ryan Lortie
73e1b17115 gutils: replace direct references to g_home_dir
Some code was directly calling g_get_any_init() and then expecting to be
able to use the static 'g_home_dir' variable directly.  Change these
over to g_get_home_dir() instead.
2013-02-04 14:40:03 +01:00
Ryan Lortie
6f7d4e84f2 gutils: split out g_get_tmp_dir()
Remove the code for getting the tmpdir from g_get_any_init_do() and
outside of the g_utils_global lock.
2013-02-04 14:17:08 +01:00
Ryan Lortie
762db176dd gutils: split out g_get_host_name()
Remove the code for getting the hostname from g_get_any_init_do() and
outside of the g_utils_global lock.
2013-02-04 14:13:58 +01:00
Ryan Lortie
71e600f66b win32: Drop old codepage ABI from gutils.c
This is a source-compatible change and only breaks ABI with respect to
truly ancient binaries (and those binaries are already broken for other
reasons).

Back in the day, functions like g_get_user_name() used to return strings
in the system codepage instead of utf8 (as they do today).

It was decided at some point to change these functions to return utf8,
breaking source compatibility but keeping ABI compatibility.  This was
done by exporting new symbols with names like g_get_user_name_utf8() and
using a #define of the old name over to the new name (so that newly
compiled code would link against the _utf8 version, but old binaries
would continue to use the non-utf8 variant).

Meanwhile, glib has undergone several ABI breaks on Windows since, so
those old binaries don't work anymore.

Start to clean up this mess by removing the #define renaming.  New
binaries calling g_get_user_name() will now link against
g_get_user_name() and it will return utf8.

We must keep the functions like g_get_user_name_utf8() for binary
compatibility with recently built programs (ie: ones built with the
renaming).  Nobody should have ever been calling these directly and of
course they can return utf8, so just add them as internal wrappers in the
.c file and declare them _GLIB_EXTERN there.

One day, if we feel like breaking Windows ABI again, we can finish the
cleanup by dropping the wrappers.
2013-02-04 14:13:21 +01:00
Ryan Lortie
c28469faa0 gmarkup: add utility functions for text
WIP patch.

https://bugzilla.gnome.org/show_bug.cgi?id=689035
2013-02-04 01:19:52 +01:00
Víctor Manuel Jáquez Leal
6b3ec82732 Compile private test with -pthread on UNIX
The commit f5f151cb removed this linkage, which is needed,
at least for the toolchain gcc version 4.7.2 (Debian 4.7.2-5)

https://bugzilla.gnome.org/show_bug.cgi?id=693105
2013-02-03 23:59:21 +01:00
Matthias Clasen
6bcb1c0ed6 Post-release version bump 2013-02-03 15:14:57 -05:00
Matthias Clasen
3fe8ed04c7 2.35.6 2.35.6 2013-02-03 14:25:09 -05:00
Matthias Clasen
844527c037 Document GIO_USE_FILE_MONITOR 2013-02-03 14:08:02 -05:00
Matthias Clasen
435abb174d Fix a doc comment mismatch 2013-02-03 13:50:36 -05:00
Matthias Clasen
c5ec4831fa Trivial doc comment formatting fix 2013-02-03 13:46:50 -05:00
Matthias Clasen
9c72b5776a add 2.36 index to gobject docs 2013-02-03 13:26:36 -05:00
Matthias Clasen
349e601864 Add 2.36 index to glib docs 2013-02-03 13:25:56 -05:00
Matthias Clasen
f302c65584 Add a 2.36 index to gio docs 2013-02-03 13:24:59 -05:00
Matthias Clasen
1e4b5a3267 Minor doc build cleanups 2013-02-03 13:22:28 -05:00
Matthias Clasen
79d7a138af Make GUnixFDSourceFunc show up in the docs 2013-02-03 13:17:59 -05:00
Matthias Clasen
50850cdf98 Use g_timeout_add_seconds for some long timeouts
https://bugzilla.gnome.org/show_bug.cgi?id=692618
2013-02-03 10:21:20 -05:00
Lars Uebernickel
1a7b4b42a8 gmenumodel: add G_MENU_ATTRIBUTE_ACTION_NAMESPACE
https://bugzilla.gnome.org/show_bug.cgi?id=692928
2013-02-03 09:59:09 -05:00
Lars Uebernickel
7fb922365b gmenumodel: document G_MENU_{ATTRIBUTE,LINK}_*
https://bugzilla.gnome.org/show_bug.cgi?id=692928
2013-02-03 09:59:08 -05:00
Lars Uebernickel
aeafab17c7 gmenuexporter: fix typo in docstring
https://bugzilla.gnome.org/show_bug.cgi?id=692928
2013-02-03 09:59:07 -05:00
Matthias Clasen
f802f467a5 Avoid a portability problem in the checksum test
String literals are not guaranteed to work like this.
https://bugzilla.gnome.org/show_bug.cgi?id=570572
2013-02-03 09:50:48 -05:00
Matthias Clasen
abbb54cdd6 Fix deprecation note for g_static_mutex_free
It should point at g_mutex_clear, not g_mutex_free.
https://bugzilla.gnome.org/show_bug.cgi?id=678223
2013-02-03 01:30:05 -05:00
Matthias Clasen
d632713a77 Make G_DISABLE_DEPRECATED work again for wholly deprecated headers
Patch by Milan Crha,

https://bugzilla.gnome.org/show_bug.cgi?id=688169
2013-02-03 01:11:02 -05:00
Dan Winship
39a528b9fd g_option_context_help: don't modify the input data
If there are options that need their names to be aliased, keep track
of that internally rather than modifying the passed-in GOptionGroup
(and leaking strings in the process).

https://bugzilla.gnome.org/show_bug.cgi?id=682560
2013-02-03 00:46:52 -05:00
Matthias Clasen
ab328469f5 Silence automake
automake doesn't like INCLUDES anymore.
2013-02-02 22:54:15 -05:00
Matthias Clasen
0336eb67a2 Log errors the same way as messages
This will make sense if we keep going past
the assertions that cause the error to be logged.
2013-02-02 18:27:22 -05:00
Matthias Clasen
f5f151cb85 Simplify glib/glib/tests setup
The Makefile.am was setting a ton of unnecessary things
2013-02-02 18:27:22 -05:00
Matthias Clasen
8455702a8d Make the logging test more robust
The default handler test was not unsetting the log handler that
gets installed by GTest, which causes the log messages to be duplicated
on stdout if --verbose or --tap are passed. This in turn can make some
of the non-match checks fail. Since we are already using g_test_trap_fork,
we can just unset the handler in the child.
2013-02-02 18:27:22 -05:00
Piotr Drąg
067d822968 Updated Polish translation 2013-02-03 00:24:14 +01:00
Yaron Shahrabani
278fe4a20f Updated Hebrew translation. 2013-02-02 11:23:56 +02:00
Will Thompson
a809650a06 Test for g_hash_table_insert() corrupting sets
https://bugzilla.gnome.org/show_bug.cgi?id=692815
2013-02-02 00:34:06 -05:00
Ryan Lortie
bb1df4d01b hashtable: properly handle insert() de-set-ifying
GHashTable remains a set for as long as all of the keys are exactly
equal (in pointer value) to all of the values.  We check this by
comparing keys to values when we do inserts.

Unfortunately, when doing g_hash_table_insert() when a key is already in
the table, the old key pointer value is kept, but the new value pointer
is used.  Now we have a situation where a key pointer is unequal to a
value pointer, but we were not treating this case properly.

Fix that.

https://bugzilla.gnome.org/show_bug.cgi?id=692815
2013-02-02 00:34:01 -05:00
Руслан Ижбулатов
b1e02c7e32 Fix gio tests makefile for W32
While compiling, libtool will say that undefined symbols are not allowed, and
will refuse to make you a dll. This is only one line, easy to miss. And it
doesn't prevent `make' from completing successfully.

The code this patch adds is from other Makefile.am files that use
$(no_undefined). It's absence in gio is, most likely, an oversight.

Fixes #692058
2013-02-02 00:25:27 -05:00
Matthias Clasen
59372663f2 Don't try to find nfs mounts on Windows
This should fix the build there.
https://bugzilla.gnome.org/show_bug.cgi?id=592211
2013-02-02 00:19:15 -05:00
Ryan Lortie
477490786b gmain: equivocate a bit on _set_ready_time()
Since this is a new API this cycle it's a good time to add a doc comment
explicitly declaring that a confusing issue that could be resolved
either way has no specific defined behaviour.

This may allow us some additional freedom in future GMainContext work or
we may decide that one behaviour is more desirable than the other.
2013-02-01 04:56:23 +01:00
Stef Walter
3202978060 gdbus: Don't output invalid nested <para> docbook tags
Fix gdbus-codegen so it no longer outputs tags like
<para><para>Text</para></para>

https://bugzilla.gnome.org/show_bug.cgi?id=692865
2013-01-31 10:00:55 +01:00
Stef Walter
11e208f9d6 gdbus: Don't output invalid empty <variablelist> tags
Docbook doesn't allow an empty <variablelist> and so the docbook
output from gdbus-codegen is invalid when a method/signal has
no arguments.

https://bugzilla.gnome.org/show_bug.cgi?id=692865
2013-01-31 10:00:55 +01:00
Dan Winship
a60014f1b6 GInetSocketAddress: fix the byte order of flowinfo and scope_id
The flowinfo and scope_id fields of struct sockaddr_in6 are in host
byte order, but the code previously assumed they were in network byte
order. Fix that.

This is an ABI-breaking change (since before you would have had to use
g_ntohl() and g_htonl() with them to get the correct values, and now
that would give the wrong values), but the previous behavior was
clearly wrong, and no one ever reported it, so it is likely that no
one was actually using it.

https://bugzilla.gnome.org/show_bug.cgi?id=684404
2013-01-30 16:46:02 -05:00
Cosimo Cecchi
0ea7abaed5 gmacros: add G_GNUC_UNUSED to G_STATIC_ASSERT
Silence some warnings seen with GCC 4.8.
2013-01-30 17:59:09 +01:00
Kjartan Maraas
7986d834c0 Updated Norwegian bokmål translation 2013-01-29 19:36:58 +01:00
Colin Walters
f398bec5bc Add g_close(), use it
There are two benefits to this:

1) We can centralize any operating system specific knowledge of
   close-vs-EINTR handling.  For example, while on Linux we should never
   retry, if someone cared enough later about HP-UX, they could come by
   and change this one spot.
2) For places that do care about the return value and want to provide
   the caller with a GError, this function makes it convenient to do so.

Note that gspawn.c had an incorrect EINTR loop-retry around close().

https://bugzilla.gnome.org/show_bug.cgi?id=682819
2013-01-29 09:46:04 -05:00
Simon McVittie
cf68300d27 g_atomic_int_get, g_atomic_pointer_get: accept const arguments
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Matthias Clasen <mclasen@redhat.com>
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=692583
2013-01-28 11:37:53 +00:00
Matej Urbančič
f7b31301d5 Updated Slovenian translation 2013-01-27 22:29:37 +01:00
Colin Walters
166766a89f GFile: Clean up file_copy_fallback to fix SEGV with btrfs
Ok, this function was just an awful mess before.  Now the problem
domain is not trivial, and I won't claim this new code is *beautiful*,
but it should fix the bug at hand, and be somewhat less prone to
failure for the next person who tries to modify it.  There's only one
unref call for each object now.

https://bugzilla.gnome.org/show_bug.cgi?id=692408
2013-01-27 11:04:48 -05:00
Aurimas Černius
1818e0a2f8 Updated Lithuanian translation 2013-01-26 20:24:32 +02:00
Rui Matos
67694fb35e gsequence: Fix g_sequence_lookup() return value documentation
Mention that we return NULL if the item we are looking up isn't
found.
2013-01-26 19:12:10 +01:00
Dan Winship
82f2ee90fe .gitignore updates 2013-01-26 10:09:33 -05:00
Matthias Clasen
1eb5c7cedd Plug a small memleak in gdbus-export test 2013-01-25 20:09:26 -05:00
Colin Walters
48fd507012 gfile: Ensure we create internal pipe with FD_CLOEXEC
That way the descriptors aren't leaked to child processes.

https://bugzilla.gnome.org/show_bug.cgi?id=692544
2013-01-25 13:45:07 -05:00