> >> I don't understand the above call to `make-terminal-frame': does it > >> create a new frame, or just a new tab? If the first, then I don't > >> understand how it works, and if the second, it's wrong because adding > >> a tab should have nothing to do with frame creation. > > The fact that make-tab calls directly make-terminal-frame is just a > legacy > > of the old code, when a tab used to be just a frame. > > So it will need to change. But does `make-tab' create a new tab or > a tabbar? If a tab, then I don't understand any more why the init-code > is needed. > I did not insert :initcode inside the tab, because I should have written more C code. I should add the :initcode after the (make-terminal-frame '(tab . t)), or I should have written code to commute temporarly to a tab without activating it. This is why I executed the :initcode before calling (make-terminal-frame.... ) In my case the :initcode should be ;; save curent win config (setq sym (make-symbol "winconfig")) (set sym (current-window-configuration)) My actual C code does not allow me to insert :initcode as parameter to (make-terminal-frame (tab . t)), and this is why I created make-tab and separated the :initcode. I come into a vicious circle if I pass :initcode to make-terminal frame, and I did not want to write more C code before to clarify with other emacs developers how tabs should look like.