/* listing.c - maintain assembly listings
- Copyright (C) 1991-2016 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
will affect the page they are on, as well as any subsequent page
.eject
- Thow a page
+ Throw a page
.list
Increment the enable listing counter
.nolist
}
#endif
- file = as_where (&line);
+ /* PR 21977 - use the physical file name not the logical one unless high
+ level source files are being included in the listing. */
+ if (listing & LISTING_HLL)
+ file = as_where (&line);
+ else
+ file = as_where_physical (&line);
+
if (ps == NULL)
{
if (line == last_line
if (strcmp (file, _("{standard input}")) == 0
&& input_line_pointer != NULL)
{
- char *copy;
+ char *copy, *src, *dest;
int len;
int seen_quote = 0;
int seen_slash = 0;
len = copy - input_line_pointer + 1;
- copy = (char *) xmalloc (len);
-
- if (copy != NULL)
- {
- char *src = input_line_pointer;
- char *dest = copy;
+ copy = XNEWVEC (char, len);
- while (--len)
- {
- unsigned char c = *src++;
+ src = input_line_pointer;
+ dest = copy;
- /* Omit control characters in the listing. */
- if (!ISCNTRL (c))
- *dest++ = c;
- }
+ while (--len)
+ {
+ unsigned char c = *src++;
- *dest = 0;
+ /* Omit control characters in the listing. */
+ if (!ISCNTRL (c))
+ *dest++ = c;
}
+ *dest = 0;
+
new_i->line_contents = copy;
}
else
int show_listing = 1;
unsigned int width;
- buffer = (char *) xmalloc (listing_rhs_width);
- data_buffer = (char *) xmalloc (MAX_BYTES);
+ buffer = XNEWVEC (char, listing_rhs_width);
+ data_buffer = XNEWVEC (char, MAX_BYTES);
eject = 1;
list = head->next;