CVS code -
-- General
- - New flag RELATIVECHARS to show column positino relative to
- the current line instead of the current file. New flag
- -C, --relative, changes to do_cursorpos().
- Makefile.am:
- Add SYSCONFDIR to DEFS, so we can have an /etc/nanorc.
- Change localedir line to 1.0's version.
-- rcfile.c
+- rcfile.c:
parse_next_rege()
- Allow " symbol to be in regex without leading \ by checking
for *ptr+1 is not the end of the regex.
+- winio.c:
+ do_cursorpos()
+ - Rewritten to show col place as well as charcter place, without
+ needing an entirely separate flag.
- utils.c:
strstrwrapper()
- NANO_SMALL test was backwards (Ken Tyler).
printf(_("Usage: nano [GNU long option] [option] +LINE <file>\n\n"));
printf(_("Option Long option Meaning\n"));
- printf
- (_
- (" -C --relative Show relative col position with ^C\n"));
#ifndef NANO_SMALL
printf
(_
#else
printf(_("Usage: nano [option] +LINE <file>\n\n"));
printf(_("Option Meaning\n"));
- printf(_(" -C Show relative col position with ^C\n"));
#ifndef NANO_SMALL
printf(_(" -D Write file in DOS format\n"));
#endif
{"smooth", 0, 0, 'S'},
#endif
{"keypad", 0, 0, 'K'},
- {"relative", 0, 0, 'C'},
{0, 0, 0, 0}
};
#endif
#endif /* ENABLE_NANORC */
#ifdef HAVE_GETOPT_LONG
- while ((optchr = getopt_long(argc, argv, "h?CDFKMRST:Vabcefgijklmo:pr:s:tvwxz",
+ while ((optchr = getopt_long(argc, argv, "h?DFKMRST:Vabcefgijklmo:pr:s:tvwxz",
long_options, &option_index)) != EOF) {
#else
while ((optchr =
- getopt(argc, argv, "h?CDFKMRST:Vabcefgijklmo:pr:s:tvwxz")) != EOF) {
+ getopt(argc, argv, "h?DFKMRST:Vabcefgijklmo:pr:s:tvwxz")) != EOF) {
#endif
switch (optchr) {
- case 'C':
- SET(RELATIVECHARS);
- break;
#ifndef NANO_SMALL
case 'D':
SET(DOS_FILE);
int do_cursorpos(int constant)
{
filestruct *fileptr;
- float linepct = 0.0, bytepct = 0.0;
+ float linepct = 0.0, bytepct = 0.0, colpct = 0.0;
long i = 0, j = 0;
static long old_i = -1, old_totsize = -1;
if (old_totsize == -1)
old_totsize = totsize;
- if (ISSET(RELATIVECHARS)) {
-
- if (strlen(current->data) == 0)
- bytepct = 0;
- else
- bytepct = 100 * current_x / strlen(current->data);
-
- old_i = -1;
- i = current_x;
- j = strlen(current->data);
+ if (strlen(current->data) == 0)
+ colpct = 0;
+ else
+ colpct = 100 * current_x / strlen(current->data);
- } else {
- for (fileptr = fileage; fileptr != current && fileptr != NULL;
- fileptr = fileptr->next)
- i += strlen(fileptr->data) + 1;
+ for (fileptr = fileage; fileptr != current && fileptr != NULL;
+ fileptr = fileptr->next)
+ i += strlen(fileptr->data) + 1;
- if (fileptr == NULL)
- return -1;
+ if (fileptr == NULL)
+ return -1;
- i += current_x;
+ i += current_x;
- j = totsize;
+ j = totsize;
- if (totsize > 0)
- bytepct = 100 * i / totsize;
- }
+ if (totsize > 0)
+ bytepct = 100 * i / totsize;
if (totlines > 0)
linepct = 100 * current->lineno / totlines;
character values have changed */
if (!constant || (old_i != i || old_totsize != totsize)) {
statusbar(_
- ("line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"),
- current->lineno, totlines, linepct, i, j, bytepct);
+ ("line %d/%d (%.0f%%), col %ld/%ld (%.0f%%), char %ld/%ld (%.0f%%)"),
+ current->lineno, totlines, linepct, current_x,
+ strlen(current->data), colpct, i, j, bytepct);
}
old_i = i;