diff options
author | Karel Zak | 2014-03-10 13:36:22 +0100 |
---|---|---|
committer | Karel Zak | 2014-03-11 11:35:15 +0100 |
commit | 4b1cc035d702a6704ee7499327eebccb031898dd (patch) | |
tree | 59c0ab7f9ee659318b567e61fe8eef936ddd4ba1 /fdisks/sfdisk.c | |
parent | cfdisk: refresh man page (diff) | |
download | kernel-qcow2-util-linux-4b1cc035d702a6704ee7499327eebccb031898dd.tar.gz kernel-qcow2-util-linux-4b1cc035d702a6704ee7499327eebccb031898dd.tar.xz kernel-qcow2-util-linux-4b1cc035d702a6704ee7499327eebccb031898dd.zip |
sfdisk: merge partname.c
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'fdisks/sfdisk.c')
-rw-r--r-- | fdisks/sfdisk.c | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/fdisks/sfdisk.c b/fdisks/sfdisk.c index 03f3e7fa3..bd32aa8a5 100644 --- a/fdisks/sfdisk.c +++ b/fdisks/sfdisk.c @@ -46,7 +46,6 @@ #include "xalloc.h" #include "blkdev.h" #include "linux_version.h" -#include "partname.h" #include "wholedisk.h" #include "pathnames.h" #include "canonicalize.h" @@ -63,6 +62,8 @@ static struct systypes i386_sys_types[] = { #include "pt-mbr-partnames.h" }; +static char *partname(char *dev, int pno, int lth); + /* * Table of contents: * A. About seeking @@ -3185,3 +3186,45 @@ do_fdisk(char *dev) { sync(); /* superstition */ } + + +/* + * return partition name - uses static storage unless buf is supplied + */ +static char *partname(char *dev, int pno, int lth) +{ + static char bufp[PATH_MAX]; + char *p; + int w, wp; + + w = strlen(dev); + p = ""; + + if (isdigit(dev[w-1])) + p = "p"; + + /* devfs kludge - note: fdisk partition names are not supposed + to equal kernel names, so there is no reason to do this */ + if (strcmp (dev + w - 4, "disc") == 0) { + w -= 4; + p = "part"; + } + + /* udev names partitions by appending -partN + e.g. ata-SAMSUNG_SV8004H_0357J1FT712448-part1 */ + if ((strncmp(dev, _PATH_DEV_BYID, strlen(_PATH_DEV_BYID)) == 0) || + strncmp(dev, _PATH_DEV_BYPATH, strlen(_PATH_DEV_BYPATH)) == 0) { + p = "-part"; + } + + wp = strlen(p); + + if (lth) { + snprintf(bufp, sizeof(bufp), "%*.*s%s%-2u", + lth-wp-2, w, dev, p, pno); + } else { + snprintf(bufp, sizeof(bufp), "%.*s%s%-2u", w, dev, p, pno); + } + return bufp; +} + |