/[emacs]/emacs/src/w32fns.c
ViewVC logotype

Diff of /emacs/src/w32fns.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.178 by lektu, Thu Jul 11 14:15:56 2002 UTC revision 1.179 by raeburn, Mon Jul 15 00:00:37 2002 UTC
# Line 571  x_create_bitmap_from_file (f, file) Line 571  x_create_bitmap_from_file (f, file)
571      {      {
572        if (dpyinfo->bitmaps[id].refcount        if (dpyinfo->bitmaps[id].refcount
573            && dpyinfo->bitmaps[id].file            && dpyinfo->bitmaps[id].file
574            && !strcmp (dpyinfo->bitmaps[id].file, (char *) XSTRING (file)->data))            && !strcmp (dpyinfo->bitmaps[id].file, (char *) SDATA (file)))
575          {          {
576            ++dpyinfo->bitmaps[id].refcount;            ++dpyinfo->bitmaps[id].refcount;
577            return id + 1;            return id + 1;
# Line 584  x_create_bitmap_from_file (f, file) Line 584  x_create_bitmap_from_file (f, file)
584      return -1;      return -1;
585    emacs_close (fd);    emacs_close (fd);
586    
587    filename = (char *) XSTRING (found)->data;    filename = (char *) SDATA (found);
588    
589    hinst = LoadLibraryEx (filename, NULL, LOAD_LIBRARY_AS_DATAFILE);    hinst = LoadLibraryEx (filename, NULL, LOAD_LIBRARY_AS_DATAFILE);
590    
# Line 600  x_create_bitmap_from_file (f, file) Line 600  x_create_bitmap_from_file (f, file)
600    id = x_allocate_bitmap_record (f);    id = x_allocate_bitmap_record (f);
601    dpyinfo->bitmaps[id - 1].pixmap = bitmap;    dpyinfo->bitmaps[id - 1].pixmap = bitmap;
602    dpyinfo->bitmaps[id - 1].refcount = 1;    dpyinfo->bitmaps[id - 1].refcount = 1;
603    dpyinfo->bitmaps[id - 1].file = (char *) xmalloc (XSTRING (file)->size + 1);    dpyinfo->bitmaps[id - 1].file = (char *) xmalloc (SCHARS (file) + 1);
604    dpyinfo->bitmaps[id - 1].depth = 1;    dpyinfo->bitmaps[id - 1].depth = 1;
605    dpyinfo->bitmaps[id - 1].height = height;    dpyinfo->bitmaps[id - 1].height = height;
606    dpyinfo->bitmaps[id - 1].width = width;    dpyinfo->bitmaps[id - 1].width = width;
607    strcpy (dpyinfo->bitmaps[id - 1].file, XSTRING (file)->data);    strcpy (dpyinfo->bitmaps[id - 1].file, SDATA (file));
608    
609    return id;    return id;
610  #endif  /* TODO */  #endif  /* TODO */
# Line 1216  where R,G,B are numbers between 0 and 25 Line 1216  where R,G,B are numbers between 0 and 25
1216    CHECK_STRING (filename);    CHECK_STRING (filename);
1217    abspath = Fexpand_file_name (filename, Qnil);    abspath = Fexpand_file_name (filename, Qnil);
1218    
1219    fp = fopen (XSTRING (filename)->data, "rt");    fp = fopen (SDATA (filename), "rt");
1220    if (fp)    if (fp)
1221      {      {
1222        char buf[512];        char buf[512];
# Line 1556  w32_color_map_lookup (colorname) Line 1556  w32_color_map_lookup (colorname)
1556    
1557        tem = Fcar (elt);        tem = Fcar (elt);
1558    
1559        if (lstrcmpi (XSTRING (tem)->data, colorname) == 0)        if (lstrcmpi (SDATA (tem), colorname) == 0)
1560          {          {
1561            ret = XUINT (Fcdr (elt));            ret = XUINT (Fcdr (elt));
1562            break;            break;
# Line 1986  x_decode_color (f, arg, def) Line 1986  x_decode_color (f, arg, def)
1986    
1987    CHECK_STRING (arg);    CHECK_STRING (arg);
1988    
1989    if (strcmp (XSTRING (arg)->data, "black") == 0)    if (strcmp (SDATA (arg), "black") == 0)
1990      return BLACK_PIX_DEFAULT (f);      return BLACK_PIX_DEFAULT (f);
1991    else if (strcmp (XSTRING (arg)->data, "white") == 0)    else if (strcmp (SDATA (arg), "white") == 0)
1992      return WHITE_PIX_DEFAULT (f);      return WHITE_PIX_DEFAULT (f);
1993    
1994    if ((FRAME_W32_DISPLAY_INFO (f)->n_planes * FRAME_W32_DISPLAY_INFO (f)->n_cbits) == 1)    if ((FRAME_W32_DISPLAY_INFO (f)->n_planes * FRAME_W32_DISPLAY_INFO (f)->n_cbits) == 1)
# Line 1996  x_decode_color (f, arg, def) Line 1996  x_decode_color (f, arg, def)
1996    
1997    /* w32_defined_color is responsible for coping with failures    /* w32_defined_color is responsible for coping with failures
1998       by looking for a near-miss.  */       by looking for a near-miss.  */
1999    if (w32_defined_color (f, XSTRING (arg)->data, &cdef, 1))    if (w32_defined_color (f, SDATA (arg), &cdef, 1))
2000      return cdef.pixel;      return cdef.pixel;
2001    
2002    /* defined_color failed; return an ultimate default.  */    /* defined_color failed; return an ultimate default.  */
# Line 2476  x_set_icon_name (f, arg, oldval) Line 2476  x_set_icon_name (f, arg, oldval)
2476    BLOCK_INPUT;    BLOCK_INPUT;
2477    
2478    result = x_text_icon (f,    result = x_text_icon (f,
2479                          (char *) XSTRING ((!NILP (f->icon_name)                          (char *) SDATA ((!NILP (f->icon_name)
2480                                             ? f->icon_name                                           ? f->icon_name
2481                                             : !NILP (f->title)                                           : !NILP (f->title)
2482                                             ? f->title                                           ? f->title
2483                                             : f->name))->data);                                           : f->name)));
2484    
2485    if (result)    if (result)
2486      {      {
# Line 2522  x_set_font (f, arg, oldval) Line 2522  x_set_font (f, arg, oldval)
2522    
2523    BLOCK_INPUT;    BLOCK_INPUT;
2524    result = (STRINGP (fontset_name)    result = (STRINGP (fontset_name)
2525              ? x_new_fontset (f, XSTRING (fontset_name)->data)              ? x_new_fontset (f, SDATA (fontset_name))
2526              : x_new_font (f, XSTRING (arg)->data));              : x_new_font (f, SDATA (arg)));
2527    UNBLOCK_INPUT;    UNBLOCK_INPUT;
2528        
2529    if (EQ (result, Qnil))    if (EQ (result, Qnil))
2530      error ("Font `%s' is not defined", XSTRING (arg)->data);      error ("Font `%s' is not defined", SDATA (arg));
2531    else if (EQ (result, Qt))    else if (EQ (result, Qt))
2532      error ("The characters of the given font have varying widths");      error ("The characters of the given font have varying widths");
2533    else if (STRINGP (result))    else if (STRINGP (result))
# Line 2812  x_set_name (f, name, explicit) Line 2812  x_set_name (f, name, explicit)
2812        /* Check for no change needed in this very common case        /* Check for no change needed in this very common case
2813           before we do any consing.  */           before we do any consing.  */
2814        if (!strcmp (FRAME_W32_DISPLAY_INFO (f)->w32_id_name,        if (!strcmp (FRAME_W32_DISPLAY_INFO (f)->w32_id_name,
2815                     XSTRING (f->name)->data))                     SDATA (f->name)))
2816          return;          return;
2817        name = build_string (FRAME_W32_DISPLAY_INFO (f)->w32_id_name);        name = build_string (FRAME_W32_DISPLAY_INFO (f)->w32_id_name);
2818      }      }
# Line 2836  x_set_name (f, name, explicit) Line 2836  x_set_name (f, name, explicit)
2836          name = ENCODE_SYSTEM (name);          name = ENCODE_SYSTEM (name);
2837    
2838        BLOCK_INPUT;        BLOCK_INPUT;
2839        SetWindowText(FRAME_W32_WINDOW (f), XSTRING (name)->data);        SetWindowText(FRAME_W32_WINDOW (f), SDATA (name));
2840        UNBLOCK_INPUT;        UNBLOCK_INPUT;
2841      }      }
2842  }  }
# Line 2896  x_set_title (f, name, old_name) Line 2896  x_set_title (f, name, old_name)
2896          name = ENCODE_SYSTEM (name);          name = ENCODE_SYSTEM (name);
2897    
2898        BLOCK_INPUT;        BLOCK_INPUT;
2899        SetWindowText(FRAME_W32_WINDOW (f), XSTRING (name)->data);        SetWindowText(FRAME_W32_WINDOW (f), SDATA (name));
2900        UNBLOCK_INPUT;        UNBLOCK_INPUT;
2901      }      }
2902  }  }
# Line 3002  validate_x_resource_name () Line 3002  validate_x_resource_name ()
3002    
3003    if (STRINGP (Vx_resource_name))    if (STRINGP (Vx_resource_name))
3004      {      {
3005        unsigned char *p = XSTRING (Vx_resource_name)->data;        unsigned char *p = SDATA (Vx_resource_name);
3006        int i;        int i;
3007    
3008        len = STRING_BYTES (XSTRING (Vx_resource_name));        len = SBYTES (Vx_resource_name);
3009    
3010        /* Only letters, digits, - and _ are valid in resource names.        /* Only letters, digits, - and _ are valid in resource names.
3011           Count the valid characters and count the invalid ones.  */           Count the valid characters and count the invalid ones.  */
# Line 3044  validate_x_resource_name () Line 3044  validate_x_resource_name ()
3044    
3045    for (i = 0; i < len; i++)    for (i = 0; i < len; i++)
3046      {      {
3047        int c = XSTRING (new)->data[i];        int c = SREF (new, i);
3048        if (! ((c >= 'a' && c <= 'z')        if (! ((c >= 'a' && c <= 'z')
3049               || (c >= 'A' && c <= 'Z')               || (c >= 'A' && c <= 'Z')
3050               || (c >= '0' && c <= '9')               || (c >= '0' && c <= '9')
3051               || c == '-' || c == '_'))               || c == '-' || c == '_'))
3052          XSTRING (new)->data[i] = '_';          SREF (new, i) = '_';
3053      }      }
3054  }  }
3055    
# Line 3087  and the class is `Emacs.CLASS.SUBCLASS'. Line 3087  and the class is `Emacs.CLASS.SUBCLASS'.
3087    
3088    /* Allocate space for the components, the dots which separate them,    /* Allocate space for the components, the dots which separate them,
3089       and the final '\0'.  Make them big enough for the worst case.  */       and the final '\0'.  Make them big enough for the worst case.  */
3090    name_key = (char *) alloca (STRING_BYTES (XSTRING (Vx_resource_name))    name_key = (char *) alloca (SBYTES (Vx_resource_name)
3091                                + (STRINGP (component)                                + (STRINGP (component)
3092                                   ? STRING_BYTES (XSTRING (component)) : 0)                                   ? SBYTES (component) : 0)
3093                                + STRING_BYTES (XSTRING (attribute))                                + SBYTES (attribute)
3094                                + 3);                                + 3);
3095    
3096    class_key = (char *) alloca ((sizeof (EMACS_CLASS) - 1)    class_key = (char *) alloca ((sizeof (EMACS_CLASS) - 1)
3097                                 + STRING_BYTES (XSTRING (class))                                 + SBYTES (class)
3098                                 + (STRINGP (subclass)                                 + (STRINGP (subclass)
3099                                    ? STRING_BYTES (XSTRING (subclass)) : 0)                                    ? SBYTES (subclass) : 0)
3100                                 + 3);                                 + 3);
3101    
3102    /* Start with emacs.FRAMENAME for the name (the specific one)    /* Start with emacs.FRAMENAME for the name (the specific one)
3103       and with `Emacs' for the class key (the general one).  */       and with `Emacs' for the class key (the general one).  */
3104    strcpy (name_key, XSTRING (Vx_resource_name)->data);    strcpy (name_key, SDATA (Vx_resource_name));
3105    strcpy (class_key, EMACS_CLASS);    strcpy (class_key, EMACS_CLASS);
3106    
3107    strcat (class_key, ".");    strcat (class_key, ".");
3108    strcat (class_key, XSTRING (class)->data);    strcat (class_key, SDATA (class));
3109    
3110    if (!NILP (component))    if (!NILP (component))
3111      {      {
3112        strcat (class_key, ".");        strcat (class_key, ".");
3113        strcat (class_key, XSTRING (subclass)->data);        strcat (class_key, SDATA (subclass));
3114    
3115        strcat (name_key, ".");        strcat (name_key, ".");
3116        strcat (name_key, XSTRING (component)->data);        strcat (name_key, SDATA (component));
3117      }      }
3118    
3119    strcat (name_key, ".");    strcat (name_key, ".");
3120    strcat (name_key, XSTRING (attribute)->data);    strcat (name_key, SDATA (attribute));
3121    
3122    value = x_get_string_resource (Qnil,    value = x_get_string_resource (Qnil,
3123                                   name_key, class_key);                                   name_key, class_key);
# Line 3140  x_get_resource_string (attribute, class) Line 3140  x_get_resource_string (attribute, class)
3140    
3141    /* Allocate space for the components, the dots which separate them,    /* Allocate space for the components, the dots which separate them,
3142       and the final '\0'.  */       and the final '\0'.  */
3143    name_key = (char *) alloca (STRING_BYTES (XSTRING (Vinvocation_name))    name_key = (char *) alloca (SBYTES (Vinvocation_name)
3144                                + strlen (attribute) + 2);                                + strlen (attribute) + 2);
3145    class_key = (char *) alloca ((sizeof (EMACS_CLASS) - 1)    class_key = (char *) alloca ((sizeof (EMACS_CLASS) - 1)
3146                                 + strlen (class) + 2);                                 + strlen (class) + 2);
3147    
3148    sprintf (name_key, "%s.%s",    sprintf (name_key, "%s.%s",
3149             XSTRING (Vinvocation_name)->data,             SDATA (Vinvocation_name),
3150             attribute);             attribute);
3151    sprintf (class_key, "%s.%s", EMACS_CLASS, class);    sprintf (class_key, "%s.%s", EMACS_CLASS, class);
3152    
# Line 3201  w32_get_arg (alist, param, attribute, cl Line 3201  w32_get_arg (alist, param, attribute, cl
3201            switch (type)            switch (type)
3202              {              {
3203              case RES_TYPE_NUMBER:              case RES_TYPE_NUMBER:
3204                return make_number (atoi (XSTRING (tem)->data));                return make_number (atoi (SDATA (tem)));
3205    
3206              case RES_TYPE_FLOAT:              case RES_TYPE_FLOAT:
3207                return make_float (atof (XSTRING (tem)->data));                return make_float (atof (SDATA (tem)));
3208    
3209              case RES_TYPE_BOOLEAN:              case RES_TYPE_BOOLEAN:
3210                tem = Fdowncase (tem);                tem = Fdowncase (tem);
3211                if (!strcmp (XSTRING (tem)->data, "on")                if (!strcmp (SDATA (tem), "on")
3212                    || !strcmp (XSTRING (tem)->data, "true"))                    || !strcmp (SDATA (tem), "true"))
3213                  return Qt;                  return Qt;
3214                else                else
3215                  return Qnil;                  return Qnil;
# Line 3223  w32_get_arg (alist, param, attribute, cl Line 3223  w32_get_arg (alist, param, attribute, cl
3223                {                {
3224                  Lisp_Object lower;                  Lisp_Object lower;
3225                  lower = Fdowncase (tem);                  lower = Fdowncase (tem);
3226                  if (!strcmp (XSTRING (lower)->data, "on")                  if (!strcmp (SDATA (lower), "on")
3227                      || !strcmp (XSTRING (lower)->data, "true"))                      || !strcmp (SDATA (lower), "true"))
3228                    return Qt;                    return Qt;
3229                  else if (!strcmp (XSTRING (lower)->data, "off")                  else if (!strcmp (SDATA (lower), "off")
3230                        || !strcmp (XSTRING (lower)->data, "false"))                        || !strcmp (SDATA (lower), "false"))
3231                    return Qnil;                    return Qnil;
3232                  else                  else
3233                    return Fintern (tem, Qnil);                    return Fintern (tem, Qnil);
# Line 3284  or a list (- N) meaning -N pixels relati Line 3284  or a list (- N) meaning -N pixels relati
3284    
3285    CHECK_STRING (string);    CHECK_STRING (string);
3286    
3287    geometry = XParseGeometry ((char *) XSTRING (string)->data,    geometry = XParseGeometry ((char *) SDATA (string),
3288                               &x, &y, &width, &height);                               &x, &y, &width, &height);
3289    
3290    result = Qnil;    result = Qnil;
# Line 5342  w32_window (f, window_prompting, minibuf Line 5342  w32_window (f, window_prompting, minibuf
5342       Elsewhere we specify the window name for the window manager.  */       Elsewhere we specify the window name for the window manager.  */
5343            
5344    {    {
5345      char *str = (char *) XSTRING (Vx_resource_name)->data;      char *str = (char *) SDATA (Vx_resource_name);
5346      f->namebuf = (char *) xmalloc (strlen (str) + 1);      f->namebuf = (char *) xmalloc (strlen (str) + 1);
5347      strcpy (f->namebuf, str);      strcpy (f->namebuf, str);
5348    }    }
# Line 5409  x_icon (f, parms) Line 5409  x_icon (f, parms)
5409           ? IconicState           ? IconicState
5410           : NormalState));           : NormalState));
5411    
5412    x_text_icon (f, (char *) XSTRING ((!NILP (f->icon_name)    x_text_icon (f, (char *) SDATA ((!NILP (f->icon_name)
5413                                       ? f->icon_name                                       ? f->icon_name
5414                                       : f->name))->data);                                       : f->name)));
5415  #endif  #endif
5416    
5417    UNBLOCK_INPUT;    UNBLOCK_INPUT;
# Line 5621  This function is an internal primitive-- Line 5621  This function is an internal primitive--
5621        {        {
5622          tem = Fquery_fontset (font, Qnil);          tem = Fquery_fontset (font, Qnil);
5623          if (STRINGP (tem))          if (STRINGP (tem))
5624            font = x_new_fontset (f, XSTRING (tem)->data);            font = x_new_fontset (f, SDATA (tem));
5625          else          else
5626            font = x_new_font (f, XSTRING (font)->data);            font = x_new_font (f, SDATA (font));
5627        }        }
5628      /* Try out a font which we hope has bold and italic variations.  */      /* Try out a font which we hope has bold and italic variations.  */
5629      if (!STRINGP (font))      if (!STRINGP (font))
# Line 5912  w32_load_system_font (f,fontname,size) Line 5912  w32_load_system_font (f,fontname,size)
5912          for (tail = font_names; CONSP (tail); tail = XCDR (tail))          for (tail = font_names; CONSP (tail); tail = XCDR (tail))
5913            if (dpyinfo->font_table[i].name            if (dpyinfo->font_table[i].name
5914                && (!strcmp (dpyinfo->font_table[i].name,                && (!strcmp (dpyinfo->font_table[i].name,
5915                             XSTRING (XCAR (tail))->data)                             SDATA (XCAR (tail)))
5916                    || !strcmp (dpyinfo->font_table[i].full_name,                    || !strcmp (dpyinfo->font_table[i].full_name,
5917                                XSTRING (XCAR (tail))->data)))                                SDATA (XCAR (tail)))))
5918              return (dpyinfo->font_table + i);              return (dpyinfo->font_table + i);
5919    
5920        fontname = (char *) XSTRING (XCAR (font_names))->data;        fontname = (char *) SDATA (XCAR (font_names));
5921      }      }
5922    else if (w32_strict_fontnames)    else if (w32_strict_fontnames)
5923      {      {
# Line 6125  int size; Line 6125  int size;
6125        char *bdf_name, *bdf_file;        char *bdf_name, *bdf_file;
6126        Lisp_Object bdf_pair;        Lisp_Object bdf_pair;
6127    
6128        bdf_name = XSTRING (XCAR (bdf_fonts))->data;        bdf_name = SDATA (XCAR (bdf_fonts));
6129        bdf_pair = Fassoc (XCAR (bdf_fonts), Vw32_bdf_filename_alist);        bdf_pair = Fassoc (XCAR (bdf_fonts), Vw32_bdf_filename_alist);
6130        bdf_file = XSTRING (XCDR (bdf_pair))->data;        bdf_file = SDATA (XCDR (bdf_pair));
6131    
6132        retval = w32_load_bdf_font (f, bdf_name, size, bdf_file);        retval = w32_load_bdf_font (f, bdf_name, size, bdf_file);
6133    
# Line 6413  w32_to_x_charset (fncharset) Line 6413  w32_to_x_charset (fncharset)
6413              || !SYMBOLP (XCAR (XCDR (this_entry))))              || !SYMBOLP (XCAR (XCDR (this_entry))))
6414            continue;            continue;
6415    
6416          x_charset = XSTRING (XCAR (this_entry))->data;          x_charset = SDATA (XCAR (this_entry));
6417          w32_charset = XCAR (XCDR (this_entry));          w32_charset = XCAR (XCDR (this_entry));
6418          codepage = XCDR (XCDR (this_entry));          codepage = XCDR (XCDR (this_entry));
6419    
# Line 7196  enum_font_cb2 (lplf, lptm, FontType, lpe Line 7196  enum_font_cb2 (lplf, lptm, FontType, lpe
7196    
7197      if (!NILP (lpef->pattern))      if (!NILP (lpef->pattern))
7198        {        {
7199          charset = xlfd_charset_of_font (XSTRING(lpef->pattern)->data);          charset = xlfd_charset_of_font (SDATA (lpef->pattern));
7200    
7201          /* We already checked charsets above, but DEFAULT_CHARSET          /* We already checked charsets above, but DEFAULT_CHARSET
7202             slipped through.  So only allow exact matches for DEFAULT_CHARSET.  */             slipped through.  So only allow exact matches for DEFAULT_CHARSET.  */
# Line 7216  enum_font_cb2 (lplf, lptm, FontType, lpe Line 7216  enum_font_cb2 (lplf, lptm, FontType, lpe
7216      for ( ; CONSP (charset_list); charset_list = Fcdr (charset_list))      for ( ; CONSP (charset_list); charset_list = Fcdr (charset_list))
7217        {        {
7218          Lisp_Object this_charset = Fcar (charset_list);          Lisp_Object this_charset = Fcar (charset_list);
7219          charset = XSTRING (this_charset)->data;          charset = SDATA (this_charset);
7220    
7221          /* List bold and italic variations if w32-enable-synthesized-fonts          /* List bold and italic variations if w32-enable-synthesized-fonts
7222             is non-nil and this is a plain font.  */             is non-nil and this is a plain font.  */
# Line 7261  enum_font_maybe_add_to_list (lpef, logfo Line 7261  enum_font_maybe_add_to_list (lpef, logfo
7261      return;      return;
7262    
7263    if (NILP (lpef->pattern)    if (NILP (lpef->pattern)
7264        || w32_font_match (buf, XSTRING (lpef->pattern)->data))        || w32_font_match (buf, SDATA (lpef->pattern)))
7265      {      {
7266        /* Check if we already listed this font.  This may happen if        /* Check if we already listed this font.  This may happen if
7267           w32_enable_synthesized_fonts is non-nil, and there are real           w32_enable_synthesized_fonts is non-nil, and there are real
# Line 7335  static Lisp_Object w32_list_bdf_fonts (L Line 7335  static Lisp_Object w32_list_bdf_fonts (L
7335    int n_fonts = 0;    int n_fonts = 0;
7336    
7337    list = Vw32_bdf_filename_alist;    list = Vw32_bdf_filename_alist;
7338    ptnstr = XSTRING (pattern)->data;    ptnstr = SDATA (pattern);
7339    
7340    for ( ; CONSP (list); list = XCDR (list))    for ( ; CONSP (list); list = XCDR (list))
7341      {      {
7342        tem = XCAR (list);        tem = XCAR (list);
7343        if (CONSP (tem))        if (CONSP (tem))
7344          fontname = XSTRING (XCAR (tem))->data;          fontname = SDATA (XCAR (tem));
7345        else if (STRINGP (tem))        else if (STRINGP (tem))
7346          fontname = XSTRING (tem)->data;          fontname = SDATA (tem);
7347        else        else
7348          continue;          continue;
7349    
# Line 7395  w32_list_fonts (f, pattern, size, maxnam Line 7395  w32_list_fonts (f, pattern, size, maxnam
7395    
7396        /* Avoid expensive EnumFontFamilies functions if we are not        /* Avoid expensive EnumFontFamilies functions if we are not
7397           going to be able to output one of these anyway. */           going to be able to output one of these anyway. */
7398        codepage = w32_codepage_for_font (XSTRING (tpat)->data);        codepage = w32_codepage_for_font (SDATA (tpat));
7399        if (codepage != CP_8BIT && codepage != CP_UNICODE        if (codepage != CP_8BIT && codepage != CP_UNICODE
7400            && codepage != CP_DEFAULT && codepage != CP_UNKNOWN            && codepage != CP_DEFAULT && codepage != CP_UNKNOWN
7401            && !IsValidCodePage(codepage))            && !IsValidCodePage(codepage))
# Line 7422  w32_list_fonts (f, pattern, size, maxnam Line 7422  w32_list_fonts (f, pattern, size, maxnam
7422        /* Use EnumFontFamiliesEx where it is available, as it knows        /* Use EnumFontFamiliesEx where it is available, as it knows
7423           about character sets.  Fall back to EnumFontFamilies for           about character sets.  Fall back to EnumFontFamilies for
7424           older versions of NT that don't support the 'Ex function.  */           older versions of NT that don't support the 'Ex function.  */
7425        x_to_w32_font (XSTRING (tpat)->data, &ef.logfont);        x_to_w32_font (SDATA (tpat), &ef.logfont);
7426        {        {
7427          LOGFONT font_match_pattern;          LOGFONT font_match_pattern;
7428          HMODULE gdi32 = GetModuleHandle ("gdi32.dll");          HMODULE gdi32 = GetModuleHandle ("gdi32.dll");
# Line 7492  w32_list_fonts (f, pattern, size, maxnam Line 7492  w32_list_fonts (f, pattern, size, maxnam
7492                HDC hdc;                HDC hdc;
7493                HANDLE oldobj;                HANDLE oldobj;
7494    
7495                if (!x_to_w32_font (XSTRING (XCAR (tem))->data, &lf))                if (!x_to_w32_font (SDATA (XCAR (tem)), &lf))
7496                  continue;                  continue;
7497    
7498                BLOCK_INPUT;                BLOCK_INPUT;
# Line 7639  w32_find_bdf_fonts_in_dir (Lisp_Object d Line 7639  w32_find_bdf_fonts_in_dir (Lisp_Object d
7639    for ( ; CONSP(filelist); filelist = XCDR (filelist))    for ( ; CONSP(filelist); filelist = XCDR (filelist))
7640      {      {
7641        Lisp_Object filename = XCAR (filelist);        Lisp_Object filename = XCAR (filelist);
7642        if (w32_BDF_to_x_font (XSTRING (filename)->data, fontname, 100))        if (w32_BDF_to_x_font (SDATA (filename), fontname, 100))
7643            store_in_alist (&list, build_string (fontname), filename);            store_in_alist (&list, build_string (fontname), filename);
7644      }      }
7645    return list;    return list;
# Line 7684  DEFUN ("xw-color-defined-p", Fxw_color_d Line 7684  DEFUN ("xw-color-defined-p", Fxw_color_d
7684    
7685    CHECK_STRING (color);    CHECK_STRING (color);
7686    
7687    if (w32_defined_color (f, XSTRING (color)->data, &foo, 0))    if (w32_defined_color (f, SDATA (color), &foo, 0))
7688      return Qt;      return Qt;
7689    else    else
7690      return Qnil;      return Qnil;
# Line 7700  DEFUN ("xw-color-values", Fxw_color_valu Line 7700  DEFUN ("xw-color-values", Fxw_color_valu
7700    
7701    CHECK_STRING (color);    CHECK_STRING (color);
7702    
7703    if (w32_defined_color (f, XSTRING (color)->data, &foo, 0))    if (w32_defined_color (f, SDATA (color), &foo, 0))
7704      {      {
7705        Lisp_Object rgb[3];        Lisp_Object rgb[3];
7706    
# Line 8031  x_display_info_for_name (name) Line 8031  x_display_info_for_name (name)
8031    validate_x_resource_name ();    validate_x_resource_name ();
8032    
8033    dpyinfo = w32_term_init (name, (unsigned char *)0,    dpyinfo = w32_term_init (name, (unsigned char *)0,
8034                               (char *) XSTRING (Vx_resource_name)->data);                               (char *) SDATA (Vx_resource_name));
8035    
8036    if (dpyinfo == 0)    if (dpyinfo == 0)
8037      error ("Cannot connect to server %s", XSTRING (name)->data);      error ("Cannot connect to server %s", SDATA (name));
8038    
8039    w32_in_use = 1;    w32_in_use = 1;
8040    XSETFASTINT (Vwindow_system_version, 3);    XSETFASTINT (Vwindow_system_version, 3);
# Line 8089  terminate Emacs if we can't open the con Line 8089  terminate Emacs if we can't open the con
8089      Vw32_color_map = Fw32_default_color_map ();      Vw32_color_map = Fw32_default_color_map ();
8090    
8091    if (! NILP (xrm_string))    if (! NILP (xrm_string))
8092      xrm_option = (unsigned char *) XSTRING (xrm_string)->data;      xrm_option = (unsigned char *) SDATA (xrm_string);
8093    else    else
8094      xrm_option = (unsigned char *) 0;      xrm_option = (unsigned char *) 0;
8095    
# Line 8098  terminate Emacs if we can't open the con Line 8098  terminate Emacs if we can't open the con
8098    {    {
8099      char basename[ MAX_PATH ], *str;      char basename[ MAX_PATH ], *str;
8100    
8101      strcpy (basename, XSTRING (Vinvocation_name)->data);      strcpy (basename, SDATA (Vinvocation_name));
8102      str = strrchr (basename, '.');      str = strrchr (basename, '.');
8103      if (str) *str = 0;      if (str) *str = 0;
8104      Vinvocation_name = build_string (basename);      Vinvocation_name = build_string (basename);
# Line 8110  terminate Emacs if we can't open the con Line 8110  terminate Emacs if we can't open the con
8110    /* This is what opens the connection and sets x_current_display.    /* This is what opens the connection and sets x_current_display.
8111       This also initializes many symbols, such as those used for input.  */       This also initializes many symbols, such as those used for input.  */
8112    dpyinfo = w32_term_init (display, xrm_option,    dpyinfo = w32_term_init (display, xrm_option,
8113                               (char *) XSTRING (Vx_resource_name)->data);                               (char *) SDATA (Vx_resource_name));
8114    
8115    if (dpyinfo == 0)    if (dpyinfo == 0)
8116      {      {
8117        if (!NILP (must_succeed))        if (!NILP (must_succeed))
8118          fatal ("Cannot connect to server %s.\n",          fatal ("Cannot connect to server %s.\n",
8119                 XSTRING (display)->data);                 SDATA (display));
8120        else        else
8121          error ("Cannot connect to server %s", XSTRING (display)->data);          error ("Cannot connect to server %s", SDATA (display));
8122      }      }
8123    
8124    w32_in_use = 1;    w32_in_use = 1;
# Line 8402  parse_image_spec (spec, keywords, nkeywo Line 8402  parse_image_spec (spec, keywords, nkeywo
8402    
8403        /* Find key in KEYWORDS.  Error if not found.  */        /* Find key in KEYWORDS.  Error if not found.  */
8404        for (i = 0; i < nkeywords; ++i)        for (i = 0; i < nkeywords; ++i)
8405          if (strcmp (keywords[i].name, XSTRING (SYMBOL_NAME (key))->data) == 0)          if (strcmp (keywords[i].name, SDATA (SYMBOL_NAME (key))) == 0)
8406            break;            break;
8407    
8408        if (i == nkeywords)        if (i == nkeywords)
# Line 8916  x_alloc_image_color (f, img, color_name, Line 8916  x_alloc_image_color (f, img, color_name,
8916    
8917    xassert (STRINGP (color_name));    xassert (STRINGP (color_name));
8918    
8919    if (w32_defined_color (f, XSTRING (color_name)->data, &color, 1))    if (w32_defined_color (f, SDATA (color_name), &color, 1))
8920      {      {
8921        /* This isn't called frequently so we get away with simply        /* This isn't called frequently so we get away with simply
8922           reallocating the color vector to the needed size, here.  */           reallocating the color vector to the needed size, here.  */
# Line 9694  xbm_image_p (object) Line 9694  xbm_image_p (object)
9694    
9695                if (STRINGP (elt))                if (STRINGP (elt))
9696                  {                  {
9697                    if (XSTRING (elt)->size                    if (SCHARS (elt)
9698                        < (width + BITS_PER_CHAR - 1) / BITS_PER_CHAR)                        < (width + BITS_PER_CHAR - 1) / BITS_PER_CHAR)
9699                      return 0;                      return 0;
9700                  }                  }
# Line 9709  xbm_image_p (object) Line 9709  xbm_image_p (object)
9709          }          }
9710        else if (STRINGP (data))        else if (STRINGP (data))
9711          {          {
9712            if (XSTRING (data)->size            if (SCHARS (data)
9713                < (width + BITS_PER_CHAR - 1) / BITS_PER_CHAR * height)                < (width + BITS_PER_CHAR - 1) / BITS_PER_CHAR * height)
9714              return 0;              return 0;
9715          }          }
# Line 10073  xbm_file_p (data) Line 10073  xbm_file_p (data)
10073  {  {
10074    int w, h;    int w, h;
10075    return (STRINGP (data)    return (STRINGP (data)
10076            && xbm_read_bitmap_data (XSTRING (data)->data,            && xbm_read_bitmap_data (SDATA (data),
10077                                     (XSTRING (data)->data                                     (SDATA (data)
10078                                      + STRING_BYTES (XSTRING (data))),                                      + SBYTES (data)),
10079                                     &w, &h, NULL));                                     &w, &h, NULL));
10080  }  }
10081    
# Line 10111  xbm_load (f, img) Line 10111  xbm_load (f, img)
10111            return 0;            return 0;
10112          }          }
10113    
10114        contents = slurp_file (XSTRING (file)->data, &size);        contents = slurp_file (SDATA (file), &size);
10115        if (contents == NULL)        if (contents == NULL)
10116          {          {
10117            image_error ("Error loading XBM image `%s'", img->spec, Qnil);            image_error ("Error loading XBM image `%s'", img->spec, Qnil);
# Line 10161  xbm_load (f, img) Line 10161  xbm_load (f, img)
10161                                            background);                                            background);
10162    
10163        if (in_memory_file_p)        if (in_memory_file_p)
10164          success_p = xbm_load_image (f, img, XSTRING (data)->data,          success_p = xbm_load_image (f, img, SDATA (data),
10165                                      (XSTRING (data)->data                                      (SDATA (data)
10166                                       + STRING_BYTES (XSTRING (data))));                                       + SBYTES (data)));
10167        else        else
10168          {          {
10169            if (VECTORP (data))            if (VECTORP (data))
# Line 10177  xbm_load (f, img) Line 10177  xbm_load (f, img)
10177                  {                  {
10178                    Lisp_Object line = XVECTOR (data)->contents[i];                    Lisp_Object line = XVECTOR (data)->contents[i];
10179                    if (STRINGP (line))                    if (STRINGP (line))
10180                      bcopy (XSTRING (line)->data, p, nbytes);                      bcopy (SDATA (line), p, nbytes);
10181                    else                    else
10182                      bcopy (XBOOL_VECTOR (line)->data, p, nbytes);                      bcopy (XBOOL_VECTOR (line)->data, p, nbytes);
10183                  }                  }
10184              }              }
10185            else if (STRINGP (data))            else if (STRINGP (data))
10186              bits = XSTRING (data)->data;              bits = SDATA (data);
10187            else            else
10188              bits = XBOOL_VECTOR (data)->data;              bits = XBOOL_VECTOR (data)->data;
10189    
# Line 10372  xpm_load (f, img) Line 10372  xpm_load (f, img)
10372          {          {
10373            Lisp_Object name = XCAR (XCAR (tail));            Lisp_Object name = XCAR (XCAR (tail));
10374            Lisp_Object color = XCDR (XCAR (tail));            Lisp_Object color = XCDR (XCAR (tail));
10375            xpm_syms[i].name = (char *) alloca (XSTRING (name)->size + 1);            xpm_syms[i].name = (char *) alloca (SCHARS (name) + 1);
10376            strcpy (xpm_syms[i].name, XSTRING (name)->data);            strcpy (xpm_syms[i].name, SDATA (name));
10377            xpm_syms[i].value = (char *) alloca (XSTRING (color)->size + 1);            xpm_syms[i].value = (char *) alloca (SCHARS (color) + 1);
10378            strcpy (xpm_syms[i].value, XSTRING (color)->data);            strcpy (xpm_syms[i].value, SDATA (color));
10379          }          }
10380      }      }
10381    
# Line 10394  xpm_load (f, img) Line 10394  xpm_load (f, img)
10394          }          }
10395                
10396        rc = XpmReadFileToPixmap (NULL, FRAME_W32_WINDOW (f),        rc = XpmReadFileToPixmap (NULL, FRAME_W32_WINDOW (f),
10397                                  XSTRING (file)->data, &img->pixmap, &img->mask,                                  SDATA (file), &img->pixmap, &img->mask,
10398                                  &attrs);                                  &attrs);
10399      }      }
10400    else    else
10401      {      {
10402        Lisp_Object buffer = image_spec_value (img->spec, QCdata, NULL);        Lisp_Object buffer = image_spec_value (img->spec, QCdata, NULL);
10403        rc = XpmCreatePixmapFromBuffer (NULL, FRAME_W32_WINDOW (f),        rc = XpmCreatePixmapFromBuffer (NULL, FRAME_W32_WINDOW (f),
10404                                        XSTRING (buffer)->data,                                        SDATA (buffer),
10405                                        &img->pixmap, &img->mask,                                        &img->pixmap, &img->mask,
10406                                        &attrs);                                        &attrs);
10407      }      }
# Line 11218  pbm_read_file (file, size) Line 11218  pbm_read_file (file, size)
11218    char *buf = NULL;    char *buf = NULL;
11219    struct stat st;    struct stat st;
11220    
11221    if (stat (XSTRING (file)->data, &st) == 0    if (stat (SDATA (file), &st) == 0
11222        && (fp = fopen (XSTRING (file)->data, "r")) != NULL        && (fp = fopen (SDATA (file), "r")) != NULL
11223        && (buf = (char *) xmalloc (st.st_size),        && (buf = (char *) xmalloc (st.st_size),
11224            fread (buf, 1, st.st_size, fp) == st.st_size))            fread (buf, 1, st.st_size, fp) == st.st_size))
11225      {      {
# Line 11272  pbm_load (f, img) Line 11272  pbm_load (f, img)
11272            return 0;            return 0;
11273          }          }
11274    
11275        contents = slurp_file (XSTRING (file)->data, &size);        contents = slurp_file (SDATA (file), &size);
11276        if (contents == NULL)        if (contents == NULL)
11277          {          {
11278            image_error ("Error reading `%s'", file, Qnil);            image_error ("Error reading `%s'", file, Qnil);
# Line 11287  pbm_load (f, img) Line 11287  pbm_load (f, img)
11287      {      {
11288        Lisp_Object data;        Lisp_Object data;
11289        data = image_spec_value (img->spec, QCdata, NULL);        data = image_spec_value (img->spec, QCdata, NULL);
11290        p = XSTRING (data)->data;        p = SDATA (data);
11291        end = p + STRING_BYTES (XSTRING (data));        end = p + SBYTES (data);
11292      }      }
11293    
11294    /* Check magic number.  */    /* Check magic number.  */
# Line 11644  png_load (f, img) Line 11644  png_load (f, img)
11644          }          }
11645    
11646        /* Open the image file.  */        /* Open the image file.  */
11647        fp = fopen (XSTRING (file)->data, "rb");        fp = fopen (SDATA (file), "rb");
11648        if (!fp)        if (!fp)
11649          {          {
11650            image_error ("Cannot open image file `%s'", file, Qnil);            image_error ("Cannot open image file `%s'", file, Qnil);
# Line 11666  png_load (f, img) Line 11666  png_load (f, img)
11666    else    else
11667      {      {
11668        /* Read from memory.  */        /* Read from memory.  */
11669        tbr.bytes = XSTRING (specified_data)->data;        tbr.bytes = SDATA (specified_data);
11670        tbr.len = STRING_BYTES (XSTRING (specified_data));        tbr.len = SBYTES (specified_data);
11671        tbr.index = 0;        tbr.index = 0;
11672    
11673        /* Check PNG signature.  */        /* Check PNG signature.  */
# Line 11793  png_load (f, img) Line 11793  png_load (f, img)
11793          /* The user specified `:background', use that.  */          /* The user specified `:background', use that.  */
11794          {          {
11795            COLORREF color;            COLORREF color;
11796            if (w32_defined_color (f, XSTRING (specified_bg)->data, &color, 0))            if (w32_defined_color (f, SDATA (specified_bg), &color, 0))
11797              {              {
11798                png_color_16 user_bg;                png_color_16 user_bg;
11799    
# Line 12213  jpeg_load (f, img) Line 12213  jpeg_load (f, img)
12213            return 0;            return 0;
12214          }          }
12215        
12216        fp = fopen (XSTRING (file)->data, "r");        fp = fopen (SDATA (file), "r");
12217        if (fp == NULL)        if (fp == NULL)
12218          {          {
12219            image_error ("Cannot open `%s'", file, Qnil);            image_error ("Cannot open `%s'", file, Qnil);
# Line 12260  jpeg_load (f, img) Line 12260  jpeg_load (f, img)
12260    if (NILP (specified_data))    if (NILP (specified_data))
12261      jpeg_stdio_src (&cinfo, fp);      jpeg_stdio_src (&cinfo, fp);
12262    else    else
12263      jpeg_memory_src (&cinfo, XSTRING (specified_data)->data,      jpeg_memory_src (&cinfo, SDATA (specified_data),
12264                       STRING_BYTES (XSTRING (specified_data)));                       SBYTES (specified_data));
12265    
12266    jpeg_read_header (&cinfo, TRUE);    jpeg_read_header (&cinfo, TRUE);
12267    
# Line 12604  tiff_load (f, img) Line 12604  tiff_load (f, img)
12604          }          }
12605                        
12606        /* Try to open the image file.  */        /* Try to open the image file.  */
12607        tiff = TIFFOpen (XSTRING (file)->data, "r");        tiff = TIFFOpen (SDATA (file), "r");
12608        if (tiff == NULL)        if (tiff == NULL)
12609          {          {
12610            image_error ("Cannot open `%s'", file, Qnil);            image_error ("Cannot open `%s'", file, Qnil);
# Line 12615  tiff_load (f, img) Line 12615  tiff_load (f, img)
12615    else    else
12616      {      {
12617        /* Memory source! */        /* Memory source! */
12618        memsrc.bytes = XSTRING (specified_data)->data;        memsrc.bytes = SDATA (specified_data);
12619        memsrc.len = STRING_BYTES (XSTRING (specified_data));        memsrc.len = SBYTES (specified_data);
12620        memsrc.index = 0;        memsrc.index = 0;
12621    
12622        tiff = TIFFClientOpen ("memory_source", "r", &memsrc,        tiff = TIFFClientOpen ("memory_source", "r", &memsrc,
# Line 12852  gif_load (f, img) Line 12852  gif_load (f, img)
12852          }          }
12853        
12854        /* Open the GIF file.  */        /* Open the GIF file.  */
12855        gif = DGifOpenFileName (XSTRING (file)->data);        gif = DGifOpenFileName (SDATA (file));
12856        if (gif == NULL)        if (gif == NULL)
12857          {          {
12858            image_error ("Cannot open `%s'", file, Qnil);            image_error ("Cannot open `%s'", file, Qnil);
# Line 12864  gif_load (f, img) Line 12864  gif_load (f, img)
12864      {      {
12865        /* Read from memory! */        /* Read from memory! */
12866        current_gif_memory_src = &memsrc;        current_gif_memory_src = &memsrc;
12867        memsrc.bytes = XSTRING (specified_data)->data;        memsrc.bytes = SDATA (specified_data);
12868        memsrc.len = STRING_BYTES (XSTRING (specified_data));        memsrc.len = SBYTES (specified_data);
12869        memsrc.index = 0;        memsrc.index = 0;
12870    
12871        gif = DGifOpen(&memsrc, gif_read_from_memory);        gif = DGifOpen(&memsrc, gif_read_from_memory);
# Line 13323  selected frame.  Value is VALUE.  */) Line 13323  selected frame.  Value is VALUE.  */)
13323    CHECK_STRING (value);    CHECK_STRING (value);
13324    
13325    BLOCK_INPUT;    BLOCK_INPUT;
13326    prop_atom = XInternAtom (FRAME_W32_DISPLAY (f), XSTRING (prop)->data, False);    prop_atom = XInternAtom (FRAME_W32_DISPLAY (f), SDATA (prop), False);
13327    XChangeProperty (FRAME_W32_DISPLAY (f), FRAME_W32_WINDOW (f),    XChangeProperty (FRAME_W32_DISPLAY (f), FRAME_W32_WINDOW (f),
13328                     prop_atom, XA_STRING, 8, PropModeReplace,                     prop_atom, XA_STRING, 8, PropModeReplace,
13329                     XSTRING (value)->data, XSTRING (value)->size);                     SDATA (value), SCHARS (value));
13330    
13331    /* Make sure the property is set when we return.  */    /* Make sure the property is set when we return.  */
13332    XFlush (FRAME_W32_DISPLAY (f));    XFlush (FRAME_W32_DISPLAY (f));
# Line 13352  FRAME nil or omitted means use the selec Line 13352  FRAME nil or omitted means use the selec
13352    
13353    CHECK_STRING (prop);    CHECK_STRING (prop);
13354    BLOCK_INPUT;    BLOCK_INPUT;
13355    prop_atom = XInternAtom (FRAME_W32_DISPLAY (f), XSTRING (prop)->data, False);    prop_atom = XInternAtom (FRAME_W32_DISPLAY (f), SDATA (prop), False);
13356    XDeleteProperty (FRAME_W32_DISPLAY (f), FRAME_W32_WINDOW (f), prop_atom);    XDeleteProperty (FRAME_W32_DISPLAY (f), FRAME_W32_WINDOW (f), prop_atom);
13357    
13358    /* Make sure the property is removed when we return.  */    /* Make sure the property is removed when we return.  */
# Line 13386  value.  */) Line 13386  value.  */)
13386    
13387    CHECK_STRING (prop);    CHECK_STRING (prop);
13388    BLOCK_INPUT;    BLOCK_INPUT;
13389    prop_atom = XInternAtom (FRAME_W32_DISPLAY (f), XSTRING (prop)->data, False);    prop_atom = XInternAtom (FRAME_W32_DISPLAY (f), SDATA (prop), False);
13390    rc = XGetWindowProperty (FRAME_W32_DISPLAY (f), FRAME_W32_WINDOW (f),    rc = XGetWindowProperty (FRAME_W32_DISPLAY (f), FRAME_W32_WINDOW (f),
13391                             prop_atom, 0, 0, False, XA_STRING,                             prop_atom, 0, 0, False, XA_STRING,
13392                             &actual_type, &actual_format, &actual_size,                             &actual_type, &actual_format, &actual_size,
# Line 13753  x_create_tip_frame (dpyinfo, parms, text Line 13753  x_create_tip_frame (dpyinfo, parms, text
13753        {        {
13754          tem = Fquery_fontset (font, Qnil);          tem = Fquery_fontset (font, Qnil);
13755          if (STRINGP (tem))          if (STRINGP (tem))
13756            font = x_new_fontset (f, XSTRING (tem)->data);            font = x_new_fontset (f, SDATA (tem));
13757          else          else
13758            font = x_new_font (f, XSTRING (font)->data);            font = x_new_font (f, SDATA (font));
13759        }        }
13760            
13761      /* Try out a font which we hope has bold and italic variations.  */      /* Try out a font which we hope has bold and italic variations.  */
# Line 14313  specified.  Ensure that file exists if M Line 14313  specified.  Ensure that file exists if M
14313    /* Create the dialog with PROMPT as title, using DIR as initial    /* Create the dialog with PROMPT as title, using DIR as initial
14314       directory and using "*" as pattern.  */       directory and using "*" as pattern.  */
14315    dir = Fexpand_file_name (dir, Qnil);    dir = Fexpand_file_name (dir, Qnil);
14316    strncpy (init_dir, XSTRING (dir)->data, MAX_PATH);    strncpy (init_dir, SDATA (dir), MAX_PATH);
14317    init_dir[MAX_PATH] = '\0';    init_dir[MAX_PATH] = '\0';
14318    unixtodos_filename (init_dir);    unixtodos_filename (init_dir);
14319    
14320    if (STRINGP (default_filename))    if (STRINGP (default_filename))
14321      {      {
14322        char *file_name_only;        char *file_name_only;
14323        char *full_path_name = XSTRING (default_filename)->data;        char *full_path_name = SDATA (default_filename);
14324    
14325        unixtodos_filename (full_path_name);        unixtodos_filename (full_path_name);
14326    
# Line 14354  specified.  Ensure that file exists if M Line 14354  specified.  Ensure that file exists if M
14354      file_details.lpstrFile = filename;      file_details.lpstrFile = filename;
14355      file_details.nMaxFile = sizeof (filename);      file_details.nMaxFile = sizeof (filename);
14356      file_details.lpstrInitialDir = init_dir;      file_details.lpstrInitialDir = init_dir;
14357      file_details.lpstrTitle = XSTRING (prompt)->data;      file_details.lpstrTitle = SDATA (prompt);
14358      file_details.Flags = (OFN_HIDEREADONLY | OFN_NOCHANGEDIR      file_details.Flags = (OFN_HIDEREADONLY | OFN_NOCHANGEDIR
14359                            | OFN_EXPLORER | OFN_ENABLEHOOK);                            | OFN_EXPLORER | OFN_ENABLEHOOK);
14360      if (!NILP (mustmatch))      if (!NILP (mustmatch))
# Line 14507  otherwise it is an integer representing Line 14507  otherwise it is an integer representing
14507    document = ENCODE_FILE (document);    document = ENCODE_FILE (document);
14508    if ((int) ShellExecute (NULL,    if ((int) ShellExecute (NULL,
14509                            (STRINGP (operation) ?                            (STRINGP (operation) ?
14510                             XSTRING (operation)->data : NULL),                             SDATA (operation) : NULL),
14511                            XSTRING (document)->data,                            SDATA (document),
14512                            (STRINGP (parameters) ?                            (STRINGP (parameters) ?
14513                             XSTRING (parameters)->data : NULL),                             SDATA (parameters) : NULL),
14514                            XSTRING (current_dir)->data,                            SDATA (current_dir),
14515                            (INTEGERP (show_flag) ?                            (INTEGERP (show_flag) ?
14516                             XINT (show_flag) : SW_SHOWDEFAULT))                             XINT (show_flag) : SW_SHOWDEFAULT))
14517        > 32)        > 32)
# Line 14573  w32_parse_hot_key (key) Line 14573  w32_parse_hot_key (key)
14573        c = Fcar (c);        c = Fcar (c);
14574        if (!SYMBOLP (c))        if (!SYMBOLP (c))
14575          abort ();          abort ();
14576        vk_code = lookup_vk_code (XSTRING (SYMBOL_NAME (c))->data);        vk_code = lookup_vk_code (SDATA (SYMBOL_NAME (c)));
14577      }      }
14578    else if (INTEGERP (c))    else if (INTEGERP (c))
14579      {      {
# Line 14777  If the underlying system call fails, val Line 14777  If the underlying system call fails, val
14777      /* On Windows, we may need to specify the root directory of the      /* On Windows, we may need to specify the root directory of the
14778         volume holding FILENAME.  */         volume holding FILENAME.  */
14779      char rootname[MAX_PATH];      char rootname[MAX_PATH];
14780      char *name = XSTRING (encoded)->data;      char *name = SDATA (encoded);
14781    
14782      /* find the root name of the volume if given */      /* find the root name of the volume if given */
14783      if (isalpha (name[0]) && name[1] == ':')      if (isalpha (name[0]) && name[1] == ':')

Legend:
Removed from v.1.178  
changed lines
  Added in v.1.179

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26