177 Commits

Author SHA1 Message Date
Sébastien Wilmet
f9faac7661 glib/: LGPLv2+ -> LGPLv2.1+
All glib/*.{c,h} files have been processed, as well as gtester-report.

12 of those files are not licensed under LGPL:

	gbsearcharray.h
	gconstructor.h
	glibintl.h
	gmirroringtable.h
	gscripttable.h
	gtranslit-data.h
	gunibreak.h
	gunichartables.h
	gunicomp.h
	gunidecomp.h
	valgrind.h
	win_iconv.c

Some of them are generated files, some are licensed under a BSD-style
license and win_iconv.c is in the public domain.

Sub-directories inside glib/:

	deprecated/: processed in a previous commit
	glib-mirroring-tab/: already LGPLv2.1+
	gnulib/: not modified, the code is copied from gnulib
	libcharset/: a copy
	pcre/: a copy
	tests/: processed in a previous commit

https://bugzilla.gnome.org/show_bug.cgi?id=776504
2017-05-24 11:58:19 +02:00
John Lindgren
7641cf29e3 Do not mix declarations with code.
https://bugzilla.gnome.org/show_bug.cgi?id=781298
2017-04-14 05:24:48 +00:00
Philip Withnall
a5b58da6bf gfileutils: Add precondition checks to g_file_test()
Otherwise g_file_test(NULL, …) causes a call to access(NULL, …) on
Linux, which is disallowed and valgrind complains about it.

https://bugzilla.gnome.org/show_bug.cgi?id=755046
2017-04-08 01:16:04 -04:00
Christoph Reiter
d1528402ab gfileutils: Remove old win32 codepage ABI compat code
Makes new code link against the normal symbol names again.
Variants with utf8 suffix are there for existing binaries/ABI compat.

https://bugzilla.gnome.org/show_bug.cgi?id=780634
2017-04-06 19:21:20 +02:00
Bastien Nocera
810a6eb1d6 gfileutils: Mention g_dir_make_tmp() in g_mkdtemp*() docs
https://bugzilla.gnome.org/show_bug.cgi?id=777493
2017-01-24 11:05:31 +01:00
Philip Chimento
4fbcd18bdf introspection: Skip g_mkdtemp() and friends
Based on bugs [1] and [2], gobject-introspection does not handle the
same string being 1) returned from an inout argument and 2) returned
as the function's return value, and is not going to.
Therefore, these functions should be skipped in introspection.

[1] https://bugzilla.gnome.org/show_bug.cgi?id=679351
[2] https://bugzilla.gnome.org/show_bug.cgi?id=679362

https://bugzilla.gnome.org/show_bug.cgi?id=777493
2017-01-24 11:04:28 +01:00
Bastien Nocera
bc8361262b gfileutils: Fix g_mkdtemp*() API docs
Don't refer to g_mkdtemp() when documenting g_mkdtemp_full() and
speaking about the function itself, and remove mention of flags in
aforementioned g_mkdtemp_full(), as it doesn't have such an argument
(but g_mkstemp_full() does).

https://bugzilla.gnome.org/show_bug.cgi?id=777493
2017-01-23 14:33:11 +01:00
Sébastien Wilmet
8edcf67b02 License headers: "GLib" -> "This library"
Harmonize a little the license headers. In most of the license headers
in GLib, it is "This library".

It is also what is explained at:
https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html#SEC4
"How to Apply These Terms to Your New Libraries"

https://bugzilla.gnome.org/show_bug.cgi?id=776586
2017-01-04 19:12:56 +01:00
Christian Hergert
18a33f72db introspection: use (nullable) or (optional) instead of (allow-none)
If we have an input parameter (or return value) we need to use (nullable).
However, if it is an (inout) or (out) parameter, (optional) is sufficient.

It looks like (nullable) could be used for everything according to the
Annotation documentation, but (optional) is more specific.
2016-11-22 14:14:37 -08:00
Piotr Drąg
10c490cdfe Use Unicode in translatable strings
See https://developer.gnome.org/hig/stable/typography.html

https://bugzilla.gnome.org/show_bug.cgi?id=772221
2016-10-12 21:30:42 +02:00
Nikita Churaev
ec40e9d921 gfileutils: Add missing (type filename) annotations
These differentiate between strings in the GLib filename encoding, and
strings in UTF-8.

https://bugzilla.gnome.org/show_bug.cgi?id=700756
2016-06-15 11:04:18 -04:00
Philip Withnall
c91411464e gfileutils: Fix a signed/unsigned integer comparison
Also use size_t rather than int, allowing for larger files to be
handled.

https://bugzilla.gnome.org/show_bug.cgi?id=700756
2016-06-15 10:59:56 -04:00
Christoph Reiter
41013a01f4 glib: Add filename type annotations
Adds the filename annotation for all file names
and things which can contain file names like
environment variables, argv-

On Unix they can contain anything while on Windows
they are always utf-8.

https://bugzilla.gnome.org/show_bug.cgi?id=767245
2016-06-04 20:38:33 +02:00
Philip Withnall
b9c94b344e gfileutils: Mark the return value from g_path_skip_root() as nullable
It returns NULL for non-absolute paths.

https://bugzilla.gnome.org/show_bug.cgi?id=719966
2015-03-03 17:59:50 +00:00
Руслан Ижбулатов
6680ff1ee9 Save errno and pass it along to make sure gettext does not change it
https://bugzilla.gnome.org/show_bug.cgi?id=725514
2014-08-02 10:54:01 +00:00
Colin Walters
49a5d0f6f2 gfileutils: Add missing g_free() in error path
Discovered by static analysis.

https://bugzilla.gnome.org/show_bug.cgi?id=733576
2014-07-23 07:43:41 -04:00
William Jon McCann
20f4d1820b docs: use "Returns:" consistently
Instead of "Return value:".
2014-02-19 19:41:52 -05:00
Matthias Clasen
bc6ee788b4 docs: let go of *
Since we are no longer using sgml mode, using /* */ to
escape block comments inside examples does not work anymore.
Switch to using line comments with //
2014-02-14 21:33:36 -05:00
Matthias Clasen
3232425785 Docs: replace <literal> by ` 2014-02-06 08:07:16 -05:00
Matthias Clasen
111803030d Don't use <envar> in docs
Switch to simpler markdown, `foo`.
2014-02-05 19:32:41 -05:00
Matthias Clasen
adf892e96a Annotate all examples with their language
The C ones, at least.
2014-02-01 15:11:49 -05:00
Matthias Clasen
fab4f91907 fileutils: Convert docs to markdown
In particular, convert lists to markdown syntax.
2014-02-01 10:22:44 -05:00
Daniel Mustieles
078dbda148 Updated FSF's address 2014-01-31 14:31:55 +01:00
Matthias Clasen
f16753cfe0 Unify error reporting in gfileutils.c
Use the set_file_error helper function in more places,
saving some 50 lines.
2014-01-01 17:59:21 -05:00
Ryan Lortie
a22f77739d g_get_current_dir(): consult PWD first
Check if the current directory is the same as $PWD.  This matches the
behaviour of the get_current_dir_name() function in glibc.

https://bugzilla.gnome.org/show_bug.cgi?id=705902
2013-12-09 12:10:16 -05:00
Philip Withnall
33dd6d12d7 gfileutils: Fix a potential integer overflow
When calculating the array sizes in get_contents_stdio(), there is a
possibility of overflow for very large files. Rearrange the overflow
checks to avoid this.

The code already handled some possibilities of files being too large, so
no new GError has been added to handle this; the existing
G_FILE_ERROR_FAILED is re-used.

Found by scan-build.

https://bugzilla.gnome.org/show_bug.cgi?id=715164
2013-11-27 10:05:56 +00:00
Dan Winship
158dde0507 Replace #ifdef HAVE_UNISTD_H checks with #ifdef G_OS_UNIX
In Windows development environments that have it, <unistd.h> is mostly
just a wrapper around several other native headers (in particular,
<io.h>, which contains read(), close(), etc, and <process.h>, which
contains getpid()). But given that some Windows dev environments don't
have <unistd.h>, everything that uses those functions on Windows
already needed to include the correct Windows header as well, and so
there is never any point to including <unistd.h> on Windows.

Also, remove some <unistd.h> includes (and a few others) that were
unnecessary even on unix.

https://bugzilla.gnome.org/show_bug.cgi?id=710519
2013-11-20 09:25:39 -05:00
Dan Winship
3981cddbf8 Require POSIX.1 (1990) compliance on unix
Assume unix platforms support the original POSIX.1 standard.
Specifically, assume that if G_OS_UNIX, then we have chown(),
getcwd(), getgrgid(), getpwuid(), link(), <grp.h>, <pwd.h>,
<sys/types.h>, <sys/uio.h>, <sys/wait.h>, and <unistd.h>.

Additionally, since all versions of Windows that we care about also
have <sys/types.h>, we can remove HAVE_SYS_TYPES_H checks everywhere.

Also remove one include of <sys/times.h>, and the corresponding
configure check, since the include is not currently needed (and may
always have just been a typo for <sys/time.h>).

https://bugzilla.gnome.org/show_bug.cgi?id=710519
2013-11-20 09:17:42 -05:00
Dan Winship
6e4a7fca43 Require C90 compliance
Assume all supported platforms implement C90, and therefore they
(correctly) implement atexit(), memmove(), setlocale(), strerror(),
and vprintf(), and have <float.h> and <limits.h>.

(Also remove the configure check testing that "do ... while (0)" works
correctly; the non-do/while-based version of G_STMT_START and
G_STMT_END was removed years ago, but the check remained. Also, remove
some checks that configure.ac claimed were needed for libcharset, but
aren't actually used.)

Note that removing the g_memmove() function is not an ABI break even
on systems where g_memmove() was previously not a macro, because it
was never marked GLIB_AVAILABLE_IN_ALL or listed in glib.symbols, so
it would have been glib-internal since 2004.

https://bugzilla.gnome.org/show_bug.cgi?id=710519
2013-11-20 09:16:16 -05:00
Dan Winship
7f5b2901cf Remove alleged support for last-millennium Unixes
Remove workarounds for NeXTStep (last released in 1995), SunOS (1994),
HP-UX 9.x (1992) and 10.x (1995), OSF/1 / Digital UNIX / Tru64 UNIX
4.x (1999), and AIX 4.x (1999).

HP-UX 11 implements dlopen(), so dropping support for earlier versions
also lets us remove the HP-UX-specific gmodule-dld.

https://bugzilla.gnome.org/show_bug.cgi?id=710519
2013-11-20 09:16:16 -05:00
Bastien Nocera
5a3fd63246 g_file_error_from_errno: Remove unneeded breaks
Just wasting space

https://bugzilla.gnome.org/show_bug.cgi?id=710625
2013-10-23 00:22:21 -04:00
John Ralls
ab5aa2aa3a Fix the -Werror=format-nonliteral fixes for older GCCs
They don't allow that pragma inside functions.
2013-09-29 11:33:30 -07:00
Colin Walters
38d1658b87 gfileutils: Make -Werror=format-nonliteral happy
I tried to please it by using G_GNUC_FORMAT, but that didn't work, so
let's just fall back to pushing an ignore.

https://bugzilla.gnome.org/show_bug.cgi?id=702516
2013-09-29 11:02:30 -04:00
Colin Walters
4829e02c09 Revert "g_file_set_contents(): don't fsync on ext3/4"
We didn't actually do any real-world testing of this, and
unsurprisingly it turns out to break in at least one widely-used
configuration (Fedora 19 x86_64, ext4 on LVM).

This reverts commit 9d0c17b50102267a5029b58b1f44efbad82d8f03.

https://bugzilla.gnome.org/show_bug.cgi?id=701560
2013-06-20 16:49:49 -04:00
Ryan Lortie
9d0c17b501 g_file_set_contents(): don't fsync on ext3/4
ext3 and ext4 (for quite some time) with default mount options don't
need fsync() to ensure safety of replace-by-rename.  Stop doing that for
these filesystems.

Note: this patch also impacts ext2, which is probably not safe, but I
don't know of any way to check ext2. vs the others because they all have
the same magic numbers (short of opening /proc/mount).

This patch assumes that if BTRFS_SUPER_MAGIC is defined then so will be
EXT3_SUPER_MAGIC.

https://bugzilla.gnome.org/show_bug.cgi?id=701560
2013-06-04 09:52:10 -04:00
Ryan Lortie
c828aef014 g_file_set_contents: change {posix_ => }fallocate
Use fallocate() instead of posix_fallocate() so that we just fail
instead of getting the emulated version from the libc.

https://bugzilla.gnome.org/show_bug.cgi?id=701560
2013-06-03 22:55:20 -04:00
Ryan Lortie
fc98c13fde g_file_set_contents(): fix simple logic error
CI FTW.
2013-06-03 17:59:29 -04:00
Ryan Lortie
e40435e834 g_file_set_contents(): use unistd instead of stdio
Use a normal write() system call instead of fdopen() and fwrite().

This will definitely work on UNIX system and should work on Windows as
well...

As an added bonus, we can use g_close() now as well.

https://bugzilla.gnome.org/show_bug.cgi?id=701560
2013-06-03 17:49:06 -04:00
Ryan Lortie
c152ceba09 g_file_set_contents(): don't allocate display name
g_file_set_contents() sets a GError in the event of various failures
that count occur.  It uses g_filename_display_name() in order to get the
filename to include in the messages.

Factor out the error handling to make it easier to allocate the display
name only when we need it (instead of allocating it every time).

https://bugzilla.gnome.org/show_bug.cgi?id=701560
2013-06-03 17:43:36 -04:00
Ryan Lortie
d3be43fcc5 g_file_set_contents(): use posix_fallocate()
Extents-based filesystems like knowing in advance how much data will be
written to a file in order to prevent fragmentation.  If we have it, use
posix_fallocate() before writing data in g_file_set_contents().

https://bugzilla.gnome.org/show_bug.cgi?id=701560
2013-06-03 16:12:04 -04:00
Dan Winship
4b94c0831e Use 'dumb quotes' rather than `really dumb quotes'
Back in the far-off twentieth century, it was normal on unix
workstations for U+0060 GRAVE ACCENT to be drawn as "‛" and for U+0027
APOSTROPHE to be drawn as "’". This led to the convention of using
them as poor-man's ‛smart quotes’ in ASCII-only text.

