Function: indent-to
indent-to is an interactive function defined in indent.c.
Signature
(indent-to COLUMN &optional MINIMUM)
Documentation
Indent from point with tabs and spaces until COLUMN is reached.
Optional second argument MINIMUM says always do at least MINIMUM spaces even if that goes past COLUMN; by default, MINIMUM is zero.
Whether this uses tabs or spaces depends on indent-tabs-mode(var)/indent-tabs-mode(fun).
The return value is the column where the insertion ends.
Key Bindings
Aliases
org-indent-to-column (obsolete since 9.0)
indent-to-column
Source Code
// Defined in /usr/src/emacs/src/indent.c
{
EMACS_INT mincol;
register ptrdiff_t fromcol;
int tab_width = SANE_TAB_WIDTH (current_buffer);
CHECK_FIXNUM (column);
if (NILP (minimum))
XSETFASTINT (minimum, 0);
CHECK_FIXNUM (minimum);
fromcol = current_column ();
mincol = fromcol + XFIXNUM (minimum);
if (mincol < XFIXNUM (column)) mincol = XFIXNUM (column);
if (fromcol == mincol)
return make_fixnum (mincol);
if (indent_tabs_mode)
{
Lisp_Object n;
XSETFASTINT (n, mincol / tab_width - fromcol / tab_width);
if (XFIXNAT (n) != 0)
{
Finsert_char (make_fixnum ('\t'), n, Qt);
fromcol = (mincol / tab_width) * tab_width;
}
}
XSETFASTINT (column, mincol - fromcol);
Finsert_char (make_fixnum (' '), column, Qt);
last_known_column = mincol;
last_known_column_point = PT;
last_known_column_modified = MODIFF;
XSETINT (column, mincol);
return column;
}