759 |
{ |
{ |
760 |
PRINTDECLARE; |
PRINTDECLARE; |
761 |
Lisp_Object printcharfun; |
Lisp_Object printcharfun; |
762 |
struct gcpro gcpro1, gcpro2; |
/* struct gcpro gcpro1, gcpro2; */ |
763 |
Lisp_Object tem; |
Lisp_Object save_deactivate_mark; |
764 |
|
int count = specpdl_ptr - specpdl; |
765 |
|
|
766 |
|
specbind (Qinhibit_modification_hooks, Qt); |
767 |
|
|
768 |
/* Save and restore this--we are altering a buffer |
/* Save and restore this--we are altering a buffer |
769 |
but we don't want to deactivate the mark just for that. |
but we don't want to deactivate the mark just for that. |
770 |
No need for specbind, since errors deactivate the mark. */ |
No need for specbind, since errors deactivate the mark. */ |
771 |
tem = Vdeactivate_mark; |
save_deactivate_mark = Vdeactivate_mark; |
772 |
GCPRO2 (object, tem); |
/* GCPRO2 (object, save_deactivate_mark); */ |
773 |
|
abort_on_gc++; |
774 |
|
|
775 |
printcharfun = Vprin1_to_string_buffer; |
printcharfun = Vprin1_to_string_buffer; |
776 |
PRINTPREPARE; |
PRINTPREPARE; |
785 |
Ferase_buffer (); |
Ferase_buffer (); |
786 |
set_buffer_internal (old); |
set_buffer_internal (old); |
787 |
|
|
788 |
Vdeactivate_mark = tem; |
Vdeactivate_mark = save_deactivate_mark; |
789 |
UNGCPRO; |
/* UNGCPRO; */ |
790 |
|
|
791 |
return object; |
abort_on_gc--; |
792 |
|
return unbind_to (count, object); |
793 |
} |
} |
794 |
|
|
795 |
DEFUN ("princ", Fprinc, Sprinc, 1, 2, 0, |
DEFUN ("princ", Fprinc, Sprinc, 1, 2, 0, |