build system: -fno-builtin-printf
No binary (build failed)
—
(log yok)
| @@ -56,6 +56,9 @@ CFLAGS += $(call cc-option,-falign-functions=1 -falign-jumps=1 -falign-labels=1 | |
| # Defeat .eh_frame bloat (gcc 4.6.3 x86-32 defconfig: 20% smaller busybox binary): | |
| CFLAGS += $(call cc-option,-fno-unwind-tables,) | |
| CFLAGS += $(call cc-option,-fno-asynchronous-unwind-tables,) | |
| + | # No automatic printf->puts,putchar conversions |
| + | # (try disabling this and comparing assembly, it's instructive) |
| + | CFLAGS += $(call cc-option,-fno-builtin-printf,) |
| # FIXME: These warnings are at least partially to be concerned about and should | |
| # be fixed.. | |
| @@ -112,7 +112,7 @@ int uniq_main(int argc UNUSED_PARAM, char **argv) | |
| /* %7lu matches GNU coreutils 6.9 */ | |
| printf("%7lu ", dups + 1); | |
| } | |
| - | printf("%s\n", old_line); |
| + | puts(old_line); |
| } | |
| free(old_line); | |
| } | |
| @@ -81,7 +81,7 @@ int who_main(int argc UNUSED_PARAM, char **argv) | |
| opt_complementary = "=0"; | |
| opt = getopt32(argv, do_users ? "" : "aH"); | |
| if (opt & 2) // -H | |
| - | printf("USER\t\tTTY\t\tIDLE\tTIME\t\t HOST\n"); |
| + | puts("USER\t\tTTY\t\tIDLE\tTIME\t\t HOST"); |
| setutxent(); | |
| while ((ut = getutxent()) != NULL) { | |
| @@ -433,7 +433,7 @@ static void fetch(FILE_and_pos_t *ft, const off_t *ix, int a, int b, int ch) | |
| for (j = 0, col = 0; j < ix[i] - ix[i - 1]; j++) { | |
| int c = fgetc(ft->ft_fp); | |
| if (c == EOF) { | |
| - | printf("\n\\ No newline at end of file\n"); |
| + | puts("\n\\ No newline at end of file"); |
| return; | |
| } | |
| ft->ft_pos++; | |
| @@ -692,7 +692,7 @@ static bool diff(FILE* fp[2], char *file[2]) | |
| continue; | |
| printf(",%d", (a < b) ? b - a + 1 : 0); | |
| } | |
| - | printf(" @@\n"); |
| + | puts(" @@"); |
| /* | |
| * Output changes in "unified" diff format--the old and new lines | |
| * are printed together. | |
| @@ -206,7 +206,7 @@ static void doCommands(void) | |
| if (fileName) | |
| printf("\"%s\"\n", fileName); | |
| else | |
| - | printf("No file name\n"); |
| + | puts("No file name"); |
| break; | |
| } | |
| free(fileName); | |
| @@ -100,7 +100,7 @@ int add_remove_shell_main(int argc UNUSED_PARAM, char **argv) | |
| cpp++; | |
| } | |
| /* copy shell name from old to new file */ | |
| - | printf("%s\n", line); |
| + | puts(line); |
| next_line: | |
| free(line); | |
| } | |
| @@ -112,7 +112,7 @@ int add_remove_shell_main(int argc UNUSED_PARAM, char **argv) | |
| char **cpp = argv; | |
| while (*cpp) { | |
| if (*cpp != dont_add) | |
| - | printf("%s\n", *cpp); |
| + | puts(*cpp); |
| cpp++; | |
| } | |
| } | |
| @@ -154,7 +154,7 @@ void FAST_FUNC encode_base64(char *fname, const char *text, const char *eol) | |
| // encode the buffer we just read in | |
| bb_uuencode(dst_buf, src_buf, size, bb_uuenc_tbl_base64); | |
| if (fname) { | |
| - | printf("%s\n", eol); |
| + | puts(eol); |
| } else { | |
| src_buf += size; | |
| len -= size; | |
| @@ -375,7 +375,7 @@ int sendmail_main(int argc UNUSED_PARAM, char **argv) | |
| // N.B. we need to escape the leading dot regardless of | |
| // whether it is single or not character on the line | |
| if ('.' == s[0] /*&& '\0' == s[1] */) | |
| - | printf("."); |
| + | bb_putchar('.'); |
| // dump read line | |
| send_r_n(s); | |
| free(s); | |
| @@ -763,9 +763,9 @@ static void identify(uint16_t *val) | |
| ) { | |
| like_std = 5; | |
| if ((val[CONFIG]==STBY_NID_VAL) || (val[CONFIG]==STBY_ID_VAL)) | |
| - | printf("powers-up in standby; SET FEATURES subcmd spins-up.\n"); |
| + | puts("powers-up in standby; SET FEATURES subcmd spins-up."); |
| if (((val[CONFIG]==STBY_NID_VAL) || (val[CONFIG]==PWRD_NID_VAL)) && (val[GEN_CONFIG] & INCOMPLETE)) | |
| - | printf("\n\tWARNING: ID response incomplete.\n\tFollowing data may be incorrect.\n\n"); |
| + | puts("\n\tWARNING: ID response incomplete.\n\tFollowing data may be incorrect.\n"); |
| } | |
| /* output the model and serial numbers and the fw revision */ | |
| @@ -875,7 +875,7 @@ static void identify(uint16_t *val) | |
| if (min_std == 0xffff) | |
| min_std = like_std > 4 ? like_std - 3 : 1; | |
| - | printf("Configuration:\n"); |
| + | puts("Configuration:"); |
| /* more info from the general configuration word */ | |
| if ((eqpt != CDROM) && (like_std == 1)) { | |
| jj = val[GEN_CONFIG] >> 1; | |
| @@ -909,7 +909,7 @@ static void identify(uint16_t *val) | |
| mm = 0; | |
| bbbig = 0; | |
| if ((ll > 0x00FBFC10) && (!val[LCYLS])) | |
| - | printf("\tCHS addressing not supported\n"); |
| + | puts("\tCHS addressing not supported"); |
| else { | |
| jj = val[WHATS_VALID] & OK_W54_58; | |
| printf("\tLogical\t\tmax\tcurrent\n" | |
| @@ -980,7 +980,7 @@ static void identify(uint16_t *val) | |
| !(val[CAPAB_0] & IORDY_SUP) ? "(may be)" : "", | |
| (val[CAPAB_0] & IORDY_OFF) ? "" :"not"); | |
| } else | |
| - | printf("no IORDY\n"); |
| + | puts("no IORDY"); |
| if ((like_std == 1) && val[BUF_TYPE]) { | |
| printf("\tBuffer type: %04x: %s%s\n", val[BUF_TYPE], | |
| @@ -1012,13 +1012,13 @@ static void identify(uint16_t *val) | |
| } | |
| printf("\tR/W multiple sector transfer: "); | |
| if ((like_std < 3) && !(val[SECTOR_XFER_MAX] & SECTOR_XFER)) | |
| - | printf("not supported\n"); |
| + | puts("not supported"); |
| else { | |
| printf("Max = %u\tCurrent = ", val[SECTOR_XFER_MAX] & SECTOR_XFER); | |
| if (val[SECTOR_XFER_CUR] & MULTIPLE_SETTING_VALID) | |
| printf("%u\n", val[SECTOR_XFER_CUR] & SECTOR_XFER); | |
| else | |
| - | printf("?\n"); |
| + | puts("?"); |
| } | |
| if ((like_std > 3) && (val[CMDS_SUPP_1] & 0x0008)) { | |
| /* We print out elsewhere whether the APM feature is enabled or | |
| @@ -1040,7 +1040,7 @@ static void identify(uint16_t *val) | |
| } else { | |
| /* ATAPI */ | |
| if (eqpt != CDROM && (val[CAPAB_0] & SWRST_REQ)) | |
| - | printf("\tATA sw reset required\n"); |
| + | puts("\tATA sw reset required"); |
| if (val[PKT_REL] || val[SVC_NBSY]) { | |
| printf("\tOverlap support:"); | |
| @@ -1056,7 +1056,7 @@ static void identify(uint16_t *val) | |
| /* DMA stuff. Check that only one DMA mode is selected. */ | |
| printf("\tDMA: "); | |
| if (!(val[CAPAB_0] & DMA_SUP)) | |
| - | printf("not supported\n"); |
| + | puts("not supported"); |
| else { | |
| if (val[DMA_MODE] && !val[SINGLE_DMA] && !val[MULTI_DMA]) | |
| printf(" sdma%u\n", (val[DMA_MODE] & MODE) >> 8); | |
| @@ -1079,7 +1079,7 @@ static void identify(uint16_t *val) | |
| bb_putchar('\n'); | |
| if ((dev == ATAPI_DEV) && (eqpt != CDROM) && (val[CAPAB_0] & DMA_IL_SUP)) | |
| - | printf("\t\tInterleaved DMA support\n"); |
| + | puts("\t\tInterleaved DMA support"); |
| if ((val[WHATS_VALID] & OK_W64_70) | |
| && (val[DMA_TIME_MIN] || val[DMA_TIME_NORM]) | |
| @@ -1121,8 +1121,8 @@ static void identify(uint16_t *val) | |
| } | |
| if ((val[CMDS_SUPP_1] & VALID) == VALID_VAL) { | |
| - | printf("Commands/features:\n" |
| - | "\tEnabled\tSupported:\n"); |
| + | puts("Commands/features:\n" |
| + | "\tEnabled\tSupported:"); |
| jj = val[CMDS_SUPP_0]; | |
| kk = val[CMDS_EN_0]; | |
| for (ii = 0; ii < NUM_CMD_FEAT_STR; ii++) { | |
| @@ -1150,7 +1150,7 @@ static void identify(uint16_t *val) | |
| if ((eqpt != CDROM) && (like_std > 3) | |
| && (val[SECU_STATUS] || val[ERASE_TIME] || val[ENH_ERASE_TIME]) | |
| ) { | |
| - | printf("Security:\n"); |
| + | puts("Security:"); |
| if (val[PSWD_CODE] && (val[PSWD_CODE] != NOVAL_1)) | |
| printf("\tMaster password revision code = %u\n", val[PSWD_CODE]); | |
| jj = val[SECU_STATUS]; | |
| @@ -1366,7 +1366,7 @@ static NOINLINE void dump_identity(const struct hd_driveid *id) | |
| } | |
| } | |
| #endif /* __NEW_HD_DRIVE_ID */ | |
| - | printf("\n\n * current active mode\n\n"); |
| + | puts("\n\n * current active mode\n"); |
| } | |
| #endif | |
| @@ -1507,7 +1507,7 @@ static void bus_state_value(unsigned value) | |
| else if (value == BUSSTATE_OFF) | |
| on_off(0); | |
| else if (value == BUSSTATE_TRISTATE) | |
| - | printf(" (tristate)\n"); |
| + | puts(" (tristate)"); |
| else | |
| printf(" (unknown: %u)\n", value); | |
| } | |
| @@ -1531,7 +1531,7 @@ static void interpret_standby(uint8_t standby) | |
| printf("vendor-specific"); | |
| if (standby == 254) | |
| printf("reserved"); | |
| - | printf(")\n"); |
| + | puts(")"); |
| } | |
| static const uint8_t xfermode_val[] ALIGN1 = { | |
| @@ -1582,7 +1582,7 @@ static void interpret_xfermode(unsigned xfermode) | |
| printf("UltraDMA mode%u", xfermode - 64); | |
| else | |
| printf("unknown"); | |
| - | printf(")\n"); |
| + | puts(")"); |
| } | |
| #endif /* HDIO_DRIVE_CMD */ | |
| @@ -1633,7 +1633,7 @@ static void process_dev(char *devname) | |
| if (noisy_piomode) { | |
| printf(" attempting to "); | |
| if (piomode == 255) | |
| - | printf("auto-tune PIO mode\n"); |
| + | puts("auto-tune PIO mode"); |
| else if (piomode < 100) | |
| printf("set PIO mode to %d\n", piomode); | |
| else if (piomode < 200) | |
| @@ -1762,7 +1762,7 @@ static void process_dev(char *devname) | |
| #ifndef WIN_STANDBYNOW2 | |
| #define WIN_STANDBYNOW2 0x94 | |
| #endif | |
| - | printf(" issuing standby command\n"); |
| + | puts(" issuing standby command"); |
| args[0] = WIN_STANDBYNOW1; | |
| ioctl_alt_or_warn(HDIO_DRIVE_CMD, args, WIN_STANDBYNOW2); | |
| } | |
| @@ -1773,13 +1773,13 @@ static void process_dev(char *devname) | |
| #ifndef WIN_SLEEPNOW2 | |
| #define WIN_SLEEPNOW2 0x99 | |
| #endif | |
| - | printf(" issuing sleep command\n"); |
| + | puts(" issuing sleep command"); |
| args[0] = WIN_SLEEPNOW1; | |
| ioctl_alt_or_warn(HDIO_DRIVE_CMD, args, WIN_SLEEPNOW2); | |
| } | |
| if (set_seagate) { | |
| args[0] = 0xfb; | |
| - | printf(" disabling Seagate auto powersaving mode\n"); |
| + | puts(" disabling Seagate auto powersaving mode"); |
| ioctl_or_warn(fd, HDIO_DRIVE_CMD, &args); | |
| } | |
| if (getset_standby == IS_SET) { | |
| @@ -1815,17 +1815,17 @@ static void process_dev(char *devname) | |
| if (!ioctl_or_warn(fd, HDIO_GET_32BIT, &parm)) { | |
| printf(" IO_support\t=%3ld (", parm); | |
| if (parm == 0) | |
| - | printf("default 16-bit)\n"); |
| + | puts("default 16-bit)"); |
| else if (parm == 2) | |
| - | printf("16-bit)\n"); |
| + | puts("16-bit)"); |
| else if (parm == 1) | |
| - | printf("32-bit)\n"); |
| + | puts("32-bit)"); |
| else if (parm == 3) | |
| - | printf("32-bit w/sync)\n"); |
| + | puts("32-bit w/sync)"); |
| else if (parm == 8) | |
| - | printf("Request-Queue-Bypass)\n"); |
| + | puts("Request-Queue-Bypass)"); |
| else | |
| - | printf("\?\?\?)\n"); |
| + | puts("\?\?\?)"); |
| } | |
| } | |
| if (getset_unmask) { | |
| @@ -1837,7 +1837,7 @@ static void process_dev(char *devname) | |
| if (!ioctl_or_warn(fd, HDIO_GET_DMA, &parm)) { | |
| printf(fmt, "using_dma", parm); | |
| if (parm == 8) | |
| - | printf(" (DMA-Assisted-PIO)\n"); |
| + | puts(" (DMA-Assisted-PIO)"); |
| else | |
| on_off(parm != 0); | |
| } | |
| @@ -1921,7 +1921,7 @@ static void process_dev(char *devname) | |
| id.multsect_valid &= ~1; | |
| dump_identity(&id); | |
| } else if (errno == -ENOMSG) | |
| - | printf(" no identification info available\n"); |
| + | puts(" no identification info available"); |
| else if (ENABLE_IOCTL_HEX2STR_ERROR) /* To be coherent with ioctl_or_warn */ | |
| bb_perror_msg("HDIO_GET_IDENTITY"); | |
| else | |
| @@ -701,7 +701,7 @@ int i2cset_main(int argc, char **argv) | |
| } | |
| if (status < 0) { | |
| - | printf("Warning - readback failed\n"); |
| + | puts("Warning - readback failed"); |
| } else | |
| if (status != val) { | |
| printf("Warning - data mismatch - wrote " | |
| @@ -756,8 +756,8 @@ static void dump_data(int bus_fd, int mode, unsigned first, | |
| { | |
| int i, j, res; | |
| - | printf(" 0 1 2 3 4 5 6 7 8 9 a b c d e f" |
| - | " 0123456789abcdef\n"); |
| + | puts(" 0 1 2 3 4 5 6 7 8 9 a b c d e f" |
| + | " 0123456789abcdef"); |
| for (i = 0; i < I2CDUMP_NUM_REGS; i += 0x10) { | |
| if (mode == I2C_SMBUS_BLOCK_DATA && i >= blen) | |
| @@ -826,22 +826,22 @@ static void dump_data(int bus_fd, int mode, unsigned first, | |
| break; | |
| /* Skip unwanted registers */ | |
| if (i+j < first || i+j > last) { | |
| - | printf(" "); |
| + | bb_putchar(' '); |
| continue; | |
| } | |
| res = block[i+j]; | |
| if (res < 0) { | |
| - | printf("X"); |
| + | bb_putchar('X'); |
| } else if (res == 0x00 || res == 0xff) { | |
| - | printf("."); |
| + | bb_putchar('.'); |
| } else if (res < 32 || res >= 127) { | |
| - | printf("?"); |
| + | bb_putchar('?'); |
| } else { | |
| - | printf("%c", res); |
| + | bb_putchar(res); |
| } | |
| } | |
| - | printf("\n"); |
| + | bb_putchar('\n'); |
| } | |
| } | |
| @@ -850,7 +850,7 @@ static void dump_word_data(int bus_fd, unsigned first, unsigned last) | |
| int i, j, rv; | |
| /* Word data. */ | |
| - | printf(" 0,8 1,9 2,a 3,b 4,c 5,d 6,e 7,f\n"); |
| + | puts(" 0,8 1,9 2,a 3,b 4,c 5,d 6,e 7,f"); |
| for (i = 0; i < 256; i += 8) { | |
| if (i/8 < first/8) | |
| continue; | |
| @@ -871,7 +871,7 @@ static void dump_word_data(int bus_fd, unsigned first, unsigned last) | |
| else | |
| printf("%04x ", rv & 0xffff); | |
| } | |
| - | printf("\n"); |
| + | bb_putchar('\n'); |
| } | |
| } | |
| @@ -1267,7 +1267,7 @@ int i2cdetect_main(int argc UNUSED_PARAM, char **argv) | |
| if (!(opts & opt_y)) | |
| confirm_action(-1, -1, -1, 0); | |
| - | printf(" 0 1 2 3 4 5 6 7 8 9 a b c d e f\n"); |
| + | puts(" 0 1 2 3 4 5 6 7 8 9 a b c d e f"); |
| for (i = 0; i < 128; i += 16) { | |
| printf("%02x: ", i); | |
| for(j = 0; j < 16; j++) { | |
| @@ -1325,7 +1325,7 @@ int i2cdetect_main(int argc UNUSED_PARAM, char **argv) | |
| else | |
| printf("%02x ", i+j); | |
| } | |
| - | printf("\n"); |
| + | bb_putchar('\n'); |
| } | |
| return 0; | |
| @@ -249,7 +249,7 @@ static void recv_pack(unsigned char *buf, int len, struct sockaddr_ll *FROM) | |
| unsigned diff = MONOTONIC_US() - last; | |
| printf(" %u.%03ums\n", diff / 1000, diff % 1000); | |
| } else { | |
| - | printf(" UNSOLICITED?\n"); |
| + | puts(" UNSOLICITED?"); |
| } | |
| fflush_all(); | |
| } | |
| @@ -217,7 +217,7 @@ int brctl_main(int argc UNUSED_PARAM, char **argv) | |
| arm_ioctl(args, BRCTL_GET_BRIDGES, | |
| (unsigned long) bridx, MAX_PORTS); | |
| num = xioctl(fd, SIOCGIFBR, args); | |
| - | printf("bridge name\tbridge id\t\tSTP enabled\tinterfaces\n"); |
| + | puts("bridge name\tbridge id\t\tSTP enabled\tinterfaces"); |
| for (i = 0; i < num; i++) { | |
| char ifname[IFNAMSIZ]; | |
| int j, tabs; | |
| @@ -236,7 +236,7 @@ int brctl_main(int argc UNUSED_PARAM, char **argv) | |
| /* print bridge id */ | |
| x = (unsigned char *) &bi.bridge_id; | |
| for (j = 0; j < 8; j++) { | |
| - | printf("%.2x", x[j]); |
| + | printf("%02x", x[j]); |
| if (j == 1) | |
| bb_putchar('.'); | |
| } | |
| @@ -200,7 +200,7 @@ int lpd_main(int argc UNUSED_PARAM, char *argv[]) | |
| if (2 != s[0] && 3 != s[0]) | |
| goto unsupported_cmd; | |
| if (spooling & (1 << (s[0]-1))) { | |
| - | printf("Duplicated subcommand\n"); |
| + | puts("Duplicated subcommand"); |
| goto err_exit; | |
| } | |
| // get filename | |
| @@ -208,7 +208,7 @@ int lpd_main(int argc UNUSED_PARAM, char *argv[]) | |
| fname = strchr(s, ' '); | |
| if (!fname) { | |
| // bad_fname: | |
| - | printf("No or bad filename\n"); |
| + | puts("No or bad filename"); |
| goto err_exit; | |
| } | |
| *fname++ = '\0'; | |
| @@ -219,13 +219,13 @@ int lpd_main(int argc UNUSED_PARAM, char *argv[]) | |
| // get length | |
| expected_len = bb_strtou(s + 1, NULL, 10); | |
| if (errno || expected_len < 0) { | |
| - | printf("Bad length\n"); |
| + | puts("Bad length"); |
| goto err_exit; | |
| } | |
| if (2 == s[0] && expected_len > 16 * 1024) { | |
| // SECURITY: | |
| // ctrlfile can't be big (we want to read it back later!) | |
| - | printf("File is too big\n"); |
| + | puts("File is too big"); |
| goto err_exit; | |
| } | |
| @@ -142,7 +142,7 @@ static void print_timestamp(void) | |
| /* %x: date representation for the current locale */ | |
| /* %X: time representation for the current locale */ | |
| strftime(buf, sizeof(buf), "%x %X", &G.tmtime); | |
| - | printf("%s\n", buf); |
| + | puts(buf); |
| } | |
| static cputime_t get_smp_uptime(void) | |
| @@ -704,7 +704,7 @@ int powertop_main(int UNUSED_PARAM argc, char UNUSED_PARAM **argv) | |
| /* Get number of CPUs */ | |
| G.total_cpus = get_cpu_count(); | |
| - | printf("Collecting data for "DEFAULT_SLEEP_STR" seconds\n"); |
| + | puts("Collecting data for "DEFAULT_SLEEP_STR" seconds"); |
| #if ENABLE_FEATURE_USE_TERMIOS | |
| tcgetattr(0, (void *)&G.init_settings); | |
| @@ -9681,7 +9681,7 @@ preadfd(void) | |
| } | |
| # if ENABLE_ASH_IDLE_TIMEOUT | |
| else if (errno == EAGAIN && timeout > 0) { | |
| - | printf("\007timed out waiting for input: auto-logout\n"); |
| + | puts("\007timed out waiting for input: auto-logout"); |
| exitshell(); | |
| } | |
| # endif | |
| @@ -6794,7 +6794,7 @@ static int checkjobs(struct pipe *fg_pipe) | |
| int sig = WTERMSIG(status); | |
| if (i == fg_pipe->num_cmds-1) | |
| /* TODO: use strsignal() instead for bash compat? but that's bloat... */ | |
| - | printf("%s\n", sig == SIGINT || sig == SIGPIPE ? "" : get_signame(sig)); |
| + | puts(sig == SIGINT || sig == SIGPIPE ? "" : get_signame(sig)); |
| /* TODO: if (WCOREDUMP(status)) + " (core dumped)"; */ | |
| /* TODO: MIPS has 128 sigs (1..128), what if sig==128 here? | |
| * Maybe we need to use sig | 128? */ | |
| @@ -380,7 +380,7 @@ static void printlim(unsigned opts, const struct rlimit *limit, | |
| val = limit->rlim_cur; | |
| if (val == RLIM_INFINITY) | |
| - | printf("unlimited\n"); |
| + | puts("unlimited"); |
| else { | |
| val >>= l->factor_shift; | |
| printf("%llu\n", (long long) val); | |
| @@ -93,7 +93,7 @@ int fdformat_main(int argc UNUSED_PARAM, char **argv) | |
| } | |
| xioctl(fd, FDFMTEND, NULL); | |
| - | printf("done\n"); |
| + | puts("Done"); |
| /* VERIFY */ | |
| if (verify) { | |
| @@ -126,7 +126,7 @@ int fdformat_main(int argc UNUSED_PARAM, char **argv) | |
| if (ENABLE_FEATURE_CLEAN_UP) free(data); | |
| - | printf("done\n"); |
| + | puts("Done"); |
| } | |
| if (ENABLE_FEATURE_CLEAN_UP) close(fd); | |
| @@ -1102,11 +1102,11 @@ warn_geometry(void) | |
| printf(" sectors"); | |
| if (!g_cylinders) | |
| printf(" cylinders"); | |
| - | printf( |
| #if ENABLE_FEATURE_FDISK_WRITABLE | |
| - | " (settable in the extra functions menu)" |
| + | puts(" (settable in the extra functions menu)"); |
| + | #else |
| + | bb_putchar('\n'); |
| #endif | |
| - | "\n"); |
| return 1; | |
| } | |
| @@ -1150,7 +1150,7 @@ read_extended(int ext) | |
| p = pex->part_table; | |
| if (!get_start_sect(p)) { | |
| - | printf("Bad offset in primary extended partition\n"); |
| + | puts("Bad offset in primary extended partition"); |
| return; | |
| } | |
| @@ -1450,8 +1450,8 @@ static int get_boot(void) | |
| current_label_type = LABEL_OSF; | |
| return 0; | |
| } | |
| - | printf("This disk has both DOS and BSD magic.\n" |
| - | "Give the 'b' command to go to BSD mode.\n"); |
| + | puts("This disk has both DOS and BSD magic.\n" |
| + | "Give the 'b' command to go to BSD mode."); |
| } | |
| #endif | |
| @@ -1461,9 +1461,9 @@ static int get_boot(void) | |
| #else | |
| if (!valid_part_table_flag(MBRbuffer)) { | |
| if (what == OPEN_MAIN) { | |
| - | printf("Device contains neither a valid DOS " |
| - | "partition table, nor Sun, SGI, OSF or GPT " |
| - | "disklabel\n"); |
| + | puts("Device contains neither a valid DOS " |
| + | "partition table, nor Sun, SGI, OSF or GPT " |
| + | "disklabel"); |
| #ifdef __sparc__ | |
| IF_FEATURE_SUN_LABEL(create_sunlabel();) | |
| #else | |
| @@ -1596,7 +1596,7 @@ read_int(sector_t low, sector_t dflt, sector_t high, sector_t base, const char * | |
| } | |
| if (value >= low && value <= high) | |
| break; | |
| - | printf("Value is out of range\n"); |
| + | puts("Value is out of range"); |
| } | |
| return value; | |
| } | |
| @@ -1641,7 +1641,7 @@ get_existing_partition(int warn, unsigned max) | |
| printf("Selected partition %u\n", pno+1); | |
| return pno; | |
| } | |
| - | printf("No partition is defined yet!\n"); |
| + | puts("No partition is defined yet!"); |
| return -1; | |
| not_unique: | |
| @@ -1668,7 +1668,7 @@ get_nonexisting_partition(int warn, unsigned max) | |
| printf("Selected partition %u\n", pno+1); | |
| return pno; | |
| } | |
| - | printf("All primary partitions have been defined already!\n"); |
| + | puts("All primary partitions have been defined already!"); |
| return -1; | |
| not_unique: | |
| @@ -1703,10 +1703,10 @@ toggle_dos_compatibility_flag(void) | |
| dos_compatible_flag = 1 - dos_compatible_flag; | |
| if (dos_compatible_flag) { | |
| sector_offset = g_sectors; | |
| - | printf("DOS Compatibility flag is set\n"); |
| + | printf("DOS Compatibility flag is %sset\n", ""); |
| } else { | |
| sector_offset = 1; | |
| - | printf("DOS Compatibility flag is not set\n"); |
| + | printf("DOS Compatibility flag is %sset\n", "not "); |
| } | |
| } | |
| @@ -1813,16 +1813,16 @@ change_sysid(void) | |
| sys = read_hex(get_sys_types()); | |
| if (!sys && !LABEL_IS_SGI && !LABEL_IS_SUN) { | |
| - | printf("Type 0 means free space to many systems\n" |
| - | "(but not to Linux). Having partitions of\n" |
| - | "type 0 is probably unwise.\n"); |
| + | puts("Type 0 means free space to many systems\n" |
| + | "(but not to Linux). Having partitions of\n" |
| + | "type 0 is probably unwise."); |
| /* break; */ | |
| } | |
| if (!LABEL_IS_SUN && !LABEL_IS_SGI) { | |
| if (IS_EXTENDED(sys) != IS_EXTENDED(p->sys_ind)) { | |
| - | printf("You cannot change a partition into" |
| - | " an extended one or vice versa\n"); |
| + | puts("You cannot change a partition into" |
| + | " an extended one or vice versa"); |
| break; | |
| } | |
| } | |
| @@ -1830,10 +1830,10 @@ change_sysid(void) | |
| if (sys < 256) { | |
| #if ENABLE_FEATURE_SUN_LABEL | |
| if (LABEL_IS_SUN && i == 2 && sys != SUN_WHOLE_DISK) | |
| - | printf("Consider leaving partition 3 " |
| - | "as Whole disk (5),\n" |
| - | "as SunOS/Solaris expects it and " |
| - | "even Linux likes it\n\n"); |
| + | puts("Consider leaving partition 3 " |
| + | "as Whole disk (5),\n" |
| + | "as SunOS/Solaris expects it and " |
| + | "even Linux likes it\n"); |
| #endif | |
| #if ENABLE_FEATURE_SGI_LABEL | |
| if (LABEL_IS_SGI && | |
| @@ -1842,10 +1842,10 @@ change_sysid(void) | |
| (i == 8 && sys != 0) | |
| ) | |
| ) { | |
| - | printf("Consider leaving partition 9 " |
| - | "as volume header (0),\nand " |
| - | "partition 11 as entire volume (6)" |
| - | "as IRIX expects it\n\n"); |
| + | puts("Consider leaving partition 9 " |
| + | "as volume header (0),\nand " |
| + | "partition 11 as entire volume (6)" |
| + | "as IRIX expects it\n"); |
| } | |
| #endif | |
| if (sys == origsys) | |
| @@ -2067,7 +2067,7 @@ fix_partition_table_order(void) | |
| int i,k; | |
| if (!wrong_p_order(NULL)) { | |
| - | printf("Ordering is already correct\n\n"); |
| + | puts("Ordering is already correct\n"); |
| return; | |
| } | |
| @@ -2095,7 +2095,7 @@ fix_partition_table_order(void) | |
| if (i) | |
| fix_chain_of_logicals(); | |
| - | printf("Done.\n"); |
| + | puts("Done"); |
| } | |
| #endif | |
| @@ -2178,7 +2178,7 @@ list_table(int xtra) | |
| * if this is a sgi, sun or aix labeled disk... */ | |
| if (LABEL_IS_DOS && wrong_p_order(NULL)) { | |
| /* FIXME */ | |
| - | printf("\nPartition table entries are not in disk order\n"); |
| + | puts("\nPartition table entries are not in disk order"); |
| } | |
| } | |
| @@ -2192,7 +2192,7 @@ x_list_table(int extend) | |
| printf("\nDisk %s: %u heads, %u sectors, %u cylinders\n\n", | |
| disk_device, g_heads, g_sectors, g_cylinders); | |
| - | printf("Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID\n"); |
| + | puts("Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID"); |
| for (i = 0; i < g_partitions; i++) { | |
| pe = &ptes[i]; | |
| p = (extend ? pe->ext_pointer : pe->part_table); | |
| @@ -2419,7 +2419,7 @@ add_partition(int n, int sys) | |
| limit = first[i] - 1; | |
| } | |
| if (start > limit) { | |
| - | printf("No free sectors available\n"); |
| + | puts("No free sectors available"); |
| if (n > 4) | |
| g_partitions--; | |
| return; | |
| @@ -2490,9 +2490,9 @@ new_partition(void) | |
| return; | |
| } | |
| if (LABEL_IS_AIX) { | |
| - | printf("Sorry - this fdisk cannot handle AIX disk labels.\n" |
| + | puts("Sorry - this fdisk cannot handle AIX disk labels.\n" |
| "If you want to add DOS-type partitions, create a new empty DOS partition\n" | |
| - | "table first (use 'o'). This will destroy the present disk contents.\n"); |
| + | "table first (use 'o'). This will destroy the present disk contents."); |
| return; | |
| } | |
| @@ -2500,7 +2500,7 @@ new_partition(void) | |
| free_primary += !ptes[i].part_table->sys_ind; | |
| if (!free_primary && g_partitions >= MAXIMUM_PARTS) { | |
| - | printf("The maximum number of partitions has been created\n"); |
| + | puts("The maximum number of partitions has been created"); |
| return; | |
| } | |
| @@ -2508,8 +2508,8 @@ new_partition(void) | |
| if (extended_offset) | |
| add_logical(); | |
| else | |
| - | printf("You must delete some partition and add " |
| - | "an extended partition first\n"); |
| + | puts("You must delete some partition and add " |
| + | "an extended partition first"); |
| } else { | |
| char c, line[80]; | |
| snprintf(line, sizeof(line), | |
| @@ -2547,7 +2547,7 @@ reread_partition_table(int leave) | |
| { | |
| int i; | |
| - | printf("Calling ioctl() to re-read partition table\n"); |
| + | puts("Calling ioctl() to re-read partition table"); |
| sync(); | |
| /* Users with slow external USB disks on a 320MHz ARM system (year 2011) | |
| * report that sleep is needed, otherwise BLKRRPART may fail with -EIO: | |
| @@ -2558,10 +2558,10 @@ reread_partition_table(int leave) | |
| "failed, kernel still uses old table"); | |
| #if 0 | |
| if (dos_changed) | |
| - | printf( |
| + | puts( |
| "\nWARNING: If you have created or modified any DOS 6.x\n" | |
| "partitions, please see the fdisk manual page for additional\n" | |
| - | "information\n"); |
| + | "information"); |
| #endif | |
| if (leave) { | |
| @@ -2589,7 +2589,7 @@ write_table(void) | |
| } | |
| } | |
| else if (LABEL_IS_SGI) { | |
| - | /* no test on change? the printf below might be mistaken */ |
| + | /* no test on change? the "altered" msg below might be mistaken */ |
| sgi_write_table(); | |
| } | |
| else if (LABEL_IS_SUN) { | |
| @@ -2601,7 +2601,7 @@ write_table(void) | |
| } | |
| } | |
| - | printf("The partition table has been altered.\n"); |
| + | puts("The partition table has been altered."); |
| reread_partition_table(1); | |
| } | |
| #endif /* FEATURE_FDISK_WRITABLE */ | |
| @@ -2744,8 +2744,8 @@ xselect(void) | |
| user_sectors = g_sectors = read_int(1, g_sectors, 63, 0, "Number of sectors"); | |
| if (dos_compatible_flag) { | |
| sector_offset = g_sectors; | |
| - | printf("Warning: setting sector offset for DOS " |
| - | "compatiblity\n"); |
| + | puts("Warning: setting sector offset for DOS " |
| + | "compatiblity"); |
| } | |
| update_units(); | |
| break; | |
| @@ -3024,7 +3024,7 @@ int fdisk_main(int argc UNUSED_PARAM, char **argv) | |
| sgi_get_bootfile()); | |
| if (read_maybe_empty("Please enter the name of the " | |
| "new boot file: ") == '\n') | |
| - | printf("Boot file unchanged\n"); |
| + | puts("Boot file unchanged"); |
| else | |
| sgi_set_bootfile(line_ptr); | |
| } | |
| @@ -3106,8 +3106,8 @@ int fdisk_main(int argc UNUSED_PARAM, char **argv) | |
| #if ENABLE_FEATURE_FDISK_ADVANCED | |
| case 'x': | |
| if (LABEL_IS_SGI) { | |
| - | printf("\n\tSorry, no experts menu for SGI " |
| - | "partition tables available\n\n"); |
| + | puts("\n\tSorry, no experts menu for SGI " |
| + | "partition tables available\n"); |
| } else | |
| xselect(); | |
| break; | |
| @@ -106,7 +106,7 @@ gpt_list_table(int xtra UNUSED_PARAM) | |
| (unsigned long long)SWAP_LE64(gpt_hdr->first_usable_lba), | |
| (unsigned long long)SWAP_LE64(gpt_hdr->last_usable_lba)); | |
| - | printf("Number Start (sector) End (sector) Size Code Name\n"); |
| + | puts("Number Start (sector) End (sector) Size Code Name"); |
| for (i = 0; i < n_parts; i++) { | |
| gpt_partition *p = gpt_part(i); | |
| if (p->lba_start) { | |
| @@ -119,7 +119,7 @@ gpt_list_table(int xtra UNUSED_PARAM) | |
| numstr6, | |
| 0x0700 /* FIXME */); | |
| gpt_print_wide(p->name, 18); | |
| - | printf("\n"); |
| + | bb_putchar('\n'); |
| } | |
| } | |
| } | |
| @@ -371,9 +371,9 @@ static int ask(const char *string, int def) | |
| } | |
| } | |
| if (def) | |
| - | printf("y\n"); |
| + | puts("y"); |
| else { | |
| - | printf("n\n"); |
| + | puts("n"); |
| errors_uncorrected = 1; | |
| } | |
| return def; | |
| @@ -405,7 +405,7 @@ static void check_mount(void) | |
| if (isatty(0) && isatty(1)) | |
| cont = ask("Do you really want to continue", 0); | |
| if (!cont) { | |
| - | printf("Check aborted\n"); |
| + | puts("Check aborted"); |
| exit(EXIT_SUCCESS); | |
| } | |
| } | |
| @@ -470,8 +470,8 @@ static void write_block(unsigned nr, void *addr) | |
| if (!nr) | |
| return; | |
| if (nr < FIRSTZONE || nr >= ZONES) { | |
| - | printf("Internal error: trying to write bad block\n" |
| - | "Write request ignored\n"); |
| + | puts("Internal error: trying to write bad block\n" |
| + | "Write request ignored"); |
| errors_uncorrected = 1; | |
| return; | |
| } | |
| @@ -659,7 +659,7 @@ static void read_tables(void) | |
| if (INODE_BUFFER_SIZE != read(dev_fd, inode_buffer, INODE_BUFFER_SIZE)) | |
| die("can't read inodes"); | |
| if (NORM_FIRSTZONE != FIRSTZONE) { | |
| - | printf("warning: firstzone!=norm_firstzone\n"); |
| + | puts("warning: firstzone!=norm_firstzone"); |
| errors_uncorrected = 1; | |
| } | |
| get_dirsize(); | |
| @@ -713,7 +713,7 @@ static void get_inode_common(unsigned nr, uint16_t i_mode) | |
| } else | |
| links++; | |
| if (!++inode_count[nr]) { | |
| - | printf("Warning: inode count too big\n"); |
| + | puts("Warning: inode count too big"); |
| inode_count[nr]--; | |
| errors_uncorrected = 1; | |
| } | |
| @@ -1299,7 +1299,7 @@ int fsck_minix_main(int argc UNUSED_PARAM, char **argv) | |
| } | |
| if (changed) { | |
| write_tables(); | |
| - | printf("FILE SYSTEM HAS BEEN CHANGED\n"); |
| + | puts("FILE SYSTEM HAS BEEN CHANGED"); |
| sync(); | |
| } else if (OPT_repair) | |
| write_superblock(); | |
| @@ -378,7 +378,7 @@ int getopt_main(int argc, char **argv) | |
| if (compatible) { | |
| /* For some reason, the original getopt gave no error | |
| * when there were no arguments. */ | |
| - | printf(" --\n"); |
| + | puts(" --"); |
| return 0; | |
| } | |
| bb_error_msg_and_die("missing optstring argument"); | |
| @@ -119,7 +119,7 @@ int ipcrm_main(int argc, char **argv) | |
| if (remove_ids(what, &argv[2])) | |
| fflush_stdout_and_exit(EXIT_FAILURE); | |
| - | printf("resource(s) deleted\n"); |
| + | puts("resource(s) deleted"); |
| return 0; | |
| } | |
| } | |