Hi! Going to end and begging of buffer doesn't set marks in Emacs.
Index: basic.c =================================================================== RCS file: /cvs/src/usr.bin/mg/basic.c,v retrieving revision 1.47 diff -u -p -u -p -r1.47 basic.c --- basic.c 10 Oct 2015 09:13:14 -0000 1.47 +++ basic.c 6 Feb 2019 21:18:34 -0000 @@ -122,7 +122,6 @@ forwchar(int f, int n) int gotobob(int f, int n) { - (void) setmark(f, n); curwp->w_dotp = bfirstlp(curbp); curwp->w_doto = 0; curwp->w_rflag |= WFFULL; @@ -140,7 +139,6 @@ gotoeob(int f, int n) { struct line *lp; - (void) setmark(f, n); curwp->w_dotp = blastlp(curbp); curwp->w_doto = llength(curwp->w_dotp); curwp->w_dotline = curwp->w_bufp->b_lines; Index: region.c =================================================================== RCS file: /cvs/src/usr.bin/mg/region.c,v retrieving revision 1.37 diff -u -p -u -p -r1.37 region.c --- region.c 9 Sep 2016 06:05:51 -0000 1.37 +++ region.c 6 Feb 2019 21:18:34 -0000 @@ -405,6 +405,7 @@ markbuffer(int f, int n) { if (gotoeob(f,n) == FALSE) return (FALSE); + (void) setmark(f, n); if (gotobob(f,n) == FALSE) return (FALSE); return (TRUE);