undo
static void undo(void);
undo();
undo:
goto undo;
void undo(bool);
undo(c);
undo(1);
vok(wchar_t *atube, int undo)
if(!undo) {
if(!undo)
undo(1);
gl->vi.undo.line[0] = '\0';
gl->vi.undo.ntotal = 0;
gl->vi.undo.buff_curpos = 0;
gl->vi.undo.line = NULL;
gl->vi.undo.buff_curpos = 0;
gl->vi.undo.ntotal = 0;
gl->vi.undo.saved = 0;
gl->vi.undo.line = (char *) malloc(linelen + 2);
if(!gl->vi.undo.line) {
gl->vi.undo.line[0] = '\0';
if(gl->vi.undo.line)
free(gl->vi.undo.line);
ViUndo undo; /* Information needed to implement the vi */
int nrestore = gl->buff_curpos + nc <= gl->vi.undo.ntotal ?
nc : gl->vi.undo.ntotal - gl->buff_curpos;
gl_buffer_string(gl, gl->vi.undo.line + gl->buff_curpos, nrestore,
gl_truncate_buffer(gl, (gl->vi.undo.ntotal > gl->buff_curpos) ?
gl->vi.undo.ntotal : gl->buff_curpos);
if(gl->vi.command && !gl->vi.undo.saved) {
strlcpy(gl->vi.undo.line, gl->line, gl->linelen);
gl->vi.undo.buff_curpos = gl->buff_curpos;
gl->vi.undo.ntotal = gl->ntotal;
gl->vi.undo.saved = 1;
char *undo_ptr = gl->vi.undo.line;
if(gl->ntotal > gl->vi.undo.ntotal) {
gl->vi.undo.ntotal = gl->ntotal;
if(gl->buff_curpos < gl->vi.undo.buff_curpos)
gl->vi.undo.buff_curpos = gl->buff_curpos;
gl->buff_curpos = gl->vi.undo.buff_curpos;
gl->vi.repeat.command_curpos <= gl->vi.undo.ntotal) {
if(gl_add_char_to_line(gl, gl->vi.undo.line[i]))
gl->vi.undo.saved = 0;
int undo;
undo = assume(compare_expression(expr, SPECIAL_EQUAL, zero_expr()));
if (undo)
undo = assume(compare_expression(expr, '<', zero_expr()));
if (undo)
struct allocsp_undo *undo = NULL;
undo = kmem_alloc(sizeof (struct allocsp_undo),
undo->offset = i;
undo->blk = allocblk;
undo->next = ib_undo;
ib_undo = undo;
undo = ib_undo;
err = bmap_set_bn(vp, undo->offset, 0);
undo->offset);
free(ip, undo->blk, fs->fs_bsize, I_IBLK);
ib_undo = undo->next;
kmem_free(undo, sizeof (struct allocsp_undo));
undo = ib_undo;
ib_undo = undo->next;
kmem_free(undo, sizeof (struct allocsp_undo));
cpu_state_change_hooks(int id, cpu_setup_t what, cpu_setup_t undo)
cpu_setups[i].func(undo,
&undo))
undo)))) {
sem_rollback(sp, uops, i, undo);
op->sem_num, undo))) {
sem_rollback(sp, uops, i, undo);
sem_rollback(sp, uops, i, undo);
sem_rollback(sp, uops, i, undo);
sem_undo_add(short val, ushort_t num, struct sem_undo *undo)
int newval = undo->un_aoe[num] - val;
undo->un_aoe[num] = newval;
struct sem_undo *undo;
for (undo = list_head(&sp->sem_undos); undo;
undo = list_next(&sp->sem_undos, undo))
undo->un_aoe[i] = 0;
sem_rollback(ksemid_t *sp, struct sembuf *op, int n, struct sem_undo *undo)
ASSERT(undo != NULL);
(void) sem_undo_add(-op->sem_op, op->sem_num, undo);
struct sem_undo *undo;
while (undo = list_head(&sp->sem_undos)) {
list_remove(&sp->sem_undos, undo);
mutex_enter(&undo->un_proc->p_lock);
if (undo->un_proc->p_semacct == NULL) {
mutex_exit(&undo->un_proc->p_lock);
avl_remove(undo->un_proc->p_semacct, undo);
mutex_exit(&undo->un_proc->p_lock);
kmem_free(undo, size);
struct sem_undo *undo;
while (undo = avl_destroy_nodes(tree, &cookie)) {
ksemid_t *sp = undo->un_sp;
int adj = undo->un_aoe[i];
list_remove(&sp->sem_undos, undo);
kmem_free(undo, size);
struct sem_undo *undo;
undo = kmem_zalloc(size, KM_SLEEP);
undo->un_proc = pp;
undo->un_sp = sp;
kmem_free(undo, size);
kmem_free(undo, size);
*un = undo;
avl_insert(pp->p_semacct, undo, where);
list_insert_head(&sp->sem_undos, undo);
struct sem_undo *undo;
undo = avl_find(pp->p_semacct, &template, NULL);
undo = NULL;
if (undo == NULL) {