gparted/include
Mike Fleetwood b1cad17a14 Refactor ::OnReadable() creating get_utf8_char_validated() (#136)
Extract call to GLib's g_utf8_get_char_validated() and the associated
workaround to also read NUL characters into a separate function to make
PipeCapture::OnReadable() a little smaller and simpler, so easier to
understand.

Add max_len > 0 clause into get_utf8_char_validated() like this:
    if (uc == UTF8_PARTIAL && max_len > 0)
so that the NUL character reading workaround is only applied when
max_len specifies the maximum number of bytes to read, rather than
when -1 specifies reading a NUL termination string.  This makes
get_utf8_char_validated() a complete wrapper of
g_utf8_get_char_validated() [1], even though GParted always specifies
the maximum number of bytes to read.

No longer describe the inability to read NUL characters as a bug [2]
since the GLib author's said it wasn't [3].

[1] GLib Reference Manual, Unicode Manipulation Functions,
    g_utf8_get_char_validated ()
    https://developer.gnome.org/glib/stable/glib-Unicode-Manipulation.html#g-utf8-get-char-validated

[2] 8dbbb47ce2
    Workaround g_utf8_get_char_validate() bug with embedded NUL bytes
    (#777973)

[3] Bug 780095 - g_utf8_get_char_validated() stopping at nul byte even
    for length specified buffers
    https://bugzilla.gnome.org/show_bug.cgi?id=780095#18
        "If g_utf8_get_char_validated() encounters a nul byte in the
        middle of a string of given longer length, it returns -2,
        indicating a partial gunichar.  That is not the obvious
        behaviour, but since g_utf8_get_char_validated() has been API
        for a long time, the behaviour cannot be changed.
        "

Closes #136 - 1.2.0: test suite is failing in test_PipeCapture
2021-02-22 16:14:35 +00:00
..
BlockSpecial.h Pre-populate BlockSpecial cache while reading /proc/partitions (#767842) 2016-08-06 09:47:58 -06:00
CopyBlocks.h Remove "../include/" from GParted header #includes 2016-12-12 13:15:34 -07:00
DMRaid.h Make 4 internally used only DMRaid methods private 2019-12-02 16:35:22 +00:00
Device.h Add missing includes into Devices module 2020-05-27 16:02:47 +00:00
DialogFeatures.h Rename DialogFeatures::treeview_filesystems_Columns member to fsname (!52) 2019-12-04 07:38:01 +00:00
DialogManageFlags.h Remove "../include/" from GParted header #includes 2016-12-12 13:15:34 -07:00
DialogPasswordEntry.h Clear previous LUKS unlock failure error before next attempt (#795617) 2018-06-19 10:54:48 -06:00
Dialog_Base_Partition.h Snap partition boundaries before dialogs update FS usage (#48) 2019-06-11 15:55:02 +00:00
Dialog_Disklabel.h Ensure icon sizes (#39) 2019-04-06 11:42:28 +01:00
Dialog_FileSystem_Label.h Simplify from Gtk::Table to HBox in FileSystem Label dialog 2018-06-18 10:15:33 -06:00
Dialog_Partition_Copy.h Pass the current device down to Dialog_Base_Partition class (#48) 2019-06-11 15:55:02 +00:00
Dialog_Partition_Info.h Use Gtk::Grid for Dialog_Partition_Info (!25) 2019-04-27 12:03:05 +01:00
Dialog_Partition_Name.h Simplify from Gtk::Table to HBox in Partition Name dialog 2018-06-18 10:15:33 -06:00
Dialog_Partition_New.h Use Gtk::Grid for Dialog_Partition_New (!25) 2019-04-27 12:03:05 +01:00
Dialog_Partition_Resize_Move.h Pass the current device down to Dialog_Base_Partition class (#48) 2019-06-11 15:55:02 +00:00
Dialog_Progress.h Rename Dialog_Progress member variable to m_curr_op 2019-04-11 10:06:36 -06:00
Dialog_Rescue_Data.h Remove "../include/" from GParted header #includes 2016-12-12 13:15:34 -07:00
DrawingAreaVisualDisk.h Use Gdk::RGBA (!25) 2019-04-27 12:03:04 +01:00
FS_Info.h Remove now unused return value from run_blkid_load_cache() (#131) 2021-02-10 16:30:14 +00:00
FileSystem.h Also rename FS.filesystem member to fstype (!52) 2019-12-04 07:37:19 +00:00
Frame_Resizer_Base.h Use Gdk::RGBA (!25) 2019-04-27 12:03:04 +01:00
Frame_Resizer_Extended.h Put Frame_Resizer_{Base,Extended} modules into GParted namespace (!20) 2018-11-26 17:56:32 +00:00
GParted_Core.h Split FILESYSTEMS and FILESYSTEM_MAP into separate module (!49) 2019-11-09 17:18:34 +00:00
HBoxOperations.h Use Gtk::Box for HBoxOperations (!25) 2019-04-27 12:03:04 +01:00
LUKS_Info.h Remove "../include/" from GParted header #includes 2016-12-12 13:15:34 -07:00
LVM2_PV_Info.h Remove "../include/" from GParted header #includes 2016-12-12 13:15:34 -07:00
Makefile.am Split FILESYSTEMS and FILESYSTEM_MAP into separate module (!49) 2019-11-09 17:18:34 +00:00
MenuHelpers.h prepare-for-gtk3: Prepare for removal of Gtk::Menu_Helpers::Element (#7) 2019-02-11 08:57:18 +00:00
Mount_Info.h Add and set read-only mount flag in the Partition object (#10) 2018-09-20 16:30:15 +00:00
Operation.h Create and use general find_extended_partition() function 2017-01-14 08:49:58 -07:00
OperationChangeUUID.h Remove "../include/" from GParted header #includes 2016-12-12 13:15:34 -07:00
OperationCheck.h Remove "../include/" from GParted header #includes 2016-12-12 13:15:34 -07:00
OperationCopy.h Remove "../include/" from GParted header #includes 2016-12-12 13:15:34 -07:00
OperationCreate.h Remove "../include/" from GParted header #includes 2016-12-12 13:15:34 -07:00
OperationDelete.h Remove "../include/" from GParted header #includes 2016-12-12 13:15:34 -07:00
OperationDetail.h Rename OperationDetailStatus STATUS_N_A to STATUS_WARNING 2017-11-26 10:53:52 -07:00
OperationFormat.h Remove "../include/" from GParted header #includes 2016-12-12 13:15:34 -07:00
OperationLabelFileSystem.h Remove "../include/" from GParted header #includes 2016-12-12 13:15:34 -07:00
OperationNamePartition.h Remove "../include/" from GParted header #includes 2016-12-12 13:15:34 -07:00
OperationResizeMove.h Remove "../include/" from GParted header #includes 2016-12-12 13:15:34 -07:00
OptionComboBox.h modern-gtk2: Delay construction of Gtk::TreeModel* objects (!17) 2018-11-12 21:50:42 +00:00
Partition.h Rename Partition.filesystem member to fstype (!52) 2019-12-03 13:24:44 +00:00
PartitionLUKS.h Rename enum FILESYSTEM to FSType 2018-01-28 10:09:35 -07:00
PartitionVector.h Create and use general find_extended_partition() function 2017-01-14 08:49:58 -07:00
PasswordRAMStore.h Change to insert or replace PasswordRAMStore::store() interface (#795617) 2018-04-30 09:10:48 -06:00
PipeCapture.h Refactor ::OnReadable() creating get_utf8_char_validated() (#136) 2021-02-22 16:14:35 +00:00
Proc_Partitions_Info.h Read partition names from /proc/partitions too (#131) 2021-02-10 16:30:13 +00:00
ProgressBar.h Write a generic progress bar class (#760709) 2016-02-12 09:09:56 -07:00
SWRaid_Info.h Display correct type of mdadm recognised ATARAID members (#75) 2019-12-02 16:35:22 +00:00
SupportedFileSystems.h Split FILESYSTEMS and FILESYSTEM_MAP into separate module (!49) 2019-11-09 17:18:34 +00:00
TreeView_Detail.h Remove unneeded #include <vector> from TreeView_Detail.h 2020-09-18 16:00:44 +00:00
Utils.h Rename Utils method parameters of type FSType (!52) 2019-12-04 07:38:00 +00:00
Win_GParted.h Replace Win_GParted::hbox member with local variables 2021-02-10 16:30:14 +00:00
btrfs.h Stop providing a default for FileSystem::resize() fill_partition argument 2016-12-12 13:15:34 -07:00
exfat.h Add support for updating the exFAT UUID (!67) 2021-02-17 17:16:48 +00:00
ext2.h Remove checks for e4fsprogs commands (#794253) 2018-03-26 10:16:45 -06:00
f2fs.h Enhance F2FS support (!29) 2019-03-26 08:08:10 +00:00
fat16.h Switch to faster minfo and mdir to read FAT16/32 usage (#569921) 2019-07-04 10:51:50 -06:00
hfs.h Remove "../include/" from GParted header #includes 2016-12-12 13:15:34 -07:00
hfsplus.h Remove "../include/" from GParted header #includes 2016-12-12 13:15:34 -07:00
i18n.h Drop compose subdir (#46) 2019-03-27 16:45:22 +00:00
jfs.h Stop providing a default for FileSystem::resize() fill_partition argument 2016-12-12 13:15:34 -07:00
linux_swap.h Make get_custom_text() and get_generic_text() return by reference 2018-06-18 10:15:33 -06:00
luks.h Make get_custom_text() and get_generic_text() return by reference 2018-06-18 10:15:33 -06:00
lvm2_pv.h Make get_custom_text() and get_generic_text() return by reference 2018-06-18 10:15:33 -06:00
minix.h Add support for minix file system (!12) 2018-08-24 20:22:08 +01:00
nilfs2.h Stop providing a default for FileSystem::resize() fill_partition argument 2016-12-12 13:15:34 -07:00
ntfs.h Rework scope of fat16:: and ntfs::Change_UUID_Warning vectors 2018-06-18 14:47:17 -06:00
reiser4.h Remove "../include/" from GParted header #includes 2016-12-12 13:15:34 -07:00
reiserfs.h Stop providing a default for FileSystem::resize() fill_partition argument 2016-12-12 13:15:34 -07:00
udf.h Set dynamic UDF file system size limits (#787204) 2018-01-28 10:09:35 -07:00
xfs.h Stop providing a default for FileSystem::resize() fill_partition argument 2016-12-12 13:15:34 -07:00