However, "'" is now universally drawn as a vertical line, and "`" at a
45-degree angle, making them an `odd couple' when used together.

Unfortunately, there are lots of very old strings in glib, and also
lots of new strings in which people have kept up the old tradition,
perhaps entirely unaware that it used to not look stupid.

Fix this by just using 'dumb quotes' everywhere.

https://bugzilla.gnome.org/show_bug.cgi?id=700746
2013-05-21 11:23:22 -03:00
Gil Forcada
c67a2ebda3 Incorrect string formatters, fixes #692229 2013-01-25 00:17:18 +01:00
Matthias Clasen
7fd15ee4ae Add plural forms for some translations
https://bugzilla.gnome.org/show_bug.cgi?id=687698
2012-11-09 22:10:10 -05:00
Ryan Lortie
b26fb3ae5c Don't call varargs open() through non-varargs type
open() is probably defined varargs.  Casting a varargs function to an
equivalent non-varargs type and then calling it is undefined, but
gfileutils.c was doing exactly that.

Add some non-varargs wrappers to avoid the problem.

Problem reported by John Spencer.

https://bugzilla.gnome.org/show_bug.cgi?id=687600
2012-11-06 14:40:36 -05:00
Cosimo Cecchi
4b602940e2 glib: don't quote quark names for G_DEFINE_QUARK 2012-08-28 13:16:24 -04:00
Matthias Clasen
4f12f7c029 Use G_DEFINE_QUARK for GLib's own quarks
This commit just deals with glib/.
gobject/ and gio/ will be handled in separate commits.
2012-08-28 00:08:07 -04:00
Colin Walters
eef6f0add8 gfileutils: Remove extra fclose()
This is a regression introduced by:
commit 6ac8e6108cf15884e28fe1ecd3042dfce0e11dfd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 10:12:46 2011 -0400

    Don't leak resources in error cases
2012-06-22 10:32:25 -04:00
Matthias Clasen
8558ae9ad4 Correct some Since tags
As pointed out in bug 666951, g_mkdtemp and g_mkdtemp_full
were only added in 2.30.
2011-12-29 11:57:42 -05:00
Stef Walter
7e92997539 documentation fixes
Fixes for gtk-doc warnings.

http://bugzilla.gnome.org/show_bug.cgi?id=66469

https://bugzilla.gnome.org/show_bug.cgi?id=664699
2011-12-13 23:01:51 -05:00
Matthias Clasen
67bf0083db Reshuffle some functions between gutils and gfileutils
Move filename-related functions to gfileutils, and move
size formatting functions to gutils.
2011-10-17 01:30:31 -04:00