annotate src/os_vms_mms.c @ 34255:ccd1a35157ad v9.1.0068

patch 9.1.0068: Visual highlighting can still be improved Commit: https://github.com/vim/vim/commit/59bafc8171b08cf326ed40ccb4ee917f9643290e Author: Maxim Kim <habamax@gmail.com> Date: Thu Feb 1 21:07:51 2024 +0100 patch 9.1.0068: Visual highlighting can still be improved Problem: Visual highlighting can still be improved Solution: Update Visual highlighting for 8 color terminals, use uniform grey highlighting for dark and light bg (Maxim Kim) Update terminal Visual 1. Use `ctermbg=Grey ctermfg=Black` for both dark and light This uniforms Visual highlighting between default dark and light colors And should work for vim usually detecting light background for terminals with black/dark background colors. Previously used `ctermfg=White` leaks `cterm=bold` if available colors are less than 16. 2. Use `term=reverse cterm=reverse ctermbg=NONE ctermfg=NONE` for terminals reporting less than 8 colors available If the terminal has less than 8 colors, grey just doesn't work right closes: #13940 Signed-off-by: Maxim Kim <habamax@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Thu, 01 Feb 2024 21:15:06 +0100
parents 2463194c8cdd
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1 #include <stdio.h>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2 #include <stdlib.h>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3 #include <string.h>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4 #include <unixio.h>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5 #include "vim.h"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6 int main(int argc, char *argv[])
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8 FILE *fpi, *fpo;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 char cmd[132], buf[BUFSIZ], *argp, *error_file, target[132], *mms;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10 int err = 0, err_line = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12 mms = "mms";
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13 argc--;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14 argv++;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15 while (argc-- > 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17 argp = *argv++;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 if (*argp == '-')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 switch (*++argp)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22 case 'm':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 mms = ++argp;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 case 'e':
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 if (!*(error_file = ++argp))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28 error_file = *argv++;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29 argc--;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 default:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33 break;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 if (*target)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39 strcat(target, " ");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
40 strcat(target, argp);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
41 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42 }
273
2463194c8cdd updated for version 7.0073
vimboss
parents: 7
diff changeset
43 vim_snprintf(cmd, sizeof(cmd), "%s/output=tmp:errors.vim_tmp %s",
2463194c8cdd updated for version 7.0073
vimboss
parents: 7
diff changeset
44 mms, target);
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
45 system(cmd);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46 fpi = fopen("tmp:errors.vim_tmp", "r");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47 fpo = fopen(error_file, "w");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48 while (fgets(buf, BUFSIZ, fpi))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50 if (!memcmp(buf, "%CC-", 4))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
52 err_line++;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53 buf[strlen(buf)-1] = '\0';
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
54 err++;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
56 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58 if (err_line)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60 if (strstr(buf, _("At line")))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61 {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
62 err_line = 0;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63 fprintf(fpo, "@");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 buf[strlen(buf)-1] = '\0';
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
68 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69 fprintf(fpo, "%s", buf);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70 }
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71 fclose(fpi);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72 fclose(fpo);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
73 while (!delete("tmp:errors.vim_tmp"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
74 /*nop*/;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75 exit(err ? 44 : 1);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
76 return(0);
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
77 }