GPT fdisk 0.8.3 release; minor bug fixes & feature changes.

This commit is contained in:
srs5694
2012-03-23 12:49:15 -04:00
parent e842bc1351
commit 3488294d71
13 changed files with 38 additions and 18 deletions

12
NEWS
View File

@@ -1,8 +1,14 @@
0.8.3 (?/??/2012): 0.8.3 (3/23/2012):
------------------ ------------------
- Fixed bug that caused creation of >2TiB partitions to be truncated in - Fixed compilation problem on GCC 4.7.
sgdisk.
- Improved handling of Ctrl+D on some systems.
- Added disk's name to message stating that a disk write was successful.
- Fixed bug that caused creation of >2TiB partitions on 32-bit systems to
be truncated in sgdisk.
0.8.2 (1/22/2012): 0.8.2 (1/22/2012):
------------------ ------------------

View File

@@ -1532,6 +1532,7 @@ int BasicMBRData::DoMenu(const string& prompt) {
cout << prompt; cout << prompt;
switch (ReadString()[0]) { switch (ReadString()[0]) {
case '\0': case '\0':
goOn = !cin.eof();
break; break;
case 'a': case 'A': case 'a': case 'A':
num = GetNumber(1, MAX_MBR_PARTS, 1, "Toggle active flag for partition: ") - 1; num = GetNumber(1, MAX_MBR_PARTS, 1, "Toggle active flag for partition: ") - 1;

View File

@@ -1,6 +1,6 @@
.\" Copyright 2011, 2012 Roderick W. Smith (rodsmith@rodsbooks.com) .\" Copyright 2011, 2012 Roderick W. Smith (rodsmith@rodsbooks.com)
.\" May be distributed under the GNU General Public License .\" May be distributed under the GNU General Public License
.TH "CGDISK" "8" "0.8.2" "Roderick W. Smith" "GPT fdisk Manual" .TH "CGDISK" "8" "0.8.3" "Roderick W. Smith" "GPT fdisk Manual"
.SH "NAME" .SH "NAME"
cgdisk \- Curses-based GUID partition table (GPT) manipulator cgdisk \- Curses-based GUID partition table (GPT) manipulator
.SH "SYNOPSIS" .SH "SYNOPSIS"
@@ -268,7 +268,7 @@ Write data. Use this command to save your changes.
.SH "BUGS" .SH "BUGS"
As of January 2012 (version 0.8.2), \fBcgdisk\fR should be considered As of March 2012 (version 0.8.3), \fBcgdisk\fR should be considered
beta software. Although the underlying partition manipulation code is much beta software. Although the underlying partition manipulation code is much
older, the \fBcgdisk\fR ncurses user interface is brand new with GPT fdisk older, the \fBcgdisk\fR ncurses user interface is brand new with GPT fdisk
version 0.8.0. Known bugs and limitations include: version 0.8.0. Known bugs and limitations include:

View File

@@ -1,11 +1,11 @@
Summary: GPT partitioning and MBR repair software Summary: GPT partitioning and MBR repair software
Name: gptfdisk Name: gptfdisk
Version: 0.8.2 Version: 0.8.3
Release: 1%{?dist} Release: 1%{?dist}
License: GPLv2 License: GPLv2
URL: http://www.rodsbooks.com/gdisk URL: http://www.rodsbooks.com/gdisk
Group: Applications/System Group: Applications/System
Source: http://www.rodsbooks.com/gdisk/gptfdisk-0.8.2.tar.gz Source: http://www.rodsbooks.com/gdisk/gptfdisk-0.8.3.tar.gz
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
%description %description
@@ -80,5 +80,5 @@ provides a few additional partition manipulation features.
%changelog %changelog
* Sun Jan 22 2012 R Smith <rodsmith@rodsbooks.com> - 0.8.2 * Fri Mar 23 2012 R Smith <rodsmith@rodsbooks.com> - 0.8.3
- Created spec file for 0.8.2 release - Created spec file for 0.8.3 release

View File

@@ -22,6 +22,7 @@
#include <errno.h> #include <errno.h>
#include <fcntl.h> #include <fcntl.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <unistd.h>
#ifdef __linux__ #ifdef __linux__
#include "linux/hdreg.h" #include "linux/hdreg.h"

View File

@@ -238,7 +238,7 @@ int DiskIO::Read(void* buffer, int numBytes) {
cerr << "Unable to allocate memory in DiskIO::Read()! Terminating!\n"; cerr << "Unable to allocate memory in DiskIO::Read()! Terminating!\n";
exit(1); exit(1);
} // if } // if
// Read the data into temporary space, then copy it to buffer // Read the data into temporary space, then copy it to buffer
ReadFile(fd, tempSpace, numBlocks * blockSize, &retval, NULL); ReadFile(fd, tempSpace, numBlocks * blockSize, &retval, NULL);
for (i = 0; i < numBytes; i++) { for (i = 0; i < numBytes; i++) {

View File

@@ -1,6 +1,6 @@
.\" Copyright 2011, 2012 Roderick W. Smith (rodsmith@rodsbooks.com) .\" Copyright 2011, 2012 Roderick W. Smith (rodsmith@rodsbooks.com)
.\" May be distributed under the GNU General Public License .\" May be distributed under the GNU General Public License
.TH "FIXPARTS" "8" "0.8.2" "Roderick W. Smith" "FixParts Manual" .TH "FIXPARTS" "8" "0.8.3" "Roderick W. Smith" "FixParts Manual"
.SH "NAME" .SH "NAME"
fixparts \- MBR partition table repair utility fixparts \- MBR partition table repair utility
.SH "SYNOPSIS" .SH "SYNOPSIS"
@@ -202,7 +202,7 @@ see a summary of available options.
.PP .PP
.SH "BUGS" .SH "BUGS"
As of September 2012 (version 0.8.2), \fBfixparts\fR As of March 2012 (version 0.8.3), \fBfixparts\fR
should be considered beta software. Known bugs and limitations include: should be considered beta software. Known bugs and limitations include:
.TP .TP

View File

@@ -1,6 +1,6 @@
.\" Copyright 2011, 2012 Roderick W. Smith (rodsmith@rodsbooks.com) .\" Copyright 2011, 2012 Roderick W. Smith (rodsmith@rodsbooks.com)
.\" May be distributed under the GNU General Public License .\" May be distributed under the GNU General Public License
.TH "GDISK" "8" "0.8.2" "Roderick W. Smith" "GPT fdisk Manual" .TH "GDISK" "8" "0.8.3" "Roderick W. Smith" "GPT fdisk Manual"
.SH "NAME" .SH "NAME"
gdisk \- Interactive GUID partition table (GPT) manipulator gdisk \- Interactive GUID partition table (GPT) manipulator
.SH "SYNOPSIS" .SH "SYNOPSIS"
@@ -561,7 +561,7 @@ entering data. When only one option is possible, \fBgdisk\fR
usually bypasses the prompt entirely. usually bypasses the prompt entirely.
.SH "BUGS" .SH "BUGS"
As of January 2012 (version 0.8.2), \fBgdisk\fR As of March 2012 (version 0.8.3), \fBgdisk\fR
should be considered beta software. Known bugs and limitations include: should be considered beta software. Known bugs and limitations include:
.TP .TP

View File

@@ -338,6 +338,15 @@ EOF
echo "" echo ""
} }
#####################################
# Test stdin EOF
#####################################
eof_stdin() {
$SGDISK_BIN $TEMP_DISK << EOF
^D
EOF
pretty_print "SUCCESS" "EOF successfully exit gdisk"
}
################################### ###################################
# Main # Main
@@ -369,6 +378,7 @@ do
restore_table # only with gdisk restore_table # only with gdisk
change_disk_uid "$binary" change_disk_uid "$binary"
wipe_table "$binary" wipe_table "$binary"
eof_stdin # only with gdisk
done done
# remove temp files # remove temp files

2
gpt.cc
View File

@@ -1031,7 +1031,7 @@ int GPTData::SaveGPTData(int quiet) {
<< "PARTITIONS!!\n\nDo you want to proceed? "; << "PARTITIONS!!\n\nDo you want to proceed? ";
answer = GetYN(); answer = GetYN();
if (answer == 'Y') { if (answer == 'Y') {
cout << "OK; writing new GUID partition table (GPT).\n"; cout << "OK; writing new GUID partition table (GPT) to " << myDisk.GetName() << ".\n";
} else { } else {
allOK = 0; allOK = 0;
} // if/else } // if/else

View File

@@ -514,6 +514,7 @@ void GPTDataTextUI::MainMenu(string filename) {
cout << "\nCommand (? for help): "; cout << "\nCommand (? for help): ";
switch (ReadString()[0]) { switch (ReadString()[0]) {
case '\0': case '\0':
goOn = !cin.eof();
break; break;
case 'b': case 'B': case 'b': case 'B':
cout << "Enter backup filename to save: "; cout << "Enter backup filename to save: ";
@@ -609,6 +610,7 @@ void GPTDataTextUI::RecoveryMenu(string filename) {
cout << "\nRecovery/transformation command (? for help): "; cout << "\nRecovery/transformation command (? for help): ";
switch (ReadString()[0]) { switch (ReadString()[0]) {
case '\0': case '\0':
goOn = !cin.eof();
break; break;
case 'b': case 'B': case 'b': case 'B':
RebuildMainHeader(); RebuildMainHeader();

View File

@@ -1,6 +1,6 @@
.\" Copyright 2011, 2012 Roderick W. Smith (rodsmith@rodsbooks.com) .\" Copyright 2011, 2012 Roderick W. Smith (rodsmith@rodsbooks.com)
.\" May be distributed under the GNU General Public License .\" May be distributed under the GNU General Public License
.TH "SGDISK" "8" "0.8.2" "Roderick W. Smith" "GPT fdisk Manual" .TH "SGDISK" "8" "0.8.3" "Roderick W. Smith" "GPT fdisk Manual"
.SH "NAME" .SH "NAME"
sgdisk \- Command\-line GUID partition table (GPT) manipulator for Linux and Unix sgdisk \- Command\-line GUID partition table (GPT) manipulator for Linux and Unix
.SH "SYNOPSIS" .SH "SYNOPSIS"
@@ -485,7 +485,7 @@ An error prevented saving changes
Disk replication operation (-R) failed Disk replication operation (-R) failed
.SH "BUGS" .SH "BUGS"
As of January 2012 (version 0.8.2), \fBsgdisk\fR As of March 2012 (version 0.8.3), \fBsgdisk\fR
should be considered beta software. Known bugs and limitations include: should be considered beta software. Known bugs and limitations include:
.TP .TP

View File

@@ -8,7 +8,7 @@
#ifndef __GPTSUPPORT #ifndef __GPTSUPPORT
#define __GPTSUPPORT #define __GPTSUPPORT
#define GPTFDISK_VERSION "0.8.2.1" #define GPTFDISK_VERSION "0.8.3"
#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__) #if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__)
// Darwin (Mac OS) & FreeBSD: disk IOCTLs are different, and there is no lseek64 // Darwin (Mac OS) & FreeBSD: disk IOCTLs are different, and there is no lseek64