Scott Lahteine
3be49881c0
Make SanityCheck.h a catch-all for obsolete configs
2016-07-26 12:41:40 -07:00
Scott Lahteine
d9f7ed9a3c
Move some macros from Marlin.h to macros.h
2016-07-26 12:37:13 -07:00
Scott Lahteine
c6226bb0aa
Unify config in a single include without nested includes
2016-07-25 23:04:19 -07:00
Scott Lahteine
df27d01cd9
Arrange needed includes in Marlin.h
2016-07-25 20:53:36 -07:00
Scott Lahteine
169c21b477
Merge pull request #4402 from thinkyhead/rc_consistent_positioning
...
Account for coordinate space offsets
2016-07-24 19:23:20 -07:00
Scott Lahteine
e4816293a8
serial_echopair_P for uint16_t
2016-07-24 17:46:37 -07:00
Scott Lahteine
f75b0c2ee1
Make POSITION macros global
2016-07-24 17:20:36 -07:00
Scott Lahteine
08459a003f
Undo the self-sabotage that is do_blocking_move_to_axis_pos
2016-07-23 00:59:11 -07:00
Scott Lahteine
652fd8a826
Merge pull request #4362 from thinkyhead/rc_duplication_mode
...
DUAL_NOZZLE_DUPLICATION_MODE
2016-07-22 21:17:59 -07:00
Scott Lahteine
35a610abf9
const arg to inverse_kinematics
2016-07-22 17:42:48 -07:00
Scott Lahteine
d5e2d523c7
Generalize kinematics function names
2016-07-22 16:36:34 -07:00
Scott Lahteine
4b1725628b
Move kinematic functions to "private" scope
2016-07-22 16:36:33 -07:00
Scott Lahteine
9f30cc84ce
Use set_current_from_steppers for other kinematics
2016-07-22 16:36:33 -07:00
AnHardt
5db9b940ee
Use forwardKinematics in DELTA run_z_probe()
2016-07-22 16:36:33 -07:00
Scott Lahteine
cbc7f22ad9
Implement DUAL_NOZZLE_DUPLICATION_MODE
2016-07-22 16:23:58 -07:00
Scott Lahteine
976c31235d
inline to fix warnings, smaller build size (sometimes)
2016-07-21 13:49:37 -07:00
João Brázio
47fef80848
Nozzle::clean() no longer requires HAS_BED_PROBE
2016-07-19 15:07:02 -07:00
Scott Lahteine
ef0a22871e
Merge pull request #4350 from jbrazio/followup-a875861
...
Adds utility.h
2016-07-19 13:40:52 -07:00
João Brázio
3ebad4e020
Moves all global enums to a central file
2016-07-19 14:31:09 +01:00
João Brázio
f4d63796b2
Adds utility.h
2016-07-19 02:55:23 +01:00
Scott Lahteine
f242aea032
Merge pull request #4319 from thinkyhead/rc_feedrates_to_mess_with_you
...
Wrangle feed rate variables
2016-07-17 14:07:52 -07:00
Scott Lahteine
93ba5bddd7
Append units to feedrate variables
2016-07-17 13:29:41 -07:00
Scott Lahteine
21ee0612e3
Debug char
2016-07-17 12:27:36 -07:00
Scott Lahteine
05da02f0a2
Implement MIXING_EXTRUDER and SWITCHING_EXTRUDER
2016-07-17 10:53:10 -07:00
João Brázio
a8758619ec
The safe_delay() is now globaly accessible
2016-07-16 12:28:06 +01:00
AnHardt
d2a49c016d
DELTA: Move out of the clip-zone after G28
...
Move down to a safe height after G28 for DELTAs.
2016-07-15 15:22:44 +02:00
Scott Lahteine
4b4a582c4f
X_DUAL_STEPPER_DRIVERS implementation
2016-07-11 10:22:19 -07:00
Scott Lahteine
2ee4e4f791
Make wait_for_heatup volatile
2016-07-07 16:37:23 -07:00
Scott Lahteine
834ad14c8d
Add quickstop_stepper to update current position with stepper.quick_stop()
2016-07-07 16:37:22 -07:00
AnHardt
a129078927
Add an emergency-command parser to MarlinSerial (supporting M108)
...
Add an emergency-command parser to MarlinSerial's RX interrupt.
The parser tries to find and execute M108,M112,M410 before the commands disappear in the RX-buffer.
To avoid false positives for M117, comments and commands followed by filenames (M23, M28, M30, M32, M33) are filtered.
This enables Marlin to receive and react on the Emergency command at all times - regardless of whether the buffers are full or not. It remains to convince hosts to send the commands. To inform the hosts about the new feature a new entry in the M115-report was made. "`EMERGENCY_CODES:M112,M108,M410;`".
The parser is fast. It only ever needs two switch decisions and one assignment of the new state for every character.
One problem remains. If the host has sent an incomplete line before sending an emergency command the emergency command could be omitted when the parser is in `state_IGNORE`.
In that case the host should send "\ncommand\n"
Also introduces M108 to break the waiting for the heaters in M109, M190 and M303.
Rename `cancel_heatup` to `wait_for_heatup` to better see the purpose.
2016-07-07 16:37:22 -07:00
Petr Zahradnik
43ff0ce35f
Rewritten FILAMENT_CHANGE_ENABLE feature
2016-07-02 15:34:33 -07:00
Scott Lahteine
bd491818d6
Reduce storage requirements for strings, make some PGM
2016-06-27 20:36:18 -07:00
Scott Lahteine
bb9c67b4b5
Tweak some feedrate vars
2016-06-22 03:27:31 -07:00
Scott Lahteine
1000563d80
Make M851 standard with a bed probe
2016-06-17 15:19:42 -07:00
Scott Lahteine
b75e648f2c
Clarify names of prepare_move functions
2016-06-11 15:32:49 -07:00
João Brázio
5b5aa1572b
Non-blocking buzzer
2016-06-09 20:20:05 -07:00
Scott Lahteine
4980ecc1f7
Smaller binary using inline gcode argument getters
2016-06-08 17:03:28 -07:00
Reid Rankin
16212432c9
G20/21 and M149 support, and code_value() refactor
...
This is an update of MarlinDev PR #196 .
G20/21: support for switching input units between millimeters and
inches.
M149: support for changing input temperature units.
In support of these changes, code_value() and code_value_short() are
replaced with an array of functions which handle converting to the
proper types and/or units.
2016-06-08 16:51:10 -07:00
Scott Lahteine
a3e25a0fca
Instead of trying to move now, set a flag to move asap
2016-06-05 02:29:48 -07:00
Scott Lahteine
664b299a51
This fix is not DELTA compatible
2016-06-02 17:16:19 -07:00
Scott Lahteine
064efb20e0
Also call clear_command_queue for lcd_sdcard_stop
2016-06-02 17:16:19 -07:00
Scott Lahteine
6277395e1e
set_current_position_from_planner() after stepper.quick_stop()
2016-06-02 17:16:19 -07:00
Scott Lahteine
138c5c8378
Merge pull request #3788 from thinkyhead/rc_dual_x_compile_fix
...
DUAL_X_CARRIAGE fixes, improvements, Travis test
2016-05-18 16:56:54 -07:00
Scott Lahteine
516e79bbda
Declare extruder_duplication_enabled in Marlin.h
2016-05-18 15:51:44 -07:00
Scott Lahteine
4041508ffb
Function decl. in headers don't need "extern"
2016-05-17 18:35:01 -07:00
Scott Lahteine
3016dfe484
Merge pull request #3744 from thinkyhead/rc_bezier_curves
...
Add BEZIER_CURVE_SUPPORT — G5 command
2016-05-17 13:57:38 -07:00
Scott Lahteine
1b90682617
Merge pull request #3702 from thinkyhead/rc_sensitive_fan_pins
...
Remove need to define unused pins as -1 in pins files
2016-05-14 15:49:22 -07:00
Scott Lahteine
b4c891dfd2
Remove obsolete reference to prepare_arc_move
2016-05-14 14:51:09 -07:00
esenapaj
888443ca1e
Enclose all #error strings with apostrophes
2016-05-13 21:10:23 +09:00
Scott Lahteine
5ca6334fd2
Cleanup pins files, fixup analogtodigitalpin, etc.
2016-05-08 12:38:00 -07:00
Scott Lahteine
fc5fe2cc22
Merge pull request #3678 from jbrazio/rework/delta-diagonal-rod-timmers
...
Moved DELTA radius/rod default trimmer values to Conditionals.h
2016-05-05 11:38:14 -07:00
Scott Lahteine
084f6b5b44
Temperature singleton class
2016-05-04 19:42:12 -07:00
João Brázio
23567a1d8b
Moved DELTA radius/rod default trimmer values to Conditionals.h
2016-05-05 00:18:32 +01:00
Scott Lahteine
96f51f400f
Planner singleton class
2016-04-30 17:26:50 -07:00
Scott Lahteine
5e4e535ce8
Stepper and Endstops as singleton objects
2016-04-30 17:26:50 -07:00
João Brázio
d6cfcc9c8b
Added new G-Code: M78
2016-04-29 23:13:58 +01:00
Scott Lahteine
ee9bd66a68
Add comments to debug bit flags
2016-04-20 12:37:22 -07:00
Scott Lahteine
ac69fad96d
lowercase "stop" function
2016-04-19 19:43:54 -07:00
Scott Lahteine
cafa8b8ce3
Rename filament runout items
2016-04-19 19:43:39 -07:00
Scott Lahteine
a4062a47ac
Rename baricuda variables
2016-04-19 19:43:38 -07:00
Scott Lahteine
78747b1328
min_pos/max_pos => sw_endstop_min/sw_endstop_max
2016-04-19 19:43:38 -07:00
Scott Lahteine
50c3140040
Merge pull request #3414 from thinkyhead/rc_host_timeout_mods
...
Host Keepalive configurable timeout with 2s default
2016-04-08 21:45:45 -07:00
Scott Lahteine
5e18d650c4
Merge pull request #3427 from thinkyhead/rc_better_SERIAL_ECHOPAIR
...
No casting needed for SERIAL_ECHOPAIR
2016-04-07 19:29:18 -07:00
Scott Lahteine
85883da90c
Implement basic HOST_KEEPALIVE_INTERVAL
2016-04-07 19:25:56 -07:00
Scott Lahteine
d7cbb2eec9
Merge pull request #3403 from jbrazio/feature/stopwatch
...
Print job timer rework
2016-04-07 19:18:03 -07:00
Scott Lahteine
dc19b69697
No casting needed for SERIAL_ECHOPAIR
2016-04-07 16:33:21 -07:00
João Brázio
7c7e30f4cc
Adherence to the new OOP coding standards
2016-04-07 12:41:09 +01:00
Scott Lahteine
865dcf3fb4
Fix FILAMENT_WIDTH_SENSOR measurement
...
Only measure and store filament width when E is going forward.
2016-04-06 19:48:04 -07:00
João Brázio
eb61051556
Rework the print job timer to use the stopwatch class
2016-04-06 04:34:03 +01:00
Scott Lahteine
d24f14a799
Add HAS_TEMP_HOTEND define
2016-04-03 16:18:49 -07:00
Scott Lahteine
de333c4fea
Merge pull request #3279 from thinkyhead/rc_filament_width_sensor
...
FILAMENT_SENSOR -> FILAMENT_WIDTH_SENSOR
2016-03-30 12:16:27 -07:00
Scott Lahteine
1a79b13b7a
FILAMENT_SENSOR -> FILAMENT_WIDTH_SENSOR
2016-03-29 20:54:31 -07:00
Scott Lahteine
5f32184254
Merge pull request #3278 from thinkyhead/rc_cleanup_m111_redo
...
Echo all debug levels in M111, default to DEBUG_NONE
2016-03-29 20:34:31 -07:00
Scott Lahteine
05765fb570
Add DEBUGGING macro
2016-03-29 19:50:01 -07:00
Scott Lahteine
4402760739
Echo all debug levels in M111, default to DEBUG_NONE
...
Redo of #3268 by @jbrazio
2016-03-29 19:18:45 -07:00
Scott Lahteine
3252df7998
Minor cleanup to filament sensor code
2016-03-28 20:04:34 -07:00
Scott Lahteine
0b8ef5eba6
Split get_command into units, rename to get_available_commands
2016-03-28 06:00:04 -07:00
Scott Lahteine
d6f92f9efe
Remove Tonokip remnant from recent PR
2016-03-25 23:50:29 -07:00
Scott Lahteine
0da744b7b0
Further cleanup of comments, partial Doxygen-style
...
Following up on #3231
2016-03-25 00:45:56 -07:00
jbrazio
5e5d250832
Added gplv3 header to all Marlin files
2016-03-24 18:01:20 +00:00
Scott Lahteine
04fa9d4f47
Make Autotune options into Menu Edit Items
2016-03-24 02:00:08 -07:00
Scott Lahteine
06332f20be
Merge pull request #3113 from jbrazio/bugfix/3061-stop-print-time-counter
...
Stop print timer with M105/M109
2016-03-20 17:05:07 -07:00
Scott Lahteine
a02ae36ae8
Include M65 "ABC" parameters in EEPROM
...
Addressing #2773
2016-03-19 05:52:20 -07:00
Scott Lahteine
4bbea5124d
Support for multiple PWM fans
2016-03-19 03:10:18 -07:00
Scott Lahteine
4634feaeab
Merge pull request #3012 from thinkyhead/fix_command_injection
...
Use a serial line buffer to prevent queue corruption
2016-03-19 01:43:54 -07:00
Scott Lahteine
963a92ceda
Patch idle forevermore
2016-03-18 22:38:35 -07:00
Scott Lahteine
8fe7420310
Use a separate serial line buffer
2016-03-18 16:46:20 -07:00
jbrazio
a645860431
All print timer related activity now uses print_job_start(), print_job_timer() or print_job_stop()
2016-03-12 07:16:39 +00:00
Scott Lahteine
e4945b30d2
sbi and cbi are deprecated
2016-03-06 05:51:55 -08:00
Scott Lahteine
ff13070b59
Use _BV macros, patch up others
2016-03-06 05:51:55 -08:00
Scott Lahteine
eb85342fd9
Merge pull request #2989 from AnHardt/fix2661
...
Pre home display - Stepper release
2016-03-05 21:30:17 -08:00
Scott Lahteine
772460a7b8
Various minor spelling corrections
...
Redo of #2939 rebased against RCBugFix
2016-03-05 20:41:15 -08:00
AnHardt
051325ccd7
Introduce axis_homed
...
Introduce additional variable axis_homed to replace axix_known_position
when the coordinate display should indicate the axis is not homed.
This is to distinguish between "not homed" and "inexact position possible
because stepper was disabled".
# Conflicts:
# Marlin/ultralcd_implementation_hitachi_HD44780.h
solved
2016-02-28 16:58:28 +01:00
AnHardt
57da1b8497
Host parseble output for M109, M190 and M303
...
Make the output of M105 more similar to Repetier.
Make the text-print pert of M105 an extra function to make it reusable. `print_heaterstates()`
Use `print_heaterstates()` in M019, M190 and M303
2015-12-07 15:37:53 -06:00
Scott Lahteine
0c7f7ebcfb
Styling adjustments (PR#2668 & PR#2670)
...
Keep "astyled" reformatting
2015-10-03 22:02:45 -05:00
Scott Lahteine
bc50db9cf6
Implement PID_ADD_EXTRUSION_RATE
2015-09-12 07:53:20 -05:00
Shane Francis
4c8330c15c
Trim Adjustments for Delta Configurations
2015-09-03 01:05:33 -05:00
Richard Wackerbarth
20b4772155
Create DEBUG_LEVELING_FEATURE
2015-08-27 20:52:08 -05:00
Richard Wackerbarth
6292d9e815
Rename ENABLE_AUTO_BED_LEVELING
...
With the introduction of the #if ENABLED(…)
reads better than
2015-08-27 20:52:08 -05:00
Christian Lefrançois
a7822e3ff7
Some renaming of Z_PROBE to Z_MIN_PROBE (PR#91)
...
* Fix a couple of renames omission and macro expansion errors.
2015-08-20 06:04:46 -05:00
Richard Wackerbarth
29b456ae07
Suppress some compiler warnings
2015-08-16 06:56:47 -05:00
Richard Wackerbarth
4b9d5cd352
Use lowercase names for serial instances
2015-08-02 23:01:39 -05:00
Scott Lahteine
1e2deff4fd
Rename BTENABLED to BLUETOOTH
...
- For some reason it’s easy to forget what BT stands for, but it
doesn’t need an abbreviation.
2015-08-02 22:56:50 -05:00
Scott Lahteine
b4abb0ae7f
Apply ENABLED / DISABLED to Marlin core files (PR#2558)
2015-07-31 01:03:58 -05:00
Richard Wackerbarth
a401d738df
There is an echo in here
2015-07-27 20:31:59 -05:00
Scott Lahteine
c66955aaf9
Mark unchanging arrays as const (PR#2494)
...
The compiler may be able to optimize if it knows an array won’t be
changing.
2015-07-22 21:37:37 -05:00
Scott Lahteine
d85861d296
Move macros, add ENABLED/DISABLED, add includes
2015-07-22 18:16:05 -05:00
Scott Lahteine
c7dd5527b4
Add a C_AXIS and Z_HEAD to support COREXZ
2015-07-19 16:17:03 -05:00
Scott Lahteine
baa9199973
Define extern delta only for delta
2015-07-16 16:36:30 -05:00
Scott Lahteine
82a3ed2f9a
Cleanup and dev notes in Marlin.h
2015-07-16 16:36:30 -05:00
Richard Wackerbarth
e83575537a
Compiler defines USBCON for USB devices (PR#2433)
2015-07-15 10:32:11 -05:00
Scott Lahteine
bc0fdbe88e
Use SERIAL_EOL in SERIAL_PROTOCOLLN macros
2015-07-07 06:59:10 -05:00
Richard Wackerbarth
06ae832276
Deprecate Support for Arduino IDE < 1.0.5
...
Note that newer versions of the IDE can still
be made to support compilation for the older boards.
2015-06-08 17:15:28 -05:00
wurstnase
e7e964432b
consistency name for multiplier
...
replace extruder_multiply with extruder_multiplier
like feedrate_multiplier or volumetric_multiplier
2015-06-01 22:33:22 +02:00
AnHardt
9d2a980bcf
Merge pull request #2170 from thinkyhead/beep_M600_elsewise
...
Slight size reduction by adding idle()
2015-05-30 12:42:32 +02:00
Scott Lahteine
790c697c19
Fix DEGREES macro
2015-05-28 00:19:48 -07:00
Scott Lahteine
d76a01194d
Slight size reduction by adding idle()
2015-05-26 20:08:21 -07:00
Scott Lahteine
04a1622172
Merge pull request #2127 from Wackerbarth/Kossel_Pro
...
Kossel Pro
2015-05-21 18:43:26 -07:00
wurstnase
ff98b8632b
new endstop bits
2015-05-21 23:16:43 +02:00
Richard Wackerbarth
1d8f61ca8a
AT90USB is defined in pins.h
2015-05-21 11:46:54 -05:00
AnHardt
f4a93ed997
Add a string parameter to kill()
...
Makes the output on the LCD adjustable.
2015-05-20 20:53:48 +02:00
Scott Lahteine
46d59784ad
Rename preocess_command to process_next_command
2015-05-16 20:47:40 -07:00
Scott Lahteine
80807b2d71
Consolidate arc code, remove motion_control.*
2015-05-13 18:52:41 -07:00
Scott Lahteine
9e95ceb3fc
Split up prepare_move by type
...
- For better encapsulation add inlines for each prepare_move type
- Move controllerFan vars inside the function as statics
- Some formatting cleanup
- Rename `ClearToSend` as `ok_to_send`
2015-05-12 02:08:20 -07:00
Scott Lahteine
873f7d6f2a
Check that configs are up-to-date
2015-05-12 01:33:51 -07:00
Wurstnase
b55f32f8a1
replace some bools
...
this PR replaces some bools with one char. this will safe 3 bytes and should also be sometimes a little bit faster.
2015-05-10 21:37:39 +02:00
Scott Lahteine
d43cc2dd5f
M111 - Debug Level
...
- Add `M111` as a standard option to set the debug level
- Implement `DEBUG_ECHO` in `process_commands`
- Other debug levels (e.g., `DEBUG_DRYRUN`) need more work
2015-04-26 20:08:45 -07:00
Scott Lahteine
09d60e0128
Naming and code comments
2015-04-13 17:17:36 -07:00
Scott Lahteine
ccddc280be
Apply three more commits
2015-04-12 22:47:44 -07:00
Scott Lahteine
1269c445ab
Catch dangerous extrude before trying several
2015-04-09 01:40:48 -07:00
Scott Lahteine
27cb90da8b
IsStopped / IsRunning inline
2015-04-08 00:56:19 -07:00
Scott Lahteine
61f8394361
Compare indices instead of floats for probe actions
2015-04-04 05:01:16 -07:00
Scott Lahteine
6f06d33be5
Fix missing refresh_cmd_timeout function
2015-04-04 03:47:25 -07:00
Scott Lahteine
c185912c19
Latest upstream commits, mostly
2015-04-03 21:58:48 -07:00
Scott Lahteine
1e5c18bb14
Add code_value_short and SERIAL_CHAR
2015-04-03 21:43:30 -07:00
Scott Lahteine
e0d4368cb5
Minor code cleanup, move NUM_AXIS out of config
2015-04-03 20:45:24 -07:00
Scott Lahteine
b98ebd517e
disable / enable_all_steppers functions
2015-04-03 19:25:22 -07:00
Scott Lahteine
0e8182bbf2
Additional pin tests, cleanup
2015-04-03 15:31:35 -07:00
Scott Lahteine
18bb6be80e
Fix homing and leveling
...
- Include the current Z when raising the axis after and between probing
- Add `sync_plan_position_delta` for parity with `sync_plan_position`
- Clean up and clarify `M48`, `dock_sled`, and others
2015-03-31 18:52:19 -07:00
AnHardt
50a732360a
Replace extrudemultiply by extruder_multiply[active_extruder]
...
Fix for #1460 .
Seems to work with only one extruder. Can't test this myself with more.
2015-03-30 13:35:03 +02:00
Scott Lahteine
fbf9b21e0c
Merge plus fixup zprobe_zoffset
...
- Make `zprobe_zoffset` conditional
- Fix ConfigurationStore for `zprobe_zoffset`
2015-03-25 21:14:00 -07:00
alexborro
0ce3576685
New Feature: Z_DUAL_ENDSTOPS
...
Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z
steppers - Let's call them Z stepper and Z2 stepper.
That way the machine is capable to align the bed during home, since both
Z steppers are homed.
There is also an implementation of M666 (software endstops adjustment)
to this feature.
After Z homing, this adjustment is applied to just one of the steppers
in order to align the bed.
One just need to home the Z axis and measure the distance difference
between both Z axis and apply the math: Z adjust = Z - Z2.
If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it
is.. think about it) and the Z adjust would be positive.
Play a little bit with small adjustments (0.5mm) and check the
behaviour.
The M119 (endstops report) will start reporting the Z2 Endstop as well.
2015-03-24 14:06:44 -03:00
Scott Lahteine
8db4fd7177
Merge branch 'Development' into planner_oh_planner
...
Latest upstream commits
2015-03-23 22:08:50 -07:00
Scott Lahteine
34a41648ab
Merge branch 'Development' into planner_oh_planner
...
Latest upstream commits
2015-03-22 23:40:29 -07:00
Scott Lahteine
4fbb80567e
Get upstream commits
2015-03-22 23:07:22 -07:00
Scott Lahteine
691e753cc3
Don't add home offsets in G29
...
- Address #1262 by leaving values as set
- Rename `add_homing` to `home_offset`
2015-03-21 16:30:02 -07:00
Scott Lahteine
13fbf42d95
Cleanup of planner code
...
- Use named axis indexes, `X_AXIS` etc.
- Replace `block.steps_A` with block.steps[A]`
- Replace `A_segment_time` with `segment_time[A]`
- Add `A_AXIS`, `B_AXIS` for `COREXY` axes
- Conditional compile based on `EXTRUDERS`
- Add BLOCK_MOD macro for planner block indexes
- Apply coding standards to `planner.h` and `planner.cpp`
- Small optimizations of planner code
- Update `stepper.cpp` for new `block` struct
- Replace `memcpy` with loops, let the compiler unroll them
- Make `movesplanned` into an inline function
2015-03-20 20:42:49 -07:00
Scott Lahteine
b6d381f863
Divide up Conditionals to get LCD items early
2015-03-20 02:50:28 -07:00
maverikou
8a739b6fba
Merge branch 'Development' into delta_auto_bed_level
...
Conflicts:
Marlin/Marlin_main.cpp
2015-03-16 08:24:26 +02:00
AnHardt
f0dcea7e14
Fix #1611
...
Warning: suggest parentheses around comparison in operand of &
pretty much helped.
2015-03-15 22:52:50 +01:00