chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2bb4dd9
)
create_floppy_devices: fix logic for more than one floppy device
author
Kay Sievers
<kay.sievers@vrfy.org>
Mon, 17 Dec 2007 02:41:30 +0000
(
03:41
+0100)
committer
Kay Sievers
<kay.sievers@vrfy.org>
Mon, 17 Dec 2007 02:41:30 +0000
(
03:41
+0100)
extras/floppy/create_floppy_devices.c
patch
|
blob
|
history
diff --git
a/extras/floppy/create_floppy_devices.c
b/extras/floppy/create_floppy_devices.c
index b9fa4ef41d7e5a9061a14729da7e250548f95815..d79a782abf5cd1dd2e3952203aa5d31febc06cd5 100644
(file)
--- a/
extras/floppy/create_floppy_devices.c
+++ b/
extras/floppy/create_floppy_devices.c
@@
-69,6
+69,7
@@
void log_message(int priority, const char *format, ...)
int main(int argc, char **argv)
{
char *dev;
int main(int argc, char **argv)
{
char *dev;
+ char *devname;
char node[64];
int type = 0, i, fdnum, c;
int major = 2, minor;
char node[64];
int type = 0, i, fdnum, c;
int major = 2, minor;
@@
-123,12
+124,17
@@
int main(int argc, char **argv)
}
dev = argv[optind];
}
dev = argv[optind];
- if (dev[strlen(dev) - 3] != 'f' || dev[strlen(dev) -2 ] != 'd') {
+ devname = strrchr(dev, '/');
+ if (devname != NULL)
+ devname = &devname[1];
+ else
+ devname = dev;
+ if (strncmp(devname, "fd", 2) != 0) {
fprintf(stderr,"Device '%s' is not a floppy device\n", dev);
return 1;
}
fprintf(stderr,"Device '%s' is not a floppy device\n", dev);
return 1;
}
- fdnum = strtol(
dev + 2
, NULL, 10);
+ fdnum = strtol(
&devname[2]
, NULL, 10);
if (fdnum < 0 || fdnum > 7) {
fprintf(stderr,"Floppy device number %d out of range (0-7)\n", fdnum);
return 1;
if (fdnum < 0 || fdnum > 7) {
fprintf(stderr,"Floppy device number %d out of range (0-7)\n", fdnum);
return 1;