Add whip
Add utf8_truncate function
Truncate unicode strings with utf8_truncate()
Rework of vehicle repair/install/remove times.
Print item name in crafting menu
Added some comments.
Adds a missing part.removed check to fix a crash (tiles only)
Update docs about what time corresponds to in recipes.
New drug recipes.

Added recipes for rolling a joint and rolling a cigarette. Provides the ability to make an unlit cig or unlit joint and save for later (something that cannot be done with the current application of weed/tobacco + papers).

Stuck with the current numbers from iuse::cig and iuse::weed for determining what goes into a joint or cig.

Also made a judgement call. Cigs and joints are comestibles. Applying a cig lights one up and then that one is smoked for the duration of the timer set. I changed `charges` in `comestibles.json` for joints and cigs to 1 from their previous values. This will likely mess with their appearance on maps as it currently stands. On the other hand, I think it's more likely that single joints and cigarettes are found after the rapture.

Also intend to add a box of cigarettes, but that's later.

Technically, this is the smallest amount of code needed to fix issue #7440, but more is coming.
Correct "joint roachs" with "joint roaches".

I thought I was doing this right, but I can't see the correction in my game, all I'm still seeing is "joint roachs" in the crafting menu.

Checking in anyway, and will revert if fubard.
Take Rivet's advice and don't mess with regular cigs but instead allow crafting of hand rolled cigs.
Merge branch 'fix-crash-part_id_string' of https://github.com/vidarsk/Cataclysm-DDA into merge
Merge branch 'feat-veh-modify-times' of https://github.com/vidarsk/Cataclysm-DDA into merge
Merge remote-tracking branch 'upstream/master' into issue7440_joints
Check for null string in addition to no string so open doors aren't treated like liquids.
iuse::smoking works with cigars, cigarettes, handrolls, and joints.
used to light up one time use items. changed appropriate use actions.

can no longer directly use weed or tobacco to trigger pipe smoking.

iuse::smoking_pipe empty shell while I figure out how I want to
handle smoking via pipe.

idea is to flag SMOKABLE items and, when using a pipe, allow the player
to choose item from a menu, toke and then consume the item.
Armor pricing, through wristwatches

Going up through the file, stopped at leg-guards.
Regular translation template update
Merge pull request #7765 from kevingranade/fix-liquid-car-doors

Check for null string in addition to no string.
Make torso layering function the same as all other body parts.

The original point of having torso layering be more forgiving was so that you can wear a reasonable amount of stuff, like a shirt and a jacket, without being encumbered. The new outer and belted clothing areas provide this functionality in a more elegant and less hackish way, so this placeholder can be removed.