Hi Eli, Please help review the patch, thank you! From: Lin Sun > There is a bug that turn off semantic-mode it only restores current buffer's imenu-create-index-function but actually turning on semantic-mode had changed each buffer's variable. > Reproduce steps: > 1) Open two files (eg /tmp/a.c, /tmp/b.c) in two buffers; > 2) Turn on semantic-mode, it will change the imenu-create-index-function value for each buffer; > 3) Turn off semantic-mode, it will restore current buffer's value (eg: b.c), but another one (eg: a.c) won't restored. > > When turning on semantic-mode, it applies changes to each buffer, >  1048         (dolist (b (buffer-list)) >  1049           (with-current-buffer b >  1050             (semantic-new-buffer-fcn)))) > > But turning off semantic does not restore the var for each buffer, only restores current buffer. > > This patch will fix the issue. Please help review it. Thanks.