Mercurial > vim
comparison src/if_mzsch.c @ 12477:68d7bc045dbe v8.0.1118
patch 8.0.1118: FEAT_WINDOWS adds a lot of #ifdefs
commit https://github.com/vim/vim/commit/4033c55eca575777718c0701e26635a0cc47d907
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Sep 16 20:54:51 2017 +0200
patch 8.0.1118: FEAT_WINDOWS adds a lot of #ifdefs
Problem: FEAT_WINDOWS adds a lot of #ifdefs while it is nearly always
enabled and only adds 7% to the binary size of the tiny build.
Solution: Graduate FEAT_WINDOWS.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 16 Sep 2017 21:00:06 +0200 |
parents | 4aead6a9b7a9 |
children | 972ea22c946f |
comparison
equal
deleted
inserted
replaced
12476:2516383741e6 | 12477:68d7bc045dbe |
---|---|
143 static Scheme_Object *get_window_by_num(void *, int, Scheme_Object **); | 143 static Scheme_Object *get_window_by_num(void *, int, Scheme_Object **); |
144 static Scheme_Object *get_window_num(void *, int, Scheme_Object **); | 144 static Scheme_Object *get_window_num(void *, int, Scheme_Object **); |
145 static Scheme_Object *get_window_buffer(void *, int, Scheme_Object **); | 145 static Scheme_Object *get_window_buffer(void *, int, Scheme_Object **); |
146 static Scheme_Object *get_window_height(void *, int, Scheme_Object **); | 146 static Scheme_Object *get_window_height(void *, int, Scheme_Object **); |
147 static Scheme_Object *set_window_height(void *, int, Scheme_Object **); | 147 static Scheme_Object *set_window_height(void *, int, Scheme_Object **); |
148 #ifdef FEAT_WINDOWS | |
149 static Scheme_Object *get_window_width(void *, int, Scheme_Object **); | 148 static Scheme_Object *get_window_width(void *, int, Scheme_Object **); |
150 static Scheme_Object *set_window_width(void *, int, Scheme_Object **); | 149 static Scheme_Object *set_window_width(void *, int, Scheme_Object **); |
151 #endif | |
152 static Scheme_Object *get_cursor(void *, int, Scheme_Object **); | 150 static Scheme_Object *get_cursor(void *, int, Scheme_Object **); |
153 static Scheme_Object *set_cursor(void *, int, Scheme_Object **); | 151 static Scheme_Object *set_cursor(void *, int, Scheme_Object **); |
154 static Scheme_Object *get_window_list(void *, int, Scheme_Object **); | 152 static Scheme_Object *get_window_list(void *, int, Scheme_Object **); |
155 static vim_mz_window *get_vim_curr_window(void); | 153 static vim_mz_window *get_vim_curr_window(void); |
156 | 154 |
1911 /* (win-count) */ | 1909 /* (win-count) */ |
1912 static Scheme_Object * | 1910 static Scheme_Object * |
1913 get_window_count(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED) | 1911 get_window_count(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED) |
1914 { | 1912 { |
1915 int n = 0; | 1913 int n = 0; |
1916 #ifdef FEAT_WINDOWS | |
1917 win_T *w; | 1914 win_T *w; |
1918 | 1915 |
1919 FOR_ALL_WINDOWS(w) | 1916 FOR_ALL_WINDOWS(w) |
1920 #endif | |
1921 ++n; | 1917 ++n; |
1922 return scheme_make_integer(n); | 1918 return scheme_make_integer(n); |
1923 } | 1919 } |
1924 | 1920 |
1925 /* (get-win-list [buffer]) */ | 1921 /* (get-win-list [buffer]) */ |
1932 win_T *w = firstwin; | 1928 win_T *w = firstwin; |
1933 | 1929 |
1934 buf = get_buffer_arg(prim->name, 0, argc, argv); | 1930 buf = get_buffer_arg(prim->name, 0, argc, argv); |
1935 list = scheme_null; | 1931 list = scheme_null; |
1936 | 1932 |
1937 #ifdef FEAT_WINDOWS | |
1938 for ( ; w != NULL; w = w->w_next) | 1933 for ( ; w != NULL; w = w->w_next) |
1939 #endif | |
1940 if (w->w_buffer == buf->buf) | 1934 if (w->w_buffer == buf->buf) |
1941 { | 1935 { |
1942 list = scheme_make_pair(window_new(w), list); | 1936 list = scheme_make_pair(window_new(w), list); |
1943 MZ_GC_CHECK(); | 1937 MZ_GC_CHECK(); |
1944 } | 1938 } |
1986 /* (get-win-num [window]) */ | 1980 /* (get-win-num [window]) */ |
1987 static Scheme_Object * | 1981 static Scheme_Object * |
1988 get_window_num(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED) | 1982 get_window_num(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED) |
1989 { | 1983 { |
1990 int nr = 1; | 1984 int nr = 1; |
1991 #ifdef FEAT_WINDOWS | |
1992 Vim_Prim *prim = (Vim_Prim *)data; | 1985 Vim_Prim *prim = (Vim_Prim *)data; |
1993 win_T *win = get_window_arg(prim->name, 0, argc, argv)->win; | 1986 win_T *win = get_window_arg(prim->name, 0, argc, argv)->win; |
1994 win_T *wp; | 1987 win_T *wp; |
1995 | 1988 |
1996 for (wp = firstwin; wp != win; wp = wp->w_next) | 1989 for (wp = firstwin; wp != win; wp = wp->w_next) |
1997 #endif | |
1998 ++nr; | 1990 ++nr; |
1999 | 1991 |
2000 return scheme_make_integer(nr); | 1992 return scheme_make_integer(nr); |
2001 } | 1993 } |
2002 | 1994 |
2010 | 2002 |
2011 fnum = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0)); | 2003 fnum = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0)); |
2012 if (fnum < 1) | 2004 if (fnum < 1) |
2013 scheme_signal_error(_("window index is out of range")); | 2005 scheme_signal_error(_("window index is out of range")); |
2014 | 2006 |
2015 #ifdef FEAT_WINDOWS | |
2016 for ( ; win != NULL; win = win->w_next, --fnum) | 2007 for ( ; win != NULL; win = win->w_next, --fnum) |
2017 #endif | |
2018 if (fnum == 1) /* to be 1-based */ | 2008 if (fnum == 1) /* to be 1-based */ |
2019 return window_new(win); | 2009 return window_new(win); |
2020 | 2010 |
2021 return scheme_false; | 2011 return scheme_false; |
2022 } | 2012 } |
2064 | 2054 |
2065 raise_if_error(); | 2055 raise_if_error(); |
2066 return scheme_void; | 2056 return scheme_void; |
2067 } | 2057 } |
2068 | 2058 |
2069 #ifdef FEAT_WINDOWS | |
2070 /* (get-win-width [window]) */ | 2059 /* (get-win-width [window]) */ |
2071 static Scheme_Object * | 2060 static Scheme_Object * |
2072 get_window_width(void *data, int argc, Scheme_Object **argv) | 2061 get_window_width(void *data, int argc, Scheme_Object **argv) |
2073 { | 2062 { |
2074 Vim_Prim *prim = (Vim_Prim *)data; | 2063 Vim_Prim *prim = (Vim_Prim *)data; |
2099 curwin = savewin; | 2088 curwin = savewin; |
2100 | 2089 |
2101 raise_if_error(); | 2090 raise_if_error(); |
2102 return scheme_void; | 2091 return scheme_void; |
2103 } | 2092 } |
2104 #endif | |
2105 | 2093 |
2106 /* (get-cursor [window]) -> (line . col) */ | 2094 /* (get-cursor [window]) -> (line . col) */ |
2107 static Scheme_Object * | 2095 static Scheme_Object * |
2108 get_cursor(void *data, int argc, Scheme_Object **argv) | 2096 get_cursor(void *data, int argc, Scheme_Object **argv) |
2109 { | 2097 { |
3742 {get_window_by_num, "get-win-by-num", 1, 1}, | 3730 {get_window_by_num, "get-win-by-num", 1, 1}, |
3743 {get_window_num, "get-win-num", 0, 1}, | 3731 {get_window_num, "get-win-num", 0, 1}, |
3744 {get_window_buffer, "get-win-buffer", 0, 1}, | 3732 {get_window_buffer, "get-win-buffer", 0, 1}, |
3745 {get_window_height, "get-win-height", 0, 1}, | 3733 {get_window_height, "get-win-height", 0, 1}, |
3746 {set_window_height, "set-win-height", 1, 2}, | 3734 {set_window_height, "set-win-height", 1, 2}, |
3747 #ifdef FEAT_WINDOWS | |
3748 {get_window_width, "get-win-width", 0, 1}, | 3735 {get_window_width, "get-win-width", 0, 1}, |
3749 {set_window_width, "set-win-width", 1, 2}, | 3736 {set_window_width, "set-win-width", 1, 2}, |
3750 #endif | |
3751 {get_cursor, "get-cursor", 0, 1}, | 3737 {get_cursor, "get-cursor", 0, 1}, |
3752 {set_cursor, "set-cursor", 1, 2}, | 3738 {set_cursor, "set-cursor", 1, 2}, |
3753 {get_window_list, "get-win-list", 0, 1}, | 3739 {get_window_list, "get-win-list", 0, 1}, |
3754 /* | 3740 /* |
3755 * Vim-related commands | 3741 * Vim-related commands |