Fix Ctrl+D problems; 0.8.4 release
This commit is contained in:
9
NEWS
9
NEWS
@@ -1,3 +1,12 @@
|
|||||||
|
0.8.4 (3/25/2012):
|
||||||
|
------------------
|
||||||
|
|
||||||
|
- REALLY fixed Ctrl+D problems! Now gdisk terminates upon receiving a
|
||||||
|
Ctrl+D. In all previous versions, it could lock itself into a CPU-hogging
|
||||||
|
loop if launched via "sudo" from a terminal window that was then closed
|
||||||
|
or if Ctrl+D was pressed at certain input prompts (for a partition name
|
||||||
|
or sector number, for instance).
|
||||||
|
|
||||||
0.8.3 (3/23/2012):
|
0.8.3 (3/23/2012):
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
|||||||
@@ -1532,7 +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();
|
goOn = cin.good();
|
||||||
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;
|
||||||
|
|||||||
4
cgdisk.8
4
cgdisk.8
@@ -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.3" "Roderick W. Smith" "GPT fdisk Manual"
|
.TH "CGDISK" "8" "0.8.4" "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 March 2012 (version 0.8.3), \fBcgdisk\fR should be considered
|
As of March 2012 (version 0.8.4), \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:
|
||||||
|
|||||||
@@ -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.3
|
Version: 0.8.4
|
||||||
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.3.tar.gz
|
Source: http://www.rodsbooks.com/gdisk/gptfdisk-0.8.4.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
|
||||||
* Fri Mar 23 2012 R Smith <rodsmith@rodsbooks.com> - 0.8.3
|
* Sun Mar 25 2012 R Smith <rodsmith@rodsbooks.com> - 0.8.4
|
||||||
- Created spec file for 0.8.3 release
|
- Created spec file for 0.8.4 release
|
||||||
|
|||||||
2
diskio.h
2
diskio.h
@@ -74,6 +74,6 @@ class DiskIO {
|
|||||||
string GetName(void) const {return realFilename;}
|
string GetName(void) const {return realFilename;}
|
||||||
|
|
||||||
uint64_t DiskSize(int* err);
|
uint64_t DiskSize(int* err);
|
||||||
}; // struct GPTPart
|
}; // class DiskIO
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -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.3" "Roderick W. Smith" "FixParts Manual"
|
.TH "FIXPARTS" "8" "0.8.4" "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 March 2012 (version 0.8.3), \fBfixparts\fR
|
As of March 2012 (version 0.8.4), \fBfixparts\fR
|
||||||
should be considered beta software. Known bugs and limitations include:
|
should be considered beta software. Known bugs and limitations include:
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
|
|||||||
4
gdisk.8
4
gdisk.8
@@ -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.3" "Roderick W. Smith" "GPT fdisk Manual"
|
.TH "GDISK" "8" "0.8.4" "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 March 2012 (version 0.8.3), \fBgdisk\fR
|
As of March 2012 (version 0.8.4), \fBgdisk\fR
|
||||||
should be considered beta software. Known bugs and limitations include:
|
should be considered beta software. Known bugs and limitations include:
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include "attributes.h"
|
#include "attributes.h"
|
||||||
@@ -514,7 +515,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();
|
goOn = cin.good();
|
||||||
break;
|
break;
|
||||||
case 'b': case 'B':
|
case 'b': case 'B':
|
||||||
cout << "Enter backup filename to save: ";
|
cout << "Enter backup filename to save: ";
|
||||||
@@ -610,7 +611,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();
|
goOn = cin.good();
|
||||||
break;
|
break;
|
||||||
case 'b': case 'B':
|
case 'b': case 'B':
|
||||||
RebuildMainHeader();
|
RebuildMainHeader();
|
||||||
@@ -736,6 +737,7 @@ void GPTDataTextUI::ExpertsMenu(string filename) {
|
|||||||
cout << "\nExpert command (? for help): ";
|
cout << "\nExpert command (? for help): ";
|
||||||
switch (ReadString()[0]) {
|
switch (ReadString()[0]) {
|
||||||
case '\0':
|
case '\0':
|
||||||
|
goOn = cin.good();
|
||||||
break;
|
break;
|
||||||
case 'a': case 'A':
|
case 'a': case 'A':
|
||||||
if (GetPartRange(&temp1, &temp2) > 0)
|
if (GetPartRange(&temp1, &temp2) > 0)
|
||||||
|
|||||||
9
sgdisk.8
9
sgdisk.8
@@ -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.3" "Roderick W. Smith" "GPT fdisk Manual"
|
.TH "SGDISK" "8" "0.8.4" "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"
|
||||||
@@ -480,12 +480,17 @@ Non\-GPT disk detected and no \fI\-g\fR option
|
|||||||
.B 4
|
.B 4
|
||||||
An error prevented saving changes
|
An error prevented saving changes
|
||||||
|
|
||||||
|
.TP
|
||||||
|
.B 5
|
||||||
|
An error occurred while reading standard input (should never occur with
|
||||||
|
sgdisk, but may with gdisk)
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.B 8
|
.B 8
|
||||||
Disk replication operation (-R) failed
|
Disk replication operation (-R) failed
|
||||||
|
|
||||||
.SH "BUGS"
|
.SH "BUGS"
|
||||||
As of March 2012 (version 0.8.3), \fBsgdisk\fR
|
As of March 2012 (version 0.8.4), \fBsgdisk\fR
|
||||||
should be considered beta software. Known bugs and limitations include:
|
should be considered beta software. Known bugs and limitations include:
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
|
|||||||
@@ -38,8 +38,8 @@ string ReadString(void) {
|
|||||||
string inString;
|
string inString;
|
||||||
|
|
||||||
getline(cin, inString);
|
getline(cin, inString);
|
||||||
if (!cin)
|
if (!cin.good())
|
||||||
cin.clear();
|
exit(5);
|
||||||
return inString;
|
return inString;
|
||||||
} // ReadString()
|
} // ReadString()
|
||||||
|
|
||||||
@@ -56,6 +56,8 @@ int GetNumber(int low, int high, int def, const string & prompt) {
|
|||||||
do {
|
do {
|
||||||
cout << prompt;
|
cout << prompt;
|
||||||
cin.getline(line, 255);
|
cin.getline(line, 255);
|
||||||
|
if (!cin.good())
|
||||||
|
exit(5);
|
||||||
num = sscanf(line, "%d", &response);
|
num = sscanf(line, "%d", &response);
|
||||||
if (num == 1) { // user provided a response
|
if (num == 1) { // user provided a response
|
||||||
if ((response < low) || (response > high))
|
if ((response < low) || (response > high))
|
||||||
@@ -100,6 +102,8 @@ uint64_t GetSectorNum(uint64_t low, uint64_t high, uint64_t def, uint64_t sSize,
|
|||||||
do {
|
do {
|
||||||
cout << prompt;
|
cout << prompt;
|
||||||
cin.getline(line, 255);
|
cin.getline(line, 255);
|
||||||
|
if (!cin.good())
|
||||||
|
exit(5);
|
||||||
response = IeeeToInt(line, sSize, low, high, def);
|
response = IeeeToInt(line, sSize, low, high, def);
|
||||||
} while ((response < low) || (response > high));
|
} while ((response < low) || (response > high));
|
||||||
return response;
|
return response;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
#ifndef __GPTSUPPORT
|
#ifndef __GPTSUPPORT
|
||||||
#define __GPTSUPPORT
|
#define __GPTSUPPORT
|
||||||
|
|
||||||
#define GPTFDISK_VERSION "0.8.3"
|
#define GPTFDISK_VERSION "0.8.4"
|
||||||
|
|
||||||
#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
|
||||||
|
|||||||
Reference in New Issue
Block a user