### ImageMagick version

7.1.1-18

### Operating system

Linux

### Operating system, version and so on

Gentoo Linux

### Description

I've noticed that ImageMagick fails with the error
```
magick: improper image header `bad.xbm' @ error/xbm.c/ReadXBMImage/370.
```
when dealing with certain XBM files. I've discovered the issue is that ImageMagick expects data bytes to not occur on the same line of code as the one which introduces the array. For example, if an XBM file had the array

```c
static unsigned char test_bits[] = { 0x01, 0x02,
                                     0x03, 0x04 };
```

It won't see the `0x01` or `0x02` bytes, but would still be able to see `0x03` and `0x04`. But since it missed some of the data, it won't be able to read in enough bytes for the image's given width and height, and thus it fails with the above error.

From what I've read, I can't seem to find anything that says the data must start on the next line, and other programs handle it just fine.

### Steps to Reproduce

Attempt to run `magick test.xbm test.png` on an XBM image arranged with some (or all) data on the same line as the opening brace. Since the error occurs in reading, it doesn't matter what you do with the file, just that you try to get ImageMagick to read it.

### Images

Two images are provided for testing, both 12x12. `good.xbm` is a checkmark and has all its data on subsequent lines:
```xbm
#define good_width 12
#define good_height 12
static unsigned char good_bits[] = {
   0x00, 0x00, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x03, 0x80, 0x01,
   0xc1, 0x00, 0x63, 0x00, 0x36, 0x00, 0x1c, 0x00, 0x08, 0x00, 0x00, 0x00 };
```

`bad.xbm` is an X and has its first byte on the declaration line:
```xbm
#define bad_width 12
#define bad_height 12
static unsigned char bad_bits[] = { 0x03,
   0x0c, 0x07, 0x0e, 0x0e, 0x07, 0x9c, 0x03, 0xf8, 0x01, 0xf0, 0x00,
   0xf0, 0x00, 0xf8, 0x01, 0x9c, 0x03, 0x0e, 0x07, 0x07, 0x0e, 0x03, 0x0c };
```

(I couldn't upload a zip of these files for some reason, but thank goodness XBMs are text files.)
XBM Reader fails if data starts on same line as static array declaration
This is a GitHub Issue
repo:ImageMagick
owner:ImageMagick
Title : XBM Reader fails if data starts on same line as static array declaration
Issue date:

--- start body ---
### ImageMagick version

7.1.1-18

### Operating system

Linux

### Operating system, version and so on

Gentoo Linux

### Description

I've noticed that ImageMagick fails with the error
```
magick: improper image header `bad.xbm' @ error/xbm.c/ReadXBMImage/370.
```
when dealing with certain XBM files. I've discovered the issue is that ImageMagick expects data bytes to not occur on the same line of code as the one which introduces the array. For example, if an XBM file had the array

```c
static unsigned char test_bits[] = { 0x01, 0x02,
                                     0x03, 0x04 };
```

It won't see the `0x01` or `0x02` bytes, but would still be able to see `0x03` and `0x04`. But since it missed some of the data, it won't be able to read in enough bytes for the image's given width and height, and thus it fails with the above error.

From what I've read, I can't seem to find anything that says the data must start on the next line, and other programs handle it just fine.

### Steps to Reproduce

Attempt to run `magick test.xbm test.png` on an XBM image arranged with some (or all) data on the same line as the opening brace. Since the error occurs in reading, it doesn't matter what you do with the file, just that you try to get ImageMagick to read it.

### Images

Two images are provided for testing, both 12x12. `good.xbm` is a checkmark and has all its data on subsequent lines:
```xbm
#define good_width 12
#define good_height 12
static unsigned char good_bits[] = {
   0x00, 0x00, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x03, 0x80, 0x01,
   0xc1, 0x00, 0x63, 0x00, 0x36, 0x00, 0x1c, 0x00, 0x08, 0x00, 0x00, 0x00 };
```

`bad.xbm` is an X and has its first byte on the declaration line:
```xbm
#define bad_width 12
#define bad_height 12
static unsigned char bad_bits[] = { 0x03,
   0x0c, 0x07, 0x0e, 0x0e, 0x07, 0x9c, 0x03, 0xf8, 0x01, 0xf0, 0x00,
   0xf0, 0x00, 0xf8, 0x01, 0x9c, 0x03, 0x0e, 0x07, 0x07, 0x0e, 0x03, 0x0c };
```

(I couldn't upload a zip of these files for some reason, but thank goodness XBMs are text files.)
--- end body ---
