summaryrefslogtreecommitdiff
path: root/usr.bin/mg/util.c
AgeCommit message (Collapse)Author
2024-07-08mg: fix auto-indent-mode with custom tab widthsOmar Polo
dointent() didn't know about set-tab-width so it was mis-indenting the lines. Diff from Mark Willson (mark dot willson at hydrus.org.uk), with a tiny change by me.
2023-04-28fix lfindent (newline-and-indent) comment and description in the man pageOmar Polo
for a while it has used only spaces when no-tab-mode is enabled and respected the current buffer tab width.
2023-04-21mg: fix space_to_tabstopOmar Polo
Since the import of mg in the tree, space_to_tabstop used curbp->w_doto (the byte offset in the current line) as mean to deduce the current column for indentation. This is wrong because it doesn't account for tab, control characters and octets > 127 (which are all rendered with more than one column.) Use instead getcolpos(). ok tb@
2023-04-21mg: allow to change the tab widthOmar Polo
This makes the tab width customizable per-buffer. The new function `set-tab-width' changes it for the current buffer or the default value for new buffers if called with a prefix argument (or from the startup file.) The default tab width is still 8 column. Together with the newly resurrected no-tab-mode, allows to use mg for a variety of programming languages and coding styles. Note that it's not possible to call set-tab-width with auto-execute in the startup file due to limitations in how auto-execute and the parser work. ok tb@
2023-04-17add doindent() prototype at the start of the file; forgotten in previousOmar Polo
2023-04-17resurrect mg' no-tab-modeOmar Polo
It's a mode that makes mg insert spaces up to the next tab stop upon pressing TAB, along with the various tweaks needed in other places so for e.g. auto-indent-mode also uses spaces. This is not just an unifdef NOTAB: even under no-tab-mode mg should consider literal TAB characters wide up to the next tab stop, while the hidden code considered hard tabs to be just control character (i.e. ^I) with width of two columns. I'm also introducing the helper function doindent() in utils.c to de-obfuscate the insertion of tabs/spaces until the given column. ok tb@
2023-03-08Delete obsolete /* ARGSUSED */ lint comments.Philip Guenther
ok miod@ millert@
2022-05-24automatically delete trailing whitespaces on RET in c-mode andop
auto-indent-mode (only after computing the auto indent.) tested also by Mikhail (thanks!). ok tb@
2021-03-01Put the hardcoded '\n' character which is found throughout mg into aMark Lumsden
buffer specific variable. The diff should not produce any behavourial changes in mg.
2019-06-22Tidy up the comments:Mark Lumsden
1. two spelling mistakes. 2. change references to keystrokes, same as man page (UP-low). 3. update a filename reference to reality.
2019-06-07Amend showcpos() to show more information about how mg is operating.Mark Lumsden
The additions help while developing mg by not having to go into gdb to see somethings mg believes about itself. The extra data shown could be removed in future, but it is benign so perhaps it could stay. Also, do not fake a '\n' on the end of buffer. It is confusing. However do not change the lie about '\n' being on the end of every line within the buffer. Hopefully, one day, that will no longer be a lie.
2018-12-26revert "kill a region if 'delete' or 'backspace' is pressed"Peter Hessler
This caused a change of behaviour in the search case, and isn't yet ready. Committing on the behalf of lum@ OK lum@
2018-12-18Make mg kill a region if the 'delete' or 'backspace' keys are pressedMark Lumsden
and a region is selected. The contents of the region are then placed into the kill buffer. Like emacs.
2015-11-18whitespaceJasper Lievisse Adriaanse
2015-10-10Make functions that accept multiple iterations via C-u N, honour 0.Mark Lumsden
Except C-k which has a defined behaviour. In mg, C-t doesn't complete n iterations if requested, but probably should, hence it has been included in this diff.
2015-09-29Delete the final, inscrutable NOSTRICT and VARARGS lint commentsPhilip Guenther
ok millert@
2015-03-19Clean up the includes in mg.Brian Callahan
This does the following: Moves all POSIX headers from sysdef.h into the individual .c files so that each file now only includes what it needs. All headers are properly sorted. Moves the remainder of sysdef.h to other files (mostly def.h) and deletes sysdef.h now that it's no longer contains anything. Tweak a comment that references sysdef.h so that it no longer does that. ok florian@
2015-03-16Change the internal name of the newline function to deconflict with aBrian Callahan
function of the same name in term.h. This is the first step towards cleaning up mg's includes. No user-visible changes. ok florian@
2014-03-26Previously, C-t (transpose two chars) did not behave the same asMark Lumsden
Emacs. This diff makes mg behave more so. Though new-line characters are treated as any other. Difference from emacs observed and reported by deraadt@. First diff tested and ridiculed by deraadt@. Second diff not tested and not ridiculed by deraadt@ but at least email responded to.
2013-03-25Display the window's column number in mode line not theFlorian Obser
column number of the active window. OK jasper@
2012-05-18Allow no-tab-mode to compile. From James Turner.Mark Lumsden
note: no-tab-mode needs more work done before removing the NOTABs.
2011-01-21It volates style(9), but in mg, #include"def.h" goes first. 'twas the way it ↵Kjell Wooding
was built. no binary change here. confirmed by lum@, tested by Henri Kemppainen
2011-01-19patch from Henri Kemppainen:Kjell Wooding
clean up undo boundaries for functions in random.c This catches an error, where twiddling in an empty file could disable undo boundaries for the rest of the session. proper undo boundaries around newline() will have to wait until proper reference counting is done... Thanks!
2011-01-18Add join-line, bound to M-^Kjell Wooding
Join the current line to the previous. original diff by Henri Kemppainen. minor mod to add undo boundaries. Thanks!
2011-01-17Add back-to-indentation. (M-m)Kjell Wooding
Move the dot to the first non-whitespace character on the current line. from Henri Kemppainen . ok theo
2008-09-15Expose the undo commands as proper mg functions.Kjell Wooding
This should have no functional change on undo, but it does facilitate testing undo behavior.
2008-06-11Add delete-leading-space, delete-trailing-space,Kjell Wooding
indent-current-line utility functions for stripping leading/trailing whitespace, and setting a fixed indent respectively.
2007-02-08Fix a commentKjell Wooding
2006-11-17Fix a needless inversion of flag names; i.e. change them from theKjell Wooding
negative to the positive. undo_boundary_enable(TRUE) makes a LOT more sense than undo_no_boundary(FALSE). While here, whack a global, and fix a bug noted by otto: undoing a file insertion sometimes left stray characters around. ok beck@, otto@
2006-07-25Add bfirstlp(), blastlp() macros, returning the first and last linesKjell Wooding
of a buffer respectively. Removes an ugly construction than necessitated "go to first line"-type comments throughout the code. No binary change
2006-07-25Rename the header line of a buffer to b_headp, from the remarkablyKjell Wooding
unintuitive b_linep. No binary change.
2006-06-01kill another superfluous strlenKjell Wooding
2006-06-01Style. no practical change.Kjell Wooding
2006-06-01Make transpose (c-T) undoable.Kjell Wooding
There is still a bug here, but it lies in undo (cursor position when undo wraps the undo list), and is purely cosmetic for now.
2005-11-22Move kill-related commands to their own file.Kjell Wooding
This will help move to a kill-ring.
2005-11-19Clean up some lint.Kjell Wooding
2005-11-18greedy use of typedef struct was making code harder to read; ok kjell cloderTheo de Raadt
2005-11-18Don't ifdef out. Delete it. That's what the attic is for.Kjell Wooding
2005-10-13Make undoing of a yank operation work as expectedKjell Wooding
(i.e. undo boundaries are placed around entire yanked block) ok cloder@
2005-06-14Add explicit public domain notices to all public domain files.Kjell Wooding
ok millert@, deraadt@
2005-04-03This is a no binary change which does:David Berghoff
- spelling, punctuation fixes - variable declaration lineup - use parentheses for return and sizeof - K&R function declarations -> ANSI - other minor code beautification ok henning@
2003-05-20Finish KNF of prototypes. That should be all of them.Chad Loder
OK vincent@
2003-05-16fix the goal calculation routine so moving up and down moves to the rightVincent Labrecque
column. ok jason
2002-05-30fix segfault when using just-one-space on an empty line; fromVincent Labrecque
dkm_holdings@hotmail.com ok art@
2002-02-14some KNFTheo de Raadt
2001-05-24spacesMichael Shalayeff
2001-05-23remove VOID. We're way beyond the point where this could build with anArtur Grabowski
ancient compiler.
2001-01-29$OpenBSD$Niklas Hallqvist
2000-09-01More -Wall anmd KNF, from op2@tomahawk.SQUiSH.orgTodd C. Miller
2000-04-13The start of KNF + -Wall. The code has been run through indent butTodd C. Miller
needs hand fixup. I stopped at keymap.c...