Diff

Differences From Artifact [7eb225a40b]:

To Artifact [32e0ff7692]:


9
10
11
12
13
14
15

16
17
18
19
20
21
22
void platform_get_x11_auth(char *display, int *protocol,
                           unsigned char *data, int *datalen)
{
    FILE *fp;
    char *command;
    int maxsize = *datalen;
    char *localbuf;


    /*
     * Normally we should run `xauth list DISPLAYNAME'. However,
     * there's an oddity when the display is local: the display
     * `localhost:0' (or `:0') should become just `:0'.
     */
    if (!strncmp(display, "localhost:", 10))







>







9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void platform_get_x11_auth(char *display, int *protocol,
                           unsigned char *data, int *datalen)
{
    FILE *fp;
    char *command;
    int maxsize = *datalen;
    char *localbuf;
    int proto = -1;

    /*
     * Normally we should run `xauth list DISPLAYNAME'. However,
     * there's an oddity when the display is local: the display
     * `localhost:0' (or `:0') should become just `:0'.
     */
    if (!strncmp(display, "localhost:", 10))
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
    localbuf = snewn(maxsize, char);

    while (1) {
        /*
         * Read a line from stdin, and attempt to parse it into a
         * display name (ignored), auth protocol, and auth string.
         */
        int c, i, hexdigit, proto;
        char protoname[64];

        /* Skip the display name. */
        while (c = getc(fp), c != EOF && c != '\n' && !isspace(c));
        if (c == EOF) break;
        if (c == '\n') continue;








|







33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
    localbuf = snewn(maxsize, char);

    while (1) {
        /*
         * Read a line from stdin, and attempt to parse it into a
         * display name (ignored), auth protocol, and auth string.
         */
        int c, i, hexdigit;
        char protoname[64];

        /* Skip the display name. */
        while (c = getc(fp), c != EOF && c != '\n' && !isspace(c));
        if (c == EOF) break;
        if (c == '\n') continue;