X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=madtty%2Finject_csi.h;fp=madtty%2Finject_csi.h;h=3759934657886489e2eaeb5223f36c0278566d5b;hb=fcbd5f6835f65055d0ac14d3a2da3afb39634fd3;hp=0000000000000000000000000000000000000000;hpb=6b8dbf88373a486ad0117331cfb577b3b6010141;p=apps%2Fmadtty.git diff --git a/madtty/inject_csi.h b/madtty/inject_csi.h new file mode 100644 index 0000000..3759934 --- /dev/null +++ b/madtty/inject_csi.h @@ -0,0 +1,44 @@ +/* + LICENSE INFORMATION: + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License (LGPL) as published by the Free Software Foundation. + + Please refer to the COPYING file for more information. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + Copyright © 2004 Bruno T. C. de Oliveira + Copyright © 2006 Pierre Habouzit + */ + +#ifndef btco_ROTE_inject_csi_h +#define btco_ROTE_inject_csi_h + +#include "madtty.h" + +/* Interprets a CSI escape sequence stored in rt->pd->esbuf, + * changing rt to reflect the effect of the sequence. This function + * will not change rt->pd->esbuf, rt->pd->escaped or other escape-sequence + * related fields in it */ +void rote_es_interpret_csi(RoteTerm *rt); + +static inline void clamp_cursor_to_bounds(RoteTerm *rt) { + if (rt->crow < 0) rt->curpos_dirty = true, rt->crow = 0; + if (rt->ccol < 0) rt->curpos_dirty = true, rt->ccol = 0; + + if (rt->crow >= rt->rows) + rt->curpos_dirty = true, rt->crow = rt->rows - 1; + + if (rt->ccol >= rt->cols) + rt->curpos_dirty = true, rt->ccol = rt->cols - 1; +} +#endif +