grahamr@bronze.UUCP (Graham Ross) (08/19/83)
The array-as-lvalue operator and the string concatenation operator seem like poor ways to spend two of the three remaining printable ASCII characters. You can implement something like the ` operator with a "routine" that gets turned into a block move instruction by a sed script. The macro adds a little sugar. Here are the VAX versions: -------- #define acopy(dst,src) _movc5(sizeof(src),(src),sizeof(dst),(dst)) #define ncopy(dst,src,len) _movc3((len),(src),(dst)) -------- s/calls $2,__movc5/movc5 (sp),*4(sp),$0,8(sp),*12(sp)\ addl2 $16,sp/ s/calls $2,__movc3/movc3 (sp),*4(sp),*8(sp)\ addl2 $12,sp/ -------- I can't help but think that C is not the best language for all this string and array processing. If the block move stuff is all that's needed, maybe a preprocessor is a reasonable way to get it. If what you really want is a fancier language, a better choice -- and one that C programmers often find palatable -- might be Icon. It offers many other features on top of rich string processing. Here's an excerpt from the Icon newsletter: Send your name, address, telephone number, electronic mail address, telex address and EITHER a >=1200' tape OR a $15 check payable to U of Ariz. to: Ralph E. Griswold Dept. of Comp. Sci. University Computer Center University of Arizona Tucson, AZ 85721 USA You're supposed to request V5 Icon for VAX/Unix. It comes in tar format. You have to request 800 or 1600 bpi. They also post a net address: ucbvax!arizona!icon-project icon-project.arizona@rand-relay -Graham Ross teklabs!tekmdp!grahamr