Mercurial > vim
view src/proto/os_mswin.pro @ 33532:f99f5a56ff27 v9.0.2015
patch 9.0.2015: Vim9: does not handle islocked() from a method correctly
Commit: https://github.com/vim/vim/commit/4c8da025ef8140168b7a09d9fe922ce4bb40f19d
Author: Ernie Rael <errael@raelity.com>
Date: Wed Oct 11 21:35:11 2023 +0200
patch 9.0.2015: Vim9: does not handle islocked() from a method correctly
Problem: Vim9: does not handle islocked() from a method correctly
Solution: Handle islocked() builtin from a method.
- Setup `lval_root` from `f_islocked()`.
- Add function `fill_exec_lval_root()` to get info about executing method.
- `sync_root` added in get_lval to handle method member access.
- Conservative approach to reference counting.
closes: #13309
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Ernie Rael <errael@raelity.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 11 Oct 2023 21:45:04 +0200 |
parents | f8dd278ab05f |
children | 19cdfe768104 |
line wrap: on
line source
/* os_mswin.c */ void mch_exit_g(int r); void mch_early_init(void); int mch_input_isatty(void); void mch_settitle(char_u *title, char_u *icon); void mch_restore_title(int which); int mch_can_restore_title(void); int mch_can_restore_icon(void); int mch_FullName(char_u *fname, char_u *buf, int len, int force); int mch_isFullName(char_u *fname); void slash_adjust(char_u *p); char_u *resolve_appexeclink(char_u *fname); int vim_stat(const char *name, stat_T *stp); void mch_settmode(tmode_T tmode); int mch_get_shellsize(void); void mch_set_shellsize(void); void mch_new_shellsize(void); void mch_suspend(void); void display_errors(void); int mch_has_exp_wildcard(char_u *p); int mch_has_wildcard(char_u *p); int mch_chdir(char *path); int mch_icon_load(HANDLE *iconp); int mch_libcall(char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result); void DumpPutS(const char *psz); int mch_get_winpos(int *x, int *y); void mch_set_winpos(int x, int y); void mch_print_cleanup(void); int mch_print_init(prt_settings_T *psettings, char_u *jobname, int forceit); int mch_print_begin(prt_settings_T *psettings); void mch_print_end(prt_settings_T *psettings); int mch_print_end_page(void); int mch_print_begin_page(char_u *msg); int mch_print_blank_page(void); void mch_print_start_line(int margin, int page_line); int mch_print_text_out(char_u *p, int len); void mch_print_set_font(int iBold, int iItalic, int iUnderline); void mch_print_set_bg(long_u bgcol); void mch_print_set_fg(long_u fgcol); char_u *resolve_reparse_point(char_u *fname); char_u *mch_resolve_path(char_u *fname, int reparse_point); void win32_set_foreground(void); void serverInitMessaging(void); void serverSetName(char_u *name); char_u *serverGetVimNames(void); int serverSendReply(char_u *name, char_u *reply); int serverSendToVim(char_u *name, char_u *cmd, char_u **result, void *ptarget, int asExpr, int timeout, int silent); void serverForeground(char_u *name); char_u *serverGetReply(HWND server, int *expr_res, int remove, int wait, int timeout); void serverProcessPendingMessages(void); char *charset_id2name(int id); char *quality_id2name(DWORD id); int get_logfont(LOGFONTW *lf, char_u *name, HDC printer_dc, int verbose); void gui_mch_expand_font(optexpand_T *args, void *param, int (*cb)(char_u *val)); void channel_init_winsock(void); /* vim: set ft=c : */