This is format.c in view mode; [Download] [Up]
Changes file for /usr/local/src/kcl/./c/format.c
Created on Tue Jul 9 07:14:34 1991
Usage \n@s[Original text\n@s|Replacement Text\n@s]
See the file rascal.ics.utexas.edu:/usr2/ftp/merge.c
for a program to merge change files. Anything not between
"\n@s[" and "\n@s]" is a simply a comment.
This file was constructed using emacs and merge.el
Enhancements Copyright (c) W. Schelter All rights reserved.
by (Bill Schelter) wfs@carl.ma.utexas.edu
****Change:(orig (12 12 c))
@s[*/
#include "include.h"
@s|*/
#include "include.h"
#include <varargs.h>
@s]
****Change:(orig (28 37 c))
@s[#define fmt_old object old_fmt_stream; \
int old_ctl_origin; \
int old_ctl_index; \
int old_ctl_end; \
@s, object old_fmt_string
@s|#define fmt_old VOL object old_fmt_stream; \
VOL int old_ctl_origin; \
VOL int old_ctl_index; \
VOL int old_ctl_end; \
object * VOL old_fmt_base; \
VOL int old_fmt_index; \
VOL int old_fmt_end; \
int * VOL old_fmt_jmp_buf; \
VOL int old_fmt_indents; \
VOL object old_fmt_string
@s]
****Change:(orig (209 209 a))
@s[ fmt_param[n].fmt_param_value = x->ch.ch_code;
@s| fmt_param[n].fmt_param_value = x->ch.ch_code;
} else if (x == Cnil) {
fmt_param[n].fmt_param_type = NULL;
@s]
****Change:(orig (352 352 a))
@s[ fmt_semicolon(colon, atsign);
break;
default:
@s| fmt_semicolon(colon, atsign);
break;
default:
{object user_fmt=getf(siVindent_formatted_output->s.s_plist,make_fixnum(c),Cnil);
if (user_fmt!=Cnil)
{object *oldbase=vs_base;
object *oldtop=vs_top;
vs_base=vs_top;
vs_push(fmt_advance());
vs_push(fmt_stream);
vs_push(make_fixnum(colon));
vs_push(make_fixnum(atsign));
if (type_of(user_fmt)==t_symbol) user_fmt=symbol_function(user_fmt);
funcall(user_fmt);
vs_base=oldbase; vs_top=oldtop; break;}}
@s]
****Change:(orig (1588 1589 c))
@s[{
object x;
int i, j;
@s|{
VOL object x;
VOL int i, j;
@s]
****Change:(orig (1743 1744 c))
@s[fmt_iteration(colon, atsign)
{
int n;
int i, j;
@s|fmt_iteration(colon, atsign)
{
int i,n;
VOL int j;
@s]
****Change:(orig (1747 1747 c))
@s[ bool colon_close = FALSE;
object l, l0;
@s| bool colon_close = FALSE;
object l;
VOL object l0;
@s]
****Change:(orig (1868 1868 c))
@s[ int i, j, k, l, m, n, j0, l0;
@s| VOL int i,j,n,j0;
int k,l,m,l0;
@s]
****Change:(orig (1870 1870 c))
@s[ int up_colon;
int special = 0;
@s| int up_colon;
VOL int special = 0;
@s]
****Change:(orig (1946 1946 c))
@s[ for (i = special; i < n; i++) {
if (i > 0 || colon)
@s| for (i = special; i < n; i++) {
if (m > 0 && (i > 0 || colon))
@s]
****Change:(orig (1997 1999 c))
@s[Lformat()
{
object x = OBJNULL;
@s|object
LVformat(strm, control, va_alist)
object strm;
object control;
va_dcl
{ va_list ap;
VOL int nargs= VFUN_NARGS;
VOL object x = OBJNULL;
@s]
****Change:(orig (2003 2004 c))
@s[
if (vs_top - vs_base < 2)
@s| nargs=nargs-2;
if (nargs < 0)
@s]
****Change:(orig (2006 2012 c))
@s[ if (vs_base[0] == Cnil) {
vs_base[0] = make_string_output_stream(64);
x = vs_base[0]->sm.sm_object0;
} else if (vs_base[0] == Ct)
@s, else if (type_of(vs_base[0]) == t_string) {
x = vs_base[0];
@s| if (strm == Cnil) {
strm = make_string_output_stream(64);
x = strm->sm.sm_object0;
} else if (strm == Ct)
strm = symbol_value(Vstandard_output);
else if (type_of(strm) == t_string) {
x = strm;
@s]
****Change:(orig (2015 2016 c))
@s[ vs_base[0] = make_string_output_stream(0);
vs_base[0]->sm.sm_object0 = x;
@s| strm = make_string_output_stream(0);
strm->sm.sm_object0 = x;
@s]
****Change:(orig (2018 2019 c))
@s[ check_type_stream(&vs_base[0]);
check_type_string(&vs_base[1]);
@s| check_type_stream(&strm);
check_type_string(&control);
@s]
****Change:(orig (2026 2026 c))
@s[ fmt_base = vs_base + 2;
@s|
va_start(ap);
{object *l;
COERCE_VA_LIST(l,ap,nargs);
fmt_base = l;
@s]
****Change:(orig (2028 2028 c))
@s[ fmt_end = vs_top - vs_base - 2;
@s| fmt_end = nargs;
@s]
****Change:(orig (2031 2031 c))
@s[ fmt_indents = file_column(vs_base[0]);
@s| fmt_indents = file_column(strm);
@s]
****Change:(orig (2034 2034 c))
@s[ fmt_string = vs_base[1];
@s| fmt_string = control;
@s]
****Change:(orig (2046 2052 c))
@s[ format(vs_base[0], 0, vs_base[1]->st.st_fillp);
flush_stream(vs_base[0]);
vs_base = vs_top;
if (x != OBJNULL)
@s, vs_push(x);
else
vs_push(Cnil);
@s| format(strm, 0, control->st.st_fillp);
flush_stream(strm);
}
va_end(ap);
@s]
****Change:(orig (2060 2060 a))
@s[ unwind(nlj_fr, nlj_tag);
}
@s| unwind(nlj_fr, nlj_tag);
}
return (x ==0 ? Cnil : x);
@s]
****Change:(orig (2062 2062 a))
@s[}
@s|}
object c_apply_n();
void
Lformat()
{object *b=vs_base;
VFUN_NARGS = vs_top-vs_base;
b[0]= c_apply_n(LVformat,vs_top-vs_base,vs_base);
vs_top=((vs_base=b)+1);
}
@s]
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.