commit: 19f4662eeb0e6db7c60772cb438624cadd56fd49
parent d63f75d6def87d5b2d5a602bf04759eb2168b1cd
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Wed,  8 Dec 2021 13:06:44 +0100
bin/pwd: Simplify, return correctly
Diffstat:
3 files changed, 30 insertions(+), 13 deletions(-)
diff --git a/bin/pwd.c b/bin/pwd.c
@@ -3,34 +3,39 @@
 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
 
 #define _POSIX_C_SOURCE 200809L
-#include <errno.h>  /* errno */
 #include <stdio.h>  /* puts, perror, printf */
-#include <stdlib.h> /* exit */
-#include <string.h> /* strerror */
 #include <unistd.h> /* getcwd() */
 
-char buf[BUFSIZ];
-
 void
 usage(char *a0)
 {
 	(void)printf("usage: %s\n", a0);
-	exit(EXIT_SUCCESS);
 }
 
 int
 main(int argc, char *argv[])
 {
-	if(argc != 1) usage(argv[0]);
+	char pwd[BUFSIZ];
+
+	if(argc != 1)
+	{
+		usage(argv[0]);
+	}
 
-	if(getcwd(buf, sizeof(buf)) == NULL)
+	if(getcwd(pwd, sizeof(pwd)) == NULL)
 	{
-		perror(strerror(errno));
-		exit(EXIT_FAILURE);
+		perror("getcwd");
+		return 1;
 	}
 	else
 	{
-		const char *pwd = buf;
-		return puts(pwd);
+		if(puts(pwd) < 0)
+		{
+			return 1;
+		}
+		else
+		{
+			return 0;
+		}
 	}
 }
diff --git a/test-bin/Kyuafile b/test-bin/Kyuafile
@@ -2,7 +2,8 @@ syntax(2)
 
 test_suite("utils")
 
--- /BEGIN/,$ | LC_ALL=C.UTF-8 sort
+-- /BEGIN/,$ 
+-- |LC_ALL=C.UTF-8 sort 
 atf_test_program{name="args"}
 atf_test_program{name="basename"}
 atf_test_program{name="cat"}
@@ -10,6 +11,7 @@ atf_test_program{name="dirname"}
 atf_test_program{name="echo"}
 atf_test_program{name="false"}
 atf_test_program{name="humanize"}
+atf_test_program{name="pwd"}
 atf_test_program{name="sname"}
 atf_test_program{name="tee"}
 atf_test_program{name="true"}
diff --git a/test-bin/pwd b/test-bin/pwd
@@ -0,0 +1,10 @@
+#!/usr/bin/env atf-sh
+atf_test_case simple
+simple_body() {
+	atf_check -o "inline:${PWD}\n" ../bin/pwd
+}
+
+atf_init_test_cases() {
+	cd "$(atf_get_srcdir)"
+	atf_add_test_case simple
+}