Re: [hackers] [sbase][PATCH] cp: add -i flag
+ if (cp_iflag && access(s2, F_OK) == 0) {
+ weprintf("overwrite '%s'? ", s2);
+ int c = getchar();
+ if (c != 'y' && c != 'Y')
+ return 0;
+
+ while (getchar() != '\n');
+ }
The whole line needs to be read, even when the first char is `y|Y`.
Also, getchar may return EOF before newline leading to an infinite loop.
Suggestion (untested):
int ans = getchar();
for (int c = ans; c != '\n' && c != EOF;)
c = getchar();
if (ans != 'Y' && ans != 'y')
return 0;
- NRK
Received on Wed Apr 16 2025 - 14:06:25 CEST
This archive was generated by hypermail 2.3.0
: Wed Apr 16 2025 - 14:12:39 CEST