diff options
| author | vda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-12-30 18:42:29 +0000 |
|---|---|---|
| committer | vda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-12-30 18:42:29 +0000 |
| commit | 2e9b728d016fb3632e1a0185e4bee8db2cf0f82b (patch) | |
| tree | d270e6fa41ae3b327aaef60a956328961795594a | |
| parent | 278c4c60c21f7dcab75ab1137e15079d5cf3c324 (diff) | |
| download | busybox-w32-2e9b728d016fb3632e1a0185e4bee8db2cf0f82b.tar.gz busybox-w32-2e9b728d016fb3632e1a0185e4bee8db2cf0f82b.tar.bz2 busybox-w32-2e9b728d016fb3632e1a0185e4bee8db2cf0f82b.zip | |
next bunch of fixes for bugs found by randconfig
git-svn-id: svn://busybox.net/trunk/busybox@17106 69ca8d6d-28ef-0310-b511-8ec308f3f277
| -rw-r--r-- | editors/vi.c | 407 | ||||
| -rw-r--r-- | libbb/Kbuild | 2 | ||||
| -rw-r--r-- | modutils/insmod.c | 7 | ||||
| -rw-r--r-- | util-linux/fdisk.c | 30 | ||||
| -rw-r--r-- | util-linux/fdisk_aix.c | 2 | ||||
| -rw-r--r-- | util-linux/fdisk_osf.c | 2 | ||||
| -rw-r--r-- | util-linux/fdisk_sgi.c | 6 | ||||
| -rw-r--r-- | util-linux/fdisk_sun.c | 6 |
8 files changed, 234 insertions, 228 deletions
diff --git a/editors/vi.c b/editors/vi.c index dc93bc424..46181cf60 100644 --- a/editors/vi.c +++ b/editors/vi.c | |||
| @@ -21,10 +21,11 @@ | |||
| 21 | * An "ex" line oriented mode- maybe using "cmdedit" | 21 | * An "ex" line oriented mode- maybe using "cmdedit" |
| 22 | */ | 22 | */ |
| 23 | 23 | ||
| 24 | |||
| 25 | #include "busybox.h" | 24 | #include "busybox.h" |
| 26 | 25 | ||
| 27 | #ifdef CONFIG_LOCALE_SUPPORT | 26 | #define ENABLE_FEATURE_VI_CRASHME 0 |
| 27 | |||
| 28 | #if ENABLE_LOCALE_SUPPORT | ||
| 28 | #define Isprint(c) isprint((c)) | 29 | #define Isprint(c) isprint((c)) |
| 29 | #else | 30 | #else |
| 30 | #define Isprint(c) ( (c) >= ' ' && (c) != 127 && (c) != ((unsigned char)'\233') ) | 31 | #define Isprint(c) ( (c) >= ' ' && (c) != 127 && (c) != ((unsigned char)'\233') ) |
| @@ -127,35 +128,35 @@ static Byte erase_char; // the users erase character | |||
| 127 | static Byte last_input_char; // last char read from user | 128 | static Byte last_input_char; // last char read from user |
| 128 | static Byte last_forward_char; // last char searched for with 'f' | 129 | static Byte last_forward_char; // last char searched for with 'f' |
| 129 | 130 | ||
| 130 | #ifdef CONFIG_FEATURE_VI_OPTIMIZE_CURSOR | 131 | #if ENABLE_FEATURE_VI_OPTIMIZE_CURSOR |
| 131 | static int last_row; // where the cursor was last moved to | 132 | static int last_row; // where the cursor was last moved to |
| 132 | #endif /* CONFIG_FEATURE_VI_OPTIMIZE_CURSOR */ | 133 | #endif |
| 133 | #ifdef CONFIG_FEATURE_VI_USE_SIGNALS | 134 | #if ENABLE_FEATURE_VI_USE_SIGNALS |
| 134 | static jmp_buf restart; // catch_sig() | 135 | static jmp_buf restart; // catch_sig() |
| 135 | #endif /* CONFIG_FEATURE_VI_USE_SIGNALS */ | 136 | #endif |
| 136 | #if defined(CONFIG_FEATURE_VI_USE_SIGNALS) || defined(CONFIG_FEATURE_VI_CRASHME) | 137 | #if ENABLE_FEATURE_VI_USE_SIGNALS || ENABLE_FEATURE_VI_CRASHME |
| 137 | static int my_pid; | 138 | static int my_pid; |
| 138 | #endif | 139 | #endif |
| 139 | #ifdef CONFIG_FEATURE_VI_DOT_CMD | 140 | #if ENABLE_FEATURE_VI_DOT_CMD |
| 140 | static int adding2q; // are we currently adding user input to q | 141 | static int adding2q; // are we currently adding user input to q |
| 141 | static Byte *last_modifying_cmd; // last modifying cmd for "." | 142 | static Byte *last_modifying_cmd; // last modifying cmd for "." |
| 142 | static Byte *ioq, *ioq_start; // pointer to string for get_one_char to "read" | 143 | static Byte *ioq, *ioq_start; // pointer to string for get_one_char to "read" |
| 143 | #endif /* CONFIG_FEATURE_VI_DOT_CMD */ | 144 | #endif |
| 144 | #if defined(CONFIG_FEATURE_VI_DOT_CMD) || defined(CONFIG_FEATURE_VI_YANKMARK) | 145 | #if ENABLE_FEATURE_VI_DOT_CMD || ENABLE_FEATURE_VI_YANKMARK |
| 145 | static Byte *modifying_cmds; // cmds that modify text[] | 146 | static Byte *modifying_cmds; // cmds that modify text[] |
| 146 | #endif /* CONFIG_FEATURE_VI_DOT_CMD || CONFIG_FEATURE_VI_YANKMARK */ | 147 | #endif |
| 147 | #ifdef CONFIG_FEATURE_VI_READONLY | 148 | #if ENABLE_FEATURE_VI_READONLY |
| 148 | static int vi_readonly, readonly; | 149 | static int vi_readonly, readonly; |
| 149 | #endif /* CONFIG_FEATURE_VI_READONLY */ | 150 | #endif |
| 150 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 151 | #if ENABLE_FEATURE_VI_YANKMARK |
| 151 | static Byte *reg[28]; // named register a-z, "D", and "U" 0-25,26,27 | 152 | static Byte *reg[28]; // named register a-z, "D", and "U" 0-25,26,27 |
| 152 | static int YDreg, Ureg; // default delete register and orig line for "U" | 153 | static int YDreg, Ureg; // default delete register and orig line for "U" |
| 153 | static Byte *mark[28]; // user marks points somewhere in text[]- a-z and previous context '' | 154 | static Byte *mark[28]; // user marks points somewhere in text[]- a-z and previous context '' |
| 154 | static Byte *context_start, *context_end; | 155 | static Byte *context_start, *context_end; |
| 155 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 156 | #endif |
| 156 | #ifdef CONFIG_FEATURE_VI_SEARCH | 157 | #if ENABLE_FEATURE_VI_SEARCH |
| 157 | static Byte *last_search_pattern; // last pattern from a '/' or '?' search | 158 | static Byte *last_search_pattern; // last pattern from a '/' or '?' search |
| 158 | #endif /* CONFIG_FEATURE_VI_SEARCH */ | 159 | #endif |
| 159 | 160 | ||
| 160 | 161 | ||
| 161 | static void edit_file(Byte *); // edit one file | 162 | static void edit_file(Byte *); // edit one file |
| @@ -220,42 +221,42 @@ static void Indicate_Error(void); // use flash or beep to indicate error | |||
| 220 | #define indicate_error(c) Indicate_Error() | 221 | #define indicate_error(c) Indicate_Error() |
| 221 | static void Hit_Return(void); | 222 | static void Hit_Return(void); |
| 222 | 223 | ||
| 223 | #ifdef CONFIG_FEATURE_VI_SEARCH | 224 | #if ENABLE_FEATURE_VI_SEARCH |
| 224 | static Byte *char_search(Byte *, Byte *, int, int); // search for pattern starting at p | 225 | static Byte *char_search(Byte *, Byte *, int, int); // search for pattern starting at p |
| 225 | static int mycmp(Byte *, Byte *, int); // string cmp based in "ignorecase" | 226 | static int mycmp(Byte *, Byte *, int); // string cmp based in "ignorecase" |
| 226 | #endif /* CONFIG_FEATURE_VI_SEARCH */ | 227 | #endif |
| 227 | #ifdef CONFIG_FEATURE_VI_COLON | 228 | #if ENABLE_FEATURE_VI_COLON |
| 228 | static Byte *get_one_address(Byte *, int *); // get colon addr, if present | 229 | static Byte *get_one_address(Byte *, int *); // get colon addr, if present |
| 229 | static Byte *get_address(Byte *, int *, int *); // get two colon addrs, if present | 230 | static Byte *get_address(Byte *, int *, int *); // get two colon addrs, if present |
| 230 | static void colon(Byte *); // execute the "colon" mode cmds | 231 | static void colon(Byte *); // execute the "colon" mode cmds |
| 231 | #endif /* CONFIG_FEATURE_VI_COLON */ | 232 | #endif |
| 232 | #ifdef CONFIG_FEATURE_VI_USE_SIGNALS | 233 | #if ENABLE_FEATURE_VI_USE_SIGNALS |
| 233 | static void winch_sig(int); // catch window size changes | 234 | static void winch_sig(int); // catch window size changes |
| 234 | static void suspend_sig(int); // catch ctrl-Z | 235 | static void suspend_sig(int); // catch ctrl-Z |
| 235 | static void catch_sig(int); // catch ctrl-C and alarm time-outs | 236 | static void catch_sig(int); // catch ctrl-C and alarm time-outs |
| 236 | #endif /* CONFIG_FEATURE_VI_USE_SIGNALS */ | 237 | #endif |
| 237 | #ifdef CONFIG_FEATURE_VI_DOT_CMD | 238 | #if ENABLE_FEATURE_VI_DOT_CMD |
| 238 | static void start_new_cmd_q(Byte); // new queue for command | 239 | static void start_new_cmd_q(Byte); // new queue for command |
| 239 | static void end_cmd_q(void); // stop saving input chars | 240 | static void end_cmd_q(void); // stop saving input chars |
| 240 | #else /* CONFIG_FEATURE_VI_DOT_CMD */ | 241 | #else |
| 241 | #define end_cmd_q() | 242 | #define end_cmd_q() ((void)0) |
| 242 | #endif /* CONFIG_FEATURE_VI_DOT_CMD */ | 243 | #endif |
| 243 | #ifdef CONFIG_FEATURE_VI_SETOPTS | 244 | #if ENABLE_FEATURE_VI_SETOPTS |
| 244 | static void showmatching(Byte *); // show the matching pair () [] {} | 245 | static void showmatching(Byte *); // show the matching pair () [] {} |
| 245 | #endif /* CONFIG_FEATURE_VI_SETOPTS */ | 246 | #endif |
| 246 | #if defined(CONFIG_FEATURE_VI_YANKMARK) || (defined(CONFIG_FEATURE_VI_COLON) && defined(CONFIG_FEATURE_VI_SEARCH)) || defined(CONFIG_FEATURE_VI_CRASHME) | 247 | #if ENABLE_FEATURE_VI_YANKMARK || (ENABLE_FEATURE_VI_COLON && ENABLE_FEATURE_VI_SEARCH) || ENABLE_FEATURE_VI_CRASHME |
| 247 | static Byte *string_insert(Byte *, Byte *); // insert the string at 'p' | 248 | static Byte *string_insert(Byte *, Byte *); // insert the string at 'p' |
| 248 | #endif /* CONFIG_FEATURE_VI_YANKMARK || CONFIG_FEATURE_VI_SEARCH || CONFIG_FEATURE_VI_CRASHME */ | 249 | #endif |
| 249 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 250 | #if ENABLE_FEATURE_VI_YANKMARK |
| 250 | static Byte *text_yank(Byte *, Byte *, int); // save copy of "p" into a register | 251 | static Byte *text_yank(Byte *, Byte *, int); // save copy of "p" into a register |
| 251 | static Byte what_reg(void); // what is letter of current YDreg | 252 | static Byte what_reg(void); // what is letter of current YDreg |
| 252 | static void check_context(Byte); // remember context for '' command | 253 | static void check_context(Byte); // remember context for '' command |
| 253 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 254 | #endif |
| 254 | #ifdef CONFIG_FEATURE_VI_CRASHME | 255 | #if ENABLE_FEATURE_VI_CRASHME |
| 255 | static void crash_dummy(); | 256 | static void crash_dummy(); |
| 256 | static void crash_test(); | 257 | static void crash_test(); |
| 257 | static int crashme = 0; | 258 | static int crashme = 0; |
| 258 | #endif /* CONFIG_FEATURE_VI_CRASHME */ | 259 | #endif |
| 259 | 260 | ||
| 260 | 261 | ||
| 261 | static void write1(const char *out) | 262 | static void write1(const char *out) |
| @@ -268,52 +269,52 @@ int vi_main(int argc, char **argv) | |||
| 268 | int c; | 269 | int c; |
| 269 | RESERVE_CONFIG_BUFFER(STATUS_BUFFER, STATUS_BUFFER_LEN); | 270 | RESERVE_CONFIG_BUFFER(STATUS_BUFFER, STATUS_BUFFER_LEN); |
| 270 | 271 | ||
| 271 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 272 | #if ENABLE_FEATURE_VI_YANKMARK |
| 272 | int i; | 273 | int i; |
| 273 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 274 | #endif |
| 274 | #if defined(CONFIG_FEATURE_VI_USE_SIGNALS) || defined(CONFIG_FEATURE_VI_CRASHME) | 275 | #if defined(CONFIG_FEATURE_VI_USE_SIGNALS) || defined(CONFIG_FEATURE_VI_CRASHME) |
| 275 | my_pid = getpid(); | 276 | my_pid = getpid(); |
| 276 | #endif | 277 | #endif |
| 277 | #ifdef CONFIG_FEATURE_VI_CRASHME | 278 | #if ENABLE_FEATURE_VI_CRASHME |
| 278 | (void) srand((long) my_pid); | 279 | (void) srand((long) my_pid); |
| 279 | #endif /* CONFIG_FEATURE_VI_CRASHME */ | 280 | #endif |
| 280 | 281 | ||
| 281 | status_buffer = (Byte *)STATUS_BUFFER; | 282 | status_buffer = (Byte *)STATUS_BUFFER; |
| 282 | last_status_cksum = 0; | 283 | last_status_cksum = 0; |
| 283 | 284 | ||
| 284 | #ifdef CONFIG_FEATURE_VI_READONLY | 285 | #if ENABLE_FEATURE_VI_READONLY |
| 285 | vi_readonly = readonly = FALSE; | 286 | vi_readonly = readonly = FALSE; |
| 286 | if (strncmp(argv[0], "view", 4) == 0) { | 287 | if (strncmp(argv[0], "view", 4) == 0) { |
| 287 | readonly = TRUE; | 288 | readonly = TRUE; |
| 288 | vi_readonly = TRUE; | 289 | vi_readonly = TRUE; |
| 289 | } | 290 | } |
| 290 | #endif /* CONFIG_FEATURE_VI_READONLY */ | 291 | #endif |
| 291 | vi_setops = VI_AUTOINDENT | VI_SHOWMATCH | VI_IGNORECASE | VI_ERR_METHOD; | 292 | vi_setops = VI_AUTOINDENT | VI_SHOWMATCH | VI_IGNORECASE | VI_ERR_METHOD; |
| 292 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 293 | #if ENABLE_FEATURE_VI_YANKMARK |
| 293 | for (i = 0; i < 28; i++) { | 294 | for (i = 0; i < 28; i++) { |
| 294 | reg[i] = 0; | 295 | reg[i] = 0; |
| 295 | } // init the yank regs | 296 | } // init the yank regs |
| 296 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 297 | #endif |
| 297 | #if defined(CONFIG_FEATURE_VI_DOT_CMD) || defined(CONFIG_FEATURE_VI_YANKMARK) | 298 | #if ENABLE_FEATURE_VI_DOT_CMD || ENABLE_FEATURE_VI_YANKMARK |
| 298 | modifying_cmds = (Byte *) "aAcCdDiIJoOpPrRsxX<>~"; // cmds modifying text[] | 299 | modifying_cmds = (Byte *) "aAcCdDiIJoOpPrRsxX<>~"; // cmds modifying text[] |
| 299 | #endif /* CONFIG_FEATURE_VI_DOT_CMD */ | 300 | #endif |
| 300 | 301 | ||
| 301 | // 1- process $HOME/.exrc file | 302 | // 1- process $HOME/.exrc file |
| 302 | // 2- process EXINIT variable from environment | 303 | // 2- process EXINIT variable from environment |
| 303 | // 3- process command line args | 304 | // 3- process command line args |
| 304 | while ((c = getopt(argc, argv, "hCR")) != -1) { | 305 | while ((c = getopt(argc, argv, "hCR")) != -1) { |
| 305 | switch (c) { | 306 | switch (c) { |
| 306 | #ifdef CONFIG_FEATURE_VI_CRASHME | 307 | #if ENABLE_FEATURE_VI_CRASHME |
| 307 | case 'C': | 308 | case 'C': |
| 308 | crashme = 1; | 309 | crashme = 1; |
| 309 | break; | 310 | break; |
| 310 | #endif /* CONFIG_FEATURE_VI_CRASHME */ | 311 | #endif |
| 311 | #ifdef CONFIG_FEATURE_VI_READONLY | 312 | #if ENABLE_FEATURE_VI_READONLY |
| 312 | case 'R': // Read-only flag | 313 | case 'R': // Read-only flag |
| 313 | readonly = TRUE; | 314 | readonly = TRUE; |
| 314 | vi_readonly = TRUE; | 315 | vi_readonly = TRUE; |
| 315 | break; | 316 | break; |
| 316 | #endif /* CONFIG_FEATURE_VI_READONLY */ | 317 | #endif |
| 317 | //case 'r': // recover flag- ignore- we don't use tmp file | 318 | //case 'r': // recover flag- ignore- we don't use tmp file |
| 318 | //case 'x': // encryption flag- ignore | 319 | //case 'x': // encryption flag- ignore |
| 319 | //case 'c': // execute command first | 320 | //case 'c': // execute command first |
| @@ -351,12 +352,12 @@ static void edit_file(Byte * fn) | |||
| 351 | Byte c; | 352 | Byte c; |
| 352 | int cnt, size, ch; | 353 | int cnt, size, ch; |
| 353 | 354 | ||
| 354 | #ifdef CONFIG_FEATURE_VI_USE_SIGNALS | 355 | #if ENABLE_FEATURE_VI_USE_SIGNALS |
| 355 | int sig; | 356 | int sig; |
| 356 | #endif /* CONFIG_FEATURE_VI_USE_SIGNALS */ | 357 | #endif |
| 357 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 358 | #if ENABLE_FEATURE_VI_YANKMARK |
| 358 | static Byte *cur_line; | 359 | static Byte *cur_line; |
| 359 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 360 | #endif |
| 360 | 361 | ||
| 361 | rawmode(); | 362 | rawmode(); |
| 362 | rows = 24; | 363 | rows = 24; |
| @@ -378,20 +379,20 @@ static void edit_file(Byte * fn) | |||
| 378 | } | 379 | } |
| 379 | file_modified = 0; | 380 | file_modified = 0; |
| 380 | last_file_modified = -1; | 381 | last_file_modified = -1; |
| 381 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 382 | #if ENABLE_FEATURE_VI_YANKMARK |
| 382 | YDreg = 26; // default Yank/Delete reg | 383 | YDreg = 26; // default Yank/Delete reg |
| 383 | Ureg = 27; // hold orig line for "U" cmd | 384 | Ureg = 27; // hold orig line for "U" cmd |
| 384 | for (cnt = 0; cnt < 28; cnt++) { | 385 | for (cnt = 0; cnt < 28; cnt++) { |
| 385 | mark[cnt] = 0; | 386 | mark[cnt] = 0; |
| 386 | } // init the marks | 387 | } // init the marks |
| 387 | mark[26] = mark[27] = text; // init "previous context" | 388 | mark[26] = mark[27] = text; // init "previous context" |
| 388 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 389 | #endif |
| 389 | 390 | ||
| 390 | last_forward_char = last_input_char = '\0'; | 391 | last_forward_char = last_input_char = '\0'; |
| 391 | crow = 0; | 392 | crow = 0; |
| 392 | ccol = 0; | 393 | ccol = 0; |
| 393 | 394 | ||
| 394 | #ifdef CONFIG_FEATURE_VI_USE_SIGNALS | 395 | #if ENABLE_FEATURE_VI_USE_SIGNALS |
| 395 | catch_sig(0); | 396 | catch_sig(0); |
| 396 | signal(SIGWINCH, winch_sig); | 397 | signal(SIGWINCH, winch_sig); |
| 397 | signal(SIGTSTP, suspend_sig); | 398 | signal(SIGTSTP, suspend_sig); |
| @@ -399,7 +400,7 @@ static void edit_file(Byte * fn) | |||
| 399 | if (sig != 0) { | 400 | if (sig != 0) { |
| 400 | screenbegin = dot = text; | 401 | screenbegin = dot = text; |
| 401 | } | 402 | } |
| 402 | #endif /* CONFIG_FEATURE_VI_USE_SIGNALS */ | 403 | #endif |
| 403 | 404 | ||
| 404 | editing = 1; | 405 | editing = 1; |
| 405 | cmd_mode = 0; // 0=command 1=insert 2='R'eplace | 406 | cmd_mode = 0; // 0=command 1=insert 2='R'eplace |
| @@ -407,18 +408,18 @@ static void edit_file(Byte * fn) | |||
| 407 | tabstop = 8; | 408 | tabstop = 8; |
| 408 | offset = 0; // no horizontal offset | 409 | offset = 0; // no horizontal offset |
| 409 | c = '\0'; | 410 | c = '\0'; |
| 410 | #ifdef CONFIG_FEATURE_VI_DOT_CMD | 411 | #if ENABLE_FEATURE_VI_DOT_CMD |
| 411 | free(last_modifying_cmd); | 412 | free(last_modifying_cmd); |
| 412 | free(ioq_start); | 413 | free(ioq_start); |
| 413 | ioq = ioq_start = last_modifying_cmd = 0; | 414 | ioq = ioq_start = last_modifying_cmd = 0; |
| 414 | adding2q = 0; | 415 | adding2q = 0; |
| 415 | #endif /* CONFIG_FEATURE_VI_DOT_CMD */ | 416 | #endif |
| 416 | redraw(FALSE); // dont force every col re-draw | 417 | redraw(FALSE); // dont force every col re-draw |
| 417 | show_status_line(); | 418 | show_status_line(); |
| 418 | 419 | ||
| 419 | //------This is the main Vi cmd handling loop ----------------------- | 420 | //------This is the main Vi cmd handling loop ----------------------- |
| 420 | while (editing > 0) { | 421 | while (editing > 0) { |
| 421 | #ifdef CONFIG_FEATURE_VI_CRASHME | 422 | #if ENABLE_FEATURE_VI_CRASHME |
| 422 | if (crashme > 0) { | 423 | if (crashme > 0) { |
| 423 | if ((end - text) > 1) { | 424 | if ((end - text) > 1) { |
| 424 | crash_dummy(); // generate a random command | 425 | crash_dummy(); // generate a random command |
| @@ -429,23 +430,23 @@ static void edit_file(Byte * fn) | |||
| 429 | refresh(FALSE); | 430 | refresh(FALSE); |
| 430 | } | 431 | } |
| 431 | } | 432 | } |
| 432 | #endif /* CONFIG_FEATURE_VI_CRASHME */ | 433 | #endif |
| 433 | last_input_char = c = get_one_char(); // get a cmd from user | 434 | last_input_char = c = get_one_char(); // get a cmd from user |
| 434 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 435 | #if ENABLE_FEATURE_VI_YANKMARK |
| 435 | // save a copy of the current line- for the 'U" command | 436 | // save a copy of the current line- for the 'U" command |
| 436 | if (begin_line(dot) != cur_line) { | 437 | if (begin_line(dot) != cur_line) { |
| 437 | cur_line = begin_line(dot); | 438 | cur_line = begin_line(dot); |
| 438 | text_yank(begin_line(dot), end_line(dot), Ureg); | 439 | text_yank(begin_line(dot), end_line(dot), Ureg); |
| 439 | } | 440 | } |
| 440 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 441 | #endif |
| 441 | #ifdef CONFIG_FEATURE_VI_DOT_CMD | 442 | #if ENABLE_FEATURE_VI_DOT_CMD |
| 442 | // These are commands that change text[]. | 443 | // These are commands that change text[]. |
| 443 | // Remember the input for the "." command | 444 | // Remember the input for the "." command |
| 444 | if (!adding2q && ioq_start == 0 | 445 | if (!adding2q && ioq_start == 0 |
| 445 | && strchr((char *) modifying_cmds, c) != NULL) { | 446 | && strchr((char *) modifying_cmds, c) != NULL) { |
| 446 | start_new_cmd_q(c); | 447 | start_new_cmd_q(c); |
| 447 | } | 448 | } |
| 448 | #endif /* CONFIG_FEATURE_VI_DOT_CMD */ | 449 | #endif |
| 449 | do_cmd(c); // execute the user command | 450 | do_cmd(c); // execute the user command |
| 450 | // | 451 | // |
| 451 | // poll to see if there is input already waiting. if we are | 452 | // poll to see if there is input already waiting. if we are |
| @@ -456,10 +457,10 @@ static void edit_file(Byte * fn) | |||
| 456 | refresh(FALSE); | 457 | refresh(FALSE); |
| 457 | show_status_line(); | 458 | show_status_line(); |
| 458 | } | 459 | } |
| 459 | #ifdef CONFIG_FEATURE_VI_CRASHME | 460 | #if ENABLE_FEATURE_VI_CRASHME |
| 460 | if (crashme > 0) | 461 | if (crashme > 0) |
| 461 | crash_test(); // test editor variables | 462 | crash_test(); // test editor variables |
| 462 | #endif /* CONFIG_FEATURE_VI_CRASHME */ | 463 | #endif |
| 463 | } | 464 | } |
| 464 | //------------------------------------------------------------------- | 465 | //------------------------------------------------------------------- |
| 465 | 466 | ||
| @@ -469,25 +470,25 @@ static void edit_file(Byte * fn) | |||
| 469 | } | 470 | } |
| 470 | 471 | ||
| 471 | //----- The Colon commands ------------------------------------- | 472 | //----- The Colon commands ------------------------------------- |
| 472 | #ifdef CONFIG_FEATURE_VI_COLON | 473 | #if ENABLE_FEATURE_VI_COLON |
| 473 | static Byte *get_one_address(Byte * p, int *addr) // get colon addr, if present | 474 | static Byte *get_one_address(Byte * p, int *addr) // get colon addr, if present |
| 474 | { | 475 | { |
| 475 | int st; | 476 | int st; |
| 476 | Byte *q; | 477 | Byte *q; |
| 477 | 478 | ||
| 478 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 479 | #if ENABLE_FEATURE_VI_YANKMARK |
| 479 | Byte c; | 480 | Byte c; |
| 480 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 481 | #endif |
| 481 | #ifdef CONFIG_FEATURE_VI_SEARCH | 482 | #if ENABLE_FEATURE_VI_SEARCH |
| 482 | Byte *pat, buf[BUFSIZ]; | 483 | Byte *pat, buf[BUFSIZ]; |
| 483 | #endif /* CONFIG_FEATURE_VI_SEARCH */ | 484 | #endif |
| 484 | 485 | ||
| 485 | *addr = -1; // assume no addr | 486 | *addr = -1; // assume no addr |
| 486 | if (*p == '.') { // the current line | 487 | if (*p == '.') { // the current line |
| 487 | p++; | 488 | p++; |
| 488 | q = begin_line(dot); | 489 | q = begin_line(dot); |
| 489 | *addr = count_lines(text, q); | 490 | *addr = count_lines(text, q); |
| 490 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 491 | #if ENABLE_FEATURE_VI_YANKMARK |
| 491 | } else if (*p == '\'') { // is this a mark addr | 492 | } else if (*p == '\'') { // is this a mark addr |
| 492 | p++; | 493 | p++; |
| 493 | c = tolower(*p); | 494 | c = tolower(*p); |
| @@ -500,8 +501,8 @@ static Byte *get_one_address(Byte * p, int *addr) // get colon addr, if present | |||
| 500 | *addr = count_lines(text, q); // count lines | 501 | *addr = count_lines(text, q); // count lines |
| 501 | } | 502 | } |
| 502 | } | 503 | } |
| 503 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 504 | #endif |
| 504 | #ifdef CONFIG_FEATURE_VI_SEARCH | 505 | #if ENABLE_FEATURE_VI_SEARCH |
| 505 | } else if (*p == '/') { // a search pattern | 506 | } else if (*p == '/') { // a search pattern |
| 506 | q = buf; | 507 | q = buf; |
| 507 | for (p++; *p; p++) { | 508 | for (p++; *p; p++) { |
| @@ -518,7 +519,7 @@ static Byte *get_one_address(Byte * p, int *addr) // get colon addr, if present | |||
| 518 | *addr = count_lines(text, q); | 519 | *addr = count_lines(text, q); |
| 519 | } | 520 | } |
| 520 | free(pat); | 521 | free(pat); |
| 521 | #endif /* CONFIG_FEATURE_VI_SEARCH */ | 522 | #endif |
| 522 | } else if (*p == '$') { // the last line in file | 523 | } else if (*p == '$') { // the last line in file |
| 523 | p++; | 524 | p++; |
| 524 | q = begin_line(end - 1); | 525 | q = begin_line(end - 1); |
| @@ -561,7 +562,7 @@ ga0: | |||
| 561 | return p; | 562 | return p; |
| 562 | } | 563 | } |
| 563 | 564 | ||
| 564 | #ifdef CONFIG_FEATURE_VI_SETOPTS | 565 | #if ENABLE_FEATURE_VI_SET && ENABLE_FEATURE_VI_SETOPTS |
| 565 | static void setops(const Byte *args, const char *opname, int flg_no, | 566 | static void setops(const Byte *args, const char *opname, int flg_no, |
| 566 | const char *short_opname, int opt) | 567 | const char *short_opname, int opt) |
| 567 | { | 568 | { |
| @@ -747,7 +748,7 @@ static void colon(Byte * buf) | |||
| 747 | } | 748 | } |
| 748 | file_modified = 0; | 749 | file_modified = 0; |
| 749 | last_file_modified = -1; | 750 | last_file_modified = -1; |
| 750 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 751 | #if ENABLE_FEATURE_VI_YANKMARK |
| 751 | if (Ureg >= 0 && Ureg < 28 && reg[Ureg] != 0) { | 752 | if (Ureg >= 0 && Ureg < 28 && reg[Ureg] != 0) { |
| 752 | free(reg[Ureg]); // free orig line reg- for 'U' | 753 | free(reg[Ureg]); // free orig line reg- for 'U' |
| 753 | reg[Ureg]= 0; | 754 | reg[Ureg]= 0; |
| @@ -759,18 +760,18 @@ static void colon(Byte * buf) | |||
| 759 | for (li = 0; li < 28; li++) { | 760 | for (li = 0; li < 28; li++) { |
| 760 | mark[li] = 0; | 761 | mark[li] = 0; |
| 761 | } // init the marks | 762 | } // init the marks |
| 762 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 763 | #endif |
| 763 | // how many lines in text[]? | 764 | // how many lines in text[]? |
| 764 | li = count_lines(text, end - 1); | 765 | li = count_lines(text, end - 1); |
| 765 | psb("\"%s\"%s" | 766 | psb("\"%s\"%s" |
| 766 | #ifdef CONFIG_FEATURE_VI_READONLY | 767 | #if ENABLE_FEATURE_VI_READONLY |
| 767 | "%s" | 768 | "%s" |
| 768 | #endif /* CONFIG_FEATURE_VI_READONLY */ | 769 | #endif |
| 769 | " %dL, %dC", cfn, | 770 | " %dL, %dC", cfn, |
| 770 | (sr < 0 ? " [New file]" : ""), | 771 | (sr < 0 ? " [New file]" : ""), |
| 771 | #ifdef CONFIG_FEATURE_VI_READONLY | 772 | #if ENABLE_FEATURE_VI_READONLY |
| 772 | ((vi_readonly || readonly) ? " [Read only]" : ""), | 773 | ((vi_readonly || readonly) ? " [Read only]" : ""), |
| 773 | #endif /* CONFIG_FEATURE_VI_READONLY */ | 774 | #endif |
| 774 | li, ch); | 775 | li, ch); |
| 775 | } else if (strncasecmp((char *) cmd, "file", i) == 0) { // what File is this | 776 | } else if (strncasecmp((char *) cmd, "file", i) == 0) { // what File is this |
| 776 | if (b != -1 || e != -1) { | 777 | if (b != -1 || e != -1) { |
| @@ -823,9 +824,9 @@ static void colon(Byte * buf) | |||
| 823 | if (c_is_no_print) | 824 | if (c_is_no_print) |
| 824 | standout_end(); | 825 | standout_end(); |
| 825 | } | 826 | } |
| 826 | #ifdef CONFIG_FEATURE_VI_SET | 827 | #if ENABLE_FEATURE_VI_SET |
| 827 | vc2: | 828 | vc2: |
| 828 | #endif /* CONFIG_FEATURE_VI_SET */ | 829 | #endif |
| 829 | Hit_Return(); | 830 | Hit_Return(); |
| 830 | } else if ((strncasecmp((char *) cmd, "quit", i) == 0) || // Quit | 831 | } else if ((strncasecmp((char *) cmd, "quit", i) == 0) || // Quit |
| 831 | (strncasecmp((char *) cmd, "next", i) == 0)) { // edit next file | 832 | (strncasecmp((char *) cmd, "next", i) == 0)) { // edit next file |
| @@ -865,11 +866,11 @@ static void colon(Byte * buf) | |||
| 865 | // read after current line- unless user said ":0r foo" | 866 | // read after current line- unless user said ":0r foo" |
| 866 | if (b != 0) | 867 | if (b != 0) |
| 867 | q = next_line(q); | 868 | q = next_line(q); |
| 868 | #ifdef CONFIG_FEATURE_VI_READONLY | 869 | #if ENABLE_FEATURE_VI_READONLY |
| 869 | l= readonly; // remember current files' status | 870 | l= readonly; // remember current files' status |
| 870 | #endif | 871 | #endif |
| 871 | ch = file_insert(fn, q, file_size(fn)); | 872 | ch = file_insert(fn, q, file_size(fn)); |
| 872 | #ifdef CONFIG_FEATURE_VI_READONLY | 873 | #if ENABLE_FEATURE_VI_READONLY |
| 873 | readonly= l; | 874 | readonly= l; |
| 874 | #endif | 875 | #endif |
| 875 | if (ch < 0) | 876 | if (ch < 0) |
| @@ -877,13 +878,13 @@ static void colon(Byte * buf) | |||
| 877 | // how many lines in text[]? | 878 | // how many lines in text[]? |
| 878 | li = count_lines(q, q + ch - 1); | 879 | li = count_lines(q, q + ch - 1); |
| 879 | psb("\"%s\"" | 880 | psb("\"%s\"" |
| 880 | #ifdef CONFIG_FEATURE_VI_READONLY | 881 | #if ENABLE_FEATURE_VI_READONLY |
| 881 | "%s" | 882 | "%s" |
| 882 | #endif /* CONFIG_FEATURE_VI_READONLY */ | 883 | #endif |
| 883 | " %dL, %dC", fn, | 884 | " %dL, %dC", fn, |
| 884 | #ifdef CONFIG_FEATURE_VI_READONLY | 885 | #if ENABLE_FEATURE_VI_READONLY |
| 885 | ((vi_readonly || readonly) ? " [Read only]" : ""), | 886 | ((vi_readonly || readonly) ? " [Read only]" : ""), |
| 886 | #endif /* CONFIG_FEATURE_VI_READONLY */ | 887 | #endif |
| 887 | li, ch); | 888 | li, ch); |
| 888 | if (ch > 0) { | 889 | if (ch > 0) { |
| 889 | // if the insert is before "dot" then we need to update | 890 | // if the insert is before "dot" then we need to update |
| @@ -899,7 +900,7 @@ static void colon(Byte * buf) | |||
| 899 | optind = fn_start - 1; | 900 | optind = fn_start - 1; |
| 900 | editing = 0; | 901 | editing = 0; |
| 901 | } | 902 | } |
| 902 | #ifdef CONFIG_FEATURE_VI_SET | 903 | #if ENABLE_FEATURE_VI_SET |
| 903 | } else if (strncasecmp((char *) cmd, "set", i) == 0) { // set or clear features | 904 | } else if (strncasecmp((char *) cmd, "set", i) == 0) { // set or clear features |
| 904 | i = 0; // offset into args | 905 | i = 0; // offset into args |
| 905 | if (strlen((char *) args) == 0) { | 906 | if (strlen((char *) args) == 0) { |
| @@ -907,7 +908,7 @@ static void colon(Byte * buf) | |||
| 907 | place_cursor(rows - 1, 0, FALSE); // go to Status line, bottom of screen | 908 | place_cursor(rows - 1, 0, FALSE); // go to Status line, bottom of screen |
| 908 | clear_to_eol(); // clear the line | 909 | clear_to_eol(); // clear the line |
| 909 | printf("----------------------------------------\r\n"); | 910 | printf("----------------------------------------\r\n"); |
| 910 | #ifdef CONFIG_FEATURE_VI_SETOPTS | 911 | #if ENABLE_FEATURE_VI_SETOPTS |
| 911 | if (!autoindent) | 912 | if (!autoindent) |
| 912 | printf("no"); | 913 | printf("no"); |
| 913 | printf("autoindent "); | 914 | printf("autoindent "); |
| @@ -921,13 +922,13 @@ static void colon(Byte * buf) | |||
| 921 | printf("no"); | 922 | printf("no"); |
| 922 | printf("showmatch "); | 923 | printf("showmatch "); |
| 923 | printf("tabstop=%d ", tabstop); | 924 | printf("tabstop=%d ", tabstop); |
| 924 | #endif /* CONFIG_FEATURE_VI_SETOPTS */ | 925 | #endif |
| 925 | printf("\r\n"); | 926 | printf("\r\n"); |
| 926 | goto vc2; | 927 | goto vc2; |
| 927 | } | 928 | } |
| 928 | if (strncasecmp((char *) args, "no", 2) == 0) | 929 | if (strncasecmp((char *) args, "no", 2) == 0) |
| 929 | i = 2; // ":set noautoindent" | 930 | i = 2; // ":set noautoindent" |
| 930 | #ifdef CONFIG_FEATURE_VI_SETOPTS | 931 | #if ENABLE_FEATURE_VI_SETOPTS |
| 931 | setops(args, "autoindent ", i, "ai", VI_AUTOINDENT); | 932 | setops(args, "autoindent ", i, "ai", VI_AUTOINDENT); |
| 932 | setops(args, "flash ", i, "fl", VI_ERR_METHOD); | 933 | setops(args, "flash ", i, "fl", VI_ERR_METHOD); |
| 933 | setops(args, "ignorecase ", i, "ic", VI_IGNORECASE); | 934 | setops(args, "ignorecase ", i, "ic", VI_IGNORECASE); |
| @@ -937,9 +938,9 @@ static void colon(Byte * buf) | |||
| 937 | if (ch > 0 && ch < columns - 1) | 938 | if (ch > 0 && ch < columns - 1) |
| 938 | tabstop = ch; | 939 | tabstop = ch; |
| 939 | } | 940 | } |
| 940 | #endif /* CONFIG_FEATURE_VI_SETOPTS */ | 941 | #endif /* FEATURE_VI_SETOPTS */ |
| 941 | #endif /* CONFIG_FEATURE_VI_SET */ | 942 | #endif /* FEATURE_VI_SET */ |
| 942 | #ifdef CONFIG_FEATURE_VI_SEARCH | 943 | #if ENABLE_FEATURE_VI_SEARCH |
| 943 | } else if (strncasecmp((char *) cmd, "s", 1) == 0) { // substitute a pattern with a replacement pattern | 944 | } else if (strncasecmp((char *) cmd, "s", 1) == 0) { // substitute a pattern with a replacement pattern |
| 944 | Byte *ls, *F, *R; | 945 | Byte *ls, *F, *R; |
| 945 | int gflag; | 946 | int gflag; |
| @@ -986,7 +987,7 @@ static void colon(Byte * buf) | |||
| 986 | } | 987 | } |
| 987 | q = next_line(ls); | 988 | q = next_line(ls); |
| 988 | } | 989 | } |
| 989 | #endif /* CONFIG_FEATURE_VI_SEARCH */ | 990 | #endif /* FEATURE_VI_SEARCH */ |
| 990 | } else if (strncasecmp((char *) cmd, "version", i) == 0) { // show software version | 991 | } else if (strncasecmp((char *) cmd, "version", i) == 0) { // show software version |
| 991 | psb("%s", BB_VER " " BB_BT); | 992 | psb("%s", BB_VER " " BB_BT); |
| 992 | } else if (strncasecmp((char *) cmd, "write", i) == 0 // write text to file | 993 | } else if (strncasecmp((char *) cmd, "write", i) == 0 // write text to file |
| @@ -997,12 +998,12 @@ static void colon(Byte * buf) | |||
| 997 | if (strlen((char *) args) > 0) { | 998 | if (strlen((char *) args) > 0) { |
| 998 | fn = args; | 999 | fn = args; |
| 999 | } | 1000 | } |
| 1000 | #ifdef CONFIG_FEATURE_VI_READONLY | 1001 | #if ENABLE_FEATURE_VI_READONLY |
| 1001 | if ((vi_readonly || readonly) && ! useforce) { | 1002 | if ((vi_readonly || readonly) && ! useforce) { |
| 1002 | psbs("\"%s\" File is read only", fn); | 1003 | psbs("\"%s\" File is read only", fn); |
| 1003 | goto vc3; | 1004 | goto vc3; |
| 1004 | } | 1005 | } |
| 1005 | #endif /* CONFIG_FEATURE_VI_READONLY */ | 1006 | #endif |
| 1006 | // how many lines in text[]? | 1007 | // how many lines in text[]? |
| 1007 | li = count_lines(q, r); | 1008 | li = count_lines(q, r); |
| 1008 | ch = r - q + 1; | 1009 | ch = r - q + 1; |
| @@ -1035,10 +1036,10 @@ static void colon(Byte * buf) | |||
| 1035 | editing = 0; | 1036 | editing = 0; |
| 1036 | } | 1037 | } |
| 1037 | } | 1038 | } |
| 1038 | #ifdef CONFIG_FEATURE_VI_READONLY | 1039 | #if ENABLE_FEATURE_VI_READONLY |
| 1039 | vc3:; | 1040 | vc3:; |
| 1040 | #endif /* CONFIG_FEATURE_VI_READONLY */ | 1041 | #endif |
| 1041 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 1042 | #if ENABLE_FEATURE_VI_YANKMARK |
| 1042 | } else if (strncasecmp((char *) cmd, "yank", i) == 0) { // yank lines | 1043 | } else if (strncasecmp((char *) cmd, "yank", i) == 0) { // yank lines |
| 1043 | if (b < 0) { // no addr given- use defaults | 1044 | if (b < 0) { // no addr given- use defaults |
| 1044 | q = begin_line(dot); // assume .,. for the range | 1045 | q = begin_line(dot); // assume .,. for the range |
| @@ -1048,7 +1049,7 @@ static void colon(Byte * buf) | |||
| 1048 | li = count_lines(q, r); | 1049 | li = count_lines(q, r); |
| 1049 | psb("Yank %d lines (%d chars) into [%c]", | 1050 | psb("Yank %d lines (%d chars) into [%c]", |
| 1050 | li, strlen((char *) reg[YDreg]), what_reg()); | 1051 | li, strlen((char *) reg[YDreg]), what_reg()); |
| 1051 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 1052 | #endif |
| 1052 | } else { | 1053 | } else { |
| 1053 | // cmd unknown | 1054 | // cmd unknown |
| 1054 | ni((Byte *) cmd); | 1055 | ni((Byte *) cmd); |
| @@ -1056,13 +1057,13 @@ static void colon(Byte * buf) | |||
| 1056 | vc1: | 1057 | vc1: |
| 1057 | dot = bound_dot(dot); // make sure "dot" is valid | 1058 | dot = bound_dot(dot); // make sure "dot" is valid |
| 1058 | return; | 1059 | return; |
| 1059 | #ifdef CONFIG_FEATURE_VI_SEARCH | 1060 | #if ENABLE_FEATURE_VI_SEARCH |
| 1060 | colon_s_fail: | 1061 | colon_s_fail: |
| 1061 | psb(":s expression missing delimiters"); | 1062 | psb(":s expression missing delimiters"); |
| 1062 | #endif | 1063 | #endif |
| 1063 | } | 1064 | } |
| 1064 | 1065 | ||
| 1065 | #endif /* CONFIG_FEATURE_VI_COLON */ | 1066 | #endif /* FEATURE_VI_COLON */ |
| 1066 | 1067 | ||
| 1067 | static void Hit_Return(void) | 1068 | static void Hit_Return(void) |
| 1068 | { | 1069 | { |
| @@ -1391,17 +1392,17 @@ static Byte *new_text(int size) | |||
| 1391 | return text; | 1392 | return text; |
| 1392 | } | 1393 | } |
| 1393 | 1394 | ||
| 1394 | #ifdef CONFIG_FEATURE_VI_SEARCH | 1395 | #if ENABLE_FEATURE_VI_SEARCH |
| 1395 | static int mycmp(Byte * s1, Byte * s2, int len) | 1396 | static int mycmp(Byte * s1, Byte * s2, int len) |
| 1396 | { | 1397 | { |
| 1397 | int i; | 1398 | int i; |
| 1398 | 1399 | ||
| 1399 | i = strncmp((char *) s1, (char *) s2, len); | 1400 | i = strncmp((char *) s1, (char *) s2, len); |
| 1400 | #ifdef CONFIG_FEATURE_VI_SETOPTS | 1401 | #if ENABLE_FEATURE_VI_SETOPTS |
| 1401 | if (ignorecase) { | 1402 | if (ignorecase) { |
| 1402 | i = strncasecmp((char *) s1, (char *) s2, len); | 1403 | i = strncasecmp((char *) s1, (char *) s2, len); |
| 1403 | } | 1404 | } |
| 1404 | #endif /* CONFIG_FEATURE_VI_SETOPTS */ | 1405 | #endif |
| 1405 | return i; | 1406 | return i; |
| 1406 | } | 1407 | } |
| 1407 | 1408 | ||
| @@ -1494,9 +1495,9 @@ static Byte *char_search(Byte * p, Byte * pat, int dir, int range) // search for | |||
| 1494 | p = p - i; | 1495 | p = p - i; |
| 1495 | } | 1496 | } |
| 1496 | return p; | 1497 | return p; |
| 1497 | #endif /*REGEX_SEARCH */ | 1498 | #endif /* REGEX_SEARCH */ |
| 1498 | } | 1499 | } |
| 1499 | #endif /* CONFIG_FEATURE_VI_SEARCH */ | 1500 | #endif /* FEATURE_VI_SEARCH */ |
| 1500 | 1501 | ||
| 1501 | static Byte *char_insert(Byte * p, Byte c) // insert the char c at 'p' | 1502 | static Byte *char_insert(Byte * p, Byte c) // insert the char c at 'p' |
| 1502 | { | 1503 | { |
| @@ -1530,7 +1531,7 @@ static Byte *char_insert(Byte * p, Byte c) // insert the char c at 'p' | |||
| 1530 | c = '\n'; // translate \r to \n | 1531 | c = '\n'; // translate \r to \n |
| 1531 | sp = p; // remember addr of insert | 1532 | sp = p; // remember addr of insert |
| 1532 | p = stupid_insert(p, c); // insert the char | 1533 | p = stupid_insert(p, c); // insert the char |
| 1533 | #ifdef CONFIG_FEATURE_VI_SETOPTS | 1534 | #if ENABLE_FEATURE_VI_SETOPTS |
| 1534 | if (showmatch && strchr(")]}", *sp) != NULL) { | 1535 | if (showmatch && strchr(")]}", *sp) != NULL) { |
| 1535 | showmatching(sp); | 1536 | showmatching(sp); |
| 1536 | } | 1537 | } |
| @@ -1542,7 +1543,7 @@ static Byte *char_insert(Byte * p, Byte c) // insert the char c at 'p' | |||
| 1542 | p = stupid_insert(p, *q); // insert the char | 1543 | p = stupid_insert(p, *q); // insert the char |
| 1543 | } | 1544 | } |
| 1544 | } | 1545 | } |
| 1545 | #endif /* CONFIG_FEATURE_VI_SETOPTS */ | 1546 | #endif |
| 1546 | } | 1547 | } |
| 1547 | return p; | 1548 | return p; |
| 1548 | } | 1549 | } |
| @@ -1712,7 +1713,7 @@ static Byte *find_pair(Byte * p, Byte c) | |||
| 1712 | return q; | 1713 | return q; |
| 1713 | } | 1714 | } |
| 1714 | 1715 | ||
| 1715 | #ifdef CONFIG_FEATURE_VI_SETOPTS | 1716 | #if ENABLE_FEATURE_VI_SETOPTS |
| 1716 | // show the matching char of a pair, () [] {} | 1717 | // show the matching char of a pair, () [] {} |
| 1717 | static void showmatching(Byte * p) | 1718 | static void showmatching(Byte * p) |
| 1718 | { | 1719 | { |
| @@ -1732,7 +1733,7 @@ static void showmatching(Byte * p) | |||
| 1732 | refresh(FALSE); | 1733 | refresh(FALSE); |
| 1733 | } | 1734 | } |
| 1734 | } | 1735 | } |
| 1735 | #endif /* CONFIG_FEATURE_VI_SETOPTS */ | 1736 | #endif /* FEATURE_VI_SETOPTS */ |
| 1736 | 1737 | ||
| 1737 | // open a hole in text[] | 1738 | // open a hole in text[] |
| 1738 | static Byte *text_hole_make(Byte * p, int size) // at "p", make a 'size' byte hole | 1739 | static Byte *text_hole_make(Byte * p, int size) // at "p", make a 'size' byte hole |
| @@ -1819,9 +1820,9 @@ static Byte *yank_delete(Byte * start, Byte * stop, int dist, int yf) | |||
| 1819 | } | 1820 | } |
| 1820 | } | 1821 | } |
| 1821 | p = start; | 1822 | p = start; |
| 1822 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 1823 | #if ENABLE_FEATURE_VI_YANKMARK |
| 1823 | text_yank(start, stop, YDreg); | 1824 | text_yank(start, stop, YDreg); |
| 1824 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 1825 | #endif |
| 1825 | if (yf == YANKDEL) { | 1826 | if (yf == YANKDEL) { |
| 1826 | p = text_hole_delete(start, stop); | 1827 | p = text_hole_delete(start, stop); |
| 1827 | } // delete lines | 1828 | } // delete lines |
| @@ -1831,33 +1832,33 @@ static Byte *yank_delete(Byte * start, Byte * stop, int dist, int yf) | |||
| 1831 | static void show_help(void) | 1832 | static void show_help(void) |
| 1832 | { | 1833 | { |
| 1833 | puts("These features are available:" | 1834 | puts("These features are available:" |
| 1834 | #ifdef CONFIG_FEATURE_VI_SEARCH | 1835 | #if ENABLE_FEATURE_VI_SEARCH |
| 1835 | "\n\tPattern searches with / and ?" | 1836 | "\n\tPattern searches with / and ?" |
| 1836 | #endif /* CONFIG_FEATURE_VI_SEARCH */ | 1837 | #endif |
| 1837 | #ifdef CONFIG_FEATURE_VI_DOT_CMD | 1838 | #if ENABLE_FEATURE_VI_DOT_CMD |
| 1838 | "\n\tLast command repeat with \'.\'" | 1839 | "\n\tLast command repeat with \'.\'" |
| 1839 | #endif /* CONFIG_FEATURE_VI_DOT_CMD */ | 1840 | #endif |
| 1840 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 1841 | #if ENABLE_FEATURE_VI_YANKMARK |
| 1841 | "\n\tLine marking with 'x" | 1842 | "\n\tLine marking with 'x" |
| 1842 | "\n\tNamed buffers with \"x" | 1843 | "\n\tNamed buffers with \"x" |
| 1843 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 1844 | #endif |
| 1844 | #ifdef CONFIG_FEATURE_VI_READONLY | 1845 | #if ENABLE_FEATURE_VI_READONLY |
| 1845 | "\n\tReadonly if vi is called as \"view\"" | 1846 | "\n\tReadonly if vi is called as \"view\"" |
| 1846 | "\n\tReadonly with -R command line arg" | 1847 | "\n\tReadonly with -R command line arg" |
| 1847 | #endif /* CONFIG_FEATURE_VI_READONLY */ | 1848 | #endif |
| 1848 | #ifdef CONFIG_FEATURE_VI_SET | 1849 | #if ENABLE_FEATURE_VI_SET |
| 1849 | "\n\tSome colon mode commands with \':\'" | 1850 | "\n\tSome colon mode commands with \':\'" |
| 1850 | #endif /* CONFIG_FEATURE_VI_SET */ | 1851 | #endif |
| 1851 | #ifdef CONFIG_FEATURE_VI_SETOPTS | 1852 | #if ENABLE_FEATURE_VI_SETOPTS |
| 1852 | "\n\tSettable options with \":set\"" | 1853 | "\n\tSettable options with \":set\"" |
| 1853 | #endif /* CONFIG_FEATURE_VI_SETOPTS */ | 1854 | #endif |
| 1854 | #ifdef CONFIG_FEATURE_VI_USE_SIGNALS | 1855 | #if ENABLE_FEATURE_VI_USE_SIGNALS |
| 1855 | "\n\tSignal catching- ^C" | 1856 | "\n\tSignal catching- ^C" |
| 1856 | "\n\tJob suspend and resume with ^Z" | 1857 | "\n\tJob suspend and resume with ^Z" |
| 1857 | #endif /* CONFIG_FEATURE_VI_USE_SIGNALS */ | 1858 | #endif |
| 1858 | #ifdef CONFIG_FEATURE_VI_WIN_RESIZE | 1859 | #if ENABLE_FEATURE_VI_WIN_RESIZE |
| 1859 | "\n\tAdapt to window re-sizes" | 1860 | "\n\tAdapt to window re-sizes" |
| 1860 | #endif /* CONFIG_FEATURE_VI_WIN_RESIZE */ | 1861 | #endif |
| 1861 | ); | 1862 | ); |
| 1862 | } | 1863 | } |
| 1863 | 1864 | ||
| @@ -1895,7 +1896,7 @@ static inline void print_literal(Byte * buf, Byte * s) // copy s to buf, convert | |||
| 1895 | } | 1896 | } |
| 1896 | } | 1897 | } |
| 1897 | 1898 | ||
| 1898 | #ifdef CONFIG_FEATURE_VI_DOT_CMD | 1899 | #if ENABLE_FEATURE_VI_DOT_CMD |
| 1899 | static void start_new_cmd_q(Byte c) | 1900 | static void start_new_cmd_q(Byte c) |
| 1900 | { | 1901 | { |
| 1901 | // release old cmd | 1902 | // release old cmd |
| @@ -1913,15 +1914,17 @@ static void start_new_cmd_q(Byte c) | |||
| 1913 | 1914 | ||
| 1914 | static void end_cmd_q(void) | 1915 | static void end_cmd_q(void) |
| 1915 | { | 1916 | { |
| 1916 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 1917 | #if ENABLE_FEATURE_VI_YANKMARK |
| 1917 | YDreg = 26; // go back to default Yank/Delete reg | 1918 | YDreg = 26; // go back to default Yank/Delete reg |
| 1918 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 1919 | #endif |
| 1919 | adding2q = 0; | 1920 | adding2q = 0; |
| 1920 | return; | 1921 | return; |
| 1921 | } | 1922 | } |
| 1922 | #endif /* CONFIG_FEATURE_VI_DOT_CMD */ | 1923 | #endif /* FEATURE_VI_DOT_CMD */ |
| 1923 | 1924 | ||
| 1924 | #if defined(CONFIG_FEATURE_VI_YANKMARK) || (defined(CONFIG_FEATURE_VI_COLON) && defined(CONFIG_FEATURE_VI_SEARCH)) || defined(CONFIG_FEATURE_VI_CRASHME) | 1925 | #if ENABLE_FEATURE_VI_YANKMARK \ |
| 1926 | || (ENABLE_FEATURE_VI_COLON && ENABLE_FEATURE_VI_SEARCH) \ | ||
| 1927 | || ENABLE_FEATURE_VI_CRASHME | ||
| 1925 | static Byte *string_insert(Byte * p, Byte * s) // insert the string at 'p' | 1928 | static Byte *string_insert(Byte * p, Byte * s) // insert the string at 'p' |
| 1926 | { | 1929 | { |
| 1927 | int cnt, i; | 1930 | int cnt, i; |
| @@ -1933,14 +1936,14 @@ static Byte *string_insert(Byte * p, Byte * s) // insert the string at 'p' | |||
| 1933 | if (*s == '\n') | 1936 | if (*s == '\n') |
| 1934 | cnt++; | 1937 | cnt++; |
| 1935 | } | 1938 | } |
| 1936 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 1939 | #if ENABLE_FEATURE_VI_YANKMARK |
| 1937 | psb("Put %d lines (%d chars) from [%c]", cnt, i, what_reg()); | 1940 | psb("Put %d lines (%d chars) from [%c]", cnt, i, what_reg()); |
| 1938 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 1941 | #endif |
| 1939 | return p; | 1942 | return p; |
| 1940 | } | 1943 | } |
| 1941 | #endif /* CONFIG_FEATURE_VI_YANKMARK || CONFIG_FEATURE_VI_COLON || CONFIG_FEATURE_VI_CRASHME */ | 1944 | #endif |
| 1942 | 1945 | ||
| 1943 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 1946 | #if ENABLE_FEATURE_VI_YANKMARK |
| 1944 | static Byte *text_yank(Byte * p, Byte * q, int dest) // copy text into a register | 1947 | static Byte *text_yank(Byte * p, Byte * q, int dest) // copy text into a register |
| 1945 | { | 1948 | { |
| 1946 | Byte *t; | 1949 | Byte *t; |
| @@ -2010,7 +2013,7 @@ static inline Byte *swap_context(Byte * p) // goto new context for '' command ma | |||
| 2010 | } | 2013 | } |
| 2011 | return p; | 2014 | return p; |
| 2012 | } | 2015 | } |
| 2013 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 2016 | #endif /* FEATURE_VI_YANKMARK */ |
| 2014 | 2017 | ||
| 2015 | static int isblnk(Byte c) // is the char a blank or tab | 2018 | static int isblnk(Byte c) // is the char a blank or tab |
| 2016 | { | 2019 | { |
| @@ -2038,7 +2041,7 @@ static void cookmode(void) | |||
| 2038 | } | 2041 | } |
| 2039 | 2042 | ||
| 2040 | //----- Come here when we get a window resize signal --------- | 2043 | //----- Come here when we get a window resize signal --------- |
| 2041 | #ifdef CONFIG_FEATURE_VI_USE_SIGNALS | 2044 | #if ENABLE_FEATURE_VI_USE_SIGNALS |
| 2042 | static void winch_sig(int sig ATTRIBUTE_UNUSED) | 2045 | static void winch_sig(int sig ATTRIBUTE_UNUSED) |
| 2043 | { | 2046 | { |
| 2044 | signal(SIGWINCH, winch_sig); | 2047 | signal(SIGWINCH, winch_sig); |
| @@ -2079,7 +2082,7 @@ static void catch_sig(int sig) | |||
| 2079 | if(sig) | 2082 | if(sig) |
| 2080 | longjmp(restart, sig); | 2083 | longjmp(restart, sig); |
| 2081 | } | 2084 | } |
| 2082 | #endif /* CONFIG_FEATURE_VI_USE_SIGNALS */ | 2085 | #endif /* FEATURE_VI_USE_SIGNALS */ |
| 2083 | 2086 | ||
| 2084 | static int mysleep(int hund) // sleep for 'h' 1/100 seconds | 2087 | static int mysleep(int hund) // sleep for 'h' 1/100 seconds |
| 2085 | { | 2088 | { |
| @@ -2226,7 +2229,7 @@ static Byte get_one_char(void) | |||
| 2226 | { | 2229 | { |
| 2227 | static Byte c; | 2230 | static Byte c; |
| 2228 | 2231 | ||
| 2229 | #ifdef CONFIG_FEATURE_VI_DOT_CMD | 2232 | #if ENABLE_FEATURE_VI_DOT_CMD |
| 2230 | // ! adding2q && ioq == 0 read() | 2233 | // ! adding2q && ioq == 0 read() |
| 2231 | // ! adding2q && ioq != 0 *ioq | 2234 | // ! adding2q && ioq != 0 *ioq |
| 2232 | // adding2q *last_modifying_cmd= read() | 2235 | // adding2q *last_modifying_cmd= read() |
| @@ -2259,9 +2262,9 @@ static Byte get_one_char(void) | |||
| 2259 | } | 2262 | } |
| 2260 | } | 2263 | } |
| 2261 | } | 2264 | } |
| 2262 | #else /* CONFIG_FEATURE_VI_DOT_CMD */ | 2265 | #else |
| 2263 | c = readit(); // get the users input | 2266 | c = readit(); // get the users input |
| 2264 | #endif /* CONFIG_FEATURE_VI_DOT_CMD */ | 2267 | #endif /* FEATURE_VI_DOT_CMD */ |
| 2265 | return c; // return the char, where ever it came from | 2268 | return c; // return the char, where ever it came from |
| 2266 | } | 2269 | } |
| 2267 | 2270 | ||
| @@ -2324,9 +2327,9 @@ static int file_insert(Byte * fn, Byte * p, int size) | |||
| 2324 | int fd, cnt; | 2327 | int fd, cnt; |
| 2325 | 2328 | ||
| 2326 | cnt = -1; | 2329 | cnt = -1; |
| 2327 | #ifdef CONFIG_FEATURE_VI_READONLY | 2330 | #if ENABLE_FEATURE_VI_READONLY |
| 2328 | readonly = FALSE; | 2331 | readonly = FALSE; |
| 2329 | #endif /* CONFIG_FEATURE_VI_READONLY */ | 2332 | #endif |
| 2330 | if (fn == 0 || strlen((char*) fn) <= 0) { | 2333 | if (fn == 0 || strlen((char*) fn) <= 0) { |
| 2331 | psbs("No filename given"); | 2334 | psbs("No filename given"); |
| 2332 | goto fi0; | 2335 | goto fi0; |
| @@ -2346,13 +2349,13 @@ static int file_insert(Byte * fn, Byte * p, int size) | |||
| 2346 | } | 2349 | } |
| 2347 | 2350 | ||
| 2348 | // see if we can open the file | 2351 | // see if we can open the file |
| 2349 | #ifdef CONFIG_FEATURE_VI_READONLY | 2352 | #if ENABLE_FEATURE_VI_READONLY |
| 2350 | if (vi_readonly) goto fi1; // do not try write-mode | 2353 | if (vi_readonly) goto fi1; // do not try write-mode |
| 2351 | #endif | 2354 | #endif |
| 2352 | fd = open((char *) fn, O_RDWR); // assume read & write | 2355 | fd = open((char *) fn, O_RDWR); // assume read & write |
| 2353 | if (fd < 0) { | 2356 | if (fd < 0) { |
| 2354 | // could not open for writing- maybe file is read only | 2357 | // could not open for writing- maybe file is read only |
| 2355 | #ifdef CONFIG_FEATURE_VI_READONLY | 2358 | #if ENABLE_FEATURE_VI_READONLY |
| 2356 | fi1: | 2359 | fi1: |
| 2357 | #endif | 2360 | #endif |
| 2358 | fd = open((char *) fn, O_RDONLY); // try read-only | 2361 | fd = open((char *) fn, O_RDONLY); // try read-only |
| @@ -2360,10 +2363,10 @@ static int file_insert(Byte * fn, Byte * p, int size) | |||
| 2360 | psbs("\"%s\" %s", fn, "cannot open file"); | 2363 | psbs("\"%s\" %s", fn, "cannot open file"); |
| 2361 | goto fi0; | 2364 | goto fi0; |
| 2362 | } | 2365 | } |
| 2363 | #ifdef CONFIG_FEATURE_VI_READONLY | 2366 | #if ENABLE_FEATURE_VI_READONLY |
| 2364 | // got the file- read-only | 2367 | // got the file- read-only |
| 2365 | readonly = TRUE; | 2368 | readonly = TRUE; |
| 2366 | #endif /* CONFIG_FEATURE_VI_READONLY */ | 2369 | #endif |
| 2367 | } | 2370 | } |
| 2368 | p = text_hole_make(p, size); | 2371 | p = text_hole_make(p, size); |
| 2369 | cnt = read(fd, p, size); | 2372 | cnt = read(fd, p, size); |
| @@ -2425,12 +2428,12 @@ static void place_cursor(int row, int col, int opti) | |||
| 2425 | { | 2428 | { |
| 2426 | char cm1[BUFSIZ]; | 2429 | char cm1[BUFSIZ]; |
| 2427 | char *cm; | 2430 | char *cm; |
| 2428 | #ifdef CONFIG_FEATURE_VI_OPTIMIZE_CURSOR | 2431 | #if ENABLE_FEATURE_VI_OPTIMIZE_CURSOR |
| 2429 | char cm2[BUFSIZ]; | 2432 | char cm2[BUFSIZ]; |
| 2430 | Byte *screenp; | 2433 | Byte *screenp; |
| 2431 | // char cm3[BUFSIZ]; | 2434 | // char cm3[BUFSIZ]; |
| 2432 | int Rrow= last_row; | 2435 | int Rrow= last_row; |
| 2433 | #endif /* CONFIG_FEATURE_VI_OPTIMIZE_CURSOR */ | 2436 | #endif |
| 2434 | 2437 | ||
| 2435 | memset(cm1, '\0', BUFSIZ - 1); // clear the buffer | 2438 | memset(cm1, '\0', BUFSIZ - 1); // clear the buffer |
| 2436 | 2439 | ||
| @@ -2444,7 +2447,7 @@ static void place_cursor(int row, int col, int opti) | |||
| 2444 | cm= cm1; | 2447 | cm= cm1; |
| 2445 | if (! opti) goto pc0; | 2448 | if (! opti) goto pc0; |
| 2446 | 2449 | ||
| 2447 | #ifdef CONFIG_FEATURE_VI_OPTIMIZE_CURSOR | 2450 | #if ENABLE_FEATURE_VI_OPTIMIZE_CURSOR |
| 2448 | //----- find the minimum # of chars to move cursor ------------- | 2451 | //----- find the minimum # of chars to move cursor ------------- |
| 2449 | //----- 2. Try moving with discreet chars (Newline, [back]space, ...) | 2452 | //----- 2. Try moving with discreet chars (Newline, [back]space, ...) |
| 2450 | memset(cm2, '\0', BUFSIZ - 1); // clear the buffer | 2453 | memset(cm2, '\0', BUFSIZ - 1); // clear the buffer |
| @@ -2477,8 +2480,8 @@ static void place_cursor(int row, int col, int opti) | |||
| 2477 | } /* else if (strlen(cm3) < strlen(cm)) { | 2480 | } /* else if (strlen(cm3) < strlen(cm)) { |
| 2478 | cm= cm3; | 2481 | cm= cm3; |
| 2479 | } */ | 2482 | } */ |
| 2480 | #endif /* CONFIG_FEATURE_VI_OPTIMIZE_CURSOR */ | 2483 | #endif /* FEATURE_VI_OPTIMIZE_CURSOR */ |
| 2481 | pc0: | 2484 | pc0: |
| 2482 | write1(cm); // move the cursor | 2485 | write1(cm); // move the cursor |
| 2483 | } | 2486 | } |
| 2484 | 2487 | ||
| @@ -2518,10 +2521,10 @@ static void flash(int h) | |||
| 2518 | 2521 | ||
| 2519 | static void Indicate_Error(void) | 2522 | static void Indicate_Error(void) |
| 2520 | { | 2523 | { |
| 2521 | #ifdef CONFIG_FEATURE_VI_CRASHME | 2524 | #if ENABLE_FEATURE_VI_CRASHME |
| 2522 | if (crashme > 0) | 2525 | if (crashme > 0) |
| 2523 | return; // generate a random command | 2526 | return; // generate a random command |
| 2524 | #endif /* CONFIG_FEATURE_VI_CRASHME */ | 2527 | #endif |
| 2525 | if (!err_method) { | 2528 | if (!err_method) { |
| 2526 | write1(bell); // send out a bell character | 2529 | write1(bell); // send out a bell character |
| 2527 | } else { | 2530 | } else { |
| @@ -2649,14 +2652,14 @@ static int format_edit_status(void) // show file status on status line | |||
| 2649 | columns : STATUS_BUFFER_LEN-1; | 2652 | columns : STATUS_BUFFER_LEN-1; |
| 2650 | 2653 | ||
| 2651 | ret = snprintf((char *) status_buffer, trunc_at+1, | 2654 | ret = snprintf((char *) status_buffer, trunc_at+1, |
| 2652 | #ifdef CONFIG_FEATURE_VI_READONLY | 2655 | #if ENABLE_FEATURE_VI_READONLY |
| 2653 | "%c %s%s%s %d/%d %d%%", | 2656 | "%c %s%s%s %d/%d %d%%", |
| 2654 | #else | 2657 | #else |
| 2655 | "%c %s%s %d/%d %d%%", | 2658 | "%c %s%s %d/%d %d%%", |
| 2656 | #endif | 2659 | #endif |
| 2657 | (cmd_mode ? (cmd_mode == 2 ? 'R':'I'):'-'), | 2660 | (cmd_mode ? (cmd_mode == 2 ? 'R':'I'):'-'), |
| 2658 | (cfn != 0 ? (char *) cfn : "No file"), | 2661 | (cfn != 0 ? (char *) cfn : "No file"), |
| 2659 | #ifdef CONFIG_FEATURE_VI_READONLY | 2662 | #if ENABLE_FEATURE_VI_READONLY |
| 2660 | ((vi_readonly || readonly) ? " [Read-only]" : ""), | 2663 | ((vi_readonly || readonly) ? " [Read-only]" : ""), |
| 2661 | #endif | 2664 | #endif |
| 2662 | (file_modified ? " [modified]" : ""), | 2665 | (file_modified ? " [modified]" : ""), |
| @@ -2733,9 +2736,9 @@ static void refresh(int full_screen) | |||
| 2733 | int li, changed; | 2736 | int li, changed; |
| 2734 | Byte buf[MAX_SCR_COLS]; | 2737 | Byte buf[MAX_SCR_COLS]; |
| 2735 | Byte *tp, *sp; // pointer into text[] and screen[] | 2738 | Byte *tp, *sp; // pointer into text[] and screen[] |
| 2736 | #ifdef CONFIG_FEATURE_VI_OPTIMIZE_CURSOR | 2739 | #if ENABLE_FEATURE_VI_OPTIMIZE_CURSOR |
| 2737 | int last_li= -2; // last line that changed- for optimizing cursor movement | 2740 | int last_li= -2; // last line that changed- for optimizing cursor movement |
| 2738 | #endif /* CONFIG_FEATURE_VI_OPTIMIZE_CURSOR */ | 2741 | #endif |
| 2739 | 2742 | ||
| 2740 | if (ENABLE_FEATURE_VI_WIN_RESIZE) | 2743 | if (ENABLE_FEATURE_VI_WIN_RESIZE) |
| 2741 | get_terminal_width_height(0, &columns, &rows); | 2744 | get_terminal_width_height(0, &columns, &rows); |
| @@ -2801,15 +2804,15 @@ static void refresh(int full_screen) | |||
| 2801 | // to handle offsets correctly | 2804 | // to handle offsets correctly |
| 2802 | place_cursor(li, cs, FALSE); | 2805 | place_cursor(li, cs, FALSE); |
| 2803 | } else { | 2806 | } else { |
| 2804 | #ifdef CONFIG_FEATURE_VI_OPTIMIZE_CURSOR | 2807 | #if ENABLE_FEATURE_VI_OPTIMIZE_CURSOR |
| 2805 | // if this just the next line | 2808 | // if this just the next line |
| 2806 | // try to optimize cursor movement | 2809 | // try to optimize cursor movement |
| 2807 | // otherwise, use standard ESC sequence | 2810 | // otherwise, use standard ESC sequence |
| 2808 | place_cursor(li, cs, li == (last_li+1) ? TRUE : FALSE); | 2811 | place_cursor(li, cs, li == (last_li+1) ? TRUE : FALSE); |
| 2809 | last_li= li; | 2812 | last_li= li; |
| 2810 | #else /* CONFIG_FEATURE_VI_OPTIMIZE_CURSOR */ | 2813 | #else |
| 2811 | place_cursor(li, cs, FALSE); // use standard ESC sequence | 2814 | place_cursor(li, cs, FALSE); // use standard ESC sequence |
| 2812 | #endif /* CONFIG_FEATURE_VI_OPTIMIZE_CURSOR */ | 2815 | #endif /* FEATURE_VI_OPTIMIZE_CURSOR */ |
| 2813 | } | 2816 | } |
| 2814 | 2817 | ||
| 2815 | // write line out to terminal | 2818 | // write line out to terminal |
| @@ -2822,18 +2825,18 @@ static void refresh(int full_screen) | |||
| 2822 | out++; | 2825 | out++; |
| 2823 | } | 2826 | } |
| 2824 | } | 2827 | } |
| 2825 | #ifdef CONFIG_FEATURE_VI_OPTIMIZE_CURSOR | 2828 | #if ENABLE_FEATURE_VI_OPTIMIZE_CURSOR |
| 2826 | last_row = li; | 2829 | last_row = li; |
| 2827 | #endif /* CONFIG_FEATURE_VI_OPTIMIZE_CURSOR */ | 2830 | #endif |
| 2828 | } | 2831 | } |
| 2829 | } | 2832 | } |
| 2830 | 2833 | ||
| 2831 | #ifdef CONFIG_FEATURE_VI_OPTIMIZE_CURSOR | 2834 | #if ENABLE_FEATURE_VI_OPTIMIZE_CURSOR |
| 2832 | place_cursor(crow, ccol, (crow == last_row) ? TRUE : FALSE); | 2835 | place_cursor(crow, ccol, (crow == last_row) ? TRUE : FALSE); |
| 2833 | last_row = crow; | 2836 | last_row = crow; |
| 2834 | #else | 2837 | #else |
| 2835 | place_cursor(crow, ccol, FALSE); | 2838 | place_cursor(crow, ccol, FALSE); |
| 2836 | #endif /* CONFIG_FEATURE_VI_OPTIMIZE_CURSOR */ | 2839 | #endif |
| 2837 | 2840 | ||
| 2838 | if (offset != old_offset) | 2841 | if (offset != old_offset) |
| 2839 | old_offset = offset; | 2842 | old_offset = offset; |
| @@ -2922,11 +2925,11 @@ key_cmd_mode: | |||
| 2922 | //case 0x10: // dle | 2925 | //case 0x10: // dle |
| 2923 | //case 0x11: // dc1 | 2926 | //case 0x11: // dc1 |
| 2924 | //case 0x13: // dc3 | 2927 | //case 0x13: // dc3 |
| 2925 | #ifdef CONFIG_FEATURE_VI_CRASHME | 2928 | #if ENABLE_FEATURE_VI_CRASHME |
| 2926 | case 0x14: // dc4 ctrl-T | 2929 | case 0x14: // dc4 ctrl-T |
| 2927 | crashme = (crashme == 0) ? 1 : 0; | 2930 | crashme = (crashme == 0) ? 1 : 0; |
| 2928 | break; | 2931 | break; |
| 2929 | #endif /* CONFIG_FEATURE_VI_CRASHME */ | 2932 | #endif |
| 2930 | //case 0x16: // syn | 2933 | //case 0x16: // syn |
| 2931 | //case 0x17: // etb | 2934 | //case 0x17: // etb |
| 2932 | //case 0x18: // can | 2935 | //case 0x18: // can |
| @@ -2973,14 +2976,14 @@ key_cmd_mode: | |||
| 2973 | case VI_K_PAGEUP: // Cursor Key Page Up | 2976 | case VI_K_PAGEUP: // Cursor Key Page Up |
| 2974 | dot_scroll(rows - 2, -1); | 2977 | dot_scroll(rows - 2, -1); |
| 2975 | break; | 2978 | break; |
| 2976 | #ifdef CONFIG_FEATURE_VI_USE_SIGNALS | 2979 | #if ENABLE_FEATURE_VI_USE_SIGNALS |
| 2977 | case 0x03: // ctrl-C interrupt | 2980 | case 0x03: // ctrl-C interrupt |
| 2978 | longjmp(restart, 1); | 2981 | longjmp(restart, 1); |
| 2979 | break; | 2982 | break; |
| 2980 | case 26: // ctrl-Z suspend | 2983 | case 26: // ctrl-Z suspend |
| 2981 | suspend_sig(SIGTSTP); | 2984 | suspend_sig(SIGTSTP); |
| 2982 | break; | 2985 | break; |
| 2983 | #endif /* CONFIG_FEATURE_VI_USE_SIGNALS */ | 2986 | #endif |
| 2984 | case 4: // ctrl-D scroll down half screen | 2987 | case 4: // ctrl-D scroll down half screen |
| 2985 | dot_scroll((rows - 2) / 2, 1); | 2988 | dot_scroll((rows - 2) / 2, 1); |
| 2986 | break; | 2989 | break; |
| @@ -3050,7 +3053,7 @@ key_cmd_mode: | |||
| 3050 | } // repeat cnt | 3053 | } // repeat cnt |
| 3051 | dot_right(); | 3054 | dot_right(); |
| 3052 | break; | 3055 | break; |
| 3053 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 3056 | #if ENABLE_FEATURE_VI_YANKMARK |
| 3054 | case '"': // "- name a register to use for Delete/Yank | 3057 | case '"': // "- name a register to use for Delete/Yank |
| 3055 | c1 = get_one_char(); | 3058 | c1 = get_one_char(); |
| 3056 | c1 = tolower(c1); | 3059 | c1 = tolower(c1); |
| @@ -3132,7 +3135,7 @@ key_cmd_mode: | |||
| 3132 | dot_skip_over_ws(); | 3135 | dot_skip_over_ws(); |
| 3133 | } | 3136 | } |
| 3134 | break; | 3137 | break; |
| 3135 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 3138 | #endif /* FEATURE_VI_YANKMARK */ |
| 3136 | case '$': // $- goto end of line | 3139 | case '$': // $- goto end of line |
| 3137 | case VI_K_END: // Cursor Key End | 3140 | case VI_K_END: // Cursor Key End |
| 3138 | if (cmdcnt-- > 1) { | 3141 | if (cmdcnt-- > 1) { |
| @@ -3181,7 +3184,7 @@ key_cmd_mode: | |||
| 3181 | dot_prev(); | 3184 | dot_prev(); |
| 3182 | dot_skip_over_ws(); | 3185 | dot_skip_over_ws(); |
| 3183 | break; | 3186 | break; |
| 3184 | #ifdef CONFIG_FEATURE_VI_DOT_CMD | 3187 | #if ENABLE_FEATURE_VI_DOT_CMD |
| 3185 | case '.': // .- repeat the last modifying command | 3188 | case '.': // .- repeat the last modifying command |
| 3186 | // Stuff the last_modifying_cmd back into stdin | 3189 | // Stuff the last_modifying_cmd back into stdin |
| 3187 | // and let it be re-executed. | 3190 | // and let it be re-executed. |
| @@ -3189,8 +3192,8 @@ key_cmd_mode: | |||
| 3189 | ioq = ioq_start = (Byte *) xstrdup((char *) last_modifying_cmd); | 3192 | ioq = ioq_start = (Byte *) xstrdup((char *) last_modifying_cmd); |
| 3190 | } | 3193 | } |
| 3191 | break; | 3194 | break; |
| 3192 | #endif /* CONFIG_FEATURE_VI_DOT_CMD */ | 3195 | #endif |
| 3193 | #ifdef CONFIG_FEATURE_VI_SEARCH | 3196 | #if ENABLE_FEATURE_VI_SEARCH |
| 3194 | case '?': // /- search for a pattern | 3197 | case '?': // /- search for a pattern |
| 3195 | case '/': // /- search for a pattern | 3198 | case '/': // /- search for a pattern |
| 3196 | buf[0] = c; | 3199 | buf[0] = c; |
| @@ -3274,7 +3277,7 @@ key_cmd_mode: | |||
| 3274 | dot = next_line(q); // move to next blank line | 3277 | dot = next_line(q); // move to next blank line |
| 3275 | } | 3278 | } |
| 3276 | break; | 3279 | break; |
| 3277 | #endif /* CONFIG_FEATURE_VI_SEARCH */ | 3280 | #endif /* FEATURE_VI_SEARCH */ |
| 3278 | case '0': // 0- goto begining of line | 3281 | case '0': // 0- goto begining of line |
| 3279 | case '1': // 1- | 3282 | case '1': // 1- |
| 3280 | case '2': // 2- | 3283 | case '2': // 2- |
| @@ -3293,9 +3296,9 @@ key_cmd_mode: | |||
| 3293 | break; | 3296 | break; |
| 3294 | case ':': // :- the colon mode commands | 3297 | case ':': // :- the colon mode commands |
| 3295 | p = get_input_line((Byte *) ":"); // get input line- use "status line" | 3298 | p = get_input_line((Byte *) ":"); // get input line- use "status line" |
| 3296 | #ifdef CONFIG_FEATURE_VI_COLON | 3299 | #if ENABLE_FEATURE_VI_COLON |
| 3297 | colon(p); // execute the command | 3300 | colon(p); // execute the command |
| 3298 | #else /* CONFIG_FEATURE_VI_COLON */ | 3301 | #else |
| 3299 | if (*p == ':') | 3302 | if (*p == ':') |
| 3300 | p++; // move past the ':' | 3303 | p++; // move past the ':' |
| 3301 | cnt = strlen((char *) p); | 3304 | cnt = strlen((char *) p); |
| @@ -3333,7 +3336,7 @@ key_cmd_mode: | |||
| 3333 | } else { // unrecognised cmd | 3336 | } else { // unrecognised cmd |
| 3334 | ni((Byte *) p); | 3337 | ni((Byte *) p); |
| 3335 | } | 3338 | } |
| 3336 | #endif /* CONFIG_FEATURE_VI_COLON */ | 3339 | #endif /* !FEATURE_VI_COLON */ |
| 3337 | break; | 3340 | break; |
| 3338 | case '<': // <- Left shift something | 3341 | case '<': // <- Left shift something |
| 3339 | case '>': // >- Right shift something | 3342 | case '>': // >- Right shift something |
| @@ -3397,10 +3400,10 @@ key_cmd_mode: | |||
| 3397 | dot = yank_delete(save_dot, dot, 0, YANKDEL); // delete to e-o-l | 3400 | dot = yank_delete(save_dot, dot, 0, YANKDEL); // delete to e-o-l |
| 3398 | if (c == 'C') | 3401 | if (c == 'C') |
| 3399 | goto dc_i; // start inserting | 3402 | goto dc_i; // start inserting |
| 3400 | #ifdef CONFIG_FEATURE_VI_DOT_CMD | 3403 | #if ENABLE_FEATURE_VI_DOT_CMD |
| 3401 | if (c == 'D') | 3404 | if (c == 'D') |
| 3402 | end_cmd_q(); // stop adding to q | 3405 | end_cmd_q(); // stop adding to q |
| 3403 | #endif /* CONFIG_FEATURE_VI_DOT_CMD */ | 3406 | #endif |
| 3404 | break; | 3407 | break; |
| 3405 | case 'G': // G- goto to a line number (default= E-O-F) | 3408 | case 'G': // G- goto to a line number (default= E-O-F) |
| 3406 | dot = end - 1; // assume E-O-F | 3409 | dot = end - 1; // assume E-O-F |
| @@ -3503,12 +3506,12 @@ key_cmd_mode: | |||
| 3503 | break; | 3506 | break; |
| 3504 | } | 3507 | } |
| 3505 | if (file_modified) { | 3508 | if (file_modified) { |
| 3506 | #ifdef CONFIG_FEATURE_VI_READONLY | 3509 | #if ENABLE_FEATURE_VI_READONLY |
| 3507 | if (vi_readonly || readonly) { | 3510 | if (vi_readonly || readonly) { |
| 3508 | psbs("\"%s\" File is read only", cfn); | 3511 | psbs("\"%s\" File is read only", cfn); |
| 3509 | break; | 3512 | break; |
| 3510 | } | 3513 | } |
| 3511 | #endif /* CONFIG_FEATURE_VI_READONLY */ | 3514 | #endif |
| 3512 | cnt = file_write(cfn, text, end - 1); | 3515 | cnt = file_write(cfn, text, end - 1); |
| 3513 | if (cnt < 0) { | 3516 | if (cnt < 0) { |
| 3514 | if (cnt == -1) | 3517 | if (cnt == -1) |
| @@ -3546,15 +3549,15 @@ key_cmd_mode: | |||
| 3546 | break; | 3549 | break; |
| 3547 | case 'c': // c- change something | 3550 | case 'c': // c- change something |
| 3548 | case 'd': // d- delete something | 3551 | case 'd': // d- delete something |
| 3549 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 3552 | #if ENABLE_FEATURE_VI_YANKMARK |
| 3550 | case 'y': // y- yank something | 3553 | case 'y': // y- yank something |
| 3551 | case 'Y': // Y- Yank a line | 3554 | case 'Y': // Y- Yank a line |
| 3552 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 3555 | #endif |
| 3553 | yf = YANKDEL; // assume either "c" or "d" | 3556 | yf = YANKDEL; // assume either "c" or "d" |
| 3554 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 3557 | #if ENABLE_FEATURE_VI_YANKMARK |
| 3555 | if (c == 'y' || c == 'Y') | 3558 | if (c == 'y' || c == 'Y') |
| 3556 | yf = YANKONLY; | 3559 | yf = YANKONLY; |
| 3557 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 3560 | #endif |
| 3558 | c1 = 'y'; | 3561 | c1 = 'y'; |
| 3559 | if (c != 'Y') | 3562 | if (c != 'Y') |
| 3560 | c1 = get_one_char(); // get the type of thing to delete | 3563 | c1 = get_one_char(); // get the type of thing to delete |
| @@ -3601,7 +3604,7 @@ key_cmd_mode: | |||
| 3601 | if (c == 'd') { | 3604 | if (c == 'd') { |
| 3602 | strcpy((char *) buf, "Delete"); | 3605 | strcpy((char *) buf, "Delete"); |
| 3603 | } | 3606 | } |
| 3604 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 3607 | #if ENABLE_FEATURE_VI_YANKMARK |
| 3605 | if (c == 'y' || c == 'Y') { | 3608 | if (c == 'y' || c == 'Y') { |
| 3606 | strcpy((char *) buf, "Yank"); | 3609 | strcpy((char *) buf, "Yank"); |
| 3607 | } | 3610 | } |
| @@ -3613,7 +3616,7 @@ key_cmd_mode: | |||
| 3613 | } | 3616 | } |
| 3614 | psb("%s %d lines (%d chars) using [%c]", | 3617 | psb("%s %d lines (%d chars) using [%c]", |
| 3615 | buf, cnt, strlen((char *) reg[YDreg]), what_reg()); | 3618 | buf, cnt, strlen((char *) reg[YDreg]), what_reg()); |
| 3616 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 3619 | #endif |
| 3617 | end_cmd_q(); // stop adding to q | 3620 | end_cmd_q(); // stop adding to q |
| 3618 | } | 3621 | } |
| 3619 | break; | 3622 | break; |
| @@ -3712,9 +3715,9 @@ key_cmd_mode: | |||
| 3712 | if (dot != end) { | 3715 | if (dot != end) { |
| 3713 | dot = bound_dot(dot); // make sure "dot" is valid | 3716 | dot = bound_dot(dot); // make sure "dot" is valid |
| 3714 | } | 3717 | } |
| 3715 | #ifdef CONFIG_FEATURE_VI_YANKMARK | 3718 | #if ENABLE_FEATURE_VI_YANKMARK |
| 3716 | check_context(c); // update the current context | 3719 | check_context(c); // update the current context |
| 3717 | #endif /* CONFIG_FEATURE_VI_YANKMARK */ | 3720 | #endif |
| 3718 | 3721 | ||
| 3719 | if (!isdigit(c)) | 3722 | if (!isdigit(c)) |
| 3720 | cmdcnt = 0; // cmd was not a number, reset cmdcnt | 3723 | cmdcnt = 0; // cmd was not a number, reset cmdcnt |
| @@ -3724,7 +3727,7 @@ key_cmd_mode: | |||
| 3724 | dot--; | 3727 | dot--; |
| 3725 | } | 3728 | } |
| 3726 | 3729 | ||
| 3727 | #ifdef CONFIG_FEATURE_VI_CRASHME | 3730 | #if ENABLE_FEATURE_VI_CRASHME |
| 3728 | static int totalcmds = 0; | 3731 | static int totalcmds = 0; |
| 3729 | static int Mp = 85; // Movement command Probability | 3732 | static int Mp = 85; // Movement command Probability |
| 3730 | static int Np = 90; // Non-movement command Probability | 3733 | static int Np = 90; // Non-movement command Probability |
| @@ -3927,4 +3930,4 @@ static void crash_test() | |||
| 3927 | } | 3930 | } |
| 3928 | return; | 3931 | return; |
| 3929 | } | 3932 | } |
| 3930 | #endif /* CONFIG_FEATURE_VI_CRASHME */ | 3933 | #endif |
diff --git a/libbb/Kbuild b/libbb/Kbuild index 64e4531ce..c80d1be51 100644 --- a/libbb/Kbuild +++ b/libbb/Kbuild | |||
| @@ -105,7 +105,7 @@ lib-$(CONFIG_VLOCK) += correct_password.o | |||
| 105 | lib-$(CONFIG_SU) += correct_password.o | 105 | lib-$(CONFIG_SU) += correct_password.o |
| 106 | lib-$(CONFIG_LOGIN) += correct_password.o | 106 | lib-$(CONFIG_LOGIN) += correct_password.o |
| 107 | lib-$(CONFIG_DF) += find_mount_point.o | 107 | lib-$(CONFIG_DF) += find_mount_point.o |
| 108 | lib-$(CONFIG_EJECT) += find_mount_point.o | 108 | lib-$(CONFIG_MKFS_MINIX) += find_mount_point.o |
| 109 | 109 | ||
| 110 | # We shouldn't build xregcomp.c if we don't need it - this ensures we don't | 110 | # We shouldn't build xregcomp.c if we don't need it - this ensures we don't |
| 111 | # require regex.h to be in the include dir even if we don't need it thereby | 111 | # require regex.h to be in the include dir even if we don't need it thereby |
diff --git a/modutils/insmod.c b/modutils/insmod.c index 842ef09d0..866e333ec 100644 --- a/modutils/insmod.c +++ b/modutils/insmod.c | |||
| @@ -3859,11 +3859,12 @@ add_ksymoops_symbols(struct obj_file *f, const char *filename, | |||
| 3859 | #if ENABLE_FEATURE_INSMOD_LOAD_MAP | 3859 | #if ENABLE_FEATURE_INSMOD_LOAD_MAP |
| 3860 | static void print_load_map(struct obj_file *f) | 3860 | static void print_load_map(struct obj_file *f) |
| 3861 | { | 3861 | { |
| 3862 | struct obj_symbol *sym; | ||
| 3863 | struct obj_symbol **all, **p; | ||
| 3864 | struct obj_section *sec; | 3862 | struct obj_section *sec; |
| 3863 | #if ENABLE_FEATURE_INSMOD_LOAD_MAP_FULL | ||
| 3864 | struct obj_symbol **all, **p; | ||
| 3865 | int i, nsyms, *loaded; | 3865 | int i, nsyms, *loaded; |
| 3866 | 3866 | struct obj_symbol *sym; | |
| 3867 | #endif | ||
| 3867 | /* Report on the section layout. */ | 3868 | /* Report on the section layout. */ |
| 3868 | 3869 | ||
| 3869 | printf("Sections: Size %-*s Align\n", | 3870 | printf("Sections: Size %-*s Align\n", |
diff --git a/util-linux/fdisk.c b/util-linux/fdisk.c index 64ebb60e3..27b041e8e 100644 --- a/util-linux/fdisk.c +++ b/util-linux/fdisk.c | |||
| @@ -257,7 +257,7 @@ set_changed(int i) | |||
| 257 | { | 257 | { |
| 258 | ptes[i].changed = 1; | 258 | ptes[i].changed = 1; |
| 259 | } | 259 | } |
| 260 | #endif /* CONFIG_FEATURE_FDISK_WRITABLE */ | 260 | #endif /* FEATURE_FDISK_WRITABLE */ |
| 261 | 261 | ||
| 262 | static ATTRIBUTE_ALWAYS_INLINE struct partition * | 262 | static ATTRIBUTE_ALWAYS_INLINE struct partition * |
| 263 | get_part_table(int i) | 263 | get_part_table(int i) |
| @@ -344,7 +344,7 @@ read_hex(const struct systypes *sys) | |||
| 344 | return v; | 344 | return v; |
| 345 | } | 345 | } |
| 346 | } | 346 | } |
| 347 | #endif /* CONFIG_FEATURE_FDISK_WRITABLE */ | 347 | #endif /* FEATURE_FDISK_WRITABLE */ |
| 348 | 348 | ||
| 349 | #include "fdisk_aix.c" | 349 | #include "fdisk_aix.c" |
| 350 | 350 | ||
| @@ -418,7 +418,9 @@ STATIC_SGI int sgi_get_sysid(int i); | |||
| 418 | STATIC_SGI void sgi_delete_partition(int i); | 418 | STATIC_SGI void sgi_delete_partition(int i); |
| 419 | STATIC_SGI void sgi_change_sysid(int i, int sys); | 419 | STATIC_SGI void sgi_change_sysid(int i, int sys); |
| 420 | STATIC_SGI void sgi_list_table(int xtra); | 420 | STATIC_SGI void sgi_list_table(int xtra); |
| 421 | #if ENABLE_FEATURE_FDISK_ADVANCED | ||
| 421 | STATIC_SGI void sgi_set_xcyl(void); | 422 | STATIC_SGI void sgi_set_xcyl(void); |
| 423 | #endif | ||
| 422 | STATIC_SGI int verify_sgi(int verbose); | 424 | STATIC_SGI int verify_sgi(int verbose); |
| 423 | STATIC_SGI void sgi_add_partition(int n, int sys); | 425 | STATIC_SGI void sgi_add_partition(int n, int sys); |
| 424 | STATIC_SGI void sgi_set_swappartition(int i); | 426 | STATIC_SGI void sgi_set_swappartition(int i); |
| @@ -427,21 +429,21 @@ STATIC_SGI void sgi_set_bootfile(const char* aFile); | |||
| 427 | STATIC_SGI void create_sgiinfo(void); | 429 | STATIC_SGI void create_sgiinfo(void); |
| 428 | STATIC_SGI void sgi_write_table(void); | 430 | STATIC_SGI void sgi_write_table(void); |
| 429 | STATIC_SGI void sgi_set_bootpartition(int i); | 431 | STATIC_SGI void sgi_set_bootpartition(int i); |
| 430 | |||
| 431 | #include "fdisk_sgi.c" | 432 | #include "fdisk_sgi.c" |
| 432 | 433 | ||
| 433 | STATIC_SUN const struct systypes sun_sys_types[]; | 434 | STATIC_SUN const struct systypes sun_sys_types[]; |
| 434 | STATIC_SUN void sun_delete_partition(int i); | 435 | STATIC_SUN void sun_delete_partition(int i); |
| 435 | STATIC_SUN void sun_change_sysid(int i, int sys); | 436 | STATIC_SUN void sun_change_sysid(int i, int sys); |
| 436 | STATIC_SUN void sun_list_table(int xtra); | 437 | STATIC_SUN void sun_list_table(int xtra); |
| 437 | STATIC_SUN void sun_set_xcyl(void); | ||
| 438 | STATIC_SUN void add_sun_partition(int n, int sys); | 438 | STATIC_SUN void add_sun_partition(int n, int sys); |
| 439 | #if ENABLE_FEATURE_FDISK_ADVANCED | ||
| 439 | STATIC_SUN void sun_set_alt_cyl(void); | 440 | STATIC_SUN void sun_set_alt_cyl(void); |
| 440 | STATIC_SUN void sun_set_ncyl(int cyl); | 441 | STATIC_SUN void sun_set_ncyl(int cyl); |
| 441 | STATIC_SUN void sun_set_xcyl(void); | 442 | STATIC_SUN void sun_set_xcyl(void); |
| 442 | STATIC_SUN void sun_set_ilfact(void); | 443 | STATIC_SUN void sun_set_ilfact(void); |
| 443 | STATIC_SUN void sun_set_rspeed(void); | 444 | STATIC_SUN void sun_set_rspeed(void); |
| 444 | STATIC_SUN void sun_set_pcylcount(void); | 445 | STATIC_SUN void sun_set_pcylcount(void); |
| 446 | #endif | ||
| 445 | STATIC_SUN void toggle_sunflags(int i, unsigned char mask); | 447 | STATIC_SUN void toggle_sunflags(int i, unsigned char mask); |
| 446 | STATIC_SUN void verify_sun(void); | 448 | STATIC_SUN void verify_sun(void); |
| 447 | STATIC_SUN void sun_write_table(void); | 449 | STATIC_SUN void sun_write_table(void); |
| @@ -564,7 +566,7 @@ store4_little_endian(unsigned char *cp, unsigned val) | |||
| 564 | cp[2] = val >> 16; | 566 | cp[2] = val >> 16; |
| 565 | cp[3] = val >> 24; | 567 | cp[3] = val >> 24; |
| 566 | } | 568 | } |
| 567 | #endif /* CONFIG_FEATURE_FDISK_WRITABLE */ | 569 | #endif /* FEATURE_FDISK_WRITABLE */ |
| 568 | 570 | ||
| 569 | static unsigned | 571 | static unsigned |
| 570 | read4_little_endian(const unsigned char *cp) | 572 | read4_little_endian(const unsigned char *cp) |
| @@ -784,7 +786,7 @@ menu(void) | |||
| 784 | #endif | 786 | #endif |
| 785 | } | 787 | } |
| 786 | } | 788 | } |
| 787 | #endif /* CONFIG_FEATURE_FDISK_WRITABLE */ | 789 | #endif /* FEATURE_FDISK_WRITABLE */ |
| 788 | 790 | ||
| 789 | 791 | ||
| 790 | #if ENABLE_FEATURE_FDISK_ADVANCED | 792 | #if ENABLE_FEATURE_FDISK_ADVANCED |
| @@ -873,7 +875,7 @@ get_sys_types(void) | |||
| 873 | } | 875 | } |
| 874 | #else | 876 | #else |
| 875 | #define get_sys_types() i386_sys_types | 877 | #define get_sys_types() i386_sys_types |
| 876 | #endif /* CONFIG_FEATURE_FDISK_WRITABLE */ | 878 | #endif /* FEATURE_FDISK_WRITABLE */ |
| 877 | 879 | ||
| 878 | static const char *partition_type(unsigned char type) | 880 | static const char *partition_type(unsigned char type) |
| 879 | { | 881 | { |
| @@ -921,7 +923,7 @@ void list_types(const struct systypes *sys) | |||
| 921 | } while (done < last[0]); | 923 | } while (done < last[0]); |
| 922 | putchar('\n'); | 924 | putchar('\n'); |
| 923 | } | 925 | } |
| 924 | #endif /* CONFIG_FEATURE_FDISK_WRITABLE */ | 926 | #endif /* FEATURE_FDISK_WRITABLE */ |
| 925 | 927 | ||
| 926 | static int | 928 | static int |
| 927 | is_cleared_partition(const struct partition *p) | 929 | is_cleared_partition(const struct partition *p) |
| @@ -1149,7 +1151,7 @@ create_doslabel(void) | |||
| 1149 | set_changed(0); | 1151 | set_changed(0); |
| 1150 | get_boot(create_empty_dos); | 1152 | get_boot(create_empty_dos); |
| 1151 | } | 1153 | } |
| 1152 | #endif /* CONFIG_FEATURE_FDISK_WRITABLE */ | 1154 | #endif /* FEATURE_FDISK_WRITABLE */ |
| 1153 | 1155 | ||
| 1154 | static void | 1156 | static void |
| 1155 | get_sectorsize(void) | 1157 | get_sectorsize(void) |
| @@ -1348,7 +1350,7 @@ get_boot(enum action what) | |||
| 1348 | #endif | 1350 | #endif |
| 1349 | 1351 | ||
| 1350 | if (!valid_part_table_flag(MBRbuffer)) { | 1352 | if (!valid_part_table_flag(MBRbuffer)) { |
| 1351 | #ifndef CONFIG_FEATURE_FDISK_WRITABLE | 1353 | #if !ENABLE_FEATURE_FDISK_WRITABLE |
| 1352 | return -1; | 1354 | return -1; |
| 1353 | #else | 1355 | #else |
| 1354 | switch (what) { | 1356 | switch (what) { |
| @@ -1374,7 +1376,7 @@ get_boot(enum action what) | |||
| 1374 | default: | 1376 | default: |
| 1375 | bb_error_msg_and_die(_("internal error")); | 1377 | bb_error_msg_and_die(_("internal error")); |
| 1376 | } | 1378 | } |
| 1377 | #endif /* CONFIG_FEATURE_FDISK_WRITABLE */ | 1379 | #endif /* FEATURE_FDISK_WRITABLE */ |
| 1378 | } | 1380 | } |
| 1379 | 1381 | ||
| 1380 | #if ENABLE_FEATURE_FDISK_WRITABLE | 1382 | #if ENABLE_FEATURE_FDISK_WRITABLE |
| @@ -1769,7 +1771,7 @@ change_sysid(void) | |||
| 1769 | } | 1771 | } |
| 1770 | } | 1772 | } |
| 1771 | } | 1773 | } |
| 1772 | #endif /* CONFIG_FEATURE_FDISK_WRITABLE */ | 1774 | #endif /* FEATURE_FDISK_WRITABLE */ |
| 1773 | 1775 | ||
| 1774 | 1776 | ||
| 1775 | /* check_consistency() and linear2chs() added Sat Mar 6 12:28:16 1993, | 1777 | /* check_consistency() and linear2chs() added Sat Mar 6 12:28:16 1993, |
| @@ -2517,7 +2519,7 @@ reread_partition_table(int leave) | |||
| 2517 | exit(i != 0); | 2519 | exit(i != 0); |
| 2518 | } | 2520 | } |
| 2519 | } | 2521 | } |
| 2520 | #endif /* CONFIG_FEATURE_FDISK_WRITABLE */ | 2522 | #endif /* FEATURE_FDISK_WRITABLE */ |
| 2521 | 2523 | ||
| 2522 | #if ENABLE_FEATURE_FDISK_ADVANCED | 2524 | #if ENABLE_FEATURE_FDISK_ADVANCED |
| 2523 | #define MAX_PER_LINE 16 | 2525 | #define MAX_PER_LINE 16 |
| @@ -3035,5 +3037,5 @@ int fdisk_main(int argc, char **argv) | |||
| 3035 | } | 3037 | } |
| 3036 | } | 3038 | } |
| 3037 | return 0; | 3039 | return 0; |
| 3038 | #endif /* CONFIG_FEATURE_FDISK_WRITABLE */ | 3040 | #endif /* FEATURE_FDISK_WRITABLE */ |
| 3039 | } | 3041 | } |
diff --git a/util-linux/fdisk_aix.c b/util-linux/fdisk_aix.c index a3d5fe15f..2402e294a 100644 --- a/util-linux/fdisk_aix.c +++ b/util-linux/fdisk_aix.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | #ifdef CONFIG_FEATURE_AIX_LABEL | 1 | #if ENABLE_FEATURE_AIX_LABEL |
| 2 | /* | 2 | /* |
| 3 | * Copyright (C) Andreas Neuper, Sep 1998. | 3 | * Copyright (C) Andreas Neuper, Sep 1998. |
| 4 | * This file may be redistributed under | 4 | * This file may be redistributed under |
diff --git a/util-linux/fdisk_osf.c b/util-linux/fdisk_osf.c index 3d654d392..2daafe6c7 100644 --- a/util-linux/fdisk_osf.c +++ b/util-linux/fdisk_osf.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | #ifdef CONFIG_FEATURE_OSF_LABEL | 1 | #if ENABLE_FEATURE_OSF_LABEL |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 1987, 1988 Regents of the University of California. | 3 | * Copyright (c) 1987, 1988 Regents of the University of California. |
| 4 | * All rights reserved. | 4 | * All rights reserved. |
diff --git a/util-linux/fdisk_sgi.c b/util-linux/fdisk_sgi.c index 7687103c9..d8acd6bc7 100644 --- a/util-linux/fdisk_sgi.c +++ b/util-linux/fdisk_sgi.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | #ifdef CONFIG_FEATURE_SGI_LABEL | 1 | #if ENABLE_FEATURE_SGI_LABEL |
| 2 | 2 | ||
| 3 | /* | 3 | /* |
| 4 | * Copyright (C) Andreas Neuper, Sep 1998. | 4 | * Copyright (C) Andreas Neuper, Sep 1998. |
| @@ -751,7 +751,7 @@ sgi_add_partition(int n, int sys) | |||
| 751 | sgi_set_partition(n, first, last-first, sys); | 751 | sgi_set_partition(n, first, last-first, sys); |
| 752 | } | 752 | } |
| 753 | 753 | ||
| 754 | #ifdef CONFIG_FEATURE_FDISK_ADVANCED | 754 | #if ENABLE_FEATURE_FDISK_ADVANCED |
| 755 | static void | 755 | static void |
| 756 | create_sgilabel(void) | 756 | create_sgilabel(void) |
| 757 | { | 757 | { |
| @@ -861,7 +861,7 @@ sgi_set_xcyl(void) | |||
| 861 | { | 861 | { |
| 862 | /* do nothing in the beginning */ | 862 | /* do nothing in the beginning */ |
| 863 | } | 863 | } |
| 864 | #endif /* CONFIG_FEATURE_FDISK_ADVANCED */ | 864 | #endif /* FEATURE_FDISK_ADVANCED */ |
| 865 | 865 | ||
| 866 | /* _____________________________________________________________ | 866 | /* _____________________________________________________________ |
| 867 | */ | 867 | */ |
diff --git a/util-linux/fdisk_sun.c b/util-linux/fdisk_sun.c index af85fb2c4..a3ca66f68 100644 --- a/util-linux/fdisk_sun.c +++ b/util-linux/fdisk_sun.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | #ifdef CONFIG_FEATURE_SUN_LABEL | 1 | #if ENABLE_FEATURE_SUN_LABEL |
| 2 | 2 | ||
| 3 | #define SUN_LABEL_MAGIC 0xDABE | 3 | #define SUN_LABEL_MAGIC 0xDABE |
| 4 | #define SUN_LABEL_MAGIC_SWAPPED 0xBEDA | 4 | #define SUN_LABEL_MAGIC_SWAPPED 0xBEDA |
| @@ -663,7 +663,7 @@ sun_list_table(int xtra) | |||
| 663 | } | 663 | } |
| 664 | } | 664 | } |
| 665 | 665 | ||
| 666 | #ifdef CONFIG_FEATURE_FDISK_ADVANCED | 666 | #if ENABLE_FEATURE_FDISK_ADVANCED |
| 667 | 667 | ||
| 668 | static void | 668 | static void |
| 669 | sun_set_alt_cyl(void) | 669 | sun_set_alt_cyl(void) |
| @@ -710,7 +710,7 @@ sun_set_pcylcount(void) | |||
| 710 | SUN_SSWAP16(read_int(0, SUN_SSWAP16(sunlabel->pcylcount), 65535, 0, | 710 | SUN_SSWAP16(read_int(0, SUN_SSWAP16(sunlabel->pcylcount), 65535, 0, |
| 711 | _("Number of physical cylinders"))); | 711 | _("Number of physical cylinders"))); |
| 712 | } | 712 | } |
| 713 | #endif /* CONFIG_FEATURE_FDISK_ADVANCED */ | 713 | #endif /* FEATURE_FDISK_ADVANCED */ |
| 714 | 714 | ||
| 715 | static void | 715 | static void |
| 716 | sun_write_table(void) | 716 | sun_write_table(void) |
