From 195fa15caf7d79a5447d7476c113777cb3bebbd8 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Tue, 11 Jul 2000 17:35:32 +0000 Subject: [PATCH] Another patch from Matt Kraai : > > The following patch allows ln -n to function like GNU. It also fixes a > typo with my previous patch to add support for ln FILE DIRECTORY. And > it removes some code that checks the maximum length of the filenames. I > can't figure out why that code is necessary. Anyone know? > > Matt --- coreutils/ln.c | 29 ++--------------------------- ln.c | 29 ++--------------------------- 2 files changed, 4 insertions(+), 54 deletions(-) diff --git a/coreutils/ln.c b/coreutils/ln.c index 3c45dee33..71d84f066 100644 --- a/coreutils/ln.c +++ b/coreutils/ln.c @@ -92,13 +92,7 @@ extern int ln_main(int argc, char **argv) linkName = argv[argc - 1]; - if (strlen(linkName) > BUFSIZ) { - fprintf(stderr, name_too_long, "ln"); - exit FALSE; - } - - linkIntoDirFlag = isDirectory(linkName, TRUE, NULL); - + linkIntoDirFlag = isDirectory(linkName, followLinks, NULL); if ((argc >= 3) && linkIntoDirFlag == FALSE) { fprintf(stderr, not_a_directory, "ln", linkName); exit FALSE; @@ -108,27 +102,8 @@ extern int ln_main(int argc, char **argv) dirName = linkName; while (argc-- >= 2) { -#if 0 - char srcName[BUFSIZ + 1]; - int nChars; -#endif int status; - if (strlen(*argv) > BUFSIZ) { - fprintf(stderr, name_too_long, "ln"); - exit FALSE; - } - -#if 0 - if (followLinks == FALSE) { - strcpy(srcName, *argv); - } else { - /* Warning! This can silently truncate if > BUFSIZ, but - I don't think that there can be one > BUFSIZ anyway. */ - nChars = readlink(*argv, srcName, BUFSIZ); - srcName[nChars] = '\0'; - } -#endif if (linkIntoDirFlag == TRUE) { char *baseName = get_last_path_component(*argv); linkName = (char *)malloc(strlen(dirName)+strlen(baseName)+2); @@ -155,7 +130,7 @@ extern int ln_main(int argc, char **argv) exit FALSE; } - if (linkIntoDirFlag) + if (linkIntoDirFlag == TRUE) free(linkName); argv++; diff --git a/ln.c b/ln.c index 3c45dee33..71d84f066 100644 --- a/ln.c +++ b/ln.c @@ -92,13 +92,7 @@ extern int ln_main(int argc, char **argv) linkName = argv[argc - 1]; - if (strlen(linkName) > BUFSIZ) { - fprintf(stderr, name_too_long, "ln"); - exit FALSE; - } - - linkIntoDirFlag = isDirectory(linkName, TRUE, NULL); - + linkIntoDirFlag = isDirectory(linkName, followLinks, NULL); if ((argc >= 3) && linkIntoDirFlag == FALSE) { fprintf(stderr, not_a_directory, "ln", linkName); exit FALSE; @@ -108,27 +102,8 @@ extern int ln_main(int argc, char **argv) dirName = linkName; while (argc-- >= 2) { -#if 0 - char srcName[BUFSIZ + 1]; - int nChars; -#endif int status; - if (strlen(*argv) > BUFSIZ) { - fprintf(stderr, name_too_long, "ln"); - exit FALSE; - } - -#if 0 - if (followLinks == FALSE) { - strcpy(srcName, *argv); - } else { - /* Warning! This can silently truncate if > BUFSIZ, but - I don't think that there can be one > BUFSIZ anyway. */ - nChars = readlink(*argv, srcName, BUFSIZ); - srcName[nChars] = '\0'; - } -#endif if (linkIntoDirFlag == TRUE) { char *baseName = get_last_path_component(*argv); linkName = (char *)malloc(strlen(dirName)+strlen(baseName)+2); @@ -155,7 +130,7 @@ extern int ln_main(int argc, char **argv) exit FALSE; } - if (linkIntoDirFlag) + if (linkIntoDirFlag == TRUE) free(linkName); argv++; -- 2.25.1