Lecture REFUSE to admit mistake in Text Book!!

I have been doing programing for a long time, infact I'm average in
programming in PASCAL.
I encounted in the Text Book (Data Structures And Program Design 3rd
edition Robert l.Kruse)
Page 80
The program looks like this

type
        stackentry = char;
        stack = record
            top : 0..maxstack;
            entry : array[1..maxstack] of stackentry
            end;

procedure Push( x : stackentry; S : stack);
begin
        with S do
         if top = maxstack then
                Error('Cannot push onto a full stack')
         else begin
                top := top + 1;
                        entry[top] := x
             end
end;

{--------- This is My correct way of implementing the Push procedure ----}

Procedure Push( x : stackentry; S :stack);
begin
        with S do
        if S.top = maxstack then                   { in this case I reference the
top of the Stack using the passing Stack variable S.top }
                Error('Cannot push onto a full stack')
        else begin
                S.top := S.top + 1;              { and for this case implement that  top
of the Stack from S is incremented }
                S.entry[S.top] := x              { also the x is push into the Stack that
is pass through the procedure }
        end
end;

Therefore I am using the pricinple of the modular system to do the
procedure, without effecting  the input of any stack. If he persist of
using the above procedure in the text he will have to assign the variable
evertime a new Stack if created....And defeats the purpose of having a
modular!!!

Please Replay to thoma...@singnet.com.sg