Hermès Bélusca-Maïto [Wed, 17 May 2017 23:31:52 +0000 (23:31 +0000)]
[SETUPLIB] Consolidate the FsUtil and PartList modules of the SetupLib.
- Add a PreparePartitionForFormatting routine that sets the partition ID depending on the chosen filesystem.
- The 'FORMATMACHINESTATE FormatState' machine-state and the 'TempPartition' members of the partition list structure is purely a USETUP convenience, so remove them from the PARTLIST structure and move them back into USETUP.
- Attempt to recognize the filesystem (set the 'FileSystem' member of PARTENTRY) of partitions we are adding into the PARTLIST list.
- Fix the return value of the SelectPartition function, which is by the way completely broken (it doesn't do what it is supposed to do; alternatively its naming is completely wrong...).
svn path=/branches/setup_improvements/; revision=74572
svn path=/branches/setup_improvements/; revision=74573
Hermès Bélusca-Maïto [Wed, 17 May 2017 23:37:41 +0000 (23:37 +0000)]
[SETUPLIB][USETUP] Introduce a 'SetupLib' library. CORE-13544
- Create the beginnings of a "setuplib" library, whose aim is to be shared between the (currently existing) 1st-stage text-mode installer, and the (future) 1st-stage GUI installer.
- Finish to split the GenList and PartList codes into their UI part, which remain in usetup, and their algorithmic part, which go into setuplib.
- Move SetMountedDeviceValue into the PartList module.
- Split the FileSystem list code into its UI and the algorithmic part (which goes into setuplib under the name fsutil.c).
* The algo part is meant to be able to manage the filesystems available on the running system, similarly to what is mostly done (in scattered form) in fmifs, format, chkdsk / autochk codes...
It also manages the partition filesystem recognition, using OS routines.
* The UI part manages the FS list as it appears on screen, showing only the possible FSes that can be used to format the selected partition (a bit similar to what we do in the shell32's drive.c, etc...).
- Adapt the calling code to these changes.
- Remove some "host" code that was dating back from the dark old times.
svn path=/branches/setup_improvements/; revision=74570
svn path=/branches/setup_improvements/; revision=74659
Bișoc George [Sun, 27 May 2018 13:19:14 +0000 (15:19 +0200)]
[USERSRV] Romanian translation update
Eric Kohl [Sun, 27 May 2018 13:29:31 +0000 (15:29 +0200)]
[USERENV] Implement CopySystemProfile Part 1 (Add a new profile subkey and values to the profile list)
CORE-12541
Pierre Schweitzer [Sun, 27 May 2018 07:51:38 +0000 (09:51 +0200)]
[WINETESTS] Fix build
CORE-14656
Amine Khaldi [Sun, 27 May 2018 03:13:26 +0000 (04:13 +0100)]
[HNETCFG_WINETEST] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 03:12:51 +0000 (04:12 +0100)]
[HNETCFG] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 03:12:13 +0000 (04:12 +0100)]
[HLINK_WINETEST] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 03:11:35 +0000 (04:11 +0100)]
[GDIPLUS_WINETEST] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 03:10:39 +0000 (04:10 +0100)]
[GDIPLUS] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 03:09:49 +0000 (04:09 +0100)]
[PSDK] Add missing GdipSetPathGradientPath() and GdipTranslatePenTransform(). CORE-14656
Amine Khaldi [Sun, 27 May 2018 03:08:32 +0000 (04:08 +0100)]
[DBGHELP] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 03:07:57 +0000 (04:07 +0100)]
[CRYPT32] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 03:07:12 +0000 (04:07 +0100)]
[COMDLG32_WINETEST] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 03:06:36 +0000 (04:06 +0100)]
[COMDLG32] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 03:05:33 +0000 (04:05 +0100)]
[INCLUDE/WINE][USER32_APITEST] Add ARRAY_SIZE to test.h and remove it from RealGetWindowClass.c. CORE-14656
Amine Khaldi [Sun, 27 May 2018 03:03:38 +0000 (04:03 +0100)]
[PSDK] Add missing OFN_EX_NOPLACESBAR. CORE-14656
Amine Khaldi [Sun, 27 May 2018 03:02:26 +0000 (04:02 +0100)]
[AVIFIL32] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 03:01:18 +0000 (04:01 +0100)]
[QUARTZ_WINETEST] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 03:00:39 +0000 (04:00 +0100)]
[QUARTZ] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 02:59:47 +0000 (03:59 +0100)]
[MSDMO] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 02:59:04 +0000 (03:59 +0100)]
[DMUSIC] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 02:58:11 +0000 (03:58 +0100)]
[DINPUT_WINETEST] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 02:57:38 +0000 (03:57 +0100)]
[DINPUT] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 02:56:54 +0000 (03:56 +0100)]
[DEVENUM_WINETEST] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 02:56:13 +0000 (03:56 +0100)]
[DEVENUM] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 02:55:03 +0000 (03:55 +0100)]
[PSDK] Add missing DRV_QUERYFUNCTIONINSTANCEID. CORE-14656
Amine Khaldi [Sun, 27 May 2018 02:54:15 +0000 (03:54 +0100)]
[D3DX9_24 => 43] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 02:53:02 +0000 (03:53 +0100)]
[D3DRM] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 02:52:04 +0000 (03:52 +0100)]
[D3D8][D3D9][DDRAW][WINED3D] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 02:50:07 +0000 (03:50 +0100)]
[AMSTREAM] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 02:49:14 +0000 (03:49 +0100)]
[REG_WINETEST] Sync with Wine Staging 3.9. CORE-14656
Amine Khaldi [Sun, 27 May 2018 02:48:33 +0000 (03:48 +0100)]
[REG] Sync with Wine Staging 3.9. CORE-14656
Hermès Bélusca-Maïto [Mon, 15 May 2017 19:41:18 +0000 (19:41 +0000)]
[USETUP] Similarly to what was done for GenLists, factor out the UI code from the partition list code.
This will allow to reuse it for the 1st-stage GUI setup too, while using another UI representation.
Add also two partition iterator functions: GetNextPartition and GetPrevPartition.
svn path=/branches/setup_improvements/; revision=74554
Hermès Bélusca-Maïto [Mon, 15 May 2017 16:22:18 +0000 (16:22 +0000)]
[USETUP] Factor out the UI-specific code from the GenList code, and wrap it inside a GENERIC_LIST_UI structure.
The aim here is to decouple the UI-specific code from code that can be used by both the text-mode USETUP and a future 1st-stage GUI setup.
Indeed, the GenLists can actually be used in the 1st-stage GUI; and their contents be displayed inside ListBoxes/ListViews... (this is just one example amongst others).
Additionally (in usetup.c):
- Make both FormatPartitionPage and CheckFileSystemPage return PAGE_NUMBERs.
- Improve a couple of comments.
svn path=/branches/setup_improvements/; revision=74553
Hermès Bélusca-Maïto [Mon, 15 May 2017 01:43:28 +0000 (01:43 +0000)]
[USETUP] Additions for generic lists.
- Allow retrieving the number of items existing in the list;
- Fix the name of some function parameters.
svn path=/branches/setup_improvements/; revision=74547
Hermès Bélusca-Maïto [Sat, 13 May 2017 16:40:30 +0000 (16:40 +0000)]
[USETUP] Additions for the PartList code.
- Document more some of the fields in the PARTENTRY, DISKETNRY and PARTLIST structures;
- Remove the redundant members "SystemDisk", "OriginalSystemDisk" and "TempDisk" in PARTLIST as these can be consistently deduced from the corresponding (Original)(System)(Temp)Partition members
(note that we however keep "CurrentDisk" alongside "CurrentPartition", see the comment in the code why we do it so).
- Adjust the rest of the code to take the removal of the redundant members into account. The 2nd parameter of GetNextUnformattedPartition() and GetNextUncheckedPartition() is now really optional.
- Introduce a SetPartitionType() helper to simplify the code that sets the partition type, which also automatically adjusts other internal variables of said partition in accordance.
- "Mounted" logical drives can have assigned letters too, registered in \DosDevices\.
svn path=/branches/setup_improvements/; revision=74532
Hermès Bélusca-Maïto [Sat, 13 May 2017 16:32:53 +0000 (16:32 +0000)]
[USETUP] Code improvements for PartList.
- Use explicit ansi string safe functions (where they are used ansi, but not explicitely);
- Add (old-school) function parameters annotations;
- Use PARTITION_ENTRY_UNUSED where needed (instead of hardcoding its value);
- Turn some functions static to this module;
- Turn the 2nd parameter of both GetNextUnformattedPartition() and GetNextUncheckedPartition() optional (for next commit);
- Improve some comments;
- Use NT types.
svn path=/branches/setup_improvements/; revision=74531
Hermès Bélusca-Maïto [Sat, 13 May 2017 16:20:10 +0000 (16:20 +0000)]
[USETUP] Enhancements for filesystem utility functions.
- Introduce code that detects the filesystem of a (mounted?) partition, using NtQueryVolumeInformationFile() with FileFsAttributeInformation class,
aka. rely on ReactOS itself (kernel, storage stack, filesystem drivers...) to recognize the FS on a partition that should normally be seen by the system.
This currently half-works for whatever reason (to be insvestigated), while it works on Windows.
- Fix few comments & a function parameter name.
- Use NT string pointer types.
svn path=/branches/setup_improvements/; revision=74529
Hermès Bélusca-Maïto [Sat, 13 May 2017 16:13:49 +0000 (16:13 +0000)]
[USETUP] Add & modify some file utility functions that are going to be used next.
- ConcatPaths that concatenates paths (or a path and a file name);
- OpenAndMapFile (resp. UnMapFile), whose purpose is to open a file and map it in memory (resp. unmap it from memory).
- Add extra optional parameters to DoesPathExist and DoesFileExist: an optional "RootDirectory" handle and, for DoesFileExist only, an optional PathName.
- Close the opened file handles only on success.
svn path=/branches/setup_improvements/; revision=74528
svn path=/branches/setup_improvements/; revision=74538
svn path=/branches/setup_improvements/; revision=74549
Hermès Bélusca-Maïto [Wed, 17 May 2017 23:37:41 +0000 (23:37 +0000)]
[USETUP] Fix some spacings in the french translation.
svn path=/branches/setup_improvements/; revision=74574
Hermès Bélusca-Maïto [Sat, 13 May 2017 16:23:08 +0000 (16:23 +0000)]
[USETUP] Code formatting only.
svn path=/branches/setup_improvements/; revision=74530
Eric Kohl [Sat, 26 May 2018 16:42:31 +0000 (18:42 +0200)]
[MSV1_0] Add logon support for the LocalService and NetworkService accounts
Pierre Schweitzer [Sat, 26 May 2018 15:12:03 +0000 (17:12 +0200)]
[FASTFAT] Lock DirResource when modifying an entry on disk.
Likely not optimal, but fixes some races conditions where
the directory is uninit in the middle of the write.
Benedikt Freisen [Sat, 26 May 2018 11:23:20 +0000 (13:23 +0200)]
[MSPAINT] When clicking selection, invalidate _and_ repaint Scroll Client _and_ Image Area
Previously, the canvas disappeared when a selection was clicked until the mouse was moved.
CORE-13288
Benedikt Freisen [Sat, 26 May 2018 10:36:47 +0000 (12:36 +0200)]
[MSPAINT] Store subsequent changes to file selected via Save As
Paint has erroneously been storing subsequent changes to Unnamed.bmp
CORE-13291
Pierre Schweitzer [Sat, 26 May 2018 09:00:51 +0000 (11:00 +0200)]
[UBTRFS] Upgrade to 1.0.2
CORE-14655
Pierre Schweitzer [Sat, 26 May 2018 08:58:48 +0000 (10:58 +0200)]
[SHELLBTRFS] Upgrade to 1.0.2
CORE-14655
Pierre Schweitzer [Sat, 26 May 2018 08:44:36 +0000 (10:44 +0200)]
[BTRFS] Upgrade to 1.0.2
CORE-14655
Pierre Schweitzer [Sat, 26 May 2018 08:12:00 +0000 (10:12 +0200)]
[FASTFAT] Initialize cache if neded for changing volume label.
CORE-14654
Eric Kohl [Fri, 25 May 2018 23:54:58 +0000 (01:54 +0200)]
[MSGINA] Clean-up the resource IDs and the dialog function names.
Pierre Schweitzer [Fri, 25 May 2018 19:40:39 +0000 (21:40 +0200)]
[NTOSKRNL] Implement KeQueryValuesProcess().
And make use of it.
Pierre Schweitzer [Fri, 25 May 2018 06:46:19 +0000 (08:46 +0200)]
[NTOSKRNL] Make NtSetInformationJobObject() success for JobObjectExtendedLimitInformation
This fixes pip from Python 2.7.9 starting in ReactOS.
Though it doesn't work due to TLS issues.
Pierre Schweitzer [Fri, 25 May 2018 06:14:44 +0000 (08:14 +0200)]
[NTOSKRNL] Define required sizes with structures sizes
Pierre Schweitzer [Fri, 25 May 2018 06:14:16 +0000 (08:14 +0200)]
[SDK] Add more types for job objects information
Pierre Schweitzer [Thu, 24 May 2018 22:18:20 +0000 (00:18 +0200)]
[NTOSKRNL] Implement NtQueryInformationJobObject().
This is required by some Python2 applications
such as pip.exe
Pierre Schweitzer [Thu, 24 May 2018 22:17:58 +0000 (00:17 +0200)]
[SDK] Add a few types for job objects information
Stanislav Motylkov [Thu, 24 May 2018 17:11:46 +0000 (20:11 +0300)]
[MSPAINT] Fix call sequence in OnRButtonUp
This fixes unexpected undo action when zooming out with right mouse
click.
The call sequence in OnLButtonUp is already correct.
CORE-14539
Eric Kohl [Thu, 24 May 2018 09:39:01 +0000 (11:39 +0200)]
[STORPORT] Enumerate attached devices
- Implement AcquireSpinlock, ReleaseSpinlock and GetExtendedFunctionTable notifications.
- Implement a bus scan routine, borrowed from scsiport.
Storport and storahci are now able to detect a disk device attached to a Virtual Box AHCI controller.
Stanislav Motylkov [Wed, 23 May 2018 21:31:20 +0000 (00:31 +0300)]
[MSPAINT] Fix divide by zero in drawZoomFrame
CORE-14539 #resolve
Katayama Hirofumi MZ [Wed, 23 May 2018 21:25:11 +0000 (06:25 +0900)]
[SHELL32] Add icons to the 'File Types' listview (#557)
This commit adds icons to the listview of the 'File Types' property sheet of Folder Options.
CORE-12906
Stanislav Motylkov [Wed, 23 May 2018 20:17:22 +0000 (23:17 +0300)]
[MSPAINT] Fix copy-pasta bug (#562)
This would fix setting image height via Attributes dialog and help fixing CORE-14539.
Eric Kohl [Wed, 23 May 2018 11:51:45 +0000 (13:51 +0200)]
[MSGINA] Implement the Welcome text feature
Pierre Schweitzer [Wed, 23 May 2018 06:44:43 +0000 (08:44 +0200)]
[NTOSKRNL] Addendum to
8a8cb4d: don't print uninit pointer.
Pierre Schweitzer [Wed, 23 May 2018 06:37:50 +0000 (08:37 +0200)]
[NTOSKRNL] Only consider SharedCacheMap value once ViewLock is acquired.
This avoids a really nasty race condition in our cache controler where
two concurrents could try to initialize cache on the same file.
This had two nasty effects: first shared map was purely leaked and erased
by the second one. And the private cache map, allocated on the first shared
cache map couldn't be freed and was leading to Mm BSOD (free in a middle of
a block).
This was often triggered while building ReactOS on ReactOS (with multi threads).
With that patch, I cannot crash anylonger while building ReactOS.
CORE-14634
Eric Kohl [Tue, 22 May 2018 22:27:11 +0000 (00:27 +0200)]
[MSGINA] Clear the password on logoff
Eric Kohl [Tue, 22 May 2018 22:24:01 +0000 (00:24 +0200)]
[MSGIINA] Make sure we do not leak bitmaps
Pierre Schweitzer [Tue, 22 May 2018 19:29:10 +0000 (21:29 +0200)]
[FASTFAT] Properly handle IRPs that can wait and these that cannot.
CORE-14634
Eric Kohl [Tue, 22 May 2018 19:19:58 +0000 (21:19 +0200)]
[MSGINA] Always stop the automatic login after the first try
Fixes CORE-14643
Eric Kohl [Tue, 22 May 2018 16:14:42 +0000 (18:14 +0200)]
[WINLOGON] Ignore the CTRL+SHIFT+ESC hotkey when the session is not in the logged-on state
Should fix CORE-13478
Eric Kohl [Tue, 22 May 2018 15:35:33 +0000 (17:35 +0200)]
[MSGINA] Do not try to impersonate the user on shutdown when we are already logged off
Eric Kohl [Tue, 22 May 2018 15:31:20 +0000 (17:31 +0200)]
[MSGINA] Close the LSA handle on shutdown
Eric Kohl [Tue, 22 May 2018 14:32:10 +0000 (16:32 +0200)]
[MSGINA] Close the user token in WlxLogoff
Eric Kohl [Tue, 22 May 2018 12:39:38 +0000 (14:39 +0200)]
[MSGINA] Rename context variable: Domain -> DomainName
Eric Kohl [Tue, 22 May 2018 12:36:55 +0000 (14:36 +0200)]
[WINLOGON] Prevent shell restart when the user is logged off
Eric Kohl [Tue, 22 May 2018 09:30:27 +0000 (11:30 +0200)]
[BOOTDATA][MSGINA][SYSSETUP] Rename the DefaultDomain registry value to DefaultDomainName
Eric Kohl [Tue, 22 May 2018 09:06:38 +0000 (11:06 +0200)]
[MSGINA] Add the IgnoreShiftOverride feature again
Eric Kohl [Mon, 21 May 2018 14:29:02 +0000 (16:29 +0200)]
[MSGINA] Simplify the auto logon code path
- Get rid of DoAutoLogon() and the AutoLogonState variable.
- Handle the auto logon in the normal logon code path instead.
- Set bAutoAdminLogon to FALSE on a successful login. This will prevent another automatic logon after a logoff.
- The IgnoreShiftOverride feature got lost by this change but I will add it again.
Pierre Schweitzer [Mon, 21 May 2018 09:33:02 +0000 (11:33 +0200)]
[WINLOGON] Fix build.
Eric Kohl [Mon, 21 May 2018 09:20:50 +0000 (11:20 +0200)]
[WINLOGON] Close all dialog boxes on SAS
CORE-13593
Pierre Schweitzer [Mon, 21 May 2018 08:41:59 +0000 (10:41 +0200)]
[FASTFAT] Properly queue pending write IRPs.
Addendum to
30b836b
Pierre Schweitzer [Mon, 21 May 2018 08:28:44 +0000 (10:28 +0200)]
[FASTFAT] When extending a file, also lock the DirResource.
This avoids race conditions under high IOs and thus corruption on
the FS, or assertions failures in the kernel.
Easily triggered by building ReactOS on ReactOS ;-).
Eric Kohl [Mon, 21 May 2018 00:30:35 +0000 (02:30 +0200)]
[SETUPAPI] Add stubs for CM_Detect_Resource_Conflict and CM_Detect_Resource_Conflict_Ex
Hermès Bélusca-Maïto [Sun, 20 May 2018 20:38:48 +0000 (22:38 +0200)]
[CONUTILS] Remove old code; modify an informative note.
Joachim Henze [Sun, 20 May 2018 18:35:12 +0000 (20:35 +0200)]
[SDK] "0.4.10-dev" Starts here.
tag will be added in next commit.
Hermès Bélusca-Maïto [Sun, 20 May 2018 17:57:43 +0000 (19:57 +0200)]
[CMD] Use string-safe call to build the new console title (possibly truncated, we don't care), avoiding any buffer overflow. Caught by David Quintana.
Hermès Bélusca-Maïto [Sun, 20 May 2018 17:27:57 +0000 (19:27 +0200)]
[USETUP] Remove now-unneeded file.
Hermès Bélusca-Maïto [Sun, 20 May 2018 16:32:59 +0000 (18:32 +0200)]
[BOOTDATA] Set the 'BootExecute' SMSS value to an empty value as we do not want AutoChk to start when booting the LiveCD. CORE-14633
Add also a missing closing quote.
Hermès Bélusca-Maïto [Sun, 20 May 2018 13:31:45 +0000 (15:31 +0200)]
[SETUPAPI] Fix MSVC build; pathetic GCC/LD didn't see we were using two different prototypes for these functions.
Pierre Schweitzer [Sun, 20 May 2018 11:53:11 +0000 (13:53 +0200)]
[FASTFAT] Fail if allocating the stream FO fails.
Eric Kohl [Sun, 20 May 2018 09:53:01 +0000 (11:53 +0200)]
[SAMSRV] SamrChangePasswordUser: Check StoredLmEmpty and StoredNtEmpty instead of checking StoredNtEmpty twice
Eric Kohl [Sun, 20 May 2018 09:35:43 +0000 (11:35 +0200)]
[SETUPAPI] Implement CM_Get_Resource_Conflict_Count and add stubs for CM_Get_Resource_Conflict_DetailsA/W
Pierre Schweitzer [Sun, 20 May 2018 09:35:21 +0000 (11:35 +0200)]
[EVENTMSG] Add French translation.
Joachim Henze [Sat, 19 May 2018 23:41:34 +0000 (01:41 +0200)]
[OLE32] Restore 4 cur files (+ note diff) to fix CORE-14608
Hermès Bélusca-Maïto [Sat, 19 May 2018 20:04:20 +0000 (22:04 +0200)]
[NTOS] Demote an ASSERT to a mere DPRINT since we only support registry hives with cluster size == 1 in any case so far (other sizes are UNIMPLEMENTED!)
Eric Kohl [Sat, 19 May 2018 16:11:48 +0000 (18:11 +0200)]
[SETUPAPI] Implement CM_Free_Resource_Conflict_Handle() and CM_Query_Resource_Conflict_List()
Katayama Hirofumi MZ [Sat, 19 May 2018 14:12:11 +0000 (23:12 +0900)]
[SHELL32] Allow deleting a file type/extension (#553)
CORE-12906
Eric Kohl [Sat, 19 May 2018 13:11:17 +0000 (15:11 +0200)]
[SETUPAPI] Add CM_Free_Resource_Conflict_Handle and CM_Query_Resource_Conflict_List stubs
Pierre Schweitzer [Sat, 19 May 2018 11:45:56 +0000 (13:45 +0200)]
[FASTFAT] Addendum to
d69f318
Eric Kohl [Sat, 19 May 2018 11:30:20 +0000 (13:30 +0200)]
[USETUP] Use _wcstoui64() instead of atoi() to convert the partition size in order to prevent unexpected misinterpretation of leading zeroes.